Commit graph

667 commits

Author SHA1 Message Date
Ajax Davis
43c8a57c26 feat: add secret leak prevention barriers
- Install git-secrets with custom patterns for TPMJS, Neon, and AWS
- Add secrets scan to lefthook pre-commit hook (blocks commits with secrets)
- Create .gitsecrets file documenting secret patterns
- Enhance .gitignore with comprehensive env file patterns
- Add .env.example template for safe secret documentation
2026-01-22 09:53:41 +10:00
Ajax Davis
ab1133d202 chore: redact secrets from sprites_skill.md
Remove hardcoded API keys and tokens
2026-01-22 09:26:32 +10:00
Ajax Davis
a6681c5930 chore: add .env.production and .env.vercel* to gitignore
Prevent accidental commit of production environment files
2026-01-22 09:21:59 +10:00
Ajax Davis
5d00f2a711 feat: add chunked skills.md generation for large collections
Implements batched generation to avoid Vercel 120s timeout for collections
with 60+ tools. Uses per-tool caching and recursive serverless invocations.

- Add ToolSkillsCache and SkillsGenerationJob models to schema
- Create tool-skills-generator.ts for per-tool markdown generation
- Create skills-summary-generator.ts for final pass summary/intro
- Update route handler with chunked generation logic
- Small collections (<20 tools) use original monolithic approach
- Large collections use 10-tool batches with progress tracking
2026-01-21 16:26:06 +10:00
Ajax Davis
514ea3c0db chore: increase max file size to 100KB for package source fetcher 2026-01-21 15:30:03 +10:00
Ajax Davis
9ab8946c9d feat: add skills.md endpoint and CLI run command
- Add /:username/collections/:slug/skills.md endpoint for AI-generated skills docs
- Analyze npm package source code to generate comprehensive capability contracts
- Add `tpm run` CLI command to execute tools from collections via MCP
- Cache generated skills.md in database with 1-week TTL
2026-01-21 14:50:07 +10:00
Ajax Davis
c5a17a0a69 Add architecture docs and humanize use case copy 2026-01-21 07:37:04 +10:00
Ajax Davis
ad974239fd feat: add interactive architecture diagram page 2026-01-20 19:52:31 +10:00
Ajax Davis
474e7f9cda Fix review response typing and usage date rendering 2026-01-20 17:49:28 +10:00
Ajax Davis
a7c7c08f44 fix: guard overlay positioning refs 2026-01-20 16:52:18 +10:00
Ajax Davis
48c41e8733 feat: add use cases marketing product with AI-generated content
Transform qualifying scenarios into marketing-ready use cases with:
- AI-generated titles, descriptions, ROI estimates, business value
- Persona/industry/category taxonomy for targeting
- Browseable feed with filtering and ranking
- SEO-optimized case study pages
- Daily cron job for generation and ranking

Database:
- Add Persona, Industry, Category lookup tables
- Add UseCase model with marketing content fields
- Add junction tables for personas/industries/categories
- Add SocialProof model for cached metrics

API:
- GET /api/use-cases - Global directory with filtering
- GET /api/use-cases/[id] - Individual use case details
- GET /api/public/users/[username]/collections/[slug]/use-cases
- POST /api/cron/use-cases - Nightly generation job

Frontend:
- /use-cases - Global feed with persona dropdown
- /use-cases/[slug] - SEO case study page
- /[username]/collections/[slug]/use-cases - Collection feed
- UseCasesFeed component - Sortable table component
- UseCaseCaseStudy component - Full case study layout
2026-01-20 16:17:35 +10:00
Ajax Davis
5fafc90e3e fix: reorder collection page sections and add layout to docs page
- Move use cases section above scenarios section on collection detail pages
- Add AppHeader and AppFooter to /docs/developers/guide page for consistent layout
2026-01-20 14:15:16 +10:00
Ajax Davis
92e4f5c467 chore: remove old vitest .ts config files
Replaced with .mjs versions for proper ESM support.
2026-01-20 13:54:25 +10:00
Ajax Davis
192284ad07 fix: update UI test expectations to match actual component classes
Fixed test expectations in Badge, Button, Card, Checkbox, Input,
Select, and Textarea components to match the actual Tailwind utility
classes being applied.

Changes:
- Badge: font-medium, rounded-none, transition-colors
- Card: border-dashed, rounded-none
- Button: rounded-none, focus-visible:ring-2
- Input: font-mono, rounded-none, focus-visible:ring-2
- Select: rounded-none, transition-colors
- Textarea: font-mono, rounded-none, transition-colors
- Checkbox: transition-colors, rounded-none

All 856 tests now pass.
2026-01-20 13:54:25 +10:00
Ajax Davis
01b7295daa fix: resolve build errors and clean up scenario page
- Remove undefined variable reference (run.conversation) in header
- Extract ExpandedRunDetails component to reduce JSX nesting
- Fix vitest configs: rename to .mjs and add ESM-compatible __dirname
- Inline tailwind base config to avoid module resolution issues
- Remove unused imports (Streamdown, viewMode state)

This fixes the Turbopack parsing error that was preventing the build.
2026-01-20 13:54:24 +10:00
Ajax Davis
f5d7364c96 fix: resolve tailwind config import issues
- Inline tailwind config to resolve Turbopack import issues with @tpmjs/config
- Add exports field to @tpmjs/config package.json for proper module resolution
- Add @tpmjs/config to transpilePackages in Next.js config

Note: page.tsx has a pre-existing Turbopack parsing error at line 604
that needs to be addressed separately (it existed before these changes).
2026-01-20 12:12:16 +10:00
Ajax Davis
ffc5807ba0 feat: add E2B sandbox tools and update documentation navigation
- Add new e2b tool package for cloud sandbox code execution
- Update docs navigation with descriptions and developers guide section
- Configure blocks.yml for e2b tool discovery
2026-01-20 08:05:19 +10:00
Ajax Davis
a3436ca5a5 feat: add developers guide to documentation menu
- Add new /docs/developers/guide page with comprehensive scenarios documentation
- Explain what scenarios are, why use them, and how they work
- Cover developer use cases (CI/CD, local testing, quality monitoring)
- Include comparison with traditional testing approaches
- Add to AppHeader developers dropdown menu
2026-01-20 06:49:09 +10:00
Ajax Davis
cf2fd3ad9e feat: add conversation history and view mode toggle to scenario runs
- Add Streamdown for markdown rendering
- Add Message interface for conversation typing
- Add viewMode state (chat/debug) for switching views
- Add conversation history section in expanded run details
- Show conversation in chat format (USER/ASSISTANT/TOOL messages)
- Add view mode toggle to switch between chat and raw JSON views
- Improve usage stats section to show — when data is missing
2026-01-20 06:30:33 +10:00
Ajax Davis
8964e0c237 fix: handle null/undefined evaluator object in scenario runs
- Make evaluator field nullable in TypeScript interface
- Add optional chaining for run.evaluator?.verdict
- Add optional chaining for run.evaluator?.model
- Prevents TypeError when evaluator object is missing
2026-01-20 06:11:23 +10:00
Ajax Davis
2d939ea11b fix: handle null/undefined usage object in scenario runs
- Make usage field nullable in TypeScript interface
- Add optional chaining for run.usage?.executionTimeMs
- Add optional chaining for run.usage?.totalTokens
- Prevents TypeError when usage object is missing
2026-01-20 06:04:58 +10:00
Ajax Davis
474e11fc13 fix: handle null timestamps in scenario details page
- Add optional chaining for run.timestamps?.createdAt
- Make timestamps.createdAt optional in interface
- Add null check for evaluator.reason
- Prevents TypeError when accessing undefined properties
2026-01-20 05:40:33 +10:00
Ajax Davis
c1af7a2bde chore: add OpenCode configuration
- Add AGENTS.md with comprehensive project rules and guidelines
- Add opencode.json with model configuration (Sonnet 4.5 + Haiku 4.5)
- Add .ignore to exclude build artifacts and generated files
- Enable AI-assisted development with proper monorepo context
2026-01-20 05:30:28 +10:00
Ajax Davis
b71fe338c5 feat: allow gh/npm/pnpm/git CLI tools in Claude Code label-trigger job 2026-01-20 04:53:40 +10:00
Ajax Davis
a8fe178dc6 feat: add label-triggered Claude job that extracts prompt from issue comments 2026-01-20 04:49:45 +10:00
Ajax Davis
36d8ec6f09 fix: trigger Claude Code on claude-working label to work around GITHUB_TOKEN limitation 2026-01-20 04:45:52 +10:00
Ajax Davis
e079959cd8 fix: repair YAML syntax in tool-request workflow - avoid asterisk parsing issue 2026-01-20 04:41:43 +10:00
Ajax Davis
f3a73f1457 feat: add workflow_dispatch to tool-request pipeline for manual testing 2026-01-20 04:34:55 +10:00
Ajax Davis
ef95e10a1e feat: add tool-request pipeline for automated tool creation
- Add pipeline spec at .claude/pipelines/tool-request.md
- Add workflow to trigger Claude on 'tool-request' label
- Add auto-close workflow for published issues (24h)
- Update claude.yml with write permissions and NPM_TOKEN
- Create labels: tool-request, claude-working, validation-failed, published, escalated

Pipeline flow:
1. Maintainer applies 'tool-request' label to issue
2. Claude analyzes, designs, implements, validates, publishes
3. Issue auto-closes 24h after successful publish
2026-01-20 04:22:43 +10:00
Thomas Davis
3acb6f49e5 Merge pull request #15 from tpmjs/add-claude-github-actions-1768842720159
Add Claude Code GitHub Workflow
2026-01-20 03:12:31 +10:00
Thomas Davis
c56534a4ae "Update Claude Code Review workflow" 2026-01-20 03:12:04 +10:00
Ajax Davis
ac6fdb87e7 feat(web): add tweet button and OG tags to collection page
- Add ShareButton component for Twitter/X sharing
- Refactor collection page to server component with generateMetadata
- Add proper OpenGraph and Twitter Card meta tags for social sharing
- Extract client-side logic to CollectionDetailClient component
2026-01-19 18:16:17 +10:00
Ajax Davis
3c5c218207 feat(web): add scenarios UI - explorer, detail, and homepage section
- Add global scenarios explorer page at /scenarios
- Add scenario detail page with run history at /scenarios/[id]
- Add collection-scoped scenario detail page
- Add featured scenarios section to homepage
- Add useScenarios hook for data fetching
- Regenerate CLI manifest
2026-01-19 05:57:29 +10:00
Ajax Davis
dc684d3b0e chore(cli): bump version to 0.1.4 for npm publish 2026-01-19 05:50:32 +10:00
Ajax Davis
ad2f8a629b feat(web): add ScenariosSection component to collection page
- Create ScenariosSection component with scenario list, status badges, and metrics
- Allow generating new scenarios with AI (owner only)
- Allow running scenarios and showing run progress
- Display quality scores and pass/fail streaks
- Link to scenario detail pages for run history
2026-01-19 05:43:43 +10:00
Ajax Davis
ee3dd3dcd0 feat(scenarios): implement real agent execution with collection tools
- Replace simulated execution with real AI SDK generateText() calls
- Build tools from collection with executor config cascade
- Support multi-step tool execution with MAX_TOOL_STEPS limit
- Capture full conversation history, token usage, and execution time
- Use gpt-4.1-mini for consistent execution model
2026-01-19 05:37:59 +10:00
Ajax Davis
a1f45fa33a fix: switch scenario evaluator to gpt-4.1-mini
Changed default evaluator from claude-3-5-haiku-latest to gpt-4.1-mini
since OPENAI_API_KEY is configured in production but ANTHROPIC_API_KEY
is not.
2026-01-19 05:20:05 +10:00
Ajax Davis
c52e6eaf24 docs: add scenarios user guide and API reference
- Add /docs/scenarios page with comprehensive user guide
  - Overview of what scenarios are
  - Common archetypes for different tool types
  - CLI commands: generate, list, run, test, info
  - Quality scoring explanation
  - CI/CD integration examples
  - Rate limits documentation

- Add /docs/api/scenarios page with API reference
  - List scenarios endpoint
  - Get scenario details
  - List collection scenarios
  - Create scenario
  - Generate scenarios with AI
  - Run scenario
  - Get run history
  - Check prompt similarity
  - Featured scenarios
  - Error responses
2026-01-18 09:53:36 +10:00
Ajax Davis
ea742c9386 feat: add scenarios system for collection testing
Implements the complete scenarios feature for TPMJS:

API endpoints:
- GET/POST /api/scenarios - list/create scenarios
- GET/PATCH/DELETE /api/scenarios/:id - scenario CRUD
- POST /api/scenarios/:id/run - execute scenario
- GET /api/scenarios/:id/runs - run history
- POST /api/scenarios/check-similarity - vector similarity check
- GET /api/scenarios/featured - featured scenarios
- POST /api/collections/:id/scenarios/generate - AI scenario generation
- GET /api/collections/:id/scenarios - list collection scenarios

Services:
- generate-prompt.ts - AI prompt generation using GPT-4o-mini
- similarity.ts - vector embedding and cosine similarity
- evaluate.ts - LLM-based success evaluation
- execute.ts - scenario execution orchestration

CLI commands:
- tpm scenario list [collection] - list scenarios
- tpm scenario run <collection> - run all scenarios
- tpm scenario test <id> - run single scenario
- tpm scenario generate <collection> - generate scenarios
- tpm scenario info <id> - scenario details

Database:
- Scenario, ScenarioEmbedding, ScenarioRun, ScenarioQuota models
- Streak-based quality scoring
- Daily quota management

Migration script included for converting existing useCases.
2026-01-18 09:31:31 +10:00
Ajax Davis
154f000505 feat(cli): add @tpmjs/cli package and browser auth page
- Create comprehensive CLI with oclif framework
- Add commands: auth, tool, agent, collection, mcp, publish
- Add doctor, playground, and update commands
- Add /cli/auth page for browser-based OAuth flow
- Publish to npm as @tpmjs/cli@0.1.2
2026-01-18 06:12:34 +10:00
Ajax Davis
aa438078f9 feat: add hidden /features page for development 2026-01-18 02:13:23 +10:00
Ajax Davis
028c87056a chore: temporarily disable FeaturesSection 2026-01-18 02:11:18 +10:00
Ajax Davis
5abc85dafc fix: replace non-existent icon names to fix production crash
Changed invalid icon names that were causing viewBox undefined error:
- shield → key
- zap → star
- users → user
- code → terminal
2026-01-18 02:06:17 +10:00
Ajax Davis
69cec40fe1 docs: add MCP double-dash naming convention explanation 2026-01-18 01:53:09 +10:00
Ajax Davis
21b2c46516 fix(hllm): update package configuration and exports 2026-01-18 01:52:36 +10:00
Ajax Davis
08cd131088 feat(web): add interactive animated features section to homepage
- Add FeaturesSection with animated counters, terminal demo, and flow diagram
- Add ToolConnectionViz canvas animation showing tools → TPMJS → agents flow
- Add interactive tool grid with hover effects
- Add feature cards with scroll-triggered reveal animations
- Add FEATURES.md documenting all platform capabilities
2026-01-18 01:52:02 +10:00
Ajax Davis
c677110bfe fix(ui): resolve table dark mode styling issues
- Update Table component to use bg-surface instead of hardcoded bg-white
- Fix TableRow hover and selected states to use design system tokens
- Update virtualized tables in agents, collections, and tool-search pages
2026-01-18 01:51:41 +10:00
Ajax Davis
257aa55282 fix(auth): use correct better-auth method for password reset
Change forgetPassword to requestPasswordReset per better-auth docs.
2026-01-17 11:33:49 +10:00
Ajax Davis
7e401c82eb chore: update lockfile for judge package 2026-01-17 11:21:58 +10:00
Ajax Davis
7f907660c8 fix(auth): use better-auth client for password reset
- Use authClient.forgetPassword() instead of raw fetch
- Use authClient.resetPassword() instead of raw fetch
- Fixes 404 error on /api/auth/forget-password
2026-01-17 11:17:47 +10:00