lazycodex-ai 5.1.12 → 5.1.14
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 +45 -18
- package/dist/cli-node/index.js +45 -18
- package/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/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 +4 -4
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +33 -19
- package/packages/omo-codex/plugin/components/lsp/dist/codex-hook.js +27 -17
- 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/lsp/src/codex-hook.ts +36 -18
- package/packages/omo-codex/plugin/components/lsp/test/codex-hook-not-installed.test.ts +203 -0
- package/packages/omo-codex/plugin/components/rules/CHANGELOG.md +1 -0
- 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 +2 -2
- 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/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +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/dist/cli.js +89 -28
- package/packages/omo-codex/plugin/components/ulw-loop/dist/registered-agent-roles.d.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/registered-agent-roles.js +61 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.js +2 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-role-guard.d.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-role-guard.js +6 -2
- 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/src/registered-agent-roles.ts +60 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-guard.ts +2 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-role-guard.ts +8 -2
- package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-role-matrix.test.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-role-registered.test.ts +128 -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/SKILL.md +26 -2
- package/packages/omo-codex/plugin/skills/browser/references/commands.md +10 -1
- package/packages/omo-codex/plugin/skills/browser/references/install.md +7 -0
- package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/omo-codex/plugin/skills/browser/scripts/browser-engine-guard.mjs +506 -0
- package/packages/omo-codex/plugin/skills/browser/scripts/omowright.mjs +29 -2
- package/packages/omo-codex/plugin/test/aggregate-plugin-fixture.mjs +4 -3
- package/packages/omo-codex/plugin/test/aggregate.test.mjs +2 -2
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
- package/packages/shared-skills/skills/browser/SKILL.md +26 -2
- package/packages/shared-skills/skills/browser/references/commands.md +10 -1
- package/packages/shared-skills/skills/browser/references/install.md +7 -0
- package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
- package/packages/shared-skills/skills/browser/scripts/browser-engine-guard.mjs +506 -0
- package/packages/shared-skills/skills/browser/scripts/omowright.mjs +29 -2
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.14",
|
|
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.10.
|
|
244
|
+
"@code-yeongyu/senpi": "2026.10.5",
|
|
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.14",
|
|
303
|
+
"oh-my-opencode-darwin-x64": "5.1.14",
|
|
304
|
+
"oh-my-opencode-darwin-x64-baseline": "5.1.14",
|
|
305
|
+
"oh-my-opencode-linux-arm64": "5.1.14",
|
|
306
|
+
"oh-my-opencode-linux-arm64-musl": "5.1.14",
|
|
307
|
+
"oh-my-opencode-linux-x64": "5.1.14",
|
|
308
|
+
"oh-my-opencode-linux-x64-baseline": "5.1.14",
|
|
309
|
+
"oh-my-opencode-linux-x64-musl": "5.1.14",
|
|
310
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.1.14",
|
|
311
|
+
"oh-my-opencode-windows-arm64": "5.1.14",
|
|
312
|
+
"oh-my-opencode-windows-x64": "5.1.14",
|
|
313
|
+
"oh-my-opencode-windows-x64-baseline": "5.1.14"
|
|
314
314
|
},
|
|
315
315
|
overrides: {
|
|
316
316
|
hono: "^4.13.8",
|
|
@@ -9493,7 +9493,7 @@ You are working on tasks that don't fit specific categories but require moderate
|
|
|
9493
9493
|
</Category_Context>`, UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits, effort is moderate, and scope stays within a few files/modules. Prefer any matching specialist category.</Selection_Gate>
|
|
9494
9494
|
<Caller_Warning>Provide explicit must-do steps, forbidden scope, and concrete success criteria.</Caller_Warning>`, UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
9495
9495
|
You are working on tasks that don't fit specific categories but require substantial effort.
|
|
9496
|
-
</Category_Context>`, UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits and substantial effort spans systems/modules with broad impact. Use unspecified-low for contained moderate work.</Selection_Gate>`, DEEP_LOW_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>
|
|
9496
|
+
</Category_Context>`, UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits and substantial effort spans systems/modules with broad impact. Use unspecified-low for contained moderate work.</Selection_Gate>`, DEEP_LOW_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Of the two deep lanes this is the default: the child settles its decisions from what it reads. When unsure, choose deep-low; a misrouted child returns \`ESCALATE: deep-high\` after one cheap attempt, and you re-spawn the same brief as deep-high with its findings.</Selection_Gate>`, DEEP_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Route here only when you can name the decision evidence cannot settle: a trade-off with no single right answer, a contract change crossing a package or process boundary, a mechanism with no in-repo pattern to copy, or correctness argued from invariants rather than observed in a test. Wide scope with easy decisions is deep-low or unspecified-high; reasoning as the deliverable is ultrabrain.</Selection_Gate>`, DEEP_LOW_GATE_MODELS, DEEP_HIGH_GATE_MODEL = "gpt-6-astra", OPENAI_CATEGORIES;
|
|
9497
9497
|
var init_openai_categories = __esm(() => {
|
|
9498
9498
|
init_types();
|
|
9499
9499
|
DEEP_LOW_GATE_MODELS = ["gpt-6.1-sol", "gpt-6.1-sol-fast", "gpt-5.6-sol-fast", "gpt-5.6-sol"];
|
|
@@ -9508,7 +9508,7 @@ var init_openai_categories = __esm(() => {
|
|
|
9508
9508
|
{
|
|
9509
9509
|
name: "deep-low",
|
|
9510
9510
|
config: { model: "openai/gpt-6.1-sol", variant: "medium" },
|
|
9511
|
-
description: "Default deep lane: one goal, one deliverable, decisions the child can settle from what it reads
|
|
9511
|
+
description: "Default deep lane: one goal, one deliverable, decisions the child can settle from what it reads; preferred over deep-high for 3D graphics, computer/browser use, CAPTCHA, multimodal, backend, logic, and algorithm work. Multiple goals fan out as parallel calls.",
|
|
9512
9512
|
callerGuidance: DEEP_LOW_CATEGORY_CALLER_GUIDANCE,
|
|
9513
9513
|
promptAppend: DEEP_LOW_CATEGORY_PROMPT_APPEND,
|
|
9514
9514
|
resolvePromptAppend: resolveDeepLowCategoryPromptAppend,
|
|
@@ -89369,7 +89369,7 @@ var package_default2;
|
|
|
89369
89369
|
var init_package2 = __esm(() => {
|
|
89370
89370
|
package_default2 = {
|
|
89371
89371
|
name: "@oh-my-opencode/omo-codex",
|
|
89372
|
-
version: "5.1.
|
|
89372
|
+
version: "5.1.14",
|
|
89373
89373
|
type: "module",
|
|
89374
89374
|
private: true,
|
|
89375
89375
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -98701,6 +98701,7 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
|
|
|
98701
98701
|
join63("extensions", "assets.generated.json"),
|
|
98702
98702
|
join63("extensions", "omo-member.js"),
|
|
98703
98703
|
join63("extensions", "memory-run-supervisor.mjs"),
|
|
98704
|
+
join63("extensions", "gateway-store-worker.mjs"),
|
|
98704
98705
|
...PERSONA_ASSET_FILES.map((filename) => join63("extensions", filename)),
|
|
98705
98706
|
join63("skills", "ast-grep", "SKILL.md"),
|
|
98706
98707
|
join63("skills", "browser", "SKILL.md"),
|
|
@@ -98723,6 +98724,7 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
|
|
|
98723
98724
|
join63("skills", "visual-qa", "SKILL.md"),
|
|
98724
98725
|
join63("skills-conditional", "x-search", "SKILL.md"),
|
|
98725
98726
|
join63("runtime", "agent-toolkit-sdk", "sdk.js"),
|
|
98727
|
+
join63("runtime", "thread-sdk", "sdk.js"),
|
|
98726
98728
|
join63("runtime", "ast-grep-mcp", "cli.js"),
|
|
98727
98729
|
join63("runtime", "lsp-daemon", "dist", "cli.js"),
|
|
98728
98730
|
join63("runtime", "lsp-daemon", "dist", "index.js"),
|
|
@@ -105240,10 +105242,14 @@ function resolveOsProvider2() {
|
|
|
105240
105242
|
function resolveTransportFactory() {
|
|
105241
105243
|
return transportFactoryOverride2 ?? createDefaultPostHogTransport;
|
|
105242
105244
|
}
|
|
105245
|
+
var PLUGIN_TRANSPORT_OPTIONS = { flushAt: 20 };
|
|
105243
105246
|
var NO_OP_POSTHOG2 = {
|
|
105244
105247
|
trackActive: () => {
|
|
105245
105248
|
return;
|
|
105246
105249
|
},
|
|
105250
|
+
flush: async () => {
|
|
105251
|
+
return;
|
|
105252
|
+
},
|
|
105247
105253
|
shutdown: async () => {
|
|
105248
105254
|
return;
|
|
105249
105255
|
}
|
|
@@ -105280,6 +105286,16 @@ function logTelemetryDiagnostic(input) {
|
|
|
105280
105286
|
source: input.source
|
|
105281
105287
|
});
|
|
105282
105288
|
}
|
|
105289
|
+
function createProductConfig(source) {
|
|
105290
|
+
const product = createOpencodeTelemetryProductConfig();
|
|
105291
|
+
if (source !== "plugin") {
|
|
105292
|
+
return product;
|
|
105293
|
+
}
|
|
105294
|
+
return {
|
|
105295
|
+
...product,
|
|
105296
|
+
transportOptions: { ...product.transportOptions, ...PLUGIN_TRANSPORT_OPTIONS }
|
|
105297
|
+
};
|
|
105298
|
+
}
|
|
105283
105299
|
function createPostHogClient2(source, options = {}) {
|
|
105284
105300
|
const env = process.env;
|
|
105285
105301
|
if (shouldDisablePostHog(env, options.configEnabled)) {
|
|
@@ -105289,7 +105305,7 @@ function createPostHogClient2(source, options = {}) {
|
|
|
105289
105305
|
diagnostics: logTelemetryDiagnostic,
|
|
105290
105306
|
env: createCoreCompatibleTelemetryEnv(env),
|
|
105291
105307
|
osProvider: resolveOsProvider2(),
|
|
105292
|
-
product:
|
|
105308
|
+
product: createProductConfig(source),
|
|
105293
105309
|
source,
|
|
105294
105310
|
transportFactory: resolveTransportFactory()
|
|
105295
105311
|
});
|
|
@@ -105308,6 +105324,17 @@ function createPostHogClient2(source, options = {}) {
|
|
|
105308
105324
|
reason
|
|
105309
105325
|
});
|
|
105310
105326
|
},
|
|
105327
|
+
flush: async () => {
|
|
105328
|
+
try {
|
|
105329
|
+
await client.flush();
|
|
105330
|
+
} catch (error) {
|
|
105331
|
+
log2("[posthog] telemetry flush failed", {
|
|
105332
|
+
error: String(error),
|
|
105333
|
+
errorKind: error instanceof Error ? "error" : "non_error",
|
|
105334
|
+
source
|
|
105335
|
+
});
|
|
105336
|
+
}
|
|
105337
|
+
},
|
|
105311
105338
|
shutdown: async () => {
|
|
105312
105339
|
await client.shutdown();
|
|
105313
105340
|
}
|
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.14",
|
|
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.10.
|
|
245
|
+
"@code-yeongyu/senpi": "2026.10.5",
|
|
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.14",
|
|
304
|
+
"oh-my-opencode-darwin-x64": "5.1.14",
|
|
305
|
+
"oh-my-opencode-darwin-x64-baseline": "5.1.14",
|
|
306
|
+
"oh-my-opencode-linux-arm64": "5.1.14",
|
|
307
|
+
"oh-my-opencode-linux-arm64-musl": "5.1.14",
|
|
308
|
+
"oh-my-opencode-linux-x64": "5.1.14",
|
|
309
|
+
"oh-my-opencode-linux-x64-baseline": "5.1.14",
|
|
310
|
+
"oh-my-opencode-linux-x64-musl": "5.1.14",
|
|
311
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.1.14",
|
|
312
|
+
"oh-my-opencode-windows-arm64": "5.1.14",
|
|
313
|
+
"oh-my-opencode-windows-x64": "5.1.14",
|
|
314
|
+
"oh-my-opencode-windows-x64-baseline": "5.1.14"
|
|
315
315
|
},
|
|
316
316
|
overrides: {
|
|
317
317
|
hono: "^4.13.8",
|
|
@@ -9494,7 +9494,7 @@ You are working on tasks that don't fit specific categories but require moderate
|
|
|
9494
9494
|
</Category_Context>`, UNSPECIFIED_LOW_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits, effort is moderate, and scope stays within a few files/modules. Prefer any matching specialist category.</Selection_Gate>
|
|
9495
9495
|
<Caller_Warning>Provide explicit must-do steps, forbidden scope, and concrete success criteria.</Caller_Warning>`, UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = `<Category_Context>
|
|
9496
9496
|
You are working on tasks that don't fit specific categories but require substantial effort.
|
|
9497
|
-
</Category_Context>`, UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits and substantial effort spans systems/modules with broad impact. Use unspecified-low for contained moderate work.</Selection_Gate>`, DEEP_LOW_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>
|
|
9497
|
+
</Category_Context>`, UNSPECIFIED_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Use only when no specialist category fits and substantial effort spans systems/modules with broad impact. Use unspecified-low for contained moderate work.</Selection_Gate>`, DEEP_LOW_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Of the two deep lanes this is the default: the child settles its decisions from what it reads. When unsure, choose deep-low; a misrouted child returns \`ESCALATE: deep-high\` after one cheap attempt, and you re-spawn the same brief as deep-high with its findings.</Selection_Gate>`, DEEP_HIGH_CATEGORY_CALLER_GUIDANCE = `<Selection_Gate>Route here only when you can name the decision evidence cannot settle: a trade-off with no single right answer, a contract change crossing a package or process boundary, a mechanism with no in-repo pattern to copy, or correctness argued from invariants rather than observed in a test. Wide scope with easy decisions is deep-low or unspecified-high; reasoning as the deliverable is ultrabrain.</Selection_Gate>`, DEEP_LOW_GATE_MODELS, DEEP_HIGH_GATE_MODEL = "gpt-6-astra", OPENAI_CATEGORIES;
|
|
9498
9498
|
var init_openai_categories = __esm(() => {
|
|
9499
9499
|
init_types();
|
|
9500
9500
|
DEEP_LOW_GATE_MODELS = ["gpt-6.1-sol", "gpt-6.1-sol-fast", "gpt-5.6-sol-fast", "gpt-5.6-sol"];
|
|
@@ -9509,7 +9509,7 @@ var init_openai_categories = __esm(() => {
|
|
|
9509
9509
|
{
|
|
9510
9510
|
name: "deep-low",
|
|
9511
9511
|
config: { model: "openai/gpt-6.1-sol", variant: "medium" },
|
|
9512
|
-
description: "Default deep lane: one goal, one deliverable, decisions the child can settle from what it reads
|
|
9512
|
+
description: "Default deep lane: one goal, one deliverable, decisions the child can settle from what it reads; preferred over deep-high for 3D graphics, computer/browser use, CAPTCHA, multimodal, backend, logic, and algorithm work. Multiple goals fan out as parallel calls.",
|
|
9513
9513
|
callerGuidance: DEEP_LOW_CATEGORY_CALLER_GUIDANCE,
|
|
9514
9514
|
promptAppend: DEEP_LOW_CATEGORY_PROMPT_APPEND,
|
|
9515
9515
|
resolvePromptAppend: resolveDeepLowCategoryPromptAppend,
|
|
@@ -89448,7 +89448,7 @@ var package_default2;
|
|
|
89448
89448
|
var init_package2 = __esm(() => {
|
|
89449
89449
|
package_default2 = {
|
|
89450
89450
|
name: "@oh-my-opencode/omo-codex",
|
|
89451
|
-
version: "5.1.
|
|
89451
|
+
version: "5.1.14",
|
|
89452
89452
|
type: "module",
|
|
89453
89453
|
private: true,
|
|
89454
89454
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -98780,6 +98780,7 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
|
|
|
98780
98780
|
join63("extensions", "assets.generated.json"),
|
|
98781
98781
|
join63("extensions", "omo-member.js"),
|
|
98782
98782
|
join63("extensions", "memory-run-supervisor.mjs"),
|
|
98783
|
+
join63("extensions", "gateway-store-worker.mjs"),
|
|
98783
98784
|
...PERSONA_ASSET_FILES.map((filename) => join63("extensions", filename)),
|
|
98784
98785
|
join63("skills", "ast-grep", "SKILL.md"),
|
|
98785
98786
|
join63("skills", "browser", "SKILL.md"),
|
|
@@ -98802,6 +98803,7 @@ var REQUIRED_PLUGIN_ARTIFACTS = [
|
|
|
98802
98803
|
join63("skills", "visual-qa", "SKILL.md"),
|
|
98803
98804
|
join63("skills-conditional", "x-search", "SKILL.md"),
|
|
98804
98805
|
join63("runtime", "agent-toolkit-sdk", "sdk.js"),
|
|
98806
|
+
join63("runtime", "thread-sdk", "sdk.js"),
|
|
98805
98807
|
join63("runtime", "ast-grep-mcp", "cli.js"),
|
|
98806
98808
|
join63("runtime", "lsp-daemon", "dist", "cli.js"),
|
|
98807
98809
|
join63("runtime", "lsp-daemon", "dist", "index.js"),
|
|
@@ -105319,10 +105321,14 @@ function resolveOsProvider2() {
|
|
|
105319
105321
|
function resolveTransportFactory() {
|
|
105320
105322
|
return transportFactoryOverride2 ?? createDefaultPostHogTransport;
|
|
105321
105323
|
}
|
|
105324
|
+
var PLUGIN_TRANSPORT_OPTIONS = { flushAt: 20 };
|
|
105322
105325
|
var NO_OP_POSTHOG2 = {
|
|
105323
105326
|
trackActive: () => {
|
|
105324
105327
|
return;
|
|
105325
105328
|
},
|
|
105329
|
+
flush: async () => {
|
|
105330
|
+
return;
|
|
105331
|
+
},
|
|
105326
105332
|
shutdown: async () => {
|
|
105327
105333
|
return;
|
|
105328
105334
|
}
|
|
@@ -105359,6 +105365,16 @@ function logTelemetryDiagnostic(input) {
|
|
|
105359
105365
|
source: input.source
|
|
105360
105366
|
});
|
|
105361
105367
|
}
|
|
105368
|
+
function createProductConfig(source) {
|
|
105369
|
+
const product = createOpencodeTelemetryProductConfig();
|
|
105370
|
+
if (source !== "plugin") {
|
|
105371
|
+
return product;
|
|
105372
|
+
}
|
|
105373
|
+
return {
|
|
105374
|
+
...product,
|
|
105375
|
+
transportOptions: { ...product.transportOptions, ...PLUGIN_TRANSPORT_OPTIONS }
|
|
105376
|
+
};
|
|
105377
|
+
}
|
|
105362
105378
|
function createPostHogClient2(source, options = {}) {
|
|
105363
105379
|
const env = process.env;
|
|
105364
105380
|
if (shouldDisablePostHog(env, options.configEnabled)) {
|
|
@@ -105368,7 +105384,7 @@ function createPostHogClient2(source, options = {}) {
|
|
|
105368
105384
|
diagnostics: logTelemetryDiagnostic,
|
|
105369
105385
|
env: createCoreCompatibleTelemetryEnv(env),
|
|
105370
105386
|
osProvider: resolveOsProvider2(),
|
|
105371
|
-
product:
|
|
105387
|
+
product: createProductConfig(source),
|
|
105372
105388
|
source,
|
|
105373
105389
|
transportFactory: resolveTransportFactory()
|
|
105374
105390
|
});
|
|
@@ -105387,6 +105403,17 @@ function createPostHogClient2(source, options = {}) {
|
|
|
105387
105403
|
reason
|
|
105388
105404
|
});
|
|
105389
105405
|
},
|
|
105406
|
+
flush: async () => {
|
|
105407
|
+
try {
|
|
105408
|
+
await client.flush();
|
|
105409
|
+
} catch (error) {
|
|
105410
|
+
log2("[posthog] telemetry flush failed", {
|
|
105411
|
+
error: String(error),
|
|
105412
|
+
errorKind: error instanceof Error ? "error" : "non_error",
|
|
105413
|
+
source
|
|
105414
|
+
});
|
|
105415
|
+
}
|
|
105416
|
+
},
|
|
105390
105417
|
shutdown: async () => {
|
|
105391
105418
|
await client.shutdown();
|
|
105392
105419
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lazycodex-ai",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.14",
|
|
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",
|
|
@@ -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.14) 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.14) 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.14) 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.14) 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.14",
|
|
4
|
+
"inputDigest": "sha256:d1ee8c51725f4649bd6437bbe0a02cf6f922ce19e2229d12d02c4d3ddccdafde",
|
|
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": "f2776c0f9c2a893136e9e8e36c2e086172f10c0ab3566a730cff4443b712f956"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"path": "codex-hook-cli.d.ts",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
"path": "codex-hook.js",
|
|
28
|
-
"sha256": "
|
|
28
|
+
"sha256": "6e054189fe9efc941916d3469f1342344aadc20215c91fa6209e2f98139d6ed5"
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
"path": "daemon-cli-path.d.ts",
|
|
@@ -5958,7 +5958,11 @@ async function collectPostEditDiagnostics(input) {
|
|
|
5958
5958
|
observations.push({ filePath: result.filePath, kind: "not_configured" });
|
|
5959
5959
|
break;
|
|
5960
5960
|
case "block":
|
|
5961
|
-
blocks.push({ filePath: result.filePath, diagnostics: classification.diagnostics });
|
|
5961
|
+
blocks.push({ filePath: result.filePath, diagnostics: classification.diagnostics, blocking: true });
|
|
5962
|
+
observations.push({ filePath: result.filePath, kind: "block" });
|
|
5963
|
+
break;
|
|
5964
|
+
case "guidance":
|
|
5965
|
+
blocks.push({ filePath: result.filePath, diagnostics: classification.text, blocking: false });
|
|
5962
5966
|
observations.push({ filePath: result.filePath, kind: "block" });
|
|
5963
5967
|
break;
|
|
5964
5968
|
default: {
|
|
@@ -6020,7 +6024,7 @@ function normalizeDiagnosticsOutcome(outcome) {
|
|
|
6020
6024
|
return outcome;
|
|
6021
6025
|
}
|
|
6022
6026
|
function classifyNotInstalled(guidance) {
|
|
6023
|
-
return guidance === undefined ? { kind: "not_installed" } : { kind: "
|
|
6027
|
+
return guidance === undefined ? { kind: "not_installed" } : { kind: "guidance", text: guidance };
|
|
6024
6028
|
}
|
|
6025
6029
|
function normalizeDiagnosticsText(text) {
|
|
6026
6030
|
return text.trim();
|
|
@@ -6277,22 +6281,33 @@ async function runLspDiagnosticsText(filePath) {
|
|
|
6277
6281
|
return postEditOutcomeFromDaemonResult(result);
|
|
6278
6282
|
}
|
|
6279
6283
|
function postEditOutcomeFromDaemonResult(result) {
|
|
6280
|
-
const
|
|
6281
|
-
if (availability !== undefined)
|
|
6282
|
-
return { kind: "not_configured", extension: availability.extension };
|
|
6283
|
-
return result.content.map((block) => block.text).join(`
|
|
6284
|
+
const text = result.content.map((block) => block.text).join(`
|
|
6284
6285
|
`);
|
|
6286
|
+
const availability = availabilityDetails2(result.details);
|
|
6287
|
+
if (availability === undefined)
|
|
6288
|
+
return text;
|
|
6289
|
+
if (availability["kind"] === "not_configured") {
|
|
6290
|
+
const extension = availability["extension"];
|
|
6291
|
+
return typeof extension === "string" && extension.length > 0 ? { kind: "not_configured", extension } : text;
|
|
6292
|
+
}
|
|
6293
|
+
if (availability["kind"] === "not_installed")
|
|
6294
|
+
return notInstalledOutcome(availability, text) ?? text;
|
|
6295
|
+
return text;
|
|
6285
6296
|
}
|
|
6286
|
-
function
|
|
6297
|
+
function availabilityDetails2(details) {
|
|
6287
6298
|
if (!isRecord11(details))
|
|
6288
6299
|
return;
|
|
6289
6300
|
const availability = details["availability"];
|
|
6290
|
-
|
|
6291
|
-
|
|
6292
|
-
|
|
6301
|
+
return isRecord11(availability) ? availability : undefined;
|
|
6302
|
+
}
|
|
6303
|
+
function notInstalledOutcome(availability, text) {
|
|
6304
|
+
const serverId = availability["serverId"];
|
|
6305
|
+
const installDecisionTool = availability["installDecisionTool"];
|
|
6306
|
+
if (typeof serverId !== "string" || serverId.length === 0 || typeof installDecisionTool !== "boolean")
|
|
6293
6307
|
return;
|
|
6294
|
-
const
|
|
6295
|
-
|
|
6308
|
+
const decision = availability["decision"];
|
|
6309
|
+
const base = { kind: "not_installed", serverId, installDecisionTool, text };
|
|
6310
|
+
return decision === "declined" || decision === "allowed" ? { ...base, decision } : base;
|
|
6296
6311
|
}
|
|
6297
6312
|
function codexLspRequestContext(env = process.env, cwd = process.cwd()) {
|
|
6298
6313
|
const canonicalCwd = realpathSync7(resolve11(cwd));
|
|
@@ -6320,14 +6335,13 @@ async function runLspPostToolUseHook(input, runDiagnostics = runLspDiagnosticsTe
|
|
|
6320
6335
|
|
|
6321
6336
|
`);
|
|
6322
6337
|
const reason = limitHookText(rawReason, hookFeedbackLimit(input.transcript_path));
|
|
6323
|
-
const
|
|
6324
|
-
|
|
6325
|
-
reason,
|
|
6326
|
-
hookSpecificOutput: {
|
|
6327
|
-
hookEventName: "PostToolUse",
|
|
6328
|
-
additionalContext: reason
|
|
6329
|
-
}
|
|
6338
|
+
const context = {
|
|
6339
|
+
hookSpecificOutput: { hookEventName: "PostToolUse", additionalContext: reason }
|
|
6330
6340
|
};
|
|
6341
|
+
if (!blocks.some((block) => block.blocking))
|
|
6342
|
+
return `${JSON.stringify(context)}
|
|
6343
|
+
`;
|
|
6344
|
+
const output = { decision: "block", reason, ...context };
|
|
6331
6345
|
return `${JSON.stringify(output)}
|
|
6332
6346
|
`;
|
|
6333
6347
|
}
|
|
@@ -27,21 +27,32 @@ export async function runLspDiagnosticsText(filePath) {
|
|
|
27
27
|
return postEditOutcomeFromDaemonResult(result);
|
|
28
28
|
}
|
|
29
29
|
function postEditOutcomeFromDaemonResult(result) {
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
const text = result.content.map((block) => block.text).join("\n");
|
|
31
|
+
const availability = availabilityDetails(result.details);
|
|
32
|
+
if (availability === undefined)
|
|
33
|
+
return text;
|
|
34
|
+
if (availability["kind"] === "not_configured") {
|
|
35
|
+
const extension = availability["extension"];
|
|
36
|
+
return typeof extension === "string" && extension.length > 0 ? { kind: "not_configured", extension } : text;
|
|
37
|
+
}
|
|
38
|
+
if (availability["kind"] === "not_installed")
|
|
39
|
+
return notInstalledOutcome(availability, text) ?? text;
|
|
40
|
+
return text;
|
|
34
41
|
}
|
|
35
|
-
function
|
|
42
|
+
function availabilityDetails(details) {
|
|
36
43
|
if (!isRecord(details))
|
|
37
44
|
return undefined;
|
|
38
45
|
const availability = details["availability"];
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
46
|
+
return isRecord(availability) ? availability : undefined;
|
|
47
|
+
}
|
|
48
|
+
function notInstalledOutcome(availability, text) {
|
|
49
|
+
const serverId = availability["serverId"];
|
|
50
|
+
const installDecisionTool = availability["installDecisionTool"];
|
|
51
|
+
if (typeof serverId !== "string" || serverId.length === 0 || typeof installDecisionTool !== "boolean")
|
|
42
52
|
return undefined;
|
|
43
|
-
const
|
|
44
|
-
|
|
53
|
+
const decision = availability["decision"];
|
|
54
|
+
const base = { kind: "not_installed", serverId, installDecisionTool, text };
|
|
55
|
+
return decision === "declined" || decision === "allowed" ? { ...base, decision } : base;
|
|
45
56
|
}
|
|
46
57
|
export function codexLspRequestContext(env = process.env, cwd = process.cwd()) {
|
|
47
58
|
const canonicalCwd = realpathSync(resolve(cwd));
|
|
@@ -67,14 +78,13 @@ export async function runLspPostToolUseHook(input, runDiagnostics = runLspDiagno
|
|
|
67
78
|
return "";
|
|
68
79
|
const rawReason = blocks.map(formatDiagnosticBlock).join("\n\n");
|
|
69
80
|
const reason = limitHookText(rawReason, hookFeedbackLimit(input.transcript_path));
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
reason,
|
|
73
|
-
hookSpecificOutput: {
|
|
74
|
-
hookEventName: "PostToolUse",
|
|
75
|
-
additionalContext: reason,
|
|
76
|
-
},
|
|
81
|
+
const context = {
|
|
82
|
+
hookSpecificOutput: { hookEventName: "PostToolUse", additionalContext: reason },
|
|
77
83
|
};
|
|
84
|
+
// Missing-server guidance alone is a note for the model; only real diagnostics block the edit.
|
|
85
|
+
if (!blocks.some((block) => block.blocking))
|
|
86
|
+
return `${JSON.stringify(context)}\n`;
|
|
87
|
+
const output = { decision: "block", reason, ...context };
|
|
78
88
|
return `${JSON.stringify(output)}\n`;
|
|
79
89
|
}
|
|
80
90
|
export async function runLspPostCompactHook(input) {
|
|
@@ -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.14) 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.14) Resetting LSP Diagnostics Cache"
|
|
25
25
|
}
|
|
26
26
|
]
|
|
27
27
|
}
|