profclaw 0.0.1-beta.3 → 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 +54 -34
- package/CONTRIBUTING.md +23 -5
- package/Dockerfile +39 -23
- package/README.md +271 -72
- 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 +15 -3
- package/dist/chat/execution/tools/index.js +125 -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/slack/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/models.js +39 -26
- package/dist/cli/commands/onboard.js +263 -98
- 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 +375 -91
- 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 -6
- 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/providers.d.ts +15 -0
- package/dist/cli/providers.js +41 -0
- package/dist/cli/utils/api.d.ts +9 -0
- package/dist/cli/utils/api.js +58 -2
- package/dist/core/deployment.js +2 -0
- 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 +97 -18
- 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/channels.d.ts +12 -0
- package/dist/routes/channels.js +166 -0
- 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 +4 -1
- package/dist/server/stream-bridge.d.ts +19 -0
- package/dist/server/stream-bridge.js +38 -0
- package/dist/server.js +421 -141
- 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/git-workflow/SKILL.md +3 -3
- 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-DlYUcOss.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-CgPqzUvj.js → Settings-xA8Zhi3p.js} +3 -3
- package/ui/dist/assets/StatusIndicator-B8vfFAxg.js +1 -0
- package/ui/dist/assets/{SummaryDetail-CwLAfHgJ.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-CGck7gxR.js → archive-CX7UvZpf.js} +1 -1
- package/ui/dist/assets/badge-BbfnwDJP.js +1 -0
- package/ui/dist/assets/{bug-DqSGPUUE.js → bug-3WX0394-.js} +1 -1
- package/ui/dist/assets/{calendar-BuZ4zbPW.js → calendar-buq77TaS.js} +1 -1
- package/ui/dist/assets/{chevron-up-DcJ4LL_N.js → chevron-up-4ymsBJRo.js} +1 -1
- package/ui/dist/assets/{circle-x-C78PNZjF.js → circle-x-ByXtwR6Y.js} +1 -1
- package/ui/dist/assets/constants-CVdDh7p0.js +1 -0
- package/ui/dist/assets/{cpu-Ck6AoG8c.js → cpu-CiuoCeDY.js} +1 -1
- package/ui/dist/assets/{database-CA2w8Lvt.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-FhHKRbfl.js → ellipsis-vT-5SVIp.js} +1 -1
- package/ui/dist/assets/{ellipsis-vertical-CO0UqE4-.js → ellipsis-vertical-B4tAX_bL.js} +1 -1
- package/ui/dist/assets/feature-markdown-DBo5Q7uq.js +289 -0
- package/ui/dist/assets/{file-code-ChnhYYj1.js → file-code-ChOWdKXf.js} +1 -1
- package/ui/dist/assets/{folder-open-CHwA1-ve.js → folder-open-CkOUbIiP.js} +1 -1
- package/ui/dist/assets/{funnel-ByEjRFNB.js → funnel-uZkoSPP-.js} +1 -1
- package/ui/dist/assets/{git-branch-GTOPQgU4.js → git-branch-CwvUxj7C.js} +1 -1
- package/ui/dist/assets/{git-commit-horizontal-F5M84Kut.js → git-commit-horizontal-lxPzCvhD.js} +1 -1
- package/ui/dist/assets/{globe-CQWfr7hT.js → globe-D_WpJdsj.js} +1 -1
- package/ui/dist/assets/{hash-nKC9gtLg.js → hash-CA0hJ7vh.js} +1 -1
- package/ui/dist/assets/{history-DfFSA9xJ.js → history-CEWMLELs.js} +1 -1
- package/ui/dist/assets/inbox-ehtOptTV.js +1 -0
- package/ui/dist/assets/{index-a4Fxq0Hb.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-WmgjMhWF.js → layout-dashboard-BRUM0kpT.js} +1 -1
- package/ui/dist/assets/{lightbulb-Bo8hEr7B.js → lightbulb-CN2q1O5l.js} +1 -1
- package/ui/dist/assets/{link-2-YqrpQXBH.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-CD0H5hot.js → message-square-Bbb241am.js} +1 -1
- package/ui/dist/assets/package-CwT3IzFx.js +1 -0
- package/ui/dist/assets/{pencil-DpFnj5dn.js → pencil-CDmiHzoj.js} +1 -1
- package/ui/dist/assets/{play-DVgea_jT.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-BFxPYGx9.js → rocket--8ZHgdXJ.js} +1 -1
- package/ui/dist/assets/select-n108rXny.js +1 -0
- package/ui/dist/assets/{send-eYnW_7n-.js → send-Cu7MR2Qh.js} +1 -1
- package/ui/dist/assets/server-DmodxZp-.js +1 -0
- package/ui/dist/assets/{settings-2-scXUOuE_.js → settings-2-CkRNqkxj.js} +1 -1
- package/ui/dist/assets/sheet-7aUJkyzU.js +1 -0
- package/ui/dist/assets/{shield-check-PEr7nmVw.js → shield-check-ViI3nMKE.js} +1 -1
- package/ui/dist/assets/{shield-off-CLtXio62.js → shield-off-DN3tagkn.js} +1 -1
- package/ui/dist/assets/skeleton-C0E1Nfro.js +1 -0
- package/ui/dist/assets/{smartphone-DusFfY0U.js → smartphone-5FghiXpA.js} +1 -1
- package/ui/dist/assets/{square-e1yxB2eR.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-tAwMmQ9G.js → tag-CH_vQliw.js} +1 -1
- package/ui/dist/assets/textarea-CxDiKFXZ.js +1 -0
- package/ui/dist/assets/{timer-Vel1N3RP.js → timer-CdGVTb60.js} +1 -1
- package/ui/dist/assets/tooltip-BuW9A5UO.js +1 -0
- package/ui/dist/assets/{trash-2-eM-CNwsZ.js → trash-2-CucZJL0N.js} +1 -1
- package/ui/dist/assets/trending-down-BCezC1z2.js +1 -0
- package/ui/dist/assets/{trending-up-BGafmjRo.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-DPvcd9Pi.js → wand-sparkles-BaH6pJnc.js} +1 -1
- package/ui/dist/assets/{wrench-B8s3zYVV.js → wrench-CjxjP6ok.js} +1 -1
- package/ui/dist/index.html +5 -2
- package/dist/chat/auto-reply.d.ts +0 -90
- package/dist/chat/auto-reply.js +0 -272
- package/dist/chat/execution/pty.d.ts +0 -92
- package/dist/chat/execution/pty.js +0 -285
- package/dist/chat/execution/tools/glinr-ops.d.ts +0 -202
- package/dist/chat/execution/tools/glinr-ops.js +0 -694
- package/dist/cli/commands/browser.d.ts +0 -3
- package/dist/cli/commands/browser.js +0 -138
- package/dist/cli/commands/canvas.d.ts +0 -3
- package/dist/cli/commands/canvas.js +0 -155
- package/dist/cli/commands/nodes.d.ts +0 -3
- package/dist/cli/commands/nodes.js +0 -193
- package/dist/diagnostics/exporters.d.ts +0 -21
- package/dist/diagnostics/exporters.js +0 -138
- package/dist/diagnostics/index.d.ts +0 -10
- package/dist/diagnostics/index.js +0 -9
- package/dist/diagnostics/middleware.d.ts +0 -12
- package/dist/diagnostics/middleware.js +0 -58
- package/dist/diagnostics/tracer.d.ts +0 -133
- package/dist/diagnostics/tracer.js +0 -257
- package/dist/discovery/index.d.ts +0 -8
- package/dist/discovery/index.js +0 -7
- package/dist/discovery/mdns.d.ts +0 -40
- package/dist/discovery/mdns.js +0 -249
- package/dist/plugins/registry.d.ts +0 -122
- package/dist/plugins/registry.js +0 -352
- package/dist/plugins/sandbox.d.ts +0 -77
- package/dist/plugins/sandbox.js +0 -287
- package/dist/plugins/search/brave.d.ts +0 -9
- package/dist/plugins/search/brave.js +0 -157
- package/dist/plugins/search/duckduckgo.d.ts +0 -9
- package/dist/plugins/search/duckduckgo.js +0 -171
- package/dist/plugins/search/index.d.ts +0 -13
- package/dist/plugins/search/index.js +0 -23
- package/dist/plugins/search/searxng.d.ts +0 -9
- package/dist/plugins/search/searxng.js +0 -170
- package/dist/plugins/search/serper.d.ts +0 -9
- package/dist/plugins/search/serper.js +0 -135
- package/dist/plugins/search/tavily.d.ts +0 -9
- package/dist/plugins/search/tavily.js +0 -146
- package/dist/providers/adapters/anthropic.d.ts +0 -26
- package/dist/providers/adapters/anthropic.js +0 -306
- package/dist/providers/adapters/base.d.ts +0 -53
- package/dist/providers/adapters/base.js +0 -99
- package/dist/providers/adapters/ollama.d.ts +0 -30
- package/dist/providers/adapters/ollama.js +0 -292
- package/dist/utils/ai-cache.d.ts +0 -72
- package/dist/utils/ai-cache.js +0 -204
- package/dist/utils/file-lock.d.ts +0 -85
- package/dist/utils/file-lock.js +0 -204
- package/ui/dist/assets/ActivityView-DIPQSJ_d.js +0 -1
- package/ui/dist/assets/AgentList-CqyaYrcq.js +0 -1
- package/ui/dist/assets/AnalyticsDashboard-C-mjuGHT.js +0 -1
- package/ui/dist/assets/AreaChart-CfYWmbtr.js +0 -1
- package/ui/dist/assets/CartesianChart-BaQ3It0c.js +0 -36
- package/ui/dist/assets/ChatView-DxxQy6pl.js +0 -10
- package/ui/dist/assets/CostsDashboard-CDBBcGkg.js +0 -1
- package/ui/dist/assets/EstimateSelect-CDjf5qKl.js +0 -1
- package/ui/dist/assets/FloatingChatbot-CZHjvJIe.js +0 -2
- package/ui/dist/assets/InviteCodeManagement-DTm-IPTm.js +0 -2
- package/ui/dist/assets/ProjectIcon-BMRpnM04.js +0 -1
- package/ui/dist/assets/ProjectList-D85TN0i0.js +0 -4
- package/ui/dist/assets/StatusIndicator-yig0uZEA.js +0 -1
- package/ui/dist/assets/SummaryList-BvS5Idnu.js +0 -1
- package/ui/dist/assets/TaskDetail-zarC1fOt.js +0 -1
- package/ui/dist/assets/TaskList-CyJq3ANE.js +0 -1
- package/ui/dist/assets/TicketBoard-BlWr3-iH.js +0 -1
- package/ui/dist/assets/TicketDetail-DmqWKj2W.js +0 -1
- package/ui/dist/assets/TicketList-Scj4pMWa.js +0 -1
- package/ui/dist/assets/UserManagement-BH7uG7dw.js +0 -2
- package/ui/dist/assets/ViewSwitcher-3HzZUdWn.js +0 -1
- package/ui/dist/assets/alert-dialog-DWPb2IfQ.js +0 -7
- package/ui/dist/assets/badge-DEmc3Z_l.js +0 -1
- package/ui/dist/assets/brain-CfFdLVqb.js +0 -1
- package/ui/dist/assets/constants-DhDjZe4P.js +0 -1
- package/ui/dist/assets/dialog-BOdGWhgE.js +0 -1
- package/ui/dist/assets/index--JkIxVXb.js +0 -67
- package/ui/dist/assets/index-Ca3vk7Gq.js +0 -1
- package/ui/dist/assets/index-DHGvP9mp.js +0 -1
- package/ui/dist/assets/index-DeI8lKRR.js +0 -1
- package/ui/dist/assets/index-WclMPci1.css +0 -1
- package/ui/dist/assets/index-Z4-RtZcs.js +0 -1
- package/ui/dist/assets/layers-DFeLExSa.js +0 -1
- package/ui/dist/assets/markdown-renderer-Croje6Xe.js +0 -36
- package/ui/dist/assets/popover-JXecfWG5.js +0 -1
- package/ui/dist/assets/progress-C1ghf1Fu.js +0 -1
- package/ui/dist/assets/select-MADP8m6Q.js +0 -1
- package/ui/dist/assets/server-CPMaysH8.js +0 -1
- package/ui/dist/assets/sheet-r6NSOxi-.js +0 -1
- package/ui/dist/assets/skeleton-C9oEzNlU.js +0 -1
- package/ui/dist/assets/switch-tNs0n-kz.js +0 -1
- package/ui/dist/assets/table-CXxtLicg.js +0 -1
- package/ui/dist/assets/textarea-BjiEeIWh.js +0 -1
- package/ui/dist/assets/tooltip-ZMwtfr1J.js +0 -1
package/.env.example
CHANGED
|
@@ -197,13 +197,25 @@ POOL_QUEUE_TIMEOUT_MS=30000
|
|
|
197
197
|
# SEARCH & EMBEDDINGS
|
|
198
198
|
# ════════════════════════════════════════════════════════════════════════════════
|
|
199
199
|
|
|
200
|
-
# Web search via SearXNG
|
|
201
|
-
SEARXNG_URL=https://searx.tiekoetter.com
|
|
200
|
+
# Web search via SearXNG (self-hosted only — public instances rate-limit heavily)
|
|
201
|
+
# SEARXNG_URL=https://searx.tiekoetter.com # disabled: 429 Too Many Requests
|
|
202
|
+
|
|
203
|
+
# Preferred: set one of these instead (sign up for a free tier key)
|
|
204
|
+
# BRAVE_API_KEY= # https://api.search.brave.com (2000 free/month)
|
|
205
|
+
# SERPER_API_KEY= # https://serper.dev (2500 free)
|
|
206
|
+
# TAVILY_API_KEY= # https://tavily.com (1000 free/month)
|
|
202
207
|
|
|
203
208
|
# Embedding provider: local, openai, voyage
|
|
204
209
|
EMBEDDING_PROVIDER=local
|
|
205
210
|
# VOYAGE_API_KEY=xxx
|
|
206
211
|
|
|
212
|
+
# ════════════════════════════════════════════════════════════════════════════════
|
|
213
|
+
# CONTENT MODERATION (optional)
|
|
214
|
+
# ════════════════════════════════════════════════════════════════════════════════
|
|
215
|
+
|
|
216
|
+
# Content moderation (optional, uses glin-profanity)
|
|
217
|
+
# CONTENT_FILTER=true
|
|
218
|
+
|
|
207
219
|
# ════════════════════════════════════════════════════════════════════════════════
|
|
208
220
|
# DOCKER / MONITORING (docker-compose only)
|
|
209
221
|
# ════════════════════════════════════════════════════════════════════════════════
|
package/CHANGELOG.md
CHANGED
|
@@ -1,49 +1,69 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## [2.3.0](https://github.com/profclaw/profclaw/compare/v2.2.0...v2.3.0) (2026-04-13)
|
|
6
6
|
|
|
7
|
-
* Renamed from "GLINR Task Manager" to "profClaw" — all env vars, CLI commands, and API paths updated
|
|
8
|
-
* `GLINR_REQUIRE_REDIS` renamed to `PROFCLAW_REQUIRE_REDIS`
|
|
9
|
-
* `glinr.mjs` renamed to `profclaw.mjs`
|
|
10
|
-
* All `glinr-*` skill names renamed to `profclaw-*`
|
|
11
7
|
|
|
12
8
|
### Features
|
|
13
9
|
|
|
14
|
-
*
|
|
15
|
-
* **In-Memory Queue**: BullMQ-compatible task queue without Redis for pico/mini modes
|
|
16
|
-
* **Unified Queue Facade**: Auto-selects Redis or memory backend based on mode
|
|
17
|
-
* **WebChat Provider**: Browser-based chat via SSE with session management
|
|
18
|
-
* **Matrix Provider**: Matrix homeserver integration via Client-Server API
|
|
19
|
-
* **Google Chat Provider**: Google Workspace integration via webhook or service account
|
|
20
|
-
* **MS Teams Provider**: Microsoft Teams integration via Bot Framework
|
|
21
|
-
* **Plugin SDK**: Third-party plugin system with `definePlugin()` helper, npm/local loader
|
|
22
|
-
* **Onboarding CLI**: `npx profclaw onboard` wizard for zero-to-running setup
|
|
23
|
-
* **Skills Expansion**: 15 built-in skills (code-review, code-generation, debug-helper, git-workflow, web-research, cron-manager, memory-manager, system-admin, file-manager, api-tester, docker-ops)
|
|
24
|
-
* **Sandbox Hardening**: Security presets per deployment mode
|
|
25
|
-
* **Static UI Serving**: Hono middleware serves `ui/dist/` with SPA fallback
|
|
26
|
-
* **Pico Docker Image**: Minimal image without Chromium (`Dockerfile.pico`)
|
|
10
|
+
* integrate glin-profanity content filter + thesvg brand icons ([#44](https://github.com/profclaw/profclaw/issues/44)) ([67b84d6](https://github.com/profclaw/profclaw/commit/67b84d6f20247f9933007fcbbd6b44ec911406c8))
|
|
27
11
|
|
|
28
|
-
### Chat Channels (4 → 8)
|
|
29
12
|
|
|
30
|
-
|
|
31
|
-
* WebChat, Matrix, Google Chat, Microsoft Teams (new)
|
|
13
|
+
### Bug Fixes
|
|
32
14
|
|
|
33
|
-
|
|
15
|
+
* npm OIDC publish - upgrade to npm 11, unset NODE_AUTH_TOKEN ([a49ffdd](https://github.com/profclaw/profclaw/commit/a49ffddfc982a43245c23178d3d3d61eef5148db))
|
|
34
16
|
|
|
35
|
-
* CI/CD: GitHub Actions with build+test+lint, release-please, Docker multi-arch, npm publish
|
|
36
|
-
* OSS files: CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md, LICENSE (AGPL-3.0)
|
|
37
17
|
|
|
38
|
-
|
|
18
|
+
### Performance Improvements
|
|
19
|
+
|
|
20
|
+
* parallel multi-arch Docker builds + pico image in CI ([5fd0d5c](https://github.com/profclaw/profclaw/commit/5fd0d5c3b5b0da877a879ac4636e202bdedc36d7))
|
|
21
|
+
|
|
22
|
+
## [2.2.0](https://github.com/profclaw/profclaw/compare/v2.1.0...v2.2.0) (2026-04-13)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* pico auth bypass, docs overhaul, issue templates, quickstart guide ([#32](https://github.com/profclaw/profclaw/issues/32)) ([d80b7ac](https://github.com/profclaw/profclaw/commit/d80b7ac6b63a72cf163791138c99c13baca8ab39))
|
|
28
|
+
* token optimization, Qwen 3 support, tool routing ([#30](https://github.com/profclaw/profclaw/issues/30)) ([6a3d2bd](https://github.com/profclaw/profclaw/commit/6a3d2bd91fd5b72514e5170a29d5a30e0548f315))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Bug Fixes
|
|
32
|
+
|
|
33
|
+
* add missing @tiptap/core and @tiptap/suggestion to ui deps ([557abe1](https://github.com/profclaw/profclaw/commit/557abe109fe1f6ff71c1444fa1e53f93a6d24820))
|
|
34
|
+
|
|
35
|
+
## [2.1.0](https://github.com/profclaw/profclaw/compare/v2.0.0...v2.1.0) (2026-04-11)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
### Features
|
|
39
|
+
|
|
40
|
+
* engine hardening, Ink TUI, launch-ready enhancements ([#21](https://github.com/profclaw/profclaw/issues/21)) ([7bb38cf](https://github.com/profclaw/profclaw/commit/7bb38cf4006a2c68ec3c7cda70e8808964654c48))
|
|
41
|
+
|
|
42
|
+
## [2.0.0](https://github.com/profclaw/profclaw/releases/tag/v2.0.0) (2026-03-14)
|
|
43
|
+
|
|
44
|
+
Initial public beta release.
|
|
39
45
|
|
|
40
46
|
### Features
|
|
41
47
|
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* MCP server
|
|
48
|
-
*
|
|
49
|
-
*
|
|
48
|
+
* **35 AI providers** - Anthropic, OpenAI, Google, Groq, Ollama, DeepSeek, Bedrock, and more
|
|
49
|
+
* **22 chat channels** - Slack, Discord, Telegram, WhatsApp, iMessage, Matrix, Teams, and 15 more
|
|
50
|
+
* **72 built-in tools** - file ops, git, browser automation, cron, web search, canvas, voice
|
|
51
|
+
* **50 skills** - coding agent, GitHub issues, Notion, Obsidian, image gen, and more
|
|
52
|
+
* **3 deployment modes** - pico (~140MB), mini (~145MB), pro (full features)
|
|
53
|
+
* **MCP server** - native Model Context Protocol support (stdio + SSE)
|
|
54
|
+
* **Voice I/O** - STT (Whisper) + TTS (ElevenLabs/OpenAI/system) + Talk Mode
|
|
55
|
+
* **Plugin SDK** - build and share third-party plugins via npm
|
|
56
|
+
* **Mode-aware routing** - API endpoints, tools, and capabilities gated by deployment mode
|
|
57
|
+
* **In-memory queue** - BullMQ-compatible task queue without Redis for pico/mini modes
|
|
58
|
+
* **Cost tracking** - per-token budget management with alerts at 50/80/100%
|
|
59
|
+
* **Project management** - tickets, Kanban, sprints, burndown charts, GitHub/Jira/Linear sync
|
|
60
|
+
|
|
61
|
+
### Chat Channels
|
|
62
|
+
|
|
63
|
+
Slack, Discord, Telegram, WhatsApp, WebChat, Matrix, Google Chat, Microsoft Teams, iMessage, Signal, IRC, LINE, Mattermost, DingTalk, WeCom, Feishu/Lark, QQ, Nostr, Twitch, Zalo, Nextcloud Talk, Synology Chat
|
|
64
|
+
|
|
65
|
+
### Integrations
|
|
66
|
+
|
|
67
|
+
* GitHub (webhooks, OAuth, issue sync, PR automation)
|
|
68
|
+
* Jira (webhooks, OAuth, issue sync, transitions)
|
|
69
|
+
* Linear (webhooks, OAuth, issue sync)
|
package/CONTRIBUTING.md
CHANGED
|
@@ -50,7 +50,7 @@ Open a discussion or issue describing:
|
|
|
50
50
|
|
|
51
51
|
1. Fork the repo and create a branch from `main`
|
|
52
52
|
2. Follow the naming convention: `feat/description`, `fix/description`, `refactor/description`
|
|
53
|
-
3. Write code following existing patterns (see `
|
|
53
|
+
3. Write code following existing patterns (see `AGENTS.md` for conventions)
|
|
54
54
|
4. Add tests for new features
|
|
55
55
|
5. Ensure `pnpm build && pnpm test && pnpm lint` pass
|
|
56
56
|
6. Submit a pull request
|
|
@@ -61,8 +61,6 @@ We use conventional commits:
|
|
|
61
61
|
|
|
62
62
|
```
|
|
63
63
|
<type>: <description>
|
|
64
|
-
|
|
65
|
-
Co-Authored-By: Your Name <your@email.com>
|
|
66
64
|
```
|
|
67
65
|
|
|
68
66
|
Types: `feat`, `fix`, `perf`, `refactor`, `docs`, `test`
|
|
@@ -75,7 +73,7 @@ Types: `feat`, `fix`, `perf`, `refactor`, `docs`, `test`
|
|
|
75
73
|
- Tailwind v4 for UI styling (no inline styles)
|
|
76
74
|
- Lucide icons only
|
|
77
75
|
- Zod validation at system boundaries
|
|
78
|
-
- See `
|
|
76
|
+
- See `AGENTS.md` for full conventions
|
|
79
77
|
|
|
80
78
|
## Architecture
|
|
81
79
|
|
|
@@ -86,7 +84,7 @@ src/
|
|
|
86
84
|
core/ - Deployment modes, feature flags
|
|
87
85
|
integrations/ - GitHub, Jira, Linear webhooks
|
|
88
86
|
queue/ - BullMQ + in-memory task queue
|
|
89
|
-
providers/ - AI SDK providers (
|
|
87
|
+
providers/ - AI SDK providers (35+)
|
|
90
88
|
skills/ - Skill loader and registry
|
|
91
89
|
types/ - Shared TypeScript types
|
|
92
90
|
|
|
@@ -114,6 +112,26 @@ skills/ - Built-in skill definitions
|
|
|
114
112
|
2. Register in `src/chat/execution/tools/index.ts`
|
|
115
113
|
3. Add tests
|
|
116
114
|
|
|
115
|
+
## Release checklist
|
|
116
|
+
|
|
117
|
+
For maintainers publishing a new version:
|
|
118
|
+
|
|
119
|
+
1. Merge PRs to `main`
|
|
120
|
+
2. Release-please auto-creates a release PR (bumps version, updates CHANGELOG)
|
|
121
|
+
3. Merge the release PR. This creates a git tag and triggers npm publish via CI.
|
|
122
|
+
4. Build and push Docker images locally:
|
|
123
|
+
```bash
|
|
124
|
+
./scripts/release-docker.sh
|
|
125
|
+
```
|
|
126
|
+
The script builds both main and pico images, shows sizes, and asks before pushing to ghcr.io.
|
|
127
|
+
5. Verify the release:
|
|
128
|
+
```bash
|
|
129
|
+
npm info profclaw version # npm
|
|
130
|
+
docker pull ghcr.io/profclaw/profclaw:latest # Docker
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Docker images are built locally (not in CI) to save GitHub Actions minutes. The script handles ghcr.io login via `gh auth`.
|
|
134
|
+
|
|
117
135
|
## License
|
|
118
136
|
|
|
119
137
|
By contributing, you agree that your contributions will be licensed under the AGPL-3.0 license.
|
package/Dockerfile
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# ====================
|
|
2
2
|
# Stage 1: Base
|
|
3
3
|
# ====================
|
|
4
|
-
FROM node:22-
|
|
4
|
+
FROM node:22-slim AS base
|
|
5
5
|
|
|
6
6
|
# Install pnpm
|
|
7
7
|
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
@@ -19,60 +19,76 @@ RUN pnpm install --frozen-lockfile
|
|
|
19
19
|
# Stage 3: Dependencies (UI)
|
|
20
20
|
# ====================
|
|
21
21
|
FROM base AS ui-deps
|
|
22
|
-
WORKDIR /app
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
WORKDIR /app
|
|
23
|
+
# Workspace lockfile lives at root — copy both for pnpm resolution
|
|
24
|
+
COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./
|
|
25
|
+
COPY ui/package.json ./ui/
|
|
26
|
+
RUN pnpm install --frozen-lockfile --filter ui
|
|
25
27
|
|
|
26
28
|
# ====================
|
|
27
|
-
# Stage 4: Build Backend (tsc only
|
|
29
|
+
# Stage 4: Build Backend (tsc only)
|
|
28
30
|
# ====================
|
|
29
31
|
FROM base AS build-backend
|
|
30
32
|
COPY --from=deps /app/node_modules ./node_modules
|
|
31
33
|
COPY . .
|
|
32
|
-
RUN ./node_modules/.bin/tsc --project tsconfig.json
|
|
34
|
+
RUN ./node_modules/.bin/tsc --project tsconfig.json --skipLibCheck
|
|
33
35
|
|
|
34
36
|
# ====================
|
|
35
|
-
# Stage 5: Build UI
|
|
37
|
+
# Stage 5: Build UI (vite build)
|
|
36
38
|
# ====================
|
|
37
39
|
FROM base AS build-ui
|
|
38
40
|
WORKDIR /app/ui
|
|
41
|
+
COPY --from=ui-deps /app/node_modules ../node_modules
|
|
39
42
|
COPY --from=ui-deps /app/ui/node_modules ./node_modules
|
|
40
43
|
COPY ui/ ./
|
|
41
44
|
RUN pnpm build
|
|
42
45
|
|
|
43
46
|
# ====================
|
|
44
|
-
# Stage 6: Production
|
|
47
|
+
# Stage 6: Production dependencies (pruned)
|
|
48
|
+
# ====================
|
|
49
|
+
FROM base AS prod-deps
|
|
50
|
+
COPY package.json pnpm-lock.yaml* ./
|
|
51
|
+
RUN pnpm install --frozen-lockfile --prod && \
|
|
52
|
+
# Remove unnecessary files from node_modules to reduce image size
|
|
53
|
+
find node_modules -name "*.d.ts" -delete 2>/dev/null || true && \
|
|
54
|
+
find node_modules -name "*.map" -delete 2>/dev/null || true && \
|
|
55
|
+
find node_modules -name "README*" -delete 2>/dev/null || true && \
|
|
56
|
+
find node_modules -name "CHANGELOG*" -delete 2>/dev/null || true && \
|
|
57
|
+
find node_modules -name "LICENSE*" -delete 2>/dev/null || true && \
|
|
58
|
+
find node_modules -name ".npmignore" -delete 2>/dev/null || true && \
|
|
59
|
+
find node_modules -type d -name "test" -prune -exec rm -rf {} + 2>/dev/null || true && \
|
|
60
|
+
find node_modules -type d -name "tests" -prune -exec rm -rf {} + 2>/dev/null || true && \
|
|
61
|
+
find node_modules -type d -name "__tests__" -prune -exec rm -rf {} + 2>/dev/null || true
|
|
62
|
+
|
|
63
|
+
# ====================
|
|
64
|
+
# Stage 7: Production (pro mode - full features)
|
|
45
65
|
# ====================
|
|
46
|
-
FROM node:22-
|
|
66
|
+
FROM node:22-slim AS production
|
|
47
67
|
|
|
48
|
-
# Install Chromium for Playwright, git for agent sandbox
|
|
49
|
-
RUN
|
|
68
|
+
# Install runtime dependencies: Chromium for Playwright, git for agent sandbox
|
|
69
|
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
50
70
|
chromium \
|
|
51
|
-
nss \
|
|
52
|
-
freetype \
|
|
53
|
-
harfbuzz \
|
|
54
71
|
ca-certificates \
|
|
55
|
-
ttf-freefont \
|
|
56
72
|
curl \
|
|
57
73
|
git \
|
|
58
|
-
&& rm -rf /var/
|
|
74
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
59
75
|
|
|
60
76
|
# Enable pnpm via corepack (for agent sandbox: clone, build, lint)
|
|
61
77
|
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
62
78
|
|
|
63
79
|
# Set Playwright to use system Chromium
|
|
64
80
|
ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
|
65
|
-
ENV PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium
|
|
81
|
+
ENV PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium
|
|
66
82
|
|
|
67
83
|
# Create non-root user for security
|
|
68
|
-
RUN
|
|
69
|
-
|
|
84
|
+
RUN groupadd -g 1001 profclaw && \
|
|
85
|
+
useradd -u 1001 -g profclaw -s /bin/bash -m profclaw
|
|
70
86
|
|
|
71
87
|
WORKDIR /app
|
|
72
88
|
|
|
73
|
-
# Copy
|
|
89
|
+
# Copy pruned production deps (smaller than full node_modules)
|
|
90
|
+
COPY --from=prod-deps /app/node_modules ./node_modules
|
|
74
91
|
COPY --from=build-backend /app/dist ./dist
|
|
75
|
-
COPY --from=build-backend /app/node_modules ./node_modules
|
|
76
92
|
COPY --from=build-backend /app/package.json ./
|
|
77
93
|
|
|
78
94
|
# Copy runtime config (settings.yml for storage tier, queue, etc.)
|
|
@@ -90,13 +106,13 @@ RUN mkdir -p /app/data && \
|
|
|
90
106
|
chmod +x /app/dist/cli/index.js 2>/dev/null || true && \
|
|
91
107
|
chown -R profclaw:profclaw /app
|
|
92
108
|
|
|
93
|
-
# Production environment
|
|
109
|
+
# Production environment defaults (override via env_file or environment)
|
|
94
110
|
ENV NODE_ENV=production
|
|
95
111
|
ENV PORT=3000
|
|
96
112
|
ENV PROFCLAW_MODE=pro
|
|
97
113
|
|
|
98
114
|
# Health check
|
|
99
|
-
HEALTHCHECK --interval=30s --timeout=10s --start-period=
|
|
115
|
+
HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \
|
|
100
116
|
CMD curl -f http://localhost:${PORT}/health || exit 1
|
|
101
117
|
|
|
102
118
|
# Switch to non-root user
|