oh-my-opencode 4.17.0 → 4.18.0
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/.agents/command/publish.md +31 -58
- package/.agents/skills/codex-qa/SKILL.md +2 -0
- package/.agents/skills/pre-publish-review/SKILL.md +1 -1
- package/.agents/skills/publish/SKILL.md +32 -59
- package/.opencode/command/publish.md +31 -58
- package/.opencode/skills/pre-publish-review/SKILL.md +1 -1
- package/dist/cli/get-local-version/types.d.ts +1 -1
- package/dist/cli/index.js +71 -38
- package/dist/cli-node/index.js +71 -38
- package/dist/index.js +212 -258
- package/dist/skills/frontend/SKILL.md +1 -1
- package/dist/skills/frontend/references/design/README.md +9 -0
- package/dist/skills/frontend/references/design/design-system-architecture.md +4 -2
- package/dist/skills/frontend/references/design/layout-skill.md +107 -0
- package/dist/skills/programming/SKILL.md +12 -2
- package/dist/skills/review-work/SKILL.md +10 -2
- package/dist/skills/start-work/SKILL.md +1 -1
- package/dist/skills/ultimate-browsing/ATTRIBUTION.md +2 -2
- package/dist/skills/ultimate-browsing/engine/templates/package.json +1 -1
- package/dist/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
- package/dist/skills/ulw-plan/SKILL.md +2 -1
- package/dist/skills/ulw-plan/references/full-workflow.md +1 -1
- package/dist/skills/ulw-plan/references/intent-unclear.md +4 -4
- package/dist/skills/visual-qa/SKILL.md +9 -5
- package/dist/tui.js +8 -3
- package/package.json +14 -13
- package/packages/lsp-daemon/dist/cli.js +7 -13
- package/packages/lsp-daemon/dist/daemon-client.js +3 -5
- package/packages/lsp-daemon/dist/index.js +12 -18
- package/packages/lsp-daemon/dist/request-routing.js +6 -8
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +398 -400
- package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
- package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +14 -14
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.5.md +2 -2
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.6.md +9 -7
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/AGENTS.md +2 -2
- package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/skills/teammode/SKILL.md +33 -16
- package/packages/omo-codex/plugin/components/teammode/skills/teammode/scripts/team.mjs +2 -1
- package/packages/omo-codex/plugin/components/teammode/test/v2-spawn-schema.test.ts +69 -0
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +3 -3
- package/packages/omo-codex/plugin/components/ultrawork/directive.md +66 -27
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +66 -27
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +2 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +4 -4
- package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +9 -6
- package/packages/omo-codex/plugin/components/ulw-loop/directive.md +66 -27
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +2 -2
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +6 -6
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/package-lock.json +13 -13
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/skills/frontend/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +9 -0
- package/packages/omo-codex/plugin/skills/frontend/references/design/design-system-architecture.md +4 -2
- package/packages/omo-codex/plugin/skills/frontend/references/design/layout-skill.md +107 -0
- package/packages/omo-codex/plugin/skills/programming/SKILL.md +12 -2
- package/packages/omo-codex/plugin/skills/review-work/SKILL.md +10 -2
- package/packages/omo-codex/plugin/skills/start-work/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/teammode/SKILL.md +33 -16
- package/packages/omo-codex/plugin/skills/teammode/scripts/team.mjs +2 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/ATTRIBUTION.md +2 -2
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/package.json +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
- package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +66 -27
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +2 -2
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +6 -6
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +2 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +4 -4
- package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +9 -5
- package/packages/omo-codex/plugin/test/sync-skills.test.mjs +1 -1
- package/packages/omo-codex/plugin/test/teammode-transport.test.mjs +25 -0
- package/packages/omo-codex/plugin/test/ulw-plan-scope-contract.test.mjs +24 -0
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +32 -22
- package/packages/shared-skills/skills/frontend/SKILL.md +1 -1
- package/packages/shared-skills/skills/frontend/references/design/README.md +9 -0
- package/packages/shared-skills/skills/frontend/references/design/design-system-architecture.md +4 -2
- package/packages/shared-skills/skills/frontend/references/design/layout-skill.md +107 -0
- package/packages/shared-skills/skills/programming/SKILL.md +12 -2
- package/packages/shared-skills/skills/review-work/SKILL.md +10 -2
- package/packages/shared-skills/skills/start-work/SKILL.md +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/ATTRIBUTION.md +2 -2
- package/packages/shared-skills/skills/ultimate-browsing/engine/templates/package.json +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +2 -1
- package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +1 -1
- package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +4 -4
- package/packages/shared-skills/skills/visual-qa/SKILL.md +9 -5
package/dist/cli/index.js
CHANGED
|
@@ -2145,7 +2145,7 @@ var package_default;
|
|
|
2145
2145
|
var init_package = __esm(() => {
|
|
2146
2146
|
package_default = {
|
|
2147
2147
|
name: "oh-my-opencode",
|
|
2148
|
-
version: "4.
|
|
2148
|
+
version: "4.18.0",
|
|
2149
2149
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
2150
2150
|
main: "./dist/index.js",
|
|
2151
2151
|
types: "dist/index.d.ts",
|
|
@@ -2252,6 +2252,7 @@ var init_package = __esm(() => {
|
|
|
2252
2252
|
build: "bun run script/build.ts",
|
|
2253
2253
|
"build:cli-node": "bun run script/build-cli-node.ts",
|
|
2254
2254
|
"build:codex-install": "bun run script/build-codex-install.ts",
|
|
2255
|
+
"install:codex-dev": "bun run script/build-codex-install.ts && bun run script/install-codex-dev.ts",
|
|
2255
2256
|
"build:codex-plugin": "npm --prefix packages/omo-codex/plugin ci && bun run --cwd packages/omo-codex/plugin build",
|
|
2256
2257
|
"build:senpi-plugin": "node packages/omo-senpi/plugin/scripts/build-extension.mjs && node packages/omo-senpi/plugin/scripts/sync-skills.mjs && node packages/omo-senpi/plugin/scripts/embed-directive.mjs --check",
|
|
2257
2258
|
"build:materialize-frontend": "node packages/omo-codex/plugin/scripts/materialize-shared-upstreams.mjs --strict",
|
|
@@ -2356,18 +2357,18 @@ var init_package = __esm(() => {
|
|
|
2356
2357
|
typescript: "^6.0.3"
|
|
2357
2358
|
},
|
|
2358
2359
|
optionalDependencies: {
|
|
2359
|
-
"oh-my-opencode-darwin-arm64": "4.
|
|
2360
|
-
"oh-my-opencode-darwin-x64": "4.
|
|
2361
|
-
"oh-my-opencode-darwin-x64-baseline": "4.
|
|
2362
|
-
"oh-my-opencode-linux-arm64": "4.
|
|
2363
|
-
"oh-my-opencode-linux-arm64-musl": "4.
|
|
2364
|
-
"oh-my-opencode-linux-x64": "4.
|
|
2365
|
-
"oh-my-opencode-linux-x64-baseline": "4.
|
|
2366
|
-
"oh-my-opencode-linux-x64-musl": "4.
|
|
2367
|
-
"oh-my-opencode-linux-x64-musl-baseline": "4.
|
|
2368
|
-
"oh-my-opencode-windows-arm64": "4.
|
|
2369
|
-
"oh-my-opencode-windows-x64": "4.
|
|
2370
|
-
"oh-my-opencode-windows-x64-baseline": "4.
|
|
2360
|
+
"oh-my-opencode-darwin-arm64": "4.18.0",
|
|
2361
|
+
"oh-my-opencode-darwin-x64": "4.18.0",
|
|
2362
|
+
"oh-my-opencode-darwin-x64-baseline": "4.18.0",
|
|
2363
|
+
"oh-my-opencode-linux-arm64": "4.18.0",
|
|
2364
|
+
"oh-my-opencode-linux-arm64-musl": "4.18.0",
|
|
2365
|
+
"oh-my-opencode-linux-x64": "4.18.0",
|
|
2366
|
+
"oh-my-opencode-linux-x64-baseline": "4.18.0",
|
|
2367
|
+
"oh-my-opencode-linux-x64-musl": "4.18.0",
|
|
2368
|
+
"oh-my-opencode-linux-x64-musl-baseline": "4.18.0",
|
|
2369
|
+
"oh-my-opencode-windows-arm64": "4.18.0",
|
|
2370
|
+
"oh-my-opencode-windows-x64": "4.18.0",
|
|
2371
|
+
"oh-my-opencode-windows-x64-baseline": "4.18.0"
|
|
2371
2372
|
},
|
|
2372
2373
|
overrides: {
|
|
2373
2374
|
"@earendil-works/pi-agent-core": "0.80.3",
|
|
@@ -9223,7 +9224,7 @@ var init_agent_model_requirements = __esm(() => {
|
|
|
9223
9224
|
{
|
|
9224
9225
|
providers: ["openai", "vercel"],
|
|
9225
9226
|
model: "gpt-5.6-sol",
|
|
9226
|
-
variant: "
|
|
9227
|
+
variant: "high"
|
|
9227
9228
|
},
|
|
9228
9229
|
{
|
|
9229
9230
|
providers: ["openai", "github-copilot", "opencode", "vercel"],
|
|
@@ -65103,15 +65104,20 @@ var init_command_loader = __esm(() => {
|
|
|
65103
65104
|
init_logger3();
|
|
65104
65105
|
});
|
|
65105
65106
|
|
|
65106
|
-
// packages/
|
|
65107
|
+
// packages/utils/src/skill-path-resolver.ts
|
|
65107
65108
|
var init_skill_path_resolver = () => {};
|
|
65108
65109
|
|
|
65110
|
+
// packages/claude-code-compat-core/src/shared/skill-path-resolver.ts
|
|
65111
|
+
var init_skill_path_resolver2 = __esm(() => {
|
|
65112
|
+
init_skill_path_resolver();
|
|
65113
|
+
});
|
|
65114
|
+
|
|
65109
65115
|
// packages/claude-code-compat-core/src/features/claude-code-plugin-loader/skill-loader.ts
|
|
65110
65116
|
var init_skill_loader = __esm(() => {
|
|
65111
65117
|
init_frontmatter3();
|
|
65112
65118
|
init_file_utils3();
|
|
65113
65119
|
init_model_sanitizer2();
|
|
65114
|
-
|
|
65120
|
+
init_skill_path_resolver2();
|
|
65115
65121
|
init_logger3();
|
|
65116
65122
|
});
|
|
65117
65123
|
// packages/claude-code-compat-core/src/shared/model-format-normalizer.ts
|
|
@@ -72596,7 +72602,7 @@ var package_default2;
|
|
|
72596
72602
|
var init_package2 = __esm(() => {
|
|
72597
72603
|
package_default2 = {
|
|
72598
72604
|
name: "@oh-my-opencode/omo-codex",
|
|
72599
|
-
version: "4.
|
|
72605
|
+
version: "4.18.0",
|
|
72600
72606
|
type: "module",
|
|
72601
72607
|
private: true,
|
|
72602
72608
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -75320,9 +75326,11 @@ function collectCommands(value, commands) {
|
|
|
75320
75326
|
|
|
75321
75327
|
// packages/omo-codex/src/install/codex-cache-install.ts
|
|
75322
75328
|
async function installCachedPlugin(input) {
|
|
75329
|
+
const env2 = input.env ?? process.env;
|
|
75330
|
+
const npmInstallEnv = sanitizeNpmInstallEnv(env2);
|
|
75323
75331
|
if (input.buildSource !== false) {
|
|
75324
|
-
await maybeRunNpmInstall(input.sourcePath, input.runCommand);
|
|
75325
|
-
await maybeRunNpmBuild(input.sourcePath, input.runCommand);
|
|
75332
|
+
await maybeRunNpmInstall(input.sourcePath, input.runCommand, npmInstallEnv);
|
|
75333
|
+
await maybeRunNpmBuild(input.sourcePath, input.runCommand, env2);
|
|
75326
75334
|
}
|
|
75327
75335
|
const targetPath = join33(input.codexHome, "plugins", "cache", input.marketplaceName, input.name, input.version);
|
|
75328
75336
|
const tempPath = createTempSiblingPath(targetPath);
|
|
@@ -75332,10 +75340,10 @@ async function installCachedPlugin(input) {
|
|
|
75332
75340
|
await rewriteCachedPackageLocalFileDependencies(tempPath, input.sourcePath);
|
|
75333
75341
|
await copyBundledMcpRuntimeDists({ pluginRoot: tempPath, sourceRoot: input.sourcePath });
|
|
75334
75342
|
await copyRootRuntimeDists({ pluginRoot: tempPath, sourcePath: input.sourcePath });
|
|
75335
|
-
await maybeRunNpmInstall(tempPath, input.runCommand, ["ci", "--omit=dev"]);
|
|
75343
|
+
await maybeRunNpmInstall(tempPath, input.runCommand, npmInstallEnv, ["ci", "--omit=dev"]);
|
|
75336
75344
|
await removeCachedManagedNpmBinShims(tempPath);
|
|
75337
75345
|
if (input.buildSource === false)
|
|
75338
|
-
await maybeRunNpmSyncSkills(tempPath, input.runCommand);
|
|
75346
|
+
await maybeRunNpmSyncSkills(tempPath, input.runCommand, env2);
|
|
75339
75347
|
await assertNoRemovedSparkshellPromptReferences(tempPath);
|
|
75340
75348
|
await rewriteCachedMcpManifest(tempPath, input.sourcePath);
|
|
75341
75349
|
await rewriteCachedManifestRoot(tempPath, tempPath, targetPath);
|
|
@@ -75347,12 +75355,12 @@ async function installCachedPlugin(input) {
|
|
|
75347
75355
|
}
|
|
75348
75356
|
return { name: input.name, version: input.version, path: targetPath };
|
|
75349
75357
|
}
|
|
75350
|
-
async function maybeRunNpmInstall(cwd, runCommand, args = ["install"]) {
|
|
75358
|
+
async function maybeRunNpmInstall(cwd, runCommand, env2, args = ["install"]) {
|
|
75351
75359
|
if (!await fileExistsStrict(join33(cwd, "package.json")))
|
|
75352
75360
|
return;
|
|
75353
|
-
await runCommand("npm", args, { cwd });
|
|
75361
|
+
await runCommand("npm", args, { cwd, env: env2 });
|
|
75354
75362
|
}
|
|
75355
|
-
async function maybeRunNpmBuild(cwd, runCommand) {
|
|
75363
|
+
async function maybeRunNpmBuild(cwd, runCommand, env2) {
|
|
75356
75364
|
if (!await fileExistsStrict(join33(cwd, "package.json")))
|
|
75357
75365
|
return;
|
|
75358
75366
|
const packageJson = JSON.parse(await readFile8(join33(cwd, "package.json"), "utf8"));
|
|
@@ -75361,9 +75369,9 @@ async function maybeRunNpmBuild(cwd, runCommand) {
|
|
|
75361
75369
|
const scripts = packageJson.scripts;
|
|
75362
75370
|
if (!isPlainRecord3(scripts) || typeof scripts.build !== "string")
|
|
75363
75371
|
return;
|
|
75364
|
-
await runCommand("npm", ["run", "build"], { cwd });
|
|
75372
|
+
await runCommand("npm", ["run", "build"], { cwd, env: env2 });
|
|
75365
75373
|
}
|
|
75366
|
-
async function maybeRunNpmSyncSkills(cwd, runCommand) {
|
|
75374
|
+
async function maybeRunNpmSyncSkills(cwd, runCommand, env2) {
|
|
75367
75375
|
if (!await fileExistsStrict(join33(cwd, "package.json")))
|
|
75368
75376
|
return;
|
|
75369
75377
|
const packageJson = JSON.parse(await readFile8(join33(cwd, "package.json"), "utf8"));
|
|
@@ -75372,7 +75380,10 @@ async function maybeRunNpmSyncSkills(cwd, runCommand) {
|
|
|
75372
75380
|
const scripts = packageJson.scripts;
|
|
75373
75381
|
if (!isPlainRecord3(scripts) || typeof scripts["sync:skills"] !== "string")
|
|
75374
75382
|
return;
|
|
75375
|
-
await runCommand("npm", ["run", "sync:skills"], { cwd });
|
|
75383
|
+
await runCommand("npm", ["run", "sync:skills"], { cwd, env: env2 });
|
|
75384
|
+
}
|
|
75385
|
+
function sanitizeNpmInstallEnv(env2) {
|
|
75386
|
+
return Object.fromEntries(Object.entries(env2).filter(([key]) => key.toLowerCase() !== "npm_config_allow_scripts"));
|
|
75376
75387
|
}
|
|
75377
75388
|
function createTempSiblingPath(targetPath) {
|
|
75378
75389
|
return join33(dirname13(targetPath), `.tmp-${basename7(targetPath)}-${process.pid}-${Date.now()}`);
|
|
@@ -75896,6 +75907,14 @@ function parseAgentHeaderName(header) {
|
|
|
75896
75907
|
const path7 = parseTomlDottedKey(header);
|
|
75897
75908
|
return path7?.[0] === "agents" ? path7[1] ?? null : null;
|
|
75898
75909
|
}
|
|
75910
|
+
function parseJsonString(value) {
|
|
75911
|
+
try {
|
|
75912
|
+
const parsed = JSON.parse(value);
|
|
75913
|
+
return typeof parsed === "string" ? parsed : null;
|
|
75914
|
+
} catch {
|
|
75915
|
+
return null;
|
|
75916
|
+
}
|
|
75917
|
+
}
|
|
75899
75918
|
function parseHookStateHeaderKey(header) {
|
|
75900
75919
|
const path7 = parseTomlDottedKey(header);
|
|
75901
75920
|
if (path7?.[0] !== "hooks" || path7[1] !== "state")
|
|
@@ -77052,16 +77071,6 @@ function isSectionHeader3(line) {
|
|
|
77052
77071
|
function agentNameFromToml(fileName) {
|
|
77053
77072
|
return fileName.endsWith(".toml") ? fileName.slice(0, -".toml".length) : fileName;
|
|
77054
77073
|
}
|
|
77055
|
-
function parseJsonString(value) {
|
|
77056
|
-
try {
|
|
77057
|
-
const parsed = JSON.parse(value);
|
|
77058
|
-
return typeof parsed === "string" ? parsed : null;
|
|
77059
|
-
} catch (error) {
|
|
77060
|
-
if (error instanceof Error)
|
|
77061
|
-
return null;
|
|
77062
|
-
return null;
|
|
77063
|
-
}
|
|
77064
|
-
}
|
|
77065
77074
|
async function exists2(path7) {
|
|
77066
77075
|
try {
|
|
77067
77076
|
await lstat7(path7);
|
|
@@ -77404,6 +77413,10 @@ async function readDistributionManifest(repoRoot) {
|
|
|
77404
77413
|
}
|
|
77405
77414
|
}
|
|
77406
77415
|
function resolveLazyCodexPluginVersion(input) {
|
|
77416
|
+
const override = input.versionOverride?.trim();
|
|
77417
|
+
if (override !== undefined && override.length > 0) {
|
|
77418
|
+
return override;
|
|
77419
|
+
}
|
|
77407
77420
|
if (input.marketplaceName === "sisyphuslabs" && input.pluginName === "omo" && input.distributionManifest !== undefined) {
|
|
77408
77421
|
return input.distributionManifest.version;
|
|
77409
77422
|
}
|
|
@@ -77954,6 +77967,7 @@ async function runCodexInstaller(options = {}) {
|
|
|
77954
77967
|
return;
|
|
77955
77968
|
});
|
|
77956
77969
|
const buildSource = await shouldBuildSourcePackages(repoRoot);
|
|
77970
|
+
const versionOverride = env3.LAZYCODEX_DEV_VERSION?.trim() || undefined;
|
|
77957
77971
|
const gitBashResolution = await prepareGitBashForInstall({
|
|
77958
77972
|
platform,
|
|
77959
77973
|
env: env3,
|
|
@@ -77980,13 +77994,15 @@ async function runCodexInstaller(options = {}) {
|
|
|
77980
77994
|
manifestVersion: manifest.version,
|
|
77981
77995
|
marketplaceName: marketplace.name,
|
|
77982
77996
|
pluginName: entry.name,
|
|
77983
|
-
distributionManifest
|
|
77997
|
+
distributionManifest,
|
|
77998
|
+
versionOverride
|
|
77984
77999
|
});
|
|
77985
78000
|
validatePathSegment(version2, "plugin version");
|
|
77986
78001
|
log4(`Building ${entry.name}@${version2}`);
|
|
77987
78002
|
const plugin = await installCachedPlugin({
|
|
77988
78003
|
buildSource,
|
|
77989
78004
|
codexHome,
|
|
78005
|
+
env: env3,
|
|
77990
78006
|
marketplaceName: marketplace.name,
|
|
77991
78007
|
name: entry.name,
|
|
77992
78008
|
runCommand,
|
|
@@ -99067,6 +99083,10 @@ function formatVersionOutput(info) {
|
|
|
99067
99083
|
lines.push(` ${SYMBOLS3.dev} ${import_picocolors17.default.cyan("Running in local development mode")}`);
|
|
99068
99084
|
lines.push(` ${import_picocolors17.default.dim("Using file:// protocol from config")}`);
|
|
99069
99085
|
break;
|
|
99086
|
+
case "dev":
|
|
99087
|
+
lines.push(` ${SYMBOLS3.dev} ${import_picocolors17.default.cyan("Running a local dev build")}`);
|
|
99088
|
+
lines.push(` ${import_picocolors17.default.dim("Installed from source; update checks are skipped")}`);
|
|
99089
|
+
break;
|
|
99070
99090
|
case "pinned":
|
|
99071
99091
|
lines.push(` ${SYMBOLS3.pin} ${import_picocolors17.default.magenta(`Version pinned to ${info.pinnedVersion}`)}`);
|
|
99072
99092
|
lines.push(` ${import_picocolors17.default.dim("Update check skipped for pinned versions")}`);
|
|
@@ -99139,6 +99159,19 @@ async function getLocalVersion(options = {}) {
|
|
|
99139
99159
|
console.log(options.json ? formatJsonOutput(info2) : formatVersionOutput(info2));
|
|
99140
99160
|
return 1;
|
|
99141
99161
|
}
|
|
99162
|
+
if (!/^\d+\.\d+\.\d+/.test(currentVersion)) {
|
|
99163
|
+
const info2 = {
|
|
99164
|
+
currentVersion,
|
|
99165
|
+
latestVersion: null,
|
|
99166
|
+
isUpToDate: false,
|
|
99167
|
+
isLocalDev: true,
|
|
99168
|
+
isPinned: false,
|
|
99169
|
+
pinnedVersion: null,
|
|
99170
|
+
status: "dev"
|
|
99171
|
+
};
|
|
99172
|
+
console.log(options.json ? formatJsonOutput(info2) : formatVersionOutput(info2));
|
|
99173
|
+
return 0;
|
|
99174
|
+
}
|
|
99142
99175
|
const { extractChannel: extractChannel2 } = await Promise.resolve().then(() => (init_auto_update_checker(), exports_auto_update_checker));
|
|
99143
99176
|
const channel = extractChannel2(pluginInfo?.pinnedVersion ?? currentVersion);
|
|
99144
99177
|
const latestVersion = await getLatestVersion(channel);
|
package/dist/cli-node/index.js
CHANGED
|
@@ -2146,7 +2146,7 @@ var package_default;
|
|
|
2146
2146
|
var init_package = __esm(() => {
|
|
2147
2147
|
package_default = {
|
|
2148
2148
|
name: "oh-my-opencode",
|
|
2149
|
-
version: "4.
|
|
2149
|
+
version: "4.18.0",
|
|
2150
2150
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
2151
2151
|
main: "./dist/index.js",
|
|
2152
2152
|
types: "dist/index.d.ts",
|
|
@@ -2253,6 +2253,7 @@ var init_package = __esm(() => {
|
|
|
2253
2253
|
build: "bun run script/build.ts",
|
|
2254
2254
|
"build:cli-node": "bun run script/build-cli-node.ts",
|
|
2255
2255
|
"build:codex-install": "bun run script/build-codex-install.ts",
|
|
2256
|
+
"install:codex-dev": "bun run script/build-codex-install.ts && bun run script/install-codex-dev.ts",
|
|
2256
2257
|
"build:codex-plugin": "npm --prefix packages/omo-codex/plugin ci && bun run --cwd packages/omo-codex/plugin build",
|
|
2257
2258
|
"build:senpi-plugin": "node packages/omo-senpi/plugin/scripts/build-extension.mjs && node packages/omo-senpi/plugin/scripts/sync-skills.mjs && node packages/omo-senpi/plugin/scripts/embed-directive.mjs --check",
|
|
2258
2259
|
"build:materialize-frontend": "node packages/omo-codex/plugin/scripts/materialize-shared-upstreams.mjs --strict",
|
|
@@ -2357,18 +2358,18 @@ var init_package = __esm(() => {
|
|
|
2357
2358
|
typescript: "^6.0.3"
|
|
2358
2359
|
},
|
|
2359
2360
|
optionalDependencies: {
|
|
2360
|
-
"oh-my-opencode-darwin-arm64": "4.
|
|
2361
|
-
"oh-my-opencode-darwin-x64": "4.
|
|
2362
|
-
"oh-my-opencode-darwin-x64-baseline": "4.
|
|
2363
|
-
"oh-my-opencode-linux-arm64": "4.
|
|
2364
|
-
"oh-my-opencode-linux-arm64-musl": "4.
|
|
2365
|
-
"oh-my-opencode-linux-x64": "4.
|
|
2366
|
-
"oh-my-opencode-linux-x64-baseline": "4.
|
|
2367
|
-
"oh-my-opencode-linux-x64-musl": "4.
|
|
2368
|
-
"oh-my-opencode-linux-x64-musl-baseline": "4.
|
|
2369
|
-
"oh-my-opencode-windows-arm64": "4.
|
|
2370
|
-
"oh-my-opencode-windows-x64": "4.
|
|
2371
|
-
"oh-my-opencode-windows-x64-baseline": "4.
|
|
2361
|
+
"oh-my-opencode-darwin-arm64": "4.18.0",
|
|
2362
|
+
"oh-my-opencode-darwin-x64": "4.18.0",
|
|
2363
|
+
"oh-my-opencode-darwin-x64-baseline": "4.18.0",
|
|
2364
|
+
"oh-my-opencode-linux-arm64": "4.18.0",
|
|
2365
|
+
"oh-my-opencode-linux-arm64-musl": "4.18.0",
|
|
2366
|
+
"oh-my-opencode-linux-x64": "4.18.0",
|
|
2367
|
+
"oh-my-opencode-linux-x64-baseline": "4.18.0",
|
|
2368
|
+
"oh-my-opencode-linux-x64-musl": "4.18.0",
|
|
2369
|
+
"oh-my-opencode-linux-x64-musl-baseline": "4.18.0",
|
|
2370
|
+
"oh-my-opencode-windows-arm64": "4.18.0",
|
|
2371
|
+
"oh-my-opencode-windows-x64": "4.18.0",
|
|
2372
|
+
"oh-my-opencode-windows-x64-baseline": "4.18.0"
|
|
2372
2373
|
},
|
|
2373
2374
|
overrides: {
|
|
2374
2375
|
"@earendil-works/pi-agent-core": "0.80.3",
|
|
@@ -9224,7 +9225,7 @@ var init_agent_model_requirements = __esm(() => {
|
|
|
9224
9225
|
{
|
|
9225
9226
|
providers: ["openai", "vercel"],
|
|
9226
9227
|
model: "gpt-5.6-sol",
|
|
9227
|
-
variant: "
|
|
9228
|
+
variant: "high"
|
|
9228
9229
|
},
|
|
9229
9230
|
{
|
|
9230
9231
|
providers: ["openai", "github-copilot", "opencode", "vercel"],
|
|
@@ -65104,15 +65105,20 @@ var init_command_loader = __esm(() => {
|
|
|
65104
65105
|
init_logger3();
|
|
65105
65106
|
});
|
|
65106
65107
|
|
|
65107
|
-
// packages/
|
|
65108
|
+
// packages/utils/src/skill-path-resolver.ts
|
|
65108
65109
|
var init_skill_path_resolver = () => {};
|
|
65109
65110
|
|
|
65111
|
+
// packages/claude-code-compat-core/src/shared/skill-path-resolver.ts
|
|
65112
|
+
var init_skill_path_resolver2 = __esm(() => {
|
|
65113
|
+
init_skill_path_resolver();
|
|
65114
|
+
});
|
|
65115
|
+
|
|
65110
65116
|
// packages/claude-code-compat-core/src/features/claude-code-plugin-loader/skill-loader.ts
|
|
65111
65117
|
var init_skill_loader = __esm(() => {
|
|
65112
65118
|
init_frontmatter3();
|
|
65113
65119
|
init_file_utils3();
|
|
65114
65120
|
init_model_sanitizer2();
|
|
65115
|
-
|
|
65121
|
+
init_skill_path_resolver2();
|
|
65116
65122
|
init_logger3();
|
|
65117
65123
|
});
|
|
65118
65124
|
// packages/claude-code-compat-core/src/shared/model-format-normalizer.ts
|
|
@@ -72652,7 +72658,7 @@ var package_default2;
|
|
|
72652
72658
|
var init_package2 = __esm(() => {
|
|
72653
72659
|
package_default2 = {
|
|
72654
72660
|
name: "@oh-my-opencode/omo-codex",
|
|
72655
|
-
version: "4.
|
|
72661
|
+
version: "4.18.0",
|
|
72656
72662
|
type: "module",
|
|
72657
72663
|
private: true,
|
|
72658
72664
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -75376,9 +75382,11 @@ function collectCommands(value, commands) {
|
|
|
75376
75382
|
|
|
75377
75383
|
// packages/omo-codex/src/install/codex-cache-install.ts
|
|
75378
75384
|
async function installCachedPlugin(input) {
|
|
75385
|
+
const env2 = input.env ?? process.env;
|
|
75386
|
+
const npmInstallEnv = sanitizeNpmInstallEnv(env2);
|
|
75379
75387
|
if (input.buildSource !== false) {
|
|
75380
|
-
await maybeRunNpmInstall(input.sourcePath, input.runCommand);
|
|
75381
|
-
await maybeRunNpmBuild(input.sourcePath, input.runCommand);
|
|
75388
|
+
await maybeRunNpmInstall(input.sourcePath, input.runCommand, npmInstallEnv);
|
|
75389
|
+
await maybeRunNpmBuild(input.sourcePath, input.runCommand, env2);
|
|
75382
75390
|
}
|
|
75383
75391
|
const targetPath = join33(input.codexHome, "plugins", "cache", input.marketplaceName, input.name, input.version);
|
|
75384
75392
|
const tempPath = createTempSiblingPath(targetPath);
|
|
@@ -75388,10 +75396,10 @@ async function installCachedPlugin(input) {
|
|
|
75388
75396
|
await rewriteCachedPackageLocalFileDependencies(tempPath, input.sourcePath);
|
|
75389
75397
|
await copyBundledMcpRuntimeDists({ pluginRoot: tempPath, sourceRoot: input.sourcePath });
|
|
75390
75398
|
await copyRootRuntimeDists({ pluginRoot: tempPath, sourcePath: input.sourcePath });
|
|
75391
|
-
await maybeRunNpmInstall(tempPath, input.runCommand, ["ci", "--omit=dev"]);
|
|
75399
|
+
await maybeRunNpmInstall(tempPath, input.runCommand, npmInstallEnv, ["ci", "--omit=dev"]);
|
|
75392
75400
|
await removeCachedManagedNpmBinShims(tempPath);
|
|
75393
75401
|
if (input.buildSource === false)
|
|
75394
|
-
await maybeRunNpmSyncSkills(tempPath, input.runCommand);
|
|
75402
|
+
await maybeRunNpmSyncSkills(tempPath, input.runCommand, env2);
|
|
75395
75403
|
await assertNoRemovedSparkshellPromptReferences(tempPath);
|
|
75396
75404
|
await rewriteCachedMcpManifest(tempPath, input.sourcePath);
|
|
75397
75405
|
await rewriteCachedManifestRoot(tempPath, tempPath, targetPath);
|
|
@@ -75403,12 +75411,12 @@ async function installCachedPlugin(input) {
|
|
|
75403
75411
|
}
|
|
75404
75412
|
return { name: input.name, version: input.version, path: targetPath };
|
|
75405
75413
|
}
|
|
75406
|
-
async function maybeRunNpmInstall(cwd, runCommand, args = ["install"]) {
|
|
75414
|
+
async function maybeRunNpmInstall(cwd, runCommand, env2, args = ["install"]) {
|
|
75407
75415
|
if (!await fileExistsStrict(join33(cwd, "package.json")))
|
|
75408
75416
|
return;
|
|
75409
|
-
await runCommand("npm", args, { cwd });
|
|
75417
|
+
await runCommand("npm", args, { cwd, env: env2 });
|
|
75410
75418
|
}
|
|
75411
|
-
async function maybeRunNpmBuild(cwd, runCommand) {
|
|
75419
|
+
async function maybeRunNpmBuild(cwd, runCommand, env2) {
|
|
75412
75420
|
if (!await fileExistsStrict(join33(cwd, "package.json")))
|
|
75413
75421
|
return;
|
|
75414
75422
|
const packageJson = JSON.parse(await readFile8(join33(cwd, "package.json"), "utf8"));
|
|
@@ -75417,9 +75425,9 @@ async function maybeRunNpmBuild(cwd, runCommand) {
|
|
|
75417
75425
|
const scripts = packageJson.scripts;
|
|
75418
75426
|
if (!isPlainRecord3(scripts) || typeof scripts.build !== "string")
|
|
75419
75427
|
return;
|
|
75420
|
-
await runCommand("npm", ["run", "build"], { cwd });
|
|
75428
|
+
await runCommand("npm", ["run", "build"], { cwd, env: env2 });
|
|
75421
75429
|
}
|
|
75422
|
-
async function maybeRunNpmSyncSkills(cwd, runCommand) {
|
|
75430
|
+
async function maybeRunNpmSyncSkills(cwd, runCommand, env2) {
|
|
75423
75431
|
if (!await fileExistsStrict(join33(cwd, "package.json")))
|
|
75424
75432
|
return;
|
|
75425
75433
|
const packageJson = JSON.parse(await readFile8(join33(cwd, "package.json"), "utf8"));
|
|
@@ -75428,7 +75436,10 @@ async function maybeRunNpmSyncSkills(cwd, runCommand) {
|
|
|
75428
75436
|
const scripts = packageJson.scripts;
|
|
75429
75437
|
if (!isPlainRecord3(scripts) || typeof scripts["sync:skills"] !== "string")
|
|
75430
75438
|
return;
|
|
75431
|
-
await runCommand("npm", ["run", "sync:skills"], { cwd });
|
|
75439
|
+
await runCommand("npm", ["run", "sync:skills"], { cwd, env: env2 });
|
|
75440
|
+
}
|
|
75441
|
+
function sanitizeNpmInstallEnv(env2) {
|
|
75442
|
+
return Object.fromEntries(Object.entries(env2).filter(([key]) => key.toLowerCase() !== "npm_config_allow_scripts"));
|
|
75432
75443
|
}
|
|
75433
75444
|
function createTempSiblingPath(targetPath) {
|
|
75434
75445
|
return join33(dirname13(targetPath), `.tmp-${basename7(targetPath)}-${process.pid}-${Date.now()}`);
|
|
@@ -75952,6 +75963,14 @@ function parseAgentHeaderName(header) {
|
|
|
75952
75963
|
const path7 = parseTomlDottedKey(header);
|
|
75953
75964
|
return path7?.[0] === "agents" ? path7[1] ?? null : null;
|
|
75954
75965
|
}
|
|
75966
|
+
function parseJsonString(value) {
|
|
75967
|
+
try {
|
|
75968
|
+
const parsed = JSON.parse(value);
|
|
75969
|
+
return typeof parsed === "string" ? parsed : null;
|
|
75970
|
+
} catch {
|
|
75971
|
+
return null;
|
|
75972
|
+
}
|
|
75973
|
+
}
|
|
75955
75974
|
function parseHookStateHeaderKey(header) {
|
|
75956
75975
|
const path7 = parseTomlDottedKey(header);
|
|
75957
75976
|
if (path7?.[0] !== "hooks" || path7[1] !== "state")
|
|
@@ -77108,16 +77127,6 @@ function isSectionHeader3(line) {
|
|
|
77108
77127
|
function agentNameFromToml(fileName) {
|
|
77109
77128
|
return fileName.endsWith(".toml") ? fileName.slice(0, -".toml".length) : fileName;
|
|
77110
77129
|
}
|
|
77111
|
-
function parseJsonString(value) {
|
|
77112
|
-
try {
|
|
77113
|
-
const parsed = JSON.parse(value);
|
|
77114
|
-
return typeof parsed === "string" ? parsed : null;
|
|
77115
|
-
} catch (error) {
|
|
77116
|
-
if (error instanceof Error)
|
|
77117
|
-
return null;
|
|
77118
|
-
return null;
|
|
77119
|
-
}
|
|
77120
|
-
}
|
|
77121
77130
|
async function exists2(path7) {
|
|
77122
77131
|
try {
|
|
77123
77132
|
await lstat7(path7);
|
|
@@ -77460,6 +77469,10 @@ async function readDistributionManifest(repoRoot) {
|
|
|
77460
77469
|
}
|
|
77461
77470
|
}
|
|
77462
77471
|
function resolveLazyCodexPluginVersion(input) {
|
|
77472
|
+
const override = input.versionOverride?.trim();
|
|
77473
|
+
if (override !== undefined && override.length > 0) {
|
|
77474
|
+
return override;
|
|
77475
|
+
}
|
|
77463
77476
|
if (input.marketplaceName === "sisyphuslabs" && input.pluginName === "omo" && input.distributionManifest !== undefined) {
|
|
77464
77477
|
return input.distributionManifest.version;
|
|
77465
77478
|
}
|
|
@@ -78010,6 +78023,7 @@ async function runCodexInstaller(options = {}) {
|
|
|
78010
78023
|
return;
|
|
78011
78024
|
});
|
|
78012
78025
|
const buildSource = await shouldBuildSourcePackages(repoRoot);
|
|
78026
|
+
const versionOverride = env3.LAZYCODEX_DEV_VERSION?.trim() || undefined;
|
|
78013
78027
|
const gitBashResolution = await prepareGitBashForInstall({
|
|
78014
78028
|
platform,
|
|
78015
78029
|
env: env3,
|
|
@@ -78036,13 +78050,15 @@ async function runCodexInstaller(options = {}) {
|
|
|
78036
78050
|
manifestVersion: manifest.version,
|
|
78037
78051
|
marketplaceName: marketplace.name,
|
|
78038
78052
|
pluginName: entry.name,
|
|
78039
|
-
distributionManifest
|
|
78053
|
+
distributionManifest,
|
|
78054
|
+
versionOverride
|
|
78040
78055
|
});
|
|
78041
78056
|
validatePathSegment(version2, "plugin version");
|
|
78042
78057
|
log4(`Building ${entry.name}@${version2}`);
|
|
78043
78058
|
const plugin = await installCachedPlugin({
|
|
78044
78059
|
buildSource,
|
|
78045
78060
|
codexHome,
|
|
78061
|
+
env: env3,
|
|
78046
78062
|
marketplaceName: marketplace.name,
|
|
78047
78063
|
name: entry.name,
|
|
78048
78064
|
runCommand,
|
|
@@ -99123,6 +99139,10 @@ function formatVersionOutput(info) {
|
|
|
99123
99139
|
lines.push(` ${SYMBOLS3.dev} ${import_picocolors17.default.cyan("Running in local development mode")}`);
|
|
99124
99140
|
lines.push(` ${import_picocolors17.default.dim("Using file:// protocol from config")}`);
|
|
99125
99141
|
break;
|
|
99142
|
+
case "dev":
|
|
99143
|
+
lines.push(` ${SYMBOLS3.dev} ${import_picocolors17.default.cyan("Running a local dev build")}`);
|
|
99144
|
+
lines.push(` ${import_picocolors17.default.dim("Installed from source; update checks are skipped")}`);
|
|
99145
|
+
break;
|
|
99126
99146
|
case "pinned":
|
|
99127
99147
|
lines.push(` ${SYMBOLS3.pin} ${import_picocolors17.default.magenta(`Version pinned to ${info.pinnedVersion}`)}`);
|
|
99128
99148
|
lines.push(` ${import_picocolors17.default.dim("Update check skipped for pinned versions")}`);
|
|
@@ -99195,6 +99215,19 @@ async function getLocalVersion(options = {}) {
|
|
|
99195
99215
|
console.log(options.json ? formatJsonOutput(info2) : formatVersionOutput(info2));
|
|
99196
99216
|
return 1;
|
|
99197
99217
|
}
|
|
99218
|
+
if (!/^\d+\.\d+\.\d+/.test(currentVersion)) {
|
|
99219
|
+
const info2 = {
|
|
99220
|
+
currentVersion,
|
|
99221
|
+
latestVersion: null,
|
|
99222
|
+
isUpToDate: false,
|
|
99223
|
+
isLocalDev: true,
|
|
99224
|
+
isPinned: false,
|
|
99225
|
+
pinnedVersion: null,
|
|
99226
|
+
status: "dev"
|
|
99227
|
+
};
|
|
99228
|
+
console.log(options.json ? formatJsonOutput(info2) : formatVersionOutput(info2));
|
|
99229
|
+
return 0;
|
|
99230
|
+
}
|
|
99198
99231
|
const { extractChannel: extractChannel2 } = await Promise.resolve().then(() => (init_auto_update_checker(), exports_auto_update_checker));
|
|
99199
99232
|
const channel = extractChannel2(pluginInfo?.pinnedVersion ?? currentVersion);
|
|
99200
99233
|
const latestVersion = await getLatestVersion(channel);
|