@polderlabs/bizar-omp 0.4.0 → 0.4.1

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 (46) hide show
  1. package/README.md +28 -10
  2. package/dist/cli/agents.d.ts +6 -0
  3. package/dist/cli/agents.d.ts.map +1 -0
  4. package/dist/cli/agents.js +137 -0
  5. package/dist/cli/agents.js.map +1 -0
  6. package/dist/cli/doctor.d.ts +4 -4
  7. package/dist/cli/omb-invocation.d.ts +7 -0
  8. package/dist/cli/omb-invocation.d.ts.map +1 -0
  9. package/dist/cli/omb-invocation.js +27 -0
  10. package/dist/cli/omb-invocation.js.map +1 -0
  11. package/dist/cli/omb.js +10 -1
  12. package/dist/cli/omb.js.map +1 -1
  13. package/dist/extension.d.ts +3 -0
  14. package/dist/extension.d.ts.map +1 -1
  15. package/dist/extension.js +28 -4
  16. package/dist/extension.js.map +1 -1
  17. package/dist/omp/autonomous-settings.d.ts.map +1 -1
  18. package/dist/omp/autonomous-settings.js +6 -0
  19. package/dist/omp/autonomous-settings.js.map +1 -1
  20. package/dist/omp/compatibility.d.ts +5 -5
  21. package/dist/omp/compatibility.d.ts.map +1 -1
  22. package/dist/omp/compatibility.js +2 -2
  23. package/dist/omp/compatibility.js.map +1 -1
  24. package/dist/omp/model-role-assignment.d.ts +5 -0
  25. package/dist/omp/model-role-assignment.d.ts.map +1 -1
  26. package/dist/omp/model-role-assignment.js +18 -10
  27. package/dist/omp/model-role-assignment.js.map +1 -1
  28. package/dist/omp/omb-sessions.d.ts +18 -0
  29. package/dist/omp/omb-sessions.d.ts.map +1 -0
  30. package/dist/omp/omb-sessions.js +78 -0
  31. package/dist/omp/omb-sessions.js.map +1 -0
  32. package/dist/omp/tmux.d.ts +8 -3
  33. package/dist/omp/tmux.d.ts.map +1 -1
  34. package/dist/omp/tmux.js +97 -9
  35. package/dist/omp/tmux.js.map +1 -1
  36. package/docs/compatibility/baseline.json +28 -4
  37. package/docs/compatibility/supported-surfaces.json +30 -4
  38. package/docs/releases/0.4.1.md +13 -0
  39. package/docs/releases/native-stable.md +1 -1
  40. package/docs/releases/support-matrix.md +1 -1
  41. package/package.json +5 -2
  42. package/rules/bizar-native-omp.md +1 -0
  43. package/skills/bizar-omp/SKILL.md +6 -3
  44. package/skills/omp-native-development/SKILL.md +1 -1
  45. package/skills/omp-native-development/references/accuracy-and-versioning.md +2 -2
  46. package/skills/omp-native-development/references/source-manifest.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"model-role-assignment.d.ts","sourceRoot":"","sources":["../../src/omp/model-role-assignment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-role-assignment.d.ts","sourceRoot":"","sources":["../../src/omp/model-role-assignment.ts"],"names":[],"mappings":"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"}
@@ -44,15 +44,14 @@ export const BIZAR_ROLE_PROFILES = [
44
44
  { role: "bizar_verify", purpose: "reproducible checks and evidence", preference: "fast", minContextWindow: 32_000, requiresReasoning: true },
45
45
  { role: "bizar_docs", purpose: "documentation and release alignment", preference: "fast", minContextWindow: 32_000, requiresReasoning: false },
46
46
  ];
47
+ /**
48
+ * Kept as a small compatibility fallback for older OMP hosts that do not expose
49
+ * the native model catalog to extensions. Current OMP versions use the local
50
+ * planner instead, so `/bizar-models` does not spend a model turn on research.
51
+ */
47
52
  export const BIZAR_MODEL_ROLE_AGENT_PROMPT = [
48
- "Act as Bizar's model-role mapper and complete this operation without asking the user to do the analysis.",
49
- "First inspect the live OMP model catalog with the native model query or `omp models --json`; use only models returned by that catalog and preserve provider/model selectors exactly.",
50
- "Normalize catalog metadata defensively: thinking may be an array, scalar, structured object, or absent; never call .map unless the value is an array. Treat contextWindow, maxTokens, reasoning, input modalities, cost, provider, and model family as evidence, not assumptions.",
51
- "Assign every bizar_* role to the best available selector for its purpose: orchestrator/default coordination (balanced), advisor (strong and preferably an independent family), common work and docs (fast), hard/research/plan/architect/review/security (strong, large context, reasoning), build (balanced), and verify (fast, reasoning). Prefer independent model families for the advisor, review, and security roles when the catalog supports it.",
52
- "Build a complete mapping before writing settings. If a role has no eligible model, keep its existing selector, report it as unresolved, and do not silently substitute an invented or unresolvable model.",
53
- "Apply the complete mapping through OMP's native model-role settings surface. Preserve every non-Bizar role, provider order, credentials, model tags unrelated to Bizar, and all unrelated settings. Do not edit this plugin, project files, or credential files.",
54
- "Read back the modelRoles setting and resolve every Bizar selector through OMP's native resolver. If validation fails, restore only changes from this operation and report the exact failure.",
55
- "Finish with a concise table containing role, selector, rationale, alternatives, unresolved roles, and the read-back health result. Do not claim a role is assigned unless the native resolver confirms it.",
53
+ "Use OMP's current available model catalog now and assign the best resolvable model to each existing bizar_* role.",
54
+ "Preserve non-Bizar roles and unrelated settings, make no project or credential changes, and report only a compact role-to-selector table plus unresolved roles.",
56
55
  ].join(" ");
57
56
  const selectorFor = (model) => `${model.provider}/${model.id}`;
58
57
  const hasTextInput = (model) => !model.input || model.input.length === 0 || model.input.includes("text");
@@ -62,8 +61,17 @@ function thinkingLevels(value) {
62
61
  return value.filter((level) => typeof level === "string");
63
62
  if (typeof value === "string")
64
63
  return [value];
65
- if (value && typeof value === "object")
66
- return Object.keys(value);
64
+ if (value && typeof value === "object") {
65
+ const record = value;
66
+ for (const key of ["efforts", "levels"]) {
67
+ const levels = record[key];
68
+ if (Array.isArray(levels))
69
+ return levels.filter((level) => typeof level === "string");
70
+ }
71
+ if (record.effortMap && typeof record.effortMap === "object")
72
+ return Object.keys(record.effortMap);
73
+ return [record.minLevel, record.maxLevel].filter((level) => typeof level === "string");
74
+ }
67
75
  return [];
68
76
  }
69
77
  const maxThinkingRank = (model) => {
@@ -1 +1 @@
1
- {"version":3,"file":"model-role-assignment.js","sourceRoot":"","sources":["../../src/omp/model-role-assignment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-role-assignment.js","sourceRoot":"","sources":["../../src/omp/model-role-assignment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export declare const BIZAR_SESSION_PREFIX = "bizar-";
2
+ export type OmbSessionState = "attached" | "detached" | "dead";
3
+ export interface OmbSessionInfo {
4
+ name: string;
5
+ cwd: string;
6
+ project: string;
7
+ id: string;
8
+ state: OmbSessionState;
9
+ command: string;
10
+ pid: string;
11
+ createdAt?: number;
12
+ lastAttachedAt?: number;
13
+ }
14
+ /** Discover Bizar-owned tmux sessions without touching unrelated tmux sessions. */
15
+ export declare function listOmbSessions(cwd?: string, env?: NodeJS.ProcessEnv): Promise<OmbSessionInfo[]>;
16
+ /** Return the most recently attached live session for one exact project path. */
17
+ export declare function findLastOmbSession(cwd: string, env?: NodeJS.ProcessEnv): Promise<OmbSessionInfo | undefined>;
18
+ //# sourceMappingURL=omb-sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omb-sessions.d.ts","sourceRoot":"","sources":["../../src/omp/omb-sessions.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAsCD,mFAAmF;AACnF,wBAAsB,eAAe,CACnC,GAAG,SAAgB,EACnB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,cAAc,EAAE,CAAC,CAiD3B;AAED,iFAAiF;AACjF,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAKrC"}
@@ -0,0 +1,78 @@
1
+ import { spawn } from "node:child_process";
2
+ import { basename } from "node:path";
3
+ export const BIZAR_SESSION_PREFIX = "bizar-";
4
+ function exitCode(code, signal) {
5
+ if (code !== null)
6
+ return code;
7
+ return signal ? 1 : 1;
8
+ }
9
+ function readTmux(command, args, cwd, env) {
10
+ const child = spawn(command, args, { cwd, env, stdio: ["ignore", "pipe", "ignore"] });
11
+ let output = "";
12
+ child.stdout?.setEncoding("utf8");
13
+ child.stdout?.on("data", chunk => { output += chunk; });
14
+ return new Promise((resolve, reject) => {
15
+ child.once("error", reject);
16
+ child.once("close", (code, signal) => resolve({ code: exitCode(code, signal), output }));
17
+ });
18
+ }
19
+ function sessionId(name) {
20
+ const match = name.match(/-[a-f0-9]{10}(?:-(.*))?$/);
21
+ return match?.[1] || "main";
22
+ }
23
+ function parsePane(output) {
24
+ const [dead, cwd, command, pid] = output.trim().split("\t");
25
+ return {
26
+ dead: dead === "1",
27
+ cwd: cwd || "?",
28
+ command: command || "?",
29
+ pid: pid || "?",
30
+ };
31
+ }
32
+ /** Discover Bizar-owned tmux sessions without touching unrelated tmux sessions. */
33
+ export async function listOmbSessions(cwd = process.cwd(), env = process.env) {
34
+ const tmux = env.BIZAR_TMUX_BIN || "tmux";
35
+ const childEnv = { ...env, BIZAR_OMP_NO_TMUX: "1" };
36
+ const sessions = await readTmux(tmux, ["list-sessions", "-F", "#{session_name}\t#{session_created}\t#{session_last_attached}\t#{session_attached}"], cwd, childEnv);
37
+ if (sessions.code !== 0)
38
+ return [];
39
+ const names = sessions.output
40
+ .split("\n")
41
+ .map(line => line.trim())
42
+ .filter(Boolean)
43
+ .map(line => line.split("\t"))
44
+ .filter(parts => parts[0]?.startsWith(BIZAR_SESSION_PREFIX))
45
+ .map(parts => ({
46
+ name: parts[0],
47
+ createdAt: Number.isFinite(Number(parts[1])) ? Number(parts[1]) : undefined,
48
+ lastAttachedAt: Number.isFinite(Number(parts[2])) ? Number(parts[2]) : undefined,
49
+ attached: parts[3] !== "0",
50
+ }));
51
+ const records = await Promise.all(names.map(async (session) => {
52
+ const pane = await readTmux(tmux, ["list-panes", "-t", session.name, "-F", "#{pane_dead}\t#{pane_current_path}\t#{pane_current_command}\t#{pane_pid}"], cwd, childEnv);
53
+ const details = parsePane(pane.output);
54
+ return {
55
+ name: session.name,
56
+ cwd: details.cwd,
57
+ project: details.cwd === "?" ? session.name.slice(BIZAR_SESSION_PREFIX.length) : basename(details.cwd),
58
+ id: sessionId(session.name),
59
+ state: details.dead ? "dead" : session.attached ? "attached" : "detached",
60
+ command: details.command,
61
+ pid: details.pid,
62
+ createdAt: session.createdAt,
63
+ lastAttachedAt: session.lastAttachedAt,
64
+ };
65
+ }));
66
+ return records.sort((a, b) => {
67
+ const stateRank = (state) => state === "dead" ? 2 : state === "attached" ? 0 : 1;
68
+ return stateRank(a.state) - stateRank(b.state) || a.project.localeCompare(b.project) || a.name.localeCompare(b.name);
69
+ });
70
+ }
71
+ /** Return the most recently attached live session for one exact project path. */
72
+ export async function findLastOmbSession(cwd, env = process.env) {
73
+ const sessions = await listOmbSessions(cwd, env);
74
+ return sessions
75
+ .filter(session => session.cwd === cwd && session.state !== "dead")
76
+ .sort((a, b) => (b.lastAttachedAt ?? b.createdAt ?? 0) - (a.lastAttachedAt ?? a.createdAt ?? 0))[0];
77
+ }
78
+ //# sourceMappingURL=omb-sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omb-sessions.js","sourceRoot":"","sources":["../../src/omp/omb-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAgB7C,SAAS,QAAQ,CAAC,IAAmB,EAAE,MAA6B;IAClE,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,QAAQ,CACf,OAAe,EACf,IAAc,EACd,GAAW,EACX,GAAsB;IAEtB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtF,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACrD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;AAC9B,CAAC;AAED,SAAS,SAAS,CAAC,MAAc;IAC/B,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO;QACL,IAAI,EAAE,IAAI,KAAK,GAAG;QAClB,GAAG,EAAE,GAAG,IAAI,GAAG;QACf,OAAO,EAAE,OAAO,IAAI,GAAG;QACvB,GAAG,EAAE,GAAG,IAAI,GAAG;KAChB,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,GAAG,GAAsB,OAAO,CAAC,GAAG;IAEpC,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,IAAI,MAAM,CAAC;IAC1C,MAAM,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAC7B,IAAI,EACJ,CAAC,eAAe,EAAE,IAAI,EAAE,oFAAoF,CAAC,EAC7G,GAAG,EACH,QAAQ,CACT,CAAC;IACF,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM;SAC1B,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC7B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAC;SAC3D,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACb,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACd,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3E,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QAChF,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;KAC3B,CAAC,CAAC,CAAC;IAEN,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;QAC1D,MAAM,IAAI,GAAG,MAAM,QAAQ,CACzB,IAAI,EACJ,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,0EAA0E,CAAC,EACpH,GAAG,EACH,QAAQ,CACT,CAAC;QACF,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO,EAAE,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;YACtG,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;YAC3B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;YACzE,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;SACd,CAAC;IAC7B,CAAC,CAAC,CAAC,CAAC;IAEJ,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,SAAS,GAAG,CAAC,KAAsB,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClG,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAW,EACX,GAAG,GAAsB,OAAO,CAAC,GAAG;IAEpC,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjD,OAAO,QAAQ;SACZ,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC;SAClE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,CAAC"}
@@ -6,12 +6,17 @@ export interface TmuxLaunchEnvironment {
6
6
  }
7
7
  /** Whether `omb` should own this interactive terminal through tmux. */
8
8
  export declare function shouldLaunchOmbInTmux(options?: TmuxLaunchEnvironment): boolean;
9
- /** Stable per-project session name so subsequent `omb` calls reconnect safely. */
10
- export declare function ombSessionName(cwd: string): string;
9
+ /**
10
+ * Stable per-project session name so subsequent `omb` calls reconnect safely.
11
+ * A session id creates an additional durable session in the same project.
12
+ */
13
+ export declare function ombSessionName(cwd: string, sessionId?: string): string;
14
+ /** Attach to an existing Bizar session, switching the current tmux client when nested. */
15
+ export declare function attachOmbSession(session: string, cwd?: string, env?: NodeJS.ProcessEnv): Promise<number>;
11
16
  /**
12
17
  * Launch OMP from the shell boundary. OMP starts inside tmux before it probes
13
18
  * the terminal; no second OMP process is handed the same raw terminal during
14
19
  * startup.
15
20
  */
16
- export declare function launchOmb(cwd: string, args: string[], env?: NodeJS.ProcessEnv): Promise<number>;
21
+ export declare function launchOmb(cwd: string, args: string[], env?: NodeJS.ProcessEnv, sessionId?: string): Promise<number>;
17
22
  //# sourceMappingURL=tmux.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tmux.d.ts","sourceRoot":"","sources":["../../src/omp/tmux.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAYD,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAQlF;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIlD;AAOD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB5G"}
1
+ {"version":3,"file":"tmux.d.ts","sourceRoot":"","sources":["../../src/omp/tmux.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAYD,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAQlF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAMtE;AA+FD,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,GAAG,SAAgB,EACnB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAmBjB"}
package/dist/omp/tmux.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { spawn } from "node:child_process";
3
3
  import { basename } from "node:path";
4
+ import { findLastOmbSession } from "./omb-sessions.js";
4
5
  const NON_INTERACTIVE_FLAGS = new Set(["-p", "--print", "--export"]);
5
6
  const NON_INTERACTIVE_MODES = new Set(["json", "rpc", "rpc-ui", "acp"]);
6
7
  function modeOf(args) {
@@ -24,23 +25,110 @@ export function shouldLaunchOmbInTmux(options = {}) {
24
25
  return false;
25
26
  return true;
26
27
  }
27
- /** Stable per-project session name so subsequent `omb` calls reconnect safely. */
28
- export function ombSessionName(cwd) {
28
+ /**
29
+ * Stable per-project session name so subsequent `omb` calls reconnect safely.
30
+ * A session id creates an additional durable session in the same project.
31
+ */
32
+ export function ombSessionName(cwd, sessionId) {
29
33
  const label = basename(cwd).replace(/[^A-Za-z0-9_-]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 24) || "project";
30
34
  const digest = createHash("sha256").update(cwd).digest("hex").slice(0, 10);
31
- return `bizar-${label}-${digest}`.slice(0, 63);
35
+ const normalizedSessionId = sessionId?.trim().replace(/[^A-Za-z0-9_-]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 20) || "";
36
+ const suffix = normalizedSessionId ? `-${normalizedSessionId}` : "";
37
+ return `bizar-${label}-${digest}${suffix}`.slice(0, 63);
32
38
  }
33
39
  function exitCode(code, signal) {
34
40
  if (code !== null)
35
41
  return code;
36
42
  return signal ? 1 : 1;
37
43
  }
44
+ function runTmux(command, args, cwd, env) {
45
+ const child = spawn(command, args, { cwd, env, stdio: "ignore" });
46
+ return new Promise((resolve, reject) => {
47
+ child.once("error", reject);
48
+ child.once("close", (code, signal) => resolve(exitCode(code, signal)));
49
+ });
50
+ }
51
+ function readTmux(command, args, cwd, env) {
52
+ const child = spawn(command, args, { cwd, env, stdio: ["ignore", "pipe", "ignore"] });
53
+ let output = "";
54
+ child.stdout?.setEncoding("utf8");
55
+ child.stdout?.on("data", chunk => { output += chunk; });
56
+ return new Promise((resolve, reject) => {
57
+ child.once("error", reject);
58
+ child.once("close", (code, signal) => resolve({ code: exitCode(code, signal), output }));
59
+ });
60
+ }
61
+ async function launchInTmux(tmux, omp, session, cwd, args, env) {
62
+ const childEnv = { ...env, BIZAR_OMP_NO_TMUX: "1" };
63
+ const hasSession = await runTmux(tmux, ["has-session", "-t", session], cwd, childEnv);
64
+ if (hasSession !== 0) {
65
+ const created = await runTmux(tmux, ["new-session", "-d", "-s", session, "-c", cwd, omp, ...args], cwd, childEnv);
66
+ if (created !== 0) {
67
+ // A concurrent `omb` may have created the stable session between the
68
+ // probe and create calls. Continue only when that race is proven safe.
69
+ const racedIntoExisting = await runTmux(tmux, ["has-session", "-t", session], cwd, childEnv);
70
+ if (racedIntoExisting !== 0)
71
+ return created;
72
+ }
73
+ }
74
+ // Keep the respawn opportunity below for stale sessions, but do not leave
75
+ // remain-on-exit enabled: when OMP really exits, tmux should remove the
76
+ // pane/session instead of showing a permanent "Pane is dead" screen.
77
+ // Detaching the client leaves OMP alive, so durable work is unaffected.
78
+ const pane = await readTmux(tmux, ["list-panes", "-t", `${session}:0.0`, "-F", "#{pane_dead}"], cwd, childEnv);
79
+ if (pane.code !== 0)
80
+ return pane.code;
81
+ if (pane.output.trim() === "1") {
82
+ const respawned = await runTmux(tmux, ["respawn-pane", "-k", "-t", `${session}:0.0`, omp, ...args], cwd, childEnv);
83
+ if (respawned !== 0)
84
+ return respawned;
85
+ }
86
+ // Repair sessions created by older Bizar versions that enabled this option.
87
+ const remainOnExitOff = await runTmux(tmux, ["set-option", "-t", session, "remain-on-exit", "off"], cwd, childEnv);
88
+ if (remainOnExitOff !== 0)
89
+ return remainOnExitOff;
90
+ // tmux must own wheel events so the terminal scrolls the pane instead of
91
+ // translating them into up/down input for OMP's prompt-history editor.
92
+ const mouseEnabled = await runTmux(tmux, ["set-option", "-t", session, "mouse", "on"], cwd, childEnv);
93
+ if (mouseEnabled !== 0)
94
+ return mouseEnabled;
95
+ // Give this session a private root table so Ctrl-D disconnects the client
96
+ // without changing key behavior in the user's other tmux sessions. The
97
+ // normal Ctrl-B prefix still enters tmux's standard prefix table.
98
+ const keyTable = `${session}-bizar-root`;
99
+ const bindDetach = await runTmux(tmux, ["bind-key", "-T", keyTable, "C-d", "detach-client"], cwd, childEnv);
100
+ if (bindDetach !== 0)
101
+ return bindDetach;
102
+ const bindPrefix = await runTmux(tmux, ["bind-key", "-T", keyTable, "C-b", "switch-client", "-T", "prefix"], cwd, childEnv);
103
+ if (bindPrefix !== 0)
104
+ return bindPrefix;
105
+ const keyTableSet = await runTmux(tmux, ["set-option", "-t", session, "key-table", keyTable], cwd, childEnv);
106
+ if (keyTableSet !== 0)
107
+ return keyTableSet;
108
+ const client = spawn(tmux, ["attach-session", "-t", session], { cwd, env: childEnv, stdio: "inherit" });
109
+ return new Promise((resolve, reject) => {
110
+ client.once("error", reject);
111
+ client.once("close", (code, signal) => resolve(exitCode(code, signal)));
112
+ });
113
+ }
114
+ /** Attach to an existing Bizar session, switching the current tmux client when nested. */
115
+ export function attachOmbSession(session, cwd = process.cwd(), env = process.env) {
116
+ const tmux = env.BIZAR_TMUX_BIN || "tmux";
117
+ const args = env.TMUX || env.TMUX_PANE
118
+ ? ["switch-client", "-t", session]
119
+ : ["attach-session", "-t", session];
120
+ const child = spawn(tmux, args, { cwd, env: { ...env, BIZAR_OMP_NO_TMUX: "1" }, stdio: "inherit" });
121
+ return new Promise((resolve, reject) => {
122
+ child.once("error", reject);
123
+ child.once("close", (code, signal) => resolve(exitCode(code, signal)));
124
+ });
125
+ }
38
126
  /**
39
127
  * Launch OMP from the shell boundary. OMP starts inside tmux before it probes
40
128
  * the terminal; no second OMP process is handed the same raw terminal during
41
129
  * startup.
42
130
  */
43
- export function launchOmb(cwd, args, env = process.env) {
131
+ export async function launchOmb(cwd, args, env = process.env, sessionId) {
44
132
  const useTmux = shouldLaunchOmbInTmux({
45
133
  args,
46
134
  env,
@@ -49,11 +137,11 @@ export function launchOmb(cwd, args, env = process.env) {
49
137
  });
50
138
  const tmux = env.BIZAR_TMUX_BIN || "tmux";
51
139
  const omp = env.BIZAR_OMP_BIN || "omp";
52
- const session = ombSessionName(cwd);
53
- const command = useTmux ? tmux : omp;
54
- const childArgs = useTmux ? ["new-session", "-A", "-s", session, "-c", cwd, "omp", ...args] : args;
55
- const childEnv = useTmux ? { ...env, BIZAR_OMP_NO_TMUX: "1" } : env;
56
- const child = spawn(command, childArgs, { cwd, env: childEnv, stdio: "inherit" });
140
+ const lastSession = useTmux && !sessionId ? await findLastOmbSession(cwd, env) : undefined;
141
+ const session = lastSession?.name ?? ombSessionName(cwd, sessionId);
142
+ if (useTmux)
143
+ return launchInTmux(tmux, omp, session, cwd, args, env);
144
+ const child = spawn(omp, args, { cwd, env, stdio: "inherit" });
57
145
  return new Promise((resolve, reject) => {
58
146
  child.once("error", reject);
59
147
  child.once("close", (code, signal) => resolve(exitCode(code, signal)));
@@ -1 +1 @@
1
- {"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../src/omp/tmux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tmux.js","sourceRoot":"","sources":["../../src/omp/tmux.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,32 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "researchDate": "2026-09-18",
4
- "bizarReference": { "repository": "../BizarHarness", "commit": "e13aa131bdcd368548118464f0da1bace302e64b", "role": "reference-only" },
5
- "omp": { "repository": "https://github.com/can1357/oh-my-pi", "testedVersion": "18.2.5", "testedCommit": "37273117021129e96bd05d8277b140ec3fd61990", "previouslyQualifiedVersions": ["18.2.4"], "researchedMainCommit": "dbf3afad4894bde827d90f965e77b3fe1c5a95e5", "releaseVersionSeenInResearch": "18.2.5", "releaseCommitSeenInResearch": "37273117021129e96bd05d8277b140ec3fd61990", "qualification": "The npm package was tested at 18.2.5 with integrity sha512-w9CPGYQHlXhlnjfpQkvLIxdwFHU1oQU7a291EHMxn779iQ2r97IIQlxwLG7HOFwdt7RTjAniTYnNSQmiBUuVBA==; 18.2.4 remains a separately qualified compatibility version. Package version alone does not prove source commit identity." },
6
- "bun": { "minimum": "1.3.14", "probe": "bun --version is required during release qualification" },
7
- "package": { "name": "@polderlabs/bizar-omp", "version": "0.4.0", "integrity": "computed by npm pack in CI", "extensionEntry": "dist/extension.js" }
4
+ "bizarReference": {
5
+ "repository": "../BizarHarness",
6
+ "commit": "e13aa131bdcd368548118464f0da1bace302e64b",
7
+ "role": "reference-only"
8
+ },
9
+ "omp": {
10
+ "repository": "https://github.com/can1357/oh-my-pi",
11
+ "testedVersion": "18.2.6",
12
+ "testedCommit": "78b753124d11f8dd3ae73e2524125890ff7c977e",
13
+ "previouslyQualifiedVersions": [
14
+ "18.2.4",
15
+ "18.2.5"
16
+ ],
17
+ "researchedMainCommit": "dbf3afad4894bde827d90f965e77b3fe1c5a95e5",
18
+ "releaseVersionSeenInResearch": "18.2.6",
19
+ "releaseCommitSeenInResearch": "78b753124d11f8dd3ae73e2524125890ff7c977e",
20
+ "qualification": "The npm package was tested at 18.2.6 with integrity sha512-dk298PZNnD1QigR4lKvQpWVAAbIo2bCfdNOlZwGFZsxHbP+XYrUS+AxYxfWkfqSnFRliP9Ho+h94DHV3o6lxRg==; 18.2.5 and 18.2.4 remain separately qualified compatibility versions. Package version alone does not prove source commit identity."
21
+ },
22
+ "bun": {
23
+ "minimum": "1.3.14",
24
+ "probe": "bun --version is required during release qualification"
25
+ },
26
+ "package": {
27
+ "name": "@polderlabs/bizar-omp",
28
+ "version": "0.4.1",
29
+ "integrity": "computed by npm pack in CI",
30
+ "extensionEntry": "dist/extension.js"
31
+ }
8
32
  }
@@ -1,7 +1,33 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "supported": ["omp extension factory", "native slash command", "native tools", "headless CLI", "JSONL workflow journal", "host-observed verification", "serialized integration admission", "dry-run migration"],
4
- "qualified": ["OMP 18.2.5 / release commit 37273117021129e96bd05d8277b140ec3fd61990", "OMP 18.2.4 compatibility regression", "Node 22 and 24 CI", "Bun 1.3.14 compatibility CI"],
5
- "not_claimed": ["OS sandboxing", "provider model quality", "automatic application of worker changes", "live task/eval child completion without a host OMP session", "Claude Code/AO compatibility"],
6
- "native_contract": { "extension_load": "registration-only", "tool_executor": "five arguments", "command_handler": "args and context", "manifest": "omp.extensions" }
3
+ "supported": [
4
+ "omp extension factory",
5
+ "native slash command",
6
+ "native tools",
7
+ "headless CLI",
8
+ "JSONL workflow journal",
9
+ "host-observed verification",
10
+ "serialized integration admission",
11
+ "dry-run migration"
12
+ ],
13
+ "qualified": [
14
+ "OMP 18.2.6 / release commit 78b753124d11f8dd3ae73e2524125890ff7c977e",
15
+ "OMP 18.2.5 compatibility regression",
16
+ "OMP 18.2.4 compatibility regression",
17
+ "Node 22 and 24 CI",
18
+ "Bun 1.3.14 compatibility CI"
19
+ ],
20
+ "not_claimed": [
21
+ "OS sandboxing",
22
+ "provider model quality",
23
+ "automatic application of worker changes",
24
+ "live task/eval child completion without a host OMP session",
25
+ "Claude Code/AO compatibility"
26
+ ],
27
+ "native_contract": {
28
+ "extension_load": "registration-only",
29
+ "tool_executor": "five arguments",
30
+ "command_handler": "args and context",
31
+ "manifest": "omp.extensions"
32
+ }
7
33
  }
@@ -0,0 +1,13 @@
1
+ # 0.4.1
2
+
3
+ ## Highlights
4
+
5
+ - Qualifies the plugin against OMP 18.2.6 at release commit 78b753124d11f8dd3ae73e2524125890ff7c977e.
6
+ - Keeps OMP 18.2.5 as a separately tested compatibility version.
7
+ - Updates CI, release qualification, installation diagnostics, and the native-development skill fingerprint.
8
+ - Adds the `omb agents` cross-project session hub for attaching to and dispatching durable sessions.
9
+ - Adds `omb new` plus last-active-session reconnect behavior for concurrent sessions in one directory.
10
+
11
+ ## Validation
12
+
13
+ The automated OMP compatibility workflow opens this release PR only after the packed native install qualification passes.
@@ -1,3 +1,3 @@
1
1
  # Native release policy
2
2
 
3
- The package is releasable when typecheck, tests, packed-install qualification, and documentation checks pass against the supported OMP/Bun baseline. A GitHub release is created from an exact `v<version>` tag; npm publication uses trusted publishing. See npm-publishing.md for setup and 0.4.0.md for the current release notes. A passing release gate does not imply every native provider or worker route has been tested.
3
+ The package is releasable when typecheck, tests, packed-install qualification, and documentation checks pass against the supported OMP/Bun baseline. A GitHub release is created from an exact `v<version>` tag; npm publication uses trusted publishing. See npm-publishing.md for setup and 0.4.1.md for the current release notes. A passing release gate does not imply every native provider or worker route has been tested.
@@ -4,7 +4,7 @@
4
4
  | --- | --- |
5
5
  | Node | 22.x and 24.x in CI |
6
6
  | Bun | 1.3.14 compatibility job |
7
- | OMP | 18.2.5 at release commit `37273117021129e96bd05d8277b140ec3fd61990`; 18.2.4 remains regression-qualified |
7
+ | OMP | 18.2.6 at release commit `78b753124d11f8dd3ae73e2524125890ff7c977e`; 18.2.5 and 18.2.4 remain regression-qualified |
8
8
  | Install | `omp plugin link <checkout>` and `omp plugin install <package-spec>` are the intended host paths |
9
9
  | Security | Trusted in-process extension; native task isolation required for managed editing |
10
10
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polderlabs/bizar-omp",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Native oh-my-pi engineering workflow extension with typed evidence and serialized integration.",
5
5
  "type": "module",
6
6
  "engines": {
@@ -53,7 +53,10 @@
53
53
  "url": "https://github.com/PolderLabsVOF/BizarHarness-OMP.git"
54
54
  },
55
55
  "license": "MIT",
56
- "publishConfig": { "access": "public", "registry": "https://registry.npmjs.org/" },
56
+ "publishConfig": {
57
+ "access": "public",
58
+ "registry": "https://registry.npmjs.org/"
59
+ },
57
60
  "devDependencies": {
58
61
  "@types/node": "^26.5.1",
59
62
  "typescript": "^7.0.2",
@@ -2,6 +2,7 @@
2
2
 
3
3
  - Register extension handlers during factory load; perform actions from lifecycle, command, or tool execution.
4
4
  - Use OMP's native task/eval and model/auth surfaces; do not create a second worker runtime.
5
+ - Treat the Agent Hub as the roster of active task sessions, not a catalog of every installed role; do not spawn idle specialists merely to make them visible.
5
6
  - Do not treat OMP extension code as sandboxed.
6
7
  - Treat lifecycle hook payloads and model/tool output as untrusted data; never persist credentials or blindly execute generated paths.
7
8
  - Use `omp.extensions` in the package manifest and qualify exact runtime baselines.
@@ -34,7 +34,7 @@ Escalate when the scope grows, a check fails, the cause is uncertain, generated
34
34
 
35
35
  - `/bizar run <objective>` starts a bounded Bizar workflow.
36
36
  - `/bizar status`, `/bizar next`, `/bizar evidence`, and `/bizar cancel` inspect or advance that workflow.
37
- - `/bizar-models` asks the active agent to inspect the live OMP model catalog, assign the best available models to every `bizar_*` role, validate native resolution, preserve unrelated roles, and report unresolved roles. Never invent a provider/model selector.
37
+ - `/bizar-models` scans OMP's live authenticated model catalog locally, assigns the best available models to every `bizar_*` role, validates native resolution, preserves unrelated roles, and reports a compact mapping. It does not start a planning/research agent turn. Never invent a provider/model selector.
38
38
  - `/bizar-models health` validates configured Bizar selectors without changing settings.
39
39
 
40
40
  The semantic roles include `bizar_orchestrator` for the main conversation and `bizar_advisor` for independent passive review, alongside coordination, common work, hard work, research, planning, architecture, implementation, review, security, verification, and documentation. OMP's native Advisor is enabled by default and resolves through the native `advisor` role; Bizar exposes `bizar_advisor` as a visible, assignable alias. Use the role that matches the work; do not assume a role is available until OMP resolves its selector.
@@ -42,8 +42,11 @@ The semantic roles include `bizar_orchestrator` for the main conversation and `b
42
42
  ## Launcher contract
43
43
 
44
44
  - `omp` is the normal direct OMP launcher. Bizar must not take over its terminal or start tmux from an extension callback.
45
- - `omb` is the explicit durable launcher supplied by this package. It starts OMP inside a stable per-project tmux session from the first process, so terminal probes and raw input have one owner. Re-running `omb` reconnects to that project session.
46
- - `omb` avoids nested tmux sessions and runs noninteractive modes directly. Detach with `Ctrl-b d`; closing the client does not stop the tmux host.
45
+ - `omb` is the explicit durable launcher supplied by this package. It starts OMP inside tmux from the first process, so terminal probes and raw input have one owner. Plain `omb` reconnects to the most recently active live Bizar session in the current directory, or creates that directory's stable default session when none exists.
46
+ - `omb new [initial message]` always creates a fresh session. `omb --session <id>` creates or reconnects to an additional named session, and `omb --new` creates a generated session id. `omb agents` opens the compact cross-project session hub. In that hub, Enter attaches, `n` dispatches a new project/task session, Up/Down or `j`/`k` selects, `r` refreshes, and `q` exits. The hub only inspects Bizar-owned tmux sessions and does not replace OMP's native Agent Hub.
47
+ - `omb` enables tmux mouse mode so wheel scrolling stays in the pane instead of becoming prompt-history input. It avoids nested tmux sessions and runs noninteractive modes directly. `Ctrl-d` and `Ctrl-b d` detach the client; the `Ctrl-d` binding is private to the Bizar session. If the host pane exits, a later `omb` respawns the dead pane before reconnecting. Closing the client does not stop the tmux host.
48
+
49
+ The install preset enables asynchronous task execution and sets `display.pinnedAgents=full`, so every active task agent is visible in the live session and Agent Hub. Role definitions are not live sessions and are not spawned at install time; only agents actually delegated by the orchestrator appear in the hub. It also hides thinking blocks and model tool activity (`hideThinkingBlock` and `display.hideToolActivity`) while preserving the model's reasoning and task execution.
47
50
 
48
51
  Do not implement a second handoff, detached helper, or terminal-owning background loop in response to a task. Use OMP's native Agent Hub, task system, Collab, and session controls for background work.
49
52
 
@@ -9,7 +9,7 @@ Treat this skill as a source-grounded engineering procedure, not an assertion of
9
9
 
10
10
  ## Establish the target before implementing
11
11
 
12
- Read [accuracy-and-versioning.md](references/accuracy-and-versioning.md) first. The current qualification target is `can1357/oh-my-pi` v18.2.5 at commit `37273117021129e96bd05d8277b140ec3fd61990`; OMP 18.2.4 remains a separately tested compatibility version. The bundled research corpus remains pinned to main commit `dbf3afad4894bde827d90f965e77b3fe1c5a95e5`, dated 2026-09-17, and must not be presented as the current release source.
12
+ Read [accuracy-and-versioning.md](references/accuracy-and-versioning.md) first. The current qualification target is `can1357/oh-my-pi` v18.2.6 at commit `78b753124d11f8dd3ae73e2524125890ff7c977e`; OMP 18.2.5 and 18.2.4 remain separately tested compatibility versions. The bundled research corpus remains pinned to main commit `dbf3afad4894bde827d90f965e77b3fe1c5a95e5`, dated 2026-09-17, and must not be presented as the current release source.
13
13
 
14
14
  Record the developer's actual OMP package version, lockfile/integrity, source commit when available, Bun version, execution mode, profile, cwd, and relevant settings. Never print secrets. Verify the exact exports and behavior of that target, rather than assuming these snapshots apply unchanged. A missing environment or unrun test means UNKNOWN or NOT RUN, never PASS.
15
15
 
@@ -18,8 +18,8 @@ Separate five kinds of statement: DOCUMENTED, SOURCE-OBSERVED, TESTED, PROPOSED
18
18
 
19
19
  ## Target fingerprint
20
20
 
21
- Current qualification target: `v18.2.5@37273117021129e96bd05d8277b140ec3fd61990`, npm integrity `sha512-w9CPGYQHlXhlnjfpQkvLIxdwFHU1oQU7a291EHMxn779iQ2r97IIQlxwLG7HOFwdt7RTjAniTYnNSQmiBUuVBA==`.
22
- Previous compatibility target: `v18.2.4@1c0303b1f2ec515cbf4b44a9a49d68a029531aac`.
21
+ Current qualification target: `v18.2.6@78b753124d11f8dd3ae73e2524125890ff7c977e`, npm integrity `sha512-dk298PZNnD1QigR4lKvQpWVAAbIo2bCfdNOlZwGFZsxHbP+XYrUS+AxYxfWkfqSnFRliP9Ho+h94DHV3o6lxRg==`.
22
+ Previous compatibility targets: `v18.2.5@37273117021129e96bd05d8277b140ec3fd61990` and `v18.2.4@1c0303b1f2ec515cbf4b44a9a49d68a029531aac`.
23
23
  Research source: `can1357/oh-my-pi@dbf3afad4894bde827d90f965e77b3fe1c5a95e5`; it remains a source/documentation corpus pin, not a claim about the current package release. Compare artifacts/commits, not just a semver string.
24
24
 
25
25
  Record the installed package name/version, lockfile integrity or binary checksum, source SHA when available, Bun version, OS/architecture, execution mode, profile, agent directory, cwd, project settings and overlays. Include which facts are unavailable. Do not assert an installed binary's source commit solely because its version matches a Git tag.