oh-my-opencode 5.0.0-beta.31 → 5.0.0-beta.32
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/dist/cli/index.js +136 -44
- package/dist/cli-node/index.js +136 -44
- package/dist/features/background-agent/parent-wake-notifier-types.d.ts +1 -1
- package/dist/features/background-agent/parent-wake-prompt-dispatch.d.ts +1 -1
- package/dist/features/background-agent/parent-wake-session-inspector.d.ts +1 -1
- package/dist/features/monitor/manager-internals.d.ts +1 -1
- package/dist/features/monitor/output-injector-types.d.ts +1 -1
- package/dist/features/team-mode/tools/messaging-live-delivery-recipient.d.ts +1 -0
- package/dist/features/team-mode/tools/messaging-runtime.d.ts +1 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/tool-result-storage.d.ts +11 -0
- package/dist/index.js +286 -99
- package/dist/skills/ultimate-browsing/references/insane-search/README.md +9 -2
- package/dist/tools/session-manager/directory-filter.d.ts +2 -0
- package/dist/tui.js +109 -23
- package/package.json +16 -15
- package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +47 -19
- package/packages/lsp-core/src/lsp/client-diagnostics-pull-timeout.test.ts +64 -0
- package/packages/lsp-core/src/lsp/client.ts +6 -3
- package/packages/lsp-core/src/lsp/controlled-clock-test-support.ts +61 -0
- package/packages/lsp-core/src/lsp/fixtures/workspace-edit-server.mjs +10 -3
- package/packages/lsp-core/src/lsp/timer-provider.ts +13 -0
- package/packages/lsp-core/src/lsp/transport-request-timeout.test.ts +73 -0
- package/packages/lsp-core/src/lsp/transport.ts +7 -2
- package/packages/lsp-core/src/lsp/workspace-document-state.test.ts +84 -1
- package/packages/lsp-core/src/lsp/workspace-document-state.ts +30 -11
- package/packages/lsp-core/src/tools/parameters.test.ts +51 -0
- package/packages/lsp-daemon/dist/cli.js +41 -16
- package/packages/lsp-daemon/dist/client.js +41 -16
- package/packages/lsp-daemon/dist/index.js +41 -16
- package/packages/lsp-tools-mcp/dist/cli.js +41 -16
- package/packages/lsp-tools-mcp/dist/lsp/manager.js +41 -16
- package/packages/lsp-tools-mcp/dist/mcp.js +41 -16
- package/packages/lsp-tools-mcp/dist/tools.js +41 -16
- package/packages/lsp-tools-mcp/package.json +1 -1
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- 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/codegraph/dist/cli.js +3 -17
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +3 -17
- package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
- 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 +39 -16
- 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/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/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.md +5 -4
- package/packages/omo-codex/plugin/components/ultrawork/dist/cli.js +489 -4
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -2
- package/packages/omo-codex/plugin/components/ultrawork/scripts/sync-directive.mjs +30 -14
- package/packages/omo-codex/plugin/components/ultrawork/src/directive-content.ts +4 -0
- package/packages/omo-codex/plugin/components/ultrawork/src/directive.ts +5 -2
- package/packages/omo-codex/plugin/components/ultrawork/test/directive-source.test.ts +14 -8
- package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +12 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +4 -2
- package/packages/omo-codex/plugin/components/ulw-loop/README.md +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-continuation.js +9 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-reconciliation.d.ts +14 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-reconciliation.js +10 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-template.d.ts +8 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-template.js +113 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.js +7 -5
- 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 +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-subcommands.js +2 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +775 -312
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +18 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.d.ts +13 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.js +14 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/domain-types.d.ts +17 -9
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-io.js +17 -2
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-missing-recovery.d.ts +13 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-missing-recovery.js +19 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-aggregate.d.ts +2 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-aggregate.js +53 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-artifacts.d.ts +9 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-artifacts.js +85 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-fields.js +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.js +41 -99
- package/packages/omo-codex/plugin/components/ulw-loop/dist/review-blockers.js +4 -2
- package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.js +184 -14
- package/packages/omo-codex/plugin/components/ulw-loop/dist/status-next-actions.d.ts +6 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/status-next-actions.js +33 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/surface.d.ts +3 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/surface.js +15 -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/references/full-workflow.md +17 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-continuation.ts +7 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-reconciliation.ts +25 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-template.ts +127 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint.ts +8 -12
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-commands.ts +2 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-subcommands.ts +2 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +18 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-snapshot.ts +23 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/domain-types.ts +19 -9
- package/packages/omo-codex/plugin/components/ulw-loop/src/plan-io.ts +18 -3
- package/packages/omo-codex/plugin/components/ulw-loop/src/plan-missing-recovery.ts +27 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-aggregate.ts +57 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-artifacts.ts +103 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-fields.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate.ts +50 -116
- package/packages/omo-codex/plugin/components/ulw-loop/src/review-blockers.ts +4 -2
- package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-guard.ts +186 -12
- package/packages/omo-codex/plugin/components/ulw-loop/src/status-next-actions.ts +36 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/surface.ts +22 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-final.test.ts +66 -3
- package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-template.test.ts +92 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-status-next-actions.test.ts +183 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-instruction.test.ts +13 -3
- package/packages/omo-codex/plugin/components/ulw-loop/test/guided-recovery.test.ts +105 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-aggregate.test.ts +101 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-roles.test.ts +16 -15
- package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-senpi-surface.test.ts +131 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate.test.ts +5 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-guard.test.ts +300 -3
- package/packages/omo-codex/plugin/components/ulw-loop/test/ultrawork-directive.test.ts +9 -3
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-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-ulw-execute-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 +13 -13
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/sync-skills.mjs +31 -2
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/README.md +9 -2
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +17 -0
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +11 -1
- package/packages/omo-codex/plugin/test/sync-skills.test.mjs +13 -0
- package/packages/omo-codex/plugin/test/ultrawork-skill-pointer.test.mjs +5 -2
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
- package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/README.md +9 -2
- package/dist/features/builtin-skills/index.d.ts +0 -1
- package/dist/features/builtin-skills/skill-file-loader.d.ts +0 -1
- package/dist/features/builtin-skills/skills/agent-browser-skill.d.ts +0 -1
- package/dist/features/builtin-skills/skills/agent-browser-template.d.ts +0 -1
- package/dist/features/builtin-skills/skills/debugging.d.ts +0 -1
- package/dist/features/builtin-skills/skills/dev-browser.d.ts +0 -1
- package/dist/features/builtin-skills/skills/frontend.d.ts +0 -1
- package/dist/features/builtin-skills/skills/git-master-sections/commit-atomic-planning.d.ts +0 -1
- package/dist/features/builtin-skills/skills/git-master-sections/commit-context-analysis.d.ts +0 -1
- package/dist/features/builtin-skills/skills/git-master-sections/commit-execution-verification.d.ts +0 -1
- package/dist/features/builtin-skills/skills/git-master-sections/commit-workflow.d.ts +0 -1
- package/dist/features/builtin-skills/skills/git-master-sections/history-search-workflow.d.ts +0 -1
- package/dist/features/builtin-skills/skills/git-master-sections/overview.d.ts +0 -1
- package/dist/features/builtin-skills/skills/git-master-sections/quick-reference.d.ts +0 -1
- package/dist/features/builtin-skills/skills/git-master-sections/rebase-workflow.d.ts +0 -1
- package/dist/features/builtin-skills/skills/git-master-skill-metadata.d.ts +0 -1
- package/dist/features/builtin-skills/skills/git-master.d.ts +0 -1
- package/dist/features/builtin-skills/skills/index.d.ts +0 -1
- package/dist/features/builtin-skills/skills/init-deep.d.ts +0 -1
- package/dist/features/builtin-skills/skills/playwright-cli.d.ts +0 -1
- package/dist/features/builtin-skills/skills/playwright-mcp-skill.d.ts +0 -1
- package/dist/features/builtin-skills/skills/playwright.d.ts +0 -1
- package/dist/features/builtin-skills/skills/remove-ai-slops.d.ts +0 -1
- package/dist/features/builtin-skills/skills/review-work.d.ts +0 -1
- package/dist/features/builtin-skills/skills/security-research.d.ts +0 -1
- package/dist/features/builtin-skills/skills/security-review.d.ts +0 -1
- package/dist/features/builtin-skills/skills/team-mode.d.ts +0 -1
- package/dist/features/builtin-skills/skills/visual-qa.d.ts +0 -1
- package/dist/features/builtin-skills/skills.d.ts +0 -1
- package/dist/features/builtin-skills/types.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/agent-loader.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/command-loader.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/discovery-core.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/discovery-paths.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/discovery.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/hook-loader.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/index.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/install-path-resolver.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/installed-plugin-database.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/loaded-plugin.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/loader.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/mcp-server-loader.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/plugin-key.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/plugin-manifest.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/plugin-path-resolver.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/plugin-settings.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/scope-filter.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/skill-loader.d.ts +0 -1
- package/dist/features/claude-code-plugin-loader/types.d.ts +0 -1
- package/dist/shared/prompt-async-gate/message-inspection-error.d.ts +0 -1
- package/dist/shared/prompt-async-gate/pending-tool-turn.d.ts +0 -1
- package/dist/shared/prompt-async-gate/prompt-message-state.d.ts +0 -1
- package/dist/shared/prompt-async-gate/queue.d.ts +0 -1
- package/dist/shared/prompt-async-gate/recent-dispatches.d.ts +0 -1
- package/dist/shared/prompt-async-gate/reservations.d.ts +0 -1
- package/dist/shared/prompt-async-gate/semantic-dedupe.d.ts +0 -1
- package/dist/shared/prompt-async-gate/session-idle-dispatch.d.ts +0 -1
- package/dist/shared/prompt-async-gate/timing.d.ts +0 -1
- package/dist/shared/prompt-async-gate/types.d.ts +0 -1
- package/packages/omo-codex/plugin/components/ultrawork/directive.md +0 -483
- package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +0 -490
|
@@ -5848,11 +5848,7 @@ var OmoMemorySearchSchema = object({
|
|
|
5848
5848
|
}).strict();
|
|
5849
5849
|
var OmoMemoryRecallSchema = object({
|
|
5850
5850
|
enabled: boolean2().default(true),
|
|
5851
|
-
max_items: number2().int().min(1).max(5).default(2)
|
|
5852
|
-
budget_tokens: number2().int().positive().default(600),
|
|
5853
|
-
excerpt_chars: number2().int().positive().default(200),
|
|
5854
|
-
min_score: number2().optional(),
|
|
5855
|
-
exclude: array(string2()).default([])
|
|
5851
|
+
max_items: number2().int().min(1).max(5).default(2)
|
|
5856
5852
|
}).strict();
|
|
5857
5853
|
var OmoMemoryNudgeSchema = object({
|
|
5858
5854
|
enabled: boolean2().default(true),
|
|
@@ -5902,11 +5898,7 @@ var OmoMemorySearchLayerSchema = object({
|
|
|
5902
5898
|
}).strict();
|
|
5903
5899
|
var OmoMemoryRecallLayerSchema = object({
|
|
5904
5900
|
enabled: boolean2().optional(),
|
|
5905
|
-
max_items: number2().int().min(1).max(5).optional()
|
|
5906
|
-
budget_tokens: number2().int().positive().optional(),
|
|
5907
|
-
excerpt_chars: number2().int().positive().optional(),
|
|
5908
|
-
min_score: number2().optional(),
|
|
5909
|
-
exclude: array(string2()).optional()
|
|
5901
|
+
max_items: number2().int().min(1).max(5).optional()
|
|
5910
5902
|
}).strict();
|
|
5911
5903
|
var OmoMemoryNudgeLayerSchema = object({
|
|
5912
5904
|
enabled: boolean2().optional(),
|
|
@@ -5977,13 +5969,7 @@ var OmoMemorySettingsSchema = object({
|
|
|
5977
5969
|
write_notice: OmoMemoryWriteNoticeSchema.default({ enabled: true }),
|
|
5978
5970
|
sync: OmoMemorySyncSchema.default({ enabled: true }),
|
|
5979
5971
|
search: OmoMemorySearchSchema.default({ enabled: true }),
|
|
5980
|
-
recall: OmoMemoryRecallSchema.default({
|
|
5981
|
-
enabled: true,
|
|
5982
|
-
max_items: 2,
|
|
5983
|
-
budget_tokens: 600,
|
|
5984
|
-
excerpt_chars: 200,
|
|
5985
|
-
exclude: []
|
|
5986
|
-
}),
|
|
5972
|
+
recall: OmoMemoryRecallSchema.default({ enabled: true, max_items: 2 }),
|
|
5987
5973
|
compile_warn_tokens: number2().int().positive().default(30000),
|
|
5988
5974
|
agents: record(string2(), OmoMemoryAgentOverridesSchema).default({})
|
|
5989
5975
|
}).strict();
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
|
|
10
10
|
"timeout": 5,
|
|
11
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.32) Recommending Git Bash MCP"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"type": "command",
|
|
21
21
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
|
|
22
22
|
"timeout": 5,
|
|
23
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
23
|
+
"statusMessage": "(OmO 5.0.0-beta.32) Resetting Git Bash MCP Reminder"
|
|
24
24
|
}
|
|
25
25
|
]
|
|
26
26
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
|
|
10
10
|
"timeout": 10,
|
|
11
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.32) Verifying LazyCodex Executor Evidence"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-yeongyu/codex-lazycodex-executor-verify",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.32",
|
|
4
4
|
"description": "Codex SubagentStop evidence verifier for LazyCodex executor completions.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "npm@11.12.1",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"version": "5.0.0-beta.
|
|
4
|
-
"inputDigest": "sha256:
|
|
3
|
+
"version": "5.0.0-beta.32",
|
|
4
|
+
"inputDigest": "sha256:7ebeb55787bcfcf32f5cdd2782c145f22c9aa8c595b7dedde0228036267ccfee",
|
|
5
5
|
"outputs": [
|
|
6
6
|
{
|
|
7
7
|
"path": "cli.d.ts",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
"path": "cli.js",
|
|
12
|
-
"sha256": "
|
|
12
|
+
"sha256": "89f0a2360dc1977cc00f2cdb661ff6929a7b90131728488502834a372840db3c"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"path": "codex-hook-cli.d.ts",
|
|
@@ -766,6 +766,11 @@ function reportBestEffortCleanupError(operation, error, logger = writeCleanupErr
|
|
|
766
766
|
const message = error instanceof Error ? error.message : String(error);
|
|
767
767
|
logger(`[lsp] ignored ${operation} failure during cleanup: ${message}`);
|
|
768
768
|
}
|
|
769
|
+
var realTimerProvider = {
|
|
770
|
+
now: () => Date.now(),
|
|
771
|
+
setTimeout: (callback, delayMs) => setTimeout(callback, delayMs),
|
|
772
|
+
clearTimeout: (handle) => clearTimeout(handle)
|
|
773
|
+
};
|
|
769
774
|
var DEFAULT_MAX_REFERENCES = 200;
|
|
770
775
|
var DEFAULT_MAX_SYMBOLS = 200;
|
|
771
776
|
var DEFAULT_MAX_DIAGNOSTICS = 200;
|
|
@@ -1294,6 +1299,7 @@ class LspClientTransport {
|
|
|
1294
1299
|
this.documentFormattingSupported = false;
|
|
1295
1300
|
this.requestTimeoutMs = timeouts.requestTimeoutMs ?? REQUEST_TIMEOUT_MS;
|
|
1296
1301
|
this.initializeTimeoutMs = timeouts.initializeTimeoutMs ?? INIT_TIMEOUT_MS;
|
|
1302
|
+
this.timerProvider = timeouts.timerProvider ?? realTimerProvider;
|
|
1297
1303
|
}
|
|
1298
1304
|
pid() {
|
|
1299
1305
|
return this.proc?.pid;
|
|
@@ -1394,7 +1400,7 @@ class LspClientTransport {
|
|
|
1394
1400
|
const options = args[1];
|
|
1395
1401
|
const timeoutMs = options?.timeoutMs ?? this.requestTimeoutMs;
|
|
1396
1402
|
const timeoutController = new AbortController;
|
|
1397
|
-
const timeoutHandle = setTimeout(() => {
|
|
1403
|
+
const timeoutHandle = this.timerProvider.setTimeout(() => {
|
|
1398
1404
|
const stderrTail = this.stderrBuffer.slice(-5).join(`
|
|
1399
1405
|
`);
|
|
1400
1406
|
timeoutController.abort(new LspRequestTimeoutError(method, stderrTail || undefined));
|
|
@@ -1413,7 +1419,7 @@ class LspClientTransport {
|
|
|
1413
1419
|
}
|
|
1414
1420
|
throw error;
|
|
1415
1421
|
} finally {
|
|
1416
|
-
clearTimeout(timeoutHandle);
|
|
1422
|
+
this.timerProvider.clearTimeout(timeoutHandle);
|
|
1417
1423
|
combinedSignal.dispose();
|
|
1418
1424
|
}
|
|
1419
1425
|
}
|
|
@@ -1783,6 +1789,17 @@ function canonicalPath(filePath) {
|
|
|
1783
1789
|
return absolute;
|
|
1784
1790
|
}
|
|
1785
1791
|
}
|
|
1792
|
+
function normalizeDocumentUri(uri) {
|
|
1793
|
+
let decoded = uri;
|
|
1794
|
+
try {
|
|
1795
|
+
decoded = decodeURIComponent(uri);
|
|
1796
|
+
} catch {
|
|
1797
|
+
decoded = uri;
|
|
1798
|
+
}
|
|
1799
|
+
if (process.platform !== "win32")
|
|
1800
|
+
return decoded;
|
|
1801
|
+
return decoded.replace(/^(file:\/\/\/)([a-z]):/, (_match, prefix, drive) => `${prefix}${drive.toUpperCase()}:`);
|
|
1802
|
+
}
|
|
1786
1803
|
function isSameOrDescendant(candidate, parent) {
|
|
1787
1804
|
const suffix = relative2(parent, candidate);
|
|
1788
1805
|
return suffix === "" || !suffix.startsWith("..") && suffix !== "..";
|
|
@@ -1799,7 +1816,12 @@ class WorkspaceDocumentState {
|
|
|
1799
1816
|
this.openDocuments = new Map;
|
|
1800
1817
|
this.openByUri = new Map;
|
|
1801
1818
|
this.openPromises = new Map;
|
|
1802
|
-
this.
|
|
1819
|
+
this.timerProvider = options.timerProvider ?? {
|
|
1820
|
+
now: options.now ?? (() => Date.now()),
|
|
1821
|
+
setTimeout: (callback, delayMs) => setTimeout(callback, delayMs),
|
|
1822
|
+
clearTimeout: (handle) => clearTimeout(handle)
|
|
1823
|
+
};
|
|
1824
|
+
this.now = () => this.timerProvider.now();
|
|
1803
1825
|
this.versionlessPublishQuiescenceMs = options.versionlessPublishQuiescenceMs ?? DEFAULT_VERSIONLESS_PUBLISH_QUIESCENCE_MS;
|
|
1804
1826
|
}
|
|
1805
1827
|
async openFile(filePath) {
|
|
@@ -1821,7 +1843,7 @@ class WorkspaceDocumentState {
|
|
|
1821
1843
|
return this.openDocuments.get(canonicalPath(filePath))?.version;
|
|
1822
1844
|
}
|
|
1823
1845
|
getStoredDiagnostics(uri) {
|
|
1824
|
-
const state = this.openByUri.get(uri);
|
|
1846
|
+
const state = this.openByUri.get(normalizeDocumentUri(uri));
|
|
1825
1847
|
if (!state)
|
|
1826
1848
|
return [];
|
|
1827
1849
|
return state.lastPublish?.diagnostics ?? state.pullCache?.diagnostics ?? [];
|
|
@@ -1843,13 +1865,13 @@ class WorkspaceDocumentState {
|
|
|
1843
1865
|
return state !== undefined && state.uri === snapshot.uri && state.version === snapshot.version && state.generation === snapshot.documentGeneration;
|
|
1844
1866
|
}
|
|
1845
1867
|
getPullCache(snapshot) {
|
|
1846
|
-
const state = this.openByUri.get(snapshot.uri);
|
|
1868
|
+
const state = this.openByUri.get(normalizeDocumentUri(snapshot.uri));
|
|
1847
1869
|
if (!state?.pullCache || state.pullCache.documentVersion !== snapshot.version)
|
|
1848
1870
|
return null;
|
|
1849
1871
|
return state.pullCache;
|
|
1850
1872
|
}
|
|
1851
1873
|
recordPullDiagnostics(snapshot, report) {
|
|
1852
|
-
const state = this.openByUri.get(snapshot.uri);
|
|
1874
|
+
const state = this.openByUri.get(normalizeDocumentUri(snapshot.uri));
|
|
1853
1875
|
if (!state)
|
|
1854
1876
|
return;
|
|
1855
1877
|
state.pullCache = {
|
|
@@ -1859,7 +1881,7 @@ class WorkspaceDocumentState {
|
|
|
1859
1881
|
};
|
|
1860
1882
|
}
|
|
1861
1883
|
recordPublishedDiagnostics(params) {
|
|
1862
|
-
const state = this.openByUri.get(params.uri);
|
|
1884
|
+
const state = this.openByUri.get(normalizeDocumentUri(params.uri));
|
|
1863
1885
|
if (!state)
|
|
1864
1886
|
return;
|
|
1865
1887
|
state.publishGeneration += 1;
|
|
@@ -1873,7 +1895,7 @@ class WorkspaceDocumentState {
|
|
|
1873
1895
|
this.notifyWaiters(state);
|
|
1874
1896
|
}
|
|
1875
1897
|
resolvePushDiagnostics(snapshot) {
|
|
1876
|
-
const state = this.openByUri.get(snapshot.uri);
|
|
1898
|
+
const state = this.openByUri.get(normalizeDocumentUri(snapshot.uri));
|
|
1877
1899
|
if (!state?.lastPublish)
|
|
1878
1900
|
return { status: "missing" };
|
|
1879
1901
|
const publish = state.lastPublish;
|
|
@@ -1887,7 +1909,7 @@ class WorkspaceDocumentState {
|
|
|
1887
1909
|
return waitMs === 0 ? { status: "ready", diagnostics: publish.diagnostics } : { status: "wait", waitMs };
|
|
1888
1910
|
}
|
|
1889
1911
|
waitForDiagnosticsActivity(snapshot, timeoutMs) {
|
|
1890
|
-
const state = this.openByUri.get(snapshot.uri);
|
|
1912
|
+
const state = this.openByUri.get(normalizeDocumentUri(snapshot.uri));
|
|
1891
1913
|
if (!state || timeoutMs <= 0)
|
|
1892
1914
|
return Promise.resolve();
|
|
1893
1915
|
return new Promise((resolveActivity) => {
|
|
@@ -1896,11 +1918,11 @@ class WorkspaceDocumentState {
|
|
|
1896
1918
|
if (settled)
|
|
1897
1919
|
return;
|
|
1898
1920
|
settled = true;
|
|
1899
|
-
clearTimeout(timer);
|
|
1921
|
+
this.timerProvider.clearTimeout(timer);
|
|
1900
1922
|
state.waiters.delete(finish);
|
|
1901
1923
|
resolveActivity();
|
|
1902
1924
|
};
|
|
1903
|
-
const timer = setTimeout(finish, timeoutMs);
|
|
1925
|
+
const timer = this.timerProvider.setTimeout(finish, timeoutMs);
|
|
1904
1926
|
if (typeof timer.unref === "function")
|
|
1905
1927
|
timer.unref();
|
|
1906
1928
|
state.waiters.add(finish);
|
|
@@ -2008,7 +2030,7 @@ class WorkspaceDocumentState {
|
|
|
2008
2030
|
waiters: new Set
|
|
2009
2031
|
};
|
|
2010
2032
|
this.openDocuments.set(path2, state);
|
|
2011
|
-
this.openByUri.set(state.uri, state);
|
|
2033
|
+
this.openByUri.set(normalizeDocumentUri(state.uri), state);
|
|
2012
2034
|
this.notifyWaiters(state);
|
|
2013
2035
|
await this.sendNotification("textDocument/didOpen", {
|
|
2014
2036
|
textDocument: { uri: state.uri, languageId: state.languageId, version: state.version, text }
|
|
@@ -2033,7 +2055,7 @@ class WorkspaceDocumentState {
|
|
|
2033
2055
|
}
|
|
2034
2056
|
async closeDocument(state) {
|
|
2035
2057
|
this.openDocuments.delete(state.path);
|
|
2036
|
-
this.openByUri.delete(state.uri);
|
|
2058
|
+
this.openByUri.delete(normalizeDocumentUri(state.uri));
|
|
2037
2059
|
this.clearDiagnostics(state.uri);
|
|
2038
2060
|
this.notifyWaiters(state);
|
|
2039
2061
|
await this.sendNotification("textDocument/didClose", { textDocument: { uri: state.uri } });
|
|
@@ -3083,6 +3105,7 @@ class LspClient extends LspClientConnection {
|
|
|
3083
3105
|
this.diagnosticPullErrors = [];
|
|
3084
3106
|
this.diagnosticsFreshnessTimeoutMs = options.diagnosticsFreshnessTimeoutMs ?? DIAGNOSTICS_FRESHNESS_TIMEOUT_MS;
|
|
3085
3107
|
this.documents = new WorkspaceDocumentState((method, params) => this.sendNotification(method, params), (uri) => this.diagnosticsStore.delete(uri), {
|
|
3108
|
+
timerProvider: this.timerProvider,
|
|
3086
3109
|
versionlessPublishQuiescenceMs: options.versionlessPublishQuiescenceMs ?? VERSIONLESS_PUBLISH_QUIESCENCE_MS
|
|
3087
3110
|
});
|
|
3088
3111
|
this.workspaceMutations = new WorkspaceMutationController(root, this.documents);
|
|
@@ -3186,7 +3209,7 @@ class LspClient extends LspClientConnection {
|
|
|
3186
3209
|
const absPath = this.resolveWorkspacePath(filePath);
|
|
3187
3210
|
const uri = pathToFileURL3(absPath).href;
|
|
3188
3211
|
await this.openFile(absPath);
|
|
3189
|
-
const deadlineAt =
|
|
3212
|
+
const deadlineAt = this.timerProvider.now() + this.diagnosticsFreshnessTimeoutMs;
|
|
3190
3213
|
for (;; ) {
|
|
3191
3214
|
signal?.throwIfAborted();
|
|
3192
3215
|
const snapshot = this.documents.captureDiagnosticSnapshot(absPath);
|
|
@@ -3199,7 +3222,7 @@ class LspClient extends LspClientConnection {
|
|
|
3199
3222
|
if (!pushFallbackOnly) {
|
|
3200
3223
|
const cached = this.documents.getPullCache(snapshot);
|
|
3201
3224
|
try {
|
|
3202
|
-
const remainingMs2 = deadlineAt -
|
|
3225
|
+
const remainingMs2 = deadlineAt - this.timerProvider.now();
|
|
3203
3226
|
if (remainingMs2 <= 0)
|
|
3204
3227
|
return this.freshnessTimeout(absPath);
|
|
3205
3228
|
const result = await this.sendRequest("textDocument/diagnostic", {
|
|
@@ -3234,7 +3257,7 @@ class LspClient extends LspClientConnection {
|
|
|
3234
3257
|
}
|
|
3235
3258
|
if (!pushFallbackOnly)
|
|
3236
3259
|
continue;
|
|
3237
|
-
const remainingMs = deadlineAt -
|
|
3260
|
+
const remainingMs = deadlineAt - this.timerProvider.now();
|
|
3238
3261
|
if (remainingMs <= 0) {
|
|
3239
3262
|
if (!this.isDiagnosticPullSupported() && snapshot.publishGeneration === 0) {
|
|
3240
3263
|
const cached = this.documents.getPullCache(snapshot);
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
|
|
10
10
|
"timeout": 60,
|
|
11
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.32) Checking LSP Diagnostics"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"type": "command",
|
|
22
22
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
|
|
23
23
|
"timeout": 5,
|
|
24
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
24
|
+
"statusMessage": "(OmO 5.0.0-beta.32) Resetting LSP Diagnostics Cache"
|
|
25
25
|
}
|
|
26
26
|
]
|
|
27
27
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
10
|
+
"statusMessage": "(OmO 5.0.0-beta.32) Loading Project Rules"
|
|
11
11
|
}
|
|
12
12
|
]
|
|
13
13
|
}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"type": "command",
|
|
20
20
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit",
|
|
21
21
|
"timeout": 10,
|
|
22
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
22
|
+
"statusMessage": "(OmO 5.0.0-beta.32) Loading Project Rules"
|
|
23
23
|
}
|
|
24
24
|
]
|
|
25
25
|
}
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"type": "command",
|
|
33
33
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
|
|
34
34
|
"timeout": 10,
|
|
35
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
35
|
+
"statusMessage": "(OmO 5.0.0-beta.32) Matching Project Rules"
|
|
36
36
|
}
|
|
37
37
|
]
|
|
38
38
|
}
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"type": "command",
|
|
46
46
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
|
|
47
47
|
"timeout": 10,
|
|
48
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
48
|
+
"statusMessage": "(OmO 5.0.0-beta.32) Resetting Project Rule Cache"
|
|
49
49
|
}
|
|
50
50
|
]
|
|
51
51
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
|
|
10
10
|
"timeout": 10,
|
|
11
|
-
"statusMessage": "(OmO 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.32) Checking Thread Title Hygiene"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-yeongyu/codex-telemetry",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.32",
|
|
4
4
|
"description": "Codex plugin component that emits omo-codex anonymous daily-active telemetry on SessionStart.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "npm@11.12.1",
|
|
@@ -16,8 +16,9 @@ Conventions for human contributors and AI agents working on this repository.
|
|
|
16
16
|
- `src/cli.ts`: `UserPromptSubmit` hook CLI. Reads JSON on stdin, writes a compact `<ultrawork-mode>` skill pointer to stdout when the keyword matches (full directive as fallback), exits 0 otherwise.
|
|
17
17
|
- `src/codex-hook.ts`: pure detector/hook behavior; skips on context-pressure/recovery transcripts and when the directive is already in the transcript.
|
|
18
18
|
- `src/skill-pointer.ts`: `buildUltraworkAdditionalContext()`: emits the <4096-byte pointer (Codex App truncates large hook output) directing the model to `create_goal` then read the bundled `ultrawork` skill; falls back to the full `ULTRAWORK_DIRECTIVE` when the plugin skills tree is absent. Pointer size + `ulw-loop` mirror byte-identity pinned by `plugin/test/ultrawork-skill-pointer.test.mjs`.
|
|
19
|
-
- `directive.
|
|
20
|
-
- `
|
|
19
|
+
- `src/directive-content.ts`: GENERATED bundled directive text (`export const ULTRAWORK_DIRECTIVE_TEXT`). Regenerate via `scripts/sync-directive.mjs`; freshness pinned to the canonical prompt by `test/directive-source.test.ts`. Checked in so a clean checkout builds without running generation.
|
|
20
|
+
- `scripts/sync-directive.mjs`: reads the canonical `packages/prompts-core/prompts/ultrawork/codex.md` and writes two checked-in artifacts: `src/directive-content.ts` and `../ulw-loop/directive.md` (ulw-loop is a separately published standalone package with no prompts-core dependency, so it bundles its own byte-identical copy).
|
|
21
|
+
- Aggregate `ultrawork` skill: `plugin/scripts/sync-skills.mjs` composes `plugin/skills/ultrawork/SKILL.md` by inlining the canonical prompt under skill frontmatter. It reads the canonical file DIRECTLY because `sync-skills` runs before `build-components` in the plugin build chain.
|
|
21
22
|
- `skills/ulw-plan/`: dual-maintained copy of the ulw-plan skill (component copy wins over `packages/shared-skills/skills/ulw-plan/` in sync-skills; keep both in step by hand).
|
|
22
23
|
- `agents/*.toml`: bundled Codex agent role files. Installed as regular files into `CODEX_HOME/agents/` by `src/cli/install-codex/link-cached-plugin-agents.ts` at install time. Public `sisyphuslabs` installs source them from Codex's installed-marketplace snapshot, not the versioned plugin cache, so they survive Codex auto-update cache pruning and temporary snapshot cleanup. No runtime `SessionStart` hook is involved.
|
|
23
24
|
- `hooks/hooks.json`: registers the prompt-detector hook only.
|
|
@@ -27,9 +28,9 @@ Conventions for human contributors and AI agents working on this repository.
|
|
|
27
28
|
|
|
28
29
|
- Never let the hook block a turn. Exit code is always 0.
|
|
29
30
|
- Never make a network call from the hook.
|
|
30
|
-
-
|
|
31
|
+
- The canonical directive lives in `packages/prompts-core/prompts/ultrawork/codex.md`. `src/directive-content.ts` is a GENERATED bundled artifact (regenerate via `scripts/sync-directive.mjs`; freshness enforced by `test/directive-source.test.ts`). Do not hand-edit `directive-content.ts`; do not read prompts-core from disk at runtime.
|
|
31
32
|
- Keep bundled agent role prompts concise and model-specific; measure prompt length when changing them.
|
|
32
|
-
- When editing `
|
|
33
|
+
- When editing the canonical `packages/prompts-core/prompts/ultrawork/codex.md`, apply the `prompt-engineering` skill's entropy gate: every edit must reduce uncertainty per token. Re-measure character count before committing, and re-run `scripts/sync-directive.mjs` so the generated artifacts stay in step.
|
|
33
34
|
|
|
34
35
|
## Commands
|
|
35
36
|
|