oh-my-opencode 4.19.0 → 4.19.2
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/.agents/command/omomomo.md +1 -1
- package/.agents/skills/omomomo/SKILL.md +1 -1
- package/.opencode/command/omomomo.md +1 -1
- package/README.ja.md +6 -6
- package/README.ko.md +6 -6
- package/README.md +6 -6
- package/README.ru.md +6 -6
- package/README.zh-cn.md +6 -6
- package/dist/agents/atlas/agent.d.ts +5 -3
- package/dist/agents/explore.d.ts +4 -2
- package/dist/agents/gpt-prompt-identity.d.ts +3 -0
- package/dist/agents/hephaestus/agent.d.ts +4 -2
- package/dist/agents/librarian.d.ts +4 -2
- package/dist/agents/metis.d.ts +4 -2
- package/dist/agents/momus.d.ts +3 -2
- package/dist/agents/multimodal-looker.d.ts +4 -2
- package/dist/agents/oracle.d.ts +4 -2
- package/dist/agents/sisyphus/claude-opus-5.d.ts +33 -0
- package/dist/agents/sisyphus/gpt-5-5.d.ts +1 -1
- package/dist/agents/sisyphus/gpt-task-system-guide.d.ts +1 -0
- package/dist/agents/sisyphus/index.d.ts +2 -0
- package/dist/agents/sisyphus-agent-factory.d.ts +5 -2
- package/dist/agents/sisyphus-junior/agent.d.ts +4 -1
- package/dist/agents/sisyphus-junior/gpt-5-5.d.ts +2 -2
- package/dist/agents/types.d.ts +2 -2
- package/dist/cli/index.js +23577 -19269
- package/dist/cli-node/index.js +23577 -19269
- package/dist/config/schema/agent-names.d.ts +26 -26
- package/dist/config/schema/agent-overrides.d.ts +400 -400
- package/dist/config/schema/browser-automation.d.ts +2 -2
- package/dist/config/schema/categories.d.ts +36 -36
- package/dist/config/schema/codegraph.d.ts +2 -0
- package/dist/config/schema/commands.d.ts +2 -2
- package/dist/config/schema/dynamic-context-pruning.d.ts +1 -1
- package/dist/config/schema/experimental.d.ts +1 -1
- package/dist/config/schema/fallback-models.d.ts +25 -25
- package/dist/config/schema/hooks.d.ts +43 -43
- package/dist/config/schema/internal/permission.d.ts +9 -9
- package/dist/config/schema/keyword-detector.d.ts +6 -6
- package/dist/config/schema/oh-my-opencode-config.d.ts +404 -402
- package/dist/config/schema/tmux.d.ts +6 -6
- package/dist/create-hooks.d.ts +35 -35
- package/dist/features/background-agent/spawner/tmux-callback-invoker.d.ts +11 -0
- package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
- package/dist/features/claude-tasks/types.d.ts +4 -4
- package/dist/features/team-mode/team-runtime/shutdown-helpers.d.ts +1 -1
- package/dist/features/team-mode/team-runtime/shutdown-test-fixtures.d.ts +4 -4
- package/dist/features/team-mode/tools/lifecycle-test-fixture.d.ts +42 -42
- package/dist/features/tmux-subagent/environment-eligibility.d.ts +2 -0
- package/dist/features/tmux-subagent/index.d.ts +1 -0
- package/dist/features/tmux-subagent/tracked-session-state.d.ts +1 -0
- package/dist/features/tui-sidebar/snapshot-schema.d.ts +6 -6
- package/dist/help/schema/acp.d.ts +3 -3
- package/dist/help/schema/doctor.d.ts +4 -4
- package/dist/help/schema/status.d.ts +3 -3
- package/dist/hooks/codegraph-bootstrap/hook.d.ts +3 -2
- package/dist/hooks/goal/types.d.ts +5 -5
- package/dist/hooks/non-interactive-env/constants.d.ts +4 -1
- package/dist/hooks/sisyphus-junior-notepad/constants.d.ts +1 -1
- package/dist/hooks/start-work/notepad-scaffold.d.ts +10 -0
- package/dist/hooks/start-work/parse-user-request.d.ts +2 -0
- package/dist/hooks/start-work/worktree-block.d.ts +5 -0
- package/dist/index.js +27370 -21301
- package/dist/mcp/types.d.ts +3 -3
- package/dist/oh-my-opencode.schema.json +11 -0
- package/dist/plugin/chat-message/loop-commands.d.ts +1 -0
- package/dist/plugin/command-execute-before.d.ts +3 -3
- package/dist/plugin/hooks/create-core-hooks.d.ts +25 -25
- package/dist/shared/omo-process-sweep.d.ts +18 -0
- package/dist/shared/tmux/tmux-utils/environment.d.ts +1 -1
- package/dist/shared/tmux/tmux-utils.d.ts +1 -1
- package/dist/shared/typescript-native-source-parser.d.ts +7 -0
- package/dist/skills/coding-agent-sessions/SKILL.md +5 -2
- package/dist/skills/coding-agent-sessions/references/all-platforms.md +3 -1
- package/dist/skills/coding-agent-sessions/references/senpi.md +15 -5
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +46 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +19 -10
- package/dist/skills/debugging/SKILL.md +2 -1
- package/dist/skills/debugging/references/methodology/03-flaky-triage.md +47 -0
- package/dist/skills/programming/SKILL.md +11 -1
- package/dist/skills/programming/references/logging.md +6 -1
- package/dist/skills/programming/scripts/typescript/check-no-excuse-rules.test.ts +87 -0
- package/dist/skills/programming/scripts/typescript/check-no-excuse-rules.ts +75 -11
- package/dist/skills/start-work/SKILL.md +12 -2
- package/dist/skills/ulw-plan/SKILL.md +21 -2
- package/dist/skills/ulw-plan/references/full-workflow.md +12 -1
- package/dist/skills/ulw-plan/references/intent-clear.md +1 -1
- package/dist/testing/create-plugin-module.d.ts +1 -0
- package/dist/tools/task/types.d.ts +10 -10
- package/dist/tui.js +23442 -19182
- package/package.json +14 -14
- package/packages/git-bash-mcp/dist/cli.js +54 -8
- package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +62 -2
- package/packages/lsp-core/src/lsp/client.ts +14 -1
- package/packages/lsp-core/src/lsp/fixtures/diagnostics-freshness-contract-probe.ts +2 -2
- package/packages/lsp-core/src/mcp.ts +9 -0
- package/packages/lsp-daemon/dist/cli.js +319 -51
- package/packages/lsp-daemon/dist/client.js +136 -48
- package/packages/lsp-daemon/dist/daemon-client.d.ts +0 -10
- package/packages/lsp-daemon/dist/daemon-client.js +4 -34
- package/packages/lsp-daemon/dist/daemon-failure-result.d.ts +3 -0
- package/packages/lsp-daemon/dist/daemon-failure-result.js +38 -0
- package/packages/lsp-daemon/dist/daemon-request-error.d.ts +14 -0
- package/packages/lsp-daemon/dist/daemon-request-error.js +26 -0
- package/packages/lsp-daemon/dist/daemon-server.js +5 -1
- package/packages/lsp-daemon/dist/index.js +137 -48
- package/packages/lsp-daemon/dist/proxy.d.ts +2 -0
- package/packages/lsp-daemon/dist/proxy.js +1 -0
- package/packages/lsp-daemon/dist/version-reap.d.ts +26 -0
- package/packages/lsp-daemon/dist/version-reap.js +182 -0
- package/packages/lsp-tools-mcp/dist/cli.js +61 -10
- package/packages/lsp-tools-mcp/dist/lsp/manager.js +6 -1
- package/packages/lsp-tools-mcp/dist/mcp.js +61 -10
- package/packages/lsp-tools-mcp/dist/tools.js +6 -1
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +72 -12
- package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/src/setup.ts +22 -2
- package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +779 -385
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +302 -173
- package/packages/omo-codex/plugin/components/codegraph/package.json +2 -2
- package/packages/omo-codex/plugin/components/codegraph/src/hook-types.ts +3 -1
- package/packages/omo-codex/plugin/components/codegraph/src/hook.ts +23 -42
- package/packages/omo-codex/plugin/components/codegraph/src/mcp-bridge.ts +98 -32
- package/packages/omo-codex/plugin/components/codegraph/src/mcp-unavailable.ts +5 -0
- package/packages/omo-codex/plugin/components/codegraph/src/serve.ts +17 -9
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker.ts +18 -25
- package/packages/omo-codex/plugin/components/codegraph/src/sweep-cli.ts +1 -0
- package/packages/omo-codex/plugin/components/codegraph/test/hook-exclusion.test.ts +5 -0
- package/packages/omo-codex/plugin/components/codegraph/test/hook-store-upgrade.test.ts +176 -0
- package/packages/omo-codex/plugin/components/codegraph/test/hook.test.ts +6 -1
- package/packages/omo-codex/plugin/components/codegraph/test/mcp-bridge-fixtures.ts +31 -2
- package/packages/omo-codex/plugin/components/codegraph/test/package-runtime.test.ts +1 -1
- package/packages/omo-codex/plugin/components/codegraph/test/provisioned-node-guard.test.ts +6 -0
- package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge-lifecycle.test.ts +65 -1
- package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge.test.ts +3 -7
- package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-facade.test.ts +2 -1
- package/packages/omo-codex/plugin/components/codegraph/test/serve-provision.test.ts +57 -3
- package/packages/omo-codex/plugin/components/codegraph/test/serve-unavailable.test.ts +42 -0
- package/packages/omo-codex/plugin/components/codegraph/test/serve.test.ts +122 -10
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-node-support.test.ts +2 -2
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-flow.test.ts +101 -64
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +80 -40
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/dist/cli.js +11 -0
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +11 -0
- package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +60 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/directive.md +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-clone-fidelity-reviewer.toml +2 -2
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-code-reviewer.toml +2 -2
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-gate-reviewer.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-high.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-medium.toml +2 -2
- package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/directive.md +12 -7
- package/packages/omo-codex/plugin/components/ultrawork/dist/cli.js +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +12 -7
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +21 -2
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +12 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/src/codex-hook.ts +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook-trigger-policy.test.ts +42 -0
- package/packages/omo-codex/plugin/components/ulw-loop/README.md +6 -4
- package/packages/omo-codex/plugin/components/ulw-loop/directive.md +12 -7
- package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-continuation.d.ts +21 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-continuation.js +64 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.js +15 -2
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-arg-parser.js +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-commands.js +2 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +3 -3
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-steering.d.ts +3 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-steering.js +85 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-subcommands.d.ts +0 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-subcommands.js +13 -33
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +998 -593
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/constants.d.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/constants.js +2 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/domain-types.d.ts +6 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/goal-status.d.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/goal-status.js +3 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.d.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.js +4 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-io.d.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-io.js +10 -2
- package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-verdicts.js +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/steering-batch.d.ts +15 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/steering-batch.js +84 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/steering-mutations.d.ts +5 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/steering-mutations.js +81 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/steering.js +7 -59
- package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +12 -4
- package/packages/omo-codex/plugin/components/ulw-loop/dist/validation-batch.d.ts +9 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/validation-batch.js +122 -0
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +2 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +8 -6
- package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-continuation.ts +84 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint.ts +13 -2
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-arg-parser.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-commands.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +3 -3
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-steering.ts +49 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-subcommands.ts +13 -45
- package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/constants.ts +2 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/domain-types.ts +7 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/goal-status.ts +4 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/plan-crud.ts +4 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/plan-io.ts +20 -2
- package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-verdicts.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/steering-batch.ts +125 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/steering-mutations.ts +59 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/steering.ts +6 -58
- package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +12 -4
- package/packages/omo-codex/plugin/components/ulw-loop/src/validation-batch.ts +122 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-continuation.test.ts +76 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-checkpoint-continuation.test.ts +111 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-steering-batch.test.ts +67 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-validation-batch.test.ts +57 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/paths.test.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/steering-batch.test.ts +152 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/stop-resume-hook.test.ts +29 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/validation-batch-checkpoint.test.ts +147 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/validation-batch.test.ts +73 -0
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +2 -2
- package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +2 -2
- package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +2 -2
- package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/package-lock.json +41 -41
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/shared/test/config-loader.test.ts +44 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +5 -2
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +3 -1
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/senpi.md +15 -5
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +46 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +19 -10
- package/packages/omo-codex/plugin/skills/debugging/SKILL.md +2 -1
- package/packages/omo-codex/plugin/skills/debugging/references/methodology/03-flaky-triage.md +47 -0
- package/packages/omo-codex/plugin/skills/programming/SKILL.md +11 -1
- package/packages/omo-codex/plugin/skills/programming/references/logging.md +6 -1
- package/packages/omo-codex/plugin/skills/programming/scripts/typescript/check-no-excuse-rules.ts +75 -11
- package/packages/omo-codex/plugin/skills/start-work/SKILL.md +12 -2
- package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +12 -7
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +2 -1
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +8 -6
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +21 -2
- package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +12 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +1 -1
- package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +9 -9
- package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +26 -0
- package/packages/omo-codex/plugin/test/bootstrap-setup.test.mjs +41 -0
- package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +22 -0
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +49 -5
- package/packages/omo-codex/scripts/install-marketplace-cache.test.mjs +4 -1
- package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +5 -2
- package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +3 -1
- package/packages/shared-skills/skills/coding-agent-sessions/references/senpi.md +15 -5
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py +46 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +19 -10
- package/packages/shared-skills/skills/debugging/SKILL.md +2 -1
- package/packages/shared-skills/skills/debugging/references/methodology/03-flaky-triage.md +47 -0
- package/packages/shared-skills/skills/programming/SKILL.md +11 -1
- package/packages/shared-skills/skills/programming/references/logging.md +6 -1
- package/packages/shared-skills/skills/programming/scripts/typescript/check-no-excuse-rules.test.ts +87 -0
- package/packages/shared-skills/skills/programming/scripts/typescript/check-no-excuse-rules.ts +75 -11
- package/packages/shared-skills/skills/start-work/SKILL.md +12 -2
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +21 -2
- package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +12 -1
- package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +1 -1
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
{
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/scripts/auto-update.mjs\" hook session-start",
|
|
9
|
-
"timeout":
|
|
10
|
-
"statusMessage": "(OmO 4.19.
|
|
9
|
+
"timeout": 15,
|
|
10
|
+
"statusMessage": "(OmO 4.19.2) Checking Auto Update",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\scripts\\auto-update.mjs\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/bootstrap/dist/cli.js\" hook session-start",
|
|
9
9
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\bootstrap.ps1\"",
|
|
10
10
|
"timeout": 30,
|
|
11
|
-
"statusMessage": "(OmO 4.19.
|
|
11
|
+
"statusMessage": "(OmO 4.19.2) Checking Bootstrap Provisioning"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
{
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/codegraph/dist/cli.js\" hook session-start",
|
|
9
|
-
"timeout":
|
|
10
|
-
"statusMessage": "(OmO 4.19.
|
|
9
|
+
"timeout": 15,
|
|
10
|
+
"statusMessage": "(OmO 4.19.2) Checking CodeGraph Bootstrap",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\codegraph\\dist\\cli.js\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook session-start",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.19.
|
|
10
|
+
"statusMessage": "(OmO 4.19.2) Loading Project Rules",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
{
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/telemetry/dist/cli.js\" hook session-start",
|
|
9
|
-
"timeout":
|
|
10
|
-
"statusMessage": "(OmO 4.19.
|
|
9
|
+
"timeout": 15,
|
|
10
|
+
"statusMessage": "(OmO 4.19.2) Recording Session Telemetry",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\telemetry\\dist\\cli.js\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/start-work-continuation/dist/cli.js\" hook stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.19.
|
|
10
|
+
"statusMessage": "(OmO 4.19.2) Checking Start-Work Continuation",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\start-work-continuation\\dist\\cli.js\" hook stop"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.19.
|
|
10
|
+
"statusMessage": "(OmO 4.19.2) Checking Ulw-Loop Resume",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook stop"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/start-work-continuation/dist/cli.js\" hook subagent-stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.19.
|
|
10
|
+
"statusMessage": "(OmO 4.19.2) Checking Start-Work Continuation",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\start-work-continuation\\dist\\cli.js\" hook subagent-stop"
|
|
12
12
|
}
|
|
13
13
|
]
|
package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.19.
|
|
10
|
+
"statusMessage": "(OmO 4.19.2) Verifying LazyCodex Executor Evidence",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lazycodex-executor-verify\\dist\\cli.js\" hook subagent-stop"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ultrawork/dist/cli.js\" hook user-prompt-submit",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 4.19.
|
|
10
|
+
"statusMessage": "(OmO 4.19.2) Checking Ultrawork Trigger",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ultrawork\\dist\\cli.js\" hook user-prompt-submit"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook user-prompt-submit",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.19.
|
|
10
|
+
"statusMessage": "(OmO 4.19.2) Checking Ulw-Loop Steering",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook user-prompt-submit"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook user-prompt-submit",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.19.
|
|
10
|
+
"statusMessage": "(OmO 4.19.2) Loading Project Rules",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook user-prompt-submit"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sisyphuslabs/omo-codex-plugin",
|
|
3
|
-
"version": "4.19.
|
|
3
|
+
"version": "4.19.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@sisyphuslabs/omo-codex-plugin",
|
|
9
|
-
"version": "4.19.
|
|
9
|
+
"version": "4.19.2",
|
|
10
10
|
"workspaces": [
|
|
11
11
|
"components/codegraph",
|
|
12
12
|
"components/comment-checker",
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
},
|
|
101
101
|
"components/codegraph": {
|
|
102
102
|
"name": "@sisyphuslabs/codex-codegraph",
|
|
103
|
-
"version": "4.19.
|
|
103
|
+
"version": "4.19.2",
|
|
104
104
|
"bin": {
|
|
105
105
|
"omo-codegraph": "dist/cli.js"
|
|
106
106
|
},
|
|
@@ -114,12 +114,12 @@
|
|
|
114
114
|
"node": ">=20.0.0"
|
|
115
115
|
},
|
|
116
116
|
"optionalDependencies": {
|
|
117
|
-
"@colbymchenry/codegraph": "1.
|
|
117
|
+
"@colbymchenry/codegraph": "1.4.1"
|
|
118
118
|
}
|
|
119
119
|
},
|
|
120
120
|
"components/comment-checker": {
|
|
121
121
|
"name": "@code-yeongyu/codex-comment-checker",
|
|
122
|
-
"version": "4.19.
|
|
122
|
+
"version": "4.19.2",
|
|
123
123
|
"license": "MIT",
|
|
124
124
|
"bin": {
|
|
125
125
|
"omo-comment-checker": "dist/cli.js"
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
},
|
|
141
141
|
"components/git-bash": {
|
|
142
142
|
"name": "@sisyphuslabs/codex-git-bash-hook",
|
|
143
|
-
"version": "4.19.
|
|
143
|
+
"version": "4.19.2",
|
|
144
144
|
"bin": {
|
|
145
145
|
"omo-git-bash-hook": "dist/cli.js"
|
|
146
146
|
},
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
},
|
|
156
156
|
"components/lazycodex-executor-verify": {
|
|
157
157
|
"name": "@code-yeongyu/codex-lazycodex-executor-verify",
|
|
158
|
-
"version": "4.19.
|
|
158
|
+
"version": "4.19.2",
|
|
159
159
|
"license": "MIT",
|
|
160
160
|
"bin": {
|
|
161
161
|
"lazycodex-executor-verify": "dist/cli.js"
|
|
@@ -172,7 +172,7 @@
|
|
|
172
172
|
},
|
|
173
173
|
"components/lsp": {
|
|
174
174
|
"name": "@code-yeongyu/codex-lsp",
|
|
175
|
-
"version": "4.19.
|
|
175
|
+
"version": "4.19.2",
|
|
176
176
|
"license": "MIT",
|
|
177
177
|
"dependencies": {
|
|
178
178
|
"@code-yeongyu/lsp-daemon": "file:../../../../lsp-daemon",
|
|
@@ -193,7 +193,7 @@
|
|
|
193
193
|
},
|
|
194
194
|
"components/rules": {
|
|
195
195
|
"name": "@code-yeongyu/codex-rules",
|
|
196
|
-
"version": "4.19.
|
|
196
|
+
"version": "4.19.2",
|
|
197
197
|
"license": "MIT",
|
|
198
198
|
"dependencies": {
|
|
199
199
|
"picomatch": "^4.0.3"
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
},
|
|
216
216
|
"components/start-work-continuation": {
|
|
217
217
|
"name": "@code-yeongyu/codex-start-work-continuation",
|
|
218
|
-
"version": "4.19.
|
|
218
|
+
"version": "4.19.2",
|
|
219
219
|
"license": "MIT",
|
|
220
220
|
"bin": {
|
|
221
221
|
"omo-start-work-continuation": "dist/cli.js"
|
|
@@ -232,7 +232,7 @@
|
|
|
232
232
|
},
|
|
233
233
|
"components/teammode": {
|
|
234
234
|
"name": "@sisyphuslabs/codex-teammode",
|
|
235
|
-
"version": "4.19.
|
|
235
|
+
"version": "4.19.2",
|
|
236
236
|
"devDependencies": {
|
|
237
237
|
"@types/node": "^25.9.3",
|
|
238
238
|
"bun-types": "^1.3.1",
|
|
@@ -245,7 +245,7 @@
|
|
|
245
245
|
},
|
|
246
246
|
"components/telemetry": {
|
|
247
247
|
"name": "@code-yeongyu/codex-telemetry",
|
|
248
|
-
"version": "4.19.
|
|
248
|
+
"version": "4.19.2",
|
|
249
249
|
"license": "MIT",
|
|
250
250
|
"bin": {
|
|
251
251
|
"omo-telemetry": "dist/cli.js"
|
|
@@ -263,7 +263,7 @@
|
|
|
263
263
|
},
|
|
264
264
|
"components/ultrawork": {
|
|
265
265
|
"name": "@code-yeongyu/codex-ultrawork",
|
|
266
|
-
"version": "4.19.
|
|
266
|
+
"version": "4.19.2",
|
|
267
267
|
"license": "MIT",
|
|
268
268
|
"bin": {
|
|
269
269
|
"omo-ultrawork": "dist/cli.js"
|
|
@@ -281,7 +281,7 @@
|
|
|
281
281
|
},
|
|
282
282
|
"components/ulw-loop": {
|
|
283
283
|
"name": "@code-yeongyu/codex-ulw-loop",
|
|
284
|
-
"version": "4.19.
|
|
284
|
+
"version": "4.19.2",
|
|
285
285
|
"license": "MIT",
|
|
286
286
|
"bin": {
|
|
287
287
|
"omo-ulw-loop": "dist/cli.js",
|
|
@@ -512,27 +512,27 @@
|
|
|
512
512
|
"link": true
|
|
513
513
|
},
|
|
514
514
|
"node_modules/@colbymchenry/codegraph": {
|
|
515
|
-
"version": "1.
|
|
516
|
-
"resolved": "https://registry.npmjs.org/@colbymchenry/codegraph/-/codegraph-1.
|
|
517
|
-
"integrity": "sha512-
|
|
515
|
+
"version": "1.4.1",
|
|
516
|
+
"resolved": "https://registry.npmjs.org/@colbymchenry/codegraph/-/codegraph-1.4.1.tgz",
|
|
517
|
+
"integrity": "sha512-xZayboJt6T3QBzBsBsI0eJ3J/tN4vYs6LMuvrxJVdM71yQFjrFKFeV3KsbicAgkj6AHnTXxUNk26g9BYwkNMgg==",
|
|
518
518
|
"license": "MIT",
|
|
519
519
|
"optional": true,
|
|
520
520
|
"bin": {
|
|
521
521
|
"codegraph": "npm-shim.js"
|
|
522
522
|
},
|
|
523
523
|
"optionalDependencies": {
|
|
524
|
-
"@colbymchenry/codegraph-darwin-arm64": "1.
|
|
525
|
-
"@colbymchenry/codegraph-darwin-x64": "1.
|
|
526
|
-
"@colbymchenry/codegraph-linux-arm64": "1.
|
|
527
|
-
"@colbymchenry/codegraph-linux-x64": "1.
|
|
528
|
-
"@colbymchenry/codegraph-win32-arm64": "1.
|
|
529
|
-
"@colbymchenry/codegraph-win32-x64": "1.
|
|
524
|
+
"@colbymchenry/codegraph-darwin-arm64": "1.4.1",
|
|
525
|
+
"@colbymchenry/codegraph-darwin-x64": "1.4.1",
|
|
526
|
+
"@colbymchenry/codegraph-linux-arm64": "1.4.1",
|
|
527
|
+
"@colbymchenry/codegraph-linux-x64": "1.4.1",
|
|
528
|
+
"@colbymchenry/codegraph-win32-arm64": "1.4.1",
|
|
529
|
+
"@colbymchenry/codegraph-win32-x64": "1.4.1"
|
|
530
530
|
}
|
|
531
531
|
},
|
|
532
532
|
"node_modules/@colbymchenry/codegraph-darwin-arm64": {
|
|
533
|
-
"version": "1.
|
|
534
|
-
"resolved": "https://registry.npmjs.org/@colbymchenry/codegraph-darwin-arm64/-/codegraph-darwin-arm64-1.
|
|
535
|
-
"integrity": "sha512-
|
|
533
|
+
"version": "1.4.1",
|
|
534
|
+
"resolved": "https://registry.npmjs.org/@colbymchenry/codegraph-darwin-arm64/-/codegraph-darwin-arm64-1.4.1.tgz",
|
|
535
|
+
"integrity": "sha512-USSpExjuxZWN0OeNexZp2V5fCfOI4ZekqE79CJiBdGdPbqGTB+857ImIqzWGyF/rAyyED94Wc0Cd82t+uWD30w==",
|
|
536
536
|
"cpu": [
|
|
537
537
|
"arm64"
|
|
538
538
|
],
|
|
@@ -543,9 +543,9 @@
|
|
|
543
543
|
]
|
|
544
544
|
},
|
|
545
545
|
"node_modules/@colbymchenry/codegraph-darwin-x64": {
|
|
546
|
-
"version": "1.
|
|
547
|
-
"resolved": "https://registry.npmjs.org/@colbymchenry/codegraph-darwin-x64/-/codegraph-darwin-x64-1.
|
|
548
|
-
"integrity": "sha512-
|
|
546
|
+
"version": "1.4.1",
|
|
547
|
+
"resolved": "https://registry.npmjs.org/@colbymchenry/codegraph-darwin-x64/-/codegraph-darwin-x64-1.4.1.tgz",
|
|
548
|
+
"integrity": "sha512-syLC7QPsNui2hPrK58El0XQrjjdSYhsoKS5i26ieD8DVrb0adzFQrBRP8qId/wfGp078xdC54rdKvqgmbIL1WQ==",
|
|
549
549
|
"cpu": [
|
|
550
550
|
"x64"
|
|
551
551
|
],
|
|
@@ -556,9 +556,9 @@
|
|
|
556
556
|
]
|
|
557
557
|
},
|
|
558
558
|
"node_modules/@colbymchenry/codegraph-linux-arm64": {
|
|
559
|
-
"version": "1.
|
|
560
|
-
"resolved": "https://registry.npmjs.org/@colbymchenry/codegraph-linux-arm64/-/codegraph-linux-arm64-1.
|
|
561
|
-
"integrity": "sha512-
|
|
559
|
+
"version": "1.4.1",
|
|
560
|
+
"resolved": "https://registry.npmjs.org/@colbymchenry/codegraph-linux-arm64/-/codegraph-linux-arm64-1.4.1.tgz",
|
|
561
|
+
"integrity": "sha512-XC6GJ9/fTicW9CE3k2fOcUOcbtDU8mS53t+PUfzq3Py9+JiX3PtJgtBB8bmf6e45NZUF5foaLUwFXfxTTl961g==",
|
|
562
562
|
"cpu": [
|
|
563
563
|
"arm64"
|
|
564
564
|
],
|
|
@@ -569,9 +569,9 @@
|
|
|
569
569
|
]
|
|
570
570
|
},
|
|
571
571
|
"node_modules/@colbymchenry/codegraph-linux-x64": {
|
|
572
|
-
"version": "1.
|
|
573
|
-
"resolved": "https://registry.npmjs.org/@colbymchenry/codegraph-linux-x64/-/codegraph-linux-x64-1.
|
|
574
|
-
"integrity": "sha512-
|
|
572
|
+
"version": "1.4.1",
|
|
573
|
+
"resolved": "https://registry.npmjs.org/@colbymchenry/codegraph-linux-x64/-/codegraph-linux-x64-1.4.1.tgz",
|
|
574
|
+
"integrity": "sha512-bjfa+0IyjbxpZz7ghznN4qMPoYVSiZafeZu/rXGdg3VI+kEPOPZrk2vmtWIU9tBPGVJbeU2Kwa/0Z2DkUGOJ9A==",
|
|
575
575
|
"cpu": [
|
|
576
576
|
"x64"
|
|
577
577
|
],
|
|
@@ -582,9 +582,9 @@
|
|
|
582
582
|
]
|
|
583
583
|
},
|
|
584
584
|
"node_modules/@colbymchenry/codegraph-win32-arm64": {
|
|
585
|
-
"version": "1.
|
|
586
|
-
"resolved": "https://registry.npmjs.org/@colbymchenry/codegraph-win32-arm64/-/codegraph-win32-arm64-1.
|
|
587
|
-
"integrity": "sha512-
|
|
585
|
+
"version": "1.4.1",
|
|
586
|
+
"resolved": "https://registry.npmjs.org/@colbymchenry/codegraph-win32-arm64/-/codegraph-win32-arm64-1.4.1.tgz",
|
|
587
|
+
"integrity": "sha512-mb5bFDhwcP49U0P2IBRhH1O5ZmnlgE8lIXTlg2dqpfLeL+XfxzyeJ+i4I0KU0h1hlNWP/u3d2k+1EGem2swDBw==",
|
|
588
588
|
"cpu": [
|
|
589
589
|
"arm64"
|
|
590
590
|
],
|
|
@@ -595,9 +595,9 @@
|
|
|
595
595
|
]
|
|
596
596
|
},
|
|
597
597
|
"node_modules/@colbymchenry/codegraph-win32-x64": {
|
|
598
|
-
"version": "1.
|
|
599
|
-
"resolved": "https://registry.npmjs.org/@colbymchenry/codegraph-win32-x64/-/codegraph-win32-x64-1.
|
|
600
|
-
"integrity": "sha512-
|
|
598
|
+
"version": "1.4.1",
|
|
599
|
+
"resolved": "https://registry.npmjs.org/@colbymchenry/codegraph-win32-x64/-/codegraph-win32-x64-1.4.1.tgz",
|
|
600
|
+
"integrity": "sha512-ipN6WvTKa0cSXIL6DTdACq57WnNYTjVq2wtC5uPT8F22o6Ucbcu3/w3OzKkkfwP4mkXv2cDMbuvExbnYNULyuw==",
|
|
601
601
|
"cpu": [
|
|
602
602
|
"x64"
|
|
603
603
|
],
|
|
@@ -45,6 +45,7 @@ describe("getCodexOmoConfig", () => {
|
|
|
45
45
|
// then
|
|
46
46
|
expect(result.codegraph).toEqual({
|
|
47
47
|
auto_provision: true,
|
|
48
|
+
daemon: true,
|
|
48
49
|
enabled: false,
|
|
49
50
|
install_dir: "/base",
|
|
50
51
|
telemetry: false,
|
|
@@ -85,6 +86,48 @@ describe("getCodexOmoConfig", () => {
|
|
|
85
86
|
expect(result.codegraph?.excluded_roots).toEqual(["/tmp/omo-research", "/private/tmp/omo-research"])
|
|
86
87
|
})
|
|
87
88
|
|
|
89
|
+
it("#given no codegraph.daemon key #when loading config #then daemon defaults to on", () => {
|
|
90
|
+
// given
|
|
91
|
+
const homeDir = createTemporaryDirectory("omo-codex-shared-daemon-default-home-")
|
|
92
|
+
const cwd = createTemporaryDirectory("omo-codex-shared-daemon-default-project-")
|
|
93
|
+
writeOmoConfig(homeDir, JSON.stringify({ codegraph: { enabled: true } }))
|
|
94
|
+
|
|
95
|
+
// when
|
|
96
|
+
const result = getCodexOmoConfig({ cwd, homeDir, env: {} })
|
|
97
|
+
|
|
98
|
+
// then
|
|
99
|
+
expect(result.codegraph?.daemon).toBe(true)
|
|
100
|
+
expect(result.warnings).toEqual([])
|
|
101
|
+
})
|
|
102
|
+
|
|
103
|
+
it("#given codex SOT sets codegraph.daemon=false #when loading config #then daemon opt-out is returned", () => {
|
|
104
|
+
// given
|
|
105
|
+
const homeDir = createTemporaryDirectory("omo-codex-shared-daemon-off-home-")
|
|
106
|
+
const cwd = createTemporaryDirectory("omo-codex-shared-daemon-off-project-")
|
|
107
|
+
writeOmoConfig(homeDir, JSON.stringify({ "[codex]": { codegraph: { daemon: false } } }))
|
|
108
|
+
|
|
109
|
+
// when
|
|
110
|
+
const result = getCodexOmoConfig({ cwd, homeDir, env: {} })
|
|
111
|
+
|
|
112
|
+
// then
|
|
113
|
+
expect(result.codegraph?.daemon).toBe(false)
|
|
114
|
+
expect(result.warnings).toEqual([])
|
|
115
|
+
})
|
|
116
|
+
|
|
117
|
+
it("#given codex SOT sets codegraph.daemon to a non-boolean #when loading config #then the value is rejected with a warning", () => {
|
|
118
|
+
// given
|
|
119
|
+
const homeDir = createTemporaryDirectory("omo-codex-shared-daemon-invalid-home-")
|
|
120
|
+
const cwd = createTemporaryDirectory("omo-codex-shared-daemon-invalid-project-")
|
|
121
|
+
writeOmoConfig(homeDir, JSON.stringify({ "[codex]": { codegraph: { daemon: "yes" } } }))
|
|
122
|
+
|
|
123
|
+
// when
|
|
124
|
+
const result = getCodexOmoConfig({ cwd, homeDir, env: {} })
|
|
125
|
+
|
|
126
|
+
// then
|
|
127
|
+
expect(result.codegraph?.daemon).toBe(true)
|
|
128
|
+
expect(result.warnings).toContain("config.[codex].codegraph.daemon must be a boolean")
|
|
129
|
+
})
|
|
130
|
+
|
|
88
131
|
it("#given legacy env override and SOT value #when loading config #then env wins over the SOT", () => {
|
|
89
132
|
// given
|
|
90
133
|
const homeDir = createTemporaryDirectory("omo-codex-shared-env-")
|
|
@@ -113,6 +156,7 @@ describe("getCodexOmoConfig", () => {
|
|
|
113
156
|
// then
|
|
114
157
|
expect(result.codegraph).toEqual({
|
|
115
158
|
auto_provision: true,
|
|
159
|
+
daemon: true,
|
|
116
160
|
enabled: true,
|
|
117
161
|
telemetry: false,
|
|
118
162
|
})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: coding-agent-sessions
|
|
3
|
-
description: "MUST USE when asked to find, read, list, search, inspect, fetch, export, or reconstruct coding-agent sessions across Codex, Claude Code/Desktop, OpenCode, Senpi/pi, OpenClaw, Factory Droid, Amp, Gemini/Kimi/Qwen CLIs, Codebuff, Roo/Kilo/Cline, Kodu, Cursor CLI, Aider, or unknown local agent logs. Covers transcripts, session IDs, rollout JSONL, state SQLite, Claude projects/pre-compact histories, OpenCode messages/parts, child/subagent linkage, cwd/model/time/token filters, archives, and cost clues. Expands fuzzy recall into parallel query lanes and first probes known stores so absent platforms are skipped cheaply. Triggers: coding agent sessions, Codex/Claude/OpenCode/Senpi/pi/OpenClaw/Droid/Amp/Kodu/Cursor/Aider sessions, transcript search, session history, session ID, read transcript, token usage, subagent sessions, what did I do yesterday, did we already do this."
|
|
3
|
+
description: "MUST USE when asked to find, read, list, search, inspect, fetch, export, or reconstruct coding-agent sessions across Codex, Claude Code/Desktop, OpenCode, Senpi/pi, oh-my-pi (omp), gajae-code (gjc), OpenClaw, Factory Droid, Amp, Gemini/Kimi/Qwen CLIs, Codebuff, Roo/Kilo/Cline, Kodu, Cursor CLI, Aider, or unknown local agent logs. Covers transcripts, session IDs, rollout JSONL, state SQLite, Claude projects/pre-compact histories, OpenCode messages/parts, child/subagent linkage, cwd/model/time/token filters, archives, and cost clues. Expands fuzzy recall into parallel query lanes and first probes known stores so absent platforms are skipped cheaply. Triggers: coding agent sessions, Codex/Claude/OpenCode/Senpi/pi/oh-my-pi/omp/gajae-code/gjc/OpenClaw/Droid/Amp/Kodu/Cursor/Aider sessions, transcript search, session history, session ID, read transcript, token usage, subagent sessions, what did I do yesterday, did we already do this."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Coding Agent Sessions
|
|
@@ -16,6 +16,7 @@ Find local coding-agent sessions across agent products before answering from mem
|
|
|
16
16
|
| Codex / OpenAI Codex CLI | `references/codex.md` |
|
|
17
17
|
| Claude Code / Claude Desktop histories | `references/claude.md` |
|
|
18
18
|
| Senpi / pi coding-agent logs | `references/senpi.md` |
|
|
19
|
+
| oh-my-pi (`omp`, `~/.omp`) and gajae-code (`gjc`, `~/.gjc`) logs | `references/senpi.md` |
|
|
19
20
|
| OpenCode / oh-my-openagent (formerly oh-my-opencode) storage | `references/opencode.md` |
|
|
20
21
|
| OpenClaw, Droid, Amp, Gemini, Kimi, Qwen, Codebuff, Roo/Kilo/Cline, Kodu, Cursor CLI, Aider, Kiro, Goose, Hermes, Crush, Zed | `references/all-platforms.md` |
|
|
21
22
|
| Unknown / "any session" / cross-agent search | `references/all-platforms.md` |
|
|
@@ -28,6 +29,7 @@ When the user remembers a task vaguely ("that OpenCode bug", "the dashboard PR",
|
|
|
28
29
|
python3 scripts/find-agent-sessions.py list --limit 20
|
|
29
30
|
python3 scripts/find-agent-sessions.py find "commit" --from 7d --platform senpi --platform opencode
|
|
30
31
|
python3 scripts/find-agent-sessions.py find "proxy" --platform openclaw --platform droid --platform amp
|
|
32
|
+
python3 scripts/find-agent-sessions.py find "refactor" --platform oh-my-pi --platform gajae-code
|
|
31
33
|
python3 scripts/find-agent-sessions.py find --query "deploy" --query "token usage" --workers 64
|
|
32
34
|
python3 scripts/find-agent-sessions.py find --query "opencode bug" --query "fix opencode" --query "OpenCode parent session" --include-subagents --workers 64
|
|
33
35
|
python3 scripts/find-agent-sessions.py read <session-id>
|
|
@@ -49,7 +51,7 @@ The finder prints JSON for stdout and `jq`. Every result includes:
|
|
|
49
51
|
|
|
50
52
|
| Field | Meaning |
|
|
51
53
|
|---|---|
|
|
52
|
-
| `platform` | Registered platform key such as `codex`, `claude`, `opencode`, `openclaw`, `droid`, `amp`, `kodu`, `cursor-cli`, `aider`, `roo-code`, `kilo-code`, `kilo-cli`, or `kiro` |
|
|
54
|
+
| `platform` | Registered platform key such as `codex`, `claude`, `senpi`, `oh-my-pi`, `gajae-code`, `opencode`, `openclaw`, `droid`, `amp`, `kodu`, `cursor-cli`, `aider`, `roo-code`, `kilo-code`, `kilo-cli`, or `kiro` |
|
|
53
55
|
| `id` | Session ID or stable file-derived ID |
|
|
54
56
|
| `path` | Raw transcript/index file |
|
|
55
57
|
| `cwd` | Working directory when recoverable |
|
|
@@ -117,6 +119,7 @@ Use `references/codex.md` for Codex storage details.
|
|
|
117
119
|
| Problem | Fix |
|
|
118
120
|
|---|---|
|
|
119
121
|
| Missing Codex sessions | Set `CODEX_HOME` or pass `--root /path/to/.codex`. |
|
|
122
|
+
| Missing oh-my-pi / gajae-code sessions | Those stores live in `~/.omp/agent/sessions` and `~/.gjc/agent/sessions`. For a custom `PI_CONFIG_DIR` / `PI_CODING_AGENT_DIR`, pass that agent dir with `--root`. |
|
|
120
123
|
| Missing OpenCode sessions | Pass the data dir that contains `messages/` and `parts/`, often `~/.opencode` or `~/.local/share/opencode`. |
|
|
121
124
|
| Missing Claude sessions | Search `~/.claude/projects`, `~/.claude/transcripts`, and `~/.claude/pre-compact-session-histories`; use `--root` for nonstandard config dirs. |
|
|
122
125
|
| Missing optional platform sessions | Check `references/all-platforms.md` for the exact local store. For project-local tools such as Aider, pass `--root /path/to/workspace` if the repo is outside the bounded default roots. |
|
|
@@ -4,13 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
Search these first, then add user-supplied roots with `--root`:
|
|
6
6
|
|
|
7
|
-
Registered platform keys: `codex`, `claude`, `senpi`, `opencode`, `openclaw`, `droid`, `amp`, `gemini`, `kimi`, `qwen`, `codebuff`, `roo-code`, `kilo-code`, `cline`, `kodu`, `cursor-cli`, `aider`, `kilo-cli`, `hermes`, `goose`, `crush`, `zed`, `kiro`.
|
|
7
|
+
Registered platform keys: `codex`, `claude`, `senpi`, `oh-my-pi`, `gajae-code`, `opencode`, `openclaw`, `droid`, `amp`, `gemini`, `kimi`, `qwen`, `codebuff`, `roo-code`, `kilo-code`, `cline`, `kodu`, `cursor-cli`, `aider`, `kilo-cli`, `hermes`, `goose`, `crush`, `zed`, `kiro`.
|
|
8
8
|
|
|
9
9
|
| Platform | Unix/macOS | Windows |
|
|
10
10
|
|---|---|---|
|
|
11
11
|
| Codex | `$CODEX_HOME`, `~/.codex` | `%CODEX_HOME%`, `%USERPROFILE%\.codex` |
|
|
12
12
|
| Claude | `~/.claude` | `%USERPROFILE%\.claude`, `%APPDATA%\Claude` |
|
|
13
13
|
| Senpi / pi | `~/.senpi/agent`, `~/.pi/agent` | `%USERPROFILE%\.senpi\agent`, `%USERPROFILE%\.pi\agent` |
|
|
14
|
+
| oh-my-pi (`omp`) | `~/.omp/agent`, `~/.omp/profiles/*/agent`, `$XDG_DATA_HOME/omp` | `%USERPROFILE%\.omp\agent` |
|
|
15
|
+
| gajae-code (`gjc`) | `~/.gjc/agent`, `~/.gjc/profiles/*/agent`, `$XDG_DATA_HOME/gjc` | `%USERPROFILE%\.gjc\agent` |
|
|
14
16
|
| OpenCode | `$OPENCODE_HOME`, `~/.opencode`, `~/.local/share/opencode` | `%OPENCODE_HOME%`, `%APPDATA%\opencode`, `%USERPROFILE%\.opencode` |
|
|
15
17
|
| OpenClaw | `~/.openclaw/agents/*/sessions`, `~/.openclaw/session-backups` | pass `--root` |
|
|
16
18
|
| Factory Droid | `~/.factory/sessions/*/*.jsonl` | pass `--root` |
|
|
@@ -1,10 +1,20 @@
|
|
|
1
|
-
# Senpi / pi Coding-Agent Sessions
|
|
1
|
+
# Senpi / pi Family Coding-Agent Sessions
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The pi family (Senpi, oh-my-pi, gajae-code) shares one session format, so one scanner serves all three under separate platform keys.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
| Platform key | Aliases | Config root | Sessions |
|
|
6
|
+
|---|---|---|---|
|
|
7
|
+
| `senpi` | - | `~/.senpi`, `~/.pi` | `<root>/agent/sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl` |
|
|
8
|
+
| `oh-my-pi` | `omp`, `ohmypi` | `~/.omp` | `~/.omp/agent/sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl` |
|
|
9
|
+
| `gajae-code` | `gjc`, `gajae` | `~/.gjc` | `~/.gjc/agent/sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl` |
|
|
10
|
+
|
|
11
|
+
Extra roots scanned for every pi-family platform:
|
|
12
|
+
|
|
13
|
+
- Named profiles: `<config-root>/profiles/<profile>/agent/sessions/**`.
|
|
14
|
+
- XDG stores (macOS/Linux, default profile): `$XDG_DATA_HOME/<app>/sessions/**` and `$XDG_DATA_HOME/<app>/profiles/<profile>/sessions/**`, where `<app>` is `senpi`, `omp`, or `gjc`. XDG flattens the `agent/` path segment.
|
|
15
|
+
- A custom `PI_CONFIG_DIR` / `PI_CODING_AGENT_DIR` / `GJC_CONFIG_DIR` store: pass that agent directory with `--root`.
|
|
16
|
+
|
|
17
|
+
`~/.senpi/agent/settings.json`, `models.json`, and `auth.json` provide environment context; oh-my-pi and gajae-code keep the same files plus `config.yml` and `models.yml` next to their sessions directory.
|
|
8
18
|
|
|
9
19
|
Common event types:
|
|
10
20
|
|
package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/pi_family.py
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
from .transcript import env_path, existing, jsonl_parallel, recent, stem_id
|
|
6
|
+
from .types import Session
|
|
7
|
+
|
|
8
|
+
SENPI_CONFIG_DIRS = (".senpi", ".pi")
|
|
9
|
+
OH_MY_PI_CONFIG_DIRS = (".omp",)
|
|
10
|
+
GAJAE_CODE_CONFIG_DIRS = (".gjc",)
|
|
11
|
+
|
|
12
|
+
__all__ = ["scan_gajae_code", "scan_oh_my_pi", "scan_senpi"]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def scan_senpi(extra_roots: tuple[Path, ...], workers: int) -> list[Session]:
|
|
16
|
+
return _scan_pi_family("senpi", SENPI_CONFIG_DIRS, "senpi", extra_roots, workers)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def scan_oh_my_pi(extra_roots: tuple[Path, ...], workers: int) -> list[Session]:
|
|
20
|
+
return _scan_pi_family("oh-my-pi", OH_MY_PI_CONFIG_DIRS, "omp", extra_roots, workers)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def scan_gajae_code(extra_roots: tuple[Path, ...], workers: int) -> list[Session]:
|
|
24
|
+
return _scan_pi_family("gajae-code", GAJAE_CODE_CONFIG_DIRS, "gjc", extra_roots, workers)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def _scan_pi_family(platform: str, config_dirs: tuple[str, ...], xdg_app: str, extra_roots: tuple[Path, ...], workers: int) -> list[Session]:
|
|
28
|
+
roots = _pi_family_roots(config_dirs, xdg_app, extra_roots)
|
|
29
|
+
paths = [path for root in roots for path in (root / "sessions").rglob("*.jsonl")]
|
|
30
|
+
return jsonl_parallel(recent(paths), workers, platform, lambda path: stem_id(path, "_"))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _pi_family_roots(config_dirs: tuple[str, ...], xdg_app: str, extra_roots: tuple[Path, ...]) -> list[Path]:
|
|
34
|
+
home = Path.home()
|
|
35
|
+
roots: list[Path] = []
|
|
36
|
+
for config_dir in config_dirs:
|
|
37
|
+
base = home / config_dir
|
|
38
|
+
roots.append(base / "agent")
|
|
39
|
+
roots.extend(sorted(base.glob("profiles/*/agent")))
|
|
40
|
+
xdg_data = env_path("XDG_DATA_HOME")
|
|
41
|
+
if xdg_data is not None:
|
|
42
|
+
app_root = xdg_data / xdg_app
|
|
43
|
+
roots.append(app_root)
|
|
44
|
+
roots.extend(sorted(app_root.glob("profiles/*")))
|
|
45
|
+
roots.extend(extra_roots)
|
|
46
|
+
return existing(roots)
|
package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py
CHANGED
|
@@ -21,9 +21,9 @@ from .file_scanners import (
|
|
|
21
21
|
)
|
|
22
22
|
from .kiro_scanner import scan_kiro
|
|
23
23
|
from .opencode import scan_opencode
|
|
24
|
+
from .pi_family import scan_gajae_code, scan_oh_my_pi, scan_senpi
|
|
24
25
|
from .sqlite_optional_scanners import scan_crush, scan_goose, scan_hermes, scan_kilo_cli, scan_zed
|
|
25
26
|
from .sqlite_scanners import scan_cursor_cli, scan_kodu
|
|
26
|
-
from .transcript import existing, jsonl_parallel, recent, stem_id
|
|
27
27
|
from .types import Session
|
|
28
28
|
|
|
29
29
|
Scanner: TypeAlias = Callable[[tuple[Path, ...], int], list[Session]]
|
|
@@ -31,7 +31,9 @@ Scanner: TypeAlias = Callable[[tuple[Path, ...], int], list[Session]]
|
|
|
31
31
|
PLATFORM_SCANNERS: dict[str, Scanner] = {
|
|
32
32
|
"codex": scan_codex,
|
|
33
33
|
"claude": scan_claude,
|
|
34
|
-
"senpi":
|
|
34
|
+
"senpi": scan_senpi,
|
|
35
|
+
"oh-my-pi": scan_oh_my_pi,
|
|
36
|
+
"gajae-code": scan_gajae_code,
|
|
35
37
|
"opencode": scan_opencode,
|
|
36
38
|
"openclaw": scan_openclaw,
|
|
37
39
|
"droid": scan_droid,
|
|
@@ -54,9 +56,22 @@ PLATFORM_SCANNERS: dict[str, Scanner] = {
|
|
|
54
56
|
"kiro": scan_kiro,
|
|
55
57
|
}
|
|
56
58
|
DEFAULT_PLATFORMS = frozenset(PLATFORM_SCANNERS)
|
|
57
|
-
PLATFORM_ALIASES = {
|
|
59
|
+
PLATFORM_ALIASES = {
|
|
60
|
+
"cursor": "cursor-cli",
|
|
61
|
+
"factory": "droid",
|
|
62
|
+
"roo": "roo-code",
|
|
63
|
+
"roocode": "roo-code",
|
|
64
|
+
"kilocode": "kilo-code",
|
|
65
|
+
"kilo": "kilo-cli",
|
|
66
|
+
"omp": "oh-my-pi",
|
|
67
|
+
"ohmypi": "oh-my-pi",
|
|
68
|
+
"oh_my_pi": "oh-my-pi",
|
|
69
|
+
"gjc": "gajae-code",
|
|
70
|
+
"gajae": "gajae-code",
|
|
71
|
+
"gajaecode": "gajae-code",
|
|
72
|
+
}
|
|
58
73
|
|
|
59
|
-
__all__ = ["DEFAULT_PLATFORMS", "PLATFORM_SCANNERS", "scan", "scan_claude", "scan_codex", "scan_opencode", "scan_senpi"]
|
|
74
|
+
__all__ = ["DEFAULT_PLATFORMS", "PLATFORM_SCANNERS", "scan", "scan_claude", "scan_codex", "scan_gajae_code", "scan_oh_my_pi", "scan_opencode", "scan_senpi"]
|
|
60
75
|
|
|
61
76
|
|
|
62
77
|
def scan(platforms: frozenset[str], roots: tuple[Path, ...], workers: int) -> list[Session]:
|
|
@@ -72,12 +87,6 @@ def scan(platforms: frozenset[str], roots: tuple[Path, ...], workers: int) -> li
|
|
|
72
87
|
return _dedupe(sessions)
|
|
73
88
|
|
|
74
89
|
|
|
75
|
-
def scan_senpi(extra_roots: tuple[Path, ...], workers: int) -> list[Session]:
|
|
76
|
-
roots = existing([Path.home() / ".senpi" / "agent", Path.home() / ".pi" / "agent", *extra_roots])
|
|
77
|
-
paths = [path for root in roots for path in (root / "sessions").rglob("*.jsonl")]
|
|
78
|
-
return jsonl_parallel(recent(paths), workers, "senpi", lambda path: stem_id(path, "_"))
|
|
79
|
-
|
|
80
|
-
|
|
81
90
|
def _dedupe(sessions: list[Session]) -> list[Session]:
|
|
82
91
|
found: dict[tuple[str, str], Session] = {}
|
|
83
92
|
for session in sessions:
|