@polderlabs/bizar-omp 0.7.8 → 0.7.10

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 (82) hide show
  1. package/README.md +35 -4
  2. package/dist/cli/agents.d.ts.map +1 -1
  3. package/dist/cli/agents.js +46 -23
  4. package/dist/cli/agents.js.map +1 -1
  5. package/dist/cli/doctor.d.ts +4 -4
  6. package/dist/cli/install.d.ts +126 -9
  7. package/dist/cli/install.d.ts.map +1 -1
  8. package/dist/cli/install.js +19 -4
  9. package/dist/cli/install.js.map +1 -1
  10. package/dist/cli/mobile-claim.d.ts +143 -0
  11. package/dist/cli/mobile-claim.d.ts.map +1 -0
  12. package/dist/cli/mobile-claim.js +399 -0
  13. package/dist/cli/mobile-claim.js.map +1 -0
  14. package/dist/cli/omb-commands.d.ts +1 -1
  15. package/dist/cli/omb-commands.d.ts.map +1 -1
  16. package/dist/cli/omb-commands.js +22 -1
  17. package/dist/cli/omb-commands.js.map +1 -1
  18. package/dist/cli/omb-mobile.d.ts +47 -0
  19. package/dist/cli/omb-mobile.d.ts.map +1 -0
  20. package/dist/cli/omb-mobile.js +307 -0
  21. package/dist/cli/omb-mobile.js.map +1 -0
  22. package/dist/cli/omb-sessions.d.ts +64 -0
  23. package/dist/cli/omb-sessions.d.ts.map +1 -0
  24. package/dist/cli/omb-sessions.js +231 -0
  25. package/dist/cli/omb-sessions.js.map +1 -0
  26. package/dist/cli/omb-update.d.ts.map +1 -1
  27. package/dist/cli/omb-update.js +17 -2
  28. package/dist/cli/omb-update.js.map +1 -1
  29. package/dist/cli/omb.js +20 -15
  30. package/dist/cli/omb.js.map +1 -1
  31. package/dist/cli/omp-mobile-dispatch.d.ts +10 -0
  32. package/dist/cli/omp-mobile-dispatch.d.ts.map +1 -0
  33. package/dist/cli/omp-mobile-dispatch.js +148 -0
  34. package/dist/cli/omp-mobile-dispatch.js.map +1 -0
  35. package/dist/core/acceptance.d.ts.map +1 -1
  36. package/dist/core/acceptance.js +22 -2
  37. package/dist/core/acceptance.js.map +1 -1
  38. package/dist/core/transitions.d.ts.map +1 -1
  39. package/dist/core/transitions.js +17 -1
  40. package/dist/core/transitions.js.map +1 -1
  41. package/dist/extension.d.ts.map +1 -1
  42. package/dist/extension.js +62 -23
  43. package/dist/extension.js.map +1 -1
  44. package/dist/omp/compatibility-receipt.d.ts +69 -0
  45. package/dist/omp/compatibility-receipt.d.ts.map +1 -0
  46. package/dist/omp/compatibility-receipt.js +60 -0
  47. package/dist/omp/compatibility-receipt.js.map +1 -0
  48. package/dist/omp/compatibility.d.ts +5 -5
  49. package/dist/omp/compatibility.d.ts.map +1 -1
  50. package/dist/omp/compatibility.js +2 -2
  51. package/dist/omp/compatibility.js.map +1 -1
  52. package/dist/omp/daemon-service.d.ts +6 -0
  53. package/dist/omp/daemon-service.d.ts.map +1 -1
  54. package/dist/omp/daemon-service.js +452 -14
  55. package/dist/omp/daemon-service.js.map +1 -1
  56. package/dist/omp/omb-sessions.d.ts +10 -0
  57. package/dist/omp/omb-sessions.d.ts.map +1 -1
  58. package/dist/omp/omb-sessions.js +8 -6
  59. package/dist/omp/omb-sessions.js.map +1 -1
  60. package/dist/omp/tmux.d.ts +17 -0
  61. package/dist/omp/tmux.d.ts.map +1 -1
  62. package/dist/omp/tmux.js +51 -7
  63. package/dist/omp/tmux.js.map +1 -1
  64. package/dist/scripts/emit-compatibility-receipt.d.ts +2 -0
  65. package/dist/scripts/emit-compatibility-receipt.d.ts.map +1 -0
  66. package/dist/scripts/emit-compatibility-receipt.js +33 -0
  67. package/dist/scripts/emit-compatibility-receipt.js.map +1 -0
  68. package/dist/tools/workflow.d.ts.map +1 -1
  69. package/dist/tools/workflow.js +11 -1
  70. package/dist/tools/workflow.js.map +1 -1
  71. package/docs/07-bizarharness-integration.md +44 -0
  72. package/docs/compatibility/baseline.json +9 -8
  73. package/docs/compatibility/supported-surfaces.json +2 -1
  74. package/docs/development/ci-release-implementation-guide.md +3 -3
  75. package/docs/releases/0.7.10.md +27 -0
  76. package/docs/releases/0.7.9.md +18 -0
  77. package/docs/releases/npm-publishing.md +12 -12
  78. package/docs/releases/support-matrix.md +8 -1
  79. package/package.json +6 -4
  80. package/skills/omp-native-development/SKILL.md +1 -1
  81. package/skills/omp-native-development/references/accuracy-and-versioning.md +1 -1
  82. package/skills/omp-native-development/references/source-manifest.json +3 -3
@@ -0,0 +1,231 @@
1
+ import { claimSessionForMobile, describeClaim, listClaims, releaseMobileClaim, } from "./mobile-claim.js";
2
+ import { listOmbSessions, sessionMatchesCwdScope } from "../omp/omb-sessions.js";
3
+ /**
4
+ * `omb sessions list --json` — a machine-readable session inventory.
5
+ *
6
+ * Until this existed there was no stable way for another tool to learn what
7
+ * sessions Bizar owns. The dashboard's `GET /sessions` is the only other
8
+ * machine-readable surface, and it is deliberately gated behind a loopback
9
+ * bearer token; a companion process on the same host has no way to reach it
10
+ * without minting one.
11
+ *
12
+ * Two properties are load-bearing and must not be relaxed:
13
+ *
14
+ * - **Scan authority travels with the data.** An empty list is ambiguous with
15
+ * "the multiplexer did not answer", and a consumer that treats it as
16
+ * authoritative blanks every row on a transient tmux restart. `authority.known`
17
+ * is what lets a caller tell those apart.
18
+ * - **Liveness is never inferred.** `processObserved`, `authorityKnown` and
19
+ * `uncertainLiveness` are three separate observations, reported as three
20
+ * separate fields. Collapsing them would turn "we could not tell" into "no".
21
+ */
22
+ export const SESSIONS_USAGE = `omb sessions list [--all] [--json]
23
+
24
+ Lists the Bizar-owned sessions for this project; --all selects every project.
25
+
26
+ --json print machine-readable output for other tools.
27
+ --all include sessions from every project known to this OMB host.
28
+
29
+ Fields are observations, not inferences. authority.known is false when the
30
+ multiplexer did not answer, and an empty sessions list in that state means
31
+ "unknown", not "none". uncertainLiveness and processObserved are reported
32
+ separately for the same reason: unknown liveness is never downgraded to
33
+ absent.`;
34
+ /**
35
+ * Projects an internal session row onto the published shape.
36
+ *
37
+ * `command` and all prompt/tool content are dropped. The process id and native
38
+ * id remain only for trusted host-side consumers that prove claim eligibility;
39
+ * the mobile host removes both before projecting any row to the phone.
40
+ */
41
+ function toInventorySession(session) {
42
+ return {
43
+ name: session.name,
44
+ displayName: session.displayName ?? session.name,
45
+ state: session.state,
46
+ generation: session.generation,
47
+ project: session.project,
48
+ cwd: session.cwd,
49
+ hosted: session.hosted,
50
+ attached: session.attached,
51
+ authorityKnown: session.authorityKnown,
52
+ processObserved: session.processObserved,
53
+ uncertainLiveness: session.uncertainLiveness,
54
+ ...(session.activity === undefined ? {} : { activity: (({ pid: _pid, ...activity }) => activity)(session.activity) }),
55
+ ...(session.nativeId === undefined ? {} : { nativeId: session.nativeId }),
56
+ ...(session.pid === undefined ? {} : { pid: session.pid }),
57
+ };
58
+ }
59
+ /**
60
+ * One scan, one authority value.
61
+ *
62
+ * An earlier version probed authority and then listed sessions separately. That
63
+ * is wrong: if the multiplexer changes state between the two probes, the
64
+ * payload can claim `authority.known: true` alongside an empty list, which is
65
+ * exactly the "blank every row on a transient restart" failure the field
66
+ * exists to prevent. `requireMultiplexer` makes the listing itself fail
67
+ * closed, so authority and data are always the same observation.
68
+ */
69
+ export async function collectSessionsInventory(cwd = process.cwd(), env = process.env, options = {}) {
70
+ let sessions;
71
+ try {
72
+ sessions = await listOmbSessions(cwd, env, { includeStopped: true, requireMultiplexer: true, includeAllStopped: true });
73
+ }
74
+ catch (error) {
75
+ // The scan is unavailable, so authority is unknown and the list is
76
+ // explicitly empty. A consumer sees "unknown", not "none".
77
+ const reason = error instanceof Error ? error.message : "the multiplexer did not answer a session scan";
78
+ return { authority: { known: false, reason }, sessions: [] };
79
+ }
80
+ const scoped = options.scope === "all" ? sessions : sessions.filter((session) => sessionMatchesCwdScope(session, cwd));
81
+ return { authority: { known: true }, sessions: scoped.map(toInventorySession) };
82
+ }
83
+ export async function runSessionsCommand(cwd, args, env) {
84
+ // Help is handled before subcommand parsing: `omb sessions --help` is the
85
+ // direct help form every other registered command supports, so it must not be
86
+ // read as a subcommand name and rejected as unknown.
87
+ if (args.includes("--help") || args.includes("-h")) {
88
+ process.stdout.write(`${SESSIONS_USAGE}\n`);
89
+ return 0;
90
+ }
91
+ const sub = args[0] ?? "list";
92
+ const json = args.includes("--json");
93
+ if (sub !== "list") {
94
+ process.stderr.write(`omb sessions: unknown subcommand "${sub}"\n\n${SESSIONS_USAGE}\n`);
95
+ return 2;
96
+ }
97
+ const inventory = await collectSessionsInventory(cwd, env, { scope: args.includes("--all") ? "all" : "project" });
98
+ if (json) {
99
+ process.stdout.write(`${JSON.stringify(inventory, null, 2)}\n`);
100
+ return 0;
101
+ }
102
+ if (inventory.sessions.length === 0) {
103
+ // Say *why* it is empty rather than implying there are no sessions.
104
+ process.stdout.write(inventory.authority.known
105
+ ? "No Bizar sessions for this project.\n"
106
+ : `No sessions could be listed: ${inventory.authority.reason ?? "session authority is unknown"}.\n`);
107
+ return inventory.authority.known ? 0 : 1;
108
+ }
109
+ for (const session of inventory.sessions) {
110
+ const liveness = session.processObserved ? "" : session.uncertainLiveness ? " (liveness unknown)" : " (no live process observed)";
111
+ process.stdout.write(`${session.name} ${session.state}${session.attached ? " attached" : ""}${liveness}\n`);
112
+ }
113
+ return 0;
114
+ }
115
+ /** Mobile ownership controls live under the mobile command family. */
116
+ export async function runMobileSessionsCommand(cwd, args, env) {
117
+ if (args.includes("--help") || args.includes("-h")) {
118
+ process.stdout.write(`${MOBILE_SESSIONS_USAGE}\n`);
119
+ return 0;
120
+ }
121
+ const sub = args[0] ?? "list";
122
+ const json = args.includes("--json");
123
+ if (sub === "claims")
124
+ return runListClaims(env, json);
125
+ if (sub === "claim")
126
+ return await runClaimMobile(cwd, ["claim-mobile", ...args.slice(1)], env, json);
127
+ if (sub === "release")
128
+ return await runReleaseMobile(cwd, ["release-mobile", ...args.slice(1)], env, json);
129
+ if (sub === "list")
130
+ return await runSessionsCommand(cwd, ["list", ...(args.includes("--project") ? [] : ["--all"]), ...args.slice(1)], env);
131
+ process.stderr.write(`omb mobile sessions: unknown subcommand "${sub}"\n\n${MOBILE_SESSIONS_USAGE}\n`);
132
+ return 2;
133
+ }
134
+ export const MOBILE_SESSIONS_USAGE = `omb mobile sessions <list|claims|claim|release> [options]
135
+
136
+ list List OMB sessions across projects (add --project for this directory only).
137
+ claims List outstanding mobile ownership claims.
138
+ claim <name> <generation> [--owner <label>] [--holder-pid <pid>] [--json]
139
+ Claim one stopped session generation for the mobile host.
140
+ release <claim-id> [--json]
141
+ Release a mobile ownership claim.
142
+
143
+ Claims require an exact generation and confirmed stopped, unattached session.
144
+ A session with a live local owner is refused.
145
+ `;
146
+ function runListClaims(env, json) {
147
+ const claims = listClaims(env).map((claim) => describeClaim(claim));
148
+ if (json) {
149
+ process.stdout.write(`${JSON.stringify({ claims }, null, 2)}\n`);
150
+ return 0;
151
+ }
152
+ if (claims.length === 0) {
153
+ process.stdout.write("No mobile claims.\n");
154
+ return 0;
155
+ }
156
+ for (const claim of claims) {
157
+ process.stdout.write(`${String(claim.claimId)} ${String(claim.session)} ${String(claim.owner)}${claim.stale === true ? " (stale)" : ""}\n`);
158
+ }
159
+ return 0;
160
+ }
161
+ async function runClaimMobile(cwd, args, env, json) {
162
+ const name = args[1];
163
+ const generation = args[2];
164
+ if (name === undefined || generation === undefined) {
165
+ process.stderr.write("usage: omb mobile sessions claim <session> <generation> [--owner <label>] [--holder-pid <n>] [--json]\n");
166
+ return 2;
167
+ }
168
+ const ownerIndex = args.indexOf("--owner");
169
+ const owner = ownerIndex >= 0 && args[ownerIndex + 1] !== undefined ? String(args[ownerIndex + 1]) : "mobile";
170
+ const holderIndex = args.indexOf("--holder-pid");
171
+ const holderRaw = holderIndex >= 0 ? args[holderIndex + 1] : undefined;
172
+ const holderPid = holderRaw === undefined ? undefined : Number(holderRaw);
173
+ if (holderPid !== undefined && (!Number.isInteger(holderPid) || holderPid <= 0)) {
174
+ process.stderr.write("omb sessions: --holder-pid must be a positive integer\n");
175
+ return 2;
176
+ }
177
+ try {
178
+ const outcome = await claimSessionForMobile({ cwd, name, generation, owner, holderPid, env });
179
+ if (json) {
180
+ process.stdout.write(`${JSON.stringify(outcome, null, 2)}\n`);
181
+ return 0;
182
+ }
183
+ const lines = [
184
+ `claimed ${outcome.claim.session}`,
185
+ `claim id ${outcome.claim.claimId}`,
186
+ `generation ${outcome.claim.generation}`,
187
+ `directory ${outcome.sessionDir}`,
188
+ ...(outcome.takeover ? ["note took over a stale claim"] : []),
189
+ ];
190
+ process.stdout.write(`${lines.join("\n")}\n`);
191
+ return 0;
192
+ }
193
+ catch (error) {
194
+ return reportFailure(error, json);
195
+ }
196
+ }
197
+ async function runReleaseMobile(cwd, args, env, json) {
198
+ const claimId = args[1];
199
+ if (claimId === undefined) {
200
+ process.stderr.write("usage: omb mobile sessions release <claim-id> [--json]\n");
201
+ return 2;
202
+ }
203
+ try {
204
+ const outcome = await releaseMobileClaim({ claimId, cwd, env });
205
+ if (json) {
206
+ process.stdout.write(`${JSON.stringify(outcome, null, 2)}\n`);
207
+ return 0;
208
+ }
209
+ process.stdout.write(`released ${outcome.claim.session} (claim ${outcome.claim.claimId})\n`);
210
+ // A claim that lost its generation is reported, not buried: the caller has
211
+ // to know the session moved on while it held the claim.
212
+ if (!outcome.generationHeld) {
213
+ process.stderr.write("note: the session changed generation while claimed; the claim did not protect it\n");
214
+ }
215
+ return 0;
216
+ }
217
+ catch (error) {
218
+ return reportFailure(error, json);
219
+ }
220
+ }
221
+ function reportFailure(error, json) {
222
+ const message = error instanceof Error ? error.message : String(error);
223
+ if (json) {
224
+ process.stdout.write(`${JSON.stringify({ ok: false, error: message }, null, 2)}\n`);
225
+ }
226
+ else {
227
+ process.stderr.write(`omb sessions: ${message}\n`);
228
+ }
229
+ return 1;
230
+ }
231
+ //# sourceMappingURL=omb-sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omb-sessions.js","sourceRoot":"","sources":["../../src/cli/omb-sessions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"omb-update.d.ts","sourceRoot":"","sources":["../../src/cli/omb-update.ts"],"names":[],"mappings":"AAQA,oEAAoE;AACpE,eAAO,MAAM,WAAW,QAAO,OAAwC,CAAC;AACxE,eAAO,MAAM,YAAY,0BAA0B,CAAC;AAEpD,eAAO,MAAM,YAAY,kZAOmC,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,QAAQ,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrD,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,IAAI,MAAM,CAAC;IACzB,aAAa,IAAI,MAAM,CAAC;IACxB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAAC;IACxC,gBAAgB,IAAI,MAAM,CAAC;IAC3B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC;CAC9D;AAQD,eAAO,MAAM,YAAY,YAAa,MAAM,KAAG,MAI9C,CAAC;AAEF,eAAO,MAAM,eAAe,SAAU,MAAM,SAAS,MAAM,KAAG,MAO7D,CAAC;AAEF,eAAO,MAAM,gBAAgB,8BAA8B,CAAC;AAE5D,eAAO,MAAM,eAAe,YAAa,MAAM,KAAG,MAIjD,CAAC;AAEF,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CASrF;AAED,eAAO,MAAM,cAAc,EAAE,cA4B5B,CAAC;AA6BF,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,QAAQ,GAAE,cAA+B,GACxC,OAAO,CAAC,MAAM,CAAC,CAsHjB"}
1
+ {"version":3,"file":"omb-update.d.ts","sourceRoot":"","sources":["../../src/cli/omb-update.ts"],"names":[],"mappings":"AASA,oEAAoE;AACpE,eAAO,MAAM,WAAW,QAAO,OAAwC,CAAC;AACxE,eAAO,MAAM,YAAY,0BAA0B,CAAC;AAEpD,eAAO,MAAM,YAAY,kZAOmC,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,QAAQ,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrD,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,IAAI,MAAM,CAAC;IACzB,aAAa,IAAI,MAAM,CAAC;IACxB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAAC;IACxC,gBAAgB,IAAI,MAAM,CAAC;IAC3B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC;CAC9D;AAQD,eAAO,MAAM,YAAY,YAAa,MAAM,KAAG,MAI9C,CAAC;AAEF,eAAO,MAAM,eAAe,SAAU,MAAM,SAAS,MAAM,KAAG,MAO7D,CAAC;AAEF,eAAO,MAAM,gBAAgB,8BAA8B,CAAC;AAE5D,eAAO,MAAM,eAAe,YAAa,MAAM,KAAG,MAIjD,CAAC;AAEF,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CASrF;AAED,eAAO,MAAM,cAAc,EAAE,cA4B5B,CAAC;AA6BF,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,QAAQ,GAAE,cAA+B,GACxC,OAAO,CAAC,MAAM,CAAC,CAmIjB"}
@@ -3,6 +3,7 @@ import { execFileSync } from "node:child_process";
3
3
  import { join } from "node:path";
4
4
  import { packageRoot } from "./install.js";
5
5
  import { runNpm } from "./process.js";
6
+ import { isQualifiedOmpVersion, LATEST_QUALIFIED_OMP_VERSION } from "../omp/compatibility.js";
6
7
  import { findOnPath } from "../omp/tmux.js";
7
8
  import { runInkUpdate } from "./update-ink.js";
8
9
  /** Whether the current stdout can host the interactive Ink view. */
@@ -168,9 +169,23 @@ export async function runUpdateCommand(args, env = process.env, services = updat
168
169
  try {
169
170
  ompVersion = services.ompCurrentVersion();
170
171
  ompLatest = validOmpVersion(services.ompLatestVersion());
171
- if (ompVersion && compareVersions(ompLatest, ompVersion) > 0) {
172
+ // `omb update` is a Bizar self-update, not an OMP upgrade. It only moves
173
+ // OMP forward to the newest version Bizar has *qualified*; installing
174
+ // whatever npm reports as latest would put a working installation onto an
175
+ // unqualified runtime before the compatibility gate has cleared it, and the
176
+ // plugin refresh then bypasses the compatibility guard for exactly that
177
+ // case. A newer-but-unqualified OMP is reported and left for an explicit
178
+ // `omp update`.
179
+ const target = ompLatest && isQualifiedOmpVersion(ompLatest) ? ompLatest : undefined;
180
+ if (!target) {
181
+ ompUpdateResult = "current";
182
+ ompUpdateReason = ompLatest
183
+ ? `OMP ${ompLatest} is newer than the highest qualified version (${LATEST_QUALIFIED_OMP_VERSION}); upgrade OMP explicitly to try it.`
184
+ : "could not determine the latest OMP version";
185
+ }
186
+ else if (ompVersion && compareVersions(target, ompVersion) > 0) {
172
187
  try {
173
- services.installOmp(`${OMP_PACKAGE_NAME}@${ompLatest}`);
188
+ services.installOmp(`${OMP_PACKAGE_NAME}@${target}`);
174
189
  ompUpdateResult = "updated";
175
190
  }
176
191
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"omb-update.js","sourceRoot":"","sources":["../../src/cli/omb-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,oEAAoE;AACpE,MAAM,CAAC,MAAM,WAAW,GAAG,GAAY,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;AACxE,MAAM,CAAC,MAAM,YAAY,GAAG,uBAAuB,CAAC;AAEpD,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;4DAOgC,CAAC;AA8B7D,MAAM,cAAc,GAAG,GAAW,EAAE;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAA0B,CAAC;IAC9G,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACpG,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAU,EAAE;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC;IAC9H,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,KAAa,EAAU,EAAE;IACrE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AAE5D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAe,EAAU,EAAE;IACzD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC;IAC5H,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB,CAAC,UAAkB,EAAE,eAAuB;IAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAA0B,CAAC;IACvG,IAAI,QAAQ,CAAC,OAAO,KAAK,eAAe,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,mDAAmD,eAAe,WAAW,MAAM,CAAC,QAAQ,CAAC,OAAO,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;IAC1I,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACjD,YAAY,CAAC,GAAG,CAAC,CAAC;IAClB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,cAAc,EAAE,cAAc;IAC9B,aAAa,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7I,iBAAiB,EAAE,GAAG,EAAE;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1I,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;YAC1G,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,gBAAgB,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACvJ,UAAU,EAAE,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IACnF,aAAa,EAAE,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IACtF,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,aAAa,IAAI,KAAK,EAAE,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACnD,0EAA0E;QAC1E,uEAAuE;QACvE,wDAAwD;QACxD,OAAO,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE;YACtH,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE;SACrF,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,SAAS,IAAI,CAAC,MAAoB,EAAE,IAAa;IAC/C,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM;QAC3C,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,qBAAqB,MAAM,CAAC,cAAc,OAAO,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,sBAAsB,MAAM,CAAC,cAAc,EAAE;QAClJ,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,cAAc,OAAO,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,sBAAsB,MAAM,CAAC,cAAc,EAAE,CAAC;IAChJ,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC;IACvT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,KAAK,GAAG,MAAM,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC7D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;aACvC,IAAI,GAAG,KAAK,WAAW;YAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;aAC/C,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;;YAC1C,OAAO,EAAE,KAAK,EAAE,qBAAqB,GAAG,GAAG,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAc,EACd,GAAG,GAAsB,OAAO,CAAC,GAAG,EACpC,QAAQ,GAAmB,cAAc;IAEzC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,IAAI,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,MAAM,CAAC,KAAK,OAAO,YAAY,IAAI,CAAC,CAAC;QACzE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,2EAA2E;IAC3E,wEAAwE;IACxE,0CAA0C;IAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,WAAW,EAAE,EAAE,CAAC;QACrE,OAAO,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,cAAsB,CAAC;IAC3B,IAAI,aAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;QACzD,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS;YACjF,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK;YACpE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,uBAAuB;YAChF,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,uBAAuB;YACxD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,eAAe,GAAG,eAAe,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe;YAC3E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK;YAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAChE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAChD,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAChE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrF,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,UAA8B,CAAC;IACnC,IAAI,SAA6B,CAAC;IAClC,IAAI,eAAe,GAAiD,SAAS,CAAC;IAC9E,IAAI,eAAmC,CAAC;IACxC,IAAI,CAAC;QACH,UAAU,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC1C,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACzD,IAAI,UAAU,IAAI,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC;gBACH,QAAQ,CAAC,UAAU,CAAC,GAAG,gBAAgB,IAAI,SAAS,EAAE,CAAC,CAAC;gBACxD,eAAe,GAAG,SAAS,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,eAAe,GAAG,QAAQ,CAAC;gBAC3B,eAAe,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,SAAS,CAAC;QAC9B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAe,GAAG,SAAS,CAAC;QAC5B,eAAe,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,YAAY,IAAI,aAAa,EAAE,CAAC;IAChD,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAiB;gBAC3B,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe;gBAC5E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;gBAC7B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7F,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,gCAAgC;gBACjE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;YACF,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,YAAY,KAAK,SAAS,CAAC;QACjD,MAAM,YAAY,GAAG,OAAO,YAAY,KAAK,QAAQ;YACnD,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;gBAAC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAwC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,EAAE,CAAC;YAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YACpH,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,CAAC;YACH,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe;YAC3E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;YAC7B,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAC/C,SAAS,EAAE,eAAe,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAC7C,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAiB;YAC3B,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe;YAC5E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK;YAC7B,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5H,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,KAAK,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,2BAA2B,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;SAC/K,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"omb-update.js","sourceRoot":"","sources":["../../src/cli/omb-update.ts"],"names":[],"mappings":"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"}
package/dist/cli/omb.js CHANGED
@@ -5,23 +5,28 @@ import { parseOmbCommand } from "./omb-invocation.js";
5
5
  import { launchOmb, shouldLaunchOmbInTmux } from "../omp/tmux.js";
6
6
  try {
7
7
  const [token = "", ...args] = process.argv.slice(2);
8
- const command = findOmbCommand(token);
9
- if (command) {
10
- process.exitCode = await command.run(args, process.env);
8
+ if (token === "--internal-mobile") {
9
+ process.exitCode = await (await import("./omb-mobile.js")).runMobileCommand(args, process.env);
11
10
  }
12
11
  else {
13
- // Anything omb does not own is an OMP invocation: run or attach it, then
14
- // return to the hub when the launch took over an opaque terminal.
15
- const invocation = parseOmbCommand(process.argv.slice(2));
16
- const returnToHub = shouldLaunchOmbInTmux({
17
- args: invocation.ompArgs,
18
- env: process.env,
19
- stdinIsTTY: process.stdin.isTTY === true,
20
- stdoutIsTTY: process.stdout.isTTY === true,
21
- });
22
- process.exitCode = await launchOmb(process.cwd(), invocation.ompArgs, process.env, invocation.sessionId);
23
- if (returnToHub)
24
- process.exitCode = await runAgentsHub(process.cwd(), [], process.env);
12
+ const command = findOmbCommand(token);
13
+ if (command) {
14
+ process.exitCode = await command.run(args, process.env);
15
+ }
16
+ else {
17
+ // Anything omb does not own is an OMP invocation: run or attach it, then
18
+ // return to the hub when the launch took over an opaque terminal.
19
+ const invocation = parseOmbCommand(process.argv.slice(2));
20
+ const returnToHub = shouldLaunchOmbInTmux({
21
+ args: invocation.ompArgs,
22
+ env: process.env,
23
+ stdinIsTTY: process.stdin.isTTY === true,
24
+ stdoutIsTTY: process.stdout.isTTY === true,
25
+ });
26
+ process.exitCode = await launchOmb(process.cwd(), invocation.ompArgs, process.env, invocation.sessionId);
27
+ if (returnToHub)
28
+ process.exitCode = await runAgentsHub(process.cwd(), [], process.env);
29
+ }
25
30
  }
26
31
  }
27
32
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"omb.js","sourceRoot":"","sources":["../../src/cli/omb.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAElE,IAAI,CAAC;IACH,MAAM,CAAC,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,yEAAyE;QACzE,kEAAkE;QAClE,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,qBAAqB,CAAC;YACxC,IAAI,EAAE,UAAU,CAAC,OAAO;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI;YACxC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;SAC3C,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QACzG,IAAI,WAAW;YAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"omb.js","sourceRoot":"","sources":["../../src/cli/omb.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAElE,IAAI,CAAC;IACH,MAAM,CAAC,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpD,IAAI,KAAK,KAAK,mBAAmB,EAAE,CAAC;QAClC,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACjG,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,yEAAyE;YACzE,kEAAkE;YAClE,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,WAAW,GAAG,qBAAqB,CAAC;gBACxC,IAAI,EAAE,UAAU,CAAC,OAAO;gBACxB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI;gBACxC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;aAC3C,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;YACzG,IAAI,WAAW;gBAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;AACH,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare function installOmpMobileDispatch(command?: string, env?: NodeJS.ProcessEnv): {
2
+ path: string;
3
+ nativePath: string;
4
+ installed: boolean;
5
+ };
6
+ export declare function removeOmpMobileDispatch(command?: string, env?: NodeJS.ProcessEnv): {
7
+ path: string;
8
+ restored: boolean;
9
+ };
10
+ //# sourceMappingURL=omp-mobile-dispatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omp-mobile-dispatch.d.ts","sourceRoot":"","sources":["../../src/cli/omp-mobile-dispatch.ts"],"names":[],"mappings":"AA4CA,wBAAgB,wBAAwB,CAAC,OAAO,SAAQ,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAwCxJ;AAED,wBAAgB,uBAAuB,CAAC,OAAO,SAAQ,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CA4BlI"}
@@ -0,0 +1,148 @@
1
+ import { chmodSync, existsSync, statSync, openSync, closeSync, linkSync, readSync, readFileSync, realpathSync, renameSync, rmSync, writeFileSync } from "node:fs";
2
+ import { delimiter, isAbsolute, join, resolve } from "node:path";
3
+ const MARKER = "# bizar-omp-mobile-dispatch:v1";
4
+ const NATIVE_SUFFIX = ".bizar-native";
5
+ function executableOnPath(command, env) {
6
+ if (command.includes("/") || command.includes("\\")) {
7
+ const candidate = resolve(command);
8
+ return existsSync(candidate) ? candidate : undefined;
9
+ }
10
+ for (const directory of (env.PATH ?? "").split(delimiter)) {
11
+ if (!directory)
12
+ continue;
13
+ const candidate = join(directory, command);
14
+ try {
15
+ if (statSync(candidate).isFile())
16
+ return candidate;
17
+ }
18
+ catch {
19
+ // Continue through PATH; the CLI prints a single useful error below.
20
+ }
21
+ }
22
+ return undefined;
23
+ }
24
+ function wrapper(nativePath) {
25
+ const quote = (value) => `'${value.replaceAll("'", "'\\''")}'`;
26
+ return `#!/bin/sh\n${MARKER}\nif [ "\${1-}" = mobile ]; then\n shift\n exec omb --internal-mobile "$@"\nfi\nexec ${quote(nativePath)} "$@"\n`;
27
+ }
28
+ function readHeader(path) {
29
+ const fd = openSync(path, "r");
30
+ try {
31
+ const buffer = Buffer.alloc(96);
32
+ const count = readSync(fd, buffer, 0, buffer.length, 0);
33
+ return buffer.toString("utf8", 0, count);
34
+ }
35
+ finally {
36
+ closeSync(fd);
37
+ }
38
+ }
39
+ function resolveTarget(command, env) {
40
+ const target = executableOnPath(command, env);
41
+ if (!target)
42
+ throw new Error(`Cannot find OMP executable "${command}" on PATH`);
43
+ if (process.platform === "win32")
44
+ throw new Error("The omp mobile dispatcher currently requires a POSIX shell");
45
+ return realpathSync(target);
46
+ }
47
+ export function installOmpMobileDispatch(command = "omp", env = process.env) {
48
+ const target = resolveTarget(command, env);
49
+ if (!executableOnPath("omb", env))
50
+ throw new Error("Cannot install omp mobile routing because the Bizar OMB command is not on PATH");
51
+ const targetHeader = readHeader(target);
52
+ const nativePath = `${target}${NATIVE_SUFFIX}`;
53
+ if (targetHeader.startsWith(`#!/bin/sh\n${MARKER}\n`)) {
54
+ if (!existsSync(nativePath) || !statSync(nativePath).isFile())
55
+ throw new Error(`omp dispatcher is installed but its native OMP backup is missing: ${nativePath}`);
56
+ return { path: target, nativePath, installed: false };
57
+ }
58
+ if (!statSync(target).isFile())
59
+ throw new Error(`OMP path is not a regular executable file: ${target}`);
60
+ if (existsSync(nativePath)) {
61
+ const targetStat = statSync(target);
62
+ const backupStat = statSync(nativePath);
63
+ if (targetStat.dev === backupStat.dev && targetStat.ino === backupStat.ino)
64
+ rmSync(nativePath);
65
+ else
66
+ throw new Error(`Refusing to replace an existing OMP backup: ${nativePath}`);
67
+ }
68
+ const lockPath = `${target}.bizar-mobile.lock`;
69
+ let lock;
70
+ try {
71
+ lock = openSync(lockPath, "wx", 0o600);
72
+ }
73
+ catch {
74
+ throw new Error(`Another OMP mobile dispatcher change is in progress (${lockPath})`);
75
+ }
76
+ const temporary = `${target}.${process.pid}.bizar-mobile.tmp`;
77
+ try {
78
+ writeFileSync(temporary, wrapper(nativePath), { mode: 0o755, flag: "wx" });
79
+ chmodSync(temporary, 0o755);
80
+ // Preserve the complete native OMP executable through a hard link, then
81
+ // atomically replace only its command path with the dispatcher.
82
+ try {
83
+ linkSync(target, nativePath);
84
+ }
85
+ catch (error) {
86
+ throw new Error(`Could not preserve native OMP at ${nativePath}: ${error instanceof Error ? error.message : String(error)}`);
87
+ }
88
+ try {
89
+ renameSync(temporary, target);
90
+ }
91
+ catch (error) {
92
+ rmSync(nativePath, { force: true });
93
+ throw error;
94
+ }
95
+ return { path: target, nativePath, installed: true };
96
+ }
97
+ finally {
98
+ rmSync(temporary, { force: true });
99
+ closeSync(lock);
100
+ rmSync(lockPath, { force: true });
101
+ }
102
+ }
103
+ export function removeOmpMobileDispatch(command = "omp", env = process.env) {
104
+ const target = resolveTarget(command, env);
105
+ let contents;
106
+ try {
107
+ contents = readHeader(target);
108
+ }
109
+ catch {
110
+ return { path: target, restored: false };
111
+ }
112
+ if (!contents.startsWith(`#!/bin/sh\n${MARKER}\n`))
113
+ return { path: target, restored: false };
114
+ contents = readFileSync(target, "utf8");
115
+ const nativePath = `${target}${NATIVE_SUFFIX}`;
116
+ if (!existsSync(nativePath) || !statSync(nativePath).isFile())
117
+ throw new Error(`Cannot restore OMP; native executable is missing: ${nativePath}`);
118
+ if (process.platform === "win32" || !isAbsolute(target))
119
+ throw new Error("Cannot safely restore the OMP dispatcher at this path");
120
+ const expected = wrapper(nativePath);
121
+ if (contents !== expected)
122
+ throw new Error("The omp dispatcher was modified; refusing to replace an unrecognized executable");
123
+ const lockPath = `${target}.bizar-mobile.lock`;
124
+ let lock;
125
+ try {
126
+ lock = openSync(lockPath, "wx", 0o600);
127
+ }
128
+ catch {
129
+ throw new Error(`Another OMP mobile dispatcher change is in progress (${lockPath})`);
130
+ }
131
+ const temporary = `${target}.${process.pid}.bizar-native.tmp`;
132
+ try {
133
+ renameSync(nativePath, temporary);
134
+ try {
135
+ renameSync(temporary, target);
136
+ }
137
+ catch (error) {
138
+ renameSync(temporary, nativePath);
139
+ throw error;
140
+ }
141
+ return { path: target, restored: true };
142
+ }
143
+ finally {
144
+ closeSync(lock);
145
+ rmSync(lockPath, { force: true });
146
+ }
147
+ }
148
+ //# sourceMappingURL=omp-mobile-dispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omp-mobile-dispatch.js","sourceRoot":"","sources":["../../src/cli/omp-mobile-dispatch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"acceptance.d.ts","sourceRoot":"","sources":["../../src/core/acceptance.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAkB,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEhH,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,yBAAyB,GAAG,qBAAqB,GAAG,wBAAwB,GAAG,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,mBAAmB,GAAG,sBAAsB,CAAC;AACtT,MAAM,WAAW,iBAAiB;IAAG,IAAI,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CAAE;AACpJ,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACxB;AACD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOxD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAgB9G;AAQD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,sBAAsB,GAAG,kBAAkB,CAuCjH"}
1
+ {"version":3,"file":"acceptance.d.ts","sourceRoot":"","sources":["../../src/core/acceptance.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAkB,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEhH,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,yBAAyB,GAAG,qBAAqB,GAAG,wBAAwB,GAAG,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,mBAAmB,GAAG,sBAAsB,CAAC;AACtT,MAAM,WAAW,iBAAiB;IAAG,IAAI,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CAAE;AACpJ,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACxB;AACD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOxD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAgB9G;AAQD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,sBAAsB,GAAG,kBAAkB,CAuDjH"}
@@ -93,9 +93,29 @@ export function evaluateAcceptance(state, requirements) {
93
93
  if (state.run?.cancellation.requested)
94
94
  blockers.push({ code: "CANCEL_FENCE_ACTIVE", message: "Workflow cancellation has been acknowledged" });
95
95
  const criteria = (requirements.criteria ?? []).filter(criterion => criterion.applicable);
96
- for (const criterion of criteria)
97
- if (criterion.kind !== "operator-judgment" && !coveredCriterionIds.has(criterion.id))
96
+ // An `operator-judgment` criterion is satisfied by a passing operator
97
+ // receipt, not by a check. It used to be skipped entirely, so the default
98
+ // criteria — which `freezeObjective` derives from plain acceptance-criterion
99
+ // strings, all of them operator judgments — gated nothing at all.
100
+ for (const criterion of criteria) {
101
+ if (criterion.kind === "operator-judgment") {
102
+ const receipt = [...(state.operatorReceipts ?? [])]
103
+ .filter(candidate => candidate.id === criterion.id || candidate.workItemId === criterion.id)
104
+ .sort((a, b) => a.issuedAt.localeCompare(b.issuedAt))
105
+ .at(-1);
106
+ if (!receipt)
107
+ blockers.push({ code: "MISSING_CHECK", message: `Criterion ${criterion.id} requires an operator receipt; none was recorded`, criterionId: criterion.id });
108
+ else if (receipt.verdict !== "passed")
109
+ blockers.push({ code: "LATEST_ATTEMPT_FAILED", message: `Operator receipt for ${criterion.id} is "${receipt.verdict}": ${receipt.rationale}`, criterionId: criterion.id });
110
+ else {
111
+ coveredCriterionIds.add(criterion.id);
112
+ selectedEvidenceIds.push(receipt.id);
113
+ }
114
+ continue;
115
+ }
116
+ if (!coveredCriterionIds.has(criterion.id))
98
117
  blockers.push({ code: "MISSING_CHECK", message: `Criterion ${criterion.id} has no covered evidence`, criterionId: criterion.id });
118
+ }
99
119
  return { eligible: blockers.length === 0 && checks.length > 0, coveredCriterionIds: [...coveredCriterionIds], selectedEvidenceIds, missingEvidence, staleEvidence, supersededEvidence, blockers };
100
120
  }
101
121
  //# sourceMappingURL=acceptance.js.map