@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.
- package/README.md +137 -58
- package/dist/cli/agents-ink.d.ts +24 -0
- package/dist/cli/agents-ink.d.ts.map +1 -0
- package/dist/cli/agents-ink.js +297 -0
- package/dist/cli/agents-ink.js.map +1 -0
- package/dist/cli/agents.d.ts +10 -2
- package/dist/cli/agents.d.ts.map +1 -1
- package/dist/cli/agents.js +137 -90
- package/dist/cli/agents.js.map +1 -1
- package/dist/cli/directory-selector.d.ts +19 -0
- package/dist/cli/directory-selector.d.ts.map +1 -0
- package/dist/cli/directory-selector.js +103 -0
- package/dist/cli/directory-selector.js.map +1 -0
- package/dist/cli/install.d.ts +6 -2
- package/dist/cli/install.d.ts.map +1 -1
- package/dist/cli/install.js +21 -6
- package/dist/cli/install.js.map +1 -1
- package/dist/cli/main.js +46 -5
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/omb.js +9 -1
- package/dist/cli/omb.js.map +1 -1
- package/dist/cli/setup-ui.d.ts +38 -0
- package/dist/cli/setup-ui.d.ts.map +1 -0
- package/dist/cli/setup-ui.js +90 -0
- package/dist/cli/setup-ui.js.map +1 -0
- package/dist/omp/omb-sessions.d.ts +12 -0
- package/dist/omp/omb-sessions.d.ts.map +1 -1
- package/dist/omp/omb-sessions.js +148 -1
- package/dist/omp/omb-sessions.js.map +1 -1
- package/dist/omp/omb-settings.d.ts +10 -0
- package/dist/omp/omb-settings.d.ts.map +1 -0
- package/dist/omp/omb-settings.js +34 -0
- package/dist/omp/omb-settings.js.map +1 -0
- package/dist/omp/tmux.d.ts +6 -0
- package/dist/omp/tmux.d.ts.map +1 -1
- package/dist/omp/tmux.js +46 -10
- package/dist/omp/tmux.js.map +1 -1
- package/docs/assets/bizar-omp-banner.svg +20 -0
- package/docs/assets/sponsored-by-polderlabs.svg +9 -0
- package/docs/compatibility/baseline.json +1 -1
- package/docs/releases/0.4.2.md +9 -0
- package/docs/releases/0.4.3.md +6 -0
- package/docs/releases/native-stable.md +1 -1
- package/docs/releases/support-matrix.md +1 -1
- package/package.json +6 -1
- package/skills/bizar-omp/SKILL.md +4 -2
package/dist/cli/install.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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);
|
package/dist/cli/install.js.map
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
package/dist/cli/main.js.map
CHANGED
|
@@ -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;
|
|
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) {
|
package/dist/cli/omb.js.map
CHANGED
|
@@ -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;
|
|
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":"
|
|
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"}
|
package/dist/omp/omb-sessions.js
CHANGED
|
@@ -1,6 +1,146 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
|
-
import {
|
|
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
|
};
|