@polderlabs/bizar-omp 0.4.1 → 0.4.3

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 +137 -58
  2. package/dist/cli/agents-ink.d.ts +24 -0
  3. package/dist/cli/agents-ink.d.ts.map +1 -0
  4. package/dist/cli/agents-ink.js +297 -0
  5. package/dist/cli/agents-ink.js.map +1 -0
  6. package/dist/cli/agents.d.ts +10 -2
  7. package/dist/cli/agents.d.ts.map +1 -1
  8. package/dist/cli/agents.js +137 -90
  9. package/dist/cli/agents.js.map +1 -1
  10. package/dist/cli/directory-selector.d.ts +19 -0
  11. package/dist/cli/directory-selector.d.ts.map +1 -0
  12. package/dist/cli/directory-selector.js +103 -0
  13. package/dist/cli/directory-selector.js.map +1 -0
  14. package/dist/cli/install.d.ts +6 -2
  15. package/dist/cli/install.d.ts.map +1 -1
  16. package/dist/cli/install.js +21 -6
  17. package/dist/cli/install.js.map +1 -1
  18. package/dist/cli/main.js +46 -5
  19. package/dist/cli/main.js.map +1 -1
  20. package/dist/cli/omb.js +9 -1
  21. package/dist/cli/omb.js.map +1 -1
  22. package/dist/cli/setup-ui.d.ts +38 -0
  23. package/dist/cli/setup-ui.d.ts.map +1 -0
  24. package/dist/cli/setup-ui.js +90 -0
  25. package/dist/cli/setup-ui.js.map +1 -0
  26. package/dist/omp/omb-sessions.d.ts +12 -0
  27. package/dist/omp/omb-sessions.d.ts.map +1 -1
  28. package/dist/omp/omb-sessions.js +148 -1
  29. package/dist/omp/omb-sessions.js.map +1 -1
  30. package/dist/omp/omb-settings.d.ts +10 -0
  31. package/dist/omp/omb-settings.d.ts.map +1 -0
  32. package/dist/omp/omb-settings.js +34 -0
  33. package/dist/omp/omb-settings.js.map +1 -0
  34. package/dist/omp/tmux.d.ts +6 -0
  35. package/dist/omp/tmux.d.ts.map +1 -1
  36. package/dist/omp/tmux.js +46 -10
  37. package/dist/omp/tmux.js.map +1 -1
  38. package/docs/assets/bizar-omp-banner.svg +20 -0
  39. package/docs/assets/sponsored-by-polderlabs.svg +9 -0
  40. package/docs/compatibility/baseline.json +1 -1
  41. package/docs/releases/0.4.2.md +9 -0
  42. package/docs/releases/0.4.3.md +6 -0
  43. package/docs/releases/native-stable.md +1 -1
  44. package/docs/releases/support-matrix.md +1 -1
  45. package/package.json +6 -1
  46. package/skills/bizar-omp/SKILL.md +4 -2
@@ -34,7 +34,7 @@ function restrictions(current) {
34
34
  note: "Explicit tool/bash policies and project overrides are preserved and may still prompt or deny. Model credentials remain managed by OMP; use /login and /model if needed.",
35
35
  };
36
36
  }
37
- export function installWithHost(host, root, dryRun = false) {
37
+ export function installWithHost(host, root, dryRun = false, pluginSpec) {
38
38
  const version = host(["--version"]).trim();
39
39
  if (!isQualifiedOmpVersion(version))
40
40
  throw new Error(`This build is tested with OMP ${QUALIFIED_OMP_VERSIONS.join(" or ")}; found ${version}`);
@@ -51,24 +51,39 @@ export function installWithHost(host, root, dryRun = false) {
51
51
  if (previous?.status === "pending")
52
52
  throw new Error("An install was interrupted. Run bizar-omp uninstall to restore its recorded changes before retrying.");
53
53
  const changes = Object.entries(desired).filter(([key, value]) => !equal(current[key], value));
54
- const report = { ok: true, dryRun, config, packageRoot: root, settings: changes.map(([key, value]) => ({ key, before: current[key], after: value })), ...restrictions(current) };
54
+ const report = { ok: true, dryRun, config, packageRoot: root, ...(pluginSpec ? { pluginSpec } : {}), settings: changes.map(([key, value]) => ({ key, before: current[key], after: value })), ...restrictions(current) };
55
55
  if (dryRun)
56
56
  return report;
57
57
  mkdirSync(config, { recursive: true, mode: 0o700 });
58
58
  const lockPath = join(config, ".bizar-install.lock");
59
59
  const lock = openSync(lockPath, "wx", 0o600);
60
60
  const receipt = previous?.status === "installed" ? structuredClone(previous) : { schema: 1, packageRoot: root, version: "", status: "pending", settings: {} };
61
- receipt.packageRoot = root;
61
+ let managedPackageRoot = root;
62
62
  receipt.version = JSON.parse(readFileSync(join(root, "package.json"), "utf8")).version;
63
63
  receipt.status = "pending";
64
64
  try {
65
+ if (pluginSpec) {
66
+ const installed = JSON.parse(host(["plugin", "install", pluginSpec, "--json"]));
67
+ if (installed.name !== PACKAGE || installed.enabled !== true)
68
+ throw new Error("OMP did not install and enable the requested Bizar plugin");
69
+ const listed = JSON.parse(host(["plugin", "list", "--json"]));
70
+ const plugin = listed.npm?.find((entry) => entry.name === PACKAGE && entry.enabled === true);
71
+ if (!plugin)
72
+ throw new Error("OMP did not expose the enabled Bizar plugin after installation");
73
+ if (typeof plugin.path === "string" && plugin.path)
74
+ managedPackageRoot = plugin.path;
75
+ else if (typeof installed.path === "string" && installed.path)
76
+ managedPackageRoot = installed.path;
77
+ }
78
+ receipt.packageRoot = managedPackageRoot;
65
79
  // Write-ahead receipt makes interruption recoverable without replacing unrelated configuration.
66
80
  for (const [key, applied] of changes)
67
81
  receipt.settings[key] = { before: Object.hasOwn(receipt.settings, key) ? receipt.settings[key].before : current[key], applied };
68
82
  saveReceipt(receiptPath, receipt);
69
83
  for (const [key, applied] of changes)
70
84
  set(host, key, applied);
71
- host(["plugin", "link", root, "--json"]);
85
+ if (!pluginSpec)
86
+ host(["plugin", "link", root, "--json"]);
72
87
  const installed = JSON.parse(host(["plugin", "list", "--json"]));
73
88
  if (!installed.npm?.some((plugin) => plugin.name === PACKAGE && plugin.enabled))
74
89
  throw new Error("OMP did not discover the enabled Bizar plugin");
@@ -77,7 +92,7 @@ export function installWithHost(host, root, dryRun = false) {
77
92
  throw new Error("OMP settings read-back did not match the autonomous preset");
78
93
  receipt.status = "installed";
79
94
  saveReceipt(receiptPath, receipt);
80
- return { ...report, version: receipt.version, receipt: receiptPath, restartRequired: true };
95
+ return { ...report, packageRoot: receipt.packageRoot, version: receipt.version, receipt: receiptPath, restartRequired: true };
81
96
  }
82
97
  catch (error) {
83
98
  throw new Error(`Install incomplete: ${error instanceof Error ? error.message : error}. Recovery is recorded at ${receiptPath}; run bizar-omp uninstall before retrying.`, { cause: error });
@@ -137,7 +152,7 @@ export function manageInstallation(action, options = {}) {
137
152
  const host = args => execFileSync(options.omp ?? "omp", args, { cwd: scratch, env, encoding: "utf8", timeout: 60000, maxBuffer: 4 * 1024 * 1024, stdio: ["ignore", "pipe", "pipe"] });
138
153
  try {
139
154
  if (action === "install")
140
- return installWithHost(host, options.root ?? packageRoot, options.dryRun);
155
+ return installWithHost(host, options.root ?? packageRoot, options.dryRun, options.pluginSpec);
141
156
  if (action === "uninstall")
142
157
  return uninstallWithHost(host, options.dryRun);
143
158
  return installationDoctor(host);
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"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"}
package/dist/cli/main.js CHANGED
@@ -1,4 +1,6 @@
1
1
  #!/usr/bin/env node
2
+ import { execFileSync } from "node:child_process";
3
+ import { readFileSync } from "node:fs";
2
4
  import { makePlan } from "../workflows/plan.js";
3
5
  import { doctor } from "./doctor.js";
4
6
  import { startRun } from "./run.js";
@@ -7,19 +9,25 @@ import { repositoryIdentity, statePath } from "../storage/repository-identity.js
7
9
  import { Journal } from "../storage/journal.js";
8
10
  import { runVerification } from "../tools/verify.js";
9
11
  import { bindSession } from "../omp/lifecycle.js";
10
- import { manageInstallation } from "./install.js";
12
+ import { manageInstallation, packageRoot } from "./install.js";
13
+ import { SetupUi, setupUiEnabled } from "./setup-ui.js";
11
14
  const args = process.argv.slice(2);
12
15
  const command = args.shift() ?? "doctor";
13
16
  const cwd = process.cwd();
14
17
  const objective = (text) => ({ objective: text, nonGoals: [], constraints: [], acceptanceCriteria: ["The stated objective is satisfied"], verificationPlan: ["Run the repository proving checks"], stopConditions: ["A required check fails or becomes stale"], userRestrictions: [] });
18
+ let setupUiForError;
15
19
  async function main() {
16
20
  let output;
17
- if (["install", "uninstall", "install-doctor"].includes(command)) {
21
+ let setupUi;
22
+ const humanSetup = command === "setup" && !args.includes("--json");
23
+ if (["install", "uninstall", "install-doctor", "setup"].includes(command)) {
18
24
  const options = {};
19
25
  while (args.length) {
20
26
  const flag = args.shift();
21
27
  if (flag === "--dry-run")
22
28
  options.dryRun = true;
29
+ else if (flag === "--json")
30
+ options.json = true;
23
31
  else if (flag === "--profile" || flag === "--omp") {
24
32
  const value = args.shift();
25
33
  if (!value || value.startsWith("--"))
@@ -29,7 +37,34 @@ async function main() {
29
37
  else
30
38
  throw new Error(`Unknown option: ${flag}`);
31
39
  }
32
- output = manageInstallation(command, options);
40
+ if (command === "setup") {
41
+ const version = JSON.parse(readFileSync(`${packageRoot}/package.json`, "utf8")).version;
42
+ const packageSpec = `@polderlabs/bizar-omp@${version}`;
43
+ setupUi = humanSetup ? new SetupUi({ color: setupUiEnabled() }) : undefined;
44
+ setupUiForError = setupUi;
45
+ setupUi?.header({ version, packageSpec, profile: options.profile, omp: options.omp, dryRun: options.dryRun });
46
+ setupUi?.phase(1, "CLI commands", options.dryRun ? "checking the package plan" : "installing omb and bizar-omp globally");
47
+ if (!options.dryRun)
48
+ execFileSync("npm", ["install", "--global", packageSpec], { stdio: "ignore" });
49
+ setupUi?.success(options.dryRun ? "Global command install skipped" : "CLI commands installed", options.dryRun ? "dry run" : "omb and bizar-omp are on PATH");
50
+ setupUi?.phase(2, "OMP plugin", options.dryRun ? "previewing plugin registration" : "registering and enabling the extension");
51
+ setupUi?.phase(3, "Autonomous preset", options.dryRun ? "previewing safe setting changes" : "applying Bizar defaults and preserving policies");
52
+ output = manageInstallation("install", { ...options, pluginSpec: packageSpec });
53
+ const report = output;
54
+ if (options.dryRun) {
55
+ setupUi?.success("Installation plan generated", `${report.settings?.length ?? 0} setting changes detected`);
56
+ }
57
+ else {
58
+ setupUi?.success("OMP plugin registered", "extension and native assets enabled");
59
+ setupUi?.success("Autonomous preset applied", `${report.settings?.length ?? 0} setting changes applied`);
60
+ setupUi?.phase(4, "Verification", "checking plugin discovery and recovery state");
61
+ setupUi?.success("Installation verified", report.receipt ? "recovery receipt written" : "configuration read back");
62
+ }
63
+ setupUi?.finish(report, { version, packageSpec, profile: options.profile, omp: options.omp, dryRun: options.dryRun });
64
+ }
65
+ else {
66
+ output = manageInstallation(command, options);
67
+ }
33
68
  if (!output.ok)
34
69
  process.exitCode = 1;
35
70
  }
@@ -59,18 +94,24 @@ async function main() {
59
94
  else if (command === "migrate")
60
95
  output = migrationReport(args.shift() || "../BizarHarness", args.includes("--apply"));
61
96
  else if (command === "help")
62
- output = { commands: ["install [--profile NAME] [--omp PATH] [--dry-run]", "install-doctor [--profile NAME]", "uninstall [--profile NAME] [--dry-run]", "doctor", "plan", "run", "status", "verify", "migrate", "cancel"] };
97
+ output = { commands: ["setup [--profile NAME] [--omp PATH] [--dry-run] [--json]", "install [--profile NAME] [--omp PATH] [--dry-run]", "install-doctor [--profile NAME]", "uninstall [--profile NAME] [--dry-run]", "doctor", "plan", "run", "status", "verify", "migrate", "cancel"] };
63
98
  else {
64
99
  process.exitCode = 2;
65
100
  output = { error: `Unknown command: ${command}` };
66
101
  }
102
+ if (humanSetup)
103
+ return;
67
104
  process.stdout.write(`${JSON.stringify(output, null, 2)}\n`);
68
105
  }
69
106
  try {
70
107
  await main();
71
108
  }
72
109
  catch (error) {
73
- process.stderr.write(`${JSON.stringify({ ok: false, error: error instanceof Error ? error.message : String(error) })}\n`);
110
+ const message = error instanceof Error ? error.message : String(error);
111
+ if (setupUiForError)
112
+ setupUiForError.failure(`Setup failed: ${message}`);
113
+ else
114
+ process.stderr.write(`${JSON.stringify({ ok: false, error: message })}\n`);
74
115
  process.exitCode = 1;
75
116
  }
76
117
  //# sourceMappingURL=main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAAC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,QAAQ,CAAC;AAAC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AACxG,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,kBAAkB,EAAE,CAAC,mCAAmC,CAAC,EAAE,gBAAgB,EAAE,CAAC,mCAAmC,CAAC,EAAE,cAAc,EAAE,CAAC,yCAAyC,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;AAChS,KAAK,UAAU,IAAI;IACjB,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjE,MAAM,OAAO,GAAyD,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,IAAI,KAAK,WAAW;gBAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;iBAC3C,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBAAC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;gBAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;gBAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;YAAC,CAAC;;gBAC3N,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,GAAG,kBAAkB,CAAC,OAAqD,EAAE,OAAO,CAAC,CAAC;QAC5F,IAAI,CAAE,MAA0B,CAAC,EAAE;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC5D,CAAC;SACI,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAAC,IAAI,CAAE,MAA0B,CAAC,EAAE;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IAAC,CAAC;SAC9G,IAAI,OAAO,KAAK,MAAM;QAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,2BAA2B,CAAC,CAAC,CAAC;SACpG,IAAI,OAAO,KAAK,KAAK;QAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC,EAAE,GAAG,CAAC,CAAC;SACvG,IAAI,OAAO,KAAK,QAAQ;QAAE,MAAM,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SAC9F,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAAC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAAC,IAAI,KAAK,CAAC,GAAG;YAAE,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,uBAAuB,EAAE,EAAE,UAAU,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAAC,CAAC;SAChY,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAAC,MAAM,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IAAC,CAAC;SACpO,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;SACjH,IAAI,OAAO,KAAK,MAAM;QAAE,MAAM,GAAG,EAAE,QAAQ,EAAE,CAAC,mDAAmD,EAAE,iCAAiC,EAAE,wCAAwC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;SACpP,CAAC;QAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QAAC,MAAM,GAAG,EAAE,KAAK,EAAE,oBAAoB,OAAO,EAAE,EAAE,CAAC;IAAC,CAAC;IACjF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;AACD,IAAI,CAAC;IAAC,MAAM,IAAI,EAAE,CAAC;AAAC,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAAC,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
package/dist/cli/omb.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { runAgentsHub } from "./agents.js";
3
3
  import { parseOmbCommand } from "./omb-invocation.js";
4
- import { launchOmb } from "../omp/tmux.js";
4
+ import { launchOmb, shouldLaunchOmbInTmux } from "../omp/tmux.js";
5
5
  try {
6
6
  const args = process.argv.slice(2);
7
7
  if (args[0] === "agents" || args[0] === "hub") {
@@ -9,7 +9,15 @@ try {
9
9
  }
10
10
  else {
11
11
  const invocation = parseOmbCommand(args);
12
+ const returnToHub = shouldLaunchOmbInTmux({
13
+ args: invocation.ompArgs,
14
+ env: process.env,
15
+ stdinIsTTY: process.stdin.isTTY === true,
16
+ stdoutIsTTY: process.stdout.isTTY === true,
17
+ });
12
18
  process.exitCode = await launchOmb(process.cwd(), invocation.ompArgs, process.env, invocation.sessionId);
19
+ if (returnToHub)
20
+ process.exitCode = await runAgentsHub(process.cwd(), [], process.env);
13
21
  }
14
22
  }
15
23
  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,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,IAAI,CAAC;IACH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QAC9C,OAAO,CAAC,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACnF,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,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;IAC3G,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,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAElE,IAAI,CAAC;IACH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QAC9C,OAAO,CAAC,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACnF,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,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"}
@@ -0,0 +1,38 @@
1
+ import type { WriteStream } from "node:tty";
2
+ export interface SetupUiOptions {
3
+ version: string;
4
+ packageSpec: string;
5
+ profile?: string;
6
+ omp?: string;
7
+ dryRun?: boolean;
8
+ interactive?: boolean;
9
+ }
10
+ export interface SetupUiReport {
11
+ dryRun?: boolean;
12
+ config?: string;
13
+ receipt?: string;
14
+ settings?: Array<unknown>;
15
+ restartRequired?: boolean;
16
+ }
17
+ type Writer = Pick<WriteStream, "write">;
18
+ /** Small, deterministic terminal reporter for the full installer. */
19
+ export declare class SetupUi {
20
+ private readonly color;
21
+ private readonly writer;
22
+ constructor(options?: {
23
+ color?: boolean;
24
+ writer?: Writer;
25
+ });
26
+ private paint;
27
+ private write;
28
+ header(options: SetupUiOptions): void;
29
+ phase(number: number, title: string, detail: string): void;
30
+ success(title: string, detail?: string): void;
31
+ info(message: string): void;
32
+ warning(message: string): void;
33
+ failure(message: string): void;
34
+ finish(report: SetupUiReport, options: SetupUiOptions): void;
35
+ }
36
+ export declare function setupUiEnabled(): boolean;
37
+ export {};
38
+ //# sourceMappingURL=setup-ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-ui.d.ts","sourceRoot":"","sources":["../../src/cli/setup-ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,KAAK,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAqBzC,qEAAqE;AACrE,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,YAAY,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,EAG7D;IAED,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,KAAK;IAIb,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAapC;IAED,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAEzD;IAED,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAE5C;IAED,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1B;IAED,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7B;IAED,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7B;IAED,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAqB3D;CACF;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC"}
@@ -0,0 +1,90 @@
1
+ const ANSI = {
2
+ reset: "\u001b[0m",
3
+ bold: "\u001b[1m",
4
+ dim: "\u001b[2m",
5
+ cyan: "\u001b[36m",
6
+ green: "\u001b[32m",
7
+ yellow: "\u001b[33m",
8
+ red: "\u001b[31m",
9
+ };
10
+ function trimForLine(value, width = 68) {
11
+ if (value.length <= width)
12
+ return value;
13
+ return `${value.slice(0, Math.max(1, width - 1))}…`;
14
+ }
15
+ function padLine(value, width = 68) {
16
+ return `│ ${trimForLine(value, width - 2).padEnd(width - 2)} │`;
17
+ }
18
+ /** Small, deterministic terminal reporter for the full installer. */
19
+ export class SetupUi {
20
+ color;
21
+ writer;
22
+ constructor(options = {}) {
23
+ this.color = options.color ?? true;
24
+ this.writer = options.writer ?? process.stdout;
25
+ }
26
+ paint(name, value) {
27
+ return this.color ? `${ANSI[name]}${value}${ANSI.reset}` : value;
28
+ }
29
+ write(line = "") {
30
+ this.writer.write(`${line}\n`);
31
+ }
32
+ header(options) {
33
+ const mode = options.dryRun ? "PLAN PREVIEW" : "FULL INSTALL";
34
+ const target = options.profile ? `profile: ${options.profile}` : "default profile";
35
+ this.write();
36
+ this.write(this.paint("cyan", "╭────────────────────────────────────────────────────────────────────╮"));
37
+ this.write(padLine(`${this.paint("bold", "BIZAR OMP")} ${mode}`));
38
+ this.write(padLine(`${options.packageSpec} · ${target}`));
39
+ this.write(padLine(`OMP host: ${options.omp || "omp on PATH"}`));
40
+ this.write(this.paint("cyan", "╰────────────────────────────────────────────────────────────────────╯"));
41
+ this.write();
42
+ if (options.dryRun)
43
+ this.info("No files, plugins, or settings will be changed.");
44
+ else
45
+ this.info("This configures the plugin and durable OMB commands for autonomous work.");
46
+ this.write();
47
+ }
48
+ phase(number, title, detail) {
49
+ this.write(` ${this.paint("cyan", `${number} ${title}`)} ${this.paint("dim", detail)}`);
50
+ }
51
+ success(title, detail) {
52
+ this.write(` ${this.paint("green", "✓")} ${title}${detail ? ` ${this.paint("dim", detail)}` : ""}`);
53
+ }
54
+ info(message) {
55
+ this.write(` ${this.paint("dim", "·")} ${this.paint("dim", message)}`);
56
+ }
57
+ warning(message) {
58
+ this.write(` ${this.paint("yellow", "!")} ${message}`);
59
+ }
60
+ failure(message) {
61
+ this.write(` ${this.paint("red", "✗")} ${message}`);
62
+ }
63
+ finish(report, options) {
64
+ this.write();
65
+ this.write(this.paint("cyan", "────────────────────────────────────────────────────────────────────"));
66
+ if (report.dryRun || options.dryRun) {
67
+ this.write(` ${this.paint("yellow", "Plan ready")}`);
68
+ this.write(` ${report.settings?.length ?? 0} autonomous setting change${report.settings?.length === 1 ? "" : "s"} would be applied.`);
69
+ this.write();
70
+ this.write(` Run ${this.paint("bold", `${options.packageSpec} setup`)} to apply this plan.`);
71
+ return;
72
+ }
73
+ this.write(` ${this.paint("green", this.paint("bold", "Bizar OMP is ready."))}`);
74
+ this.write(` ${this.paint("dim", `${report.settings?.length ?? 0} autonomous setting change${report.settings?.length === 1 ? "" : "s"} applied.`)}`);
75
+ if (report.receipt)
76
+ this.write(` ${this.paint("dim", `Recovery receipt: ${report.receipt}`)}`);
77
+ this.write();
78
+ this.write(` ${this.paint("bold", "Start working")}`);
79
+ this.write(` ${this.paint("cyan", "omp")} direct OMP session`);
80
+ this.write(` ${this.paint("cyan", "omb")} durable tmux-backed session`);
81
+ this.write(` ${this.paint("cyan", "omb agents")} session switcher and new-session selector`);
82
+ if (report.restartRequired)
83
+ this.write(` ${this.paint("yellow", "Restart OMP if it was already running so it loads the new plugin.")}`);
84
+ this.write();
85
+ }
86
+ }
87
+ export function setupUiEnabled() {
88
+ return Boolean(process.stdout.isTTY) && !process.env.NO_COLOR;
89
+ }
90
+ //# sourceMappingURL=setup-ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-ui.js","sourceRoot":"","sources":["../../src/cli/setup-ui.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,21 @@ export interface OmbSessionInfo {
8
8
  state: OmbSessionState;
9
9
  command: string;
10
10
  pid: string;
11
+ /** Native OMP session id, when its journal is available. */
12
+ nativeId?: string;
13
+ /** Native OMP session title, when configured or auto-generated. */
14
+ nativeName?: string;
15
+ /** First user prompt, used as a stable local fallback before auto-titling. */
16
+ firstMessage?: string;
17
+ /** True when this host has a Bizar-owned isolated native session directory. */
18
+ nativeSessionAvailable?: boolean;
11
19
  createdAt?: number;
12
20
  lastAttachedAt?: number;
13
21
  }
22
+ /** Keep native OMP journals separate so each durable `omb` host has one exact session. */
23
+ export declare function ombSessionDir(session: string, env?: NodeJS.ProcessEnv): string;
24
+ /** Native OMP title first, then a deterministic prompt/project fallback. */
25
+ export declare function ombSessionDisplayName(session: Pick<OmbSessionInfo, "project" | "id" | "nativeName" | "firstMessage" | "nativeSessionAvailable">): string;
14
26
  /** Discover Bizar-owned tmux sessions without touching unrelated tmux sessions. */
15
27
  export declare function listOmbSessions(cwd?: string, env?: NodeJS.ProcessEnv): Promise<OmbSessionInfo[]>;
16
28
  /** Return the most recently attached live session for one exact project path. */
@@ -1 +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"}
1
+ {"version":3,"file":"omb-sessions.d.ts","sourceRoot":"","sources":["../../src/omp/omb-sessions.ts"],"names":[],"mappings":"AAKA,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,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAUD,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAG3F;AA2HD,4EAA4E;AAC5E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,IAAI,GAAG,YAAY,GAAG,cAAc,GAAG,wBAAwB,CAAC,GAAG,MAAM,CAKxJ;AAsCD,mFAAmF;AACnF,wBAAsB,eAAe,CACnC,GAAG,SAAgB,EACnB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,cAAc,EAAE,CAAC,CAwD3B;AAED,iFAAiF;AACjF,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAKrC"}
@@ -1,6 +1,146 @@
1
1
  import { spawn } from "node:child_process";
2
- import { basename } from "node:path";
2
+ import { readdir, readFile } from "node:fs/promises";
3
+ import { basename, join, relative, resolve } from "node:path";
4
+ import { homedir, tmpdir } from "node:os";
3
5
  export const BIZAR_SESSION_PREFIX = "bizar-";
6
+ /** Keep native OMP journals separate so each durable `omb` host has one exact session. */
7
+ export function ombSessionDir(session, env = process.env) {
8
+ const stateHome = env.XDG_STATE_HOME || join(env.HOME || homedir(), ".local", "state");
9
+ return join(stateHome, "bizar-omp", "native-sessions", session);
10
+ }
11
+ function ompAgentDir(env) {
12
+ if (env.PI_CODING_AGENT_DIR)
13
+ return resolve(env.PI_CODING_AGENT_DIR);
14
+ return join(env.HOME || homedir(), env.PI_CONFIG_DIR || ".omp", "agent");
15
+ }
16
+ function defaultOmpSessionDir(cwd, env) {
17
+ const resolvedCwd = resolve(cwd);
18
+ const home = resolve(env.HOME || homedir());
19
+ const temp = resolve(tmpdir());
20
+ const encode = (value) => value.replace(/[\\/:]/g, "-");
21
+ const homeRelative = relative(home, resolvedCwd);
22
+ if (homeRelative === "" || (!homeRelative.startsWith("..") && !homeRelative.startsWith("/"))) {
23
+ return join(ompAgentDir(env), "sessions", homeRelative ? `-${encode(homeRelative)}` : "-");
24
+ }
25
+ const tempRelative = relative(temp, resolvedCwd);
26
+ if (tempRelative === "" || (!tempRelative.startsWith("..") && !tempRelative.startsWith("/"))) {
27
+ return join(ompAgentDir(env), "sessions", tempRelative ? `-tmp-${encode(tempRelative)}` : "-tmp");
28
+ }
29
+ return join(ompAgentDir(env), "sessions", `--${encode(resolvedCwd).replace(/^-/, "")}--`);
30
+ }
31
+ function cleanText(value) {
32
+ if (typeof value !== "string")
33
+ return undefined;
34
+ const cleaned = value
35
+ .split(/\r?\n/, 1)[0]
36
+ .replace(/[\x00-\x1F\x7F]/g, "")
37
+ .replace(/\s+/g, " ")
38
+ .trim();
39
+ return cleaned || undefined;
40
+ }
41
+ async function readNativeSessionFile(file) {
42
+ try {
43
+ const content = await readFile(file, "utf8");
44
+ const lines = content.split("\n");
45
+ const header = JSON.parse(lines[0] || "");
46
+ if (header.type !== "session")
47
+ return undefined;
48
+ let firstMessage;
49
+ let latestTitle = cleanText(header.title);
50
+ for (const line of lines.slice(1)) {
51
+ if (!line.trim())
52
+ continue;
53
+ try {
54
+ const entry = JSON.parse(line);
55
+ if (entry.type === "title" || entry.type === "title_change")
56
+ latestTitle = cleanText(entry.title) || latestTitle;
57
+ if (!firstMessage && entry.type === "message" && entry.message && typeof entry.message === "object") {
58
+ const message = entry.message;
59
+ if (message.role === "user") {
60
+ if (typeof message.content === "string")
61
+ firstMessage = cleanText(message.content);
62
+ else if (Array.isArray(message.content)) {
63
+ const text = message.content
64
+ .filter(item => typeof item === "object" && item !== null && item.type === "text")
65
+ .map(item => item.text)
66
+ .filter((item) => typeof item === "string")
67
+ .join(" ");
68
+ firstMessage = cleanText(text);
69
+ }
70
+ }
71
+ }
72
+ }
73
+ catch {
74
+ // A partially written final JSONL line should not hide a valid header/title.
75
+ }
76
+ }
77
+ const timestamp = typeof header.timestamp === "string" ? Date.parse(header.timestamp) : NaN;
78
+ return {
79
+ id: cleanText(header.id),
80
+ title: latestTitle,
81
+ cwd: cleanText(header.cwd),
82
+ firstMessage,
83
+ createdAt: Number.isFinite(timestamp) ? Math.floor(timestamp / 1000) : undefined,
84
+ };
85
+ }
86
+ catch {
87
+ return undefined;
88
+ }
89
+ }
90
+ async function readNativeSessionMetadata(sessionDir) {
91
+ let files;
92
+ try {
93
+ files = (await readdir(sessionDir, { withFileTypes: true }))
94
+ .filter(entry => entry.isFile() && entry.name.endsWith(".jsonl"))
95
+ .map(entry => join(sessionDir, entry.name));
96
+ }
97
+ catch {
98
+ return undefined;
99
+ }
100
+ const candidates = await Promise.all(files.map(async (file) => ({ file, metadata: await readNativeSessionFile(file) })));
101
+ const valid = candidates.filter((candidate) => Boolean(candidate.metadata));
102
+ if (valid.length === 0)
103
+ return undefined;
104
+ valid.sort((a, b) => a.file.localeCompare(b.file));
105
+ return valid.at(-1)?.metadata;
106
+ }
107
+ async function readLegacyNativeSessionMetadata(cwd, sessionCreatedAt, env) {
108
+ const sessionDir = defaultOmpSessionDir(cwd, env);
109
+ let files;
110
+ try {
111
+ files = (await readdir(sessionDir, { withFileTypes: true }))
112
+ .filter(entry => entry.isFile() && entry.name.endsWith(".jsonl"))
113
+ .map(entry => join(sessionDir, entry.name));
114
+ }
115
+ catch {
116
+ return undefined;
117
+ }
118
+ const candidates = (await Promise.all(files.map(async (file) => {
119
+ const metadata = await readNativeSessionFile(file);
120
+ return metadata ? { file, metadata } : undefined;
121
+ }))).filter((candidate) => Boolean(candidate));
122
+ if (candidates.length === 0)
123
+ return undefined;
124
+ if (candidates.length === 1 || sessionCreatedAt === undefined)
125
+ return candidates[0]?.metadata;
126
+ candidates.sort((a, b) => Math.abs((a.metadata.createdAt ?? 0) - sessionCreatedAt) - Math.abs((b.metadata.createdAt ?? 0) - sessionCreatedAt));
127
+ return candidates[0]?.metadata;
128
+ }
129
+ function compactPrompt(prompt) {
130
+ const words = prompt.replace(/^[-*#>]+\s*/, "").split(/\s+/).filter(Boolean);
131
+ const compact = words.slice(0, 7).join(" ").replace(/[.!?]+$/, "");
132
+ return compact.length > 48 ? `${compact.slice(0, 47).trimEnd()}…` : compact;
133
+ }
134
+ /** Native OMP title first, then a deterministic prompt/project fallback. */
135
+ export function ombSessionDisplayName(session) {
136
+ if (session.nativeName)
137
+ return session.nativeName;
138
+ if (session.firstMessage)
139
+ return compactPrompt(session.firstMessage);
140
+ if (session.nativeSessionAvailable)
141
+ return `New ${session.project} session`;
142
+ return `${session.project}/${session.id || "main"}`;
143
+ }
4
144
  function exitCode(code, signal) {
5
145
  if (code !== null)
6
146
  return code;
@@ -51,6 +191,9 @@ export async function listOmbSessions(cwd = process.cwd(), env = process.env) {
51
191
  const records = await Promise.all(names.map(async (session) => {
52
192
  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
193
  const details = parsePane(pane.output);
194
+ const nativeDir = ombSessionDir(session.name, env);
195
+ const native = await readNativeSessionMetadata(nativeDir);
196
+ const legacyNative = native ?? await readLegacyNativeSessionMetadata(details.cwd, session.createdAt, env);
54
197
  return {
55
198
  name: session.name,
56
199
  cwd: details.cwd,
@@ -59,6 +202,10 @@ export async function listOmbSessions(cwd = process.cwd(), env = process.env) {
59
202
  state: details.dead ? "dead" : session.attached ? "attached" : "detached",
60
203
  command: details.command,
61
204
  pid: details.pid,
205
+ nativeId: legacyNative?.id,
206
+ nativeName: legacyNative?.title,
207
+ firstMessage: legacyNative?.firstMessage,
208
+ nativeSessionAvailable: Boolean(native || legacyNative),
62
209
  createdAt: session.createdAt,
63
210
  lastAttachedAt: session.lastAttachedAt,
64
211
  };