oh-my-opencode 5.0.0-beta.18 → 5.0.0-beta.19

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 (143) hide show
  1. package/dist/cli/index.js +289 -160
  2. package/dist/cli-node/index.js +289 -160
  3. package/dist/index.js +324 -176
  4. package/dist/skills/ast-grep/AGENTS.md +51 -0
  5. package/dist/skills/coding-agent-sessions/AGENTS.md +62 -0
  6. package/dist/skills/start-work/SKILL.md +2 -1
  7. package/dist/skills/ultimate-browsing/SKILL.md +2 -0
  8. package/dist/skills/ultimate-browsing/references/chrome-stealth.md +2 -0
  9. package/dist/skills/visual-qa/AGENTS.md +58 -0
  10. package/dist/tui.js +17 -17
  11. package/package.json +21 -21
  12. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  13. package/packages/omo-codex/plugin/AGENTS.md +47 -0
  14. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  15. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  16. package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
  17. package/packages/omo-codex/plugin/components/comment-checker/AGENTS.md +9 -0
  18. package/packages/omo-codex/plugin/components/comment-checker/biome.json +2 -2
  19. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  20. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  21. package/packages/omo-codex/plugin/components/comment-checker/src/apply-patch.ts +2 -8
  22. package/packages/omo-codex/plugin/components/comment-checker/src/core.ts +1 -2
  23. package/packages/omo-codex/plugin/components/comment-checker/src/request-extractor.ts +1 -1
  24. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  25. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  26. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/biome.json +2 -2
  27. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/cli.js +1 -5
  28. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/codex-hook.js +1 -5
  29. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  30. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  31. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/codex-hook.ts +1 -5
  32. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/codex-hook.test.ts +1 -4
  33. package/packages/omo-codex/plugin/components/lsp/AGENTS.md +30 -15
  34. package/packages/omo-codex/plugin/components/lsp/biome.json +2 -2
  35. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
  36. package/packages/omo-codex/plugin/components/lsp/dist/daemon-cli-path.js +1 -1
  37. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  38. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  39. package/packages/omo-codex/plugin/components/lsp/src/codex-hook.ts +1 -1
  40. package/packages/omo-codex/plugin/components/lsp/src/daemon-cli-path.ts +1 -5
  41. package/packages/omo-codex/plugin/components/lsp/test/codex-hook-unavailable.test.ts +6 -7
  42. package/packages/omo-codex/plugin/components/lsp/test/codex-hook.test.ts +1 -2
  43. package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +11 -1
  44. package/packages/omo-codex/plugin/components/rules/AGENTS.md +12 -0
  45. package/packages/omo-codex/plugin/components/rules/biome.json +2 -2
  46. package/packages/omo-codex/plugin/components/rules/dist/cli.js +43 -30
  47. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  48. package/packages/omo-codex/plugin/components/rules/package.json +2 -2
  49. package/packages/omo-codex/plugin/components/rules/src/config.ts +1 -2
  50. package/packages/omo-codex/plugin/components/rules/src/persistent-cache.ts +1 -2
  51. package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +6 -2
  52. package/packages/omo-codex/plugin/components/rules/src/rules-engine-factory.ts +1 -4
  53. package/packages/omo-codex/plugin/components/rules/src/static-injection.ts +4 -9
  54. package/packages/omo-codex/plugin/components/rules/test/bundled-rules.test.ts +1 -2
  55. package/packages/omo-codex/plugin/components/rules/test/dynamic-target-fingerprints.test.ts +1 -2
  56. package/packages/omo-codex/plugin/components/rules/test/engine.test.ts +7 -4
  57. package/packages/omo-codex/plugin/components/rules/test/finder.test.ts +2 -3
  58. package/packages/omo-codex/plugin/components/rules/test/formatter.test.ts +2 -3
  59. package/packages/omo-codex/plugin/components/rules/test/hephaestus-model-variant.test.ts +1 -2
  60. package/packages/omo-codex/plugin/components/rules/test/matcher.test.ts +2 -3
  61. package/packages/omo-codex/plugin/components/rules/test/package-smoke.test.ts +1 -1
  62. package/packages/omo-codex/plugin/components/rules/test/parser.test.ts +1 -2
  63. package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +1 -2
  64. package/packages/omo-codex/plugin/components/rules/test/rules-engine-consumption.test.ts +3 -6
  65. package/packages/omo-codex/plugin/components/rules/test/scanner.test.ts +1 -2
  66. package/packages/omo-codex/plugin/components/rules/test/sources.test.ts +2 -5
  67. package/packages/omo-codex/plugin/components/rules/test/windows-git-bash-bundled-rule.test.ts +1 -2
  68. package/packages/omo-codex/plugin/components/start-work-continuation/biome.json +2 -2
  69. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
  70. package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
  71. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  72. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  73. package/packages/omo-codex/plugin/components/telemetry/AGENTS.md +8 -0
  74. package/packages/omo-codex/plugin/components/telemetry/biome.json +2 -2
  75. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +237 -99
  76. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +237 -99
  77. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  78. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  79. package/packages/omo-codex/plugin/components/telemetry/src/codex-hook.ts +1 -4
  80. package/packages/omo-codex/plugin/components/telemetry/src/posthog.ts +4 -14
  81. package/packages/omo-codex/plugin/components/telemetry/src/product-identity.ts +1 -1
  82. package/packages/omo-codex/plugin/components/telemetry/test/diagnostics.test.ts +2 -5
  83. package/packages/omo-codex/plugin/components/ultrawork/AGENTS.md +5 -0
  84. package/packages/omo-codex/plugin/components/ultrawork/biome.json +2 -2
  85. package/packages/omo-codex/plugin/components/ultrawork/directive.md +7 -1
  86. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  87. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  88. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +7 -1
  89. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook-trigger-policy.test.ts +9 -1
  90. package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +16 -0
  91. package/packages/omo-codex/plugin/components/ulw-loop/biome.json +2 -2
  92. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +7 -1
  93. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +1 -1
  94. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.js +1 -1
  95. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
  96. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  97. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-snapshot.ts +3 -1
  98. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-hook.ts +3 -1
  99. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-snapshot.test.ts +18 -0
  100. package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +3 -2
  101. package/packages/omo-codex/plugin/components/ulw-loop/test/steering.test.ts +8 -5
  102. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  103. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  104. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  105. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
  106. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  107. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  108. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  109. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  110. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  111. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  112. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  113. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  114. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  115. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
  116. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  117. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  118. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
  119. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  120. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
  121. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  122. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  123. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  124. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  125. package/packages/omo-codex/plugin/package-lock.json +19 -19
  126. package/packages/omo-codex/plugin/package.json +1 -1
  127. package/packages/omo-codex/plugin/scripts/AGENTS.md +40 -0
  128. package/packages/omo-codex/plugin/skills/ast-grep/AGENTS.md +51 -0
  129. package/packages/omo-codex/plugin/skills/coding-agent-sessions/AGENTS.md +62 -0
  130. package/packages/omo-codex/plugin/skills/start-work/SKILL.md +2 -1
  131. package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +2 -0
  132. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +2 -0
  133. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +7 -1
  134. package/packages/omo-codex/plugin/skills/visual-qa/AGENTS.md +58 -0
  135. package/packages/omo-codex/plugin/test/AGENTS.md +47 -0
  136. package/packages/omo-codex/scripts/AGENTS.md +36 -0
  137. package/packages/omo-codex/scripts/install-dist/install-local.mjs +249 -120
  138. package/packages/shared-skills/skills/ast-grep/AGENTS.md +51 -0
  139. package/packages/shared-skills/skills/coding-agent-sessions/AGENTS.md +62 -0
  140. package/packages/shared-skills/skills/start-work/SKILL.md +2 -1
  141. package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +2 -0
  142. package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +2 -0
  143. package/packages/shared-skills/skills/visual-qa/AGENTS.md +58 -0
@@ -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.0.0-beta.18) Recording Session Telemetry"
10
+ "statusMessage": "(OmO 5.0.0-beta.19) 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.0.0-beta.18",
3
+ "version": "5.0.0-beta.19",
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",
@@ -1,7 +1,4 @@
1
- import {
2
- type TelemetryDiagnosticErrorKind,
3
- type TelemetryDiagnosticEvent,
4
- } from "@oh-my-opencode/telemetry-core";
1
+ import type { TelemetryDiagnosticErrorKind, TelemetryDiagnosticEvent } from "@oh-my-opencode/telemetry-core";
5
2
  import {
6
3
  createPluginPostHog,
7
4
  getPostHogDistinctId,
@@ -9,10 +9,10 @@ import {
9
9
  } from "@oh-my-opencode/telemetry-core";
10
10
 
11
11
  import {
12
- MACHINE_ID_PREFIX,
13
12
  createComponentTelemetryProductConfig,
14
13
  getComponentTelemetryStateDir,
15
14
  getComponentVersion,
15
+ MACHINE_ID_PREFIX,
16
16
  writeComponentTelemetryDiagnostic,
17
17
  } from "./product-identity.js";
18
18
 
@@ -53,24 +53,14 @@ function resolveActivityStateProvider(options: CreatePluginPostHogOptions): Acti
53
53
 
54
54
  if (options.stateDir === undefined) {
55
55
  return () =>
56
- getDailyActiveCaptureState(createDailyActiveCaptureStateInput(
57
- getComponentTelemetryStateDir(),
58
- options.now,
59
- ));
56
+ getDailyActiveCaptureState(createDailyActiveCaptureStateInput(getComponentTelemetryStateDir(), options.now));
60
57
  }
61
58
 
62
59
  const stateDir = options.stateDir;
63
- return () =>
64
- getDailyActiveCaptureState(createDailyActiveCaptureStateInput(
65
- stateDir,
66
- options.now,
67
- ));
60
+ return () => getDailyActiveCaptureState(createDailyActiveCaptureStateInput(stateDir, options.now));
68
61
  }
69
62
 
70
- function createDailyActiveCaptureStateInput(
71
- stateDir: string,
72
- now: Date | undefined,
73
- ) {
63
+ function createDailyActiveCaptureStateInput(stateDir: string, now: Date | undefined) {
74
64
  if (now === undefined) {
75
65
  return {
76
66
  diagnostics: writeComponentTelemetryDiagnostic,
@@ -5,9 +5,9 @@ import {
5
5
  DEFAULT_POSTHOG_HOST,
6
6
  getTelemetryDiagnosticsFilePath,
7
7
  resolveTelemetryStateDir,
8
- writeTelemetryDiagnostic,
9
8
  type TelemetryDiagnosticInput,
10
9
  type TelemetryProductConfig,
10
+ writeTelemetryDiagnostic,
11
11
  } from "@oh-my-opencode/telemetry-core";
12
12
 
13
13
  export { DEFAULT_POSTHOG_API_KEY, DEFAULT_POSTHOG_HOST };
@@ -1,17 +1,14 @@
1
1
  import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
2
2
  import { tmpdir } from "node:os";
3
3
  import path from "node:path";
4
+ import { cleanupTelemetryDiagnostics } from "@oh-my-opencode/telemetry-core";
4
5
  import { afterEach, describe, expect, it } from "vitest";
5
-
6
- import {
7
- cleanupTelemetryDiagnostics,
8
- } from "@oh-my-opencode/telemetry-core";
9
6
  import {
7
+ CACHE_DIR_NAME,
10
8
  getComponentTelemetryDiagnosticsFilePath,
11
9
  getComponentTelemetryStateDir,
12
10
  writeComponentTelemetryDiagnostic,
13
11
  } from "../src/product-identity.js";
14
- import { CACHE_DIR_NAME } from "../src/product-identity.js";
15
12
 
16
13
  const originalXdgDataHome = process.env["XDG_DATA_HOME"];
17
14
  const tempDirectories: string[] = [];
@@ -34,6 +34,11 @@ Conventions for human contributors and AI agents working on this repository.
34
34
  ## Commands
35
35
 
36
36
  ```bash
37
+ # build / test / check (from the component directory)
38
+ npm run build # sync-directive -> wipe dist -> bun bundle src/cli.ts to dist/cli.js
39
+ npm test # vitest once (test:watch for watch mode)
40
+ npm run check # typecheck + biome + build
41
+
37
42
  # smoke test the hook
38
43
  PAYLOAD='{"cwd":"/tmp","hook_event_name":"UserPromptSubmit","model":"gpt-5.5","permission_mode":"default","session_id":"x","transcript_path":"","turn_id":"y","prompt":"please ultrawork"}'
39
44
  npm run build
@@ -1,9 +1,9 @@
1
1
  {
2
- "$schema": "https://biomejs.dev/schemas/2.4.16/schema.json",
2
+ "$schema": "https://biomejs.dev/schemas/2.5.9/schema.json",
3
3
  "linter": {
4
4
  "enabled": true,
5
5
  "rules": {
6
- "recommended": true,
6
+ "preset": "recommended",
7
7
  "style": {
8
8
  "noDefaultExport": "error",
9
9
  "noEnum": "error",
@@ -66,7 +66,13 @@ exercises the surface; capture the artifact.
66
66
  if Chrome is not available, download and use agent-browser
67
67
  (https://github.com/vercel-labs/agent-browser). Capture action
68
68
  log + screenshot path. Never downgrade to a non-browser surface
69
- for a browser-facing criterion.
69
+ for a browser-facing criterion. NEVER clear cookies, cache, or
70
+ site data (`Network.clearBrowserCookies`, `Storage.clearCookies`,
71
+ `chrome.browsingData.remove`, "clear browsing data") on the user's
72
+ real/main browser profile — it wipes their logged-in state. If you
73
+ need that profile's login state, clone it first (`rsync -a
74
+ <profile>/ <tmp-clone>/`) and launch Chrome / agent-browser against
75
+ the clone as the user-data-dir; run any clearing there only.
70
76
  4. Computer use — when the surface is a desktop/GUI app rather than a
71
77
  page, drive it via OS-level automation (a computer-use agent,
72
78
  AppleScript, xdotool, etc.) against the running app; capture
@@ -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.0.0-beta.18) Checking Ultrawork Trigger"
10
+ "statusMessage": "(OmO 5.0.0-beta.19) 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.0.0-beta.18",
3
+ "version": "5.0.0-beta.19",
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",
@@ -73,7 +73,13 @@ exercises the surface; capture the artifact.
73
73
  if Chrome is not available, download and use agent-browser
74
74
  (https://github.com/vercel-labs/agent-browser). Capture action
75
75
  log + screenshot path. Never downgrade to a non-browser surface
76
- for a browser-facing criterion.
76
+ for a browser-facing criterion. NEVER clear cookies, cache, or
77
+ site data (`Network.clearBrowserCookies`, `Storage.clearCookies`,
78
+ `chrome.browsingData.remove`, "clear browsing data") on the user's
79
+ real/main browser profile — it wipes their logged-in state. If you
80
+ need that profile's login state, clone it first (`rsync -a
81
+ <profile>/ <tmp-clone>/`) and launch Chrome / agent-browser against
82
+ the clone as the user-data-dir; run any clearing there only.
77
83
  4. Computer use — when the surface is a desktop/GUI app rather than a
78
84
  page, drive it via OS-level automation (a computer-use agent,
79
85
  AppleScript, xdotool, etc.) against the running app; capture
@@ -105,7 +105,15 @@ describe("codex ultrawork trigger policy", () => {
105
105
 
106
106
  // then
107
107
  expect(outputs).toEqual(["", "", "", "", "", "", ""]);
108
- expect(prompts.map((prompt) => isUltraworkPrompt(prompt))).toEqual([false, false, false, false, false, false, false]);
108
+ expect(prompts.map((prompt) => isUltraworkPrompt(prompt))).toEqual([
109
+ false,
110
+ false,
111
+ false,
112
+ false,
113
+ false,
114
+ false,
115
+ false,
116
+ ]);
109
117
  });
110
118
 
111
119
  it("#given prompt contains ultrawork or standalone ulw #when hook runs #then emits directive", () => {
@@ -42,7 +42,23 @@ Conventions for human contributors and AI agents working on this repository.
42
42
  - CLI commands use the `omo-agent-toolkit ulw-loop` form.
43
43
  - Do not use any alternate legacy CLI alias anywhere.
44
44
 
45
+ ## Layout
46
+
47
+ - `src/cli.ts`: bin entry (`omo-ulw-loop`, `ulw`, `ulw-loop` all map to `dist/cli.js`); documented invocation form `omo-agent-toolkit ulw-loop <subcommand>`.
48
+ - `src/cli-commands.ts`: subcommand dispatch (`ULW_LOOP_SUBCOMMANDS`, `ulwLoopCommand`, flag/value readers).
49
+ - `src/plan-io.ts`: plan persistence, append-only `ledger.jsonl`, `withUlwLoopMutationLock`.
50
+ - `src/quality-gate.ts` (266 LOC), `src/checkpoint.ts` (260), `src/steering.ts` (227): state-transition hotspots (evidence containment, checkpoint reconciliation, steering mutations).
51
+ - `src/codex-hook.ts`: UserPromptSubmit steering injection + `create_goal` budget guard.
52
+ - `src/spawn-guard.ts`, `src/stop-resume-hook.ts`: spawn guards, Stop auto-resume.
53
+ - `src/ultrawork-skill-pointer.ts`: byte-identical mirror of ultrawork's pointer (pinned by `plugin/test/ultrawork-skill-pointer.test.mjs`).
54
+ - `directive.md`: runtime-read directive (never inlined into TypeScript).
55
+
45
56
  ## Build and Hooks
46
57
 
47
58
  - Build output goes to `dist/`.
48
59
  - `hooks/hooks.json` wires `hook user-prompt-submit --with-ultrawork` (UserPromptSubmit), `hook pre-tool-use` (create_goal budget), `hook pre-tool-use-spawn` (spawn guards), and `hook stop` (auto-resume).
60
+
61
+ ## Commands
62
+
63
+ - `npm test` (vitest --run) / `npm run test:watch`; focused: `bunx vitest run test/<file>.test.ts`
64
+ - `npm run typecheck` / `npm run lint` / `npm run build` (`tsc -p tsconfig.build.json`) / `npm run check`
@@ -1,9 +1,9 @@
1
1
  {
2
- "$schema": "https://biomejs.dev/schemas/2.4.16/schema.json",
2
+ "$schema": "https://biomejs.dev/schemas/2.5.9/schema.json",
3
3
  "linter": {
4
4
  "enabled": true,
5
5
  "rules": {
6
- "recommended": true,
6
+ "preset": "recommended",
7
7
  "style": {
8
8
  "noDefaultExport": "error",
9
9
  "noEnum": "error",
@@ -66,7 +66,13 @@ exercises the surface; capture the artifact.
66
66
  if Chrome is not available, download and use agent-browser
67
67
  (https://github.com/vercel-labs/agent-browser). Capture action
68
68
  log + screenshot path. Never downgrade to a non-browser surface
69
- for a browser-facing criterion.
69
+ for a browser-facing criterion. NEVER clear cookies, cache, or
70
+ site data (`Network.clearBrowserCookies`, `Storage.clearCookies`,
71
+ `chrome.browsingData.remove`, "clear browsing data") on the user's
72
+ real/main browser profile — it wipes their logged-in state. If you
73
+ need that profile's login state, clone it first (`rsync -a
74
+ <profile>/ <tmp-clone>/`) and launch Chrome / agent-browser against
75
+ the clone as the user-data-dir; run any clearing there only.
70
76
  4. Computer use — when the surface is a desktop/GUI app rather than a
71
77
  page, drive it via OS-level automation (a computer-use agent,
72
78
  AppleScript, xdotool, etc.) against the running app; capture
@@ -300,7 +300,7 @@ function parseCodexGoalSnapshot(value) {
300
300
  return { available: false, raw: value };
301
301
  }
302
302
  const goal = safeObject(goalValue);
303
- const objective = safeString(goal["objective"] ?? goal["goal"] ?? goal["description"] ?? root["objective"]);
303
+ const objective = safeString(goal["objective"] ?? goal["goal"] ?? goal["description"] ?? goal["title"] ?? root["objective"] ?? root["title"]);
304
304
  const status = normalizeStatus(goal["status"] ?? root["status"]);
305
305
  return {
306
306
  available: Boolean(objective || status !== "unknown"),
@@ -31,7 +31,7 @@ export function parseCodexGoalSnapshot(value) {
31
31
  return { available: false, raw: value };
32
32
  }
33
33
  const goal = safeObject(goalValue);
34
- const objective = safeString(goal["objective"] ?? goal["goal"] ?? goal["description"] ?? root["objective"]);
34
+ const objective = safeString(goal["objective"] ?? goal["goal"] ?? goal["description"] ?? goal["title"] ?? root["objective"] ?? root["title"]);
35
35
  const status = normalizeStatus(goal["status"] ?? root["status"]);
36
36
  return {
37
37
  available: Boolean(objective || status !== "unknown"),
@@ -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.0.0-beta.18) Checking Ulw-Loop Steering"
10
+ "statusMessage": "(OmO 5.0.0-beta.19) 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 pre-tool-use",
22
22
  "timeout": 5,
23
- "statusMessage": "(OmO 5.0.0-beta.18) Enforcing Unlimited Ulw-Loop Budget"
23
+ "statusMessage": "(OmO 5.0.0-beta.19) Enforcing Unlimited Ulw-Loop Budget"
24
24
  }
25
25
  ]
26
26
  },
@@ -31,7 +31,7 @@
31
31
  "type": "command",
32
32
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook pre-tool-use-spawn",
33
33
  "timeout": 5,
34
- "statusMessage": "(OmO 5.0.0-beta.18) Guarding Ulw-Loop Spawns"
34
+ "statusMessage": "(OmO 5.0.0-beta.19) Guarding Ulw-Loop Spawns"
35
35
  }
36
36
  ]
37
37
  }
@@ -43,7 +43,7 @@
43
43
  "type": "command",
44
44
  "command": "node \"${PLUGIN_ROOT}/dist/cli.js\" hook stop",
45
45
  "timeout": 10,
46
- "statusMessage": "(OmO 5.0.0-beta.18) Checking Ulw-Loop Resume"
46
+ "statusMessage": "(OmO 5.0.0-beta.19) Checking Ulw-Loop Resume"
47
47
  }
48
48
  ]
49
49
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/codex-ulw-loop",
3
- "version": "5.0.0-beta.18",
3
+ "version": "5.0.0-beta.19",
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",
@@ -56,7 +56,9 @@ export function parseCodexGoalSnapshot(value: unknown): CodexGoalSnapshot {
56
56
  }
57
57
 
58
58
  const goal = safeObject(goalValue);
59
- const objective = safeString(goal["objective"] ?? goal["goal"] ?? goal["description"] ?? root["objective"]);
59
+ const objective = safeString(
60
+ goal["objective"] ?? goal["goal"] ?? goal["description"] ?? goal["title"] ?? root["objective"] ?? root["title"],
61
+ );
60
62
  const status = normalizeStatus(goal["status"] ?? root["status"]);
61
63
 
62
64
  return {
@@ -95,7 +95,9 @@ export async function applyUserPromptUlwLoopSteering(
95
95
  }
96
96
 
97
97
  function hasSteeringDirectiveMarker(prompt: string): boolean {
98
- return /(?:^|\s)(?:OMO_ULW_LOOP_STEER|omo\.ulw-loop\.steer|omo ulw-loop steer|omo-agent-toolkit ulw-loop steer):/u.test(prompt);
98
+ return /(?:^|\s)(?:OMO_ULW_LOOP_STEER|omo\.ulw-loop\.steer|omo ulw-loop steer|omo-agent-toolkit ulw-loop steer):/u.test(
99
+ prompt,
100
+ );
99
101
  }
100
102
 
101
103
  function payloadScope(payload: UserPromptSubmitPayload): UlwLoopScope {
@@ -24,6 +24,24 @@ describe("parseCodexGoalSnapshot", () => {
24
24
  expect(snapshot.status).toBe("active");
25
25
  });
26
26
 
27
+ it("reads the objective from a title-bearing ulw-loop status goal", () => {
28
+ // given
29
+ const payload = {
30
+ id: "G002-goal-2-senpi-repo-audit-determine-wh",
31
+ title: "Audit the Senpi repository",
32
+ status: "in_progress",
33
+ successCriteria: [],
34
+ };
35
+
36
+ // when
37
+ const snapshot = parseCodexGoalSnapshot(payload);
38
+
39
+ // then
40
+ expect(snapshot.available).toBe(true);
41
+ expect(snapshot.objective).toBe("Audit the Senpi repository");
42
+ expect(snapshot.status).toBe("active");
43
+ });
44
+
27
45
  it("ignores remaining token budget fields from goal snapshots", () => {
28
46
  // given
29
47
  const payload = { goal: { objective: "X", status: "active" }, remainingTokens: 123 };
@@ -88,7 +88,8 @@ describe("hooks/hooks.json", () => {
88
88
  const hooks = await readJson("hooks/hooks.json") as Record<string, unknown>;
89
89
  const events = (hooks["hooks"] as Record<string, unknown>)["UserPromptSubmit"] as readonly Record<string, unknown>[];
90
90
  expect(events.length).toBeGreaterThan(0);
91
- const command = ((events[0]?.["hooks"] as readonly Record<string, unknown>[])[0]?.["command"]) as string;
91
+ const command = (events[0]?.["hooks"] as readonly Record<string, unknown>[] | undefined)?.[0]?.["command"];
92
+ expect(command).toEqual(expect.any(String));
92
93
  expect(command).toContain(`$${"{PLUGIN_ROOT}"}`);
93
94
  expect(command).toContain("dist/cli.js");
94
95
  expect(command).toContain("hook user-prompt-submit");
@@ -168,7 +169,7 @@ describe("skills/ulw-loop/SKILL.md", () => {
168
169
  ].join("\n"),
169
170
  );
170
171
 
171
- const result = await runShell(`${bootstrap}\n\"$ULW_LOOP_NODE\" \"$ULW_LOOP_CLI\" ulw-loop status --json`, {
172
+ const result = await runShell(`${bootstrap}\n"$ULW_LOOP_NODE" "$ULW_LOOP_CLI" ulw-loop status --json`, {
172
173
  ...process.env,
173
174
  CODEX_HOME: codexHome,
174
175
  HOME: home,
@@ -422,11 +422,14 @@ describe("steerUlwLoop", () => {
422
422
  });
423
423
 
424
424
  describe("parseUlwLoopSteeringDirective", () => {
425
- it.each(["OMO_ULW_LOOP_STEER", "omo.ulw-loop.steer", "omo ulw-loop steer", "omo-agent-toolkit ulw-loop steer"])("parses %s pattern", (marker) => {
426
- expect(parseUlwLoopSteeringDirective(`${marker}: ${JSON.stringify(steering())}`)).toMatchObject({
427
- kind: "add_subgoal",
428
- });
429
- });
425
+ it.each(["OMO_ULW_LOOP_STEER", "omo.ulw-loop.steer", "omo ulw-loop steer", "omo-agent-toolkit ulw-loop steer"])(
426
+ "parses %s pattern",
427
+ (marker) => {
428
+ expect(parseUlwLoopSteeringDirective(`${marker}: ${JSON.stringify(steering())}`)).toMatchObject({
429
+ kind: "add_subgoal",
430
+ });
431
+ },
432
+ );
430
433
 
431
434
  it("returns null when no marker", () => {
432
435
  expect(parseUlwLoopSteeringDirective(JSON.stringify(steering()))).toBeNull();
@@ -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.0.0-beta.18) Resetting Git Bash MCP Reminder",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) 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.0.0-beta.18) Resetting LSP Diagnostics Cache",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) 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
  ],
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook post-compact",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.18) Resetting Project Rule Cache",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) Resetting Project Rule Cache",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\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/codegraph/dist/cli.js\" hook post-tool-use",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.0.0-beta.18) Checking CodeGraph Init Guidance",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) Checking CodeGraph Init Guidance",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\codegraph\\dist\\cli.js\" hook post-tool-use"
12
12
  }
13
13
  ],
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/comment-checker/dist/cli.js\" hook post-tool-use",
9
9
  "timeout": 30,
10
- "statusMessage": "(OmO 5.0.0-beta.18) Checking Comments",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) Checking Comments",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\comment-checker\\dist\\cli.js\" hook post-tool-use"
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-tool-use",
9
9
  "timeout": 60,
10
- "statusMessage": "(OmO 5.0.0-beta.18) Checking LSP Diagnostics",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) Checking LSP Diagnostics",
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-tool-use"
12
12
  }
13
13
  ],
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/components/teammode/dist/cli.js\" hook post-tool-use",
10
10
  "timeout": 10,
11
- "statusMessage": "(OmO 5.0.0-beta.18) Checking Thread Title Hygiene",
11
+ "statusMessage": "(OmO 5.0.0-beta.19) Checking Thread Title Hygiene",
12
12
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\teammode\\dist\\cli.js\" hook post-tool-use"
13
13
  }
14
14
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook post-tool-use",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.18) Matching Project Rules",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) Matching Project Rules",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook post-tool-use"
12
12
  }
13
13
  ],
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook pre-tool-use",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.0.0-beta.18) Enforcing Unlimited Goal Budget",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) Enforcing Unlimited Goal Budget",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook pre-tool-use"
12
12
  }
13
13
  ],
@@ -8,7 +8,7 @@
8
8
  "type": "command",
9
9
  "command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook pre-tool-use-spawn",
10
10
  "timeout": 5,
11
- "statusMessage": "(OmO 5.0.0-beta.18) Guarding Ulw-Loop Spawns",
11
+ "statusMessage": "(OmO 5.0.0-beta.19) Guarding Ulw-Loop Spawns",
12
12
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook pre-tool-use-spawn"
13
13
  }
14
14
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/git-bash/dist/cli.js\" hook pre-tool-use",
9
9
  "timeout": 5,
10
- "statusMessage": "(OmO 5.0.0-beta.18) Recommending Git Bash MCP",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) Recommending Git Bash MCP",
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 pre-tool-use"
12
12
  }
13
13
  ],
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/scripts/auto-update.mjs\" hook session-start",
9
9
  "timeout": 15,
10
- "statusMessage": "(OmO 5.0.0-beta.18) Checking Auto Update",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) Checking Auto Update",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\scripts\\auto-update.mjs\" hook session-start"
12
12
  }
13
13
  ],
@@ -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.18) Checking Bootstrap Provisioning"
11
+ "statusMessage": "(OmO 5.0.0-beta.19) Checking Bootstrap Provisioning"
12
12
  }
13
13
  ]
14
14
  }
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/codegraph/dist/cli.js\" hook session-start",
9
9
  "timeout": 15,
10
- "statusMessage": "(OmO 5.0.0-beta.18) Checking CodeGraph Bootstrap",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) Checking CodeGraph Bootstrap",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\codegraph\\dist\\cli.js\" hook session-start"
12
12
  }
13
13
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook session-start",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.18) Loading Project Rules",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) Loading Project Rules",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook session-start"
12
12
  }
13
13
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/telemetry/dist/cli.js\" hook session-start",
9
9
  "timeout": 15,
10
- "statusMessage": "(OmO 5.0.0-beta.18) Recording Session Telemetry",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) Recording Session Telemetry",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\telemetry\\dist\\cli.js\" hook session-start"
12
12
  }
13
13
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/start-work-continuation/dist/cli.js\" hook stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.18) Checking Start-Work Continuation",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) Checking Start-Work Continuation",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\start-work-continuation\\dist\\cli.js\" hook stop"
12
12
  }
13
13
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.18) Checking Ulw-Loop Resume",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) Checking Ulw-Loop Resume",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook stop"
12
12
  }
13
13
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/start-work-continuation/dist/cli.js\" hook subagent-stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.18) Checking Start-Work Continuation",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) Checking Start-Work Continuation",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\start-work-continuation\\dist\\cli.js\" hook subagent-stop"
12
12
  }
13
13
  ]
@@ -7,7 +7,7 @@
7
7
  "type": "command",
8
8
  "command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
9
9
  "timeout": 10,
10
- "statusMessage": "(OmO 5.0.0-beta.18) Verifying LazyCodex Executor Evidence",
10
+ "statusMessage": "(OmO 5.0.0-beta.19) Verifying LazyCodex Executor Evidence",
11
11
  "commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lazycodex-executor-verify\\dist\\cli.js\" hook subagent-stop"
12
12
  }
13
13
  ],