lazycodex-ai 4.17.0 → 4.17.1
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 +30 -27
- package/dist/cli-node/index.js +30 -27
- package/package.json +1 -1
- package/packages/lsp-daemon/dist/cli.js +7 -13
- package/packages/lsp-daemon/dist/daemon-client.js +3 -5
- package/packages/lsp-daemon/dist/index.js +12 -18
- package/packages/lsp-daemon/dist/request-routing.js +6 -8
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +398 -400
- 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/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/cli.js +14 -14
- 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/bundled-rules/hephaestus/gpt-5.5.md +2 -2
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.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/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/AGENTS.md +2 -2
- 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/teammode/skills/teammode/SKILL.md +33 -16
- package/packages/omo-codex/plugin/components/teammode/skills/teammode/scripts/team.mjs +2 -1
- package/packages/omo-codex/plugin/components/teammode/test/v2-spawn-schema.test.ts +69 -0
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +3 -3
- package/packages/omo-codex/plugin/components/ultrawork/directive.md +29 -17
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +29 -17
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +2 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +4 -4
- package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +9 -6
- package/packages/omo-codex/plugin/components/ulw-loop/directive.md +29 -17
- 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 +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +2 -2
- 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 +13 -13
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/skills/review-work/SKILL.md +10 -2
- package/packages/omo-codex/plugin/skills/start-work/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/teammode/SKILL.md +33 -16
- package/packages/omo-codex/plugin/skills/teammode/scripts/team.mjs +2 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/ATTRIBUTION.md +2 -2
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/package.json +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
- package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +29 -17
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +2 -2
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +2 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +4 -4
- package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +9 -5
- package/packages/omo-codex/plugin/test/sync-skills.test.mjs +1 -1
- package/packages/omo-codex/plugin/test/teammode-transport.test.mjs +25 -0
- package/packages/omo-codex/plugin/test/ulw-plan-scope-contract.test.mjs +24 -0
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +9 -11
- package/packages/shared-skills/skills/review-work/SKILL.md +10 -2
- package/packages/shared-skills/skills/start-work/SKILL.md +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/ATTRIBUTION.md +2 -2
- package/packages/shared-skills/skills/ultimate-browsing/engine/templates/package.json +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +2 -1
- package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +1 -1
- package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +4 -4
- package/packages/shared-skills/skills/visual-qa/SKILL.md +9 -5
package/dist/cli/index.js
CHANGED
|
@@ -2145,7 +2145,7 @@ var package_default;
|
|
|
2145
2145
|
var init_package = __esm(() => {
|
|
2146
2146
|
package_default = {
|
|
2147
2147
|
name: "oh-my-opencode",
|
|
2148
|
-
version: "4.17.
|
|
2148
|
+
version: "4.17.1",
|
|
2149
2149
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
2150
2150
|
main: "./dist/index.js",
|
|
2151
2151
|
types: "dist/index.d.ts",
|
|
@@ -2356,18 +2356,18 @@ var init_package = __esm(() => {
|
|
|
2356
2356
|
typescript: "^6.0.3"
|
|
2357
2357
|
},
|
|
2358
2358
|
optionalDependencies: {
|
|
2359
|
-
"oh-my-opencode-darwin-arm64": "4.17.
|
|
2360
|
-
"oh-my-opencode-darwin-x64": "4.17.
|
|
2361
|
-
"oh-my-opencode-darwin-x64-baseline": "4.17.
|
|
2362
|
-
"oh-my-opencode-linux-arm64": "4.17.
|
|
2363
|
-
"oh-my-opencode-linux-arm64-musl": "4.17.
|
|
2364
|
-
"oh-my-opencode-linux-x64": "4.17.
|
|
2365
|
-
"oh-my-opencode-linux-x64-baseline": "4.17.
|
|
2366
|
-
"oh-my-opencode-linux-x64-musl": "4.17.
|
|
2367
|
-
"oh-my-opencode-linux-x64-musl-baseline": "4.17.
|
|
2368
|
-
"oh-my-opencode-windows-arm64": "4.17.
|
|
2369
|
-
"oh-my-opencode-windows-x64": "4.17.
|
|
2370
|
-
"oh-my-opencode-windows-x64-baseline": "4.17.
|
|
2359
|
+
"oh-my-opencode-darwin-arm64": "4.17.1",
|
|
2360
|
+
"oh-my-opencode-darwin-x64": "4.17.1",
|
|
2361
|
+
"oh-my-opencode-darwin-x64-baseline": "4.17.1",
|
|
2362
|
+
"oh-my-opencode-linux-arm64": "4.17.1",
|
|
2363
|
+
"oh-my-opencode-linux-arm64-musl": "4.17.1",
|
|
2364
|
+
"oh-my-opencode-linux-x64": "4.17.1",
|
|
2365
|
+
"oh-my-opencode-linux-x64-baseline": "4.17.1",
|
|
2366
|
+
"oh-my-opencode-linux-x64-musl": "4.17.1",
|
|
2367
|
+
"oh-my-opencode-linux-x64-musl-baseline": "4.17.1",
|
|
2368
|
+
"oh-my-opencode-windows-arm64": "4.17.1",
|
|
2369
|
+
"oh-my-opencode-windows-x64": "4.17.1",
|
|
2370
|
+
"oh-my-opencode-windows-x64-baseline": "4.17.1"
|
|
2371
2371
|
},
|
|
2372
2372
|
overrides: {
|
|
2373
2373
|
"@earendil-works/pi-agent-core": "0.80.3",
|
|
@@ -9223,7 +9223,7 @@ var init_agent_model_requirements = __esm(() => {
|
|
|
9223
9223
|
{
|
|
9224
9224
|
providers: ["openai", "vercel"],
|
|
9225
9225
|
model: "gpt-5.6-sol",
|
|
9226
|
-
variant: "
|
|
9226
|
+
variant: "high"
|
|
9227
9227
|
},
|
|
9228
9228
|
{
|
|
9229
9229
|
providers: ["openai", "github-copilot", "opencode", "vercel"],
|
|
@@ -65103,15 +65103,20 @@ var init_command_loader = __esm(() => {
|
|
|
65103
65103
|
init_logger3();
|
|
65104
65104
|
});
|
|
65105
65105
|
|
|
65106
|
-
// packages/
|
|
65106
|
+
// packages/utils/src/skill-path-resolver.ts
|
|
65107
65107
|
var init_skill_path_resolver = () => {};
|
|
65108
65108
|
|
|
65109
|
+
// packages/claude-code-compat-core/src/shared/skill-path-resolver.ts
|
|
65110
|
+
var init_skill_path_resolver2 = __esm(() => {
|
|
65111
|
+
init_skill_path_resolver();
|
|
65112
|
+
});
|
|
65113
|
+
|
|
65109
65114
|
// packages/claude-code-compat-core/src/features/claude-code-plugin-loader/skill-loader.ts
|
|
65110
65115
|
var init_skill_loader = __esm(() => {
|
|
65111
65116
|
init_frontmatter3();
|
|
65112
65117
|
init_file_utils3();
|
|
65113
65118
|
init_model_sanitizer2();
|
|
65114
|
-
|
|
65119
|
+
init_skill_path_resolver2();
|
|
65115
65120
|
init_logger3();
|
|
65116
65121
|
});
|
|
65117
65122
|
// packages/claude-code-compat-core/src/shared/model-format-normalizer.ts
|
|
@@ -72596,7 +72601,7 @@ var package_default2;
|
|
|
72596
72601
|
var init_package2 = __esm(() => {
|
|
72597
72602
|
package_default2 = {
|
|
72598
72603
|
name: "@oh-my-opencode/omo-codex",
|
|
72599
|
-
version: "4.
|
|
72604
|
+
version: "4.17.1",
|
|
72600
72605
|
type: "module",
|
|
72601
72606
|
private: true,
|
|
72602
72607
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -75896,6 +75901,14 @@ function parseAgentHeaderName(header) {
|
|
|
75896
75901
|
const path7 = parseTomlDottedKey(header);
|
|
75897
75902
|
return path7?.[0] === "agents" ? path7[1] ?? null : null;
|
|
75898
75903
|
}
|
|
75904
|
+
function parseJsonString(value) {
|
|
75905
|
+
try {
|
|
75906
|
+
const parsed = JSON.parse(value);
|
|
75907
|
+
return typeof parsed === "string" ? parsed : null;
|
|
75908
|
+
} catch {
|
|
75909
|
+
return null;
|
|
75910
|
+
}
|
|
75911
|
+
}
|
|
75899
75912
|
function parseHookStateHeaderKey(header) {
|
|
75900
75913
|
const path7 = parseTomlDottedKey(header);
|
|
75901
75914
|
if (path7?.[0] !== "hooks" || path7[1] !== "state")
|
|
@@ -77052,16 +77065,6 @@ function isSectionHeader3(line) {
|
|
|
77052
77065
|
function agentNameFromToml(fileName) {
|
|
77053
77066
|
return fileName.endsWith(".toml") ? fileName.slice(0, -".toml".length) : fileName;
|
|
77054
77067
|
}
|
|
77055
|
-
function parseJsonString(value) {
|
|
77056
|
-
try {
|
|
77057
|
-
const parsed = JSON.parse(value);
|
|
77058
|
-
return typeof parsed === "string" ? parsed : null;
|
|
77059
|
-
} catch (error) {
|
|
77060
|
-
if (error instanceof Error)
|
|
77061
|
-
return null;
|
|
77062
|
-
return null;
|
|
77063
|
-
}
|
|
77064
|
-
}
|
|
77065
77068
|
async function exists2(path7) {
|
|
77066
77069
|
try {
|
|
77067
77070
|
await lstat7(path7);
|
package/dist/cli-node/index.js
CHANGED
|
@@ -2146,7 +2146,7 @@ var package_default;
|
|
|
2146
2146
|
var init_package = __esm(() => {
|
|
2147
2147
|
package_default = {
|
|
2148
2148
|
name: "oh-my-opencode",
|
|
2149
|
-
version: "4.17.
|
|
2149
|
+
version: "4.17.1",
|
|
2150
2150
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
2151
2151
|
main: "./dist/index.js",
|
|
2152
2152
|
types: "dist/index.d.ts",
|
|
@@ -2357,18 +2357,18 @@ var init_package = __esm(() => {
|
|
|
2357
2357
|
typescript: "^6.0.3"
|
|
2358
2358
|
},
|
|
2359
2359
|
optionalDependencies: {
|
|
2360
|
-
"oh-my-opencode-darwin-arm64": "4.17.
|
|
2361
|
-
"oh-my-opencode-darwin-x64": "4.17.
|
|
2362
|
-
"oh-my-opencode-darwin-x64-baseline": "4.17.
|
|
2363
|
-
"oh-my-opencode-linux-arm64": "4.17.
|
|
2364
|
-
"oh-my-opencode-linux-arm64-musl": "4.17.
|
|
2365
|
-
"oh-my-opencode-linux-x64": "4.17.
|
|
2366
|
-
"oh-my-opencode-linux-x64-baseline": "4.17.
|
|
2367
|
-
"oh-my-opencode-linux-x64-musl": "4.17.
|
|
2368
|
-
"oh-my-opencode-linux-x64-musl-baseline": "4.17.
|
|
2369
|
-
"oh-my-opencode-windows-arm64": "4.17.
|
|
2370
|
-
"oh-my-opencode-windows-x64": "4.17.
|
|
2371
|
-
"oh-my-opencode-windows-x64-baseline": "4.17.
|
|
2360
|
+
"oh-my-opencode-darwin-arm64": "4.17.1",
|
|
2361
|
+
"oh-my-opencode-darwin-x64": "4.17.1",
|
|
2362
|
+
"oh-my-opencode-darwin-x64-baseline": "4.17.1",
|
|
2363
|
+
"oh-my-opencode-linux-arm64": "4.17.1",
|
|
2364
|
+
"oh-my-opencode-linux-arm64-musl": "4.17.1",
|
|
2365
|
+
"oh-my-opencode-linux-x64": "4.17.1",
|
|
2366
|
+
"oh-my-opencode-linux-x64-baseline": "4.17.1",
|
|
2367
|
+
"oh-my-opencode-linux-x64-musl": "4.17.1",
|
|
2368
|
+
"oh-my-opencode-linux-x64-musl-baseline": "4.17.1",
|
|
2369
|
+
"oh-my-opencode-windows-arm64": "4.17.1",
|
|
2370
|
+
"oh-my-opencode-windows-x64": "4.17.1",
|
|
2371
|
+
"oh-my-opencode-windows-x64-baseline": "4.17.1"
|
|
2372
2372
|
},
|
|
2373
2373
|
overrides: {
|
|
2374
2374
|
"@earendil-works/pi-agent-core": "0.80.3",
|
|
@@ -9224,7 +9224,7 @@ var init_agent_model_requirements = __esm(() => {
|
|
|
9224
9224
|
{
|
|
9225
9225
|
providers: ["openai", "vercel"],
|
|
9226
9226
|
model: "gpt-5.6-sol",
|
|
9227
|
-
variant: "
|
|
9227
|
+
variant: "high"
|
|
9228
9228
|
},
|
|
9229
9229
|
{
|
|
9230
9230
|
providers: ["openai", "github-copilot", "opencode", "vercel"],
|
|
@@ -65104,15 +65104,20 @@ var init_command_loader = __esm(() => {
|
|
|
65104
65104
|
init_logger3();
|
|
65105
65105
|
});
|
|
65106
65106
|
|
|
65107
|
-
// packages/
|
|
65107
|
+
// packages/utils/src/skill-path-resolver.ts
|
|
65108
65108
|
var init_skill_path_resolver = () => {};
|
|
65109
65109
|
|
|
65110
|
+
// packages/claude-code-compat-core/src/shared/skill-path-resolver.ts
|
|
65111
|
+
var init_skill_path_resolver2 = __esm(() => {
|
|
65112
|
+
init_skill_path_resolver();
|
|
65113
|
+
});
|
|
65114
|
+
|
|
65110
65115
|
// packages/claude-code-compat-core/src/features/claude-code-plugin-loader/skill-loader.ts
|
|
65111
65116
|
var init_skill_loader = __esm(() => {
|
|
65112
65117
|
init_frontmatter3();
|
|
65113
65118
|
init_file_utils3();
|
|
65114
65119
|
init_model_sanitizer2();
|
|
65115
|
-
|
|
65120
|
+
init_skill_path_resolver2();
|
|
65116
65121
|
init_logger3();
|
|
65117
65122
|
});
|
|
65118
65123
|
// packages/claude-code-compat-core/src/shared/model-format-normalizer.ts
|
|
@@ -72652,7 +72657,7 @@ var package_default2;
|
|
|
72652
72657
|
var init_package2 = __esm(() => {
|
|
72653
72658
|
package_default2 = {
|
|
72654
72659
|
name: "@oh-my-opencode/omo-codex",
|
|
72655
|
-
version: "4.
|
|
72660
|
+
version: "4.17.1",
|
|
72656
72661
|
type: "module",
|
|
72657
72662
|
private: true,
|
|
72658
72663
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -75952,6 +75957,14 @@ function parseAgentHeaderName(header) {
|
|
|
75952
75957
|
const path7 = parseTomlDottedKey(header);
|
|
75953
75958
|
return path7?.[0] === "agents" ? path7[1] ?? null : null;
|
|
75954
75959
|
}
|
|
75960
|
+
function parseJsonString(value) {
|
|
75961
|
+
try {
|
|
75962
|
+
const parsed = JSON.parse(value);
|
|
75963
|
+
return typeof parsed === "string" ? parsed : null;
|
|
75964
|
+
} catch {
|
|
75965
|
+
return null;
|
|
75966
|
+
}
|
|
75967
|
+
}
|
|
75955
75968
|
function parseHookStateHeaderKey(header) {
|
|
75956
75969
|
const path7 = parseTomlDottedKey(header);
|
|
75957
75970
|
if (path7?.[0] !== "hooks" || path7[1] !== "state")
|
|
@@ -77108,16 +77121,6 @@ function isSectionHeader3(line) {
|
|
|
77108
77121
|
function agentNameFromToml(fileName) {
|
|
77109
77122
|
return fileName.endsWith(".toml") ? fileName.slice(0, -".toml".length) : fileName;
|
|
77110
77123
|
}
|
|
77111
|
-
function parseJsonString(value) {
|
|
77112
|
-
try {
|
|
77113
|
-
const parsed = JSON.parse(value);
|
|
77114
|
-
return typeof parsed === "string" ? parsed : null;
|
|
77115
|
-
} catch (error) {
|
|
77116
|
-
if (error instanceof Error)
|
|
77117
|
-
return null;
|
|
77118
|
-
return null;
|
|
77119
|
-
}
|
|
77120
|
-
}
|
|
77121
77124
|
async function exists2(path7) {
|
|
77122
77125
|
try {
|
|
77123
77126
|
await lstat7(path7);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lazycodex-ai",
|
|
3
|
-
"version": "4.17.
|
|
3
|
+
"version": "4.17.1",
|
|
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",
|
|
@@ -3556,13 +3556,13 @@ function resolveSocketPath(dir, version) {
|
|
|
3556
3556
|
// src/request-routing.ts
|
|
3557
3557
|
var CONTEXT_KEY = "_context";
|
|
3558
3558
|
function extractRequestContext(raw) {
|
|
3559
|
-
if (!
|
|
3559
|
+
if (!isPlainRecord(raw) || raw["method"] !== "tools/call")
|
|
3560
3560
|
return { input: raw, context: undefined };
|
|
3561
3561
|
const params = raw["params"];
|
|
3562
|
-
if (!
|
|
3562
|
+
if (!isPlainRecord(params))
|
|
3563
3563
|
return { input: raw, context: undefined };
|
|
3564
3564
|
const args = params["arguments"];
|
|
3565
|
-
if (!
|
|
3565
|
+
if (!isPlainRecord(args))
|
|
3566
3566
|
return { input: raw, context: undefined };
|
|
3567
3567
|
const context = parseContext(args[CONTEXT_KEY]);
|
|
3568
3568
|
if (!context)
|
|
@@ -3579,7 +3579,7 @@ function handleDaemonMessage(raw) {
|
|
|
3579
3579
|
return handleLspMcpRequest(input);
|
|
3580
3580
|
}
|
|
3581
3581
|
function parseContext(value) {
|
|
3582
|
-
if (!
|
|
3582
|
+
if (!isPlainRecord(value))
|
|
3583
3583
|
return;
|
|
3584
3584
|
const context = {};
|
|
3585
3585
|
const cwd = value["cwd"];
|
|
@@ -3590,11 +3590,8 @@ function parseContext(value) {
|
|
|
3590
3590
|
context.env = env;
|
|
3591
3591
|
return context.cwd === undefined && context.env === undefined ? undefined : context;
|
|
3592
3592
|
}
|
|
3593
|
-
function isRecord5(value) {
|
|
3594
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
3595
|
-
}
|
|
3596
3593
|
function isStringRecord2(value) {
|
|
3597
|
-
return
|
|
3594
|
+
return isPlainRecord(value) && Object.values(value).every((item) => typeof item === "string");
|
|
3598
3595
|
}
|
|
3599
3596
|
|
|
3600
3597
|
// src/socket-jsonrpc.ts
|
|
@@ -3721,10 +3718,10 @@ function sendToolCall(socketPath, name, args, timeoutMs) {
|
|
|
3721
3718
|
});
|
|
3722
3719
|
}
|
|
3723
3720
|
function toToolResult(message) {
|
|
3724
|
-
if (!
|
|
3721
|
+
if (!isPlainRecord(message) || message["id"] !== REQUEST_ID)
|
|
3725
3722
|
return null;
|
|
3726
3723
|
const result = message["result"];
|
|
3727
|
-
if (!
|
|
3724
|
+
if (!isPlainRecord(result) || !Array.isArray(result["content"]))
|
|
3728
3725
|
return null;
|
|
3729
3726
|
return {
|
|
3730
3727
|
content: result["content"],
|
|
@@ -3732,9 +3729,6 @@ function toToolResult(message) {
|
|
|
3732
3729
|
details: result["details"]
|
|
3733
3730
|
};
|
|
3734
3731
|
}
|
|
3735
|
-
function isRecord6(value) {
|
|
3736
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
3737
|
-
}
|
|
3738
3732
|
function errorText(error) {
|
|
3739
3733
|
return error instanceof Error ? error.message : String(error);
|
|
3740
3734
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { connect } from "node:net";
|
|
2
|
+
import { isPlainRecord } from "@oh-my-opencode/mcp-stdio-core/record";
|
|
2
3
|
import { ensureDaemonRunning } from "./ensure-daemon.js";
|
|
3
4
|
import { daemonPaths } from "./paths.js";
|
|
4
5
|
import { CONTEXT_KEY } from "./request-routing.js";
|
|
@@ -95,10 +96,10 @@ function sendToolCall(socketPath, name, args, timeoutMs) {
|
|
|
95
96
|
});
|
|
96
97
|
}
|
|
97
98
|
function toToolResult(message) {
|
|
98
|
-
if (!
|
|
99
|
+
if (!isPlainRecord(message) || message["id"] !== REQUEST_ID)
|
|
99
100
|
return null;
|
|
100
101
|
const result = message["result"];
|
|
101
|
-
if (!
|
|
102
|
+
if (!isPlainRecord(result) || !Array.isArray(result["content"]))
|
|
102
103
|
return null;
|
|
103
104
|
return {
|
|
104
105
|
content: result["content"],
|
|
@@ -106,9 +107,6 @@ function toToolResult(message) {
|
|
|
106
107
|
details: result["details"],
|
|
107
108
|
};
|
|
108
109
|
}
|
|
109
|
-
function isRecord(value) {
|
|
110
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
111
|
-
}
|
|
112
110
|
function errorText(error) {
|
|
113
111
|
return error instanceof Error ? error.message : String(error);
|
|
114
112
|
}
|
|
@@ -1415,6 +1415,11 @@ async function disposeDefaultLspManager() {
|
|
|
1415
1415
|
// src/daemon-client.ts
|
|
1416
1416
|
import { connect as connect2 } from "node:net";
|
|
1417
1417
|
|
|
1418
|
+
// ../mcp-stdio-core/src/record.ts
|
|
1419
|
+
function isPlainRecord(value) {
|
|
1420
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1421
|
+
}
|
|
1422
|
+
|
|
1418
1423
|
// src/ensure-daemon.ts
|
|
1419
1424
|
import { spawn as spawn2 } from "node:child_process";
|
|
1420
1425
|
import { closeSync as closeSync2, existsSync as existsSync2, mkdirSync as mkdirSync2, openSync as openSync2 } from "node:fs";
|
|
@@ -1632,11 +1637,6 @@ function resolveSocketPath(dir, version) {
|
|
|
1632
1637
|
return natural;
|
|
1633
1638
|
return join2(tmpdir(), `omo-lsp-${version}-${digest}.sock`);
|
|
1634
1639
|
}
|
|
1635
|
-
|
|
1636
|
-
// ../mcp-stdio-core/src/record.ts
|
|
1637
|
-
function isPlainRecord(value) {
|
|
1638
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1639
|
-
}
|
|
1640
1640
|
// ../mcp-stdio-core/src/responses.ts
|
|
1641
1641
|
function successResponse(id, result) {
|
|
1642
1642
|
return { jsonrpc: "2.0", id, result };
|
|
@@ -3550,13 +3550,13 @@ function requestedProtocolVersion(params) {
|
|
|
3550
3550
|
// src/request-routing.ts
|
|
3551
3551
|
var CONTEXT_KEY = "_context";
|
|
3552
3552
|
function extractRequestContext(raw) {
|
|
3553
|
-
if (!
|
|
3553
|
+
if (!isPlainRecord(raw) || raw["method"] !== "tools/call")
|
|
3554
3554
|
return { input: raw, context: undefined };
|
|
3555
3555
|
const params = raw["params"];
|
|
3556
|
-
if (!
|
|
3556
|
+
if (!isPlainRecord(params))
|
|
3557
3557
|
return { input: raw, context: undefined };
|
|
3558
3558
|
const args = params["arguments"];
|
|
3559
|
-
if (!
|
|
3559
|
+
if (!isPlainRecord(args))
|
|
3560
3560
|
return { input: raw, context: undefined };
|
|
3561
3561
|
const context = parseContext(args[CONTEXT_KEY]);
|
|
3562
3562
|
if (!context)
|
|
@@ -3573,7 +3573,7 @@ function handleDaemonMessage(raw) {
|
|
|
3573
3573
|
return handleLspMcpRequest(input);
|
|
3574
3574
|
}
|
|
3575
3575
|
function parseContext(value) {
|
|
3576
|
-
if (!
|
|
3576
|
+
if (!isPlainRecord(value))
|
|
3577
3577
|
return;
|
|
3578
3578
|
const context = {};
|
|
3579
3579
|
const cwd = value["cwd"];
|
|
@@ -3584,11 +3584,8 @@ function parseContext(value) {
|
|
|
3584
3584
|
context.env = env;
|
|
3585
3585
|
return context.cwd === undefined && context.env === undefined ? undefined : context;
|
|
3586
3586
|
}
|
|
3587
|
-
function isRecord5(value) {
|
|
3588
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
3589
|
-
}
|
|
3590
3587
|
function isStringRecord2(value) {
|
|
3591
|
-
return
|
|
3588
|
+
return isPlainRecord(value) && Object.values(value).every((item) => typeof item === "string");
|
|
3592
3589
|
}
|
|
3593
3590
|
|
|
3594
3591
|
// src/socket-jsonrpc.ts
|
|
@@ -3715,10 +3712,10 @@ function sendToolCall(socketPath, name, args, timeoutMs) {
|
|
|
3715
3712
|
});
|
|
3716
3713
|
}
|
|
3717
3714
|
function toToolResult(message) {
|
|
3718
|
-
if (!
|
|
3715
|
+
if (!isPlainRecord(message) || message["id"] !== REQUEST_ID)
|
|
3719
3716
|
return null;
|
|
3720
3717
|
const result = message["result"];
|
|
3721
|
-
if (!
|
|
3718
|
+
if (!isPlainRecord(result) || !Array.isArray(result["content"]))
|
|
3722
3719
|
return null;
|
|
3723
3720
|
return {
|
|
3724
3721
|
content: result["content"],
|
|
@@ -3726,9 +3723,6 @@ function toToolResult(message) {
|
|
|
3726
3723
|
details: result["details"]
|
|
3727
3724
|
};
|
|
3728
3725
|
}
|
|
3729
|
-
function isRecord6(value) {
|
|
3730
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
3731
|
-
}
|
|
3732
3726
|
function errorText(error) {
|
|
3733
3727
|
return error instanceof Error ? error.message : String(error);
|
|
3734
3728
|
}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { handleLspMcpRequest } from "@oh-my-opencode/lsp-core/mcp";
|
|
2
2
|
import { runWithRequestContext } from "@oh-my-opencode/lsp-core/request-context";
|
|
3
|
+
import { isPlainRecord } from "@oh-my-opencode/mcp-stdio-core/record";
|
|
3
4
|
export const CONTEXT_KEY = "_context";
|
|
4
5
|
export function extractRequestContext(raw) {
|
|
5
|
-
if (!
|
|
6
|
+
if (!isPlainRecord(raw) || raw["method"] !== "tools/call")
|
|
6
7
|
return { input: raw, context: undefined };
|
|
7
8
|
const params = raw["params"];
|
|
8
|
-
if (!
|
|
9
|
+
if (!isPlainRecord(params))
|
|
9
10
|
return { input: raw, context: undefined };
|
|
10
11
|
const args = params["arguments"];
|
|
11
|
-
if (!
|
|
12
|
+
if (!isPlainRecord(args))
|
|
12
13
|
return { input: raw, context: undefined };
|
|
13
14
|
const context = parseContext(args[CONTEXT_KEY]);
|
|
14
15
|
if (!context)
|
|
@@ -25,7 +26,7 @@ export function handleDaemonMessage(raw) {
|
|
|
25
26
|
return handleLspMcpRequest(input);
|
|
26
27
|
}
|
|
27
28
|
function parseContext(value) {
|
|
28
|
-
if (!
|
|
29
|
+
if (!isPlainRecord(value))
|
|
29
30
|
return undefined;
|
|
30
31
|
const context = {};
|
|
31
32
|
const cwd = value["cwd"];
|
|
@@ -36,9 +37,6 @@ function parseContext(value) {
|
|
|
36
37
|
context.env = env;
|
|
37
38
|
return context.cwd === undefined && context.env === undefined ? undefined : context;
|
|
38
39
|
}
|
|
39
|
-
function isRecord(value) {
|
|
40
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
41
|
-
}
|
|
42
40
|
function isStringRecord(value) {
|
|
43
|
-
return
|
|
41
|
+
return isPlainRecord(value) && Object.values(value).every((item) => typeof item === "string");
|
|
44
42
|
}
|