@aligndottech/cli 0.52.0 → 0.53.0

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.
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Which detector a LOCAL Ollama model runs when the user has not chosen one (ALI-1564).
3
+ *
4
+ * v1 is the default detector everywhere, but only qwen2.5 at its default size or 7B and above passed the
5
+ * preregistered rule locally (align-stack addendum 7: recall 90.2%, precision 65.7%). llama3.2 (3B) did
6
+ * not (30 of 51 conflicts), and three attempts to fix its output failed. A model that was never measured
7
+ * is treated as not passing: v0 is the safe default, and an explicit choice (ALIGN_DETECTOR or
8
+ * `align config detector`) always wins over this.
9
+ *
10
+ * Matches the model name only. qwen2.5's default tag (`qwen2.5`, `qwen2.5:latest`) is the 7B build, which
11
+ * is why an unsized tag counts. Other families (`qwen2.5-coder`, `qwen3`) are separate models and are not
12
+ * matched.
13
+ */
14
+ export declare function defaultDetectorForLocalModel(model: string | null): 'v0' | 'v1';
15
+ //# sourceMappingURL=local-model-default.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-model-default.d.ts","sourceRoot":"","sources":["../../src/detector/local-model-default.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAQ9E"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Which detector a LOCAL Ollama model runs when the user has not chosen one (ALI-1564).
3
+ *
4
+ * v1 is the default detector everywhere, but only qwen2.5 at its default size or 7B and above passed the
5
+ * preregistered rule locally (align-stack addendum 7: recall 90.2%, precision 65.7%). llama3.2 (3B) did
6
+ * not (30 of 51 conflicts), and three attempts to fix its output failed. A model that was never measured
7
+ * is treated as not passing: v0 is the safe default, and an explicit choice (ALIGN_DETECTOR or
8
+ * `align config detector`) always wins over this.
9
+ *
10
+ * Matches the model name only. qwen2.5's default tag (`qwen2.5`, `qwen2.5:latest`) is the 7B build, which
11
+ * is why an unsized tag counts. Other families (`qwen2.5-coder`, `qwen3`) are separate models and are not
12
+ * matched.
13
+ */
14
+ export function defaultDetectorForLocalModel(model) {
15
+ if (!model)
16
+ return 'v0';
17
+ const match = /^qwen2\.5(?::(.*))?$/i.exec(model.trim());
18
+ if (!match)
19
+ return 'v0';
20
+ const tag = match[1];
21
+ if (tag === undefined || tag === '' || tag.toLowerCase().startsWith('latest'))
22
+ return 'v1';
23
+ const size = /^(\d+(?:\.\d+)?)b/i.exec(tag);
24
+ return size !== null && Number(size[1]) >= 7 ? 'v1' : 'v0';
25
+ }
26
+ //# sourceMappingURL=local-model-default.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-model-default.js","sourceRoot":"","sources":["../../src/detector/local-model-default.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAAoB;IAC/D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3F,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC"}
package/dist/index.js CHANGED
@@ -2,11 +2,12 @@
2
2
  import './lib/startup-env.js'; // FIRST: snapshot the shell's env before any module can change it
3
3
  import './lib/startup-xdg.js'; // SECOND: drop a relative XDG_* before anything computes a directory from it
4
4
  import './lib/startup-backfill-track.js'; // THIRD: if align_backfill started this process, record how it ends
5
- import { writeSync } from 'node:fs';
5
+ import fs, { writeSync } from 'node:fs';
6
+ import path from 'node:path';
6
7
  import envPaths from 'env-paths';
7
8
  import { alignConfigDir } from './lib/private-files.js';
8
- import { migrateConfigDirectory } from './lib/config.js';
9
- import { getLocalDbPath, legacyLocalDbDir, migrateLocalDb } from './lib/local-mode.js';
9
+ import { createConfigStore, migrateConfigDirectory } from './lib/config.js';
10
+ import { getLocalDbPath, isLegacyGraphPath, legacyLocalDbDir, migrateLocalDb, repointLegacyLocalDb } from './lib/local-mode.js';
10
11
  import { excludeGraphFromBackups } from './lib/backup-exclusion.js';
11
12
  import { buildProgram } from './cli.js';
12
13
  import { resolveDetectorVersion } from './detector/detector-version.js';
@@ -39,13 +40,25 @@ catch { /* stderr closed */ } }));
39
40
  // ~/.config on some machine must not stop align from running the command the user
40
41
  // actually asked for, so failures here are swallowed rather than reaching handleFatal.
41
42
  try {
42
- // ~/.align is the one home now (ALI-1622). Copy anything an older install left under the OS config
43
+ // ~/.align is the one home now. Copy anything an older install left under the OS config
43
44
  // directory, from every place one was ever written.
44
45
  const legacyConfigDirs = [envPaths('align-cli', { suffix: 'nodejs' }).config, envPaths('align-cli', { suffix: '' }).config];
45
46
  for (const dir of legacyConfigDirs)
46
47
  migrateConfigDirectory(dir, alignConfigDir());
47
48
  migrateLocalDb(legacyLocalDbDir(), alignConfigDir());
48
49
  migrateLocalDb(envPaths('align-cli', { suffix: '' }).config, alignConfigDir());
50
+ // A saved localDbPath that still names a legacy folder would keep the graph there and leave the copy unused.
51
+ // Only when a config already exists: reading the store must not create one on a fresh machine.
52
+ // The saved path is read straight from the file, and the store is opened only when a repoint is needed:
53
+ // opening it normalises (rewrites) the config, which startup must not do on every run.
54
+ const legacyGraphDirs = [legacyLocalDbDir(), envPaths('align-cli', { suffix: '' }).config];
55
+ try {
56
+ const raw = JSON.parse(fs.readFileSync(path.join(alignConfigDir(), 'config.json'), 'utf8'));
57
+ const saved = raw.environments?.local?.localDbPath;
58
+ if (typeof saved === 'string' && isLegacyGraphPath(saved, legacyGraphDirs))
59
+ repointLegacyLocalDb(createConfigStore(), legacyGraphDirs, alignConfigDir());
60
+ }
61
+ catch { /* no config yet, or unreadable: nothing to repoint */ }
49
62
  // An existing local graph is excluded from Time Machine and cache-aware backups on its first run
50
63
  // after an upgrade (once; a no-op without a graph). Best effort, never fatal (backup-exclusion.ts).
51
64
  excludeGraphFromBackups(getLocalDbPath());
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"local-candidate-classify.d.ts","sourceRoot":"","sources":["../../src/lib/local-candidate-classify.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,KAAK,eAAe,EAA0B,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,KAAK,qBAAqB,EAAE,oBAAoB,EAAyB,MAAM,oCAAoC,CAAC;AAC7H,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAErG,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,SAAS,YAAY,EAAE,EACnC,KAAK,EAAE,eAAe,GAAG,iBAAiB,EAC1C,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,oBAAoB,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,oBAAoB,CAAA;CAAO,GACnF,OAAO,CAAC,uBAAuB,CAAC,CA+BlC"}
1
+ {"version":3,"file":"local-candidate-classify.d.ts","sourceRoot":"","sources":["../../src/lib/local-candidate-classify.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,KAAK,eAAe,EAA0B,MAAM,iCAAiC,CAAC;AAG/F,OAAO,EAAE,KAAK,qBAAqB,EAAE,oBAAoB,EAAyB,MAAM,oCAAoC,CAAC;AAC7H,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAmBrG,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,SAAS,YAAY,EAAE,EACnC,KAAK,EAAE,eAAe,GAAG,iBAAiB,EAC1C,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,oBAAoB,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,oBAAoB,CAAA;CAAO,GACnF,OAAO,CAAC,uBAAuB,CAAC,CA+BlC"}
@@ -14,10 +14,28 @@ import { createConfigStore } from './config.js';
14
14
  * is A). v1 always puts the new/proposed side as the NEW DECISION.
15
15
  */
16
16
  import { resolveDetectorVersion } from '../detector/detector-version.js';
17
+ import { defaultDetectorForLocalModel } from '../detector/local-model-default.js';
18
+ import { hasConfiguredProvider, probeOllama } from './local-llm.js';
17
19
  import { classifyRelationship } from './local-relationship-classifier.js';
18
20
  import { classifyCandidateSet } from './local-set-classifier.js';
21
+ // One local probe per process: the model on disk does not change mid-run, and every classification calls this.
22
+ let localModelProbe;
23
+ /**
24
+ * The detector for this call. An explicit choice (ALIGN_DETECTOR or `align config detector`) always wins. With
25
+ * none, v1 is the default, except on a LOCAL route (no hosted key) where only a model that passed the
26
+ * preregistered rule runs it and anything else runs v0 (ALI-1564, detector/local-model-default.ts).
27
+ */
28
+ async function chooseDetectorVersion() {
29
+ const store = createConfigStore();
30
+ const explicit = (process.env['ALIGN_DETECTOR'] ?? '').trim() !== '' || store.getDetector() !== undefined;
31
+ const version = resolveDetectorVersion(process.env, store.getDetector());
32
+ if (explicit || version !== 'v1' || hasConfiguredProvider())
33
+ return version;
34
+ localModelProbe ??= probeOllama();
35
+ return defaultDetectorForLocalModel(await localModelProbe);
36
+ }
19
37
  export async function classifyCandidates(subject, candidates, order, deps = {}) {
20
- const version = resolveDetectorVersion(process.env, createConfigStore().getDetector());
38
+ const version = await chooseDetectorVersion();
21
39
  if (version === 'v1') {
22
40
  if (!candidates.length)
23
41
  return { version, outcomes: [] };
@@ -1 +1 @@
1
- {"version":3,"file":"local-candidate-classify.js","sourceRoot":"","sources":["../../src/lib/local-candidate-classify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-candidate-classify.js","sourceRoot":"","sources":["../../src/lib/local-candidate-classify.ts"],"names":[],"mappings":"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"}
@@ -59,4 +59,20 @@ export declare function initLocalMode(opts?: {
59
59
  }): Promise<{
60
60
  dbPath: string;
61
61
  }>;
62
+ /** Exactly `<legacy dir>/local.db`: a path the user chose, or another file name, is not a legacy graph. */
63
+ export declare function isLegacyGraphPath(saved: string, legacyDirs: readonly string[]): boolean;
64
+ /**
65
+ * An upgraded user's config stores an ABSOLUTE localDbPath, and every command opens that exact path. After
66
+ * the move to ~/.align (migrateLocalDb copies the graph there) a saved path that still names a legacy folder
67
+ * keeps the graph in the OLD place, and the copy in ~/.align sits unused. So when the saved path is exactly
68
+ * `<legacy dir>/local.db` and the copy exists, point the config at the copy. A path the user chose, a
69
+ * non-local environment, and a copy that was never made are all left alone: the saved path then keeps working.
70
+ */
71
+ export declare function repointLegacyLocalDb(config: {
72
+ getEnvironment(env: 'local'): {
73
+ mode: string;
74
+ localDbPath?: string;
75
+ };
76
+ setLocalMode(dbPath: string): void;
77
+ }, legacyDirs: readonly string[], newDir: string): boolean;
62
78
  //# sourceMappingURL=local-mode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-mode.d.ts","sourceRoot":"","sources":["../../src/lib/local-mode.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,UAAU,EAA2B,MAAM,uBAAuB,CAAC;AAGjF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,+BAAsB,CAAC;AAErD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,IAAI,CAuB/G;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,UAAU,CAAA;CAAO;;GA0BzE"}
1
+ {"version":3,"file":"local-mode.d.ts","sourceRoot":"","sources":["../../src/lib/local-mode.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,UAAU,EAA2B,MAAM,uBAAuB,CAAC;AAGjF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,+BAAsB,CAAC;AAErD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,IAAI,CAuB/G;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,UAAU,CAAA;CAAO;;GA0BzE;AAED,2GAA2G;AAC3G,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAGvF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE;IAAE,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACpH,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,MAAM,EAAE,MAAM,GACb,OAAO,CAQT"}
@@ -118,4 +118,27 @@ export async function initLocalMode(opts = {}) {
118
118
  // a question.
119
119
  return { dbPath };
120
120
  }
121
+ /** Exactly `<legacy dir>/local.db`: a path the user chose, or another file name, is not a legacy graph. */
122
+ export function isLegacyGraphPath(saved, legacyDirs) {
123
+ const norm = (p) => (process.platform === 'win32' ? path.resolve(p).toLowerCase() : path.resolve(p));
124
+ return path.basename(saved) === 'local.db' && legacyDirs.some((d) => norm(path.dirname(saved)) === norm(d));
125
+ }
126
+ /**
127
+ * An upgraded user's config stores an ABSOLUTE localDbPath, and every command opens that exact path. After
128
+ * the move to ~/.align (migrateLocalDb copies the graph there) a saved path that still names a legacy folder
129
+ * keeps the graph in the OLD place, and the copy in ~/.align sits unused. So when the saved path is exactly
130
+ * `<legacy dir>/local.db` and the copy exists, point the config at the copy. A path the user chose, a
131
+ * non-local environment, and a copy that was never made are all left alone: the saved path then keeps working.
132
+ */
133
+ export function repointLegacyLocalDb(config, legacyDirs, newDir) {
134
+ const env = config.getEnvironment('local');
135
+ const saved = env.localDbPath;
136
+ if (env.mode !== 'local-embedded' || !saved)
137
+ return false;
138
+ const target = path.join(newDir, 'local.db');
139
+ if (!isLegacyGraphPath(saved, legacyDirs) || !fs.existsSync(target))
140
+ return false;
141
+ config.setLocalMode(target);
142
+ return true;
143
+ }
121
144
  //# sourceMappingURL=local-mode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-mode.js","sourceRoot":"","sources":["../../src/lib/local-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAmB,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE9G;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IACzG,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;IACxG,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,MAAc,EAAE,OAAwC,EAAE;IACvG,0FAA0F;IAC1F,8FAA8F;IAC9F,kFAAkF;IAClF,kGAAkG;IAClG,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO;IAC7D,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,MAAc,EAAW,EAAE;QACxD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC;IACF,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;QAAE,OAAO;IAClE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO;IAC9D,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzB,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;QACnC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,4EAA4E;IAC5E,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,UAAU,CAAC,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAoC,EAAE;IACxE,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5B,4EAA4E;IAC5E,8EAA8E;IAC9E,2EAA2E;IAC3E,6EAA6E;IAC7E,0CAA0C;IAE1C,iCAAiC;IACjC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC,EAAE,CAAC,KAAK,EAAE,CAAC;IACX,oGAAoG;IACpG,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAEjD,oFAAoF;IACpF,wFAAwF;IACxF,uFAAuF;IACvF,yFAAyF;IACzF,+BAA+B;IAC/B,EAAE;IACF,oFAAoF;IACpF,yFAAyF;IACzF,cAAc;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"local-mode.js","sourceRoot":"","sources":["../../src/lib/local-mode.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ export declare function writePrivateFile(file: string, data: string | Uint8Array
30
30
  * `localDbPath`) sits in a folder that is not ours to chmod, such as a repo or the home folder.
31
31
  */
32
32
  /**
33
- * The one folder align keeps its config and its local graph in: ~/.align (ALI-1622). One place a user
33
+ * The one folder align keeps its config and its local graph in: ~/.align. One place a user
34
34
  * can find, back up or delete, like ~/.claude and ~/.codex. Older installs kept these under the OS config
35
35
  * directory; index.ts copies them here once at startup (migrateConfigDirectory, migrateLocalDb).
36
36
  */
@@ -92,7 +92,7 @@ export function writePrivateFile(file, data) {
92
92
  * `localDbPath`) sits in a folder that is not ours to chmod, such as a repo or the home folder.
93
93
  */
94
94
  /**
95
- * The one folder align keeps its config and its local graph in: ~/.align (ALI-1622). One place a user
95
+ * The one folder align keeps its config and its local graph in: ~/.align. One place a user
96
96
  * can find, back up or delete, like ~/.claude and ~/.codex. Older installs kept these under the OS config
97
97
  * directory; index.ts copies them here once at startup (migrateConfigDirectory, migrateLocalDb).
98
98
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aligndottech/cli",
3
- "version": "0.52.0",
3
+ "version": "0.53.0",
4
4
  "mcpName": "io.github.aligndottech/cli",
5
5
  "type": "module",
6
6
  "description": "Align CLI - capture decisions, check alignment, and manage connectors",