claudecode-omc 4.8.4 → 4.9.4
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-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +3 -3
- package/README.de.md +26 -0
- package/README.es.md +26 -0
- package/README.fr.md +26 -0
- package/README.it.md +26 -0
- package/README.ja.md +26 -0
- package/README.ko.md +26 -0
- package/README.md +80 -133
- package/README.pt.md +26 -0
- package/README.ru.md +26 -0
- package/README.tr.md +26 -0
- package/README.vi.md +26 -0
- package/README.zh.md +26 -0
- package/agents/analyst.md +1 -0
- package/agents/architect.md +1 -0
- package/agents/code-reviewer.md +1 -0
- package/agents/code-simplifier.md +1 -0
- package/agents/critic.md +1 -0
- package/agents/debugger.md +1 -0
- package/agents/designer.md +1 -0
- package/agents/document-specialist.md +1 -0
- package/agents/executor.md +1 -0
- package/agents/explore.md +21 -19
- package/agents/git-master.md +1 -0
- package/agents/planner.md +1 -0
- package/agents/qa-tester.md +1 -0
- package/agents/scientist.md +1 -0
- package/agents/security-reviewer.md +1 -0
- package/agents/test-engineer.md +1 -0
- package/agents/tracer.md +161 -0
- package/agents/verifier.md +21 -13
- package/agents/writer.md +1 -0
- package/bridge/cli.cjs +37707 -25194
- package/bridge/gyoshu_bridge.py +60 -15
- package/bridge/mcp-server.cjs +1323 -503
- package/bridge/runtime-cli.cjs +1220 -328
- package/bridge/team-bridge.cjs +140 -112
- package/bridge/team-mcp.cjs +325 -107
- package/bridge/team.js +2572 -1462
- package/dist/__tests__/agent-registry.test.js +5 -3
- package/dist/__tests__/agent-registry.test.js.map +1 -1
- package/dist/__tests__/auto-slash-aliases.test.js +149 -68
- package/dist/__tests__/auto-slash-aliases.test.js.map +1 -1
- package/dist/__tests__/auto-update.test.js +502 -3
- package/dist/__tests__/auto-update.test.js.map +1 -1
- package/dist/__tests__/background-cleanup-directory.test.d.ts +2 -0
- package/dist/__tests__/background-cleanup-directory.test.d.ts.map +1 -0
- package/dist/__tests__/background-cleanup-directory.test.js +57 -0
- package/dist/__tests__/background-cleanup-directory.test.js.map +1 -0
- package/dist/__tests__/bedrock-lm-suffix-hook.test.d.ts +24 -0
- package/dist/__tests__/bedrock-lm-suffix-hook.test.d.ts.map +1 -0
- package/dist/__tests__/bedrock-lm-suffix-hook.test.js +210 -0
- package/dist/__tests__/bedrock-lm-suffix-hook.test.js.map +1 -0
- package/dist/__tests__/cleanup-validation.test.js +5 -3
- package/dist/__tests__/cleanup-validation.test.js.map +1 -1
- package/dist/__tests__/context-guard-stop.test.js +20 -0
- package/dist/__tests__/context-guard-stop.test.js.map +1 -1
- package/dist/__tests__/context-safety.test.js +51 -22
- package/dist/__tests__/context-safety.test.js.map +1 -1
- package/dist/__tests__/deep-interview-provider-options.test.d.ts +2 -0
- package/dist/__tests__/deep-interview-provider-options.test.d.ts.map +1 -0
- package/dist/__tests__/deep-interview-provider-options.test.js +79 -0
- package/dist/__tests__/deep-interview-provider-options.test.js.map +1 -0
- package/dist/__tests__/delegation-enforcement-levels.test.js +4 -0
- package/dist/__tests__/delegation-enforcement-levels.test.js.map +1 -1
- package/dist/__tests__/delegation-enforcer.test.js +12 -0
- package/dist/__tests__/delegation-enforcer.test.js.map +1 -1
- package/dist/__tests__/doctor-conflicts.test.js +111 -24
- package/dist/__tests__/doctor-conflicts.test.js.map +1 -1
- package/dist/__tests__/featured-contributors-generator.test.d.ts +2 -0
- package/dist/__tests__/featured-contributors-generator.test.d.ts.map +1 -0
- package/dist/__tests__/featured-contributors-generator.test.js +118 -0
- package/dist/__tests__/featured-contributors-generator.test.js.map +1 -0
- package/dist/__tests__/hooks/learner/bridge.test.js +27 -1
- package/dist/__tests__/hooks/learner/bridge.test.js.map +1 -1
- package/dist/__tests__/hooks/learner/transliteration-map.test.d.ts +8 -0
- package/dist/__tests__/hooks/learner/transliteration-map.test.d.ts.map +1 -0
- package/dist/__tests__/hooks/learner/transliteration-map.test.js +183 -0
- package/dist/__tests__/hooks/learner/transliteration-map.test.js.map +1 -0
- package/dist/__tests__/hooks-command-escaping.test.d.ts +2 -0
- package/dist/__tests__/hooks-command-escaping.test.d.ts.map +1 -0
- package/dist/__tests__/hooks-command-escaping.test.js +41 -0
- package/dist/__tests__/hooks-command-escaping.test.js.map +1 -0
- package/dist/__tests__/hooks.test.js +13 -9
- package/dist/__tests__/hooks.test.js.map +1 -1
- package/dist/__tests__/hud/background-tasks.test.d.ts +2 -0
- package/dist/__tests__/hud/background-tasks.test.d.ts.map +1 -0
- package/dist/__tests__/hud/background-tasks.test.js +90 -0
- package/dist/__tests__/hud/background-tasks.test.js.map +1 -0
- package/dist/__tests__/hud/context.test.d.ts +2 -0
- package/dist/__tests__/hud/context.test.d.ts.map +1 -0
- package/dist/__tests__/hud/context.test.js +47 -0
- package/dist/__tests__/hud/context.test.js.map +1 -0
- package/dist/__tests__/hud/defaults.test.js +11 -0
- package/dist/__tests__/hud/defaults.test.js.map +1 -1
- package/dist/__tests__/hud/git.test.js +2 -1
- package/dist/__tests__/hud/git.test.js.map +1 -1
- package/dist/__tests__/hud/mission-board-state.test.js +32 -0
- package/dist/__tests__/hud/mission-board-state.test.js.map +1 -1
- package/dist/__tests__/hud/mission-board.test.js +1 -0
- package/dist/__tests__/hud/mission-board.test.js.map +1 -1
- package/dist/__tests__/hud/omc-state.test.d.ts +2 -0
- package/dist/__tests__/hud/omc-state.test.d.ts.map +1 -0
- package/dist/__tests__/hud/omc-state.test.js +123 -0
- package/dist/__tests__/hud/omc-state.test.js.map +1 -0
- package/dist/__tests__/hud/render-rate-limits-priority.test.js +1 -0
- package/dist/__tests__/hud/render-rate-limits-priority.test.js.map +1 -1
- package/dist/__tests__/hud/render.test.js +125 -0
- package/dist/__tests__/hud/render.test.js.map +1 -1
- package/dist/__tests__/hud/state.test.js +104 -47
- package/dist/__tests__/hud/state.test.js.map +1 -1
- package/dist/__tests__/hud/stdin.test.d.ts +2 -0
- package/dist/__tests__/hud/stdin.test.d.ts.map +1 -0
- package/dist/__tests__/hud/stdin.test.js +108 -0
- package/dist/__tests__/hud/stdin.test.js.map +1 -0
- package/dist/__tests__/hud/token-usage.test.d.ts +2 -0
- package/dist/__tests__/hud/token-usage.test.d.ts.map +1 -0
- package/dist/__tests__/hud/token-usage.test.js +143 -0
- package/dist/__tests__/hud/token-usage.test.js.map +1 -0
- package/dist/__tests__/hud/usage-api-lock.test.js +6 -3
- package/dist/__tests__/hud/usage-api-lock.test.js.map +1 -1
- package/dist/__tests__/hud/usage-api-stale.test.js +4 -2
- package/dist/__tests__/hud/usage-api-stale.test.js.map +1 -1
- package/dist/__tests__/hud/usage-api.test.js +128 -1
- package/dist/__tests__/hud/usage-api.test.js.map +1 -1
- package/dist/__tests__/hud/version-display.test.js +1 -0
- package/dist/__tests__/hud/version-display.test.js.map +1 -1
- package/dist/__tests__/hud/watch-mode-init.test.js +25 -3
- package/dist/__tests__/hud/watch-mode-init.test.js.map +1 -1
- package/dist/__tests__/hud-marketplace-resolution.test.js +25 -0
- package/dist/__tests__/hud-marketplace-resolution.test.js.map +1 -1
- package/dist/__tests__/hud-windows.test.js +11 -0
- package/dist/__tests__/hud-windows.test.js.map +1 -1
- package/dist/__tests__/installer-mcp-config.test.d.ts +2 -0
- package/dist/__tests__/installer-mcp-config.test.d.ts.map +1 -0
- package/dist/__tests__/installer-mcp-config.test.js +119 -0
- package/dist/__tests__/installer-mcp-config.test.js.map +1 -0
- package/dist/__tests__/installer-omc-reference.test.d.ts +2 -0
- package/dist/__tests__/installer-omc-reference.test.d.ts.map +1 -0
- package/dist/__tests__/installer-omc-reference.test.js +85 -0
- package/dist/__tests__/installer-omc-reference.test.js.map +1 -0
- package/dist/__tests__/job-management-sqlite.test.js +1 -1
- package/dist/__tests__/job-state-db.test.js +1 -1
- package/dist/__tests__/jobid-collision-safety.test.d.ts +10 -0
- package/dist/__tests__/jobid-collision-safety.test.d.ts.map +1 -0
- package/dist/__tests__/jobid-collision-safety.test.js +51 -0
- package/dist/__tests__/jobid-collision-safety.test.js.map +1 -0
- package/dist/__tests__/live-data.test.js +21 -0
- package/dist/__tests__/live-data.test.js.map +1 -1
- package/dist/__tests__/load-agent-prompt.test.js +10 -0
- package/dist/__tests__/load-agent-prompt.test.js.map +1 -1
- package/dist/__tests__/lsp-servers.test.js +14 -2
- package/dist/__tests__/lsp-servers.test.js.map +1 -1
- package/dist/__tests__/marketplace-metadata.test.d.ts +2 -0
- package/dist/__tests__/marketplace-metadata.test.d.ts.map +1 -0
- package/dist/__tests__/marketplace-metadata.test.js +20 -0
- package/dist/__tests__/marketplace-metadata.test.js.map +1 -0
- package/dist/__tests__/mcp-comm-inbox-dedup.test.d.ts +2 -0
- package/dist/__tests__/mcp-comm-inbox-dedup.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-comm-inbox-dedup.test.js +105 -0
- package/dist/__tests__/mcp-comm-inbox-dedup.test.js.map +1 -0
- package/dist/__tests__/mnemosyne/finder.test.js +10 -0
- package/dist/__tests__/mnemosyne/finder.test.js.map +1 -1
- package/dist/__tests__/mode-names-ralplan.test.d.ts +2 -0
- package/dist/__tests__/mode-names-ralplan.test.d.ts.map +1 -0
- package/dist/__tests__/mode-names-ralplan.test.js +31 -0
- package/dist/__tests__/mode-names-ralplan.test.js.map +1 -0
- package/dist/__tests__/model-routing-esm.test.d.ts +2 -0
- package/dist/__tests__/model-routing-esm.test.d.ts.map +1 -0
- package/dist/__tests__/model-routing-esm.test.js +26 -0
- package/dist/__tests__/model-routing-esm.test.js.map +1 -0
- package/dist/__tests__/notepad.test.js +20 -0
- package/dist/__tests__/notepad.test.js.map +1 -1
- package/dist/__tests__/omc-cli-rendering.test.d.ts +2 -0
- package/dist/__tests__/omc-cli-rendering.test.d.ts.map +1 -0
- package/dist/__tests__/omc-cli-rendering.test.js +33 -0
- package/dist/__tests__/omc-cli-rendering.test.js.map +1 -0
- package/dist/__tests__/omc-tools-server.test.js +5 -5
- package/dist/__tests__/outbox-reader-partial-lines.test.d.ts +2 -0
- package/dist/__tests__/outbox-reader-partial-lines.test.d.ts.map +1 -0
- package/dist/__tests__/outbox-reader-partial-lines.test.js +49 -0
- package/dist/__tests__/outbox-reader-partial-lines.test.js.map +1 -0
- package/dist/__tests__/package-dir-resolution-regression.test.js +30 -0
- package/dist/__tests__/package-dir-resolution-regression.test.js.map +1 -1
- package/dist/__tests__/pipeline-signal-regex-escape.test.d.ts +2 -0
- package/dist/__tests__/pipeline-signal-regex-escape.test.d.ts.map +1 -0
- package/dist/__tests__/pipeline-signal-regex-escape.test.js +32 -0
- package/dist/__tests__/pipeline-signal-regex-escape.test.js.map +1 -0
- package/dist/__tests__/plugin-setup-devpaths.test.d.ts +2 -0
- package/dist/__tests__/plugin-setup-devpaths.test.d.ts.map +1 -0
- package/dist/__tests__/plugin-setup-devpaths.test.js +47 -0
- package/dist/__tests__/plugin-setup-devpaths.test.js.map +1 -0
- package/dist/__tests__/pre-compact-cwd.test.js +1 -1
- package/dist/__tests__/pre-tool-enforcer.test.js +101 -2
- package/dist/__tests__/pre-tool-enforcer.test.js.map +1 -1
- package/dist/__tests__/project-memory-merge.test.js +17 -0
- package/dist/__tests__/project-memory-merge.test.js.map +1 -1
- package/dist/__tests__/providers/bitbucket.test.js +70 -56
- package/dist/__tests__/providers/bitbucket.test.js.map +1 -1
- package/dist/__tests__/providers/gitea.test.js +36 -0
- package/dist/__tests__/providers/gitea.test.js.map +1 -1
- package/dist/__tests__/purge-stale-cache.test.js +17 -2
- package/dist/__tests__/purge-stale-cache.test.js.map +1 -1
- package/dist/__tests__/rate-limit-wait/daemon-bootstrap.test.js +7 -3
- package/dist/__tests__/rate-limit-wait/daemon-bootstrap.test.js.map +1 -1
- package/dist/__tests__/rate-limit-wait/integration.test.js +9 -5
- package/dist/__tests__/rate-limit-wait/integration.test.js.map +1 -1
- package/dist/__tests__/rate-limit-wait/tmux-detector.test.js +11 -11
- package/dist/__tests__/rate-limit-wait/tmux-detector.test.js.map +1 -1
- package/dist/__tests__/repo-slug-dots.test.d.ts +2 -0
- package/dist/__tests__/repo-slug-dots.test.d.ts.map +1 -0
- package/dist/__tests__/repo-slug-dots.test.js +24 -0
- package/dist/__tests__/repo-slug-dots.test.js.map +1 -0
- package/dist/__tests__/routing-force-inherit.test.js +31 -0
- package/dist/__tests__/routing-force-inherit.test.js.map +1 -1
- package/dist/__tests__/runtime-task-orphan.test.d.ts +2 -0
- package/dist/__tests__/runtime-task-orphan.test.d.ts.map +1 -0
- package/dist/__tests__/runtime-task-orphan.test.js +103 -0
- package/dist/__tests__/runtime-task-orphan.test.js.map +1 -0
- package/dist/__tests__/session-start-script-context.test.js +85 -0
- package/dist/__tests__/session-start-script-context.test.js.map +1 -1
- package/dist/__tests__/session-start-timeout-cleanup.test.d.ts +2 -0
- package/dist/__tests__/session-start-timeout-cleanup.test.d.ts.map +1 -0
- package/dist/__tests__/session-start-timeout-cleanup.test.js +26 -0
- package/dist/__tests__/session-start-timeout-cleanup.test.js.map +1 -0
- package/dist/__tests__/session-summary-pid-tracking.test.d.ts +2 -0
- package/dist/__tests__/session-summary-pid-tracking.test.d.ts.map +1 -0
- package/dist/__tests__/session-summary-pid-tracking.test.js +107 -0
- package/dist/__tests__/session-summary-pid-tracking.test.js.map +1 -0
- package/dist/__tests__/setup-claude-md-script.test.d.ts +2 -0
- package/dist/__tests__/setup-claude-md-script.test.d.ts.map +1 -0
- package/dist/__tests__/setup-claude-md-script.test.js +292 -0
- package/dist/__tests__/setup-claude-md-script.test.js.map +1 -0
- package/dist/__tests__/shared-state-locking.test.d.ts +10 -0
- package/dist/__tests__/shared-state-locking.test.d.ts.map +1 -0
- package/dist/__tests__/shared-state-locking.test.js +61 -0
- package/dist/__tests__/shared-state-locking.test.js.map +1 -0
- package/dist/__tests__/skills.test.js +135 -17
- package/dist/__tests__/skills.test.js.map +1 -1
- package/dist/__tests__/slack-fallback-removal.test.d.ts +2 -0
- package/dist/__tests__/slack-fallback-removal.test.d.ts.map +1 -0
- package/dist/__tests__/slack-fallback-removal.test.js +16 -0
- package/dist/__tests__/slack-fallback-removal.test.js.map +1 -0
- package/dist/__tests__/ssrf-guard.test.js +12 -0
- package/dist/__tests__/ssrf-guard.test.js.map +1 -1
- package/dist/__tests__/team-ops-task-locking.test.d.ts +2 -0
- package/dist/__tests__/team-ops-task-locking.test.d.ts.map +1 -0
- package/dist/__tests__/team-ops-task-locking.test.js +66 -0
- package/dist/__tests__/team-ops-task-locking.test.js.map +1 -0
- package/dist/__tests__/team-server-validation.test.js +6 -5
- package/dist/__tests__/team-server-validation.test.js.map +1 -1
- package/dist/__tests__/team-status-failed-count.test.d.ts +2 -0
- package/dist/__tests__/team-status-failed-count.test.d.ts.map +1 -0
- package/dist/__tests__/team-status-failed-count.test.js +91 -0
- package/dist/__tests__/team-status-failed-count.test.js.map +1 -0
- package/dist/__tests__/team-status-tmux-provider.test.d.ts +2 -0
- package/dist/__tests__/team-status-tmux-provider.test.d.ts.map +1 -0
- package/dist/__tests__/team-status-tmux-provider.test.js +39 -0
- package/dist/__tests__/team-status-tmux-provider.test.js.map +1 -0
- package/dist/__tests__/tier0-docs-consistency.test.js +42 -0
- package/dist/__tests__/tier0-docs-consistency.test.js.map +1 -1
- package/dist/__tests__/tools/ast-tools.test.d.ts +2 -0
- package/dist/__tests__/tools/ast-tools.test.d.ts.map +1 -0
- package/dist/__tests__/tools/ast-tools.test.js +74 -0
- package/dist/__tests__/tools/ast-tools.test.js.map +1 -0
- package/dist/__tests__/visual-verdict-skill.test.d.ts +2 -0
- package/dist/__tests__/visual-verdict-skill.test.d.ts.map +1 -0
- package/dist/__tests__/visual-verdict-skill.test.js +26 -0
- package/dist/__tests__/visual-verdict-skill.test.js.map +1 -0
- package/dist/__tests__/webhook-timeout-cleanup.test.d.ts +2 -0
- package/dist/__tests__/webhook-timeout-cleanup.test.d.ts.map +1 -0
- package/dist/__tests__/webhook-timeout-cleanup.test.js +18 -0
- package/dist/__tests__/webhook-timeout-cleanup.test.js.map +1 -0
- package/dist/__tests__/worktree-metadata-locking.test.d.ts +2 -0
- package/dist/__tests__/worktree-metadata-locking.test.d.ts.map +1 -0
- package/dist/__tests__/worktree-metadata-locking.test.js +51 -0
- package/dist/__tests__/worktree-metadata-locking.test.js.map +1 -0
- package/dist/agents/definitions.d.ts +2 -1
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +6 -1
- package/dist/agents/definitions.js.map +1 -1
- package/dist/agents/index.d.ts +1 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +1 -0
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/tracer.d.ts +11 -0
- package/dist/agents/tracer.d.ts.map +1 -0
- package/dist/agents/tracer.js +40 -0
- package/dist/agents/tracer.js.map +1 -0
- package/dist/agents/utils.d.ts.map +1 -1
- package/dist/agents/utils.js +2 -0
- package/dist/agents/utils.js.map +1 -1
- package/dist/autoresearch/__tests__/contracts.test.d.ts +2 -0
- package/dist/autoresearch/__tests__/contracts.test.d.ts.map +1 -0
- package/dist/autoresearch/__tests__/contracts.test.js +90 -0
- package/dist/autoresearch/__tests__/contracts.test.js.map +1 -0
- package/dist/autoresearch/__tests__/runtime-parity-extra.test.d.ts +2 -0
- package/dist/autoresearch/__tests__/runtime-parity-extra.test.d.ts.map +1 -0
- package/dist/autoresearch/__tests__/runtime-parity-extra.test.js +352 -0
- package/dist/autoresearch/__tests__/runtime-parity-extra.test.js.map +1 -0
- package/dist/autoresearch/__tests__/runtime.test.d.ts +2 -0
- package/dist/autoresearch/__tests__/runtime.test.d.ts.map +1 -0
- package/dist/autoresearch/__tests__/runtime.test.js +210 -0
- package/dist/autoresearch/__tests__/runtime.test.js.map +1 -0
- package/dist/autoresearch/__tests__/setup-contract.test.d.ts +2 -0
- package/dist/autoresearch/__tests__/setup-contract.test.d.ts.map +1 -0
- package/dist/autoresearch/__tests__/setup-contract.test.js +57 -0
- package/dist/autoresearch/__tests__/setup-contract.test.js.map +1 -0
- package/dist/autoresearch/contracts.d.ts +31 -0
- package/dist/autoresearch/contracts.d.ts.map +1 -0
- package/dist/autoresearch/contracts.js +189 -0
- package/dist/autoresearch/contracts.js.map +1 -0
- package/dist/autoresearch/runtime.d.ts +137 -0
- package/dist/autoresearch/runtime.d.ts.map +1 -0
- package/dist/autoresearch/runtime.js +1103 -0
- package/dist/autoresearch/runtime.js.map +1 -0
- package/dist/autoresearch/setup-contract.d.ts +18 -0
- package/dist/autoresearch/setup-contract.d.ts.map +1 -0
- package/dist/autoresearch/setup-contract.js +96 -0
- package/dist/autoresearch/setup-contract.js.map +1 -0
- package/dist/cli/__tests__/ask.test.js +32 -130
- package/dist/cli/__tests__/ask.test.js.map +1 -1
- package/dist/cli/__tests__/autoresearch-guided.test.d.ts +2 -0
- package/dist/cli/__tests__/autoresearch-guided.test.d.ts.map +1 -0
- package/dist/cli/__tests__/autoresearch-guided.test.js +389 -0
- package/dist/cli/__tests__/autoresearch-guided.test.js.map +1 -0
- package/dist/cli/__tests__/autoresearch-intake.test.d.ts +2 -0
- package/dist/cli/__tests__/autoresearch-intake.test.d.ts.map +1 -0
- package/dist/cli/__tests__/autoresearch-intake.test.js +131 -0
- package/dist/cli/__tests__/autoresearch-intake.test.js.map +1 -0
- package/dist/cli/__tests__/autoresearch-setup-session.test.d.ts +2 -0
- package/dist/cli/__tests__/autoresearch-setup-session.test.d.ts.map +1 -0
- package/dist/cli/__tests__/autoresearch-setup-session.test.js +73 -0
- package/dist/cli/__tests__/autoresearch-setup-session.test.js.map +1 -0
- package/dist/cli/__tests__/autoresearch.test.d.ts +2 -0
- package/dist/cli/__tests__/autoresearch.test.d.ts.map +1 -0
- package/dist/cli/__tests__/autoresearch.test.js +148 -0
- package/dist/cli/__tests__/autoresearch.test.js.map +1 -0
- package/dist/cli/__tests__/hud-watch.test.d.ts +2 -0
- package/dist/cli/__tests__/hud-watch.test.d.ts.map +1 -0
- package/dist/cli/__tests__/hud-watch.test.js +56 -0
- package/dist/cli/__tests__/hud-watch.test.js.map +1 -0
- package/dist/cli/__tests__/launch.test.js +82 -5
- package/dist/cli/__tests__/launch.test.js.map +1 -1
- package/dist/cli/__tests__/team.test.js +44 -2
- package/dist/cli/__tests__/team.test.js.map +1 -1
- package/dist/cli/__tests__/tmux-utils.test.js +41 -1
- package/dist/cli/__tests__/tmux-utils.test.js.map +1 -1
- package/dist/cli/autoresearch-guided.d.ts +37 -0
- package/dist/cli/autoresearch-guided.d.ts.map +1 -0
- package/dist/cli/autoresearch-guided.js +312 -0
- package/dist/cli/autoresearch-guided.js.map +1 -0
- package/dist/cli/autoresearch-intake.d.ts +60 -0
- package/dist/cli/autoresearch-intake.d.ts.map +1 -0
- package/dist/cli/autoresearch-intake.js +325 -0
- package/dist/cli/autoresearch-intake.js.map +1 -0
- package/dist/cli/autoresearch-setup-session.d.ts +15 -0
- package/dist/cli/autoresearch-setup-session.d.ts.map +1 -0
- package/dist/cli/autoresearch-setup-session.js +133 -0
- package/dist/cli/autoresearch-setup-session.js.map +1 -0
- package/dist/cli/autoresearch.d.ts +19 -0
- package/dist/cli/autoresearch.d.ts.map +1 -0
- package/dist/cli/autoresearch.js +330 -0
- package/dist/cli/autoresearch.js.map +1 -0
- package/dist/cli/commands/__tests__/team.test.js +88 -1
- package/dist/cli/commands/__tests__/team.test.js.map +1 -1
- package/dist/cli/commands/doctor-conflicts.d.ts +2 -0
- package/dist/cli/commands/doctor-conflicts.d.ts.map +1 -1
- package/dist/cli/commands/doctor-conflicts.js +44 -1
- package/dist/cli/commands/doctor-conflicts.js.map +1 -1
- package/dist/cli/commands/ralphthon.d.ts +30 -0
- package/dist/cli/commands/ralphthon.d.ts.map +1 -0
- package/dist/cli/commands/ralphthon.js +361 -0
- package/dist/cli/commands/ralphthon.js.map +1 -0
- package/dist/cli/commands/team.d.ts +39 -0
- package/dist/cli/commands/team.d.ts.map +1 -1
- package/dist/cli/commands/team.js +178 -19
- package/dist/cli/commands/team.js.map +1 -1
- package/dist/cli/commands/teleport.js +5 -5
- package/dist/cli/commands/teleport.js.map +1 -1
- package/dist/cli/hud-watch.d.ts +15 -0
- package/dist/cli/hud-watch.d.ts.map +1 -0
- package/dist/cli/hud-watch.js +37 -0
- package/dist/cli/hud-watch.js.map +1 -0
- package/dist/cli/index.d.ts +0 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +39 -180
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/launch.d.ts +9 -1
- package/dist/cli/launch.d.ts.map +1 -1
- package/dist/cli/launch.js +25 -4
- package/dist/cli/launch.js.map +1 -1
- package/dist/cli/team.d.ts +1 -0
- package/dist/cli/team.d.ts.map +1 -1
- package/dist/cli/team.js +42 -54
- package/dist/cli/team.js.map +1 -1
- package/dist/cli/tmux-utils.d.ts +3 -2
- package/dist/cli/tmux-utils.d.ts.map +1 -1
- package/dist/cli/tmux-utils.js +16 -3
- package/dist/cli/tmux-utils.js.map +1 -1
- package/dist/config/__tests__/loader.test.js +121 -67
- package/dist/config/__tests__/loader.test.js.map +1 -1
- package/dist/config/__tests__/models.test.js +114 -1
- package/dist/config/__tests__/models.test.js.map +1 -1
- package/dist/config/__tests__/plan-output.test.d.ts +2 -0
- package/dist/config/__tests__/plan-output.test.d.ts.map +1 -0
- package/dist/config/__tests__/plan-output.test.js +41 -0
- package/dist/config/__tests__/plan-output.test.js.map +1 -0
- package/dist/config/index.d.ts +2 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +2 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/loader.d.ts +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +280 -215
- package/dist/config/loader.js.map +1 -1
- package/dist/config/models.d.ts +33 -0
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +57 -0
- package/dist/config/models.js.map +1 -1
- package/dist/config/plan-output.d.ts +12 -0
- package/dist/config/plan-output.d.ts.map +1 -0
- package/dist/config/plan-output.js +67 -0
- package/dist/config/plan-output.js.map +1 -0
- package/dist/constants/names.d.ts +1 -5
- package/dist/constants/names.d.ts.map +1 -1
- package/dist/constants/names.js +1 -6
- package/dist/constants/names.js.map +1 -1
- package/dist/features/auto-update.d.ts +8 -0
- package/dist/features/auto-update.d.ts.map +1 -1
- package/dist/features/auto-update.js +218 -24
- package/dist/features/auto-update.js.map +1 -1
- package/dist/features/boulder-state/storage.d.ts.map +1 -1
- package/dist/features/boulder-state/storage.js +15 -10
- package/dist/features/boulder-state/storage.js.map +1 -1
- package/dist/features/builtin-skills/runtime-guidance.d.ts +9 -0
- package/dist/features/builtin-skills/runtime-guidance.d.ts.map +1 -0
- package/dist/features/builtin-skills/runtime-guidance.js +35 -0
- package/dist/features/builtin-skills/runtime-guidance.js.map +1 -0
- package/dist/features/builtin-skills/skills.d.ts.map +1 -1
- package/dist/features/builtin-skills/skills.js +32 -7
- package/dist/features/builtin-skills/skills.js.map +1 -1
- package/dist/features/continuation-enforcement.d.ts.map +1 -1
- package/dist/features/continuation-enforcement.js +3 -2
- package/dist/features/continuation-enforcement.js.map +1 -1
- package/dist/features/delegation-categories/__tests__/index.test.d.ts.map +1 -0
- package/dist/features/delegation-categories/__tests__/index.test.js +19 -0
- package/dist/features/delegation-categories/__tests__/index.test.js.map +1 -0
- package/dist/features/delegation-enforcer.d.ts.map +1 -1
- package/dist/features/delegation-enforcer.js +62 -3
- package/dist/features/delegation-enforcer.js.map +1 -1
- package/dist/features/magic-keywords.d.ts +1 -1
- package/dist/features/magic-keywords.d.ts.map +1 -1
- package/dist/features/magic-keywords.js +42 -12
- package/dist/features/magic-keywords.js.map +1 -1
- package/dist/features/model-routing/__tests__/index.test.d.ts +2 -0
- package/dist/features/model-routing/__tests__/index.test.d.ts.map +1 -0
- package/dist/features/model-routing/__tests__/index.test.js +21 -0
- package/dist/features/model-routing/__tests__/index.test.js.map +1 -0
- package/dist/features/model-routing/index.d.ts.map +1 -1
- package/dist/features/model-routing/index.js +3 -2
- package/dist/features/model-routing/index.js.map +1 -1
- package/dist/features/model-routing/signals.js +1 -1
- package/dist/features/model-routing/signals.js.map +1 -1
- package/dist/features/model-routing/types.d.ts +1 -1
- package/dist/features/rate-limit-wait/daemon.d.ts.map +1 -1
- package/dist/features/rate-limit-wait/daemon.js +11 -22
- package/dist/features/rate-limit-wait/daemon.js.map +1 -1
- package/dist/features/rate-limit-wait/tmux-detector.js +6 -6
- package/dist/features/rate-limit-wait/tmux-detector.js.map +1 -1
- package/dist/features/rate-limit-wait/types.d.ts +3 -3
- package/dist/features/rate-limit-wait/types.d.ts.map +1 -1
- package/dist/features/state-manager/index.d.ts +2 -2
- package/dist/features/state-manager/index.d.ts.map +1 -1
- package/dist/features/state-manager/index.js +12 -8
- package/dist/features/state-manager/index.js.map +1 -1
- package/dist/features/state-manager/types.d.ts +2 -2
- package/dist/features/state-manager/types.d.ts.map +1 -1
- package/dist/features/state-manager/types.js +2 -2
- package/dist/features/state-manager/types.js.map +1 -1
- package/dist/features/task-decomposer/index.js +3 -1
- package/dist/features/task-decomposer/index.js.map +1 -1
- package/dist/features/verification/index.d.ts.map +1 -1
- package/dist/features/verification/index.js +4 -2
- package/dist/features/verification/index.js.map +1 -1
- package/dist/hooks/__tests__/background-process-guard.test.js +151 -3
- package/dist/hooks/__tests__/background-process-guard.test.js.map +1 -1
- package/dist/hooks/__tests__/bridge-openclaw.test.js +15 -0
- package/dist/hooks/__tests__/bridge-openclaw.test.js.map +1 -1
- package/dist/hooks/__tests__/bridge-routing.test.js +130 -0
- package/dist/hooks/__tests__/bridge-routing.test.js.map +1 -1
- package/dist/hooks/__tests__/bridge-team-worker-guard.test.js +1 -1
- package/dist/hooks/__tests__/bridge-team-worker-guard.test.js.map +1 -1
- package/dist/hooks/__tests__/bridge.test.js +101 -0
- package/dist/hooks/__tests__/bridge.test.js.map +1 -1
- package/dist/hooks/__tests__/team-worker-heartbeat.test.d.ts +10 -0
- package/dist/hooks/__tests__/team-worker-heartbeat.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/team-worker-heartbeat.test.js +87 -0
- package/dist/hooks/__tests__/team-worker-heartbeat.test.js.map +1 -0
- package/dist/hooks/auto-slash-command/executor.d.ts.map +1 -1
- package/dist/hooks/auto-slash-command/executor.js +134 -70
- package/dist/hooks/auto-slash-command/executor.js.map +1 -1
- package/dist/hooks/auto-slash-command/live-data.d.ts.map +1 -1
- package/dist/hooks/auto-slash-command/live-data.js +12 -0
- package/dist/hooks/auto-slash-command/live-data.js.map +1 -1
- package/dist/hooks/autopilot/__tests__/prompts.test.js +61 -52
- package/dist/hooks/autopilot/__tests__/prompts.test.js.map +1 -1
- package/dist/hooks/autopilot/__tests__/state.test.js +34 -34
- package/dist/hooks/autopilot/adapters/execution-adapter.d.ts +1 -1
- package/dist/hooks/autopilot/adapters/execution-adapter.d.ts.map +1 -1
- package/dist/hooks/autopilot/adapters/execution-adapter.js +6 -5
- package/dist/hooks/autopilot/adapters/execution-adapter.js.map +1 -1
- package/dist/hooks/autopilot/adapters/ralplan-adapter.d.ts +1 -1
- package/dist/hooks/autopilot/adapters/ralplan-adapter.d.ts.map +1 -1
- package/dist/hooks/autopilot/adapters/ralplan-adapter.js +8 -7
- package/dist/hooks/autopilot/adapters/ralplan-adapter.js.map +1 -1
- package/dist/hooks/autopilot/enforcement.d.ts +2 -2
- package/dist/hooks/autopilot/enforcement.d.ts.map +1 -1
- package/dist/hooks/autopilot/enforcement.js +98 -70
- package/dist/hooks/autopilot/enforcement.js.map +1 -1
- package/dist/hooks/autopilot/pipeline-types.d.ts +8 -6
- package/dist/hooks/autopilot/pipeline-types.d.ts.map +1 -1
- package/dist/hooks/autopilot/pipeline-types.js +9 -9
- package/dist/hooks/autopilot/pipeline-types.js.map +1 -1
- package/dist/hooks/autopilot/pipeline.d.ts +3 -3
- package/dist/hooks/autopilot/pipeline.d.ts.map +1 -1
- package/dist/hooks/autopilot/pipeline.js +51 -36
- package/dist/hooks/autopilot/pipeline.js.map +1 -1
- package/dist/hooks/autopilot/prompts.d.ts +4 -2
- package/dist/hooks/autopilot/prompts.d.ts.map +1 -1
- package/dist/hooks/autopilot/prompts.js +31 -24
- package/dist/hooks/autopilot/prompts.js.map +1 -1
- package/dist/hooks/autopilot/state.d.ts.map +1 -1
- package/dist/hooks/autopilot/state.js +21 -14
- package/dist/hooks/autopilot/state.js.map +1 -1
- package/dist/hooks/bridge.d.ts.map +1 -1
- package/dist/hooks/bridge.js +329 -71
- package/dist/hooks/bridge.js.map +1 -1
- package/dist/hooks/code-simplifier/index.d.ts +3 -2
- package/dist/hooks/code-simplifier/index.d.ts.map +1 -1
- package/dist/hooks/code-simplifier/index.js +15 -12
- package/dist/hooks/code-simplifier/index.js.map +1 -1
- package/dist/hooks/comment-checker/index.d.ts.map +1 -1
- package/dist/hooks/comment-checker/index.js +0 -17
- package/dist/hooks/comment-checker/index.js.map +1 -1
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +0 -8
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/keyword-detector/__tests__/index.test.js +304 -0
- package/dist/hooks/keyword-detector/__tests__/index.test.js.map +1 -1
- package/dist/hooks/keyword-detector/index.d.ts.map +1 -1
- package/dist/hooks/keyword-detector/index.js +46 -16
- package/dist/hooks/keyword-detector/index.js.map +1 -1
- package/dist/hooks/learner/bridge.d.ts +1 -0
- package/dist/hooks/learner/bridge.d.ts.map +1 -1
- package/dist/hooks/learner/bridge.js +30 -19
- package/dist/hooks/learner/bridge.js.map +1 -1
- package/dist/hooks/learner/constants.d.ts +2 -0
- package/dist/hooks/learner/constants.d.ts.map +1 -1
- package/dist/hooks/learner/constants.js +2 -0
- package/dist/hooks/learner/constants.js.map +1 -1
- package/dist/hooks/learner/finder.d.ts.map +1 -1
- package/dist/hooks/learner/finder.js +25 -20
- package/dist/hooks/learner/finder.js.map +1 -1
- package/dist/hooks/learner/transliteration-map.d.ts +30 -0
- package/dist/hooks/learner/transliteration-map.d.ts.map +1 -0
- package/dist/hooks/learner/transliteration-map.js +51 -0
- package/dist/hooks/learner/transliteration-map.js.map +1 -0
- package/dist/hooks/non-interactive-env/index.d.ts.map +1 -1
- package/dist/hooks/non-interactive-env/index.js +5 -5
- package/dist/hooks/non-interactive-env/index.js.map +1 -1
- package/dist/hooks/non-interactive-env/index.test.d.ts +2 -0
- package/dist/hooks/non-interactive-env/index.test.d.ts.map +1 -0
- package/dist/hooks/non-interactive-env/index.test.js +30 -0
- package/dist/hooks/non-interactive-env/index.test.js.map +1 -0
- package/dist/hooks/notepad/index.d.ts.map +1 -1
- package/dist/hooks/notepad/index.js +20 -6
- package/dist/hooks/notepad/index.js.map +1 -1
- package/dist/hooks/omc-orchestrator/index.d.ts.map +1 -1
- package/dist/hooks/omc-orchestrator/index.js +6 -2
- package/dist/hooks/omc-orchestrator/index.js.map +1 -1
- package/dist/hooks/permission-handler/__tests__/index.test.js +9 -1
- package/dist/hooks/permission-handler/__tests__/index.test.js.map +1 -1
- package/dist/hooks/permission-handler/index.d.ts +2 -0
- package/dist/hooks/permission-handler/index.d.ts.map +1 -1
- package/dist/hooks/permission-handler/index.js +67 -7
- package/dist/hooks/permission-handler/index.js.map +1 -1
- package/dist/hooks/persistent-mode/__tests__/idle-cooldown.test.js +79 -15
- package/dist/hooks/persistent-mode/__tests__/idle-cooldown.test.js.map +1 -1
- package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.js +1 -1
- package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.js.map +1 -1
- package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.js +36 -1
- package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.js.map +1 -1
- package/dist/hooks/persistent-mode/__tests__/team-ralplan-stop.test.js +113 -2
- package/dist/hooks/persistent-mode/__tests__/team-ralplan-stop.test.js.map +1 -1
- package/dist/hooks/persistent-mode/index.d.ts +1 -1
- package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
- package/dist/hooks/persistent-mode/index.js +50 -14
- package/dist/hooks/persistent-mode/index.js.map +1 -1
- package/dist/hooks/persistent-mode/session-isolation.test.js +20 -14
- package/dist/hooks/persistent-mode/session-isolation.test.js.map +1 -1
- package/dist/hooks/persistent-mode/stop-hook-blocking.test.js +173 -5
- package/dist/hooks/persistent-mode/stop-hook-blocking.test.js.map +1 -1
- package/dist/hooks/project-memory/__tests__/formatter.test.js +244 -191
- package/dist/hooks/project-memory/__tests__/formatter.test.js.map +1 -1
- package/dist/hooks/project-memory/__tests__/integration.test.js +185 -101
- package/dist/hooks/project-memory/__tests__/integration.test.js.map +1 -1
- package/dist/hooks/project-memory/__tests__/pre-compact.test.d.ts +5 -0
- package/dist/hooks/project-memory/__tests__/pre-compact.test.d.ts.map +1 -0
- package/dist/hooks/project-memory/__tests__/pre-compact.test.js +121 -0
- package/dist/hooks/project-memory/__tests__/pre-compact.test.js.map +1 -0
- package/dist/hooks/project-memory/formatter.d.ts +2 -2
- package/dist/hooks/project-memory/formatter.d.ts.map +1 -1
- package/dist/hooks/project-memory/formatter.js +167 -92
- package/dist/hooks/project-memory/formatter.js.map +1 -1
- package/dist/hooks/project-memory/hot-path-tracker.d.ts +3 -3
- package/dist/hooks/project-memory/hot-path-tracker.d.ts.map +1 -1
- package/dist/hooks/project-memory/hot-path-tracker.js +71 -27
- package/dist/hooks/project-memory/hot-path-tracker.js.map +1 -1
- package/dist/hooks/project-memory/index.d.ts +0 -20
- package/dist/hooks/project-memory/index.d.ts.map +1 -1
- package/dist/hooks/project-memory/index.js +37 -39
- package/dist/hooks/project-memory/index.js.map +1 -1
- package/dist/hooks/project-memory/pre-compact.d.ts.map +1 -1
- package/dist/hooks/project-memory/pre-compact.js +2 -1
- package/dist/hooks/project-memory/pre-compact.js.map +1 -1
- package/dist/hooks/project-memory/types.d.ts +11 -6
- package/dist/hooks/project-memory/types.d.ts.map +1 -1
- package/dist/hooks/ralph/verifier.d.ts.map +1 -1
- package/dist/hooks/ralph/verifier.js +2 -1
- package/dist/hooks/ralph/verifier.js.map +1 -1
- package/dist/hooks/recovery/session-recovery.d.ts.map +1 -1
- package/dist/hooks/recovery/session-recovery.js +7 -4
- package/dist/hooks/recovery/session-recovery.js.map +1 -1
- package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.js +28 -0
- package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.js.map +1 -1
- package/dist/hooks/session-end/__tests__/session-end-timeout.test.d.ts +2 -0
- package/dist/hooks/session-end/__tests__/session-end-timeout.test.d.ts.map +1 -0
- package/dist/hooks/session-end/__tests__/session-end-timeout.test.js +91 -0
- package/dist/hooks/session-end/__tests__/session-end-timeout.test.js.map +1 -0
- package/dist/hooks/session-end/__tests__/team-cleanup.test.d.ts +2 -0
- package/dist/hooks/session-end/__tests__/team-cleanup.test.d.ts.map +1 -0
- package/dist/hooks/session-end/__tests__/team-cleanup.test.js +150 -0
- package/dist/hooks/session-end/__tests__/team-cleanup.test.js.map +1 -0
- package/dist/hooks/session-end/index.d.ts +9 -0
- package/dist/hooks/session-end/index.d.ts.map +1 -1
- package/dist/hooks/session-end/index.js +178 -30
- package/dist/hooks/session-end/index.js.map +1 -1
- package/dist/hooks/setup/__tests__/windows-patch.test.js +8 -7
- package/dist/hooks/setup/__tests__/windows-patch.test.js.map +1 -1
- package/dist/hooks/setup/index.d.ts +1 -1
- package/dist/hooks/setup/index.js +3 -3
- package/dist/hooks/setup/index.js.map +1 -1
- package/dist/hooks/skill-bridge.cjs +48 -16
- package/dist/hooks/skill-state/__tests__/skill-state.test.js +74 -8
- package/dist/hooks/skill-state/__tests__/skill-state.test.js.map +1 -1
- package/dist/hooks/skill-state/index.d.ts +18 -4
- package/dist/hooks/skill-state/index.d.ts.map +1 -1
- package/dist/hooks/skill-state/index.js +43 -7
- package/dist/hooks/skill-state/index.js.map +1 -1
- package/dist/hooks/subagent-tracker/__tests__/index.test.js +42 -1
- package/dist/hooks/subagent-tracker/__tests__/index.test.js.map +1 -1
- package/dist/hooks/subagent-tracker/index.d.ts +5 -0
- package/dist/hooks/subagent-tracker/index.d.ts.map +1 -1
- package/dist/hooks/subagent-tracker/index.js +62 -49
- package/dist/hooks/subagent-tracker/index.js.map +1 -1
- package/dist/hooks/team-dispatch-hook.d.ts.map +1 -1
- package/dist/hooks/team-dispatch-hook.js +4 -2
- package/dist/hooks/team-dispatch-hook.js.map +1 -1
- package/dist/hooks/team-leader-nudge-hook.d.ts +6 -0
- package/dist/hooks/team-leader-nudge-hook.d.ts.map +1 -1
- package/dist/hooks/team-leader-nudge-hook.js +113 -15
- package/dist/hooks/team-leader-nudge-hook.js.map +1 -1
- package/dist/hooks/team-worker-hook.d.ts.map +1 -1
- package/dist/hooks/team-worker-hook.js +6 -3
- package/dist/hooks/team-worker-hook.js.map +1 -1
- package/dist/hud/background-cleanup.d.ts +3 -3
- package/dist/hud/background-cleanup.d.ts.map +1 -1
- package/dist/hud/background-cleanup.js +9 -9
- package/dist/hud/background-cleanup.js.map +1 -1
- package/dist/hud/background-tasks.d.ts +7 -0
- package/dist/hud/background-tasks.d.ts.map +1 -1
- package/dist/hud/background-tasks.js +83 -0
- package/dist/hud/background-tasks.js.map +1 -1
- package/dist/hud/elements/context.d.ts +12 -2
- package/dist/hud/elements/context.d.ts.map +1 -1
- package/dist/hud/elements/context.js +86 -35
- package/dist/hud/elements/context.js.map +1 -1
- package/dist/hud/elements/git.d.ts +4 -0
- package/dist/hud/elements/git.d.ts.map +1 -1
- package/dist/hud/elements/git.js +39 -9
- package/dist/hud/elements/git.js.map +1 -1
- package/dist/hud/elements/index.d.ts +1 -0
- package/dist/hud/elements/index.d.ts.map +1 -1
- package/dist/hud/elements/index.js +1 -0
- package/dist/hud/elements/index.js.map +1 -1
- package/dist/hud/elements/session-summary.d.ts +23 -0
- package/dist/hud/elements/session-summary.d.ts.map +1 -0
- package/dist/hud/elements/session-summary.js +23 -0
- package/dist/hud/elements/session-summary.js.map +1 -0
- package/dist/hud/elements/token-usage.d.ts +8 -0
- package/dist/hud/elements/token-usage.d.ts.map +1 -0
- package/dist/hud/elements/token-usage.js +24 -0
- package/dist/hud/elements/token-usage.js.map +1 -0
- package/dist/hud/index.d.ts +4 -0
- package/dist/hud/index.d.ts.map +1 -1
- package/dist/hud/index.js +165 -32
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/mission-board.d.ts.map +1 -1
- package/dist/hud/mission-board.js +8 -2
- package/dist/hud/mission-board.js.map +1 -1
- package/dist/hud/omc-state.d.ts +5 -5
- package/dist/hud/omc-state.d.ts.map +1 -1
- package/dist/hud/omc-state.js +20 -16
- package/dist/hud/omc-state.js.map +1 -1
- package/dist/hud/render.d.ts +1 -1
- package/dist/hud/render.d.ts.map +1 -1
- package/dist/hud/render.js +69 -54
- package/dist/hud/render.js.map +1 -1
- package/dist/hud/state.d.ts +3 -3
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +110 -57
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/stdin.d.ts +8 -1
- package/dist/hud/stdin.d.ts.map +1 -1
- package/dist/hud/stdin.js +60 -13
- package/dist/hud/stdin.js.map +1 -1
- package/dist/hud/transcript.d.ts.map +1 -1
- package/dist/hud/transcript.js +148 -35
- package/dist/hud/transcript.js.map +1 -1
- package/dist/hud/types.d.ts +30 -13
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/hud/types.js +24 -0
- package/dist/hud/types.js.map +1 -1
- package/dist/hud/usage-api.d.ts.map +1 -1
- package/dist/hud/usage-api.js +57 -24
- package/dist/hud/usage-api.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/installer/__tests__/claude-md-merge.test.js +23 -0
- package/dist/installer/__tests__/claude-md-merge.test.js.map +1 -1
- package/dist/installer/__tests__/hook-templates.test.js +50 -5
- package/dist/installer/__tests__/hook-templates.test.js.map +1 -1
- package/dist/installer/__tests__/mcp-registry.test.d.ts +2 -0
- package/dist/installer/__tests__/mcp-registry.test.d.ts.map +1 -0
- package/dist/installer/__tests__/mcp-registry.test.js +316 -0
- package/dist/installer/__tests__/mcp-registry.test.js.map +1 -0
- package/dist/installer/__tests__/session-start-template.test.d.ts +2 -0
- package/dist/installer/__tests__/session-start-template.test.d.ts.map +1 -0
- package/dist/installer/__tests__/session-start-template.test.js +95 -0
- package/dist/installer/__tests__/session-start-template.test.js.map +1 -0
- package/dist/installer/hooks.d.ts +0 -14
- package/dist/installer/hooks.d.ts.map +1 -1
- package/dist/installer/hooks.js +0 -33
- package/dist/installer/hooks.js.map +1 -1
- package/dist/installer/index.d.ts +2 -0
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +71 -7
- package/dist/installer/index.js.map +1 -1
- package/dist/installer/mcp-registry.d.ts +48 -0
- package/dist/installer/mcp-registry.d.ts.map +1 -0
- package/dist/installer/mcp-registry.js +453 -0
- package/dist/installer/mcp-registry.js.map +1 -0
- package/dist/interop/omx-team-state.d.ts +2 -0
- package/dist/interop/omx-team-state.d.ts.map +1 -1
- package/dist/interop/omx-team-state.js.map +1 -1
- package/dist/interop/shared-state.d.ts.map +1 -1
- package/dist/interop/shared-state.js +21 -18
- package/dist/interop/shared-state.js.map +1 -1
- package/dist/lib/__tests__/mode-state-io.test.js +58 -8
- package/dist/lib/__tests__/mode-state-io.test.js.map +1 -1
- package/dist/lib/__tests__/swallowed-error.test.d.ts +2 -0
- package/dist/lib/__tests__/swallowed-error.test.d.ts.map +1 -0
- package/dist/lib/__tests__/swallowed-error.test.js +19 -0
- package/dist/lib/__tests__/swallowed-error.test.js.map +1 -0
- package/dist/lib/featured-contributors.d.ts +54 -0
- package/dist/lib/featured-contributors.d.ts.map +1 -0
- package/dist/lib/featured-contributors.js +290 -0
- package/dist/lib/featured-contributors.js.map +1 -0
- package/dist/lib/file-lock.d.ts.map +1 -1
- package/dist/lib/file-lock.js +49 -51
- package/dist/lib/file-lock.js.map +1 -1
- package/dist/lib/mode-names.d.ts +1 -0
- package/dist/lib/mode-names.d.ts.map +1 -1
- package/dist/lib/mode-names.js +5 -0
- package/dist/lib/mode-names.js.map +1 -1
- package/dist/lib/mode-state-io.d.ts +2 -0
- package/dist/lib/mode-state-io.d.ts.map +1 -1
- package/dist/lib/mode-state-io.js +57 -11
- package/dist/lib/mode-state-io.js.map +1 -1
- package/dist/lib/project-memory-merge.d.ts.map +1 -1
- package/dist/lib/project-memory-merge.js +2 -0
- package/dist/lib/project-memory-merge.js.map +1 -1
- package/dist/lib/shared-memory.d.ts.map +1 -1
- package/dist/lib/shared-memory.js +40 -21
- package/dist/lib/shared-memory.js.map +1 -1
- package/dist/lib/swallowed-error.d.ts +4 -0
- package/dist/lib/swallowed-error.d.ts.map +1 -0
- package/dist/lib/swallowed-error.js +26 -0
- package/dist/lib/swallowed-error.js.map +1 -0
- package/dist/lib/worktree-paths.d.ts +1 -0
- package/dist/lib/worktree-paths.d.ts.map +1 -1
- package/dist/lib/worktree-paths.js +1 -0
- package/dist/lib/worktree-paths.js.map +1 -1
- package/dist/mcp/__tests__/prompt-injection.test.js +15 -0
- package/dist/mcp/__tests__/prompt-injection.test.js.map +1 -1
- package/dist/mcp/__tests__/standalone-shutdown.test.d.ts +2 -0
- package/dist/mcp/__tests__/standalone-shutdown.test.d.ts.map +1 -0
- package/dist/mcp/__tests__/standalone-shutdown.test.js +57 -0
- package/dist/mcp/__tests__/standalone-shutdown.test.js.map +1 -0
- package/dist/mcp/__tests__/team-cleanup.test.js +5 -5
- package/dist/mcp/job-management.d.ts +4 -0
- package/dist/mcp/job-management.d.ts.map +1 -1
- package/dist/mcp/job-management.js +30 -10
- package/dist/mcp/job-management.js.map +1 -1
- package/dist/mcp/omc-tools-server.d.ts +2 -0
- package/dist/mcp/omc-tools-server.d.ts.map +1 -1
- package/dist/mcp/omc-tools-server.js +10 -2
- package/dist/mcp/omc-tools-server.js.map +1 -1
- package/dist/mcp/prompt-injection.d.ts.map +1 -1
- package/dist/mcp/prompt-injection.js +25 -4
- package/dist/mcp/prompt-injection.js.map +1 -1
- package/dist/mcp/prompt-persistence.js +1 -1
- package/dist/mcp/prompt-persistence.js.map +1 -1
- package/dist/mcp/standalone-server.js +15 -4
- package/dist/mcp/standalone-server.js.map +1 -1
- package/dist/mcp/standalone-shutdown.d.ts +25 -0
- package/dist/mcp/standalone-shutdown.d.ts.map +1 -0
- package/dist/mcp/standalone-shutdown.js +68 -0
- package/dist/mcp/standalone-shutdown.js.map +1 -0
- package/dist/mcp/team-job-convergence.d.ts +0 -1
- package/dist/mcp/team-job-convergence.d.ts.map +1 -1
- package/dist/mcp/team-job-convergence.js +0 -9
- package/dist/mcp/team-job-convergence.js.map +1 -1
- package/dist/mcp/team-server.d.ts.map +1 -1
- package/dist/mcp/team-server.js +18 -11
- package/dist/mcp/team-server.js.map +1 -1
- package/dist/notifications/__tests__/reply-listener.test.js +57 -1
- package/dist/notifications/__tests__/reply-listener.test.js.map +1 -1
- package/dist/notifications/config.d.ts.map +1 -1
- package/dist/notifications/config.js +36 -3
- package/dist/notifications/config.js.map +1 -1
- package/dist/notifications/dispatcher.d.ts.map +1 -1
- package/dist/notifications/dispatcher.js +18 -14
- package/dist/notifications/dispatcher.js.map +1 -1
- package/dist/notifications/redact.d.ts.map +1 -1
- package/dist/notifications/redact.js +10 -1
- package/dist/notifications/redact.js.map +1 -1
- package/dist/notifications/reply-listener.d.ts +2 -0
- package/dist/notifications/reply-listener.d.ts.map +1 -1
- package/dist/notifications/reply-listener.js +17 -24
- package/dist/notifications/reply-listener.js.map +1 -1
- package/dist/notifications/session-registry.d.ts +1 -1
- package/dist/notifications/session-registry.d.ts.map +1 -1
- package/dist/notifications/session-registry.js +37 -43
- package/dist/notifications/session-registry.js.map +1 -1
- package/dist/notifications/types.d.ts +2 -0
- package/dist/notifications/types.d.ts.map +1 -1
- package/dist/planning/__tests__/artifacts.test.d.ts +2 -0
- package/dist/planning/__tests__/artifacts.test.d.ts.map +1 -0
- package/dist/planning/__tests__/artifacts.test.js +303 -0
- package/dist/planning/__tests__/artifacts.test.js.map +1 -0
- package/dist/planning/artifacts.d.ts +29 -0
- package/dist/planning/artifacts.d.ts.map +1 -0
- package/dist/planning/artifacts.js +144 -0
- package/dist/planning/artifacts.js.map +1 -0
- package/dist/platform/process-utils.d.ts +1 -0
- package/dist/platform/process-utils.d.ts.map +1 -1
- package/dist/platform/process-utils.js +7 -3
- package/dist/platform/process-utils.js.map +1 -1
- package/dist/providers/bitbucket.d.ts +2 -2
- package/dist/providers/bitbucket.d.ts.map +1 -1
- package/dist/providers/bitbucket.js +11 -12
- package/dist/providers/bitbucket.js.map +1 -1
- package/dist/providers/gitea.d.ts.map +1 -1
- package/dist/providers/gitea.js +8 -2
- package/dist/providers/gitea.js.map +1 -1
- package/dist/providers/index.d.ts +4 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +49 -26
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/types.d.ts +2 -2
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/ralphthon/__tests__/cli.test.d.ts +5 -0
- package/dist/ralphthon/__tests__/cli.test.d.ts.map +1 -0
- package/dist/ralphthon/__tests__/cli.test.js +103 -0
- package/dist/ralphthon/__tests__/cli.test.js.map +1 -0
- package/dist/ralphthon/__tests__/orchestrator.test.d.ts +5 -0
- package/dist/ralphthon/__tests__/orchestrator.test.d.ts.map +1 -0
- package/dist/ralphthon/__tests__/orchestrator.test.js +393 -0
- package/dist/ralphthon/__tests__/orchestrator.test.js.map +1 -0
- package/dist/ralphthon/__tests__/prd.test.d.ts +5 -0
- package/dist/ralphthon/__tests__/prd.test.d.ts.map +1 -0
- package/dist/ralphthon/__tests__/prd.test.js +454 -0
- package/dist/ralphthon/__tests__/prd.test.js.map +1 -0
- package/dist/ralphthon/deep-interview-prompt.d.ts +2 -0
- package/dist/ralphthon/deep-interview-prompt.d.ts.map +1 -0
- package/dist/ralphthon/deep-interview-prompt.js +20 -0
- package/dist/ralphthon/deep-interview-prompt.js.map +1 -0
- package/dist/ralphthon/index.d.ts +13 -0
- package/dist/ralphthon/index.d.ts.map +1 -0
- package/dist/ralphthon/index.js +14 -0
- package/dist/ralphthon/index.js.map +1 -0
- package/dist/ralphthon/orchestrator.d.ts +112 -0
- package/dist/ralphthon/orchestrator.d.ts.map +1 -0
- package/dist/ralphthon/orchestrator.js +453 -0
- package/dist/ralphthon/orchestrator.js.map +1 -0
- package/dist/ralphthon/prd.d.ts +111 -0
- package/dist/ralphthon/prd.d.ts.map +1 -0
- package/dist/ralphthon/prd.js +345 -0
- package/dist/ralphthon/prd.js.map +1 -0
- package/dist/ralphthon/types.d.ts +213 -0
- package/dist/ralphthon/types.d.ts.map +1 -0
- package/dist/ralphthon/types.js +21 -0
- package/dist/ralphthon/types.js.map +1 -0
- package/dist/shared/types.d.ts +25 -16
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/skills/__tests__/mingw-escape.test.js +15 -0
- package/dist/skills/__tests__/mingw-escape.test.js.map +1 -1
- package/dist/team/__tests__/allocation-policy.test.d.ts +2 -0
- package/dist/team/__tests__/allocation-policy.test.d.ts.map +1 -0
- package/dist/team/__tests__/allocation-policy.test.js +125 -0
- package/dist/team/__tests__/allocation-policy.test.js.map +1 -0
- package/dist/team/__tests__/api-interop.cleanup.test.d.ts +2 -0
- package/dist/team/__tests__/api-interop.cleanup.test.d.ts.map +1 -0
- package/dist/team/__tests__/api-interop.cleanup.test.js +129 -0
- package/dist/team/__tests__/api-interop.cleanup.test.js.map +1 -0
- package/dist/team/__tests__/api-interop.cwd-resolution.test.js +22 -0
- package/dist/team/__tests__/api-interop.cwd-resolution.test.js.map +1 -1
- package/dist/team/__tests__/api-interop.dispatch.test.js +59 -0
- package/dist/team/__tests__/api-interop.dispatch.test.js.map +1 -1
- package/dist/team/__tests__/audit-log.test.js +0 -1
- package/dist/team/__tests__/audit-log.test.js.map +1 -1
- package/dist/team/__tests__/bridge-integration.test.js.map +1 -1
- package/dist/team/__tests__/events.swallowed-error.test.d.ts +2 -0
- package/dist/team/__tests__/events.swallowed-error.test.d.ts.map +1 -0
- package/dist/team/__tests__/events.swallowed-error.test.js +33 -0
- package/dist/team/__tests__/events.swallowed-error.test.js.map +1 -0
- package/dist/team/__tests__/followup-planner.test.d.ts +2 -0
- package/dist/team/__tests__/followup-planner.test.d.ts.map +1 -0
- package/dist/team/__tests__/followup-planner.test.js +197 -0
- package/dist/team/__tests__/followup-planner.test.js.map +1 -0
- package/dist/team/__tests__/governance-enforcement.test.d.ts +2 -0
- package/dist/team/__tests__/governance-enforcement.test.d.ts.map +1 -0
- package/dist/team/__tests__/governance-enforcement.test.js +138 -0
- package/dist/team/__tests__/governance-enforcement.test.js.map +1 -0
- package/dist/team/__tests__/governance.test.d.ts +2 -0
- package/dist/team/__tests__/governance.test.d.ts.map +1 -0
- package/dist/team/__tests__/governance.test.js +38 -0
- package/dist/team/__tests__/governance.test.js.map +1 -0
- package/dist/team/__tests__/idle-nudge.test.js +9 -0
- package/dist/team/__tests__/idle-nudge.test.js.map +1 -1
- package/dist/team/__tests__/leader-nudge-guidance.test.d.ts +2 -0
- package/dist/team/__tests__/leader-nudge-guidance.test.d.ts.map +1 -0
- package/dist/team/__tests__/leader-nudge-guidance.test.js +37 -0
- package/dist/team/__tests__/leader-nudge-guidance.test.js.map +1 -0
- package/dist/team/__tests__/lifecycle-profile.test.d.ts +2 -0
- package/dist/team/__tests__/lifecycle-profile.test.d.ts.map +1 -0
- package/dist/team/__tests__/lifecycle-profile.test.js +46 -0
- package/dist/team/__tests__/lifecycle-profile.test.js.map +1 -0
- package/dist/team/__tests__/model-contract.test.js +84 -3
- package/dist/team/__tests__/model-contract.test.js.map +1 -1
- package/dist/team/__tests__/phase1-foundation.test.d.ts +2 -0
- package/dist/team/__tests__/phase1-foundation.test.d.ts.map +1 -0
- package/dist/team/__tests__/phase1-foundation.test.js +151 -0
- package/dist/team/__tests__/phase1-foundation.test.js.map +1 -0
- package/dist/team/__tests__/role-router.test.d.ts +2 -0
- package/dist/team/__tests__/role-router.test.d.ts.map +1 -0
- package/dist/team/__tests__/role-router.test.js +122 -0
- package/dist/team/__tests__/role-router.test.js.map +1 -0
- package/dist/team/__tests__/runtime-prompt-mode.test.js +4 -1
- package/dist/team/__tests__/runtime-prompt-mode.test.js.map +1 -1
- package/dist/team/__tests__/runtime-v2.dispatch.test.js +114 -6
- package/dist/team/__tests__/runtime-v2.dispatch.test.js.map +1 -1
- package/dist/team/__tests__/runtime-v2.monitor.test.js +45 -0
- package/dist/team/__tests__/runtime-v2.monitor.test.js.map +1 -1
- package/dist/team/__tests__/runtime-v2.shutdown-pane-cleanup.test.d.ts +2 -0
- package/dist/team/__tests__/runtime-v2.shutdown-pane-cleanup.test.d.ts.map +1 -0
- package/dist/team/__tests__/runtime-v2.shutdown-pane-cleanup.test.js +110 -0
- package/dist/team/__tests__/runtime-v2.shutdown-pane-cleanup.test.js.map +1 -0
- package/dist/team/__tests__/scaling.test.d.ts +2 -0
- package/dist/team/__tests__/scaling.test.d.ts.map +1 -0
- package/dist/team/__tests__/scaling.test.js +44 -0
- package/dist/team/__tests__/scaling.test.js.map +1 -0
- package/dist/team/__tests__/shell-affinity.test.d.ts +2 -0
- package/dist/team/__tests__/shell-affinity.test.d.ts.map +1 -0
- package/dist/team/__tests__/shell-affinity.test.js +98 -0
- package/dist/team/__tests__/shell-affinity.test.js.map +1 -0
- package/dist/team/__tests__/state-paths.test.js +4 -1
- package/dist/team/__tests__/state-paths.test.js.map +1 -1
- package/dist/team/__tests__/task-file-ops.test.js +6 -4
- package/dist/team/__tests__/task-file-ops.test.js.map +1 -1
- package/dist/team/__tests__/team-leader-nudge-hook.logging.test.d.ts +2 -0
- package/dist/team/__tests__/team-leader-nudge-hook.logging.test.d.ts.map +1 -0
- package/dist/team/__tests__/team-leader-nudge-hook.logging.test.js +63 -0
- package/dist/team/__tests__/team-leader-nudge-hook.logging.test.js.map +1 -0
- package/dist/team/__tests__/team-leader-nudge-hook.test.d.ts +2 -0
- package/dist/team/__tests__/team-leader-nudge-hook.test.d.ts.map +1 -0
- package/dist/team/__tests__/team-leader-nudge-hook.test.js +90 -0
- package/dist/team/__tests__/team-leader-nudge-hook.test.js.map +1 -0
- package/dist/team/__tests__/tmux-comm.test.js +5 -4
- package/dist/team/__tests__/tmux-comm.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.create-team.test.js +46 -2
- package/dist/team/__tests__/tmux-session.create-team.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.kill-team-session.test.js +45 -13
- package/dist/team/__tests__/tmux-session.kill-team-session.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +50 -58
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/unified-team.test.js.map +1 -1
- package/dist/team/__tests__/worker-bootstrap.test.js +50 -5
- package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
- package/dist/team/__tests__/worker-canonicalization.test.d.ts +2 -0
- package/dist/team/__tests__/worker-canonicalization.test.d.ts.map +1 -0
- package/dist/team/__tests__/worker-canonicalization.test.js +35 -0
- package/dist/team/__tests__/worker-canonicalization.test.js.map +1 -0
- package/dist/team/__tests__/worker-health.test.js.map +1 -1
- package/dist/team/__tests__/worker-restart.test.js +3 -1
- package/dist/team/__tests__/worker-restart.test.js.map +1 -1
- package/dist/team/allocation-policy.d.ts +34 -0
- package/dist/team/allocation-policy.d.ts.map +1 -0
- package/dist/team/allocation-policy.js +92 -0
- package/dist/team/allocation-policy.js.map +1 -0
- package/dist/team/api-interop.d.ts +1 -1
- package/dist/team/api-interop.d.ts.map +1 -1
- package/dist/team/api-interop.js +51 -6
- package/dist/team/api-interop.js.map +1 -1
- package/dist/team/audit-log.d.ts.map +1 -1
- package/dist/team/audit-log.js +3 -2
- package/dist/team/audit-log.js.map +1 -1
- package/dist/team/events.d.ts.map +1 -1
- package/dist/team/events.js +6 -4
- package/dist/team/events.js.map +1 -1
- package/dist/team/followup-planner.d.ts +32 -0
- package/dist/team/followup-planner.d.ts.map +1 -0
- package/dist/team/followup-planner.js +82 -0
- package/dist/team/followup-planner.js.map +1 -0
- package/dist/team/git-worktree.d.ts.map +1 -1
- package/dist/team/git-worktree.js +20 -10
- package/dist/team/git-worktree.js.map +1 -1
- package/dist/team/governance.d.ts +18 -0
- package/dist/team/governance.d.ts.map +1 -0
- package/dist/team/governance.js +68 -0
- package/dist/team/governance.js.map +1 -0
- package/dist/team/index.d.ts +2 -1
- package/dist/team/index.d.ts.map +1 -1
- package/dist/team/index.js +1 -0
- package/dist/team/index.js.map +1 -1
- package/dist/team/leader-nudge-guidance.d.ts +23 -0
- package/dist/team/leader-nudge-guidance.d.ts.map +1 -0
- package/dist/team/leader-nudge-guidance.js +44 -0
- package/dist/team/leader-nudge-guidance.js.map +1 -0
- package/dist/team/mcp-comm.d.ts.map +1 -1
- package/dist/team/mcp-comm.js +17 -3
- package/dist/team/mcp-comm.js.map +1 -1
- package/dist/team/mcp-team-bridge.d.ts.map +1 -1
- package/dist/team/mcp-team-bridge.js +11 -48
- package/dist/team/mcp-team-bridge.js.map +1 -1
- package/dist/team/merge-coordinator.d.ts +3 -1
- package/dist/team/merge-coordinator.d.ts.map +1 -1
- package/dist/team/merge-coordinator.js +27 -5
- package/dist/team/merge-coordinator.js.map +1 -1
- package/dist/team/model-contract.d.ts +17 -0
- package/dist/team/model-contract.d.ts.map +1 -1
- package/dist/team/model-contract.js +49 -2
- package/dist/team/model-contract.js.map +1 -1
- package/dist/team/monitor.d.ts.map +1 -1
- package/dist/team/monitor.js +69 -2
- package/dist/team/monitor.js.map +1 -1
- package/dist/team/outbox-reader.d.ts.map +1 -1
- package/dist/team/outbox-reader.js +13 -10
- package/dist/team/outbox-reader.js.map +1 -1
- package/dist/team/phase-controller.js +2 -2
- package/dist/team/phase-controller.js.map +1 -1
- package/dist/team/role-router.d.ts +36 -0
- package/dist/team/role-router.d.ts.map +1 -0
- package/dist/team/role-router.js +215 -0
- package/dist/team/role-router.js.map +1 -0
- package/dist/team/runtime-cli.d.ts.map +1 -1
- package/dist/team/runtime-cli.js +35 -0
- package/dist/team/runtime-cli.js.map +1 -1
- package/dist/team/runtime-v2.d.ts +1 -0
- package/dist/team/runtime-v2.d.ts.map +1 -1
- package/dist/team/runtime-v2.js +164 -49
- package/dist/team/runtime-v2.js.map +1 -1
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +29 -15
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/scaling.d.ts.map +1 -1
- package/dist/team/scaling.js +12 -3
- package/dist/team/scaling.js.map +1 -1
- package/dist/team/state/tasks.js +1 -1
- package/dist/team/state/tasks.js.map +1 -1
- package/dist/team/state-paths.js +2 -2
- package/dist/team/state-paths.js.map +1 -1
- package/dist/team/task-file-ops.d.ts.map +1 -1
- package/dist/team/task-file-ops.js +3 -43
- package/dist/team/task-file-ops.js.map +1 -1
- package/dist/team/task-router.d.ts.map +1 -1
- package/dist/team/task-router.js +31 -1
- package/dist/team/task-router.js.map +1 -1
- package/dist/team/team-ops.d.ts.map +1 -1
- package/dist/team/team-ops.js +93 -49
- package/dist/team/team-ops.js.map +1 -1
- package/dist/team/team-registration.d.ts.map +1 -1
- package/dist/team/team-registration.js +18 -14
- package/dist/team/team-registration.js.map +1 -1
- package/dist/team/team-status.d.ts +1 -1
- package/dist/team/team-status.d.ts.map +1 -1
- package/dist/team/team-status.js +8 -5
- package/dist/team/team-status.js.map +1 -1
- package/dist/team/tmux-comm.d.ts.map +1 -1
- package/dist/team/tmux-comm.js +5 -2
- package/dist/team/tmux-comm.js.map +1 -1
- package/dist/team/tmux-session.d.ts +32 -5
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +179 -50
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/team/types.d.ts +16 -3
- package/dist/team/types.d.ts.map +1 -1
- package/dist/team/types.js.map +1 -1
- package/dist/team/worker-bootstrap.d.ts.map +1 -1
- package/dist/team/worker-bootstrap.js +36 -23
- package/dist/team/worker-bootstrap.js.map +1 -1
- package/dist/team/worker-canonicalization.d.ts +8 -0
- package/dist/team/worker-canonicalization.d.ts.map +1 -0
- package/dist/team/worker-canonicalization.js +98 -0
- package/dist/team/worker-canonicalization.js.map +1 -0
- package/dist/tools/__tests__/cancel-integration.test.js +57 -2
- package/dist/tools/__tests__/cancel-integration.test.js.map +1 -1
- package/dist/tools/__tests__/deepinit-manifest.test.d.ts +7 -0
- package/dist/tools/__tests__/deepinit-manifest.test.d.ts.map +1 -0
- package/dist/tools/__tests__/deepinit-manifest.test.js +559 -0
- package/dist/tools/__tests__/deepinit-manifest.test.js.map +1 -0
- package/dist/tools/__tests__/state-tools.test.js +16 -0
- package/dist/tools/__tests__/state-tools.test.js.map +1 -1
- package/dist/tools/ast-tools.d.ts.map +1 -1
- package/dist/tools/ast-tools.js +11 -2
- package/dist/tools/ast-tools.js.map +1 -1
- package/dist/tools/deepinit-manifest.d.ts +88 -0
- package/dist/tools/deepinit-manifest.d.ts.map +1 -0
- package/dist/tools/deepinit-manifest.js +373 -0
- package/dist/tools/deepinit-manifest.js.map +1 -0
- package/dist/tools/diagnostics/tsc-runner.js +2 -2
- package/dist/tools/diagnostics/tsc-runner.js.map +1 -1
- package/dist/tools/lsp/__tests__/client-devcontainer.test.d.ts +2 -0
- package/dist/tools/lsp/__tests__/client-devcontainer.test.d.ts.map +1 -0
- package/dist/tools/lsp/__tests__/client-devcontainer.test.js +185 -0
- package/dist/tools/lsp/__tests__/client-devcontainer.test.js.map +1 -0
- package/dist/tools/lsp/__tests__/client-singleton.test.d.ts +2 -0
- package/dist/tools/lsp/__tests__/client-singleton.test.d.ts.map +1 -0
- package/dist/tools/lsp/__tests__/client-singleton.test.js +17 -0
- package/dist/tools/lsp/__tests__/client-singleton.test.js.map +1 -0
- package/dist/tools/lsp/__tests__/client-timeout-env.test.js +18 -2
- package/dist/tools/lsp/__tests__/client-timeout-env.test.js.map +1 -1
- package/dist/tools/lsp/__tests__/devcontainer.test.d.ts +2 -0
- package/dist/tools/lsp/__tests__/devcontainer.test.d.ts.map +1 -0
- package/dist/tools/lsp/__tests__/devcontainer.test.js +311 -0
- package/dist/tools/lsp/__tests__/devcontainer.test.js.map +1 -0
- package/dist/tools/lsp/client.d.ts +17 -3
- package/dist/tools/lsp/client.d.ts.map +1 -1
- package/dist/tools/lsp/client.js +228 -77
- package/dist/tools/lsp/client.js.map +1 -1
- package/dist/tools/lsp/devcontainer.d.ts +12 -0
- package/dist/tools/lsp/devcontainer.d.ts.map +1 -0
- package/dist/tools/lsp/devcontainer.js +276 -0
- package/dist/tools/lsp/devcontainer.js.map +1 -0
- package/dist/tools/lsp/index.d.ts +2 -0
- package/dist/tools/lsp/index.d.ts.map +1 -1
- package/dist/tools/lsp/index.js +1 -0
- package/dist/tools/lsp/index.js.map +1 -1
- package/dist/tools/lsp/servers.d.ts +1 -0
- package/dist/tools/lsp/servers.d.ts.map +1 -1
- package/dist/tools/lsp/servers.js +20 -5
- package/dist/tools/lsp/servers.js.map +1 -1
- package/dist/tools/lsp/utils.d.ts.map +1 -1
- package/dist/tools/lsp/utils.js +7 -1
- package/dist/tools/lsp/utils.js.map +1 -1
- package/dist/tools/python-repl/__tests__/bridge-manager-cleanup.test.js +34 -1
- package/dist/tools/python-repl/__tests__/bridge-manager-cleanup.test.js.map +1 -1
- package/dist/tools/python-repl/bridge-manager.d.ts +2 -0
- package/dist/tools/python-repl/bridge-manager.d.ts.map +1 -1
- package/dist/tools/python-repl/bridge-manager.js +38 -2
- package/dist/tools/python-repl/bridge-manager.js.map +1 -1
- package/dist/tools/python-repl/socket-client.d.ts.map +1 -1
- package/dist/tools/python-repl/socket-client.js +37 -7
- package/dist/tools/python-repl/socket-client.js.map +1 -1
- package/dist/tools/python-repl/tool.d.ts.map +1 -1
- package/dist/tools/python-repl/tool.js +1 -5
- package/dist/tools/python-repl/tool.js.map +1 -1
- package/dist/tools/state-tools.d.ts.map +1 -1
- package/dist/tools/state-tools.js +193 -57
- package/dist/tools/state-tools.js.map +1 -1
- package/dist/tools/trace-tools.d.ts.map +1 -1
- package/dist/tools/trace-tools.js +7 -5
- package/dist/tools/trace-tools.js.map +1 -1
- package/dist/tools/types.d.ts +16 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/__tests__/paths.test.js +86 -1
- package/dist/utils/__tests__/paths.test.js.map +1 -1
- package/dist/utils/jsonc.d.ts.map +1 -1
- package/dist/utils/jsonc.js +6 -2
- package/dist/utils/jsonc.js.map +1 -1
- package/dist/utils/omc-cli-rendering.d.ts +8 -0
- package/dist/utils/omc-cli-rendering.d.ts.map +1 -0
- package/dist/utils/omc-cli-rendering.js +37 -0
- package/dist/utils/omc-cli-rendering.js.map +1 -0
- package/dist/utils/paths.d.ts +32 -1
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +103 -8
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/skill-resources.d.ts +7 -0
- package/dist/utils/skill-resources.d.ts.map +1 -0
- package/dist/utils/skill-resources.js +53 -0
- package/dist/utils/skill-resources.js.map +1 -0
- package/dist/utils/ssrf-guard.d.ts.map +1 -1
- package/dist/utils/ssrf-guard.js +22 -0
- package/dist/utils/ssrf-guard.js.map +1 -1
- package/docs/ARCHITECTURE.md +468 -37
- package/docs/CLAUDE.md +1 -1
- package/docs/COMPATIBILITY.md +18 -1
- package/docs/LOCAL_PLUGIN_INSTALL.md +17 -3
- package/docs/MIGRATION.md +8 -46
- package/docs/PERFORMANCE-MONITORING.md +2 -2
- package/docs/REFERENCE.md +99 -58
- package/docs/design/SKILLS_2_0_ADAPTATION.md +115 -0
- package/docs/ko/ARCHITECTURE.md +1 -1
- package/docs/ko/MIGRATION.md +7 -47
- package/docs/ko/REFERENCE.md +1 -15
- package/docs/partials/features.md +1 -32
- package/docs/partials/mode-hierarchy.md +7 -22
- package/docs/partials/verification-tiers.md +1 -1
- package/docs/plans/2026-02-26-skill-optimization-design.md +3 -3
- package/docs/shared/features.md +1 -32
- package/docs/shared/mode-hierarchy.md +7 -22
- package/docs/shared/verification-tiers.md +1 -1
- package/hooks/hooks.json +21 -31
- package/package.json +1 -1
- package/scripts/cleanup-orphans.mjs +12 -9
- package/scripts/context-guard-stop.mjs +13 -5
- package/scripts/context-safety.mjs +12 -149
- package/scripts/eval-autoresearch-json.mjs +49 -0
- package/scripts/eval-autoresearch-timed-json.mjs +62 -0
- package/scripts/generate-featured-contributors.ts +43 -0
- package/scripts/keyword-detector.mjs +136 -36
- package/scripts/persistent-mode.cjs +87 -25
- package/scripts/persistent-mode.mjs +37 -17
- package/scripts/plugin-setup.mjs +19 -16
- package/scripts/post-tool-verifier.mjs +25 -20
- package/scripts/pre-tool-enforcer.mjs +184 -6
- package/scripts/project-memory-session.mjs +5 -1
- package/scripts/release.ts +511 -0
- package/scripts/run-provider-advisor.js +10 -4
- package/scripts/session-end.mjs +3 -2
- package/scripts/session-start.mjs +118 -4
- package/scripts/session-summary.mjs +241 -0
- package/scripts/setup-claude-md.sh +140 -3
- package/scripts/skill-injector.mjs +2 -1
- package/scripts/sync-metadata.ts +41 -7
- package/scripts/sync-version.sh +42 -0
- package/skills/AGENTS.md +108 -74
- package/skills/ai-slop-cleaner/SKILL.md +120 -117
- package/skills/ask/SKILL.md +4 -2
- package/skills/autopilot/SKILL.md +1 -0
- package/skills/cancel/SKILL.md +62 -0
- package/skills/ccg/SKILL.md +7 -13
- package/skills/configure-notifications/SKILL.md +1 -0
- package/skills/deep-dive/SKILL.md +476 -0
- package/skills/deep-interview/SKILL.md +109 -14
- package/skills/deepinit/SKILL.md +1 -0
- package/skills/external-context/SKILL.md +1 -0
- package/skills/hud/SKILL.md +6 -5
- package/skills/learner/SKILL.md +63 -57
- package/skills/mcp-setup/SKILL.md +1 -0
- package/skills/omc-doctor/SKILL.md +6 -5
- package/skills/omc-reference/SKILL.md +141 -0
- package/skills/omc-setup/SKILL.md +11 -2
- package/skills/omc-setup/phases/01-install-claude-md.md +11 -1
- package/skills/omc-setup/phases/02-configure.md +3 -1
- package/skills/omc-teams/SKILL.md +9 -5
- package/skills/plan/SKILL.md +23 -7
- package/skills/project-session-manager/SKILL.md +3 -2
- package/skills/ralph/SKILL.md +17 -1
- package/skills/ralplan/SKILL.md +4 -1
- package/skills/release/SKILL.md +1 -0
- package/skills/sciomc/SKILL.md +1 -0
- package/skills/setup/SKILL.md +9 -8
- package/skills/skill-creator/SKILL.md +311 -0
- package/skills/skill-creator/references/upstream-anthropic-skill-creator.md +485 -0
- package/skills/skill-debugger/README.md +52 -0
- package/skills/skill-debugger/SKILL.md +146 -270
- package/skills/skill-quality-analyzer/HOW_TO_USE.md +92 -185
- package/skills/skill-quality-analyzer/README.md +39 -35
- package/skills/skill-quality-analyzer/SKILL.md +105 -196
- package/skills/skill-tester/README.md +31 -23
- package/skills/skill-tester/SKILL.md +116 -266
- package/skills/team/SKILL.md +1 -0
- package/skills/trace/SKILL.md +262 -0
- package/skills/ultraqa/SKILL.md +1 -0
- package/skills/ultrawork/SKILL.md +1 -0
- package/skills/visual-verdict/SKILL.md +77 -0
- package/skills/writer-memory/SKILL.md +1 -0
- package/templates/hooks/keyword-detector.mjs +89 -25
- package/templates/hooks/persistent-mode.mjs +33 -9
- package/templates/hooks/post-tool-use-failure.mjs +2 -5
- package/templates/hooks/pre-tool-use.mjs +47 -1
- package/templates/hooks/session-start.mjs +105 -14
- package/templates/hooks/stop-continuation.mjs +7 -1
- package/dist/__tests__/codex-backoff.test.d.ts +0 -2
- package/dist/__tests__/codex-backoff.test.d.ts.map +0 -1
- package/dist/__tests__/codex-backoff.test.js +0 -143
- package/dist/__tests__/codex-backoff.test.js.map +0 -1
- package/dist/__tests__/codex-callsite-normalization.test.js +0 -112
- package/dist/__tests__/compatibility-security.test.d.ts +0 -13
- package/dist/__tests__/compatibility-security.test.d.ts.map +0 -1
- package/dist/__tests__/compatibility-security.test.js +0 -403
- package/dist/__tests__/compatibility-security.test.js.map +0 -1
- package/dist/__tests__/compatibility.test.d.ts +0 -7
- package/dist/__tests__/compatibility.test.d.ts.map +0 -1
- package/dist/__tests__/compatibility.test.js +0 -484
- package/dist/__tests__/compatibility.test.js.map +0 -1
- package/dist/__tests__/example.test.d.ts +0 -2
- package/dist/__tests__/example.test.d.ts.map +0 -1
- package/dist/__tests__/example.test.js +0 -20
- package/dist/__tests__/example.test.js.map +0 -1
- package/dist/__tests__/hud/analytics-display.test.d.ts +0 -2
- package/dist/__tests__/hud/analytics-display.test.d.ts.map +0 -1
- package/dist/__tests__/hud/analytics-display.test.js +0 -236
- package/dist/__tests__/hud/analytics-display.test.js.map +0 -1
- package/dist/__tests__/hud/top-agents.test.d.ts +0 -8
- package/dist/__tests__/hud/top-agents.test.d.ts.map +0 -1
- package/dist/__tests__/hud/top-agents.test.js +0 -158
- package/dist/__tests__/hud/top-agents.test.js.map +0 -1
- package/dist/__tests__/inline-prompt-integration.test.d.ts +0 -2
- package/dist/__tests__/inline-prompt-integration.test.d.ts.map +0 -1
- package/dist/__tests__/inline-prompt-integration.test.js +0 -411
- package/dist/__tests__/inline-prompt-integration.test.js.map +0 -1
- package/dist/__tests__/inline-success-shape.test.d.ts +0 -2
- package/dist/__tests__/inline-success-shape.test.d.ts.map +0 -1
- package/dist/__tests__/inline-success-shape.test.js +0 -130
- package/dist/__tests__/inline-success-shape.test.js.map +0 -1
- package/dist/__tests__/mcp-fallback-429.test.d.ts +0 -2
- package/dist/__tests__/mcp-fallback-429.test.d.ts.map +0 -1
- package/dist/__tests__/mcp-fallback-429.test.js +0 -193
- package/dist/__tests__/mcp-fallback-429.test.js.map +0 -1
- package/dist/__tests__/mcp-server-workflows.test.d.ts +0 -2
- package/dist/__tests__/mcp-server-workflows.test.d.ts.map +0 -1
- package/dist/__tests__/mcp-server-workflows.test.js +0 -301
- package/dist/__tests__/mcp-server-workflows.test.js.map +0 -1
- package/dist/__tests__/multi-model-mcp-integration.test.d.ts +0 -2
- package/dist/__tests__/multi-model-mcp-integration.test.d.ts.map +0 -1
- package/dist/__tests__/multi-model-mcp-integration.test.js +0 -69
- package/dist/__tests__/multi-model-mcp-integration.test.js.map +0 -1
- package/dist/__tests__/multi-model-mcp.test.d.ts +0 -2
- package/dist/__tests__/multi-model-mcp.test.d.ts.map +0 -1
- package/dist/__tests__/multi-model-mcp.test.js +0 -145
- package/dist/__tests__/multi-model-mcp.test.js.map +0 -1
- package/dist/__tests__/omc-shorthand.test.d.ts +0 -2
- package/dist/__tests__/omc-shorthand.test.d.ts.map +0 -1
- package/dist/__tests__/omc-shorthand.test.js +0 -73
- package/dist/__tests__/omc-shorthand.test.js.map +0 -1
- package/dist/__tests__/prompt-file-only.test.d.ts +0 -2
- package/dist/__tests__/prompt-file-only.test.d.ts.map +0 -1
- package/dist/__tests__/prompt-file-only.test.js +0 -263
- package/dist/__tests__/prompt-file-only.test.js.map +0 -1
- package/dist/__tests__/session-catalog.test.d.ts +0 -2
- package/dist/__tests__/session-catalog.test.d.ts.map +0 -1
- package/dist/__tests__/session-catalog.test.js +0 -195
- package/dist/__tests__/session-catalog.test.js.map +0 -1
- package/dist/__tests__/session-migration.test.d.ts +0 -2
- package/dist/__tests__/session-migration.test.d.ts.map +0 -1
- package/dist/__tests__/session-migration.test.js +0 -155
- package/dist/__tests__/session-migration.test.js.map +0 -1
- package/dist/__tests__/shell-path.test.d.ts +0 -5
- package/dist/__tests__/shell-path.test.d.ts.map +0 -1
- package/dist/__tests__/shell-path.test.js +0 -70
- package/dist/__tests__/shell-path.test.js.map +0 -1
- package/dist/__tests__/smoke-functional.test.d.ts +0 -8
- package/dist/__tests__/smoke-functional.test.d.ts.map +0 -1
- package/dist/__tests__/smoke-functional.test.js +0 -450
- package/dist/__tests__/smoke-functional.test.js.map +0 -1
- package/dist/__tests__/smoke-team-worker.test.d.ts +0 -15
- package/dist/__tests__/smoke-team-worker.test.d.ts.map +0 -1
- package/dist/__tests__/smoke-team-worker.test.js +0 -483
- package/dist/__tests__/smoke-team-worker.test.js.map +0 -1
- package/dist/__tests__/validate-and-read-file.test.d.ts +0 -2
- package/dist/__tests__/validate-and-read-file.test.d.ts.map +0 -1
- package/dist/__tests__/validate-and-read-file.test.js +0 -84
- package/dist/__tests__/validate-and-read-file.test.js.map +0 -1
- package/dist/__tests__/worker-adapter.test.d.ts +0 -5
- package/dist/__tests__/worker-adapter.test.d.ts.map +0 -1
- package/dist/__tests__/worker-adapter.test.js +0 -211
- package/dist/__tests__/worker-adapter.test.js.map +0 -1
- package/dist/agents/coordinator-deprecated.d.ts +0 -18
- package/dist/agents/coordinator-deprecated.d.ts.map +0 -1
- package/dist/agents/coordinator-deprecated.js +0 -38
- package/dist/agents/coordinator-deprecated.js.map +0 -1
- package/dist/agents/deep-executor.d.ts +0 -15
- package/dist/agents/deep-executor.d.ts.map +0 -1
- package/dist/agents/deep-executor.js +0 -45
- package/dist/agents/deep-executor.js.map +0 -1
- package/dist/agents/delegation-validator.d.ts +0 -31
- package/dist/agents/delegation-validator.d.ts.map +0 -1
- package/dist/agents/delegation-validator.js +0 -75
- package/dist/agents/delegation-validator.js.map +0 -1
- package/dist/agents/harsh-critic.d.ts +0 -14
- package/dist/agents/harsh-critic.d.ts.map +0 -1
- package/dist/agents/harsh-critic.js +0 -42
- package/dist/agents/harsh-critic.js.map +0 -1
- package/dist/agents/preamble.d.ts +0 -38
- package/dist/agents/preamble.d.ts.map +0 -1
- package/dist/agents/preamble.js +0 -122
- package/dist/agents/preamble.js.map +0 -1
- package/dist/agents/prompt-generator.d.ts +0 -96
- package/dist/agents/prompt-generator.d.ts.map +0 -1
- package/dist/agents/prompt-generator.js +0 -141
- package/dist/agents/prompt-generator.js.map +0 -1
- package/dist/agents/researcher.d.ts +0 -12
- package/dist/agents/researcher.d.ts.map +0 -1
- package/dist/agents/researcher.js +0 -40
- package/dist/agents/researcher.js.map +0 -1
- package/dist/agents/vision.d.ts +0 -11
- package/dist/agents/vision.d.ts.map +0 -1
- package/dist/agents/vision.js +0 -40
- package/dist/agents/vision.js.map +0 -1
- package/dist/cli/commands/__tests__/cleanup.test.d.ts +0 -2
- package/dist/cli/commands/__tests__/cleanup.test.d.ts.map +0 -1
- package/dist/cli/commands/__tests__/cleanup.test.js +0 -37
- package/dist/cli/commands/__tests__/cleanup.test.js.map +0 -1
- package/dist/compatibility/discovery.d.ts +0 -58
- package/dist/compatibility/discovery.d.ts.map +0 -1
- package/dist/compatibility/discovery.js +0 -620
- package/dist/compatibility/discovery.js.map +0 -1
- package/dist/compatibility/index.d.ts +0 -51
- package/dist/compatibility/index.d.ts.map +0 -1
- package/dist/compatibility/index.js +0 -72
- package/dist/compatibility/index.js.map +0 -1
- package/dist/compatibility/mcp-bridge.d.ts +0 -143
- package/dist/compatibility/mcp-bridge.d.ts.map +0 -1
- package/dist/compatibility/mcp-bridge.js +0 -540
- package/dist/compatibility/mcp-bridge.js.map +0 -1
- package/dist/compatibility/permission-adapter.d.ts +0 -79
- package/dist/compatibility/permission-adapter.d.ts.map +0 -1
- package/dist/compatibility/permission-adapter.js +0 -369
- package/dist/compatibility/permission-adapter.js.map +0 -1
- package/dist/compatibility/registry.d.ts +0 -161
- package/dist/compatibility/registry.d.ts.map +0 -1
- package/dist/compatibility/registry.js +0 -389
- package/dist/compatibility/registry.js.map +0 -1
- package/dist/compatibility/types.d.ts +0 -249
- package/dist/compatibility/types.d.ts.map +0 -1
- package/dist/compatibility/types.js +0 -8
- package/dist/compatibility/types.js.map +0 -1
- package/dist/features/model-routing/__tests__/external-model-policy.test.d.ts +0 -2
- package/dist/features/model-routing/__tests__/external-model-policy.test.d.ts.map +0 -1
- package/dist/features/model-routing/__tests__/external-model-policy.test.js +0 -476
- package/dist/features/model-routing/__tests__/external-model-policy.test.js.map +0 -1
- package/dist/features/model-routing/external-model-policy.d.ts +0 -27
- package/dist/features/model-routing/external-model-policy.d.ts.map +0 -1
- package/dist/features/model-routing/external-model-policy.js +0 -145
- package/dist/features/model-routing/external-model-policy.js.map +0 -1
- package/dist/features/verification/example.d.ts +0 -49
- package/dist/features/verification/example.d.ts.map +0 -1
- package/dist/features/verification/example.js +0 -237
- package/dist/features/verification/example.js.map +0 -1
- package/dist/hooks/setup/__tests__/github-star.test.d.ts +0 -8
- package/dist/hooks/setup/__tests__/github-star.test.d.ts.map +0 -1
- package/dist/hooks/setup/__tests__/github-star.test.js +0 -208
- package/dist/hooks/setup/__tests__/github-star.test.js.map +0 -1
- package/dist/hooks/setup/github-star.d.ts +0 -37
- package/dist/hooks/setup/github-star.d.ts.map +0 -1
- package/dist/hooks/setup/github-star.js +0 -123
- package/dist/hooks/setup/github-star.js.map +0 -1
- package/dist/hooks/swarm/__tests__/addMoreTasks.test.d.ts +0 -2
- package/dist/hooks/swarm/__tests__/addMoreTasks.test.d.ts.map +0 -1
- package/dist/hooks/swarm/__tests__/addMoreTasks.test.js +0 -203
- package/dist/hooks/swarm/__tests__/addMoreTasks.test.js.map +0 -1
- package/dist/hooks/swarm/__tests__/aggressive-swarm.integration.test.d.ts +0 -2
- package/dist/hooks/swarm/__tests__/aggressive-swarm.integration.test.d.ts.map +0 -1
- package/dist/hooks/swarm/__tests__/aggressive-swarm.integration.test.js +0 -273
- package/dist/hooks/swarm/__tests__/aggressive-swarm.integration.test.js.map +0 -1
- package/dist/hooks/swarm/__tests__/claiming.test.d.ts +0 -2
- package/dist/hooks/swarm/__tests__/claiming.test.d.ts.map +0 -1
- package/dist/hooks/swarm/__tests__/claiming.test.js +0 -170
- package/dist/hooks/swarm/__tests__/claiming.test.js.map +0 -1
- package/dist/hooks/swarm/__tests__/index.test.d.ts.map +0 -1
- package/dist/hooks/swarm/__tests__/index.test.js +0 -157
- package/dist/hooks/swarm/__tests__/index.test.js.map +0 -1
- package/dist/hooks/swarm/__tests__/migration.test.d.ts +0 -2
- package/dist/hooks/swarm/__tests__/migration.test.d.ts.map +0 -1
- package/dist/hooks/swarm/__tests__/migration.test.js +0 -140
- package/dist/hooks/swarm/__tests__/migration.test.js.map +0 -1
- package/dist/hooks/swarm/__tests__/mode-registry.test.d.ts +0 -2
- package/dist/hooks/swarm/__tests__/mode-registry.test.d.ts.map +0 -1
- package/dist/hooks/swarm/__tests__/mode-registry.test.js +0 -177
- package/dist/hooks/swarm/__tests__/mode-registry.test.js.map +0 -1
- package/dist/hooks/swarm/__tests__/priority-claiming.test.d.ts +0 -2
- package/dist/hooks/swarm/__tests__/priority-claiming.test.d.ts.map +0 -1
- package/dist/hooks/swarm/__tests__/priority-claiming.test.js +0 -122
- package/dist/hooks/swarm/__tests__/priority-claiming.test.js.map +0 -1
- package/dist/hooks/swarm/__tests__/types.test.d.ts +0 -2
- package/dist/hooks/swarm/__tests__/types.test.d.ts.map +0 -1
- package/dist/hooks/swarm/__tests__/types.test.js +0 -73
- package/dist/hooks/swarm/__tests__/types.test.js.map +0 -1
- package/dist/hooks/swarm/claiming.d.ts +0 -123
- package/dist/hooks/swarm/claiming.d.ts.map +0 -1
- package/dist/hooks/swarm/claiming.js +0 -639
- package/dist/hooks/swarm/claiming.js.map +0 -1
- package/dist/hooks/swarm/index.d.ts +0 -261
- package/dist/hooks/swarm/index.d.ts.map +0 -1
- package/dist/hooks/swarm/index.js +0 -485
- package/dist/hooks/swarm/index.js.map +0 -1
- package/dist/hooks/swarm/state.d.ts +0 -131
- package/dist/hooks/swarm/state.d.ts.map +0 -1
- package/dist/hooks/swarm/state.js +0 -690
- package/dist/hooks/swarm/state.js.map +0 -1
- package/dist/hooks/swarm/types.d.ts +0 -138
- package/dist/hooks/swarm/types.d.ts.map +0 -1
- package/dist/hooks/swarm/types.js +0 -22
- package/dist/hooks/swarm/types.js.map +0 -1
- package/dist/hooks/ultrapilot/decomposer.d.ts +0 -141
- package/dist/hooks/ultrapilot/decomposer.d.ts.map +0 -1
- package/dist/hooks/ultrapilot/decomposer.js +0 -379
- package/dist/hooks/ultrapilot/decomposer.js.map +0 -1
- package/dist/hooks/ultrapilot/index.d.ts +0 -121
- package/dist/hooks/ultrapilot/index.d.ts.map +0 -1
- package/dist/hooks/ultrapilot/index.js +0 -353
- package/dist/hooks/ultrapilot/index.js.map +0 -1
- package/dist/hooks/ultrapilot/state.d.ts +0 -72
- package/dist/hooks/ultrapilot/state.d.ts.map +0 -1
- package/dist/hooks/ultrapilot/state.js +0 -275
- package/dist/hooks/ultrapilot/state.js.map +0 -1
- package/dist/hooks/ultrapilot/types.d.ts +0 -115
- package/dist/hooks/ultrapilot/types.d.ts.map +0 -1
- package/dist/hooks/ultrapilot/types.js +0 -36
- package/dist/hooks/ultrapilot/types.js.map +0 -1
- package/dist/interop/__tests__/worker-adapter-integration.test.d.ts +0 -2
- package/dist/interop/__tests__/worker-adapter-integration.test.d.ts.map +0 -1
- package/dist/interop/__tests__/worker-adapter-integration.test.js +0 -219
- package/dist/interop/__tests__/worker-adapter-integration.test.js.map +0 -1
- package/dist/interop/__tests__/worker-adapter.test.d.ts +0 -2
- package/dist/interop/__tests__/worker-adapter.test.d.ts.map +0 -1
- package/dist/interop/__tests__/worker-adapter.test.js +0 -408
- package/dist/interop/__tests__/worker-adapter.test.js.map +0 -1
- package/dist/interop/adapter-types.d.ts +0 -39
- package/dist/interop/adapter-types.d.ts.map +0 -1
- package/dist/interop/adapter-types.js +0 -9
- package/dist/interop/adapter-types.js.map +0 -1
- package/dist/interop/worker-adapter.d.ts +0 -116
- package/dist/interop/worker-adapter.d.ts.map +0 -1
- package/dist/interop/worker-adapter.js +0 -324
- package/dist/interop/worker-adapter.js.map +0 -1
- package/dist/mcp/__tests__/codex-reasoning-effort.test.d.ts +0 -2
- package/dist/mcp/__tests__/codex-reasoning-effort.test.d.ts.map +0 -1
- package/dist/mcp/__tests__/codex-reasoning-effort.test.js +0 -175
- package/dist/mcp/__tests__/codex-reasoning-effort.test.js.map +0 -1
- package/dist/mcp/__tests__/job-state-db-deprecation.test.d.ts +0 -2
- package/dist/mcp/__tests__/job-state-db-deprecation.test.d.ts.map +0 -1
- package/dist/mcp/__tests__/job-state-db-deprecation.test.js +0 -119
- package/dist/mcp/__tests__/job-state-db-deprecation.test.js.map +0 -1
- package/dist/mcp/__tests__/shared-exec.test.d.ts +0 -2
- package/dist/mcp/__tests__/shared-exec.test.d.ts.map +0 -1
- package/dist/mcp/__tests__/shared-exec.test.js +0 -151
- package/dist/mcp/__tests__/shared-exec.test.js.map +0 -1
- package/dist/mcp/__tests__/team-server-deprecation.test.d.ts +0 -2
- package/dist/mcp/__tests__/team-server-deprecation.test.d.ts.map +0 -1
- package/dist/mcp/__tests__/team-server-deprecation.test.js +0 -56
- package/dist/mcp/__tests__/team-server-deprecation.test.js.map +0 -1
- package/dist/mcp/cli-detection.d.ts +0 -22
- package/dist/mcp/cli-detection.d.ts.map +0 -1
- package/dist/mcp/cli-detection.js +0 -77
- package/dist/mcp/cli-detection.js.map +0 -1
- package/dist/mcp/codex-core.d.ts +0 -119
- package/dist/mcp/codex-core.d.ts.map +0 -1
- package/dist/mcp/codex-core.js +0 -942
- package/dist/mcp/codex-core.js.map +0 -1
- package/dist/mcp/codex-request-normalizer.js +0 -59
- package/dist/mcp/codex-server.d.ts +0 -20
- package/dist/mcp/codex-server.d.ts.map +0 -1
- package/dist/mcp/codex-server.js +0 -81
- package/dist/mcp/codex-server.js.map +0 -1
- package/dist/mcp/codex-standalone-server.d.ts +0 -8
- package/dist/mcp/codex-standalone-server.d.ts.map +0 -1
- package/dist/mcp/codex-standalone-server.js +0 -81
- package/dist/mcp/codex-standalone-server.js.map +0 -1
- package/dist/mcp/gemini-core.d.ts +0 -75
- package/dist/mcp/gemini-core.d.ts.map +0 -1
- package/dist/mcp/gemini-core.js +0 -674
- package/dist/mcp/gemini-core.js.map +0 -1
- package/dist/mcp/gemini-server.d.ts +0 -20
- package/dist/mcp/gemini-server.d.ts.map +0 -1
- package/dist/mcp/gemini-server.js +0 -69
- package/dist/mcp/gemini-server.js.map +0 -1
- package/dist/mcp/gemini-standalone-server.d.ts +0 -8
- package/dist/mcp/gemini-standalone-server.d.ts.map +0 -1
- package/dist/mcp/gemini-standalone-server.js +0 -72
- package/dist/mcp/gemini-standalone-server.js.map +0 -1
- package/dist/mcp/job-state-db.d.ts +0 -2
- package/dist/mcp/job-state-db.d.ts.map +0 -1
- package/dist/mcp/job-state-db.js +0 -3
- package/dist/mcp/job-state-db.js.map +0 -1
- package/dist/mcp/shared-exec.d.ts +0 -50
- package/dist/mcp/shared-exec.d.ts.map +0 -1
- package/dist/mcp/shared-exec.js +0 -182
- package/dist/mcp/shared-exec.js.map +0 -1
- package/dist/team/__tests__/cli-path-resolution.test.d.ts +0 -2
- package/dist/team/__tests__/cli-path-resolution.test.d.ts.map +0 -1
- package/dist/team/__tests__/cli-path-resolution.test.js +0 -281
- package/dist/team/__tests__/cli-path-resolution.test.js.map +0 -1
- package/dist/team/__tests__/layout-stabilizer.test.d.ts +0 -2
- package/dist/team/__tests__/layout-stabilizer.test.d.ts.map +0 -1
- package/dist/team/__tests__/layout-stabilizer.test.js +0 -217
- package/dist/team/__tests__/layout-stabilizer.test.js.map +0 -1
- package/dist/team/__tests__/pane-readiness.test.d.ts +0 -2
- package/dist/team/__tests__/pane-readiness.test.d.ts.map +0 -1
- package/dist/team/__tests__/pane-readiness.test.js +0 -185
- package/dist/team/__tests__/pane-readiness.test.js.map +0 -1
- package/dist/team/__tests__/runtime-gemini-prompt.test.d.ts +0 -2
- package/dist/team/__tests__/runtime-gemini-prompt.test.d.ts.map +0 -1
- package/dist/team/__tests__/runtime-gemini-prompt.test.js +0 -153
- package/dist/team/__tests__/runtime-gemini-prompt.test.js.map +0 -1
- package/dist/team/__tests__/runtime-interop-spawn-regression.test.d.ts +0 -2
- package/dist/team/__tests__/runtime-interop-spawn-regression.test.d.ts.map +0 -1
- package/dist/team/__tests__/runtime-interop-spawn-regression.test.js +0 -139
- package/dist/team/__tests__/runtime-interop-spawn-regression.test.js.map +0 -1
- package/dist/team/__tests__/shell-path.test.d.ts +0 -2
- package/dist/team/__tests__/shell-path.test.d.ts.map +0 -1
- package/dist/team/__tests__/shell-path.test.js +0 -193
- package/dist/team/__tests__/shell-path.test.js.map +0 -1
- package/dist/team/__tests__/wait-for-shell-ready.test.d.ts +0 -2
- package/dist/team/__tests__/wait-for-shell-ready.test.d.ts.map +0 -1
- package/dist/team/__tests__/wait-for-shell-ready.test.js +0 -242
- package/dist/team/__tests__/wait-for-shell-ready.test.js.map +0 -1
- package/dist/team/shell-path.d.ts +0 -21
- package/dist/team/shell-path.d.ts.map +0 -1
- package/dist/team/shell-path.js +0 -73
- package/dist/team/shell-path.js.map +0 -1
- package/scripts/ask-codex.sh +0 -24
- package/scripts/ask-gemini.sh +0 -24
- package/scripts/build-gemini-server.mjs +0 -74
- package/scripts/test-codex-gemini-team.mjs +0 -78
- package/skills/skill-development/SKILL.md +0 -218
- package/skills/skill-development/references/description-patterns.md +0 -160
- package/skills/skill-development/references/format-guide.md +0 -203
- /package/dist/{hooks/swarm → features/delegation-categories}/__tests__/index.test.d.ts +0 -0
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { execFileSync } from 'node:child_process';
|
|
3
|
+
import { mkdtemp, mkdir, readFile, rm, writeFile } from 'node:fs/promises';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { tmpdir } from 'node:os';
|
|
6
|
+
import { assertResetSafeWorktree, decideAutoresearchOutcome, loadAutoresearchRunManifest, materializeAutoresearchMissionToWorktree, prepareAutoresearchRuntime, processAutoresearchCandidate, resumeAutoresearchRuntime, } from '../runtime.js';
|
|
7
|
+
async function initRepo() {
|
|
8
|
+
const cwd = await mkdtemp(join(tmpdir(), 'omc-autoresearch-parity-extra-'));
|
|
9
|
+
execFileSync('git', ['init'], { cwd, stdio: 'ignore' });
|
|
10
|
+
execFileSync('git', ['config', 'user.email', 'test@example.com'], { cwd, stdio: 'ignore' });
|
|
11
|
+
execFileSync('git', ['config', 'user.name', 'Test User'], { cwd, stdio: 'ignore' });
|
|
12
|
+
await writeFile(join(cwd, 'README.md'), 'hello\n', 'utf-8');
|
|
13
|
+
execFileSync('git', ['add', 'README.md'], { cwd, stdio: 'ignore' });
|
|
14
|
+
execFileSync('git', ['commit', '-m', 'init'], { cwd, stdio: 'ignore' });
|
|
15
|
+
return cwd;
|
|
16
|
+
}
|
|
17
|
+
async function makeContract(repo, keepPolicy) {
|
|
18
|
+
const missionDir = join(repo, 'missions', 'demo');
|
|
19
|
+
await mkdir(missionDir, { recursive: true });
|
|
20
|
+
await mkdir(join(repo, 'scripts'), { recursive: true });
|
|
21
|
+
const missionFile = join(missionDir, 'mission.md');
|
|
22
|
+
const sandboxFile = join(missionDir, 'sandbox.md');
|
|
23
|
+
const missionContent = '# Mission\nSolve the task.\n';
|
|
24
|
+
const keepPolicyLine = keepPolicy ? ` keep_policy: ${keepPolicy}\n` : '';
|
|
25
|
+
const sandboxContent = `---\nevaluator:\n command: node scripts/eval.js\n format: json\n${keepPolicyLine}---\nStay inside the mission boundary.\n`;
|
|
26
|
+
await writeFile(missionFile, missionContent, 'utf-8');
|
|
27
|
+
await writeFile(sandboxFile, sandboxContent, 'utf-8');
|
|
28
|
+
await writeFile(join(repo, 'score.txt'), '1\n', 'utf-8');
|
|
29
|
+
await writeFile(join(repo, 'scripts', 'eval.js'), "process.stdout.write(JSON.stringify({ pass: true, score: 1 }));\n", 'utf-8');
|
|
30
|
+
execFileSync('git', ['add', 'missions/demo/mission.md', 'missions/demo/sandbox.md', 'scripts/eval.js', 'score.txt'], { cwd: repo, stdio: 'ignore' });
|
|
31
|
+
execFileSync('git', ['commit', '-m', 'add autoresearch fixtures'], { cwd: repo, stdio: 'ignore' });
|
|
32
|
+
return {
|
|
33
|
+
missionDir,
|
|
34
|
+
repoRoot: repo,
|
|
35
|
+
missionFile,
|
|
36
|
+
sandboxFile,
|
|
37
|
+
missionRelativeDir: 'missions/demo',
|
|
38
|
+
missionContent,
|
|
39
|
+
sandboxContent,
|
|
40
|
+
sandbox: {
|
|
41
|
+
frontmatter: { evaluator: { command: 'node scripts/eval.js', format: 'json', ...(keepPolicy ? { keep_policy: keepPolicy } : {}) } },
|
|
42
|
+
evaluator: { command: 'node scripts/eval.js', format: 'json', ...(keepPolicy ? { keep_policy: keepPolicy } : {}) },
|
|
43
|
+
body: 'Stay inside the mission boundary.',
|
|
44
|
+
},
|
|
45
|
+
missionSlug: 'missions-demo',
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
describe('autoresearch runtime parity extras', () => {
|
|
49
|
+
it('treats allowed runtime files as reset-safe and blocks unrelated dirt', async () => {
|
|
50
|
+
const repo = await initRepo();
|
|
51
|
+
try {
|
|
52
|
+
const contract = await makeContract(repo);
|
|
53
|
+
const worktreePath = join(repo, '..', `${repo.split('/').pop()}.omc-worktrees`, 'autoresearch-missions-demo-20260314t020000z');
|
|
54
|
+
execFileSync('git', ['worktree', 'add', '-b', 'autoresearch/missions-demo/20260314t020000z', worktreePath, 'HEAD'], {
|
|
55
|
+
cwd: repo,
|
|
56
|
+
stdio: 'ignore',
|
|
57
|
+
});
|
|
58
|
+
const worktreeContract = await materializeAutoresearchMissionToWorktree(contract, worktreePath);
|
|
59
|
+
const runtime = await prepareAutoresearchRuntime(worktreeContract, repo, worktreePath, { runTag: '20260314T020000Z' });
|
|
60
|
+
await writeFile(join(worktreePath, 'results.tsv'), 'iteration\tcommit\tpass\tscore\tstatus\tdescription\n', 'utf-8');
|
|
61
|
+
await writeFile(join(worktreePath, 'run.log'), 'ok\n', 'utf-8');
|
|
62
|
+
expect(() => assertResetSafeWorktree(worktreePath)).not.toThrow();
|
|
63
|
+
await writeFile(join(worktreePath, 'scratch.tmp'), 'nope\n', 'utf-8');
|
|
64
|
+
expect(() => assertResetSafeWorktree(worktreePath)).toThrow(/autoresearch_reset_requires_clean_worktree/i);
|
|
65
|
+
const manifest = await loadAutoresearchRunManifest(repo, runtime.runId);
|
|
66
|
+
expect(manifest.results_file).toBe(join(worktreePath, 'results.tsv'));
|
|
67
|
+
}
|
|
68
|
+
finally {
|
|
69
|
+
await rm(repo, { recursive: true, force: true });
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
it('fresh prepare tolerates bootstrap dirt even when the worktree path is not normalized', async () => {
|
|
73
|
+
const repo = await initRepo();
|
|
74
|
+
try {
|
|
75
|
+
const contract = await makeContract(repo);
|
|
76
|
+
const worktreeRoot = `${repo.split('/').pop()}.omc-worktrees`;
|
|
77
|
+
const worktreePath = `${repo}/../${worktreeRoot}/autoresearch-missions-demo-20260314t021500z`;
|
|
78
|
+
execFileSync('git', ['worktree', 'add', '-b', 'autoresearch/missions-demo/20260314t021500z', worktreePath, 'HEAD'], {
|
|
79
|
+
cwd: repo,
|
|
80
|
+
stdio: 'ignore',
|
|
81
|
+
});
|
|
82
|
+
const worktreeContract = await materializeAutoresearchMissionToWorktree(contract, worktreePath);
|
|
83
|
+
await expect(prepareAutoresearchRuntime(worktreeContract, repo, worktreePath, { runTag: '20260314T021500Z' })).resolves.toMatchObject({ worktreePath });
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
await rm(repo, { recursive: true, force: true });
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
it('rejects concurrent fresh runs via the repo-root active-run lock', async () => {
|
|
90
|
+
const repo = await initRepo();
|
|
91
|
+
try {
|
|
92
|
+
const contract = await makeContract(repo);
|
|
93
|
+
const worktreePathA = join(repo, '..', `${repo.split('/').pop()}.omc-worktrees`, 'autoresearch-missions-demo-20260314t030000z');
|
|
94
|
+
execFileSync('git', ['worktree', 'add', '-b', 'autoresearch/missions-demo/20260314t030000z', worktreePathA, 'HEAD'], {
|
|
95
|
+
cwd: repo,
|
|
96
|
+
stdio: 'ignore',
|
|
97
|
+
});
|
|
98
|
+
const worktreeContractA = await materializeAutoresearchMissionToWorktree(contract, worktreePathA);
|
|
99
|
+
await prepareAutoresearchRuntime(worktreeContractA, repo, worktreePathA, { runTag: '20260314T030000Z' });
|
|
100
|
+
const worktreePathB = join(repo, '..', `${repo.split('/').pop()}.omc-worktrees`, 'autoresearch-missions-demo-20260314t030500z');
|
|
101
|
+
execFileSync('git', ['worktree', 'add', '-b', 'autoresearch/missions-demo/20260314t030500z', worktreePathB, 'HEAD'], {
|
|
102
|
+
cwd: repo,
|
|
103
|
+
stdio: 'ignore',
|
|
104
|
+
});
|
|
105
|
+
const worktreeContractB = await materializeAutoresearchMissionToWorktree(contract, worktreePathB);
|
|
106
|
+
await expect(prepareAutoresearchRuntime(worktreeContractB, repo, worktreePathB, { runTag: '20260314T030500Z' })).rejects.toThrow(/autoresearch_active_run_exists/i);
|
|
107
|
+
}
|
|
108
|
+
finally {
|
|
109
|
+
await rm(repo, { recursive: true, force: true });
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
it('resumes a running manifest and rejects missing worktrees', async () => {
|
|
113
|
+
const repo = await initRepo();
|
|
114
|
+
try {
|
|
115
|
+
const contract = await makeContract(repo);
|
|
116
|
+
const worktreePath = join(repo, '..', `${repo.split('/').pop()}.omc-worktrees`, 'autoresearch-missions-demo-20260314t040000z');
|
|
117
|
+
execFileSync('git', ['worktree', 'add', '-b', 'autoresearch/missions-demo/20260314t040000z', worktreePath, 'HEAD'], {
|
|
118
|
+
cwd: repo,
|
|
119
|
+
stdio: 'ignore',
|
|
120
|
+
});
|
|
121
|
+
const worktreeContract = await materializeAutoresearchMissionToWorktree(contract, worktreePath);
|
|
122
|
+
const runtime = await prepareAutoresearchRuntime(worktreeContract, repo, worktreePath, { runTag: '20260314T040000Z' });
|
|
123
|
+
const statePath = join(repo, '.omc', 'state', 'autoresearch-state.json');
|
|
124
|
+
const idleState = {
|
|
125
|
+
schema_version: 1,
|
|
126
|
+
active: false,
|
|
127
|
+
run_id: runtime.runId,
|
|
128
|
+
mission_slug: contract.missionSlug,
|
|
129
|
+
repo_root: repo,
|
|
130
|
+
worktree_path: worktreePath,
|
|
131
|
+
status: 'idle',
|
|
132
|
+
updated_at: '2026-03-14T04:05:00.000Z',
|
|
133
|
+
};
|
|
134
|
+
await writeFile(statePath, `${JSON.stringify(idleState, null, 2)}\n`, 'utf-8');
|
|
135
|
+
const resumed = await resumeAutoresearchRuntime(repo, runtime.runId);
|
|
136
|
+
expect(resumed.runId).toBe(runtime.runId);
|
|
137
|
+
expect(resumed.worktreePath).toBe(worktreePath);
|
|
138
|
+
await writeFile(statePath, `${JSON.stringify(idleState, null, 2)}\n`, 'utf-8');
|
|
139
|
+
await rm(worktreePath, { recursive: true, force: true });
|
|
140
|
+
await expect(resumeAutoresearchRuntime(repo, runtime.runId)).rejects.toThrow(/autoresearch_resume_missing_worktree/i);
|
|
141
|
+
}
|
|
142
|
+
finally {
|
|
143
|
+
await rm(repo, { recursive: true, force: true });
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
it('resume only tolerates the active run bootstrap dirt', async () => {
|
|
147
|
+
const repo = await initRepo();
|
|
148
|
+
try {
|
|
149
|
+
const contract = await makeContract(repo);
|
|
150
|
+
const worktreePath = join(repo, '..', `${repo.split('/').pop()}.omc-worktrees`, 'autoresearch-missions-demo-20260314t041500z');
|
|
151
|
+
execFileSync('git', ['worktree', 'add', '-b', 'autoresearch/missions-demo/20260314t041500z', worktreePath, 'HEAD'], {
|
|
152
|
+
cwd: repo,
|
|
153
|
+
stdio: 'ignore',
|
|
154
|
+
});
|
|
155
|
+
const worktreeContract = await materializeAutoresearchMissionToWorktree(contract, worktreePath);
|
|
156
|
+
const runtime = await prepareAutoresearchRuntime(worktreeContract, repo, worktreePath, { runTag: '20260314T041500Z' });
|
|
157
|
+
const statePath = join(repo, '.omc', 'state', 'autoresearch-state.json');
|
|
158
|
+
const idleState = {
|
|
159
|
+
schema_version: 1,
|
|
160
|
+
active: false,
|
|
161
|
+
run_id: runtime.runId,
|
|
162
|
+
mission_slug: contract.missionSlug,
|
|
163
|
+
repo_root: repo,
|
|
164
|
+
worktree_path: worktreePath,
|
|
165
|
+
status: 'idle',
|
|
166
|
+
updated_at: '2026-03-14T04:16:00.000Z',
|
|
167
|
+
};
|
|
168
|
+
await writeFile(statePath, `${JSON.stringify(idleState, null, 2)}\n`, 'utf-8');
|
|
169
|
+
await expect(resumeAutoresearchRuntime(repo, runtime.runId)).resolves.toMatchObject({ runId: runtime.runId });
|
|
170
|
+
await writeFile(statePath, `${JSON.stringify(idleState, null, 2)}\n`, 'utf-8');
|
|
171
|
+
await writeFile(join(worktreePath, 'missions', 'demo', 'extra.md'), 'unexpected\n', 'utf-8');
|
|
172
|
+
await expect(resumeAutoresearchRuntime(repo, runtime.runId)).rejects.toThrow(/autoresearch_reset_requires_clean_worktree/i);
|
|
173
|
+
}
|
|
174
|
+
finally {
|
|
175
|
+
await rm(repo, { recursive: true, force: true });
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
it('decides ambiguous vs keep based on keep_policy semantics', () => {
|
|
179
|
+
const candidate = {
|
|
180
|
+
status: 'candidate',
|
|
181
|
+
candidate_commit: 'abc1234',
|
|
182
|
+
base_commit: 'base1234',
|
|
183
|
+
description: 'candidate',
|
|
184
|
+
notes: [],
|
|
185
|
+
created_at: '2026-03-14T05:00:00.000Z',
|
|
186
|
+
};
|
|
187
|
+
const ambiguous = decideAutoresearchOutcome({ keep_policy: 'score_improvement', last_kept_score: null }, candidate, { command: 'node eval.js', ran_at: '2026-03-14T05:00:01.000Z', status: 'pass', pass: true, exit_code: 0 });
|
|
188
|
+
expect(ambiguous.decision).toBe('ambiguous');
|
|
189
|
+
expect(ambiguous.keep).toBe(false);
|
|
190
|
+
const kept = decideAutoresearchOutcome({ keep_policy: 'pass_only', last_kept_score: null }, candidate, { command: 'node eval.js', ran_at: '2026-03-14T05:00:01.000Z', status: 'pass', pass: true, exit_code: 0 });
|
|
191
|
+
expect(kept.decision).toBe('keep');
|
|
192
|
+
expect(kept.keep).toBe(true);
|
|
193
|
+
});
|
|
194
|
+
it('resume rejects terminal manifests', async () => {
|
|
195
|
+
const repo = await initRepo();
|
|
196
|
+
try {
|
|
197
|
+
const contract = await makeContract(repo);
|
|
198
|
+
const worktreePath = join(repo, '..', `${repo.split('/').pop()}.omc-worktrees`, 'autoresearch-missions-demo-20260314t050000z');
|
|
199
|
+
execFileSync('git', ['worktree', 'add', '-b', 'autoresearch/missions-demo/20260314t050000z', worktreePath, 'HEAD'], {
|
|
200
|
+
cwd: repo,
|
|
201
|
+
stdio: 'ignore',
|
|
202
|
+
});
|
|
203
|
+
const worktreeContract = await materializeAutoresearchMissionToWorktree(contract, worktreePath);
|
|
204
|
+
const runtime = await prepareAutoresearchRuntime(worktreeContract, repo, worktreePath, { runTag: '20260314T050000Z' });
|
|
205
|
+
const manifest = JSON.parse(await readFile(runtime.manifestFile, 'utf-8'));
|
|
206
|
+
manifest.status = 'completed';
|
|
207
|
+
await writeFile(runtime.manifestFile, `${JSON.stringify(manifest, null, 2)}\n`, 'utf-8');
|
|
208
|
+
await writeFile(join(repo, '.omc', 'state', 'autoresearch-state.json'), `${JSON.stringify({
|
|
209
|
+
schema_version: 1,
|
|
210
|
+
active: false,
|
|
211
|
+
run_id: runtime.runId,
|
|
212
|
+
mission_slug: contract.missionSlug,
|
|
213
|
+
repo_root: repo,
|
|
214
|
+
worktree_path: worktreePath,
|
|
215
|
+
status: 'completed',
|
|
216
|
+
updated_at: '2026-03-14T05:05:00.000Z',
|
|
217
|
+
}, null, 2)}\n`, 'utf-8');
|
|
218
|
+
await expect(resumeAutoresearchRuntime(repo, runtime.runId)).rejects.toThrow(/autoresearch_resume_terminal_run/i);
|
|
219
|
+
}
|
|
220
|
+
finally {
|
|
221
|
+
await rm(repo, { recursive: true, force: true });
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
it('records noop and abort candidate branches explicitly', async () => {
|
|
225
|
+
const repo = await initRepo();
|
|
226
|
+
try {
|
|
227
|
+
const contract = await makeContract(repo);
|
|
228
|
+
const worktreePath = join(repo, '..', `${repo.split('/').pop()}.omc-worktrees`, 'autoresearch-missions-demo-20260314t060000z');
|
|
229
|
+
execFileSync('git', ['worktree', 'add', '-b', 'autoresearch/missions-demo/20260314t060000z', worktreePath, 'HEAD'], {
|
|
230
|
+
cwd: repo,
|
|
231
|
+
stdio: 'ignore',
|
|
232
|
+
});
|
|
233
|
+
const worktreeContract = await materializeAutoresearchMissionToWorktree(contract, worktreePath);
|
|
234
|
+
const runtime = await prepareAutoresearchRuntime(worktreeContract, repo, worktreePath, { runTag: '20260314T060000Z' });
|
|
235
|
+
let manifest = await loadAutoresearchRunManifest(repo, runtime.runId);
|
|
236
|
+
await writeFile(runtime.candidateFile, `${JSON.stringify({
|
|
237
|
+
status: 'noop',
|
|
238
|
+
candidate_commit: null,
|
|
239
|
+
base_commit: manifest.last_kept_commit,
|
|
240
|
+
description: 'no useful change',
|
|
241
|
+
notes: ['noop branch'],
|
|
242
|
+
created_at: '2026-03-14T06:01:00.000Z',
|
|
243
|
+
}, null, 2)}\n`, 'utf-8');
|
|
244
|
+
expect(await processAutoresearchCandidate(worktreeContract, manifest, repo)).toBe('noop');
|
|
245
|
+
manifest = await loadAutoresearchRunManifest(repo, runtime.runId);
|
|
246
|
+
await writeFile(runtime.candidateFile, `${JSON.stringify({
|
|
247
|
+
status: 'abort',
|
|
248
|
+
candidate_commit: null,
|
|
249
|
+
base_commit: manifest.last_kept_commit,
|
|
250
|
+
description: 'operator stop',
|
|
251
|
+
notes: ['abort branch'],
|
|
252
|
+
created_at: '2026-03-14T06:02:00.000Z',
|
|
253
|
+
}, null, 2)}\n`, 'utf-8');
|
|
254
|
+
expect(await processAutoresearchCandidate(worktreeContract, manifest, repo)).toBe('abort');
|
|
255
|
+
const results = await readFile(runtime.resultsFile, 'utf-8');
|
|
256
|
+
expect(results).toMatch(/^1\t.+\t\t\tnoop\tno useful change$/m);
|
|
257
|
+
expect(results).toMatch(/^2\t.+\t\t\tabort\toperator stop$/m);
|
|
258
|
+
const finalManifest = await loadAutoresearchRunManifest(repo, runtime.runId);
|
|
259
|
+
expect(finalManifest.status).toBe('stopped');
|
|
260
|
+
expect(finalManifest.stop_reason).toBe('candidate abort');
|
|
261
|
+
}
|
|
262
|
+
finally {
|
|
263
|
+
await rm(repo, { recursive: true, force: true });
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
it('discard reset tolerates only exact bootstrap dirt', async () => {
|
|
267
|
+
const repo = await initRepo();
|
|
268
|
+
try {
|
|
269
|
+
const contract = await makeContract(repo);
|
|
270
|
+
const worktreePath = join(repo, '..', `${repo.split('/').pop()}.omc-worktrees`, 'autoresearch-missions-demo-20260314t061500z');
|
|
271
|
+
execFileSync('git', ['worktree', 'add', '-b', 'autoresearch/missions-demo/20260314t061500z', worktreePath, 'HEAD'], {
|
|
272
|
+
cwd: repo,
|
|
273
|
+
stdio: 'ignore',
|
|
274
|
+
});
|
|
275
|
+
const worktreeContract = await materializeAutoresearchMissionToWorktree(contract, worktreePath);
|
|
276
|
+
const runtime = await prepareAutoresearchRuntime(worktreeContract, repo, worktreePath, { runTag: '20260314T061500Z' });
|
|
277
|
+
await writeFile(join(worktreePath, 'score.txt'), '0\n', 'utf-8');
|
|
278
|
+
execFileSync('git', ['add', 'score.txt'], { cwd: worktreePath, stdio: 'ignore' });
|
|
279
|
+
execFileSync('git', ['commit', '-m', 'worse score'], { cwd: worktreePath, stdio: 'ignore' });
|
|
280
|
+
const worseCommit = execFileSync('git', ['rev-parse', 'HEAD'], { cwd: worktreePath, encoding: 'utf-8' }).trim();
|
|
281
|
+
let manifest = await loadAutoresearchRunManifest(repo, runtime.runId);
|
|
282
|
+
await writeFile(runtime.candidateFile, `${JSON.stringify({
|
|
283
|
+
status: 'candidate',
|
|
284
|
+
candidate_commit: worseCommit,
|
|
285
|
+
base_commit: manifest.last_kept_commit,
|
|
286
|
+
description: 'worse score',
|
|
287
|
+
notes: ['discard should reset safely'],
|
|
288
|
+
created_at: '2026-03-14T06:15:00.000Z',
|
|
289
|
+
}, null, 2)}\n`, 'utf-8');
|
|
290
|
+
await expect(processAutoresearchCandidate(worktreeContract, manifest, repo)).resolves.toBe('discard');
|
|
291
|
+
await writeFile(join(worktreePath, 'score.txt'), '0\n', 'utf-8');
|
|
292
|
+
execFileSync('git', ['add', 'score.txt'], { cwd: worktreePath, stdio: 'ignore' });
|
|
293
|
+
execFileSync('git', ['commit', '-m', 'worse score again'], { cwd: worktreePath, stdio: 'ignore' });
|
|
294
|
+
const worseAgainCommit = execFileSync('git', ['rev-parse', 'HEAD'], { cwd: worktreePath, encoding: 'utf-8' }).trim();
|
|
295
|
+
await writeFile(join(worktreePath, 'missions', 'demo', 'extra.md'), 'unexpected\n', 'utf-8');
|
|
296
|
+
manifest = await loadAutoresearchRunManifest(repo, runtime.runId);
|
|
297
|
+
await writeFile(runtime.candidateFile, `${JSON.stringify({
|
|
298
|
+
status: 'candidate',
|
|
299
|
+
candidate_commit: worseAgainCommit,
|
|
300
|
+
base_commit: manifest.last_kept_commit,
|
|
301
|
+
description: 'worse again',
|
|
302
|
+
notes: ['discard should fail on unrelated dirt'],
|
|
303
|
+
created_at: '2026-03-14T06:16:00.000Z',
|
|
304
|
+
}, null, 2)}\n`, 'utf-8');
|
|
305
|
+
await expect(processAutoresearchCandidate(worktreeContract, manifest, repo)).rejects.toThrow(/autoresearch_reset_requires_clean_worktree/i);
|
|
306
|
+
}
|
|
307
|
+
finally {
|
|
308
|
+
await rm(repo, { recursive: true, force: true });
|
|
309
|
+
}
|
|
310
|
+
});
|
|
311
|
+
it('interrupted handling tolerates only exact bootstrap dirt', async () => {
|
|
312
|
+
const repo = await initRepo();
|
|
313
|
+
try {
|
|
314
|
+
const contract = await makeContract(repo);
|
|
315
|
+
const worktreePath = join(repo, '..', `${repo.split('/').pop()}.omc-worktrees`, 'autoresearch-missions-demo-20260314t061700z');
|
|
316
|
+
execFileSync('git', ['worktree', 'add', '-b', 'autoresearch/missions-demo/20260314t061700z', worktreePath, 'HEAD'], {
|
|
317
|
+
cwd: repo,
|
|
318
|
+
stdio: 'ignore',
|
|
319
|
+
});
|
|
320
|
+
const worktreeContract = await materializeAutoresearchMissionToWorktree(contract, worktreePath);
|
|
321
|
+
const runtime = await prepareAutoresearchRuntime(worktreeContract, repo, worktreePath, { runTag: '20260314T061700Z' });
|
|
322
|
+
let manifest = await loadAutoresearchRunManifest(repo, runtime.runId);
|
|
323
|
+
await writeFile(runtime.candidateFile, `${JSON.stringify({
|
|
324
|
+
status: 'interrupted',
|
|
325
|
+
candidate_commit: null,
|
|
326
|
+
base_commit: manifest.last_kept_commit,
|
|
327
|
+
description: 'interrupted cleanly',
|
|
328
|
+
notes: ['bootstrap dirt only'],
|
|
329
|
+
created_at: '2026-03-14T06:17:00.000Z',
|
|
330
|
+
}, null, 2)}\n`, 'utf-8');
|
|
331
|
+
await expect(processAutoresearchCandidate(worktreeContract, manifest, repo)).resolves.toBe('interrupted');
|
|
332
|
+
await writeFile(join(worktreePath, 'missions', 'demo', 'extra.md'), 'unexpected\n', 'utf-8');
|
|
333
|
+
manifest = await loadAutoresearchRunManifest(repo, runtime.runId);
|
|
334
|
+
await writeFile(runtime.candidateFile, `${JSON.stringify({
|
|
335
|
+
status: 'interrupted',
|
|
336
|
+
candidate_commit: null,
|
|
337
|
+
base_commit: manifest.last_kept_commit,
|
|
338
|
+
description: 'interrupted with unrelated dirt',
|
|
339
|
+
notes: ['should fail'],
|
|
340
|
+
created_at: '2026-03-14T06:18:00.000Z',
|
|
341
|
+
}, null, 2)}\n`, 'utf-8');
|
|
342
|
+
await expect(processAutoresearchCandidate(worktreeContract, manifest, repo)).resolves.toBe('error');
|
|
343
|
+
const failedManifest = await loadAutoresearchRunManifest(repo, runtime.runId);
|
|
344
|
+
expect(failedManifest.status).toBe('failed');
|
|
345
|
+
expect(failedManifest.stop_reason).toMatch(/interrupted dirty worktree requires operator intervention/i);
|
|
346
|
+
}
|
|
347
|
+
finally {
|
|
348
|
+
await rm(repo, { recursive: true, force: true });
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
});
|
|
352
|
+
//# sourceMappingURL=runtime-parity-extra.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-parity-extra.test.js","sourceRoot":"","sources":["../../../src/autoresearch/__tests__/runtime-parity-extra.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.test.d.ts","sourceRoot":"","sources":["../../../src/autoresearch/__tests__/runtime.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { mkdtemp, mkdir, readFile, rm, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { existsSync } from 'node:fs';
|
|
4
|
+
import { execFileSync } from 'node:child_process';
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
import { tmpdir } from 'node:os';
|
|
7
|
+
import { assertResetSafeWorktree, buildAutoresearchInstructions, loadAutoresearchRunManifest, materializeAutoresearchMissionToWorktree, prepareAutoresearchRuntime, processAutoresearchCandidate, } from '../runtime.js';
|
|
8
|
+
import { readModeState } from '../../lib/mode-state-io.js';
|
|
9
|
+
async function initRepo() {
|
|
10
|
+
const cwd = await mkdtemp(join(tmpdir(), 'omc-autoresearch-runtime-'));
|
|
11
|
+
execFileSync('git', ['init'], { cwd, stdio: 'ignore' });
|
|
12
|
+
execFileSync('git', ['config', 'user.email', 'test@example.com'], { cwd, stdio: 'ignore' });
|
|
13
|
+
execFileSync('git', ['config', 'user.name', 'Test User'], { cwd, stdio: 'ignore' });
|
|
14
|
+
await writeFile(join(cwd, 'README.md'), 'hello\n', 'utf-8');
|
|
15
|
+
execFileSync('git', ['add', 'README.md'], { cwd, stdio: 'ignore' });
|
|
16
|
+
execFileSync('git', ['commit', '-m', 'init'], { cwd, stdio: 'ignore' });
|
|
17
|
+
return cwd;
|
|
18
|
+
}
|
|
19
|
+
async function makeContract(repo) {
|
|
20
|
+
const missionDir = join(repo, 'missions', 'demo');
|
|
21
|
+
await mkdir(missionDir, { recursive: true });
|
|
22
|
+
await mkdir(join(repo, 'scripts'), { recursive: true });
|
|
23
|
+
const missionFile = join(missionDir, 'mission.md');
|
|
24
|
+
const sandboxFile = join(missionDir, 'sandbox.md');
|
|
25
|
+
const missionContent = '# Mission\nSolve the task.\n';
|
|
26
|
+
const sandboxContent = `---\nevaluator:\n command: node scripts/eval.js\n format: json\n---\nStay inside the mission boundary.\n`;
|
|
27
|
+
await writeFile(missionFile, missionContent, 'utf-8');
|
|
28
|
+
await writeFile(sandboxFile, sandboxContent, 'utf-8');
|
|
29
|
+
await writeFile(join(repo, 'score.txt'), '1\n', 'utf-8');
|
|
30
|
+
await writeFile(join(repo, 'scripts', 'eval.js'), "import { readFileSync } from 'node:fs';\nconst score = Number(readFileSync('score.txt', 'utf-8').trim());\nprocess.stdout.write(JSON.stringify({ pass: true, score }));\n", 'utf-8');
|
|
31
|
+
execFileSync('git', ['add', 'missions/demo/mission.md', 'missions/demo/sandbox.md', 'scripts/eval.js', 'score.txt'], { cwd: repo, stdio: 'ignore' });
|
|
32
|
+
execFileSync('git', ['commit', '-m', 'add autoresearch fixtures'], { cwd: repo, stdio: 'ignore' });
|
|
33
|
+
return {
|
|
34
|
+
missionDir,
|
|
35
|
+
repoRoot: repo,
|
|
36
|
+
missionFile,
|
|
37
|
+
sandboxFile,
|
|
38
|
+
missionRelativeDir: 'missions/demo',
|
|
39
|
+
missionContent,
|
|
40
|
+
sandboxContent,
|
|
41
|
+
sandbox: {
|
|
42
|
+
frontmatter: { evaluator: { command: 'node scripts/eval.js', format: 'json' } },
|
|
43
|
+
evaluator: { command: 'node scripts/eval.js', format: 'json' },
|
|
44
|
+
body: 'Stay inside the mission boundary.',
|
|
45
|
+
},
|
|
46
|
+
missionSlug: 'missions-demo',
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
describe('autoresearch runtime', () => {
|
|
50
|
+
it('builds bootstrap instructions with mission, sandbox, and evaluator contract', async () => {
|
|
51
|
+
const repo = await initRepo();
|
|
52
|
+
try {
|
|
53
|
+
const contract = await makeContract(repo);
|
|
54
|
+
const instructions = buildAutoresearchInstructions(contract, { runId: 'missions-demo-20260314t000000z', iteration: 1, baselineCommit: 'abc1234', lastKeptCommit: 'abc1234', resultsFile: 'results.tsv', candidateFile: '.omc/logs/autoresearch/missions-demo-20260314t000000z/candidate.json', keepPolicy: 'score_improvement' });
|
|
55
|
+
expect(instructions).toMatch(/exactly one experiment cycle/i);
|
|
56
|
+
expect(instructions).toMatch(/required output field: pass/i);
|
|
57
|
+
expect(instructions).toMatch(/optional output field: score/i);
|
|
58
|
+
expect(instructions).toMatch(/Iteration state snapshot:/i);
|
|
59
|
+
expect(instructions).toMatch(/Mission file:/i);
|
|
60
|
+
expect(instructions).toMatch(/Sandbox policy:/i);
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
await rm(repo, { recursive: true, force: true });
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
it('allows untracked .omc runtime files when checking reset safety', async () => {
|
|
67
|
+
const repo = await initRepo();
|
|
68
|
+
try {
|
|
69
|
+
await mkdir(join(repo, '.omc', 'logs'), { recursive: true });
|
|
70
|
+
await mkdir(join(repo, '.omc', 'state'), { recursive: true });
|
|
71
|
+
await writeFile(join(repo, '.omc', 'logs', 'hooks-2026-03-15.jsonl'), '{}\n', 'utf-8');
|
|
72
|
+
await writeFile(join(repo, '.omc', 'metrics.json'), '{}\n', 'utf-8');
|
|
73
|
+
await writeFile(join(repo, '.omc', 'state', 'hud-state.json'), '{}\n', 'utf-8');
|
|
74
|
+
expect(() => assertResetSafeWorktree(repo)).not.toThrow();
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
await rm(repo, { recursive: true, force: true });
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
it('prepares runtime artifacts and persists autoresearch mode state', async () => {
|
|
81
|
+
const repo = await initRepo();
|
|
82
|
+
try {
|
|
83
|
+
const contract = await makeContract(repo);
|
|
84
|
+
await mkdir(join(repo, 'node_modules', 'fixture-dep'), { recursive: true });
|
|
85
|
+
await writeFile(join(repo, 'node_modules', 'fixture-dep', 'index.js'), 'export default 1;\n', 'utf-8');
|
|
86
|
+
const worktreePath = join(repo, '..', `${repo.split('/').pop()}.omc-worktrees`, 'autoresearch-missions-demo-20260314t000000z');
|
|
87
|
+
execFileSync('git', ['worktree', 'add', '-b', 'autoresearch/missions-demo/20260314t000000z', worktreePath, 'HEAD'], {
|
|
88
|
+
cwd: repo,
|
|
89
|
+
stdio: 'ignore',
|
|
90
|
+
});
|
|
91
|
+
const worktreeContract = await materializeAutoresearchMissionToWorktree(contract, worktreePath);
|
|
92
|
+
const runtime = await prepareAutoresearchRuntime(worktreeContract, repo, worktreePath, { runTag: '20260314T000000Z' });
|
|
93
|
+
expect(existsSync(worktreeContract.missionFile)).toBe(true);
|
|
94
|
+
expect(existsSync(worktreeContract.sandboxFile)).toBe(true);
|
|
95
|
+
expect(existsSync(runtime.instructionsFile)).toBe(true);
|
|
96
|
+
expect(existsSync(runtime.manifestFile)).toBe(true);
|
|
97
|
+
expect(existsSync(runtime.ledgerFile)).toBe(true);
|
|
98
|
+
expect(existsSync(runtime.latestEvaluatorFile)).toBe(true);
|
|
99
|
+
expect(existsSync(runtime.resultsFile)).toBe(true);
|
|
100
|
+
expect(existsSync(join(worktreePath, 'node_modules'))).toBe(true);
|
|
101
|
+
expect(() => assertResetSafeWorktree(worktreePath)).not.toThrow();
|
|
102
|
+
const manifest = JSON.parse(await readFile(runtime.manifestFile, 'utf-8'));
|
|
103
|
+
expect(manifest.mission_slug).toBe('missions-demo');
|
|
104
|
+
expect(manifest.branch_name).toBe('autoresearch/missions-demo/20260314t000000z');
|
|
105
|
+
expect(manifest.mission_dir).toBe(join(worktreePath, 'missions', 'demo'));
|
|
106
|
+
expect(manifest.worktree_path).toBe(worktreePath);
|
|
107
|
+
expect(manifest.results_file).toBe(runtime.resultsFile);
|
|
108
|
+
expect(typeof manifest.baseline_commit).toBe('string');
|
|
109
|
+
const ledger = JSON.parse(await readFile(runtime.ledgerFile, 'utf-8'));
|
|
110
|
+
expect(Array.isArray(ledger.entries)).toBe(true);
|
|
111
|
+
expect(ledger.entries.length).toBe(1);
|
|
112
|
+
const latestEvaluator = JSON.parse(await readFile(runtime.latestEvaluatorFile, 'utf-8'));
|
|
113
|
+
expect(latestEvaluator.status).toBe('pass');
|
|
114
|
+
expect(latestEvaluator.pass).toBe(true);
|
|
115
|
+
expect(latestEvaluator.score).toBe(1);
|
|
116
|
+
const results = await readFile(runtime.resultsFile, 'utf-8');
|
|
117
|
+
expect(results).toMatch(/^iteration commit pass score status description$/m);
|
|
118
|
+
expect(results).toMatch(/^0 .+ true 1 baseline initial baseline evaluation$/m);
|
|
119
|
+
const state = readModeState('autoresearch', repo);
|
|
120
|
+
expect(state).toBeTruthy();
|
|
121
|
+
const worktreeState = readModeState('autoresearch', worktreePath);
|
|
122
|
+
expect(worktreeState).toBeNull();
|
|
123
|
+
expect(state?.active).toBe(true);
|
|
124
|
+
expect(state?.current_phase).toBe('running');
|
|
125
|
+
expect(state?.mission_slug).toBe('missions-demo');
|
|
126
|
+
expect(state?.mission_dir).toBe(join(worktreePath, 'missions', 'demo'));
|
|
127
|
+
expect(state?.worktree_path).toBe(worktreePath);
|
|
128
|
+
expect(state?.bootstrap_instructions_path).toBe(runtime.instructionsFile);
|
|
129
|
+
expect(state?.latest_evaluator_status).toBe('pass');
|
|
130
|
+
expect(state?.results_file).toBe(runtime.resultsFile);
|
|
131
|
+
expect(state?.baseline_commit).toBe(manifest.baseline_commit);
|
|
132
|
+
const instructions = await readFile(runtime.instructionsFile, 'utf-8');
|
|
133
|
+
expect(instructions).toMatch(/Last kept score:\s+1/i);
|
|
134
|
+
expect(instructions).toMatch(/previous_iteration_outcome/i);
|
|
135
|
+
expect(instructions).toMatch(/baseline established/i);
|
|
136
|
+
}
|
|
137
|
+
finally {
|
|
138
|
+
await rm(repo, { recursive: true, force: true });
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
describe('autoresearch parity decisions', () => {
|
|
143
|
+
it('keeps improved candidates and resets discarded candidates back to the last kept commit', async () => {
|
|
144
|
+
const repo = await initRepo();
|
|
145
|
+
try {
|
|
146
|
+
const contract = await makeContract(repo);
|
|
147
|
+
const worktreePath = join(repo, '..', `${repo.split('/').pop()}.omc-worktrees`, 'autoresearch-missions-demo-20260314t010000z');
|
|
148
|
+
execFileSync('git', ['worktree', 'add', '-b', 'autoresearch/missions-demo/20260314t010000z', worktreePath, 'HEAD'], {
|
|
149
|
+
cwd: repo,
|
|
150
|
+
stdio: 'ignore',
|
|
151
|
+
});
|
|
152
|
+
const worktreeContract = await materializeAutoresearchMissionToWorktree(contract, worktreePath);
|
|
153
|
+
const runtime = await prepareAutoresearchRuntime(worktreeContract, repo, worktreePath, { runTag: '20260314T010000Z' });
|
|
154
|
+
await writeFile(join(worktreePath, 'score.txt'), '2\n', 'utf-8');
|
|
155
|
+
execFileSync('git', ['add', 'score.txt'], { cwd: worktreePath, stdio: 'ignore' });
|
|
156
|
+
execFileSync('git', ['commit', '-m', 'improve score'], { cwd: worktreePath, stdio: 'ignore' });
|
|
157
|
+
const improvedCommit = execFileSync('git', ['rev-parse', 'HEAD'], { cwd: worktreePath, encoding: 'utf-8' }).trim();
|
|
158
|
+
const initialManifest = await loadAutoresearchRunManifest(repo, runtime.runId);
|
|
159
|
+
await writeFile(runtime.candidateFile, `${JSON.stringify({
|
|
160
|
+
status: 'candidate',
|
|
161
|
+
candidate_commit: improvedCommit,
|
|
162
|
+
base_commit: initialManifest.last_kept_commit,
|
|
163
|
+
description: 'improved score',
|
|
164
|
+
notes: ['score raised to 2'],
|
|
165
|
+
created_at: '2026-03-14T01:00:00.000Z',
|
|
166
|
+
}, null, 2)}\n`, 'utf-8');
|
|
167
|
+
const keepDecision = await processAutoresearchCandidate(worktreeContract, initialManifest, repo);
|
|
168
|
+
expect(keepDecision).toBe('keep');
|
|
169
|
+
const keptManifest = await loadAutoresearchRunManifest(repo, runtime.runId);
|
|
170
|
+
expect(keptManifest.last_kept_commit).toBe(improvedCommit);
|
|
171
|
+
await writeFile(join(worktreePath, 'score.txt'), '1\n', 'utf-8');
|
|
172
|
+
execFileSync('git', ['add', 'score.txt'], { cwd: worktreePath, stdio: 'ignore' });
|
|
173
|
+
execFileSync('git', ['commit', '-m', 'worse score'], { cwd: worktreePath, stdio: 'ignore' });
|
|
174
|
+
const worseCommit = execFileSync('git', ['rev-parse', 'HEAD'], { cwd: worktreePath, encoding: 'utf-8' }).trim();
|
|
175
|
+
const beforeDiscardManifest = await loadAutoresearchRunManifest(repo, runtime.runId);
|
|
176
|
+
await writeFile(runtime.candidateFile, `${JSON.stringify({
|
|
177
|
+
status: 'candidate',
|
|
178
|
+
candidate_commit: worseCommit,
|
|
179
|
+
base_commit: beforeDiscardManifest.last_kept_commit,
|
|
180
|
+
description: 'worse score',
|
|
181
|
+
notes: ['score dropped back to 1'],
|
|
182
|
+
created_at: '2026-03-14T01:05:00.000Z',
|
|
183
|
+
}, null, 2)}\n`, 'utf-8');
|
|
184
|
+
const discardDecision = await processAutoresearchCandidate(worktreeContract, beforeDiscardManifest, repo);
|
|
185
|
+
expect(discardDecision).toBe('discard');
|
|
186
|
+
const headAfterDiscard = execFileSync('git', ['rev-parse', 'HEAD'], { cwd: worktreePath, encoding: 'utf-8' }).trim();
|
|
187
|
+
expect(headAfterDiscard).toBe(improvedCommit);
|
|
188
|
+
const finalManifest = await loadAutoresearchRunManifest(repo, runtime.runId);
|
|
189
|
+
const results = await readFile(runtime.resultsFile, 'utf-8');
|
|
190
|
+
expect(results).toMatch(/^1\t.+\ttrue\t2\tkeep\timproved score$/m);
|
|
191
|
+
expect(results).toMatch(/^2\t.+\ttrue\t1\tdiscard\tworse score$/m);
|
|
192
|
+
const ledger = JSON.parse(await readFile(runtime.ledgerFile, 'utf-8'));
|
|
193
|
+
expect(ledger.entries.length).toBe(3);
|
|
194
|
+
expect(ledger.entries.map((entry) => [entry.decision, entry.description])).toEqual([
|
|
195
|
+
['baseline', 'initial baseline evaluation'],
|
|
196
|
+
['keep', 'improved score'],
|
|
197
|
+
['discard', 'worse score'],
|
|
198
|
+
]);
|
|
199
|
+
const instructions = await readFile(runtime.instructionsFile, 'utf-8');
|
|
200
|
+
expect(instructions).toMatch(/"previous_iteration_outcome": "discard:score did not improve"/);
|
|
201
|
+
expect(instructions).toMatch(/"decision": "keep"/);
|
|
202
|
+
expect(instructions).toMatch(/"decision": "discard"/);
|
|
203
|
+
expect(finalManifest.last_kept_commit).toBe(improvedCommit);
|
|
204
|
+
}
|
|
205
|
+
finally {
|
|
206
|
+
await rm(repo, { recursive: true, force: true });
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
//# sourceMappingURL=runtime.test.js.map
|