claudecode-omc 4.4.5 → 4.4.6
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/.mcp.json +2 -6
- package/README.es.md +64 -8
- package/README.ja.md +64 -8
- package/README.ko.md +64 -8
- package/README.pt.md +29 -0
- package/README.vi.md +29 -0
- package/README.zh.md +64 -8
- package/agents/architect.md +17 -7
- package/agents/code-reviewer.md +6 -7
- package/agents/critic.md +14 -1
- package/agents/deep-executor.md +6 -7
- package/agents/designer.md +6 -8
- package/agents/executor.md +6 -7
- package/agents/planner.md +21 -0
- package/agents/quality-reviewer.md +6 -7
- package/agents/security-reviewer.md +6 -7
- package/agents/test-engineer.md +6 -7
- package/bridge/mcp-server.cjs +517 -202
- package/bridge/runtime-cli.cjs +1547 -0
- package/bridge/team-bridge.cjs +348 -92
- package/bridge/{gemini-server.cjs → team-mcp.cjs} +10914 -10240
- package/dist/__tests__/auto-update.test.js +1 -1
- package/dist/__tests__/auto-update.test.js.map +1 -1
- package/dist/__tests__/cli-win32-warning.test.d.ts +2 -0
- package/dist/__tests__/cli-win32-warning.test.d.ts.map +1 -0
- package/dist/__tests__/cli-win32-warning.test.js +46 -0
- package/dist/__tests__/cli-win32-warning.test.js.map +1 -0
- package/dist/__tests__/codex-callsite-normalization.test.js +112 -0
- package/dist/__tests__/consensus-execution-handoff.test.d.ts +2 -0
- package/dist/__tests__/consensus-execution-handoff.test.d.ts.map +1 -1
- package/dist/__tests__/consensus-execution-handoff.test.js +48 -0
- package/dist/__tests__/consensus-execution-handoff.test.js.map +1 -1
- package/dist/__tests__/context-safety.test.d.ts +2 -0
- package/dist/__tests__/context-safety.test.d.ts.map +1 -0
- package/dist/__tests__/context-safety.test.js +59 -0
- package/dist/__tests__/context-safety.test.js.map +1 -0
- package/dist/__tests__/hooks.test.js +15 -0
- package/dist/__tests__/hooks.test.js.map +1 -1
- package/dist/__tests__/hud/call-counts.test.js +0 -3
- package/dist/__tests__/hud/call-counts.test.js.map +1 -1
- package/dist/__tests__/hud/defaults.test.js +3 -5
- package/dist/__tests__/hud/defaults.test.js.map +1 -1
- package/dist/__tests__/hud/prompt-time.test.d.ts +2 -0
- package/dist/__tests__/hud/prompt-time.test.d.ts.map +1 -0
- package/dist/__tests__/hud/prompt-time.test.js +24 -0
- package/dist/__tests__/hud/prompt-time.test.js.map +1 -0
- package/dist/__tests__/hud/render.test.js +0 -1
- package/dist/__tests__/hud/render.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/windows-platform.test.js +0 -4
- package/dist/__tests__/hud/windows-platform.test.js.map +1 -1
- package/dist/__tests__/hud-windows.test.js +5 -3
- package/dist/__tests__/hud-windows.test.js.map +1 -1
- package/dist/__tests__/installer-hud-skip.test.js +12 -2
- package/dist/__tests__/installer-hud-skip.test.js.map +1 -1
- package/dist/__tests__/job-management-sqlite.test.js +0 -15
- package/dist/__tests__/job-management-sqlite.test.js.map +1 -1
- package/dist/__tests__/job-management.test.js +0 -16
- package/dist/__tests__/job-management.test.js.map +1 -1
- package/dist/__tests__/load-agent-prompt.test.js +0 -23
- package/dist/__tests__/load-agent-prompt.test.js.map +1 -1
- package/dist/__tests__/model-routing.test.js +3 -2
- package/dist/__tests__/model-routing.test.js.map +1 -1
- package/dist/__tests__/omc-tools-server-interop.test.js +1 -1
- package/dist/__tests__/omc-tools-server-interop.test.js.map +1 -1
- package/dist/__tests__/pre-tool-enforcer.test.d.ts +2 -0
- package/dist/__tests__/pre-tool-enforcer.test.d.ts.map +1 -0
- package/dist/__tests__/pre-tool-enforcer.test.js +194 -0
- package/dist/__tests__/pre-tool-enforcer.test.js.map +1 -0
- package/dist/__tests__/prompt-injection.test.js +0 -26
- package/dist/__tests__/prompt-injection.test.js.map +1 -1
- package/dist/__tests__/purge-stale-cache.test.js +3 -2
- package/dist/__tests__/purge-stale-cache.test.js.map +1 -1
- package/dist/__tests__/run-cjs-graceful-fallback.test.d.ts +2 -0
- package/dist/__tests__/run-cjs-graceful-fallback.test.d.ts.map +1 -0
- package/dist/__tests__/run-cjs-graceful-fallback.test.js +167 -0
- package/dist/__tests__/run-cjs-graceful-fallback.test.js.map +1 -0
- package/dist/__tests__/session-start-cache-cleanup.test.d.ts +2 -0
- package/dist/__tests__/session-start-cache-cleanup.test.d.ts.map +1 -0
- package/dist/__tests__/session-start-cache-cleanup.test.js +150 -0
- package/dist/__tests__/session-start-cache-cleanup.test.js.map +1 -0
- package/dist/__tests__/skills.test.js +10 -8
- package/dist/__tests__/skills.test.js.map +1 -1
- package/dist/__tests__/team-server-validation.test.d.ts +2 -0
- package/dist/__tests__/team-server-validation.test.d.ts.map +1 -0
- package/dist/__tests__/team-server-validation.test.js +122 -0
- package/dist/__tests__/team-server-validation.test.js.map +1 -0
- package/dist/agents/index.d.ts +0 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +0 -2
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/prompt-helpers.d.ts +74 -0
- package/dist/agents/prompt-helpers.d.ts.map +1 -0
- package/dist/agents/prompt-helpers.js +187 -0
- package/dist/agents/prompt-helpers.js.map +1 -0
- package/dist/agents/utils.d.ts +1 -5
- package/dist/agents/utils.d.ts.map +1 -1
- package/dist/agents/utils.js +1 -34
- package/dist/agents/utils.js.map +1 -1
- package/dist/cli/__tests__/launch.test.d.ts +1 -2
- package/dist/cli/__tests__/launch.test.d.ts.map +1 -1
- package/dist/cli/__tests__/launch.test.js +442 -48
- package/dist/cli/__tests__/launch.test.js.map +1 -1
- package/dist/cli/__tests__/teleport-help.test.d.ts +2 -0
- package/dist/cli/__tests__/teleport-help.test.d.ts.map +1 -0
- package/dist/cli/__tests__/teleport-help.test.js +17 -0
- package/dist/cli/__tests__/teleport-help.test.js.map +1 -0
- package/dist/cli/commands/teleport.d.ts +2 -1
- package/dist/cli/commands/teleport.d.ts.map +1 -1
- package/dist/cli/commands/teleport.js +6 -3
- package/dist/cli/commands/teleport.js.map +1 -1
- package/dist/cli/index.js +40 -290
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/launch.d.ts +83 -3
- package/dist/cli/launch.d.ts.map +1 -1
- package/dist/cli/launch.js +213 -48
- package/dist/cli/launch.js.map +1 -1
- package/dist/cli/win32-warning.d.ts +6 -0
- package/dist/cli/win32-warning.d.ts.map +1 -0
- package/dist/cli/win32-warning.js +15 -0
- package/dist/cli/win32-warning.js.map +1 -0
- package/dist/config/loader.d.ts +9 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +29 -19
- package/dist/config/loader.js.map +1 -1
- package/dist/config/models.d.ts +33 -0
- package/dist/config/models.d.ts.map +1 -0
- package/dist/config/models.js +49 -0
- package/dist/config/models.js.map +1 -0
- package/dist/constants/names.d.ts +2 -0
- package/dist/constants/names.d.ts.map +1 -1
- package/dist/constants/names.js +2 -0
- package/dist/constants/names.js.map +1 -1
- package/dist/features/auto-update.d.ts.map +1 -1
- package/dist/features/auto-update.js +21 -11
- package/dist/features/auto-update.js.map +1 -1
- package/dist/features/background-agent/manager.d.ts.map +1 -1
- package/dist/features/background-agent/manager.js +1 -2
- package/dist/features/background-agent/manager.js.map +1 -1
- package/dist/features/boulder-state/storage.d.ts.map +1 -1
- package/dist/features/boulder-state/storage.js +9 -5
- package/dist/features/boulder-state/storage.js.map +1 -1
- package/dist/features/boulder-state/types.d.ts +4 -0
- package/dist/features/boulder-state/types.d.ts.map +1 -1
- package/dist/features/builtin-skills/skills.d.ts.map +1 -1
- package/dist/features/builtin-skills/skills.js +25 -78
- package/dist/features/builtin-skills/skills.js.map +1 -1
- package/dist/features/delegation-enforcer.d.ts.map +1 -1
- package/dist/features/delegation-enforcer.js +4 -1
- package/dist/features/delegation-enforcer.js.map +1 -1
- package/dist/features/delegation-routing/__tests__/resolver.test.js +47 -122
- package/dist/features/delegation-routing/__tests__/resolver.test.js.map +1 -1
- package/dist/features/delegation-routing/resolver.d.ts.map +1 -1
- package/dist/features/delegation-routing/resolver.js +24 -47
- package/dist/features/delegation-routing/resolver.js.map +1 -1
- package/dist/features/delegation-routing/types.d.ts.map +1 -1
- package/dist/features/delegation-routing/types.js +2 -0
- package/dist/features/delegation-routing/types.js.map +1 -1
- package/dist/features/model-routing/external-model-policy.d.ts.map +1 -1
- package/dist/features/model-routing/external-model-policy.js.map +1 -1
- package/dist/features/model-routing/router.d.ts.map +1 -1
- package/dist/features/model-routing/router.js +12 -2
- package/dist/features/model-routing/router.js.map +1 -1
- package/dist/features/model-routing/types.d.ts +5 -1
- package/dist/features/model-routing/types.d.ts.map +1 -1
- package/dist/features/model-routing/types.js +7 -6
- package/dist/features/model-routing/types.js.map +1 -1
- package/dist/features/rate-limit-wait/daemon.d.ts.map +1 -1
- package/dist/features/rate-limit-wait/daemon.js +40 -4
- package/dist/features/rate-limit-wait/daemon.js.map +1 -1
- package/dist/features/task-decomposer/index.js +14 -4
- package/dist/features/task-decomposer/index.js.map +1 -1
- package/dist/hooks/__tests__/bridge-openclaw.test.d.ts +2 -0
- package/dist/hooks/__tests__/bridge-openclaw.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/bridge-openclaw.test.js +124 -0
- package/dist/hooks/__tests__/bridge-openclaw.test.js.map +1 -0
- package/dist/hooks/__tests__/bridge-security.test.js +1 -1
- package/dist/hooks/__tests__/bridge-security.test.js.map +1 -1
- package/dist/hooks/auto-slash-command/executor.d.ts.map +1 -1
- package/dist/hooks/auto-slash-command/executor.js +38 -61
- package/dist/hooks/auto-slash-command/executor.js.map +1 -1
- package/dist/hooks/bridge.d.ts +11 -0
- package/dist/hooks/bridge.d.ts.map +1 -1
- package/dist/hooks/bridge.js +154 -82
- package/dist/hooks/bridge.js.map +1 -1
- package/dist/hooks/comment-checker/index.d.ts.map +1 -1
- package/dist/hooks/comment-checker/index.js +3 -1
- package/dist/hooks/comment-checker/index.js.map +1 -1
- package/dist/hooks/keyword-detector/__tests__/index.test.js +348 -1
- package/dist/hooks/keyword-detector/__tests__/index.test.js.map +1 -1
- package/dist/hooks/keyword-detector/index.d.ts +29 -0
- package/dist/hooks/keyword-detector/index.d.ts.map +1 -1
- package/dist/hooks/keyword-detector/index.js +123 -1
- package/dist/hooks/keyword-detector/index.js.map +1 -1
- package/dist/hooks/mode-registry/__tests__/session-isolation.test.js +40 -0
- package/dist/hooks/mode-registry/__tests__/session-isolation.test.js.map +1 -1
- package/dist/hooks/mode-registry/index.d.ts.map +1 -1
- package/dist/hooks/mode-registry/index.js +135 -52
- package/dist/hooks/mode-registry/index.js.map +1 -1
- package/dist/hooks/notepad/index.d.ts.map +1 -1
- package/dist/hooks/notepad/index.js +5 -3
- package/dist/hooks/notepad/index.js.map +1 -1
- package/dist/hooks/persistent-mode/__tests__/cancel-race.test.d.ts +2 -0
- package/dist/hooks/persistent-mode/__tests__/cancel-race.test.d.ts.map +1 -0
- package/dist/hooks/persistent-mode/__tests__/cancel-race.test.js +73 -0
- package/dist/hooks/persistent-mode/__tests__/cancel-race.test.js.map +1 -0
- package/dist/hooks/persistent-mode/__tests__/idle-cooldown.test.js +89 -13
- package/dist/hooks/persistent-mode/__tests__/idle-cooldown.test.js.map +1 -1
- package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.d.ts +2 -0
- package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.d.ts.map +1 -0
- package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.js +156 -0
- package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.js.map +1 -0
- package/dist/hooks/persistent-mode/idle-cooldown.test.d.ts +2 -3
- package/dist/hooks/persistent-mode/idle-cooldown.test.d.ts.map +1 -1
- package/dist/hooks/persistent-mode/idle-cooldown.test.js +19 -4
- package/dist/hooks/persistent-mode/idle-cooldown.test.js.map +1 -1
- package/dist/hooks/persistent-mode/index.d.ts +2 -2
- package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
- package/dist/hooks/persistent-mode/index.js +144 -26
- package/dist/hooks/persistent-mode/index.js.map +1 -1
- package/dist/hooks/plugin-patterns/index.d.ts.map +1 -1
- package/dist/hooks/plugin-patterns/index.js +22 -31
- package/dist/hooks/plugin-patterns/index.js.map +1 -1
- package/dist/hooks/pre-compact/index.js +1 -1
- package/dist/hooks/preemptive-compaction/index.d.ts.map +1 -1
- package/dist/hooks/preemptive-compaction/index.js +3 -1
- package/dist/hooks/preemptive-compaction/index.js.map +1 -1
- package/dist/hooks/project-memory/index.d.ts.map +1 -1
- package/dist/hooks/project-memory/index.js +9 -0
- package/dist/hooks/project-memory/index.js.map +1 -1
- package/dist/hooks/project-memory/learner.d.ts.map +1 -1
- package/dist/hooks/project-memory/learner.js +107 -85
- package/dist/hooks/project-memory/learner.js.map +1 -1
- package/dist/hooks/project-memory/storage.d.ts.map +1 -1
- package/dist/hooks/project-memory/storage.js +3 -2
- package/dist/hooks/project-memory/storage.js.map +1 -1
- package/dist/hooks/recovery/context-window.d.ts +4 -0
- package/dist/hooks/recovery/context-window.d.ts.map +1 -1
- package/dist/hooks/recovery/context-window.js +22 -1
- package/dist/hooks/recovery/context-window.js.map +1 -1
- package/dist/hooks/recovery/session-recovery.js +1 -1
- package/dist/hooks/recovery/session-recovery.js.map +1 -1
- package/dist/hooks/session-end/index.d.ts.map +1 -1
- package/dist/hooks/session-end/index.js +13 -22
- package/dist/hooks/session-end/index.js.map +1 -1
- package/dist/hooks/setup/__tests__/windows-patch.test.d.ts +2 -0
- package/dist/hooks/setup/__tests__/windows-patch.test.d.ts.map +1 -0
- package/dist/hooks/setup/__tests__/windows-patch.test.js +110 -0
- package/dist/hooks/setup/__tests__/windows-patch.test.js.map +1 -0
- package/dist/hooks/setup/index.d.ts +18 -0
- package/dist/hooks/setup/index.d.ts.map +1 -1
- package/dist/hooks/setup/index.js +59 -1
- package/dist/hooks/setup/index.js.map +1 -1
- package/dist/hooks/skill-bridge.cjs +1 -0
- package/dist/hooks/skill-state/__tests__/skill-state.test.d.ts +2 -0
- package/dist/hooks/skill-state/__tests__/skill-state.test.d.ts.map +1 -0
- package/dist/hooks/skill-state/__tests__/skill-state.test.js +301 -0
- package/dist/hooks/skill-state/__tests__/skill-state.test.js.map +1 -0
- package/dist/hooks/skill-state/index.d.ts +79 -0
- package/dist/hooks/skill-state/index.d.ts.map +1 -0
- package/dist/hooks/skill-state/index.js +245 -0
- package/dist/hooks/skill-state/index.js.map +1 -0
- package/dist/hooks/team-pipeline/state.d.ts.map +1 -1
- package/dist/hooks/team-pipeline/state.js +5 -0
- package/dist/hooks/team-pipeline/state.js.map +1 -1
- package/dist/hooks/todo-continuation/index.d.ts +17 -0
- package/dist/hooks/todo-continuation/index.d.ts.map +1 -1
- package/dist/hooks/todo-continuation/index.js +44 -2
- package/dist/hooks/todo-continuation/index.js.map +1 -1
- package/dist/hud/elements/call-counts.d.ts.map +1 -1
- package/dist/hud/elements/call-counts.js +6 -4
- package/dist/hud/elements/call-counts.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/prompt-time.d.ts +13 -0
- package/dist/hud/elements/prompt-time.d.ts.map +1 -0
- package/dist/hud/elements/prompt-time.js +21 -0
- package/dist/hud/elements/prompt-time.js.map +1 -0
- package/dist/hud/index.d.ts +2 -1
- package/dist/hud/index.d.ts.map +1 -1
- package/dist/hud/index.js +40 -215
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/render.d.ts.map +1 -1
- package/dist/hud/render.js +7 -108
- package/dist/hud/render.js.map +1 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +4 -3
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/stdin.d.ts +10 -0
- package/dist/hud/stdin.d.ts.map +1 -1
- package/dist/hud/stdin.js +43 -0
- package/dist/hud/stdin.js.map +1 -1
- package/dist/hud/types.d.ts +6 -18
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/hud/types.js +6 -46
- package/dist/hud/types.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -11
- package/dist/index.js.map +1 -1
- package/dist/installer/hooks.d.ts +5 -0
- package/dist/installer/hooks.d.ts.map +1 -1
- package/dist/installer/hooks.js +8 -0
- package/dist/installer/hooks.js.map +1 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +26 -11
- package/dist/installer/index.js.map +1 -1
- package/dist/interop/omx-team-state.d.ts.map +1 -1
- package/dist/interop/omx-team-state.js +38 -6
- 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 +58 -7
- package/dist/interop/shared-state.js.map +1 -1
- package/dist/lib/__tests__/worktree-paths.test.js +250 -1
- package/dist/lib/__tests__/worktree-paths.test.js.map +1 -1
- package/dist/lib/job-state-db.d.ts +150 -0
- package/dist/lib/job-state-db.d.ts.map +1 -0
- package/dist/lib/job-state-db.js +650 -0
- package/dist/lib/job-state-db.js.map +1 -0
- package/dist/lib/mode-names.d.ts +46 -0
- package/dist/lib/mode-names.d.ts.map +1 -0
- package/dist/lib/mode-names.js +73 -0
- package/dist/lib/mode-names.js.map +1 -0
- package/dist/lib/session-isolation.d.ts +32 -0
- package/dist/lib/session-isolation.d.ts.map +1 -0
- package/dist/lib/session-isolation.js +39 -0
- package/dist/lib/session-isolation.js.map +1 -0
- package/dist/lib/worktree-paths.d.ts +38 -8
- package/dist/lib/worktree-paths.d.ts.map +1 -1
- package/dist/lib/worktree-paths.js +124 -56
- package/dist/lib/worktree-paths.js.map +1 -1
- package/dist/mcp/__tests__/team-cleanup.test.d.ts +11 -0
- package/dist/mcp/__tests__/team-cleanup.test.d.ts.map +1 -0
- package/dist/mcp/__tests__/team-cleanup.test.js +228 -0
- package/dist/mcp/__tests__/team-cleanup.test.js.map +1 -0
- package/dist/mcp/cli-detection.d.ts +4 -8
- package/dist/mcp/cli-detection.d.ts.map +1 -1
- package/dist/mcp/cli-detection.js +5 -8
- package/dist/mcp/cli-detection.js.map +1 -1
- package/dist/mcp/codex-request-normalizer.js +59 -0
- package/dist/mcp/codex-server.js +16 -4
- package/dist/mcp/codex-standalone-server.js +13 -4
- package/dist/mcp/index.d.ts +2 -4
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +1 -5
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/job-management.d.ts.map +1 -1
- package/dist/mcp/job-management.js +11 -9
- package/dist/mcp/job-management.js.map +1 -1
- package/dist/mcp/job-state-db.d.ts +1 -149
- package/dist/mcp/job-state-db.d.ts.map +1 -1
- package/dist/mcp/job-state-db.js +2 -649
- package/dist/mcp/job-state-db.js.map +1 -1
- package/dist/mcp/mcp-config.d.ts +1 -1
- package/dist/mcp/mcp-config.js +1 -1
- package/dist/mcp/prompt-injection.d.ts +14 -76
- package/dist/mcp/prompt-injection.d.ts.map +1 -1
- package/dist/mcp/prompt-injection.js +34 -175
- package/dist/mcp/prompt-injection.js.map +1 -1
- package/dist/mcp/standalone-server.js +2 -0
- package/dist/mcp/standalone-server.js.map +1 -1
- package/dist/mcp/team-server.d.ts +16 -0
- package/dist/mcp/team-server.d.ts.map +1 -0
- package/dist/mcp/team-server.js +356 -0
- package/dist/mcp/team-server.js.map +1 -0
- package/dist/notifications/__tests__/formatter.test.js +62 -0
- package/dist/notifications/__tests__/formatter.test.js.map +1 -1
- package/dist/notifications/__tests__/hook-config.test.d.ts +14 -0
- package/dist/notifications/__tests__/hook-config.test.d.ts.map +1 -0
- package/dist/notifications/__tests__/hook-config.test.js +210 -0
- package/dist/notifications/__tests__/hook-config.test.js.map +1 -0
- package/dist/notifications/__tests__/platform-gating.test.d.ts +12 -0
- package/dist/notifications/__tests__/platform-gating.test.d.ts.map +1 -0
- package/dist/notifications/__tests__/platform-gating.test.js +140 -0
- package/dist/notifications/__tests__/platform-gating.test.js.map +1 -0
- package/dist/notifications/__tests__/template-engine.test.d.ts +13 -0
- package/dist/notifications/__tests__/template-engine.test.d.ts.map +1 -0
- package/dist/notifications/__tests__/template-engine.test.js +378 -0
- package/dist/notifications/__tests__/template-engine.test.js.map +1 -0
- package/dist/notifications/config.d.ts.map +1 -1
- package/dist/notifications/config.js +54 -18
- package/dist/notifications/config.js.map +1 -1
- package/dist/notifications/dispatcher.d.ts +2 -2
- package/dist/notifications/dispatcher.d.ts.map +1 -1
- package/dist/notifications/dispatcher.js +10 -6
- package/dist/notifications/dispatcher.js.map +1 -1
- package/dist/notifications/formatter.d.ts.map +1 -1
- package/dist/notifications/formatter.js +22 -0
- package/dist/notifications/formatter.js.map +1 -1
- package/dist/notifications/hook-config-types.d.ts +44 -0
- package/dist/notifications/hook-config-types.d.ts.map +1 -0
- package/dist/notifications/hook-config-types.js +8 -0
- package/dist/notifications/hook-config-types.js.map +1 -0
- package/dist/notifications/hook-config.d.ts +36 -0
- package/dist/notifications/hook-config.d.ts.map +1 -0
- package/dist/notifications/hook-config.js +95 -0
- package/dist/notifications/hook-config.js.map +1 -0
- package/dist/notifications/index.d.ts +3 -0
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +31 -3
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/reply-listener.d.ts.map +1 -1
- package/dist/notifications/reply-listener.js +1 -0
- package/dist/notifications/reply-listener.js.map +1 -1
- package/dist/notifications/session-registry.d.ts.map +1 -1
- package/dist/notifications/session-registry.js +13 -5
- package/dist/notifications/session-registry.js.map +1 -1
- package/dist/notifications/template-engine.d.ts +34 -0
- package/dist/notifications/template-engine.d.ts.map +1 -0
- package/dist/notifications/template-engine.js +248 -0
- package/dist/notifications/template-engine.js.map +1 -0
- package/dist/notifications/types.d.ts +0 -2
- package/dist/notifications/types.d.ts.map +1 -1
- package/dist/openclaw/__tests__/config.test.d.ts +2 -0
- package/dist/openclaw/__tests__/config.test.d.ts.map +1 -0
- package/dist/openclaw/__tests__/config.test.js +200 -0
- package/dist/openclaw/__tests__/config.test.js.map +1 -0
- package/dist/openclaw/__tests__/dispatcher.test.d.ts +2 -0
- package/dist/openclaw/__tests__/dispatcher.test.d.ts.map +1 -0
- package/dist/openclaw/__tests__/dispatcher.test.js +348 -0
- package/dist/openclaw/__tests__/dispatcher.test.js.map +1 -0
- package/dist/openclaw/__tests__/index.test.d.ts +2 -0
- package/dist/openclaw/__tests__/index.test.d.ts.map +1 -0
- package/dist/openclaw/__tests__/index.test.js +235 -0
- package/dist/openclaw/__tests__/index.test.js.map +1 -0
- package/dist/openclaw/config.d.ts +33 -0
- package/dist/openclaw/config.d.ts.map +1 -0
- package/dist/openclaw/config.js +83 -0
- package/dist/openclaw/config.js.map +1 -0
- package/dist/openclaw/dispatcher.d.ts +47 -0
- package/dist/openclaw/dispatcher.d.ts.map +1 -0
- package/dist/openclaw/dispatcher.js +138 -0
- package/dist/openclaw/dispatcher.js.map +1 -0
- package/dist/openclaw/index.d.ts +25 -0
- package/dist/openclaw/index.d.ts.map +1 -0
- package/dist/openclaw/index.js +132 -0
- package/dist/openclaw/index.js.map +1 -0
- package/dist/openclaw/types.d.ts +102 -0
- package/dist/openclaw/types.d.ts.map +1 -0
- package/dist/openclaw/types.js +8 -0
- package/dist/openclaw/types.js.map +1 -0
- package/dist/platform/index.d.ts +5 -0
- package/dist/platform/index.d.ts.map +1 -1
- package/dist/platform/index.js +17 -0
- package/dist/platform/index.js.map +1 -1
- package/dist/platform/process-utils.d.ts.map +1 -1
- package/dist/platform/process-utils.js +55 -9
- package/dist/platform/process-utils.js.map +1 -1
- package/dist/shared/types.d.ts +7 -5
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/team/__tests__/bridge-integration.test.js +10 -8
- package/dist/team/__tests__/bridge-integration.test.js.map +1 -1
- package/dist/team/__tests__/edge-cases.test.js +40 -29
- package/dist/team/__tests__/edge-cases.test.js.map +1 -1
- package/dist/team/__tests__/idle-nudge.test.d.ts +11 -0
- package/dist/team/__tests__/idle-nudge.test.d.ts.map +1 -0
- package/dist/team/__tests__/idle-nudge.test.js +282 -0
- package/dist/team/__tests__/idle-nudge.test.js.map +1 -0
- package/dist/team/__tests__/mcp-team-bridge.spawn-args.test.js +2 -2
- package/dist/team/__tests__/mcp-team-bridge.spawn-args.test.js.map +1 -1
- package/dist/team/__tests__/mcp-team-bridge.usage.test.d.ts +2 -0
- package/dist/team/__tests__/mcp-team-bridge.usage.test.d.ts.map +1 -0
- package/dist/team/__tests__/mcp-team-bridge.usage.test.js +49 -0
- package/dist/team/__tests__/mcp-team-bridge.usage.test.js.map +1 -0
- package/dist/team/__tests__/model-contract.test.d.ts +2 -0
- package/dist/team/__tests__/model-contract.test.d.ts.map +1 -0
- package/dist/team/__tests__/model-contract.test.js +121 -0
- package/dist/team/__tests__/model-contract.test.js.map +1 -0
- package/dist/team/__tests__/phase-controller.test.d.ts +2 -0
- package/dist/team/__tests__/phase-controller.test.d.ts.map +1 -0
- package/dist/team/__tests__/phase-controller.test.js +45 -0
- package/dist/team/__tests__/phase-controller.test.js.map +1 -0
- package/dist/team/__tests__/runtime-assign.test.d.ts +2 -0
- package/dist/team/__tests__/runtime-assign.test.d.ts.map +1 -0
- package/dist/team/__tests__/runtime-assign.test.js +43 -0
- package/dist/team/__tests__/runtime-assign.test.js.map +1 -0
- package/dist/team/__tests__/runtime-gemini-prompt.test.d.ts +2 -0
- package/dist/team/__tests__/runtime-gemini-prompt.test.d.ts.map +1 -0
- package/dist/team/__tests__/runtime-gemini-prompt.test.js +153 -0
- package/dist/team/__tests__/runtime-gemini-prompt.test.js.map +1 -0
- package/dist/team/__tests__/runtime-prompt-mode.test.d.ts +2 -0
- package/dist/team/__tests__/runtime-prompt-mode.test.d.ts.map +1 -0
- package/dist/team/__tests__/runtime-prompt-mode.test.js +162 -0
- package/dist/team/__tests__/runtime-prompt-mode.test.js.map +1 -0
- package/dist/team/__tests__/runtime.test.d.ts +2 -0
- package/dist/team/__tests__/runtime.test.d.ts.map +1 -0
- package/dist/team/__tests__/runtime.test.js +37 -0
- package/dist/team/__tests__/runtime.test.js.map +1 -0
- package/dist/team/__tests__/task-file-ops.test.js +63 -59
- package/dist/team/__tests__/task-file-ops.test.js.map +1 -1
- package/dist/team/__tests__/team-name.test.d.ts +2 -0
- package/dist/team/__tests__/team-name.test.d.ts.map +1 -0
- package/dist/team/__tests__/team-name.test.js +18 -0
- package/dist/team/__tests__/team-name.test.js.map +1 -0
- package/dist/team/__tests__/team-status.test.js +52 -6
- package/dist/team/__tests__/team-status.test.js.map +1 -1
- package/dist/team/__tests__/tmux-comm.test.d.ts +2 -0
- package/dist/team/__tests__/tmux-comm.test.d.ts.map +1 -0
- package/dist/team/__tests__/tmux-comm.test.js +26 -0
- package/dist/team/__tests__/tmux-comm.test.js.map +1 -0
- package/dist/team/__tests__/tmux-session.create-team.test.d.ts +2 -0
- package/dist/team/__tests__/tmux-session.create-team.test.d.ts.map +1 -0
- package/dist/team/__tests__/tmux-session.create-team.test.js +104 -0
- package/dist/team/__tests__/tmux-session.create-team.test.js.map +1 -0
- package/dist/team/__tests__/tmux-session.spawn.test.d.ts +2 -0
- package/dist/team/__tests__/tmux-session.spawn.test.d.ts.map +1 -0
- package/dist/team/__tests__/tmux-session.spawn.test.js +61 -0
- package/dist/team/__tests__/tmux-session.spawn.test.js.map +1 -0
- package/dist/team/__tests__/tmux-session.test.js +161 -2
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/worker-bootstrap.test.d.ts +2 -0
- package/dist/team/__tests__/worker-bootstrap.test.d.ts.map +1 -0
- package/dist/team/__tests__/worker-bootstrap.test.js +58 -0
- package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -0
- package/dist/team/bridge-entry.d.ts.map +1 -1
- package/dist/team/bridge-entry.js +4 -0
- package/dist/team/bridge-entry.js.map +1 -1
- package/dist/team/capabilities.d.ts.map +1 -1
- package/dist/team/capabilities.js +3 -0
- package/dist/team/capabilities.js.map +1 -1
- package/dist/team/cli-detection.d.ts +9 -0
- package/dist/team/cli-detection.d.ts.map +1 -0
- package/dist/team/cli-detection.js +29 -0
- package/dist/team/cli-detection.js.map +1 -0
- package/dist/team/idle-nudge.d.ts +53 -0
- package/dist/team/idle-nudge.d.ts.map +1 -0
- package/dist/team/idle-nudge.js +124 -0
- package/dist/team/idle-nudge.js.map +1 -0
- package/dist/team/inbox-outbox.d.ts.map +1 -1
- package/dist/team/inbox-outbox.js +7 -3
- package/dist/team/inbox-outbox.js.map +1 -1
- package/dist/team/index.d.ts +14 -1
- package/dist/team/index.d.ts.map +1 -1
- package/dist/team/index.js +12 -1
- package/dist/team/index.js.map +1 -1
- package/dist/team/mcp-team-bridge.d.ts +9 -0
- package/dist/team/mcp-team-bridge.d.ts.map +1 -1
- package/dist/team/mcp-team-bridge.js +82 -3
- package/dist/team/mcp-team-bridge.js.map +1 -1
- package/dist/team/model-contract.d.ts +37 -0
- package/dist/team/model-contract.d.ts.map +1 -0
- package/dist/team/model-contract.js +139 -0
- package/dist/team/model-contract.js.map +1 -0
- package/dist/team/phase-controller.d.ts +33 -0
- package/dist/team/phase-controller.d.ts.map +1 -0
- package/dist/team/phase-controller.js +79 -0
- package/dist/team/phase-controller.js.map +1 -0
- package/dist/team/runtime-cli.d.ts +9 -0
- package/dist/team/runtime-cli.d.ts.map +1 -0
- package/dist/team/runtime-cli.js +188 -0
- package/dist/team/runtime-cli.js.map +1 -0
- package/dist/team/runtime.d.ts +95 -0
- package/dist/team/runtime.d.ts.map +1 -0
- package/dist/team/runtime.js +692 -0
- package/dist/team/runtime.js.map +1 -0
- package/dist/team/state-paths.d.ts +72 -0
- package/dist/team/state-paths.d.ts.map +1 -0
- package/dist/team/state-paths.js +87 -0
- package/dist/team/state-paths.js.map +1 -0
- package/dist/team/task-file-ops.d.ts +27 -7
- package/dist/team/task-file-ops.d.ts.map +1 -1
- package/dist/team/task-file-ops.js +116 -55
- package/dist/team/task-file-ops.js.map +1 -1
- package/dist/team/team-name.d.ts +2 -0
- package/dist/team/team-name.d.ts.map +1 -0
- package/dist/team/team-name.js +8 -0
- package/dist/team/team-name.js.map +1 -0
- package/dist/team/team-registration.d.ts +1 -1
- package/dist/team/team-registration.d.ts.map +1 -1
- package/dist/team/team-registration.js.map +1 -1
- package/dist/team/team-status.d.ts +11 -1
- package/dist/team/team-status.d.ts.map +1 -1
- package/dist/team/team-status.js +32 -3
- package/dist/team/team-status.js.map +1 -1
- package/dist/team/tmux-comm.d.ts +36 -0
- package/dist/team/tmux-comm.d.ts.map +1 -0
- package/dist/team/tmux-comm.js +115 -0
- package/dist/team/tmux-comm.js.map +1 -0
- package/dist/team/tmux-session.d.ts +92 -0
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +533 -2
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/team/types.d.ts +10 -3
- package/dist/team/types.d.ts.map +1 -1
- package/dist/team/unified-team.d.ts.map +1 -1
- package/dist/team/unified-team.js +13 -3
- package/dist/team/unified-team.js.map +1 -1
- package/dist/team/worker-bootstrap.d.ts +39 -0
- package/dist/team/worker-bootstrap.d.ts.map +1 -0
- package/dist/team/worker-bootstrap.js +117 -0
- package/dist/team/worker-bootstrap.js.map +1 -0
- package/dist/team/worker-health.d.ts.map +1 -1
- package/dist/team/worker-health.js +15 -3
- package/dist/team/worker-health.js.map +1 -1
- package/dist/tools/ast-tools.js +1 -1
- package/dist/tools/ast-tools.js.map +1 -1
- package/dist/tools/diagnostics/lsp-aggregator.d.ts.map +1 -1
- package/dist/tools/diagnostics/lsp-aggregator.js +4 -2
- package/dist/tools/diagnostics/lsp-aggregator.js.map +1 -1
- package/dist/tools/lsp/__tests__/client-handle-data.test.d.ts +2 -0
- package/dist/tools/lsp/__tests__/client-handle-data.test.d.ts.map +1 -0
- package/dist/tools/lsp/__tests__/client-handle-data.test.js +138 -0
- package/dist/tools/lsp/__tests__/client-handle-data.test.js.map +1 -0
- package/dist/tools/lsp/client.d.ts +13 -0
- package/dist/tools/lsp/client.d.ts.map +1 -1
- package/dist/tools/lsp/client.js +64 -8
- package/dist/tools/lsp/client.js.map +1 -1
- package/dist/tools/lsp/servers.d.ts.map +1 -1
- package/dist/tools/lsp/servers.js +4 -9
- package/dist/tools/lsp/servers.js.map +1 -1
- package/dist/tools/lsp-tools.d.ts.map +1 -1
- package/dist/tools/lsp-tools.js +4 -0
- package/dist/tools/lsp-tools.js.map +1 -1
- package/dist/tools/python-repl/bridge-manager.d.ts.map +1 -1
- package/dist/tools/python-repl/bridge-manager.js +15 -1
- package/dist/tools/python-repl/bridge-manager.js.map +1 -1
- package/dist/tools/python-repl/session-lock.d.ts.map +1 -1
- package/dist/tools/python-repl/session-lock.js +35 -15
- package/dist/tools/python-repl/session-lock.js.map +1 -1
- package/dist/tools/state-tools.d.ts.map +1 -1
- package/dist/tools/state-tools.js +10 -0
- package/dist/tools/state-tools.js.map +1 -1
- package/dist/utils/__tests__/frontmatter.test.d.ts +2 -0
- package/dist/utils/__tests__/frontmatter.test.d.ts.map +1 -0
- package/dist/utils/__tests__/frontmatter.test.js +147 -0
- package/dist/utils/__tests__/frontmatter.test.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +24 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +62 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +4 -2
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/string-width.d.ts.map +1 -1
- package/dist/utils/string-width.js +15 -4
- package/dist/utils/string-width.js.map +1 -1
- package/dist/verification/tier-selector.js +1 -1
- package/dist/verification/tier-selector.js.map +1 -1
- package/docs/AGENTS.md +4 -2
- package/docs/CLAUDE.md +8 -48
- package/docs/MIGRATION.md +114 -0
- package/docs/REFERENCE.md +35 -102
- package/hooks/hooks.json +23 -23
- package/package.json +8 -8
- package/scripts/build-runtime-cli.mjs +24 -0
- package/scripts/build-team-server.mjs +28 -0
- package/scripts/cleanup-orphans.mjs +22 -5
- package/scripts/context-safety.mjs +5 -1
- package/scripts/demo-team.mjs +26 -0
- package/scripts/keyword-detector.mjs +6 -76
- package/scripts/openclaw-gateway-demo.mjs +168 -0
- package/scripts/persistent-mode.cjs +30 -4
- package/scripts/persistent-mode.mjs +48 -3
- package/scripts/plugin-setup.mjs +66 -3
- package/scripts/post-tool-use-failure.mjs +20 -2
- package/scripts/post-tool-verifier.mjs +57 -6
- package/scripts/pre-tool-enforcer.mjs +125 -5
- package/scripts/run.cjs +114 -0
- package/scripts/session-start.mjs +56 -7
- package/scripts/status.mjs +144 -0
- package/scripts/test-codex-gemini-team.mjs +78 -0
- package/skills/AGENTS.md +5 -2
- package/skills/analyze/SKILL.md +5 -11
- package/skills/autopilot/SKILL.md +5 -6
- package/skills/ccg/SKILL.md +88 -99
- package/skills/configure-notifications/SKILL.md +177 -0
- package/skills/configure-openclaw/SKILL.md +320 -0
- package/skills/external-context/SKILL.md +7 -83
- package/skills/hud/SKILL.md +68 -46
- package/skills/omc-setup/SKILL.md +58 -19
- package/skills/omc-teams/SKILL.md +178 -0
- package/skills/pipeline/SKILL.md +4 -4
- package/skills/plan/SKILL.md +28 -16
- package/skills/ralph/SKILL.md +3 -4
- package/skills/ralph-init/SKILL.md +3 -1
- package/skills/ralplan/SKILL.md +93 -8
- package/skills/security-review/SKILL.md +5 -6
- package/skills/tdd/SKILL.md +5 -6
- package/skills/team/SKILL.md +35 -34
- package/templates/hooks/keyword-detector.mjs +11 -82
- package/templates/hooks/persistent-mode.mjs +120 -3
- package/templates/hooks/post-tool-use-failure.mjs +20 -2
- package/templates/hooks/session-start.mjs +2 -16
- package/dist/__tests__/analytics/backfill-dedup.test.d.ts +0 -2
- package/dist/__tests__/analytics/backfill-dedup.test.d.ts.map +0 -1
- package/dist/__tests__/analytics/backfill-dedup.test.js +0 -179
- package/dist/__tests__/analytics/backfill-dedup.test.js.map +0 -1
- package/dist/__tests__/analytics/backfill-engine.test.d.ts +0 -2
- package/dist/__tests__/analytics/backfill-engine.test.d.ts.map +0 -1
- package/dist/__tests__/analytics/backfill-engine.test.js +0 -362
- package/dist/__tests__/analytics/backfill-engine.test.js.map +0 -1
- package/dist/__tests__/analytics/output-estimator.test.d.ts +0 -2
- package/dist/__tests__/analytics/output-estimator.test.d.ts.map +0 -1
- package/dist/__tests__/analytics/output-estimator.test.js +0 -124
- package/dist/__tests__/analytics/output-estimator.test.js.map +0 -1
- package/dist/__tests__/analytics/token-extractor.test.d.ts +0 -2
- package/dist/__tests__/analytics/token-extractor.test.d.ts.map +0 -1
- package/dist/__tests__/analytics/token-extractor.test.js +0 -165
- package/dist/__tests__/analytics/token-extractor.test.js.map +0 -1
- package/dist/__tests__/analytics/token-tracker.test.d.ts +0 -2
- package/dist/__tests__/analytics/token-tracker.test.d.ts.map +0 -1
- package/dist/__tests__/analytics/token-tracker.test.js +0 -189
- package/dist/__tests__/analytics/token-tracker.test.js.map +0 -1
- package/dist/__tests__/analytics/tokscale-adapter.test.d.ts +0 -2
- package/dist/__tests__/analytics/tokscale-adapter.test.d.ts.map +0 -1
- package/dist/__tests__/analytics/tokscale-adapter.test.js +0 -79
- package/dist/__tests__/analytics/tokscale-adapter.test.js.map +0 -1
- package/dist/__tests__/analytics/transcript-parser.test.d.ts +0 -2
- package/dist/__tests__/analytics/transcript-parser.test.d.ts.map +0 -1
- package/dist/__tests__/analytics/transcript-parser.test.js +0 -285
- package/dist/__tests__/analytics/transcript-parser.test.js.map +0 -1
- package/dist/__tests__/analytics/transcript-scanner.test.d.ts +0 -2
- package/dist/__tests__/analytics/transcript-scanner.test.d.ts.map +0 -1
- package/dist/__tests__/analytics/transcript-scanner.test.js +0 -443
- package/dist/__tests__/analytics/transcript-scanner.test.js.map +0 -1
- package/dist/__tests__/analytics/transcript-token-extractor.test.d.ts +0 -2
- package/dist/__tests__/analytics/transcript-token-extractor.test.d.ts.map +0 -1
- package/dist/__tests__/analytics/transcript-token-extractor.test.js +0 -177
- package/dist/__tests__/analytics/transcript-token-extractor.test.js.map +0 -1
- package/dist/analytics/analytics-summary.d.ts +0 -47
- package/dist/analytics/analytics-summary.d.ts.map +0 -1
- package/dist/analytics/analytics-summary.js +0 -171
- package/dist/analytics/analytics-summary.js.map +0 -1
- package/dist/analytics/backfill-dedup.d.ts +0 -49
- package/dist/analytics/backfill-dedup.d.ts.map +0 -1
- package/dist/analytics/backfill-dedup.js +0 -115
- package/dist/analytics/backfill-dedup.js.map +0 -1
- package/dist/analytics/backfill-engine.d.ts +0 -59
- package/dist/analytics/backfill-engine.d.ts.map +0 -1
- package/dist/analytics/backfill-engine.js +0 -172
- package/dist/analytics/backfill-engine.js.map +0 -1
- package/dist/analytics/cost-estimator.d.ts +0 -29
- package/dist/analytics/cost-estimator.d.ts.map +0 -1
- package/dist/analytics/cost-estimator.js +0 -135
- package/dist/analytics/cost-estimator.js.map +0 -1
- package/dist/analytics/export.d.ts +0 -7
- package/dist/analytics/export.d.ts.map +0 -1
- package/dist/analytics/export.js +0 -93
- package/dist/analytics/export.js.map +0 -1
- package/dist/analytics/index.d.ts +0 -24
- package/dist/analytics/index.d.ts.map +0 -1
- package/dist/analytics/index.js +0 -30
- package/dist/analytics/index.js.map +0 -1
- package/dist/analytics/metrics-collector.d.ts +0 -30
- package/dist/analytics/metrics-collector.d.ts.map +0 -1
- package/dist/analytics/metrics-collector.js +0 -96
- package/dist/analytics/metrics-collector.js.map +0 -1
- package/dist/analytics/output-estimator.d.ts +0 -26
- package/dist/analytics/output-estimator.d.ts.map +0 -1
- package/dist/analytics/output-estimator.js +0 -65
- package/dist/analytics/output-estimator.js.map +0 -1
- package/dist/analytics/query-engine.d.ts +0 -35
- package/dist/analytics/query-engine.d.ts.map +0 -1
- package/dist/analytics/query-engine.js +0 -239
- package/dist/analytics/query-engine.js.map +0 -1
- package/dist/analytics/session-catalog.d.ts +0 -45
- package/dist/analytics/session-catalog.d.ts.map +0 -1
- package/dist/analytics/session-catalog.js +0 -153
- package/dist/analytics/session-catalog.js.map +0 -1
- package/dist/analytics/session-manager.d.ts +0 -58
- package/dist/analytics/session-manager.d.ts.map +0 -1
- package/dist/analytics/session-manager.js +0 -396
- package/dist/analytics/session-manager.js.map +0 -1
- package/dist/analytics/session-types.d.ts +0 -37
- package/dist/analytics/session-types.d.ts.map +0 -1
- package/dist/analytics/session-types.js +0 -2
- package/dist/analytics/session-types.js.map +0 -1
- package/dist/analytics/token-extractor.d.ts +0 -31
- package/dist/analytics/token-extractor.d.ts.map +0 -1
- package/dist/analytics/token-extractor.js +0 -57
- package/dist/analytics/token-extractor.js.map +0 -1
- package/dist/analytics/token-tracker.d.ts +0 -33
- package/dist/analytics/token-tracker.d.ts.map +0 -1
- package/dist/analytics/token-tracker.js +0 -443
- package/dist/analytics/token-tracker.js.map +0 -1
- package/dist/analytics/tokscale-adapter.d.ts +0 -71
- package/dist/analytics/tokscale-adapter.d.ts.map +0 -1
- package/dist/analytics/tokscale-adapter.js +0 -223
- package/dist/analytics/tokscale-adapter.js.map +0 -1
- package/dist/analytics/transcript-parser.d.ts +0 -42
- package/dist/analytics/transcript-parser.d.ts.map +0 -1
- package/dist/analytics/transcript-parser.js +0 -90
- package/dist/analytics/transcript-parser.js.map +0 -1
- package/dist/analytics/transcript-scanner.d.ts +0 -51
- package/dist/analytics/transcript-scanner.d.ts.map +0 -1
- package/dist/analytics/transcript-scanner.js +0 -279
- package/dist/analytics/transcript-scanner.js.map +0 -1
- package/dist/analytics/transcript-token-extractor.d.ts +0 -35
- package/dist/analytics/transcript-token-extractor.d.ts.map +0 -1
- package/dist/analytics/transcript-token-extractor.js +0 -136
- package/dist/analytics/transcript-token-extractor.js.map +0 -1
- package/dist/analytics/types.d.ts +0 -119
- package/dist/analytics/types.d.ts.map +0 -1
- package/dist/analytics/types.js +0 -32
- package/dist/analytics/types.js.map +0 -1
- package/dist/cli/analytics.d.ts +0 -3
- package/dist/cli/analytics.d.ts.map +0 -1
- package/dist/cli/analytics.js +0 -105
- package/dist/cli/analytics.js.map +0 -1
- package/dist/cli/commands/agents.d.ts +0 -5
- package/dist/cli/commands/agents.d.ts.map +0 -1
- package/dist/cli/commands/agents.js +0 -31
- package/dist/cli/commands/agents.js.map +0 -1
- package/dist/cli/commands/backfill.d.ts +0 -15
- package/dist/cli/commands/backfill.d.ts.map +0 -1
- package/dist/cli/commands/backfill.js +0 -146
- package/dist/cli/commands/backfill.js.map +0 -1
- package/dist/cli/commands/cleanup.d.ts +0 -4
- package/dist/cli/commands/cleanup.d.ts.map +0 -1
- package/dist/cli/commands/cleanup.js +0 -31
- package/dist/cli/commands/cleanup.js.map +0 -1
- package/dist/cli/commands/cost.d.ts +0 -4
- package/dist/cli/commands/cost.d.ts.map +0 -1
- package/dist/cli/commands/cost.js +0 -53
- package/dist/cli/commands/cost.js.map +0 -1
- package/dist/cli/commands/export.d.ts +0 -5
- package/dist/cli/commands/export.d.ts.map +0 -1
- package/dist/cli/commands/export.js +0 -30
- package/dist/cli/commands/export.js.map +0 -1
- package/dist/cli/commands/sessions.d.ts +0 -5
- package/dist/cli/commands/sessions.d.ts.map +0 -1
- package/dist/cli/commands/sessions.js +0 -89
- package/dist/cli/commands/sessions.js.map +0 -1
- package/dist/cli/commands/stats.d.ts +0 -5
- package/dist/cli/commands/stats.d.ts.map +0 -1
- package/dist/cli/commands/stats.js +0 -84
- package/dist/cli/commands/stats.js.map +0 -1
- package/dist/cli/utils/tokscale-launcher.d.ts +0 -25
- package/dist/cli/utils/tokscale-launcher.d.ts.map +0 -1
- package/dist/cli/utils/tokscale-launcher.js +0 -70
- package/dist/cli/utils/tokscale-launcher.js.map +0 -1
- package/dist/hud/analytics-display.d.ts +0 -63
- package/dist/hud/analytics-display.d.ts.map +0 -1
- package/dist/hud/analytics-display.js +0 -190
- package/dist/hud/analytics-display.js.map +0 -1
- package/scripts/build-codex-server.mjs +0 -95
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: configure-openclaw
|
|
3
|
+
description: Configure OpenClaw gateway integration for waking external automations and AI agents on hook events
|
|
4
|
+
triggers:
|
|
5
|
+
- "configure openclaw"
|
|
6
|
+
- "setup openclaw"
|
|
7
|
+
- "openclaw gateway"
|
|
8
|
+
- "openclaw setup"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Configure OpenClaw
|
|
12
|
+
|
|
13
|
+
Set up OpenClaw so OMC can wake external gateways — triggering automations, workflows, or AI agents — when hook events fire during Claude sessions.
|
|
14
|
+
|
|
15
|
+
OpenClaw is NOT a notification system. It sends structured instruction payloads to programmable HTTPS endpoints. This makes it ideal for triggering n8n workflows, custom AI agents, webhook automations, or any HTTPS-capable system.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## How This Skill Works
|
|
20
|
+
|
|
21
|
+
This is an interactive, natural-language configuration skill. Walk the user through setup by asking questions with AskUserQuestion. Write the result to `~/.claude/omc_config.openclaw.json`.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Step 1: Detect Existing Configuration
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
CONFIG_FILE="${OMC_OPENCLAW_CONFIG:-$HOME/.claude/omc_config.openclaw.json}"
|
|
29
|
+
|
|
30
|
+
if [ -f "$CONFIG_FILE" ]; then
|
|
31
|
+
IS_ENABLED=$(jq -r '.enabled // false' "$CONFIG_FILE" 2>/dev/null)
|
|
32
|
+
GATEWAY_COUNT=$(jq -r '.gateways | keys | length' "$CONFIG_FILE" 2>/dev/null)
|
|
33
|
+
HOOK_COUNT=$(jq -r '[.hooks | to_entries[] | select(.value.enabled == true)] | length' "$CONFIG_FILE" 2>/dev/null)
|
|
34
|
+
|
|
35
|
+
if [ "$IS_ENABLED" = "true" ]; then
|
|
36
|
+
echo "EXISTING_CONFIG=true"
|
|
37
|
+
echo "GATEWAY_COUNT=$GATEWAY_COUNT"
|
|
38
|
+
echo "HOOK_COUNT=$HOOK_COUNT"
|
|
39
|
+
else
|
|
40
|
+
echo "EXISTING_CONFIG=false"
|
|
41
|
+
fi
|
|
42
|
+
else
|
|
43
|
+
echo "NO_CONFIG_FILE"
|
|
44
|
+
fi
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
If existing config is found, show the user what's currently configured and ask if they want to update or reconfigure.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Step 2: Collect Gateway URL
|
|
52
|
+
|
|
53
|
+
Use AskUserQuestion:
|
|
54
|
+
|
|
55
|
+
**Question:** "What is your OpenClaw gateway URL? (Must be HTTPS, e.g. https://my-gateway.example.com/wake)"
|
|
56
|
+
|
|
57
|
+
The user will type their URL in the "Other" field.
|
|
58
|
+
|
|
59
|
+
**Validate** the URL:
|
|
60
|
+
- Must start with `https://`
|
|
61
|
+
- Must be a valid URL
|
|
62
|
+
- If invalid, explain the requirement and ask again
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Step 3: Collect Auth Header (Optional)
|
|
67
|
+
|
|
68
|
+
Use AskUserQuestion:
|
|
69
|
+
|
|
70
|
+
**Question:** "Does your gateway require an Authorization header?"
|
|
71
|
+
|
|
72
|
+
**Options:**
|
|
73
|
+
1. **Yes, Bearer token** - I'll provide a Bearer token (e.g., `Bearer sk-...`)
|
|
74
|
+
2. **Yes, custom header value** - I'll type the full header value
|
|
75
|
+
3. **No auth required** - The gateway is open or uses a different auth method
|
|
76
|
+
|
|
77
|
+
If user selects option 1 or 2, ask:
|
|
78
|
+
|
|
79
|
+
**Question:** "Paste your Authorization header value (e.g., `Bearer sk-mytoken123`)"
|
|
80
|
+
|
|
81
|
+
The user will type the value in the "Other" field.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Step 4: Configure Hook Events
|
|
86
|
+
|
|
87
|
+
Use AskUserQuestion with multiSelect:
|
|
88
|
+
|
|
89
|
+
**Question:** "Which hook events should trigger your OpenClaw gateway?"
|
|
90
|
+
|
|
91
|
+
**Options (multiSelect: true):**
|
|
92
|
+
1. **session-start** - When a new Claude session begins. Variables: `{{sessionId}}`, `{{projectName}}`, `{{projectPath}}`
|
|
93
|
+
2. **session-end** - When a session ends. Variables: `{{contextSummary}}`, `{{reason}}`, `{{sessionId}}`
|
|
94
|
+
3. **stop** - When Claude stops (idle/completion). Variables: `{{sessionId}}`, `{{projectName}}`
|
|
95
|
+
4. **pre-tool-use** - Before each tool call (high frequency). Variables: `{{toolName}}`, `{{sessionId}}`
|
|
96
|
+
5. **post-tool-use** - After each tool call (high frequency). Variables: `{{toolName}}`, `{{sessionId}}`
|
|
97
|
+
6. **keyword-detector** - On every prompt submission. Variables: `{{prompt}}`, `{{sessionId}}`
|
|
98
|
+
7. **ask-user-question** - When Claude needs user input. Variables: `{{question}}`, `{{sessionId}}`
|
|
99
|
+
|
|
100
|
+
Default selection: session-start, session-end, stop.
|
|
101
|
+
|
|
102
|
+
**Note:** pre-tool-use, post-tool-use, and keyword-detector fire very frequently. Only enable them if your gateway can handle the volume.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Step 5: Collect Instruction Templates
|
|
107
|
+
|
|
108
|
+
For each selected event, ask the user for an instruction template. Show the available template variables for that event type.
|
|
109
|
+
|
|
110
|
+
Use AskUserQuestion for each event:
|
|
111
|
+
|
|
112
|
+
**Example for session-start:**
|
|
113
|
+
|
|
114
|
+
**Question:** "Instruction template for `session-start` events. Available variables: `{{sessionId}}`, `{{projectName}}`, `{{projectPath}}`, `{{timestamp}}`"
|
|
115
|
+
|
|
116
|
+
**Options:**
|
|
117
|
+
1. **Use default** - "Session started for project {{projectName}}"
|
|
118
|
+
2. **Custom** - Enter my own instruction text
|
|
119
|
+
|
|
120
|
+
**Example for session-end:**
|
|
121
|
+
|
|
122
|
+
**Question:** "Instruction template for `session-end` events. Available variables: `{{sessionId}}`, `{{projectName}}`, `{{contextSummary}}`, `{{reason}}`, `{{timestamp}}`"
|
|
123
|
+
|
|
124
|
+
**Options:**
|
|
125
|
+
1. **Use default** - "Session ended. Summary: {{contextSummary}}"
|
|
126
|
+
2. **Custom** - Enter my own instruction text
|
|
127
|
+
|
|
128
|
+
**Example for stop:**
|
|
129
|
+
|
|
130
|
+
**Question:** "Instruction template for `stop` events. Available variables: `{{sessionId}}`, `{{projectName}}`, `{{projectPath}}`, `{{timestamp}}`"
|
|
131
|
+
|
|
132
|
+
**Options:**
|
|
133
|
+
1. **Use default** - "Session stopping for project {{projectName}}"
|
|
134
|
+
2. **Custom** - Enter my own instruction text
|
|
135
|
+
|
|
136
|
+
**Example for pre-tool-use:**
|
|
137
|
+
|
|
138
|
+
**Question:** "Instruction template for `pre-tool-use` events. Available variables: `{{toolName}}`, `{{sessionId}}`, `{{projectName}}`, `{{timestamp}}`"
|
|
139
|
+
|
|
140
|
+
**Options:**
|
|
141
|
+
1. **Use default** - "Tool {{toolName}} about to be used"
|
|
142
|
+
2. **Custom** - Enter my own instruction text
|
|
143
|
+
|
|
144
|
+
**Example for post-tool-use:**
|
|
145
|
+
|
|
146
|
+
**Question:** "Instruction template for `post-tool-use` events. Available variables: `{{toolName}}`, `{{sessionId}}`, `{{projectName}}`, `{{timestamp}}`"
|
|
147
|
+
|
|
148
|
+
**Options:**
|
|
149
|
+
1. **Use default** - "Tool {{toolName}} completed"
|
|
150
|
+
2. **Custom** - Enter my own instruction text
|
|
151
|
+
|
|
152
|
+
**Example for keyword-detector:**
|
|
153
|
+
|
|
154
|
+
**Question:** "Instruction template for `keyword-detector` events. Available variables: `{{prompt}}`, `{{sessionId}}`, `{{projectName}}`, `{{timestamp}}`"
|
|
155
|
+
|
|
156
|
+
**Options:**
|
|
157
|
+
1. **Use default** - "Keyword detected: {{prompt}}"
|
|
158
|
+
2. **Custom** - Enter my own instruction text
|
|
159
|
+
|
|
160
|
+
**Example for ask-user-question:**
|
|
161
|
+
|
|
162
|
+
**Question:** "Instruction template for `ask-user-question` events. Available variables: `{{question}}`, `{{sessionId}}`, `{{projectName}}`, `{{timestamp}}`"
|
|
163
|
+
|
|
164
|
+
**Options:**
|
|
165
|
+
1. **Use default** - "User input requested: {{question}}"
|
|
166
|
+
2. **Custom** - Enter my own instruction text
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Step 6: Write Configuration
|
|
171
|
+
|
|
172
|
+
Build and write the config to `~/.claude/omc_config.openclaw.json`:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
CONFIG_FILE="${OMC_OPENCLAW_CONFIG:-$HOME/.claude/omc_config.openclaw.json}"
|
|
176
|
+
mkdir -p "$(dirname "$CONFIG_FILE")"
|
|
177
|
+
|
|
178
|
+
# GATEWAY_URL, AUTH_HEADER, and per-event instructions are collected from user
|
|
179
|
+
# SELECTED_EVENTS is the list of enabled hook events
|
|
180
|
+
# Build the JSON using jq
|
|
181
|
+
|
|
182
|
+
# Example: session-start and session-end selected, bearer auth
|
|
183
|
+
jq -n \
|
|
184
|
+
--arg gateway_url "$GATEWAY_URL" \
|
|
185
|
+
--arg auth_header "$AUTH_HEADER" \
|
|
186
|
+
--arg session_start_instruction "$SESSION_START_INSTRUCTION" \
|
|
187
|
+
--arg session_end_instruction "$SESSION_END_INSTRUCTION" \
|
|
188
|
+
--arg stop_instruction "$STOP_INSTRUCTION" \
|
|
189
|
+
'{
|
|
190
|
+
enabled: true,
|
|
191
|
+
gateways: {
|
|
192
|
+
"my-gateway": {
|
|
193
|
+
url: $gateway_url,
|
|
194
|
+
headers: (if $auth_header != "" then {"Authorization": $auth_header} else {} end),
|
|
195
|
+
method: "POST",
|
|
196
|
+
timeout: 10000
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
hooks: {
|
|
200
|
+
"session-start": {gateway: "my-gateway", instruction: $session_start_instruction, enabled: true},
|
|
201
|
+
"session-end": {gateway: "my-gateway", instruction: $session_end_instruction, enabled: true},
|
|
202
|
+
"stop": {gateway: "my-gateway", instruction: $stop_instruction, enabled: true}
|
|
203
|
+
}
|
|
204
|
+
}' > "$CONFIG_FILE"
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Adjust the hooks object to include only the events the user selected, with their chosen instructions.
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Step 7: Test the Gateway
|
|
212
|
+
|
|
213
|
+
After writing config, offer to send a test wake call:
|
|
214
|
+
|
|
215
|
+
Use AskUserQuestion:
|
|
216
|
+
|
|
217
|
+
**Question:** "Send a test wake call to your gateway to verify the connection?"
|
|
218
|
+
|
|
219
|
+
**Options:**
|
|
220
|
+
1. **Yes, test now (Recommended)** - Send a test HTTP POST to the gateway
|
|
221
|
+
2. **No, I'll test later** - Skip testing
|
|
222
|
+
|
|
223
|
+
If testing:
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
GATEWAY_URL="USER_PROVIDED_URL"
|
|
227
|
+
AUTH_HEADER="USER_PROVIDED_AUTH_HEADER" # may be empty
|
|
228
|
+
|
|
229
|
+
# Build auth header arg
|
|
230
|
+
AUTH_ARG=""
|
|
231
|
+
if [ -n "$AUTH_HEADER" ]; then
|
|
232
|
+
AUTH_ARG="-H \"Authorization: $AUTH_HEADER\""
|
|
233
|
+
fi
|
|
234
|
+
|
|
235
|
+
RESPONSE=$(eval curl -s -w "\n%{http_code}" \
|
|
236
|
+
-H "Content-Type: application/json" \
|
|
237
|
+
$AUTH_ARG \
|
|
238
|
+
-d '{"event":"session-start","instruction":"OpenClaw test wake from OMC configure wizard","timestamp":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","context":{}}' \
|
|
239
|
+
"$GATEWAY_URL")
|
|
240
|
+
|
|
241
|
+
HTTP_CODE=$(echo "$RESPONSE" | tail -1)
|
|
242
|
+
BODY=$(echo "$RESPONSE" | head -1)
|
|
243
|
+
|
|
244
|
+
if [ "$HTTP_CODE" = "200" ] || [ "$HTTP_CODE" = "201" ] || [ "$HTTP_CODE" = "202" ] || [ "$HTTP_CODE" = "204" ]; then
|
|
245
|
+
echo "Test wake succeeded (HTTP $HTTP_CODE)!"
|
|
246
|
+
else
|
|
247
|
+
echo "Test wake failed (HTTP $HTTP_CODE):"
|
|
248
|
+
echo "$BODY"
|
|
249
|
+
fi
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Report success or failure. Common issues:
|
|
253
|
+
- **401 Unauthorized**: Auth header is missing or incorrect
|
|
254
|
+
- **403 Forbidden**: Token does not have permission
|
|
255
|
+
- **404 Not Found**: Gateway URL path is incorrect
|
|
256
|
+
- **SSL error**: URL must be HTTPS with a valid certificate
|
|
257
|
+
- **Connection refused**: Gateway is not running or URL is wrong
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Step 8: Confirm
|
|
262
|
+
|
|
263
|
+
Display the final configuration summary:
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
OpenClaw Gateway Configured!
|
|
267
|
+
|
|
268
|
+
Gateway: https://my-gateway.example.com/wake
|
|
269
|
+
Auth: Bearer *** (configured)
|
|
270
|
+
Events: session-start, session-end, stop
|
|
271
|
+
|
|
272
|
+
Config saved to: ~/.claude/omc_config.openclaw.json
|
|
273
|
+
|
|
274
|
+
To activate OpenClaw, use one of:
|
|
275
|
+
omc --openclaw (per-session flag)
|
|
276
|
+
export OMC_OPENCLAW=1 (environment variable)
|
|
277
|
+
|
|
278
|
+
Debug logging:
|
|
279
|
+
export OMC_OPENCLAW_DEBUG=1 (logs wake results to stderr)
|
|
280
|
+
|
|
281
|
+
Custom config path:
|
|
282
|
+
export OMC_OPENCLAW_CONFIG=/path/to/config.json
|
|
283
|
+
|
|
284
|
+
To reconfigure: /oh-my-claudecode:configure-openclaw
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## Template Variables Reference
|
|
290
|
+
|
|
291
|
+
| Event | Available Variables |
|
|
292
|
+
|-------|-------------------|
|
|
293
|
+
| `session-start` | `{{sessionId}}`, `{{projectPath}}`, `{{projectName}}`, `{{timestamp}}`, `{{event}}` |
|
|
294
|
+
| `session-end` | `{{sessionId}}`, `{{projectPath}}`, `{{projectName}}`, `{{contextSummary}}`, `{{reason}}`, `{{timestamp}}`, `{{event}}` |
|
|
295
|
+
| `pre-tool-use` | `{{sessionId}}`, `{{projectPath}}`, `{{projectName}}`, `{{toolName}}`, `{{timestamp}}`, `{{event}}` |
|
|
296
|
+
| `post-tool-use` | `{{sessionId}}`, `{{projectPath}}`, `{{projectName}}`, `{{toolName}}`, `{{timestamp}}`, `{{event}}` |
|
|
297
|
+
| `stop` | `{{sessionId}}`, `{{projectPath}}`, `{{projectName}}`, `{{timestamp}}`, `{{event}}` |
|
|
298
|
+
| `keyword-detector` | `{{sessionId}}`, `{{projectPath}}`, `{{projectName}}`, `{{prompt}}`, `{{timestamp}}`, `{{event}}` |
|
|
299
|
+
| `ask-user-question` | `{{sessionId}}`, `{{projectPath}}`, `{{projectName}}`, `{{question}}`, `{{timestamp}}`, `{{event}}` |
|
|
300
|
+
|
|
301
|
+
Unresolved variables (e.g., `{{unknown}}`) are left as-is in the instruction text.
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## Environment Variable Alternative
|
|
306
|
+
|
|
307
|
+
Users can skip this wizard entirely by setting env vars and writing the config manually:
|
|
308
|
+
|
|
309
|
+
```bash
|
|
310
|
+
# Enable OpenClaw
|
|
311
|
+
export OMC_OPENCLAW=1
|
|
312
|
+
|
|
313
|
+
# Optional: override config file path
|
|
314
|
+
export OMC_OPENCLAW_CONFIG="$HOME/.claude/omc_config.openclaw.json"
|
|
315
|
+
|
|
316
|
+
# Optional: enable debug logging
|
|
317
|
+
export OMC_OPENCLAW_DEBUG=1
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
The config file path defaults to `~/.claude/omc_config.openclaw.json`. Use `OMC_OPENCLAW_CONFIG` to override.
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: external-context
|
|
3
|
-
description: Invoke
|
|
3
|
+
description: Invoke parallel document-specialist agents for external web searches and documentation lookup
|
|
4
4
|
argument-hint: <search query or topic>
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# External Context Skill
|
|
8
8
|
|
|
9
|
-
Fetch external documentation, references, and context for a query.
|
|
10
|
-
|
|
11
|
-
## Overview
|
|
12
|
-
|
|
13
|
-
1. **Preferred: Gemini MCP** - Single `ask_gemini` call with `agent_role="document-specialist"` handles multi-facet synthesis in one shot
|
|
14
|
-
2. **Fallback: Parallel agents** - Decompose into 2-5 facets, spawn parallel document-specialist Claude agents
|
|
9
|
+
Fetch external documentation, references, and context for a query. Decomposes into 2-5 facets and spawns parallel document-specialist Claude agents.
|
|
15
10
|
|
|
16
11
|
## Usage
|
|
17
12
|
|
|
@@ -29,75 +24,7 @@ Fetch external documentation, references, and context for a query. Uses Gemini M
|
|
|
29
24
|
|
|
30
25
|
## Protocol
|
|
31
26
|
|
|
32
|
-
### Step
|
|
33
|
-
|
|
34
|
-
Before first MCP use, call `ToolSearch("mcp")` to discover deferred MCP tools. If results include `ask_gemini`, use the Preferred path. If no MCP tools are found, use the Fallback path.
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
### Preferred Path: Gemini MCP
|
|
39
|
-
|
|
40
|
-
**When:** `ToolSearch("mcp")` returns `ask_gemini`.
|
|
41
|
-
|
|
42
|
-
1. Write the query to a prompt file:
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
.omc/prompts/ext-context-{timestamp}.md
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Prompt file contents:
|
|
49
|
-
|
|
50
|
-
```markdown
|
|
51
|
-
Search the web for external documentation, examples, and references on the following query:
|
|
52
|
-
|
|
53
|
-
**Query:** <original query>
|
|
54
|
-
|
|
55
|
-
Cover all relevant facets (up to 5). For each facet:
|
|
56
|
-
- Cite all sources with URLs
|
|
57
|
-
- Summarize key findings
|
|
58
|
-
- Note any version/date caveats
|
|
59
|
-
|
|
60
|
-
Output format:
|
|
61
|
-
## External Context: <query>
|
|
62
|
-
|
|
63
|
-
### Key Findings
|
|
64
|
-
1. **<finding>** - Source: [title](url)
|
|
65
|
-
|
|
66
|
-
### Detailed Results
|
|
67
|
-
|
|
68
|
-
#### Facet 1: <name>
|
|
69
|
-
<aggregated findings with citations>
|
|
70
|
-
|
|
71
|
-
### Sources
|
|
72
|
-
- [Source 1](url)
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
2. Call `ask_gemini` with background execution:
|
|
76
|
-
|
|
77
|
-
```python
|
|
78
|
-
ask_gemini(
|
|
79
|
-
agent_role="document-specialist",
|
|
80
|
-
prompt_file=".omc/prompts/ext-context-{timestamp}.md",
|
|
81
|
-
output_file=".omc/prompts/ext-context-{timestamp}-output.md",
|
|
82
|
-
background=True
|
|
83
|
-
)
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
3. Wait for completion:
|
|
87
|
-
|
|
88
|
-
```python
|
|
89
|
-
wait_for_job(job_id=<returned job id>)
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
4. Read the output file and present synthesized results to the user.
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
### Fallback Path: Parallel Document-Specialist Agents
|
|
97
|
-
|
|
98
|
-
**When:** `ToolSearch("mcp")` returns no MCP tools (Gemini unavailable).
|
|
99
|
-
|
|
100
|
-
#### Facet Decomposition
|
|
27
|
+
### Step 1: Facet Decomposition
|
|
101
28
|
|
|
102
29
|
Given a query, decompose into 2-5 independent search facets:
|
|
103
30
|
|
|
@@ -114,7 +41,7 @@ Given a query, decompose into 2-5 independent search facets:
|
|
|
114
41
|
...
|
|
115
42
|
```
|
|
116
43
|
|
|
117
|
-
|
|
44
|
+
### Step 2: Parallel Agent Invocation
|
|
118
45
|
|
|
119
46
|
Fire independent facets in parallel via Task tool:
|
|
120
47
|
|
|
@@ -126,11 +53,9 @@ Task(subagent_type="oh-my-claudecode:document-specialist", model="sonnet", promp
|
|
|
126
53
|
|
|
127
54
|
Maximum 5 parallel document-specialist agents.
|
|
128
55
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
### Synthesis Output Format
|
|
56
|
+
### Step 3: Synthesis Output Format
|
|
132
57
|
|
|
133
|
-
|
|
58
|
+
Present synthesized results in this format:
|
|
134
59
|
|
|
135
60
|
```markdown
|
|
136
61
|
## External Context: <query>
|
|
@@ -154,6 +79,5 @@ Regardless of path used, present results in this format:
|
|
|
154
79
|
|
|
155
80
|
## Configuration
|
|
156
81
|
|
|
157
|
-
- Maximum 5 parallel document-specialist agents
|
|
158
|
-
- Gemini handles multi-facet synthesis in one shot (preferred path)
|
|
82
|
+
- Maximum 5 parallel document-specialist agents
|
|
159
83
|
- No magic keyword trigger - explicit invocation only
|
package/skills/hud/SKILL.md
CHANGED
|
@@ -57,7 +57,7 @@ Then, use the Write tool to create `~/.claude/hud/omc-hud.mjs` with this exact c
|
|
|
57
57
|
#!/usr/bin/env node
|
|
58
58
|
/**
|
|
59
59
|
* OMC HUD - Statusline Script
|
|
60
|
-
* Wrapper that imports from plugin cache or
|
|
60
|
+
* Wrapper that imports from dev paths, plugin cache, or npm package
|
|
61
61
|
*/
|
|
62
62
|
|
|
63
63
|
import { existsSync, readdirSync } from "node:fs";
|
|
@@ -65,38 +65,49 @@ import { homedir } from "node:os";
|
|
|
65
65
|
import { join } from "node:path";
|
|
66
66
|
import { pathToFileURL } from "node:url";
|
|
67
67
|
|
|
68
|
-
// Semantic version comparison: returns negative if a < b, positive if a > b, 0 if equal
|
|
69
|
-
function semverCompare(a, b) {
|
|
70
|
-
// Use parseInt to handle pre-release suffixes (e.g. "0-beta" -> 0)
|
|
71
|
-
const pa = a.replace(/^v/, "").split(".").map(s => parseInt(s, 10) || 0);
|
|
72
|
-
const pb = b.replace(/^v/, "").split(".").map(s => parseInt(s, 10) || 0);
|
|
73
|
-
for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
|
|
74
|
-
const na = pa[i] || 0;
|
|
75
|
-
const nb = pb[i] || 0;
|
|
76
|
-
if (na !== nb) return na - nb;
|
|
77
|
-
}
|
|
78
|
-
// If numeric parts equal, non-pre-release > pre-release
|
|
79
|
-
const aHasPre = /-/.test(a);
|
|
80
|
-
const bHasPre = /-/.test(b);
|
|
81
|
-
if (aHasPre && !bHasPre) return -1;
|
|
82
|
-
if (!aHasPre && bHasPre) return 1;
|
|
83
|
-
return 0;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
68
|
async function main() {
|
|
87
69
|
const home = homedir();
|
|
70
|
+
let pluginCacheVersion = null;
|
|
88
71
|
let pluginCacheDir = null;
|
|
89
72
|
|
|
90
|
-
// 1.
|
|
91
|
-
|
|
73
|
+
// 1. Development paths (only when OMC_DEV=1)
|
|
74
|
+
if (process.env.OMC_DEV === "1") {
|
|
75
|
+
const devPaths = [
|
|
76
|
+
join(home, "Workspace/oh-my-claudecode/dist/hud/index.js"),
|
|
77
|
+
join(home, "workspace/oh-my-claudecode/dist/hud/index.js"),
|
|
78
|
+
join(home, "projects/oh-my-claudecode/dist/hud/index.js"),
|
|
79
|
+
];
|
|
80
|
+
|
|
81
|
+
for (const devPath of devPaths) {
|
|
82
|
+
if (existsSync(devPath)) {
|
|
83
|
+
try {
|
|
84
|
+
await import(pathToFileURL(devPath).href);
|
|
85
|
+
return;
|
|
86
|
+
} catch { /* continue */ }
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// 2. Plugin cache (for production installs)
|
|
92
|
+
// Respect CLAUDE_CONFIG_DIR so installs under a custom config dir are found
|
|
93
|
+
const configDir = process.env.CLAUDE_CONFIG_DIR || join(home, ".claude");
|
|
94
|
+
const pluginCacheBase = join(configDir, "plugins", "cache", "omc", "oh-my-claudecode");
|
|
92
95
|
if (existsSync(pluginCacheBase)) {
|
|
93
96
|
try {
|
|
94
97
|
const versions = readdirSync(pluginCacheBase);
|
|
95
98
|
if (versions.length > 0) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
const
|
|
99
|
-
|
|
99
|
+
// Filter to only versions with built dist/hud/index.js
|
|
100
|
+
// This prevents picking an unbuilt new version after plugin update
|
|
101
|
+
const builtVersions = versions.filter(version => {
|
|
102
|
+
const pluginPath = join(pluginCacheBase, version, "dist/hud/index.js");
|
|
103
|
+
return existsSync(pluginPath);
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
if (builtVersions.length > 0) {
|
|
107
|
+
const latestVersion = builtVersions.sort((a, b) => a.localeCompare(b, undefined, { numeric: true })).reverse()[0];
|
|
108
|
+
pluginCacheVersion = latestVersion;
|
|
109
|
+
pluginCacheDir = join(pluginCacheBase, latestVersion);
|
|
110
|
+
const pluginPath = join(pluginCacheDir, "dist/hud/index.js");
|
|
100
111
|
await import(pathToFileURL(pluginPath).href);
|
|
101
112
|
return;
|
|
102
113
|
}
|
|
@@ -104,28 +115,27 @@ async function main() {
|
|
|
104
115
|
} catch { /* continue */ }
|
|
105
116
|
}
|
|
106
117
|
|
|
107
|
-
//
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
118
|
+
// 3. npm package (global or local install)
|
|
119
|
+
try {
|
|
120
|
+
await import("oh-my-claudecode/dist/hud/index.js");
|
|
121
|
+
return;
|
|
122
|
+
} catch { /* continue */ }
|
|
123
|
+
|
|
124
|
+
// 4. Fallback: provide detailed error message with fix instructions
|
|
125
|
+
if (pluginCacheDir && existsSync(pluginCacheDir)) {
|
|
126
|
+
// Plugin exists but dist/ folder is missing - needs build
|
|
127
|
+
const distDir = join(pluginCacheDir, "dist");
|
|
128
|
+
if (!existsSync(distDir)) {
|
|
129
|
+
console.log(`[OMC HUD] Plugin installed but not built. Run: cd "${pluginCacheDir}" && npm install && npm run build`);
|
|
130
|
+
} else {
|
|
131
|
+
console.log(`[OMC HUD] Plugin dist/ exists but HUD not found. Run: cd "${pluginCacheDir}" && npm run build`);
|
|
121
132
|
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
if (pluginCacheDir) {
|
|
126
|
-
console.log(`[OMC] HUD not built. Run: cd "${pluginCacheDir}" && npm install`);
|
|
133
|
+
} else if (existsSync(pluginCacheBase)) {
|
|
134
|
+
// Plugin cache directory exists but no built versions found
|
|
135
|
+
console.log("[OMC HUD] Plugin cache found but no built versions. Run: /oh-my-claudecode:omc-setup");
|
|
127
136
|
} else {
|
|
128
|
-
|
|
137
|
+
// No plugin installation found at all
|
|
138
|
+
console.log("[OMC HUD] Plugin not installed. Run: /oh-my-claudecode:omc-setup");
|
|
129
139
|
}
|
|
130
140
|
}
|
|
131
141
|
|
|
@@ -272,9 +282,21 @@ If the HUD is not showing:
|
|
|
272
282
|
2. Restart Claude Code after setup completes
|
|
273
283
|
3. If still not working, run `/oh-my-claudecode:omc-doctor` for full diagnostics
|
|
274
284
|
|
|
285
|
+
**Legacy string format migration:** Older OMC versions wrote `statusLine` as a plain string (e.g., `"~/.claude/hud/omc-hud.mjs"`). Modern Claude Code (v2.1+) requires an object format. Running the installer or `/oh-my-claudecode:hud setup` will auto-migrate legacy strings to the correct object format:
|
|
286
|
+
```json
|
|
287
|
+
{
|
|
288
|
+
"statusLine": {
|
|
289
|
+
"type": "command",
|
|
290
|
+
"command": "node /home/username/.claude/hud/omc-hud.mjs"
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**Node 24+ compatibility:** The HUD wrapper script imports `homedir` from `node:os` (not `node:path`). If you encounter `SyntaxError: The requested module 'path' does not provide an export named 'homedir'`, re-run the installer to regenerate `omc-hud.mjs`.
|
|
296
|
+
|
|
275
297
|
Manual verification:
|
|
276
298
|
- HUD script: `~/.claude/hud/omc-hud.mjs`
|
|
277
|
-
- Settings: `~/.claude/settings.json` should have `statusLine` configured
|
|
299
|
+
- Settings: `~/.claude/settings.json` should have `statusLine` configured as an object with `type` and `command` fields
|
|
278
300
|
|
|
279
301
|
---
|
|
280
302
|
|