@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.
Files changed (2) hide show
  1. package/dist/onebrain +41 -21
  2. 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", "PreCompact", "PostCompact"];
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.11";
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", "PreCompact", "PostCompact"];
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.11";
12639
- var RELEASE_DATE = "2026-04-26";
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/precompact/postcompact/reset)").argument("<mode>", "stop | precompact | postcompact | reset").option("--vault-dir <path>", "vault root directory (default: auto-detect from cwd)").action(async (mode, opts) => {
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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onebrain-ai/cli",
3
- "version": "2.0.11",
3
+ "version": "2.0.13",
4
4
  "description": "CLI for OneBrain — personal AI OS for Obsidian with persistent memory, 24+ skills, and Claude Code integration",
5
5
  "keywords": [
6
6
  "onebrain",