@monoes/monomindcli 2.16.1 → 2.16.3
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/agents/architecture/system-design/arch-system-design.md +4 -1
- package/.claude/agents/consensus/quorum-manager.md +3 -0
- package/.claude/agents/consensus/security-manager.md +4 -1
- package/.claude/agents/core/coder.md +4 -1
- package/.claude/agents/core/coordinator.md +3 -0
- package/.claude/agents/core/planner.md +4 -1
- package/.claude/agents/core/researcher.md +4 -1
- package/.claude/agents/core/reviewer.md +4 -1
- package/.claude/agents/core/tester.md +4 -1
- package/.claude/agents/design/design-monodesign.md +4 -1
- package/.claude/agents/engineering/engineering-ai-data-remediation-engineer.md +4 -1
- package/.claude/agents/engineering/engineering-ai-engineer.md +4 -1
- package/.claude/agents/engineering/engineering-autonomous-optimization-architect.md +3 -0
- package/.claude/agents/engineering/engineering-backend-architect.md +4 -1
- package/.claude/agents/engineering/engineering-code-reviewer.md +5 -0
- package/.claude/agents/engineering/engineering-data-engineer.md +4 -1
- package/.claude/agents/engineering/engineering-database-optimizer.md +4 -1
- package/.claude/agents/engineering/engineering-devops-automator.md +3 -0
- package/.claude/agents/engineering/engineering-embedded-firmware-engineer.md +3 -0
- package/.claude/agents/engineering/engineering-feishu-integration-developer.md +4 -1
- package/.claude/agents/engineering/engineering-frontend-developer.md +3 -0
- package/.claude/agents/engineering/engineering-git-workflow-master.md +4 -1
- package/.claude/agents/engineering/engineering-incident-response-commander.md +4 -1
- package/.claude/agents/engineering/engineering-mobile-app-builder.md +3 -0
- package/.claude/agents/engineering/engineering-rapid-prototyper.md +3 -0
- package/.claude/agents/engineering/engineering-security-engineer.md +4 -1
- package/.claude/agents/engineering/engineering-senior-developer.md +3 -0
- package/.claude/agents/engineering/engineering-software-architect.md +4 -1
- package/.claude/agents/engineering/engineering-solidity-smart-contract-engineer.md +4 -1
- package/.claude/agents/engineering/engineering-sre.md +3 -0
- package/.claude/agents/engineering/engineering-technical-writer.md +4 -1
- package/.claude/agents/engineering/engineering-threat-detection-engineer.md +4 -1
- package/.claude/agents/engineering/engineering-wechat-mini-program-developer.md +4 -1
- package/.claude/agents/github/github-modes.md +4 -2
- package/.claude/agents/github/issue-tracker.md +4 -2
- package/.claude/agents/github/monoswarm-code-review.md +4 -2
- package/.claude/agents/github/monoswarm-issue.md +5 -0
- package/.claude/agents/github/monoswarm-multi-repo.md +4 -1
- package/.claude/agents/github/monoswarm-pr.md +5 -0
- package/.claude/agents/github/pr-manager.md +4 -2
- package/.claude/agents/github/project-board-sync.md +4 -2
- package/.claude/agents/github/release-manager.md +4 -2
- package/.claude/agents/github/repo-architect.md +4 -2
- package/.claude/agents/github/sync-coordinator.md +4 -2
- package/.claude/agents/github/workflow-automation.md +4 -2
- package/.claude/agents/goal/goal-planner.md +16 -2
- package/.claude/agents/marketing/marketing-competitive-content.md +4 -1
- package/.claude/agents/marketing/marketing-cro-specialist.md +4 -1
- package/.claude/agents/marketing/marketing-email-specialist.md +4 -1
- package/.claude/agents/marketing/marketing-launch-strategist.md +4 -1
- package/.claude/agents/marketing/marketing-pricing-strategist.md +4 -1
- package/.claude/agents/monoswarm/collective-intelligence-coordinator.md +3 -0
- package/.claude/agents/monoswarm/mesh-coordinator.md +3 -0
- package/.claude/agents/monoswarm/monoswarm-memory-manager.md +4 -2
- package/.claude/agents/monoswarm/scout-explorer.md +4 -2
- package/.claude/agents/monoswarm/worker-specialist.md +3 -0
- package/.claude/agents/optimization/benchmark-suite.md +3 -0
- package/.claude/agents/optimization/load-balancer.md +3 -0
- package/.claude/agents/optimization/performance-monitor.md +3 -0
- package/.claude/agents/optimization/resource-allocator.md +3 -0
- package/.claude/agents/optimization/topology-optimizer.md +3 -0
- package/.claude/agents/specialists/integration-architect.md +4 -2
- package/.claude/agents/specialized/agentic-identity-trust.md +4 -1
- package/.claude/agents/specialized/agents-orchestrator.md +3 -0
- package/.claude/agents/specialized/automation-governance-architect.md +3 -0
- package/.claude/agents/specialized/blockchain-security-auditor.md +4 -1
- package/.claude/agents/specialized/compliance-auditor.md +4 -1
- package/.claude/agents/specialized/identity-graph-operator.md +4 -1
- package/.claude/agents/specialized/lsp-index-engineer.md +3 -0
- package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +5 -0
- package/.claude/agents/specialized/specialized-cultural-intelligence-strategist.md +3 -0
- package/.claude/agents/specialized/specialized-developer-advocate.md +4 -1
- package/.claude/agents/specialized/specialized-document-generator.md +4 -1
- package/.claude/agents/specialized/specialized-mcp-builder.md +3 -0
- package/.claude/agents/specialized/specialized-model-qa.md +4 -1
- package/.claude/agents/specialized/specialized-workflow-architect.md +4 -1
- package/.claude/agents/specialized/zk-steward.md +4 -1
- package/.claude/agents/templates/automation-smart-agent.md +4 -1
- package/.claude/agents/templates/coordinator-monoswarm-init.md +4 -1
- package/.claude/agents/testing/production-validator.md +3 -0
- package/.claude/agents/testing/tdd-london-monoswarm.md +3 -0
- package/.claude/agents/testing/testing-accessibility-auditor.md +4 -1
- package/.claude/agents/testing/testing-api-tester.md +4 -1
- package/.claude/agents/testing/testing-evidence-collector.md +3 -0
- package/.claude/agents/testing/testing-performance-benchmarker.md +4 -1
- package/.claude/agents/testing/testing-test-results-analyzer.md +4 -1
- package/.claude/agents/testing/testing-tool-evaluator.md +4 -1
- package/.claude/agents/testing/testing-workflow-optimizer.md +4 -1
- package/.claude/commands/agents/agent-types.md +7 -5
- package/.claude/commands/mastermind/code-review.md +5 -5
- package/.claude/commands/mastermind/content.md +8 -2
- package/.claude/commands/mastermind/createtask.md +2 -2
- package/.claude/commands/mastermind/do.md +18 -36
- package/.claude/commands/mastermind/finance.md +8 -2
- package/.claude/commands/mastermind/ideate.md +4 -4
- package/.claude/commands/mastermind/improve.md +3 -3
- package/.claude/commands/mastermind/marketing.md +8 -2
- package/.claude/commands/mastermind/master.md +63 -45
- package/.claude/commands/mastermind/monoswarm.md +7 -5
- package/.claude/commands/mastermind/ops.md +8 -2
- package/.claude/commands/mastermind/sales.md +8 -2
- package/.claude/commands/mastermind.md +7 -7
- package/.claude/commands/monoswarm/analysis.md +1 -1
- package/.claude/commands/monoswarm/development.md +1 -1
- package/.claude/commands/monoswarm/maintenance.md +1 -1
- package/.claude/commands/monoswarm/optimization.md +2 -1
- package/.claude/commands/monoswarm/research.md +1 -1
- package/.claude/commands/monoswarm/testing.md +1 -1
- package/.claude/commands/pair/examples.md +3 -2
- package/.claude/commands/pair/modes.md +3 -3
- package/.claude/helpers/build-skill-registry.cjs +186 -26
- package/.claude/helpers/handlers/agent-start-handler.cjs +3 -0
- package/.claude/helpers/handlers/capture-handler.cjs +22 -14
- package/.claude/helpers/handlers/edit-handler.cjs +15 -13
- package/.claude/helpers/handlers/pick-core.cjs +445 -0
- package/.claude/helpers/handlers/route-handler.cjs +87 -180
- package/.claude/helpers/handlers/session-handler.cjs +44 -62
- package/.claude/helpers/handlers/session-restore-handler.cjs +5 -1
- package/.claude/helpers/handlers/task-handler.cjs +11 -6
- package/.claude/helpers/hook-handler.cjs +9 -2
- package/.claude/helpers/jev-catalog.cjs +225 -0
- package/.claude/helpers/jev-picker.cjs +36 -147
- package/.claude/helpers/monograph-freshen.cjs +31 -113
- package/.claude/helpers/org-skill-index.cjs +230 -0
- package/.claude/helpers/pick-rank.cjs +221 -0
- package/.claude/helpers/pick-stats.cjs +413 -0
- package/.claude/helpers/router.cjs +7 -379
- package/.claude/helpers/utils/monograph-resolve.cjs +505 -0
- package/.claude/helpers/utils/monograph.cjs +8 -51
- package/.claude/settings.json +51 -41
- package/.claude/skills/hooks-automation/SKILL.md +4 -4
- package/.claude/skills/mastermind-access/SKILL.md +4 -3
- package/.claude/skills/mastermind-activity/SKILL.md +3 -2
- package/.claude/skills/mastermind-adapter-manager/SKILL.md +2 -1
- package/.claude/skills/mastermind-adapters/SKILL.md +2 -1
- package/.claude/skills/mastermind-agent-detail/SKILL.md +5 -4
- package/.claude/skills/mastermind-agent-select/SKILL.md +99 -100
- package/.claude/skills/mastermind-agents/SKILL.md +2 -1
- package/.claude/skills/mastermind-approval-detail/SKILL.md +2 -1
- package/.claude/skills/mastermind-backup/SKILL.md +2 -1
- package/.claude/skills/mastermind-bootstrap/SKILL.md +2 -2
- package/.claude/skills/mastermind-budgets/SKILL.md +4 -3
- package/.claude/skills/mastermind-createorg/SKILL.md +23 -5
- package/.claude/skills/mastermind-delegation/SKILL.md +11 -19
- package/.claude/skills/mastermind-diagnose/SKILL.md +3 -3
- package/.claude/skills/mastermind-env/SKILL.md +2 -1
- package/.claude/skills/mastermind-environments/SKILL.md +2 -1
- package/.claude/skills/mastermind-execute/SKILL.md +1 -1
- package/.claude/skills/mastermind-export/SKILL.md +2 -1
- package/.claude/skills/mastermind-goal-detail/SKILL.md +3 -2
- package/.claude/skills/mastermind-goals/SKILL.md +3 -2
- package/.claude/skills/mastermind-idea/SKILL.md +52 -92
- package/.claude/skills/mastermind-import/SKILL.md +2 -1
- package/.claude/skills/mastermind-inbox/SKILL.md +3 -2
- package/.claude/skills/mastermind-instance/SKILL.md +3 -2
- package/.claude/skills/mastermind-invite-landing/SKILL.md +3 -2
- package/.claude/skills/mastermind-invites/SKILL.md +3 -2
- package/.claude/skills/mastermind-issue-detail/SKILL.md +4 -3
- package/.claude/skills/mastermind-issues/SKILL.md +4 -3
- package/.claude/skills/mastermind-join-queue/SKILL.md +5 -4
- package/.claude/skills/mastermind-liveness/SKILL.md +5 -4
- package/.claude/skills/mastermind-monitor/SKILL.md +15 -15
- package/.claude/skills/mastermind-my-issues/SKILL.md +2 -1
- package/.claude/skills/mastermind-new-agent/SKILL.md +120 -137
- package/.claude/skills/mastermind-org-settings/SKILL.md +6 -5
- package/.claude/skills/mastermind-orgs/SKILL.md +1 -0
- package/.claude/skills/mastermind-orgstatus/SKILL.md +2 -1
- package/.claude/skills/mastermind-plan-to-tasks/SKILL.md +1 -1
- package/.claude/skills/mastermind-plugin-manager/SKILL.md +4 -3
- package/.claude/skills/mastermind-plugin-settings/SKILL.md +5 -4
- package/.claude/skills/mastermind-plugins/SKILL.md +3 -2
- package/.claude/skills/mastermind-profile/SKILL.md +2 -1
- package/.claude/skills/mastermind-protocol/SKILL.md +3 -3
- package/.claude/skills/mastermind-release/SKILL.md +13 -8
- package/.claude/skills/mastermind-research/SKILL.md +10 -8
- package/.claude/skills/mastermind-review/SKILL.md +16 -11
- package/.claude/skills/mastermind-routine-detail/SKILL.md +2 -1
- package/.claude/skills/mastermind-routines/SKILL.md +3 -2
- package/.claude/skills/mastermind-search/SKILL.md +2 -1
- package/.claude/skills/mastermind-secrets/SKILL.md +3 -2
- package/.claude/skills/mastermind-skills/SKILL.md +2 -1
- package/.claude/skills/mastermind-stoporg/SKILL.md +1 -0
- package/.claude/skills/mastermind-tasks/SKILL.md +3 -2
- package/.claude/skills/mastermind-threads/SKILL.md +4 -3
- package/.claude/skills/mastermind-tree-control/SKILL.md +5 -4
- package/.claude/skills/mastermind-workspace-detail/SKILL.md +4 -3
- package/.claude/skills/mastermind-workspaces/SKILL.md +2 -1
- package/.claude/skills/monoswarm/SKILL.md +7 -5
- package/.claude/skills/specialagent/SKILL.md +32 -51
- package/README.md +1 -1
- package/dist/src/agents/registry-builder.d.ts +23 -2
- package/dist/src/agents/registry-builder.d.ts.map +1 -1
- package/dist/src/agents/registry-builder.js +64 -11
- package/dist/src/agents/registry-builder.js.map +1 -1
- package/dist/src/agents/registry-freshness.d.ts +21 -0
- package/dist/src/agents/registry-freshness.d.ts.map +1 -0
- package/dist/src/agents/registry-freshness.js +94 -0
- package/dist/src/agents/registry-freshness.js.map +1 -0
- package/dist/src/commands/agent-lifecycle.d.ts +11 -5
- package/dist/src/commands/agent-lifecycle.d.ts.map +1 -1
- package/dist/src/commands/agent-lifecycle.js +78 -42
- package/dist/src/commands/agent-lifecycle.js.map +1 -1
- package/dist/src/commands/doctor-env-checks.d.ts +18 -3
- package/dist/src/commands/doctor-env-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-env-checks.js +35 -16
- package/dist/src/commands/doctor-env-checks.js.map +1 -1
- package/dist/src/commands/doctor-fresh-install.d.ts +9 -0
- package/dist/src/commands/doctor-fresh-install.d.ts.map +1 -0
- package/dist/src/commands/doctor-fresh-install.js +43 -0
- package/dist/src/commands/doctor-fresh-install.js.map +1 -0
- package/dist/src/commands/doctor-hook-monograph-checks.d.ts +10 -0
- package/dist/src/commands/doctor-hook-monograph-checks.d.ts.map +1 -0
- package/dist/src/commands/doctor-hook-monograph-checks.js +88 -0
- package/dist/src/commands/doctor-hook-monograph-checks.js.map +1 -0
- package/dist/src/commands/doctor-hook-settings-checks.d.ts +5 -0
- package/dist/src/commands/doctor-hook-settings-checks.d.ts.map +1 -0
- package/dist/src/commands/doctor-hook-settings-checks.js +50 -0
- package/dist/src/commands/doctor-hook-settings-checks.js.map +1 -0
- package/dist/src/commands/doctor-json.d.ts +41 -0
- package/dist/src/commands/doctor-json.d.ts.map +1 -0
- package/dist/src/commands/doctor-json.js +60 -0
- package/dist/src/commands/doctor-json.js.map +1 -0
- package/dist/src/commands/doctor-mode.d.ts +28 -0
- package/dist/src/commands/doctor-mode.d.ts.map +1 -0
- package/dist/src/commands/doctor-mode.js +109 -0
- package/dist/src/commands/doctor-mode.js.map +1 -0
- package/dist/src/commands/doctor-monoes-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-monoes-checks.js +3 -1
- package/dist/src/commands/doctor-monoes-checks.js.map +1 -1
- package/dist/src/commands/doctor-pick-checks.d.ts +19 -0
- package/dist/src/commands/doctor-pick-checks.d.ts.map +1 -0
- package/dist/src/commands/doctor-pick-checks.js +164 -0
- package/dist/src/commands/doctor-pick-checks.js.map +1 -0
- package/dist/src/commands/doctor-project-checks.d.ts +3 -1
- package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-project-checks.js +67 -20
- package/dist/src/commands/doctor-project-checks.js.map +1 -1
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.js +325 -333
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/hooks-coverage-routing.js +1 -1
- package/dist/src/commands/hooks-coverage-routing.js.map +1 -1
- package/dist/src/commands/hooks-coverage-utils.js +1 -1
- package/dist/src/commands/hooks-coverage-utils.js.map +1 -1
- package/dist/src/commands/hooks-routing-commands.js +1 -1
- package/dist/src/commands/init-upgrade.d.ts.map +1 -1
- package/dist/src/commands/init-upgrade.js +4 -0
- package/dist/src/commands/init-upgrade.js.map +1 -1
- package/dist/src/commands/monograph.d.ts.map +1 -1
- package/dist/src/commands/monograph.js +16 -1
- package/dist/src/commands/monograph.js.map +1 -1
- package/dist/src/commands/monoswarm.d.ts.map +1 -1
- package/dist/src/commands/monoswarm.js +16 -10
- package/dist/src/commands/monoswarm.js.map +1 -1
- package/dist/src/commands/pick.d.ts.map +1 -1
- package/dist/src/commands/pick.js +66 -16
- package/dist/src/commands/pick.js.map +1 -1
- package/dist/src/commands/route.d.ts +2 -1
- package/dist/src/commands/route.d.ts.map +1 -1
- package/dist/src/commands/route.js +73 -117
- package/dist/src/commands/route.js.map +1 -1
- package/dist/src/decision/catalogs.d.ts +24 -3
- package/dist/src/decision/catalogs.d.ts.map +1 -1
- package/dist/src/decision/catalogs.js +100 -22
- package/dist/src/decision/catalogs.js.map +1 -1
- package/dist/src/decision/jev.d.ts +26 -6
- package/dist/src/decision/jev.d.ts.map +1 -1
- package/dist/src/decision/jev.js +15 -4
- package/dist/src/decision/jev.js.map +1 -1
- package/dist/src/decision/pick-eval.d.ts +67 -0
- package/dist/src/decision/pick-eval.d.ts.map +1 -0
- package/dist/src/decision/pick-eval.js +113 -0
- package/dist/src/decision/pick-eval.js.map +1 -0
- package/dist/src/decision/pick-stats.d.ts +49 -0
- package/dist/src/decision/pick-stats.d.ts.map +1 -0
- package/dist/src/decision/pick-stats.js +68 -0
- package/dist/src/decision/pick-stats.js.map +1 -0
- package/dist/src/decision/picks.d.ts +37 -6
- package/dist/src/decision/picks.d.ts.map +1 -1
- package/dist/src/decision/picks.js +67 -32
- package/dist/src/decision/picks.js.map +1 -1
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +43 -22
- package/dist/src/index.js.map +1 -1
- package/dist/src/init/agent-refresh.d.ts +8 -0
- package/dist/src/init/agent-refresh.d.ts.map +1 -0
- package/dist/src/init/agent-refresh.js +89 -0
- package/dist/src/init/agent-refresh.js.map +1 -0
- package/dist/src/init/claudemd-generator.d.ts.map +1 -1
- package/dist/src/init/claudemd-generator.js +27 -9
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/helpers-generator.d.ts +4 -1
- package/dist/src/init/helpers-generator.d.ts.map +1 -1
- package/dist/src/init/helpers-generator.js +84 -55
- package/dist/src/init/helpers-generator.js.map +1 -1
- package/dist/src/init/hook-settings.d.ts +57 -0
- package/dist/src/init/hook-settings.d.ts.map +1 -0
- package/dist/src/init/hook-settings.js +133 -0
- package/dist/src/init/hook-settings.js.map +1 -0
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js +44 -25
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/shared.d.ts +9 -0
- package/dist/src/init/shared.d.ts.map +1 -1
- package/dist/src/init/shared.js +22 -0
- package/dist/src/init/shared.js.map +1 -1
- package/dist/src/init/upgrade.d.ts +4 -0
- package/dist/src/init/upgrade.d.ts.map +1 -1
- package/dist/src/init/upgrade.js +123 -129
- package/dist/src/init/upgrade.js.map +1 -1
- package/dist/src/init/write-capabilities.d.ts.map +1 -1
- package/dist/src/init/write-capabilities.js +10 -33
- package/dist/src/init/write-capabilities.js.map +1 -1
- package/dist/src/init/write-claude.d.ts.map +1 -1
- package/dist/src/init/write-claude.js +5 -2
- package/dist/src/init/write-claude.js.map +1 -1
- package/dist/src/mcp-client.d.ts.map +1 -1
- package/dist/src/mcp-client.js +4 -0
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/agent-tools.js +3 -0
- package/dist/src/mcp-tools/agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/guidance-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/guidance-tools.js +19 -10
- package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-embedding.d.ts +1 -32
- package/dist/src/mcp-tools/hooks-embedding.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-embedding.js +22 -200
- package/dist/src/mcp-tools/hooks-embedding.js.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.js +77 -192
- package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
- package/dist/src/mcp-tools/index.d.ts +1 -0
- package/dist/src/mcp-tools/index.d.ts.map +1 -1
- package/dist/src/mcp-tools/index.js +1 -0
- package/dist/src/mcp-tools/index.js.map +1 -1
- package/dist/src/mcp-tools/org-skill-tools.d.ts +4 -0
- package/dist/src/mcp-tools/org-skill-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/org-skill-tools.js +42 -0
- package/dist/src/mcp-tools/org-skill-tools.js.map +1 -0
- package/dist/src/mcp-tools/pick-tools.d.ts +4 -0
- package/dist/src/mcp-tools/pick-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/pick-tools.js +53 -0
- package/dist/src/mcp-tools/pick-tools.js.map +1 -0
- package/dist/src/monovector/coverage-router.d.ts +2 -1
- package/dist/src/monovector/coverage-router.d.ts.map +1 -1
- package/dist/src/monovector/coverage-router.js +6 -5
- package/dist/src/monovector/coverage-router.js.map +1 -1
- package/dist/src/monovector/coverage-tools.js +1 -1
- package/dist/src/monovector/coverage-tools.js.map +1 -1
- package/dist/src/monovector/index.d.ts +1 -1
- package/dist/src/monovector/index.d.ts.map +1 -1
- package/dist/src/monovector/index.js +11 -35
- package/dist/src/monovector/index.js.map +1 -1
- package/dist/src/monovector/route-outcomes.d.ts.map +1 -1
- package/dist/src/monovector/route-outcomes.js +89 -34
- package/dist/src/monovector/route-outcomes.js.map +1 -1
- package/dist/src/orgrt/bash-timeout.d.ts +14 -0
- package/dist/src/orgrt/bash-timeout.d.ts.map +1 -0
- package/dist/src/orgrt/bash-timeout.js +18 -0
- package/dist/src/orgrt/bash-timeout.js.map +1 -0
- package/dist/src/orgrt/block-recheck.d.ts +30 -0
- package/dist/src/orgrt/block-recheck.d.ts.map +1 -0
- package/dist/src/orgrt/block-recheck.js +81 -0
- package/dist/src/orgrt/block-recheck.js.map +1 -0
- package/dist/src/orgrt/completion-gate.d.ts +4 -0
- package/dist/src/orgrt/completion-gate.d.ts.map +1 -1
- package/dist/src/orgrt/completion-gate.js +22 -2
- package/dist/src/orgrt/completion-gate.js.map +1 -1
- package/dist/src/orgrt/daemon.d.ts +7 -13
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +18 -27
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/decisions.d.ts +4 -9
- package/dist/src/orgrt/decisions.d.ts.map +1 -1
- package/dist/src/orgrt/decisions.js +44 -47
- package/dist/src/orgrt/decisions.js.map +1 -1
- package/dist/src/orgrt/dispatch-hold.d.ts +34 -0
- package/dist/src/orgrt/dispatch-hold.d.ts.map +1 -0
- package/dist/src/orgrt/dispatch-hold.js +75 -0
- package/dist/src/orgrt/dispatch-hold.js.map +1 -0
- package/dist/src/orgrt/mailbox.d.ts +14 -0
- package/dist/src/orgrt/mailbox.d.ts.map +1 -1
- package/dist/src/orgrt/mailbox.js +31 -1
- package/dist/src/orgrt/mailbox.js.map +1 -1
- package/dist/src/orgrt/runner-registry.d.ts +20 -0
- package/dist/src/orgrt/runner-registry.d.ts.map +1 -1
- package/dist/src/orgrt/runner-registry.js +39 -0
- package/dist/src/orgrt/runner-registry.js.map +1 -1
- package/dist/src/orgrt/sandbox-deny-write.d.ts +11 -1
- package/dist/src/orgrt/sandbox-deny-write.d.ts.map +1 -1
- package/dist/src/orgrt/sandbox-deny-write.js +23 -2
- package/dist/src/orgrt/sandbox-deny-write.js.map +1 -1
- package/dist/src/orgrt/sandbox-fault.d.ts +21 -7
- package/dist/src/orgrt/sandbox-fault.d.ts.map +1 -1
- package/dist/src/orgrt/sandbox-fault.js +92 -35
- package/dist/src/orgrt/sandbox-fault.js.map +1 -1
- package/dist/src/orgrt/session.d.ts +20 -10
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +60 -72
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/src/orgrt/skill-library.d.ts +4 -0
- package/dist/src/orgrt/skill-library.d.ts.map +1 -1
- package/dist/src/orgrt/skill-library.js +12 -0
- package/dist/src/orgrt/skill-library.js.map +1 -1
- package/dist/src/orgrt/skill-tools.d.ts +11 -0
- package/dist/src/orgrt/skill-tools.d.ts.map +1 -0
- package/dist/src/orgrt/skill-tools.js +40 -0
- package/dist/src/orgrt/skill-tools.js.map +1 -0
- package/dist/src/orgrt/task-cancel.d.ts +64 -0
- package/dist/src/orgrt/task-cancel.d.ts.map +1 -0
- package/dist/src/orgrt/task-cancel.js +134 -0
- package/dist/src/orgrt/task-cancel.js.map +1 -0
- package/dist/src/orgrt/task-dag.d.ts +18 -3
- package/dist/src/orgrt/task-dag.d.ts.map +1 -1
- package/dist/src/orgrt/task-dag.js +10 -4
- package/dist/src/orgrt/task-dag.js.map +1 -1
- package/dist/src/orgrt/task-match.d.ts +121 -0
- package/dist/src/orgrt/task-match.d.ts.map +1 -0
- package/dist/src/orgrt/task-match.js +241 -0
- package/dist/src/orgrt/task-match.js.map +1 -0
- package/dist/src/orgrt/task-provenance.d.ts +26 -0
- package/dist/src/orgrt/task-provenance.d.ts.map +1 -0
- package/dist/src/orgrt/task-provenance.js +93 -0
- package/dist/src/orgrt/task-provenance.js.map +1 -0
- package/dist/src/orgrt/task-tools.d.ts +24 -0
- package/dist/src/orgrt/task-tools.d.ts.map +1 -0
- package/dist/src/orgrt/task-tools.js +75 -0
- package/dist/src/orgrt/task-tools.js.map +1 -0
- package/dist/src/orgrt/types.d.ts +11 -0
- package/dist/src/orgrt/types.d.ts.map +1 -1
- package/dist/src/orgrt/types.js +18 -0
- package/dist/src/orgrt/types.js.map +1 -1
- package/dist/src/output.d.ts +6 -0
- package/dist/src/output.d.ts.map +1 -1
- package/dist/src/output.js +13 -2
- package/dist/src/output.js.map +1 -1
- package/dist/src/protocol-capabilities.d.ts +8 -1
- package/dist/src/protocol-capabilities.d.ts.map +1 -1
- package/dist/src/protocol-capabilities.js +10 -0
- package/dist/src/protocol-capabilities.js.map +1 -1
- package/dist/src/routing/agent-pick.d.ts +44 -0
- package/dist/src/routing/agent-pick.d.ts.map +1 -0
- package/dist/src/routing/agent-pick.js +114 -0
- package/dist/src/routing/agent-pick.js.map +1 -0
- package/dist/src/routing/pick-step.d.ts +26 -0
- package/dist/src/routing/pick-step.d.ts.map +1 -0
- package/dist/src/routing/pick-step.js +40 -0
- package/dist/src/routing/pick-step.js.map +1 -0
- package/dist/src/routing/route-layer-factory.d.ts.map +1 -1
- package/dist/src/routing/route-layer-factory.js +19 -17
- package/dist/src/routing/route-layer-factory.js.map +1 -1
- package/dist/src/utils/resource-governor.d.ts.map +1 -1
- package/dist/src/utils/resource-governor.js +55 -2
- package/dist/src/utils/resource-governor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/org-skills/SOURCES.md +6 -6
- package/org-skills/TAGS.md +146 -0
- package/org-skills/ab-testing/SKILL.md +2 -2
- package/org-skills/accessibility-compliance/SKILL.md +2 -2
- package/org-skills/account-strategist/SKILL.md +2 -2
- package/org-skills/accounts-payable/SKILL.md +2 -2
- package/org-skills/ad-creative/SKILL.md +2 -2
- package/org-skills/adaptive-coordinator/SKILL.md +2 -2
- package/org-skills/adaptive-coordinator2/SKILL.md +2 -2
- package/org-skills/advanced-evaluation/SKILL.md +2 -2
- package/org-skills/adversarial-reviewer/SKILL.md +2 -2
- package/org-skills/agent-evaluation/SKILL.md +2 -2
- package/org-skills/agent-memory-systems/SKILL.md +2 -2
- package/org-skills/agent-tool-design/SKILL.md +2 -2
- package/org-skills/agile-product-owner/SKILL.md +2 -2
- package/org-skills/ai-citation/SKILL.md +2 -2
- package/org-skills/ai-engineer/SKILL.md +2 -2
- package/org-skills/ai-seo/SKILL.md +2 -2
- package/org-skills/analytics-reporter/SKILL.md +2 -2
- package/org-skills/analytics-tracking/SKILL.md +2 -2
- package/org-skills/android-clean-architecture/SKILL.md +2 -2
- package/org-skills/angular-architect/SKILL.md +2 -2
- package/org-skills/api-design/SKILL.md +2 -2
- package/org-skills/api-designer/SKILL.md +2 -2
- package/org-skills/api-tester/SKILL.md +2 -2
- package/org-skills/app-store-optimization/SKILL.md +2 -2
- package/org-skills/architecture-decision-records/SKILL.md +2 -2
- package/org-skills/architecture-designer/SKILL.md +2 -2
- package/org-skills/architecture-patterns/SKILL.md +2 -2
- package/org-skills/article-writing/SKILL.md +2 -2
- package/org-skills/auth-implementation-patterns/SKILL.md +2 -2
- package/org-skills/automation-governance/SKILL.md +2 -2
- package/org-skills/avoid-ai-writing/SKILL.md +2 -2
- package/org-skills/backend-dev/SKILL.md +2 -2
- package/org-skills/backend-patterns/SKILL.md +2 -2
- package/org-skills/bash-defensive-patterns/SKILL.md +2 -2
- package/org-skills/before-you-build/SKILL.md +2 -2
- package/org-skills/benchmark-methodology/SKILL.md +2 -2
- package/org-skills/benchmarker/SKILL.md +2 -2
- package/org-skills/blockchain-auditor/SKILL.md +2 -2
- package/org-skills/board-deck-builder/SKILL.md +2 -2
- package/org-skills/business-investment-advisor/SKILL.md +2 -2
- package/org-skills/byzantine-coord/SKILL.md +2 -2
- package/org-skills/canvas-design/SKILL.md +2 -2
- package/org-skills/carrier-relationship-management/SKILL.md +2 -2
- package/org-skills/case-analyst/SKILL.md +2 -2
- package/org-skills/ceo-advisor/SKILL.md +2 -2
- package/org-skills/cfo-advisor/SKILL.md +2 -2
- package/org-skills/change-management/SKILL.md +2 -2
- package/org-skills/changelog-automation/SKILL.md +2 -2
- package/org-skills/chro-advisor/SKILL.md +2 -2
- package/org-skills/churn-prevention/SKILL.md +2 -2
- package/org-skills/cicd-engineer/SKILL.md +2 -2
- package/org-skills/ciso-advisor/SKILL.md +2 -2
- package/org-skills/click-path-audit/SKILL.md +2 -2
- package/org-skills/cloud-architect/SKILL.md +2 -2
- package/org-skills/cloud-architecture/SKILL.md +2 -2
- package/org-skills/cmo-advisor/SKILL.md +2 -2
- package/org-skills/co-marketing/SKILL.md +2 -2
- package/org-skills/code-documenter/SKILL.md +2 -2
- package/org-skills/code-review-swarm/SKILL.md +2 -2
- package/org-skills/code-reviewer/SKILL.md +2 -2
- package/org-skills/coder/SKILL.md +2 -2
- package/org-skills/coding-standards/SKILL.md +2 -2
- package/org-skills/cold-email/SKILL.md +2 -2
- package/org-skills/collective-coord/SKILL.md +2 -2
- package/org-skills/community-marketing/SKILL.md +2 -2
- package/org-skills/competitive-landscape/SKILL.md +2 -2
- package/org-skills/competitive-platform-analysis/SKILL.md +2 -2
- package/org-skills/competitive-report-structure/SKILL.md +2 -2
- package/org-skills/competitive-teardown/SKILL.md +2 -2
- package/org-skills/competitor-comparison-pages/SKILL.md +2 -2
- package/org-skills/compliance-auditor/SKILL.md +2 -2
- package/org-skills/consensus-coordinator/SKILL.md +2 -2
- package/org-skills/content-creator/SKILL.md +2 -2
- package/org-skills/content-engine/SKILL.md +2 -2
- package/org-skills/content-strategy/SKILL.md +2 -2
- package/org-skills/context-compression/SKILL.md +2 -2
- package/org-skills/context-degradation/SKILL.md +2 -2
- package/org-skills/context-fundamentals/SKILL.md +2 -2
- package/org-skills/context-optimization/SKILL.md +2 -2
- package/org-skills/contract-and-proposal-writer/SKILL.md +1 -1
- package/org-skills/contract-first/SKILL.md +2 -2
- package/org-skills/coo-advisor/SKILL.md +2 -2
- package/org-skills/copy-editing/SKILL.md +2 -2
- package/org-skills/copywriting/SKILL.md +2 -2
- package/org-skills/cost-aware-llm-pipeline/SKILL.md +2 -2
- package/org-skills/cost-optimization/SKILL.md +2 -2
- package/org-skills/cpp-coding-standards/SKILL.md +2 -2
- package/org-skills/cpp-pro/SKILL.md +2 -2
- package/org-skills/cro-advisor/SKILL.md +2 -2
- package/org-skills/cro-specialist/SKILL.md +2 -2
- package/org-skills/csharp-developer/SKILL.md +2 -2
- package/org-skills/cto-advisor/SKILL.md +2 -2
- package/org-skills/culture-architect/SKILL.md +2 -2
- package/org-skills/customer-research/SKILL.md +2 -2
- package/org-skills/customs-trade-compliance/SKILL.md +2 -2
- package/org-skills/dart-flutter-patterns/SKILL.md +2 -2
- package/org-skills/dashboard-builder/SKILL.md +2 -2
- package/org-skills/data-consolidator/SKILL.md +2 -2
- package/org-skills/data-engineer/SKILL.md +2 -2
- package/org-skills/data-quality-frameworks/SKILL.md +2 -2
- package/org-skills/data-storytelling/SKILL.md +2 -2
- package/org-skills/database-migrations/SKILL.md +2 -2
- package/org-skills/database-optimizer/SKILL.md +2 -2
- package/org-skills/dbt-transformation-patterns/SKILL.md +2 -2
- package/org-skills/deal-strategist/SKILL.md +2 -2
- package/org-skills/debugging-wizard/SKILL.md +2 -2
- package/org-skills/deep-research/SKILL.md +2 -2
- package/org-skills/defender/SKILL.md +2 -2
- package/org-skills/dependency-upgrade/SKILL.md +2 -2
- package/org-skills/deployment-patterns/SKILL.md +2 -2
- package/org-skills/deployment-pipeline-design/SKILL.md +2 -2
- package/org-skills/design-system/SKILL.md +2 -2
- package/org-skills/design-system-patterns/SKILL.md +2 -2
- package/org-skills/devops-automator/SKILL.md +2 -2
- package/org-skills/devops-engineer/SKILL.md +2 -2
- package/org-skills/discovery-coach/SKILL.md +2 -2
- package/org-skills/django-expert/SKILL.md +2 -2
- package/org-skills/django-patterns/SKILL.md +2 -2
- package/org-skills/docker-patterns/SKILL.md +2 -2
- package/org-skills/dotnet-patterns/SKILL.md +2 -2
- package/org-skills/e2e-testing/SKILL.md +2 -2
- package/org-skills/email-marketing/SKILL.md +2 -2
- package/org-skills/email-sequences/SKILL.md +2 -2
- package/org-skills/embedded-firmware/SKILL.md +2 -2
- package/org-skills/embedded-systems/SKILL.md +2 -2
- package/org-skills/employment-contract-templates/SKILL.md +2 -2
- package/org-skills/energy-procurement/SKILL.md +2 -2
- package/org-skills/error-handling/SKILL.md +2 -2
- package/org-skills/event-marketing/SKILL.md +2 -2
- package/org-skills/evidence-collector/SKILL.md +2 -2
- package/org-skills/experiment-designer/SKILL.md +2 -2
- package/org-skills/experiment-tracker/SKILL.md +2 -2
- package/org-skills/experimental-design/SKILL.md +2 -2
- package/org-skills/fastapi-expert/SKILL.md +2 -2
- package/org-skills/fastapi-patterns/SKILL.md +2 -2
- package/org-skills/feedback-synthesizer/SKILL.md +2 -2
- package/org-skills/finance-tracker/SKILL.md +2 -2
- package/org-skills/finishing-a-development-branch/SKILL.md +2 -2
- package/org-skills/flutter-expert/SKILL.md +2 -2
- package/org-skills/focused-fix/SKILL.md +2 -2
- package/org-skills/free-tool-strategy/SKILL.md +2 -2
- package/org-skills/frontend-design/SKILL.md +2 -2
- package/org-skills/frontend-design-direction/SKILL.md +2 -2
- package/org-skills/frontend-developer/SKILL.md +2 -2
- package/org-skills/frontend-patterns/SKILL.md +2 -2
- package/org-skills/game-audio-engineer/SKILL.md +2 -2
- package/org-skills/game-designer/SKILL.md +2 -2
- package/org-skills/gdpr-data-handling/SKILL.md +2 -2
- package/org-skills/general-counsel-advisor/SKILL.md +2 -2
- package/org-skills/git-advanced-workflows/SKILL.md +2 -2
- package/org-skills/git-workflow/SKILL.md +2 -2
- package/org-skills/golang-patterns/SKILL.md +2 -2
- package/org-skills/golang-pro/SKILL.md +2 -2
- package/org-skills/harness-engineering/SKILL.md +2 -2
- package/org-skills/healthcare-phi-compliance/SKILL.md +2 -2
- package/org-skills/hexagonal-architecture/SKILL.md +2 -2
- package/org-skills/hierarchical-coord/SKILL.md +2 -2
- package/org-skills/huggingface-transformers/SKILL.md +2 -2
- package/org-skills/hypothesis-generation/SKILL.md +2 -2
- package/org-skills/incident-command-playbook/SKILL.md +2 -2
- package/org-skills/incident-commander/SKILL.md +2 -2
- package/org-skills/incident-runbook-templates/SKILL.md +2 -2
- package/org-skills/influencer-marketing/SKILL.md +2 -2
- package/org-skills/infrastructure/SKILL.md +2 -2
- package/org-skills/input-validator/SKILL.md +2 -2
- package/org-skills/intent-driven-development/SKILL.md +2 -2
- package/org-skills/inventory-demand-planning/SKILL.md +2 -2
- package/org-skills/investor-materials/SKILL.md +2 -2
- package/org-skills/ios-developer/SKILL.md +2 -2
- package/org-skills/isms-audit-expert/SKILL.md +2 -2
- package/org-skills/issue-tracker/SKILL.md +2 -2
- package/org-skills/java-architect/SKILL.md +2 -2
- package/org-skills/java-coding-standards/SKILL.md +2 -2
- package/org-skills/judge/SKILL.md +2 -2
- package/org-skills/kotlin-patterns/SKILL.md +2 -2
- package/org-skills/kotlin-specialist/SKILL.md +2 -2
- package/org-skills/kpi-dashboard-design/SKILL.md +2 -2
- package/org-skills/kubernetes-patterns/SKILL.md +2 -2
- package/org-skills/kubernetes-specialist/SKILL.md +2 -2
- package/org-skills/laravel-patterns/SKILL.md +2 -2
- package/org-skills/launch-strategist/SKILL.md +2 -2
- package/org-skills/launch-strategy/SKILL.md +2 -2
- package/org-skills/lead-magnets/SKILL.md +2 -2
- package/org-skills/legacy-modernizer/SKILL.md +2 -2
- package/org-skills/legal-compliance/SKILL.md +2 -2
- package/org-skills/level-designer/SKILL.md +2 -2
- package/org-skills/llm-cost-optimizer/SKILL.md +2 -2
- package/org-skills/llm-evaluation/SKILL.md +2 -2
- package/org-skills/llm-project-development/SKILL.md +2 -2
- package/org-skills/load-balancer/SKILL.md +2 -2
- package/org-skills/logistics-exception-management/SKILL.md +2 -2
- package/org-skills/long-horizon-prompting/SKILL.md +2 -2
- package/org-skills/make-interfaces-feel-better/SKILL.md +2 -2
- package/org-skills/markdown-mermaid-writing/SKILL.md +2 -2
- package/org-skills/market-research/SKILL.md +2 -2
- package/org-skills/market-research-reports/SKILL.md +2 -2
- package/org-skills/market-sizing-analysis/SKILL.md +2 -2
- package/org-skills/marketing-attribution/SKILL.md +2 -2
- package/org-skills/marketing-campaign/SKILL.md +2 -2
- package/org-skills/marketing-council/SKILL.md +2 -2
- package/org-skills/marketing-demand-acquisition/SKILL.md +2 -2
- package/org-skills/marketing-loops/SKILL.md +2 -2
- package/org-skills/marketing-plan/SKILL.md +2 -2
- package/org-skills/marketing-psychology/SKILL.md +2 -2
- package/org-skills/marketing-strategy-pmm/SKILL.md +2 -2
- package/org-skills/markitdown-document-conversion/SKILL.md +2 -2
- package/org-skills/mcp-builder/SKILL.md +2 -2
- package/org-skills/mcp-server-builder/SKILL.md +2 -2
- package/org-skills/mcp-server-patterns/SKILL.md +2 -2
- package/org-skills/memory-coordinator/SKILL.md +2 -2
- package/org-skills/mesh-coordinator/SKILL.md +2 -2
- package/org-skills/ml-developer/SKILL.md +2 -2
- package/org-skills/ml-pipeline/SKILL.md +2 -2
- package/org-skills/mle-workflow/SKILL.md +2 -2
- package/org-skills/mobile-app-builder/SKILL.md +2 -2
- package/org-skills/mobile-dev/SKILL.md +2 -2
- package/org-skills/model-qa/SKILL.md +2 -2
- package/org-skills/monitoring-expert/SKILL.md +2 -2
- package/org-skills/monodesign-ui-quality/SKILL.md +2 -2
- package/org-skills/monograph-code-navigation/SKILL.md +2 -2
- package/org-skills/monolean-minimal-change/SKILL.md +2 -2
- package/org-skills/multi-agent-patterns/SKILL.md +2 -2
- package/org-skills/mysql-patterns/SKILL.md +2 -2
- package/org-skills/narrative-designer/SKILL.md +2 -2
- package/org-skills/nextjs-developer/SKILL.md +2 -2
- package/org-skills/offer-design/SKILL.md +2 -2
- package/org-skills/onboarding-cro/SKILL.md +2 -2
- package/org-skills/outbound-strategist/SKILL.md +2 -2
- package/org-skills/page-cro/SKILL.md +2 -2
- package/org-skills/paid-ads/SKILL.md +2 -2
- package/org-skills/pandas-pro/SKILL.md +2 -2
- package/org-skills/path-validator/SKILL.md +2 -2
- package/org-skills/payment-agent/SKILL.md +2 -2
- package/org-skills/pci-compliance/SKILL.md +2 -2
- package/org-skills/perf-analyzer/SKILL.md +2 -2
- package/org-skills/php-pro/SKILL.md +2 -2
- package/org-skills/pipeline-analyst/SKILL.md +2 -2
- package/org-skills/planner/SKILL.md +2 -2
- package/org-skills/playwright-expert/SKILL.md +2 -2
- package/org-skills/postgres-patterns/SKILL.md +2 -2
- package/org-skills/postgresql-table-design/SKILL.md +2 -2
- package/org-skills/postmortem-writing/SKILL.md +2 -2
- package/org-skills/pr-manager/SKILL.md +2 -2
- package/org-skills/pricing-strategist/SKILL.md +2 -2
- package/org-skills/pricing-strategy/SKILL.md +2 -2
- package/org-skills/prisma-patterns/SKILL.md +2 -2
- package/org-skills/product-capability/SKILL.md +2 -2
- package/org-skills/product-discovery/SKILL.md +2 -2
- package/org-skills/product-lens/SKILL.md +2 -2
- package/org-skills/product-manager/SKILL.md +2 -2
- package/org-skills/product-marketing-context/SKILL.md +2 -2
- package/org-skills/production-audit/SKILL.md +2 -2
- package/org-skills/production-scheduling/SKILL.md +2 -2
- package/org-skills/production-validator/SKILL.md +2 -2
- package/org-skills/programmatic-seo/SKILL.md +2 -2
- package/org-skills/project-shepherd/SKILL.md +2 -2
- package/org-skills/prompt-engineer/SKILL.md +2 -2
- package/org-skills/proposal-strategist/SKILL.md +2 -2
- package/org-skills/prosecutor/SKILL.md +2 -2
- package/org-skills/public-relations/SKILL.md +2 -2
- package/org-skills/pymc-bayesian-modeling/SKILL.md +2 -2
- package/org-skills/python-patterns/SKILL.md +2 -2
- package/org-skills/python-pro/SKILL.md +2 -2
- package/org-skills/python-testing/SKILL.md +2 -2
- package/org-skills/quality-nonconformance/SKILL.md +2 -2
- package/org-skills/queen-coordinator/SKILL.md +2 -2
- package/org-skills/quorum-manager/SKILL.md +2 -2
- package/org-skills/raft-manager/SKILL.md +2 -2
- package/org-skills/rag-architect/SKILL.md +2 -2
- package/org-skills/rails-patterns/SKILL.md +2 -2
- package/org-skills/react-expert/SKILL.md +2 -2
- package/org-skills/react-native-expert/SKILL.md +2 -2
- package/org-skills/react-native-patterns/SKILL.md +2 -2
- package/org-skills/react-patterns/SKILL.md +2 -2
- package/org-skills/react-performance/SKILL.md +2 -2
- package/org-skills/react-testing/SKILL.md +2 -2
- package/org-skills/reality-checker/SKILL.md +2 -2
- package/org-skills/receiving-code-review/SKILL.md +2 -2
- package/org-skills/recruitment/SKILL.md +2 -2
- package/org-skills/redis-patterns/SKILL.md +2 -2
- package/org-skills/referral-programs/SKILL.md +2 -2
- package/org-skills/release-manager/SKILL.md +2 -2
- package/org-skills/repo-architect/SKILL.md +2 -2
- package/org-skills/researcher/SKILL.md +2 -2
- package/org-skills/resource-allocator/SKILL.md +2 -2
- package/org-skills/responsive-design/SKILL.md +2 -2
- package/org-skills/returns-reverse-logistics/SKILL.md +2 -2
- package/org-skills/reviewer/SKILL.md +2 -2
- package/org-skills/revops/SKILL.md +2 -2
- package/org-skills/roadmap-communicator/SKILL.md +2 -2
- package/org-skills/rust-engineer/SKILL.md +2 -2
- package/org-skills/rust-patterns/SKILL.md +2 -2
- package/org-skills/safe-executor/SKILL.md +2 -2
- package/org-skills/sales-coach/SKILL.md +2 -2
- package/org-skills/sales-enablement/SKILL.md +2 -2
- package/org-skills/sales-engineer/SKILL.md +2 -2
- package/org-skills/sales-prospecting/SKILL.md +2 -2
- package/org-skills/schema-markup/SKILL.md +2 -2
- package/org-skills/scientific-brainstorming/SKILL.md +2 -2
- package/org-skills/scientific-critical-thinking/SKILL.md +2 -2
- package/org-skills/scientific-thinking-literature-review/SKILL.md +2 -2
- package/org-skills/scientific-thinking-scholar-evaluation/SKILL.md +2 -2
- package/org-skills/scientific-visualization/SKILL.md +2 -2
- package/org-skills/scientific-writing/SKILL.md +2 -2
- package/org-skills/scout-explorer/SKILL.md +2 -2
- package/org-skills/secrets-vault-manager/SKILL.md +2 -2
- package/org-skills/secure-code-guardian/SKILL.md +2 -2
- package/org-skills/security-architect/SKILL.md +2 -2
- package/org-skills/security-auditor/SKILL.md +2 -2
- package/org-skills/security-review/SKILL.md +2 -2
- package/org-skills/security-reviewer/SKILL.md +2 -2
- package/org-skills/senior-data-scientist/SKILL.md +2 -2
- package/org-skills/senior-developer/SKILL.md +2 -2
- package/org-skills/senior-pm/SKILL.md +2 -2
- package/org-skills/senior-pm-playbook/SKILL.md +2 -2
- package/org-skills/seo/SKILL.md +2 -2
- package/org-skills/seo-audit/SKILL.md +2 -2
- package/org-skills/seo-specialist/SKILL.md +2 -2
- package/org-skills/shap-model-explainability/SKILL.md +2 -2
- package/org-skills/signup-flow-cro/SKILL.md +2 -2
- package/org-skills/site-architecture/SKILL.md +2 -2
- package/org-skills/sms-marketing/SKILL.md +2 -2
- package/org-skills/soc2-compliance/SKILL.md +2 -2
- package/org-skills/social-content/SKILL.md +2 -2
- package/org-skills/social-media/SKILL.md +2 -2
- package/org-skills/social-media-manager/SKILL.md +2 -2
- package/org-skills/solidity-engineer/SKILL.md +2 -2
- package/org-skills/spark-engineer/SKILL.md +2 -2
- package/org-skills/spec-driven-workflow/SKILL.md +2 -2
- package/org-skills/springboot-patterns/SKILL.md +2 -2
- package/org-skills/sprint-prioritizer/SKILL.md +2 -2
- package/org-skills/sql-pro/SKILL.md +2 -2
- package/org-skills/sre/SKILL.md +2 -2
- package/org-skills/sre-engineer/SKILL.md +2 -2
- package/org-skills/startup-financial-modeling/SKILL.md +2 -2
- package/org-skills/startup-metrics-framework/SKILL.md +2 -2
- package/org-skills/statistical-analysis/SKILL.md +2 -2
- package/org-skills/statistical-power/SKILL.md +2 -2
- package/org-skills/stride-analysis-patterns/SKILL.md +2 -2
- package/org-skills/stripe-integration/SKILL.md +2 -2
- package/org-skills/studio-operations/SKILL.md +2 -2
- package/org-skills/studio-producer/SKILL.md +2 -2
- package/org-skills/support-responder/SKILL.md +2 -2
- package/org-skills/swift-expert/SKILL.md +2 -2
- package/org-skills/swiftui-patterns/SKILL.md +2 -2
- package/org-skills/system-architect/SKILL.md +2 -2
- package/org-skills/systematic-debugging/SKILL.md +2 -2
- package/org-skills/task-orchestrator/SKILL.md +2 -2
- package/org-skills/team-communications/SKILL.md +2 -2
- package/org-skills/team-composition-analysis/SKILL.md +2 -2
- package/org-skills/technical-artist/SKILL.md +2 -2
- package/org-skills/technical-writer/SKILL.md +2 -2
- package/org-skills/terraform-engineer/SKILL.md +2 -2
- package/org-skills/test-driven-development/SKILL.md +2 -2
- package/org-skills/test-master/SKILL.md +2 -2
- package/org-skills/tester/SKILL.md +2 -2
- package/org-skills/the-fool/SKILL.md +2 -2
- package/org-skills/theme-factory/SKILL.md +2 -2
- package/org-skills/threat-detection/SKILL.md +2 -2
- package/org-skills/threat-mitigation-mapping/SKILL.md +2 -2
- package/org-skills/trend-researcher/SKILL.md +2 -2
- package/org-skills/trial-director/SKILL.md +2 -2
- package/org-skills/typescript-pro/SKILL.md +2 -2
- package/org-skills/unity-architect/SKILL.md +2 -2
- package/org-skills/using-git-worktrees/SKILL.md +2 -2
- package/org-skills/ux-researcher-designer/SKILL.md +2 -2
- package/org-skills/verification-before-completion/SKILL.md +2 -2
- package/org-skills/visionos-engineer/SKILL.md +2 -2
- package/org-skills/visual-design-foundations/SKILL.md +2 -2
- package/org-skills/vue-expert/SKILL.md +2 -2
- package/org-skills/vue-patterns/SKILL.md +2 -2
- package/org-skills/worker-specialist/SKILL.md +2 -2
- package/org-skills/workflow-architect/SKILL.md +2 -2
- package/org-skills/workflow-automation/SKILL.md +2 -2
- package/org-skills/writing-plans/SKILL.md +2 -2
- package/org-skills/zk-steward/SKILL.md +2 -2
- package/package.json +7 -7
- package/.claude/helpers/skill-registry.json +0 -5997
- package/.claude/skills/monodesign/SKILL.md +0 -257
- package/.claude/skills/monodesign/adapt.md +0 -53
- package/.claude/skills/monodesign/agents/monodesign-asset-producer.md +0 -100
- package/.claude/skills/monodesign/agents/monodesign-manual-edit-applier.md +0 -103
- package/.claude/skills/monodesign/animate.md +0 -65
- package/.claude/skills/monodesign/audit.md +0 -89
- package/.claude/skills/monodesign/bolder.md +0 -50
- package/.claude/skills/monodesign/clarify.md +0 -64
- package/.claude/skills/monodesign/colorize.md +0 -68
- package/.claude/skills/monodesign/craft.md +0 -51
- package/.claude/skills/monodesign/critique.md +0 -66
- package/.claude/skills/monodesign/delight.md +0 -47
- package/.claude/skills/monodesign/distill.md +0 -56
- package/.claude/skills/monodesign/document.md +0 -83
- package/.claude/skills/monodesign/extract.md +0 -74
- package/.claude/skills/monodesign/harden.md +0 -65
- package/.claude/skills/monodesign/init.md +0 -30
- package/.claude/skills/monodesign/layout.md +0 -36
- package/.claude/skills/monodesign/live.md +0 -34
- package/.claude/skills/monodesign/onboard.md +0 -50
- package/.claude/skills/monodesign/optimize.md +0 -64
- package/.claude/skills/monodesign/overdrive.md +0 -56
- package/.claude/skills/monodesign/polish.md +0 -68
- package/.claude/skills/monodesign/quieter.md +0 -57
- package/.claude/skills/monodesign/reference/adapt.md +0 -312
- package/.claude/skills/monodesign/reference/adapt.native.md +0 -58
- package/.claude/skills/monodesign/reference/android.md +0 -40
- package/.claude/skills/monodesign/reference/animate.md +0 -203
- package/.claude/skills/monodesign/reference/antipatterns-catalog.md +0 -410
- package/.claude/skills/monodesign/reference/audit.md +0 -135
- package/.claude/skills/monodesign/reference/audit.native.md +0 -139
- package/.claude/skills/monodesign/reference/bolder.md +0 -120
- package/.claude/skills/monodesign/reference/brand-workflow.md +0 -180
- package/.claude/skills/monodesign/reference/brand.md +0 -108
- package/.claude/skills/monodesign/reference/clarify.md +0 -288
- package/.claude/skills/monodesign/reference/codex.md +0 -105
- package/.claude/skills/monodesign/reference/cognitive-load.md +0 -106
- package/.claude/skills/monodesign/reference/color-and-contrast.md +0 -105
- package/.claude/skills/monodesign/reference/colorize.md +0 -257
- package/.claude/skills/monodesign/reference/component-specs.md +0 -260
- package/.claude/skills/monodesign/reference/component-states.md +0 -274
- package/.claude/skills/monodesign/reference/component-system.md +0 -358
- package/.claude/skills/monodesign/reference/copy-formulas.md +0 -160
- package/.claude/skills/monodesign/reference/craft.md +0 -123
- package/.claude/skills/monodesign/reference/critique.md +0 -780
- package/.claude/skills/monodesign/reference/delight.md +0 -302
- package/.claude/skills/monodesign/reference/design-principles.md +0 -246
- package/.claude/skills/monodesign/reference/distill.md +0 -111
- package/.claude/skills/monodesign/reference/document.md +0 -429
- package/.claude/skills/monodesign/reference/extract.md +0 -69
- package/.claude/skills/monodesign/reference/harden.md +0 -347
- package/.claude/skills/monodesign/reference/heuristics-scoring.md +0 -234
- package/.claude/skills/monodesign/reference/hooks.md +0 -92
- package/.claude/skills/monodesign/reference/image-prompts.md +0 -130
- package/.claude/skills/monodesign/reference/init.md +0 -221
- package/.claude/skills/monodesign/reference/interaction-design.md +0 -189
- package/.claude/skills/monodesign/reference/ios.md +0 -45
- package/.claude/skills/monodesign/reference/layout.md +0 -185
- package/.claude/skills/monodesign/reference/live.md +0 -710
- package/.claude/skills/monodesign/reference/motion-design.md +0 -109
- package/.claude/skills/monodesign/reference/onboard.md +0 -234
- package/.claude/skills/monodesign/reference/optimize.md +0 -258
- package/.claude/skills/monodesign/reference/overdrive.md +0 -130
- package/.claude/skills/monodesign/reference/personas.md +0 -179
- package/.claude/skills/monodesign/reference/polish.md +0 -241
- package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +0 -108
- package/.claude/skills/monodesign/reference/product.md +0 -60
- package/.claude/skills/monodesign/reference/quieter.md +0 -99
- package/.claude/skills/monodesign/reference/responsive-design.md +0 -114
- package/.claude/skills/monodesign/reference/shape.md +0 -165
- package/.claude/skills/monodesign/reference/spatial-design.md +0 -100
- package/.claude/skills/monodesign/reference/teach.md +0 -10
- package/.claude/skills/monodesign/reference/token-architecture.md +0 -222
- package/.claude/skills/monodesign/reference/typeset.md +0 -301
- package/.claude/skills/monodesign/reference/typography.md +0 -159
- package/.claude/skills/monodesign/reference/ux-research.md +0 -143
- package/.claude/skills/monodesign/reference/ux-rules.md +0 -211
- package/.claude/skills/monodesign/reference/ux-writing.md +0 -107
- package/.claude/skills/monodesign/scripts/command-metadata.json +0 -94
- package/.claude/skills/monodesign/scripts/context-signals.mjs +0 -260
- package/.claude/skills/monodesign/scripts/context.mjs +0 -1065
- package/.claude/skills/monodesign/scripts/critique-storage.mjs +0 -416
- package/.claude/skills/monodesign/scripts/detect-csp.mjs +0 -193
- package/.claude/skills/monodesign/scripts/detect.mjs +0 -33
- package/.claude/skills/monodesign/scripts/detector/browser/injected/index.mjs +0 -1960
- package/.claude/skills/monodesign/scripts/detector/cli/main.mjs +0 -321
- package/.claude/skills/monodesign/scripts/detector/design-system.mjs +0 -814
- package/.claude/skills/monodesign/scripts/detector/detect-antipatterns-browser.js +0 -5628
- package/.claude/skills/monodesign/scripts/detector/detect-antipatterns.mjs +0 -50
- package/.claude/skills/monodesign/scripts/detector/engines/browser/detect-url.mjs +0 -259
- package/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +0 -339
- package/.claude/skills/monodesign/scripts/detector/engines/regex/detect-text.mjs +0 -636
- package/.claude/skills/monodesign/scripts/detector/engines/static-html/css-cascade.mjs +0 -1016
- package/.claude/skills/monodesign/scripts/detector/engines/static-html/detect-html.mjs +0 -253
- package/.claude/skills/monodesign/scripts/detector/engines/visual/screenshot-contrast.mjs +0 -198
- package/.claude/skills/monodesign/scripts/detector/findings.mjs +0 -12
- package/.claude/skills/monodesign/scripts/detector/fix/css-regions.mjs +0 -181
- package/.claude/skills/monodesign/scripts/detector/fix/fixers.mjs +0 -373
- package/.claude/skills/monodesign/scripts/detector/fix/index.mjs +0 -426
- package/.claude/skills/monodesign/scripts/detector/node/file-system.mjs +0 -198
- package/.claude/skills/monodesign/scripts/detector/profile/profiler.mjs +0 -166
- package/.claude/skills/monodesign/scripts/detector/registry/antipatterns.mjs +0 -563
- package/.claude/skills/monodesign/scripts/detector/rules/checks.mjs +0 -3024
- package/.claude/skills/monodesign/scripts/detector/shared/color.mjs +0 -124
- package/.claude/skills/monodesign/scripts/detector/shared/constants.mjs +0 -101
- package/.claude/skills/monodesign/scripts/detector/shared/fonts.mjs +0 -30
- package/.claude/skills/monodesign/scripts/detector/shared/inline-ignores.mjs +0 -148
- package/.claude/skills/monodesign/scripts/detector/shared/page.mjs +0 -7
- package/.claude/skills/monodesign/scripts/hook-admin.mjs +0 -694
- package/.claude/skills/monodesign/scripts/hook-before-edit.mjs +0 -516
- package/.claude/skills/monodesign/scripts/hook-lib.mjs +0 -1785
- package/.claude/skills/monodesign/scripts/hook.mjs +0 -61
- package/.claude/skills/monodesign/scripts/lib/design-parser.mjs +0 -809
- package/.claude/skills/monodesign/scripts/lib/is-generated.mjs +0 -69
- package/.claude/skills/monodesign/scripts/lib/monodesign-config.mjs +0 -640
- package/.claude/skills/monodesign/scripts/lib/monodesign-paths.mjs +0 -129
- package/.claude/skills/monodesign/scripts/lib/provider.mjs +0 -4
- package/.claude/skills/monodesign/scripts/lib/target-args.mjs +0 -42
- package/.claude/skills/monodesign/scripts/live/browser-script-parts.mjs +0 -50
- package/.claude/skills/monodesign/scripts/live/completion.mjs +0 -19
- package/.claude/skills/monodesign/scripts/live/event-validation.mjs +0 -137
- package/.claude/skills/monodesign/scripts/live/insert-ui.mjs +0 -458
- package/.claude/skills/monodesign/scripts/live/manual-apply.mjs +0 -939
- package/.claude/skills/monodesign/scripts/live/manual-edit-routes.mjs +0 -357
- package/.claude/skills/monodesign/scripts/live/manual-edits-buffer.mjs +0 -152
- package/.claude/skills/monodesign/scripts/live/session-store.mjs +0 -293
- package/.claude/skills/monodesign/scripts/live/svelte-component.mjs +0 -826
- package/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +0 -279
- package/.claude/skills/monodesign/scripts/live/ui-core.mjs +0 -180
- package/.claude/skills/monodesign/scripts/live/vocabulary.mjs +0 -36
- package/.claude/skills/monodesign/scripts/live-accept.mjs +0 -812
- package/.claude/skills/monodesign/scripts/live-browser-dom.js +0 -147
- package/.claude/skills/monodesign/scripts/live-browser-session.js +0 -124
- package/.claude/skills/monodesign/scripts/live-browser.js +0 -11213
- package/.claude/skills/monodesign/scripts/live-commit-manual-edits.mjs +0 -1241
- package/.claude/skills/monodesign/scripts/live-complete.mjs +0 -75
- package/.claude/skills/monodesign/scripts/live-copy-edit-agent.mjs +0 -683
- package/.claude/skills/monodesign/scripts/live-discard-manual-edits.mjs +0 -51
- package/.claude/skills/monodesign/scripts/live-inject.mjs +0 -596
- package/.claude/skills/monodesign/scripts/live-insert.mjs +0 -272
- package/.claude/skills/monodesign/scripts/live-manual-edit-evidence.mjs +0 -363
- package/.claude/skills/monodesign/scripts/live-poll.mjs +0 -384
- package/.claude/skills/monodesign/scripts/live-resume.mjs +0 -94
- package/.claude/skills/monodesign/scripts/live-server.mjs +0 -1210
- package/.claude/skills/monodesign/scripts/live-status.mjs +0 -61
- package/.claude/skills/monodesign/scripts/live-target.mjs +0 -30
- package/.claude/skills/monodesign/scripts/live-wrap.mjs +0 -884
- package/.claude/skills/monodesign/scripts/live.mjs +0 -297
- package/.claude/skills/monodesign/scripts/modern-screenshot.umd.js +0 -14
- package/.claude/skills/monodesign/scripts/palette.mjs +0 -635
- package/.claude/skills/monodesign/scripts/pin.mjs +0 -221
- package/.claude/skills/monodesign/shape.md +0 -71
- package/.claude/skills/monodesign/teach.md +0 -18
- package/.claude/skills/monodesign/typeset.md +0 -59
- package/dist/src/routing/jev-step.d.ts +0 -17
- package/dist/src/routing/jev-step.d.ts.map +0 -1
- package/dist/src/routing/jev-step.js +0 -27
- package/dist/src/routing/jev-step.js.map +0 -1
- package/org-skills/accessibility/LICENSE.txt +0 -21
- package/org-skills/accessibility/SKILL.md +0 -149
- package/org-skills/database-migration/LICENSE.txt +0 -21
- package/org-skills/database-migration/SKILL.md +0 -337
- package/org-skills/database-migration/references/details.md +0 -76
- package/org-skills/error-handling-patterns/LICENSE.txt +0 -21
- package/org-skills/error-handling-patterns/SKILL.md +0 -126
- package/org-skills/error-handling-patterns/references/details.md +0 -516
- package/org-skills/internal-comms/LICENSE.txt +0 -202
- package/org-skills/internal-comms/SKILL.md +0 -36
- package/org-skills/internal-comms/examples/3p-updates.md +0 -47
- package/org-skills/internal-comms/examples/company-newsletter.md +0 -65
- package/org-skills/internal-comms/examples/faq-answers.md +0 -30
- package/org-skills/internal-comms/examples/general-comms.md +0 -16
|
@@ -50,6 +50,9 @@ export class Mailbox {
|
|
|
50
50
|
lastStreamEndValue;
|
|
51
51
|
/** True while stream() or waitForMessage() is parked on an empty queue. */
|
|
52
52
|
parked = false;
|
|
53
|
+
/** #331: the runner is inside a turn — from a yield (or runner activity)
|
|
54
|
+
* until its result. See observeTurn(). */
|
|
55
|
+
turnLive = false;
|
|
53
56
|
/** The role has nothing to process: it is parked waiting for mail, either
|
|
54
57
|
* inside stream() between turns or in waitForMessage() with its process
|
|
55
58
|
* down (run_config.session_idle_exit_ms). Read by the no-progress alarm —
|
|
@@ -148,6 +151,7 @@ export class Mailbox {
|
|
|
148
151
|
// crash-retry path, if at all) already had its chance to act on it.
|
|
149
152
|
this.inFlight = null;
|
|
150
153
|
this.parked = false;
|
|
154
|
+
this.turnLive = false;
|
|
151
155
|
while (true) {
|
|
152
156
|
while (this.queue.length > 0) {
|
|
153
157
|
if (gen !== this.generation)
|
|
@@ -159,11 +163,14 @@ export class Mailbox {
|
|
|
159
163
|
// the session that owns it. Never applied to the first message —
|
|
160
164
|
// the caller chose this session FOR that message.
|
|
161
165
|
if (yielded && opts.stopBefore?.(this.queue[0])) {
|
|
166
|
+
if (this.turnLive)
|
|
167
|
+
break; // held until the turn settles (#331)
|
|
162
168
|
this.lastStreamEndValue = 'boundary';
|
|
163
169
|
return;
|
|
164
170
|
}
|
|
165
171
|
const content = this.queue.shift();
|
|
166
172
|
yielded = true;
|
|
173
|
+
this.turnLive = true;
|
|
167
174
|
if (!content.startsWith(Mailbox.CONTINUE_PREFIX))
|
|
168
175
|
this.consumedReal++;
|
|
169
176
|
this.inFlight = content;
|
|
@@ -196,14 +203,37 @@ export class Mailbox {
|
|
|
196
203
|
return;
|
|
197
204
|
this.parked = false;
|
|
198
205
|
if (!woke) {
|
|
206
|
+
this.wake = null;
|
|
207
|
+
if (this.turnLive)
|
|
208
|
+
continue; // busy, not idle (#331)
|
|
199
209
|
// D3: idle long enough — end the stream so the role's process can
|
|
200
210
|
// exit; the next push waits in the queue for a resumed session.
|
|
201
|
-
this.wake = null;
|
|
202
211
|
this.lastStreamEndValue = 'idle';
|
|
203
212
|
return;
|
|
204
213
|
}
|
|
205
214
|
}
|
|
206
215
|
}
|
|
216
|
+
/** What the runner is doing, from the type of each message it emits: a
|
|
217
|
+
* 'result' settles the turn; 'assistant'/'tool_result' mean one is running
|
|
218
|
+
* (also one the runner started from a queued message after a result).
|
|
219
|
+
*
|
|
220
|
+
* #331: stream() must not END during a turn. The Claude SDK writes each
|
|
221
|
+
* yielded message to the CLI's stdin at once, pulls for the next one right
|
|
222
|
+
* away, and closes stdin when the stream ends — and tool permission
|
|
223
|
+
* requests and in-process MCP tool calls travel over that same channel, so
|
|
224
|
+
* every one of them then fails with "Stream closed". The idle exit and the
|
|
225
|
+
* task boundary therefore wait for the turn to settle. */
|
|
226
|
+
observeTurn(type) {
|
|
227
|
+
if (type === 'assistant' || type === 'tool_result') {
|
|
228
|
+
this.turnLive = true;
|
|
229
|
+
}
|
|
230
|
+
else if (type === 'result') {
|
|
231
|
+
this.turnLive = false;
|
|
232
|
+
// A parked stream re-arms its idle timer from now.
|
|
233
|
+
this.wake?.();
|
|
234
|
+
this.wake = null;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
207
237
|
/** Why the most recent stream() returned early, if it did: 'boundary'
|
|
208
238
|
* (stopBefore rejected the next message) or 'idle' (idleExitMs elapsed). */
|
|
209
239
|
get lastStreamEnd() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailbox.js","sourceRoot":"","sources":["../../../src/orgrt/mailbox.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;2DAU2D;AAC3D,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC;AACrE,MAAM,UAAU,wBAAwB,CAAC,MAA0B;IACjE,OAAO,MAAM,KAAK,SAAS,IAAI,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClE,CAAC;AAUD;;;;GAIG;AACH,MAAM,OAAO,OAAO;IACV,MAAM,CAAU,SAAS,GAAG,GAAG,CAAC;IACxC;;6EAEyE;IACzE,MAAM,CAAU,eAAe,GAAG,wBAAwB,CAAC;IACnD,KAAK,GAAa,EAAE,CAAC;IACrB,IAAI,GAAwB,IAAI,CAAC;IACjC,MAAM,GAAG,KAAK,CAAC;IACvB;;gFAE4E;IACpE,gBAAgB,CAAU;IAClC,qFAAqF;IAC7E,UAAU,GAAG,CAAC,CAAC;IACvB;uFACmF;IAC3E,YAAY,GAAG,CAAC,CAAC;IACzB;;;;uDAImD;IAC3C,QAAQ,GAAkB,IAAI,CAAC;IACvC;;;sEAGkE;IAC1D,QAAQ,GAAG,KAAK,CAAC;IACjB,kBAAkB,CAAuB;IACjD,2EAA2E;IACnE,MAAM,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"mailbox.js","sourceRoot":"","sources":["../../../src/orgrt/mailbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,9 +53,29 @@ export interface ScanEntry {
|
|
|
53
53
|
binary: string | null;
|
|
54
54
|
version: string | null;
|
|
55
55
|
install_hint: string;
|
|
56
|
+
/** `install_hint` in a shape a caller can execute safely (rev 9). */
|
|
57
|
+
install: InstallRecipe;
|
|
58
|
+
/** The runtime's own sign-in command, when it has one (rev 9). */
|
|
59
|
+
login_hint: string | null;
|
|
56
60
|
/** Mirrors `RunnerSpec.streamsIncrementally` — see its doc comment. */
|
|
57
61
|
streams_incrementally: boolean;
|
|
58
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* An install hint a caller can run without a shell: global npm packages, or
|
|
65
|
+
* a vendor's https install script piped to bash/sh. Anything else — prose,
|
|
66
|
+
* extra shell syntax, a plain `npm install` — is `manual`.
|
|
67
|
+
*/
|
|
68
|
+
export type InstallRecipe = {
|
|
69
|
+
kind: 'npm';
|
|
70
|
+
packages: string[];
|
|
71
|
+
} | {
|
|
72
|
+
kind: 'script';
|
|
73
|
+
url: string;
|
|
74
|
+
shell: 'bash' | 'sh';
|
|
75
|
+
} | {
|
|
76
|
+
kind: 'manual';
|
|
77
|
+
};
|
|
78
|
+
export declare function installRecipe(hint: string): InstallRecipe;
|
|
59
79
|
export interface ScanOptions {
|
|
60
80
|
/** Env used for PATH + `<X>_CLI_BIN` overrides (default process.env). */
|
|
61
81
|
env?: NodeJS.ProcessEnv;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-registry.d.ts","sourceRoot":"","sources":["../../../src/orgrt/runner-registry.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,aAAa,CAAC;AAG9D,MAAM,WAAW,UAAU;IACzB,4EAA4E;IAC5E,EAAE,EAAE,WAAW,CAAC;IAChB,wEAAwE;IACxE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;OAUG;IACH,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,eAAO,MAAM,YAAY,EAAE,UAAU,EAgNpC,CAAC;AAIF,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAE7D;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAO/E;AAID,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAmED,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC;IACnE,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB,CAAC,
|
|
1
|
+
{"version":3,"file":"runner-registry.d.ts","sourceRoot":"","sources":["../../../src/orgrt/runner-registry.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,aAAa,CAAC;AAG9D,MAAM,WAAW,UAAU;IACzB,4EAA4E;IAC5E,EAAE,EAAE,WAAW,CAAC;IAChB,wEAAwE;IACxE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;OAUG;IACH,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,eAAO,MAAM,YAAY,EAAE,UAAU,EAgNpC,CAAC;AAIF,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAE7D;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAO/E;AAID,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,OAAO,EAAE,aAAa,CAAC;IACvB,kEAAkE;IAClE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,uEAAuE;IACvE,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAmBvB,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAmBzD;AAmED,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC;IACnE,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB,CAAC,CAuBD"}
|
|
@@ -248,6 +248,43 @@ export async function resolveExecRunner(id) {
|
|
|
248
248
|
}
|
|
249
249
|
return resolveRunner(id) ?? null;
|
|
250
250
|
}
|
|
251
|
+
// A version part is a tag or an exact/caret/tilde version — never a range
|
|
252
|
+
// operator, wildcard or anything starting with `-`.
|
|
253
|
+
const NPM_PACKAGE = /^(@[a-z0-9][\w.-]*\/)?[a-z0-9][\w.-]*(@[0-9A-Za-z.^~][0-9A-Za-z.^~-]*)?$/;
|
|
254
|
+
const CURL_INSTALL = /^curl[ \t]+-fsSL[ \t]+(\S+)[ \t]*\|[ \t]*(bash|sh)$/;
|
|
255
|
+
// A conservative URL charset: no quoting, substitution, separators or credentials.
|
|
256
|
+
const SCRIPT_URL = /^https:\/\/[a-z0-9.-]+(\/[A-Za-z0-9._~/-]*)?$/;
|
|
257
|
+
function isScriptUrl(url) {
|
|
258
|
+
if (!SCRIPT_URL.test(url))
|
|
259
|
+
return false;
|
|
260
|
+
try {
|
|
261
|
+
const u = new URL(url);
|
|
262
|
+
return u.protocol === 'https:' && !u.username && !u.password;
|
|
263
|
+
}
|
|
264
|
+
catch {
|
|
265
|
+
return false;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
export function installRecipe(hint) {
|
|
269
|
+
const text = hint.trim();
|
|
270
|
+
// A hint is one line of space-separated words.
|
|
271
|
+
if (/[^\S \t]/.test(text))
|
|
272
|
+
return { kind: 'manual' };
|
|
273
|
+
const words = text.split(/[ \t]+/);
|
|
274
|
+
if (words.length >= 4 &&
|
|
275
|
+
words[0] === 'npm' &&
|
|
276
|
+
words[1] === 'install' &&
|
|
277
|
+
(words[2] === '-g' || words[2] === '--global')) {
|
|
278
|
+
const packages = words.slice(3);
|
|
279
|
+
return packages.every((p) => NPM_PACKAGE.test(p))
|
|
280
|
+
? { kind: 'npm', packages }
|
|
281
|
+
: { kind: 'manual' };
|
|
282
|
+
}
|
|
283
|
+
const m = CURL_INSTALL.exec(text);
|
|
284
|
+
if (m && isScriptUrl(m[1]))
|
|
285
|
+
return { kind: 'script', url: m[1], shell: m[2] };
|
|
286
|
+
return { kind: 'manual' };
|
|
287
|
+
}
|
|
251
288
|
/** Resolve a binary honoring the runner's `<X>_CLI_BIN` override. */
|
|
252
289
|
function resolveBinary(spec, env) {
|
|
253
290
|
if (!spec.binary)
|
|
@@ -327,6 +364,8 @@ export async function scanInstalled(opts = {}) {
|
|
|
327
364
|
? await probeVersion(binPath, opts.versionTimeoutMs)
|
|
328
365
|
: null,
|
|
329
366
|
install_hint: spec.installHint,
|
|
367
|
+
install: installRecipe(spec.installHint),
|
|
368
|
+
login_hint: spec.loginHint ?? null,
|
|
330
369
|
streams_incrementally: spec.streamsIncrementally,
|
|
331
370
|
};
|
|
332
371
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-registry.js","sourceRoot":"","sources":["../../../src/orgrt/runner-registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runner-registry.js","sourceRoot":"","sources":["../../../src/orgrt/runner-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,15 @@
|
|
|
28
28
|
* never relied on this layer: their permission rules (`Edit(//dir/**)`) and
|
|
29
29
|
* the PolicyEngine deny lists keep the unexpanded directory.
|
|
30
30
|
*
|
|
31
|
+
* An empty regular file among those children is left out: it is one of
|
|
32
|
+
* those stubs, which the SDK deletes when the sandbox that made it ends. The
|
|
33
|
+
* restrictions are built when the role's process starts, so a stub captured
|
|
34
|
+
* then could be gone by the next Bash call, and bwrap dies binding a missing
|
|
35
|
+
* source ("Can't find source path ~/.claude/local", 2.16.2 release run). The
|
|
36
|
+
* SDK denies that name itself. A path the SDK adds and loses the same way is
|
|
37
|
+
* the sandbox-fault restart's to recover (sandbox-fault.ts): a new process
|
|
38
|
+
* builds its restrictions again from what exists then.
|
|
39
|
+
*
|
|
31
40
|
* Linux only: seatbelt (macOS) denies by path rule, needs no mount points,
|
|
32
41
|
* and keeps the whole directory read-only.
|
|
33
42
|
*/
|
|
@@ -40,7 +49,8 @@ export interface ExpandedDenyWrite {
|
|
|
40
49
|
}
|
|
41
50
|
/**
|
|
42
51
|
* Replaces every deny-write path that equals or contains one of `keepWritable`
|
|
43
|
-
* (the role's cwd, ~/.claude) with its existing children
|
|
52
|
+
* (the role's cwd, ~/.claude) with its existing children (less the SDK's
|
|
53
|
+
* empty stubs), recursively. A path
|
|
44
54
|
* that cannot be listed (missing, unreadable, not a directory) is kept as-is,
|
|
45
55
|
* so the old — stricter — behaviour is the fallback.
|
|
46
56
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-deny-write.d.ts","sourceRoot":"","sources":["../../../src/orgrt/sandbox-deny-write.ts"],"names":[],"mappings":"AACA
|
|
1
|
+
{"version":3,"file":"sandbox-deny-write.d.ts","sourceRoot":"","sources":["../../../src/orgrt/sandbox-deny-write.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AA2BH,MAAM,WAAW,iBAAiB;IAChC,+EAA+E;IAC/E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;iEAC6D;IAC7D,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,EAAE,MAAM,EAAE,EACtB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,iBAAiB,CAuBnB;AAED;;kBAEkB;AAClB,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAGhE"}
|
|
@@ -29,6 +29,15 @@
|
|
|
29
29
|
* never relied on this layer: their permission rules (`Edit(//dir/**)`) and
|
|
30
30
|
* the PolicyEngine deny lists keep the unexpanded directory.
|
|
31
31
|
*
|
|
32
|
+
* An empty regular file among those children is left out: it is one of
|
|
33
|
+
* those stubs, which the SDK deletes when the sandbox that made it ends. The
|
|
34
|
+
* restrictions are built when the role's process starts, so a stub captured
|
|
35
|
+
* then could be gone by the next Bash call, and bwrap dies binding a missing
|
|
36
|
+
* source ("Can't find source path ~/.claude/local", 2.16.2 release run). The
|
|
37
|
+
* SDK denies that name itself. A path the SDK adds and loses the same way is
|
|
38
|
+
* the sandbox-fault restart's to recover (sandbox-fault.ts): a new process
|
|
39
|
+
* builds its restrictions again from what exists then.
|
|
40
|
+
*
|
|
32
41
|
* Linux only: seatbelt (macOS) denies by path rule, needs no mount points,
|
|
33
42
|
* and keeps the whole directory read-only.
|
|
34
43
|
*/
|
|
@@ -44,9 +53,20 @@ const real = (p) => {
|
|
|
44
53
|
};
|
|
45
54
|
/** Is `target` equal to, or nested under, `container`? */
|
|
46
55
|
const within = (container, target) => target === container || target.startsWith(container.endsWith(sep) ? container : container + sep);
|
|
56
|
+
/** A 0-byte regular file: bwrap's mount-point stub for an SDK /dev/null bind. */
|
|
57
|
+
const isStub = (p) => {
|
|
58
|
+
try {
|
|
59
|
+
const st = lstatSync(p);
|
|
60
|
+
return st.isFile() && st.size === 0;
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return true; // already gone
|
|
64
|
+
}
|
|
65
|
+
};
|
|
47
66
|
/**
|
|
48
67
|
* Replaces every deny-write path that equals or contains one of `keepWritable`
|
|
49
|
-
* (the role's cwd, ~/.claude) with its existing children
|
|
68
|
+
* (the role's cwd, ~/.claude) with its existing children (less the SDK's
|
|
69
|
+
* empty stubs), recursively. A path
|
|
50
70
|
* that cannot be listed (missing, unreadable, not a directory) is kept as-is,
|
|
51
71
|
* so the old — stricter — behaviour is the fallback.
|
|
52
72
|
*/
|
|
@@ -73,7 +93,8 @@ export function expandDenyWrite(paths, keepWritable, platform = process.platform
|
|
|
73
93
|
}
|
|
74
94
|
mountPoints.push(p);
|
|
75
95
|
for (const e of entries)
|
|
76
|
-
|
|
96
|
+
if (!isStub(join(p, e)))
|
|
97
|
+
visit(join(p, e));
|
|
77
98
|
};
|
|
78
99
|
for (const p of paths)
|
|
79
100
|
visit(p);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-deny-write.js","sourceRoot":"","sources":["../../../src/orgrt/sandbox-deny-write.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD
|
|
1
|
+
{"version":3,"file":"sandbox-deny-write.js","sourceRoot":"","sources":["../../../src/orgrt/sandbox-deny-write.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,16 +3,30 @@ import type { OrgBus } from './bus.js';
|
|
|
3
3
|
/** A Bash result that is bubblewrap's own error, not the command's: the OS
|
|
4
4
|
* sandbox failed to start (2.16.0 release run: 31 of these, and a QA role
|
|
5
5
|
* that silently lost Bash for ~7 minutes). A new runner process builds a new
|
|
6
|
-
* sandbox, so ending the process is the recovery.
|
|
6
|
+
* sandbox, so ending the process is the recovery. Only a setup failure that
|
|
7
|
+
* is the whole result counts — after the tool's own "Exit code N" line — so
|
|
8
|
+
* a command that runs bwrap itself and prints its errors among other output
|
|
9
|
+
* (2.16.2 release run: "bwrap: : No such file or directory" in a reaper
|
|
10
|
+
* repro) is the command's output, not a fault. */
|
|
7
11
|
export declare function isSandboxFault(m: Pick<AgentMessage, 'tool' | 'text'>): boolean;
|
|
12
|
+
/** #331: a tool result that is the runner's tool-permission channel failing,
|
|
13
|
+
* not the tool: the CLI could not ask the SDK host whether the call may run,
|
|
14
|
+
* because the stdio stream it asks over is closed. Every later org tool,
|
|
15
|
+
* Read, and Bash call that needs a decision fails the same way, while Bash
|
|
16
|
+
* allowed by a static rule keeps working (2.16.1 release run). The stream
|
|
17
|
+
* never reopens in that process, so ending it is the recovery. */
|
|
18
|
+
export declare function isChannelFault(m: Pick<AgentMessage, 'tool' | 'text'>): boolean;
|
|
19
|
+
export type ProcessFault = 'sandbox' | 'channel';
|
|
8
20
|
/** Consecutive faulted Bash results in one process before it is ended. */
|
|
9
21
|
export declare const SANDBOX_FAULTS_BEFORE_RESTART = 2;
|
|
10
|
-
/** Process restarts per task session before the coordinator
|
|
22
|
+
/** Process restarts per task session and fault kind before the coordinator
|
|
23
|
+
* is told instead. */
|
|
11
24
|
export declare const MAX_SANDBOX_RESTARTS = 2;
|
|
12
25
|
/** Thrown out of the session's message loop to end the runner process. */
|
|
13
|
-
export declare class
|
|
26
|
+
export declare class ProcessFaultError extends Error {
|
|
14
27
|
readonly sessionId: string | undefined;
|
|
15
|
-
|
|
28
|
+
readonly kind: ProcessFault;
|
|
29
|
+
constructor(sessionId: string | undefined, kind?: ProcessFault);
|
|
16
30
|
}
|
|
17
31
|
interface Surface {
|
|
18
32
|
bus: OrgBus;
|
|
@@ -21,8 +35,8 @@ interface Surface {
|
|
|
21
35
|
coordinator?: string;
|
|
22
36
|
deliver: (from: string, to: string, subject: string, body: string) => Promise<string>;
|
|
23
37
|
}
|
|
24
|
-
/** Per role session loop: counts restarts per session key (task). */
|
|
25
|
-
export declare class
|
|
38
|
+
/** Per role session loop: counts restarts per session key (task) and kind. */
|
|
39
|
+
export declare class FaultRestarts {
|
|
26
40
|
private readonly s;
|
|
27
41
|
private used;
|
|
28
42
|
private surfaced;
|
|
@@ -33,7 +47,7 @@ export declare class SandboxRestarts {
|
|
|
33
47
|
};
|
|
34
48
|
/** Called once the process is gone: records the restart and returns the
|
|
35
49
|
* message the restarted session opens with. */
|
|
36
|
-
restarted(key: string): string;
|
|
50
|
+
restarted(key: string, kind?: ProcessFault): string;
|
|
37
51
|
private surface;
|
|
38
52
|
}
|
|
39
53
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-fault.d.ts","sourceRoot":"","sources":["../../../src/orgrt/sandbox-fault.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"sandbox-fault.d.ts","sourceRoot":"","sources":["../../../src/orgrt/sandbox-fault.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQvC;;;;;;;mDAOmD;AACnD,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAK9E;AAED;;;;;mEAKmE;AACnE,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAE9E;AAED,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjD,0EAA0E;AAC1E,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAC/C;uBACuB;AACvB,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAqCtC,0EAA0E;AAC1E,qBAAa,iBAAkB,SAAQ,KAAK;IAExC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IACtC,QAAQ,CAAC,IAAI,EAAE,YAAY;IAF7B,YACW,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,IAAI,GAAE,YAAwB,EAQxC;CACF;AAED,UAAU,OAAO;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACvF;AAED,8EAA8E;AAC9E,qBAAa,aAAa;IAIZ,OAAO,CAAC,QAAQ,CAAC,CAAC;IAH9B,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,QAAQ,CAAqB;IAErC,YAA6B,CAAC,EAAE,OAAO,EAAI;IAE3C,8CAA8C;IAC9C,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAA;KAAE,CAgCpF;IAED;oDACgD;IAChD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,YAAwB,GAAG,MAAM,CAW7D;IAED,OAAO,CAAC,OAAO;CAoBhB"}
|
|
@@ -1,27 +1,74 @@
|
|
|
1
1
|
// packages/@monomind/cli/src/orgrt/sandbox-fault.ts
|
|
2
2
|
import { Mailbox } from './mailbox.js';
|
|
3
|
+
/** The message families bubblewrap itself dies with while it sets the sandbox
|
|
4
|
+
* up, before it execs the command (bubblewrap 0.13 `die`/`die_with_error`). */
|
|
5
|
+
const BWRAP_SETUP_FAILURE = /^bwrap: (?:Can't |Creating |Failed to |No permissions to create |setting up |Unable to |Unexpected |execvp\b)/;
|
|
3
6
|
/** A Bash result that is bubblewrap's own error, not the command's: the OS
|
|
4
7
|
* sandbox failed to start (2.16.0 release run: 31 of these, and a QA role
|
|
5
8
|
* that silently lost Bash for ~7 minutes). A new runner process builds a new
|
|
6
|
-
* sandbox, so ending the process is the recovery.
|
|
9
|
+
* sandbox, so ending the process is the recovery. Only a setup failure that
|
|
10
|
+
* is the whole result counts — after the tool's own "Exit code N" line — so
|
|
11
|
+
* a command that runs bwrap itself and prints its errors among other output
|
|
12
|
+
* (2.16.2 release run: "bwrap: : No such file or directory" in a reaper
|
|
13
|
+
* repro) is the command's output, not a fault. */
|
|
7
14
|
export function isSandboxFault(m) {
|
|
8
|
-
|
|
15
|
+
if (m.tool !== 'Bash')
|
|
16
|
+
return false;
|
|
17
|
+
const lines = (m.text ?? '').trim().split('\n');
|
|
18
|
+
if (/^Exit code \d+$/.test(lines[0]))
|
|
19
|
+
lines.shift();
|
|
20
|
+
return lines.length === 1 && BWRAP_SETUP_FAILURE.test(lines[0]);
|
|
21
|
+
}
|
|
22
|
+
/** #331: a tool result that is the runner's tool-permission channel failing,
|
|
23
|
+
* not the tool: the CLI could not ask the SDK host whether the call may run,
|
|
24
|
+
* because the stdio stream it asks over is closed. Every later org tool,
|
|
25
|
+
* Read, and Bash call that needs a decision fails the same way, while Bash
|
|
26
|
+
* allowed by a static rule keeps working (2.16.1 release run). The stream
|
|
27
|
+
* never reopens in that process, so ending it is the recovery. */
|
|
28
|
+
export function isChannelFault(m) {
|
|
29
|
+
return /^Tool permission request failed: (?:\w+: )?Stream closed/.test(m.text ?? '');
|
|
9
30
|
}
|
|
10
31
|
/** Consecutive faulted Bash results in one process before it is ended. */
|
|
11
32
|
export const SANDBOX_FAULTS_BEFORE_RESTART = 2;
|
|
12
|
-
/** Process restarts per task session before the coordinator
|
|
33
|
+
/** Process restarts per task session and fault kind before the coordinator
|
|
34
|
+
* is told instead. */
|
|
13
35
|
export const MAX_SANDBOX_RESTARTS = 2;
|
|
36
|
+
const FAULTS = {
|
|
37
|
+
sandbox: {
|
|
38
|
+
before: SANDBOX_FAULTS_BEFORE_RESTART,
|
|
39
|
+
seen: 'Bash sandbox failed to start',
|
|
40
|
+
restarted: 'Bash sandbox kept failing',
|
|
41
|
+
exhausted: 'Bash sandbox still failing',
|
|
42
|
+
continuation: `Your shell's sandbox failed to start ("bwrap: …") on consecutive Bash calls, so your process was restarted with a fresh one. Continue your in-progress task from where you left off, re-running the command that failed.`,
|
|
43
|
+
subject: 'Bash sandbox keeps failing',
|
|
44
|
+
body: (role, key) => `The OS sandbox for "${role}"'s Bash tool failed to start on consecutive calls (${key}) and ${MAX_SANDBOX_RESTARTS} process restarts did not fix it, so its shell commands are not running. Reassign the work, or have an operator check the role's sandbox (policy.sandbox) before relying on its results.`,
|
|
45
|
+
},
|
|
46
|
+
// One is enough: the channel does not come back in the same process.
|
|
47
|
+
channel: {
|
|
48
|
+
before: 1,
|
|
49
|
+
seen: 'tool permission channel closed',
|
|
50
|
+
restarted: 'tool permission channel closed',
|
|
51
|
+
exhausted: 'tool permission channel still closing',
|
|
52
|
+
continuation: `Your tool permission channel closed ("Tool permission request failed: … Stream closed"), so your process was restarted with a fresh one. Continue your in-progress task from where you left off, re-running the tool call that failed — org tools such as org_send and org_task_done work again.`,
|
|
53
|
+
subject: 'Tool permission channel keeps closing',
|
|
54
|
+
body: (role, key) => `The tool permission channel of "${role}" closed mid-task (${key}) and ${MAX_SANDBOX_RESTARTS} process restarts did not fix it, so its org tools (org_send, org_task_done, org_task_block) and permission-checked tool calls are failing. Reassign the work, or have an operator restart the role before relying on its results.`,
|
|
55
|
+
},
|
|
56
|
+
};
|
|
14
57
|
/** Thrown out of the session's message loop to end the runner process. */
|
|
15
|
-
export class
|
|
58
|
+
export class ProcessFaultError extends Error {
|
|
16
59
|
sessionId;
|
|
17
|
-
|
|
18
|
-
|
|
60
|
+
kind;
|
|
61
|
+
constructor(sessionId, kind = 'sandbox') {
|
|
62
|
+
super(kind === 'sandbox'
|
|
63
|
+
? `sandbox failed to start on ${SANDBOX_FAULTS_BEFORE_RESTART} consecutive Bash calls`
|
|
64
|
+
: 'tool permission channel closed');
|
|
19
65
|
this.sessionId = sessionId;
|
|
20
|
-
this.
|
|
66
|
+
this.kind = kind;
|
|
67
|
+
this.name = 'ProcessFaultError';
|
|
21
68
|
}
|
|
22
69
|
}
|
|
23
|
-
/** Per role session loop: counts restarts per session key (task). */
|
|
24
|
-
export class
|
|
70
|
+
/** Per role session loop: counts restarts per session key (task) and kind. */
|
|
71
|
+
export class FaultRestarts {
|
|
25
72
|
s;
|
|
26
73
|
used = new Map();
|
|
27
74
|
surfaced = new Set();
|
|
@@ -30,56 +77,66 @@ export class SandboxRestarts {
|
|
|
30
77
|
}
|
|
31
78
|
/** One runner process's watcher for `key`. */
|
|
32
79
|
watch(key) {
|
|
33
|
-
|
|
80
|
+
const consecutive = { sandbox: 0, channel: 0 };
|
|
34
81
|
return {
|
|
35
82
|
observe: (m, sessionId) => {
|
|
36
|
-
if (m.type !== 'tool_result'
|
|
83
|
+
if (m.type !== 'tool_result')
|
|
37
84
|
return;
|
|
38
|
-
|
|
39
|
-
|
|
85
|
+
const kind = isSandboxFault(m)
|
|
86
|
+
? 'sandbox'
|
|
87
|
+
: isChannelFault(m)
|
|
88
|
+
? 'channel'
|
|
89
|
+
: undefined;
|
|
90
|
+
if (m.tool === 'Bash' && kind !== 'sandbox')
|
|
91
|
+
consecutive.sandbox = 0;
|
|
92
|
+
if (!kind)
|
|
40
93
|
return;
|
|
41
|
-
|
|
42
|
-
consecutive++;
|
|
94
|
+
const n = ++consecutive[kind];
|
|
43
95
|
this.s.bus.emit({
|
|
44
96
|
type: 'audit',
|
|
45
97
|
from: this.s.roleId,
|
|
46
|
-
reason:
|
|
47
|
-
msg:
|
|
48
|
-
data: {
|
|
98
|
+
reason: `${kind}-fault`,
|
|
99
|
+
msg: `${FAULTS[kind].seen}: ${(m.text ?? '').split('\n')[0].slice(0, 300)}`,
|
|
100
|
+
data: {
|
|
101
|
+
taskKey: key,
|
|
102
|
+
consecutive: n,
|
|
103
|
+
...(m.tool ? { tool: m.tool } : {}),
|
|
104
|
+
...(m.tool_use_id ? { call_id: m.tool_use_id } : {}),
|
|
105
|
+
},
|
|
49
106
|
});
|
|
50
|
-
if (
|
|
107
|
+
if (n < FAULTS[kind].before)
|
|
51
108
|
return;
|
|
52
|
-
consecutive = 0;
|
|
53
|
-
if ((this.used.get(key) ?? 0) < MAX_SANDBOX_RESTARTS)
|
|
54
|
-
throw new
|
|
55
|
-
this.surface(key);
|
|
109
|
+
consecutive[kind] = 0;
|
|
110
|
+
if ((this.used.get(`${kind}:${key}`) ?? 0) < MAX_SANDBOX_RESTARTS)
|
|
111
|
+
throw new ProcessFaultError(sessionId, kind);
|
|
112
|
+
this.surface(key, kind);
|
|
56
113
|
},
|
|
57
114
|
};
|
|
58
115
|
}
|
|
59
116
|
/** Called once the process is gone: records the restart and returns the
|
|
60
117
|
* message the restarted session opens with. */
|
|
61
|
-
restarted(key) {
|
|
62
|
-
const n = (this.used.get(key) ?? 0) + 1;
|
|
63
|
-
this.used.set(key
|
|
118
|
+
restarted(key, kind = 'sandbox') {
|
|
119
|
+
const n = (this.used.get(`${kind}:${key}`) ?? 0) + 1;
|
|
120
|
+
this.used.set(`${kind}:${key}`, n);
|
|
64
121
|
this.s.bus.emit({
|
|
65
122
|
type: 'status',
|
|
66
123
|
from: this.s.roleId,
|
|
67
|
-
reason:
|
|
68
|
-
msg:
|
|
124
|
+
reason: `${kind}-restart`,
|
|
125
|
+
msg: `${FAULTS[kind].restarted} — process restarted for ${key} (${n}/${MAX_SANDBOX_RESTARTS})`,
|
|
69
126
|
data: { taskKey: key, restarts: n, max: MAX_SANDBOX_RESTARTS },
|
|
70
127
|
});
|
|
71
|
-
return `${Mailbox.CONTINUE_PREFIX}
|
|
128
|
+
return `${Mailbox.CONTINUE_PREFIX} ${FAULTS[kind].continuation}`;
|
|
72
129
|
}
|
|
73
|
-
surface(key) {
|
|
74
|
-
if (this.surfaced.has(key))
|
|
130
|
+
surface(key, kind) {
|
|
131
|
+
if (this.surfaced.has(`${kind}:${key}`))
|
|
75
132
|
return;
|
|
76
|
-
this.surfaced.add(key);
|
|
133
|
+
this.surfaced.add(`${kind}:${key}`);
|
|
77
134
|
const { bus, roleId, coordinator, deliver } = this.s;
|
|
78
135
|
bus.emit({
|
|
79
136
|
type: 'audit',
|
|
80
137
|
from: roleId,
|
|
81
|
-
reason:
|
|
82
|
-
msg:
|
|
138
|
+
reason: `${kind}-fault-exhausted`,
|
|
139
|
+
msg: `${FAULTS[kind].exhausted} for ${key} after ${MAX_SANDBOX_RESTARTS} restarts${coordinator ? ` — told "${coordinator}"` : ''}`,
|
|
83
140
|
data: {
|
|
84
141
|
taskKey: key,
|
|
85
142
|
restarts: MAX_SANDBOX_RESTARTS,
|
|
@@ -88,7 +145,7 @@ export class SandboxRestarts {
|
|
|
88
145
|
});
|
|
89
146
|
if (!coordinator)
|
|
90
147
|
return;
|
|
91
|
-
deliver(roleId, coordinator,
|
|
148
|
+
deliver(roleId, coordinator, FAULTS[kind].subject, FAULTS[kind].body(roleId, key)).catch(() => { });
|
|
92
149
|
}
|
|
93
150
|
}
|
|
94
151
|
//# sourceMappingURL=sandbox-fault.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-fault.js","sourceRoot":"","sources":["../../../src/orgrt/sandbox-fault.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAIpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC
|
|
1
|
+
{"version":3,"file":"sandbox-fault.js","sourceRoot":"","sources":["../../../src/orgrt/sandbox-fault.ts"],"names":[],"mappings":"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"}
|