lazycodex-ai 5.1.5 → 5.1.7
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 +41 -17
- package/dist/cli/run/runnable-agent-resolver.d.ts +3 -0
- package/dist/cli-node/index.js +41 -17
- package/package.json +1 -1
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +7 -0
- 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/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/README.md +0 -1
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.5.md +1 -1
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.6.md +1 -1
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-6.md +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/dist/cli.js +25 -18
- 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/src/directive-content.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/directive.md +25 -18
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-role-matrix.test.ts +16 -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-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/post-tool-use-recording-spawn-admission.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-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-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 +12 -12
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +25 -18
- package/packages/omo-codex/plugin/skills/ulw-execute/SKILL.md +1 -1
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +9 -2
- package/packages/prompts-core/prompts/ultrawork/codex.md +25 -18
- package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/shared-skills/skills/ulw-execute/SKILL.md +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -64,7 +64,7 @@ var package_default;
|
|
|
64
64
|
var init_package = __esm(() => {
|
|
65
65
|
package_default = {
|
|
66
66
|
name: "oh-my-opencode",
|
|
67
|
-
version: "5.1.
|
|
67
|
+
version: "5.1.7",
|
|
68
68
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
69
69
|
main: "./dist/index.js",
|
|
70
70
|
types: "dist/index.d.ts",
|
|
@@ -241,7 +241,7 @@ var init_package = __esm(() => {
|
|
|
241
241
|
},
|
|
242
242
|
devDependencies: {
|
|
243
243
|
"@clack/prompts": "^1.8.1",
|
|
244
|
-
"@code-yeongyu/senpi": "2026.9.
|
|
244
|
+
"@code-yeongyu/senpi": "2026.9.30",
|
|
245
245
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
246
246
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
247
247
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
@@ -299,18 +299,18 @@ var init_package = __esm(() => {
|
|
|
299
299
|
typescript: "^7.0.2"
|
|
300
300
|
},
|
|
301
301
|
optionalDependencies: {
|
|
302
|
-
"oh-my-opencode-darwin-arm64": "5.1.
|
|
303
|
-
"oh-my-opencode-darwin-x64": "5.1.
|
|
304
|
-
"oh-my-opencode-darwin-x64-baseline": "5.1.
|
|
305
|
-
"oh-my-opencode-linux-arm64": "5.1.
|
|
306
|
-
"oh-my-opencode-linux-arm64-musl": "5.1.
|
|
307
|
-
"oh-my-opencode-linux-x64": "5.1.
|
|
308
|
-
"oh-my-opencode-linux-x64-baseline": "5.1.
|
|
309
|
-
"oh-my-opencode-linux-x64-musl": "5.1.
|
|
310
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.1.
|
|
311
|
-
"oh-my-opencode-windows-arm64": "5.1.
|
|
312
|
-
"oh-my-opencode-windows-x64": "5.1.
|
|
313
|
-
"oh-my-opencode-windows-x64-baseline": "5.1.
|
|
302
|
+
"oh-my-opencode-darwin-arm64": "5.1.7",
|
|
303
|
+
"oh-my-opencode-darwin-x64": "5.1.7",
|
|
304
|
+
"oh-my-opencode-darwin-x64-baseline": "5.1.7",
|
|
305
|
+
"oh-my-opencode-linux-arm64": "5.1.7",
|
|
306
|
+
"oh-my-opencode-linux-arm64-musl": "5.1.7",
|
|
307
|
+
"oh-my-opencode-linux-x64": "5.1.7",
|
|
308
|
+
"oh-my-opencode-linux-x64-baseline": "5.1.7",
|
|
309
|
+
"oh-my-opencode-linux-x64-musl": "5.1.7",
|
|
310
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.1.7",
|
|
311
|
+
"oh-my-opencode-windows-arm64": "5.1.7",
|
|
312
|
+
"oh-my-opencode-windows-x64": "5.1.7",
|
|
313
|
+
"oh-my-opencode-windows-x64-baseline": "5.1.7"
|
|
314
314
|
},
|
|
315
315
|
overrides: {
|
|
316
316
|
hono: "^4.13.8",
|
|
@@ -89377,7 +89377,7 @@ var package_default2;
|
|
|
89377
89377
|
var init_package2 = __esm(() => {
|
|
89378
89378
|
package_default2 = {
|
|
89379
89379
|
name: "@oh-my-opencode/omo-codex",
|
|
89380
|
-
version: "5.1.
|
|
89380
|
+
version: "5.1.7",
|
|
89381
89381
|
type: "module",
|
|
89382
89382
|
private: true,
|
|
89383
89383
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -95097,6 +95097,12 @@ ${featureName} = true
|
|
|
95097
95097
|
}
|
|
95098
95098
|
return replaceOrInsertSetting(config, section, featureName, "true");
|
|
95099
95099
|
}
|
|
95100
|
+
function removeFeature(config, featureName) {
|
|
95101
|
+
const section = findTomlSection(config, "features");
|
|
95102
|
+
if (section !== null)
|
|
95103
|
+
return removeSetting(config, section, featureName);
|
|
95104
|
+
return removeRootSetting(config, `features.${featureName}`);
|
|
95105
|
+
}
|
|
95100
95106
|
|
|
95101
95107
|
// packages/omo-codex/src/install/codex-config-marketplaces.ts
|
|
95102
95108
|
var SISYPHUS_LEGACY_MARKETPLACES = ["lazycodex", "code-yeongyu-codex-plugins"];
|
|
@@ -95689,6 +95695,7 @@ async function updateCodexConfig(input) {
|
|
|
95689
95695
|
config = ensureFeatureEnabled(config, "plugins");
|
|
95690
95696
|
config = ensureFeatureEnabled(config, "plugin_hooks");
|
|
95691
95697
|
config = ensureFeatureEnabled(config, "multi_agent");
|
|
95698
|
+
config = removeFeature(config, "child_agents_md");
|
|
95692
95699
|
config = removeUnsupportedCodexMultiAgentModeConfig(config);
|
|
95693
95700
|
config = ensureCodexReasoningConfig(config, applyReasoningOverride(await readCodexModelCatalog(input.repoRoot), input.reasoning));
|
|
95694
95701
|
config = ensureCodexMultiAgentV2Config(config, {
|
|
@@ -105346,12 +105353,25 @@ async function resolveRunnableRunAgent(client, resolvedAgent, config = {}) {
|
|
|
105346
105353
|
})?.name;
|
|
105347
105354
|
if (configuredAgent)
|
|
105348
105355
|
return configuredAgent;
|
|
105349
|
-
|
|
105356
|
+
const matched = agents.find((agent) => {
|
|
105350
105357
|
if (!agent.name)
|
|
105351
105358
|
return false;
|
|
105352
105359
|
return getAgentConfigKey(agent.name) === resolvedConfigKey;
|
|
105353
|
-
})?.name
|
|
105360
|
+
})?.name;
|
|
105361
|
+
if (matched)
|
|
105362
|
+
return matched;
|
|
105363
|
+
const registered = agents.map((agent) => agent.name).filter((name) => Boolean(name));
|
|
105364
|
+
const parsedCategory = BuiltinCategoryNameSchema.safeParse(resolvedConfigKey);
|
|
105365
|
+
if (parsedCategory.success) {
|
|
105366
|
+
throw new UnknownRunAgentError(`"${resolvedAgent}" is a task() category, not a CLI agent. Categories: ${BuiltinCategoryNameSchema.options.join(", ")}. Runnable agents: ${registered.join(", ") || "(none)"}.`);
|
|
105367
|
+
}
|
|
105368
|
+
if (registered.length > 0) {
|
|
105369
|
+
throw new UnknownRunAgentError(`Unknown agent "${resolvedAgent}". Runnable agents: ${registered.join(", ")}.`);
|
|
105370
|
+
}
|
|
105371
|
+
return resolvedAgent;
|
|
105354
105372
|
} catch (error) {
|
|
105373
|
+
if (error instanceof UnknownRunAgentError)
|
|
105374
|
+
throw error;
|
|
105355
105375
|
if (!(error instanceof Error)) {
|
|
105356
105376
|
throw error;
|
|
105357
105377
|
}
|
|
@@ -105359,6 +105379,10 @@ async function resolveRunnableRunAgent(client, resolvedAgent, config = {}) {
|
|
|
105359
105379
|
}
|
|
105360
105380
|
}
|
|
105361
105381
|
|
|
105382
|
+
class UnknownRunAgentError extends Error {
|
|
105383
|
+
name = "UnknownRunAgentError";
|
|
105384
|
+
}
|
|
105385
|
+
|
|
105362
105386
|
// packages/omo-opencode/src/cli/run/runner.ts
|
|
105363
105387
|
var EVENT_PROCESSOR_SHUTDOWN_TIMEOUT_MS = 2000;
|
|
105364
105388
|
async function waitForEventProcessorShutdown(eventProcessor, timeoutMs = EVENT_PROCESSOR_SHUTDOWN_TIMEOUT_MS) {
|
|
@@ -9,3 +9,6 @@ export interface RunAgentDisplayNameConfig {
|
|
|
9
9
|
} | undefined>>;
|
|
10
10
|
}
|
|
11
11
|
export declare function resolveRunnableRunAgent(client: RunAgentListClient, resolvedAgent: string, config?: RunAgentDisplayNameConfig): Promise<string>;
|
|
12
|
+
export declare class UnknownRunAgentError extends Error {
|
|
13
|
+
readonly name = "UnknownRunAgentError";
|
|
14
|
+
}
|
package/dist/cli-node/index.js
CHANGED
|
@@ -65,7 +65,7 @@ var package_default;
|
|
|
65
65
|
var init_package = __esm(() => {
|
|
66
66
|
package_default = {
|
|
67
67
|
name: "oh-my-opencode",
|
|
68
|
-
version: "5.1.
|
|
68
|
+
version: "5.1.7",
|
|
69
69
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
70
70
|
main: "./dist/index.js",
|
|
71
71
|
types: "dist/index.d.ts",
|
|
@@ -242,7 +242,7 @@ var init_package = __esm(() => {
|
|
|
242
242
|
},
|
|
243
243
|
devDependencies: {
|
|
244
244
|
"@clack/prompts": "^1.8.1",
|
|
245
|
-
"@code-yeongyu/senpi": "2026.9.
|
|
245
|
+
"@code-yeongyu/senpi": "2026.9.30",
|
|
246
246
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
247
247
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
248
248
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
@@ -300,18 +300,18 @@ var init_package = __esm(() => {
|
|
|
300
300
|
typescript: "^7.0.2"
|
|
301
301
|
},
|
|
302
302
|
optionalDependencies: {
|
|
303
|
-
"oh-my-opencode-darwin-arm64": "5.1.
|
|
304
|
-
"oh-my-opencode-darwin-x64": "5.1.
|
|
305
|
-
"oh-my-opencode-darwin-x64-baseline": "5.1.
|
|
306
|
-
"oh-my-opencode-linux-arm64": "5.1.
|
|
307
|
-
"oh-my-opencode-linux-arm64-musl": "5.1.
|
|
308
|
-
"oh-my-opencode-linux-x64": "5.1.
|
|
309
|
-
"oh-my-opencode-linux-x64-baseline": "5.1.
|
|
310
|
-
"oh-my-opencode-linux-x64-musl": "5.1.
|
|
311
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.1.
|
|
312
|
-
"oh-my-opencode-windows-arm64": "5.1.
|
|
313
|
-
"oh-my-opencode-windows-x64": "5.1.
|
|
314
|
-
"oh-my-opencode-windows-x64-baseline": "5.1.
|
|
303
|
+
"oh-my-opencode-darwin-arm64": "5.1.7",
|
|
304
|
+
"oh-my-opencode-darwin-x64": "5.1.7",
|
|
305
|
+
"oh-my-opencode-darwin-x64-baseline": "5.1.7",
|
|
306
|
+
"oh-my-opencode-linux-arm64": "5.1.7",
|
|
307
|
+
"oh-my-opencode-linux-arm64-musl": "5.1.7",
|
|
308
|
+
"oh-my-opencode-linux-x64": "5.1.7",
|
|
309
|
+
"oh-my-opencode-linux-x64-baseline": "5.1.7",
|
|
310
|
+
"oh-my-opencode-linux-x64-musl": "5.1.7",
|
|
311
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.1.7",
|
|
312
|
+
"oh-my-opencode-windows-arm64": "5.1.7",
|
|
313
|
+
"oh-my-opencode-windows-x64": "5.1.7",
|
|
314
|
+
"oh-my-opencode-windows-x64-baseline": "5.1.7"
|
|
315
315
|
},
|
|
316
316
|
overrides: {
|
|
317
317
|
hono: "^4.13.8",
|
|
@@ -89456,7 +89456,7 @@ var package_default2;
|
|
|
89456
89456
|
var init_package2 = __esm(() => {
|
|
89457
89457
|
package_default2 = {
|
|
89458
89458
|
name: "@oh-my-opencode/omo-codex",
|
|
89459
|
-
version: "5.1.
|
|
89459
|
+
version: "5.1.7",
|
|
89460
89460
|
type: "module",
|
|
89461
89461
|
private: true,
|
|
89462
89462
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -95176,6 +95176,12 @@ ${featureName} = true
|
|
|
95176
95176
|
}
|
|
95177
95177
|
return replaceOrInsertSetting(config, section, featureName, "true");
|
|
95178
95178
|
}
|
|
95179
|
+
function removeFeature(config, featureName) {
|
|
95180
|
+
const section = findTomlSection(config, "features");
|
|
95181
|
+
if (section !== null)
|
|
95182
|
+
return removeSetting(config, section, featureName);
|
|
95183
|
+
return removeRootSetting(config, `features.${featureName}`);
|
|
95184
|
+
}
|
|
95179
95185
|
|
|
95180
95186
|
// packages/omo-codex/src/install/codex-config-marketplaces.ts
|
|
95181
95187
|
var SISYPHUS_LEGACY_MARKETPLACES = ["lazycodex", "code-yeongyu-codex-plugins"];
|
|
@@ -95768,6 +95774,7 @@ async function updateCodexConfig(input) {
|
|
|
95768
95774
|
config = ensureFeatureEnabled(config, "plugins");
|
|
95769
95775
|
config = ensureFeatureEnabled(config, "plugin_hooks");
|
|
95770
95776
|
config = ensureFeatureEnabled(config, "multi_agent");
|
|
95777
|
+
config = removeFeature(config, "child_agents_md");
|
|
95771
95778
|
config = removeUnsupportedCodexMultiAgentModeConfig(config);
|
|
95772
95779
|
config = ensureCodexReasoningConfig(config, applyReasoningOverride(await readCodexModelCatalog(input.repoRoot), input.reasoning));
|
|
95773
95780
|
config = ensureCodexMultiAgentV2Config(config, {
|
|
@@ -105425,12 +105432,25 @@ async function resolveRunnableRunAgent(client, resolvedAgent, config = {}) {
|
|
|
105425
105432
|
})?.name;
|
|
105426
105433
|
if (configuredAgent)
|
|
105427
105434
|
return configuredAgent;
|
|
105428
|
-
|
|
105435
|
+
const matched = agents.find((agent) => {
|
|
105429
105436
|
if (!agent.name)
|
|
105430
105437
|
return false;
|
|
105431
105438
|
return getAgentConfigKey(agent.name) === resolvedConfigKey;
|
|
105432
|
-
})?.name
|
|
105439
|
+
})?.name;
|
|
105440
|
+
if (matched)
|
|
105441
|
+
return matched;
|
|
105442
|
+
const registered = agents.map((agent) => agent.name).filter((name) => Boolean(name));
|
|
105443
|
+
const parsedCategory = BuiltinCategoryNameSchema.safeParse(resolvedConfigKey);
|
|
105444
|
+
if (parsedCategory.success) {
|
|
105445
|
+
throw new UnknownRunAgentError(`"${resolvedAgent}" is a task() category, not a CLI agent. Categories: ${BuiltinCategoryNameSchema.options.join(", ")}. Runnable agents: ${registered.join(", ") || "(none)"}.`);
|
|
105446
|
+
}
|
|
105447
|
+
if (registered.length > 0) {
|
|
105448
|
+
throw new UnknownRunAgentError(`Unknown agent "${resolvedAgent}". Runnable agents: ${registered.join(", ")}.`);
|
|
105449
|
+
}
|
|
105450
|
+
return resolvedAgent;
|
|
105433
105451
|
} catch (error) {
|
|
105452
|
+
if (error instanceof UnknownRunAgentError)
|
|
105453
|
+
throw error;
|
|
105434
105454
|
if (!(error instanceof Error)) {
|
|
105435
105455
|
throw error;
|
|
105436
105456
|
}
|
|
@@ -105438,6 +105458,10 @@ async function resolveRunnableRunAgent(client, resolvedAgent, config = {}) {
|
|
|
105438
105458
|
}
|
|
105439
105459
|
}
|
|
105440
105460
|
|
|
105461
|
+
class UnknownRunAgentError extends Error {
|
|
105462
|
+
name = "UnknownRunAgentError";
|
|
105463
|
+
}
|
|
105464
|
+
|
|
105441
105465
|
// packages/omo-opencode/src/cli/run/runner.ts
|
|
105442
105466
|
var EVENT_PROCESSOR_SHUTDOWN_TIMEOUT_MS = 2000;
|
|
105443
105467
|
async function waitForEventProcessorShutdown(eventProcessor, timeoutMs = EVENT_PROCESSOR_SHUTDOWN_TIMEOUT_MS) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lazycodex-ai",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.7",
|
|
4
4
|
"description": "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -11223,6 +11223,12 @@ ${featureName} = true
|
|
|
11223
11223
|
}
|
|
11224
11224
|
return replaceOrInsertSetting(config, section, featureName, "true");
|
|
11225
11225
|
}
|
|
11226
|
+
function removeFeature(config, featureName) {
|
|
11227
|
+
const section = findTomlSection(config, "features");
|
|
11228
|
+
if (section !== null)
|
|
11229
|
+
return removeSetting(config, section, featureName);
|
|
11230
|
+
return removeRootSetting(config, `features.${featureName}`);
|
|
11231
|
+
}
|
|
11226
11232
|
|
|
11227
11233
|
// ../src/install/codex-config-marketplaces.ts
|
|
11228
11234
|
var SISYPHUS_LEGACY_MARKETPLACES = ["lazycodex", "code-yeongyu-codex-plugins"];
|
|
@@ -11815,6 +11821,7 @@ async function updateCodexConfig(input) {
|
|
|
11815
11821
|
config = ensureFeatureEnabled(config, "plugins");
|
|
11816
11822
|
config = ensureFeatureEnabled(config, "plugin_hooks");
|
|
11817
11823
|
config = ensureFeatureEnabled(config, "multi_agent");
|
|
11824
|
+
config = removeFeature(config, "child_agents_md");
|
|
11818
11825
|
config = removeUnsupportedCodexMultiAgentModeConfig(config);
|
|
11819
11826
|
config = ensureCodexReasoningConfig(config, applyReasoningOverride(await readCodexModelCatalog(input.repoRoot), input.reasoning));
|
|
11820
11827
|
config = ensureCodexMultiAgentV2Config(config, {
|
|
@@ -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 5.1.
|
|
11
|
+
"statusMessage": "(OmO 5.1.7) Checking Bootstrap Provisioning"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -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.1.
|
|
11
|
+
"statusMessage": "(OmO 5.1.7) 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.1.
|
|
23
|
+
"statusMessage": "(OmO 5.1.7) 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.1.
|
|
11
|
+
"statusMessage": "(OmO 5.1.7) Verifying LazyCodex Executor Evidence"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"version": "5.1.
|
|
4
|
-
"inputDigest": "sha256:
|
|
3
|
+
"version": "5.1.7",
|
|
4
|
+
"inputDigest": "sha256:7628ae176ffa5fe1657de3e04fb8944d413281370d4c46b5df7085db4f1ec720",
|
|
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 5.1.
|
|
11
|
+
"statusMessage": "(OmO 5.1.7) 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.1.
|
|
24
|
+
"statusMessage": "(OmO 5.1.7) Resetting LSP Diagnostics Cache"
|
|
25
25
|
}
|
|
26
26
|
]
|
|
27
27
|
}
|
|
@@ -41,7 +41,7 @@ omo-codex auto-runs LSP diagnostics after every edit and injects the result: any
|
|
|
41
41
|
|
|
42
42
|
# Subagents
|
|
43
43
|
|
|
44
|
-
Read-only Codex subagent roles live in `CODEX_HOME/agents/`. Spawn: `multi_agent_v1.spawn_agent({"message":"TASK: act as a <role>. ...","fork_context":false})`. If your tool list instead has a flat `spawn_agent` with a required `task_name` (`multi_agent_v2`): `spawn_agent({"task_name":"<lowercase_digits_underscores>","message":"TASK: act as a <role>. ...","fork_turns":"none"})` — finished agents end on their own; `wait_agent` takes only `timeout_ms`.
|
|
44
|
+
Read-only Codex subagent roles live in `CODEX_HOME/agents/`. Spawn: `multi_agent_v1.spawn_agent({"message":"TASK: act as a <role>. ...","agent_type":"<role>","fork_context":false})`. If your tool list instead has a flat `spawn_agent` with a required `task_name` (`multi_agent_v2`): `spawn_agent({"task_name":"<lowercase_digits_underscores>","message":"TASK: act as a <role>. ...","fork_turns":"none"})` — finished agents end on their own; `wait_agent` takes only `timeout_ms`.
|
|
45
45
|
|
|
46
46
|
- `explorer` - codebase search
|
|
47
47
|
- `librarian` - external docs, OSS code, API contracts
|
|
@@ -31,7 +31,7 @@ Waiting is not free: a status poll replays the whole accumulated context through
|
|
|
31
31
|
|
|
32
32
|
# Subagents
|
|
33
33
|
|
|
34
|
-
Read-only Codex subagent roles live in `CODEX_HOME/agents/`. Spawn: `multi_agent_v1.spawn_agent({"message":"TASK: act as a <role>. GOAL: ... STOP WHEN: ... EVIDENCE: ...","fork_context":false})`. If your tool list instead has a flat `spawn_agent` with a required `task_name` (`multi_agent_v2`): `spawn_agent({"task_name":"<lowercase_digits_underscores>","message":"TASK: act as a <role>. GOAL: ... STOP WHEN: ... EVIDENCE: ...","fork_turns":"none"})` - finished agents end on their own; `wait_agent` takes only `timeout_ms`.
|
|
34
|
+
Read-only Codex subagent roles live in `CODEX_HOME/agents/`. Spawn: `multi_agent_v1.spawn_agent({"message":"TASK: act as a <role>. GOAL: ... STOP WHEN: ... EVIDENCE: ...","agent_type":"<role>","fork_context":false})`. If your tool list instead has a flat `spawn_agent` with a required `task_name` (`multi_agent_v2`): `spawn_agent({"task_name":"<lowercase_digits_underscores>","message":"TASK: act as a <role>. GOAL: ... STOP WHEN: ... EVIDENCE: ...","fork_turns":"none"})` - finished agents end on their own; `wait_agent` takes only `timeout_ms`.
|
|
35
35
|
|
|
36
36
|
- `explorer` - codebase search
|
|
37
37
|
- `librarian` - external docs, OSS code, API contracts
|
|
@@ -78,7 +78,7 @@ When an approach fails, change something material - an algorithm, library, or pa
|
|
|
78
78
|
|
|
79
79
|
## Codex tool and skills notes
|
|
80
80
|
|
|
81
|
-
The actual Codex tool list and schemas determine the route. Read-only subagent roles live in `CODEX_HOME/agents/`. For `multi_agent_v1`, use `multi_agent_v1.spawn_agent({"message":"TASK: act as a <role>. GOAL: ... STOP WHEN: ... EVIDENCE: ...","fork_context":false})`. If the tool list instead exposes a flat `spawn_agent` requiring `task_name` (`multi_agent_v2`), use `spawn_agent({"task_name":"<lowercase_digits_underscores>","message":"TASK: act as a <role>. GOAL: ... STOP WHEN: ... EVIDENCE: ...","fork_turns":"none"})`. Finished agents end on their own; `wait_agent` takes only `timeout_ms`. Keep the two payloads distinct and do not send v1 fields to v2 or vice versa.
|
|
81
|
+
The actual Codex tool list and schemas determine the route. Read-only subagent roles live in `CODEX_HOME/agents/`. For `multi_agent_v1`, use `multi_agent_v1.spawn_agent({"message":"TASK: act as a <role>. GOAL: ... STOP WHEN: ... EVIDENCE: ...","agent_type":"<role>","fork_context":false})`. If the tool list instead exposes a flat `spawn_agent` requiring `task_name` (`multi_agent_v2`), use `spawn_agent({"task_name":"<lowercase_digits_underscores>","message":"TASK: act as a <role>. GOAL: ... STOP WHEN: ... EVIDENCE: ...","fork_turns":"none"})`. Finished agents end on their own; `wait_agent` takes only `timeout_ms`. Keep the two payloads distinct and do not send v1 fields to v2 or vice versa.
|
|
82
82
|
|
|
83
83
|
- `explorer`: codebase search.
|
|
84
84
|
- `librarian`: external docs, OSS code, and API contracts.
|
|
@@ -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.1.
|
|
10
|
+
"statusMessage": "(OmO 5.1.7) 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.1.
|
|
22
|
+
"statusMessage": "(OmO 5.1.7) 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.1.
|
|
35
|
+
"statusMessage": "(OmO 5.1.7) 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.1.
|
|
48
|
+
"statusMessage": "(OmO 5.1.7) Resetting Project Rule Cache"
|
|
49
49
|
}
|
|
50
50
|
]
|
|
51
51
|
}
|
|
@@ -299,17 +299,17 @@ Until every success criterion PASSES with its evidence captured:
|
|
|
299
299
|
vars. Append a one-line cleanup receipt to the notepad next to the
|
|
300
300
|
artifact, e.g. \`cleanup: killed 12345; tmux kill-session ulw-qa-foo;
|
|
301
301
|
rm -rf /tmp/ulw.aB12cD\`. No receipt → criterion stays in_progress.
|
|
302
|
-
6. Verify: LSP diagnostics clean on changed files
|
|
303
|
-
|
|
304
|
-
turn). Re-run a validation command (suite, typecheck, build) only
|
|
305
|
-
when its inputs changed since its last green run; ONE full-suite
|
|
306
|
-
pass belongs immediately before the final message, not after
|
|
307
|
-
every increment.
|
|
302
|
+
6. Verify: LSP diagnostics clean on changed files; no test skipped or
|
|
303
|
+
xfail-ed this turn.
|
|
308
304
|
7. Mark completed. Append non-obvious findings / learnings.
|
|
309
|
-
8.
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
305
|
+
8. Evidence stays valid per target until an input changes; record with
|
|
306
|
+
each artifact the commit and what it exercised. After each increment
|
|
307
|
+
rerun what moved — the tests of every touched file and of the files
|
|
308
|
+
that import it, the scenarios that exercise them, anything whose
|
|
309
|
+
dependencies or environment changed — and cite the capture for the
|
|
310
|
+
rest. The full set (scenarios, suite, typecheck, build) runs once
|
|
311
|
+
more right before the final message. Record PASS/FAIL beside each
|
|
312
|
+
artifact. Loop until all PASS.
|
|
313
313
|
|
|
314
314
|
Within a step, follow Finding things; READ before CHANGE, never in
|
|
315
315
|
parallel with it.
|
|
@@ -412,13 +412,12 @@ When triggered, follow this procedure (NON-NEGOTIABLE):
|
|
|
412
412
|
it names a success criterion the evidence fails; record concerns
|
|
413
413
|
that cite no criterion as notes with a one-line reason — fixed or
|
|
414
414
|
declined at your judgment.
|
|
415
|
-
3. Fix every criterion-cited blocker
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
notes counts as approval.
|
|
415
|
+
3. Fix every criterion-cited blocker; rerun per Execution loop step 8
|
|
416
|
+
and update the notepad.
|
|
417
|
+
4. Spawn a NEW reviewer for each re-review, at most twice, passing only
|
|
418
|
+
the delta diff, the blockers the last one cited, and the
|
|
419
|
+
already-approved criteria marked out-of-scope. An approval whose only
|
|
420
|
+
remaining items are notes counts as approval.
|
|
422
421
|
5. On approval, declare done. If criterion-cited blockers remain after
|
|
423
422
|
two re-reviews, stop and surface them to the user (mirroring the
|
|
424
423
|
2-attempt stop rule below) — do not loop further.
|
|
@@ -443,7 +442,15 @@ commits this session — then stage + draft the message instead.
|
|
|
443
442
|
for the regression it names is NOT evidence: mock-call assertions,
|
|
444
443
|
pinned constants, a fixture equal to the default it must override,
|
|
445
444
|
an expected value re-derived from the output under test.
|
|
446
|
-
-
|
|
445
|
+
- Make the smallest correct change per unit, and fix in THIS run every
|
|
446
|
+
defect inside the change's blast radius — the request not delivered,
|
|
447
|
+
a regression this change introduces, an invalid proof, a failing test
|
|
448
|
+
or stale doc of code you touched — as registered work (todo plus
|
|
449
|
+
success criterion) to the ideal state. A defect outside it gets a
|
|
450
|
+
tracked issue with reproduction and evidence and a line in the final
|
|
451
|
+
message; a deferral never turns a criterion into PASS. Keep delegated
|
|
452
|
+
unit scope hard: the worker reports, the orchestrator registers or
|
|
453
|
+
files.
|
|
447
454
|
- Never suppress lints / errors / test failures. Never delete, skip,
|
|
448
455
|
\`.only\`, \`.skip\`, \`xfail\`, or comment out tests to green the suite.
|
|
449
456
|
- Never claim done from inference — only from captured evidence.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-yeongyu/codex-ultrawork",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.7",
|
|
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",
|