@polderlabs/bizar-omp 0.7.4 → 0.7.6

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 (40) hide show
  1. package/README.md +4 -4
  2. package/dist/cli/doctor.d.ts +4 -4
  3. package/dist/cli/install.d.ts +5 -1
  4. package/dist/cli/install.d.ts.map +1 -1
  5. package/dist/cli/install.js +17 -7
  6. package/dist/cli/install.js.map +1 -1
  7. package/dist/cli/main.js +2 -0
  8. package/dist/cli/main.js.map +1 -1
  9. package/dist/cli/omb-update.d.ts +9 -0
  10. package/dist/cli/omb-update.d.ts.map +1 -1
  11. package/dist/cli/omb-update.js +74 -8
  12. package/dist/cli/omb-update.js.map +1 -1
  13. package/dist/cli/update-ink.d.ts +1 -1
  14. package/dist/cli/update-ink.d.ts.map +1 -1
  15. package/dist/cli/update-ink.js +59 -10
  16. package/dist/cli/update-ink.js.map +1 -1
  17. package/dist/extension.d.ts +4 -6
  18. package/dist/extension.d.ts.map +1 -1
  19. package/dist/extension.js +69 -30
  20. package/dist/extension.js.map +1 -1
  21. package/dist/omp/compatibility.d.ts +13 -5
  22. package/dist/omp/compatibility.d.ts.map +1 -1
  23. package/dist/omp/compatibility.js +15 -2
  24. package/dist/omp/compatibility.js.map +1 -1
  25. package/dist/omp/context.d.ts +0 -7
  26. package/dist/omp/context.d.ts.map +1 -1
  27. package/dist/omp/context.js +0 -1
  28. package/dist/omp/context.js.map +1 -1
  29. package/docs/compatibility/baseline.json +10 -8
  30. package/docs/compatibility/supported-surfaces.json +3 -1
  31. package/docs/development/ci-release-implementation-guide.md +9 -4
  32. package/docs/development/contributing-and-releasing.md +17 -4
  33. package/docs/releases/0.7.5.md +3 -0
  34. package/docs/releases/0.7.6.md +34 -0
  35. package/docs/releases/npm-publishing.md +9 -7
  36. package/docs/releases/support-matrix.md +1 -1
  37. package/package.json +1 -1
  38. package/skills/omp-native-development/SKILL.md +1 -1
  39. package/skills/omp-native-development/references/accuracy-and-versioning.md +1 -1
  40. package/skills/omp-native-development/references/source-manifest.json +3 -3
@@ -1,10 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text, render, useApp, useInput } from "ink";
3
3
  import { OMP_THEME } from "./omp-theme.js";
4
- import { PACKAGE_NAME, compareVersions, validVersion } from "./omb-update.js";
5
- export const UPDATE_STAGE_KEYS = ["checking", "installing", "refreshing"];
4
+ import { OMP_PACKAGE_NAME, PACKAGE_NAME, compareVersions, validOmpVersion, validVersion } from "./omb-update.js";
5
+ export const UPDATE_STAGE_KEYS = ["checking", "updating-omp", "installing", "refreshing"];
6
6
  export const UPDATE_STAGE_LABELS = {
7
7
  checking: "Checking npm registry",
8
+ "updating-omp": "Updating OMP",
8
9
  installing: "Installing global package",
9
10
  refreshing: "Refreshing OMP plugin",
10
11
  };
@@ -30,7 +31,7 @@ const initialProgress = () => ({
30
31
  currentVersion: "checking…",
31
32
  latestVersion: "checking…",
32
33
  updateAvailable: false,
33
- stages: { checking: "pending", installing: "pending", refreshing: "pending" },
34
+ stages: { checking: "pending", "updating-omp": "pending", installing: "pending", refreshing: "pending" },
34
35
  });
35
36
  /**
36
37
  * The update pipeline behind the Ink view. Runs the same services as the text
@@ -60,8 +61,10 @@ export async function performUpdate(services, env, onProgress) {
60
61
  progress: snapshot(),
61
62
  report: {
62
63
  ok: false, command: "update", currentVersion: "unknown", latestVersion: "unknown",
63
- updateAvailable: false, dryRun: false, checked: false, global: "failed", plugin: "skipped",
64
- pluginReason: "version lookup failed", error: error instanceof Error ? error.message : String(error),
64
+ updateAvailable: false, dryRun: false, checked: false,
65
+ global: "failed", ompUpdate: "skipped", ompUpdateReason: "version lookup failed",
66
+ plugin: "skipped", pluginReason: "version lookup failed",
67
+ error: error instanceof Error ? error.message : String(error),
65
68
  },
66
69
  };
67
70
  }
@@ -69,6 +72,33 @@ export async function performUpdate(services, env, onProgress) {
69
72
  progress.latestVersion = latestVersion;
70
73
  progress.updateAvailable = compareVersions(latestVersion, currentVersion) > 0;
71
74
  setStage("checking", "ok");
75
+ setStage("updating-omp", "running");
76
+ let ompVersion;
77
+ let ompUpdateResult = "skipped";
78
+ let ompUpdateReason;
79
+ try {
80
+ ompVersion = services.ompCurrentVersion();
81
+ const ompLatest = validOmpVersion(services.ompLatestVersion());
82
+ if (ompVersion && compareVersions(ompLatest, ompVersion) > 0) {
83
+ try {
84
+ services.installOmp(`${OMP_PACKAGE_NAME}@${ompLatest}`);
85
+ ompUpdateResult = "updated";
86
+ }
87
+ catch (error) {
88
+ ompUpdateResult = "failed";
89
+ ompUpdateReason = error instanceof Error ? error.message : String(error);
90
+ }
91
+ }
92
+ else {
93
+ ompUpdateResult = "current";
94
+ }
95
+ setStage("updating-omp", ompUpdateResult === "failed" ? "failed" : "ok");
96
+ }
97
+ catch (error) {
98
+ ompUpdateResult = "skipped";
99
+ ompUpdateReason = error instanceof Error ? error.message : String(error);
100
+ setStage("updating-omp", "failed");
101
+ }
72
102
  if (!progress.updateAvailable) {
73
103
  setStage("installing", "ok");
74
104
  }
@@ -85,8 +115,10 @@ export async function performUpdate(services, env, onProgress) {
85
115
  progress: snapshot(),
86
116
  report: {
87
117
  ok: false, command: "update", currentVersion, latestVersion, updateAvailable: true,
88
- dryRun: false, checked: false, global: "failed", plugin: "skipped",
89
- pluginReason: "global package was not updated",
118
+ dryRun: false, checked: false,
119
+ global: "failed", ompUpdate: ompUpdateResult, ...(ompUpdateReason ? { ompUpdateReason } : {}),
120
+ plugin: "skipped", pluginReason: "global package was not updated",
121
+ ...(ompVersion ? { ompVersion } : {}),
90
122
  error: error instanceof Error ? error.message : String(error),
91
123
  },
92
124
  };
@@ -95,15 +127,29 @@ export async function performUpdate(services, env, onProgress) {
95
127
  }
96
128
  setStage("refreshing", "running");
97
129
  try {
98
- const pluginSkipped = services.refreshPlugin(spec, env) === undefined;
130
+ const pluginResult = services.refreshPlugin(spec, env);
131
+ const pluginSkipped = pluginResult === undefined;
132
+ const pluginOutput = typeof pluginResult === "string"
133
+ ? (() => { try {
134
+ return JSON.parse(pluginResult);
135
+ }
136
+ catch {
137
+ return {};
138
+ } })()
139
+ : {};
99
140
  setStage("refreshing", "ok");
100
141
  return {
101
142
  exitCode: 0,
102
143
  progress: snapshot(),
103
144
  report: {
104
145
  ok: true, command: "update", currentVersion, latestVersion, updateAvailable: progress.updateAvailable,
105
- dryRun: false, checked: false, global: progress.updateAvailable ? "updated" : "current", plugin: pluginSkipped ? "skipped" : "updated",
146
+ dryRun: false, checked: false,
147
+ global: progress.updateAvailable ? "updated" : "current",
148
+ ompUpdate: ompUpdateResult, ...(ompUpdateReason ? { ompUpdateReason } : {}),
149
+ plugin: pluginSkipped ? "skipped" : "updated",
106
150
  ...(pluginSkipped ? { pluginReason: progress.updateAvailable ? "omp executable not found" : "omp executable not found; no package update required" } : {}),
151
+ ...(ompVersion ? { ompVersion } : {}),
152
+ ...(pluginOutput.notice ? { notice: pluginOutput.notice } : {}),
107
153
  },
108
154
  };
109
155
  }
@@ -114,7 +160,10 @@ export async function performUpdate(services, env, onProgress) {
114
160
  progress: snapshot(),
115
161
  report: {
116
162
  ok: false, command: "update", currentVersion, latestVersion, updateAvailable: progress.updateAvailable,
117
- dryRun: false, checked: false, global: progress.updateAvailable ? "updated" : "current", plugin: "failed",
163
+ dryRun: false, checked: false,
164
+ global: progress.updateAvailable ? "updated" : "current",
165
+ ompUpdate: ompUpdateResult, ...(ompUpdateReason ? { ompUpdateReason } : {}),
166
+ plugin: "failed", ...(ompVersion ? { ompVersion } : {}),
118
167
  error: `${progress.updateAvailable ? "global package updated" : "global package is current"}, but OMP plugin refresh failed: ${error instanceof Error ? error.message : String(error)}`,
119
168
  },
120
169
  };
@@ -1 +1 @@
1
- {"version":3,"file":"update-ink.js","sourceRoot":"","sources":["../../src/cli/update-ink.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-ink.js","sourceRoot":"","sources":["../../src/cli/update-ink.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { AvailableModel } from "./omp/model-role-assignment.js";
2
2
  interface NativeSettings {
3
- get(path: string): unknown;
3
+ get?(path: string): unknown;
4
4
  set?(path: string, value: unknown): void;
5
5
  setModelRole?(role: string, selector: string): void;
6
6
  setProjectModelRole?(role: string, selector: string): void;
@@ -40,11 +40,9 @@ interface OmpZod {
40
40
  }>;
41
41
  }
42
42
  /**
43
- * Mirrors `SendUserMessageOptions` from the qualified OMP public contract
44
- * (`@oh-my-pi/pi-coding-agent` 18.3.0): `deliverAs` selects queue
45
- * behavior, `attribution` (`MessageAttribution` in `@oh-my-pi/pi-ai`) marks
46
- * who initiated the message. Defaults record `"user"`; `"agent"` marks
47
- * extension-generated guidance as agent-authored.
43
+ * Mirrors `SendUserMessageOptions` from the qualified OMP public contract.
44
+ * The command is explicitly invoked by the user, so its resulting request stays
45
+ * attributed to the user in the native session.
48
46
  */
49
47
  interface OmpSendUserMessageOptions {
50
48
  deliverAs?: "steer" | "followUp" | "aside";
@@ -1 +1 @@
1
- {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
package/dist/extension.js CHANGED
@@ -186,41 +186,69 @@ function applyBizarModelRoles(pi, assignments) {
186
186
  settings.setModelRole(assignment.role, assignment.selector);
187
187
  return "global";
188
188
  }
189
- function ensureBizarModelRoles(pi) {
189
+ async function setNativeSetting(pi, settings, key, value, cwd) {
190
+ if (settings?.set) {
191
+ settings.set(key, value);
192
+ return;
193
+ }
194
+ if (!pi.exec)
195
+ throw new ContractError(`OMP cannot update ${key}: its settings writer is unavailable`);
196
+ const command = findOnPath("omp", process.env) ?? "omp";
197
+ const result = await pi.exec(command, ["config", "set", key, JSON.stringify(value)], { cwd });
198
+ if (result.code !== 0)
199
+ throw new ContractError(`OMP could not update ${key} through its config command (exit ${result.code ?? "unknown"})`);
200
+ }
201
+ async function getNativeSetting(pi, settings, key, cwd) {
202
+ if (settings?.get)
203
+ return settings.get(key);
204
+ if (!pi.exec)
205
+ throw new ContractError(`OMP cannot read ${key}: its config command is unavailable`);
206
+ const command = findOnPath("omp", process.env) ?? "omp";
207
+ const result = await pi.exec(command, ["config", "get", key, "--json"], { cwd });
208
+ if (result.code !== 0)
209
+ throw new ContractError(`OMP could not read ${key} through its config command (exit ${result.code ?? "unknown"})`);
210
+ try {
211
+ return JSON.parse(result.stdout ?? "").value;
212
+ }
213
+ catch {
214
+ throw new ContractError(`OMP returned invalid JSON while reading ${key}`);
215
+ }
216
+ }
217
+ async function ensureBizarModelRoles(pi, cwd) {
190
218
  const settings = pi.pi?.settings;
191
- if (!settings?.get)
219
+ if (!settings && !pi.exec)
192
220
  return;
193
- const currentRoles = recordOf(settings.get("modelRoles"));
221
+ const currentRoles = recordOf(await getNativeSetting(pi, settings, "modelRoles", cwd));
194
222
  const missingRoles = Object.entries(BIZAR_MODEL_ROLES).filter(([role]) => typeof currentRoles[role] !== "string");
195
- const projectStorage = settings.get("modelRoleStorage") === "project";
196
- const roleSetter = projectStorage ? settings.setProjectModelRole : settings.setModelRole;
223
+ const projectStorage = await getNativeSetting(pi, settings, "modelRoleStorage", cwd) === "project";
224
+ const roleSetter = projectStorage ? settings?.setProjectModelRole : settings?.setModelRole;
197
225
  if (roleSetter) {
198
226
  for (const [role, selector] of missingRoles)
199
227
  roleSetter.call(settings, role, selector);
200
228
  }
201
- const currentTags = recordOf(settings.get("modelTags"));
229
+ const currentTags = recordOf(await getNativeSetting(pi, settings, "modelTags", cwd));
202
230
  const nextTags = { ...currentTags };
203
231
  for (const [role, tag] of Object.entries(BIZAR_MODEL_TAGS))
204
232
  if (!Object.hasOwn(nextTags, role))
205
233
  nextTags[role] = tag;
206
- if (settings.set && JSON.stringify(nextTags) !== JSON.stringify(currentTags))
207
- settings.set("modelTags", nextTags);
208
- const currentCycle = settings.get("cycleOrder");
234
+ if (JSON.stringify(nextTags) !== JSON.stringify(currentTags))
235
+ await setNativeSetting(pi, settings, "modelTags", nextTags, cwd);
236
+ const currentCycle = await getNativeSetting(pi, settings, "cycleOrder", cwd);
209
237
  const nextCycle = Array.isArray(currentCycle) ? currentCycle.filter((role) => typeof role === "string") : [];
210
238
  for (const role of Object.keys(BIZAR_MODEL_ROLES))
211
239
  if (!nextCycle.includes(role))
212
240
  nextCycle.push(role);
213
- if (settings.set && JSON.stringify(nextCycle) !== JSON.stringify(currentCycle))
214
- settings.set("cycleOrder", nextCycle);
241
+ if (JSON.stringify(nextCycle) !== JSON.stringify(currentCycle))
242
+ await setNativeSetting(pi, settings, "cycleOrder", nextCycle, cwd);
215
243
  }
216
- function modelRoleHealth(pi, ctx, routeResponses) {
244
+ async function modelRoleHealth(pi, ctx, routeResponses) {
217
245
  const settings = pi.pi?.settings;
218
- if (!settings?.get)
246
+ if (!settings?.get && !pi.exec)
219
247
  throw new ContractError("OMP settings API is unavailable; cannot inspect configured Bizar model roles");
220
248
  const resolver = ctx.models?.resolve;
221
249
  if (!resolver)
222
250
  throw new ContractError("OMP model resolver is unavailable; cannot verify configured Bizar model roles");
223
- const configured = settings.get("modelRoles");
251
+ const configured = await getNativeSetting(pi, settings, "modelRoles", ctx.cwd ?? process.cwd());
224
252
  const bizarEntries = configured && typeof configured === "object" && !Array.isArray(configured)
225
253
  ? Object.entries(configured).filter(([role]) => role.startsWith("bizar_"))
226
254
  : [];
@@ -244,9 +272,9 @@ function modelRoleHealth(pi, ctx, routeResponses) {
244
272
  return `Bizar model-role health: ${assignments.length} configured roles resolve in OMP.${routeNotes.length ? `\n${routeNotes.join("\n")}.` : ""}`;
245
273
  }
246
274
  /**
247
- * Plan-only inspection: scores the live catalog without messaging an agent and
275
+ * Plan-only inspection: scores the live catalog without sending a message and
248
276
  * without touching settings, so an operator can see the deterministic baseline
249
- * and which roles it cannot cover before letting the agent decide.
277
+ * and which roles it cannot cover before deferring the decision.
250
278
  */
251
279
  function previewModelRoles(ctx) {
252
280
  const models = ctx.models?.list?.();
@@ -258,7 +286,7 @@ function previewModelRoles(ctx) {
258
286
  // sentence would be clipped away exactly when it matters most.
259
287
  return [
260
288
  formatCatalogDelta(diffCatalog(loadOmbSettings().modelCatalog, snapshotCatalog(models))),
261
- "Preview only: no agent was messaged and no settings were written.",
289
+ "Preview only: no message was sent and no settings were written.",
262
290
  formatRoleAssignmentPlan(plan),
263
291
  ].join("\n");
264
292
  }
@@ -272,22 +300,22 @@ async function runModelRoleCommand(pi, args, ctx, routeResponses = new Map()) {
272
300
  // OMP 18.2.6 exposes the authenticated catalog directly, but an extension
273
301
  // command cannot make a model call itself. The live catalog plus the
274
302
  // deterministic baseline are handed to the active agent as one bounded
275
- // evaluation task; the agent persists its decision through
276
- // BIZAR_MODEL_ROLE_TOOL, while a host without agent messaging applies the
303
+ // evaluation task; the resulting distribution is persisted through
304
+ // BIZAR_MODEL_ROLE_TOOL, while a host without this handoff applies the
277
305
  // deterministic plan directly.
278
306
  const sendUserMessage = pi.sendUserMessage?.bind(pi);
279
307
  const route = roleAssignmentRoute({
280
308
  settings: pi.pi?.settings,
281
309
  models: ctx.models?.list?.(),
282
310
  sendUserMessage: sendUserMessage
283
- ? (content, options) => sendUserMessage(content, { ...options, attribution: "agent" })
311
+ ? (content, options) => sendUserMessage(content, { ...options, attribution: "user" })
284
312
  : undefined,
285
313
  });
286
314
  if (route.kind === "unsupported")
287
315
  throw new ContractError("OMP model catalog and messaging APIs are unavailable; model-role assignment was not requested");
288
316
  if (route.kind === "agent-prompt-only") {
289
317
  route.send(BIZAR_MODEL_ROLE_AGENT_PROMPT);
290
- return "Asked the active agent to assign Bizar roles from the current OMP catalog and report only the compact mapping.";
318
+ return "Model-role assignment request sent. Report the resulting compact mapping in the session.";
291
319
  }
292
320
  const snapshot = snapshotCatalog(route.models);
293
321
  const delta = diffCatalog(loadOmbSettings().modelCatalog, snapshot);
@@ -304,7 +332,7 @@ async function runModelRoleCommand(pi, args, ctx, routeResponses = new Map()) {
304
332
  resolve: selector => ctx.models?.resolve?.(selector),
305
333
  plan: baseline,
306
334
  delta,
307
- source: "deterministic scoring; this host exposes no agent messaging",
335
+ source: "deterministic scoring; native request handoff unavailable",
308
336
  })}${observationNote}`;
309
337
  }
310
338
  route.send(buildAgentEvaluationRequest({
@@ -324,11 +352,12 @@ async function runModelRoleCommand(pi, args, ctx, routeResponses = new Map()) {
324
352
  return [
325
353
  formatCatalogDelta(delta),
326
354
  `Re-evaluated ${Object.keys(BIZAR_MODEL_ROLES).length} Bizar roles against ${route.models.length} live models, including roles that already hold a value.`,
327
- `The agent was asked to decide the distribution and will persist it through ${BIZAR_MODEL_ROLE_TOOL}. Deterministic baseline: ${assigned}.${unresolved}${leftUnchanged}`,
355
+ `The distribution request was sent for evaluation and will be persisted through ${BIZAR_MODEL_ROLE_TOOL}. Deterministic baseline: ${assigned}.${unresolved}${leftUnchanged}`,
328
356
  ].join("\n") + observationNote;
329
357
  }
330
358
  const runVerificationWithSignal = runVerification;
331
- const MAIN_CONTEXT_GUIDANCE = "BizarHarness OMP is installed and this main session is the Bizar Orchestrator. Talk to the user as the orchestrator by default: understand the request, choose the focused, bounded, or full Bizar method tier from scope, ambiguity, risk, file count, and change type, and delegate to specialist agents only when that improves the result. Use the native bizar-omp skill for Bizar's ownership boundaries, adaptive workflow tiers, workflow/evidence tools, model-role command, and omp-versus-omb launcher contract. The native OMP Advisor reviews passively when the install preset enabled it; incorporate useful concerns without creating a second orchestration runtime. Focused work is direct with targeted proof; bounded work uses a lightweight Bizar workflow with acceptance and targeted checks; full work uses planning, isolation, evidence, review, and serialized integration. Do not add full planning or delegation as ceremony; escalate when scope or risk grows and never downgrade after escalation. Inspect relevant code and tests, make the smallest safe change, run proportional verification, and report concrete evidence. Do not claim completion without fresh verification; surface only material blockers. Create and pursue a native goal only when the user explicitly requests a goal.";
359
+ const USER_IDENTITY_INVARIANT = "All authored work and external actions use the user's identity. Do not add self-credit or self-identification to content, code comments, Git metadata, pull requests, releases, or GitHub interactions. If the user's authorized identity is unavailable, stop before the external write.";
360
+ const MAIN_CONTEXT_GUIDANCE = "BizarHarness OMP is installed and this main session is the Bizar Orchestrator. Talk to the user as the orchestrator by default: understand the request, choose the focused, bounded, or full Bizar method tier from scope, ambiguity, risk, file count, and change type, and delegate to specialist agents only when that improves the result. Use the native bizar-omp skill for Bizar's ownership boundaries, adaptive workflow tiers, workflow/evidence tools, model-role command, and omp-versus-omb launcher contract. The native OMP Advisor reviews passively when the install preset enabled it; incorporate useful concerns without creating a second orchestration runtime. Focused work is direct with targeted proof; bounded work uses a lightweight Bizar workflow with acceptance and targeted checks; full work uses planning, isolation, evidence, review, and serialized integration. Do not add full planning or delegation as ceremony; escalate when scope or risk grows and never downgrade after escalation. All authored work and external actions use the user's identity. Do not add self-credit or self-identification to content, code comments, Git metadata, pull requests, releases, or GitHub interactions. If the user's authorized identity is unavailable, stop before the external write. Inspect relevant code and tests, make the smallest safe change, run proportional verification, and report concrete evidence. Do not claim completion without fresh verification; surface only material blockers. Create and pursue a native goal only when the user explicitly requests a goal.";
332
361
  function appendMainContextGuidance(systemPrompt) {
333
362
  if (typeof systemPrompt === "string") {
334
363
  return systemPrompt.includes(MAIN_CONTEXT_GUIDANCE)
@@ -343,10 +372,20 @@ function appendMainContextGuidance(systemPrompt) {
343
372
  }
344
373
  return [MAIN_CONTEXT_GUIDANCE];
345
374
  }
375
+ function appendUserIdentityInvariant(systemPrompt) {
376
+ if (typeof systemPrompt === "string") {
377
+ return systemPrompt.includes(USER_IDENTITY_INVARIANT) ? systemPrompt : `${systemPrompt}\n\n${USER_IDENTITY_INVARIANT}`;
378
+ }
379
+ if (Array.isArray(systemPrompt)) {
380
+ const prompts = systemPrompt.map(String);
381
+ return prompts.some(prompt => prompt.includes(USER_IDENTITY_INVARIANT)) ? prompts : [...prompts, USER_IDENTITY_INVARIANT];
382
+ }
383
+ return [USER_IDENTITY_INVARIANT];
384
+ }
346
385
  /**
347
386
  * Universal Bizar OMP invariants injected into every session (main and task children).
348
387
  */
349
- const BIZAR_INVARIANTS = "BizarHarness OMP is installed. Use the native bizar-omp skill for Bizar's ownership boundaries, adaptive workflow tiers, workflow/evidence tools, model-role command, and omp-versus-omb launcher contract. Focused work is direct with targeted proof; bounded work uses a lightweight Bizar workflow with acceptance and targeted checks; full work uses planning, isolation, evidence, review, and serialized integration. The native OMP Advisor is enabled by default and may provide passive independent review; incorporate useful concerns without creating a second orchestration runtime.";
388
+ const BIZAR_INVARIANTS = "BizarHarness OMP is installed. Use the native bizar-omp skill for Bizar's ownership boundaries, adaptive workflow tiers, workflow/evidence tools, model-role command, and omp-versus-omb launcher contract. Focused work is direct with targeted proof; bounded work uses a lightweight Bizar workflow with acceptance and targeted checks; full work uses planning, isolation, evidence, review, and serialized integration. The native OMP Advisor is enabled by default and may provide passive independent review; incorporate useful concerns without creating a second orchestration runtime. Before acting on a todo that asks to commit or push, check the working tree and upstream Git state. When `git status --short` is empty and `git rev-parse HEAD` matches the relevant upstream branch, complete the satisfied commit/push todo items with the native todo tool and continue; do not create a duplicate commit, push, or prompt for either action.";
350
389
  /**
351
390
  * Orchestrator-only role assertion and delegation guidance. Applied only after an
352
391
  * operator explicitly activates the main orchestrator role via `bizar_apply_main_orchestrator_role`.
@@ -442,7 +481,7 @@ export default function bizarExtension(pi) {
442
481
  }
443
482
  }
444
483
  try {
445
- ensureBizarModelRoles(pi);
484
+ await ensureBizarModelRoles(pi, ctx.cwd ?? process.cwd());
446
485
  }
447
486
  catch (error) {
448
487
  ctx.ui?.notify(`Bizar could not apply its OMP settings; continuing without the failed setting update. ${error instanceof Error ? error.message : String(error)}`, "warning");
@@ -511,9 +550,9 @@ export default function bizarExtension(pi) {
511
550
  });
512
551
  pi.on("session_shutdown", async () => { releaseNativeLease(); binding = undefined; orchestratorActive = false; });
513
552
  pi.on("before_agent_start", event => ({
514
- systemPrompt: orchestratorActive
553
+ systemPrompt: appendUserIdentityInvariant(orchestratorActive
515
554
  ? applyOrchestratorPolicy(appendBizarInvariant(paramsOf(event).systemPrompt))
516
- : appendBizarInvariant(paramsOf(event).systemPrompt),
555
+ : appendBizarInvariant(paramsOf(event).systemPrompt)),
517
556
  }));
518
557
  // A002: managed task isolation/admission pre-execution gate.
519
558
  const BIZAR_PACKAGED_AGENTS = new Set([
@@ -771,7 +810,7 @@ export default function bizarExtension(pi) {
771
810
  });
772
811
  pi.registerTool({
773
812
  name: BIZAR_MODEL_ROLE_TOOL, label: "Bizar Apply Model Roles",
774
- description: "Validate an agent-decided Bizar model-role distribution against the live OMP catalog and persist it atomically; the whole mapping is refused when any selector is not a resolvable catalog entry, and a selector that only differs in casing is stored under the catalog's spelling.",
813
+ description: "Validate a proposed Bizar model-role distribution against the live OMP catalog and persist it atomically; the whole mapping is refused when any selector is not a resolvable catalog entry, and a selector that only differs in casing is stored under the catalog's spelling.",
775
814
  parameters: pi.zod.object({
776
815
  assignment: pi.zod.array(pi.zod.object({
777
816
  role: pi.zod.string(),
@@ -802,7 +841,7 @@ export default function bizarExtension(pi) {
802
841
  resolve,
803
842
  plan: planFromRecommendations(review, host.models),
804
843
  delta: diffCatalog(loadOmbSettings().modelCatalog, snapshot),
805
- source: "agent-evaluated distribution",
844
+ source: "catalog-evaluated distribution",
806
845
  });
807
846
  // A recommendation that only differed in casing is stored under the
808
847
  // catalog's own spelling; the repair is reported so the persisted mapping