@aligndottech/cli 0.57.0 → 0.58.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.
Files changed (140) hide show
  1. package/README.md +31 -18
  2. package/dist/bin.d.ts +3 -0
  3. package/dist/bin.d.ts.map +1 -0
  4. package/dist/bin.js +14 -0
  5. package/dist/bin.js.map +1 -0
  6. package/dist/commands/doctor.d.ts.map +1 -1
  7. package/dist/commands/doctor.js +24 -2
  8. package/dist/commands/doctor.js.map +1 -1
  9. package/dist/commands/import/git.d.ts.map +1 -1
  10. package/dist/commands/import/git.js +8 -4
  11. package/dist/commands/import/git.js.map +1 -1
  12. package/dist/commands/mcp.js +1 -1
  13. package/dist/commands/mcp.js.map +1 -1
  14. package/dist/commands/setup.d.ts.map +1 -1
  15. package/dist/commands/setup.js +26 -12
  16. package/dist/commands/setup.js.map +1 -1
  17. package/dist/commands/use.d.ts +2 -0
  18. package/dist/commands/use.d.ts.map +1 -1
  19. package/dist/commands/use.js +19 -1
  20. package/dist/commands/use.js.map +1 -1
  21. package/dist/commands/why.d.ts.map +1 -1
  22. package/dist/commands/why.js +91 -53
  23. package/dist/commands/why.js.map +1 -1
  24. package/dist/lib/agent-rules.d.ts +11 -4
  25. package/dist/lib/agent-rules.d.ts.map +1 -1
  26. package/dist/lib/agent-rules.js +163 -190
  27. package/dist/lib/agent-rules.js.map +1 -1
  28. package/dist/lib/ask-listing.d.ts +30 -0
  29. package/dist/lib/ask-listing.d.ts.map +1 -0
  30. package/dist/lib/ask-listing.js +60 -0
  31. package/dist/lib/ask-listing.js.map +1 -0
  32. package/dist/lib/capture-report.d.ts.map +1 -1
  33. package/dist/lib/capture-report.js +11 -3
  34. package/dist/lib/capture-report.js.map +1 -1
  35. package/dist/lib/claude-presence.d.ts +12 -0
  36. package/dist/lib/claude-presence.d.ts.map +1 -0
  37. package/dist/lib/claude-presence.js +19 -0
  38. package/dist/lib/claude-presence.js.map +1 -0
  39. package/dist/lib/config.d.ts +2 -0
  40. package/dist/lib/config.d.ts.map +1 -1
  41. package/dist/lib/config.js +4 -0
  42. package/dist/lib/config.js.map +1 -1
  43. package/dist/lib/doctor.d.ts +9 -1
  44. package/dist/lib/doctor.d.ts.map +1 -1
  45. package/dist/lib/doctor.js +19 -1
  46. package/dist/lib/doctor.js.map +1 -1
  47. package/dist/lib/embedding-assets.d.ts +40 -0
  48. package/dist/lib/embedding-assets.d.ts.map +1 -0
  49. package/dist/lib/embedding-assets.js +74 -0
  50. package/dist/lib/embedding-assets.js.map +1 -0
  51. package/dist/lib/embedding-runtime.d.ts +41 -0
  52. package/dist/lib/embedding-runtime.d.ts.map +1 -0
  53. package/dist/lib/embedding-runtime.js +224 -0
  54. package/dist/lib/embedding-runtime.js.map +1 -0
  55. package/dist/lib/fetchers/git.d.ts +3 -0
  56. package/dist/lib/fetchers/git.d.ts.map +1 -1
  57. package/dist/lib/fetchers/git.js +9 -5
  58. package/dist/lib/fetchers/git.js.map +1 -1
  59. package/dist/lib/found-summary.d.ts.map +1 -1
  60. package/dist/lib/found-summary.js +19 -3
  61. package/dist/lib/found-summary.js.map +1 -1
  62. package/dist/lib/gateway-client.d.ts.map +1 -1
  63. package/dist/lib/gateway-client.js +21 -1
  64. package/dist/lib/gateway-client.js.map +1 -1
  65. package/dist/lib/git.d.ts +7 -0
  66. package/dist/lib/git.d.ts.map +1 -1
  67. package/dist/lib/git.js +7 -2
  68. package/dist/lib/git.js.map +1 -1
  69. package/dist/lib/import-defaults.d.ts +11 -4
  70. package/dist/lib/import-defaults.d.ts.map +1 -1
  71. package/dist/lib/import-defaults.js +11 -4
  72. package/dist/lib/import-defaults.js.map +1 -1
  73. package/dist/lib/launch/mcp-child-env.d.ts.map +1 -1
  74. package/dist/lib/launch/mcp-child-env.js +6 -4
  75. package/dist/lib/launch/mcp-child-env.js.map +1 -1
  76. package/dist/lib/local-db.d.ts +13 -0
  77. package/dist/lib/local-db.d.ts.map +1 -1
  78. package/dist/lib/local-db.js +23 -0
  79. package/dist/lib/local-db.js.map +1 -1
  80. package/dist/lib/local-embeddings-native.d.ts +17 -0
  81. package/dist/lib/local-embeddings-native.d.ts.map +1 -0
  82. package/dist/lib/local-embeddings-native.js +78 -0
  83. package/dist/lib/local-embeddings-native.js.map +1 -0
  84. package/dist/lib/local-embeddings.d.ts.map +1 -1
  85. package/dist/lib/local-embeddings.js +46 -47
  86. package/dist/lib/local-embeddings.js.map +1 -1
  87. package/dist/lib/local-gateway-client.d.ts +2 -2
  88. package/dist/lib/local-gateway-client.d.ts.map +1 -1
  89. package/dist/lib/local-gateway-client.js +43 -31
  90. package/dist/lib/local-gateway-client.js.map +1 -1
  91. package/dist/lib/local-thresholds.d.ts +8 -0
  92. package/dist/lib/local-thresholds.d.ts.map +1 -1
  93. package/dist/lib/local-thresholds.js +8 -0
  94. package/dist/lib/local-thresholds.js.map +1 -1
  95. package/dist/lib/model-cache.d.ts +13 -0
  96. package/dist/lib/model-cache.d.ts.map +1 -1
  97. package/dist/lib/model-cache.js +26 -0
  98. package/dist/lib/model-cache.js.map +1 -1
  99. package/dist/lib/next-step.d.ts +2 -0
  100. package/dist/lib/next-step.d.ts.map +1 -1
  101. package/dist/lib/next-step.js +37 -16
  102. package/dist/lib/next-step.js.map +1 -1
  103. package/dist/lib/node-floor.d.ts +6 -0
  104. package/dist/lib/node-floor.d.ts.map +1 -0
  105. package/dist/lib/node-floor.js +15 -0
  106. package/dist/lib/node-floor.js.map +1 -0
  107. package/dist/lib/safe-config-write.d.ts +24 -1
  108. package/dist/lib/safe-config-write.d.ts.map +1 -1
  109. package/dist/lib/safe-config-write.js +113 -26
  110. package/dist/lib/safe-config-write.js.map +1 -1
  111. package/dist/lib/scope-real.d.ts.map +1 -1
  112. package/dist/lib/search-query.d.ts +21 -0
  113. package/dist/lib/search-query.d.ts.map +1 -1
  114. package/dist/lib/search-query.js +1 -1
  115. package/dist/lib/search-query.js.map +1 -1
  116. package/dist/lib/search-rerank.d.ts +23 -0
  117. package/dist/lib/search-rerank.d.ts.map +1 -0
  118. package/dist/lib/search-rerank.js +63 -0
  119. package/dist/lib/search-rerank.js.map +1 -0
  120. package/dist/lib/suppress-sqlite-warning.d.ts +13 -0
  121. package/dist/lib/suppress-sqlite-warning.d.ts.map +1 -0
  122. package/dist/lib/suppress-sqlite-warning.js +21 -0
  123. package/dist/lib/suppress-sqlite-warning.js.map +1 -0
  124. package/dist/lib/sync/real-env.d.ts.map +1 -1
  125. package/dist/lib/sync/spawn-background.d.ts +1 -1
  126. package/dist/lib/sync/spawn-background.d.ts.map +1 -1
  127. package/dist/lib/sync/spawn-background.js +1 -1
  128. package/dist/lib/sync/spawn-background.js.map +1 -1
  129. package/dist/lib/tar-lite.d.ts +18 -0
  130. package/dist/lib/tar-lite.d.ts.map +1 -0
  131. package/dist/lib/tar-lite.js +120 -0
  132. package/dist/lib/tar-lite.js.map +1 -0
  133. package/dist/lib/user-hooks.d.ts.map +1 -1
  134. package/dist/lib/user-hooks.js +13 -3
  135. package/dist/lib/user-hooks.js.map +1 -1
  136. package/dist/lib/verified-download.d.ts +19 -0
  137. package/dist/lib/verified-download.d.ts.map +1 -0
  138. package/dist/lib/verified-download.js +105 -0
  139. package/dist/lib/verified-download.js.map +1 -0
  140. package/package.json +6 -6
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Everything the on-device embedding path pins: which native runtime, which model files, where
3
+ * each comes from, and the SHA-256 each must hash to.
4
+ *
5
+ * Single source of truth. The loader (embedding-runtime.ts, local-embeddings-native.ts), the
6
+ * release-asset builder (scripts/build-ort-runtime.ts) and `align doctor` all read this file, so
7
+ * the digest the CLI trusts and the digest the workflow publishes cannot drift apart.
8
+ *
9
+ * WHY A DOWNLOAD AT ALL (ALI-1781). `@huggingface/transformers` depends on `onnxruntime-node`,
10
+ * whose npm tarball carries the runtime for EVERY OS and the CUDA/TensorRT providers (548MB
11
+ * installed), plus `onnxruntime-web` (141MB, browser) and `sharp` - 779MB for a CLI whose
12
+ * embeddings need ~46MB of one platform's CPU library. npm has no way to install one platform's
13
+ * slice of a single package, and an `overrides` entry in this package is ignored when it is
14
+ * installed globally. So the runtime for THIS os/arch is fetched once, on first local use, and
15
+ * the digest below is what makes that safe.
16
+ */
17
+ import { join } from 'node:path';
18
+ /** onnxruntime-node release the bundle is cut from. This is the version a plain
19
+ * `npm install @aligndottech/cli` resolved when the vectors in existing graphs were written. */
20
+ export const ORT_VERSION = '1.30.0';
21
+ /** npm `dist.integrity` of the two upstream tarballs the bundles are built from. */
22
+ export const ORT_NODE_NPM_INTEGRITY = 'sha512-twhs1C2C/BFkz1yc5OY0KIU2GUq6DURO7hD4bx5Q2Qy3nAMJwRXW8xU3NVczE29VA9lolLOYepoD8fjTGOfIqw==';
23
+ export const ORT_COMMON_NPM_INTEGRITY = 'sha512-7fdVWjAID1dVhH/G8qK3APARunV4VkBFoCQAP7qp4Wkab0mrorvmc+sqiT+mKXOzDqdjN5j+/Z9nb4gzNPWcyA==';
24
+ /**
25
+ * SHA-256 of the UNCOMPRESSED tar for each platform (see tar-lite.ts: the tar is
26
+ * reproducible, the gzip around it is not). Filled in by `npx tsx scripts/build-ort-runtime.ts`.
27
+ * A platform absent here has no runtime bundle, which is the same set `transformers.js` ran on
28
+ * before: glibc Linux x64/arm64, macOS arm64, Windows x64/arm64.
29
+ */
30
+ export const RUNTIME_SHA256 = {
31
+ 'linux-x64': '8b9fd63b63d9a67c7008b0a54b2f2e18638f473bc6f01cdd777e7e3614a74cd3',
32
+ 'linux-arm64': '85961209b62e6bc301be1596f7019f7c2a632d955ce94799bf298ed713ff8e14',
33
+ 'darwin-arm64': '75da7e3e9dbffaaaabaafe6ca44f4e1afaa00e81cda298d11fc965edccc7f972',
34
+ 'win32-x64': 'dbc1f3a9c90f9def839ac19f2e5f35c60013e164bdfa8b4b90bb87bc40eaa636',
35
+ 'win32-arm64': 'c3f98d500b86aede9bc554e491d6f69c141fd6a497120e2da89a36cb0283bc2b',
36
+ };
37
+ export function runtimeKey(platform = process.platform, arch = process.arch, table = RUNTIME_SHA256) {
38
+ const key = `${platform}-${arch}`;
39
+ return key in table ? key : null;
40
+ }
41
+ export const RUNTIME_TAG = `ort-runtime-v${ORT_VERSION}`;
42
+ export const RUNTIME_DEFAULT_BASE_URL = `https://github.com/aligndottech/align-cli/releases/download/${RUNTIME_TAG}`;
43
+ export function runtimeAssetName(key) {
44
+ return `align-ort-${ORT_VERSION}-${key}.tgz`;
45
+ }
46
+ /** `ALIGN_ORT_RUNTIME_URL` points at a mirror or a pre-staged directory (https:, http: or
47
+ * file:). It changes WHERE the bytes come from and nothing about what they must hash to. */
48
+ export function runtimeUrl(key, env = process.env) {
49
+ const base = (env['ALIGN_ORT_RUNTIME_URL'] || RUNTIME_DEFAULT_BASE_URL).replace(/\/+$/, '');
50
+ return `${base}/${runtimeAssetName(key)}`;
51
+ }
52
+ /** Upper bounds for the extracted runtime. The real figures are ~46MB for the biggest bundle. */
53
+ export const RUNTIME_LIMITS = { maxEntries: 200, maxTotalBytes: 160 * 1024 * 1024 };
54
+ export const MODEL_REPO = 'Xenova/all-MiniLM-L6-v2';
55
+ /** Immutable commit of the model repo; files are fetched by commit, never by `main`. */
56
+ export const MODEL_REVISION = '751bff37182d3f1213fa05d7196b954e230abad9';
57
+ /** Same three files transformers.js fetched for dtype q8 (config.json is not read by us). */
58
+ export const MODEL_FILES = [
59
+ { path: 'onnx/model_quantized.onnx', sha256: 'afdb6f1a0e45b715d0bb9b11772f032c399babd23bfc31fed1c170afc848bdb1', maxBytes: 40 * 1024 * 1024 },
60
+ { path: 'tokenizer.json', sha256: 'da0e79933b9ed51798a3ae27893d3c5fa4a201126cef75586296df9b4d2c62a0', maxBytes: 4 * 1024 * 1024 },
61
+ { path: 'tokenizer_config.json', sha256: '9261e7d79b44c8195c1cada2b453e55b00aeb81e907a6664974b4d7776172ab3', maxBytes: 64 * 1024 },
62
+ ];
63
+ /** `HF_ENDPOINT` is the convention huggingface tooling uses for a mirror. Digest still applies. */
64
+ export function modelFileUrl(file, env = process.env) {
65
+ const host = (env['HF_ENDPOINT'] || 'https://huggingface.co').replace(/\/+$/, '');
66
+ return `${host}/${MODEL_REPO}/resolve/${MODEL_REVISION}/${file.path}`;
67
+ }
68
+ export function runtimeDir(root, key) {
69
+ return join(root, 'ort', `${ORT_VERSION}-${key}`);
70
+ }
71
+ export function modelDir(root) {
72
+ return join(root, 'hf', ...MODEL_REPO.split('/'), MODEL_REVISION.slice(0, 12));
73
+ }
74
+ //# sourceMappingURL=embedding-assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-assets.js","sourceRoot":"","sources":["../../src/lib/embedding-assets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { type ModelFile } from './embedding-assets.js';
2
+ /** The cache is empty and this process may not fill it (hook), or the platform has no runtime. */
3
+ export declare class EmbeddingAssetsMissing extends Error {
4
+ readonly reason: 'not-downloaded' | 'unsupported-platform';
5
+ constructor(message: string, reason: 'not-downloaded' | 'unsupported-platform');
6
+ }
7
+ export interface EnsureOptions {
8
+ allowDownload: boolean;
9
+ env?: Record<string, string | undefined>;
10
+ /** Cache root override (tests). Defaults to modelCacheDir(env, opts.platform ?? process.platform). */
11
+ root?: string;
12
+ platform?: string;
13
+ arch?: string;
14
+ fetchImpl?: typeof fetch;
15
+ /** One-line progress notice, shown only when a download actually starts. */
16
+ notice?: (message: string) => void;
17
+ /** Test seam: swap the pinned digests for a tiny fixture. Production never sets it. */
18
+ pins?: {
19
+ runtimeSha256?: Readonly<Record<string, string>>;
20
+ modelFiles?: readonly ModelFile[];
21
+ };
22
+ }
23
+ export declare function ensureRuntime(opts: EnsureOptions): Promise<string>;
24
+ export declare function ensureModel(opts: EnsureOptions): Promise<string>;
25
+ export interface OrtApi {
26
+ InferenceSession: {
27
+ create(path: string, options?: Record<string, unknown>): Promise<{
28
+ inputNames: readonly string[];
29
+ outputNames: readonly string[];
30
+ run(feeds: Record<string, unknown>): Promise<Record<string, {
31
+ data: Float32Array | ArrayLike<number>;
32
+ }>>;
33
+ }>;
34
+ };
35
+ Tensor: new (type: string, data: BigInt64Array, dims: number[]) => unknown;
36
+ }
37
+ /** Load the downloaded wrapper by ABSOLUTE path. The JS inside it resolves its own sibling
38
+ * `../bin/...` binding and its bundled onnxruntime-common, so nothing here depends on how, or
39
+ * whether, this package's own node_modules were laid out. */
40
+ export declare function loadOrt(dir: string): OrtApi;
41
+ //# sourceMappingURL=embedding-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-runtime.d.ts","sourceRoot":"","sources":["../../src/lib/embedding-runtime.ts"],"names":[],"mappings":"AAmBA,OAAO,EACkC,KAAK,SAAS,EAEtD,MAAM,uBAAuB,CAAC;AAM/B,kGAAkG;AAClG,qBAAa,sBAAuB,SAAQ,KAAK;IAClB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,sBAAsB;gBAA3E,OAAO,EAAE,MAAM,EAAW,MAAM,EAAE,gBAAgB,GAAG,sBAAsB;CAIxF;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,sGAAsG;IACtG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,uFAAuF;IACvF,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAAC,UAAU,CAAC,EAAE,SAAS,SAAS,EAAE,CAAA;KAAE,CAAC;CAChG;AAoGD,wBAAsB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAqCxE;AAMD,wBAAsB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAmCtE;AAED,MAAM,WAAW,MAAM;IACrB,gBAAgB,EAAE;QAChB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;YAC/D,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;YAC9B,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;YAC/B,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;gBAAE,IAAI,EAAE,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;aAAE,CAAC,CAAC,CAAC;SAC1G,CAAC,CAAC;KACJ,CAAC;IACF,MAAM,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;CAC5E;AAED;;8DAE8D;AAC9D,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI3C"}
@@ -0,0 +1,224 @@
1
+ /**
2
+ * Fetch, verify, cache and load the two things on-device embeddings need that npm no longer
3
+ * ships (ALI-1781): the native ONNX Runtime for THIS os/arch, and the model files.
4
+ *
5
+ * Contract:
6
+ * - Every byte is checked against a digest pinned in embedding-assets.ts BEFORE it touches the
7
+ * cache. A mismatch throws and leaves nothing behind.
8
+ * - Writes go to a private temp dir beside the target and are renamed into place, so a crash,
9
+ * Ctrl-C or a second process racing the first never leaves a half-written cache that a later
10
+ * run would load.
11
+ * - Nothing is written under the install tree, ever (model-cache.ts: modelCacheDir).
12
+ * - `allowDownload: false` (agent hooks) never touches the network: a hook runs on every edit
13
+ * and must not stall the edit on a 20MB download. It throws EmbeddingAssetsMissing instead,
14
+ * which the advisory hook already reports as "could not check" and exits 0.
15
+ */
16
+ import { createHash, randomBytes } from 'node:crypto';
17
+ import { existsSync, lstatSync, mkdirSync, readdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from 'node:fs';
18
+ import { createRequire } from 'node:module';
19
+ import { dirname, join } from 'node:path';
20
+ import { MODEL_FILES, MODEL_REVISION, modelDir, modelFileUrl, ORT_VERSION, RUNTIME_LIMITS, RUNTIME_SHA256, runtimeDir, runtimeKey, runtimeUrl, } from './embedding-assets.js';
21
+ import { modelCacheDir } from './model-cache.js';
22
+ import { ensurePrivateDir } from './private-files.js';
23
+ import { extractTar } from './tar-lite.js';
24
+ import { fetchVerified } from './verified-download.js';
25
+ /** The cache is empty and this process may not fill it (hook), or the platform has no runtime. */
26
+ export class EmbeddingAssetsMissing extends Error {
27
+ reason;
28
+ constructor(message, reason) {
29
+ super(message);
30
+ this.reason = reason;
31
+ this.name = 'EmbeddingAssetsMissing';
32
+ }
33
+ }
34
+ const MARKER = '.verified';
35
+ function marker(content) {
36
+ return createHash('sha256').update(content).digest('hex');
37
+ }
38
+ /** Every entry under `dir` except the marker, as [relative path, size]. Throws on anything that is
39
+ * not a plain file or directory (a symlink, a device), and on loose ownership or modes. */
40
+ function listTree(dir, rel = '') {
41
+ const out = [];
42
+ const uid = typeof process.getuid === 'function' ? process.getuid() : null;
43
+ for (const name of readdirSync(join(dir, rel))) {
44
+ if (rel === '' && name === MARKER)
45
+ continue;
46
+ const r = rel ? `${rel}/${name}` : name;
47
+ const st = lstatSync(join(dir, r));
48
+ if (st.isSymbolicLink())
49
+ throw new Error(`symlink in cache: ${r}`);
50
+ // POSIX only: a cache entry another user owns, or anyone but the owner may write, is not ours.
51
+ if (uid !== null && (st.uid !== uid || (st.mode & 0o022) !== 0))
52
+ throw new Error(`cache entry not exclusively ours: ${r}`);
53
+ if (st.isDirectory())
54
+ out.push(...listTree(dir, r));
55
+ else if (st.isFile())
56
+ out.push({ rel: r, size: st.size });
57
+ else
58
+ throw new Error(`unexpected file type in cache: ${r}`);
59
+ }
60
+ return out;
61
+ }
62
+ /** The marker is not just a flag: it records the digest it was written for AND the exact file list
63
+ * with sizes, so a directory that merely contains a copied `.verified` (a repo's, a shared /tmp's)
64
+ * is not trusted, and neither is one with a file added, swapped for a symlink or resized. It does
65
+ * not re-hash the 46MB (the load runs on every edit hook), so a same-user attacker who preserves
66
+ * sizes is out of scope: that user can edit the CLI itself. `align doctor` re-hashes the model. */
67
+ function writeMarker(dir, digest) {
68
+ const files = listTree(dir).map((f) => [f.rel, f.size]).sort();
69
+ writeFileSync(join(dir, MARKER), `${JSON.stringify({ marker: digest, files })}\n`, { mode: 0o644 });
70
+ }
71
+ function isComplete(dir, expected) {
72
+ try {
73
+ const m = JSON.parse(readFileSync(join(dir, MARKER), 'utf8'));
74
+ if (m.marker !== expected || !Array.isArray(m.files))
75
+ return false;
76
+ const have = listTree(dir).map((f) => [f.rel, f.size]).sort();
77
+ return JSON.stringify(have) === JSON.stringify([...m.files].sort());
78
+ }
79
+ catch {
80
+ return false;
81
+ }
82
+ }
83
+ /** Windows antivirus and indexers hold freshly written files; a rename then fails with a transient
84
+ * EPERM/EBUSY/EACCES that goes away within moments. */
85
+ function renameWithRetry(from, to) {
86
+ for (let attempt = 0;; attempt++) {
87
+ try {
88
+ renameSync(from, to);
89
+ return;
90
+ }
91
+ catch (err) {
92
+ const code = err.code;
93
+ if (attempt >= 8 || !(code === 'EPERM' || code === 'EBUSY' || code === 'EACCES'))
94
+ throw err;
95
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, 50 * (attempt + 1));
96
+ }
97
+ }
98
+ }
99
+ /** Interrupted extractions leave `.tmp-*` siblings (up to ~46MB each). Remove old ones. */
100
+ function sweepStaleTemps(parent) {
101
+ try {
102
+ for (const name of readdirSync(parent)) {
103
+ if (!name.startsWith('.tmp-'))
104
+ continue;
105
+ const st = statSync(join(parent, name));
106
+ if (Date.now() - st.mtimeMs > 3_600_000)
107
+ rmSync(join(parent, name), { recursive: true, force: true });
108
+ }
109
+ }
110
+ catch { /* nothing to sweep, or a race with another process: both fine */ }
111
+ }
112
+ function tempSibling(target) {
113
+ return join(dirname(target), `.tmp-${process.pid}-${randomBytes(4).toString('hex')}`);
114
+ }
115
+ /** Publish `tmp` as `target`. A concurrent run that got there first wins, provided what it left
116
+ * is complete. A target that exists but is NOT complete (a stale or damaged cache) is replaced,
117
+ * so a bad cache heals on the next run instead of failing every run after it. */
118
+ function publish(tmp, target, expectedMarker) {
119
+ try {
120
+ renameWithRetry(tmp, target);
121
+ return;
122
+ }
123
+ catch (err) {
124
+ if (isComplete(target, expectedMarker)) {
125
+ rmSync(tmp, { recursive: true, force: true });
126
+ return;
127
+ }
128
+ if (!existsSync(target)) {
129
+ rmSync(tmp, { recursive: true, force: true });
130
+ throw err;
131
+ }
132
+ }
133
+ try {
134
+ rmSync(target, { recursive: true, force: true });
135
+ renameWithRetry(tmp, target);
136
+ }
137
+ catch (err) {
138
+ rmSync(tmp, { recursive: true, force: true });
139
+ if (!isComplete(target, expectedMarker))
140
+ throw err;
141
+ }
142
+ }
143
+ export async function ensureRuntime(opts) {
144
+ const env = opts.env ?? process.env;
145
+ const key = runtimeKey(opts.platform, opts.arch, opts.pins?.runtimeSha256);
146
+ if (!key) {
147
+ throw new EmbeddingAssetsMissing(`No on-device embedding runtime is published for ${opts.platform ?? process.platform}-${opts.arch ?? process.arch} ` +
148
+ '(supported: glibc Linux x64/arm64, macOS arm64, Windows x64/arm64).', 'unsupported-platform');
149
+ }
150
+ const root = opts.root ?? modelCacheDir(env, opts.platform ?? process.platform);
151
+ const digest = (opts.pins?.runtimeSha256 ?? RUNTIME_SHA256)[key];
152
+ const target = runtimeDir(root, key);
153
+ const want = marker(digest);
154
+ if (isComplete(target, want))
155
+ return target;
156
+ if (!opts.allowDownload) {
157
+ throw new EmbeddingAssetsMissing(`The on-device embedding runtime (ONNX Runtime ${ORT_VERSION}) is not downloaded yet. Run \`align doctor\` or any local command (for example \`align ask\`) once, outside an agent hook, to fetch it.`, 'not-downloaded');
158
+ }
159
+ opts.notice?.(`Downloading the on-device embedding runtime (ONNX Runtime ${ORT_VERSION}, ${key}), one time...`);
160
+ const tar = await fetchVerified(runtimeUrl(key, env), {
161
+ sha256: digest, maxBytes: RUNTIME_LIMITS.maxTotalBytes, gunzip: true, fetchImpl: opts.fetchImpl,
162
+ });
163
+ ensurePrivateDir(dirname(target));
164
+ sweepStaleTemps(dirname(target));
165
+ const tmp = tempSibling(target);
166
+ try {
167
+ extractTar(tar, tmp, RUNTIME_LIMITS);
168
+ writeMarker(tmp, want);
169
+ }
170
+ catch (err) {
171
+ rmSync(tmp, { recursive: true, force: true });
172
+ throw err;
173
+ }
174
+ publish(tmp, target, want);
175
+ return target;
176
+ }
177
+ function modelMarker(files) {
178
+ return marker(`${MODEL_REVISION}\n${files.map((f) => `${f.path} ${f.sha256}`).join('\n')}`);
179
+ }
180
+ export async function ensureModel(opts) {
181
+ const env = opts.env ?? process.env;
182
+ const root = opts.root ?? modelCacheDir(env, opts.platform ?? process.platform);
183
+ const target = modelDir(root);
184
+ const files = opts.pins?.modelFiles ?? MODEL_FILES;
185
+ const want = modelMarker(files);
186
+ if (isComplete(target, want))
187
+ return target;
188
+ if (!opts.allowDownload) {
189
+ throw new EmbeddingAssetsMissing('The on-device embedding model is not downloaded yet. Run `align doctor` or any local command (for example `align ask`) once, outside an agent hook, to fetch it.', 'not-downloaded');
190
+ }
191
+ opts.notice?.('Downloading the on-device embedding model (~23MB, Xenova/all-MiniLM-L6-v2), one time...');
192
+ const fetched = [];
193
+ for (const f of files) {
194
+ fetched.push([f, await fetchVerified(modelFileUrl(f, env), { sha256: f.sha256, maxBytes: f.maxBytes, fetchImpl: opts.fetchImpl })]);
195
+ }
196
+ ensurePrivateDir(dirname(target));
197
+ sweepStaleTemps(dirname(target));
198
+ const tmp = tempSibling(target);
199
+ try {
200
+ for (const [f, data] of fetched) {
201
+ const dest = join(tmp, f.path);
202
+ mkdirSync(dirname(dest), { recursive: true, mode: 0o700 });
203
+ // Explicit mode: the default is 0666 minus umask, which is group-writable under umask 002 (Ubuntu's default).
204
+ writeFileSync(dest, data, { mode: 0o644 });
205
+ }
206
+ writeMarker(tmp, want);
207
+ }
208
+ catch (err) {
209
+ rmSync(tmp, { recursive: true, force: true });
210
+ throw err;
211
+ }
212
+ publish(tmp, target, want);
213
+ return target;
214
+ }
215
+ /** Load the downloaded wrapper by ABSOLUTE path. The JS inside it resolves its own sibling
216
+ * `../bin/...` binding and its bundled onnxruntime-common, so nothing here depends on how, or
217
+ * whether, this package's own node_modules were laid out. */
218
+ export function loadOrt(dir) {
219
+ const entry = join(dir, 'dist', 'index.js');
220
+ if (!existsSync(entry))
221
+ throw new Error(`runtime bundle at ${dir} has no dist/index.js`);
222
+ return createRequire(join(dir, 'package.json'))(entry);
223
+ }
224
+ //# sourceMappingURL=embedding-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-runtime.js","sourceRoot":"","sources":["../../src/lib/embedding-runtime.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export declare function gitCaptureSkips(counts: {
11
11
  scanned: number;
12
12
  kept: number;
13
13
  rejectedByRationale: number;
14
+ droppedByCap?: number;
14
15
  }): CaptureSkip[];
15
16
  /**
16
17
  * The whole git report, one writer for `align setup` and `align connect git`. `--limit`
@@ -24,11 +25,13 @@ export declare function gitCaptureReport(counts: {
24
25
  kept: number;
25
26
  rejectedByRationale: number;
26
27
  limit: number;
28
+ droppedByCap?: number;
27
29
  }): CaptureFetchReport;
28
30
  /** Read-only local-git import. The canonical GitFetcher in connector-core is
29
31
  * pure; the CLI injects the actual git I/O (log/remote) here. */
30
32
  export declare function fetchGitItems(opts: {
31
33
  limit: number;
32
34
  since?: string;
35
+ keep?: number;
33
36
  }): Promise<CaptureFetchResult>;
34
37
  //# sourceMappingURL=git.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/lib/fetchers/git.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAExF;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,EAAE,CAerH;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;CAC3E,GAAG,kBAAkB,CAQrB;AAED;kEACkE;AAClE,wBAAsB,aAAa,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAWxG"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/lib/fetchers/git.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAExF;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,EAAE,CAmB5I;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAClG,GAAG,kBAAkB,CAQrB;AAED;kEACkE;AAClE,wBAAsB,aAAa,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAWvH"}
@@ -10,17 +10,21 @@ import { MECHANICAL_SUBJECT_PREFIXES } from '../commit-shape.js';
10
10
  * scanned commit into one of those three buckets and nothing else.
11
11
  */
12
12
  export function gitCaptureSkips(counts) {
13
- const mechanical = counts.scanned - counts.kept - counts.rejectedByRationale;
13
+ const capped = counts.droppedByCap ?? 0;
14
+ const mechanical = counts.scanned - counts.kept - counts.rejectedByRationale - capped;
14
15
  return [
16
+ ...(capped > 0
17
+ ? [{ count: capped, detail: 'older commits that state a reason, not imported (a first import keeps the newest; `align connect git --limit` reads further)' }]
18
+ : []),
15
19
  ...(counts.rejectedByRationale > 0
16
- ? [{ count: counts.rejectedByRationale, detail: 'commits stated no reason beyond the subject' }]
20
+ ? [{ count: counts.rejectedByRationale, detail: 'skipped: commit message states no reason beyond the subject' }]
17
21
  : []),
18
22
  ...(mechanical > 0
19
23
  ? [{
20
24
  count: mechanical,
21
25
  // The list is the one the predicate is built from, so the line cannot name a
22
26
  // different set than the one that did the rejecting.
23
- detail: `commits with a mechanical or too-short subject (${MECHANICAL_SUBJECT_PREFIXES.join(', ')})`,
27
+ detail: `skipped as housekeeping: mechanical or too-short subject (${MECHANICAL_SUBJECT_PREFIXES.join(', ')})`,
24
28
  }]
25
29
  : []),
26
30
  ];
@@ -47,12 +51,12 @@ export async function fetchGitItems(opts) {
47
51
  // Read ONCE and hand the commits to the pure GitFetcher, rather than letting it call
48
52
  // git again: two reads of a moving history are two different answers, and the scanned
49
53
  // and rejected counts have to describe the same read the items came from.
50
- const { commits, scanned, rejectedByRationale } = await getCommitHistoryDetailed({ limit: opts.limit, ...(opts.since !== undefined ? { from: opts.since } : {}) });
54
+ const { commits, scanned, rejectedByRationale, droppedByCap } = await getCommitHistoryDetailed({ limit: opts.limit, ...(opts.since !== undefined ? { from: opts.since } : {}), ...(opts.keep !== undefined ? { keep: opts.keep } : {}) });
51
55
  const items = await new GitFetcher({ getCommitHistory: async () => commits, getRemoteUrl })
52
56
  .fetch({ token: '', limit: opts.limit });
53
57
  return {
54
58
  items,
55
- report: gitCaptureReport({ scanned, kept: commits.length, rejectedByRationale, limit: opts.limit }),
59
+ report: gitCaptureReport({ scanned, kept: commits.length, rejectedByRationale, limit: opts.limit, droppedByCap }),
56
60
  };
57
61
  }
58
62
  //# sourceMappingURL=git.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/lib/fetchers/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAGjE;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,MAAsE;IACpG,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC;IAC7E,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,mBAAmB,GAAG,CAAC;YAChC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,EAAE,6CAA6C,EAAE,CAAC;YAChG,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,UAAU,GAAG,CAAC;YAChB,CAAC,CAAC,CAAC;oBACC,KAAK,EAAE,UAAU;oBACjB,6EAA6E;oBAC7E,qDAAqD;oBACrD,MAAM,EAAE,mDAAmD,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;iBACrG,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAEhC;IACC,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,6FAA6F;QAC7F,QAAQ,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK;QACvC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED;kEACkE;AAClE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAuC;IACzE,qFAAqF;IACrF,sFAAsF;IACtF,0EAA0E;IAC1E,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,MAAM,wBAAwB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnK,MAAM,KAAK,GAAG,MAAM,IAAI,UAAU,CAAC,EAAE,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;SACxF,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3C,OAAO;QACL,KAAK;QACL,MAAM,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;KACpG,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/lib/fetchers/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAGjE;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,MAA6F;IAC3H,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAC;IACtF,OAAO;QACL,GAAG,CAAC,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,8HAA8H,EAAE,CAAC;YAC7J,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,MAAM,CAAC,mBAAmB,GAAG,CAAC;YAChC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,EAAE,6DAA6D,EAAE,CAAC;YAChH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,UAAU,GAAG,CAAC;YAChB,CAAC,CAAC,CAAC;oBACC,KAAK,EAAE,UAAU;oBACjB,6EAA6E;oBAC7E,qDAAqD;oBACrD,MAAM,EAAE,6DAA6D,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;iBAC/G,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAEhC;IACC,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,6FAA6F;QAC7F,QAAQ,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK;QACvC,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED;kEACkE;AAClE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAsD;IACxF,qFAAqF;IACrF,sFAAsF;IACtF,0EAA0E;IAC1E,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,GAAG,MAAM,wBAAwB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1O,MAAM,KAAK,GAAG,MAAM,IAAI,UAAU,CAAC,EAAE,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;SACxF,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3C,OAAO;QACL,KAAK;QACL,MAAM,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;KAClH,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"found-summary.d.ts","sourceRoot":"","sources":["../../src/lib/found-summary.ts"],"names":[],"mappings":"AAeA,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,4FAA4F;AAC5F,MAAM,WAAW,cAAc;IAC7B,QAAQ,IAAI;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,aAAa,IAAI,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACjF,SAAS,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1F;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,YAAY,CAwBlE;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAyB1D"}
1
+ {"version":3,"file":"found-summary.d.ts","sourceRoot":"","sources":["../../src/lib/found-summary.ts"],"names":[],"mappings":"AAeA,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,4FAA4F;AAC5F,MAAM,WAAW,cAAc;IAC7B,QAAQ,IAAI;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,aAAa,IAAI,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACjF,SAAS,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1F;AAUD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,YAAY,CA+BlE;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CA2B1D"}
@@ -14,6 +14,13 @@
14
14
  import { localCitationFor } from './commit-cite.js';
15
15
  /** How many decisions the summary names. Five fits a terminal without scrolling. */
16
16
  export const FOUND_SUMMARY_MAX = 5;
17
+ /**
18
+ * ALI-1772: subjects that read as housekeeping, not as a choice. The importer keeps them (a
19
+ * docs commit can state a reason), so this only decides what the first-run box SHOWS first.
20
+ * Conventional `type:` / `type(scope):` shapes only, so prose like "document the retry
21
+ * policy" is not demoted; plus git's own Merge subjects (not prose like "Merge the two workers") and a `[DRAFT` / `[WIP` marker.
22
+ */
23
+ const HOUSEKEEPING_SUBJECT = /^(?:(?:docs|chore|ci|test|style|build)(?:\([^)]*\))?!?:|merge\s+(?:pull request|branch|remote-tracking|tag)\b|\[(?:draft|wip)\b)/i;
17
24
  export function buildFoundSummary(db) {
18
25
  // The graph total comes from the db's COUNT, never from the length of the page
19
26
  // below - those differ by two orders of magnitude on a real repo, and reporting
@@ -30,7 +37,14 @@ export function buildFoundSummary(db) {
30
37
  // listDecisions() is already ordered created_at DESC, so the head of it is the
31
38
  // recent page. The cap is applied here rather than in the renderer so a caller
32
39
  // reading `recent.length` gets the number that will actually be printed.
33
- const recent = db.listDecisions().slice(0, FOUND_SUMMARY_MAX).map((row) => {
40
+ // Housekeeping subjects sort after the rest (stable, so db order holds inside each group)
41
+ // and still fill the sample when too few real changes exist.
42
+ const rows = db.listDecisions();
43
+ const ranked = [
44
+ ...rows.filter((r) => !HOUSEKEEPING_SUBJECT.test(r.title)),
45
+ ...rows.filter((r) => HOUSEKEEPING_SUBJECT.test(r.title)),
46
+ ];
47
+ const recent = ranked.slice(0, FOUND_SUMMARY_MAX).map((row) => {
34
48
  const cite = localCitationFor(row.sourceUrl);
35
49
  return { title: row.title, ...(cite ? { cite } : {}) };
36
50
  });
@@ -47,8 +61,10 @@ export function renderFoundSummary(s) {
47
61
  // be a permanent zero beside a real one - the same broken-counter read this ticket
48
62
  // removes from `align status`.
49
63
  const counts = s.linked > 0
50
- ? ` ${s.total} decisions found, ${s.linked} with connections`
51
- : ` ${s.total} decisions found`;
64
+ ? ` ${s.total} candidate decisions found, ${s.linked} with connections`
65
+ : ` ${s.total} candidate decisions found`;
66
+ // "candidate": the importer keeps commits whose message states a reason. That is a text
67
+ // heuristic, so the box does not claim to know which of them were real decisions.
52
68
  const lines = [counts];
53
69
  if (s.recent.length > 0) {
54
70
  lines.push('');
@@ -1 +1 @@
1
- {"version":3,"file":"found-summary.js","sourceRoot":"","sources":["../../src/lib/found-summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,oFAAoF;AACpF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAuBnC,MAAM,UAAU,iBAAiB,CAAC,EAAkB;IAClD,+EAA+E;IAC/E,gFAAgF;IAChF,uDAAuD;IACvD,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC;IAEtC,mFAAmF;IACnF,kFAAkF;IAClF,qDAAqD;IACrD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,+EAA+E;IAC/E,+EAA+E;IAC/E,yEAAyE;IACzE,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACxE,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,CAAe;IAChD,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QAClB,gFAAgF;QAChF,4EAA4E;QAC5E,OAAO,2CAA2C,CAAC;IACrD,CAAC;IAED,gFAAgF;IAChF,mFAAmF;IACnF,mFAAmF;IACnF,+BAA+B;IAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;QACzB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,qBAAqB,CAAC,CAAC,MAAM,mBAAmB;QAC9D,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,kBAAkB,CAAC;IAEnC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YACzB,8EAA8E;YAC9E,4EAA4E;YAC5E,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"found-summary.js","sourceRoot":"","sources":["../../src/lib/found-summary.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-client.d.ts","sourceRoot":"","sources":["../../src/lib/gateway-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway-client.d.ts","sourceRoot":"","sources":["../../src/lib/gateway-client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { LOCAL_DEFAULT_GATEWAY_URL } from './config.js';
1
+ import { defaultGatewayUrlFor, hasCredential, LOCAL_DEFAULT_GATEWAY_URL } from './config.js';
2
2
  import { createLocalGatewayClient } from './local-gateway-client.js';
3
3
  import pkg from '../../package.json' with { type: 'json' };
4
4
  /**
@@ -188,9 +188,29 @@ function buildHttpGatewayClient(env) {
188
188
  throw new Error('Local mode is not set up here. Run `align --local` to create a local decision graph, ' +
189
189
  'or pass --env preview / --env prod to use a cloud environment instead.');
190
190
  }
191
+ /**
192
+ * ALI-1777: a built-in cloud env (prod, preview) at its own default URL with no token
193
+ * means this machine was never set up, which a bare "Gateway returned 401 ... unauthorized"
194
+ * did not say. Thrown before the dial, like the two checks above. A SAVED token the gateway
195
+ * rejects is not this case and still reports the 401. A self-hosted
196
+ * URL (ALIGN_GATEWAY_URL) is left alone: there, no token may be a real request. A tenant with no token is
197
+ * refused by assertAuthenticatedIdentity first. The env is named from the URL, so an ALIGN_GATEWAY_URL
198
+ * pointing a built-in env at the other built-in's URL gets that URL's hint (refusal is still correct).
199
+ */
200
+ function assertSetUp() {
201
+ if (env.mode !== 'auth' || hasCredential(env))
202
+ return;
203
+ const name = ['prod', 'preview'].find((n) => defaultGatewayUrlFor(n) === gatewayUrl);
204
+ if (!name)
205
+ return;
206
+ throw new Error(name === 'prod'
207
+ ? 'Align is not set up on this machine. Run `align` to set it up.'
208
+ : 'Align is not set up for preview on this machine. Run `align login --env preview`.');
209
+ }
191
210
  async function request(path, options = {}) {
192
211
  assertAuthenticatedIdentity();
193
212
  assertLocalModeConfigured();
213
+ assertSetUp();
194
214
  const { maxBytes, ...fetchOptions } = options;
195
215
  try {
196
216
  const res = await fetch(`${gatewayUrl}${path}`, {