@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.
- package/dist/detector/local-model-default.d.ts +15 -0
- package/dist/detector/local-model-default.d.ts.map +1 -0
- package/dist/detector/local-model-default.js +26 -0
- package/dist/detector/local-model-default.js.map +1 -0
- package/dist/index.js +17 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/local-candidate-classify.d.ts.map +1 -1
- package/dist/lib/local-candidate-classify.js +19 -1
- package/dist/lib/local-candidate-classify.js.map +1 -1
- package/dist/lib/local-mode.d.ts +16 -0
- package/dist/lib/local-mode.d.ts.map +1 -1
- package/dist/lib/local-mode.js +23 -0
- package/dist/lib/local-mode.js.map +1 -1
- package/dist/lib/private-files.d.ts +1 -1
- package/dist/lib/private-files.js +1 -1
- package/package.json +1 -1
|
@@ -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
|
|
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":";AACA,OAAO,sBAAsB,CAAC,CAAC,kEAAkE;AACjG,OAAO,sBAAsB,CAAC,CAAC,6EAA6E;AAC5G,OAAO,iCAAiC,CAAC,CAAC,oEAAoE;AAC9G,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
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;
|
|
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 =
|
|
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":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAwB,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAA8B,oBAAoB,EAAyB,MAAM,oCAAoC,CAAC;AAC7H,OAAO,EAAE,oBAAoB,EAAsC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"local-candidate-classify.js","sourceRoot":"","sources":["../../src/lib/local-candidate-classify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAwB,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAA8B,oBAAoB,EAAyB,MAAM,oCAAoC,CAAC;AAC7H,OAAO,EAAE,oBAAoB,EAAsC,MAAM,2BAA2B,CAAC;AAErG,+GAA+G;AAC/G,IAAI,eAAmD,CAAC;AAExD;;;;GAIG;AACH,KAAK,UAAU,qBAAqB;IAClC,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC;IAC1G,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IACzE,IAAI,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,qBAAqB,EAAE;QAAE,OAAO,OAAO,CAAC;IAC5E,eAAe,KAAK,WAAW,EAAE,CAAC;IAClC,OAAO,4BAA4B,CAAC,MAAM,eAAe,CAAC,CAAC;AAC7D,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAmB,EACnB,UAAmC,EACnC,KAA0C,EAC1C,OAAkF,EAAE;IAEpF,MAAM,OAAO,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAC9C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,MAAM,GAA0B,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACnI,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,CAAC;QACD,OAAO;YACL,OAAO;YACP,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpC,EAAE,EAAE,IAAI;gBACR,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAqB,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;aAC3I,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,oBAAoB,CAAC;IAC/C,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,0FAA0F;QAC1F,8DAA8D;QAC9D,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACpD,MAAM,OAAO,GAA0B,YAAY;YACjD,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE;YAC3C,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxK,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,KAAK,kBAAkB;YAAE,YAAY,GAAG,IAAI,CAAC;QACrF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC"}
|
package/dist/lib/local-mode.d.ts
CHANGED
|
@@ -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"}
|
package/dist/lib/local-mode.js
CHANGED
|
@@ -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":"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"}
|
|
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
|
|
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
|
|
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
|
*/
|