pi-harness-runtime 1.1.0 → 1.1.2
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/.pi/plugins/herdr-clipboard/herdr-plugin.toml +22 -0
- package/.pi/plugins/herdr-clipboard/start-bridge.sh +29 -0
- package/.pi/plugins/herdr-clipboard/tmux-watch.sh +39 -0
- package/CHANGELOG.md +175 -13
- package/README.md +87 -1
- package/config.toml.example +35 -0
- package/harness/autonomous-review.ts +5 -2
- package/harness/e2e/chatgpt-quota-scraper.ts +478 -0
- package/harness/e2e/glm-quota-scraper.ts +449 -0
- package/harness/herdr-agents.ts +6 -2
- package/harness/loop-code-agent.ts +4 -1
- package/harness/loop-review-agent.ts +5 -6
- package/harness/notification-events.ts +2 -2
- package/harness/task-graph.d.ts +51 -0
- package/index.ts +147 -2
- package/package.json +17 -16
- package/packages/a2a-adapter/dist/index.d.ts +1 -0
- package/packages/a2a-adapter/dist/index.d.ts.map +1 -1
- package/packages/a2a-adapter/dist/index.js +1 -0
- package/packages/a2a-adapter/dist/index.js.map +1 -1
- package/packages/a2a-adapter/package.json +1 -1
- package/packages/a2a-adapter/src/discovery.ts +106 -0
- package/packages/a2a-adapter/src/index.ts +8 -0
- package/packages/architecture-generator/package.json +21 -0
- package/packages/architecture-generator/src/adr.ts +51 -0
- package/packages/architecture-generator/src/index.ts +9 -0
- package/packages/architecture-generator/src/mermaid.ts +76 -0
- package/packages/architecture-generator/src/types.ts +30 -0
- package/packages/auth/package.json +1 -1
- package/packages/autonomous-refactor/package.json +1 -1
- package/packages/autonomous-runtime/package.json +1 -1
- package/packages/cache-strategy/package.json +1 -1
- package/packages/capability-registry/package.json +1 -1
- package/packages/checkpoint/package.json +1 -1
- package/packages/cli-plugin-sdk/package.json +2 -2
- package/packages/clipboard/package.json +1 -1
- package/packages/clipboard/src/copy-sync.ts +52 -3
- package/packages/clipboard/src/index.ts +1 -0
- package/packages/clipboard/src/paste-bridge.ts +86 -0
- package/packages/clipboard-plugin/package.json +17 -0
- package/packages/clipboard-plugin/src/index.ts +74 -0
- package/packages/clipboard-plugin/src/types.ts +30 -0
- package/packages/code-generation/package.json +1 -1
- package/packages/code-review/package.json +1 -1
- package/packages/codex-adapter/package.json +2 -2
- package/packages/config-capture/package.json +23 -0
- package/packages/config-capture/src/index.ts +357 -0
- package/packages/context-compiler/package.json +1 -1
- package/packages/context-discovery/package.json +1 -1
- package/packages/context-manager/package.json +1 -1
- package/packages/cookie-sanitizer/package.json +1 -1
- package/packages/cost-optimizer/package.json +1 -1
- package/packages/dependency-analyzer/package.json +1 -1
- package/packages/django-plugin/package.json +1 -1
- package/packages/doc-generator/package.json +1 -1
- package/packages/evaluation-engine/package.json +1 -1
- package/packages/evaluation-runner/package.json +1 -1
- package/packages/event-bus/package.json +1 -1
- package/packages/event-bus/src/herdr-bus.ts +4 -1
- package/packages/event-store/package.json +1 -1
- package/packages/experience-replay/package.json +1 -1
- package/packages/feedback-collector/package.json +1 -1
- package/packages/file-copy-helper/package.json +17 -0
- package/packages/file-copy-helper/src/extension.debug.ts +226 -0
- package/packages/file-copy-helper/src/extension.ts +226 -0
- package/packages/file-copy-helper/src/index.ts +1 -0
- package/packages/framework-detector/package.json +1 -1
- package/packages/framework-plugin-sdk/package.json +1 -1
- package/packages/frappe-plugin/package.json +1 -1
- package/packages/generic-web-plugin/package.json +1 -1
- package/packages/health-monitor/package.json +1 -1
- package/packages/intent-analyzer/package.json +1 -1
- package/packages/knowledge-graph/package.json +24 -0
- package/packages/knowledge-graph/src/graph-extractor.ts +338 -0
- package/packages/knowledge-graph/src/index.ts +27 -0
- package/packages/knowledge-graph/src/mcp-client.ts +237 -0
- package/packages/knowledge-graph/src/provenance-linker.ts +101 -0
- package/packages/knowledge-graph/src/types.ts +86 -0
- package/packages/knowledge-retrieval/package.json +25 -0
- package/packages/knowledge-retrieval/src/index.ts +18 -0
- package/packages/knowledge-retrieval/src/mcp-client.ts +212 -0
- package/packages/knowledge-retrieval/src/types.ts +112 -0
- package/packages/laravel-plugin/package.json +1 -1
- package/packages/learning-engine/package.json +1 -1
- package/packages/mcp-adapter/package.json +1 -1
- package/packages/memory-engine/package.json +1 -1
- package/packages/milestone-manager/package.json +21 -0
- package/packages/milestone-manager/src/engine.ts +105 -0
- package/packages/milestone-manager/src/index.ts +6 -0
- package/packages/milestone-manager/src/types.ts +28 -0
- package/packages/model-registry/package.json +1 -1
- package/packages/nextjs-plugin/package.json +1 -1
- package/packages/notification/package.json +1 -1
- package/packages/notification/src/adapters/line-adapter.ts +119 -0
- package/packages/notification/src/index.ts +1 -0
- package/packages/notification/src/notification-center.ts +6 -0
- package/packages/notification/src/types.ts +7 -2
- package/packages/observability/package.json +1 -1
- package/packages/okf-indexer/package.json +12 -0
- package/packages/okf-indexer/src/cli.ts +25 -0
- package/packages/okf-indexer/src/indexer.ts +186 -0
- package/packages/performance-optimizer/package.json +1 -1
- package/packages/privilege-broker/package.json +1 -1
- package/packages/project-analyzer/package.json +1 -1
- package/packages/project-bootstrap/package.json +24 -0
- package/packages/project-bootstrap/src/bootstrap.ts +166 -0
- package/packages/project-bootstrap/src/frappe.ts +97 -0
- package/packages/project-bootstrap/src/index.ts +27 -0
- package/packages/project-bootstrap/src/minimal.ts +45 -0
- package/packages/project-bootstrap/src/types.ts +66 -0
- package/packages/project-bootstrap/src/typescript.ts +114 -0
- package/packages/projection-engine/package.json +1 -1
- package/packages/prompt-compiler/package.json +1 -1
- package/packages/prompt-versioning/package.json +1 -1
- package/packages/provider-adapter-sdk/package.json +1 -1
- package/packages/provider-router/dist/src/types.js +1 -1
- package/packages/provider-router/package.json +1 -1
- package/packages/provider-selector/package.json +1 -1
- package/packages/providers/package.json +1 -1
- package/packages/providers/src/adapters.ts +1 -1
- package/packages/providers/src/deepagents-adapter.ts +2 -2
- package/packages/quota-manager/package.json +1 -1
- package/packages/quota-manager/src/quota-manager.ts +1 -4
- package/packages/rate-limiter/package.json +1 -1
- package/packages/react-vite-plugin/package.json +1 -1
- package/packages/release-manager/package.json +1 -1
- package/packages/requirement-compiler/package.json +1 -1
- package/packages/runtime/package.json +1 -1
- package/packages/runtime/src/runtime-api.ts +16 -16
- package/packages/scheduler/package.json +1 -1
- package/packages/scheduler-adapter/package.json +1 -1
- package/packages/session/dist/manager.d.ts.map +1 -1
- package/packages/session/dist/manager.js +3 -1
- package/packages/session/dist/manager.js.map +1 -1
- package/packages/session/package.json +1 -1
- package/packages/session/src/manager.ts +4 -1
- package/packages/session-api/package.json +1 -1
- package/packages/session-export/package.json +1 -1
- package/packages/shared-context/package.json +1 -1
- package/packages/skill-registry/package.json +1 -1
- package/packages/sprint-planner/package.json +1 -1
- package/packages/subscription-engine/package.json +1 -1
- package/packages/task-compiler/package.json +1 -1
- package/packages/tencentdb-memory/package.json +23 -0
- package/packages/tencentdb-memory/src/client.ts +130 -0
- package/packages/tencentdb-memory/src/index.ts +32 -0
- package/packages/tencentdb-memory/src/loader.ts +150 -0
- package/packages/tencentdb-memory/src/mcp-tools.ts +213 -0
- package/packages/tencentdb-memory/src/types.ts +101 -0
- package/packages/tencentdb-sync/package.json +26 -0
- package/packages/tencentdb-sync/src/cli.ts +363 -0
- package/packages/tencentdb-sync/src/client.ts +268 -0
- package/packages/tencentdb-sync/src/config.ts +139 -0
- package/packages/tencentdb-sync/src/index.ts +15 -0
- package/packages/test-data-generator/package.json +1 -1
- package/packages/test-generator/package.json +1 -1
- package/packages/todo-bd-sync/package.json +1 -1
- package/packages/todo-bd-sync/src/detector.ts +25 -4
- package/packages/todo-bd-sync/src/extension.ts +8 -86
- package/packages/todo-bd-sync/src/task-analyzer.ts +314 -0
- package/packages/token-estimation/package.json +1 -1
- package/packages/token-optimizer/package.json +1 -1
- package/packages/tui/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/packages/types/src/agent-worker-types.d.ts +206 -0
- package/packages/types/src/ai-providers.d.ts +36 -0
- package/packages/types/src/runtime-types.d.ts +6 -0
- package/packages/workflow-events/package.json +1 -1
- package/packages/workspace-scanner/package.json +1 -1
- package/packages/worktree/package.json +1 -1
- package/packages/worktree/src/worktree.ts +1 -4
- package/packages/write-review/package.json +22 -0
- package/packages/write-review/src/blackboard.ts +249 -0
- package/packages/write-review/src/gate.ts +169 -0
- package/packages/write-review/src/index.ts +65 -0
- package/packages/write-review/src/injection.ts +190 -0
- package/packages/write-review/src/review.ts +206 -0
- package/packages/write-review/src/trigger.ts +133 -0
- package/packages/write-review/src/types.ts +90 -0
- package/prompts/agents/reviewer.md +57 -0
- package/prompts/agents/writer.md +42 -0
- package/prompts/slash-commands.md +40 -0
- package/prompts/tencentdb-connect.md +35 -0
- package/prompts/tencentdb-setup.md +101 -0
- package/prompts/tencentdb.md +88 -0
- package/prompts/write-review.md +50 -0
- package/scripts/check-version-sync.ts +80 -0
- package/scripts/convert-skills-to-okf.ts +168 -0
- package/scripts/copy-plugins.js +56 -0
- package/scripts/gist-auth.ts +64 -0
- package/scripts/gist-poll.sh +127 -0
- package/scripts/release/actions-monitor.ts +357 -0
- package/scripts/release/adapters/base.ts +95 -0
- package/scripts/release/adapters/detector.ts +181 -0
- package/scripts/release/adapters/node-workspace.ts +230 -0
- package/scripts/release/adapters/python.ts +236 -0
- package/scripts/release/adapters/rust.ts +129 -0
- package/scripts/release/adapters/tauri.ts +298 -0
- package/scripts/release/orchestrator.ts +278 -0
- package/scripts/release-all.ts +211 -0
- package/scripts/scan-secrets.sh +68 -0
- package/scripts/skills-sync.ts +487 -0
- package/packages/a2a-adapter/tsconfig.json +0 -5
- package/packages/auth/dist/minimax-browser-auth.d.ts +0 -89
- package/packages/auth/dist/minimax-browser-auth.d.ts.map +0 -1
- package/packages/auth/dist/minimax-browser-auth.js +0 -890
- package/packages/auth/dist/minimax-browser-auth.js.map +0 -1
- package/packages/auth/dist/run-minimax-auth.d.ts +0 -19
- package/packages/auth/dist/run-minimax-auth.d.ts.map +0 -1
- package/packages/auth/dist/run-minimax-auth.js +0 -112
- package/packages/auth/dist/run-minimax-auth.js.map +0 -1
- package/packages/auth/tsconfig.json +0 -9
- package/packages/autonomous-refactor/tsconfig.json +0 -5
- package/packages/autonomous-runtime/test/inbox.test.mjs +0 -266
- package/packages/autonomous-runtime/tsconfig.json +0 -22
- package/packages/autonomous-runtime/tsconfig.tsbuildinfo +0 -1
- package/packages/cache-strategy/tsconfig.json +0 -5
- package/packages/capability-registry/src/types.d.ts.map +0 -1
- package/packages/capability-registry/src/types.js +0 -10
- package/packages/capability-registry/src/types.js.map +0 -1
- package/packages/capability-registry/tsconfig.json +0 -22
- package/packages/checkpoint/tsconfig.json +0 -33
- package/packages/checkpoint/tsconfig.tsbuildinfo +0 -1
- package/packages/cli-plugin-sdk/tsconfig.json +0 -11
- package/packages/clipboard/dist/src/clipboard.d.ts +0 -11
- package/packages/clipboard/dist/src/clipboard.d.ts.map +0 -1
- package/packages/clipboard/dist/src/clipboard.js +0 -51
- package/packages/clipboard/dist/src/clipboard.js.map +0 -1
- package/packages/clipboard/dist/src/copy-sync.d.ts +0 -27
- package/packages/clipboard/dist/src/copy-sync.d.ts.map +0 -1
- package/packages/clipboard/dist/src/copy-sync.js +0 -170
- package/packages/clipboard/dist/src/copy-sync.js.map +0 -1
- package/packages/clipboard/dist/src/gist-relay.d.ts +0 -48
- package/packages/clipboard/dist/src/gist-relay.d.ts.map +0 -1
- package/packages/clipboard/dist/src/gist-relay.js +0 -186
- package/packages/clipboard/dist/src/gist-relay.js.map +0 -1
- package/packages/clipboard/dist/src/github-login.d.ts +0 -16
- package/packages/clipboard/dist/src/github-login.d.ts.map +0 -1
- package/packages/clipboard/dist/src/github-login.js +0 -69
- package/packages/clipboard/dist/src/github-login.js.map +0 -1
- package/packages/clipboard/dist/src/index.d.ts +0 -4
- package/packages/clipboard/dist/src/index.d.ts.map +0 -1
- package/packages/clipboard/dist/src/index.js +0 -3
- package/packages/clipboard/dist/src/index.js.map +0 -1
- package/packages/clipboard/dist/src/types.d.ts +0 -13
- package/packages/clipboard/dist/src/types.d.ts.map +0 -1
- package/packages/clipboard/dist/src/types.js +0 -5
- package/packages/clipboard/dist/src/types.js.map +0 -1
- package/packages/clipboard/test/mojibake.test.mjs +0 -143
- package/packages/clipboard/tsconfig.json +0 -10
- package/packages/code-generation/tsconfig.json +0 -33
- package/packages/code-generation/tsconfig.tsbuildinfo +0 -1
- package/packages/code-review/tsconfig.json +0 -33
- package/packages/code-review/tsconfig.tsbuildinfo +0 -1
- package/packages/codex-adapter/tsconfig.json +0 -5
- package/packages/context-compiler/tsconfig.json +0 -17
- package/packages/context-discovery/dist/src/discover.d.ts +0 -3
- package/packages/context-discovery/dist/src/discover.d.ts.map +0 -1
- package/packages/context-discovery/dist/src/discover.js +0 -42
- package/packages/context-discovery/dist/src/discover.js.map +0 -1
- package/packages/context-discovery/dist/src/discovery.d.ts +0 -28
- package/packages/context-discovery/dist/src/discovery.d.ts.map +0 -1
- package/packages/context-discovery/dist/src/discovery.js +0 -21
- package/packages/context-discovery/dist/src/discovery.js.map +0 -1
- package/packages/context-discovery/dist/src/index.d.ts +0 -3
- package/packages/context-discovery/dist/src/index.d.ts.map +0 -1
- package/packages/context-discovery/dist/src/index.js +0 -2
- package/packages/context-discovery/dist/src/index.js.map +0 -1
- package/packages/context-discovery/dist/src/types.d.ts +0 -16
- package/packages/context-discovery/dist/src/types.d.ts.map +0 -1
- package/packages/context-discovery/dist/src/types.js +0 -2
- package/packages/context-discovery/dist/src/types.js.map +0 -1
- package/packages/context-discovery/tsconfig.json +0 -10
- package/packages/context-manager/tsconfig.json +0 -6
- package/packages/cookie-sanitizer/tsconfig.json +0 -8
- package/packages/cost-optimizer/tsconfig.json +0 -22
- package/packages/dependency-analyzer/dist/src/analyzer.d.ts +0 -17
- package/packages/dependency-analyzer/dist/src/analyzer.d.ts.map +0 -1
- package/packages/dependency-analyzer/dist/src/analyzer.js +0 -119
- package/packages/dependency-analyzer/dist/src/analyzer.js.map +0 -1
- package/packages/dependency-analyzer/dist/src/imports.d.ts +0 -12
- package/packages/dependency-analyzer/dist/src/imports.d.ts.map +0 -1
- package/packages/dependency-analyzer/dist/src/imports.js +0 -73
- package/packages/dependency-analyzer/dist/src/imports.js.map +0 -1
- package/packages/dependency-analyzer/dist/src/index.d.ts +0 -4
- package/packages/dependency-analyzer/dist/src/index.d.ts.map +0 -1
- package/packages/dependency-analyzer/dist/src/index.js +0 -3
- package/packages/dependency-analyzer/dist/src/index.js.map +0 -1
- package/packages/dependency-analyzer/dist/src/types.d.ts +0 -28
- package/packages/dependency-analyzer/dist/src/types.d.ts.map +0 -1
- package/packages/dependency-analyzer/dist/src/types.js +0 -5
- package/packages/dependency-analyzer/dist/src/types.js.map +0 -1
- package/packages/dependency-analyzer/test/analyzer.test.js +0 -37
- package/packages/dependency-analyzer/tsconfig.json +0 -10
- package/packages/django-plugin/tsconfig.json +0 -12
- package/packages/doc-generator/tsconfig.json +0 -6
- package/packages/evaluation-engine/tsconfig.json +0 -8
- package/packages/evaluation-runner/tsconfig.json +0 -5
- package/packages/event-bus/dist/src/bus.d.ts +0 -15
- package/packages/event-bus/dist/src/bus.d.ts.map +0 -1
- package/packages/event-bus/dist/src/bus.js +0 -98
- package/packages/event-bus/dist/src/bus.js.map +0 -1
- package/packages/event-bus/dist/src/herdr-bus.d.ts +0 -121
- package/packages/event-bus/dist/src/herdr-bus.d.ts.map +0 -1
- package/packages/event-bus/dist/src/herdr-bus.js +0 -322
- package/packages/event-bus/dist/src/herdr-bus.js.map +0 -1
- package/packages/event-bus/dist/src/index.d.ts +0 -6
- package/packages/event-bus/dist/src/index.d.ts.map +0 -1
- package/packages/event-bus/dist/src/index.js +0 -4
- package/packages/event-bus/dist/src/index.js.map +0 -1
- package/packages/event-bus/dist/src/types.d.ts +0 -27
- package/packages/event-bus/dist/src/types.d.ts.map +0 -1
- package/packages/event-bus/dist/src/types.js +0 -10
- package/packages/event-bus/dist/src/types.js.map +0 -1
- package/packages/event-bus/tsconfig.json +0 -10
- package/packages/event-store/dist/src/index.d.ts +0 -3
- package/packages/event-store/dist/src/index.d.ts.map +0 -1
- package/packages/event-store/dist/src/index.js +0 -2
- package/packages/event-store/dist/src/index.js.map +0 -1
- package/packages/event-store/dist/src/store.d.ts +0 -15
- package/packages/event-store/dist/src/store.d.ts.map +0 -1
- package/packages/event-store/dist/src/store.js +0 -139
- package/packages/event-store/dist/src/store.js.map +0 -1
- package/packages/event-store/dist/src/types.d.ts +0 -48
- package/packages/event-store/dist/src/types.d.ts.map +0 -1
- package/packages/event-store/dist/src/types.js +0 -5
- package/packages/event-store/dist/src/types.js.map +0 -1
- package/packages/event-store/src/types.d.ts.map +0 -1
- package/packages/event-store/src/types.js +0 -5
- package/packages/event-store/src/types.js.map +0 -1
- package/packages/event-store/tsconfig.json +0 -10
- package/packages/experience-replay/tsconfig.json +0 -8
- package/packages/feedback-collector/tsconfig.json +0 -5
- package/packages/framework-detector/tsconfig.json +0 -33
- package/packages/framework-detector/tsconfig.tsbuildinfo +0 -1
- package/packages/framework-plugin-sdk/tsconfig.json +0 -33
- package/packages/framework-plugin-sdk/tsconfig.tsbuildinfo +0 -1
- package/packages/frappe-plugin/tsconfig.json +0 -12
- package/packages/generic-web-plugin/tsconfig.json +0 -12
- package/packages/health-monitor/tsconfig.json +0 -5
- package/packages/intent-analyzer/dist/src/analyzer.d.ts +0 -13
- package/packages/intent-analyzer/dist/src/analyzer.d.ts.map +0 -1
- package/packages/intent-analyzer/dist/src/analyzer.js +0 -239
- package/packages/intent-analyzer/dist/src/analyzer.js.map +0 -1
- package/packages/intent-analyzer/dist/src/index.d.ts +0 -3
- package/packages/intent-analyzer/dist/src/index.d.ts.map +0 -1
- package/packages/intent-analyzer/dist/src/index.js +0 -2
- package/packages/intent-analyzer/dist/src/index.js.map +0 -1
- package/packages/intent-analyzer/dist/src/types.d.ts +0 -26
- package/packages/intent-analyzer/dist/src/types.d.ts.map +0 -1
- package/packages/intent-analyzer/dist/src/types.js +0 -7
- package/packages/intent-analyzer/dist/src/types.js.map +0 -1
- package/packages/intent-analyzer/tsconfig.json +0 -10
- package/packages/laravel-plugin/tsconfig.json +0 -12
- package/packages/learning-engine/tsconfig.json +0 -8
- package/packages/mcp-adapter/tsconfig.json +0 -8
- package/packages/memory-engine/tsconfig.json +0 -8
- package/packages/model-registry/src/types.d.ts.map +0 -1
- package/packages/model-registry/src/types.js +0 -5
- package/packages/model-registry/src/types.js.map +0 -1
- package/packages/model-registry/tsconfig.json +0 -22
- package/packages/nextjs-plugin/tsconfig.json +0 -12
- package/packages/notification/dist/adapters/email-adapter.d.ts +0 -17
- package/packages/notification/dist/adapters/email-adapter.d.ts.map +0 -1
- package/packages/notification/dist/adapters/email-adapter.js +0 -89
- package/packages/notification/dist/adapters/email-adapter.js.map +0 -1
- package/packages/notification/dist/adapters/ntfy-adapter.d.ts +0 -17
- package/packages/notification/dist/adapters/ntfy-adapter.d.ts.map +0 -1
- package/packages/notification/dist/adapters/ntfy-adapter.js +0 -84
- package/packages/notification/dist/adapters/ntfy-adapter.js.map +0 -1
- package/packages/notification/dist/adapters/telegram-adapter.d.ts +0 -17
- package/packages/notification/dist/adapters/telegram-adapter.d.ts.map +0 -1
- package/packages/notification/dist/adapters/telegram-adapter.js +0 -88
- package/packages/notification/dist/adapters/telegram-adapter.js.map +0 -1
- package/packages/notification/dist/adapters/webhook-adapter.d.ts +0 -15
- package/packages/notification/dist/adapters/webhook-adapter.d.ts.map +0 -1
- package/packages/notification/dist/adapters/webhook-adapter.js +0 -64
- package/packages/notification/dist/adapters/webhook-adapter.js.map +0 -1
- package/packages/notification/dist/base-adapter.d.ts +0 -36
- package/packages/notification/dist/base-adapter.d.ts.map +0 -1
- package/packages/notification/dist/base-adapter.js +0 -39
- package/packages/notification/dist/base-adapter.js.map +0 -1
- package/packages/notification/dist/index.d.ts +0 -9
- package/packages/notification/dist/index.d.ts.map +0 -1
- package/packages/notification/dist/index.js +0 -9
- package/packages/notification/dist/index.js.map +0 -1
- package/packages/notification/dist/notification-center.d.ts +0 -46
- package/packages/notification/dist/notification-center.d.ts.map +0 -1
- package/packages/notification/dist/notification-center.js +0 -228
- package/packages/notification/dist/notification-center.js.map +0 -1
- package/packages/notification/dist/types.d.ts +0 -65
- package/packages/notification/dist/types.d.ts.map +0 -1
- package/packages/notification/dist/types.js +0 -7
- package/packages/notification/dist/types.js.map +0 -1
- package/packages/notification/tsconfig.json +0 -8
- package/packages/observability/tsconfig.json +0 -33
- package/packages/observability/tsconfig.tsbuildinfo +0 -1
- package/packages/performance-optimizer/tsconfig.json +0 -8
- package/packages/privilege-broker/config/privileges.yaml.example +0 -172
- package/packages/privilege-broker/tsconfig.json +0 -22
- package/packages/privilege-broker/tsconfig.tsbuildinfo +0 -1
- package/packages/project-analyzer/tsconfig.json +0 -33
- package/packages/project-analyzer/tsconfig.tsbuildinfo +0 -1
- package/packages/projection-engine/dist/src/engine.d.ts +0 -61
- package/packages/projection-engine/dist/src/engine.d.ts.map +0 -1
- package/packages/projection-engine/dist/src/engine.js +0 -87
- package/packages/projection-engine/dist/src/engine.js.map +0 -1
- package/packages/projection-engine/dist/src/index.d.ts +0 -2
- package/packages/projection-engine/dist/src/index.d.ts.map +0 -1
- package/packages/projection-engine/dist/src/index.js +0 -2
- package/packages/projection-engine/dist/src/index.js.map +0 -1
- package/packages/projection-engine/dist/src/project.d.ts +0 -3
- package/packages/projection-engine/dist/src/project.d.ts.map +0 -1
- package/packages/projection-engine/dist/src/project.js +0 -24
- package/packages/projection-engine/dist/src/project.js.map +0 -1
- package/packages/projection-engine/dist/src/types.d.ts +0 -55
- package/packages/projection-engine/dist/src/types.d.ts.map +0 -1
- package/packages/projection-engine/dist/src/types.js +0 -5
- package/packages/projection-engine/dist/src/types.js.map +0 -1
- package/packages/projection-engine/src/types.d.ts.map +0 -1
- package/packages/projection-engine/src/types.js +0 -5
- package/packages/projection-engine/src/types.js.map +0 -1
- package/packages/projection-engine/tsconfig.json +0 -10
- package/packages/prompt-compiler/tsconfig.json +0 -19
- package/packages/prompt-versioning/tsconfig.json +0 -5
- package/packages/provider-adapter-sdk/dist/tsconfig.tsbuildinfo +0 -1
- package/packages/provider-adapter-sdk/tsconfig.json +0 -34
- package/packages/provider-adapter-sdk/tsconfig.tsbuildinfo +0 -1
- package/packages/provider-router/tsconfig.json +0 -20
- package/packages/provider-selector/tsconfig.json +0 -6
- package/packages/providers/dist/adapters.d.ts +0 -133
- package/packages/providers/dist/adapters.d.ts.map +0 -1
- package/packages/providers/dist/adapters.js +0 -236
- package/packages/providers/dist/adapters.js.map +0 -1
- package/packages/providers/dist/deepagents-adapter.d.ts +0 -78
- package/packages/providers/dist/deepagents-adapter.d.ts.map +0 -1
- package/packages/providers/dist/deepagents-adapter.js +0 -323
- package/packages/providers/dist/deepagents-adapter.js.map +0 -1
- package/packages/providers/dist/glm-usage.d.ts +0 -102
- package/packages/providers/dist/glm-usage.d.ts.map +0 -1
- package/packages/providers/dist/glm-usage.js +0 -197
- package/packages/providers/dist/glm-usage.js.map +0 -1
- package/packages/providers/dist/index.d.ts +0 -11
- package/packages/providers/dist/index.d.ts.map +0 -1
- package/packages/providers/dist/index.js +0 -11
- package/packages/providers/dist/index.js.map +0 -1
- package/packages/providers/dist/openai-usage.d.ts +0 -103
- package/packages/providers/dist/openai-usage.d.ts.map +0 -1
- package/packages/providers/dist/openai-usage.js +0 -208
- package/packages/providers/dist/openai-usage.js.map +0 -1
- package/packages/providers/dist/provider-id.d.ts +0 -46
- package/packages/providers/dist/provider-id.d.ts.map +0 -1
- package/packages/providers/dist/provider-id.js +0 -113
- package/packages/providers/dist/provider-id.js.map +0 -1
- package/packages/providers/tsconfig.json +0 -8
- package/packages/quota-manager/dist/examples/tui-usage-integration.d.ts +0 -35
- package/packages/quota-manager/dist/examples/tui-usage-integration.d.ts.map +0 -1
- package/packages/quota-manager/dist/examples/tui-usage-integration.js +0 -73
- package/packages/quota-manager/dist/examples/tui-usage-integration.js.map +0 -1
- package/packages/quota-manager/dist/index.d.ts +0 -8
- package/packages/quota-manager/dist/index.d.ts.map +0 -1
- package/packages/quota-manager/dist/index.js +0 -8
- package/packages/quota-manager/dist/index.js.map +0 -1
- package/packages/quota-manager/dist/quota-manager.d.ts +0 -70
- package/packages/quota-manager/dist/quota-manager.d.ts.map +0 -1
- package/packages/quota-manager/dist/quota-manager.js +0 -260
- package/packages/quota-manager/dist/quota-manager.js.map +0 -1
- package/packages/quota-manager/dist/tui-usage-monitor.d.ts +0 -96
- package/packages/quota-manager/dist/tui-usage-monitor.d.ts.map +0 -1
- package/packages/quota-manager/dist/tui-usage-monitor.js +0 -268
- package/packages/quota-manager/dist/tui-usage-monitor.js.map +0 -1
- package/packages/quota-manager/tsconfig.json +0 -8
- package/packages/rate-limiter/tsconfig.json +0 -5
- package/packages/react-vite-plugin/tsconfig.json +0 -12
- package/packages/release-manager/tsconfig.json +0 -5
- package/packages/requirement-compiler/tsconfig.json +0 -22
- package/packages/runtime/dist/command-executor.d.ts +0 -129
- package/packages/runtime/dist/command-executor.d.ts.map +0 -1
- package/packages/runtime/dist/command-executor.js +0 -383
- package/packages/runtime/dist/command-executor.js.map +0 -1
- package/packages/runtime/dist/index.d.ts +0 -11
- package/packages/runtime/dist/index.d.ts.map +0 -1
- package/packages/runtime/dist/index.js +0 -11
- package/packages/runtime/dist/index.js.map +0 -1
- package/packages/runtime/dist/local-runtime-agent.d.ts +0 -111
- package/packages/runtime/dist/local-runtime-agent.d.ts.map +0 -1
- package/packages/runtime/dist/local-runtime-agent.js +0 -356
- package/packages/runtime/dist/local-runtime-agent.js.map +0 -1
- package/packages/runtime/dist/policy-engine.d.ts +0 -203
- package/packages/runtime/dist/policy-engine.d.ts.map +0 -1
- package/packages/runtime/dist/policy-engine.js +0 -592
- package/packages/runtime/dist/policy-engine.js.map +0 -1
- package/packages/runtime/dist/runtime-api.d.ts +0 -137
- package/packages/runtime/dist/runtime-api.d.ts.map +0 -1
- package/packages/runtime/dist/runtime-api.js +0 -454
- package/packages/runtime/dist/runtime-api.js.map +0 -1
- package/packages/runtime/dist/workspace-manager.d.ts +0 -162
- package/packages/runtime/dist/workspace-manager.d.ts.map +0 -1
- package/packages/runtime/dist/workspace-manager.js +0 -451
- package/packages/runtime/dist/workspace-manager.js.map +0 -1
- package/packages/runtime/tsconfig.json +0 -8
- package/packages/scheduler-adapter/tsconfig.json +0 -22
- package/packages/scheduler-adapter/tsconfig.tsbuildinfo +0 -1
- package/packages/session/tsconfig.json +0 -33
- package/packages/session/tsconfig.tsbuildinfo +0 -1
- package/packages/session-api/dist/src/api.d.ts +0 -83
- package/packages/session-api/dist/src/api.d.ts.map +0 -1
- package/packages/session-api/dist/src/api.js +0 -49
- package/packages/session-api/dist/src/api.js.map +0 -1
- package/packages/session-api/dist/src/index.d.ts +0 -2
- package/packages/session-api/dist/src/index.d.ts.map +0 -1
- package/packages/session-api/dist/src/index.js +0 -2
- package/packages/session-api/dist/src/index.js.map +0 -1
- package/packages/session-api/dist/src/types.d.ts +0 -22
- package/packages/session-api/dist/src/types.d.ts.map +0 -1
- package/packages/session-api/dist/src/types.js +0 -5
- package/packages/session-api/dist/src/types.js.map +0 -1
- package/packages/session-api/tsconfig.json +0 -10
- package/packages/session-export/dist/src/exporter.d.ts +0 -28
- package/packages/session-export/dist/src/exporter.d.ts.map +0 -1
- package/packages/session-export/dist/src/exporter.js +0 -42
- package/packages/session-export/dist/src/exporter.js.map +0 -1
- package/packages/session-export/dist/src/index.d.ts +0 -2
- package/packages/session-export/dist/src/index.d.ts.map +0 -1
- package/packages/session-export/dist/src/index.js +0 -2
- package/packages/session-export/dist/src/index.js.map +0 -1
- package/packages/session-export/dist/src/types.d.ts +0 -20
- package/packages/session-export/dist/src/types.d.ts.map +0 -1
- package/packages/session-export/dist/src/types.js +0 -5
- package/packages/session-export/dist/src/types.js.map +0 -1
- package/packages/session-export/tsconfig.json +0 -10
- package/packages/skill-registry/tsconfig.json +0 -22
- package/packages/sprint-planner/tsconfig.json +0 -5
- package/packages/subscription-engine/dist/src/engine.d.ts +0 -13
- package/packages/subscription-engine/dist/src/engine.d.ts.map +0 -1
- package/packages/subscription-engine/dist/src/engine.js +0 -40
- package/packages/subscription-engine/dist/src/engine.js.map +0 -1
- package/packages/subscription-engine/dist/src/index.d.ts +0 -2
- package/packages/subscription-engine/dist/src/index.d.ts.map +0 -1
- package/packages/subscription-engine/dist/src/index.js +0 -2
- package/packages/subscription-engine/dist/src/index.js.map +0 -1
- package/packages/subscription-engine/dist/src/subscriptions.d.ts +0 -19
- package/packages/subscription-engine/dist/src/subscriptions.d.ts.map +0 -1
- package/packages/subscription-engine/dist/src/subscriptions.js +0 -39
- package/packages/subscription-engine/dist/src/subscriptions.js.map +0 -1
- package/packages/subscription-engine/dist/src/types.d.ts +0 -24
- package/packages/subscription-engine/dist/src/types.d.ts.map +0 -1
- package/packages/subscription-engine/dist/src/types.js +0 -5
- package/packages/subscription-engine/dist/src/types.js.map +0 -1
- package/packages/subscription-engine/tsconfig.json +0 -10
- package/packages/task-compiler/tsconfig.json +0 -24
- package/packages/test-data-generator/tsconfig.json +0 -33
- package/packages/test-data-generator/tsconfig.tsbuildinfo +0 -1
- package/packages/test-generator/tsconfig.json +0 -6
- package/packages/token-optimizer/tsconfig.json +0 -6
- package/packages/tui/tsconfig.json +0 -8
- package/packages/types/src/runtime-types.d.ts.map +0 -1
- package/packages/types/src/runtime-types.js +0 -2
- package/packages/types/src/runtime-types.js.map +0 -1
- package/packages/types/tsconfig.json +0 -21
- package/packages/types/tsconfig.tsbuildinfo +0 -1
- package/packages/workflow-events/dist/src/events.d.ts +0 -38
- package/packages/workflow-events/dist/src/events.d.ts.map +0 -1
- package/packages/workflow-events/dist/src/events.js +0 -55
- package/packages/workflow-events/dist/src/events.js.map +0 -1
- package/packages/workflow-events/dist/src/index.d.ts +0 -2
- package/packages/workflow-events/dist/src/index.d.ts.map +0 -1
- package/packages/workflow-events/dist/src/index.js +0 -2
- package/packages/workflow-events/dist/src/index.js.map +0 -1
- package/packages/workflow-events/dist/src/pipeline.d.ts +0 -21
- package/packages/workflow-events/dist/src/pipeline.d.ts.map +0 -1
- package/packages/workflow-events/dist/src/pipeline.js +0 -36
- package/packages/workflow-events/dist/src/pipeline.js.map +0 -1
- package/packages/workflow-events/dist/src/types.d.ts +0 -110
- package/packages/workflow-events/dist/src/types.d.ts.map +0 -1
- package/packages/workflow-events/dist/src/types.js +0 -5
- package/packages/workflow-events/dist/src/types.js.map +0 -1
- package/packages/workflow-events/src/types.d.ts.map +0 -1
- package/packages/workflow-events/src/types.js +0 -5
- package/packages/workflow-events/src/types.js.map +0 -1
- package/packages/workflow-events/tsconfig.json +0 -10
- package/packages/workspace-scanner/dist/src/detect.d.ts +0 -3
- package/packages/workspace-scanner/dist/src/detect.d.ts.map +0 -1
- package/packages/workspace-scanner/dist/src/detect.js +0 -60
- package/packages/workspace-scanner/dist/src/detect.js.map +0 -1
- package/packages/workspace-scanner/dist/src/git.d.ts +0 -7
- package/packages/workspace-scanner/dist/src/git.d.ts.map +0 -1
- package/packages/workspace-scanner/dist/src/git.js +0 -75
- package/packages/workspace-scanner/dist/src/git.js.map +0 -1
- package/packages/workspace-scanner/dist/src/index.d.ts +0 -5
- package/packages/workspace-scanner/dist/src/index.d.ts.map +0 -1
- package/packages/workspace-scanner/dist/src/index.js +0 -4
- package/packages/workspace-scanner/dist/src/index.js.map +0 -1
- package/packages/workspace-scanner/dist/src/scanner.d.ts +0 -11
- package/packages/workspace-scanner/dist/src/scanner.d.ts.map +0 -1
- package/packages/workspace-scanner/dist/src/scanner.js +0 -59
- package/packages/workspace-scanner/dist/src/scanner.js.map +0 -1
- package/packages/workspace-scanner/dist/src/types.d.ts +0 -35
- package/packages/workspace-scanner/dist/src/types.d.ts.map +0 -1
- package/packages/workspace-scanner/dist/src/types.js +0 -5
- package/packages/workspace-scanner/dist/src/types.js.map +0 -1
- package/packages/workspace-scanner/test/scanner.test.js +0 -31
- package/packages/workspace-scanner/tsconfig.json +0 -10
- package/packages/worktree/dist/index.d.ts +0 -7
- package/packages/worktree/dist/index.d.ts.map +0 -1
- package/packages/worktree/dist/index.js +0 -7
- package/packages/worktree/dist/index.js.map +0 -1
- package/packages/worktree/dist/worktree.d.ts +0 -88
- package/packages/worktree/dist/worktree.d.ts.map +0 -1
- package/packages/worktree/dist/worktree.js +0 -242
- package/packages/worktree/dist/worktree.js.map +0 -1
- package/packages/worktree/tsconfig.json +0 -8
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Smart Auto-Todo Task Analyzer
|
|
3
|
+
*
|
|
4
|
+
* Decides when to automatically create bd issues based on:
|
|
5
|
+
* 1. Task complexity signals
|
|
6
|
+
* 2. Session state (pending task count)
|
|
7
|
+
*
|
|
8
|
+
* Philosophy:
|
|
9
|
+
* - Simple tasks (grep, quick edit) -> NO todo (avoid noise)
|
|
10
|
+
* - Complex tasks OR multiple pending tasks -> AUTO-CREATE todo
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { getOpenBdIssues } from "./sync.js";
|
|
14
|
+
|
|
15
|
+
// ─── Complexity Signals ─────────────────────────────────────────────────────────
|
|
16
|
+
|
|
17
|
+
interface TaskSignals {
|
|
18
|
+
/** Estimated number of steps required */
|
|
19
|
+
stepCount: number;
|
|
20
|
+
/** Number of files likely involved */
|
|
21
|
+
fileCount: number;
|
|
22
|
+
/** Requires research (web search, docs lookup) */
|
|
23
|
+
needsResearch: boolean;
|
|
24
|
+
/** Creates new files */
|
|
25
|
+
createsFiles: boolean;
|
|
26
|
+
/** User explicitly says task is complex */
|
|
27
|
+
explicitlyComplex: boolean;
|
|
28
|
+
/** Likely to have subtasks discovered during work */
|
|
29
|
+
likelySubtasks: boolean;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const COMPLEX_KEYWORDS = [
|
|
33
|
+
"complicated",
|
|
34
|
+
"complex",
|
|
35
|
+
"tricky",
|
|
36
|
+
"difficult",
|
|
37
|
+
"refactor",
|
|
38
|
+
"architecture",
|
|
39
|
+
"design",
|
|
40
|
+
"implement from scratch",
|
|
41
|
+
"rewrite",
|
|
42
|
+
"investigate",
|
|
43
|
+
"debug",
|
|
44
|
+
"fix the bug",
|
|
45
|
+
"performance",
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
const RESEARCH_KEYWORDS = [
|
|
49
|
+
"search",
|
|
50
|
+
"look up",
|
|
51
|
+
"find",
|
|
52
|
+
"research",
|
|
53
|
+
"check",
|
|
54
|
+
"verify",
|
|
55
|
+
"how to",
|
|
56
|
+
"best practice",
|
|
57
|
+
"compare",
|
|
58
|
+
"evaluate",
|
|
59
|
+
"review",
|
|
60
|
+
];
|
|
61
|
+
|
|
62
|
+
const SUBTASK_KEYWORDS = [
|
|
63
|
+
"also",
|
|
64
|
+
"plus",
|
|
65
|
+
"and also",
|
|
66
|
+
"while you're at it",
|
|
67
|
+
"on top of that",
|
|
68
|
+
"additionally",
|
|
69
|
+
"another thing",
|
|
70
|
+
"don't forget",
|
|
71
|
+
"should also",
|
|
72
|
+
];
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Analyze user request text for complexity signals
|
|
76
|
+
*/
|
|
77
|
+
export function analyzeTaskSignals(userMessage: string): TaskSignals {
|
|
78
|
+
const lower = userMessage.toLowerCase();
|
|
79
|
+
|
|
80
|
+
// Count implied steps from action verbs
|
|
81
|
+
const actionVerbs = [
|
|
82
|
+
"create",
|
|
83
|
+
"build",
|
|
84
|
+
"implement",
|
|
85
|
+
"design",
|
|
86
|
+
"setup",
|
|
87
|
+
"configure",
|
|
88
|
+
"migrate",
|
|
89
|
+
"convert",
|
|
90
|
+
"refactor",
|
|
91
|
+
"optimize",
|
|
92
|
+
"fix",
|
|
93
|
+
"update",
|
|
94
|
+
"add",
|
|
95
|
+
"remove",
|
|
96
|
+
"delete",
|
|
97
|
+
"modify",
|
|
98
|
+
"change",
|
|
99
|
+
"replace",
|
|
100
|
+
];
|
|
101
|
+
const stepCount = Math.max(
|
|
102
|
+
1,
|
|
103
|
+
actionVerbs.filter((v) => lower.includes(v)).length,
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
// Estimate file count from file paths and extensions
|
|
107
|
+
const filePatterns =
|
|
108
|
+
/[\w-]+\.(ts|js|py|json|md|yaml|yml|tsx|jsx|html|css|sql)/g;
|
|
109
|
+
const fileMatches = userMessage.match(filePatterns) || [];
|
|
110
|
+
const explicitFiles = fileMatches.length;
|
|
111
|
+
|
|
112
|
+
// Check for directory patterns
|
|
113
|
+
const dirPatterns =
|
|
114
|
+
/(?:src|lib|packages|apps|components|hooks|utils|api)\/[\w/-]+/g;
|
|
115
|
+
const dirMatches = userMessage.match(dirPatterns) || [];
|
|
116
|
+
|
|
117
|
+
// Count "and", "also", "+" for multi-task indicators
|
|
118
|
+
const multiTaskIndicator = (lower.match(/and also|also|\+/g) || []).length;
|
|
119
|
+
const estimatedFiles = Math.max(
|
|
120
|
+
1,
|
|
121
|
+
explicitFiles + dirMatches.length + multiTaskIndicator,
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
return {
|
|
125
|
+
stepCount,
|
|
126
|
+
fileCount: estimatedFiles,
|
|
127
|
+
needsResearch: RESEARCH_KEYWORDS.some((k) => lower.includes(k)),
|
|
128
|
+
createsFiles:
|
|
129
|
+
lower.includes("create") ||
|
|
130
|
+
lower.includes("add") ||
|
|
131
|
+
lower.includes("new"),
|
|
132
|
+
explicitlyComplex: COMPLEX_KEYWORDS.some((k) => lower.includes(k)),
|
|
133
|
+
likelySubtasks:
|
|
134
|
+
SUBTASK_KEYWORDS.some((k) => lower.includes(k)) ||
|
|
135
|
+
multiTaskIndicator >= 2,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// ─── Decision Logic ───────────────────────────────────────────────────────────
|
|
140
|
+
|
|
141
|
+
export interface AutoTodoDecision {
|
|
142
|
+
shouldCreate: boolean;
|
|
143
|
+
reason: string;
|
|
144
|
+
confidence: "high" | "medium" | "low";
|
|
145
|
+
skipReason?: string;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Decide whether to auto-create a todo for the given task
|
|
150
|
+
*/
|
|
151
|
+
export function decideAutoTodo(
|
|
152
|
+
userMessage: string,
|
|
153
|
+
options: {
|
|
154
|
+
forceMode?: boolean;
|
|
155
|
+
skipMode?: boolean;
|
|
156
|
+
} = {},
|
|
157
|
+
): AutoTodoDecision {
|
|
158
|
+
const signals = analyzeTaskSignals(userMessage);
|
|
159
|
+
const pendingTasks = getOpenBdIssues().filter((i) => i.status !== "closed");
|
|
160
|
+
const pendingCount = pendingTasks.length;
|
|
161
|
+
|
|
162
|
+
// ── Skip Conditions ────────────────────────────────────────────────────
|
|
163
|
+
// Never create todos for these
|
|
164
|
+
|
|
165
|
+
const simplePatterns = [
|
|
166
|
+
/^simply\s/i,
|
|
167
|
+
/^just\s/i,
|
|
168
|
+
/^quick\s/i,
|
|
169
|
+
/^can you\s+(grep|find|cat|ls|echo)/i,
|
|
170
|
+
/^(grep|find|cat|ls)\s+[\w.-]+/i,
|
|
171
|
+
/^what('s| is) the\s+\w+\s+\?$/i,
|
|
172
|
+
/^how do i\s+\w+\s*\?$/i,
|
|
173
|
+
];
|
|
174
|
+
|
|
175
|
+
if (simplePatterns.some((p) => p.test(userMessage.trim()))) {
|
|
176
|
+
return {
|
|
177
|
+
shouldCreate: false,
|
|
178
|
+
reason: "Simple request (lookup/one-liner)",
|
|
179
|
+
confidence: "high",
|
|
180
|
+
skipReason: "Task is too simple to warrant tracking",
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// Check for trivial single actions with no complexity (lower threshold)
|
|
185
|
+
// Allow more tasks to be tracked - being conservative about NOT tracking
|
|
186
|
+
const isTrivial =
|
|
187
|
+
signals.stepCount === 1 &&
|
|
188
|
+
signals.fileCount <= 1 &&
|
|
189
|
+
!signals.needsResearch &&
|
|
190
|
+
!signals.createsFiles &&
|
|
191
|
+
!signals.explicitlyComplex &&
|
|
192
|
+
pendingCount === 0 &&
|
|
193
|
+
!signals.likelySubtasks;
|
|
194
|
+
if (isTrivial) {
|
|
195
|
+
return {
|
|
196
|
+
shouldCreate: false,
|
|
197
|
+
reason: "Trivial request (single action)",
|
|
198
|
+
confidence: "high",
|
|
199
|
+
skipReason: "Task is trivial",
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// ── Force Modes ──────────────────────────────────────────────────────
|
|
204
|
+
if (options.forceMode) {
|
|
205
|
+
return {
|
|
206
|
+
shouldCreate: true,
|
|
207
|
+
reason: "Force mode enabled",
|
|
208
|
+
confidence: "high",
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
if (options.skipMode) {
|
|
213
|
+
return {
|
|
214
|
+
shouldCreate: false,
|
|
215
|
+
reason: "Skip mode enabled",
|
|
216
|
+
confidence: "high",
|
|
217
|
+
skipReason: "User requested skip",
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// ── Auto-Create Conditions ──────────────────────────────────────────
|
|
222
|
+
// Be MORE aggressive about tracking tasks - default to tracking
|
|
223
|
+
const reasons: string[] = [];
|
|
224
|
+
|
|
225
|
+
// HIGH CONFIDENCE: Task explicitly complex
|
|
226
|
+
if (signals.explicitlyComplex) {
|
|
227
|
+
reasons.push("explicitly complex");
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// HIGH CONFIDENCE: Multiple steps (lower from 3 to 2)
|
|
231
|
+
if (signals.stepCount >= 2) {
|
|
232
|
+
reasons.push(`${signals.stepCount} steps implied`);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
// HIGH CONFIDENCE: Multiple files (lower from 3 to 2)
|
|
236
|
+
if (signals.fileCount >= 2) {
|
|
237
|
+
reasons.push(`${signals.fileCount} files involved`);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
// MEDIUM CONFIDENCE: Research needed
|
|
241
|
+
if (signals.needsResearch) {
|
|
242
|
+
reasons.push("needs research");
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// MEDIUM CONFIDENCE: Creates files
|
|
246
|
+
if (signals.createsFiles) {
|
|
247
|
+
reasons.push("creates files");
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// MEDIUM CONFIDENCE: Likely subtasks
|
|
251
|
+
if (signals.likelySubtasks) {
|
|
252
|
+
reasons.push("likely has subtasks");
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
// MEDIUM CONFIDENCE: Has pending tasks already (session busy)
|
|
256
|
+
if (pendingCount >= 1) {
|
|
257
|
+
reasons.push(`${pendingCount} pending tasks`);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
// Default to creating todo if any signal present
|
|
261
|
+
// Be conservative only for truly trivial requests (already filtered above)
|
|
262
|
+
if (reasons.length === 0) {
|
|
263
|
+
// No strong signals but not trivial either - track it anyway
|
|
264
|
+
reasons.push("multi-step task detected");
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// Create todo if ANY reason OR any pending tasks
|
|
268
|
+
const shouldCreate = reasons.length >= 1 || pendingCount >= 1;
|
|
269
|
+
|
|
270
|
+
return {
|
|
271
|
+
shouldCreate,
|
|
272
|
+
reason: reasons.join(", "),
|
|
273
|
+
confidence: reasons.length >= 2 ? "high" : "medium",
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
// ─── Quick Score ─────────────────────────────────────────────────────────────
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Quick numeric score (0-100) for task complexity
|
|
281
|
+
* Higher = more likely to need a todo
|
|
282
|
+
*/
|
|
283
|
+
export function getTaskComplexityScore(userMessage: string): number {
|
|
284
|
+
const signals = analyzeTaskSignals(userMessage);
|
|
285
|
+
const pendingTasks = getOpenBdIssues().filter((i) => i.status !== "closed");
|
|
286
|
+
|
|
287
|
+
let score = 0;
|
|
288
|
+
|
|
289
|
+
// Step count (0-25)
|
|
290
|
+
score += Math.min(25, signals.stepCount * 8);
|
|
291
|
+
|
|
292
|
+
// File count (0-20)
|
|
293
|
+
score += Math.min(20, signals.fileCount * 5);
|
|
294
|
+
|
|
295
|
+
// Research needed (0-15)
|
|
296
|
+
if (signals.needsResearch) score += 15;
|
|
297
|
+
|
|
298
|
+
// Creates files (0-10)
|
|
299
|
+
if (signals.createsFiles) score += 10;
|
|
300
|
+
|
|
301
|
+
// Explicitly complex (0-20)
|
|
302
|
+
if (signals.explicitlyComplex) score += 20;
|
|
303
|
+
|
|
304
|
+
// Likely subtasks (0-10)
|
|
305
|
+
if (signals.likelySubtasks) score += 10;
|
|
306
|
+
|
|
307
|
+
// Pending task overload (0-25)
|
|
308
|
+
const pendingCount = pendingTasks.length;
|
|
309
|
+
if (pendingCount >= 3) score += 25;
|
|
310
|
+
else if (pendingCount >= 2) score += 15;
|
|
311
|
+
else if (pendingCount >= 1) score += 5;
|
|
312
|
+
|
|
313
|
+
return Math.min(100, score);
|
|
314
|
+
}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Worker Interface — RFC-0030
|
|
3
|
+
*
|
|
4
|
+
* Common interface for all agent workers (Codex, MiniMax, GLM, GPT, DeepAgents).
|
|
5
|
+
* Runtime remains the orchestrator; agents are pluggable workers.
|
|
6
|
+
*/
|
|
7
|
+
import type { RuntimeTask } from "./runtime-types.js";
|
|
8
|
+
export type AgentStatus = "idle" | "initializing" | "running" | "paused" | "stopped" | "error";
|
|
9
|
+
export type TaskResultStatus = "success" | "failure" | "partial" | "cancelled";
|
|
10
|
+
export interface AgentWorkerConfig {
|
|
11
|
+
/** Unique identifier for this worker instance */
|
|
12
|
+
readonly id: string;
|
|
13
|
+
/** Provider name (e.g., "codex", "minimax", "glm", "gpt", "deepagents") */
|
|
14
|
+
readonly provider: string;
|
|
15
|
+
/** API endpoint or connection string */
|
|
16
|
+
readonly endpoint?: string;
|
|
17
|
+
/** Authentication token */
|
|
18
|
+
readonly apiKey?: string;
|
|
19
|
+
/** Default model to use */
|
|
20
|
+
readonly defaultModel?: string;
|
|
21
|
+
/** Supported models */
|
|
22
|
+
readonly supportedModels?: string[];
|
|
23
|
+
/** Request timeout in ms */
|
|
24
|
+
readonly timeoutMs?: number;
|
|
25
|
+
/** Maximum concurrent tasks */
|
|
26
|
+
readonly maxConcurrency?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface TaskRequest {
|
|
29
|
+
/** Task to execute */
|
|
30
|
+
task: RuntimeTask;
|
|
31
|
+
/** Working directory for the task */
|
|
32
|
+
workingDir: string;
|
|
33
|
+
/** Context/memory from previous tasks */
|
|
34
|
+
context?: string;
|
|
35
|
+
/** Additional configuration */
|
|
36
|
+
config?: {
|
|
37
|
+
model?: string;
|
|
38
|
+
temperature?: number;
|
|
39
|
+
maxTokens?: number;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export interface TaskResult {
|
|
43
|
+
/** Task ID */
|
|
44
|
+
taskId: string;
|
|
45
|
+
/** Result status */
|
|
46
|
+
status: TaskResultStatus;
|
|
47
|
+
/** Summary of what was done */
|
|
48
|
+
summary: string;
|
|
49
|
+
/** Files that were changed */
|
|
50
|
+
filesChanged?: string[];
|
|
51
|
+
/** Output from the task */
|
|
52
|
+
output?: string;
|
|
53
|
+
/** Error message if failed */
|
|
54
|
+
error?: string;
|
|
55
|
+
/** Tokens used */
|
|
56
|
+
usage?: {
|
|
57
|
+
input: number;
|
|
58
|
+
output: number;
|
|
59
|
+
cost?: number;
|
|
60
|
+
};
|
|
61
|
+
/** Time taken in ms */
|
|
62
|
+
durationMs: number;
|
|
63
|
+
/** Timestamp */
|
|
64
|
+
completedAt: string;
|
|
65
|
+
}
|
|
66
|
+
export interface HealthStatus {
|
|
67
|
+
/** Whether the agent is healthy */
|
|
68
|
+
healthy: boolean;
|
|
69
|
+
/** Current status */
|
|
70
|
+
status: AgentStatus;
|
|
71
|
+
/** Current load (0-1) */
|
|
72
|
+
load: number;
|
|
73
|
+
/** Active task count */
|
|
74
|
+
activeTasks: number;
|
|
75
|
+
/** Queue depth */
|
|
76
|
+
queueDepth: number;
|
|
77
|
+
/** Last health check */
|
|
78
|
+
checkedAt: string;
|
|
79
|
+
/** Error message if unhealthy */
|
|
80
|
+
error?: string;
|
|
81
|
+
}
|
|
82
|
+
export interface AgentWorkerEvents {
|
|
83
|
+
/** Fired when task progress is made */
|
|
84
|
+
onProgress: (taskId: string, progress: TaskProgress) => void;
|
|
85
|
+
/** Fired when a task completes */
|
|
86
|
+
onTaskComplete: (result: TaskResult) => void;
|
|
87
|
+
/** Fired when an error occurs */
|
|
88
|
+
onError: (taskId: string, error: Error) => void;
|
|
89
|
+
/** Fired when agent status changes */
|
|
90
|
+
onStatusChange: (status: AgentStatus) => void;
|
|
91
|
+
/** Fired on health check changes */
|
|
92
|
+
onHealthChange: (health: HealthStatus) => void;
|
|
93
|
+
}
|
|
94
|
+
export interface TaskProgress {
|
|
95
|
+
taskId: string;
|
|
96
|
+
phase: "planning" | "executing" | "reviewing" | "finalizing";
|
|
97
|
+
message: string;
|
|
98
|
+
percentComplete: number;
|
|
99
|
+
timestamp: string;
|
|
100
|
+
}
|
|
101
|
+
export interface AgentWorker {
|
|
102
|
+
/** Unique identifier */
|
|
103
|
+
readonly id: string;
|
|
104
|
+
/** Provider name */
|
|
105
|
+
readonly provider: string;
|
|
106
|
+
/**
|
|
107
|
+
* Initialize the agent worker
|
|
108
|
+
* @param config Worker configuration
|
|
109
|
+
*/
|
|
110
|
+
initialize(config: AgentWorkerConfig): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Execute a task
|
|
113
|
+
* @param request Task request
|
|
114
|
+
* @param events Event handlers
|
|
115
|
+
* @returns Task result
|
|
116
|
+
*/
|
|
117
|
+
execute(request: TaskRequest, events?: Partial<AgentWorkerEvents>): Promise<TaskResult>;
|
|
118
|
+
/**
|
|
119
|
+
* Check agent health
|
|
120
|
+
* @returns Health status
|
|
121
|
+
*/
|
|
122
|
+
health(): Promise<HealthStatus>;
|
|
123
|
+
/**
|
|
124
|
+
* Get current status
|
|
125
|
+
* @returns Agent status
|
|
126
|
+
*/
|
|
127
|
+
status(): AgentStatus;
|
|
128
|
+
/**
|
|
129
|
+
* Pause the agent (stop accepting new tasks)
|
|
130
|
+
*/
|
|
131
|
+
pause(): Promise<void>;
|
|
132
|
+
/**
|
|
133
|
+
* Resume the agent
|
|
134
|
+
*/
|
|
135
|
+
resume(): Promise<void>;
|
|
136
|
+
/**
|
|
137
|
+
* Stop the agent and cleanup
|
|
138
|
+
*/
|
|
139
|
+
stop(): Promise<void>;
|
|
140
|
+
/**
|
|
141
|
+
* Check if a model is supported
|
|
142
|
+
* @param model Model identifier
|
|
143
|
+
* @returns Whether the model is supported
|
|
144
|
+
*/
|
|
145
|
+
supportsModel(model: string): boolean;
|
|
146
|
+
/**
|
|
147
|
+
* Get supported models
|
|
148
|
+
* @returns List of supported model identifiers
|
|
149
|
+
*/
|
|
150
|
+
getSupportedModels(): string[];
|
|
151
|
+
}
|
|
152
|
+
export interface DeepAgentsConfig extends AgentWorkerConfig {
|
|
153
|
+
provider: "deepagents";
|
|
154
|
+
/** DeepAgents server URL */
|
|
155
|
+
endpoint: string;
|
|
156
|
+
/** Project path to work in */
|
|
157
|
+
projectPath?: string;
|
|
158
|
+
/** Additional DeepAgents options */
|
|
159
|
+
options?: {
|
|
160
|
+
streaming?: boolean;
|
|
161
|
+
autoRetry?: boolean;
|
|
162
|
+
maxRetries?: number;
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
export interface DeepAgentsTaskRequest extends TaskRequest {
|
|
166
|
+
config?: TaskRequest["config"] & {
|
|
167
|
+
/** Task priority */
|
|
168
|
+
priority?: "low" | "normal" | "high";
|
|
169
|
+
/** Whether to use sandbox */
|
|
170
|
+
sandbox?: boolean;
|
|
171
|
+
/** Environment variables */
|
|
172
|
+
env?: Record<string, string>;
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
export interface DeepAgentsResult extends TaskResult {
|
|
176
|
+
/** DeepAgents-specific metadata */
|
|
177
|
+
metadata?: {
|
|
178
|
+
agentId?: string;
|
|
179
|
+
workerId?: string;
|
|
180
|
+
sandboxUrl?: string;
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
export type AgentWorkerFactory = (config: AgentWorkerConfig) => AgentWorker;
|
|
184
|
+
/**
|
|
185
|
+
* Registry of agent worker factories
|
|
186
|
+
*/
|
|
187
|
+
export declare class AgentWorkerRegistry {
|
|
188
|
+
private factories;
|
|
189
|
+
/**
|
|
190
|
+
* Register a worker factory
|
|
191
|
+
*/
|
|
192
|
+
register(provider: string, factory: AgentWorkerFactory): void;
|
|
193
|
+
/**
|
|
194
|
+
* Create a worker for a provider
|
|
195
|
+
*/
|
|
196
|
+
create(config: AgentWorkerConfig): AgentWorker | undefined;
|
|
197
|
+
/**
|
|
198
|
+
* Check if a provider is supported
|
|
199
|
+
*/
|
|
200
|
+
supports(provider: string): boolean;
|
|
201
|
+
/**
|
|
202
|
+
* List all supported providers
|
|
203
|
+
*/
|
|
204
|
+
listProviders(): string[];
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=agent-worker-types.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Provider Registry
|
|
3
|
+
*
|
|
4
|
+
* Centralized, canonical list of known AI/LLM providers used as keys across
|
|
5
|
+
* mirror.json, quota tracking, TUI signal parsing, and footer display.
|
|
6
|
+
*
|
|
7
|
+
* Adding a new provider = add ONE entry here + update the places that
|
|
8
|
+
* need per-provider behaviour (scraper, TUI parser, footer, etc.).
|
|
9
|
+
*
|
|
10
|
+
* Provider ids are lowercase internal keys.
|
|
11
|
+
* Labels are human-readable display strings.
|
|
12
|
+
*/
|
|
13
|
+
export declare const KNOWN_AI_PROVIDERS: readonly ["minimax", "openai", "anthropic", "glm", "openrouter", "openai-codex", "deepseek", "gemini", "kimi"];
|
|
14
|
+
export type KnownAiProvider = (typeof KNOWN_AI_PROVIDERS)[number];
|
|
15
|
+
/** Human-readable display labels (used in footer, notifications). */
|
|
16
|
+
export declare const PROVIDER_LABELS: Record<string, string>;
|
|
17
|
+
/**
|
|
18
|
+
* Providers that support continuous quota scraping via cookie/browser automation.
|
|
19
|
+
* Only MiniMax is currently supported here.
|
|
20
|
+
*/
|
|
21
|
+
export declare const SCRAPEABLE_PROVIDERS: KnownAiProvider[];
|
|
22
|
+
/**
|
|
23
|
+
* Providers that report quota via TUI signal capture (one-shot on limit hit).
|
|
24
|
+
* These do NOT have a continuous scraping path.
|
|
25
|
+
*/
|
|
26
|
+
export declare const TUI_SIGNAL_PROVIDERS: KnownAiProvider[];
|
|
27
|
+
/**
|
|
28
|
+
* Check if a provider id is a known AI provider.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isKnownAiProvider(id: string): id is KnownAiProvider;
|
|
31
|
+
/**
|
|
32
|
+
* Get the display label for a provider id.
|
|
33
|
+
* Falls back to the id itself if unknown.
|
|
34
|
+
*/
|
|
35
|
+
export declare function getProviderLabel(id: string): string;
|
|
36
|
+
//# sourceMappingURL=ai-providers.d.ts.map
|
|
@@ -27,6 +27,10 @@ export interface RuntimeCheckpoint {
|
|
|
27
27
|
provider?: string;
|
|
28
28
|
resumeAt?: string;
|
|
29
29
|
lastError?: string;
|
|
30
|
+
/** Provider that caused a quota pause (e.g. "minimax"). */
|
|
31
|
+
quotaProvider?: string;
|
|
32
|
+
/** Limit type that triggered the pause ("tokens" | "context_window" | etc.). */
|
|
33
|
+
quotaLimitType?: string;
|
|
30
34
|
createdAt: string;
|
|
31
35
|
updatedAt: string;
|
|
32
36
|
/** Loop iteration at checkpoint (used by LoopRuntime for resume) */
|
|
@@ -409,4 +413,6 @@ export interface CompactOrchestratorCallbacks {
|
|
|
409
413
|
droppedCount: number;
|
|
410
414
|
}>;
|
|
411
415
|
}
|
|
416
|
+
export { KNOWN_AI_PROVIDERS, PROVIDER_LABELS, SCRAPEABLE_PROVIDERS, TUI_SIGNAL_PROVIDERS, isKnownAiProvider, getProviderLabel, } from "./ai-providers.js";
|
|
417
|
+
export type { KnownAiProvider } from "./ai-providers.js";
|
|
412
418
|
//# sourceMappingURL=runtime-types.d.ts.map
|
|
@@ -10,12 +10,9 @@
|
|
|
10
10
|
* - allow separate models to work on separate tasks
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import type { WorktreeInfo } from "../../
|
|
14
|
-
// @ts-expect-error - Bun has built-in Node.js types
|
|
13
|
+
import type { WorktreeInfo } from "../../types/src/runtime-types.js";
|
|
15
14
|
import { execSync } from "node:child_process";
|
|
16
|
-
// @ts-expect-error - Bun has built-in Node.js types
|
|
17
15
|
import { existsSync, mkdirSync, writeFileSync, readFileSync } from "node:fs";
|
|
18
|
-
// @ts-expect-error - Bun has built-in Node.js types
|
|
19
16
|
import { join, dirname } from "node:path";
|
|
20
17
|
|
|
21
18
|
export interface WorktreeOptions {
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@moocoding/write-review",
|
|
3
|
+
"version": "0.10.30",
|
|
4
|
+
"description": "Two-agent write-review loop with blackboard coordination",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "src/index.ts",
|
|
7
|
+
"types": "src/index.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./src/index.ts",
|
|
11
|
+
"types": "./src/index.ts"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"keywords": [
|
|
15
|
+
"pi-extension",
|
|
16
|
+
"write-review",
|
|
17
|
+
"blackboard",
|
|
18
|
+
"multi-agent"
|
|
19
|
+
],
|
|
20
|
+
"author": "MooCoding",
|
|
21
|
+
"license": "MIT"
|
|
22
|
+
}
|