oh-my-opencode 5.0.0-beta.45 → 5.0.0-beta.47
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 +43 -27
- package/dist/cli-node/index.js +43 -27
- package/dist/features/background-agent/error-classifier.d.ts +1 -0
- package/dist/index.js +117 -54
- package/package.json +14 -14
- 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/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 +2 -2
- 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/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/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/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/dist/cli-commands.js +15 -7
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +294 -96
- package/packages/omo-codex/plugin/components/ulw-loop/dist/constants.d.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/constants.js +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.d.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.js +12 -3
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-io.d.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-io.js +21 -6
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-missing-recovery.d.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-missing-recovery.js +10 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.d.ts +4 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.js +25 -57
- package/packages/omo-codex/plugin/components/ulw-loop/dist/state-lock.d.ts +9 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/state-lock.js +227 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +17 -3
- 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 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +10 -7
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-commands.ts +18 -7
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/constants.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/paths.ts +24 -3
- package/packages/omo-codex/plugin/components/ulw-loop/src/plan-io.ts +25 -5
- package/packages/omo-codex/plugin/components/ulw-loop/src/plan-missing-recovery.ts +11 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-guard.ts +34 -64
- package/packages/omo-codex/plugin/components/ulw-loop/src/state-lock.ts +239 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +16 -3
- package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-template.test.ts +14 -4
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-checkpoint-continuation.test.ts +4 -2
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-checkpoint.test.ts +4 -2
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-commands.test.ts +2 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-complete-goals.test.ts +3 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-create-goals.test.ts +10 -8
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-entrypoint.test.ts +12 -2
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-json-errors.test.ts +2 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-scope-required.test.ts +144 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-status-next-actions.test.ts +7 -5
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-steering-batch.test.ts +8 -3
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-validation-batch.test.ts +6 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/cli-session.ts +4 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/quality-gate-builder.ts +2 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/plan-io-cross-process.test.ts +106 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/plan-io.test.ts +36 -2
- package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-guard.test.ts +37 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/state-lock.test.ts +218 -0
- 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-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-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/package-lock.json +12 -12
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +2 -1
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +10 -7
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
- package/postinstall.mjs +2 -0
package/dist/index.js
CHANGED
|
@@ -96714,7 +96714,7 @@ function getCachedVersion(options = {}) {
|
|
|
96714
96714
|
// package.json
|
|
96715
96715
|
var package_default = {
|
|
96716
96716
|
name: "oh-my-opencode",
|
|
96717
|
-
version: "5.0.0-beta.
|
|
96717
|
+
version: "5.0.0-beta.47",
|
|
96718
96718
|
description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
|
|
96719
96719
|
main: "./dist/index.js",
|
|
96720
96720
|
types: "dist/index.d.ts",
|
|
@@ -96898,7 +96898,7 @@ var package_default = {
|
|
|
96898
96898
|
zod: "^4.4.3"
|
|
96899
96899
|
},
|
|
96900
96900
|
devDependencies: {
|
|
96901
|
-
"@code-yeongyu/senpi": "2026.9.
|
|
96901
|
+
"@code-yeongyu/senpi": "2026.9.7",
|
|
96902
96902
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
96903
96903
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
96904
96904
|
"@oh-my-opencode/boulder-state": "workspace:*",
|
|
@@ -96939,18 +96939,18 @@ var package_default = {
|
|
|
96939
96939
|
typescript: "^7.0.2"
|
|
96940
96940
|
},
|
|
96941
96941
|
optionalDependencies: {
|
|
96942
|
-
"oh-my-opencode-darwin-arm64": "5.0.0-beta.
|
|
96943
|
-
"oh-my-opencode-darwin-x64": "5.0.0-beta.
|
|
96944
|
-
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.
|
|
96945
|
-
"oh-my-opencode-linux-arm64": "5.0.0-beta.
|
|
96946
|
-
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.
|
|
96947
|
-
"oh-my-opencode-linux-x64": "5.0.0-beta.
|
|
96948
|
-
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.
|
|
96949
|
-
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.
|
|
96950
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.
|
|
96951
|
-
"oh-my-opencode-windows-arm64": "5.0.0-beta.
|
|
96952
|
-
"oh-my-opencode-windows-x64": "5.0.0-beta.
|
|
96953
|
-
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.
|
|
96942
|
+
"oh-my-opencode-darwin-arm64": "5.0.0-beta.47",
|
|
96943
|
+
"oh-my-opencode-darwin-x64": "5.0.0-beta.47",
|
|
96944
|
+
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.47",
|
|
96945
|
+
"oh-my-opencode-linux-arm64": "5.0.0-beta.47",
|
|
96946
|
+
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.47",
|
|
96947
|
+
"oh-my-opencode-linux-x64": "5.0.0-beta.47",
|
|
96948
|
+
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.47",
|
|
96949
|
+
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.47",
|
|
96950
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.47",
|
|
96951
|
+
"oh-my-opencode-windows-arm64": "5.0.0-beta.47",
|
|
96952
|
+
"oh-my-opencode-windows-x64": "5.0.0-beta.47",
|
|
96953
|
+
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.47"
|
|
96954
96954
|
},
|
|
96955
96955
|
overrides: {
|
|
96956
96956
|
"@earendil-works/pi-agent-core": "0.84.2",
|
|
@@ -125828,6 +125828,23 @@ function isAbortedSessionError(error) {
|
|
|
125828
125828
|
const message = getErrorText(error);
|
|
125829
125829
|
return message.toLowerCase().includes("aborted");
|
|
125830
125830
|
}
|
|
125831
|
+
var TRANSPORT_UNREACHABLE_PATTERNS = [
|
|
125832
|
+
/unable to connect/i,
|
|
125833
|
+
/econnrefused/i,
|
|
125834
|
+
/econnreset/i,
|
|
125835
|
+
/enotfound/i,
|
|
125836
|
+
/socket hang up/i,
|
|
125837
|
+
/fetch failed/i,
|
|
125838
|
+
/network(?:\s|_)?error/i,
|
|
125839
|
+
/not connected/i,
|
|
125840
|
+
/connection (?:closed|refused|reset)/i
|
|
125841
|
+
];
|
|
125842
|
+
function isTransportUnreachableError(error) {
|
|
125843
|
+
const text = extractErrorMessage(error) ?? getErrorText(error);
|
|
125844
|
+
if (!text)
|
|
125845
|
+
return false;
|
|
125846
|
+
return TRANSPORT_UNREACHABLE_PATTERNS.some((pattern) => pattern.test(text));
|
|
125847
|
+
}
|
|
125831
125848
|
function getErrorText(error) {
|
|
125832
125849
|
if (!error)
|
|
125833
125850
|
return "";
|
|
@@ -136643,10 +136660,14 @@ async function checkSessionExistence(client3, sessionID, directory) {
|
|
|
136643
136660
|
...directory ? { query: { directory } } : {}
|
|
136644
136661
|
});
|
|
136645
136662
|
if (response.error !== undefined && response.error !== null) {
|
|
136663
|
+
if (isTransportUnreachableError(response.error))
|
|
136664
|
+
return "missing";
|
|
136646
136665
|
return isSessionNotFoundError(response.error) ? "missing" : "unknown";
|
|
136647
136666
|
}
|
|
136648
136667
|
return response.data != null ? "exists" : "missing";
|
|
136649
136668
|
} catch (error) {
|
|
136669
|
+
if (isTransportUnreachableError(error))
|
|
136670
|
+
return "missing";
|
|
136650
136671
|
return isSessionNotFoundError(error) ? "missing" : "unknown";
|
|
136651
136672
|
}
|
|
136652
136673
|
}
|
|
@@ -137137,12 +137158,23 @@ async function getSessionActivityFromClient(client3, sessionID, directory) {
|
|
|
137137
137158
|
...directory ? { query: { directory } } : {}
|
|
137138
137159
|
});
|
|
137139
137160
|
if (isRecord(response) && response.error !== undefined && response.error !== null) {
|
|
137161
|
+
if (isTransportUnreachableError(response.error)) {
|
|
137162
|
+
log2("[background-agent] Session server is unreachable while reading activity:", { sessionID, error: response.error });
|
|
137163
|
+
return { type: "missing" };
|
|
137164
|
+
}
|
|
137140
137165
|
log2("[background-agent] Failed to read session activity:", { sessionID, error: response.error });
|
|
137141
137166
|
return { type: "unavailable" };
|
|
137142
137167
|
}
|
|
137143
137168
|
const sessionInfo = isRecord(response) && "data" in response ? response.data : response;
|
|
137144
137169
|
return sessionActivityLookupFromInfo(sessionInfo);
|
|
137145
137170
|
} catch (error) {
|
|
137171
|
+
if (isTransportUnreachableError(error)) {
|
|
137172
|
+
log2("[background-agent] Session server is unreachable while reading activity:", {
|
|
137173
|
+
sessionID,
|
|
137174
|
+
error: error instanceof Error ? error.message : error
|
|
137175
|
+
});
|
|
137176
|
+
return { type: "missing" };
|
|
137177
|
+
}
|
|
137146
137178
|
if (error instanceof Error) {
|
|
137147
137179
|
log2("[background-agent] Failed to read session activity:", { sessionID, error: error.message });
|
|
137148
137180
|
return { type: "unavailable" };
|
|
@@ -137257,6 +137289,7 @@ async function interruptStaleTask(args) {
|
|
|
137257
137289
|
const {
|
|
137258
137290
|
task,
|
|
137259
137291
|
client: client3,
|
|
137292
|
+
directory,
|
|
137260
137293
|
concurrencyManager,
|
|
137261
137294
|
notifyParentSession,
|
|
137262
137295
|
onTaskInterrupted,
|
|
@@ -137269,12 +137302,20 @@ async function interruptStaleTask(args) {
|
|
|
137269
137302
|
} = args;
|
|
137270
137303
|
const aborted = await abortWithTimeout(client3, sessionID);
|
|
137271
137304
|
if (!aborted) {
|
|
137272
|
-
|
|
137305
|
+
const existence = await checkSessionExistence(client3, sessionID, directory);
|
|
137306
|
+
if (existence !== "missing") {
|
|
137307
|
+
log2("[background-agent] Task stale interruption skipped because session abort failed:", {
|
|
137308
|
+
taskId: task.id,
|
|
137309
|
+
sessionID,
|
|
137310
|
+
reason
|
|
137311
|
+
});
|
|
137312
|
+
return;
|
|
137313
|
+
}
|
|
137314
|
+
log2("[background-agent] Session is gone and cannot be aborted; finalizing the stale task:", {
|
|
137273
137315
|
taskId: task.id,
|
|
137274
137316
|
sessionID,
|
|
137275
137317
|
reason
|
|
137276
137318
|
});
|
|
137277
|
-
return;
|
|
137278
137319
|
}
|
|
137279
137320
|
if (task.status !== "running" || task.sessionId !== sessionID)
|
|
137280
137321
|
return;
|
|
@@ -137357,6 +137398,7 @@ async function checkAndInterruptStaleTasks(args) {
|
|
|
137357
137398
|
staleInterruptions.push(interruptStaleTask({
|
|
137358
137399
|
task,
|
|
137359
137400
|
client: client3,
|
|
137401
|
+
directory,
|
|
137360
137402
|
concurrencyManager,
|
|
137361
137403
|
notifyParentSession,
|
|
137362
137404
|
onTaskInterrupted,
|
|
@@ -137404,6 +137446,7 @@ async function checkAndInterruptStaleTasks(args) {
|
|
|
137404
137446
|
staleInterruptions.push(interruptStaleTask({
|
|
137405
137447
|
task,
|
|
137406
137448
|
client: client3,
|
|
137449
|
+
directory,
|
|
137407
137450
|
concurrencyManager,
|
|
137408
137451
|
notifyParentSession,
|
|
137409
137452
|
onTaskInterrupted,
|
|
@@ -150287,7 +150330,7 @@ function getReplyListenerRuntimeSignature(config2) {
|
|
|
150287
150330
|
// packages/openclaw-core/src/reply-listener-poll-loop.ts
|
|
150288
150331
|
var PRUNE_INTERVAL_MS = 60 * 60 * 1000;
|
|
150289
150332
|
// packages/openclaw-core/src/reply-listener-start.ts
|
|
150290
|
-
import { dirname as dirname46, join as
|
|
150333
|
+
import { dirname as dirname46, join as join128 } from "path";
|
|
150291
150334
|
import { fileURLToPath as fileURLToPath7 } from "url";
|
|
150292
150335
|
|
|
150293
150336
|
// packages/openclaw-core/src/reply-listener-spawn.ts
|
|
@@ -150296,6 +150339,7 @@ init_runtime();
|
|
|
150296
150339
|
// packages/openclaw-core/src/reply-listener-process.ts
|
|
150297
150340
|
init_runtime();
|
|
150298
150341
|
import { readFileSync as readFileSync71 } from "fs";
|
|
150342
|
+
import { join as join127 } from "path";
|
|
150299
150343
|
var REPLY_LISTENER_DAEMON_IDENTITY_MARKER = "--openclaw-reply-listener-daemon";
|
|
150300
150344
|
var REPLY_LISTENER_DAEMON_ENV_ALLOWLIST = [
|
|
150301
150345
|
"PATH",
|
|
@@ -150329,6 +150373,22 @@ var REPLY_LISTENER_DAEMON_ENV_ALLOWLIST = [
|
|
|
150329
150373
|
"windir",
|
|
150330
150374
|
"COMSPEC"
|
|
150331
150375
|
];
|
|
150376
|
+
async function windowsProcessCommandLineHasMarker(pid, deps) {
|
|
150377
|
+
const systemRoot = process.env.SystemRoot ?? process.env.SYSTEMROOT ?? "C:\\Windows";
|
|
150378
|
+
const powershell = join127(systemRoot, "System32", "WindowsPowerShell", "v1.0", "powershell.exe");
|
|
150379
|
+
const processInfo = deps.spawn([
|
|
150380
|
+
powershell,
|
|
150381
|
+
"-NoProfile",
|
|
150382
|
+
"-NonInteractive",
|
|
150383
|
+
"-Command",
|
|
150384
|
+
`Get-CimInstance Win32_Process -Filter "ProcessId=${pid}" | Select-Object -ExpandProperty CommandLine`
|
|
150385
|
+
], { stdout: "pipe", stderr: "ignore" });
|
|
150386
|
+
const stdout = await new Response(processInfo.stdout).text();
|
|
150387
|
+
await processInfo.exited;
|
|
150388
|
+
if (processInfo.exitCode !== 0)
|
|
150389
|
+
return false;
|
|
150390
|
+
return stdout.includes(REPLY_LISTENER_DAEMON_IDENTITY_MARKER);
|
|
150391
|
+
}
|
|
150332
150392
|
function ignoreReplyListenerProcessProbeError(error) {
|
|
150333
150393
|
if (error instanceof Error)
|
|
150334
150394
|
return;
|
|
@@ -150364,6 +150424,9 @@ async function isReplyListenerDaemonProcessWithDeps(pid, deps) {
|
|
|
150364
150424
|
const cmdline = readProcCmdline(pid);
|
|
150365
150425
|
return cmdline.includes(REPLY_LISTENER_DAEMON_IDENTITY_MARKER);
|
|
150366
150426
|
}
|
|
150427
|
+
if (platform2 === "win32") {
|
|
150428
|
+
return await windowsProcessCommandLineHasMarker(pid, deps);
|
|
150429
|
+
}
|
|
150367
150430
|
const processInfo = deps.spawn(["ps", "-p", String(pid), "-o", "args="], {
|
|
150368
150431
|
stdout: "pipe",
|
|
150369
150432
|
stderr: "ignore"
|
|
@@ -150529,7 +150592,7 @@ function createStartFailureResult(message, state3) {
|
|
|
150529
150592
|
}
|
|
150530
150593
|
function resolveReplyListenerDaemonScript(currentFileUrl) {
|
|
150531
150594
|
const currentFilePath = fileURLToPath7(currentFileUrl);
|
|
150532
|
-
return currentFilePath.endsWith(".ts") ?
|
|
150595
|
+
return currentFilePath.endsWith(".ts") ? join128(dirname46(currentFilePath), "daemon.ts") : join128(dirname46(currentFilePath), "daemon.js");
|
|
150533
150596
|
}
|
|
150534
150597
|
async function startReplyListener(config2) {
|
|
150535
150598
|
const normalizedConfig = getNormalizedReplyListenerConfig(config2);
|
|
@@ -150953,12 +151016,12 @@ async function createRuntimeSkillSourceServer(options, runtimeEnv = runtime6) {
|
|
|
150953
151016
|
}
|
|
150954
151017
|
// packages/claude-code-compat-core/src/features/claude-code-mcp-loader/loader.ts
|
|
150955
151018
|
import { existsSync as existsSync104, readFileSync as readFileSync72 } from "fs";
|
|
150956
|
-
import { join as
|
|
151019
|
+
import { join as join129 } from "path";
|
|
150957
151020
|
import { homedir as homedir26 } from "os";
|
|
150958
151021
|
function resolveMcpLoaderContext(options = {}) {
|
|
150959
151022
|
const cwd = options.cwd ?? process.cwd();
|
|
150960
151023
|
const homeDir = options.homeDir ?? getHomeDir();
|
|
150961
|
-
const claudeConfigDir = options.claudeConfigDir ?? (options.homeDir === undefined ? getClaudeConfigDir3() :
|
|
151024
|
+
const claudeConfigDir = options.claudeConfigDir ?? (options.homeDir === undefined ? getClaudeConfigDir3() : join129(homeDir, ".claude"));
|
|
150962
151025
|
return { cwd, homeDir, claudeConfigDir };
|
|
150963
151026
|
}
|
|
150964
151027
|
var mcpLoaderInternals = {
|
|
@@ -150967,10 +151030,10 @@ var mcpLoaderInternals = {
|
|
|
150967
151030
|
function getMcpConfigPaths(context) {
|
|
150968
151031
|
const { claudeConfigDir, homeDir, cwd } = context;
|
|
150969
151032
|
return [
|
|
150970
|
-
{ path:
|
|
150971
|
-
{ path:
|
|
150972
|
-
{ path:
|
|
150973
|
-
{ path:
|
|
151033
|
+
{ path: join129(homeDir, ".claude.json"), scope: "user" },
|
|
151034
|
+
{ path: join129(claudeConfigDir, ".mcp.json"), scope: "user" },
|
|
151035
|
+
{ path: join129(cwd, ".mcp.json"), scope: "project" },
|
|
151036
|
+
{ path: join129(cwd, ".claude", ".mcp.json"), scope: "local" }
|
|
150974
151037
|
];
|
|
150975
151038
|
}
|
|
150976
151039
|
function getHomeDir() {
|
|
@@ -160489,13 +160552,13 @@ createHephaestusAgent.mode = MODE9;
|
|
|
160489
160552
|
// packages/omo-opencode/src/agents/builtin-agents/resolve-file-uri.ts
|
|
160490
160553
|
import { existsSync as existsSync105, readFileSync as readFileSync73 } from "fs";
|
|
160491
160554
|
import { homedir as homedir27 } from "os";
|
|
160492
|
-
import { isAbsolute as isAbsolute18, join as
|
|
160555
|
+
import { isAbsolute as isAbsolute18, join as join130, resolve as resolve33 } from "path";
|
|
160493
160556
|
init_logger2();
|
|
160494
160557
|
var ALLOWED_HOME_SUBDIRS = [
|
|
160495
|
-
|
|
160496
|
-
|
|
160497
|
-
|
|
160498
|
-
|
|
160558
|
+
join130(homedir27(), ".config", "opencode"),
|
|
160559
|
+
join130(homedir27(), ".config", "oh-my-openagent"),
|
|
160560
|
+
join130(homedir27(), ".omo"),
|
|
160561
|
+
join130(homedir27(), ".opencode")
|
|
160499
160562
|
];
|
|
160500
160563
|
function isWithinAllowedPaths(filePath, projectRoot) {
|
|
160501
160564
|
if (isWithinProject(filePath, projectRoot))
|
|
@@ -163253,7 +163316,7 @@ async function applyAgentConfig(params) {
|
|
|
163253
163316
|
}
|
|
163254
163317
|
// packages/claude-code-compat-core/src/features/claude-code-command-loader/loader.ts
|
|
163255
163318
|
import { promises as fs21 } from "fs";
|
|
163256
|
-
import { join as
|
|
163319
|
+
import { join as join131, basename as basename21 } from "path";
|
|
163257
163320
|
|
|
163258
163321
|
// packages/claude-code-compat-core/src/features/claude-code-command-loader/loader-cache.ts
|
|
163259
163322
|
var commandLoaderCache = new Map;
|
|
@@ -163301,7 +163364,7 @@ async function loadCommandsFromDir(commandsDir, scope, visited = new Set, prefix
|
|
|
163301
163364
|
continue;
|
|
163302
163365
|
if (entry.name.startsWith("."))
|
|
163303
163366
|
continue;
|
|
163304
|
-
const subDirPath =
|
|
163367
|
+
const subDirPath = join131(commandsDir, entry.name);
|
|
163305
163368
|
const subPrefix = prefix ? `${prefix}/${entry.name}` : entry.name;
|
|
163306
163369
|
const subCommands = await loadCommandsFromDir(subDirPath, scope, visited, subPrefix);
|
|
163307
163370
|
commands2.push(...subCommands);
|
|
@@ -163309,7 +163372,7 @@ async function loadCommandsFromDir(commandsDir, scope, visited = new Set, prefix
|
|
|
163309
163372
|
}
|
|
163310
163373
|
if (!isMarkdownFile(entry))
|
|
163311
163374
|
continue;
|
|
163312
|
-
const commandPath =
|
|
163375
|
+
const commandPath = join131(commandsDir, entry.name);
|
|
163313
163376
|
const baseCommandName = basename21(entry.name, ".md");
|
|
163314
163377
|
const commandName = prefix ? `${prefix}/${baseCommandName}` : baseCommandName;
|
|
163315
163378
|
try {
|
|
@@ -163372,12 +163435,12 @@ function commandsToRecord(commands2) {
|
|
|
163372
163435
|
return result;
|
|
163373
163436
|
}
|
|
163374
163437
|
async function loadUserCommands() {
|
|
163375
|
-
const userCommandsDir =
|
|
163438
|
+
const userCommandsDir = join131(getClaudeConfigDir3(), "commands");
|
|
163376
163439
|
const commands2 = await loadCommandsFromDir(userCommandsDir, "user");
|
|
163377
163440
|
return commandsToRecord(commands2);
|
|
163378
163441
|
}
|
|
163379
163442
|
async function loadProjectCommands(directory) {
|
|
163380
|
-
const projectCommandsDir =
|
|
163443
|
+
const projectCommandsDir = join131(directory ?? process.cwd(), ".claude", "commands");
|
|
163381
163444
|
const commands2 = await loadCommandsFromDir(projectCommandsDir, "project");
|
|
163382
163445
|
return commandsToRecord(commands2);
|
|
163383
163446
|
}
|
|
@@ -171318,7 +171381,7 @@ function createChatHeadersHandler(args) {
|
|
|
171318
171381
|
}
|
|
171319
171382
|
|
|
171320
171383
|
// packages/omo-opencode/src/plugin/ultrawork-db-model-override.ts
|
|
171321
|
-
import { join as
|
|
171384
|
+
import { join as join132 } from "path";
|
|
171322
171385
|
import { existsSync as existsSync107 } from "fs";
|
|
171323
171386
|
async function importBunSqlite() {
|
|
171324
171387
|
if (typeof globalThis.Bun === "undefined") {
|
|
@@ -171335,7 +171398,7 @@ async function importBunSqlite() {
|
|
|
171335
171398
|
}
|
|
171336
171399
|
}
|
|
171337
171400
|
function getDbPath() {
|
|
171338
|
-
return
|
|
171401
|
+
return join132(getDataDir(), "opencode", "opencode.db");
|
|
171339
171402
|
}
|
|
171340
171403
|
var MAX_MICROTASK_RETRIES = 10;
|
|
171341
171404
|
function logCaughtDbError(message, metadata, error) {
|
|
@@ -174027,7 +174090,7 @@ init_logger2();
|
|
|
174027
174090
|
// packages/omo-opencode/src/shared/omo-process-sweep.ts
|
|
174028
174091
|
import { fileURLToPath as fileURLToPath9 } from "url";
|
|
174029
174092
|
// packages/utils/src/process-sweep/sweeper.ts
|
|
174030
|
-
import { join as
|
|
174093
|
+
import { join as join135 } from "path";
|
|
174031
174094
|
|
|
174032
174095
|
// packages/utils/src/process-sweep/family-sweeper.ts
|
|
174033
174096
|
import { existsSync as existsSync108, mkdirSync as mkdirSync25, statSync as statSync16, utimesSync, writeFileSync as writeFileSync27 } from "fs";
|
|
@@ -174281,7 +174344,7 @@ function delay6(ms) {
|
|
|
174281
174344
|
// packages/utils/src/process-sweep/lsp-daemon-family.ts
|
|
174282
174345
|
import { readFileSync as readFileSync75, readdirSync as readdirSync30 } from "fs";
|
|
174283
174346
|
import { homedir as homedir28 } from "os";
|
|
174284
|
-
import { basename as basename23, join as
|
|
174347
|
+
import { basename as basename23, join as join133, resolve as resolve36 } from "path";
|
|
174285
174348
|
|
|
174286
174349
|
// packages/utils/src/process-sweep/lsp-daemon-owner-attestation.ts
|
|
174287
174350
|
import { readFile as readFile13 } from "fs/promises";
|
|
@@ -174398,7 +174461,7 @@ function resolveLspDaemonBaseDir(options = {}) {
|
|
|
174398
174461
|
if (override !== undefined && override.trim().length > 0)
|
|
174399
174462
|
return resolve36(override);
|
|
174400
174463
|
const homeDir = options.homeDir ?? env["HOME"] ?? env["USERPROFILE"] ?? homedir28();
|
|
174401
|
-
return
|
|
174464
|
+
return join133(homeDir, ".omo", "lsp-daemon");
|
|
174402
174465
|
}
|
|
174403
174466
|
var VERSION_ENTRY_PATTERN = /^v([A-Za-z0-9][A-Za-z0-9._+-]{0,127})$/;
|
|
174404
174467
|
function listLspDaemonVersionDirs(baseDir) {
|
|
@@ -174417,12 +174480,12 @@ function listLspDaemonVersionDirs(baseDir) {
|
|
|
174417
174480
|
const version = VERSION_ENTRY_PATTERN.exec(entry.name)?.[1];
|
|
174418
174481
|
if (version === undefined)
|
|
174419
174482
|
continue;
|
|
174420
|
-
versions.push({ dir:
|
|
174483
|
+
versions.push({ dir: join133(baseDir, entry.name), version });
|
|
174421
174484
|
}
|
|
174422
174485
|
return versions.sort((left, right) => left.version.localeCompare(right.version));
|
|
174423
174486
|
}
|
|
174424
174487
|
function readLspDaemonOwnerTarget(versionDir) {
|
|
174425
|
-
const ownerPath =
|
|
174488
|
+
const ownerPath = join133(versionDir, "daemon.owner");
|
|
174426
174489
|
let raw;
|
|
174427
174490
|
try {
|
|
174428
174491
|
raw = requireOwnerText(ownerPath);
|
|
@@ -174433,7 +174496,7 @@ function readLspDaemonOwnerTarget(versionDir) {
|
|
|
174433
174496
|
const owner = parseLspDaemonOwner(JSON.parse(raw));
|
|
174434
174497
|
if (owner === null)
|
|
174435
174498
|
return null;
|
|
174436
|
-
return { authPath:
|
|
174499
|
+
return { authPath: join133(versionDir, "daemon.auth"), owner, ownerPath, pid: owner.pid };
|
|
174437
174500
|
} catch {
|
|
174438
174501
|
return null;
|
|
174439
174502
|
}
|
|
@@ -174605,33 +174668,33 @@ function matchLspDaemonProxyCommand(command, roots, platform2) {
|
|
|
174605
174668
|
// packages/utils/src/process-sweep/roots.ts
|
|
174606
174669
|
import { existsSync as existsSync109, readdirSync as readdirSync31, realpathSync as realpathSync20 } from "fs";
|
|
174607
174670
|
import { homedir as homedir29 } from "os";
|
|
174608
|
-
import { join as
|
|
174671
|
+
import { join as join134, resolve as resolve37 } from "path";
|
|
174609
174672
|
function discoverOmoOwnedRoots(options = {}) {
|
|
174610
174673
|
const env = options.env ?? process.env;
|
|
174611
174674
|
const homeDir = options.homeDir ?? env["HOME"] ?? env["USERPROFILE"] ?? homedir29();
|
|
174612
174675
|
const roots = new Set;
|
|
174613
|
-
addRoot(roots,
|
|
174676
|
+
addRoot(roots, join134(homeDir, ".claude", "omo"));
|
|
174614
174677
|
addRoot(roots, options.pluginRoot);
|
|
174615
174678
|
for (const root of options.extraRoots ?? [])
|
|
174616
174679
|
addRoot(roots, root);
|
|
174617
|
-
for (const root of readCodexPluginCacheRoots(options.codexHome ?? env["CODEX_HOME"] ??
|
|
174680
|
+
for (const root of readCodexPluginCacheRoots(options.codexHome ?? env["CODEX_HOME"] ?? join134(homeDir, ".codex"))) {
|
|
174618
174681
|
addRoot(roots, root);
|
|
174619
174682
|
}
|
|
174620
174683
|
return [...roots];
|
|
174621
174684
|
}
|
|
174622
174685
|
function readCodexPluginCacheRoots(codexHome) {
|
|
174623
|
-
const cacheRoot =
|
|
174686
|
+
const cacheRoot = join134(codexHome, "plugins", "cache");
|
|
174624
174687
|
if (!existsSync109(cacheRoot))
|
|
174625
174688
|
return [];
|
|
174626
174689
|
const roots = [];
|
|
174627
174690
|
for (const publisher of safeReadDir(cacheRoot)) {
|
|
174628
174691
|
if (!OMO_CODEX_PLUGIN_CACHE_PUBLISHERS.has(publisher))
|
|
174629
174692
|
continue;
|
|
174630
|
-
const omoRoot =
|
|
174693
|
+
const omoRoot = join134(cacheRoot, publisher, "omo");
|
|
174631
174694
|
if (!existsSync109(omoRoot))
|
|
174632
174695
|
continue;
|
|
174633
174696
|
for (const version of safeReadDir(omoRoot))
|
|
174634
|
-
roots.push(
|
|
174697
|
+
roots.push(join134(omoRoot, version));
|
|
174635
174698
|
}
|
|
174636
174699
|
return roots;
|
|
174637
174700
|
}
|
|
@@ -174671,7 +174734,7 @@ var OMO_CODEX_PLUGIN_CACHE_PUBLISHERS = new Set(["sisyphuslabs"]);
|
|
|
174671
174734
|
// packages/utils/src/process-sweep/sweeper.ts
|
|
174672
174735
|
var LSP_PROXY_SWEEP_STAMP_FILE = "lsp-proxy-sweep.stamp";
|
|
174673
174736
|
async function sweepOrphanedLspDaemonProxies(options = {}) {
|
|
174674
|
-
const stampFile =
|
|
174737
|
+
const stampFile = join135(resolveLspDaemonBaseDir(options), LSP_PROXY_SWEEP_STAMP_FILE);
|
|
174675
174738
|
const ownedRoots = options.ownedRoots ?? discoverOmoOwnedRoots(options);
|
|
174676
174739
|
const result = await runProcessFamilySweep({
|
|
174677
174740
|
familyLabel: "lsp-daemon proxy sweep",
|
|
@@ -174690,7 +174753,7 @@ async function sweepOrphanedLspDaemonProxies(options = {}) {
|
|
|
174690
174753
|
var LSP_DAEMON_SWEEP_STAMP_FILE = "lsp-daemon-sweep.stamp";
|
|
174691
174754
|
async function sweepStaleLspDaemonVersions(options = {}) {
|
|
174692
174755
|
const baseDir = resolveLspDaemonBaseDir(options);
|
|
174693
|
-
const stampFile =
|
|
174756
|
+
const stampFile = join135(baseDir, LSP_DAEMON_SWEEP_STAMP_FILE);
|
|
174694
174757
|
const currentVersion = resolveCurrentLspDaemonVersion(options);
|
|
174695
174758
|
const dryRun = options.dryRun === true;
|
|
174696
174759
|
if (currentVersion === undefined) {
|
|
@@ -174763,21 +174826,21 @@ function defaultPluginRoot() {
|
|
|
174763
174826
|
init_atomic_write();
|
|
174764
174827
|
init_xdg_data_dir();
|
|
174765
174828
|
import { existsSync as existsSync110, mkdirSync as mkdirSync26, readFileSync as readFileSync76 } from "fs";
|
|
174766
|
-
import { basename as basename24, join as
|
|
174829
|
+
import { basename as basename24, join as join136 } from "path";
|
|
174767
174830
|
var POSTHOG_ACTIVITY_STATE_FILE = "posthog-activity.json";
|
|
174768
174831
|
function resolveTelemetryStateDir(product, options = {}) {
|
|
174769
174832
|
const dataDir = resolveXdgDataDir(product.cacheDirName, {
|
|
174770
174833
|
env: options.env,
|
|
174771
174834
|
osProvider: options.osProvider
|
|
174772
174835
|
});
|
|
174773
|
-
const xdgStateDir = options.env?.XDG_DATA_HOME === undefined ? undefined :
|
|
174836
|
+
const xdgStateDir = options.env?.XDG_DATA_HOME === undefined ? undefined : join136(options.env.XDG_DATA_HOME, product.cacheDirName);
|
|
174774
174837
|
if (dataDir === xdgStateDir || xdgStateDir === undefined && basename24(dataDir) === product.cacheDirName) {
|
|
174775
174838
|
return dataDir;
|
|
174776
174839
|
}
|
|
174777
|
-
return
|
|
174840
|
+
return join136(dataDir, product.cacheDirName);
|
|
174778
174841
|
}
|
|
174779
174842
|
function getTelemetryActivityStateFilePath(stateDir) {
|
|
174780
|
-
return
|
|
174843
|
+
return join136(stateDir, POSTHOG_ACTIVITY_STATE_FILE);
|
|
174781
174844
|
}
|
|
174782
174845
|
function getDailyActiveCaptureState(input) {
|
|
174783
174846
|
const state3 = readPostHogActivityState(input.stateDir, input.diagnostics);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oh-my-opencode",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.47",
|
|
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",
|
|
@@ -184,7 +184,7 @@
|
|
|
184
184
|
"zod": "^4.4.3"
|
|
185
185
|
},
|
|
186
186
|
"devDependencies": {
|
|
187
|
-
"@code-yeongyu/senpi": "2026.9.
|
|
187
|
+
"@code-yeongyu/senpi": "2026.9.7",
|
|
188
188
|
"@oh-my-opencode/agents-md-core": "workspace:*",
|
|
189
189
|
"@oh-my-opencode/ast-grep-mcp": "workspace:*",
|
|
190
190
|
"@oh-my-opencode/boulder-state": "workspace:*",
|
|
@@ -225,18 +225,18 @@
|
|
|
225
225
|
"typescript": "^7.0.2"
|
|
226
226
|
},
|
|
227
227
|
"optionalDependencies": {
|
|
228
|
-
"oh-my-opencode-darwin-arm64": "5.0.0-beta.
|
|
229
|
-
"oh-my-opencode-darwin-x64": "5.0.0-beta.
|
|
230
|
-
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.
|
|
231
|
-
"oh-my-opencode-linux-arm64": "5.0.0-beta.
|
|
232
|
-
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.
|
|
233
|
-
"oh-my-opencode-linux-x64": "5.0.0-beta.
|
|
234
|
-
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.
|
|
235
|
-
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.
|
|
236
|
-
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.
|
|
237
|
-
"oh-my-opencode-windows-arm64": "5.0.0-beta.
|
|
238
|
-
"oh-my-opencode-windows-x64": "5.0.0-beta.
|
|
239
|
-
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.
|
|
228
|
+
"oh-my-opencode-darwin-arm64": "5.0.0-beta.47",
|
|
229
|
+
"oh-my-opencode-darwin-x64": "5.0.0-beta.47",
|
|
230
|
+
"oh-my-opencode-darwin-x64-baseline": "5.0.0-beta.47",
|
|
231
|
+
"oh-my-opencode-linux-arm64": "5.0.0-beta.47",
|
|
232
|
+
"oh-my-opencode-linux-arm64-musl": "5.0.0-beta.47",
|
|
233
|
+
"oh-my-opencode-linux-x64": "5.0.0-beta.47",
|
|
234
|
+
"oh-my-opencode-linux-x64-baseline": "5.0.0-beta.47",
|
|
235
|
+
"oh-my-opencode-linux-x64-musl": "5.0.0-beta.47",
|
|
236
|
+
"oh-my-opencode-linux-x64-musl-baseline": "5.0.0-beta.47",
|
|
237
|
+
"oh-my-opencode-windows-arm64": "5.0.0-beta.47",
|
|
238
|
+
"oh-my-opencode-windows-x64": "5.0.0-beta.47",
|
|
239
|
+
"oh-my-opencode-windows-x64-baseline": "5.0.0-beta.47"
|
|
240
240
|
},
|
|
241
241
|
"overrides": {
|
|
242
242
|
"@earendil-works/pi-agent-core": "0.84.2",
|
|
@@ -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 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.47) Checking Bootstrap Provisioning"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sisyphuslabs/codex-bootstrap",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.47",
|
|
4
4
|
"description": "Codex SessionStart bootstrap component that provisions LazyCodex runtime dependencies from a detached worker.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"private": true,
|
|
@@ -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 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.47) 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 5.0.0-beta.
|
|
23
|
+
"statusMessage": "(OmO 5.0.0-beta.47) 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 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.47) Verifying LazyCodex Executor Evidence"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-yeongyu/codex-lazycodex-executor-verify",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.47",
|
|
4
4
|
"description": "Codex SubagentStop evidence verifier for LazyCodex executor completions.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "npm@11.12.1",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"version": "5.0.0-beta.
|
|
4
|
-
"inputDigest": "sha256:
|
|
3
|
+
"version": "5.0.0-beta.47",
|
|
4
|
+
"inputDigest": "sha256:94520f713de8b6ee4d0cdfc7bf4d42221ae6f23e646b8cfed12bd55fa6f298b7",
|
|
5
5
|
"outputs": [
|
|
6
6
|
{
|
|
7
7
|
"path": "cli.d.ts",
|
|
@@ -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 5.0.0-beta.
|
|
11
|
+
"statusMessage": "(OmO 5.0.0-beta.47) 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 5.0.0-beta.
|
|
24
|
+
"statusMessage": "(OmO 5.0.0-beta.47) Resetting LSP Diagnostics Cache"
|
|
25
25
|
}
|
|
26
26
|
]
|
|
27
27
|
}
|