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