oh-my-opencode 4.19.2 → 4.19.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/command/get-unpublished-changes.md +2 -0
- package/.agents/command/omomomo.md +1 -1
- package/.agents/command/publish.md +102 -28
- package/.agents/skills/get-unpublished-changes/SKILL.md +2 -0
- package/.agents/skills/hyperplan/SKILL.md +3 -3
- package/.agents/skills/omomomo/SKILL.md +1 -1
- package/.agents/skills/publish/SKILL.md +27 -6
- package/.opencode/command/get-unpublished-changes.md +2 -0
- package/.opencode/command/omomomo.md +1 -1
- package/.opencode/command/publish.md +102 -28
- package/.opencode/skills/hyperplan/SKILL.md +3 -3
- package/THIRD-PARTY-NOTICES.md +7 -7
- package/dist/agents/sisyphus-junior/agent.d.ts +1 -1
- package/dist/agents/sisyphus-runtime-prompt-reconciler.d.ts +1 -1
- package/dist/cli/config-migrate.d.ts +8 -0
- package/dist/cli/doctor/checks/deprecated-reasoning-keys.d.ts +2 -0
- package/dist/cli/doctor/checks/legacy-config-leftovers.d.ts +10 -0
- package/dist/cli/doctor/checks/model-resolution-config.d.ts +1 -1
- package/dist/cli/doctor/checks/tools-lsp.d.ts +1 -1
- package/dist/cli/doctor/framework/constants.d.ts +1 -1
- package/dist/cli/index.js +95684 -92814
- package/dist/cli-node/index.js +95650 -92780
- package/dist/config/schema/agent-overrides.d.ts +800 -0
- package/dist/config/schema/categories.d.ts +132 -0
- package/dist/config/schema/fallback-models.d.ts +50 -0
- package/dist/config/schema/oh-my-opencode-config.d.ts +818 -2
- package/dist/config/validate.d.ts +2 -1
- package/dist/config-migration/deep-diff.d.ts +1 -0
- package/dist/config-migration/discovery-paths.d.ts +11 -0
- package/dist/config-migration/discovery-roots.d.ts +7 -0
- package/dist/config-migration/discovery.d.ts +4 -0
- package/dist/config-migration/index.d.ts +10 -0
- package/dist/config-migration/legacy-history.d.ts +3 -0
- package/dist/config-migration/migration-executor.d.ts +4 -0
- package/dist/config-migration/migration-plans.d.ts +15 -0
- package/dist/config-migration/reasoning-unification.d.ts +3 -0
- package/dist/config-migration/record-values.d.ts +4 -0
- package/dist/config-migration/schema-url.d.ts +1 -0
- package/dist/config-migration/transform-config-jsonc.d.ts +2 -0
- package/dist/config-migration/transform-opencode.d.ts +2 -0
- package/dist/config-migration/transform-types.d.ts +24 -0
- package/dist/config-migration/types.d.ts +39 -0
- package/dist/features/builtin-commands/templates/hyperplan.d.ts +1 -1
- package/dist/features/team-mode/tools/lifecycle-test-fixture.d.ts +2 -0
- package/dist/hooks/auto-update-checker/constants.d.ts +3 -3
- package/dist/hooks/codegraph-bootstrap/command-runner.d.ts +1 -0
- package/dist/hooks/model-fallback/next-fallback.d.ts +1 -0
- package/dist/hooks/runtime-fallback/constants.d.ts +1 -1
- package/dist/index.js +12368 -9788
- package/dist/oh-my-opencode.schema.json +1672 -8
- package/dist/plugin-config/omo-config-chain.d.ts +14 -0
- package/dist/plugin-config/unknown-key-diagnostics.d.ts +5 -0
- package/dist/plugin-config.d.ts +2 -2
- package/dist/plugin-handlers/prometheus-agent-config-builder.d.ts +1 -0
- package/dist/shared/agent-display-names.d.ts +1 -1
- package/dist/shared/agent-variant.d.ts +11 -0
- package/dist/shared/jsonc-parser.d.ts +1 -1
- package/dist/shared/migration.d.ts +5 -1
- package/dist/shared/opencode-config-dir-types.d.ts +0 -1
- package/dist/shared/plugin-identity.d.ts +6 -8
- package/dist/shared/project-discovery-dirs.d.ts +0 -1
- package/dist/shared/session-prompt-params-helpers.d.ts +6 -1
- package/dist/skills/coding-agent-sessions/SKILL.md +4 -3
- package/dist/skills/coding-agent-sessions/references/all-platforms.md +3 -1
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/aside_scanner.py +140 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +3 -0
- package/dist/skills/data-scientist/SKILL.md +243 -0
- package/dist/skills/data-scientist/references/common-scenarios.md +176 -0
- package/dist/skills/data-scientist/references/execution-templates.md +197 -0
- package/dist/skills/data-scientist/references/integration-patterns.md +153 -0
- package/dist/skills/data-scientist/references/performance-benchmarks.md +37 -0
- package/dist/skills/data-scientist/references/uv-setup.md +78 -0
- package/dist/skills/data-scientist/scripts/quick-query.py +111 -0
- package/dist/skills/data-scientist/scripts/setup-uv.ps1 +53 -0
- package/dist/skills/data-scientist/scripts/setup-uv.sh +60 -0
- package/dist/skills/debugging/SKILL.md +1 -1
- package/dist/skills/frontend/ATTRIBUTION.md +7 -0
- package/dist/skills/frontend/SKILL.md +4 -1
- package/dist/skills/frontend/references/design/README.md +8 -0
- package/dist/skills/frontend/references/design/_INDEX.md +14 -1
- package/dist/skills/frontend/references/design/interaction-skill.md +144 -0
- package/dist/skills/programming/SKILL.md +1 -2
- package/dist/skills/ulw-plan/SKILL.md +1 -1
- package/dist/skills/ulw-research/SKILL.md +122 -11
- package/dist/startup-migration.d.ts +28 -0
- package/dist/testing/create-plugin-module.d.ts +4 -0
- package/dist/tools/delegate-task/builtin-categories.d.ts +1 -0
- package/dist/tools/delegate-task/builtin-category-definition.d.ts +1 -0
- package/dist/tools/delegate-task/constants.d.ts +1 -1
- package/dist/tui.js +6040 -5443
- package/package.json +13 -13
- package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +21 -5
- package/packages/lsp-core/src/lsp/fixtures/workspace-edit-server.mjs +11 -2
- package/packages/omo-codex/THIRD-PARTY-NOTICES.md +2 -2
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +21 -3
- 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/AGENTS.md +11 -5
- package/packages/omo-codex/plugin/components/codegraph/NOTICE +1 -1
- package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +10373 -2570
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +7502 -574
- package/packages/omo-codex/plugin/components/codegraph/package.json +2 -2
- package/packages/omo-codex/plugin/components/codegraph/src/hook-input.ts +33 -0
- package/packages/omo-codex/plugin/components/codegraph/src/hook-types.ts +36 -10
- package/packages/omo-codex/plugin/components/codegraph/src/hook.ts +164 -159
- package/packages/omo-codex/plugin/components/codegraph/src/post-tool-use-hook.ts +34 -0
- package/packages/omo-codex/plugin/components/codegraph/src/serve.ts +20 -2
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-command.ts +106 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-cooldown.ts +145 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-hook-runtime.ts +21 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-lock.ts +139 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-outcome.ts +15 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-paths.ts +32 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-project.ts +109 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker-result.ts +148 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker.ts +126 -175
- package/packages/omo-codex/plugin/components/codegraph/test/hook-exclusion.test.ts +4 -4
- package/packages/omo-codex/plugin/components/codegraph/test/hook-session-start-guard.test.ts +160 -0
- package/packages/omo-codex/plugin/components/codegraph/test/hook-store-upgrade.test.ts +12 -138
- package/packages/omo-codex/plugin/components/codegraph/test/hook.test.ts +34 -24
- package/packages/omo-codex/plugin/components/codegraph/test/mcp-bridge-fixtures.ts +3 -3
- package/packages/omo-codex/plugin/components/codegraph/test/package-runtime.test.ts +2 -2
- package/packages/omo-codex/plugin/components/codegraph/test/provisioned-node-guard.test.ts +5 -5
- package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge.test.ts +3 -3
- package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-facade.test.ts +1 -1
- package/packages/omo-codex/plugin/components/codegraph/test/serve-provision.test.ts +45 -0
- package/packages/omo-codex/plugin/components/codegraph/test/serve-unavailable.test.ts +2 -2
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-node-support.test.ts +70 -13
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-project.test.ts +58 -0
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-state.test.ts +104 -0
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-trust-boundary.test.ts +4 -2
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-cooldown.test.ts +116 -0
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-flow.test.ts +58 -57
- 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 +2 -2
- 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 +32 -15
- 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 +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/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +1 -1
- 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 +17 -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 +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-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 +42 -41
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/sync-skills.mjs +6 -0
- package/packages/omo-codex/plugin/shared/src/config-loader.ts +165 -16
- package/packages/omo-codex/plugin/shared/src/config-migration.ts +162 -0
- package/packages/omo-codex/plugin/shared/test/config-loader.test.ts +186 -9
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +4 -3
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +3 -1
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/aside_scanner.py +140 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +3 -0
- package/packages/omo-codex/plugin/skills/data-scientist/SKILL.md +243 -0
- package/packages/omo-codex/plugin/skills/data-scientist/agents/openai.yaml +2 -0
- package/packages/omo-codex/plugin/skills/data-scientist/references/common-scenarios.md +176 -0
- package/packages/omo-codex/plugin/skills/data-scientist/references/execution-templates.md +197 -0
- package/packages/omo-codex/plugin/skills/data-scientist/references/integration-patterns.md +153 -0
- package/packages/omo-codex/plugin/skills/data-scientist/references/performance-benchmarks.md +37 -0
- package/packages/omo-codex/plugin/skills/data-scientist/references/uv-setup.md +78 -0
- package/packages/omo-codex/plugin/skills/data-scientist/scripts/quick-query.py +111 -0
- package/packages/omo-codex/plugin/skills/data-scientist/scripts/setup-uv.ps1 +53 -0
- package/packages/omo-codex/plugin/skills/data-scientist/scripts/setup-uv.sh +60 -0
- package/packages/omo-codex/plugin/skills/debugging/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +7 -0
- package/packages/omo-codex/plugin/skills/frontend/SKILL.md +4 -1
- package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +8 -0
- package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +14 -1
- package/packages/omo-codex/plugin/skills/frontend/references/design/interaction-skill.md +144 -0
- package/packages/omo-codex/plugin/skills/programming/SKILL.md +1 -2
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +17 -0
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +121 -11
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +7 -0
- package/packages/omo-codex/plugin/test/sync-skills.test.mjs +12 -0
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +24 -5
- package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +4 -3
- package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +3 -1
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/aside_scanner.py +140 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +3 -0
- package/packages/shared-skills/skills/data-scientist/SKILL.md +243 -0
- package/packages/shared-skills/skills/data-scientist/references/common-scenarios.md +176 -0
- package/packages/shared-skills/skills/data-scientist/references/execution-templates.md +197 -0
- package/packages/shared-skills/skills/data-scientist/references/integration-patterns.md +153 -0
- package/packages/shared-skills/skills/data-scientist/references/performance-benchmarks.md +37 -0
- package/packages/shared-skills/skills/data-scientist/references/uv-setup.md +78 -0
- package/packages/shared-skills/skills/data-scientist/scripts/quick-query.py +111 -0
- package/packages/shared-skills/skills/data-scientist/scripts/setup-uv.ps1 +53 -0
- package/packages/shared-skills/skills/data-scientist/scripts/setup-uv.sh +60 -0
- package/packages/shared-skills/skills/debugging/SKILL.md +1 -1
- package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +7 -0
- package/packages/shared-skills/skills/frontend/SKILL.md +4 -1
- package/packages/shared-skills/skills/frontend/references/design/README.md +8 -0
- package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +14 -1
- package/packages/shared-skills/skills/frontend/references/design/interaction-skill.md +144 -0
- package/packages/shared-skills/skills/programming/SKILL.md +1 -2
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +1 -1
- package/packages/shared-skills/skills/ulw-research/SKILL.md +122 -11
- package/dist/plugin-config/layered-config-loader.d.ts +0 -2
- package/dist/plugin-config/single-config-loader.d.ts +0 -4
- package/dist/shared/migrate-legacy-config-file.d.ts +0 -1
- package/dist/shared/migration/config-migration.d.ts +0 -1
package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-flow.test.ts
CHANGED
|
@@ -6,6 +6,11 @@ import { join } from "node:path";
|
|
|
6
6
|
import { CODEGRAPH_PINNED_VERSION } from "../../../../../utils/src/codegraph/manifest.ts";
|
|
7
7
|
import { resolveCodegraphCommandInvocation, runCodegraphSessionStartWorker } from "../src/hook.ts";
|
|
8
8
|
|
|
9
|
+
function writeProjectDatabase(workspace: string): void {
|
|
10
|
+
mkdirSync(join(workspace, ".codegraph"), { recursive: true });
|
|
11
|
+
writeFileSync(join(workspace, ".codegraph", "codegraph.db"), "fixture");
|
|
12
|
+
}
|
|
13
|
+
|
|
9
14
|
describe("CodeGraph SessionStart worker flow", () => {
|
|
10
15
|
it("#given install_dir has the pinned platform binary #when worker resolves provisioned CodeGraph #then it uses that launcher", async () => {
|
|
11
16
|
// given
|
|
@@ -47,9 +52,11 @@ describe("CodeGraph SessionStart worker flow", () => {
|
|
|
47
52
|
const provisioned = options?.provisioned?.() ?? null;
|
|
48
53
|
return { argsPrefix: [], command: provisioned ?? "missing-codegraph", exists: provisioned !== null, source: provisioned === null ? "path" : "provisioned" };
|
|
49
54
|
},
|
|
55
|
+
resolveManagedBin: () => binPath,
|
|
50
56
|
runCommand: (_projectRoot, command, args, options) => {
|
|
51
57
|
calls.push({ args, command, env: options.env });
|
|
52
|
-
|
|
58
|
+
writeProjectDatabase(workspace);
|
|
59
|
+
return Promise.resolve({ exitCode: 0, stdout: "", timedOut: false });
|
|
53
60
|
},
|
|
54
61
|
},
|
|
55
62
|
});
|
|
@@ -57,7 +64,6 @@ describe("CodeGraph SessionStart worker flow", () => {
|
|
|
57
64
|
// then
|
|
58
65
|
expect(result).toEqual({ action: "initialized" });
|
|
59
66
|
expect(calls.map((call) => ({ args: [...call.args], command: call.command }))).toEqual([
|
|
60
|
-
{ args: ["status", "--json"], command: binPath },
|
|
61
67
|
{ args: ["init"], command: binPath },
|
|
62
68
|
]);
|
|
63
69
|
expect(calls[0]?.env["CODEGRAPH_INSTALL_DIR"]).toBe(installDir);
|
|
@@ -74,11 +80,11 @@ describe("CodeGraph SessionStart worker flow", () => {
|
|
|
74
80
|
const command = "C:\\Users\\test\\.omo\\codegraph\\bin\\codegraph.cmd";
|
|
75
81
|
|
|
76
82
|
// when
|
|
77
|
-
const invocation = resolveCodegraphCommandInvocation(command, ["
|
|
83
|
+
const invocation = resolveCodegraphCommandInvocation(command, ["init"], "win32");
|
|
78
84
|
|
|
79
85
|
// then
|
|
80
86
|
expect(invocation).toEqual({
|
|
81
|
-
args: ["/d", "/s", "/c", command, "
|
|
87
|
+
args: ["/d", "/s", "/c", command, "init"],
|
|
82
88
|
command: "cmd.exe",
|
|
83
89
|
});
|
|
84
90
|
});
|
|
@@ -88,11 +94,11 @@ describe("CodeGraph SessionStart worker flow", () => {
|
|
|
88
94
|
const command = "C:\\Users\\test\\.omo\\codegraph\\bin\\codegraph.cjs";
|
|
89
95
|
|
|
90
96
|
// when
|
|
91
|
-
const invocation = resolveCodegraphCommandInvocation(command, ["
|
|
97
|
+
const invocation = resolveCodegraphCommandInvocation(command, ["init"], "win32");
|
|
92
98
|
|
|
93
99
|
// then
|
|
94
100
|
expect(invocation).toEqual({
|
|
95
|
-
args: [command, "
|
|
101
|
+
args: [command, "init"],
|
|
96
102
|
command: process.execPath,
|
|
97
103
|
});
|
|
98
104
|
});
|
|
@@ -108,51 +114,47 @@ describe("CodeGraph SessionStart worker flow", () => {
|
|
|
108
114
|
expect(invocation).toEqual({ args: ["sync"], command });
|
|
109
115
|
});
|
|
110
116
|
|
|
111
|
-
it("#given
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
]
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
runCommand: (_projectRoot, command, args, options) => {
|
|
141
|
-
calls.push({ args, command, env: options.env });
|
|
142
|
-
return Promise.resolve({ exitCode: 0, stdout: calls.length === 1 ? scenario.stdout : "", timedOut: false });
|
|
143
|
-
},
|
|
117
|
+
it("#given an uninitialized exact project #when worker runs #then it invokes init directly without a status command", async () => {
|
|
118
|
+
// given
|
|
119
|
+
const workspace = mkdtempSync(join(tmpdir(), "omo-codegraph-init-direct-"));
|
|
120
|
+
const homeDir = mkdtempSync(join(tmpdir(), "omo-codegraph-init-direct-home-"));
|
|
121
|
+
const calls: { readonly args: readonly string[]; readonly env: Record<string, string> }[] = [];
|
|
122
|
+
const outcomes: unknown[] = [];
|
|
123
|
+
try {
|
|
124
|
+
// when
|
|
125
|
+
const result = await runCodegraphSessionStartWorker({
|
|
126
|
+
config: { codegraph: { enabled: true, install_dir: "/tmp/codegraph-install" }, sources: [], trustedCodegraphInstallDir: "/tmp/codegraph-install", warnings: [] },
|
|
127
|
+
nodeVersion: "22.14.0",
|
|
128
|
+
cwd: workspace,
|
|
129
|
+
env: { HOME: homeDir },
|
|
130
|
+
logOutcome: (outcome) => outcomes.push(outcome),
|
|
131
|
+
deps: {
|
|
132
|
+
ensureGitignored: () => true,
|
|
133
|
+
ensureProvisioned: () => Promise.resolve({ binPath: "/tmp/codegraph", provisioned: true }),
|
|
134
|
+
prepareWorkspace: () => ({
|
|
135
|
+
dataDir: join(homeDir, ".omo/codegraph/projects/test"),
|
|
136
|
+
dataRoot: join(homeDir, ".omo/codegraph"),
|
|
137
|
+
linked: true,
|
|
138
|
+
mode: "global-linked",
|
|
139
|
+
projectLink: join(workspace, ".codegraph"),
|
|
140
|
+
}),
|
|
141
|
+
resolveCommand: () => ({ argsPrefix: [], command: "/tmp/codegraph", exists: true, source: "path" }),
|
|
142
|
+
runCommand: (_projectRoot, _command, args, options) => {
|
|
143
|
+
calls.push({ args, env: options.env });
|
|
144
|
+
writeProjectDatabase(workspace);
|
|
145
|
+
return Promise.resolve({ exitCode: 0, stdout: "", timedOut: false });
|
|
144
146
|
},
|
|
145
|
-
}
|
|
147
|
+
},
|
|
148
|
+
});
|
|
146
149
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}
|
|
150
|
+
// then
|
|
151
|
+
expect(result).toEqual({ action: "initialized" });
|
|
152
|
+
expect(calls.map((call) => [...call.args])).toEqual([["init"]]);
|
|
153
|
+
expect(calls[0]?.env["CODEGRAPH_INSTALL_DIR"]).toBe("/tmp/codegraph-install");
|
|
154
|
+
expect(outcomes).toEqual([{ action: "initialized", exitCode: 0, projectRoot: workspace, source: "path", timedOut: false }]);
|
|
155
|
+
} finally {
|
|
156
|
+
rmSync(workspace, { recursive: true, force: true });
|
|
157
|
+
rmSync(homeDir, { recursive: true, force: true });
|
|
156
158
|
}
|
|
157
159
|
});
|
|
158
160
|
|
|
@@ -182,13 +184,14 @@ describe("CodeGraph SessionStart worker flow", () => {
|
|
|
182
184
|
resolveCommand: () => ({ argsPrefix: [], command: "/tmp/codegraph", exists: true, source: "path" }),
|
|
183
185
|
runCommand: (_projectRoot, command, args, options) => {
|
|
184
186
|
calls.push({ args, command, env: options.env });
|
|
185
|
-
|
|
187
|
+
writeProjectDatabase(workspace);
|
|
188
|
+
return Promise.resolve({ exitCode: 0, stdout: "", timedOut: false });
|
|
186
189
|
},
|
|
187
190
|
},
|
|
188
191
|
});
|
|
189
192
|
|
|
190
193
|
// then
|
|
191
|
-
expect(result).toEqual({ action: "
|
|
194
|
+
expect(result).toEqual({ action: "initialized" });
|
|
192
195
|
expect(calls.length).toBeGreaterThan(0);
|
|
193
196
|
for (const call of calls) {
|
|
194
197
|
expect(call.env["CODEGRAPH_NO_DAEMON"]).toBe("1");
|
|
@@ -211,7 +214,8 @@ describe("CodeGraph SessionStart worker flow", () => {
|
|
|
211
214
|
const fakeCodegraphScript = [
|
|
212
215
|
"const fs = require('node:fs');",
|
|
213
216
|
`fs.appendFileSync(${JSON.stringify(logPath)}, JSON.stringify({install:process.env.CODEGRAPH_INSTALL_DIR,openai:process.env.OPENAI_API_KEY}) + '\\n');`,
|
|
214
|
-
"
|
|
217
|
+
"fs.mkdirSync('.codegraph', { recursive: true });",
|
|
218
|
+
"fs.writeFileSync('.codegraph/codegraph.db', 'fixture');",
|
|
215
219
|
].join("");
|
|
216
220
|
|
|
217
221
|
// when
|
|
@@ -238,15 +242,12 @@ describe("CodeGraph SessionStart worker flow", () => {
|
|
|
238
242
|
});
|
|
239
243
|
|
|
240
244
|
// then
|
|
241
|
-
expect(result).toEqual({ action: "
|
|
245
|
+
expect(result).toEqual({ action: "initialized" });
|
|
242
246
|
const captured = readFileSync(logPath, "utf8")
|
|
243
247
|
.trim()
|
|
244
248
|
.split("\n")
|
|
245
249
|
.map((line) => JSON.parse(line));
|
|
246
|
-
expect(captured).toEqual([
|
|
247
|
-
{ install: join(homeDir, ".omo", "codegraph") },
|
|
248
|
-
{ install: join(homeDir, ".omo", "codegraph") },
|
|
249
|
-
]);
|
|
250
|
+
expect(captured).toEqual([{ install: join(homeDir, ".omo", "codegraph") }]);
|
|
250
251
|
} finally {
|
|
251
252
|
if (originalOpenAiKey === undefined) delete process.env["OPENAI_API_KEY"];
|
|
252
253
|
else process.env["OPENAI_API_KEY"] = originalOpenAiKey;
|
|
@@ -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 4.19.
|
|
11
|
+
"statusMessage": "(OmO 4.19.4) 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 4.19.
|
|
23
|
+
"statusMessage": "(OmO 4.19.4) 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 4.19.
|
|
11
|
+
"statusMessage": "(OmO 4.19.4) Verifying LazyCodex Executor Evidence"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"version": "4.19.
|
|
4
|
-
"inputDigest": "sha256:
|
|
3
|
+
"version": "4.19.4",
|
|
4
|
+
"inputDigest": "sha256:a327f51e89b7da87ac4e114b07551b3345e45ad919c6ca2ebed067aaa954b004",
|
|
5
5
|
"outputs": [
|
|
6
6
|
{
|
|
7
7
|
"path": "cli.d.ts",
|
|
@@ -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 4.19.
|
|
11
|
+
"statusMessage": "(OmO 4.19.4) 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 4.19.
|
|
24
|
+
"statusMessage": "(OmO 4.19.4) Resetting LSP Diagnostics Cache"
|
|
25
25
|
}
|
|
26
26
|
]
|
|
27
27
|
}
|
|
@@ -31,7 +31,7 @@ var __toESM = (mod, isNodeMode, target) => {
|
|
|
31
31
|
};
|
|
32
32
|
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
33
33
|
|
|
34
|
-
// ../../../node_modules/.bun/picomatch@4.0.
|
|
34
|
+
// ../../../node_modules/.bun/picomatch@4.0.5/node_modules/picomatch/lib/constants.js
|
|
35
35
|
var require_constants = __commonJS((exports, module) => {
|
|
36
36
|
var WIN_SLASH = "\\\\/";
|
|
37
37
|
var WIN_NO_SLASH = `[^${WIN_SLASH}]`;
|
|
@@ -176,7 +176,7 @@ var require_constants = __commonJS((exports, module) => {
|
|
|
176
176
|
};
|
|
177
177
|
});
|
|
178
178
|
|
|
179
|
-
// ../../../node_modules/.bun/picomatch@4.0.
|
|
179
|
+
// ../../../node_modules/.bun/picomatch@4.0.5/node_modules/picomatch/lib/utils.js
|
|
180
180
|
var require_utils = __commonJS((exports) => {
|
|
181
181
|
var {
|
|
182
182
|
REGEX_BACKSLASH,
|
|
@@ -239,7 +239,7 @@ var require_utils = __commonJS((exports) => {
|
|
|
239
239
|
};
|
|
240
240
|
});
|
|
241
241
|
|
|
242
|
-
// ../../../node_modules/.bun/picomatch@4.0.
|
|
242
|
+
// ../../../node_modules/.bun/picomatch@4.0.5/node_modules/picomatch/lib/scan.js
|
|
243
243
|
var require_scan = __commonJS((exports, module) => {
|
|
244
244
|
var utils = require_utils();
|
|
245
245
|
var {
|
|
@@ -554,7 +554,7 @@ var require_scan = __commonJS((exports, module) => {
|
|
|
554
554
|
module.exports = scan;
|
|
555
555
|
});
|
|
556
556
|
|
|
557
|
-
// ../../../node_modules/.bun/picomatch@4.0.
|
|
557
|
+
// ../../../node_modules/.bun/picomatch@4.0.5/node_modules/picomatch/lib/parse.js
|
|
558
558
|
var require_parse = __commonJS((exports, module) => {
|
|
559
559
|
var constants = require_constants();
|
|
560
560
|
var utils = require_utils();
|
|
@@ -730,7 +730,11 @@ var require_parse = __commonJS((exports, module) => {
|
|
|
730
730
|
}
|
|
731
731
|
}
|
|
732
732
|
};
|
|
733
|
-
var
|
|
733
|
+
var buildCharClassStar = (chars) => {
|
|
734
|
+
const source = chars.length === 1 ? utils.escapeRegex(chars[0]) : `[${chars.map((ch) => utils.escapeRegex(ch)).join("")}]`;
|
|
735
|
+
return `${source}*`;
|
|
736
|
+
};
|
|
737
|
+
var getStarExtglobSequenceChars = (pattern) => {
|
|
734
738
|
let index = 0;
|
|
735
739
|
const chars = [];
|
|
736
740
|
while (index < pattern.length) {
|
|
@@ -752,8 +756,7 @@ var require_parse = __commonJS((exports, module) => {
|
|
|
752
756
|
if (chars.length < 1) {
|
|
753
757
|
return;
|
|
754
758
|
}
|
|
755
|
-
|
|
756
|
-
return `${source}*`;
|
|
759
|
+
return chars;
|
|
757
760
|
};
|
|
758
761
|
var repeatedExtglobRecursion = (pattern) => {
|
|
759
762
|
let depth = 0;
|
|
@@ -777,15 +780,29 @@ var require_parse = __commonJS((exports, module) => {
|
|
|
777
780
|
return { risky: true };
|
|
778
781
|
}
|
|
779
782
|
}
|
|
783
|
+
const safeChars = [];
|
|
784
|
+
let sawStarSequence = false;
|
|
785
|
+
let combinable = true;
|
|
780
786
|
for (const branch of branches) {
|
|
781
|
-
const
|
|
782
|
-
if (
|
|
783
|
-
|
|
787
|
+
const chars = getStarExtglobSequenceChars(branch);
|
|
788
|
+
if (chars) {
|
|
789
|
+
sawStarSequence = true;
|
|
790
|
+
safeChars.push(...chars);
|
|
791
|
+
continue;
|
|
792
|
+
}
|
|
793
|
+
const literal = normalizeSimpleBranch(branch);
|
|
794
|
+
if (literal && literal.length === 1) {
|
|
795
|
+
safeChars.push(literal);
|
|
796
|
+
continue;
|
|
784
797
|
}
|
|
798
|
+
combinable = false;
|
|
785
799
|
if (repeatedExtglobRecursion(branch) > max) {
|
|
786
800
|
return { risky: true };
|
|
787
801
|
}
|
|
788
802
|
}
|
|
803
|
+
if (sawStarSequence) {
|
|
804
|
+
return combinable ? { risky: true, safeOutput: buildCharClassStar([...new Set(safeChars)]) } : { risky: true };
|
|
805
|
+
}
|
|
789
806
|
return { risky: false };
|
|
790
807
|
};
|
|
791
808
|
var parse = (input, options) => {
|
|
@@ -1556,7 +1573,7 @@ var require_parse = __commonJS((exports, module) => {
|
|
|
1556
1573
|
module.exports = parse;
|
|
1557
1574
|
});
|
|
1558
1575
|
|
|
1559
|
-
// ../../../node_modules/.bun/picomatch@4.0.
|
|
1576
|
+
// ../../../node_modules/.bun/picomatch@4.0.5/node_modules/picomatch/lib/picomatch.js
|
|
1560
1577
|
var require_picomatch = __commonJS((exports, module) => {
|
|
1561
1578
|
var scan = require_scan();
|
|
1562
1579
|
var parse = require_parse();
|
|
@@ -1641,9 +1658,9 @@ var require_picomatch = __commonJS((exports, module) => {
|
|
|
1641
1658
|
}
|
|
1642
1659
|
return { isMatch: Boolean(match), match, output };
|
|
1643
1660
|
};
|
|
1644
|
-
picomatch.matchBase = (input, glob, options) => {
|
|
1661
|
+
picomatch.matchBase = (input, glob, options, posix = options && options.windows) => {
|
|
1645
1662
|
const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);
|
|
1646
|
-
return regex.test(utils.basename(input));
|
|
1663
|
+
return regex.test(utils.basename(input, { windows: posix }));
|
|
1647
1664
|
};
|
|
1648
1665
|
picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);
|
|
1649
1666
|
picomatch.parse = (pattern, options) => {
|
|
@@ -1696,7 +1713,7 @@ var require_picomatch = __commonJS((exports, module) => {
|
|
|
1696
1713
|
module.exports = picomatch;
|
|
1697
1714
|
});
|
|
1698
1715
|
|
|
1699
|
-
// ../../../node_modules/.bun/picomatch@4.0.
|
|
1716
|
+
// ../../../node_modules/.bun/picomatch@4.0.5/node_modules/picomatch/index.js
|
|
1700
1717
|
var require_picomatch2 = __commonJS((exports, module) => {
|
|
1701
1718
|
var pico = require_picomatch();
|
|
1702
1719
|
var utils = require_utils();
|
|
@@ -3866,7 +3883,7 @@ var MODEL_CONTEXT_BUDGETS = [
|
|
|
3866
3883
|
effectivePercent: DEFAULT_EFFECTIVE_CONTEXT_WINDOW_PERCENT
|
|
3867
3884
|
},
|
|
3868
3885
|
{ slug: "gpt-5.5", contextWindowTokens: 272000, effectivePercent: DEFAULT_EFFECTIVE_CONTEXT_WINDOW_PERCENT },
|
|
3869
|
-
{ slug: "gpt-5.
|
|
3886
|
+
{ slug: "gpt-5.6-luna-fast", contextWindowTokens: 272000, effectivePercent: DEFAULT_EFFECTIVE_CONTEXT_WINDOW_PERCENT },
|
|
3870
3887
|
{
|
|
3871
3888
|
slug: "codex-auto-review",
|
|
3872
3889
|
contextWindowTokens: 272000,
|
|
@@ -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 4.19.
|
|
10
|
+
"statusMessage": "(OmO 4.19.4) 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 4.19.
|
|
22
|
+
"statusMessage": "(OmO 4.19.4) 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 4.19.
|
|
35
|
+
"statusMessage": "(OmO 4.19.4) 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 4.19.
|
|
48
|
+
"statusMessage": "(OmO 4.19.4) Resetting Project Rule Cache"
|
|
49
49
|
}
|
|
50
50
|
]
|
|
51
51
|
}
|
|
@@ -33,7 +33,7 @@ const MODEL_CONTEXT_BUDGETS: readonly ModelContextBudget[] = [
|
|
|
33
33
|
effectivePercent: DEFAULT_EFFECTIVE_CONTEXT_WINDOW_PERCENT,
|
|
34
34
|
},
|
|
35
35
|
{ slug: "gpt-5.5", contextWindowTokens: 272_000, effectivePercent: DEFAULT_EFFECTIVE_CONTEXT_WINDOW_PERCENT },
|
|
36
|
-
{ slug: "gpt-5.
|
|
36
|
+
{ slug: "gpt-5.6-luna-fast", contextWindowTokens: 272_000, effectivePercent: DEFAULT_EFFECTIVE_CONTEXT_WINDOW_PERCENT },
|
|
37
37
|
{
|
|
38
38
|
slug: "codex-auto-review",
|
|
39
39
|
contextWindowTokens: 272_000,
|
|
@@ -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.4) Checking Start-Work Continuation"
|
|
11
11
|
}
|
|
12
12
|
]
|
|
13
13
|
}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"type": "command",
|
|
20
20
|
"command": "node \"${PLUGIN_ROOT}/components/start-work-continuation/dist/cli.js\" hook subagent-stop",
|
|
21
21
|
"timeout": 10,
|
|
22
|
-
"statusMessage": "(OmO 4.19.
|
|
22
|
+
"statusMessage": "(OmO 4.19.4) Checking Start-Work Continuation"
|
|
23
23
|
}
|
|
24
24
|
]
|
|
25
25
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-yeongyu/codex-ultrawork",
|
|
3
|
-
"version": "4.19.
|
|
3
|
+
"version": "4.19.4",
|
|
4
4
|
"description": "Codex plugin that injects the ultrawork orchestration directive and ships LazyCodex planning, review, QA, and gate agent roles.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "npm@11.12.1",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ulw-plan
|
|
3
|
-
description: "
|
|
3
|
+
description: "ACTIVATES ONLY on an explicit user request for the ulw-plan workflow: the user themselves saying ulw-plan, ulw plan, /skill:ulw-plan, or asking in their own words for a work plan before coding. NEVER self-activates: a bare ulw/ultrawork run, an agent-side routing decision, or reading this file is not a request, and the plan-gated reviewers (metis/momus) stay locked without a user request plus a written .omo/plans plan file. Explore-first planning consultant (Prometheus) that grounds in the codebase, asks only the forks exploration cannot resolve - or researches them to best practice when the intent is fuzzy - waits for explicit approval, then writes ONE decision-complete work plan a worker executes with zero further interview. Triggers: ulw-plan, ulw plan, plan this, make a plan, plan before coding, interview me, break this down, start planning, plan mode."
|
|
4
4
|
metadata:
|
|
5
5
|
short-description: Explore-first planning consultant that waits for your okay before planning
|
|
6
6
|
---
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit --with-ultrawork",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.19.
|
|
10
|
+
"statusMessage": "(OmO 4.19.4) Checking Ulw-Loop Steering"
|
|
11
11
|
}
|
|
12
12
|
]
|
|
13
13
|
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"type": "command",
|
|
21
21
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
|
|
22
22
|
"timeout": 5,
|
|
23
|
-
"statusMessage": "(OmO 4.19.
|
|
23
|
+
"statusMessage": "(OmO 4.19.4) Enforcing Unlimited Ulw-Loop Budget"
|
|
24
24
|
}
|
|
25
25
|
]
|
|
26
26
|
},
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"type": "command",
|
|
32
32
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use-spawn",
|
|
33
33
|
"timeout": 5,
|
|
34
|
-
"statusMessage": "(OmO 4.19.
|
|
34
|
+
"statusMessage": "(OmO 4.19.4) Guarding Ulw-Loop Spawns"
|
|
35
35
|
}
|
|
36
36
|
]
|
|
37
37
|
}
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"type": "command",
|
|
44
44
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook stop",
|
|
45
45
|
"timeout": 10,
|
|
46
|
-
"statusMessage": "(OmO 4.19.
|
|
46
|
+
"statusMessage": "(OmO 4.19.4) Checking Ulw-Loop Resume"
|
|
47
47
|
}
|
|
48
48
|
]
|
|
49
49
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-yeongyu/codex-ulw-loop",
|
|
3
|
-
"version": "4.19.
|
|
3
|
+
"version": "4.19.4",
|
|
4
4
|
"description": "Codex plugin: durable repo-native multi-goal orchestration with embedded success criteria and observable evidence audit.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "npm@11.12.1",
|