Query, insert, update, delete, upsert rows, call RPC functions,
count rows, list tables, and search with ilike pattern matching
via the PostgREST API.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Native macOS counterpart to the web Omega agent, connecting directly
to the OpenAI API and TPMJS tool registry (1M+ AI-ready tools).
- SwiftUI app targeting macOS 15+ with dark theme
- Full agentic loop: auto-discover tools via BM25, stream OpenAI
responses, execute tools via remote sandbox, loop up to 10x
- SwiftData persistence for conversations, messages, tool runs
- Keychain storage for API keys and environment variables
- SSE streaming via URLSession.bytes with custom parser
- Actor-based services (OpenAIService, TPMJSRegistryService)
- NavigationSplitView layout with sidebar + chat detail
- MarkdownUI for rendering assistant responses
- Settings: API key, model picker, env vars, custom system prompt
- Keyboard shortcuts: Cmd+N new chat, Cmd+, settings, Enter send
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add @tpmjs/tools-slack (10 tools) and @tpmjs/tools-discord (15 tools)
with full API coverage, typed outputs, and domain-validated blocks.
Add 7 missing business categories (finance, legal, hr, marketing, cx,
edu, sales) to TPMJS_CATEGORIES so 50 previously skipped packages
can sync to tpmjs.com.
Fix lefthook secrets hook to skip gracefully when git-secrets is not
installed.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Programmatically click the zoom-in button 4 times after Isoflow renders
to increase the default zoom from ~56% to ~90-100%, making node labels
clearly readable without manual interaction.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reduced tile grid from 14x13 to 7x7 with 2-tile spacing. This increases
the default fitToView zoom from 38% to ~92%, making all node labels
clearly readable. Removed GitHub and bridge nodes to reduce clutter,
fixed @tpmjs/npm-client naming.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Isoflow bundles React 18 internally and crashes with React 19's changed
internals (ReactCurrentOwner). Solved by loading Isoflow in a standalone
HTML page via esm.sh (React 18) and embedding it as an iframe. Also
simplified the diagram to 16 key nodes for better readability.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Interactive isometric visualization of the TPMJS ecosystem showing external
services, applications, published packages, internal packages, and official
tools with their interconnections.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
startCommand overrides Dockerfile CMD causing build failure. Removed
restartPolicyMaxRetries=-1 which is not a valid Railway value.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sync system was timing out because discovery endpoints (keyword, changes)
also ran schema extraction (~10-15s per tool). Now discovery is fast
(npm metadata + DB writes only) and a new /api/sync/enrich endpoint
handles schema extraction in time-budgeted chunks.
Railway executor was crashing without restarting due to unhandled promise
rejections, no restart policy, and no health checks. Added crash
protection, graceful shutdown, cache size limits, railway.toml with
ALWAYS restart policy, and upgraded Deno from 1.39 to 2.1.9.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extend schema sanitizer to handle two more invalid patterns found in
production: TypeScript-style type values like "string[]" and
"'markdown' | 'mdx'" (not valid JSON Schema), and properties with
conflicting type:"object" alongside oneOf containing string/array
types (e.g. resend sendEmail cc/to/bcc fields).
Tool schemas from the database can contain JSON Schema keywords that
Claude's API rejects (minimum, maxLength, top-level oneOf, old $schema
drafts, etc.), causing a 400 error that crashes the entire client
session. Add sanitizeInputSchema() that recursively strips unsupported
keywords before returning tools via MCP tools/list.
Tool schemas from the database can contain JSON Schema keywords that
Claude's API rejects (minimum, maxLength, top-level oneOf, old $schema
drafts, etc.), causing a 400 error that crashes the entire client
session. Add sanitizeInputSchema() that recursively strips unsupported
keywords before returning tools via MCP tools/list.
The -H/--header flag is variadic and swallows subsequent positional
args when placed before them. Move name and URL before flags so the
CLI parses correctly. Also update docs from npx mcp-remote to native
HTTP transport.
Switch collection MCP configs from npx mcp-remote to native HTTP
transport, fix Claude Code CLI arg order (options before name/url),
rename API key placeholder to YOUR_TPMJS_API_KEY, and add moltbook
social network tool to official blocks.
Restores Collections nav link in AppHeader, full collections/[id] detail
page with MCP URLs, dashboard collections Connect tab with McpUrlDisplay,
and CollectionDetailClient with ForkButton, CodeBlock, UseCases, and
Scenarios sections.
The /collections page was incorrectly replaced with a redirect to /
in a previous commit. This restores the full public collections
listing with search, sorting, virtualized table, likes, and copy.
- 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
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).
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"
- 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.
- 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
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