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
package/dist/hooks/bridge.js
CHANGED
|
@@ -12,23 +12,27 @@
|
|
|
12
12
|
* echo "$INPUT" | node ~/.claude/omc/hook-bridge.mjs --hook=keyword-detector
|
|
13
13
|
* ```
|
|
14
14
|
*/
|
|
15
|
-
import { pathToFileURL } from
|
|
16
|
-
import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "fs";
|
|
15
|
+
import { pathToFileURL } from "url";
|
|
16
|
+
import { existsSync, mkdirSync, readFileSync, renameSync, unlinkSync, writeFileSync, } from "fs";
|
|
17
17
|
import { dirname, join } from "path";
|
|
18
18
|
import { resolveToWorktreeRoot, getOmcRoot } from "../lib/worktree-paths.js";
|
|
19
|
+
import { writeModeState } from "../lib/mode-state-io.js";
|
|
20
|
+
import { formatOmcCliInvocation } from "../utils/omc-cli-rendering.js";
|
|
21
|
+
import { createSwallowedErrorLogger } from "../lib/swallowed-error.js";
|
|
19
22
|
// Hot-path imports: needed on every/most hook invocations (keyword-detector, pre/post-tool-use)
|
|
20
|
-
import { removeCodeBlocks, getAllKeywordsWithSizeCheck, applyRalplanGate, sanitizeForKeywordDetection, NON_LATIN_SCRIPT_PATTERN } from "./keyword-detector/index.js";
|
|
21
|
-
import { processOrchestratorPreTool, processOrchestratorPostTool } from "./omc-orchestrator/index.js";
|
|
23
|
+
import { removeCodeBlocks, getAllKeywordsWithSizeCheck, applyRalplanGate, sanitizeForKeywordDetection, NON_LATIN_SCRIPT_PATTERN, } from "./keyword-detector/index.js";
|
|
24
|
+
import { processOrchestratorPreTool, processOrchestratorPostTool, } from "./omc-orchestrator/index.js";
|
|
22
25
|
import { normalizeHookInput } from "./bridge-normalize.js";
|
|
23
|
-
import { addBackgroundTask, getRunningTaskCount, } from "../hud/background-tasks.js";
|
|
26
|
+
import { addBackgroundTask, completeBackgroundTask, completeMostRecentMatchingBackgroundTask, getRunningTaskCount, remapBackgroundTaskId, remapMostRecentMatchingBackgroundTaskId, } from "../hud/background-tasks.js";
|
|
24
27
|
import { readHudState, writeHudState } from "../hud/state.js";
|
|
25
28
|
import { compactOmcStartupGuidance, loadConfig } from "../config/loader.js";
|
|
29
|
+
import { resolveAutopilotPlanPath, resolveOpenQuestionsPlanPath, } from "../config/plan-output.js";
|
|
26
30
|
import { writeSkillActiveState } from "./skill-state/index.js";
|
|
27
31
|
import { ULTRAWORK_MESSAGE, ULTRATHINK_MESSAGE, SEARCH_MESSAGE, ANALYZE_MESSAGE, TDD_MESSAGE, CODE_REVIEW_MESSAGE, SECURITY_REVIEW_MESSAGE, RALPH_MESSAGE, PROMPT_TRANSLATION_MESSAGE, } from "../installer/hooks.js";
|
|
28
32
|
// Agent dashboard is used in pre/post-tool-use hot path
|
|
29
|
-
import { getAgentDashboard
|
|
33
|
+
import { getAgentDashboard } from "./subagent-tracker/index.js";
|
|
30
34
|
// Session replay recordFileTouch is used in pre-tool-use hot path
|
|
31
|
-
import { recordFileTouch
|
|
35
|
+
import { recordFileTouch } from "./subagent-tracker/session-replay.js";
|
|
32
36
|
import { getBackgroundBashPermissionFallback, getBackgroundTaskPermissionFallback, } from "./permission-handler/index.js";
|
|
33
37
|
// Security: wrap untrusted file content to prevent prompt injection
|
|
34
38
|
import { wrapUntrustedFileContent } from "../agents/prompt-helpers.js";
|
|
@@ -67,6 +71,135 @@ const TEAM_STAGE_ALIASES = {
|
|
|
67
71
|
fix: "team-fix",
|
|
68
72
|
fixing: "team-fix",
|
|
69
73
|
};
|
|
74
|
+
const BACKGROUND_AGENT_ID_PATTERN = /agentId:\s*([a-zA-Z0-9_-]+)/;
|
|
75
|
+
const TASK_OUTPUT_ID_PATTERN = /<task_id>([^<]+)<\/task_id>/i;
|
|
76
|
+
const TASK_OUTPUT_STATUS_PATTERN = /<status>([^<]+)<\/status>/i;
|
|
77
|
+
const SAFE_SESSION_ID_PATTERN = /^[a-zA-Z0-9][a-zA-Z0-9_-]{0,255}$/;
|
|
78
|
+
const MODE_CONFIRMATION_SKILL_MAP = {
|
|
79
|
+
ralph: ["ralph", "ultrawork"],
|
|
80
|
+
ultrawork: ["ultrawork"],
|
|
81
|
+
autopilot: ["autopilot"],
|
|
82
|
+
ralplan: ["ralplan"],
|
|
83
|
+
};
|
|
84
|
+
function getExtraField(input, key) {
|
|
85
|
+
return input[key];
|
|
86
|
+
}
|
|
87
|
+
function getHookToolUseId(input) {
|
|
88
|
+
const value = getExtraField(input, "tool_use_id");
|
|
89
|
+
return typeof value === "string" && value.trim().length > 0 ? value : undefined;
|
|
90
|
+
}
|
|
91
|
+
function extractAsyncAgentId(toolOutput) {
|
|
92
|
+
if (typeof toolOutput !== "string") {
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
return toolOutput.match(BACKGROUND_AGENT_ID_PATTERN)?.[1];
|
|
96
|
+
}
|
|
97
|
+
function parseTaskOutputLifecycle(toolOutput) {
|
|
98
|
+
if (typeof toolOutput !== "string") {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
const taskId = toolOutput.match(TASK_OUTPUT_ID_PATTERN)?.[1]?.trim();
|
|
102
|
+
const status = toolOutput.match(TASK_OUTPUT_STATUS_PATTERN)?.[1]?.trim().toLowerCase();
|
|
103
|
+
if (!taskId || !status) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
return { taskId, status };
|
|
107
|
+
}
|
|
108
|
+
function taskOutputDidFail(status) {
|
|
109
|
+
return status === "failed" || status === "error";
|
|
110
|
+
}
|
|
111
|
+
function taskLaunchDidFail(toolOutput) {
|
|
112
|
+
if (typeof toolOutput !== "string") {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
const normalized = toolOutput.toLowerCase();
|
|
116
|
+
return normalized.includes("error") || normalized.includes("failed");
|
|
117
|
+
}
|
|
118
|
+
function getModeStatePaths(directory, modeName, sessionId) {
|
|
119
|
+
const stateDir = join(getOmcRoot(directory), "state");
|
|
120
|
+
const safeSessionId = typeof sessionId === "string" && SAFE_SESSION_ID_PATTERN.test(sessionId)
|
|
121
|
+
? sessionId
|
|
122
|
+
: undefined;
|
|
123
|
+
return [
|
|
124
|
+
safeSessionId ? join(stateDir, "sessions", safeSessionId, `${modeName}-state.json`) : null,
|
|
125
|
+
join(stateDir, `${modeName}-state.json`),
|
|
126
|
+
].filter((statePath) => Boolean(statePath));
|
|
127
|
+
}
|
|
128
|
+
function updateModeAwaitingConfirmation(directory, modeName, sessionId, awaitingConfirmation) {
|
|
129
|
+
for (const statePath of getModeStatePaths(directory, modeName, sessionId)) {
|
|
130
|
+
if (!existsSync(statePath)) {
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
try {
|
|
134
|
+
const state = JSON.parse(readFileSync(statePath, "utf-8"));
|
|
135
|
+
if (!state || typeof state !== "object") {
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
if (awaitingConfirmation) {
|
|
139
|
+
state.awaiting_confirmation = true;
|
|
140
|
+
}
|
|
141
|
+
else if (state.awaiting_confirmation === true) {
|
|
142
|
+
delete state.awaiting_confirmation;
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
const tmpPath = `${statePath}.${process.pid}.${Date.now()}.tmp`;
|
|
148
|
+
writeFileSync(tmpPath, JSON.stringify(state, null, 2));
|
|
149
|
+
renameSync(tmpPath, statePath);
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
// Best-effort state sync only.
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function markModeAwaitingConfirmation(directory, sessionId, ...modeNames) {
|
|
157
|
+
for (const modeName of modeNames) {
|
|
158
|
+
updateModeAwaitingConfirmation(directory, modeName, sessionId, true);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
function confirmSkillModeStates(directory, skillName, sessionId) {
|
|
162
|
+
for (const modeName of MODE_CONFIRMATION_SKILL_MAP[skillName] ?? []) {
|
|
163
|
+
updateModeAwaitingConfirmation(directory, modeName, sessionId, false);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
function getSkillInvocationArgs(toolInput) {
|
|
167
|
+
if (!toolInput || typeof toolInput !== "object") {
|
|
168
|
+
return "";
|
|
169
|
+
}
|
|
170
|
+
const input = toolInput;
|
|
171
|
+
const candidates = [
|
|
172
|
+
input.args,
|
|
173
|
+
input.arguments,
|
|
174
|
+
input.argument,
|
|
175
|
+
input.skill_args,
|
|
176
|
+
input.skillArgs,
|
|
177
|
+
input.prompt,
|
|
178
|
+
input.description,
|
|
179
|
+
input.input,
|
|
180
|
+
];
|
|
181
|
+
return candidates.find((value) => typeof value === "string" && value.trim().length > 0)?.trim() ?? "";
|
|
182
|
+
}
|
|
183
|
+
function isConsensusPlanningSkillInvocation(skillName, toolInput) {
|
|
184
|
+
if (!skillName) {
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
if (skillName === "ralplan") {
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
if (skillName !== "omc-plan" && skillName !== "plan") {
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
return getSkillInvocationArgs(toolInput).toLowerCase().includes("--consensus");
|
|
194
|
+
}
|
|
195
|
+
function activateRalplanState(directory, sessionId) {
|
|
196
|
+
writeModeState("ralplan", {
|
|
197
|
+
active: true,
|
|
198
|
+
session_id: sessionId,
|
|
199
|
+
current_phase: "ralplan",
|
|
200
|
+
started_at: new Date().toISOString(),
|
|
201
|
+
}, directory, sessionId);
|
|
202
|
+
}
|
|
70
203
|
function readTeamStagedState(directory, sessionId) {
|
|
71
204
|
const stateDir = join(getOmcRoot(directory), "state");
|
|
72
205
|
const statePaths = sessionId
|
|
@@ -105,7 +238,11 @@ function getTeamStage(state) {
|
|
|
105
238
|
"team-exec");
|
|
106
239
|
}
|
|
107
240
|
function getTeamStageForEnforcement(state) {
|
|
108
|
-
const rawStage = state.stage ??
|
|
241
|
+
const rawStage = state.stage ??
|
|
242
|
+
state.current_stage ??
|
|
243
|
+
state.currentStage ??
|
|
244
|
+
state.current_phase ??
|
|
245
|
+
state.phase;
|
|
109
246
|
if (typeof rawStage !== "string") {
|
|
110
247
|
return null;
|
|
111
248
|
}
|
|
@@ -131,7 +268,8 @@ function readTeamStopBreakerCount(directory, sessionId) {
|
|
|
131
268
|
const parsed = JSON.parse(readFileSync(breakerPath, "utf-8"));
|
|
132
269
|
if (typeof parsed.updated_at === "string") {
|
|
133
270
|
const updatedAt = new Date(parsed.updated_at).getTime();
|
|
134
|
-
if (Number.isFinite(updatedAt) &&
|
|
271
|
+
if (Number.isFinite(updatedAt) &&
|
|
272
|
+
Date.now() - updatedAt > TEAM_STOP_BLOCKER_TTL_MS) {
|
|
135
273
|
return 0;
|
|
136
274
|
}
|
|
137
275
|
}
|
|
@@ -168,7 +306,10 @@ function writeTeamStopBreakerCount(directory, sessionId, count) {
|
|
|
168
306
|
}
|
|
169
307
|
}
|
|
170
308
|
function isTeamStateTerminal(state) {
|
|
171
|
-
if (state.terminal === true ||
|
|
309
|
+
if (state.terminal === true ||
|
|
310
|
+
state.cancelled === true ||
|
|
311
|
+
state.canceled === true ||
|
|
312
|
+
state.completed === true) {
|
|
172
313
|
return true;
|
|
173
314
|
}
|
|
174
315
|
const status = String(state.status || "").toLowerCase();
|
|
@@ -205,7 +346,7 @@ function workerBashBlockReason(command) {
|
|
|
205
346
|
return "Team worker cannot run tmux pane/session orchestration commands.";
|
|
206
347
|
}
|
|
207
348
|
if (WORKER_BLOCKED_TEAM_CLI_PATTERN.test(command)) {
|
|
208
|
-
return
|
|
349
|
+
return `Team worker cannot run team orchestration commands. Use only \`${formatOmcCliInvocation("team api ... --json")}\`.`;
|
|
209
350
|
}
|
|
210
351
|
if (WORKER_BLOCKED_SKILL_PATTERN.test(command)) {
|
|
211
352
|
return "Team worker cannot invoke orchestration skills (`$team`, `$ultrawork`, `$autopilot`, `$ralph`).";
|
|
@@ -247,6 +388,10 @@ function validateHookInput(input, requiredFields, hookType) {
|
|
|
247
388
|
}
|
|
248
389
|
return true;
|
|
249
390
|
}
|
|
391
|
+
function isDelegationToolName(toolName) {
|
|
392
|
+
const normalizedToolName = (toolName || "").toLowerCase();
|
|
393
|
+
return normalizedToolName === "task" || normalizedToolName === "agent";
|
|
394
|
+
}
|
|
250
395
|
/**
|
|
251
396
|
* Extract prompt text from various input formats
|
|
252
397
|
*/
|
|
@@ -311,13 +456,16 @@ async function processKeywordDetector(input) {
|
|
|
311
456
|
// Apply ralplan-first gate BEFORE task-size suppression (issue #997).
|
|
312
457
|
// Reconstruct the full keyword set so the gate sees execution keywords
|
|
313
458
|
// that task-size suppression may have already removed for small tasks.
|
|
314
|
-
const fullKeywords = [
|
|
459
|
+
const fullKeywords = [
|
|
460
|
+
...sizeCheckResult.keywords,
|
|
461
|
+
...sizeCheckResult.suppressedKeywords,
|
|
462
|
+
];
|
|
315
463
|
const gateResult = applyRalplanGate(fullKeywords, cleanedText);
|
|
316
464
|
let keywords;
|
|
317
465
|
if (gateResult.gateApplied) {
|
|
318
466
|
// Gate fired: redirect to ralplan (task-size suppression is moot — we're planning, not executing)
|
|
319
467
|
keywords = gateResult.keywords;
|
|
320
|
-
const gated = gateResult.gatedKeywords.join(
|
|
468
|
+
const gated = gateResult.gatedKeywords.join(", ");
|
|
321
469
|
messages.push(`[RALPLAN GATE] Redirecting ${gated} → ralplan for scoping.\n` +
|
|
322
470
|
`Tip: add a concrete anchor to run directly next time:\n` +
|
|
323
471
|
` \u2022 "ralph fix the bug in src/auth.ts" (file path)\n` +
|
|
@@ -329,8 +477,9 @@ async function processKeywordDetector(input) {
|
|
|
329
477
|
// Gate did not fire: use task-size-suppressed result as normal
|
|
330
478
|
keywords = sizeCheckResult.keywords;
|
|
331
479
|
// Notify user when heavy modes were suppressed for a small task
|
|
332
|
-
if (sizeCheckResult.suppressedKeywords.length > 0 &&
|
|
333
|
-
|
|
480
|
+
if (sizeCheckResult.suppressedKeywords.length > 0 &&
|
|
481
|
+
sizeCheckResult.taskSizeResult) {
|
|
482
|
+
const suppressed = sizeCheckResult.suppressedKeywords.join(", ");
|
|
334
483
|
const reason = sizeCheckResult.taskSizeResult.reason;
|
|
335
484
|
messages.push(`[TASK-SIZE: SMALL] Heavy orchestration mode(s) suppressed: ${suppressed}.\n` +
|
|
336
485
|
`Reason: ${reason}\n` +
|
|
@@ -353,7 +502,7 @@ async function processKeywordDetector(input) {
|
|
|
353
502
|
}
|
|
354
503
|
if (keywords.length === 0) {
|
|
355
504
|
if (messages.length > 0) {
|
|
356
|
-
return { continue: true, message: messages.join(
|
|
505
|
+
return { continue: true, message: messages.join("\n\n---\n\n") };
|
|
357
506
|
}
|
|
358
507
|
return { continue: true };
|
|
359
508
|
}
|
|
@@ -362,21 +511,27 @@ async function processKeywordDetector(input) {
|
|
|
362
511
|
switch (keywordType) {
|
|
363
512
|
case "ralph": {
|
|
364
513
|
// Lazy-load ralph module
|
|
365
|
-
const { createRalphLoopHook, findPrdPath: findPrd, initPrd: initPrdFn, initProgress: initProgressFn, detectNoPrdFlag: detectNoPrd, stripNoPrdFlag: stripNoPrd, detectCriticModeFlag, stripCriticModeFlag } = await import("./ralph/index.js");
|
|
514
|
+
const { createRalphLoopHook, findPrdPath: findPrd, initPrd: initPrdFn, initProgress: initProgressFn, detectNoPrdFlag: detectNoPrd, stripNoPrdFlag: stripNoPrd, detectCriticModeFlag, stripCriticModeFlag, } = await import("./ralph/index.js");
|
|
366
515
|
// Handle --no-prd flag
|
|
367
516
|
const noPrd = detectNoPrd(promptText);
|
|
368
517
|
const criticMode = detectCriticModeFlag(promptText) ?? undefined;
|
|
369
518
|
const promptWithoutCriticFlag = stripCriticModeFlag(promptText);
|
|
370
|
-
const cleanPrompt = noPrd
|
|
519
|
+
const cleanPrompt = noPrd
|
|
520
|
+
? stripNoPrd(promptWithoutCriticFlag)
|
|
521
|
+
: promptWithoutCriticFlag;
|
|
371
522
|
// Auto-generate scaffold PRD if none exists and --no-prd not set
|
|
372
523
|
const existingPrd = findPrd(directory);
|
|
373
524
|
if (!noPrd && !existingPrd) {
|
|
374
525
|
const { basename } = await import("path");
|
|
375
526
|
const { execSync } = await import("child_process");
|
|
376
527
|
const projectName = basename(directory);
|
|
377
|
-
let branchName =
|
|
528
|
+
let branchName = "ralph/task";
|
|
378
529
|
try {
|
|
379
|
-
branchName = execSync(
|
|
530
|
+
branchName = execSync("git rev-parse --abbrev-ref HEAD", {
|
|
531
|
+
cwd: directory,
|
|
532
|
+
encoding: "utf-8",
|
|
533
|
+
timeout: 5000,
|
|
534
|
+
}).trim();
|
|
380
535
|
}
|
|
381
536
|
catch {
|
|
382
537
|
// Not a git repo or git not available — use fallback
|
|
@@ -386,7 +541,10 @@ async function processKeywordDetector(input) {
|
|
|
386
541
|
}
|
|
387
542
|
// Activate ralph state which also auto-activates ultrawork
|
|
388
543
|
const hook = createRalphLoopHook(directory);
|
|
389
|
-
hook.startLoop(sessionId, cleanPrompt, criticMode ? { criticMode } : undefined);
|
|
544
|
+
const started = hook.startLoop(sessionId, cleanPrompt, criticMode ? { criticMode } : undefined);
|
|
545
|
+
if (started) {
|
|
546
|
+
markModeAwaitingConfirmation(directory, sessionId, 'ralph', 'ultrawork');
|
|
547
|
+
}
|
|
390
548
|
messages.push(RALPH_MESSAGE);
|
|
391
549
|
break;
|
|
392
550
|
}
|
|
@@ -394,7 +552,10 @@ async function processKeywordDetector(input) {
|
|
|
394
552
|
// Lazy-load ultrawork module
|
|
395
553
|
const { activateUltrawork } = await import("./ultrawork/index.js");
|
|
396
554
|
// Activate persistent ultrawork state
|
|
397
|
-
activateUltrawork(promptText, sessionId, directory);
|
|
555
|
+
const activated = activateUltrawork(promptText, sessionId, directory);
|
|
556
|
+
if (activated) {
|
|
557
|
+
markModeAwaitingConfirmation(directory, sessionId, 'ultrawork');
|
|
558
|
+
}
|
|
398
559
|
messages.push(ULTRAWORK_MESSAGE);
|
|
399
560
|
break;
|
|
400
561
|
}
|
|
@@ -426,10 +587,11 @@ async function processKeywordDetector(input) {
|
|
|
426
587
|
break;
|
|
427
588
|
case "codex":
|
|
428
589
|
case "gemini": {
|
|
590
|
+
const teamStartCommand = formatOmcCliInvocation(`team start --agent ${keywordType} --count N --task "<task from user message>"`);
|
|
429
591
|
messages.push(`[MAGIC KEYWORD: team]\n` +
|
|
430
|
-
`User intent: delegate to ${keywordType} CLI workers via
|
|
592
|
+
`User intent: delegate to ${keywordType} CLI workers via ${formatOmcCliInvocation('team')}.\n` +
|
|
431
593
|
`Agent type: ${keywordType}. Parse N from user message (default 1).\n` +
|
|
432
|
-
`Invoke:
|
|
594
|
+
`Invoke: ${teamStartCommand}`);
|
|
433
595
|
break;
|
|
434
596
|
}
|
|
435
597
|
default:
|
|
@@ -469,7 +631,7 @@ async function processPersistentMode(input) {
|
|
|
469
631
|
const sessionId = input.sessionId ?? rawSessionId;
|
|
470
632
|
const directory = resolveToWorktreeRoot(input.directory);
|
|
471
633
|
// Lazy-load persistent-mode and todo-continuation modules
|
|
472
|
-
const { checkPersistentModes, createHookOutput, shouldSendIdleNotification, recordIdleNotificationSent } = await import("./persistent-mode/index.js");
|
|
634
|
+
const { checkPersistentModes, createHookOutput, shouldSendIdleNotification, recordIdleNotificationSent, } = await import("./persistent-mode/index.js");
|
|
473
635
|
const { isExplicitCancelCommand, isAuthenticationError } = await import("./todo-continuation/index.js");
|
|
474
636
|
// Extract stop context for abort detection (supports both camelCase and snake_case)
|
|
475
637
|
const stopContext = {
|
|
@@ -493,17 +655,21 @@ async function processPersistentMode(input) {
|
|
|
493
655
|
// Skip legacy bridge.ts team enforcement if persistent-mode already
|
|
494
656
|
// handled this stop event (or intentionally emitted a stop message).
|
|
495
657
|
// Prevents mixed/double continuation prompts across modes.
|
|
496
|
-
if (result.mode !==
|
|
658
|
+
if (result.mode !== "none" || Boolean(output.message)) {
|
|
497
659
|
return output;
|
|
498
660
|
}
|
|
499
661
|
const teamState = readTeamStagedState(directory, sessionId);
|
|
500
|
-
if (!teamState ||
|
|
662
|
+
if (!teamState ||
|
|
663
|
+
teamState.active !== true ||
|
|
664
|
+
isTeamStateTerminal(teamState)) {
|
|
501
665
|
writeTeamStopBreakerCount(directory, sessionId, 0);
|
|
502
666
|
// No persistent mode and no active team — Claude is truly idle.
|
|
503
667
|
// Send session-idle notification (non-blocking) unless this was a user abort or context limit.
|
|
504
668
|
if (result.mode === "none" && sessionId) {
|
|
505
|
-
const isAbort = stopContext.user_requested === true ||
|
|
506
|
-
|
|
669
|
+
const isAbort = stopContext.user_requested === true ||
|
|
670
|
+
stopContext.userRequested === true;
|
|
671
|
+
const isContextLimit = stopContext.stop_reason === "context_limit" ||
|
|
672
|
+
stopContext.stopReason === "context_limit";
|
|
507
673
|
if (!isAbort && !isContextLimit) {
|
|
508
674
|
// Always wake OpenClaw on stop — cooldown only applies to user-facing notifications
|
|
509
675
|
_openclaw.wake("stop", { sessionId, projectPath: directory });
|
|
@@ -512,11 +678,14 @@ async function processPersistentMode(input) {
|
|
|
512
678
|
const stateDir = join(getOmcRoot(directory), "state");
|
|
513
679
|
if (shouldSendIdleNotification(stateDir, sessionId)) {
|
|
514
680
|
recordIdleNotificationSent(stateDir, sessionId);
|
|
515
|
-
|
|
681
|
+
const logSessionIdleNotifyFailure = createSwallowedErrorLogger('hooks.bridge session-idle notification failed');
|
|
682
|
+
import("../notifications/index.js")
|
|
683
|
+
.then(({ notify }) => notify("session-idle", {
|
|
516
684
|
sessionId,
|
|
517
685
|
projectPath: directory,
|
|
518
686
|
profileName: process.env.OMC_NOTIFY_PROFILE,
|
|
519
|
-
}).catch(
|
|
687
|
+
}).catch(logSessionIdleNotifyFailure))
|
|
688
|
+
.catch(logSessionIdleNotifyFailure);
|
|
520
689
|
}
|
|
521
690
|
}
|
|
522
691
|
// IMPORTANT: Do NOT clean up reply-listener/session-registry on Stop hooks.
|
|
@@ -589,11 +758,14 @@ async function processSessionStart(input) {
|
|
|
589
758
|
initSilentAutoUpdate();
|
|
590
759
|
// Send session-start notification (non-blocking, swallows errors)
|
|
591
760
|
if (sessionId) {
|
|
592
|
-
|
|
761
|
+
const logSessionStartNotifyFailure = createSwallowedErrorLogger('hooks.bridge session-start notification failed');
|
|
762
|
+
import("../notifications/index.js")
|
|
763
|
+
.then(({ notify }) => notify("session-start", {
|
|
593
764
|
sessionId,
|
|
594
765
|
projectPath: directory,
|
|
595
766
|
profileName: process.env.OMC_NOTIFY_PROFILE,
|
|
596
|
-
}).catch(
|
|
767
|
+
}).catch(logSessionStartNotifyFailure))
|
|
768
|
+
.catch(logSessionStartNotifyFailure);
|
|
597
769
|
// Wake OpenClaw gateway for session-start (non-blocking)
|
|
598
770
|
_openclaw.wake("session-start", { sessionId, projectPath: directory });
|
|
599
771
|
}
|
|
@@ -602,7 +774,8 @@ async function processSessionStart(input) {
|
|
|
602
774
|
Promise.all([
|
|
603
775
|
import("../notifications/reply-listener.js"),
|
|
604
776
|
import("../notifications/config.js"),
|
|
605
|
-
])
|
|
777
|
+
])
|
|
778
|
+
.then(([{ startReplyListener }, { getReplyConfig, getNotificationConfig, getReplyListenerPlatformConfig, },]) => {
|
|
606
779
|
const replyConfig = getReplyConfig();
|
|
607
780
|
if (!replyConfig)
|
|
608
781
|
return;
|
|
@@ -612,7 +785,8 @@ async function processSessionStart(input) {
|
|
|
612
785
|
...replyConfig,
|
|
613
786
|
...platformConfig,
|
|
614
787
|
});
|
|
615
|
-
})
|
|
788
|
+
})
|
|
789
|
+
.catch(() => { });
|
|
616
790
|
}
|
|
617
791
|
const messages = [];
|
|
618
792
|
// Inject startup codebase map (issue #804) — first context item so agents orient quickly
|
|
@@ -699,10 +873,10 @@ Treat this as prior-session context only. Prioritize the user's newest request,
|
|
|
699
873
|
}
|
|
700
874
|
}
|
|
701
875
|
// Load root AGENTS.md if it exists (deepinit output - issue #613)
|
|
702
|
-
const agentsMdPath = join(directory,
|
|
876
|
+
const agentsMdPath = join(directory, "AGENTS.md");
|
|
703
877
|
if (existsSync(agentsMdPath)) {
|
|
704
878
|
try {
|
|
705
|
-
let agentsContent = compactOmcStartupGuidance(readFileSync(agentsMdPath,
|
|
879
|
+
let agentsContent = compactOmcStartupGuidance(readFileSync(agentsMdPath, "utf-8")).trim();
|
|
706
880
|
if (agentsContent) {
|
|
707
881
|
// Truncate to ~5000 tokens (20000 chars) to avoid context bloat
|
|
708
882
|
const MAX_AGENTS_CHARS = 20000;
|
|
@@ -783,13 +957,19 @@ The CLAUDE.md instruction "Pass model on Task calls: haiku, sonnet, opus" does N
|
|
|
783
957
|
export function dispatchAskUserQuestionNotification(sessionId, directory, toolInput) {
|
|
784
958
|
const input = toolInput;
|
|
785
959
|
const questions = input?.questions || [];
|
|
786
|
-
const questionText = questions
|
|
787
|
-
|
|
960
|
+
const questionText = questions
|
|
961
|
+
.map((q) => q.question || "")
|
|
962
|
+
.filter(Boolean)
|
|
963
|
+
.join("; ") || "User input requested";
|
|
964
|
+
const logAskUserQuestionNotifyFailure = createSwallowedErrorLogger('hooks.bridge ask-user-question notification failed');
|
|
965
|
+
import("../notifications/index.js")
|
|
966
|
+
.then(({ notify }) => notify("ask-user-question", {
|
|
788
967
|
sessionId,
|
|
789
968
|
projectPath: directory,
|
|
790
969
|
question: questionText,
|
|
791
970
|
profileName: process.env.OMC_NOTIFY_PROFILE,
|
|
792
|
-
}).catch(
|
|
971
|
+
}).catch(logAskUserQuestionNotifyFailure))
|
|
972
|
+
.catch(logAskUserQuestionNotifyFailure);
|
|
793
973
|
}
|
|
794
974
|
/** @internal Object wrapper so tests can spy on the dispatch call. */
|
|
795
975
|
export const _notify = {
|
|
@@ -807,7 +987,10 @@ export const _openclaw = {
|
|
|
807
987
|
wake: (event, context) => {
|
|
808
988
|
if (process.env.OMC_OPENCLAW !== "1")
|
|
809
989
|
return;
|
|
810
|
-
|
|
990
|
+
const logOpenClawWakeFailure = createSwallowedErrorLogger(`hooks.bridge openclaw wake failed for ${event}`);
|
|
991
|
+
import("../openclaw/index.js")
|
|
992
|
+
.then(({ wakeOpenClaw }) => wakeOpenClaw(event, context).catch(logOpenClawWakeFailure))
|
|
993
|
+
.catch(logOpenClawWakeFailure);
|
|
811
994
|
},
|
|
812
995
|
};
|
|
813
996
|
/**
|
|
@@ -860,24 +1043,26 @@ function processPreToolUse(input) {
|
|
|
860
1043
|
message: enforcementResult.message,
|
|
861
1044
|
};
|
|
862
1045
|
}
|
|
863
|
-
const preToolMessages = enforcementResult.message
|
|
1046
|
+
const preToolMessages = enforcementResult.message
|
|
1047
|
+
? [enforcementResult.message]
|
|
1048
|
+
: [];
|
|
864
1049
|
let modifiedToolInput;
|
|
865
|
-
// Force-inherit: deny Task calls that carry a `model` parameter when
|
|
1050
|
+
// Force-inherit: deny Task/Agent calls that carry a `model` parameter when
|
|
866
1051
|
// forceInherit is enabled (Bedrock, Vertex, CC Switch, etc.).
|
|
867
1052
|
// Claude Code's hook protocol does not support modifiedInput, so we cannot
|
|
868
1053
|
// silently strip the model. Instead, deny the call so Claude retries without
|
|
869
1054
|
// the model param, letting agents inherit the parent session's model.
|
|
870
|
-
// (issues #1135, #1201)
|
|
871
|
-
if (input.toolName
|
|
872
|
-
const
|
|
873
|
-
const
|
|
874
|
-
if (
|
|
1055
|
+
// (issues #1135, #1201, #1415)
|
|
1056
|
+
if (isDelegationToolName(input.toolName)) {
|
|
1057
|
+
const originalInput = input.toolInput;
|
|
1058
|
+
const inputModel = originalInput?.model;
|
|
1059
|
+
if (inputModel) {
|
|
875
1060
|
const config = loadConfig();
|
|
876
1061
|
if (config.routing?.forceInherit) {
|
|
877
1062
|
// Use permissionDecision:"deny" — the only PreToolUse mechanism
|
|
878
1063
|
// Claude Code supports for blocking a specific tool call with
|
|
879
1064
|
// feedback. modifiedInput is NOT supported by the hook protocol.
|
|
880
|
-
const denyReason = `[MODEL ROUTING] This environment uses a non-standard provider (Bedrock/Vertex/proxy). Do NOT pass the \`model\` parameter on
|
|
1065
|
+
const denyReason = `[MODEL ROUTING] This environment uses a non-standard provider (Bedrock/Vertex/proxy). Do NOT pass the \`model\` parameter on ${input.toolName} calls — remove \`model\` and retry so agents inherit the parent session's model. The model "${inputModel}" is not valid for this provider.`;
|
|
881
1066
|
return {
|
|
882
1067
|
continue: true,
|
|
883
1068
|
hookSpecificOutput: {
|
|
@@ -888,6 +1073,9 @@ function processPreToolUse(input) {
|
|
|
888
1073
|
};
|
|
889
1074
|
}
|
|
890
1075
|
}
|
|
1076
|
+
}
|
|
1077
|
+
if (input.toolName === "Task") {
|
|
1078
|
+
const originalTaskInput = input.toolInput;
|
|
891
1079
|
if (originalTaskInput?.run_in_background === true) {
|
|
892
1080
|
const subagentType = typeof originalTaskInput.subagent_type === "string"
|
|
893
1081
|
? originalTaskInput.subagent_type
|
|
@@ -931,24 +1119,34 @@ function processPreToolUse(input) {
|
|
|
931
1119
|
projectPath: directory,
|
|
932
1120
|
question: (() => {
|
|
933
1121
|
const ti = input.toolInput;
|
|
934
|
-
return ti?.questions
|
|
1122
|
+
return (ti?.questions
|
|
1123
|
+
?.map((q) => q.question || "")
|
|
1124
|
+
.filter(Boolean)
|
|
1125
|
+
.join("; ") || "");
|
|
935
1126
|
})(),
|
|
936
1127
|
});
|
|
937
1128
|
}
|
|
938
1129
|
// Activate skill state when Skill tool is invoked (issue #1033)
|
|
939
1130
|
// This writes skill-active-state.json so the Stop hook can prevent premature
|
|
940
1131
|
// session termination while a skill is executing.
|
|
1132
|
+
// Pass rawSkillName so writeSkillActiveState can distinguish OMC built-in
|
|
1133
|
+
// skills from project custom skills with the same name (issue #1581).
|
|
941
1134
|
if (input.toolName === "Skill") {
|
|
942
1135
|
const skillName = getInvokedSkillName(input.toolInput);
|
|
943
1136
|
if (skillName) {
|
|
1137
|
+
const rawSkillName = getRawSkillName(input.toolInput);
|
|
944
1138
|
// Use the statically-imported synchronous write so it completes before
|
|
945
1139
|
// the Stop hook can fire. The previous fire-and-forget .then() raced with
|
|
946
1140
|
// the Stop hook in short-lived processes.
|
|
947
1141
|
try {
|
|
948
|
-
writeSkillActiveState(directory, skillName, input.sessionId);
|
|
1142
|
+
writeSkillActiveState(directory, skillName, input.sessionId, rawSkillName);
|
|
1143
|
+
confirmSkillModeStates(directory, skillName, input.sessionId);
|
|
1144
|
+
if (isConsensusPlanningSkillInvocation(skillName, input.toolInput)) {
|
|
1145
|
+
activateRalplanState(directory, input.sessionId);
|
|
1146
|
+
}
|
|
949
1147
|
}
|
|
950
1148
|
catch {
|
|
951
|
-
// Skill-state
|
|
1149
|
+
// Skill-state/state-sync writes are best-effort; don't fail the hook on error.
|
|
952
1150
|
}
|
|
953
1151
|
}
|
|
954
1152
|
}
|
|
@@ -960,13 +1158,16 @@ function processPreToolUse(input) {
|
|
|
960
1158
|
const agentName = agentType?.includes(":")
|
|
961
1159
|
? agentType.split(":").pop()
|
|
962
1160
|
: agentType;
|
|
963
|
-
|
|
1161
|
+
const logAgentCallNotifyFailure = createSwallowedErrorLogger('hooks.bridge agent-call notification failed');
|
|
1162
|
+
import("../notifications/index.js")
|
|
1163
|
+
.then(({ notify }) => notify("agent-call", {
|
|
964
1164
|
sessionId: input.sessionId,
|
|
965
1165
|
projectPath: directory,
|
|
966
1166
|
agentName,
|
|
967
1167
|
agentType,
|
|
968
1168
|
profileName: process.env.OMC_NOTIFY_PROFILE,
|
|
969
|
-
}).catch(
|
|
1169
|
+
}).catch(logAgentCallNotifyFailure))
|
|
1170
|
+
.catch(logAgentCallNotifyFailure);
|
|
970
1171
|
}
|
|
971
1172
|
// Warn about pkill -f self-termination risk (issue #210)
|
|
972
1173
|
// Matches: pkill -f, pkill -9 -f, pkill --full, etc.
|
|
@@ -1006,11 +1207,12 @@ function processPreToolUse(input) {
|
|
|
1006
1207
|
}
|
|
1007
1208
|
}
|
|
1008
1209
|
}
|
|
1009
|
-
// Track Task tool invocations for HUD
|
|
1210
|
+
// Track Task tool invocations for HUD display
|
|
1010
1211
|
if (input.toolName === "Task") {
|
|
1011
1212
|
const toolInput = (modifiedToolInput ?? input.toolInput);
|
|
1012
1213
|
if (toolInput?.description) {
|
|
1013
|
-
const taskId =
|
|
1214
|
+
const taskId = getHookToolUseId(input)
|
|
1215
|
+
?? `task-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
1014
1216
|
addBackgroundTask(taskId, toolInput.description, toolInput.subagent_type, directory);
|
|
1015
1217
|
}
|
|
1016
1218
|
}
|
|
@@ -1027,7 +1229,9 @@ function processPreToolUse(input) {
|
|
|
1027
1229
|
if (input.toolName === "Task") {
|
|
1028
1230
|
const dashboard = getAgentDashboard(directory);
|
|
1029
1231
|
if (dashboard) {
|
|
1030
|
-
const combined = [...preToolMessages, dashboard]
|
|
1232
|
+
const combined = [...preToolMessages, dashboard]
|
|
1233
|
+
.filter(Boolean)
|
|
1234
|
+
.join("\n\n");
|
|
1031
1235
|
return {
|
|
1032
1236
|
continue: true,
|
|
1033
1237
|
...(combined ? { message: combined } : {}),
|
|
@@ -1047,7 +1251,9 @@ function processPreToolUse(input) {
|
|
|
1047
1251
|
}
|
|
1048
1252
|
return {
|
|
1049
1253
|
continue: true,
|
|
1050
|
-
...(preToolMessages.length > 0
|
|
1254
|
+
...(preToolMessages.length > 0
|
|
1255
|
+
? { message: preToolMessages.join("\n\n") }
|
|
1256
|
+
: {}),
|
|
1051
1257
|
...(modifiedToolInput ? { modifiedInput: modifiedToolInput } : {}),
|
|
1052
1258
|
};
|
|
1053
1259
|
}
|
|
@@ -1059,11 +1265,7 @@ function getInvokedSkillName(toolInput) {
|
|
|
1059
1265
|
return null;
|
|
1060
1266
|
}
|
|
1061
1267
|
const input = toolInput;
|
|
1062
|
-
const rawSkill = input.skill ??
|
|
1063
|
-
input.skill_name ??
|
|
1064
|
-
input.skillName ??
|
|
1065
|
-
input.command ??
|
|
1066
|
-
null;
|
|
1268
|
+
const rawSkill = input.skill ?? input.skill_name ?? input.skillName ?? input.command ?? null;
|
|
1067
1269
|
if (typeof rawSkill !== "string" || rawSkill.trim().length === 0) {
|
|
1068
1270
|
return null;
|
|
1069
1271
|
}
|
|
@@ -1073,6 +1275,19 @@ function getInvokedSkillName(toolInput) {
|
|
|
1073
1275
|
: normalized;
|
|
1074
1276
|
return namespaced?.toLowerCase() || null;
|
|
1075
1277
|
}
|
|
1278
|
+
/**
|
|
1279
|
+
* Extract the raw (un-normalized) skill name from Skill tool input.
|
|
1280
|
+
* Used to distinguish OMC built-in skills (prefixed with 'oh-my-claudecode:')
|
|
1281
|
+
* from project custom skills or other plugin skills with the same bare name.
|
|
1282
|
+
* See: https://github.com/Yeachan-Heo/oh-my-claudecode/issues/1581
|
|
1283
|
+
*/
|
|
1284
|
+
function getRawSkillName(toolInput) {
|
|
1285
|
+
if (!toolInput || typeof toolInput !== "object")
|
|
1286
|
+
return undefined;
|
|
1287
|
+
const input = toolInput;
|
|
1288
|
+
const raw = input.skill ?? input.skill_name ?? input.skillName ?? input.command ?? null;
|
|
1289
|
+
return typeof raw === "string" && raw.trim().length > 0 ? raw.trim() : undefined;
|
|
1290
|
+
}
|
|
1076
1291
|
async function processPostToolUse(input) {
|
|
1077
1292
|
const directory = resolveToWorktreeRoot(input.directory);
|
|
1078
1293
|
const messages = [];
|
|
@@ -1082,7 +1297,7 @@ async function processPostToolUse(input) {
|
|
|
1082
1297
|
if (toolName === "skill") {
|
|
1083
1298
|
const skillName = getInvokedSkillName(input.toolInput);
|
|
1084
1299
|
if (skillName === "ralph") {
|
|
1085
|
-
const { createRalphLoopHook, findPrdPath: findPrd, initPrd: initPrdFn, initProgress: initProgressFn, detectNoPrdFlag: detectNoPrd, stripNoPrdFlag: stripNoPrd, detectCriticModeFlag, stripCriticModeFlag } = await import("./ralph/index.js");
|
|
1300
|
+
const { createRalphLoopHook, findPrdPath: findPrd, initPrd: initPrdFn, initProgress: initProgressFn, detectNoPrdFlag: detectNoPrd, stripNoPrdFlag: stripNoPrd, detectCriticModeFlag, stripCriticModeFlag, } = await import("./ralph/index.js");
|
|
1086
1301
|
const rawPrompt = typeof input.prompt === "string" && input.prompt.trim().length > 0
|
|
1087
1302
|
? input.prompt
|
|
1088
1303
|
: "Ralph loop activated via Skill tool";
|
|
@@ -1090,16 +1305,22 @@ async function processPostToolUse(input) {
|
|
|
1090
1305
|
const noPrd = detectNoPrd(rawPrompt);
|
|
1091
1306
|
const criticMode = detectCriticModeFlag(rawPrompt) ?? undefined;
|
|
1092
1307
|
const promptWithoutCriticFlag = stripCriticModeFlag(rawPrompt);
|
|
1093
|
-
const cleanPrompt = noPrd
|
|
1308
|
+
const cleanPrompt = noPrd
|
|
1309
|
+
? stripNoPrd(promptWithoutCriticFlag)
|
|
1310
|
+
: promptWithoutCriticFlag;
|
|
1094
1311
|
// Auto-generate scaffold PRD if none exists and --no-prd not set
|
|
1095
1312
|
const existingPrd = findPrd(directory);
|
|
1096
1313
|
if (!noPrd && !existingPrd) {
|
|
1097
1314
|
const { basename } = await import("path");
|
|
1098
1315
|
const { execSync } = await import("child_process");
|
|
1099
1316
|
const projectName = basename(directory);
|
|
1100
|
-
let branchName =
|
|
1317
|
+
let branchName = "ralph/task";
|
|
1101
1318
|
try {
|
|
1102
|
-
branchName = execSync(
|
|
1319
|
+
branchName = execSync("git rev-parse --abbrev-ref HEAD", {
|
|
1320
|
+
cwd: directory,
|
|
1321
|
+
encoding: "utf-8",
|
|
1322
|
+
timeout: 5000,
|
|
1323
|
+
}).trim();
|
|
1103
1324
|
}
|
|
1104
1325
|
catch {
|
|
1105
1326
|
// Not a git repo or git not available — use fallback
|
|
@@ -1125,13 +1346,46 @@ async function processPostToolUse(input) {
|
|
|
1125
1346
|
if (orchestratorResult.message) {
|
|
1126
1347
|
messages.push(orchestratorResult.message);
|
|
1127
1348
|
}
|
|
1128
|
-
|
|
1349
|
+
if (orchestratorResult.modifiedOutput) {
|
|
1350
|
+
messages.push(orchestratorResult.modifiedOutput);
|
|
1351
|
+
}
|
|
1129
1352
|
if (input.toolName === "Task") {
|
|
1353
|
+
const toolInput = input.toolInput;
|
|
1354
|
+
const toolUseId = getHookToolUseId(input);
|
|
1355
|
+
const asyncAgentId = extractAsyncAgentId(input.toolOutput);
|
|
1356
|
+
const description = toolInput?.description;
|
|
1357
|
+
const agentType = toolInput?.subagent_type;
|
|
1358
|
+
if (asyncAgentId) {
|
|
1359
|
+
if (toolUseId) {
|
|
1360
|
+
remapBackgroundTaskId(toolUseId, asyncAgentId, directory);
|
|
1361
|
+
}
|
|
1362
|
+
else if (description) {
|
|
1363
|
+
remapMostRecentMatchingBackgroundTaskId(description, asyncAgentId, directory, agentType);
|
|
1364
|
+
}
|
|
1365
|
+
}
|
|
1366
|
+
else {
|
|
1367
|
+
const failed = taskLaunchDidFail(input.toolOutput);
|
|
1368
|
+
if (toolUseId) {
|
|
1369
|
+
completeBackgroundTask(toolUseId, directory, failed);
|
|
1370
|
+
}
|
|
1371
|
+
else if (description) {
|
|
1372
|
+
completeMostRecentMatchingBackgroundTask(description, directory, failed, agentType);
|
|
1373
|
+
}
|
|
1374
|
+
}
|
|
1375
|
+
}
|
|
1376
|
+
// After delegation completion, show updated agent dashboard
|
|
1377
|
+
if (isDelegationToolName(input.toolName)) {
|
|
1130
1378
|
const dashboard = getAgentDashboard(directory);
|
|
1131
1379
|
if (dashboard) {
|
|
1132
1380
|
messages.push(dashboard);
|
|
1133
1381
|
}
|
|
1134
1382
|
}
|
|
1383
|
+
if (input.toolName === "TaskOutput") {
|
|
1384
|
+
const taskOutput = parseTaskOutputLifecycle(input.toolOutput);
|
|
1385
|
+
if (taskOutput) {
|
|
1386
|
+
completeBackgroundTask(taskOutput.taskId, directory, taskOutputDidFail(taskOutput.status));
|
|
1387
|
+
}
|
|
1388
|
+
}
|
|
1135
1389
|
// Wake OpenClaw gateway for post-tool-use (non-blocking, fires for all tools).
|
|
1136
1390
|
// AskUserQuestion already emitted a dedicated question.requested signal.
|
|
1137
1391
|
if (input.sessionId && input.toolName !== "AskUserQuestion") {
|
|
@@ -1164,10 +1418,12 @@ async function processAutopilot(input) {
|
|
|
1164
1418
|
return { continue: true };
|
|
1165
1419
|
}
|
|
1166
1420
|
// Check phase and inject appropriate prompt
|
|
1421
|
+
const config = loadConfig();
|
|
1167
1422
|
const context = {
|
|
1168
1423
|
idea: state.originalIdea,
|
|
1169
1424
|
specPath: state.expansion.spec_path || ".omc/autopilot/spec.md",
|
|
1170
|
-
planPath: state.planning.plan_path ||
|
|
1425
|
+
planPath: state.planning.plan_path || resolveAutopilotPlanPath(config),
|
|
1426
|
+
openQuestionsPath: resolveOpenQuestionsPlanPath(config),
|
|
1171
1427
|
};
|
|
1172
1428
|
const phasePrompt = getPhasePrompt(state.phase, context);
|
|
1173
1429
|
if (phasePrompt) {
|
|
@@ -1291,7 +1547,8 @@ export async function processHook(hookType, rawInput) {
|
|
|
1291
1547
|
const normalizedStop = input;
|
|
1292
1548
|
const stopInput = {
|
|
1293
1549
|
cwd: (normalizedStop.directory ?? normalizedStop.cwd),
|
|
1294
|
-
session_id: (normalizedStop.sessionId ??
|
|
1550
|
+
session_id: (normalizedStop.sessionId ??
|
|
1551
|
+
normalizedStop.session_id),
|
|
1295
1552
|
agent_id: normalizedStop.agent_id,
|
|
1296
1553
|
agent_type: normalizedStop.agent_type,
|
|
1297
1554
|
transcript_path: normalizedStop.transcript_path,
|
|
@@ -1352,7 +1609,8 @@ export async function processHook(hookType, rawInput) {
|
|
|
1352
1609
|
session_id: (rawPR.sessionId ?? rawPR.session_id),
|
|
1353
1610
|
cwd: (rawPR.directory ?? rawPR.cwd),
|
|
1354
1611
|
tool_name: (rawPR.toolName ?? rawPR.tool_name),
|
|
1355
|
-
tool_input: (rawPR.toolInput ??
|
|
1612
|
+
tool_input: (rawPR.toolInput ??
|
|
1613
|
+
rawPR.tool_input),
|
|
1356
1614
|
transcript_path: rawPR.transcript_path,
|
|
1357
1615
|
permission_mode: (rawPR.permission_mode ?? "default"),
|
|
1358
1616
|
hook_event_name: "PermissionRequest",
|