profclaw 2.0.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +14 -2
- package/CHANGELOG.md +37 -0
- package/CONTRIBUTING.md +20 -0
- package/Dockerfile +39 -23
- package/README.md +174 -40
- package/dist/agents/agent-summary.d.ts +44 -0
- package/dist/agents/agent-summary.js +176 -0
- package/dist/agents/auto-memory.d.ts +59 -0
- package/dist/agents/auto-memory.js +310 -0
- package/dist/agents/checkpoint-manager.d.ts +76 -0
- package/dist/agents/checkpoint-manager.js +156 -0
- package/dist/agents/circuit-breaker.d.ts +54 -0
- package/dist/agents/circuit-breaker.js +153 -0
- package/dist/agents/context-compactor.d.ts +70 -0
- package/dist/agents/context-compactor.js +361 -0
- package/dist/agents/conversation-branch.d.ts +55 -0
- package/dist/agents/conversation-branch.js +115 -0
- package/dist/agents/error-recovery.d.ts +44 -0
- package/dist/agents/error-recovery.js +197 -0
- package/dist/agents/events.d.ts +76 -0
- package/dist/agents/events.js +8 -0
- package/dist/agents/executor.d.ts +35 -1
- package/dist/agents/executor.js +573 -124
- package/dist/agents/file-snapshots.d.ts +72 -0
- package/dist/agents/file-snapshots.js +182 -0
- package/dist/agents/index.d.ts +2 -0
- package/dist/agents/orchestrator.d.ts +183 -0
- package/dist/agents/orchestrator.js +495 -0
- package/dist/agents/permissions.d.ts +63 -0
- package/dist/agents/permissions.js +138 -0
- package/dist/agents/plan-mode.d.ts +71 -0
- package/dist/agents/plan-mode.js +186 -0
- package/dist/agents/prompt-suggestions.d.ts +33 -0
- package/dist/agents/prompt-suggestions.js +208 -0
- package/dist/agents/rate-limit-monitor.d.ts +56 -0
- package/dist/agents/rate-limit-monitor.js +224 -0
- package/dist/agents/result-store.d.ts +37 -0
- package/dist/agents/result-store.js +104 -0
- package/dist/agents/session-diff.d.ts +43 -0
- package/dist/agents/session-diff.js +258 -0
- package/dist/agents/tool-loader.d.ts +65 -0
- package/dist/agents/tool-loader.js +273 -0
- package/dist/agents/transcript.d.ts +96 -0
- package/dist/agents/transcript.js +267 -0
- package/dist/agents/worktree-manager.d.ts +80 -0
- package/dist/agents/worktree-manager.js +203 -0
- package/dist/auth/middleware.js +14 -0
- package/dist/chat/agentic-executor.d.ts +7 -0
- package/dist/chat/agentic-executor.js +253 -30
- package/dist/chat/conversations.d.ts +2 -0
- package/dist/chat/conversations.js +8 -0
- package/dist/chat/execution/executor.d.ts +8 -0
- package/dist/chat/execution/executor.js +157 -103
- package/dist/chat/execution/index.js +5 -1
- package/dist/chat/execution/tool-router.js +40 -14
- package/dist/chat/execution/tools/canvas.d.ts +2 -2
- package/dist/chat/execution/tools/code-tools.d.ts +66 -0
- package/dist/chat/execution/tools/code-tools.js +353 -0
- package/dist/chat/execution/tools/complete-task.d.ts +2 -2
- package/dist/chat/execution/tools/cron-tool.d.ts +26 -10
- package/dist/chat/execution/tools/cron-tool.js +48 -3
- package/dist/chat/execution/tools/decompose-task.d.ts +58 -0
- package/dist/chat/execution/tools/decompose-task.js +166 -0
- package/dist/chat/execution/tools/exec.d.ts +5 -2
- package/dist/chat/execution/tools/exec.js +294 -155
- package/dist/chat/execution/tools/feed-tools.d.ts +77 -0
- package/dist/chat/execution/tools/feed-tools.js +142 -0
- package/dist/chat/execution/tools/file-ops.d.ts +1 -1
- package/dist/chat/execution/tools/github.d.ts +2 -2
- package/dist/chat/execution/tools/index.d.ts +14 -2
- package/dist/chat/execution/tools/index.js +86 -12
- package/dist/chat/execution/tools/integrations.d.ts +8 -8
- package/dist/chat/execution/tools/multi-patch.d.ts +53 -0
- package/dist/chat/execution/tools/multi-patch.js +373 -0
- package/dist/chat/execution/tools/openai-image-gen.d.ts +2 -2
- package/dist/chat/execution/tools/plan-tools.d.ts +80 -0
- package/dist/chat/execution/tools/plan-tools.js +134 -0
- package/dist/chat/execution/tools/profclaw-ops.d.ts +6 -6
- package/dist/chat/execution/tools/repl-tool.d.ts +46 -0
- package/dist/chat/execution/tools/repl-tool.js +207 -0
- package/dist/chat/execution/tools/sessions-send.d.ts +2 -2
- package/dist/chat/execution/tools/slack-actions.d.ts +2 -2
- package/dist/chat/execution/tools/system.d.ts +4 -4
- package/dist/chat/execution/tools/todo-tool.d.ts +72 -0
- package/dist/chat/execution/tools/todo-tool.js +152 -0
- package/dist/chat/execution/tools/tool-search.d.ts +50 -0
- package/dist/chat/execution/tools/tool-search.js +155 -0
- package/dist/chat/execution/types.d.ts +21 -14
- package/dist/chat/execution/workflows/executor.d.ts +11 -0
- package/dist/chat/execution/workflows/executor.js +99 -1
- package/dist/chat/execution/workflows/types.d.ts +35 -2
- package/dist/chat/format/index.d.ts +1 -0
- package/dist/chat/format/index.js +1 -0
- package/dist/chat/format/markdown-convert.d.ts +23 -0
- package/dist/chat/format/markdown-convert.js +149 -0
- package/dist/chat/index.d.ts +1 -1
- package/dist/chat/index.js +1 -1
- package/dist/chat/message-handler.js +58 -6
- package/dist/chat/proactive/index.d.ts +62 -0
- package/dist/chat/proactive/index.js +147 -0
- package/dist/chat/prompt-adapter.js +2 -0
- package/dist/chat/providers/irc/index.d.ts +2 -2
- package/dist/chat/providers/telegram/index.d.ts +2 -0
- package/dist/chat/providers/telegram/index.js +21 -2
- package/dist/chat/system-prompts.d.ts +3 -3
- package/dist/chat/system-prompts.js +116 -61
- package/dist/chat/tools.d.ts +6 -6
- package/dist/cli/commands/auth.js +64 -1
- package/dist/cli/commands/chat.js +1327 -138
- package/dist/cli/commands/doctor.js +222 -16
- package/dist/cli/commands/history.d.ts +3 -0
- package/dist/cli/commands/history.js +138 -0
- package/dist/cli/commands/import.d.ts +44 -0
- package/dist/cli/commands/import.js +526 -0
- package/dist/cli/commands/init.d.ts +13 -0
- package/dist/cli/commands/init.js +381 -0
- package/dist/cli/commands/onboard.js +210 -30
- package/dist/cli/commands/plan.d.ts +13 -0
- package/dist/cli/commands/plan.js +184 -0
- package/dist/cli/commands/serve.d.ts +7 -0
- package/dist/cli/commands/serve.js +77 -18
- package/dist/cli/commands/setup.js +84 -3
- package/dist/cli/commands/status.js +54 -0
- package/dist/cli/commands/tools.js +13 -13
- package/dist/cli/commands/tui.js +26 -1
- package/dist/cli/index.js +19 -0
- package/dist/cli/ink/App.d.ts +13 -0
- package/dist/cli/ink/App.js +6 -0
- package/dist/cli/ink/ChatApp.d.ts +60 -0
- package/dist/cli/ink/ChatApp.js +325 -0
- package/dist/cli/ink/DashboardApp.d.ts +3 -0
- package/dist/cli/ink/DashboardApp.js +143 -0
- package/dist/cli/ink/components/AgentStatus.d.ts +17 -0
- package/dist/cli/ink/components/AgentStatus.js +33 -0
- package/dist/cli/ink/components/ChannelList.d.ts +17 -0
- package/dist/cli/ink/components/ChannelList.js +33 -0
- package/dist/cli/ink/components/ConnectionStatus.d.ts +19 -0
- package/dist/cli/ink/components/ConnectionStatus.js +50 -0
- package/dist/cli/ink/components/CostBar.d.ts +19 -0
- package/dist/cli/ink/components/CostBar.js +35 -0
- package/dist/cli/ink/components/HookStatus.d.ts +15 -0
- package/dist/cli/ink/components/HookStatus.js +7 -0
- package/dist/cli/ink/components/PermissionPrompt.d.ts +21 -0
- package/dist/cli/ink/components/PermissionPrompt.js +51 -0
- package/dist/cli/ink/components/PlanView.d.ts +23 -0
- package/dist/cli/ink/components/PlanView.js +26 -0
- package/dist/cli/ink/components/ProviderList.d.ts +16 -0
- package/dist/cli/ink/components/ProviderList.js +16 -0
- package/dist/cli/ink/components/SessionHeader.d.ts +15 -0
- package/dist/cli/ink/components/SessionHeader.js +15 -0
- package/dist/cli/ink/components/StreamingMessage.d.ts +20 -0
- package/dist/cli/ink/components/StreamingMessage.js +27 -0
- package/dist/cli/ink/components/SuggestionBar.d.ts +15 -0
- package/dist/cli/ink/components/SuggestionBar.js +28 -0
- package/dist/cli/ink/components/SystemHealth.d.ts +20 -0
- package/dist/cli/ink/components/SystemHealth.js +39 -0
- package/dist/cli/ink/components/TaskList.d.ts +17 -0
- package/dist/cli/ink/components/TaskList.js +59 -0
- package/dist/cli/ink/components/ToolCall.d.ts +17 -0
- package/dist/cli/ink/components/ToolCall.js +43 -0
- package/dist/cli/ink/index.d.ts +23 -0
- package/dist/cli/ink/index.js +15 -0
- package/dist/cli/ink/keybindings.d.ts +35 -0
- package/dist/cli/ink/keybindings.js +105 -0
- package/dist/cli/ink/markdown-renderer.d.ts +47 -0
- package/dist/cli/ink/markdown-renderer.js +380 -0
- package/dist/cli/ink/output-styles.d.ts +39 -0
- package/dist/cli/ink/output-styles.js +119 -0
- package/dist/cli/interactive/auto-serve.d.ts +38 -0
- package/dist/cli/interactive/auto-serve.js +209 -0
- package/dist/cli/interactive/index.d.ts +25 -0
- package/dist/cli/interactive/index.js +23 -0
- package/dist/cli/interactive/picker.d.ts +28 -0
- package/dist/cli/interactive/picker.js +153 -0
- package/dist/cli/interactive/renderer.d.ts +26 -0
- package/dist/cli/interactive/renderer.js +555 -0
- package/dist/cli/interactive/repl.d.ts +14 -0
- package/dist/cli/interactive/repl.js +1516 -0
- package/dist/cli/interactive/stream-client.d.ts +59 -0
- package/dist/cli/interactive/stream-client.js +506 -0
- package/dist/cli/interactive/types.d.ts +121 -0
- package/dist/cli/interactive/types.js +10 -0
- package/dist/cli/utils/api.d.ts +9 -0
- package/dist/cli/utils/api.js +58 -2
- package/dist/cron/natural-language.d.ts +54 -0
- package/dist/cron/natural-language.js +569 -0
- package/dist/cron/scheduler.d.ts +34 -4
- package/dist/cron/scheduler.js +141 -9
- package/dist/cron/templates.d.ts +1 -1
- package/dist/cron/templates.js +219 -0
- package/dist/feeds/feed-engine.d.ts +149 -0
- package/dist/feeds/feed-engine.js +600 -0
- package/dist/feeds/index.d.ts +9 -0
- package/dist/feeds/index.js +8 -0
- package/dist/gateway/router.js +6 -1
- package/dist/hooks/built-in/audit-log.d.ts +11 -0
- package/dist/hooks/built-in/audit-log.js +84 -0
- package/dist/hooks/built-in/cost-warning.d.ts +10 -0
- package/dist/hooks/built-in/cost-warning.js +59 -0
- package/dist/hooks/built-in/dangerous-tool.d.ts +32 -0
- package/dist/hooks/built-in/dangerous-tool.js +80 -0
- package/dist/hooks/built-in/index.d.ts +14 -0
- package/dist/hooks/built-in/index.js +20 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.js +6 -0
- package/dist/hooks/loader.d.ts +17 -0
- package/dist/hooks/loader.js +142 -0
- package/dist/hooks/registry.d.ts +62 -0
- package/dist/hooks/registry.js +127 -0
- package/dist/integrations/web-search.js +6 -3
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.js +2 -0
- package/dist/memory/memory-service.js +14 -13
- package/dist/memory/observational.d.ts +62 -0
- package/dist/memory/observational.js +396 -0
- package/dist/middleware/content-filter.d.ts +22 -0
- package/dist/middleware/content-filter.js +69 -0
- package/dist/middleware/request-validator.d.ts +159 -0
- package/dist/middleware/request-validator.js +93 -0
- package/dist/plugins/sdk.d.ts +22 -0
- package/dist/plugins/sdk.js +17 -1
- package/dist/projects/types.d.ts +10 -10
- package/dist/providers/ai-sdk.d.ts +11 -0
- package/dist/providers/ai-sdk.js +78 -19
- package/dist/providers/core/models.js +67 -1
- package/dist/providers/core/types.d.ts +3 -0
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.js +1 -0
- package/dist/providers/smart-router.d.ts +118 -0
- package/dist/providers/smart-router.js +685 -0
- package/dist/providers/types.d.ts +16 -16
- package/dist/routes/agents.js +50 -0
- package/dist/routes/auth.js +8 -1
- package/dist/routes/chat.js +259 -14
- package/dist/routes/costs.js +32 -0
- package/dist/routes/cron.js +80 -5
- package/dist/routes/feeds.d.ts +10 -0
- package/dist/routes/feeds.js +168 -0
- package/dist/routes/mcp.js +21 -0
- package/dist/routes/memory.js +130 -0
- package/dist/routes/skills.js +129 -0
- package/dist/routes/teams.d.ts +9 -0
- package/dist/routes/teams.js +210 -0
- package/dist/routes/tools.js +14 -0
- package/dist/routes/users.js +2 -0
- package/dist/server/route-loader.js +3 -1
- package/dist/server/stream-bridge.d.ts +19 -0
- package/dist/server/stream-bridge.js +38 -0
- package/dist/server.js +310 -36
- package/dist/skills/marketplace.d.ts +87 -0
- package/dist/skills/marketplace.js +268 -0
- package/dist/storage/index.d.ts +14 -0
- package/dist/storage/index.js +64 -3
- package/dist/storage/schema.d.ts +4 -4
- package/dist/storage/schema.js +1 -1
- package/dist/teams/index.d.ts +110 -0
- package/dist/teams/index.js +365 -0
- package/dist/tickets/types.d.ts +39 -39
- package/dist/types/summary.d.ts +5 -5
- package/dist/utils/auto-update.d.ts +23 -0
- package/dist/utils/auto-update.js +157 -0
- package/dist/utils/offline-detect.d.ts +55 -0
- package/dist/utils/offline-detect.js +121 -0
- package/dist/utils/pid-file.d.ts +36 -0
- package/dist/utils/pid-file.js +125 -0
- package/dist/utils/prevent-sleep.d.ts +27 -0
- package/dist/utils/prevent-sleep.js +95 -0
- package/dist/utils/sanitizer.d.ts +57 -0
- package/dist/utils/sanitizer.js +174 -0
- package/docker-compose.yml +13 -137
- package/package.json +31 -6
- package/skills/deploy-cloudflare/SKILL.md +62 -0
- package/skills/deploy-vercel/SKILL.md +67 -0
- package/skills/docker-deploy/SKILL.md +158 -0
- package/skills/full-stack-builder/SKILL.md +92 -0
- package/skills/humanizer/SKILL.md +488 -0
- package/skills/profclaw-assistant/SKILL.md +85 -56
- package/ui/dist/assets/ActivityView-Da6HQ8ws.js +1 -0
- package/ui/dist/assets/AgentList-H58R0kX3.js +1 -0
- package/ui/dist/assets/AnalyticsDashboard-B28AeRsc.js +1 -0
- package/ui/dist/assets/AreaChart-DwLzeAQ8.js +1 -0
- package/ui/dist/assets/CartesianChart-piKQsTAR.js +36 -0
- package/ui/dist/assets/ChatView-Dbj8rxU5.js +10 -0
- package/ui/dist/assets/CostsDashboard-C6F5df0F.js +1 -0
- package/ui/dist/assets/EstimateSelect-wga0rUKX.js +1 -0
- package/ui/dist/assets/FeedDashboard-Ef6FEzEf.js +1 -0
- package/ui/dist/assets/FloatingChatbot-0yhkUeCq.js +2 -0
- package/ui/dist/assets/InviteCodeManagement-tUXfx4Bc.js +2 -0
- package/ui/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/ui/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/ui/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/ui/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/ui/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/ui/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/ui/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/ui/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/ui/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/ui/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/ui/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/ui/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/ui/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/ui/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/ui/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/ui/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/ui/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/ui/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/ui/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/ui/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/ui/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/ui/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/ui/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/ui/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/ui/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/ui/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/ui/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/ui/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/ui/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/ui/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/ui/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/ui/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/ui/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/ui/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/ui/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/ui/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/ui/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/ui/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/ui/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/ui/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/ui/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/ui/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/ui/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/ui/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/ui/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/ui/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/ui/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/ui/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/ui/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/ui/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/ui/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/ui/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/ui/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/ui/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/ui/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/ui/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/ui/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/ui/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/ui/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/ui/dist/assets/MarketplacePage-DGrLtolR.js +1 -0
- package/ui/dist/assets/{ProjectDetail--gPfvATB.js → ProjectDetail-BgWvA6UP.js} +2 -2
- package/ui/dist/assets/ProjectIcon-TDuliqwg.js +1 -0
- package/ui/dist/assets/ProjectList-DXgM4187.js +1 -0
- package/ui/dist/assets/{Settings-1kaf7VHE.js → Settings-xA8Zhi3p.js} +3 -3
- package/ui/dist/assets/StatusIndicator-B8vfFAxg.js +1 -0
- package/ui/dist/assets/{SummaryDetail-DV3AmONk.js → SummaryDetail-eedRfTtF.js} +2 -2
- package/ui/dist/assets/SummaryList-CLNX2P84.js +1 -0
- package/ui/dist/assets/TaskDetail-BtWclNiR.js +1 -0
- package/ui/dist/assets/TaskList-JjODAgSc.js +1 -0
- package/ui/dist/assets/TeamsPage-CBK5iAyx.js +1 -0
- package/ui/dist/assets/TicketBoard-C9aJNNYp.js +1 -0
- package/ui/dist/assets/TicketDetail-CV5JmL31.js +1 -0
- package/ui/dist/assets/TicketList-68V4lzUz.js +1 -0
- package/ui/dist/assets/UserManagement-DKTb6UpE.js +2 -0
- package/ui/dist/assets/ViewSwitcher-BvdQht2Y.js +1 -0
- package/ui/dist/assets/alert-dialog-O6qBOv_f.js +1 -0
- package/ui/dist/assets/{archive-BsLa7brF.js → archive-CX7UvZpf.js} +1 -1
- package/ui/dist/assets/badge-BbfnwDJP.js +1 -0
- package/ui/dist/assets/{bug-CmZI7jqM.js → bug-3WX0394-.js} +1 -1
- package/ui/dist/assets/{calendar-Bf0t2B82.js → calendar-buq77TaS.js} +1 -1
- package/ui/dist/assets/{chevron-up-CoUsOvZj.js → chevron-up-4ymsBJRo.js} +1 -1
- package/ui/dist/assets/{circle-x-Dgw11LgT.js → circle-x-ByXtwR6Y.js} +1 -1
- package/ui/dist/assets/constants-CVdDh7p0.js +1 -0
- package/ui/dist/assets/{cpu-DiPMQICV.js → cpu-CiuoCeDY.js} +1 -1
- package/ui/dist/assets/{database-BwTfupDi.js → database-BWXSBg5a.js} +1 -1
- package/ui/dist/assets/dialog-lDg4NvMV.js +1 -0
- package/ui/dist/assets/dollar-sign-Dmijd6DP.js +1 -0
- package/ui/dist/assets/{ellipsis-UJx4Xnf6.js → ellipsis-vT-5SVIp.js} +1 -1
- package/ui/dist/assets/{ellipsis-vertical-DoULYEKn.js → ellipsis-vertical-B4tAX_bL.js} +1 -1
- package/ui/dist/assets/feature-markdown-DBo5Q7uq.js +289 -0
- package/ui/dist/assets/{file-code-B2UrJLwi.js → file-code-ChOWdKXf.js} +1 -1
- package/ui/dist/assets/{folder-open-BJi577JH.js → folder-open-CkOUbIiP.js} +1 -1
- package/ui/dist/assets/{funnel-PkaD_HSR.js → funnel-uZkoSPP-.js} +1 -1
- package/ui/dist/assets/{git-branch-C_K30am0.js → git-branch-CwvUxj7C.js} +1 -1
- package/ui/dist/assets/{git-commit-horizontal-IT6ecxWQ.js → git-commit-horizontal-lxPzCvhD.js} +1 -1
- package/ui/dist/assets/{globe-f-jjCa_g.js → globe-D_WpJdsj.js} +1 -1
- package/ui/dist/assets/{hash-DNEv8Elo.js → hash-CA0hJ7vh.js} +1 -1
- package/ui/dist/assets/{history-BQSBo_1Q.js → history-CEWMLELs.js} +1 -1
- package/ui/dist/assets/inbox-ehtOptTV.js +1 -0
- package/ui/dist/assets/{index-nS3EErDg.js → index-C1rhbml4.js} +3 -3
- package/ui/dist/assets/index-CR8gfCHv.js +1 -0
- package/ui/dist/assets/index-DVXMpWai.js +1 -0
- package/ui/dist/assets/index-DaDJMM2v.js +1 -0
- package/ui/dist/assets/index-Djdq_0xu.js +1 -0
- package/ui/dist/assets/index-M46Gcb8K.css +1 -0
- package/ui/dist/assets/index-sEBN7w8J.js +109 -0
- package/ui/dist/assets/layers-C6Mhf8Nk.js +1 -0
- package/ui/dist/assets/{layout-dashboard-CcKt1hXw.js → layout-dashboard-BRUM0kpT.js} +1 -1
- package/ui/dist/assets/{lightbulb-Jhp7FvbU.js → lightbulb-CN2q1O5l.js} +1 -1
- package/ui/dist/assets/{link-2-DdO7ostF.js → link-2-CC4E28yJ.js} +1 -1
- package/ui/dist/assets/markdown-renderer-C6ENbB0u.js +10 -0
- package/ui/dist/assets/markdown-renderer-CfVKi3_s.css +1 -0
- package/ui/dist/assets/{message-square-CBgH65X7.js → message-square-Bbb241am.js} +1 -1
- package/ui/dist/assets/package-CwT3IzFx.js +1 -0
- package/ui/dist/assets/{pencil-CYXCEPQh.js → pencil-CDmiHzoj.js} +1 -1
- package/ui/dist/assets/{play-d1ONaH0-.js → play-tjy5jMQX.js} +1 -1
- package/ui/dist/assets/popover-CFHZf3pE.js +1 -0
- package/ui/dist/assets/progress-BboUHuLf.js +1 -0
- package/ui/dist/assets/{rocket-DhvUetsk.js → rocket--8ZHgdXJ.js} +1 -1
- package/ui/dist/assets/select-n108rXny.js +1 -0
- package/ui/dist/assets/{send-P0r5D7td.js → send-Cu7MR2Qh.js} +1 -1
- package/ui/dist/assets/server-DmodxZp-.js +1 -0
- package/ui/dist/assets/{settings-2-ocj5uHGx.js → settings-2-CkRNqkxj.js} +1 -1
- package/ui/dist/assets/sheet-7aUJkyzU.js +1 -0
- package/ui/dist/assets/{shield-check-DfVdE34l.js → shield-check-ViI3nMKE.js} +1 -1
- package/ui/dist/assets/{shield-off-8l0J6R-8.js → shield-off-DN3tagkn.js} +1 -1
- package/ui/dist/assets/skeleton-C0E1Nfro.js +1 -0
- package/ui/dist/assets/{smartphone-77_g3SQn.js → smartphone-5FghiXpA.js} +1 -1
- package/ui/dist/assets/{square-Ckzsr3Rn.js → square-DiNSx8K7.js} +1 -1
- package/ui/dist/assets/star-DhdFVidS.js +1 -0
- package/ui/dist/assets/switch-CIgVbZqQ.js +1 -0
- package/ui/dist/assets/table-BC56FVMV.js +1 -0
- package/ui/dist/assets/{tag-C35mgoEv.js → tag-CH_vQliw.js} +1 -1
- package/ui/dist/assets/textarea-CxDiKFXZ.js +1 -0
- package/ui/dist/assets/{timer-DHJBS2w1.js → timer-CdGVTb60.js} +1 -1
- package/ui/dist/assets/tooltip-BuW9A5UO.js +1 -0
- package/ui/dist/assets/{trash-2-keO5tKPE.js → trash-2-CucZJL0N.js} +1 -1
- package/ui/dist/assets/trending-down-BCezC1z2.js +1 -0
- package/ui/dist/assets/{trending-up-BBv8KbrY.js → trending-up-C5OYX2k2.js} +1 -1
- package/ui/dist/assets/vendor-query-C0p7b53x.js +4 -0
- package/ui/dist/assets/vendor-react-Mc5_kfYG.js +12 -0
- package/ui/dist/assets/vendor-ui-CXPAUBFv.js +51 -0
- package/ui/dist/assets/{wand-sparkles-BusQ52ZK.js → wand-sparkles-BaH6pJnc.js} +1 -1
- package/ui/dist/assets/{wrench-02YaOSiK.js → wrench-CjxjP6ok.js} +1 -1
- package/ui/dist/index.html +5 -2
- package/ui/dist/assets/ActivityView-BeshZXmE.js +0 -1
- package/ui/dist/assets/AgentList-QVHeldPi.js +0 -1
- package/ui/dist/assets/AnalyticsDashboard-C9R97dXE.js +0 -1
- package/ui/dist/assets/AreaChart-B73gaiVQ.js +0 -1
- package/ui/dist/assets/CartesianChart-CXYL2R-A.js +0 -36
- package/ui/dist/assets/ChatView-qjZErlrp.js +0 -10
- package/ui/dist/assets/CostsDashboard-O4DCLy1i.js +0 -1
- package/ui/dist/assets/EstimateSelect-1hQf4Osk.js +0 -1
- package/ui/dist/assets/FloatingChatbot-BZBzrJxd.js +0 -2
- package/ui/dist/assets/InviteCodeManagement-LEoGqYeA.js +0 -2
- package/ui/dist/assets/ProjectIcon-Chd_ofsw.js +0 -1
- package/ui/dist/assets/ProjectList-BvUfVB6c.js +0 -4
- package/ui/dist/assets/StatusIndicator-pRfkNcdV.js +0 -1
- package/ui/dist/assets/SummaryList-B6kXiTxL.js +0 -1
- package/ui/dist/assets/TaskDetail-CV6CzbOS.js +0 -1
- package/ui/dist/assets/TaskList-DL7brQKd.js +0 -1
- package/ui/dist/assets/TicketBoard-CrkkFj7C.js +0 -1
- package/ui/dist/assets/TicketDetail-hnnYclpD.js +0 -1
- package/ui/dist/assets/TicketList-CsDAyQCL.js +0 -1
- package/ui/dist/assets/UserManagement-BGFQyTSr.js +0 -2
- package/ui/dist/assets/ViewSwitcher-CnL0OqA8.js +0 -1
- package/ui/dist/assets/alert-dialog-SKM6Gjz4.js +0 -7
- package/ui/dist/assets/badge-CVHH1a-v.js +0 -1
- package/ui/dist/assets/brain-6o_RHVpe.js +0 -1
- package/ui/dist/assets/constants-Q5Zivl-a.js +0 -1
- package/ui/dist/assets/dialog-BUqN9Psj.js +0 -1
- package/ui/dist/assets/index-BUmnwPQr.js +0 -1
- package/ui/dist/assets/index-BfF5G4Cw.js +0 -1
- package/ui/dist/assets/index-C8N375c2.js +0 -1
- package/ui/dist/assets/index-CuxnqVVz.css +0 -1
- package/ui/dist/assets/index-CzMM3QOk.js +0 -1
- package/ui/dist/assets/index-lJlNPFVJ.js +0 -67
- package/ui/dist/assets/layers-jFqVrWMD.js +0 -1
- package/ui/dist/assets/markdown-renderer-n1ToC4XQ.js +0 -36
- package/ui/dist/assets/popover-CrmZgoWu.js +0 -1
- package/ui/dist/assets/progress-uv4SPkL5.js +0 -1
- package/ui/dist/assets/select-CeQ8AHGy.js +0 -1
- package/ui/dist/assets/server-CVHTZB72.js +0 -1
- package/ui/dist/assets/sheet-DuQExSho.js +0 -1
- package/ui/dist/assets/skeleton-TFiFJ3nB.js +0 -1
- package/ui/dist/assets/switch-CAePkd6k.js +0 -1
- package/ui/dist/assets/table-ZjAZ7hkt.js +0 -1
- package/ui/dist/assets/textarea-DsVPnSgR.js +0 -1
- package/ui/dist/assets/tooltip-BYmQ331W.js +0 -1
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feed Tools
|
|
3
|
+
*
|
|
4
|
+
* AI agent tools for managing RSS/Atom feeds and news digests.
|
|
5
|
+
* Allows agents to add feeds, poll for articles, and generate digests.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
// Param schemas
|
|
9
|
+
const FeedListParams = z.object({
|
|
10
|
+
category: z.string().optional().describe('Filter by category (e.g., "ai", "security", "dev")'),
|
|
11
|
+
enabled: z.boolean().optional().describe('Filter by enabled status'),
|
|
12
|
+
});
|
|
13
|
+
const FeedAddParams = z.object({
|
|
14
|
+
name: z.string().min(1).describe('Name for the feed'),
|
|
15
|
+
url: z.string().url().describe('RSS/Atom feed URL'),
|
|
16
|
+
category: z.string().optional().describe('Category (e.g., "ai", "security", "dev")'),
|
|
17
|
+
tags: z.array(z.string()).optional().describe('Tags for filtering'),
|
|
18
|
+
});
|
|
19
|
+
const FeedBundleInstallParams = z.object({
|
|
20
|
+
bundle: z.string().describe('Bundle name to install (e.g., "ai-news", "dev-news", "security")'),
|
|
21
|
+
});
|
|
22
|
+
const FeedPollParams = z.object({
|
|
23
|
+
feedId: z.string().optional().describe('Specific feed ID to poll. If omitted, polls all due feeds.'),
|
|
24
|
+
});
|
|
25
|
+
const FeedDigestParams = z.object({
|
|
26
|
+
category: z.string().optional().describe('Filter articles by feed category'),
|
|
27
|
+
hours: z.number().optional().describe('Look back N hours (default: 24)'),
|
|
28
|
+
limit: z.number().optional().describe('Max articles to return (default: 20)'),
|
|
29
|
+
});
|
|
30
|
+
const FeedDiscoverParams = z.object({
|
|
31
|
+
url: z.string().url().describe('Website URL to discover feed from'),
|
|
32
|
+
});
|
|
33
|
+
// Tools
|
|
34
|
+
export const feedListTool = {
|
|
35
|
+
name: 'feed_list',
|
|
36
|
+
description: 'List configured RSS/Atom feeds. Shows feed names, URLs, categories, and article counts.',
|
|
37
|
+
category: 'data',
|
|
38
|
+
parameters: FeedListParams,
|
|
39
|
+
securityLevel: 'safe',
|
|
40
|
+
async execute(_context, params) {
|
|
41
|
+
const { listFeeds } = await import('../../../feeds/index.js');
|
|
42
|
+
const feeds = await listFeeds({ category: params.category, enabled: params.enabled });
|
|
43
|
+
if (feeds.length === 0) {
|
|
44
|
+
return { success: true, output: 'No feeds configured. Use feed_add to add feeds or feed_bundle_install to add a bundle.' };
|
|
45
|
+
}
|
|
46
|
+
const lines = feeds.map((f) => `- ${f.name} (${f.category}) - ${f.articleCount} articles${f.enabled ? '' : ' [disabled]'}`);
|
|
47
|
+
return { success: true, output: `${feeds.length} feeds:\n${lines.join('\n')}`, data: feeds };
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
export const feedAddTool = {
|
|
51
|
+
name: 'feed_add',
|
|
52
|
+
description: 'Add a new RSS/Atom feed source. The feed will be polled automatically for new articles.',
|
|
53
|
+
category: 'data',
|
|
54
|
+
parameters: FeedAddParams,
|
|
55
|
+
securityLevel: 'safe',
|
|
56
|
+
async execute(_context, params) {
|
|
57
|
+
const { addFeed } = await import('../../../feeds/index.js');
|
|
58
|
+
try {
|
|
59
|
+
const feed = await addFeed(params);
|
|
60
|
+
return { success: true, output: `Added feed: ${feed.name} (${feed.category}) - ${feed.url}`, data: feed };
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
return { success: false, error: { code: 'FEED_ADD_FAILED', message: error instanceof Error ? error.message : 'Failed' } };
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
export const feedBundleInstallTool = {
|
|
68
|
+
name: 'feed_bundle_install',
|
|
69
|
+
description: 'Install a pre-configured bundle of RSS feeds. Available bundles: ai-news, dev-news, security.',
|
|
70
|
+
category: 'data',
|
|
71
|
+
parameters: FeedBundleInstallParams,
|
|
72
|
+
securityLevel: 'safe',
|
|
73
|
+
async execute(_context, params) {
|
|
74
|
+
const { addFeedBundle, FEED_BUNDLES } = await import('../../../feeds/index.js');
|
|
75
|
+
if (!FEED_BUNDLES[params.bundle]) {
|
|
76
|
+
return { success: false, error: { code: 'BUNDLE_NOT_FOUND', message: `Unknown bundle: ${params.bundle}. Available: ${Object.keys(FEED_BUNDLES).join(', ')}` } };
|
|
77
|
+
}
|
|
78
|
+
const feeds = await addFeedBundle(params.bundle);
|
|
79
|
+
return { success: true, output: `Installed ${feeds.length} feeds from "${params.bundle}" bundle:\n${feeds.map((f) => `- ${f.name}`).join('\n')}`, data: { installed: feeds.length, feeds } };
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
export const feedPollTool = {
|
|
83
|
+
name: 'feed_poll',
|
|
84
|
+
description: 'Poll RSS/Atom feeds for new articles. Can poll a specific feed or all due feeds.',
|
|
85
|
+
category: 'data',
|
|
86
|
+
parameters: FeedPollParams,
|
|
87
|
+
securityLevel: 'safe',
|
|
88
|
+
async execute(_context, params) {
|
|
89
|
+
if (params.feedId) {
|
|
90
|
+
const { pollFeed } = await import('../../../feeds/index.js');
|
|
91
|
+
const result = await pollFeed(params.feedId);
|
|
92
|
+
return { success: !result.errors, output: result.errors ? `Poll failed: ${result.errors}` : `Found ${result.newArticles} new articles`, data: result };
|
|
93
|
+
}
|
|
94
|
+
const { pollAllFeeds } = await import('../../../feeds/index.js');
|
|
95
|
+
const result = await pollAllFeeds();
|
|
96
|
+
return { success: true, output: `Polled ${result.total} feeds: ${result.newArticles} new articles, ${result.errors} errors`, data: result };
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
export const feedDigestTool = {
|
|
100
|
+
name: 'feed_digest',
|
|
101
|
+
description: 'Get recent articles from RSS feeds for building a news digest. Returns article titles, summaries, and URLs.',
|
|
102
|
+
category: 'data',
|
|
103
|
+
parameters: FeedDigestParams,
|
|
104
|
+
securityLevel: 'safe',
|
|
105
|
+
async execute(_context, params) {
|
|
106
|
+
const { getDigestArticles, markAsDigested } = await import('../../../feeds/index.js');
|
|
107
|
+
const hours = params.hours || 24;
|
|
108
|
+
const since = new Date(Date.now() - hours * 60 * 60 * 1000);
|
|
109
|
+
const articles = await getDigestArticles({ since, category: params.category, limit: params.limit || 20, undigestedOnly: true });
|
|
110
|
+
if (articles.length === 0) {
|
|
111
|
+
return { success: true, output: `No new articles in the last ${hours} hours${params.category ? ` for category "${params.category}"` : ''}. Try polling feeds first with feed_poll.` };
|
|
112
|
+
}
|
|
113
|
+
await markAsDigested(articles.map((a) => a.id));
|
|
114
|
+
const lines = articles.map((a, i) => `${i + 1}. ${a.title}\n ${a.url}\n ${a.summary || '(no summary)'}`);
|
|
115
|
+
return { success: true, output: `${articles.length} articles from the last ${hours} hours:\n\n${lines.join('\n\n')}`, data: articles };
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
export const feedDiscoverTool = {
|
|
119
|
+
name: 'feed_discover',
|
|
120
|
+
description: 'Auto-discover an RSS/Atom feed URL from a website. Checks link tags and common feed paths.',
|
|
121
|
+
category: 'data',
|
|
122
|
+
parameters: FeedDiscoverParams,
|
|
123
|
+
securityLevel: 'safe',
|
|
124
|
+
async execute(_context, params) {
|
|
125
|
+
const { discoverFeedUrl } = await import('../../../feeds/index.js');
|
|
126
|
+
const feedUrl = await discoverFeedUrl(params.url);
|
|
127
|
+
if (feedUrl) {
|
|
128
|
+
return { success: true, output: `Found feed: ${feedUrl}\nUse feed_add to subscribe.`, data: { feedUrl } };
|
|
129
|
+
}
|
|
130
|
+
return { success: true, output: `No feed found at ${params.url}. The site may not have an RSS/Atom feed.` };
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
// Export all feed tools as array (cast for generic compatibility)
|
|
134
|
+
export const feedTools = [
|
|
135
|
+
feedListTool,
|
|
136
|
+
feedAddTool,
|
|
137
|
+
feedBundleInstallTool,
|
|
138
|
+
feedPollTool,
|
|
139
|
+
feedDigestTool,
|
|
140
|
+
feedDiscoverTool,
|
|
141
|
+
];
|
|
142
|
+
//# sourceMappingURL=feed-tools.js.map
|
|
@@ -66,8 +66,8 @@ declare const GrepParamsSchema: z.ZodObject<{
|
|
|
66
66
|
pattern: string;
|
|
67
67
|
path?: string | undefined;
|
|
68
68
|
context?: number | undefined;
|
|
69
|
-
maxResults?: number | undefined;
|
|
70
69
|
glob?: string | undefined;
|
|
70
|
+
maxResults?: number | undefined;
|
|
71
71
|
}>;
|
|
72
72
|
declare const EditFileParamsSchema: z.ZodObject<{
|
|
73
73
|
path: z.ZodString;
|
|
@@ -14,7 +14,7 @@ declare const GithubPrParamsSchema: z.ZodObject<{
|
|
|
14
14
|
base: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
15
15
|
head: z.ZodOptional<z.ZodString>;
|
|
16
16
|
}, "strip", z.ZodTypeAny, {
|
|
17
|
-
action: "comment" | "create" | "get" | "
|
|
17
|
+
action: "comment" | "create" | "get" | "list" | "diff" | "merge";
|
|
18
18
|
base: string;
|
|
19
19
|
title?: string | undefined;
|
|
20
20
|
repo?: string | undefined;
|
|
@@ -22,7 +22,7 @@ declare const GithubPrParamsSchema: z.ZodObject<{
|
|
|
22
22
|
head?: string | undefined;
|
|
23
23
|
pr_number?: number | undefined;
|
|
24
24
|
}, {
|
|
25
|
-
action: "comment" | "create" | "get" | "
|
|
25
|
+
action: "comment" | "create" | "get" | "list" | "diff" | "merge";
|
|
26
26
|
title?: string | undefined;
|
|
27
27
|
repo?: string | undefined;
|
|
28
28
|
body?: string | undefined;
|
|
@@ -7,6 +7,8 @@ import type { ToolDefinition } from '../types.js';
|
|
|
7
7
|
export { execTool } from './exec.js';
|
|
8
8
|
export { webFetchTool } from './web-fetch.js';
|
|
9
9
|
export { readFileTool, writeFileTool, searchFilesTool, grepTool, editFileTool, directoryTreeTool, patchApplyTool } from './file-ops.js';
|
|
10
|
+
export { multiPatchTool } from './multi-patch.js';
|
|
11
|
+
export type { MultiPatchParams, MultiPatchResult, MultiPatchFileResult } from './multi-patch.js';
|
|
10
12
|
export { githubPrTool } from './github.js';
|
|
11
13
|
export { testRunTool } from './test-run.js';
|
|
12
14
|
export { imageAnalyzeTool } from './image-analyze.js';
|
|
@@ -20,10 +22,13 @@ export { agentsListTool } from './agents-list.js';
|
|
|
20
22
|
export { memorySearchTool, memoryGetTool, memoryStatsTool } from './memory-tools.js';
|
|
21
23
|
export { webSearchTool } from './web-search.js';
|
|
22
24
|
export { completeTaskTool } from './complete-task.js';
|
|
25
|
+
export { decomposeTaskTool } from './decompose-task.js';
|
|
26
|
+
export type { DecomposeTaskParams } from './decompose-task.js';
|
|
23
27
|
export { cronCreateTool, cronListTool, cronTriggerTool, cronPauseTool, cronArchiveTool, cronDeleteTool, cronHistoryTool, cronTools, } from './cron-tool.js';
|
|
24
28
|
export { createTicketTool, createProjectTool, listTicketsTool, listProjectsTool, updateTicketTool, getTicketTool, profclawTools, } from './profclaw-ops.js';
|
|
25
29
|
export type { CronCreateParams, CronCreateResult, CronListParams, CronListResult, CronTriggerParams, CronTriggerResult, CronPauseParams, CronPauseResult, CronArchiveParams, CronArchiveResult, CronDeleteParams, CronDeleteResult, CronHistoryParams, CronHistoryResult, } from './cron-tool.js';
|
|
26
|
-
export {
|
|
30
|
+
export { typeCheckTool, lintTool, buildTool, formatTool, projectInfoTool, createPrTool, codeTools, } from './code-tools.js';
|
|
31
|
+
export { feedListTool, feedAddTool, feedBundleInstallTool, feedPollTool, feedDigestTool, feedDiscoverTool, feedTools, } from './feed-tools.js';
|
|
27
32
|
export { canvasRenderTool } from './canvas.js';
|
|
28
33
|
export type { CanvasRenderResult, CanvasArtifact } from './canvas.js';
|
|
29
34
|
export { getArtifact, listArtifacts, clearArtifacts } from './canvas.js';
|
|
@@ -44,6 +49,10 @@ export type { SlackActionsResult } from './slack-actions.js';
|
|
|
44
49
|
export { telegramActionsTool } from './telegram-actions.js';
|
|
45
50
|
export type { TelegramActionsResult } from './telegram-actions.js';
|
|
46
51
|
export { spawnSessionTool, sendMessageTool, receiveMessagesTool, listSessionsTool, sessionSpawnTools, } from './session-spawn.js';
|
|
52
|
+
export { replTool, listReplSessions, closeReplSession, getReplSessionsMap, } from './repl-tool.js';
|
|
53
|
+
export type { REPLSession, REPLResult, ReplExecuteParams } from './repl-tool.js';
|
|
54
|
+
export { todoWriteTool, todoReadTool, clearTodos, getTodos, getTodoStore, } from './todo-tool.js';
|
|
55
|
+
export type { TodoItem, TodoStatus, TodoPriority, TodoWriteResult, TodoReadResult, TodoWriteParams, TodoReadParams, } from './todo-tool.js';
|
|
47
56
|
export type { ExecResult } from './exec.js';
|
|
48
57
|
export type { WebFetchResult } from './web-fetch.js';
|
|
49
58
|
export type { ReadFileResult, WriteFileResult, SearchFilesResult, GrepResult, GrepMatch, EditFileResult, DirectoryTreeResult, PatchApplyResult } from './file-ops.js';
|
|
@@ -59,6 +68,9 @@ export type { BrowserNavigateResult, BrowserSnapshotResult, BrowserClickResult,
|
|
|
59
68
|
export declare const builtinTools: ToolDefinition[];
|
|
60
69
|
/**
|
|
61
70
|
* Register all built-in tools (with tier assignments and mode gating)
|
|
71
|
+
*
|
|
72
|
+
* Browser and canvas tools are loaded dynamically to avoid pulling in
|
|
73
|
+
* playwright-core (~72MB) in modes that don't need it.
|
|
62
74
|
*/
|
|
63
|
-
export declare function registerBuiltinTools(): void
|
|
75
|
+
export declare function registerBuiltinTools(): Promise<void>;
|
|
64
76
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -37,14 +37,30 @@ import { completeTaskTool } from './complete-task.js';
|
|
|
37
37
|
import { cronTools } from './cron-tool.js';
|
|
38
38
|
// profClaw ops tools (ticket, project management)
|
|
39
39
|
import { profclawTools } from './profclaw-ops.js';
|
|
40
|
-
// Browser tools
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
// Browser tools — lazy loaded (playwright-core is ~72MB RSS)
|
|
41
|
+
let _browserTools = null;
|
|
42
|
+
async function loadBrowserTools() {
|
|
43
|
+
if (!_browserTools) {
|
|
44
|
+
const mod = await import('./browser.js');
|
|
45
|
+
_browserTools = mod.browserTools;
|
|
46
|
+
}
|
|
47
|
+
return _browserTools;
|
|
48
|
+
}
|
|
49
|
+
// Canvas tools — no heavy deps, safe to import statically
|
|
43
50
|
import { canvasRenderTool } from './canvas.js';
|
|
44
51
|
// Session spawn tools (hierarchical agent sessions)
|
|
45
52
|
import { sessionSpawnTools } from './session-spawn.js';
|
|
46
53
|
// Integration tools (screen capture, clipboard, notifications)
|
|
47
54
|
import { screenCaptureTool, clipboardReadTool, clipboardWriteTool, notifyTool } from './integrations.js';
|
|
55
|
+
// Feed tools
|
|
56
|
+
import { feedTools } from './feed-tools.js';
|
|
57
|
+
// Code tools (typecheck, lint, build, format, project_info, create_pr)
|
|
58
|
+
import { codeTools } from './code-tools.js';
|
|
59
|
+
// Multi-file patch tool
|
|
60
|
+
import { multiPatchTool } from './multi-patch.js';
|
|
61
|
+
// REPL and Todo tools
|
|
62
|
+
import { replTool } from './repl-tool.js';
|
|
63
|
+
import { todoWriteTool, todoReadTool } from './todo-tool.js';
|
|
48
64
|
// Phase 3 parity tools
|
|
49
65
|
import { openaiImageGenTool } from './openai-image-gen.js';
|
|
50
66
|
import { ttsSpeakTool } from './tts-speak.js';
|
|
@@ -53,10 +69,13 @@ import { subagentOrchestrateTool } from './subagent-orchestrate.js';
|
|
|
53
69
|
import { discordActionsTool } from './discord-actions.js';
|
|
54
70
|
import { slackActionsTool } from './slack-actions.js';
|
|
55
71
|
import { telegramActionsTool } from './telegram-actions.js';
|
|
72
|
+
// Decompose task tool (checkpoint / resume)
|
|
73
|
+
import { decomposeTaskTool } from './decompose-task.js';
|
|
56
74
|
// Export individual tools
|
|
57
75
|
export { execTool } from './exec.js';
|
|
58
76
|
export { webFetchTool } from './web-fetch.js';
|
|
59
77
|
export { readFileTool, writeFileTool, searchFilesTool, grepTool, editFileTool, directoryTreeTool, patchApplyTool } from './file-ops.js';
|
|
78
|
+
export { multiPatchTool } from './multi-patch.js';
|
|
60
79
|
// GitHub tools exports
|
|
61
80
|
export { githubPrTool } from './github.js';
|
|
62
81
|
// Test tools exports
|
|
@@ -77,12 +96,17 @@ export { memorySearchTool, memoryGetTool, memoryStatsTool } from './memory-tools
|
|
|
77
96
|
export { webSearchTool } from './web-search.js';
|
|
78
97
|
// Task completion tool exports
|
|
79
98
|
export { completeTaskTool } from './complete-task.js';
|
|
99
|
+
// Decompose task tool exports
|
|
100
|
+
export { decomposeTaskTool } from './decompose-task.js';
|
|
80
101
|
// Cron tools exports
|
|
81
102
|
export { cronCreateTool, cronListTool, cronTriggerTool, cronPauseTool, cronArchiveTool, cronDeleteTool, cronHistoryTool, cronTools, } from './cron-tool.js';
|
|
82
103
|
// profClaw ops tools exports
|
|
83
104
|
export { createTicketTool, createProjectTool, listTicketsTool, listProjectsTool, updateTicketTool, getTicketTool, profclawTools, } from './profclaw-ops.js';
|
|
84
|
-
//
|
|
85
|
-
export {
|
|
105
|
+
// Code tools exports
|
|
106
|
+
export { typeCheckTool, lintTool, buildTool, formatTool, projectInfoTool, createPrTool, codeTools, } from './code-tools.js';
|
|
107
|
+
// Feed tools exports
|
|
108
|
+
export { feedListTool, feedAddTool, feedBundleInstallTool, feedPollTool, feedDigestTool, feedDiscoverTool, feedTools, } from './feed-tools.js';
|
|
109
|
+
// Browser tools — import directly from './browser.js' when needed (lazy loaded to save ~72MB)
|
|
86
110
|
// Canvas tools exports
|
|
87
111
|
export { canvasRenderTool } from './canvas.js';
|
|
88
112
|
export { getArtifact, listArtifacts, clearArtifacts } from './canvas.js';
|
|
@@ -98,6 +122,10 @@ export { slackActionsTool } from './slack-actions.js';
|
|
|
98
122
|
export { telegramActionsTool } from './telegram-actions.js';
|
|
99
123
|
// Session spawn tools exports (hierarchical agent sessions)
|
|
100
124
|
export { spawnSessionTool, sendMessageTool, receiveMessagesTool, listSessionsTool, sessionSpawnTools, } from './session-spawn.js';
|
|
125
|
+
// REPL tool exports
|
|
126
|
+
export { replTool, listReplSessions, closeReplSession, getReplSessionsMap, } from './repl-tool.js';
|
|
127
|
+
// Todo tool exports
|
|
128
|
+
export { todoWriteTool, todoReadTool, clearTodos, getTodos, getTodoStore, } from './todo-tool.js';
|
|
101
129
|
// Tool Tier Assignments
|
|
102
130
|
/**
|
|
103
131
|
* Tool tier map: assigns each tool to essential/standard/full tier.
|
|
@@ -124,13 +152,15 @@ const TOOL_TIER_MAP = {
|
|
|
124
152
|
git_status: 'essential',
|
|
125
153
|
web_fetch: 'essential',
|
|
126
154
|
complete_task: 'essential',
|
|
155
|
+
decompose_task: 'standard',
|
|
127
156
|
// Standard tier - needs moderate reasoning (14B+)
|
|
128
157
|
git_diff: 'standard',
|
|
129
158
|
git_log: 'standard',
|
|
130
159
|
git_commit: 'standard',
|
|
131
160
|
git_branch: 'standard',
|
|
132
161
|
patch_apply: 'standard',
|
|
133
|
-
|
|
162
|
+
multi_patch: 'standard',
|
|
163
|
+
web_search: 'essential',
|
|
134
164
|
memory_search: 'standard',
|
|
135
165
|
memory_get: 'standard',
|
|
136
166
|
memory_stats: 'standard',
|
|
@@ -149,6 +179,22 @@ const TOOL_TIER_MAP = {
|
|
|
149
179
|
link_understand: 'standard',
|
|
150
180
|
github_pr: 'standard',
|
|
151
181
|
notify: 'standard',
|
|
182
|
+
feed_list: 'standard',
|
|
183
|
+
feed_add: 'standard',
|
|
184
|
+
feed_bundle_install: 'standard',
|
|
185
|
+
feed_poll: 'standard',
|
|
186
|
+
feed_digest: 'standard',
|
|
187
|
+
feed_discover: 'standard',
|
|
188
|
+
typecheck: 'standard',
|
|
189
|
+
lint: 'standard',
|
|
190
|
+
build: 'standard',
|
|
191
|
+
format: 'standard',
|
|
192
|
+
project_info: 'essential',
|
|
193
|
+
create_pr: 'standard',
|
|
194
|
+
// REPL and Todo tools — standard (need moderate reasoning)
|
|
195
|
+
repl_execute: 'standard',
|
|
196
|
+
todo_write: 'standard',
|
|
197
|
+
todo_read: 'standard',
|
|
152
198
|
// Full tier - only for large/frontier models (everything else)
|
|
153
199
|
// git_stash, git_remote, canvas_render, all session tools,
|
|
154
200
|
// all browser tools, all cron tools, all integration tools,
|
|
@@ -173,6 +219,7 @@ const rawBuiltinTools = [
|
|
|
173
219
|
grepTool,
|
|
174
220
|
directoryTreeTool,
|
|
175
221
|
patchApplyTool,
|
|
222
|
+
multiPatchTool,
|
|
176
223
|
imageAnalyzeTool,
|
|
177
224
|
canvasRenderTool,
|
|
178
225
|
// Git tools (7)
|
|
@@ -202,12 +249,12 @@ const rawBuiltinTools = [
|
|
|
202
249
|
memoryStatsTool,
|
|
203
250
|
// Web search (1)
|
|
204
251
|
webSearchTool,
|
|
205
|
-
// Task completion (
|
|
252
|
+
// Task completion + decomposition (2)
|
|
206
253
|
completeTaskTool,
|
|
254
|
+
decomposeTaskTool,
|
|
207
255
|
// Cron tools (7)
|
|
208
256
|
...cronTools,
|
|
209
|
-
// Browser tools (8)
|
|
210
|
-
...browserTools,
|
|
257
|
+
// Browser tools (8) — loaded dynamically in registerBuiltinTools
|
|
211
258
|
// profClaw ops tools (6)
|
|
212
259
|
...profclawTools,
|
|
213
260
|
// Session spawn tools (4) - hierarchical agent sessions
|
|
@@ -223,6 +270,15 @@ const rawBuiltinTools = [
|
|
|
223
270
|
clipboardReadTool,
|
|
224
271
|
clipboardWriteTool,
|
|
225
272
|
notifyTool,
|
|
273
|
+
// Feed tools (6)
|
|
274
|
+
...feedTools,
|
|
275
|
+
// Code tools (6) - typecheck, lint, build, format, project_info, create_pr
|
|
276
|
+
...codeTools,
|
|
277
|
+
// REPL tool (1)
|
|
278
|
+
replTool,
|
|
279
|
+
// Todo tools (2)
|
|
280
|
+
todoWriteTool,
|
|
281
|
+
todoReadTool,
|
|
226
282
|
// Phase 3 parity tools (7)
|
|
227
283
|
openaiImageGenTool,
|
|
228
284
|
ttsSpeakTool,
|
|
@@ -243,6 +299,10 @@ const CRON_TOOL_NAMES = new Set([
|
|
|
243
299
|
'cron_create', 'cron_list', 'cron_trigger', 'cron_pause',
|
|
244
300
|
'cron_archive', 'cron_delete', 'cron_history',
|
|
245
301
|
]);
|
|
302
|
+
const FEED_TOOL_NAMES = new Set([
|
|
303
|
+
'feed_list', 'feed_add', 'feed_bundle_install', 'feed_poll',
|
|
304
|
+
'feed_digest', 'feed_discover',
|
|
305
|
+
]);
|
|
246
306
|
const CHANNEL_TOOL_NAMES = new Set([
|
|
247
307
|
'discord_actions', 'slack_actions', 'telegram_actions',
|
|
248
308
|
]);
|
|
@@ -252,16 +312,30 @@ const INTEGRATION_TOOL_NAMES = new Set([
|
|
|
252
312
|
]);
|
|
253
313
|
/**
|
|
254
314
|
* Register all built-in tools (with tier assignments and mode gating)
|
|
315
|
+
*
|
|
316
|
+
* Browser and canvas tools are loaded dynamically to avoid pulling in
|
|
317
|
+
* playwright-core (~72MB) in modes that don't need it.
|
|
255
318
|
*/
|
|
256
|
-
export function registerBuiltinTools() {
|
|
319
|
+
export async function registerBuiltinTools() {
|
|
257
320
|
const registry = getToolRegistry();
|
|
258
|
-
|
|
259
|
-
|
|
321
|
+
// Dynamically load heavy tools only when their capability is enabled
|
|
322
|
+
// Browser tools pull in playwright-core (~72MB) so we skip in pico/mini
|
|
323
|
+
const dynamicTools = [];
|
|
324
|
+
if (hasCapability('browser_tools')) {
|
|
325
|
+
const browser = await loadBrowserTools();
|
|
326
|
+
dynamicTools.push(...browser);
|
|
327
|
+
}
|
|
328
|
+
const allTools = [...builtinTools, ...applyTiers(dynamicTools)];
|
|
329
|
+
const modeFilteredTools = allTools.filter((tool) => {
|
|
330
|
+
// Browser tools: pro only (browser_tools capability) — already gated above
|
|
260
331
|
if (BROWSER_TOOL_NAMES.has(tool.name))
|
|
261
332
|
return hasCapability('browser_tools');
|
|
262
333
|
// Cron tools: mini+ (cron capability)
|
|
263
334
|
if (CRON_TOOL_NAMES.has(tool.name))
|
|
264
335
|
return hasCapability('cron');
|
|
336
|
+
// Feed tools: mini+ (cron capability - feeds are part of automation)
|
|
337
|
+
if (FEED_TOOL_NAMES.has(tool.name))
|
|
338
|
+
return hasCapability('cron');
|
|
265
339
|
// Channel action tools: mini+ (chat_channels capability)
|
|
266
340
|
if (CHANNEL_TOOL_NAMES.has(tool.name))
|
|
267
341
|
return hasCapability('chat_channels');
|
|
@@ -11,15 +11,15 @@ declare const ScreenCaptureParamsSchema: z.ZodObject<{
|
|
|
11
11
|
width: z.ZodNumber;
|
|
12
12
|
height: z.ZodNumber;
|
|
13
13
|
}, "strip", z.ZodTypeAny, {
|
|
14
|
-
width: number;
|
|
15
|
-
height: number;
|
|
16
14
|
x: number;
|
|
17
15
|
y: number;
|
|
18
|
-
}, {
|
|
19
16
|
width: number;
|
|
20
17
|
height: number;
|
|
18
|
+
}, {
|
|
21
19
|
x: number;
|
|
22
20
|
y: number;
|
|
21
|
+
width: number;
|
|
22
|
+
height: number;
|
|
23
23
|
}>>;
|
|
24
24
|
format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["png", "jpg"]>>>;
|
|
25
25
|
output: z.ZodOptional<z.ZodString>;
|
|
@@ -28,21 +28,21 @@ declare const ScreenCaptureParamsSchema: z.ZodObject<{
|
|
|
28
28
|
display: number;
|
|
29
29
|
output?: string | undefined;
|
|
30
30
|
region?: {
|
|
31
|
-
width: number;
|
|
32
|
-
height: number;
|
|
33
31
|
x: number;
|
|
34
32
|
y: number;
|
|
33
|
+
width: number;
|
|
34
|
+
height: number;
|
|
35
35
|
} | undefined;
|
|
36
36
|
}, {
|
|
37
37
|
output?: string | undefined;
|
|
38
38
|
format?: "png" | "jpg" | undefined;
|
|
39
|
+
display?: number | undefined;
|
|
39
40
|
region?: {
|
|
40
|
-
width: number;
|
|
41
|
-
height: number;
|
|
42
41
|
x: number;
|
|
43
42
|
y: number;
|
|
43
|
+
width: number;
|
|
44
|
+
height: number;
|
|
44
45
|
} | undefined;
|
|
45
|
-
display?: number | undefined;
|
|
46
46
|
}>;
|
|
47
47
|
declare const ClipboardReadParamsSchema: z.ZodObject<{
|
|
48
48
|
format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["text", "html"]>>>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-File Patch Tool
|
|
3
|
+
*
|
|
4
|
+
* Applies OpenAI-style multi-file patches that can add, update, and delete
|
|
5
|
+
* multiple files in a single operation.
|
|
6
|
+
*
|
|
7
|
+
* Format:
|
|
8
|
+
* *** Begin Patch
|
|
9
|
+
* *** Add File: path/to/new.ts
|
|
10
|
+
* [file content]
|
|
11
|
+
* *** Update File: path/to/existing.ts
|
|
12
|
+
* @@ context @@
|
|
13
|
+
* -old line
|
|
14
|
+
* +new line
|
|
15
|
+
* *** Delete File: path/to/remove.ts
|
|
16
|
+
* *** End Patch
|
|
17
|
+
*/
|
|
18
|
+
import { z } from 'zod';
|
|
19
|
+
import type { ToolDefinition } from '../types.js';
|
|
20
|
+
declare const MultiPatchParamsSchema: z.ZodObject<{
|
|
21
|
+
patch: z.ZodString;
|
|
22
|
+
workdir: z.ZodOptional<z.ZodString>;
|
|
23
|
+
}, "strip", z.ZodTypeAny, {
|
|
24
|
+
patch: string;
|
|
25
|
+
workdir?: string | undefined;
|
|
26
|
+
}, {
|
|
27
|
+
patch: string;
|
|
28
|
+
workdir?: string | undefined;
|
|
29
|
+
}>;
|
|
30
|
+
export type MultiPatchParams = z.infer<typeof MultiPatchParamsSchema>;
|
|
31
|
+
export interface MultiPatchFileResult {
|
|
32
|
+
/** The file path that was targeted. */
|
|
33
|
+
path: string;
|
|
34
|
+
/** Operation performed on this file. */
|
|
35
|
+
operation: 'add' | 'update' | 'delete';
|
|
36
|
+
/** Whether the operation succeeded. */
|
|
37
|
+
success: boolean;
|
|
38
|
+
/** Number of hunks applied (update only). */
|
|
39
|
+
hunks?: number;
|
|
40
|
+
/** Error message if the operation failed. */
|
|
41
|
+
error?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface MultiPatchResult {
|
|
44
|
+
/** Per-file results. */
|
|
45
|
+
files: MultiPatchFileResult[];
|
|
46
|
+
/** Total files successfully changed. */
|
|
47
|
+
applied: number;
|
|
48
|
+
/** Total files that failed. */
|
|
49
|
+
failed: number;
|
|
50
|
+
}
|
|
51
|
+
export declare const multiPatchTool: ToolDefinition<MultiPatchParams, MultiPatchResult>;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=multi-patch.d.ts.map
|