oh-my-opencode 5.0.0-beta.23 → 5.0.0-beta.25
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 +141 -184
- package/dist/cli-node/index.js +141 -184
- package/dist/index.js +1508 -1567
- package/dist/skills/debugging/SKILL.md +0 -2
- package/dist/skills/debugging/references/methodology/00-setup.md +0 -12
- package/dist/skills/debugging/references/methodology/02-investigate.md +0 -21
- package/dist/skills/debugging/references/runtimes/go.md +1 -15
- package/dist/skills/debugging/references/runtimes/native-binary.md +0 -38
- package/dist/skills/debugging/references/runtimes/node.md +0 -25
- package/dist/skills/debugging/references/runtimes/python.md +0 -13
- package/dist/skills/debugging/references/runtimes/rust.md +0 -41
- package/dist/tools/delegate-task/types.d.ts +0 -3
- package/dist/tui.js +0 -25
- package/package.json +15 -18
- package/packages/lsp-core/src/index.ts +0 -1
- package/packages/lsp-core/src/lsp/client-wrapper.ts +5 -25
- package/packages/lsp-core/src/lsp/client.ts +0 -26
- package/packages/lsp-core/src/lsp/connection.ts +0 -16
- package/packages/lsp-core/src/lsp/constants.ts +0 -1
- package/packages/lsp-core/src/lsp/manager.ts +1 -34
- package/packages/lsp-core/src/lsp/server-definitions.ts +0 -29
- package/packages/lsp-core/src/lsp/server-installation.ts +27 -200
- package/packages/lsp-core/src/lsp/server-resolution.ts +5 -18
- package/packages/lsp-core/src/lsp/transport.ts +0 -9
- package/packages/lsp-core/src/lsp/types.ts +0 -8
- package/packages/lsp-core/src/tool-surface.test.ts +1 -13
- package/packages/lsp-core/src/tools/definitions.ts +0 -14
- package/packages/lsp-core/src/tools/index.ts +0 -1
- package/packages/lsp-core/src/tools/types.ts +0 -10
- package/packages/lsp-daemon/dist/cli.js +144 -432
- package/packages/lsp-daemon/dist/client.d.ts +0 -10
- package/packages/lsp-daemon/dist/client.js +107 -401
- package/packages/lsp-daemon/dist/daemon-client.d.ts +0 -1
- package/packages/lsp-daemon/dist/daemon-client.js +0 -3
- package/packages/lsp-daemon/dist/index.js +107 -395
- package/packages/lsp-tools-mcp/dist/cli.js +99 -384
- package/packages/lsp-tools-mcp/dist/lsp/manager.js +0 -53
- package/packages/lsp-tools-mcp/dist/mcp.js +99 -384
- package/packages/lsp-tools-mcp/dist/tools.js +99 -385
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +2 -2
- package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
- package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +35 -69
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +2 -21
- package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +121 -404
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/dist/cli.js +3 -3
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +3 -3
- package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +4 -4
- 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/dist/cli.js +15 -30
- package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +15 -30
- 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 +2 -2
- package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-checking-ulw-execute-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/model-catalog.json +3 -3
- package/packages/omo-codex/plugin/package-lock.json +13 -13
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/catalog.mjs +3 -3
- package/packages/omo-codex/plugin/skills/debugging/SKILL.md +0 -2
- package/packages/omo-codex/plugin/skills/debugging/references/methodology/00-setup.md +0 -12
- package/packages/omo-codex/plugin/skills/debugging/references/methodology/02-investigate.md +0 -21
- package/packages/omo-codex/plugin/skills/debugging/references/runtimes/go.md +1 -15
- package/packages/omo-codex/plugin/skills/debugging/references/runtimes/native-binary.md +0 -38
- package/packages/omo-codex/plugin/skills/debugging/references/runtimes/node.md +0 -25
- package/packages/omo-codex/plugin/skills/debugging/references/runtimes/python.md +0 -13
- package/packages/omo-codex/plugin/skills/debugging/references/runtimes/rust.md +0 -41
- package/packages/omo-codex/plugin/test/aggregate-model-catalog.test.mjs +1 -1
- package/packages/omo-codex/plugin/test/auto-update.test.mjs +2 -2
- package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +8 -8
- package/packages/omo-codex/scripts/install-config-reasoning.test.mjs +2 -2
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +23 -38
- package/packages/shared-skills/skills/debugging/SKILL.md +0 -2
- package/packages/shared-skills/skills/debugging/references/methodology/00-setup.md +0 -12
- package/packages/shared-skills/skills/debugging/references/methodology/02-investigate.md +0 -21
- package/packages/shared-skills/skills/debugging/references/runtimes/go.md +1 -15
- package/packages/shared-skills/skills/debugging/references/runtimes/native-binary.md +0 -38
- package/packages/shared-skills/skills/debugging/references/runtimes/node.md +0 -25
- package/packages/shared-skills/skills/debugging/references/runtimes/python.md +0 -13
- package/packages/shared-skills/skills/debugging/references/runtimes/rust.md +0 -41
- package/dist/skills/debugging/references/scripts/dap.mjs +0 -267
- package/dist/skills/debugging/references/scripts/dap.test.ts +0 -86
- package/dist/skills/debugging/references/scripts/fixture-adapter.mjs +0 -59
- package/dist/skills/debugging/references/tools/dap.md +0 -103
- package/dist/skills/debugging/references/tools/frida.md +0 -193
- package/packages/lsp-core/src/lsp/format-document.test.ts +0 -143
- package/packages/lsp-core/src/lsp/format-document.ts +0 -90
- package/packages/lsp-core/src/lsp/manager-max-clients.test.ts +0 -151
- package/packages/lsp-core/src/lsp/server-installation.test.ts +0 -376
- package/packages/lsp-core/src/lsp/server-resolution-local-binary.test.ts +0 -170
- package/packages/lsp-core/src/tools/format.test.ts +0 -56
- package/packages/lsp-core/src/tools/format.ts +0 -56
- package/packages/omo-codex/plugin/skills/debugging/references/scripts/dap.mjs +0 -267
- package/packages/omo-codex/plugin/skills/debugging/references/scripts/fixture-adapter.mjs +0 -59
- package/packages/omo-codex/plugin/skills/debugging/references/tools/dap.md +0 -103
- package/packages/omo-codex/plugin/skills/debugging/references/tools/frida.md +0 -193
- package/packages/shared-skills/skills/debugging/references/scripts/dap.mjs +0 -267
- package/packages/shared-skills/skills/debugging/references/scripts/dap.test.ts +0 -86
- package/packages/shared-skills/skills/debugging/references/scripts/fixture-adapter.mjs +0 -59
- package/packages/shared-skills/skills/debugging/references/tools/dap.md +0 -103
- package/packages/shared-skills/skills/debugging/references/tools/frida.md +0 -193
package/dist/cli-node/index.js
CHANGED
|
@@ -55,7 +55,7 @@ var package_default;
|
|
|
55
55
|
var init_package = __esm(() => {
|
|
56
56
|
package_default = {
|
|
57
57
|
name: "oh-my-opencode",
|
|
58
|
-
version: "5.0.0-beta.
|
|
58
|
+
version: "5.0.0-beta.25",
|
|
59
59
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
60
60
|
main: "./dist/index.js",
|
|
61
61
|
types: "dist/index.d.ts",
|
|
@@ -236,7 +236,7 @@ var init_package = __esm(() => {
|
|
|
236
236
|
zod: "^4.4.3"
|
|
237
237
|
},
|
|
238
238
|
devDependencies: {
|
|
239
|
-
"@code-yeongyu/senpi": "2026.8.
|
|
239
|
+
"@code-yeongyu/senpi": "2026.8.26-2",
|
|
240
240
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
241
241
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
242
242
|
"@oh-my-opencode/boulder-state": "workspace:*",
|
|
@@ -277,18 +277,18 @@ var init_package = __esm(() => {
|
|
|
277
277
|
typescript: "^7.0.2"
|
|
278
278
|
},
|
|
279
279
|
optionalDependencies: {
|
|
280
|
-
"oh-my-opencode-darwin-arm64": "5.0.0-beta.
|
|
281
|
-
"oh-my-opencode-darwin-x64": "5.0.0-beta.
|
|
282
|
-
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.
|
|
283
|
-
"oh-my-opencode-linux-arm64": "5.0.0-beta.
|
|
284
|
-
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.
|
|
285
|
-
"oh-my-opencode-linux-x64": "5.0.0-beta.
|
|
286
|
-
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.
|
|
287
|
-
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.
|
|
288
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.
|
|
289
|
-
"oh-my-opencode-windows-arm64": "5.0.0-beta.
|
|
290
|
-
"oh-my-opencode-windows-x64": "5.0.0-beta.
|
|
291
|
-
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.
|
|
280
|
+
"oh-my-opencode-darwin-arm64": "5.0.0-beta.25",
|
|
281
|
+
"oh-my-opencode-darwin-x64": "5.0.0-beta.25",
|
|
282
|
+
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.25",
|
|
283
|
+
"oh-my-opencode-linux-arm64": "5.0.0-beta.25",
|
|
284
|
+
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.25",
|
|
285
|
+
"oh-my-opencode-linux-x64": "5.0.0-beta.25",
|
|
286
|
+
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.25",
|
|
287
|
+
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.25",
|
|
288
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.25",
|
|
289
|
+
"oh-my-opencode-windows-arm64": "5.0.0-beta.25",
|
|
290
|
+
"oh-my-opencode-windows-x64": "5.0.0-beta.25",
|
|
291
|
+
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.25"
|
|
292
292
|
},
|
|
293
293
|
overrides: {
|
|
294
294
|
"@earendil-works/pi-agent-core": "0.84.2",
|
|
@@ -304,10 +304,7 @@ var init_package = __esm(() => {
|
|
|
304
304
|
},
|
|
305
305
|
trustedDependencies: [
|
|
306
306
|
"@code-yeongyu/comment-checker"
|
|
307
|
-
]
|
|
308
|
-
patchedDependencies: {
|
|
309
|
-
"@code-yeongyu/senpi@2026.8.27": "patches/@code-yeongyu%2Fsenpi@2026.8.27.patch"
|
|
310
|
-
}
|
|
307
|
+
]
|
|
311
308
|
};
|
|
312
309
|
});
|
|
313
310
|
|
|
@@ -4817,12 +4814,9 @@ import {
|
|
|
4817
4814
|
fsyncSync,
|
|
4818
4815
|
openSync,
|
|
4819
4816
|
renameSync,
|
|
4820
|
-
rmSync,
|
|
4821
4817
|
unlinkSync,
|
|
4822
4818
|
writeFileSync
|
|
4823
4819
|
} from "node:fs";
|
|
4824
|
-
import { randomUUID } from "node:crypto";
|
|
4825
|
-
import { dirname } from "node:path";
|
|
4826
4820
|
function isToleratedFsyncError(error) {
|
|
4827
4821
|
if (!(error instanceof Error))
|
|
4828
4822
|
return false;
|
|
@@ -4838,36 +4832,24 @@ function tolerantFsyncSync(fileDescriptor, fsyncImpl) {
|
|
|
4838
4832
|
}
|
|
4839
4833
|
}
|
|
4840
4834
|
function writeFileAtomically(filePath, content, options = {}) {
|
|
4841
|
-
const
|
|
4842
|
-
|
|
4843
|
-
const
|
|
4835
|
+
const tempPath = `${filePath}.tmp`;
|
|
4836
|
+
writeFileSync(tempPath, content, "utf-8");
|
|
4837
|
+
const tempFileDescriptor = openSync(tempPath, "r+");
|
|
4844
4838
|
try {
|
|
4845
|
-
|
|
4846
|
-
|
|
4847
|
-
|
|
4848
|
-
|
|
4849
|
-
|
|
4850
|
-
|
|
4851
|
-
|
|
4852
|
-
|
|
4853
|
-
|
|
4854
|
-
} catch (error) {
|
|
4855
|
-
const isPermissionError = error instanceof Error && (error.message.includes("EPERM") || error.message.includes("EACCES"));
|
|
4856
|
-
if (platform !== "win32" || !isPermissionError)
|
|
4857
|
-
throw error;
|
|
4839
|
+
tolerantFsyncSync(tempFileDescriptor, options.fsyncSync ?? fsyncSync);
|
|
4840
|
+
} finally {
|
|
4841
|
+
closeSync(tempFileDescriptor);
|
|
4842
|
+
}
|
|
4843
|
+
try {
|
|
4844
|
+
renameSync(tempPath, filePath);
|
|
4845
|
+
} catch (error) {
|
|
4846
|
+
const isPermissionError = error instanceof Error && (error.message.includes("EPERM") || error.message.includes("EACCES"));
|
|
4847
|
+
if ((options.platform ?? process.platform) === "win32" && isPermissionError) {
|
|
4858
4848
|
unlinkSync(filePath);
|
|
4859
4849
|
renameSync(tempPath, filePath);
|
|
4860
|
-
}
|
|
4861
|
-
if (platform === "win32")
|
|
4862
4850
|
return;
|
|
4863
|
-
const directoryFileDescriptor = openSync(dirname(filePath), "r");
|
|
4864
|
-
try {
|
|
4865
|
-
tolerantFsyncSync(directoryFileDescriptor, fsyncImpl);
|
|
4866
|
-
} finally {
|
|
4867
|
-
closeSync(directoryFileDescriptor);
|
|
4868
4851
|
}
|
|
4869
|
-
|
|
4870
|
-
rmSync(tempPath, { force: true });
|
|
4852
|
+
throw error;
|
|
4871
4853
|
}
|
|
4872
4854
|
}
|
|
4873
4855
|
var TOLERATED_FSYNC_CODES;
|
|
@@ -20573,25 +20555,6 @@ var init_telemetry = __esm(() => {
|
|
|
20573
20555
|
}).strict();
|
|
20574
20556
|
});
|
|
20575
20557
|
|
|
20576
|
-
// packages/omo-config-core/src/schema/format-on-mutation.ts
|
|
20577
|
-
var mode, languages, OmoFormatOnMutationLayerSchema, OmoFormatOnMutationSchema;
|
|
20578
|
-
var init_format_on_mutation = __esm(() => {
|
|
20579
|
-
init_zod();
|
|
20580
|
-
mode = _enum2(["off", "best-effort", "required"]);
|
|
20581
|
-
languages = record(string2(), boolean2()).optional();
|
|
20582
|
-
OmoFormatOnMutationLayerSchema = object({
|
|
20583
|
-
mode: mode.optional(),
|
|
20584
|
-
languages,
|
|
20585
|
-
maxFileBytes: number2().int().positive().optional(),
|
|
20586
|
-
timeoutMs: number2().int().positive().optional()
|
|
20587
|
-
}).strict();
|
|
20588
|
-
OmoFormatOnMutationSchema = OmoFormatOnMutationLayerSchema.extend({
|
|
20589
|
-
mode: mode.default("best-effort"),
|
|
20590
|
-
maxFileBytes: number2().int().positive().default(1048576),
|
|
20591
|
-
timeoutMs: number2().int().positive().default(3000)
|
|
20592
|
-
}).strict();
|
|
20593
|
-
});
|
|
20594
|
-
|
|
20595
20558
|
// packages/omo-config-core/src/schema/config.ts
|
|
20596
20559
|
var OmoOpenCodeHarnessConfigSchema, OmoTypedHarnessConfigSchema, OmoConfigProfileSchema, OmoConfigSchema, OmoConfigLayerSchema;
|
|
20597
20560
|
var init_config = __esm(() => {
|
|
@@ -20605,10 +20568,8 @@ var init_config = __esm(() => {
|
|
|
20605
20568
|
init_task();
|
|
20606
20569
|
init_team();
|
|
20607
20570
|
init_telemetry();
|
|
20608
|
-
init_format_on_mutation();
|
|
20609
20571
|
OmoOpenCodeHarnessConfigSchema = record(string2(), unknown());
|
|
20610
20572
|
OmoTypedHarnessConfigSchema = object({
|
|
20611
|
-
formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
|
|
20612
20573
|
categories: OmoCategoriesConfigSchema.optional(),
|
|
20613
20574
|
agents: OmoAgentsConfigSchema.optional(),
|
|
20614
20575
|
codegraph: OmoCodegraphSettingsLayerSchema.optional(),
|
|
@@ -20620,7 +20581,6 @@ var init_config = __esm(() => {
|
|
|
20620
20581
|
telemetry: OmoTelemetrySettingsLayerSchema.optional()
|
|
20621
20582
|
}).strict();
|
|
20622
20583
|
OmoConfigProfileSchema = object({
|
|
20623
|
-
formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
|
|
20624
20584
|
categories: OmoCategoriesConfigSchema.optional(),
|
|
20625
20585
|
agents: OmoAgentsConfigSchema.optional(),
|
|
20626
20586
|
codegraph: OmoCodegraphSettingsLayerSchema.optional(),
|
|
@@ -20635,7 +20595,6 @@ var init_config = __esm(() => {
|
|
|
20635
20595
|
"[codex]": OmoTypedHarnessConfigSchema.optional()
|
|
20636
20596
|
}).strict();
|
|
20637
20597
|
OmoConfigSchema = object({
|
|
20638
|
-
formatOnMutation: OmoFormatOnMutationSchema.optional(),
|
|
20639
20598
|
$schema: string2().optional(),
|
|
20640
20599
|
categories: OmoCategoriesConfigSchema.optional(),
|
|
20641
20600
|
agents: OmoAgentsConfigSchema.optional(),
|
|
@@ -20654,7 +20613,6 @@ var init_config = __esm(() => {
|
|
|
20654
20613
|
legacy_migrations: record(string2(), unknown()).optional()
|
|
20655
20614
|
}).strict();
|
|
20656
20615
|
OmoConfigLayerSchema = object({
|
|
20657
|
-
formatOnMutation: OmoFormatOnMutationLayerSchema.optional(),
|
|
20658
20616
|
$schema: string2().optional(),
|
|
20659
20617
|
categories: OmoCategoriesConfigSchema.optional(),
|
|
20660
20618
|
agents: OmoAgentsConfigSchema.optional(),
|
|
@@ -20681,7 +20639,6 @@ var init_schema = __esm(() => {
|
|
|
20681
20639
|
init_codegraph();
|
|
20682
20640
|
init_config();
|
|
20683
20641
|
init_fallback_models();
|
|
20684
|
-
init_format_on_mutation();
|
|
20685
20642
|
init_git_master();
|
|
20686
20643
|
init_harness();
|
|
20687
20644
|
init_memory();
|
|
@@ -20751,7 +20708,7 @@ var init_types = __esm(() => {
|
|
|
20751
20708
|
|
|
20752
20709
|
// packages/omo-config-core/src/loader/paths.ts
|
|
20753
20710
|
import { userInfo } from "node:os";
|
|
20754
|
-
import { dirname
|
|
20711
|
+
import { dirname, join as join3, posix, resolve } from "node:path";
|
|
20755
20712
|
function resolveHomeDir(env = process.env) {
|
|
20756
20713
|
const homeDir = env.HOME ?? env.USERPROFILE ?? process.cwd();
|
|
20757
20714
|
return homeDir.startsWith("/") ? posix.resolve(homeDir) : toPosixPath(resolve(homeDir));
|
|
@@ -20816,7 +20773,7 @@ function findProjectConfigPathsFarthestFirst(cwd, homeDir, fileSystem, accountHo
|
|
|
20816
20773
|
nearestFirst.push(configPath);
|
|
20817
20774
|
if (isHomeDir)
|
|
20818
20775
|
break;
|
|
20819
|
-
const parentDir =
|
|
20776
|
+
const parentDir = dirname(currentDir);
|
|
20820
20777
|
if (parentDir === currentDir)
|
|
20821
20778
|
break;
|
|
20822
20779
|
currentDir = parentDir;
|
|
@@ -21256,8 +21213,8 @@ var init_jsonc_parse = __esm(() => {
|
|
|
21256
21213
|
});
|
|
21257
21214
|
|
|
21258
21215
|
// packages/omo-config-core/src/writer/writer.ts
|
|
21259
|
-
import { randomUUID
|
|
21260
|
-
import { dirname as
|
|
21216
|
+
import { randomUUID } from "node:crypto";
|
|
21217
|
+
import { dirname as dirname2, join as join4, posix as posix2 } from "node:path";
|
|
21261
21218
|
function backupSuffix() {
|
|
21262
21219
|
return new Date().toISOString().replace(/[:.]/g, "-");
|
|
21263
21220
|
}
|
|
@@ -21290,20 +21247,20 @@ function resolveWritePath(options) {
|
|
|
21290
21247
|
const jsoncPath2 = resolveUserOmoConfigPath(options.env);
|
|
21291
21248
|
if (fileSystem.existsSync(jsoncPath2))
|
|
21292
21249
|
return jsoncPath2;
|
|
21293
|
-
const jsonPath2 = join4(
|
|
21250
|
+
const jsonPath2 = join4(dirname2(jsoncPath2), "omo.json");
|
|
21294
21251
|
return fileSystem.existsSync(jsonPath2) ? jsonPath2 : jsoncPath2;
|
|
21295
21252
|
}
|
|
21296
21253
|
const jsoncPath = join4(options.projectDir ?? process.cwd(), ".omo", "omo.jsonc");
|
|
21297
21254
|
if (fileSystem.existsSync(jsoncPath))
|
|
21298
21255
|
return jsoncPath;
|
|
21299
|
-
const jsonPath = join4(
|
|
21256
|
+
const jsonPath = join4(dirname2(jsoncPath), "omo.json");
|
|
21300
21257
|
return fileSystem.existsSync(jsonPath) ? jsonPath : jsoncPath;
|
|
21301
21258
|
}
|
|
21302
21259
|
function directoryPath(path4) {
|
|
21303
|
-
return path4.startsWith("/") ? posix2.dirname(path4) :
|
|
21260
|
+
return path4.startsWith("/") ? posix2.dirname(path4) : dirname2(path4);
|
|
21304
21261
|
}
|
|
21305
21262
|
function writeAtomically(path4, content, fileSystem) {
|
|
21306
|
-
const tempPath = `${path4}.${
|
|
21263
|
+
const tempPath = `${path4}.${randomUUID()}.tmp`;
|
|
21307
21264
|
let tempCreated = false;
|
|
21308
21265
|
try {
|
|
21309
21266
|
fileSystem.writeFileExclusiveSync(tempPath, content);
|
|
@@ -21586,7 +21543,7 @@ var init_types3 = __esm(() => {
|
|
|
21586
21543
|
});
|
|
21587
21544
|
|
|
21588
21545
|
// packages/omo-config-core/src/migration/commit.ts
|
|
21589
|
-
import { basename, dirname as
|
|
21546
|
+
import { basename, dirname as dirname3, join as join5, resolve as resolve2 } from "node:path";
|
|
21590
21547
|
function parseDocument(path4, content) {
|
|
21591
21548
|
const parsed = parseJsoncSafe2(content);
|
|
21592
21549
|
if (parsed.errors.length > 0 || !isPlainObject5(parsed.data)) {
|
|
@@ -21620,11 +21577,11 @@ function writerInput(targetPath, env) {
|
|
|
21620
21577
|
const homeDir = resolveHomeDir(env);
|
|
21621
21578
|
const userDirectory = toPosixPath(join5(homeDir, ".omo"));
|
|
21622
21579
|
const fileName = basename(targetPath);
|
|
21623
|
-
if (toPosixPath(
|
|
21580
|
+
if (toPosixPath(dirname3(targetPath)) === userDirectory && (fileName === "omo.json" || fileName === "omo.jsonc")) {
|
|
21624
21581
|
return { scope: "user" };
|
|
21625
21582
|
}
|
|
21626
|
-
if (basename(
|
|
21627
|
-
return { projectDir:
|
|
21583
|
+
if (basename(dirname3(targetPath)) === ".omo" && (fileName === "omo.json" || fileName === "omo.jsonc")) {
|
|
21584
|
+
return { projectDir: dirname3(dirname3(targetPath)), scope: "project" };
|
|
21628
21585
|
}
|
|
21629
21586
|
throw new MigrationTransactionError(`Migration target is not an omo config path: ${targetPath}`);
|
|
21630
21587
|
}
|
|
@@ -21987,7 +21944,7 @@ var init_recovery = __esm(() => {
|
|
|
21987
21944
|
});
|
|
21988
21945
|
|
|
21989
21946
|
// packages/omo-config-core/src/migration/batch.ts
|
|
21990
|
-
import { dirname as
|
|
21947
|
+
import { dirname as dirname4, posix as posix3 } from "node:path";
|
|
21991
21948
|
function parseSource(path4, content) {
|
|
21992
21949
|
const parsed = parseJsoncSafe2(content);
|
|
21993
21950
|
if (parsed.errors.length > 0) {
|
|
@@ -22036,7 +21993,7 @@ function assertSafeSourcePaths(sources, protectedPaths) {
|
|
|
22036
21993
|
}
|
|
22037
21994
|
}
|
|
22038
21995
|
function directoryPath2(path4) {
|
|
22039
|
-
return path4.startsWith("/") ? posix3.dirname(path4) :
|
|
21996
|
+
return path4.startsWith("/") ? posix3.dirname(path4) : dirname4(path4);
|
|
22040
21997
|
}
|
|
22041
21998
|
function ensureBackupDirectories(moves, fileSystem) {
|
|
22042
21999
|
for (const move of moves)
|
|
@@ -22667,7 +22624,7 @@ var init_process_sweep = () => {};
|
|
|
22667
22624
|
// packages/utils/src/codegraph/resolve.ts
|
|
22668
22625
|
import { existsSync as existsSync7 } from "node:fs";
|
|
22669
22626
|
import { spawnSync } from "node:child_process";
|
|
22670
|
-
import { basename as basename2, dirname as
|
|
22627
|
+
import { basename as basename2, dirname as dirname5, join as join10 } from "node:path";
|
|
22671
22628
|
import { createRequire as createRequire2 } from "node:module";
|
|
22672
22629
|
function defaultNodeVersion(nodePath) {
|
|
22673
22630
|
if (nodePath === process.execPath && isNodeExecutableName(nodePath))
|
|
@@ -26095,7 +26052,7 @@ var init_resolve_agent_definition_paths = __esm(() => {
|
|
|
26095
26052
|
// packages/omo-opencode/src/shared/opencode-version.ts
|
|
26096
26053
|
import { execSync } from "child_process";
|
|
26097
26054
|
import { existsSync as existsSync9, readFileSync as readFileSync3, realpathSync as realpathSync4 } from "fs";
|
|
26098
|
-
import { dirname as
|
|
26055
|
+
import { dirname as dirname6, join as join13 } from "path";
|
|
26099
26056
|
function parseVersion(version2) {
|
|
26100
26057
|
const cleaned = version2.replace(/^v/, "").split("-")[0];
|
|
26101
26058
|
return cleaned.split(".").map((n) => parseInt(n, 10) || 0);
|
|
@@ -26136,7 +26093,7 @@ function parsePackageVersion(content) {
|
|
|
26136
26093
|
function getPackageVersionFromBinary(binaryPath, deps) {
|
|
26137
26094
|
try {
|
|
26138
26095
|
const realBinaryPath = deps.realpath(binaryPath);
|
|
26139
|
-
const packagePath = join13(
|
|
26096
|
+
const packagePath = join13(dirname6(dirname6(realBinaryPath)), "package.json");
|
|
26140
26097
|
if (!deps.exists(packagePath))
|
|
26141
26098
|
return null;
|
|
26142
26099
|
return parsePackageVersion(deps.readText(packagePath));
|
|
@@ -26374,10 +26331,10 @@ import {
|
|
|
26374
26331
|
} from "node:fs";
|
|
26375
26332
|
function writeFileAtomically2(filePath, content, deps = {}) {
|
|
26376
26333
|
const tempPath = `${filePath}.tmp`;
|
|
26377
|
-
const
|
|
26378
|
-
writeFileSync3(tempPath, content, { encoding: "utf-8", mode
|
|
26379
|
-
if (
|
|
26380
|
-
chmodSync2(tempPath,
|
|
26334
|
+
const mode = deps.mode;
|
|
26335
|
+
writeFileSync3(tempPath, content, { encoding: "utf-8", mode });
|
|
26336
|
+
if (mode !== undefined) {
|
|
26337
|
+
chmodSync2(tempPath, mode);
|
|
26381
26338
|
}
|
|
26382
26339
|
const tempFileDescriptor = openSync2(tempPath, "r+");
|
|
26383
26340
|
try {
|
|
@@ -26398,8 +26355,8 @@ function writeFileAtomically2(filePath, content, deps = {}) {
|
|
|
26398
26355
|
throw error51;
|
|
26399
26356
|
}
|
|
26400
26357
|
}
|
|
26401
|
-
if (
|
|
26402
|
-
chmodSync2(filePath,
|
|
26358
|
+
if (mode !== undefined) {
|
|
26359
|
+
chmodSync2(filePath, mode);
|
|
26403
26360
|
}
|
|
26404
26361
|
}
|
|
26405
26362
|
var init_write_file_atomically = __esm(() => {
|
|
@@ -84406,7 +84363,7 @@ var init_plugin_name_with_version = __esm(() => {
|
|
|
84406
84363
|
|
|
84407
84364
|
// packages/omo-opencode/src/cli/config-manager/backup-config.ts
|
|
84408
84365
|
import { copyFileSync as copyFileSync2, existsSync as existsSync16, mkdirSync as mkdirSync6 } from "node:fs";
|
|
84409
|
-
import { dirname as
|
|
84366
|
+
import { dirname as dirname7 } from "node:path";
|
|
84410
84367
|
function backupConfigFile(configPath) {
|
|
84411
84368
|
if (!existsSync16(configPath)) {
|
|
84412
84369
|
return { success: true };
|
|
@@ -84414,7 +84371,7 @@ function backupConfigFile(configPath) {
|
|
|
84414
84371
|
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
84415
84372
|
const backupPath = `${configPath}.backup-${timestamp}`;
|
|
84416
84373
|
try {
|
|
84417
|
-
const dir =
|
|
84374
|
+
const dir = dirname7(backupPath);
|
|
84418
84375
|
if (!existsSync16(dir)) {
|
|
84419
84376
|
mkdirSync6(dir, { recursive: true });
|
|
84420
84377
|
}
|
|
@@ -84612,7 +84569,7 @@ function extractVersionFromPluginEntry(entry) {
|
|
|
84612
84569
|
|
|
84613
84570
|
// packages/omo-opencode/src/cli/config-manager/add-plugin-to-opencode-config.ts
|
|
84614
84571
|
import { existsSync as existsSync19, readdirSync as readdirSync4, readFileSync as readFileSync8, writeFileSync as writeFileSync5 } from "node:fs";
|
|
84615
|
-
import { basename as basename3, dirname as
|
|
84572
|
+
import { basename as basename3, dirname as dirname8, join as join21 } from "node:path";
|
|
84616
84573
|
function detectConfigFormatInDir(configDir) {
|
|
84617
84574
|
const configJsonc = join21(configDir, "opencode.jsonc");
|
|
84618
84575
|
const configJson = join21(configDir, "opencode.json");
|
|
@@ -84625,10 +84582,10 @@ function detectConfigFormatInDir(configDir) {
|
|
|
84625
84582
|
return { format: "none", path: configJson };
|
|
84626
84583
|
}
|
|
84627
84584
|
function getParentConfigDirForProfile(configDir) {
|
|
84628
|
-
const parentDir =
|
|
84585
|
+
const parentDir = dirname8(configDir);
|
|
84629
84586
|
if (basename3(parentDir) !== "profiles")
|
|
84630
84587
|
return null;
|
|
84631
|
-
return
|
|
84588
|
+
return dirname8(parentDir);
|
|
84632
84589
|
}
|
|
84633
84590
|
function listProfileConfigDirs(rootConfigDir) {
|
|
84634
84591
|
const profilesDir = join21(rootConfigDir, "profiles");
|
|
@@ -86762,7 +86719,7 @@ var init_env2 = __esm(() => {
|
|
|
86762
86719
|
});
|
|
86763
86720
|
|
|
86764
86721
|
// node_modules/.bun/posthog-node@5.51.1/node_modules/posthog-node/dist/extensions/error-tracking/modifiers/module.node.mjs
|
|
86765
|
-
import { dirname as
|
|
86722
|
+
import { dirname as dirname17, posix as posix7, sep as sep7 } from "path";
|
|
86766
86723
|
function createModulerModifier() {
|
|
86767
86724
|
const getModuleFromFileName = createGetModuleFromFilename();
|
|
86768
86725
|
return async (frames) => {
|
|
@@ -86771,7 +86728,7 @@ function createModulerModifier() {
|
|
|
86771
86728
|
return frames;
|
|
86772
86729
|
};
|
|
86773
86730
|
}
|
|
86774
|
-
function createGetModuleFromFilename(basePath = process.argv[1] ?
|
|
86731
|
+
function createGetModuleFromFilename(basePath = process.argv[1] ? dirname17(process.argv[1]) : process.cwd(), isWindows = sep7 === "\\") {
|
|
86775
86732
|
const normalizedBase = isWindows ? normalizeWindowsPath(basePath) : basePath;
|
|
86776
86733
|
return (filename) => {
|
|
86777
86734
|
if (!filename)
|
|
@@ -92105,7 +92062,7 @@ function splitNodeOptions(nodeOptions) {
|
|
|
92105
92062
|
return args;
|
|
92106
92063
|
}
|
|
92107
92064
|
function findUnhandledRejectionMode(args) {
|
|
92108
|
-
let
|
|
92065
|
+
let mode;
|
|
92109
92066
|
for (let index = 0;index < args.length; index++) {
|
|
92110
92067
|
const argument = args[index];
|
|
92111
92068
|
const optionName = UNHANDLED_REJECTION_OPTION_NAMES.find((name) => argument === name || argument.startsWith(`${name}=`));
|
|
@@ -92113,9 +92070,9 @@ function findUnhandledRejectionMode(args) {
|
|
|
92113
92070
|
continue;
|
|
92114
92071
|
const value = argument === optionName ? args[++index] : argument.slice(optionName.length + 1);
|
|
92115
92072
|
if (UNHANDLED_REJECTION_MODES.has(value))
|
|
92116
|
-
|
|
92073
|
+
mode = value;
|
|
92117
92074
|
}
|
|
92118
|
-
return
|
|
92075
|
+
return mode;
|
|
92119
92076
|
}
|
|
92120
92077
|
function getUnhandledRejectionMode(execArgv = STARTUP_EXEC_ARGV, nodeOptions = STARTUP_NODE_OPTIONS) {
|
|
92121
92078
|
return findUnhandledRejectionMode(execArgv) ?? findUnhandledRejectionMode(splitNodeOptions(nodeOptions ?? "")) ?? "throw";
|
|
@@ -92141,17 +92098,17 @@ function makeUncaughtExceptionHandler(captureFn, onFatalFn) {
|
|
|
92141
92098
|
_posthogErrorHandler: true
|
|
92142
92099
|
});
|
|
92143
92100
|
}
|
|
92144
|
-
function addUncaughtExceptionListener(captureFn, onFatalFn,
|
|
92101
|
+
function addUncaughtExceptionListener(captureFn, onFatalFn, mode = STARTUP_UNHANDLED_REJECTION_MODE) {
|
|
92145
92102
|
const process4 = globalThis.process;
|
|
92146
92103
|
if (!process4)
|
|
92147
92104
|
return;
|
|
92148
|
-
if (
|
|
92105
|
+
if (mode === "strict")
|
|
92149
92106
|
return void process4.on("uncaughtExceptionMonitor", (error51, origin) => captureUncaughtException(captureFn, error51, origin));
|
|
92150
92107
|
process4.on("uncaughtException", makeUncaughtExceptionHandler(captureFn, onFatalFn));
|
|
92151
92108
|
}
|
|
92152
|
-
function addUnhandledRejectionListener(captureFn,
|
|
92109
|
+
function addUnhandledRejectionListener(captureFn, mode = STARTUP_UNHANDLED_REJECTION_MODE) {
|
|
92153
92110
|
const process4 = globalThis.process;
|
|
92154
|
-
if (!process4 ||
|
|
92111
|
+
if (!process4 || mode === "throw" || mode === "strict" || mode === "warn-with-error-code")
|
|
92155
92112
|
return;
|
|
92156
92113
|
process4.on("unhandledRejection", (reason) => {
|
|
92157
92114
|
captureFn(reason, {
|
|
@@ -94376,7 +94333,7 @@ var package_default2;
|
|
|
94376
94333
|
var init_package2 = __esm(() => {
|
|
94377
94334
|
package_default2 = {
|
|
94378
94335
|
name: "@oh-my-opencode/omo-codex",
|
|
94379
|
-
version: "5.0.0-beta.
|
|
94336
|
+
version: "5.0.0-beta.25",
|
|
94380
94337
|
type: "module",
|
|
94381
94338
|
private: true,
|
|
94382
94339
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -95346,19 +95303,19 @@ var init_update_toasts = __esm(() => {
|
|
|
95346
95303
|
|
|
95347
95304
|
// packages/omo-opencode/src/hooks/auto-update-checker/hook/background-update-check.ts
|
|
95348
95305
|
import { existsSync as existsSync48 } from "node:fs";
|
|
95349
|
-
import { dirname as
|
|
95306
|
+
import { dirname as dirname30, join as join76 } from "node:path";
|
|
95350
95307
|
import { fileURLToPath as fileURLToPath5 } from "node:url";
|
|
95351
95308
|
function defaultGetModuleHostingWorkspace() {
|
|
95352
95309
|
try {
|
|
95353
|
-
const currentDir =
|
|
95310
|
+
const currentDir = dirname30(fileURLToPath5(import.meta.url));
|
|
95354
95311
|
const pkgJsonPath = findPackageJsonUp(currentDir);
|
|
95355
95312
|
if (!pkgJsonPath)
|
|
95356
95313
|
return null;
|
|
95357
|
-
const pkgDir =
|
|
95358
|
-
const nodeModulesDir =
|
|
95314
|
+
const pkgDir = dirname30(pkgJsonPath);
|
|
95315
|
+
const nodeModulesDir = dirname30(pkgDir);
|
|
95359
95316
|
if (nodeModulesDir.split(/[\\/]/).pop() !== "node_modules")
|
|
95360
95317
|
return null;
|
|
95361
|
-
return
|
|
95318
|
+
return dirname30(nodeModulesDir);
|
|
95362
95319
|
} catch (error51) {
|
|
95363
95320
|
if (error51 instanceof Error) {
|
|
95364
95321
|
return null;
|
|
@@ -97907,9 +97864,9 @@ function formatConfigSummary(config3) {
|
|
|
97907
97864
|
`);
|
|
97908
97865
|
}
|
|
97909
97866
|
function printHeader(isUpdate) {
|
|
97910
|
-
const
|
|
97867
|
+
const mode = isUpdate ? "Update" : "Install";
|
|
97911
97868
|
console.log();
|
|
97912
|
-
console.log(import_picocolors.default.bgMagenta(import_picocolors.default.white(` oMoMoMoMo... ${
|
|
97869
|
+
console.log(import_picocolors.default.bgMagenta(import_picocolors.default.white(` oMoMoMoMo... ${mode} `)));
|
|
97913
97870
|
console.log();
|
|
97914
97871
|
}
|
|
97915
97872
|
function printStep(step, total, message) {
|
|
@@ -98188,7 +98145,7 @@ function windowsCommandShim(targetPath) {
|
|
|
98188
98145
|
|
|
98189
98146
|
// packages/omo-codex/src/install/codex-cache-dangling-bins.ts
|
|
98190
98147
|
import { lstat as lstat2, readFile, readdir, readlink, rm, stat } from "node:fs/promises";
|
|
98191
|
-
import { dirname as
|
|
98148
|
+
import { dirname as dirname9, isAbsolute, join as join23, resolve as resolve5 } from "node:path";
|
|
98192
98149
|
|
|
98193
98150
|
// packages/omo-codex/src/install/codex-cache-fs.ts
|
|
98194
98151
|
import { lstat } from "node:fs/promises";
|
|
@@ -98235,7 +98192,7 @@ async function removeDanglingManagedSymlink(linkPath) {
|
|
|
98235
98192
|
if (!linkStat.isSymbolicLink())
|
|
98236
98193
|
return;
|
|
98237
98194
|
const linkTarget = await readlink(linkPath);
|
|
98238
|
-
const target = isAbsolute(linkTarget) ? linkTarget : resolve5(
|
|
98195
|
+
const target = isAbsolute(linkTarget) ? linkTarget : resolve5(dirname9(linkPath), linkTarget);
|
|
98239
98196
|
if (!await isFileSystemEntry(target) && isManagedComponentBinTarget(target))
|
|
98240
98197
|
await rm(linkPath, { force: true });
|
|
98241
98198
|
} catch (error51) {
|
|
@@ -98697,11 +98654,11 @@ async function existingNonSymlink(path7) {
|
|
|
98697
98654
|
}
|
|
98698
98655
|
// packages/omo-codex/src/install/codex-cache-install.ts
|
|
98699
98656
|
import { cp as cp2, mkdir as mkdir3, readFile as readFile8, readdir as readdir4, rename, rm as rm4 } from "node:fs/promises";
|
|
98700
|
-
import { basename as basename5, dirname as
|
|
98657
|
+
import { basename as basename5, dirname as dirname12, join as join32, sep as sep5 } from "node:path";
|
|
98701
98658
|
|
|
98702
98659
|
// packages/omo-codex/src/install/codex-cache-bundled-mcps.ts
|
|
98703
98660
|
import { cp, mkdir as mkdir2, readFile as readFile4, stat as stat3 } from "node:fs/promises";
|
|
98704
|
-
import { dirname as
|
|
98661
|
+
import { dirname as dirname10, join as join27, resolve as resolve7 } from "node:path";
|
|
98705
98662
|
var BUNDLED_MCP_RUNTIMES = [
|
|
98706
98663
|
{
|
|
98707
98664
|
label: "Git Bash MCP",
|
|
@@ -98736,7 +98693,7 @@ async function copyBundledMcpRuntimeDist(pluginRoot, sourceRoot, runtime4) {
|
|
|
98736
98693
|
throw new Error(`missing built ${runtime4.label} dist at ${sourcePath}`);
|
|
98737
98694
|
}
|
|
98738
98695
|
const destinationPath = join27(pluginRoot, runtime4.destinationDistFromPlugin);
|
|
98739
|
-
await mkdir2(
|
|
98696
|
+
await mkdir2(dirname10(destinationPath), { recursive: true });
|
|
98740
98697
|
await cp(sourcePath, destinationPath, { recursive: true });
|
|
98741
98698
|
}
|
|
98742
98699
|
async function readSourceMcpArgs(path7) {
|
|
@@ -98774,7 +98731,7 @@ async function isDirectory(path7) {
|
|
|
98774
98731
|
// packages/omo-codex/src/install/codex-cache-local-dependencies.ts
|
|
98775
98732
|
import { realpathSync as realpathSync6 } from "node:fs";
|
|
98776
98733
|
import { readFile as readFile5, readdir as readdir3, writeFile as writeFile2 } from "node:fs/promises";
|
|
98777
|
-
import { dirname as
|
|
98734
|
+
import { dirname as dirname11, isAbsolute as isAbsolute4, join as join29, relative as relative3, resolve as resolve9, sep as sep2 } from "node:path";
|
|
98778
98735
|
|
|
98779
98736
|
// packages/omo-codex/src/install/codex-cache-paths.ts
|
|
98780
98737
|
import { existsSync as existsSync24, readdirSync as readdirSync6 } from "node:fs";
|
|
@@ -98843,7 +98800,7 @@ async function rewriteCachedPackageLocalFileDependencies(pluginRoot, sourceRoot)
|
|
|
98843
98800
|
const parsed = JSON.parse(raw);
|
|
98844
98801
|
if (!isPlainRecord4(parsed))
|
|
98845
98802
|
continue;
|
|
98846
|
-
const packageDir =
|
|
98803
|
+
const packageDir = dirname11(packageJsonPath);
|
|
98847
98804
|
const sourcePackageDir = join29(sourceRoot, relative3(pluginRoot, packageDir));
|
|
98848
98805
|
let changed = false;
|
|
98849
98806
|
for (const field of ["dependencies", "optionalDependencies", "peerDependencies"]) {
|
|
@@ -99238,13 +99195,13 @@ function sanitizeNpmInstallEnv(env2) {
|
|
|
99238
99195
|
return Object.fromEntries(Object.entries(env2).filter(([key]) => key.toLowerCase() !== "npm_config_allow_scripts"));
|
|
99239
99196
|
}
|
|
99240
99197
|
function createTempSiblingPath(targetPath) {
|
|
99241
|
-
return join32(
|
|
99198
|
+
return join32(dirname12(targetPath), `.tmp-${basename5(targetPath)}-${process.pid}-${Date.now()}`);
|
|
99242
99199
|
}
|
|
99243
99200
|
function createBackupSiblingPath(targetPath) {
|
|
99244
|
-
return join32(
|
|
99201
|
+
return join32(dirname12(targetPath), `.backup-${basename5(targetPath)}-${process.pid}-${Date.now()}`);
|
|
99245
99202
|
}
|
|
99246
99203
|
async function copyDirectory(sourcePath, targetPath) {
|
|
99247
|
-
await mkdir3(
|
|
99204
|
+
await mkdir3(dirname12(targetPath), { recursive: true });
|
|
99248
99205
|
await cp2(sourcePath, targetPath, { recursive: true, filter: (source) => shouldCopyPluginPath(source, sourcePath) });
|
|
99249
99206
|
}
|
|
99250
99207
|
async function promoteDirectory(tempPath, targetPath, renameDirectory) {
|
|
@@ -99343,20 +99300,20 @@ async function copyRootRuntimeDists(input) {
|
|
|
99343
99300
|
const sourcePath = join32(repoRoot, runtimePath);
|
|
99344
99301
|
if (!await fileExistsStrict(join32(sourcePath, "index.js")))
|
|
99345
99302
|
continue;
|
|
99346
|
-
await mkdir3(
|
|
99303
|
+
await mkdir3(dirname12(join32(input.pluginRoot, runtimePath)), { recursive: true });
|
|
99347
99304
|
await cp2(sourcePath, join32(input.pluginRoot, runtimePath), { recursive: true });
|
|
99348
99305
|
}
|
|
99349
99306
|
}
|
|
99350
99307
|
function repoRootForCodexPluginSource(sourcePath) {
|
|
99351
|
-
const codexPackageRoot =
|
|
99352
|
-
const packagesRoot =
|
|
99308
|
+
const codexPackageRoot = dirname12(sourcePath);
|
|
99309
|
+
const packagesRoot = dirname12(codexPackageRoot);
|
|
99353
99310
|
if (basename5(sourcePath) !== "plugin")
|
|
99354
99311
|
return null;
|
|
99355
99312
|
if (basename5(codexPackageRoot) !== "omo-codex")
|
|
99356
99313
|
return null;
|
|
99357
99314
|
if (basename5(packagesRoot) !== "packages")
|
|
99358
99315
|
return null;
|
|
99359
|
-
return
|
|
99316
|
+
return dirname12(packagesRoot);
|
|
99360
99317
|
}
|
|
99361
99318
|
// packages/omo-codex/src/install/codex-cache-prune.ts
|
|
99362
99319
|
import { lstat as lstat5, readdir as readdir5, rm as rm5, stat as stat4 } from "node:fs/promises";
|
|
@@ -99487,7 +99444,7 @@ async function shouldBuildSourcePackages(repoRoot) {
|
|
|
99487
99444
|
|
|
99488
99445
|
// packages/omo-codex/src/install/codex-config-toml.ts
|
|
99489
99446
|
import { mkdir as mkdir5, readFile as readFile11 } from "node:fs/promises";
|
|
99490
|
-
import { dirname as
|
|
99447
|
+
import { dirname as dirname15 } from "node:path";
|
|
99491
99448
|
|
|
99492
99449
|
// packages/omo-codex/src/install/toml-section-editor.ts
|
|
99493
99450
|
function findTomlSection(config3, header) {
|
|
@@ -100069,12 +100026,12 @@ function tomlKeySegment(value) {
|
|
|
100069
100026
|
|
|
100070
100027
|
// packages/omo-codex/src/install/codex-config-atomic-write.ts
|
|
100071
100028
|
import { lstat as lstat6, readlink as readlink4, realpath, rename as rename3, unlink, writeFile as writeFile5 } from "node:fs/promises";
|
|
100072
|
-
import { basename as basename6, dirname as
|
|
100029
|
+
import { basename as basename6, dirname as dirname13, isAbsolute as isAbsolute5, join as join36, resolve as resolve10 } from "node:path";
|
|
100073
100030
|
var RENAME_RETRY_DELAYS_MS = [10, 25, 50];
|
|
100074
100031
|
var RETRIABLE_RENAME_CODES = new Set(["EPERM", "EBUSY"]);
|
|
100075
100032
|
async function writeFileAtomic(targetPath, data) {
|
|
100076
100033
|
const writeTarget = await resolveSymlinkTarget(targetPath);
|
|
100077
|
-
const temporaryPath = join36(
|
|
100034
|
+
const temporaryPath = join36(dirname13(writeTarget), `.tmp-${basename6(writeTarget)}-${process.pid}-${Date.now()}`);
|
|
100078
100035
|
await writeFile5(temporaryPath, data);
|
|
100079
100036
|
try {
|
|
100080
100037
|
await renameWithRetry(temporaryPath, writeTarget);
|
|
@@ -100103,7 +100060,7 @@ async function resolveSymlinkTarget(targetPath) {
|
|
|
100103
100060
|
if (!(error51 instanceof Error))
|
|
100104
100061
|
throw error51;
|
|
100105
100062
|
const linkValue = await readlink4(targetPath);
|
|
100106
|
-
return isAbsolute5(linkValue) ? linkValue : resolve10(
|
|
100063
|
+
return isAbsolute5(linkValue) ? linkValue : resolve10(dirname13(targetPath), linkValue);
|
|
100107
100064
|
}
|
|
100108
100065
|
}
|
|
100109
100066
|
async function renameWithRetry(fromPath, toPath) {
|
|
@@ -100583,14 +100540,14 @@ import { join as join37 } from "node:path";
|
|
|
100583
100540
|
var FALLBACK_CODEX_MODEL_CATALOG = {
|
|
100584
100541
|
current: {
|
|
100585
100542
|
model: "gpt-5.6-sol",
|
|
100586
|
-
modelContextWindow:
|
|
100543
|
+
modelContextWindow: 372000,
|
|
100587
100544
|
modelReasoningEffort: "high",
|
|
100588
100545
|
planModeReasoningEffort: "xhigh"
|
|
100589
100546
|
},
|
|
100590
100547
|
managedProfiles: [
|
|
100591
100548
|
{
|
|
100592
100549
|
model: "gpt-5.5",
|
|
100593
|
-
modelContextWindow:
|
|
100550
|
+
modelContextWindow: 400000,
|
|
100594
100551
|
modelReasoningEffort: "high",
|
|
100595
100552
|
planModeReasoningEffort: "xhigh"
|
|
100596
100553
|
},
|
|
@@ -100688,7 +100645,7 @@ function isRootSetting2(line, key) {
|
|
|
100688
100645
|
|
|
100689
100646
|
// packages/omo-codex/src/install/codex-multi-agent-v2-config.ts
|
|
100690
100647
|
import { readFileSync as readFileSync11 } from "node:fs";
|
|
100691
|
-
import { dirname as
|
|
100648
|
+
import { dirname as dirname14, isAbsolute as isAbsolute6, join as join38 } from "node:path";
|
|
100692
100649
|
var CODEX_AGENTS_HEADER = "agents";
|
|
100693
100650
|
var CODEX_MULTI_AGENT_V2_HEADER = "features.multi_agent_v2";
|
|
100694
100651
|
var CODEX_MULTI_AGENT_V2_THREAD_LIMIT_KEY = `${CODEX_MULTI_AGENT_V2_HEADER}.max_concurrent_threads_per_session`;
|
|
@@ -100725,8 +100682,8 @@ function resolveCodexMultiAgentVersion(config3, configPath) {
|
|
|
100725
100682
|
}
|
|
100726
100683
|
function resolveCatalogPath(configuredPath, configPath) {
|
|
100727
100684
|
if (configuredPath === null)
|
|
100728
|
-
return join38(
|
|
100729
|
-
return isAbsolute6(configuredPath) ? configuredPath : join38(
|
|
100685
|
+
return join38(dirname14(configPath), "models_cache.json");
|
|
100686
|
+
return isAbsolute6(configuredPath) ? configuredPath : join38(dirname14(configPath), configuredPath);
|
|
100730
100687
|
}
|
|
100731
100688
|
function readCatalogMultiAgentVersion(model, cachePath) {
|
|
100732
100689
|
let raw;
|
|
@@ -100830,7 +100787,7 @@ function readBooleanSetting(sectionText, key) {
|
|
|
100830
100787
|
|
|
100831
100788
|
// packages/omo-codex/src/install/codex-config-toml.ts
|
|
100832
100789
|
async function updateCodexConfig(input) {
|
|
100833
|
-
await mkdir5(
|
|
100790
|
+
await mkdir5(dirname15(input.configPath), { recursive: true });
|
|
100834
100791
|
let config3;
|
|
100835
100792
|
try {
|
|
100836
100793
|
config3 = await readFile11(input.configPath, "utf8");
|
|
@@ -101803,7 +101760,7 @@ var defaultRunCommand = async (command, args, options) => {
|
|
|
101803
101760
|
|
|
101804
101761
|
// packages/omo-codex/src/install/codex-project-local-cleanup.ts
|
|
101805
101762
|
import { copyFile as copyFile2, lstat as lstat10, readFile as readFile17, writeFile as writeFile10 } from "node:fs/promises";
|
|
101806
|
-
import { dirname as
|
|
101763
|
+
import { dirname as dirname16, join as join46, resolve as resolve11 } from "node:path";
|
|
101807
101764
|
var LEGACY_AGENT_CONFLICT_KEYS = ["max_threads"];
|
|
101808
101765
|
var PROJECT_LOCAL_ARTIFACT_PATHS = [
|
|
101809
101766
|
".codex/hooks.json",
|
|
@@ -101923,13 +101880,13 @@ async function findProjectLocalCodexConfigs(startDirectory, codexHome) {
|
|
|
101923
101880
|
artifactRoots: artifactRootsForConfigPaths(configPathsFromCwd)
|
|
101924
101881
|
};
|
|
101925
101882
|
}
|
|
101926
|
-
const parent =
|
|
101883
|
+
const parent = dirname16(current);
|
|
101927
101884
|
if (parent === current) {
|
|
101928
101885
|
const nearestConfigPath = configPathsFromCwd[0];
|
|
101929
101886
|
return nearestConfigPath === undefined ? null : {
|
|
101930
|
-
projectRoot:
|
|
101887
|
+
projectRoot: dirname16(dirname16(nearestConfigPath)),
|
|
101931
101888
|
configPaths: [nearestConfigPath],
|
|
101932
|
-
artifactRoots: [
|
|
101889
|
+
artifactRoots: [dirname16(dirname16(nearestConfigPath))]
|
|
101933
101890
|
};
|
|
101934
101891
|
}
|
|
101935
101892
|
current = parent;
|
|
@@ -101945,7 +101902,7 @@ async function isRegularProjectLocalConfig(directory, configPath) {
|
|
|
101945
101902
|
function artifactRootsForConfigPaths(configPaths2) {
|
|
101946
101903
|
const roots = [];
|
|
101947
101904
|
for (const configPath of configPaths2) {
|
|
101948
|
-
const root =
|
|
101905
|
+
const root = dirname16(dirname16(configPath));
|
|
101949
101906
|
if (!roots.includes(root))
|
|
101950
101907
|
roots.push(root);
|
|
101951
101908
|
}
|
|
@@ -102855,7 +102812,7 @@ import { isAbsolute as isAbsolute11, join as join58, relative as relative6, reso
|
|
|
102855
102812
|
|
|
102856
102813
|
// packages/omo-codex/src/install/codex-cleanup-bins.ts
|
|
102857
102814
|
import { lstat as lstat12, readFile as readFile22, readdir as readdir12, readlink as readlink6, rm as rm11 } from "node:fs/promises";
|
|
102858
|
-
import { dirname as
|
|
102815
|
+
import { dirname as dirname18, isAbsolute as isAbsolute9, join as join56, resolve as resolve14 } from "node:path";
|
|
102859
102816
|
var ROOT_RUNTIME_BIN_NAME = "omo";
|
|
102860
102817
|
var MANAGED_CODEX_BIN_NAMES = new Set([
|
|
102861
102818
|
ROOT_RUNTIME_BIN_NAME,
|
|
@@ -102912,7 +102869,7 @@ async function isManagedCodexBin(linkPath, platform, binName) {
|
|
|
102912
102869
|
if (platform === "win32")
|
|
102913
102870
|
return false;
|
|
102914
102871
|
const linkTarget = await readlink6(linkPath);
|
|
102915
|
-
const target = isAbsolute9(linkTarget) ? linkTarget : resolve14(
|
|
102872
|
+
const target = isAbsolute9(linkTarget) ? linkTarget : resolve14(dirname18(linkPath), linkTarget);
|
|
102916
102873
|
return isManagedComponentBinTarget(target) || isLegacyCodexBinTarget(binName, target);
|
|
102917
102874
|
}
|
|
102918
102875
|
if (!entryStat.isFile())
|
|
@@ -102923,7 +102880,7 @@ async function isManagedCodexBin(linkPath, platform, binName) {
|
|
|
102923
102880
|
|
|
102924
102881
|
// packages/omo-codex/src/install/codex-cleanup-config.ts
|
|
102925
102882
|
import { lstat as lstat13, mkdir as mkdir8, readFile as readFile23, writeFile as writeFile13 } from "node:fs/promises";
|
|
102926
|
-
import { dirname as
|
|
102883
|
+
import { dirname as dirname19 } from "node:path";
|
|
102927
102884
|
var MANAGED_MARKETPLACES = ["sisyphuslabs", "lazycodex", "code-yeongyu-codex-plugins"];
|
|
102928
102885
|
var LEGACY_MANAGED_CODEX_AGENT_NAMES_TO_PURGE2 = ["codex-ultrawork-reviewer"];
|
|
102929
102886
|
var CURRENT_MANAGED_CODEX_AGENT_NAMES2 = [
|
|
@@ -102960,7 +102917,7 @@ async function cleanupCodexConfig(configPath, now) {
|
|
|
102960
102917
|
if (next === original)
|
|
102961
102918
|
return { changed: false };
|
|
102962
102919
|
const backupPath = `${configPath}.backup-${formatBackupTimestamp2(now?.() ?? new Date)}`;
|
|
102963
|
-
await mkdir8(
|
|
102920
|
+
await mkdir8(dirname19(configPath), { recursive: true });
|
|
102964
102921
|
await writeFile13(backupPath, original);
|
|
102965
102922
|
await writeFile13(configPath, `${next.trimEnd()}
|
|
102966
102923
|
`);
|
|
@@ -103039,10 +102996,10 @@ function nodeErrorCode5(error51) {
|
|
|
103039
102996
|
}
|
|
103040
102997
|
|
|
103041
102998
|
// packages/omo-codex/src/install/codex-cleanup-safety.ts
|
|
103042
|
-
import { dirname as
|
|
102999
|
+
import { dirname as dirname20, isAbsolute as isAbsolute10, join as join57, relative as relative5, resolve as resolve15 } from "node:path";
|
|
103043
103000
|
function codexHomeResolvesToFilesystemRoot(codexHome) {
|
|
103044
103001
|
const resolved = resolve15(codexHome);
|
|
103045
|
-
return
|
|
103002
|
+
return dirname20(resolved) === resolved;
|
|
103046
103003
|
}
|
|
103047
103004
|
function validateManagedCleanupTarget(input) {
|
|
103048
103005
|
if (!isAbsolute10(input.path))
|
|
@@ -103305,7 +103262,7 @@ var CODEGRAPH_RELATIVE_ARGS2 = new Set(["components/codegraph/dist/serve.js", ".
|
|
|
103305
103262
|
import { execFile as execFile4 } from "node:child_process";
|
|
103306
103263
|
import { existsSync as existsSync32 } from "node:fs";
|
|
103307
103264
|
import { homedir as homedir11 } from "node:os";
|
|
103308
|
-
import { dirname as
|
|
103265
|
+
import { dirname as dirname24, join as join63, resolve as resolve20 } from "node:path";
|
|
103309
103266
|
import { fileURLToPath } from "node:url";
|
|
103310
103267
|
import { promisify as promisify3 } from "node:util";
|
|
103311
103268
|
|
|
@@ -103336,9 +103293,9 @@ function resolveAgentHome(options) {
|
|
|
103336
103293
|
}
|
|
103337
103294
|
|
|
103338
103295
|
// packages/omo-senpi/src/install/local-launcher.ts
|
|
103339
|
-
import { chmodSync as chmodSync3, existsSync as existsSync31, mkdirSync as mkdirSync10, readFileSync as readFileSync14, rmSync
|
|
103296
|
+
import { chmodSync as chmodSync3, existsSync as existsSync31, mkdirSync as mkdirSync10, readFileSync as readFileSync14, rmSync, writeFileSync as writeFileSync6 } from "node:fs";
|
|
103340
103297
|
import { homedir as homedir10 } from "node:os";
|
|
103341
|
-
import { dirname as
|
|
103298
|
+
import { dirname as dirname21, join as join60, resolve as resolve18 } from "node:path";
|
|
103342
103299
|
var MARKER = "omo-local-launcher";
|
|
103343
103300
|
function localLauncherPath(homeDir = homedir10()) {
|
|
103344
103301
|
return join60(homeDir, ".local", "bin", "omo");
|
|
@@ -103409,7 +103366,7 @@ function installLocalLauncher(options) {
|
|
|
103409
103366
|
const path7 = localLauncherPath(options.homeDir);
|
|
103410
103367
|
if (existsSync31(path7) && !readFileSync14(path7, "utf8").includes(MARKER))
|
|
103411
103368
|
return;
|
|
103412
|
-
mkdirSync10(
|
|
103369
|
+
mkdirSync10(dirname21(path7), { recursive: true });
|
|
103413
103370
|
writeFileSync6(path7, renderLocalLauncher(options));
|
|
103414
103371
|
chmodSync3(path7, 493);
|
|
103415
103372
|
if ((options.platform ?? process.platform) === "win32") {
|
|
@@ -103424,12 +103381,12 @@ node "%~dp0omo" %*\r
|
|
|
103424
103381
|
import { createHash as createHash5 } from "node:crypto";
|
|
103425
103382
|
import { constants as constants9 } from "node:fs";
|
|
103426
103383
|
import { access as access2, readFile as readFile26, stat as stat6 } from "node:fs/promises";
|
|
103427
|
-
import { dirname as
|
|
103384
|
+
import { dirname as dirname23, join as join62 } from "node:path";
|
|
103428
103385
|
|
|
103429
103386
|
// packages/omo-senpi/src/install/senpi-settings.ts
|
|
103430
103387
|
import { constants as constants8 } from "node:fs";
|
|
103431
103388
|
import { access, copyFile as copyFile3, mkdir as mkdir9, readFile as readFile25, rename as rename5, writeFile as writeFile14 } from "node:fs/promises";
|
|
103432
|
-
import { dirname as
|
|
103389
|
+
import { dirname as dirname22, join as join61, resolve as resolve19 } from "node:path";
|
|
103433
103390
|
var OMO_SENPI_PACKAGE_NAME = "@code-yeongyu/omo-senpi";
|
|
103434
103391
|
var LEGACY_BUILTIN_SHADOW_PACKAGES = [
|
|
103435
103392
|
join61("packages", "pi-goal"),
|
|
@@ -103476,7 +103433,7 @@ async function removeSupersededOmoPackages(packages, currentPluginPath, agentDir
|
|
|
103476
103433
|
return entries.filter((entry) => entry !== undefined);
|
|
103477
103434
|
}
|
|
103478
103435
|
async function writeSettingsAtomically(settingsPath, settings) {
|
|
103479
|
-
await mkdir9(
|
|
103436
|
+
await mkdir9(dirname22(settingsPath), { recursive: true });
|
|
103480
103437
|
const backupPath = await nextBackupPath(settingsPath);
|
|
103481
103438
|
if (await fileExists(settingsPath)) {
|
|
103482
103439
|
await copyFile3(settingsPath, backupPath);
|
|
@@ -103596,7 +103553,7 @@ async function hasMissingPluginArtifact(pluginPath) {
|
|
|
103596
103553
|
}
|
|
103597
103554
|
async function verifyAstGrepRuntimeIntegrity(pluginPath, platform) {
|
|
103598
103555
|
const runtimeEntry = join62(pluginPath, "runtime", "ast-grep-mcp", "cli.js");
|
|
103599
|
-
const manifestPath = join62(
|
|
103556
|
+
const manifestPath = join62(dirname23(runtimeEntry), "manifest.json");
|
|
103600
103557
|
let runtimeStat;
|
|
103601
103558
|
try {
|
|
103602
103559
|
runtimeStat = await stat6(runtimeEntry);
|
|
@@ -103686,7 +103643,7 @@ async function runSenpiInstaller(options = {}) {
|
|
|
103686
103643
|
function resolveInstallContext(options) {
|
|
103687
103644
|
const env3 = options.env ?? process.env;
|
|
103688
103645
|
const allowBuild = options.pluginPath === undefined;
|
|
103689
|
-
const repoRoot = resolve20(options.repoRoot ?? (allowBuild ? findRepoRoot2(
|
|
103646
|
+
const repoRoot = resolve20(options.repoRoot ?? (allowBuild ? findRepoRoot2(dirname24(fileURLToPath(import.meta.url))) : dirname24(resolve20(options.pluginPath))));
|
|
103690
103647
|
const agentDir = resolve20(options.agentDir ?? resolveAgentHome({ env: env3, homeDir: env3.HOME ?? homedir11() }));
|
|
103691
103648
|
const pluginPath = resolve20(options.pluginPath ?? join63(repoRoot, "packages", "omo-senpi", "plugin"));
|
|
103692
103649
|
return {
|
|
@@ -107690,7 +107647,7 @@ var import_picocolors11 = __toESM(require_picocolors(), 1);
|
|
|
107690
107647
|
// packages/omo-opencode/src/cli/run/opencode-binary-resolver.ts
|
|
107691
107648
|
init_bun_which_shim();
|
|
107692
107649
|
init_spawn_with_windows_hide();
|
|
107693
|
-
import { delimiter as delimiter2, dirname as
|
|
107650
|
+
import { delimiter as delimiter2, dirname as dirname25, posix as posix9, win32 as win325 } from "node:path";
|
|
107694
107651
|
var OPENCODE_COMMANDS = ["opencode", "opencode-desktop"];
|
|
107695
107652
|
var WINDOWS_SUFFIXES = ["", ".exe", ".cmd", ".bat", ".ps1"];
|
|
107696
107653
|
function getCommandCandidates(platform) {
|
|
@@ -107748,7 +107705,7 @@ async function findWorkingOpencodeBinary(pathEnv = process.env.PATH, probe2 = ca
|
|
|
107748
107705
|
return null;
|
|
107749
107706
|
}
|
|
107750
107707
|
function buildPathWithBinaryFirst(pathEnv, binaryPath) {
|
|
107751
|
-
const preferredDir =
|
|
107708
|
+
const preferredDir = dirname25(binaryPath);
|
|
107752
107709
|
const existing = (pathEnv ?? "").split(delimiter2).filter((entry) => entry.length > 0 && entry !== preferredDir);
|
|
107753
107710
|
return [preferredDir, ...existing].join(delimiter2);
|
|
107754
107711
|
}
|
|
@@ -108526,7 +108483,7 @@ init_state();
|
|
|
108526
108483
|
// packages/omo-opencode/src/features/run-continuation-state/constants.ts
|
|
108527
108484
|
var CONTINUATION_MARKER_DIR = ".omo/run-continuation";
|
|
108528
108485
|
// packages/omo-opencode/src/features/run-continuation-state/storage.ts
|
|
108529
|
-
import { existsSync as existsSync40, mkdirSync as mkdirSync12, readFileSync as readFileSync20, rmSync as
|
|
108486
|
+
import { existsSync as existsSync40, mkdirSync as mkdirSync12, readFileSync as readFileSync20, rmSync as rmSync2, writeFileSync as writeFileSync7 } from "node:fs";
|
|
108530
108487
|
import { join as join68 } from "node:path";
|
|
108531
108488
|
function getMarkerPath(directory, sessionID) {
|
|
108532
108489
|
return join68(directory, CONTINUATION_MARKER_DIR, `${sessionID}.json`);
|
|
@@ -108706,7 +108663,7 @@ init_agent_display_names();
|
|
|
108706
108663
|
// packages/omo-opencode/src/hooks/ralph-loop/storage.ts
|
|
108707
108664
|
init_frontmatter2();
|
|
108708
108665
|
import { existsSync as existsSync41, readFileSync as readFileSync22, writeFileSync as writeFileSync8, unlinkSync as unlinkSync6, mkdirSync as mkdirSync13 } from "node:fs";
|
|
108709
|
-
import { dirname as
|
|
108666
|
+
import { dirname as dirname26, join as join70 } from "node:path";
|
|
108710
108667
|
|
|
108711
108668
|
// packages/omo-opencode/src/hooks/ralph-loop/constants.ts
|
|
108712
108669
|
var DEFAULT_STATE_FILE = ".omo/ralph-loop.local.md";
|
|
@@ -110548,8 +110505,8 @@ function getCategoryEffectiveVariant(categoryName, requirement, config4) {
|
|
|
110548
110505
|
}
|
|
110549
110506
|
|
|
110550
110507
|
// packages/omo-opencode/src/cli/doctor/checks/model-resolution-details.ts
|
|
110551
|
-
function formatCapabilityResolutionLabel(
|
|
110552
|
-
return
|
|
110508
|
+
function formatCapabilityResolutionLabel(mode) {
|
|
110509
|
+
return mode ?? "unknown";
|
|
110553
110510
|
}
|
|
110554
110511
|
function buildModelResolutionDetails(options) {
|
|
110555
110512
|
const details = [];
|
|
@@ -110667,8 +110624,8 @@ function collectCapabilityResolutionIssues(info) {
|
|
|
110667
110624
|
const issues = [];
|
|
110668
110625
|
const allEntries = [...info.agents, ...info.categories];
|
|
110669
110626
|
const fallbackEntries = allEntries.filter((entry) => {
|
|
110670
|
-
const
|
|
110671
|
-
return
|
|
110627
|
+
const mode = entry.capabilityDiagnostics?.resolutionMode;
|
|
110628
|
+
return mode === "unknown";
|
|
110672
110629
|
});
|
|
110673
110630
|
if (fallbackEntries.length === 0) {
|
|
110674
110631
|
return issues;
|
|
@@ -110944,7 +110901,7 @@ init_src2();
|
|
|
110944
110901
|
import { existsSync as existsSync55 } from "node:fs";
|
|
110945
110902
|
import { createRequire as createRequire4 } from "node:module";
|
|
110946
110903
|
import { homedir as homedir19 } from "node:os";
|
|
110947
|
-
import { dirname as
|
|
110904
|
+
import { dirname as dirname31, join as join83 } from "node:path";
|
|
110948
110905
|
|
|
110949
110906
|
// packages/omo-opencode/src/hooks/comment-checker/downloader.ts
|
|
110950
110907
|
import { join as join82 } from "path";
|
|
@@ -111041,7 +110998,7 @@ function findCommentCheckerPackageBinary(baseDirOverride, resolvePackageJsonPath
|
|
|
111041
110998
|
const binaryName = process.platform === "win32" ? "comment-checker.exe" : "comment-checker";
|
|
111042
110999
|
const platformKey = `${process.platform}-${process.arch === "x64" ? "x64" : process.arch}`;
|
|
111043
111000
|
try {
|
|
111044
|
-
const packageDir = baseDirOverride ??
|
|
111001
|
+
const packageDir = baseDirOverride ?? dirname31(resolvePackageJsonPath());
|
|
111045
111002
|
const vendorPath = join83(packageDir, "vendor", platformKey, binaryName);
|
|
111046
111003
|
if (existsSync55(vendorPath))
|
|
111047
111004
|
return vendorPath;
|
|
@@ -111193,7 +111150,7 @@ async function getGhCliInfo(dependencies = {}) {
|
|
|
111193
111150
|
init_zod();
|
|
111194
111151
|
init_opencode_config_dir();
|
|
111195
111152
|
import { existsSync as existsSync56, readFileSync as readFileSync35 } from "node:fs";
|
|
111196
|
-
import { delimiter as delimiter3, dirname as
|
|
111153
|
+
import { delimiter as delimiter3, dirname as dirname32, resolve as resolve23 } from "node:path";
|
|
111197
111154
|
import { fileURLToPath as fileURLToPath7 } from "node:url";
|
|
111198
111155
|
|
|
111199
111156
|
// packages/omo-opencode/src/mcp/cli-suffix.ts
|
|
@@ -111324,7 +111281,7 @@ var LSP_BOOTSTRAP_SCRIPT = [
|
|
|
111324
111281
|
].join(";");
|
|
111325
111282
|
function getModuleDirectory(moduleUrl) {
|
|
111326
111283
|
try {
|
|
111327
|
-
return
|
|
111284
|
+
return dirname32(fileURLToPath7(moduleUrl));
|
|
111328
111285
|
} catch (error51) {
|
|
111329
111286
|
if (!(error51 instanceof Error))
|
|
111330
111287
|
throw error51;
|
|
@@ -112057,7 +112014,7 @@ async function pathExists2(path15) {
|
|
|
112057
112014
|
init_src2();
|
|
112058
112015
|
import { readdir as readdir15, readFile as readFile28, stat as stat7 } from "node:fs/promises";
|
|
112059
112016
|
import { homedir as homedir23 } from "node:os";
|
|
112060
|
-
import { dirname as
|
|
112017
|
+
import { dirname as dirname33, isAbsolute as isAbsolute13, join as join86, relative as relative9, resolve as resolve25, sep as sep9 } from "node:path";
|
|
112061
112018
|
var CODEX_COMPONENTS_CHECK_ID = "codex-components";
|
|
112062
112019
|
var CODEX_COMPONENTS_CHECK_NAME = "codex-components";
|
|
112063
112020
|
var PLUGIN_DATA_DIR_NAME = "omo-sisyphuslabs";
|
|
@@ -112131,7 +112088,7 @@ async function auditBundleTargets(pluginRoot) {
|
|
|
112131
112088
|
const manifest2 = await readJson2(manifestPath);
|
|
112132
112089
|
if (manifest2 === null || !isRecord13(manifest2["mcpServers"]))
|
|
112133
112090
|
continue;
|
|
112134
|
-
const manifestRoot =
|
|
112091
|
+
const manifestRoot = dirname33(manifestPath);
|
|
112135
112092
|
const isRootManifest = resolve25(manifestRoot) === resolve25(pluginRoot);
|
|
112136
112093
|
for (const server2 of Object.values(manifest2["mcpServers"])) {
|
|
112137
112094
|
if (!isRecord13(server2) || !Array.isArray(server2["args"]))
|
|
@@ -112152,7 +112109,7 @@ async function auditBundleTargets(pluginRoot) {
|
|
|
112152
112109
|
continue;
|
|
112153
112110
|
const commands2 = [];
|
|
112154
112111
|
collectHookCommands(manifest2, commands2);
|
|
112155
|
-
const hookPluginRoot =
|
|
112112
|
+
const hookPluginRoot = dirname33(dirname33(hookManifestPath));
|
|
112156
112113
|
for (const command of commands2) {
|
|
112157
112114
|
for (const relativePath of extractPluginRootPaths(command)) {
|
|
112158
112115
|
referencedCount += 1;
|
|
@@ -112191,7 +112148,7 @@ async function classifyBundleTarget(bundleRoot, baseRoot, relativePath, allowEsc
|
|
|
112191
112148
|
}
|
|
112192
112149
|
async function findHookManifestPaths(root) {
|
|
112193
112150
|
const paths3 = await findManifestPaths(root, "hooks.json");
|
|
112194
|
-
return paths3.filter((path15) =>
|
|
112151
|
+
return paths3.filter((path15) => dirname33(path15).endsWith(`${sep9}hooks`));
|
|
112195
112152
|
}
|
|
112196
112153
|
async function findManifestPaths(root, manifestName) {
|
|
112197
112154
|
let entries;
|
|
@@ -112710,8 +112667,8 @@ function formatVerbose(result) {
|
|
|
112710
112667
|
}
|
|
112711
112668
|
|
|
112712
112669
|
// packages/omo-opencode/src/cli/doctor/framework/formatter.ts
|
|
112713
|
-
function formatDoctorOutput(result,
|
|
112714
|
-
switch (
|
|
112670
|
+
function formatDoctorOutput(result, mode) {
|
|
112671
|
+
switch (mode) {
|
|
112715
112672
|
case "default":
|
|
112716
112673
|
return formatDefault(result);
|
|
112717
112674
|
case "status":
|
|
@@ -112875,7 +112832,7 @@ import {
|
|
|
112875
112832
|
unlinkSync as unlinkSync9,
|
|
112876
112833
|
writeFileSync as writeFileSync12
|
|
112877
112834
|
} from "node:fs";
|
|
112878
|
-
import { basename as basename12, dirname as
|
|
112835
|
+
import { basename as basename12, dirname as dirname34, join as join90 } from "node:path";
|
|
112879
112836
|
|
|
112880
112837
|
// packages/mcp-client-core/src/config-dir.ts
|
|
112881
112838
|
import { existsSync as existsSync61, realpathSync as realpathSync8 } from "node:fs";
|
|
@@ -113059,7 +113016,7 @@ function readLegacyStore() {
|
|
|
113059
113016
|
}
|
|
113060
113017
|
function writeTokenFile(filePath, token) {
|
|
113061
113018
|
try {
|
|
113062
|
-
const dir =
|
|
113019
|
+
const dir = dirname34(filePath);
|
|
113063
113020
|
if (!existsSync63(dir)) {
|
|
113064
113021
|
mkdirSync15(dir, { recursive: true });
|
|
113065
113022
|
}
|
|
@@ -114031,10 +113988,10 @@ function formatClassification(classification) {
|
|
|
114031
113988
|
return classification.ref.length > 0 ? `${head} ${classification.path} ${classification.ref}` : `${head} ${classification.path}`;
|
|
114032
113989
|
}
|
|
114033
113990
|
function formatSummary(result) {
|
|
114034
|
-
const
|
|
113991
|
+
const mode = result.apply ? "apply" : "dry-run";
|
|
114035
113992
|
const removed2 = result.repos.reduce((total, repo) => total + repo.removed.length, 0);
|
|
114036
113993
|
const failed = result.repos.reduce((total, repo) => total + repo.failed.length, 0);
|
|
114037
|
-
return `SUMMARY mode=${
|
|
113994
|
+
return `SUMMARY mode=${mode} repos=${result.repos.length} sweep=${result.sweepCount} keep=${result.keepCount} prune=${result.pruneCount} removed=${removed2} failed=${failed}`;
|
|
114038
113995
|
}
|
|
114039
113996
|
function formatResult(result) {
|
|
114040
113997
|
const lines = [];
|
|
@@ -114556,9 +114513,9 @@ Examples:
|
|
|
114556
114513
|
`).action(async (options) => {
|
|
114557
114514
|
const rootOptions = program2.opts();
|
|
114558
114515
|
const rootDoctorPlatform = rootOptions.platform === "opencode" || rootOptions.platform === "codex" ? rootOptions.platform : undefined;
|
|
114559
|
-
const
|
|
114516
|
+
const mode = options.status ? "status" : options.verbose ? "verbose" : "default";
|
|
114560
114517
|
const doctorOptions = {
|
|
114561
|
-
mode
|
|
114518
|
+
mode,
|
|
114562
114519
|
json: options.json ?? false,
|
|
114563
114520
|
target: resolveDoctorTarget(process.env.OMO_INVOCATION_NAME, options.platform ?? rootDoctorPlatform)
|
|
114564
114521
|
};
|