@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
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Org task matching: which role should own a task (`org_task` with
|
|
3
|
+
* `assignee: "auto"`) and which of a role's pool skills fit it, without a
|
|
4
|
+
* decision model.
|
|
5
|
+
*
|
|
6
|
+
* The keyword scorer drops stopwords, weighs each word by how rare it is
|
|
7
|
+
* among the candidates (a word every role mentions — "the", the org's shared
|
|
8
|
+
* rules skill, "worktree" — tells nothing apart), counts title words double
|
|
9
|
+
* and the title's leading verb (titles are imperative) double again, and
|
|
10
|
+
* requires a minimum score. Equal scores are broken by role specificity
|
|
11
|
+
* (deeper in the reporting tree, then the narrower description), never by
|
|
12
|
+
* the order roles are declared in; a tie that survives that is reported as
|
|
13
|
+
* ambiguous instead of being guessed.
|
|
14
|
+
*/
|
|
15
|
+
import { type PickOptions } from '../decision/jev.js';
|
|
16
|
+
import type { OrgDef, OrgRole } from './types.js';
|
|
17
|
+
/** How much of a task brief the pickers read. */
|
|
18
|
+
export declare const PICK_BRIEF_CHARS = 600;
|
|
19
|
+
/** The lowest keyword score that assigns a role / suggests a skill. */
|
|
20
|
+
export declare const MIN_ROLE_SCORE = 1.5;
|
|
21
|
+
export declare const MIN_SKILL_SCORE = 1.5;
|
|
22
|
+
export declare function matchTokens(text: string | undefined): string[];
|
|
23
|
+
export interface MatchDoc {
|
|
24
|
+
id: string;
|
|
25
|
+
/** Identity text (id, title / name): a hit here weighs 3. */
|
|
26
|
+
strong: string;
|
|
27
|
+
/** Descriptive text: a hit here weighs 1. */
|
|
28
|
+
weak: string;
|
|
29
|
+
}
|
|
30
|
+
export interface MatchScore {
|
|
31
|
+
id: string;
|
|
32
|
+
score: number;
|
|
33
|
+
matched: string[];
|
|
34
|
+
}
|
|
35
|
+
export interface TaskText {
|
|
36
|
+
title: string;
|
|
37
|
+
brief?: string;
|
|
38
|
+
}
|
|
39
|
+
/** Every doc with a positive score, highest first (equal scores keep input
|
|
40
|
+
* order — callers that must not favour order break ties themselves). */
|
|
41
|
+
export declare function scoreDocs(task: TaskText, docs: MatchDoc[]): MatchScore[];
|
|
42
|
+
/** A finished task as the prior reads it (an OrgTask row fits). */
|
|
43
|
+
export interface TaskOutcome {
|
|
44
|
+
title: string;
|
|
45
|
+
assignee: string;
|
|
46
|
+
status: string;
|
|
47
|
+
loadedSkills?: string[];
|
|
48
|
+
}
|
|
49
|
+
/** Observations a role/skill needs before its history moves a ranking. */
|
|
50
|
+
export declare const PRIOR_MIN_OBS = 3;
|
|
51
|
+
/** Largest relative move of the prior: factors lie in [1 - span, 1 + span]. */
|
|
52
|
+
export declare const PRIOR_SPAN = 0.15;
|
|
53
|
+
/** Beta(1,1)-smoothed success rate mapped to [1 - PRIOR_SPAN, 1 + PRIOR_SPAN];
|
|
54
|
+
* 1 below PRIOR_MIN_OBS outcomes. */
|
|
55
|
+
export declare function outcomeFactor(success: number, failure: number): number;
|
|
56
|
+
/** Per-role factor from how each role did on past tasks similar to `task`
|
|
57
|
+
* (done = success, failed = failure). */
|
|
58
|
+
export declare function roleOutcomePrior(task: TaskText, history: TaskOutcome[]): (roleId: string) => number;
|
|
59
|
+
/** Per-skill factor from the outcomes of the tasks that loaded it. */
|
|
60
|
+
export declare function skillOutcomePrior(history: TaskOutcome[]): (skill: string) => number;
|
|
61
|
+
type PickableRole = Pick<OrgRole, 'id' | 'title' | 'responsibilities'> & Partial<Pick<OrgRole, 'reports_to' | 'kind'>>;
|
|
62
|
+
/** Provenance of an 'auto' assignment, recorded on the task (OrgTask.pick). */
|
|
63
|
+
export interface TaskPick {
|
|
64
|
+
method: 'only' | 'jev' | 'keyword';
|
|
65
|
+
/** Jev's confidence in the chosen role. */
|
|
66
|
+
confidence?: number;
|
|
67
|
+
/** The chosen role's keyword score. */
|
|
68
|
+
score?: number;
|
|
69
|
+
/** The best candidates considered (Jev probability or keyword score). */
|
|
70
|
+
candidates: {
|
|
71
|
+
id: string;
|
|
72
|
+
score?: number;
|
|
73
|
+
}[];
|
|
74
|
+
}
|
|
75
|
+
export interface RolePick {
|
|
76
|
+
/** null = no role fits (or the best ones tie); the caller must name one. */
|
|
77
|
+
role: string | null;
|
|
78
|
+
method: 'only' | 'jev' | 'keyword' | 'none';
|
|
79
|
+
/** Jev's confidence in `role`. */
|
|
80
|
+
confidence?: number;
|
|
81
|
+
/** The keyword score of `role`. */
|
|
82
|
+
score?: number;
|
|
83
|
+
/** The best-scoring candidates, for the audit trail (at most 3). */
|
|
84
|
+
candidates: {
|
|
85
|
+
id: string;
|
|
86
|
+
score?: number;
|
|
87
|
+
}[];
|
|
88
|
+
reason?: 'no-candidates' | 'no-match' | 'ambiguous';
|
|
89
|
+
}
|
|
90
|
+
/** Keyword pick over `candidates`; `all` supplies the reporting tree. Roles
|
|
91
|
+
* that clear MIN_ROLE_SCORE rank by score × `prior` (roleOutcomePrior), so
|
|
92
|
+
* history breaks near-ties but cannot move a role past a 1.35× gap. */
|
|
93
|
+
export declare function keywordRole(task: TaskText, candidates: PickableRole[], all?: PickableRole[], load?: (roleId: string) => number, prior?: (roleId: string) => number): RolePick;
|
|
94
|
+
/** The role that should own a task: agent roles only, never the caller;
|
|
95
|
+
* Jev first (accepted answers only), then the keyword pick, which `history`
|
|
96
|
+
* (the org's finished tasks) biases toward roles that did well on similar
|
|
97
|
+
* ones. */
|
|
98
|
+
export declare function pickTaskRole(task: TaskText, roles: PickableRole[], opts?: PickOptions & {
|
|
99
|
+
caller?: string;
|
|
100
|
+
load?: (roleId: string) => number;
|
|
101
|
+
history?: TaskOutcome[];
|
|
102
|
+
}): Promise<RolePick>;
|
|
103
|
+
/** Up to `max` pool skills whose name/tags/description fit the task; those
|
|
104
|
+
* that clear MIN_SKILL_SCORE rank by score × `prior` (skillOutcomePrior). */
|
|
105
|
+
export declare function keywordSkills(task: TaskText, skills: {
|
|
106
|
+
id: string;
|
|
107
|
+
description?: string;
|
|
108
|
+
text?: string;
|
|
109
|
+
}[], max?: number, prior?: (skill: string) => number): string[];
|
|
110
|
+
/** Resolves `assignee: "auto"` on org_task (SessionOpts.pickAssignee).
|
|
111
|
+
* pickTaskRole (task-match.ts) falls back to a deterministic keyword match
|
|
112
|
+
* over role titles/responsibilities whenever no decision model answers, so
|
|
113
|
+
* this is wired unconditionally: gating it behind decisionModelConfigured()
|
|
114
|
+
* once left a literal "auto" assignee stranded as 'ready' forever
|
|
115
|
+
* (round1-issue1). Candidates are the agent roles other than the caller;
|
|
116
|
+
* `load` (open tasks per role) only breaks ties between interchangeable
|
|
117
|
+
* roles; `history` (the run's tasks) lets the keyword pick lean toward roles
|
|
118
|
+
* that finished similar tasks. */
|
|
119
|
+
export declare function resolveAutoAssignee(def: Pick<OrgDef, 'roles'>, load?: (roleId: string) => number, history?: () => TaskOutcome[]): (title: string, brief?: string, caller?: string) => Promise<RolePick>;
|
|
120
|
+
export {};
|
|
121
|
+
//# sourceMappingURL=task-match.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-match.d.ts","sourceRoot":"","sources":["../../../src/orgrt/task-match.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Org task matching: which role should own a task (`org_task` with
|
|
3
|
+
* `assignee: "auto"`) and which of a role's pool skills fit it, without a
|
|
4
|
+
* decision model.
|
|
5
|
+
*
|
|
6
|
+
* The keyword scorer drops stopwords, weighs each word by how rare it is
|
|
7
|
+
* among the candidates (a word every role mentions — "the", the org's shared
|
|
8
|
+
* rules skill, "worktree" — tells nothing apart), counts title words double
|
|
9
|
+
* and the title's leading verb (titles are imperative) double again, and
|
|
10
|
+
* requires a minimum score. Equal scores are broken by role specificity
|
|
11
|
+
* (deeper in the reporting tree, then the narrower description), never by
|
|
12
|
+
* the order roles are declared in; a tie that survives that is reported as
|
|
13
|
+
* ambiguous instead of being guessed.
|
|
14
|
+
*/
|
|
15
|
+
import { roleCatalog } from '../decision/catalogs.js';
|
|
16
|
+
import { acceptAgent, pickWithJev } from '../decision/jev.js';
|
|
17
|
+
import { agentRoles } from './endpoint-roles.js';
|
|
18
|
+
/** How much of a task brief the pickers read. */
|
|
19
|
+
export const PICK_BRIEF_CHARS = 600;
|
|
20
|
+
/** The lowest keyword score that assigns a role / suggests a skill. */
|
|
21
|
+
export const MIN_ROLE_SCORE = 1.5;
|
|
22
|
+
export const MIN_SKILL_SCORE = 1.5;
|
|
23
|
+
const STOPWORDS = new Set(('a an the and or but nor to of for in on at by with from into onto over under ' +
|
|
24
|
+
'as is are was were be been being it its this that these those there here ' +
|
|
25
|
+
'i me my we our you your he she they them their his her ' +
|
|
26
|
+
'do does did done doing have has had will would shall should can could may might must ' +
|
|
27
|
+
'not no yes if then than so such very just also only all any each every some more most ' +
|
|
28
|
+
'up out about after before again when where which who whom what why how ' +
|
|
29
|
+
'please task tasks work make sure new via per etc e g ie').split(' '));
|
|
30
|
+
/** Suffix stripping so "publisher"/"publish" and "releases"/"release" meet. */
|
|
31
|
+
function stem(t) {
|
|
32
|
+
if (t.length <= 3)
|
|
33
|
+
return t;
|
|
34
|
+
const s = t.replace(/(ings?|ers?|ed|es|e|s)$/, '');
|
|
35
|
+
return s.length >= 3 ? s : t.replace(/s$/, '');
|
|
36
|
+
}
|
|
37
|
+
export function matchTokens(text) {
|
|
38
|
+
return (String(text ?? '')
|
|
39
|
+
.toLowerCase()
|
|
40
|
+
.match(/[a-z0-9]+/g) ?? [])
|
|
41
|
+
.filter((t) => !STOPWORDS.has(t))
|
|
42
|
+
.map(stem);
|
|
43
|
+
}
|
|
44
|
+
/** Every doc with a positive score, highest first (equal scores keep input
|
|
45
|
+
* order — callers that must not favour order break ties themselves). */
|
|
46
|
+
export function scoreDocs(task, docs) {
|
|
47
|
+
const titleWords = matchTokens(task.title);
|
|
48
|
+
const title = new Set(titleWords);
|
|
49
|
+
// Task titles are imperative: the leading verb says what kind of work it is.
|
|
50
|
+
const verb = titleWords[0];
|
|
51
|
+
const brief = new Set(matchTokens(task.brief?.slice(0, PICK_BRIEF_CHARS)));
|
|
52
|
+
const query = new Set([...title, ...brief]);
|
|
53
|
+
if (query.size === 0 || docs.length === 0)
|
|
54
|
+
return [];
|
|
55
|
+
const sets = docs.map((d) => ({
|
|
56
|
+
id: d.id,
|
|
57
|
+
strong: new Set(matchTokens(d.strong)),
|
|
58
|
+
weak: new Set(matchTokens(d.weak)),
|
|
59
|
+
}));
|
|
60
|
+
const n = sets.length;
|
|
61
|
+
const idf = new Map();
|
|
62
|
+
for (const t of query) {
|
|
63
|
+
const df = sets.filter((s) => s.strong.has(t) || s.weak.has(t)).length;
|
|
64
|
+
if (df)
|
|
65
|
+
idf.set(t, Math.log((n + 1) / df));
|
|
66
|
+
}
|
|
67
|
+
return sets
|
|
68
|
+
.map((s) => {
|
|
69
|
+
let score = 0;
|
|
70
|
+
const matched = [];
|
|
71
|
+
for (const t of query) {
|
|
72
|
+
const hit = s.strong.has(t) ? 3 : s.weak.has(t) ? 1 : 0;
|
|
73
|
+
if (!hit)
|
|
74
|
+
continue;
|
|
75
|
+
score += hit * (t === verb ? 4 : title.has(t) ? 2 : 1) * (idf.get(t) ?? 0);
|
|
76
|
+
matched.push(t);
|
|
77
|
+
}
|
|
78
|
+
return { id: s.id, score: Math.round(score * 1000) / 1000, matched };
|
|
79
|
+
})
|
|
80
|
+
.filter((s) => s.score > 0)
|
|
81
|
+
.sort((a, b) => b.score - a.score);
|
|
82
|
+
}
|
|
83
|
+
/** Observations a role/skill needs before its history moves a ranking. */
|
|
84
|
+
export const PRIOR_MIN_OBS = 3;
|
|
85
|
+
/** Largest relative move of the prior: factors lie in [1 - span, 1 + span]. */
|
|
86
|
+
export const PRIOR_SPAN = 0.15;
|
|
87
|
+
/** Title-word overlap (Jaccard) that makes a past task "similar". */
|
|
88
|
+
const SIMILAR_JACCARD = 0.2;
|
|
89
|
+
/** Beta(1,1)-smoothed success rate mapped to [1 - PRIOR_SPAN, 1 + PRIOR_SPAN];
|
|
90
|
+
* 1 below PRIOR_MIN_OBS outcomes. */
|
|
91
|
+
export function outcomeFactor(success, failure) {
|
|
92
|
+
const n = success + failure;
|
|
93
|
+
if (n < PRIOR_MIN_OBS)
|
|
94
|
+
return 1;
|
|
95
|
+
return Math.round((1 + 2 * PRIOR_SPAN * ((1 + success) / (2 + n) - 0.5)) * 1000) / 1000;
|
|
96
|
+
}
|
|
97
|
+
function outcomeOf(status) {
|
|
98
|
+
return status === 'done' ? true : status === 'failed' ? false : null;
|
|
99
|
+
}
|
|
100
|
+
function tally(tasks, keys) {
|
|
101
|
+
const counts = new Map();
|
|
102
|
+
for (const t of tasks) {
|
|
103
|
+
const ok = outcomeOf(t.status);
|
|
104
|
+
if (ok === null)
|
|
105
|
+
continue;
|
|
106
|
+
for (const k of keys(t)) {
|
|
107
|
+
const c = counts.get(k) ?? { s: 0, f: 0 };
|
|
108
|
+
if (ok)
|
|
109
|
+
c.s++;
|
|
110
|
+
else
|
|
111
|
+
c.f++;
|
|
112
|
+
counts.set(k, c);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return (key) => {
|
|
116
|
+
const c = counts.get(key);
|
|
117
|
+
return c ? outcomeFactor(c.s, c.f) : 1;
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/** Per-role factor from how each role did on past tasks similar to `task`
|
|
121
|
+
* (done = success, failed = failure). */
|
|
122
|
+
export function roleOutcomePrior(task, history) {
|
|
123
|
+
const q = new Set(matchTokens(task.title));
|
|
124
|
+
const similar = history.filter((t) => {
|
|
125
|
+
const w = new Set(matchTokens(t.title));
|
|
126
|
+
const inter = [...w].filter((x) => q.has(x)).length;
|
|
127
|
+
const union = new Set([...w, ...q]).size;
|
|
128
|
+
return union > 0 && inter / union >= SIMILAR_JACCARD;
|
|
129
|
+
});
|
|
130
|
+
return tally(similar, (t) => [t.assignee]);
|
|
131
|
+
}
|
|
132
|
+
/** Per-skill factor from the outcomes of the tasks that loaded it. */
|
|
133
|
+
export function skillOutcomePrior(history) {
|
|
134
|
+
return tally(history, (t) => [...new Set(t.loadedSkills ?? [])]);
|
|
135
|
+
}
|
|
136
|
+
function depth(role, byId) {
|
|
137
|
+
let d = 0;
|
|
138
|
+
const seen = new Set();
|
|
139
|
+
for (let r = role; r.reports_to && !seen.has(r.id); d++) {
|
|
140
|
+
seen.add(r.id);
|
|
141
|
+
const up = byId.get(r.reports_to);
|
|
142
|
+
if (!up)
|
|
143
|
+
break;
|
|
144
|
+
r = up;
|
|
145
|
+
}
|
|
146
|
+
return d;
|
|
147
|
+
}
|
|
148
|
+
/** Keyword pick over `candidates`; `all` supplies the reporting tree. Roles
|
|
149
|
+
* that clear MIN_ROLE_SCORE rank by score × `prior` (roleOutcomePrior), so
|
|
150
|
+
* history breaks near-ties but cannot move a role past a 1.35× gap. */
|
|
151
|
+
export function keywordRole(task, candidates, all = candidates, load, prior) {
|
|
152
|
+
const scored = scoreDocs(task, candidates.map((r) => ({
|
|
153
|
+
id: r.id,
|
|
154
|
+
strong: `${r.id} ${r.title}`,
|
|
155
|
+
weak: (r.responsibilities ?? []).join('\n'),
|
|
156
|
+
})));
|
|
157
|
+
const top3 = scored.slice(0, 3).map(({ id, score }) => ({ id, score }));
|
|
158
|
+
const adjusted = scored
|
|
159
|
+
.filter((s) => s.score >= MIN_ROLE_SCORE)
|
|
160
|
+
.map((s) => ({ ...s, adj: Math.round(s.score * (prior?.(s.id) ?? 1) * 1000) / 1000 }))
|
|
161
|
+
.sort((a, b) => b.adj - a.adj);
|
|
162
|
+
const best = adjusted[0];
|
|
163
|
+
if (!best)
|
|
164
|
+
return { role: null, method: 'none', candidates: top3, reason: 'no-match' };
|
|
165
|
+
const byId = new Map(all.map((r) => [r.id, r]));
|
|
166
|
+
const tied = adjusted.filter((s) => s.adj === best.adj).map((s) => byId.get(s.id));
|
|
167
|
+
// Specificity first (deeper in the tree, then the narrower description);
|
|
168
|
+
// between interchangeable roles, the one with less open work.
|
|
169
|
+
const spec = (r) => ({
|
|
170
|
+
depth: depth(r, byId),
|
|
171
|
+
breadth: new Set(matchTokens(`${r.title} ${(r.responsibilities ?? []).join(' ')}`)).size,
|
|
172
|
+
load: load?.(r.id) ?? 0,
|
|
173
|
+
});
|
|
174
|
+
const ranked = tied
|
|
175
|
+
.map((r) => ({ r, ...spec(r) }))
|
|
176
|
+
.sort((a, b) => b.depth - a.depth || a.breadth - b.breadth || a.load - b.load);
|
|
177
|
+
const [first, second] = ranked;
|
|
178
|
+
if (second &&
|
|
179
|
+
second.depth === first.depth &&
|
|
180
|
+
second.breadth === first.breadth &&
|
|
181
|
+
second.load === first.load)
|
|
182
|
+
return { role: null, method: 'none', candidates: top3, reason: 'ambiguous' };
|
|
183
|
+
return { role: first.r.id, method: 'keyword', score: best.score, candidates: top3 };
|
|
184
|
+
}
|
|
185
|
+
/** The role that should own a task: agent roles only, never the caller;
|
|
186
|
+
* Jev first (accepted answers only), then the keyword pick, which `history`
|
|
187
|
+
* (the org's finished tasks) biases toward roles that did well on similar
|
|
188
|
+
* ones. */
|
|
189
|
+
export async function pickTaskRole(task, roles, opts = {}) {
|
|
190
|
+
const { caller, load, history, ...pickOpts } = opts;
|
|
191
|
+
const candidates = agentRoles(roles).filter((r) => r.id !== caller);
|
|
192
|
+
if (candidates.length === 0)
|
|
193
|
+
return { role: null, method: 'none', candidates: [], reason: 'no-candidates' };
|
|
194
|
+
if (candidates.length === 1)
|
|
195
|
+
return { role: candidates[0].id, method: 'only', candidates: [{ id: candidates[0].id }] };
|
|
196
|
+
const brief = task.brief?.slice(0, PICK_BRIEF_CHARS);
|
|
197
|
+
const picked = await pickWithJev(brief ? `${task.title}\n\n${brief}` : task.title, { agents: roleCatalog(candidates) }, {
|
|
198
|
+
...pickOpts,
|
|
199
|
+
agentInstructions: 'Which role in this organisation should own this task?',
|
|
200
|
+
});
|
|
201
|
+
const chosen = acceptAgent(picked?.agent, pickOpts.env);
|
|
202
|
+
if (chosen && candidates.some((r) => r.id === chosen)) {
|
|
203
|
+
return {
|
|
204
|
+
role: chosen,
|
|
205
|
+
method: 'jev',
|
|
206
|
+
confidence: picked?.agent?.confidence,
|
|
207
|
+
candidates: (picked?.agent?.ranked ?? [])
|
|
208
|
+
.slice(0, 3)
|
|
209
|
+
.map((r) => ({ id: r.id, score: r.probability })),
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
return keywordRole(task, candidates, roles, load, history?.length ? roleOutcomePrior(task, history) : undefined);
|
|
213
|
+
}
|
|
214
|
+
/** Up to `max` pool skills whose name/tags/description fit the task; those
|
|
215
|
+
* that clear MIN_SKILL_SCORE rank by score × `prior` (skillOutcomePrior). */
|
|
216
|
+
export function keywordSkills(task, skills, max = 2, prior) {
|
|
217
|
+
return scoreDocs(task, skills.map((s) => ({ id: s.id, strong: `${s.id} ${s.text ?? ''}`, weak: s.description ?? '' })))
|
|
218
|
+
.filter((s) => s.score >= MIN_SKILL_SCORE)
|
|
219
|
+
.map((s, i) => ({ id: s.id, i, adj: s.score * (prior?.(s.id) ?? 1) }))
|
|
220
|
+
.sort((a, b) => b.adj - a.adj || a.i - b.i)
|
|
221
|
+
.slice(0, max)
|
|
222
|
+
.map((s) => s.id);
|
|
223
|
+
}
|
|
224
|
+
/** Resolves `assignee: "auto"` on org_task (SessionOpts.pickAssignee).
|
|
225
|
+
* pickTaskRole (task-match.ts) falls back to a deterministic keyword match
|
|
226
|
+
* over role titles/responsibilities whenever no decision model answers, so
|
|
227
|
+
* this is wired unconditionally: gating it behind decisionModelConfigured()
|
|
228
|
+
* once left a literal "auto" assignee stranded as 'ready' forever
|
|
229
|
+
* (round1-issue1). Candidates are the agent roles other than the caller;
|
|
230
|
+
* `load` (open tasks per role) only breaks ties between interchangeable
|
|
231
|
+
* roles; `history` (the run's tasks) lets the keyword pick lean toward roles
|
|
232
|
+
* that finished similar tasks. */
|
|
233
|
+
export function resolveAutoAssignee(def, load, history) {
|
|
234
|
+
return (title, brief, caller) => pickTaskRole({ title, brief }, def.roles, {
|
|
235
|
+
caller,
|
|
236
|
+
load,
|
|
237
|
+
history: history?.(),
|
|
238
|
+
onError: (err) => process.stderr.write(`[org] decision model "${err.provider}" unavailable (${err.message})\n`),
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=task-match.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-match.js","sourceRoot":"","sources":["../../../src/orgrt/task-match.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How a task's assignee and skills were chosen, recorded on the task (and so
|
|
3
|
+
* in the checkpoint) and audited on the bus: an `assignee: "auto"` pick
|
|
4
|
+
* (OrgTask.assignedBy / OrgTask.pick), the skills its dispatch suggested
|
|
5
|
+
* (OrgTask.suggestedSkills) and which of those the assignee then loaded
|
|
6
|
+
* (OrgTask.loadedSkills). Re-exported by decisions.ts.
|
|
7
|
+
*/
|
|
8
|
+
import type { OrgDaemon, RunningOrg } from './daemon.js';
|
|
9
|
+
import { type OrgTask } from './task-dag.js';
|
|
10
|
+
import type { TaskPick } from './task-match.js';
|
|
11
|
+
/** A new task's provenance: explicit, or auto-assigned with its `pick`. */
|
|
12
|
+
export declare function recordTaskPick(running: RunningOrg, task: OrgTask, role: string, pick?: TaskPick): void;
|
|
13
|
+
/** The dispatch message for a task. When the assignee has on-demand skills,
|
|
14
|
+
* it also names the ones that fit THIS task (Jev when configured, otherwise
|
|
15
|
+
* a keyword match over the pool), records them on the task and audits the
|
|
16
|
+
* suggestion. That goes in the message, never the system prompt (ADR-O001
|
|
17
|
+
* D7: per-task guidance is not cached). Otherwise it is the plain line,
|
|
18
|
+
* returned synchronously. The promise never rejects. */
|
|
19
|
+
export declare function dispatchLine(daemon: OrgDaemon, running: RunningOrg, task: OrgTask): string | Promise<string>;
|
|
20
|
+
/** org_skill_load served `skill` to `role`: record it on the role's open
|
|
21
|
+
* tasks whose dispatch suggested it, and audit the load either way, so
|
|
22
|
+
* suggestion adherence can be measured from the bus or the checkpoint. */
|
|
23
|
+
export declare function recordSkillLoad(running: RunningOrg | undefined, role: string, skill: string): void;
|
|
24
|
+
/** Open (not finished) tasks assigned to `role` — the auto-assign tie-break. */
|
|
25
|
+
export declare function openTaskCount(running: RunningOrg | undefined, role: string): number;
|
|
26
|
+
//# sourceMappingURL=task-provenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-provenance.d.ts","sourceRoot":"","sources":["../../../src/orgrt/task-provenance.ts"],"names":[],"mappings":"AACA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,2EAA2E;AAC3E,wBAAgB,cAAc,CAC5B,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,QAAQ,GACd,IAAI,CAYN;AAED;;;;;yDAKyD;AACzD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,OAAO,GACZ,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+B1B;AAED;;2EAE2E;AAC3E,wBAAgB,eAAe,CAC7B,OAAO,EAAE,UAAU,GAAG,SAAS,EAC/B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,IAAI,CAgBN;AAED,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAInF"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
// packages/@monomind/cli/src/orgrt/task-provenance.ts
|
|
2
|
+
/**
|
|
3
|
+
* How a task's assignee and skills were chosen, recorded on the task (and so
|
|
4
|
+
* in the checkpoint) and audited on the bus: an `assignee: "auto"` pick
|
|
5
|
+
* (OrgTask.assignedBy / OrgTask.pick), the skills its dispatch suggested
|
|
6
|
+
* (OrgTask.suggestedSkills) and which of those the assignee then loaded
|
|
7
|
+
* (OrgTask.loadedSkills). Re-exported by decisions.ts.
|
|
8
|
+
*/
|
|
9
|
+
import { suggestTaskSkills } from '../decision/picks.js';
|
|
10
|
+
import { taskTag } from './loadouts.js';
|
|
11
|
+
import { roleSkillNames } from './skill-library.js';
|
|
12
|
+
import { isTerminalStatus } from './task-dag.js';
|
|
13
|
+
/** A new task's provenance: explicit, or auto-assigned with its `pick`. */
|
|
14
|
+
export function recordTaskPick(running, task, role, pick) {
|
|
15
|
+
task.assignedBy = pick ? 'auto' : 'explicit';
|
|
16
|
+
if (!pick)
|
|
17
|
+
return;
|
|
18
|
+
task.pick = pick;
|
|
19
|
+
running.bus.emit({
|
|
20
|
+
type: 'audit',
|
|
21
|
+
from: role,
|
|
22
|
+
to: task.assignee,
|
|
23
|
+
reason: 'task-auto-assigned',
|
|
24
|
+
msg: `task ${task.id} auto-assigned to ${task.assignee} (${pick.method})`,
|
|
25
|
+
data: { taskId: task.id, assignee: task.assignee, ...pick },
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/** The dispatch message for a task. When the assignee has on-demand skills,
|
|
29
|
+
* it also names the ones that fit THIS task (Jev when configured, otherwise
|
|
30
|
+
* a keyword match over the pool), records them on the task and audits the
|
|
31
|
+
* suggestion. That goes in the message, never the system prompt (ADR-O001
|
|
32
|
+
* D7: per-task guidance is not cached). Otherwise it is the plain line,
|
|
33
|
+
* returned synchronously. The promise never rejects. */
|
|
34
|
+
export function dispatchLine(daemon, running, task) {
|
|
35
|
+
// The brief rides the dispatch itself so it arrives with the task however
|
|
36
|
+
// late that is — a separate org_send can miss the coalescing window (decisions.ts).
|
|
37
|
+
const base = `${taskTag(task)} ${task.title}${task.brief ? `\n\n${task.brief}` : ''}`;
|
|
38
|
+
const role = running.def?.roles.find((r) => r.id === task.assignee);
|
|
39
|
+
if (!role)
|
|
40
|
+
return base;
|
|
41
|
+
const pinned = new Set(role.skills ?? []);
|
|
42
|
+
const pool = roleSkillNames(role, daemon.root).filter((n) => !pinned.has(n));
|
|
43
|
+
if (pool.length === 0)
|
|
44
|
+
return base;
|
|
45
|
+
let method = 'keyword';
|
|
46
|
+
return suggestTaskSkills(task.title, pool, daemon.root, {
|
|
47
|
+
brief: task.brief,
|
|
48
|
+
history: running.taskDag?.all(),
|
|
49
|
+
onMethod: (m) => {
|
|
50
|
+
method = m;
|
|
51
|
+
},
|
|
52
|
+
}).then((names) => {
|
|
53
|
+
if (!names.length)
|
|
54
|
+
return base;
|
|
55
|
+
task.suggestedSkills = names;
|
|
56
|
+
running.bus.emit({
|
|
57
|
+
type: 'audit',
|
|
58
|
+
from: task.assignee,
|
|
59
|
+
reason: 'task-skills-suggested',
|
|
60
|
+
msg: `task ${task.id}: suggested ${names.join(', ')} (${method})`,
|
|
61
|
+
data: { taskId: task.id, assignee: task.assignee, skills: names, method },
|
|
62
|
+
});
|
|
63
|
+
return `${base}\nSkills that fit this task (load with org_skill_load): ${names.join(', ')}`;
|
|
64
|
+
}, () => base);
|
|
65
|
+
}
|
|
66
|
+
/** org_skill_load served `skill` to `role`: record it on the role's open
|
|
67
|
+
* tasks whose dispatch suggested it, and audit the load either way, so
|
|
68
|
+
* suggestion adherence can be measured from the bus or the checkpoint. */
|
|
69
|
+
export function recordSkillLoad(running, role, skill) {
|
|
70
|
+
if (!running)
|
|
71
|
+
return;
|
|
72
|
+
const suggestedBy = [];
|
|
73
|
+
for (const t of running.taskDag?.all() ?? []) {
|
|
74
|
+
if (t.assignee !== role || isTerminalStatus(t.status))
|
|
75
|
+
continue;
|
|
76
|
+
if (!t.suggestedSkills?.includes(skill))
|
|
77
|
+
continue;
|
|
78
|
+
t.loadedSkills = [...new Set([...(t.loadedSkills ?? []), skill])];
|
|
79
|
+
suggestedBy.push(t.id);
|
|
80
|
+
}
|
|
81
|
+
running.bus.emit({
|
|
82
|
+
type: 'audit',
|
|
83
|
+
from: role,
|
|
84
|
+
reason: 'skill-loaded',
|
|
85
|
+
msg: `${role} loaded skill ${skill}${suggestedBy.length ? ` (suggested by ${suggestedBy.join(', ')})` : ''}`,
|
|
86
|
+
data: { skill, suggested: suggestedBy.length > 0, taskIds: suggestedBy },
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
/** Open (not finished) tasks assigned to `role` — the auto-assign tie-break. */
|
|
90
|
+
export function openTaskCount(running, role) {
|
|
91
|
+
return (running?.taskDag?.all() ?? []).filter((t) => t.assignee === role && !isTerminalStatus(t.status)).length;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=task-provenance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-provenance.js","sourceRoot":"","sources":["../../../src/orgrt/task-provenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The org_task tool: creates a DAG task, optionally with `assignee: "auto"`,
|
|
3
|
+
* which has SessionOpts.pickAssignee choose the role from the title and brief
|
|
4
|
+
* and records how it chose on the task (OrgTask.pick). Built by session.ts's
|
|
5
|
+
* buildOrgTools, in the same place in the tool list as before.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import type { OrgToolDef } from './agent-runner.js';
|
|
9
|
+
import type { SessionOpts } from './session.js';
|
|
10
|
+
import type { RolePick, TaskPick } from './task-match.js';
|
|
11
|
+
/** org_task's assignee value that asks for automatic role selection. */
|
|
12
|
+
export declare const AUTO_ASSIGNEE = "auto";
|
|
13
|
+
/** An `assignee: "auto"` pick: the chosen role with its provenance for
|
|
14
|
+
* OrgTask.pick, or the error telling the caller to name the assignee. */
|
|
15
|
+
export declare function autoAssignment(picked: RolePick): {
|
|
16
|
+
assignee: string;
|
|
17
|
+
pick: TaskPick;
|
|
18
|
+
} | {
|
|
19
|
+
error: string;
|
|
20
|
+
};
|
|
21
|
+
/** org_task, or undefined when the session has no createTask. `loadoutArg`
|
|
22
|
+
* and `briefArg` are shared with org_plan_graph. */
|
|
23
|
+
export declare function orgTaskTool(opts: SessionOpts, loadoutArg: Record<string, z.ZodType>, briefArg: z.ZodType): OrgToolDef | undefined;
|
|
24
|
+
//# sourceMappingURL=task-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-tools.d.ts","sourceRoot":"","sources":["../../../src/orgrt/task-tools.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE1D,wEAAwE;AACxE,eAAO,MAAM,aAAa,SAAS,CAAC;AAUpC;0EAC0E;AAC1E,wBAAgB,cAAc,CAC5B,MAAM,EAAE,QAAQ,GACf;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAmB1D;AAED;qDACqD;AACrD,wBAAgB,WAAW,CACzB,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EACrC,QAAQ,EAAE,CAAC,CAAC,OAAO,GAClB,UAAU,GAAG,SAAS,CA2CxB"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// packages/@monomind/cli/src/orgrt/task-tools.ts
|
|
2
|
+
/**
|
|
3
|
+
* The org_task tool: creates a DAG task, optionally with `assignee: "auto"`,
|
|
4
|
+
* which has SessionOpts.pickAssignee choose the role from the title and brief
|
|
5
|
+
* and records how it chose on the task (OrgTask.pick). Built by session.ts's
|
|
6
|
+
* buildOrgTools, in the same place in the tool list as before.
|
|
7
|
+
*/
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
import { MAX_TASK_BRIEF } from './task-dag.js';
|
|
10
|
+
/** org_task's assignee value that asks for automatic role selection. */
|
|
11
|
+
export const AUTO_ASSIGNEE = 'auto';
|
|
12
|
+
/** ADR-O001 D7: org_task's description suffix for an org with a catalog. */
|
|
13
|
+
function loadoutHelp(catalog) {
|
|
14
|
+
const list = catalog
|
|
15
|
+
.map((l) => (l.description ? `${l.name} (${l.description})` : l.name))
|
|
16
|
+
.join(', ');
|
|
17
|
+
return ` Optionally select a "loadout" — the named, stable specialisation the assignee's session is built with: ${list}. Select by kind of work; put everything specific to this task (which diff, criteria, what failed last time) in its "brief", not in the choice of loadout. The selection is recorded on the task and reused on every retry.`;
|
|
18
|
+
}
|
|
19
|
+
/** An `assignee: "auto"` pick: the chosen role with its provenance for
|
|
20
|
+
* OrgTask.pick, or the error telling the caller to name the assignee. */
|
|
21
|
+
export function autoAssignment(picked) {
|
|
22
|
+
if (!picked.role) {
|
|
23
|
+
const close = picked.candidates.map((c) => c.id).join(', ');
|
|
24
|
+
return {
|
|
25
|
+
error: picked.reason === 'ambiguous'
|
|
26
|
+
? `assignee "${AUTO_ASSIGNEE}": no role fits this task title better than the others (${close}) — name the assignee explicitly`
|
|
27
|
+
: `assignee "${AUTO_ASSIGNEE}": no role fits this task title — name the assignee explicitly`,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
assignee: picked.role,
|
|
32
|
+
pick: {
|
|
33
|
+
method: picked.method,
|
|
34
|
+
...(picked.confidence !== undefined ? { confidence: picked.confidence } : {}),
|
|
35
|
+
...(picked.score !== undefined ? { score: picked.score } : {}),
|
|
36
|
+
candidates: picked.candidates,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/** org_task, or undefined when the session has no createTask. `loadoutArg`
|
|
41
|
+
* and `briefArg` are shared with org_plan_graph. */
|
|
42
|
+
export function orgTaskTool(opts, loadoutArg, briefArg) {
|
|
43
|
+
const { role, createTask } = opts;
|
|
44
|
+
if (!createTask)
|
|
45
|
+
return undefined;
|
|
46
|
+
const catalog = opts.loadoutCatalog?.length ? opts.loadoutCatalog : undefined;
|
|
47
|
+
const text = (t) => ({ text: t });
|
|
48
|
+
return {
|
|
49
|
+
name: 'org_task',
|
|
50
|
+
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. Put the assignee's instructions — scope, acceptance criteria, paths, what failed last time — in \`brief\` (up to ${MAX_TASK_BRIEF} characters): it is delivered in the same message as the title whenever the task is dispatched, while a separate org_send can arrive after the assignee has already started.` +
|
|
51
|
+
(opts.pickAssignee
|
|
52
|
+
? ` Set assignee to "${AUTO_ASSIGNEE}" to have the role chosen for you from the task title and brief.`
|
|
53
|
+
: '') +
|
|
54
|
+
(catalog ? loadoutHelp(catalog) : ''),
|
|
55
|
+
schema: {
|
|
56
|
+
title: z.string(),
|
|
57
|
+
assignee: z.string(),
|
|
58
|
+
deps: z.array(z.string()).default([]),
|
|
59
|
+
brief: briefArg,
|
|
60
|
+
...loadoutArg,
|
|
61
|
+
},
|
|
62
|
+
handler: async (args) => {
|
|
63
|
+
let assignee = args.assignee;
|
|
64
|
+
let pick;
|
|
65
|
+
if (assignee === AUTO_ASSIGNEE && opts.pickAssignee) {
|
|
66
|
+
const picked = autoAssignment(await opts.pickAssignee(args.title, args.brief, role.id));
|
|
67
|
+
if ('error' in picked)
|
|
68
|
+
return text(JSON.stringify({ error: picked.error }));
|
|
69
|
+
({ assignee, pick } = picked);
|
|
70
|
+
}
|
|
71
|
+
return text(createTask(role.id, args.title, assignee, args.deps ?? [], args.loadout, args.brief, ...(pick ? [pick] : [])));
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=task-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-tools.js","sourceRoot":"","sources":["../../../src/orgrt/task-tools.ts"],"names":[],"mappings":"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"}
|