@onebrain-ai/cli 2.0.11 → 2.0.13
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/dist/onebrain +41 -21
- package/package.json +1 -1
package/dist/onebrain
CHANGED
|
@@ -9990,6 +9990,13 @@ function applyHooks(settings) {
|
|
|
9990
9990
|
settings.hooks = {};
|
|
9991
9991
|
const hooks = settings.hooks;
|
|
9992
9992
|
const result = {};
|
|
9993
|
+
for (const [event, staleCmd] of Object.entries(STALE_HOOK_COMMANDS)) {
|
|
9994
|
+
if (!hooks[event])
|
|
9995
|
+
continue;
|
|
9996
|
+
hooks[event] = hooks[event].filter((group) => !group.hooks?.some((entry) => entry.command === staleCmd));
|
|
9997
|
+
if (hooks[event].length === 0)
|
|
9998
|
+
delete hooks[event];
|
|
9999
|
+
}
|
|
9993
10000
|
for (const event of HOOK_EVENTS) {
|
|
9994
10001
|
const cmd = HOOK_COMMANDS[event];
|
|
9995
10002
|
if (!cmd)
|
|
@@ -10199,16 +10206,18 @@ async function registerHooksCommand(vaultDir, flags) {
|
|
|
10199
10206
|
process.exit(1);
|
|
10200
10207
|
}
|
|
10201
10208
|
}
|
|
10202
|
-
var HOOK_COMMANDS, HOOK_EVENTS, PERMISSIONS_TO_ADD, ONEBRAIN_MARKER = "# onebrain", PATH_EXPORT = 'export PATH="$HOME/.bun/bin:$HOME/.npm-global/bin:$PATH"', QMD_CMD = "onebrain qmd-reindex", QMD_MATCHER = "Write|Edit";
|
|
10209
|
+
var HOOK_COMMANDS, HOOK_EVENTS, STALE_HOOK_COMMANDS, PERMISSIONS_TO_ADD, ONEBRAIN_MARKER = "# onebrain", PATH_EXPORT = 'export PATH="$HOME/.bun/bin:$HOME/.npm-global/bin:$PATH"', QMD_CMD = "onebrain qmd-reindex", QMD_MATCHER = "Write|Edit";
|
|
10203
10210
|
var init_register_hooks = __esm(() => {
|
|
10204
10211
|
init_dist2();
|
|
10205
10212
|
init_dist3();
|
|
10206
10213
|
HOOK_COMMANDS = {
|
|
10207
10214
|
Stop: "onebrain checkpoint stop",
|
|
10208
|
-
PreCompact: "onebrain checkpoint precompact",
|
|
10209
10215
|
PostCompact: "onebrain checkpoint postcompact"
|
|
10210
10216
|
};
|
|
10211
|
-
HOOK_EVENTS = ["Stop", "
|
|
10217
|
+
HOOK_EVENTS = ["Stop", "PostCompact"];
|
|
10218
|
+
STALE_HOOK_COMMANDS = {
|
|
10219
|
+
PreCompact: "onebrain checkpoint precompact"
|
|
10220
|
+
};
|
|
10212
10221
|
PERMISSIONS_TO_ADD = [
|
|
10213
10222
|
"Bash(onebrain *)",
|
|
10214
10223
|
"Bash(bun install -g @onebrain-ai/cli*)",
|
|
@@ -10753,7 +10762,7 @@ init_dist3();
|
|
|
10753
10762
|
import { mkdir as mkdir3, readFile as readFile3, rename as rename3, stat as stat3, writeFile as writeFile3 } from "node:fs/promises";
|
|
10754
10763
|
import { homedir as homedir3 } from "node:os";
|
|
10755
10764
|
import { dirname as dirname3, join as join5 } from "node:path";
|
|
10756
|
-
var binaryVersion = "2.0.
|
|
10765
|
+
var binaryVersion = "2.0.13";
|
|
10757
10766
|
var STANDARD_FOLDERS = [
|
|
10758
10767
|
"00-inbox",
|
|
10759
10768
|
"01-projects",
|
|
@@ -11177,13 +11186,6 @@ function handleStop(token, vaultRoot, now = Math.floor(Date.now() / 1000), tmpDi
|
|
|
11177
11186
|
emitBlock(`${filename}${since}`);
|
|
11178
11187
|
writeState(token, { count: 0, last_ts: now, last_stop_nn: nextNn }, tmpDir);
|
|
11179
11188
|
}
|
|
11180
|
-
function handlePrecompact(token, _vaultRoot, now = Math.floor(Date.now() / 1000), tmpDir = osTmpdir()) {
|
|
11181
|
-
const state = readState(token, tmpDir);
|
|
11182
|
-
if (state.last_ts > 0 && now - state.last_ts < PRECOMPACT_RECENCY) {
|
|
11183
|
-
return;
|
|
11184
|
-
}
|
|
11185
|
-
writeState(token, { count: 0, last_ts: state.last_ts, last_stop_nn: state.last_stop_nn }, tmpDir);
|
|
11186
|
-
}
|
|
11187
11189
|
function handlePostcompact(token, _vaultRoot, now = Math.floor(Date.now() / 1000), tmpDir = osTmpdir()) {
|
|
11188
11190
|
const state = readState(token, tmpDir);
|
|
11189
11191
|
if (state.last_ts > 0 && now - state.last_ts < PRECOMPACT_RECENCY) {
|
|
@@ -11202,9 +11204,6 @@ async function checkpointCommand(mode, token, vaultRoot) {
|
|
|
11202
11204
|
case "stop":
|
|
11203
11205
|
handleStop(token, vaultRoot);
|
|
11204
11206
|
break;
|
|
11205
|
-
case "precompact":
|
|
11206
|
-
handlePrecompact(token, vaultRoot);
|
|
11207
|
-
break;
|
|
11208
11207
|
case "postcompact":
|
|
11209
11208
|
postcompactFallback(token, vaultRoot);
|
|
11210
11209
|
break;
|
|
@@ -11319,9 +11318,9 @@ ${rest}`;
|
|
|
11319
11318
|
}
|
|
11320
11319
|
return { backfilled, skipped };
|
|
11321
11320
|
}
|
|
11322
|
-
async function migrateCommand(migrationName, cutoffDate) {
|
|
11321
|
+
async function migrateCommand(migrationName, cutoffDate, vaultDir) {
|
|
11323
11322
|
try {
|
|
11324
|
-
const vaultRoot = process.cwd();
|
|
11323
|
+
const vaultRoot = vaultDir ?? process.cwd();
|
|
11325
11324
|
const config = await loadVaultConfig(vaultRoot);
|
|
11326
11325
|
const logsFolder = join7(vaultRoot, config.folders.logs);
|
|
11327
11326
|
if (migrationName === "backfill-recapped") {
|
|
@@ -11482,10 +11481,12 @@ import { homedir as homedir4 } from "node:os";
|
|
|
11482
11481
|
import { dirname as dirname4, join as join9 } from "node:path";
|
|
11483
11482
|
var HOOK_COMMANDS2 = {
|
|
11484
11483
|
Stop: "onebrain checkpoint stop",
|
|
11485
|
-
PreCompact: "onebrain checkpoint precompact",
|
|
11486
11484
|
PostCompact: "onebrain checkpoint postcompact"
|
|
11487
11485
|
};
|
|
11488
|
-
var HOOK_EVENTS2 = ["Stop", "
|
|
11486
|
+
var HOOK_EVENTS2 = ["Stop", "PostCompact"];
|
|
11487
|
+
var STALE_HOOK_COMMANDS2 = {
|
|
11488
|
+
PreCompact: "onebrain checkpoint precompact"
|
|
11489
|
+
};
|
|
11489
11490
|
var PERMISSIONS_TO_ADD2 = [
|
|
11490
11491
|
"Bash(onebrain *)",
|
|
11491
11492
|
"Bash(bun install -g @onebrain-ai/cli*)",
|
|
@@ -11527,6 +11528,13 @@ function applyHooks2(settings) {
|
|
|
11527
11528
|
settings.hooks = {};
|
|
11528
11529
|
const hooks = settings.hooks;
|
|
11529
11530
|
const result = {};
|
|
11531
|
+
for (const [event, staleCmd] of Object.entries(STALE_HOOK_COMMANDS2)) {
|
|
11532
|
+
if (!hooks[event])
|
|
11533
|
+
continue;
|
|
11534
|
+
hooks[event] = hooks[event].filter((group) => !group.hooks?.some((entry) => entry.command === staleCmd));
|
|
11535
|
+
if (hooks[event].length === 0)
|
|
11536
|
+
delete hooks[event];
|
|
11537
|
+
}
|
|
11530
11538
|
for (const event of HOOK_EVENTS2) {
|
|
11531
11539
|
const cmd = HOOK_COMMANDS2[event];
|
|
11532
11540
|
if (!cmd)
|
|
@@ -11774,6 +11782,18 @@ async function resolveSessionToken(tmpDir = osTmpdir2()) {
|
|
|
11774
11782
|
if (stripped.length > 0)
|
|
11775
11783
|
return stripped;
|
|
11776
11784
|
}
|
|
11785
|
+
const tmuxPane = process.env["TMUX_PANE"];
|
|
11786
|
+
if (tmuxPane) {
|
|
11787
|
+
const stripped = tmuxPane.replace(/[^a-zA-Z0-9]/g, "").slice(0, 8);
|
|
11788
|
+
if (stripped.length > 0)
|
|
11789
|
+
return stripped;
|
|
11790
|
+
}
|
|
11791
|
+
const termSessionId = process.env["TERM_SESSION_ID"];
|
|
11792
|
+
if (termSessionId) {
|
|
11793
|
+
const stripped = termSessionId.replace(/[^a-zA-Z0-9]/g, "").slice(0, 8);
|
|
11794
|
+
if (stripped.length > 0)
|
|
11795
|
+
return stripped;
|
|
11796
|
+
}
|
|
11777
11797
|
const ppid = process.ppid;
|
|
11778
11798
|
if (ppid !== undefined && ppid > 1)
|
|
11779
11799
|
return String(ppid);
|
|
@@ -12635,8 +12655,8 @@ async function updateCommand(opts = {}) {
|
|
|
12635
12655
|
}
|
|
12636
12656
|
|
|
12637
12657
|
// src/index.ts
|
|
12638
|
-
var VERSION = "2.0.
|
|
12639
|
-
var RELEASE_DATE = "2026-04-
|
|
12658
|
+
var VERSION = "2.0.13";
|
|
12659
|
+
var RELEASE_DATE = "2026-04-27";
|
|
12640
12660
|
process.stdout.setDefaultEncoding("utf8");
|
|
12641
12661
|
process.stderr.setDefaultEncoding("utf8");
|
|
12642
12662
|
var VERSION_STRING = `OneBrain v${VERSION} \u2014 released ${RELEASE_DATE}`;
|
|
@@ -12688,7 +12708,7 @@ program2.command("session-init", { hidden: true }).description("Emit session tok
|
|
|
12688
12708
|
program2.command("orphan-scan", { hidden: true }).description("Scan for orphaned checkpoint files in logs folder").argument("<logs_folder>", "path to logs folder").argument("<session_token>", "current session token to exclude").action(async (logsFolder, sessionToken) => {
|
|
12689
12709
|
await orphanScanCommand(logsFolder, sessionToken);
|
|
12690
12710
|
});
|
|
12691
|
-
program2.command("checkpoint", { hidden: true }).description("Handle checkpoint lifecycle (stop/
|
|
12711
|
+
program2.command("checkpoint", { hidden: true }).description("Handle checkpoint lifecycle (stop/postcompact/reset)").argument("<mode>", "stop | postcompact | reset").option("--vault-dir <path>", "vault root directory (default: auto-detect from cwd)").action(async (mode, opts) => {
|
|
12692
12712
|
const token = await resolveSessionToken();
|
|
12693
12713
|
const vaultRoot = opts.vaultDir ?? findVaultRoot(process.cwd());
|
|
12694
12714
|
await checkpointCommand(mode, token, vaultRoot);
|