Commit graph

725 commits

Author SHA1 Message Date
Ajax Davis
727a44af63 chore: gitignore symlinked skill dirs and update oclif manifest 2026-02-07 01:01:06 +10:00
Ajax Davis
4bcdab09f2 chore(cli): update oclif manifest after build 2026-02-07 00:58:18 +10:00
Ajax Davis
a52d32c367 feat: add resend tools, MCP collection endpoint, and UI refinements
- Add @tpmjs/tools-resend with email API tools and blocks.yml entries
- Add MCP route for collection skill discovery
- Add InstallationSection component for collections
- Refactor collection pages to use shared components and simplify layouts
- Update skills questions API, rate limiting, and API key handling
- Add tpmjs-tool-creator skill for Claude
- Update video feature scenes and fix lint issues
- Update .gitignore with IDE and temp file exclusions
2026-02-07 00:49:40 +10:00
Ajax Davis
f3a46045ba feat(web): add llms.txt for LLM-friendly site documentation
Follows the llmstxt.org specification to provide structured context
about TPMJS for AI assistants and language models.
2026-02-07 00:09:06 +10:00
Ajax Davis
54bfbff71c fix(tools-postmark): fix short description for registry validation
Lengthen deleteWebhook description to meet 20-char minimum required
by tpmjs field validator. Bump to 0.2.1.
2026-02-06 22:42:59 +10:00
Ajax Davis
90d575797f chore(release): @tpmjs/tools-postmark@0.2.0 2026-02-06 22:30:07 +10:00
Ajax Davis
0d30a9cabb feat(tools): add @tpmjs/tools-postmark with 82 Postmark API tools
Full Postmark email API coverage: send emails, manage templates,
bounces, domains, webhooks, message streams, stats, suppressions,
inbound rules, sender signatures, and data removals. Dual auth
with server token (60 tools) and account token (22 tools).
2026-02-06 22:14:37 +10:00
Ajax Davis
86e523f3dc Revert "feat(homepage): update positioning to "Infinite Toolspace""
This reverts commit ce44aeab3a.
2026-02-04 04:12:04 +10:00
Ajax Davis
ce44aeab3a feat(homepage): update positioning to "Infinite Toolspace"
Rebrand homepage messaging around toolspace virtualization concept:
- Hero: "INFINITE TOOLSPACE" with "A million tools. Zero configuration."
- New ToolspaceSection explaining the three-stage pipeline
- FeaturesSection emphasizes retrieval layer and selection at scale
- Integration section: "MCP is the socket, TPMJS is the OS"
- Publish section: "Join the Infinite Toolspace"
2026-02-04 03:45:50 +10:00
Ajax Davis
1675e6ce6c fix(ui): resolve lint errors to enable CI deployment
- Fix react-hooks warnings in Tooltip, Popover, DropdownMenu
- Fix react-hooks/static-components in ToolRenderer
- Fix useEffect/useCallback issues in useCountUp/useControlled
- Fix jsx-a11y warnings in Modal, Drawer
- Fix empty interface and type errors
- Add biome-ignore for semantic element warnings

These fixes enable CI to pass so dark mode text fix can deploy.
2026-02-04 02:52:05 +10:00
Ajax Davis
0f7e5a3ace chore: trigger CI for dark mode fix 2026-02-04 02:28:47 +10:00
Ajax Davis
fa4e7754e6 fix: improve dark mode text readability in chat interface
Add explicit text-foreground class to assistant message bubbles
to ensure proper contrast in dark mode.
2026-02-04 02:17:50 +10:00
Ajax Davis
32c6e097ed feat(executor): formalize Executor Protocol v1.0 with compliance testing
- Add EXECUTOR_SPECIFICATION.md with formal v1.0 protocol spec
- Add executor-openapi.yaml (OpenAPI 3.0 specification)
- Create @tpmjs/executor-test compliance test package (15 tests)
- Update Railway executor to v1.0 compliance (15/15 tests pass)
- Update Unsandbox executor to v1.0 compliance (15/15 tests pass)
- Update Vercel executor to v1.0 compliance
- Add /info endpoint with capability advertisement to all executors
- Add structured error codes (PACKAGE_NOT_FOUND, TOOL_NOT_FOUND, etc.)
- Add protocolVersion and implementationVersion to /health responses
- Add X-TPMJS-Protocol-Version header support
- Add EXECUTOR_COMPLIANCE.md with test results documentation
2026-02-04 02:09:08 +10:00
Ajax Davis
760cc4b77e chore: remove temporary admin endpoints 2026-02-04 00:32:21 +10:00
Ajax Davis
b092ca490b chore: add temporary admin endpoint for user analysis 2026-02-03 23:58:39 +10:00
Ajax Davis
ffc6ddcdbb feat(executors): add Railway executor template and documentation
- Add Railway executor template with one-click deploy support
- Create Railway documentation page at /docs/executors/railway
- Update main executors page with Railway as official recommendation
- Add Railway to platform comparison table with new columns
- Update inter-page navigation for Railway → Unsandbox → Vercel flow
- Update FAQ to recommend Railway for most use cases

Railway executor features:
- Zero-dependency Node.js HTTP server
- Docker support via included Dockerfile
- Health check endpoint at /health
- Tool execution at /execute-tool
- API key authentication support
- Auto-restart on failure via railway.json
2026-02-03 22:19:41 +10:00
Ajax Davis
3f62228c56 docs(executors): add Unsandbox and Vercel deployment guides
Restructure executor documentation to support multiple platforms:
- Main /docs/executors page now serves as overview with platform selector
- Add dedicated /docs/executors/unsandbox guide with CLI deployment
- Add dedicated /docs/executors/vercel guide with one-click deploy
- Include platform comparison table and shared API specification
2026-02-03 21:47:13 +10:00
Ajax Davis
ee066a20ca Add Unsandbox executor template
Adds a new executor template for deploying TPMJS tools on Unsandbox,
providing an alternative to the Vercel executor.

Features:
- One-command deploy via `un` CLI
- API-compatible with Vercel executor
- Standalone bootstrap script (no network required during bootstrap)
- Full documentation with examples
2026-02-03 21:29:22 +10:00
Ajax Davis
f9c5d903a1 fix(registry-search): remove category filter that causes missed results 2026-01-31 01:37:13 +10:00
Ajax Davis
211be5d197 chore: bump registry-search to 0.1.4 and registry-execute to 0.1.5 2026-01-31 00:39:19 +10:00
Ajax Davis
59eefe8d55 docs(sdk): use openai gpt-4.1-mini in examples 2026-01-30 23:53:58 +10:00
Ajax Davis
0e5815e4ce docs(sdk): add MCP server, REST API, and agent building documentation
- Add MCP Server Integration section with Claude Desktop, Cursor, VS Code config examples
- Add REST API Reference documenting /api/tools, /api/tools/search, /api/tools/execute endpoints
- Add "Building an Agent Like Omega" section with complete implementation examples
- Include SSE streaming patterns for real-time tool execution UI
- Update .gitignore to exclude .env*.local files
2026-01-30 23:41:03 +10:00
Ajax Davis
2df4b53354 feat(scenarios): complete scenario evaluation system with JSON Schema validation
- Add JSON Schema validation using Ajv for structured output assertions
- Add extractJsonFromOutput() to parse JSON from various formats (direct, markdown, embedded)
- Add validateJsonSchema() for proper schema validation with error messages
- Implement structured error handling with ScenarioExecutionError class
- Add 8 error categories: COLLECTION_NOT_FOUND, NO_COLLECTION, NO_TOOLS, etc.
- Add comprehensive unit tests for execute.ts (16 tests)
- Expand evaluate.test.ts with JSON Schema validation tests (36 tests total)
- Refactor ExpandedRunDetails.tsx into smaller components for assertions and conversation display
2026-01-27 05:22:34 +10:00
Ajax Davis
13e4fd954d chore(web): remove react-grab dev tooling 2026-01-26 02:59:18 +10:00
Ajax Davis
19417964de wip 2026-01-26 02:41:45 +10:00
Ajax Davis
8542e3d7d5 feat(homepage): add features section highlighting platform capabilities
- Redesigned FeaturesSection with 9 key platform features
- Tool Registry, Omega Agent, Collections, Custom Agents
- MCP Protocol, Secure Execution, Test Scenarios
- Living Skills, Developer SDK
- Each feature card links to relevant section
- Clean, consistent design with existing brutalist style
2026-01-25 18:29:27 +10:00
Ajax Davis
16c7b8155e fix(omega): fix tool discovery on custom ports and OpenAI tool name limit
- Extract port from request URL instead of relying on PORT env var
- Truncate sanitized tool names to 64 chars (OpenAI API limit)
2026-01-25 16:59:33 +10:00
Ajax Davis
9fc928adae fix(tools): return error objects instead of throwing in registry tools
All tool executions now return error objects instead of throwing exceptions.
This allows the AI model to see errors and respond appropriately instead of
causing the entire stream to fail silently.
2026-01-25 15:10:52 +10:00
Ajax Davis
88e66d54ce fix(omega): return error result instead of throwing for tool failures
When a tool execution fails, return an error object instead of throwing.
This allows the AI model to see the error and inform the user properly,
rather than silently failing with no output.
2026-01-25 12:38:32 +10:00
Ajax Davis
4e3cb78ba4 feat(sprites): add SPRITES_TOKEN env requirement to package metadata
All sprites tools require a SPRITES_TOKEN to authenticate with sprites.dev.
This adds the env field to the tpmjs metadata so Omega can warn users
about missing API keys.
2026-01-25 12:23:43 +10:00
Ajax Davis
c51fee1484 chore: remove build script from video package 2026-01-25 12:00:25 +10:00
Ajax Davis
67fa89b1fe chore: use workspace references for registry packages
- Changed @tpmjs/registry-execute and @tpmjs/registry-search to workspace:*
- This allows the web app to use local workspace versions
- Published npm packages still available for external users
2026-01-25 11:37:59 +10:00
Ajax Davis
5926373be6 chore: update ai package to 6.0.49 across all packages
- Updated all packages from ai@6.0.23 to ai@6.0.49
- Added pnpm override to ensure consistent version
- Created changeset for publishing affected packages
2026-01-25 11:33:03 +10:00
Ajax Davis
9c6a09e747 fix(omega): unify ai package version to fix tool execution
- Add pnpm override for ai@6.0.23 to prevent version conflicts
- @tpmjs/registry-execute and @tpmjs/registry-search were using
  ai@6.0.0-beta.124 which caused tool interface incompatibility
- All packages now use ai@6.0.23 consistently
2026-01-25 11:17:10 +10:00
Ajax Davis
dff523fa99 fix(omega): move registry packages to transpilePackages for ESM support
- @tpmjs/registry-search and @tpmjs/registry-execute use ESM syntax
- Move from serverExternalPackages to transpilePackages so Next.js
  properly bundles and transpiles them
- Revert to static imports now that packages are bundled correctly
2026-01-25 05:52:52 +10:00
Ajax Davis
69162682d1 fix(omega): lazy load registry tools to fix serverless import issues 2026-01-25 05:34:12 +10:00
Ajax Davis
88c4848ab6 fix(omega): resolve module import crash and improve error handling
- Move @ai-sdk/devtools import to lazy dynamic import to prevent
  module load failures in production environment
- Add try-catch around response.json() in client to handle
  non-JSON error responses gracefully
- Display proper error message when server returns non-JSON response
2026-01-25 05:15:40 +10:00
Ajax Davis
bfd45341bb style: update design system to clean, minimal aesthetic
- Light mode: pure white backgrounds (#FFFFFF) with high contrast
  near-black text (#0A0A0A) for better readability
- Dark mode: clean neutral blacks (#0A0A0A base) instead of warm browns
- Borders use neutral grays instead of warm-tinted grays
- Status colors (success, warning, error, info) more saturated and vibrant
- Maintains copper accent color (#A6592D) as brand element
- Overall cleaner, more minimal feel with stronger contrast
2026-01-25 04:57:12 +10:00
Ajax Davis
209fd275f3 feat(skills): use Streamdown to render markdown in question detail page 2026-01-25 04:45:08 +10:00
Ajax Davis
b5731cf1a1 feat(skills): add clickable questions with detail pages and browse view
- Create /api/skills/questions endpoint for listing questions with pagination
- Create /api/skills/questions/[id] endpoint for individual question details
- Add questions list page with filtering by skill
- Add question detail page with full answer, related tools, and similar questions
- Make activity feed cards clickable links to question detail
- Add "View all" link in SkillsSection
2026-01-25 04:22:05 +10:00
Ajax Davis
9995d73052 refactor: remove UseCasesSection from collection pages
Scenarios now replace use cases as the primary way to demonstrate
collection capabilities. Removes unused state and callback handlers.
2026-01-25 04:13:59 +10:00
Ajax Davis
9f0d7a2b17 fix(skills): refactor skills section to use design system tokens
- Replace hardcoded purple/blue colors with primary/10 backgrounds
- Use text-primary for icons instead of hardcoded colors
- Use error tokens for error states instead of red-*
- Use ProgressBar component instead of custom div progress bars
- Use EmptyState component for empty activity feed
- Use Card components consistently with proper padding
- Fix TypeScript types in integration tests
2026-01-25 03:52:20 +10:00
Ajax Davis
234548c6b2 chore: sync remaining RealSkills updates and config changes
- Update skills route, activity feed, and stats components
- Update skills embedding and response generator modules
- Update Omega conversation messages route
- Update PRD documentation
- Refresh CLI oclif manifest
- Update gitignore and package configs
2026-01-25 03:34:27 +10:00
Ajax Davis
a44f38eda9 test: add comprehensive tests for CLI and scenarios
Add unit tests for:
- CLI TpmClient (api-client.test.ts) - 26 tests covering authentication,
  tool execution, agent/collection/scenario management, error handling
- Scenario evaluation (evaluate.test.ts) - 16 tests for regex assertions
  and verdict determination
- Cosine similarity (similarity.test.ts) - 16 tests for embedding comparison

Add integration tests for scenarios:
- CRUD operations (scenarios-crud.integration.test.ts)
- Run execution and quota management (scenarios-run.integration.test.ts)

Configure vitest for CLI package with @tpmjs/test shared config.
2026-01-25 03:28:28 +10:00
Ajax Davis
9c731d582e fix(web): use username/slug URL format for collection links on /collections page 2026-01-25 02:57:57 +10:00
Ajax Davis
1118463e6b feat(skills): add RealSkills living endpoint for agent Q&A
Implements a skills endpoint that evolves through agent conversations:

- GET /:username/collections/:slug/skills - Returns markdown skill summary
- POST /:username/collections/:slug/skills - Ask questions, get RAG+LLM responses

Features:
- OpenAI text-embedding-3-large (3072 dims) for semantic similarity
- GPT-4.1-mini for response generation with RAG context
- Lazy seeding of synthetic questions on first access
- Cache hits for >95% similar questions
- Real-time skill graph updates (emergent skill taxonomy)
- Session support for multi-turn conversations
- Activity feed and stats APIs for UI

Database models: SkillQuestion, Skill, SkillSession, SkillQuestionSkill, SkillQuestionTool
2026-01-25 02:37:02 +10:00
Ajax Davis
0489646e55 feat(ui): add ToolRenderer system for Omega chat
Add abstract tool rendering infrastructure to @tpmjs/ui:
- ToolRenderer component with registry-based renderer lookup
- DefaultJsonRenderer as fallback with collapsible JSON display
- RegistrySearchRenderer for registrySearchTool results
- RegistryExecuteRenderer for registryExecuteTool results
- registerBuiltInRenderers() for idempotent initialization

Update Omega chat page to use new ToolRenderer:
- Replace inline ToolCallCard with ToolRenderer component
- Add helper functions to convert between ToolCall and ToolPart
- Remove unused expandedToolCalls state (managed internally)

Also add video file extensions to .gitignore
2026-01-23 22:35:17 +10:00
Ajax Davis
ca6f908ebd fix(web): use npm versions for registry packages instead of workspace 2026-01-23 18:27:37 +10:00
Ajax Davis
fb06055f80 fix(web): remove registry packages from transpilePackages to fix conflict 2026-01-23 18:19:05 +10:00
Ajax Davis
c4ea363497 fix(web): configure ESM exports for registry packages 2026-01-23 18:11:55 +10:00