@monoes/monomindcli 2.8.3 → 2.9.1
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/.claude/helpers/auto-memory-hook.mjs +0 -0
- package/.claude/helpers/handlers/route-handler.cjs +12 -0
- package/.claude/helpers/handlers/session-restore-handler.cjs +28 -7
- package/.claude/helpers/hook-handler.cjs +0 -0
- package/.claude/helpers/utils/micro-agents.cjs +22 -0
- package/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +11 -6
- package/.claude/skills/monodesign/scripts/live-inject.mjs +20 -7
- package/.claude/skills/monodesign/scripts/live-server.mjs +38 -2
- package/LICENSE +191 -0
- package/README.md +8 -6
- package/dist/src/browser/dashboard/server.d.ts +5 -0
- package/dist/src/browser/dashboard/server.d.ts.map +1 -1
- package/dist/src/browser/dashboard/server.js +59 -4
- package/dist/src/browser/dashboard/server.js.map +1 -1
- package/dist/src/browser/dashboard/ui.html +18 -8
- package/dist/src/browser/workflow/store.d.ts.map +1 -1
- package/dist/src/browser/workflow/store.js +3 -2
- package/dist/src/browser/workflow/store.js.map +1 -1
- package/dist/src/capabilities/cap-documents.d.ts.map +1 -1
- package/dist/src/capabilities/cap-documents.js +14 -9
- package/dist/src/capabilities/cap-documents.js.map +1 -1
- package/dist/src/commands/design-palette.d.ts +5 -0
- package/dist/src/commands/design-palette.d.ts.map +1 -1
- package/dist/src/commands/design-palette.js +8 -5
- package/dist/src/commands/design-palette.js.map +1 -1
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.js +22 -18
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/download-embeddings.d.ts +8 -0
- package/dist/src/commands/download-embeddings.d.ts.map +1 -0
- package/dist/src/commands/download-embeddings.js +34 -0
- package/dist/src/commands/download-embeddings.js.map +1 -0
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +14 -0
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +4 -0
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/init-wizard.js +1 -1
- package/dist/src/commands/init-wizard.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +48 -1
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/monograph.d.ts.map +1 -1
- package/dist/src/commands/monograph.js +35 -1
- package/dist/src/commands/monograph.js.map +1 -1
- package/dist/src/commands/org-observe.d.ts +10 -0
- package/dist/src/commands/org-observe.d.ts.map +1 -1
- package/dist/src/commands/org-observe.js +195 -31
- package/dist/src/commands/org-observe.js.map +1 -1
- package/dist/src/commands/org.d.ts +1 -0
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +139 -3
- package/dist/src/commands/org.js.map +1 -1
- package/dist/src/commands/route.d.ts +1 -9
- package/dist/src/commands/route.d.ts.map +1 -1
- package/dist/src/commands/route.js +42 -65
- package/dist/src/commands/route.js.map +1 -1
- package/dist/src/commands/security-cve.d.ts.map +1 -1
- package/dist/src/commands/security-cve.js +2 -1
- package/dist/src/commands/security-cve.js.map +1 -1
- package/dist/src/index.d.ts +0 -10
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -15
- package/dist/src/index.js.map +1 -1
- package/dist/src/init/copy-assets.d.ts +17 -0
- package/dist/src/init/copy-assets.d.ts.map +1 -0
- package/dist/src/init/copy-assets.js +271 -0
- package/dist/src/init/copy-assets.js.map +1 -0
- package/dist/src/init/executor.d.ts +2 -30
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +56 -2493
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/geminimd-generator.js +2 -2
- package/dist/src/init/helpers-generator.d.ts.map +1 -1
- package/dist/src/init/helpers-generator.js +9 -0
- package/dist/src/init/helpers-generator.js.map +1 -1
- package/dist/src/init/kimi-generator.js +3 -3
- package/dist/src/init/kimi-generator.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js +0 -4
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/shared.d.ts +112 -0
- package/dist/src/init/shared.d.ts.map +1 -0
- package/dist/src/init/shared.js +475 -0
- package/dist/src/init/shared.js.map +1 -0
- package/dist/src/init/statusline-generator.d.ts.map +1 -1
- package/dist/src/init/statusline-generator.js +37 -0
- package/dist/src/init/statusline-generator.js.map +1 -1
- package/dist/src/init/types.d.ts +1 -1
- package/dist/src/init/types.d.ts.map +1 -1
- package/dist/src/init/upgrade.d.ts +34 -0
- package/dist/src/init/upgrade.d.ts.map +1 -0
- package/dist/src/init/upgrade.js +477 -0
- package/dist/src/init/upgrade.js.map +1 -0
- package/dist/src/init/write-antigravity.d.ts +13 -0
- package/dist/src/init/write-antigravity.d.ts.map +1 -0
- package/dist/src/init/write-antigravity.js +117 -0
- package/dist/src/init/write-antigravity.js.map +1 -0
- package/dist/src/init/write-capabilities.d.ts +9 -0
- package/dist/src/init/write-capabilities.d.ts.map +1 -0
- package/dist/src/init/write-capabilities.js +392 -0
- package/dist/src/init/write-capabilities.js.map +1 -0
- package/dist/src/init/write-claude.d.ts +25 -0
- package/dist/src/init/write-claude.d.ts.map +1 -0
- package/dist/src/init/write-claude.js +279 -0
- package/dist/src/init/write-claude.js.map +1 -0
- package/dist/src/init/write-kimicode.d.ts +19 -0
- package/dist/src/init/write-kimicode.d.ts.map +1 -0
- package/dist/src/init/write-kimicode.js +223 -0
- package/dist/src/init/write-kimicode.js.map +1 -0
- package/dist/src/init/write-opencode.d.ts +14 -0
- package/dist/src/init/write-opencode.d.ts.map +1 -0
- package/dist/src/init/write-opencode.js +130 -0
- package/dist/src/init/write-opencode.js.map +1 -0
- package/dist/src/init/write-runtime-config.d.ts +14 -0
- package/dist/src/init/write-runtime-config.d.ts.map +1 -0
- package/dist/src/init/write-runtime-config.js +214 -0
- package/dist/src/init/write-runtime-config.js.map +1 -0
- package/dist/src/init/write-sample-org.d.ts +9 -0
- package/dist/src/init/write-sample-org.d.ts.map +1 -0
- package/dist/src/init/write-sample-org.js +39 -0
- package/dist/src/init/write-sample-org.js.map +1 -0
- package/dist/src/knowledge/eval/golden-set.js +1 -1
- package/dist/src/knowledge/eval/golden-set.js.map +1 -1
- package/dist/src/mcp-client.d.ts.map +1 -1
- package/dist/src/mcp-client.js +7 -3
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/analyze-tools.js +2 -25
- package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
- package/dist/src/mcp-tools/auto-install.d.ts.map +1 -1
- package/dist/src/mcp-tools/auto-install.js +2 -1
- package/dist/src/mcp-tools/auto-install.js.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.js +26 -0
- package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +2 -37
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/monodesign-tools.d.ts +19 -0
- package/dist/src/mcp-tools/monodesign-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monodesign-tools.js +233 -0
- package/dist/src/mcp-tools/monodesign-tools.js.map +1 -0
- package/dist/src/mcp-tools/monograph/agent-history-tools.d.ts +5 -0
- package/dist/src/mcp-tools/monograph/agent-history-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/agent-history-tools.js +177 -0
- package/dist/src/mcp-tools/monograph/agent-history-tools.js.map +1 -0
- package/dist/src/mcp-tools/monograph/build-tools.d.ts +9 -0
- package/dist/src/mcp-tools/monograph/build-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/build-tools.js +299 -0
- package/dist/src/mcp-tools/monograph/build-tools.js.map +1 -0
- package/dist/src/mcp-tools/monograph/group-tools.d.ts +10 -0
- package/dist/src/mcp-tools/monograph/group-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/group-tools.js +225 -0
- package/dist/src/mcp-tools/monograph/group-tools.js.map +1 -0
- package/dist/src/mcp-tools/monograph/health-tools.d.ts +6 -0
- package/dist/src/mcp-tools/monograph/health-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/health-tools.js +113 -0
- package/dist/src/mcp-tools/monograph/health-tools.js.map +1 -0
- package/dist/src/mcp-tools/monograph/impact-tools.d.ts +9 -0
- package/dist/src/mcp-tools/monograph/impact-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/impact-tools.js +532 -0
- package/dist/src/mcp-tools/monograph/impact-tools.js.map +1 -0
- package/dist/src/mcp-tools/monograph/index.d.ts +10 -0
- package/dist/src/mcp-tools/monograph/index.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/index.js +73 -0
- package/dist/src/mcp-tools/monograph/index.js.map +1 -0
- package/dist/src/mcp-tools/monograph/query-tools.d.ts +11 -0
- package/dist/src/mcp-tools/monograph/query-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/query-tools.js +500 -0
- package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -0
- package/dist/src/mcp-tools/monograph/shared.d.ts +64 -0
- package/dist/src/mcp-tools/monograph/shared.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/shared.js +215 -0
- package/dist/src/mcp-tools/monograph/shared.js.map +1 -0
- package/dist/src/mcp-tools/monograph/visualize-tools.d.ts +10 -0
- package/dist/src/mcp-tools/monograph/visualize-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monograph/visualize-tools.js +382 -0
- package/dist/src/mcp-tools/monograph/visualize-tools.js.map +1 -0
- package/dist/src/mcp-tools/monograph-tools.d.ts +4 -23
- package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph-tools.js +4 -2439
- package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
- package/dist/src/mcp-tools/monomind-tools.d.ts +8 -0
- package/dist/src/mcp-tools/monomind-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monomind-tools.js +13 -1
- package/dist/src/mcp-tools/monomind-tools.js.map +1 -1
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts.map +1 -1
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js +31 -2
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.js +31 -1
- package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
- package/dist/src/mcp-tools/types.d.ts +8 -27
- package/dist/src/mcp-tools/types.d.ts.map +1 -1
- package/dist/src/mcp-tools/types.js +9 -91
- package/dist/src/mcp-tools/types.js.map +1 -1
- package/dist/src/memory/file-permissions.d.ts +15 -0
- package/dist/src/memory/file-permissions.d.ts.map +1 -0
- package/dist/src/memory/file-permissions.js +25 -0
- package/dist/src/memory/file-permissions.js.map +1 -0
- package/dist/src/memory/memory-bridge.d.ts.map +1 -1
- package/dist/src/memory/memory-bridge.js +94 -34
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-crud.d.ts.map +1 -1
- package/dist/src/memory/memory-crud.js +298 -275
- package/dist/src/memory/memory-crud.js.map +1 -1
- package/dist/src/memory/memory-initializer.d.ts +2 -4
- package/dist/src/memory/memory-initializer.d.ts.map +1 -1
- package/dist/src/memory/memory-initializer.js +53 -76
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/memory/memory-migrations.d.ts +1 -14
- package/dist/src/memory/memory-migrations.d.ts.map +1 -1
- package/dist/src/memory/memory-migrations.js +52 -105
- package/dist/src/memory/memory-migrations.js.map +1 -1
- package/dist/src/memory/sona-optimizer.d.ts +1 -1
- package/dist/src/memory/sona-optimizer.js +1 -1
- package/dist/src/monovector/index.d.ts +16 -19
- package/dist/src/monovector/index.d.ts.map +1 -1
- package/dist/src/monovector/index.js +50 -8
- package/dist/src/monovector/index.js.map +1 -1
- package/dist/src/orgrt/approvals.d.ts +16 -0
- package/dist/src/orgrt/approvals.d.ts.map +1 -0
- package/dist/src/orgrt/approvals.js +72 -0
- package/dist/src/orgrt/approvals.js.map +1 -0
- package/dist/src/orgrt/bus.d.ts.map +1 -1
- package/dist/src/orgrt/bus.js +21 -0
- package/dist/src/orgrt/bus.js.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.d.ts +19 -0
- package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -0
- package/dist/src/orgrt/checkpoint-ops.js +219 -0
- package/dist/src/orgrt/checkpoint-ops.js.map +1 -0
- package/dist/src/orgrt/checkpoint.d.ts +33 -1
- package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint.js +50 -6
- package/dist/src/orgrt/checkpoint.js.map +1 -1
- package/dist/src/orgrt/cross-org.d.ts +32 -0
- package/dist/src/orgrt/cross-org.d.ts.map +1 -0
- package/dist/src/orgrt/cross-org.js +256 -0
- package/dist/src/orgrt/cross-org.js.map +1 -0
- package/dist/src/orgrt/daemon.d.ts +131 -157
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +356 -966
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/decisions.d.ts +33 -0
- package/dist/src/orgrt/decisions.d.ts.map +1 -0
- package/dist/src/orgrt/decisions.js +169 -0
- package/dist/src/orgrt/decisions.js.map +1 -0
- package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/kimicode-runner.js +5 -1
- package/dist/src/orgrt/kimicode-runner.js.map +1 -1
- package/dist/src/orgrt/opencode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/opencode-runner.js +10 -2
- package/dist/src/orgrt/opencode-runner.js.map +1 -1
- package/dist/src/orgrt/org-memory.d.ts +45 -0
- package/dist/src/orgrt/org-memory.d.ts.map +1 -0
- package/dist/src/orgrt/org-memory.js +220 -0
- package/dist/src/orgrt/org-memory.js.map +1 -0
- package/dist/src/orgrt/policy.d.ts +4 -0
- package/dist/src/orgrt/policy.d.ts.map +1 -1
- package/dist/src/orgrt/policy.js +13 -1
- package/dist/src/orgrt/policy.js.map +1 -1
- package/dist/src/orgrt/prechecks.d.ts +15 -0
- package/dist/src/orgrt/prechecks.d.ts.map +1 -0
- package/dist/src/orgrt/prechecks.js +21 -0
- package/dist/src/orgrt/prechecks.js.map +1 -0
- package/dist/src/orgrt/questions.d.ts +39 -0
- package/dist/src/orgrt/questions.d.ts.map +1 -0
- package/dist/src/orgrt/questions.js +135 -0
- package/dist/src/orgrt/questions.js.map +1 -0
- package/dist/src/orgrt/remote.d.ts +25 -0
- package/dist/src/orgrt/remote.d.ts.map +1 -0
- package/dist/src/orgrt/remote.js +73 -0
- package/dist/src/orgrt/remote.js.map +1 -0
- package/dist/src/orgrt/scheduler-integration.d.ts +19 -0
- package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -0
- package/dist/src/orgrt/scheduler-integration.js +90 -0
- package/dist/src/orgrt/scheduler-integration.js.map +1 -0
- package/dist/src/orgrt/server.d.ts.map +1 -1
- package/dist/src/orgrt/server.js +70 -2
- package/dist/src/orgrt/server.js.map +1 -1
- package/dist/src/orgrt/session.d.ts +30 -1
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +184 -53
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/src/orgrt/state-detector.d.ts +19 -0
- package/dist/src/orgrt/state-detector.d.ts.map +1 -0
- package/dist/src/orgrt/state-detector.js +59 -0
- package/dist/src/orgrt/state-detector.js.map +1 -0
- package/dist/src/orgrt/task-dag.d.ts +27 -0
- package/dist/src/orgrt/task-dag.d.ts.map +1 -0
- package/dist/src/orgrt/task-dag.js +100 -0
- package/dist/src/orgrt/task-dag.js.map +1 -0
- package/dist/src/orgrt/tool-fence.d.ts +7 -4
- package/dist/src/orgrt/tool-fence.d.ts.map +1 -1
- package/dist/src/orgrt/tool-fence.js +47 -6
- package/dist/src/orgrt/tool-fence.js.map +1 -1
- package/dist/src/orgrt/types.d.ts +57 -2
- package/dist/src/orgrt/types.d.ts.map +1 -1
- package/dist/src/orgrt/types.js +34 -3
- package/dist/src/orgrt/types.js.map +1 -1
- package/dist/src/routing/model-download.d.ts +49 -0
- package/dist/src/routing/model-download.d.ts.map +1 -0
- package/dist/src/routing/model-download.js +106 -0
- package/dist/src/routing/model-download.js.map +1 -0
- package/dist/src/services/crash-reporter.d.ts +5 -0
- package/dist/src/services/crash-reporter.d.ts.map +1 -1
- package/dist/src/services/crash-reporter.js +49 -0
- package/dist/src/services/crash-reporter.js.map +1 -1
- package/dist/src/transfer/anonymization/index.d.ts +18 -15
- package/dist/src/transfer/anonymization/index.d.ts.map +1 -1
- package/dist/src/transfer/anonymization/index.js +7 -119
- package/dist/src/transfer/anonymization/index.js.map +1 -1
- package/dist/src/ui/dashboard.html +606 -7
- package/dist/src/ui/orgs.html +7 -1
- package/dist/src/ui/routes-monograph.mjs +6 -0
- package/dist/src/ui/server.mjs +327 -7
- package/dist/src/update/checker.d.ts.map +1 -1
- package/dist/src/update/checker.js +2 -1
- package/dist/src/update/checker.js.map +1 -1
- package/dist/src/update/executor.d.ts.map +1 -1
- package/dist/src/update/executor.js +7 -3
- package/dist/src/update/executor.js.map +1 -1
- package/dist/src/update/index.d.ts +0 -1
- package/dist/src/update/index.d.ts.map +1 -1
- package/dist/src/update/index.js +5 -24
- package/dist/src/update/index.js.map +1 -1
- package/dist/src/utils/db-mutex.d.ts +11 -0
- package/dist/src/utils/db-mutex.d.ts.map +1 -0
- package/dist/src/utils/db-mutex.js +23 -0
- package/dist/src/utils/db-mutex.js.map +1 -0
- package/dist/src/utils/input-guards.d.ts +23 -0
- package/dist/src/utils/input-guards.d.ts.map +1 -1
- package/dist/src/utils/input-guards.js +72 -0
- package/dist/src/utils/input-guards.js.map +1 -1
- package/dist/src/utils/npm-command.d.ts +10 -0
- package/dist/src/utils/npm-command.d.ts.map +1 -0
- package/dist/src/utils/npm-command.js +12 -0
- package/dist/src/utils/npm-command.js.map +1 -0
- package/dist/src/utils/paths.d.ts +28 -0
- package/dist/src/utils/paths.d.ts.map +1 -0
- package/dist/src/utils/paths.js +108 -0
- package/dist/src/utils/paths.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +17 -17
- package/scripts/download-embedding-model.mjs +97 -0
- package/scripts/publish.sh +0 -0
- package/scripts/sync-claude-assets.sh +0 -0
- package/dist/src/production/circuit-breaker.d.ts +0 -121
- package/dist/src/production/circuit-breaker.d.ts.map +0 -1
- package/dist/src/production/circuit-breaker.js +0 -262
- package/dist/src/production/circuit-breaker.js.map +0 -1
- package/dist/src/production/error-handler.d.ts +0 -119
- package/dist/src/production/error-handler.d.ts.map +0 -1
- package/dist/src/production/error-handler.js +0 -324
- package/dist/src/production/error-handler.js.map +0 -1
- package/dist/src/production/index.d.ts +0 -6
- package/dist/src/production/index.d.ts.map +0 -1
- package/dist/src/production/index.js +0 -6
- package/dist/src/production/index.js.map +0 -1
- package/dist/src/production/monitoring.d.ts +0 -181
- package/dist/src/production/monitoring.d.ts.map +0 -1
- package/dist/src/production/monitoring.js +0 -375
- package/dist/src/production/monitoring.js.map +0 -1
- package/dist/src/production/rate-limiter.d.ts +0 -125
- package/dist/src/production/rate-limiter.d.ts.map +0 -1
- package/dist/src/production/rate-limiter.js +0 -218
- package/dist/src/production/rate-limiter.js.map +0 -1
- package/dist/src/production/retry.d.ts +0 -48
- package/dist/src/production/retry.d.ts.map +0 -1
- package/dist/src/production/retry.js +0 -189
- package/dist/src/production/retry.js.map +0 -1
- package/dist/src/transfer/types.d.ts +0 -245
- package/dist/src/transfer/types.d.ts.map +0 -1
- package/dist/src/transfer/types.js +0 -6
- package/dist/src/transfer/types.js.map +0 -1
|
@@ -2,12 +2,35 @@
|
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { Mailbox } from './mailbox.js';
|
|
4
4
|
import { ClaudeAgentRunner, defaultClaudeRunner } from './agent-runner.js';
|
|
5
|
+
import { StateDetector } from './state-detector.js';
|
|
5
6
|
/** How long an SDK stream may stay open with zero messages before we say so.
|
|
6
7
|
* Comfortably longer than a slow first turn, shorter than the idle watchdog's
|
|
7
8
|
* 10-minute window so the specific cause is reported before the generic
|
|
8
9
|
* "boss appears hung". */
|
|
9
10
|
const SILENT_SESSION_MS = 4 * 60_000;
|
|
11
|
+
const CONTEXT_LIMIT_RE = /context.window.limit|context.length.exceeded|maximum.context/i;
|
|
10
12
|
import { resolveProviderEnv } from './provider.js';
|
|
13
|
+
/** The SDK's `canUseTool` gate, composed from two independent layers: PolicyEngine's
|
|
14
|
+
* static config checks (deny/allow lists, path scoping, git level, web allowlist,
|
|
15
|
+
* budget), then — only for calls policy would allow — the human-approval guardrail
|
|
16
|
+
* (`beforeTool`, i.e. daemon.checkApproval) for whatever action names it treats as
|
|
17
|
+
* sensitive (Bash/WebFetch/WebSearch/org_complete). Exported standalone so this
|
|
18
|
+
* composition is unit-testable without spinning up a real SDK session: previously
|
|
19
|
+
* `beforeTool` was wired into SessionOpts but never actually called from here, so
|
|
20
|
+
* none of those sensitive actions ever paused for a human. */
|
|
21
|
+
export function gatedCanUseTool(policy, beforeTool, roleId) {
|
|
22
|
+
return async (toolName, input) => {
|
|
23
|
+
const decision = await policy.decide(toolName, input);
|
|
24
|
+
if (decision.behavior === 'deny' || !beforeTool)
|
|
25
|
+
return decision;
|
|
26
|
+
const approved = await beforeTool(roleId, toolName);
|
|
27
|
+
if (approved === false)
|
|
28
|
+
return { behavior: 'deny', message: `Tool "${toolName}" was denied by guardrail approval` };
|
|
29
|
+
if (approved === null)
|
|
30
|
+
return { behavior: 'deny', message: `Tool "${toolName}" is pending human approval — it will be available once approved or denied via 'monomind org approve/deny'.` };
|
|
31
|
+
return decision;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
11
34
|
/** Role briefing given to each agent session (SDK systemPrompt option). */
|
|
12
35
|
export function buildRolePrompt(role, def, roster, glossary) {
|
|
13
36
|
const isCoordinator = role.reports_to == null;
|
|
@@ -19,8 +42,12 @@ export function buildRolePrompt(role, def, roster, glossary) {
|
|
|
19
42
|
`## Communication protocol`,
|
|
20
43
|
`The ONLY way to communicate with other agents is the org_send tool.`,
|
|
21
44
|
`Roster: ${roster.join(', ')}. Address another org's agent as "<org-name>:<role-id>".`,
|
|
22
|
-
`When you receive a message, act on it, then org_send your result to the requester.`,
|
|
23
45
|
`If you need a human decision, call ask_human with your question, then end your turn - you'll receive the human's answer as a new message when it arrives. Do not call ask_human for anything you can resolve yourself.`,
|
|
46
|
+
`For irreversible or high-risk actions (deployments, deletions, external communications), call org_gate to create a decision gate — a hard-blocking approval checkpoint. End your turn and wait for the human's approval or rejection before proceeding.`,
|
|
47
|
+
`You can structure work as a task DAG: use org_task to create tasks with dependencies, org_task_done to mark them complete, and org_tasks to see the full DAG. Tasks with satisfied dependencies are automatically dispatched to their assignee.`,
|
|
48
|
+
`Before starting substantial work, call org_recall to check what previous runs already learned or delivered - do not redo finished work.`,
|
|
49
|
+
`The user's documents (notes, handbooks, specs) are searchable with knowledge_search - ground your work in them instead of guessing; results labeled [global] come from the user's personal cross-project brain.`,
|
|
50
|
+
`When you receive a message, act on it, then org_send your result to the requester.`,
|
|
24
51
|
isCoordinator
|
|
25
52
|
? `When the org's goal for this run is achieved (or clearly can't be): first call org_learn ONCE with the durable knowledge this run produced, then call org_complete exactly once with the outcome and a concise summary. Then end your turn.`
|
|
26
53
|
: `When your current work is complete and no reply is needed, end your turn without further tool calls.`,
|
|
@@ -53,13 +80,23 @@ export async function runAgentSession(opts) {
|
|
|
53
80
|
// watchdog re-engage — so a stuck role can't burn tokens forever.
|
|
54
81
|
const MAX_CONTINUATIONS = 3;
|
|
55
82
|
let consecutiveSpin = 0;
|
|
83
|
+
// The SDK's result message reports total_cost_usd CUMULATIVELY for the whole
|
|
84
|
+
// SDK session: one query() call stays open across every mailbox message
|
|
85
|
+
// (streaming-input mode) and emits one result per message, and the running
|
|
86
|
+
// total even survives a resume after a maxTurns restart. daemon.ts and
|
|
87
|
+
// reporting.ts both SUM the cost_usd of usage events, so forwarding the raw
|
|
88
|
+
// value charged every previous turn again on each new message - observed as
|
|
89
|
+
// ~10-20x cost inflation on long org runs. Track the last-seen total per
|
|
90
|
+
// SDK session id here (it must outlive individual runOneSession calls,
|
|
91
|
+
// since resume continues the same billing session) and emit only deltas.
|
|
92
|
+
const sessionCostTotals = new Map();
|
|
56
93
|
// Always run at least once: a mailbox can be closed with queued items still
|
|
57
94
|
// pending (stream() drains the queue before honoring `closed`), which is a
|
|
58
95
|
// normal, valid starting state - checking isClosed before the first run
|
|
59
96
|
// would skip that drain entirely.
|
|
60
97
|
while (true) {
|
|
61
98
|
const realBefore = mailbox.consumedRealCount;
|
|
62
|
-
const { sessionId, hitTurnLimit } = await runOneSession(opts, resumeSessionId);
|
|
99
|
+
const { sessionId, hitTurnLimit } = await runOneSession(opts, resumeSessionId, sessionCostTotals);
|
|
63
100
|
resumeSessionId = sessionId;
|
|
64
101
|
// The dead session's generator may still hold the waker - drop it so a
|
|
65
102
|
// push() before the next stream() starts only queues instead of being
|
|
@@ -93,7 +130,7 @@ export async function runAgentSession(opts) {
|
|
|
93
130
|
* resuming on restart) and whether it ended by hitting the turn limit (so the
|
|
94
131
|
* caller can push a continuation) when the stream ends (mailbox closed or
|
|
95
132
|
* maxTurns reached). */
|
|
96
|
-
async function runOneSession(opts, resume) {
|
|
133
|
+
async function runOneSession(opts, resume, costTotals) {
|
|
97
134
|
const { org, role, bus, policy, mailbox, cwd } = opts;
|
|
98
135
|
// Read lastMessageId live from opts instead of capturing at session start
|
|
99
136
|
// This ensures chat responses link to the most recent message delivered
|
|
@@ -106,6 +143,7 @@ async function runOneSession(opts, resume) {
|
|
|
106
143
|
bus.emit({ type: 'status', from: role.id, msg: 'session starting' });
|
|
107
144
|
let sessionId = resume;
|
|
108
145
|
let hitTurnLimit = false;
|
|
146
|
+
let contextLimitFired = false;
|
|
109
147
|
try {
|
|
110
148
|
const stream = runner.run({
|
|
111
149
|
tools,
|
|
@@ -127,7 +165,7 @@ async function runOneSession(opts, resume) {
|
|
|
127
165
|
},
|
|
128
166
|
maxTurns: opts.maxTurns ?? 30,
|
|
129
167
|
resume,
|
|
130
|
-
canUseTool:
|
|
168
|
+
canUseTool: gatedCanUseTool(policy, opts.beforeTool, role.id),
|
|
131
169
|
// test seam forwarded through extras: lets the scripted fake SDK
|
|
132
170
|
// (test-loop.ts) drive org_send and tool calls through the real
|
|
133
171
|
// deliver/policy paths; the real SDK ignores it.
|
|
@@ -143,65 +181,130 @@ async function runOneSession(opts, resume) {
|
|
|
143
181
|
// and yielded NOTHING - no assistant message, no result, no error, and no
|
|
144
182
|
// stream end. The only symptom was the idle watchdog reporting the boss
|
|
145
183
|
// "appears hung" twenty minutes later, which described neither the scope
|
|
146
|
-
// (every role) nor the cause.
|
|
147
|
-
//
|
|
148
|
-
//
|
|
184
|
+
// (every role) nor the cause.
|
|
185
|
+
//
|
|
186
|
+
// Naming it used to be all this did: log an audit event at 4 minutes and
|
|
187
|
+
// then keep waiting on the same stuck `for await`, so recovery still
|
|
188
|
+
// depended on the org-wide idle watchdog (10m nudge + 10m stop = 20m of
|
|
189
|
+
// dead time per cycle - and it kills the WHOLE run, not just the stuck
|
|
190
|
+
// session). Only the FIRST pull from the stream is raced against the
|
|
191
|
+
// timeout: once any message has arrived the session is demonstrably
|
|
192
|
+
// alive, so a slow-but-working tool call is never mistaken for a stall.
|
|
193
|
+
// On silence, abandon this attempt (best-effort iterator.return() to
|
|
194
|
+
// signal the SDK) and throw - the caller's crash-retry-with-backoff loop
|
|
195
|
+
// (daemon.ts's `runtime.done`) already knows how to retry a failed
|
|
196
|
+
// session with a fresh query() call and, for the boss, escalate to a
|
|
197
|
+
// whole-org restart if it keeps failing. That gives the SDK several
|
|
198
|
+
// fresh attempts within a single cycle instead of one silent attempt
|
|
199
|
+
// followed by twenty minutes of nothing.
|
|
149
200
|
const openedAt = Date.now();
|
|
150
|
-
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
|
|
201
|
+
const detector = new StateDetector();
|
|
202
|
+
const iterator = stream[Symbol.asyncIterator]();
|
|
203
|
+
const SILENT = Symbol('silent');
|
|
204
|
+
let silentTimer;
|
|
205
|
+
const firstPull = await Promise.race([
|
|
206
|
+
iterator.next(),
|
|
207
|
+
new Promise(resolve => {
|
|
208
|
+
silentTimer = setTimeout(() => resolve(SILENT), SILENT_SESSION_MS);
|
|
209
|
+
silentTimer.unref?.();
|
|
210
|
+
}),
|
|
211
|
+
]);
|
|
212
|
+
clearTimeout(silentTimer);
|
|
213
|
+
if (firstPull === SILENT) {
|
|
154
214
|
bus.emit({
|
|
155
215
|
type: 'audit', from: role.id, reason: 'session-silent',
|
|
156
|
-
msg: `SDK stream open ${Math.round((Date.now() - openedAt) / 1000)}s with zero messages -
|
|
216
|
+
msg: `SDK stream open ${Math.round((Date.now() - openedAt) / 1000)}s with zero messages - aborting this attempt and retrying. Set MONOMIND_DEBUG=1 to log raw message types.`,
|
|
157
217
|
});
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
218
|
+
try {
|
|
219
|
+
await Promise.race([
|
|
220
|
+
iterator.return?.(undefined) ?? Promise.resolve(),
|
|
221
|
+
new Promise(r => { const t = setTimeout(() => r(), 2_000); t.unref?.(); }),
|
|
222
|
+
]);
|
|
223
|
+
}
|
|
224
|
+
catch { /* best-effort */ }
|
|
225
|
+
throw new Error(`org "${org}" role "${role.id}": SDK stream silent for ${Math.round(SILENT_SESSION_MS / 1000)}s with zero messages`);
|
|
226
|
+
}
|
|
227
|
+
const first = firstPull;
|
|
228
|
+
// Replay the first pulled message, then continue draining normally.
|
|
229
|
+
async function* rest() {
|
|
230
|
+
if (!first.done)
|
|
231
|
+
yield first.value;
|
|
232
|
+
while (true) {
|
|
233
|
+
const r = await iterator.next();
|
|
234
|
+
if (r.done)
|
|
235
|
+
return;
|
|
236
|
+
yield r.value;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
for await (const m of rest()) {
|
|
240
|
+
if (process.env.MONOMIND_DEBUG) {
|
|
241
|
+
console.error(`[orgrt:${org}/${role.id}] runner message type=${m.type} subtype=${String(m.subtype ?? '-')}`);
|
|
242
|
+
}
|
|
243
|
+
if (m.session_id)
|
|
244
|
+
sessionId = m.session_id;
|
|
245
|
+
const prevState = detector.current();
|
|
246
|
+
const textForDetect = m.type === 'assistant' ? (m.text || '') : undefined;
|
|
247
|
+
const newState = detector.onMessage(m.type, m.subtype, textForDetect);
|
|
248
|
+
if (newState !== prevState) {
|
|
249
|
+
bus.emit({ type: 'status', from: role.id, reason: 'state-change', msg: `${prevState} → ${newState}`, data: { from: prevState, to: newState } });
|
|
250
|
+
}
|
|
251
|
+
if (m.type === 'assistant') {
|
|
252
|
+
const text = m.text || '';
|
|
253
|
+
if (text.trim()) {
|
|
254
|
+
opts.onOutput?.(text);
|
|
255
|
+
bus.emit({ type: 'chat', from: role.id, msg: text, parentId: getLastMessageId() });
|
|
256
|
+
if (opts.onContextLimit && !contextLimitFired && CONTEXT_LIMIT_RE.test(text)) {
|
|
257
|
+
contextLimitFired = true;
|
|
258
|
+
bus.emit({ type: 'audit', from: role.id, reason: 'boss-context-limit', msg: 'coordinator context window exhausted — requesting whole-org restart with fresh sessions' });
|
|
259
|
+
opts.onContextLimit();
|
|
260
|
+
}
|
|
168
261
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
262
|
+
}
|
|
263
|
+
else if (m.type === 'result') {
|
|
264
|
+
const tokens = (m.input_tokens ?? 0) + (m.output_tokens ?? 0);
|
|
265
|
+
policy.addUsage(tokens);
|
|
266
|
+
// Convert the SDK's cumulative-per-session total_cost_usd into a
|
|
267
|
+
// per-result delta before emitting - downstream sums usage events.
|
|
268
|
+
// A value below the stored total means the billing session restarted
|
|
269
|
+
// (fresh session id), in which case the full value is the delta.
|
|
270
|
+
let costDelta = m.cost_usd;
|
|
271
|
+
if (costTotals && typeof m.cost_usd === 'number' && Number.isFinite(m.cost_usd)) {
|
|
272
|
+
const sid = m.session_id ?? sessionId ?? '';
|
|
273
|
+
const prev = costTotals.get(sid);
|
|
274
|
+
costDelta = prev === undefined || m.cost_usd < prev ? m.cost_usd : m.cost_usd - prev;
|
|
275
|
+
costTotals.set(sid, m.cost_usd);
|
|
175
276
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
if (
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
bus.emit({ type: 'status', from: role.id, msg: 'token budget exhausted - closing session' });
|
|
197
|
-
mailbox.close();
|
|
277
|
+
bus.emit({ type: 'usage', from: role.id, data: { tokens, cost_usd: costDelta, subtype: m.subtype } });
|
|
278
|
+
if (m.subtype && m.subtype !== 'success') {
|
|
279
|
+
if (m.subtype === 'error_max_turns')
|
|
280
|
+
hitTurnLimit = true;
|
|
281
|
+
bus.emit({
|
|
282
|
+
type: 'audit', from: role.id, reason: 'session-result-error',
|
|
283
|
+
msg: `turn ended with subtype "${m.subtype}"${m.is_error ? ' (is_error)' : ''} - the role produced no usable output`,
|
|
284
|
+
});
|
|
285
|
+
if (opts.circuitBreaker && m.subtype !== 'error_max_turns') {
|
|
286
|
+
const cb = opts.circuitBreaker;
|
|
287
|
+
cb.state.failures++;
|
|
288
|
+
if (cb.state.failures >= cb.threshold) {
|
|
289
|
+
cb.state.tripped = true;
|
|
290
|
+
bus.emit({
|
|
291
|
+
type: 'audit', from: role.id, reason: 'circuit-breaker-tripped',
|
|
292
|
+
msg: `circuit breaker tripped after ${cb.state.failures} consecutive failures — closing role`,
|
|
293
|
+
data: { failures: cb.state.failures, threshold: cb.threshold },
|
|
294
|
+
});
|
|
295
|
+
mailbox.close();
|
|
296
|
+
}
|
|
198
297
|
}
|
|
199
298
|
}
|
|
299
|
+
else if (m.subtype === 'success' && opts.circuitBreaker) {
|
|
300
|
+
opts.circuitBreaker.state.failures = 0;
|
|
301
|
+
}
|
|
302
|
+
if (policy.overBudget) {
|
|
303
|
+
bus.emit({ type: 'status', from: role.id, msg: 'token budget exhausted - closing session' });
|
|
304
|
+
mailbox.close();
|
|
305
|
+
}
|
|
200
306
|
}
|
|
201
307
|
}
|
|
202
|
-
finally {
|
|
203
|
-
clearTimeout(silentAlarm);
|
|
204
|
-
}
|
|
205
308
|
bus.emit({ type: 'status', from: role.id, msg: 'session ended' });
|
|
206
309
|
return { sessionId, hitTurnLimit };
|
|
207
310
|
}
|
|
@@ -271,6 +374,34 @@ function buildOrgTools(opts) {
|
|
|
271
374
|
},
|
|
272
375
|
});
|
|
273
376
|
}
|
|
377
|
+
if (opts.onGate) {
|
|
378
|
+
tools.push({
|
|
379
|
+
name: 'org_gate',
|
|
380
|
+
description: 'Create a decision gate — a hard-blocking human-approval checkpoint. Use before irreversible actions (deployments, deletions, external comms). The gate pauses your work until a human approves or rejects it. End your turn after calling this; you will receive the resolution as a new message.',
|
|
381
|
+
schema: { name: z.string(), description: z.string() },
|
|
382
|
+
handler: async (args) => text(await opts.onGate(role.id, args.name, args.description)),
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
if (opts.createTask) {
|
|
386
|
+
tools.push({
|
|
387
|
+
name: 'org_task',
|
|
388
|
+
description: 'Create a task in the DAG with optional dependencies. Dependencies must be existing task IDs. Tasks become ready when all deps are done, then get dispatched to the assignee.',
|
|
389
|
+
schema: { title: z.string(), assignee: z.string(), deps: z.array(z.string()).default([]) },
|
|
390
|
+
handler: async (args) => text(opts.createTask(role.id, args.title, args.assignee, args.deps ?? [])),
|
|
391
|
+
});
|
|
392
|
+
tools.push({
|
|
393
|
+
name: 'org_task_done',
|
|
394
|
+
description: 'Mark a task as completed and optionally provide a result summary. Any downstream tasks whose deps are now all done will become ready and be dispatched.',
|
|
395
|
+
schema: { taskId: z.string(), result: z.string().optional() },
|
|
396
|
+
handler: async (args) => text(opts.completeTask(role.id, args.taskId, args.result)),
|
|
397
|
+
});
|
|
398
|
+
tools.push({
|
|
399
|
+
name: 'org_tasks',
|
|
400
|
+
description: 'List all tasks in the DAG with their current status and dependencies.',
|
|
401
|
+
schema: {},
|
|
402
|
+
handler: async () => text(opts.listTasks()),
|
|
403
|
+
});
|
|
404
|
+
}
|
|
274
405
|
tools.push({
|
|
275
406
|
name: 'org_send',
|
|
276
407
|
description: 'Send a message to another agent (role id) or another org ("org:role"). This is the only inter-agent channel.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/orgrt/session.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE3E;;;2BAG2B;AAC3B,MAAM,iBAAiB,GAAG,CAAC,GAAG,MAAM,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AA2CnD,2EAA2E;AAC3E,MAAM,UAAU,eAAe,CAAC,IAAa,EAAE,GAAkC,EAAE,MAAgB,EAAE,QAAmB;IACtH,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;IAC9C,OAAO;QACL,kBAAkB,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,iBAAiB,GAAG,CAAC,IAAI,IAAI;QACnF,aAAa,GAAG,CAAC,IAAI,EAAE;QACvB,aAAa,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,UAAU,IAAI;QAC9F,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,6BAA6B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACtG,2BAA2B;QAC3B,qEAAqE;QACrE,WAAW,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,0DAA0D;QACtF,oFAAoF;QACpF,wNAAwN;QACxN,aAAa;YACX,CAAC,CAAC,6OAA6O;YAC/O,CAAC,CAAC,sGAAsG;QAC1G,aAAa,IAAI,QAAQ,EAAE,MAAM;YAC/B,CAAC,CAAC,qFAAqF,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzH,CAAC,CAAC,EAAE;KACP,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAiB;IACrD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,yEAAyE;IACzE,yEAAyE;IACzE,wEAAwE;IACxE,IAAI,eAAmC,CAAC;IACxC,6EAA6E;IAC7E,4EAA4E;IAC5E,8EAA8E;IAC9E,iEAAiE;IACjE,wEAAwE;IACxE,kEAAkE;IAClE,MAAM,iBAAiB,GAAG,CAAC,CAAC;IAC5B,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,4EAA4E;IAC5E,2EAA2E;IAC3E,wEAAwE;IACxE,kCAAkC;IAClC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC;QAC7C,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAC/E,eAAe,GAAG,SAAS,CAAC;QAC5B,uEAAuE;QACvE,sEAAsE;QACtE,6DAA6D;QAC7D,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,IAAI,OAAO,CAAC,QAAQ;YAAE,OAAO;QAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,iBAAiB,GAAG,UAAU,CAAC;QAC5D,IAAI,YAAY,IAAI,YAAY;YAAE,eAAe,GAAG,CAAC,CAAC;QACtD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY;gBAAE,eAAe,EAAE,CAAC;YACrC,IAAI,eAAe,GAAG,iBAAiB,EAAE,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,eAAe,yJAAyJ,CAAC,CAAC;gBAClM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAE,6DAA6D,EAAE,CAAC,CAAC;YACzJ,CAAC;iBAAM,CAAC;gBACN,qEAAqE;gBACrE,sEAAsE;gBACtE,eAAe,GAAG,CAAC,CAAC;gBACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,yEAAyE,EAAE,CAAC,CAAC;YACnK,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,6DAA6D,EAAE,CAAC,CAAC;QAC5H,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;yBAGyB;AACzB,KAAK,UAAU,aAAa,CAAC,IAAiB,EAAE,MAAe;IAC7D,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACtD,0EAA0E;IAC1E,wEAAwE;IACxE,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAErF,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,MAAM,GAAgB,IAAI,CAAC,MAAM;WAClC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAEhF,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAElC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAErE,IAAI,SAAS,GAAuB,MAAM,CAAC;IAC3C,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;YACxB,KAAK;YACL,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;YACxB,YAAY,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAW,EACjF,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;YAC7D,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK;YACjC,GAAG;YACH,GAAG,EAAE;gBACH,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACpC,uEAAuE;gBACvE,mEAAmE;gBACnE,qEAAqE;gBACrE,qEAAqE;gBACrE,wEAAwE;gBACxE,uEAAuE;gBACvE,mBAAmB,EAAE,GAAG;gBACxB,mBAAmB,EAAE,KAAK;gBAC1B,kBAAkB,EAAE,GAAG;aACxB;YACD,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;YAC7B,MAAM;YACN,UAAU,EAAE,KAAK,EAAE,QAAgB,EAAE,KAA8B,EAAE,EAAE,CACrE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC;YAChC,iEAAiE;YACjE,gEAAgE;YAChE,iDAAiD;YACjD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBAChC,QAAQ,EAAE;oBACR,OAAO,EAAE,CAAC,EAAU,EAAE,OAAe,EAAE,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC;oBAChG,QAAQ,EAAE,CAAC,IAAY,EAAE,KAA8B,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;iBACvF;aACF;SACF,CAAC,CAAC;QAEH,wEAAwE;QACxE,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,yEAAyE;QACzE,2EAA2E;QAC3E,0EAA0E;QAC1E,kCAAkC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;YAClC,IAAI,aAAa;gBAAE,OAAO;YAC1B,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB;gBACtD,GAAG,EAAE,mBAAmB,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,0GAA0G;aAC7K,CAAC,CAAC;QACL,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACrB,WAAsC,CAAC,KAAK,EAAE,EAAE,CAAC;QAElD,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;oBAAC,aAAa,GAAG,IAAI,CAAC;oBAAC,YAAY,CAAC,WAAW,CAAC,CAAC;gBAAC,CAAC;gBACxE,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;oBAC/B,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,EAAE,yBAAyB,CAAC,CAAC,IAAI,YAAY,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/G,CAAC;gBACD,IAAI,CAAC,CAAC,UAAU;oBAAE,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC;gBAC3C,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;oBAC1B,IAAI,IAAI,CAAC,IAAI,EAAE;wBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBACtG,CAAC;qBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;oBAC9D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACvG,iEAAiE;oBACjE,+DAA+D;oBAC/D,qEAAqE;oBACrE,oDAAoD;oBACpD,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;wBACzC,qEAAqE;wBACrE,qEAAqE;wBACrE,2CAA2C;wBAC3C,IAAI,CAAC,CAAC,OAAO,KAAK,iBAAiB;4BAAE,YAAY,GAAG,IAAI,CAAC;wBACzD,GAAG,CAAC,IAAI,CAAC;4BACP,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,sBAAsB;4BAC5D,GAAG,EAAE,4BAA4B,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,uCAAuC;yBACrH,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;wBACtB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,0CAA0C,EAAE,CAAC,CAAC;wBAC7F,OAAO,CAAC,KAAK,EAAE,CAAC;oBAClB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAC;QAClE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,kBAAmB,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7F,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;kFAMkF;AAClF,SAAS,aAAa,CAAC,IAAiB;IACtC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,CAAS,EAAoB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAE5D,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,4MAA4M;YACzN,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,eAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAe,CAAC,CAAC;SAC1F,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,sJAAsJ;YACnK,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAO,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAe,CAAC,CAAC;SACjF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,0NAA0N;YACvO,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3E,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAiB,EAAG,IAAI,CAAC,KAAyB,IAAI,KAAK,CAAC,CAAC;SAC/H,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,sUAAsU;YACnV,MAAM,EAAE;gBACN,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;gBAC1H,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACzI,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;aAC1F;YACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAW,CAAC,CAAC;SACvE,CAAC,CAAC;IACL,CAAC;IACD,uEAAuE;IACvE,sEAAsE;IACtE,wEAAwE;IACxE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,8LAA8L;YAC3M,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;YACnF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,IAAI,CAAC,UAAW,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAA4C,EAAE,IAAI,CAAC,OAAiB,CAAC,CAAC;gBACrG,OAAO,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,YAAY,CAAC,CAAC;YACpD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,8GAA8G;QAC3H,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;QACpE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;gBAC5D,IAAI,QAAQ,KAAK,KAAK;oBAAE,OAAO,IAAI,CAAC,kDAAkD,CAAC,CAAC;gBACxF,IAAI,QAAQ,KAAK,IAAI;oBAAE,OAAO,IAAI,CAAC,wGAAwG,CAAC,CAAC;YAC/I,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAY,EAAE,IAAI,CAAC,OAAiB,EAAE,IAAI,CAAC,OAAiB,CAAC,CAAC;YAC1G,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;KACF,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CAAC;QACT,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,+GAA+G;QAC5H,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;QAChC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAC9E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAkB,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;KACF,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/orgrt/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type AgentState = 'idle' | 'working' | 'tool-call' | 'blocked' | 'error' | 'completed';
|
|
2
|
+
export interface StatePattern {
|
|
3
|
+
pattern: RegExp;
|
|
4
|
+
state: AgentState;
|
|
5
|
+
}
|
|
6
|
+
export declare class StateDetector {
|
|
7
|
+
private state;
|
|
8
|
+
private lastActivity;
|
|
9
|
+
private patterns;
|
|
10
|
+
private idleThresholdMs;
|
|
11
|
+
constructor(customPatterns?: StatePattern[], idleThresholdMs?: number);
|
|
12
|
+
/** Process an SDK message and infer the agent's state. */
|
|
13
|
+
onMessage(type: string, subtype?: string, text?: string): AgentState;
|
|
14
|
+
/** Check if agent has gone idle based on time since last activity. */
|
|
15
|
+
checkIdle(): AgentState;
|
|
16
|
+
current(): AgentState;
|
|
17
|
+
lastActiveAt(): number;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=state-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-detector.d.ts","sourceRoot":"","sources":["../../../src/orgrt/state-detector.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;AAE9F,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;CACnB;AASD,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,eAAe,CAAS;IAEhC,YAAY,cAAc,CAAC,EAAE,YAAY,EAAE,EAAE,eAAe,SAAS,EAGpE;IAED,0DAA0D;IAC1D,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAuBnE;IAED,sEAAsE;IACtE,SAAS,IAAI,UAAU,CAOtB;IAED,OAAO,IAAI,UAAU,CAAuB;IAC5C,YAAY,IAAI,MAAM,CAA8B;CACrD"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// packages/@monomind/cli/src/orgrt/state-detector.ts
|
|
2
|
+
const DEFAULT_PATTERNS = [
|
|
3
|
+
{ pattern: /\berror\b.*\b(failed|crash|exception|traceback)\b/i, state: 'error' },
|
|
4
|
+
{ pattern: /\b(waiting|blocked|pending)\b.*\b(approval|gate|human|input)\b/i, state: 'blocked' },
|
|
5
|
+
{ pattern: /\b(calling|invoking|running|executing)\b.*\btool\b/i, state: 'tool-call' },
|
|
6
|
+
{ pattern: /\b(completed?|finished|done|achieved)\b/i, state: 'completed' },
|
|
7
|
+
];
|
|
8
|
+
export class StateDetector {
|
|
9
|
+
state = 'idle';
|
|
10
|
+
lastActivity = Date.now();
|
|
11
|
+
patterns;
|
|
12
|
+
idleThresholdMs;
|
|
13
|
+
constructor(customPatterns, idleThresholdMs = 30_000) {
|
|
14
|
+
this.patterns = customPatterns ?? DEFAULT_PATTERNS;
|
|
15
|
+
this.idleThresholdMs = idleThresholdMs;
|
|
16
|
+
}
|
|
17
|
+
/** Process an SDK message and infer the agent's state. */
|
|
18
|
+
onMessage(type, subtype, text) {
|
|
19
|
+
this.lastActivity = Date.now();
|
|
20
|
+
if (type === 'result') {
|
|
21
|
+
if (subtype === 'success') {
|
|
22
|
+
this.state = 'idle';
|
|
23
|
+
return this.state;
|
|
24
|
+
}
|
|
25
|
+
if (subtype === 'error_max_turns') {
|
|
26
|
+
this.state = 'idle';
|
|
27
|
+
return this.state;
|
|
28
|
+
}
|
|
29
|
+
this.state = 'error';
|
|
30
|
+
return this.state;
|
|
31
|
+
}
|
|
32
|
+
if (type === 'tool_use') {
|
|
33
|
+
this.state = 'tool-call';
|
|
34
|
+
return this.state;
|
|
35
|
+
}
|
|
36
|
+
if (type === 'assistant' && text) {
|
|
37
|
+
for (const { pattern, state } of this.patterns) {
|
|
38
|
+
if (pattern.test(text)) {
|
|
39
|
+
this.state = state;
|
|
40
|
+
return this.state;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
this.state = 'working';
|
|
44
|
+
}
|
|
45
|
+
return this.state;
|
|
46
|
+
}
|
|
47
|
+
/** Check if agent has gone idle based on time since last activity. */
|
|
48
|
+
checkIdle() {
|
|
49
|
+
if (this.state === 'working' || this.state === 'tool-call') {
|
|
50
|
+
if (Date.now() - this.lastActivity > this.idleThresholdMs) {
|
|
51
|
+
this.state = 'idle';
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return this.state;
|
|
55
|
+
}
|
|
56
|
+
current() { return this.state; }
|
|
57
|
+
lastActiveAt() { return this.lastActivity; }
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=state-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-detector.js","sourceRoot":"","sources":["../../../src/orgrt/state-detector.ts"],"names":[],"mappings":"AAAA,qDAAqD;AASrD,MAAM,gBAAgB,GAAmB;IACvC,EAAE,OAAO,EAAE,oDAAoD,EAAE,KAAK,EAAE,OAAO,EAAE;IACjF,EAAE,OAAO,EAAE,iEAAiE,EAAE,KAAK,EAAE,SAAS,EAAE;IAChG,EAAE,OAAO,EAAE,qDAAqD,EAAE,KAAK,EAAE,WAAW,EAAE;IACtF,EAAE,OAAO,EAAE,0CAA0C,EAAE,KAAK,EAAE,WAAW,EAAE;CAC5E,CAAC;AAEF,MAAM,OAAO,aAAa;IAChB,KAAK,GAAe,MAAM,CAAC;IAC3B,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1B,QAAQ,CAAiB;IACzB,eAAe,CAAS;IAEhC,YAAY,cAA+B,EAAE,eAAe,GAAG,MAAM;QACnE,IAAI,CAAC,QAAQ,GAAG,cAAc,IAAI,gBAAgB,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAED,0DAA0D;IAC1D,SAAS,CAAC,IAAY,EAAE,OAAgB,EAAE,IAAa;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE/B,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBAAC,OAAO,IAAI,CAAC,KAAK,CAAC;YAAC,CAAC;YACtE,IAAI,OAAO,KAAK,iBAAiB,EAAE,CAAC;gBAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBAAC,OAAO,IAAI,CAAC,KAAK,CAAC;YAAC,CAAC;YAC9E,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;YACrB,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,EAAE,CAAC;YACjC,KAAK,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,OAAO,IAAI,CAAC,KAAK,CAAC;gBAAC,CAAC;YACpE,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,sEAAsE;IACtE,SAAS;QACP,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC3D,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC1D,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,OAAO,KAAiB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,YAAY,KAAa,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;CACrD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface OrgTask {
|
|
2
|
+
id: string;
|
|
3
|
+
title: string;
|
|
4
|
+
assignee: string;
|
|
5
|
+
deps: string[];
|
|
6
|
+
status: 'pending' | 'ready' | 'running' | 'done' | 'failed';
|
|
7
|
+
result?: string;
|
|
8
|
+
createdAt: number;
|
|
9
|
+
startedAt?: number;
|
|
10
|
+
completedAt?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare class TaskDag {
|
|
13
|
+
private tasks;
|
|
14
|
+
private counter;
|
|
15
|
+
add(title: string, assignee: string, deps?: string[]): OrgTask;
|
|
16
|
+
complete(id: string, result?: string): OrgTask[];
|
|
17
|
+
fail(id: string, reason?: string): void;
|
|
18
|
+
markRunning(id: string): void;
|
|
19
|
+
ready(): OrgTask[];
|
|
20
|
+
get(id: string): OrgTask | undefined;
|
|
21
|
+
all(): OrgTask[];
|
|
22
|
+
toJSON(): OrgTask[];
|
|
23
|
+
static fromJSON(data: OrgTask[]): TaskDag;
|
|
24
|
+
private promoteReady;
|
|
25
|
+
private hasCycle;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=task-dag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-dag.d.ts","sourceRoot":"","sources":["../../../src/orgrt/task-dag.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,OAAO,CAAK;IAEpB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAejE;IAED,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAO/C;IAED,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAMtC;IAED,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAM5B;IAED,KAAK,IAAI,OAAO,EAAE,CAEjB;IAED,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAA+B;IAEnE,GAAG,IAAI,OAAO,EAAE,CAAqC;IAErD,MAAM,IAAI,OAAO,EAAE,CAAuB;IAE1C,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAQxC;IAED,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,QAAQ;CAgBjB"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// packages/@monomind/cli/src/orgrt/task-dag.ts
|
|
2
|
+
export class TaskDag {
|
|
3
|
+
tasks = new Map();
|
|
4
|
+
counter = 0;
|
|
5
|
+
add(title, assignee, deps = []) {
|
|
6
|
+
const id = `task-${++this.counter}`;
|
|
7
|
+
for (const d of deps) {
|
|
8
|
+
if (!this.tasks.has(d))
|
|
9
|
+
throw new Error(`dependency "${d}" does not exist`);
|
|
10
|
+
}
|
|
11
|
+
const task = { id, title, assignee, deps, status: 'pending', createdAt: Date.now() };
|
|
12
|
+
this.tasks.set(id, task);
|
|
13
|
+
if (this.hasCycle()) {
|
|
14
|
+
this.tasks.delete(id);
|
|
15
|
+
throw new Error(`adding "${id}" would create a cycle`);
|
|
16
|
+
}
|
|
17
|
+
if (deps.length === 0 || deps.every(d => this.tasks.get(d).status === 'done')) {
|
|
18
|
+
task.status = 'ready';
|
|
19
|
+
}
|
|
20
|
+
return task;
|
|
21
|
+
}
|
|
22
|
+
complete(id, result) {
|
|
23
|
+
const t = this.tasks.get(id);
|
|
24
|
+
if (!t)
|
|
25
|
+
throw new Error(`task "${id}" not found`);
|
|
26
|
+
t.status = 'done';
|
|
27
|
+
t.result = result;
|
|
28
|
+
t.completedAt = Date.now();
|
|
29
|
+
return this.promoteReady();
|
|
30
|
+
}
|
|
31
|
+
fail(id, reason) {
|
|
32
|
+
const t = this.tasks.get(id);
|
|
33
|
+
if (!t)
|
|
34
|
+
throw new Error(`task "${id}" not found`);
|
|
35
|
+
t.status = 'failed';
|
|
36
|
+
t.result = reason;
|
|
37
|
+
t.completedAt = Date.now();
|
|
38
|
+
}
|
|
39
|
+
markRunning(id) {
|
|
40
|
+
const t = this.tasks.get(id);
|
|
41
|
+
if (t && t.status === 'ready') {
|
|
42
|
+
t.status = 'running';
|
|
43
|
+
t.startedAt = Date.now();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
ready() {
|
|
47
|
+
return [...this.tasks.values()].filter(t => t.status === 'ready');
|
|
48
|
+
}
|
|
49
|
+
get(id) { return this.tasks.get(id); }
|
|
50
|
+
all() { return [...this.tasks.values()]; }
|
|
51
|
+
toJSON() { return this.all(); }
|
|
52
|
+
static fromJSON(data) {
|
|
53
|
+
const dag = new TaskDag();
|
|
54
|
+
for (const t of data) {
|
|
55
|
+
dag.tasks.set(t.id, { ...t });
|
|
56
|
+
const num = parseInt(t.id.replace('task-', ''), 10);
|
|
57
|
+
if (!isNaN(num) && num > dag.counter)
|
|
58
|
+
dag.counter = num;
|
|
59
|
+
}
|
|
60
|
+
return dag;
|
|
61
|
+
}
|
|
62
|
+
promoteReady() {
|
|
63
|
+
const promoted = [];
|
|
64
|
+
for (const t of this.tasks.values()) {
|
|
65
|
+
if (t.status !== 'pending')
|
|
66
|
+
continue;
|
|
67
|
+
if (t.deps.every(d => this.tasks.get(d)?.status === 'done')) {
|
|
68
|
+
t.status = 'ready';
|
|
69
|
+
promoted.push(t);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return promoted;
|
|
73
|
+
}
|
|
74
|
+
hasCycle() {
|
|
75
|
+
const visited = new Set();
|
|
76
|
+
const stack = new Set();
|
|
77
|
+
const dfs = (id) => {
|
|
78
|
+
if (stack.has(id))
|
|
79
|
+
return true;
|
|
80
|
+
if (visited.has(id))
|
|
81
|
+
return false;
|
|
82
|
+
visited.add(id);
|
|
83
|
+
stack.add(id);
|
|
84
|
+
const t = this.tasks.get(id);
|
|
85
|
+
if (t)
|
|
86
|
+
for (const d of t.deps) {
|
|
87
|
+
if (dfs(d))
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
stack.delete(id);
|
|
91
|
+
return false;
|
|
92
|
+
};
|
|
93
|
+
for (const id of this.tasks.keys()) {
|
|
94
|
+
if (dfs(id))
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=task-dag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-dag.js","sourceRoot":"","sources":["../../../src/orgrt/task-dag.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,10 +40,13 @@ export interface ToolCall {
|
|
|
40
40
|
* protocol must name the distinction explicitly.
|
|
41
41
|
*/
|
|
42
42
|
export declare function buildToolProtocol(tools: OrgToolDef[]): string;
|
|
43
|
-
/** Extract tool_call fences from raw assistant texts.
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
|
|
43
|
+
/** Extract tool_call fences from raw assistant texts. A fence whose JSON
|
|
44
|
+
* cannot be parsed at all is skipped — but NOT silently: `onMalformed` (when
|
|
45
|
+
* given) is invoked with the raw fence body and the parse error so callers
|
|
46
|
+
* can surface it (runners emit it as an assistant note, which session.ts
|
|
47
|
+
* routes to the org bus and scrollback). A parsed object without a string
|
|
48
|
+
* `name` is skipped quietly — there is nothing actionable to report. */
|
|
49
|
+
export declare function parseToolCalls(rawTexts: string[], onMalformed?: (raw: string, error: string) => void): ToolCall[];
|
|
47
50
|
/** Execute one tool call against the OrgToolDef handlers, validating args
|
|
48
51
|
* against the tool's zod shape. Handler errors come back as text so the
|
|
49
52
|
* model sees the failure instead of the turn dying. */
|