lazycodex-ai 5.1.46 → 5.1.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.
Files changed (75) hide show
  1. package/dist/cli/index.js +29 -21
  2. package/dist/cli/service-auth/keystore.d.ts +8 -3
  3. package/dist/cli-node/index.js +29 -21
  4. package/package.json +1 -1
  5. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  6. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +1 -2
  7. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  8. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  9. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  10. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  11. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  12. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  13. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  14. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  15. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  16. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  17. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  18. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  19. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  20. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  21. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  22. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  23. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  24. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  25. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  26. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  27. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  28. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  29. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  30. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  31. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  32. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  33. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  34. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  35. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  36. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  37. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  38. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  39. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  40. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  41. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  42. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  43. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  44. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  45. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  46. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  47. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  48. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  49. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  50. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  51. package/packages/omo-codex/plugin/package-lock.json +12 -12
  52. package/packages/omo-codex/plugin/package.json +1 -1
  53. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +1 -1
  54. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
  55. package/packages/omo-codex/plugin/skills/ulw-research/references/deliverable-phase.md +9 -2
  56. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-meaning.mjs +7 -22
  57. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-polish.mjs +127 -0
  58. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands-verify.mjs +19 -0
  59. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-commands.mjs +4 -2
  60. package/packages/omo-codex/plugin/skills/ulw-research/scripts/fact-pairs.mjs +7 -9
  61. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +1 -1
  62. package/packages/omo-codex/scripts/install-dist/install-local.mjs +4 -5
  63. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
  64. package/packages/shared-skills/skills/ulw-research/SKILL.md +1 -1
  65. package/packages/shared-skills/skills/ulw-research/references/deliverable-phase.md +9 -2
  66. package/packages/shared-skills/skills/ulw-research/scripts/copy-returns-polish.test.ts +209 -0
  67. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-meaning.mjs +7 -22
  68. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-polish.mjs +127 -0
  69. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands-verify.mjs +19 -0
  70. package/packages/shared-skills/skills/ulw-research/scripts/fact-commands.mjs +4 -2
  71. package/packages/shared-skills/skills/ulw-research/scripts/fact-pairs.mjs +7 -9
  72. package/packages/shared-skills/skills/ulw-research/scripts/fact-pairs.test.ts +7 -23
  73. package/packages/shared-skills/skills/ulw-research/scripts/references-fences.test.ts +25 -0
  74. package/packages/shared-skills/skills/ulw-research/scripts/report-tools.test.ts +87 -0
  75. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/fidelity/polish-edits.json +12 -0
package/dist/cli/index.js CHANGED
@@ -2132,7 +2132,7 @@ var package_default;
2132
2132
  var init_package = __esm(() => {
2133
2133
  package_default = {
2134
2134
  name: "oh-my-opencode",
2135
- version: "5.1.46",
2135
+ version: "5.1.47",
2136
2136
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
2137
2137
  main: "./dist/index.js",
2138
2138
  types: "dist/index.d.ts",
@@ -2378,18 +2378,18 @@ var init_package = __esm(() => {
2378
2378
  typescript: "^7.0.2"
2379
2379
  },
2380
2380
  optionalDependencies: {
2381
- "oh-my-opencode-darwin-arm64": "5.1.46",
2382
- "oh-my-opencode-darwin-x64": "5.1.46",
2383
- "oh-my-opencode-darwin-x64-baseline": "5.1.46",
2384
- "oh-my-opencode-linux-arm64": "5.1.46",
2385
- "oh-my-opencode-linux-arm64-musl": "5.1.46",
2386
- "oh-my-opencode-linux-x64": "5.1.46",
2387
- "oh-my-opencode-linux-x64-baseline": "5.1.46",
2388
- "oh-my-opencode-linux-x64-musl": "5.1.46",
2389
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.46",
2390
- "oh-my-opencode-windows-arm64": "5.1.46",
2391
- "oh-my-opencode-windows-x64": "5.1.46",
2392
- "oh-my-opencode-windows-x64-baseline": "5.1.46"
2381
+ "oh-my-opencode-darwin-arm64": "5.1.47",
2382
+ "oh-my-opencode-darwin-x64": "5.1.47",
2383
+ "oh-my-opencode-darwin-x64-baseline": "5.1.47",
2384
+ "oh-my-opencode-linux-arm64": "5.1.47",
2385
+ "oh-my-opencode-linux-arm64-musl": "5.1.47",
2386
+ "oh-my-opencode-linux-x64": "5.1.47",
2387
+ "oh-my-opencode-linux-x64-baseline": "5.1.47",
2388
+ "oh-my-opencode-linux-x64-musl": "5.1.47",
2389
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.47",
2390
+ "oh-my-opencode-windows-arm64": "5.1.47",
2391
+ "oh-my-opencode-windows-x64": "5.1.47",
2392
+ "oh-my-opencode-windows-x64-baseline": "5.1.47"
2393
2393
  },
2394
2394
  overrides: {
2395
2395
  hono: "^4.13.8",
@@ -7163,7 +7163,7 @@ function resolveStdio(options) {
7163
7163
  return [options.stdin ?? "ignore", options.stdout ?? "pipe", options.stderr ?? "inherit"];
7164
7164
  }
7165
7165
  function createBunSpawnOptions(options) {
7166
- return { ...options, windowsHide: true };
7166
+ return { ...options, env: options.env ?? process.env, windowsHide: true };
7167
7167
  }
7168
7168
  function createNodeSpawnOptions(options, platform = process.platform) {
7169
7169
  const nodeOptions = {
@@ -10184,6 +10184,10 @@ function transformModelForProviderUsingAnthropicBehavior(provider, model) {
10184
10184
  return "k3";
10185
10185
  if (model === "kimi-k3-256k")
10186
10186
  return "k3-256k";
10187
+ if (model === "kimi-k3.1-pro")
10188
+ return "k3.1-pro";
10189
+ if (model === "kimi-k3.1-pro-highspeed")
10190
+ return "k3.1-pro-highspeed";
10187
10191
  }
10188
10192
  return model;
10189
10193
  }
@@ -92381,7 +92385,7 @@ var package_default2;
92381
92385
  var init_package2 = __esm(() => {
92382
92386
  package_default2 = {
92383
92387
  name: "@oh-my-opencode/omo-codex",
92384
- version: "5.1.46",
92388
+ version: "5.1.47",
92385
92389
  type: "module",
92386
92390
  private: true,
92387
92391
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -93954,8 +93958,7 @@ function windowsNodeDiscoveryLines() {
93954
93958
  ' for /f "tokens=* delims= " %%N in ("!OMO_NODE_BINARY!") do set "OMO_NODE_BINARY=%%N"',
93955
93959
  ` if "!OMO_NODE_BINARY:~0,1!"=="'" set "OMO_NODE_BINARY=!OMO_NODE_BINARY:~1!"`,
93956
93960
  ` if "!OMO_NODE_BINARY:~-1!"=="'" set "OMO_NODE_BINARY=!OMO_NODE_BINARY:~0,-1!"`,
93957
- ' if "!OMO_NODE_BINARY:~0,1!"=="^"" set "OMO_NODE_BINARY=!OMO_NODE_BINARY:~1!"',
93958
- ' if "!OMO_NODE_BINARY:~-1!"=="^"" set "OMO_NODE_BINARY=!OMO_NODE_BINARY:~0,-1!"',
93961
+ ' set "OMO_NODE_BINARY=!OMO_NODE_BINARY:"=!"',
93959
93962
  ' if defined OMO_NODE_BINARY if not exist "!OMO_NODE_BINARY!" set "OMO_NODE_BINARY="',
93960
93963
  ")",
93961
93964
  'if not defined OMO_NODE_BINARY where node >nul 2>nul && set "OMO_NODE_BINARY=node"'
@@ -112065,6 +112068,8 @@ class CredentialStoreError extends SignInError {
112065
112068
 
112066
112069
  class KeychainLockedError extends CredentialStoreError {
112067
112070
  }
112071
+ class InvalidCredentialState extends SignInError {
112072
+ }
112068
112073
  var LOCKED = /-25308|errSecInteractionNotAllowed|interaction is not allowed|locked collection/i;
112069
112074
  var UNLOCKED_REUSE_MS = 30000;
112070
112075
  var fallbackNoticed = false;
@@ -112080,12 +112085,15 @@ function credentialId(api) {
112080
112085
  return createHash10("sha256").update(serviceOrigin(api)).digest("hex");
112081
112086
  }
112082
112087
  function createCredentialStore(api, secrets = typeof Bun === "undefined" ? null : Bun.secrets, platform = process.platform, lockProbe = probeSecretServiceLock, notice = stderrNoticeOncePerProcess) {
112088
+ return createSealedStore(api, "omo-cli", credentialSchema, secrets, platform, lockProbe, notice);
112089
+ }
112090
+ function createSealedStore(api, namespace, schema, secrets = typeof Bun === "undefined" ? null : Bun.secrets, platform = process.platform, lockProbe = probeSecretServiceLock, notice = stderrNoticeOncePerProcess) {
112083
112091
  if (!secrets)
112084
112092
  throw new SignInError("OmO sign-in needs Bun 1.4 or newer with OS credential storage. No file fallback is available.");
112085
112093
  const platformName = platform === "darwin" ? "macOS Keychain" : platform === "linux" ? "Linux Secret Service (libsecret and an unlocked keyring)" : platform === "win32" ? "Windows Credential Manager" : null;
112086
112094
  if (platformName === null)
112087
112095
  throw new SignInError("This platform has no supported OS credential store.");
112088
- const key = { service: "omo-cli", name: credentialId(api) };
112096
+ const key = { service: namespace, name: credentialId(api) };
112089
112097
  const unavailable = (error) => isLocked(error) ? new KeychainLockedError(`${platformName} is locked. Unlock it, then try again. Credentials are never saved to a file.`) : new CredentialStoreError(`Cannot access ${platformName}. Unlock or enable the OS credential store and try again. Credentials are never saved to a file.`);
112090
112098
  let unlockedUntil = 0;
112091
112099
  let noticed = false;
@@ -112116,15 +112124,15 @@ function createCredentialStore(api, secrets = typeof Bun === "undefined" ? null
112116
112124
  if (value === null)
112117
112125
  return null;
112118
112126
  try {
112119
- return credentialSchema.parse(JSON.parse(value));
112127
+ return schema.parse(JSON.parse(value));
112120
112128
  } catch {
112121
- throw new SignInError("Stored sign-in data is invalid. Run omo logout, then omo login.");
112129
+ throw new InvalidCredentialState("Stored sign-in data is invalid. Run omo logout, then omo login.");
112122
112130
  }
112123
112131
  },
112124
112132
  async write(value) {
112125
112133
  await assertUsable();
112126
112134
  try {
112127
- await secrets.set({ ...key, value: JSON.stringify(credentialSchema.parse(value)) });
112135
+ await secrets.set({ ...key, value: JSON.stringify(schema.parse(value)) });
112128
112136
  } catch (error) {
112129
112137
  throw unavailable(error);
112130
112138
  }
@@ -1,3 +1,4 @@
1
+ import type { z } from "zod";
1
2
  import { type Credentials, SignInError } from "./protocol";
2
3
  import { type SecretServiceLockProbe } from "./secret-service-lock";
3
4
  type SecretKey = {
@@ -11,18 +12,22 @@ export type SecretApi = {
11
12
  }) => Promise<void>;
12
13
  readonly delete: (key: SecretKey) => Promise<boolean>;
13
14
  };
14
- export type CredentialStore = {
15
- readonly read: () => Promise<Credentials | null>;
16
- readonly write: (value: Credentials) => Promise<void>;
15
+ export type SealedStore<T> = {
16
+ readonly read: () => Promise<T | null>;
17
+ readonly write: (value: T) => Promise<void>;
17
18
  readonly clear: () => Promise<void>;
18
19
  };
20
+ export type CredentialStore = SealedStore<Credentials>;
19
21
  export declare class CredentialStoreError extends SignInError {
20
22
  }
21
23
  export declare class KeychainLockedError extends CredentialStoreError {
22
24
  }
23
25
  export declare class SecretServiceUnavailableError extends CredentialStoreError {
24
26
  }
27
+ export declare class InvalidCredentialState extends SignInError {
28
+ }
25
29
  export declare const quietNotice: (_message: string) => void;
26
30
  export declare function credentialId(api: string): string;
27
31
  export declare function createCredentialStore(api: string, secrets?: SecretApi | null, platform?: NodeJS.Platform, lockProbe?: SecretServiceLockProbe, notice?: (message: string) => void): CredentialStore;
32
+ export declare function createSealedStore<T>(api: string, namespace: "omo-cli" | "omo-cli-v2" | "omo-cli-revocations-v2", schema: z.ZodType<T>, secrets?: SecretApi | null, platform?: NodeJS.Platform, lockProbe?: SecretServiceLockProbe, notice?: (message: string) => void): SealedStore<T>;
28
33
  export {};
@@ -2133,7 +2133,7 @@ var package_default;
2133
2133
  var init_package = __esm(() => {
2134
2134
  package_default = {
2135
2135
  name: "oh-my-opencode",
2136
- version: "5.1.46",
2136
+ version: "5.1.47",
2137
2137
  description: "The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools",
2138
2138
  main: "./dist/index.js",
2139
2139
  types: "dist/index.d.ts",
@@ -2379,18 +2379,18 @@ var init_package = __esm(() => {
2379
2379
  typescript: "^7.0.2"
2380
2380
  },
2381
2381
  optionalDependencies: {
2382
- "oh-my-opencode-darwin-arm64": "5.1.46",
2383
- "oh-my-opencode-darwin-x64": "5.1.46",
2384
- "oh-my-opencode-darwin-x64-baseline": "5.1.46",
2385
- "oh-my-opencode-linux-arm64": "5.1.46",
2386
- "oh-my-opencode-linux-arm64-musl": "5.1.46",
2387
- "oh-my-opencode-linux-x64": "5.1.46",
2388
- "oh-my-opencode-linux-x64-baseline": "5.1.46",
2389
- "oh-my-opencode-linux-x64-musl": "5.1.46",
2390
- "oh-my-opencode-linux-x64-musl-baseline": "5.1.46",
2391
- "oh-my-opencode-windows-arm64": "5.1.46",
2392
- "oh-my-opencode-windows-x64": "5.1.46",
2393
- "oh-my-opencode-windows-x64-baseline": "5.1.46"
2382
+ "oh-my-opencode-darwin-arm64": "5.1.47",
2383
+ "oh-my-opencode-darwin-x64": "5.1.47",
2384
+ "oh-my-opencode-darwin-x64-baseline": "5.1.47",
2385
+ "oh-my-opencode-linux-arm64": "5.1.47",
2386
+ "oh-my-opencode-linux-arm64-musl": "5.1.47",
2387
+ "oh-my-opencode-linux-x64": "5.1.47",
2388
+ "oh-my-opencode-linux-x64-baseline": "5.1.47",
2389
+ "oh-my-opencode-linux-x64-musl": "5.1.47",
2390
+ "oh-my-opencode-linux-x64-musl-baseline": "5.1.47",
2391
+ "oh-my-opencode-windows-arm64": "5.1.47",
2392
+ "oh-my-opencode-windows-x64": "5.1.47",
2393
+ "oh-my-opencode-windows-x64-baseline": "5.1.47"
2394
2394
  },
2395
2395
  overrides: {
2396
2396
  hono: "^4.13.8",
@@ -7164,7 +7164,7 @@ function resolveStdio(options) {
7164
7164
  return [options.stdin ?? "ignore", options.stdout ?? "pipe", options.stderr ?? "inherit"];
7165
7165
  }
7166
7166
  function createBunSpawnOptions(options) {
7167
- return { ...options, windowsHide: true };
7167
+ return { ...options, env: options.env ?? process.env, windowsHide: true };
7168
7168
  }
7169
7169
  function createNodeSpawnOptions(options, platform = process.platform) {
7170
7170
  const nodeOptions = {
@@ -10185,6 +10185,10 @@ function transformModelForProviderUsingAnthropicBehavior(provider, model) {
10185
10185
  return "k3";
10186
10186
  if (model === "kimi-k3-256k")
10187
10187
  return "k3-256k";
10188
+ if (model === "kimi-k3.1-pro")
10189
+ return "k3.1-pro";
10190
+ if (model === "kimi-k3.1-pro-highspeed")
10191
+ return "k3.1-pro-highspeed";
10188
10192
  }
10189
10193
  return model;
10190
10194
  }
@@ -92460,7 +92464,7 @@ var package_default2;
92460
92464
  var init_package2 = __esm(() => {
92461
92465
  package_default2 = {
92462
92466
  name: "@oh-my-opencode/omo-codex",
92463
- version: "5.1.46",
92467
+ version: "5.1.47",
92464
92468
  type: "module",
92465
92469
  private: true,
92466
92470
  description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
@@ -94033,8 +94037,7 @@ function windowsNodeDiscoveryLines() {
94033
94037
  ' for /f "tokens=* delims= " %%N in ("!OMO_NODE_BINARY!") do set "OMO_NODE_BINARY=%%N"',
94034
94038
  ` if "!OMO_NODE_BINARY:~0,1!"=="'" set "OMO_NODE_BINARY=!OMO_NODE_BINARY:~1!"`,
94035
94039
  ` if "!OMO_NODE_BINARY:~-1!"=="'" set "OMO_NODE_BINARY=!OMO_NODE_BINARY:~0,-1!"`,
94036
- ' if "!OMO_NODE_BINARY:~0,1!"=="^"" set "OMO_NODE_BINARY=!OMO_NODE_BINARY:~1!"',
94037
- ' if "!OMO_NODE_BINARY:~-1!"=="^"" set "OMO_NODE_BINARY=!OMO_NODE_BINARY:~0,-1!"',
94040
+ ' set "OMO_NODE_BINARY=!OMO_NODE_BINARY:"=!"',
94038
94041
  ' if defined OMO_NODE_BINARY if not exist "!OMO_NODE_BINARY!" set "OMO_NODE_BINARY="',
94039
94042
  ")",
94040
94043
  'if not defined OMO_NODE_BINARY where node >nul 2>nul && set "OMO_NODE_BINARY=node"'
@@ -112144,6 +112147,8 @@ class CredentialStoreError extends SignInError {
112144
112147
 
112145
112148
  class KeychainLockedError extends CredentialStoreError {
112146
112149
  }
112150
+ class InvalidCredentialState extends SignInError {
112151
+ }
112147
112152
  var LOCKED = /-25308|errSecInteractionNotAllowed|interaction is not allowed|locked collection/i;
112148
112153
  var UNLOCKED_REUSE_MS = 30000;
112149
112154
  var fallbackNoticed = false;
@@ -112159,12 +112164,15 @@ function credentialId(api) {
112159
112164
  return createHash10("sha256").update(serviceOrigin(api)).digest("hex");
112160
112165
  }
112161
112166
  function createCredentialStore(api, secrets = typeof Bun === "undefined" ? null : Bun.secrets, platform = process.platform, lockProbe = probeSecretServiceLock, notice = stderrNoticeOncePerProcess) {
112167
+ return createSealedStore(api, "omo-cli", credentialSchema, secrets, platform, lockProbe, notice);
112168
+ }
112169
+ function createSealedStore(api, namespace, schema, secrets = typeof Bun === "undefined" ? null : Bun.secrets, platform = process.platform, lockProbe = probeSecretServiceLock, notice = stderrNoticeOncePerProcess) {
112162
112170
  if (!secrets)
112163
112171
  throw new SignInError("OmO sign-in needs Bun 1.4 or newer with OS credential storage. No file fallback is available.");
112164
112172
  const platformName = platform === "darwin" ? "macOS Keychain" : platform === "linux" ? "Linux Secret Service (libsecret and an unlocked keyring)" : platform === "win32" ? "Windows Credential Manager" : null;
112165
112173
  if (platformName === null)
112166
112174
  throw new SignInError("This platform has no supported OS credential store.");
112167
- const key = { service: "omo-cli", name: credentialId(api) };
112175
+ const key = { service: namespace, name: credentialId(api) };
112168
112176
  const unavailable = (error) => isLocked(error) ? new KeychainLockedError(`${platformName} is locked. Unlock it, then try again. Credentials are never saved to a file.`) : new CredentialStoreError(`Cannot access ${platformName}. Unlock or enable the OS credential store and try again. Credentials are never saved to a file.`);
112169
112177
  let unlockedUntil = 0;
112170
112178
  let noticed = false;
@@ -112195,15 +112203,15 @@ function createCredentialStore(api, secrets = typeof Bun === "undefined" ? null
112195
112203
  if (value === null)
112196
112204
  return null;
112197
112205
  try {
112198
- return credentialSchema.parse(JSON.parse(value));
112206
+ return schema.parse(JSON.parse(value));
112199
112207
  } catch {
112200
- throw new SignInError("Stored sign-in data is invalid. Run omo logout, then omo login.");
112208
+ throw new InvalidCredentialState("Stored sign-in data is invalid. Run omo logout, then omo login.");
112201
112209
  }
112202
112210
  },
112203
112211
  async write(value) {
112204
112212
  await assertUsable();
112205
112213
  try {
112206
- await secrets.set({ ...key, value: JSON.stringify(credentialSchema.parse(value)) });
112214
+ await secrets.set({ ...key, value: JSON.stringify(schema.parse(value)) });
112207
112215
  } catch (error) {
112208
112216
  throw unavailable(error);
112209
112217
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lazycodex-ai",
3
- "version": "5.1.46",
3
+ "version": "5.1.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",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omo",
3
- "version": "5.1.46",
3
+ "version": "5.1.47",
4
4
  "description": "One Codex plugin namespace for Yeongyu's local Codex components.",
5
5
  "author": {
6
6
  "name": "Yeongyu Kim",
@@ -10820,8 +10820,7 @@ function windowsNodeDiscoveryLines() {
10820
10820
  ' for /f "tokens=* delims= " %%N in ("!OMO_NODE_BINARY!") do set "OMO_NODE_BINARY=%%N"',
10821
10821
  ` if "!OMO_NODE_BINARY:~0,1!"=="'" set "OMO_NODE_BINARY=!OMO_NODE_BINARY:~1!"`,
10822
10822
  ` if "!OMO_NODE_BINARY:~-1!"=="'" set "OMO_NODE_BINARY=!OMO_NODE_BINARY:~0,-1!"`,
10823
- ' if "!OMO_NODE_BINARY:~0,1!"=="^"" set "OMO_NODE_BINARY=!OMO_NODE_BINARY:~1!"',
10824
- ' if "!OMO_NODE_BINARY:~-1!"=="^"" set "OMO_NODE_BINARY=!OMO_NODE_BINARY:~0,-1!"',
10823
+ ' set "OMO_NODE_BINARY=!OMO_NODE_BINARY:"=!"',
10825
10824
  ' if defined OMO_NODE_BINARY if not exist "!OMO_NODE_BINARY!" set "OMO_NODE_BINARY="',
10826
10825
  ")",
10827
10826
  'if not defined OMO_NODE_BINARY where node >nul 2>nul && set "OMO_NODE_BINARY=node"'
@@ -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.1.46) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.1.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.1.46",
3
+ "version": "5.1.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 post-tool-use",
10
10
  "timeout": 30,
11
- "statusMessage": "(OmO 5.1.46) Checking Comments"
11
+ "statusMessage": "(OmO 5.1.47) Checking Comments"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-comment-checker",
3
- "version": "5.1.46",
3
+ "version": "5.1.47",
4
4
  "description": "Codex plugin that runs comment-checker after edit-like PostToolUse hooks.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -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.1.46) Recommending Git Bash MCP"
11
+ "statusMessage": "(OmO 5.1.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.1.46) Resetting Git Bash MCP Reminder"
23
+ "statusMessage": "(OmO 5.1.47) Resetting Git Bash MCP Reminder"
24
24
  }
25
25
  ]
26
26
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-git-bash-hook",
3
- "version": "5.1.46",
3
+ "version": "5.1.47",
4
4
  "description": "Codex hook component that reminds Windows sessions to prefer the OMO git_bash MCP.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -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.1.46) Verifying LazyCodex Executor Evidence"
11
+ "statusMessage": "(OmO 5.1.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.1.46",
3
+ "version": "5.1.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.1.46",
4
- "inputDigest": "sha256:a4cbfb8ffa442b654814e1d86e70434c1d19d06f473eccc93bf7bbc7485336e7",
3
+ "version": "5.1.47",
4
+ "inputDigest": "sha256:6cabf483e0820d8ebb42944ea3df97bedb1fcc9362a46f2659007ffa48225e10",
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.1.46) Checking LSP Diagnostics"
11
+ "statusMessage": "(OmO 5.1.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.1.46) Resetting LSP Diagnostics Cache"
24
+ "statusMessage": "(OmO 5.1.47) Resetting LSP Diagnostics Cache"
25
25
  }
26
26
  ]
27
27
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-lsp",
3
- "version": "5.1.46",
3
+ "version": "5.1.47",
4
4
  "description": "Codex plugin that exposes Language Server Protocol tools and post-edit diagnostics.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -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 5.1.46) Loading Project Rules"
10
+ "statusMessage": "(OmO 5.1.47) 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 5.1.46) Loading Project Rules"
22
+ "statusMessage": "(OmO 5.1.47) 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 5.1.46) Matching Project Rules"
35
+ "statusMessage": "(OmO 5.1.47) 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 5.1.46) Resetting Project Rule Cache"
48
+ "statusMessage": "(OmO 5.1.47) Resetting Project Rule Cache"
49
49
  }
50
50
  ]
51
51
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-rules",
3
- "version": "5.1.46",
3
+ "version": "5.1.47",
4
4
  "description": "Codex plugin that injects project rule files into model context through lifecycle hooks.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 10,
11
- "statusMessage": "(OmO 5.1.46) Checking Thread Title Hygiene"
11
+ "statusMessage": "(OmO 5.1.47) Checking Thread Title Hygiene"
12
12
  }
13
13
  ]
14
14
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sisyphuslabs/codex-teammode",
3
- "version": "5.1.46",
3
+ "version": "5.1.47",
4
4
  "description": "Codex team-mode hook component that keeps background thread titles descriptive after create_thread.",
5
5
  "type": "module",
6
6
  "private": true,
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook session-start",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.1.46) Recording Session Telemetry"
10
+ "statusMessage": "(OmO 5.1.47) Recording Session Telemetry"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-telemetry",
3
- "version": "5.1.46",
3
+ "version": "5.1.47",
4
4
  "description": "Codex plugin component that emits omo-codex anonymous daily-active telemetry on SessionStart.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.1.46) Checking Ultrawork Trigger"
10
+ "statusMessage": "(OmO 5.1.47) Checking Ultrawork Trigger"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ultrawork",
3
- "version": "5.1.46",
3
+ "version": "5.1.47",
4
4
  "description": "Codex plugin that injects the ultrawork orchestration directive and ships LazyCodex planning, review, QA, and gate agent roles.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/ulw-execute-continuation/dist/cli.js\" hook stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.46) Checking Ulw-Execute Continuation"
10
+ "statusMessage": "(OmO 5.1.47) Checking Ulw-Execute Continuation"
11
11
  }
12
12
  ]
13
13
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ulw-execute-continuation",
3
- "version": "5.1.46",
3
+ "version": "5.1.47",
4
4
  "description": "Codex Stop hook continuation injector for omo-codex ulw-execute plans.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook user-prompt-submit --with-ultrawork",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.1.46) Checking Ulw-Loop Steering"
10
+ "statusMessage": "(OmO 5.1.47) Checking Ulw-Loop Steering"
11
11
  }
12
12
  ]
13
13
  }
@@ -20,7 +20,7 @@
20
20
  "type": "command",
21
21
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook post-tool-use-spawn",
22
22
  "timeout": 5,
23
- "statusMessage": "(OmO 5.1.46) Recording Spawn Admission"
23
+ "statusMessage": "(OmO 5.1.47) Recording Spawn Admission"
24
24
  }
25
25
  ]
26
26
  }
@@ -33,7 +33,7 @@
33
33
  "type": "command",
34
34
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use",
35
35
  "timeout": 5,
36
- "statusMessage": "(OmO 5.1.46) Enforcing Unlimited Ulw-Loop Budget"
36
+ "statusMessage": "(OmO 5.1.47) Enforcing Unlimited Ulw-Loop Budget"
37
37
  }
38
38
  ]
39
39
  },
@@ -44,7 +44,7 @@
44
44
  "type": "command",
45
45
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use-spawn",
46
46
  "timeout": 5,
47
- "statusMessage": "(OmO 5.1.46) Guarding Ulw-Loop Spawns"
47
+ "statusMessage": "(OmO 5.1.47) Guarding Ulw-Loop Spawns"
48
48
  }
49
49
  ]
50
50
  }
@@ -56,7 +56,7 @@
56
56
  "type": "command",
57
57
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook stop",
58
58
  "timeout": 10,
59
- "statusMessage": "(OmO 5.1.46) Checking Ulw-Loop Resume"
59
+ "statusMessage": "(OmO 5.1.47) Checking Ulw-Loop Resume"
60
60
  }
61
61
  ]
62
62
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ulw-loop",
3
- "version": "5.1.46",
3
+ "version": "5.1.47",
4
4
  "description": "Codex plugin: durable repo-native multi-goal orchestration with embedded success criteria and observable evidence audit.",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.12.1",
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/git-bash/dist/cli.js\" hook post-compact",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.1.46) Resetting Git Bash MCP Reminder",
10
+ "statusMessage": "(OmO 5.1.47) Resetting Git Bash MCP Reminder",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\git-bash\\dist\\cli.js\" hook post-compact"
12
12
  }
13
13
  ],
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/lsp/dist/cli.js\" hook post-compact",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.1.46) Resetting LSP Diagnostics Cache",
10
+ "statusMessage": "(OmO 5.1.47) Resetting LSP Diagnostics Cache",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lsp\\dist\\cli.js\" hook post-compact"
12
12
  }
13
13
  ],