lazycodex-ai 4.17.1 → 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/dist/cli/get-local-version/types.d.ts +1 -1
- package/dist/cli/index.js +55 -25
- package/dist/cli-node/index.js +55 -25
- package/package.json +1 -1
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
- package/packages/omo-codex/plugin/components/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/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.6.md +7 -5
- 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/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/directive.md +37 -10
- 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 +37 -10
- package/packages/omo-codex/plugin/components/ulw-loop/directive.md +37 -10
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +4 -4
- 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/ultrawork/SKILL.md +37 -10
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +4 -4
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +24 -12
- 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
|
@@ -5,7 +5,7 @@ export interface VersionInfo {
|
|
|
5
5
|
isLocalDev: boolean;
|
|
6
6
|
isPinned: boolean;
|
|
7
7
|
pinnedVersion: string | null;
|
|
8
|
-
status: "up-to-date" | "outdated" | "local-dev" | "pinned" | "pinned-mismatch" | "error" | "unknown";
|
|
8
|
+
status: "up-to-date" | "outdated" | "local-dev" | "dev" | "pinned" | "pinned-mismatch" | "error" | "unknown";
|
|
9
9
|
}
|
|
10
10
|
export interface GetLocalVersionOptions {
|
|
11
11
|
directory?: string;
|
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",
|
|
@@ -72601,7 +72602,7 @@ var package_default2;
|
|
|
72601
72602
|
var init_package2 = __esm(() => {
|
|
72602
72603
|
package_default2 = {
|
|
72603
72604
|
name: "@oh-my-opencode/omo-codex",
|
|
72604
|
-
version: "4.
|
|
72605
|
+
version: "4.18.0",
|
|
72605
72606
|
type: "module",
|
|
72606
72607
|
private: true,
|
|
72607
72608
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -75325,9 +75326,11 @@ function collectCommands(value, commands) {
|
|
|
75325
75326
|
|
|
75326
75327
|
// packages/omo-codex/src/install/codex-cache-install.ts
|
|
75327
75328
|
async function installCachedPlugin(input) {
|
|
75329
|
+
const env2 = input.env ?? process.env;
|
|
75330
|
+
const npmInstallEnv = sanitizeNpmInstallEnv(env2);
|
|
75328
75331
|
if (input.buildSource !== false) {
|
|
75329
|
-
await maybeRunNpmInstall(input.sourcePath, input.runCommand);
|
|
75330
|
-
await maybeRunNpmBuild(input.sourcePath, input.runCommand);
|
|
75332
|
+
await maybeRunNpmInstall(input.sourcePath, input.runCommand, npmInstallEnv);
|
|
75333
|
+
await maybeRunNpmBuild(input.sourcePath, input.runCommand, env2);
|
|
75331
75334
|
}
|
|
75332
75335
|
const targetPath = join33(input.codexHome, "plugins", "cache", input.marketplaceName, input.name, input.version);
|
|
75333
75336
|
const tempPath = createTempSiblingPath(targetPath);
|
|
@@ -75337,10 +75340,10 @@ async function installCachedPlugin(input) {
|
|
|
75337
75340
|
await rewriteCachedPackageLocalFileDependencies(tempPath, input.sourcePath);
|
|
75338
75341
|
await copyBundledMcpRuntimeDists({ pluginRoot: tempPath, sourceRoot: input.sourcePath });
|
|
75339
75342
|
await copyRootRuntimeDists({ pluginRoot: tempPath, sourcePath: input.sourcePath });
|
|
75340
|
-
await maybeRunNpmInstall(tempPath, input.runCommand, ["ci", "--omit=dev"]);
|
|
75343
|
+
await maybeRunNpmInstall(tempPath, input.runCommand, npmInstallEnv, ["ci", "--omit=dev"]);
|
|
75341
75344
|
await removeCachedManagedNpmBinShims(tempPath);
|
|
75342
75345
|
if (input.buildSource === false)
|
|
75343
|
-
await maybeRunNpmSyncSkills(tempPath, input.runCommand);
|
|
75346
|
+
await maybeRunNpmSyncSkills(tempPath, input.runCommand, env2);
|
|
75344
75347
|
await assertNoRemovedSparkshellPromptReferences(tempPath);
|
|
75345
75348
|
await rewriteCachedMcpManifest(tempPath, input.sourcePath);
|
|
75346
75349
|
await rewriteCachedManifestRoot(tempPath, tempPath, targetPath);
|
|
@@ -75352,12 +75355,12 @@ async function installCachedPlugin(input) {
|
|
|
75352
75355
|
}
|
|
75353
75356
|
return { name: input.name, version: input.version, path: targetPath };
|
|
75354
75357
|
}
|
|
75355
|
-
async function maybeRunNpmInstall(cwd, runCommand, args = ["install"]) {
|
|
75358
|
+
async function maybeRunNpmInstall(cwd, runCommand, env2, args = ["install"]) {
|
|
75356
75359
|
if (!await fileExistsStrict(join33(cwd, "package.json")))
|
|
75357
75360
|
return;
|
|
75358
|
-
await runCommand("npm", args, { cwd });
|
|
75361
|
+
await runCommand("npm", args, { cwd, env: env2 });
|
|
75359
75362
|
}
|
|
75360
|
-
async function maybeRunNpmBuild(cwd, runCommand) {
|
|
75363
|
+
async function maybeRunNpmBuild(cwd, runCommand, env2) {
|
|
75361
75364
|
if (!await fileExistsStrict(join33(cwd, "package.json")))
|
|
75362
75365
|
return;
|
|
75363
75366
|
const packageJson = JSON.parse(await readFile8(join33(cwd, "package.json"), "utf8"));
|
|
@@ -75366,9 +75369,9 @@ async function maybeRunNpmBuild(cwd, runCommand) {
|
|
|
75366
75369
|
const scripts = packageJson.scripts;
|
|
75367
75370
|
if (!isPlainRecord3(scripts) || typeof scripts.build !== "string")
|
|
75368
75371
|
return;
|
|
75369
|
-
await runCommand("npm", ["run", "build"], { cwd });
|
|
75372
|
+
await runCommand("npm", ["run", "build"], { cwd, env: env2 });
|
|
75370
75373
|
}
|
|
75371
|
-
async function maybeRunNpmSyncSkills(cwd, runCommand) {
|
|
75374
|
+
async function maybeRunNpmSyncSkills(cwd, runCommand, env2) {
|
|
75372
75375
|
if (!await fileExistsStrict(join33(cwd, "package.json")))
|
|
75373
75376
|
return;
|
|
75374
75377
|
const packageJson = JSON.parse(await readFile8(join33(cwd, "package.json"), "utf8"));
|
|
@@ -75377,7 +75380,10 @@ async function maybeRunNpmSyncSkills(cwd, runCommand) {
|
|
|
75377
75380
|
const scripts = packageJson.scripts;
|
|
75378
75381
|
if (!isPlainRecord3(scripts) || typeof scripts["sync:skills"] !== "string")
|
|
75379
75382
|
return;
|
|
75380
|
-
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"));
|
|
75381
75387
|
}
|
|
75382
75388
|
function createTempSiblingPath(targetPath) {
|
|
75383
75389
|
return join33(dirname13(targetPath), `.tmp-${basename7(targetPath)}-${process.pid}-${Date.now()}`);
|
|
@@ -77407,6 +77413,10 @@ async function readDistributionManifest(repoRoot) {
|
|
|
77407
77413
|
}
|
|
77408
77414
|
}
|
|
77409
77415
|
function resolveLazyCodexPluginVersion(input) {
|
|
77416
|
+
const override = input.versionOverride?.trim();
|
|
77417
|
+
if (override !== undefined && override.length > 0) {
|
|
77418
|
+
return override;
|
|
77419
|
+
}
|
|
77410
77420
|
if (input.marketplaceName === "sisyphuslabs" && input.pluginName === "omo" && input.distributionManifest !== undefined) {
|
|
77411
77421
|
return input.distributionManifest.version;
|
|
77412
77422
|
}
|
|
@@ -77957,6 +77967,7 @@ async function runCodexInstaller(options = {}) {
|
|
|
77957
77967
|
return;
|
|
77958
77968
|
});
|
|
77959
77969
|
const buildSource = await shouldBuildSourcePackages(repoRoot);
|
|
77970
|
+
const versionOverride = env3.LAZYCODEX_DEV_VERSION?.trim() || undefined;
|
|
77960
77971
|
const gitBashResolution = await prepareGitBashForInstall({
|
|
77961
77972
|
platform,
|
|
77962
77973
|
env: env3,
|
|
@@ -77983,13 +77994,15 @@ async function runCodexInstaller(options = {}) {
|
|
|
77983
77994
|
manifestVersion: manifest.version,
|
|
77984
77995
|
marketplaceName: marketplace.name,
|
|
77985
77996
|
pluginName: entry.name,
|
|
77986
|
-
distributionManifest
|
|
77997
|
+
distributionManifest,
|
|
77998
|
+
versionOverride
|
|
77987
77999
|
});
|
|
77988
78000
|
validatePathSegment(version2, "plugin version");
|
|
77989
78001
|
log4(`Building ${entry.name}@${version2}`);
|
|
77990
78002
|
const plugin = await installCachedPlugin({
|
|
77991
78003
|
buildSource,
|
|
77992
78004
|
codexHome,
|
|
78005
|
+
env: env3,
|
|
77993
78006
|
marketplaceName: marketplace.name,
|
|
77994
78007
|
name: entry.name,
|
|
77995
78008
|
runCommand,
|
|
@@ -99070,6 +99083,10 @@ function formatVersionOutput(info) {
|
|
|
99070
99083
|
lines.push(` ${SYMBOLS3.dev} ${import_picocolors17.default.cyan("Running in local development mode")}`);
|
|
99071
99084
|
lines.push(` ${import_picocolors17.default.dim("Using file:// protocol from config")}`);
|
|
99072
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;
|
|
99073
99090
|
case "pinned":
|
|
99074
99091
|
lines.push(` ${SYMBOLS3.pin} ${import_picocolors17.default.magenta(`Version pinned to ${info.pinnedVersion}`)}`);
|
|
99075
99092
|
lines.push(` ${import_picocolors17.default.dim("Update check skipped for pinned versions")}`);
|
|
@@ -99142,6 +99159,19 @@ async function getLocalVersion(options = {}) {
|
|
|
99142
99159
|
console.log(options.json ? formatJsonOutput(info2) : formatVersionOutput(info2));
|
|
99143
99160
|
return 1;
|
|
99144
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
|
+
}
|
|
99145
99175
|
const { extractChannel: extractChannel2 } = await Promise.resolve().then(() => (init_auto_update_checker(), exports_auto_update_checker));
|
|
99146
99176
|
const channel = extractChannel2(pluginInfo?.pinnedVersion ?? currentVersion);
|
|
99147
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",
|
|
@@ -72657,7 +72658,7 @@ var package_default2;
|
|
|
72657
72658
|
var init_package2 = __esm(() => {
|
|
72658
72659
|
package_default2 = {
|
|
72659
72660
|
name: "@oh-my-opencode/omo-codex",
|
|
72660
|
-
version: "4.
|
|
72661
|
+
version: "4.18.0",
|
|
72661
72662
|
type: "module",
|
|
72662
72663
|
private: true,
|
|
72663
72664
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|
|
@@ -75381,9 +75382,11 @@ function collectCommands(value, commands) {
|
|
|
75381
75382
|
|
|
75382
75383
|
// packages/omo-codex/src/install/codex-cache-install.ts
|
|
75383
75384
|
async function installCachedPlugin(input) {
|
|
75385
|
+
const env2 = input.env ?? process.env;
|
|
75386
|
+
const npmInstallEnv = sanitizeNpmInstallEnv(env2);
|
|
75384
75387
|
if (input.buildSource !== false) {
|
|
75385
|
-
await maybeRunNpmInstall(input.sourcePath, input.runCommand);
|
|
75386
|
-
await maybeRunNpmBuild(input.sourcePath, input.runCommand);
|
|
75388
|
+
await maybeRunNpmInstall(input.sourcePath, input.runCommand, npmInstallEnv);
|
|
75389
|
+
await maybeRunNpmBuild(input.sourcePath, input.runCommand, env2);
|
|
75387
75390
|
}
|
|
75388
75391
|
const targetPath = join33(input.codexHome, "plugins", "cache", input.marketplaceName, input.name, input.version);
|
|
75389
75392
|
const tempPath = createTempSiblingPath(targetPath);
|
|
@@ -75393,10 +75396,10 @@ async function installCachedPlugin(input) {
|
|
|
75393
75396
|
await rewriteCachedPackageLocalFileDependencies(tempPath, input.sourcePath);
|
|
75394
75397
|
await copyBundledMcpRuntimeDists({ pluginRoot: tempPath, sourceRoot: input.sourcePath });
|
|
75395
75398
|
await copyRootRuntimeDists({ pluginRoot: tempPath, sourcePath: input.sourcePath });
|
|
75396
|
-
await maybeRunNpmInstall(tempPath, input.runCommand, ["ci", "--omit=dev"]);
|
|
75399
|
+
await maybeRunNpmInstall(tempPath, input.runCommand, npmInstallEnv, ["ci", "--omit=dev"]);
|
|
75397
75400
|
await removeCachedManagedNpmBinShims(tempPath);
|
|
75398
75401
|
if (input.buildSource === false)
|
|
75399
|
-
await maybeRunNpmSyncSkills(tempPath, input.runCommand);
|
|
75402
|
+
await maybeRunNpmSyncSkills(tempPath, input.runCommand, env2);
|
|
75400
75403
|
await assertNoRemovedSparkshellPromptReferences(tempPath);
|
|
75401
75404
|
await rewriteCachedMcpManifest(tempPath, input.sourcePath);
|
|
75402
75405
|
await rewriteCachedManifestRoot(tempPath, tempPath, targetPath);
|
|
@@ -75408,12 +75411,12 @@ async function installCachedPlugin(input) {
|
|
|
75408
75411
|
}
|
|
75409
75412
|
return { name: input.name, version: input.version, path: targetPath };
|
|
75410
75413
|
}
|
|
75411
|
-
async function maybeRunNpmInstall(cwd, runCommand, args = ["install"]) {
|
|
75414
|
+
async function maybeRunNpmInstall(cwd, runCommand, env2, args = ["install"]) {
|
|
75412
75415
|
if (!await fileExistsStrict(join33(cwd, "package.json")))
|
|
75413
75416
|
return;
|
|
75414
|
-
await runCommand("npm", args, { cwd });
|
|
75417
|
+
await runCommand("npm", args, { cwd, env: env2 });
|
|
75415
75418
|
}
|
|
75416
|
-
async function maybeRunNpmBuild(cwd, runCommand) {
|
|
75419
|
+
async function maybeRunNpmBuild(cwd, runCommand, env2) {
|
|
75417
75420
|
if (!await fileExistsStrict(join33(cwd, "package.json")))
|
|
75418
75421
|
return;
|
|
75419
75422
|
const packageJson = JSON.parse(await readFile8(join33(cwd, "package.json"), "utf8"));
|
|
@@ -75422,9 +75425,9 @@ async function maybeRunNpmBuild(cwd, runCommand) {
|
|
|
75422
75425
|
const scripts = packageJson.scripts;
|
|
75423
75426
|
if (!isPlainRecord3(scripts) || typeof scripts.build !== "string")
|
|
75424
75427
|
return;
|
|
75425
|
-
await runCommand("npm", ["run", "build"], { cwd });
|
|
75428
|
+
await runCommand("npm", ["run", "build"], { cwd, env: env2 });
|
|
75426
75429
|
}
|
|
75427
|
-
async function maybeRunNpmSyncSkills(cwd, runCommand) {
|
|
75430
|
+
async function maybeRunNpmSyncSkills(cwd, runCommand, env2) {
|
|
75428
75431
|
if (!await fileExistsStrict(join33(cwd, "package.json")))
|
|
75429
75432
|
return;
|
|
75430
75433
|
const packageJson = JSON.parse(await readFile8(join33(cwd, "package.json"), "utf8"));
|
|
@@ -75433,7 +75436,10 @@ async function maybeRunNpmSyncSkills(cwd, runCommand) {
|
|
|
75433
75436
|
const scripts = packageJson.scripts;
|
|
75434
75437
|
if (!isPlainRecord3(scripts) || typeof scripts["sync:skills"] !== "string")
|
|
75435
75438
|
return;
|
|
75436
|
-
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"));
|
|
75437
75443
|
}
|
|
75438
75444
|
function createTempSiblingPath(targetPath) {
|
|
75439
75445
|
return join33(dirname13(targetPath), `.tmp-${basename7(targetPath)}-${process.pid}-${Date.now()}`);
|
|
@@ -77463,6 +77469,10 @@ async function readDistributionManifest(repoRoot) {
|
|
|
77463
77469
|
}
|
|
77464
77470
|
}
|
|
77465
77471
|
function resolveLazyCodexPluginVersion(input) {
|
|
77472
|
+
const override = input.versionOverride?.trim();
|
|
77473
|
+
if (override !== undefined && override.length > 0) {
|
|
77474
|
+
return override;
|
|
77475
|
+
}
|
|
77466
77476
|
if (input.marketplaceName === "sisyphuslabs" && input.pluginName === "omo" && input.distributionManifest !== undefined) {
|
|
77467
77477
|
return input.distributionManifest.version;
|
|
77468
77478
|
}
|
|
@@ -78013,6 +78023,7 @@ async function runCodexInstaller(options = {}) {
|
|
|
78013
78023
|
return;
|
|
78014
78024
|
});
|
|
78015
78025
|
const buildSource = await shouldBuildSourcePackages(repoRoot);
|
|
78026
|
+
const versionOverride = env3.LAZYCODEX_DEV_VERSION?.trim() || undefined;
|
|
78016
78027
|
const gitBashResolution = await prepareGitBashForInstall({
|
|
78017
78028
|
platform,
|
|
78018
78029
|
env: env3,
|
|
@@ -78039,13 +78050,15 @@ async function runCodexInstaller(options = {}) {
|
|
|
78039
78050
|
manifestVersion: manifest.version,
|
|
78040
78051
|
marketplaceName: marketplace.name,
|
|
78041
78052
|
pluginName: entry.name,
|
|
78042
|
-
distributionManifest
|
|
78053
|
+
distributionManifest,
|
|
78054
|
+
versionOverride
|
|
78043
78055
|
});
|
|
78044
78056
|
validatePathSegment(version2, "plugin version");
|
|
78045
78057
|
log4(`Building ${entry.name}@${version2}`);
|
|
78046
78058
|
const plugin = await installCachedPlugin({
|
|
78047
78059
|
buildSource,
|
|
78048
78060
|
codexHome,
|
|
78061
|
+
env: env3,
|
|
78049
78062
|
marketplaceName: marketplace.name,
|
|
78050
78063
|
name: entry.name,
|
|
78051
78064
|
runCommand,
|
|
@@ -99126,6 +99139,10 @@ function formatVersionOutput(info) {
|
|
|
99126
99139
|
lines.push(` ${SYMBOLS3.dev} ${import_picocolors17.default.cyan("Running in local development mode")}`);
|
|
99127
99140
|
lines.push(` ${import_picocolors17.default.dim("Using file:// protocol from config")}`);
|
|
99128
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;
|
|
99129
99146
|
case "pinned":
|
|
99130
99147
|
lines.push(` ${SYMBOLS3.pin} ${import_picocolors17.default.magenta(`Version pinned to ${info.pinnedVersion}`)}`);
|
|
99131
99148
|
lines.push(` ${import_picocolors17.default.dim("Update check skipped for pinned versions")}`);
|
|
@@ -99198,6 +99215,19 @@ async function getLocalVersion(options = {}) {
|
|
|
99198
99215
|
console.log(options.json ? formatJsonOutput(info2) : formatVersionOutput(info2));
|
|
99199
99216
|
return 1;
|
|
99200
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
|
+
}
|
|
99201
99231
|
const { extractChannel: extractChannel2 } = await Promise.resolve().then(() => (init_auto_update_checker(), exports_auto_update_checker));
|
|
99202
99232
|
const channel = extractChannel2(pluginInfo?.pinnedVersion ?? currentVersion);
|
|
99203
99233
|
const latestVersion = await getLatestVersion(channel);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lazycodex-ai",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.18.0",
|
|
4
4
|
"description": "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/bootstrap/dist/cli.js\" hook session-start",
|
|
9
9
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\bootstrap.ps1\"",
|
|
10
10
|
"timeout": 30,
|
|
11
|
-
"statusMessage": "(OmO 4.
|
|
11
|
+
"statusMessage": "(OmO 4.18.0) Checking Bootstrap Provisioning"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
|
|
10
10
|
"timeout": 5,
|
|
11
|
-
"statusMessage": "(OmO 4.
|
|
11
|
+
"statusMessage": "(OmO 4.18.0) Recommending Git Bash MCP"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"type": "command",
|
|
21
21
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
|
|
22
22
|
"timeout": 5,
|
|
23
|
-
"statusMessage": "(OmO 4.
|
|
23
|
+
"statusMessage": "(OmO 4.18.0) Resetting Git Bash MCP Reminder"
|
|
24
24
|
}
|
|
25
25
|
]
|
|
26
26
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
|
|
10
10
|
"timeout": 10,
|
|
11
|
-
"statusMessage": "(OmO 4.
|
|
11
|
+
"statusMessage": "(OmO 4.18.0) Verifying LazyCodex Executor Evidence"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
|
|
10
10
|
"timeout": 60,
|
|
11
|
-
"statusMessage": "(OmO 4.
|
|
11
|
+
"statusMessage": "(OmO 4.18.0) Checking LSP Diagnostics"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"type": "command",
|
|
22
22
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
|
|
23
23
|
"timeout": 5,
|
|
24
|
-
"statusMessage": "(OmO 4.
|
|
24
|
+
"statusMessage": "(OmO 4.18.0) Resetting LSP Diagnostics Cache"
|
|
25
25
|
}
|
|
26
26
|
]
|
|
27
27
|
}
|
|
@@ -9,7 +9,7 @@ You are Hephaestus, an autonomous deep worker based on GPT-5.6. You and the user
|
|
|
9
9
|
|
|
10
10
|
User instructions override these defaults; newer instructions override older. Safety and type-safety constraints never yield.
|
|
11
11
|
|
|
12
|
-
Implement, don't propose. "How does X work?" means understand, then fix; "Why is A broken?" means diagnose, then fix; a message is answer-only when the user says so ("just explain", "don't change anything"). State your read in one line before acting: "I detect [intent type] - [reason]. [What I'm doing now]." That line commits you to finish the named work this turn.
|
|
12
|
+
Implement, don't propose. "How does X work?" means understand, then fix; "Why is A broken?" means diagnose, then fix; a message is answer-only when the user says so ("just explain", "don't change anything"). State your read in one line before acting: "I detect [intent type] - [reason]. [What I'm doing now]. I'll stop right away when [the exact, observable condition that ends this turn]." That line commits you to finish the named work this turn, and the stop condition you declared is BINDING - the instant it is met, stop (see Stop Goal).
|
|
13
13
|
|
|
14
14
|
Requests to answer, review, diagnose, or plan: inspect and report. Requests to change, build, or fix: implement and run non-destructive validation without asking. Confirm only destructive actions, external writes, or material scope expansion; resolve other blockers from context and reasonable assumptions.
|
|
15
15
|
|
|
@@ -29,13 +29,15 @@ Implement surgically, matching codebase style (naming, indentation, imports, err
|
|
|
29
29
|
|
|
30
30
|
# Subagents
|
|
31
31
|
|
|
32
|
-
Read-only Codex subagent roles live in `CODEX_HOME/agents/`. Spawn: `multi_agent_v1.spawn_agent({"message":"TASK: act as a <role>. ...","fork_context":false})`. If your tool list instead has a flat `spawn_agent` with a required `task_name` (`multi_agent_v2`): `spawn_agent({"task_name":"<lowercase_digits_underscores>","message":"TASK: act as a <role>. ...","fork_turns":"none"})` - finished agents end on their own; `wait_agent` takes only `timeout_ms`.
|
|
32
|
+
Read-only Codex subagent roles live in `CODEX_HOME/agents/`. Spawn: `multi_agent_v1.spawn_agent({"message":"TASK: act as a <role>. GOAL: ... STOP WHEN: ... EVIDENCE: ...","fork_context":false})`. If your tool list instead has a flat `spawn_agent` with a required `task_name` (`multi_agent_v2`): `spawn_agent({"task_name":"<lowercase_digits_underscores>","message":"TASK: act as a <role>. GOAL: ... STOP WHEN: ... EVIDENCE: ...","fork_turns":"none"})` - finished agents end on their own; `wait_agent` takes only `timeout_ms`.
|
|
33
33
|
|
|
34
34
|
- `explorer` - codebase search
|
|
35
35
|
- `librarian` - external docs, OSS code, API contracts
|
|
36
36
|
- `plan` - planning when design is still open after discovery; never for a known checklist or for work being delegated onward
|
|
37
37
|
- `lazycodex-gate-reviewer` - final verification of a finished change
|
|
38
38
|
|
|
39
|
+
Every spawn message MUST fill all three labels - **GOAL** (the one outcome that makes the child done), **STOP WHEN** (the exact, observable condition that ends its run; the child stops the moment it holds, exactly like your own intent line), **EVIDENCE** (what the child returns so you can SEE, not trust, that the condition held). A spawn missing any label is a defect: the child wanders past its goal, overworks, or reports "done" you cannot verify. Judge a child by its returned EVIDENCE against its STOP WHEN, never by its self-report. Fill the labels with outcomes and binding constraints, never mechanisms: name the behavior the child's work must achieve or distinguish, not a copy-ready assertion string, prompt fragment, expected pass/assert count, or "marker used by current tests" — a prescribed mechanism that is wrong gets implemented faithfully and the defect ships behind a green suite.
|
|
40
|
+
|
|
39
41
|
Spawn in parallel for independent investigations; do non-overlapping prep while they run, integrate on return. Never duplicate a running search or poll without a completion signal; post brief status updates while children run (active subagent count, latest `WORKING:` phase).
|
|
40
42
|
|
|
41
43
|
# Manual QA Gate
|
|
@@ -68,16 +70,16 @@ On a multi-step task, open with one or two visible sentences naming the first st
|
|
|
68
70
|
|
|
69
71
|
Final message: lead with the result, group by outcome, no conversational openers. Keep all required facts, decisions, caveats, and next steps; trim introductions, repetition, and generic reassurance first. For review requests, findings come first, ordered by severity with file references; if none, say so and name residual risks. No emojis or em dashes unless requested. Never output broken inline citations like `【F:README.md†L5-L14】` - they break the CLI.
|
|
70
72
|
|
|
71
|
-
#
|
|
73
|
+
# Stop Goal
|
|
72
74
|
|
|
73
|
-
|
|
75
|
+
Your STOP GOAL — the turn is over the moment ALL of these hold:
|
|
74
76
|
|
|
75
77
|
- Every requested behavior implemented - no partial delivery.
|
|
76
78
|
- Diagnostics clean on changed files; build exits 0; tests pass or pre-existing failures are named.
|
|
77
79
|
- The artifact passed the Manual QA Gate this turn.
|
|
78
80
|
- The final message reports what you did, verified, could not verify (and why), and pre-existing issues left alone.
|
|
79
81
|
|
|
80
|
-
|
|
82
|
+
Until the stop goal holds, keep going - through failed tool calls, long turns, and the urge to hand back a draft. The moment it holds: re-read the request and your intent line once, confirm each item against evidence already captured, confirm the stop condition you declared in your intent line is met, deliver the final message, and STOP. STOPPING IS MANDATORY AND IMMEDIATE - not a judgment call, not an invitation for one more check. No extra validation loop, no re-polish, no bonus refactor, no drive-by cleanup. Every action past the stop goal is a defect, not diligence.
|
|
81
83
|
|
|
82
84
|
Hard invariants, regardless of pressure to ship:
|
|
83
85
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.
|
|
10
|
+
"statusMessage": "(OmO 4.18.0) Loading Project Rules"
|
|
11
11
|
}
|
|
12
12
|
]
|
|
13
13
|
}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"type": "command",
|
|
20
20
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit",
|
|
21
21
|
"timeout": 10,
|
|
22
|
-
"statusMessage": "(OmO 4.
|
|
22
|
+
"statusMessage": "(OmO 4.18.0) Loading Project Rules"
|
|
23
23
|
}
|
|
24
24
|
]
|
|
25
25
|
}
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"type": "command",
|
|
33
33
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
|
|
34
34
|
"timeout": 10,
|
|
35
|
-
"statusMessage": "(OmO 4.
|
|
35
|
+
"statusMessage": "(OmO 4.18.0) Matching Project Rules"
|
|
36
36
|
}
|
|
37
37
|
]
|
|
38
38
|
}
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"type": "command",
|
|
46
46
|
"command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-compact",
|
|
47
47
|
"timeout": 10,
|
|
48
|
-
"statusMessage": "(OmO 4.
|
|
48
|
+
"statusMessage": "(OmO 4.18.0) Resetting Project Rule Cache"
|
|
49
49
|
}
|
|
50
50
|
]
|
|
51
51
|
}
|