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
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
- 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
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.
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.
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.
- 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
- 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
- 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
- @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
- 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
- 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
- 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
- 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
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
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
- Add /api/omega/settings/env-vars API endpoints for CRUD operations
- Add /omega/settings page with env var management UI
- Pass user env vars to tool execution in messages route
- Detect and warn about missing required env vars via SSE events
- Add EnvVarWarningBanner component to chat UI
- Update system prompt to document registry tools usage
- Improve auth flow on landing page with sign-in redirect
- Add Prisma models for conversations, messages, participants, tool runs, and user settings
- Create API endpoints for conversation CRUD and SSE message streaming
- Build landing page with sample prompts at /omega
- Build chat interface with real-time streaming at /omega/[conversationId]
- Integrate @tpmjs/registry-search and @tpmjs/registry-execute packages
- Use OpenAI GPT-4.1 Mini as the default model
- Create /:username/collections/:slug/usage.md endpoint
- Shows real-world usage patterns from test scenarios
- Filters out health check scenarios automatically
- Groups examples by tags for better organization
- Update skills.md to reference usage.md for usage examples
- Add `tpm collection info <collection>` command to list all tools in a collection
- Update `run` command examples to show workflow of listing tools first
- Fix unsandbox healthCheck tool to use /cluster endpoint instead of /health
- Update create-basic-tools template with correct tpmjs field format docs
- Change default category from 'ai-ml' to 'utilities' in generator
Published:
- @tpmjs/cli@0.1.5
- @tpmjs/create-basic-tools@1.0.7
- @tpmjs/tools-unsandbox@0.1.3
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