@aligndottech/cli 0.37.0 → 0.38.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/README.md +16 -10
- package/dist/cli.d.ts +28 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +98 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/check.d.ts +1 -1
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +44 -2
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/connect-agents.d.ts +1 -0
- package/dist/commands/connect-agents.d.ts.map +1 -1
- package/dist/commands/connect-agents.js +10 -6
- package/dist/commands/connect-agents.js.map +1 -1
- package/dist/commands/connect.d.ts +31 -0
- package/dist/commands/connect.d.ts.map +1 -0
- package/dist/commands/connect.js +92 -0
- package/dist/commands/connect.js.map +1 -0
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +52 -10
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/decisions/index.d.ts.map +1 -1
- package/dist/commands/decisions/index.js +5 -0
- package/dist/commands/decisions/index.js.map +1 -1
- package/dist/commands/default-action.d.ts +3 -1
- package/dist/commands/default-action.d.ts.map +1 -1
- package/dist/commands/default-action.js +29 -27
- package/dist/commands/default-action.js.map +1 -1
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +3 -0
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/import/sessions.d.ts +10 -2
- package/dist/commands/import/sessions.d.ts.map +1 -1
- package/dist/commands/import/sessions.js +98 -3
- package/dist/commands/import/sessions.js.map +1 -1
- package/dist/commands/import.d.ts +7 -0
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +42 -2
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/invite.d.ts +25 -0
- package/dist/commands/invite.d.ts.map +1 -0
- package/dist/commands/invite.js +68 -0
- package/dist/commands/invite.js.map +1 -0
- package/dist/commands/links.d.ts.map +1 -1
- package/dist/commands/links.js +5 -0
- package/dist/commands/links.js.map +1 -1
- package/dist/commands/mcp.d.ts +64 -35
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +85 -40
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/ratify.d.ts.map +1 -1
- package/dist/commands/ratify.js +21 -0
- package/dist/commands/ratify.js.map +1 -1
- package/dist/commands/registry.d.ts +30 -0
- package/dist/commands/registry.d.ts.map +1 -0
- package/dist/commands/registry.js +70 -0
- package/dist/commands/registry.js.map +1 -0
- package/dist/commands/setup.d.ts +45 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +197 -88
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +10 -22
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/telemetry.d.ts +7 -3
- package/dist/commands/telemetry.d.ts.map +1 -1
- package/dist/commands/telemetry.js +12 -7
- package/dist/commands/telemetry.js.map +1 -1
- package/dist/commands/why.d.ts.map +1 -1
- package/dist/commands/why.js +54 -12
- package/dist/commands/why.js.map +1 -1
- package/dist/index.js +4 -90
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-rules.d.ts +1 -0
- package/dist/lib/agent-rules.d.ts.map +1 -1
- package/dist/lib/agent-rules.js +60 -0
- package/dist/lib/agent-rules.js.map +1 -1
- package/dist/lib/capture-report.d.ts +4 -0
- package/dist/lib/capture-report.d.ts.map +1 -1
- package/dist/lib/capture-report.js +18 -1
- package/dist/lib/capture-report.js.map +1 -1
- package/dist/lib/commands-doc.d.ts +15 -0
- package/dist/lib/commands-doc.d.ts.map +1 -0
- package/dist/lib/commands-doc.js +85 -0
- package/dist/lib/commands-doc.js.map +1 -0
- package/dist/lib/config.d.ts +14 -2
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +7 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/connect-prompt.d.ts +1 -1
- package/dist/lib/connect-prompt.js +2 -2
- package/dist/lib/connect-prompt.js.map +1 -1
- package/dist/lib/decision-links.d.ts +39 -0
- package/dist/lib/decision-links.d.ts.map +1 -1
- package/dist/lib/decision-links.js +51 -0
- package/dist/lib/decision-links.js.map +1 -1
- package/dist/lib/fetchers/linear.d.ts.map +1 -1
- package/dist/lib/fetchers/linear.js +27 -1
- package/dist/lib/fetchers/linear.js.map +1 -1
- package/dist/lib/fetchers/slack.d.ts +12 -1
- package/dist/lib/fetchers/slack.d.ts.map +1 -1
- package/dist/lib/fetchers/slack.js +12 -1
- package/dist/lib/fetchers/slack.js.map +1 -1
- package/dist/lib/first-decision.d.ts +22 -0
- package/dist/lib/first-decision.d.ts.map +1 -0
- package/dist/lib/first-decision.js +22 -0
- package/dist/lib/first-decision.js.map +1 -0
- package/dist/lib/gateway-client.d.ts +13 -0
- package/dist/lib/gateway-client.d.ts.map +1 -1
- package/dist/lib/gateway-client.js +38 -0
- package/dist/lib/gateway-client.js.map +1 -1
- package/dist/lib/git.d.ts +28 -0
- package/dist/lib/git.d.ts.map +1 -1
- package/dist/lib/git.js +42 -0
- package/dist/lib/git.js.map +1 -1
- package/dist/lib/hook-context.d.ts +7 -0
- package/dist/lib/hook-context.d.ts.map +1 -0
- package/dist/lib/hook-context.js +37 -0
- package/dist/lib/hook-context.js.map +1 -0
- package/dist/lib/hook-payload.d.ts +7 -0
- package/dist/lib/hook-payload.d.ts.map +1 -1
- package/dist/lib/hook-payload.js +56 -8
- package/dist/lib/hook-payload.js.map +1 -1
- package/dist/lib/invite-prompt.d.ts +46 -0
- package/dist/lib/invite-prompt.d.ts.map +1 -0
- package/dist/lib/invite-prompt.js +63 -0
- package/dist/lib/invite-prompt.js.map +1 -0
- package/dist/lib/local-db.d.ts +32 -2
- package/dist/lib/local-db.d.ts.map +1 -1
- package/dist/lib/local-db.js +80 -5
- package/dist/lib/local-db.js.map +1 -1
- package/dist/lib/local-embeddings.d.ts +14 -0
- package/dist/lib/local-embeddings.d.ts.map +1 -1
- package/dist/lib/local-embeddings.js +16 -2
- package/dist/lib/local-embeddings.js.map +1 -1
- package/dist/lib/local-gateway-client.d.ts.map +1 -1
- package/dist/lib/local-gateway-client.js +23 -3
- package/dist/lib/local-gateway-client.js.map +1 -1
- package/dist/lib/local-llm.d.ts +60 -5
- package/dist/lib/local-llm.d.ts.map +1 -1
- package/dist/lib/local-llm.js +92 -10
- package/dist/lib/local-llm.js.map +1 -1
- package/dist/lib/mcp-instructions.shared.d.ts +40 -0
- package/dist/lib/mcp-instructions.shared.d.ts.map +1 -0
- package/dist/lib/mcp-instructions.shared.js +56 -0
- package/dist/lib/mcp-instructions.shared.js.map +1 -0
- package/dist/lib/mcp-setup.d.ts +32 -2
- package/dist/lib/mcp-setup.d.ts.map +1 -1
- package/dist/lib/mcp-setup.js +92 -6
- package/dist/lib/mcp-setup.js.map +1 -1
- package/dist/lib/next-step.d.ts +92 -0
- package/dist/lib/next-step.d.ts.map +1 -0
- package/dist/lib/next-step.js +97 -0
- package/dist/lib/next-step.js.map +1 -0
- package/dist/lib/personal-email-domains.d.ts +8 -0
- package/dist/lib/personal-email-domains.d.ts.map +1 -0
- package/dist/lib/personal-email-domains.js +39 -0
- package/dist/lib/personal-email-domains.js.map +1 -0
- package/dist/lib/personal-import.d.ts +2 -0
- package/dist/lib/personal-import.d.ts.map +1 -1
- package/dist/lib/personal-import.js +4 -1
- package/dist/lib/personal-import.js.map +1 -1
- package/dist/lib/read-value-rollup.d.ts +18 -0
- package/dist/lib/read-value-rollup.d.ts.map +1 -0
- package/dist/lib/read-value-rollup.js +33 -0
- package/dist/lib/read-value-rollup.js.map +1 -0
- package/dist/lib/sessions/import-summary.d.ts +39 -0
- package/dist/lib/sessions/import-summary.d.ts.map +1 -0
- package/dist/lib/sessions/import-summary.js +41 -0
- package/dist/lib/sessions/import-summary.js.map +1 -0
- package/dist/lib/sessions/memory-files.d.ts +85 -0
- package/dist/lib/sessions/memory-files.d.ts.map +1 -0
- package/dist/lib/sessions/memory-files.js +235 -0
- package/dist/lib/sessions/memory-files.js.map +1 -0
- package/dist/lib/sessions/source-url.d.ts +11 -0
- package/dist/lib/sessions/source-url.d.ts.map +1 -1
- package/dist/lib/sessions/source-url.js +15 -0
- package/dist/lib/sessions/source-url.js.map +1 -1
- package/dist/lib/setup-funnel.d.ts +41 -0
- package/dist/lib/setup-funnel.d.ts.map +1 -0
- package/dist/lib/setup-funnel.js +28 -0
- package/dist/lib/setup-funnel.js.map +1 -0
- package/dist/lib/telemetry-consent.d.ts +17 -8
- package/dist/lib/telemetry-consent.d.ts.map +1 -1
- package/dist/lib/telemetry-consent.js +21 -6
- package/dist/lib/telemetry-consent.js.map +1 -1
- package/dist/lib/telemetry-env.d.ts +19 -0
- package/dist/lib/telemetry-env.d.ts.map +1 -0
- package/dist/lib/telemetry-env.js +13 -0
- package/dist/lib/telemetry-env.js.map +1 -0
- package/dist/lib/usage-telemetry.d.ts +108 -13
- package/dist/lib/usage-telemetry.d.ts.map +1 -1
- package/dist/lib/usage-telemetry.js +227 -55
- package/dist/lib/usage-telemetry.js.map +1 -1
- package/dist/lib/user-hooks.d.ts +15 -0
- package/dist/lib/user-hooks.d.ts.map +1 -0
- package/dist/lib/user-hooks.js +144 -0
- package/dist/lib/user-hooks.js.map +1 -0
- package/dist/lib/value-rollup.d.ts +10 -3
- package/dist/lib/value-rollup.d.ts.map +1 -1
- package/dist/lib/value-rollup.js +11 -4
- package/dist/lib/value-rollup.js.map +1 -1
- package/package.json +2 -1
package/dist/lib/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/lib/git.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/lib/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Called by every entry point that is running as an agent hook, before any work. */
|
|
2
|
+
export declare function markHookContext(): void;
|
|
3
|
+
export declare function inHookContext(): boolean;
|
|
4
|
+
/** Test-only reset. Module state outlives a test file otherwise, so one case that marks the
|
|
5
|
+
* context would silently mark every case after it. */
|
|
6
|
+
export declare function resetHookContextForTests(): void;
|
|
7
|
+
//# sourceMappingURL=hook-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-context.d.ts","sourceRoot":"","sources":["../../src/lib/hook-context.ts"],"names":[],"mappings":"AAyBA,qFAAqF;AACrF,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;uDACuD;AACvD,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ALI-835: whether this process is running as an agent's hook.
|
|
3
|
+
*
|
|
4
|
+
* A funnel stage means "a person got this far". A hook does not: it runs on the agent's clock,
|
|
5
|
+
* many times in a session, with nobody watching. A ping from there measures an editing loop and
|
|
6
|
+
* lands in the same column as a human milestone, so the two become indistinguishable in the
|
|
7
|
+
* scoreboard - which is worse than not measuring, because the number still looks like a number.
|
|
8
|
+
*
|
|
9
|
+
* Deliberately an explicit mark rather than sniffing the environment. The alternatives were
|
|
10
|
+
* both worse:
|
|
11
|
+
*
|
|
12
|
+
* - Reading stdin to see whether a hook payload is there consumes the payload the command is
|
|
13
|
+
* about to parse, and blocks when no hook is piping anything.
|
|
14
|
+
* - Guessing from an env var means enumerating what every host agent happens to set, and each
|
|
15
|
+
* miss is a live ping from a context that promised not to send one. That is the
|
|
16
|
+
* hand-enumeration failure latent-vs-deterministic.md names: a too-narrow list returns "no
|
|
17
|
+
* match", which is indistinguishable from "not a hook".
|
|
18
|
+
*
|
|
19
|
+
* So the hook entry points say so themselves, once, and this module is the single reader. A new
|
|
20
|
+
* hook surface that forgets to call `markHookContext` sends pings it should not - which is a
|
|
21
|
+
* miss in the same direction as the env-var guess, but a visible one: it is a missing call at a
|
|
22
|
+
* named entry point rather than a missing string in a list nobody can enumerate.
|
|
23
|
+
*/
|
|
24
|
+
let hookContext = false;
|
|
25
|
+
/** Called by every entry point that is running as an agent hook, before any work. */
|
|
26
|
+
export function markHookContext() {
|
|
27
|
+
hookContext = true;
|
|
28
|
+
}
|
|
29
|
+
export function inHookContext() {
|
|
30
|
+
return hookContext;
|
|
31
|
+
}
|
|
32
|
+
/** Test-only reset. Module state outlives a test file otherwise, so one case that marks the
|
|
33
|
+
* context would silently mark every case after it. */
|
|
34
|
+
export function resetHookContextForTests() {
|
|
35
|
+
hookContext = false;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=hook-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-context.js","sourceRoot":"","sources":["../../src/lib/hook-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,qFAAqF;AACrF,MAAM,UAAU,eAAe;IAC7B,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;uDACuD;AACvD,MAAM,UAAU,wBAAwB;IACtC,WAAW,GAAG,KAAK,CAAC;AACtB,CAAC"}
|
|
@@ -13,6 +13,13 @@ export interface HookPayload {
|
|
|
13
13
|
hook_event_name?: string;
|
|
14
14
|
tool_name?: string;
|
|
15
15
|
tool_input?: HookToolInput;
|
|
16
|
+
/**
|
|
17
|
+
* The workspace the edit belongs to, when the host says (every host puts it under `cwd`).
|
|
18
|
+
* A USER-level hook does not run in the project - Cursor documents that user-level hook
|
|
19
|
+
* scripts run from ~/.cursor/ - and the post-edit path reads `git diff` in process.cwd(),
|
|
20
|
+
* so without this the check would look at the wrong directory (ALI-952).
|
|
21
|
+
*/
|
|
22
|
+
cwd?: string;
|
|
16
23
|
}
|
|
17
24
|
export declare function normalizeHookPayload(raw: unknown): HookPayload | null;
|
|
18
25
|
export declare function readHookPayload(stream?: Readable & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-payload.d.ts","sourceRoot":"","sources":["../../src/lib/hook-payload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,WAAW;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"hook-payload.d.ts","sourceRoot":"","sources":["../../src/lib/hook-payload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,WAAW;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAqFD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAkErE;AAOD,wBAAsB,eAAe,CACnC,MAAM,GAAE,QAAQ,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAkB,GACrD,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAS7B"}
|
package/dist/lib/hook-payload.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const asRecord = (v) => v !== null && typeof v === 'object' && !Array.isArray(v) ? v : null;
|
|
2
|
+
const cwdOf = (p) => (typeof p['cwd'] === 'string' ? p['cwd'] : undefined);
|
|
2
3
|
// pi's edit tool takes edits[{oldText,newText}] (and still accepts a legacy top-level
|
|
3
4
|
// oldText/newText pair - see prepareEditArguments in pi's core/tools/edit.ts). Rename
|
|
4
5
|
// into the canonical shape proposedChangeText() reads.
|
|
@@ -43,21 +44,51 @@ function fromOpenCodeArgs(args) {
|
|
|
43
44
|
out.new_string = args['newString'];
|
|
44
45
|
return out;
|
|
45
46
|
}
|
|
47
|
+
// Codex speaks Claude Code's field names, and its file edits go through apply_patch, whose
|
|
48
|
+
// tool_input carries the whole patch under `command` (Codex hooks reference: "tool_input.command
|
|
49
|
+
// applies to Bash and apply_patch"). The patch IS the proposed change, so it maps to
|
|
50
|
+
// `content` exactly as OpenCode's patchText does. ONLY for apply_patch: a Bash command is
|
|
51
|
+
// not a proposed edit. Documented shape, pending a real capture (fixtures/hook-payloads/).
|
|
52
|
+
function fromCodexInput(toolName, input) {
|
|
53
|
+
const out = { ...input };
|
|
54
|
+
if (toolName === 'apply_patch' && typeof input['command'] === 'string' && out.content === undefined) {
|
|
55
|
+
out.content = input['command'];
|
|
56
|
+
}
|
|
57
|
+
return out;
|
|
58
|
+
}
|
|
59
|
+
// The host event names that mean "before the tool runs" / "after it ran". Claude Code and
|
|
60
|
+
// Codex use PascalCase; Cursor uses camelCase for the same two events. Passed through
|
|
61
|
+
// verbatim, 'preToolUse' would never equal 'PreToolUse' and the proposed edit would be
|
|
62
|
+
// checked as though it had already landed - silently.
|
|
63
|
+
function canonicalEvent(name) {
|
|
64
|
+
const lower = name.toLowerCase();
|
|
65
|
+
if (lower === 'pretooluse')
|
|
66
|
+
return 'PreToolUse';
|
|
67
|
+
if (lower === 'posttooluse')
|
|
68
|
+
return 'PostToolUse';
|
|
69
|
+
return name;
|
|
70
|
+
}
|
|
46
71
|
// Normalize whichever host's hook payload arrived on stdin into the canonical
|
|
47
72
|
// HookPayload, so runAdvisory never learns which agent it is serving. Every field name
|
|
48
73
|
// below comes from that host's published schema:
|
|
49
|
-
// Claude Code {hook_event_name, tool_name, tool_input} - already canonical
|
|
74
|
+
// Claude Code {hook_event_name, tool_name, tool_input, cwd} - already canonical
|
|
75
|
+
// Codex the same, with apply_patch's patch under tool_input.command
|
|
50
76
|
// pi {type:'tool_call'|'tool_result', toolName, input} - extension events
|
|
51
77
|
// Gemini CLI {tool_name, tool_input, tool_response?} - AfterTool is the
|
|
52
78
|
// one carrying tool_response, which is what derives the event
|
|
53
|
-
// Cursor {hook_event_name:'
|
|
79
|
+
// Cursor {hook_event_name:'preToolUse'|'postToolUse', tool_name, tool_input, cwd},
|
|
80
|
+
// and {hook_event_name:'afterFileEdit', file_path, edits} - fields sit at the
|
|
54
81
|
// TOP level rather than under tool_input
|
|
82
|
+
// Copilot CLI {sessionId, timestamp, cwd, toolName, toolArgs, toolResult?} - no event
|
|
83
|
+
// name at all; toolResult is what postToolUse carries. Its "VS Code
|
|
84
|
+
// compatible" variant is the Claude Code shape and takes that branch.
|
|
55
85
|
// Returns null when nothing tool-shaped is present, so callers fall back rather than
|
|
56
86
|
// checking an empty change.
|
|
57
87
|
export function normalizeHookPayload(raw) {
|
|
58
88
|
const p = asRecord(raw);
|
|
59
89
|
if (!p)
|
|
60
90
|
return null;
|
|
91
|
+
const cwd = cwdOf(p);
|
|
61
92
|
// pi: the event type is explicit on the payload.
|
|
62
93
|
if (p['type'] === 'tool_call' || p['type'] === 'tool_result') {
|
|
63
94
|
const input = asRecord(p['input']) ?? {};
|
|
@@ -65,6 +96,7 @@ export function normalizeHookPayload(raw) {
|
|
|
65
96
|
hook_event_name: p['type'] === 'tool_call' ? 'PreToolUse' : 'PostToolUse',
|
|
66
97
|
tool_name: typeof p['toolName'] === 'string' ? p['toolName'] : undefined,
|
|
67
98
|
tool_input: fromPiInput(input),
|
|
99
|
+
...(cwd !== undefined ? { cwd } : {}),
|
|
68
100
|
};
|
|
69
101
|
}
|
|
70
102
|
// OpenCode: the plugin hook name is the event.
|
|
@@ -73,28 +105,44 @@ export function normalizeHookPayload(raw) {
|
|
|
73
105
|
hook_event_name: p['type'] === 'tool.execute.before' ? 'PreToolUse' : 'PostToolUse',
|
|
74
106
|
tool_name: typeof p['tool'] === 'string' ? p['tool'] : undefined,
|
|
75
107
|
tool_input: fromOpenCodeArgs(asRecord(p['args']) ?? {}),
|
|
108
|
+
...(cwd !== undefined ? { cwd } : {}),
|
|
76
109
|
};
|
|
77
110
|
}
|
|
78
|
-
// Cursor: afterFileEdit is observational and flat.
|
|
111
|
+
// Cursor: afterFileEdit is observational and flat.
|
|
79
112
|
if (p['hook_event_name'] === 'afterFileEdit') {
|
|
80
113
|
const tool_input = {};
|
|
81
114
|
if (typeof p['file_path'] === 'string')
|
|
82
115
|
tool_input.file_path = p['file_path'];
|
|
83
116
|
if (Array.isArray(p['edits']))
|
|
84
117
|
tool_input.edits = p['edits'];
|
|
85
|
-
return { hook_event_name: 'PostToolUse', tool_name: 'Edit', tool_input };
|
|
118
|
+
return { hook_event_name: 'PostToolUse', tool_name: 'Edit', tool_input, ...(cwd !== undefined ? { cwd } : {}) };
|
|
86
119
|
}
|
|
87
|
-
// Claude Code / Gemini CLI:
|
|
120
|
+
// Claude Code / Codex / Gemini CLI / Cursor: all speak tool_name + tool_input.
|
|
88
121
|
if (p['tool_name'] !== undefined || p['tool_input'] !== undefined) {
|
|
122
|
+
const tool_name = typeof p['tool_name'] === 'string' ? p['tool_name'] : undefined;
|
|
89
123
|
const event = typeof p['hook_event_name'] === 'string'
|
|
90
|
-
? p['hook_event_name']
|
|
124
|
+
? canonicalEvent(p['hook_event_name'])
|
|
91
125
|
: p['tool_response'] !== undefined
|
|
92
126
|
? 'PostToolUse'
|
|
93
127
|
: 'PreToolUse';
|
|
94
128
|
return {
|
|
95
129
|
hook_event_name: event,
|
|
96
|
-
tool_name
|
|
97
|
-
tool_input: (asRecord(p['tool_input']) ?? {}),
|
|
130
|
+
tool_name,
|
|
131
|
+
tool_input: fromCodexInput(tool_name, asRecord(p['tool_input']) ?? {}),
|
|
132
|
+
...(cwd !== undefined ? { cwd } : {}),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
// Copilot CLI (camelCase): toolName + toolArgs, toolResult only after the tool ran. The
|
|
136
|
+
// toolArgs field names for its edit/create tools are not documented; they pass through
|
|
137
|
+
// as-is and a shape proposedChangeText() cannot read means the pre-edit check stays
|
|
138
|
+
// silent (fail-open) while postToolUse still carries the landed diff. Pending a real
|
|
139
|
+
// capture (fixtures/hook-payloads/).
|
|
140
|
+
if (typeof p['toolName'] === 'string') {
|
|
141
|
+
return {
|
|
142
|
+
hook_event_name: p['toolResult'] !== undefined ? 'PostToolUse' : 'PreToolUse',
|
|
143
|
+
tool_name: p['toolName'],
|
|
144
|
+
tool_input: (asRecord(p['toolArgs']) ?? {}),
|
|
145
|
+
...(cwd !== undefined ? { cwd } : {}),
|
|
98
146
|
};
|
|
99
147
|
}
|
|
100
148
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-payload.js","sourceRoot":"","sources":["../../src/lib/hook-payload.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hook-payload.js","sourceRoot":"","sources":["../../src/lib/hook-payload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ALI-938: the invite nudge - what replaces the three "Share this graph with your team:
|
|
3
|
+
* https://align.tech/pricing" lines in mcp.ts, why.ts and value-rollup.ts. A URL asks
|
|
4
|
+
* someone to go somewhere else and figure it out; `align invite <email>` is a command
|
|
5
|
+
* they can run right there.
|
|
6
|
+
*
|
|
7
|
+
* Pure and I/O-free, same discipline as connect-prompt.ts's gap lines: the callers
|
|
8
|
+
* (why.ts, in particular) gather whatever local git/graph state the decision requires,
|
|
9
|
+
* and this module only turns already-known facts into copy.
|
|
10
|
+
*/
|
|
11
|
+
export declare const INVITE_HINT = "align invite <their-email>";
|
|
12
|
+
export type InviteNudgeReason = 'value' | 'answered-by-other' | 'empty-with-committers';
|
|
13
|
+
/**
|
|
14
|
+
* One line, reason-specific lead-in + the shared command hint. Three reasons:
|
|
15
|
+
* - 'value': the graph has done something worth sharing (mcp.ts, value-rollup.ts's
|
|
16
|
+
* existing `hasValue` trigger - an aggregate signal, not tied to one decision).
|
|
17
|
+
* - 'answered-by-other': `align ask` answered from a decision someone else made -
|
|
18
|
+
* the clearest single moment the bottom-up thesis is about ("this would be amazing
|
|
19
|
+
* if my whole team's decisions were in here").
|
|
20
|
+
* - 'empty-with-committers': the question came back empty, but the repo has commits
|
|
21
|
+
* from people other than whoever is running the command - their graph isn't in
|
|
22
|
+
* here yet.
|
|
23
|
+
*/
|
|
24
|
+
export declare function inviteNudgeLine(reason?: InviteNudgeReason): string;
|
|
25
|
+
export interface DecisionAuthorLike {
|
|
26
|
+
name?: string;
|
|
27
|
+
email?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface LocalIdentity {
|
|
30
|
+
email: string | null;
|
|
31
|
+
name: string | null;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Whether at least one of these decisions was authored by someone other than whoever is
|
|
35
|
+
* running the command - the signal `inviteNudgeLine('answered-by-other')` is for.
|
|
36
|
+
*
|
|
37
|
+
* Deliberately conservative in both directions:
|
|
38
|
+
* - with no local identity at all, this can't compare anything and returns false
|
|
39
|
+
* rather than guessing (verification.md: never claim a comparison you didn't make).
|
|
40
|
+
* - for one author, it compares email-to-email if both sides have an email, else
|
|
41
|
+
* name-to-name if both sides have a name. It never compares an email against a
|
|
42
|
+
* name (no cheap way to know they refer to the same person), and an author with
|
|
43
|
+
* neither field carries no attribution to judge.
|
|
44
|
+
*/
|
|
45
|
+
export declare function answeredBySomeoneElse(authors: Array<DecisionAuthorLike | null | undefined>, me: LocalIdentity): boolean;
|
|
46
|
+
//# sourceMappingURL=invite-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invite-prompt.d.ts","sourceRoot":"","sources":["../../src/lib/invite-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,eAAO,MAAM,WAAW,+BAA+B,CAAC;AAExD,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,mBAAmB,GAAG,uBAAuB,CAAC;AAExF;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,MAAM,GAAE,iBAA2B,GAAG,MAAM,CAU3E;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,KAAK,CAAC,kBAAkB,GAAG,IAAI,GAAG,SAAS,CAAC,EACrD,EAAE,EAAE,aAAa,GAChB,OAAO,CAaT"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ALI-938: the invite nudge - what replaces the three "Share this graph with your team:
|
|
3
|
+
* https://align.tech/pricing" lines in mcp.ts, why.ts and value-rollup.ts. A URL asks
|
|
4
|
+
* someone to go somewhere else and figure it out; `align invite <email>` is a command
|
|
5
|
+
* they can run right there.
|
|
6
|
+
*
|
|
7
|
+
* Pure and I/O-free, same discipline as connect-prompt.ts's gap lines: the callers
|
|
8
|
+
* (why.ts, in particular) gather whatever local git/graph state the decision requires,
|
|
9
|
+
* and this module only turns already-known facts into copy.
|
|
10
|
+
*/
|
|
11
|
+
export const INVITE_HINT = 'align invite <their-email>';
|
|
12
|
+
/**
|
|
13
|
+
* One line, reason-specific lead-in + the shared command hint. Three reasons:
|
|
14
|
+
* - 'value': the graph has done something worth sharing (mcp.ts, value-rollup.ts's
|
|
15
|
+
* existing `hasValue` trigger - an aggregate signal, not tied to one decision).
|
|
16
|
+
* - 'answered-by-other': `align ask` answered from a decision someone else made -
|
|
17
|
+
* the clearest single moment the bottom-up thesis is about ("this would be amazing
|
|
18
|
+
* if my whole team's decisions were in here").
|
|
19
|
+
* - 'empty-with-committers': the question came back empty, but the repo has commits
|
|
20
|
+
* from people other than whoever is running the command - their graph isn't in
|
|
21
|
+
* here yet.
|
|
22
|
+
*/
|
|
23
|
+
export function inviteNudgeLine(reason = 'value') {
|
|
24
|
+
switch (reason) {
|
|
25
|
+
case 'answered-by-other':
|
|
26
|
+
return `That came from a decision someone else made. Get your whole team in here: ${INVITE_HINT}`;
|
|
27
|
+
case 'empty-with-committers':
|
|
28
|
+
return `Nothing matched, but this repo has other committers. Bring them into your graph: ${INVITE_HINT}`;
|
|
29
|
+
case 'value':
|
|
30
|
+
default:
|
|
31
|
+
return `Add a teammate to this graph: ${INVITE_HINT}`;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Whether at least one of these decisions was authored by someone other than whoever is
|
|
36
|
+
* running the command - the signal `inviteNudgeLine('answered-by-other')` is for.
|
|
37
|
+
*
|
|
38
|
+
* Deliberately conservative in both directions:
|
|
39
|
+
* - with no local identity at all, this can't compare anything and returns false
|
|
40
|
+
* rather than guessing (verification.md: never claim a comparison you didn't make).
|
|
41
|
+
* - for one author, it compares email-to-email if both sides have an email, else
|
|
42
|
+
* name-to-name if both sides have a name. It never compares an email against a
|
|
43
|
+
* name (no cheap way to know they refer to the same person), and an author with
|
|
44
|
+
* neither field carries no attribution to judge.
|
|
45
|
+
*/
|
|
46
|
+
export function answeredBySomeoneElse(authors, me) {
|
|
47
|
+
const myEmail = me.email?.toLowerCase() ?? null;
|
|
48
|
+
const myName = me.name?.toLowerCase() ?? null;
|
|
49
|
+
if (!myEmail && !myName)
|
|
50
|
+
return false;
|
|
51
|
+
return authors.some((a) => {
|
|
52
|
+
if (!a)
|
|
53
|
+
return false;
|
|
54
|
+
const email = a.email?.toLowerCase();
|
|
55
|
+
const name = a.name?.toLowerCase();
|
|
56
|
+
if (email && myEmail)
|
|
57
|
+
return email !== myEmail;
|
|
58
|
+
if (name && myName)
|
|
59
|
+
return name !== myName;
|
|
60
|
+
return false;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=invite-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invite-prompt.js","sourceRoot":"","sources":["../../src/lib/invite-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,4BAA4B,CAAC;AAIxD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,SAA4B,OAAO;IACjE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,mBAAmB;YACtB,OAAO,6EAA6E,WAAW,EAAE,CAAC;QACpG,KAAK,uBAAuB;YAC1B,OAAO,oFAAoF,WAAW,EAAE,CAAC;QAC3G,KAAK,OAAO,CAAC;QACb;YACE,OAAO,iCAAiC,WAAW,EAAE,CAAC;IAC1D,CAAC;AACH,CAAC;AAYD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAqD,EACrD,EAAiB;IAEjB,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC;IAChD,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC;IAC9C,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAEtC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACxB,IAAI,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACrB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;QACnC,IAAI,KAAK,IAAI,OAAO;YAAE,OAAO,KAAK,KAAK,OAAO,CAAC;QAC/C,IAAI,IAAI,IAAI,MAAM;YAAE,OAAO,IAAI,KAAK,MAAM,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/lib/local-db.d.ts
CHANGED
|
@@ -53,7 +53,7 @@ export interface DbStats {
|
|
|
53
53
|
* `migrate` from the source and compares it here, because forgetting the bump leaves the new
|
|
54
54
|
* branch running destructively on every open with nothing to stop it.
|
|
55
55
|
*/
|
|
56
|
-
export declare const SCHEMA_VERSION =
|
|
56
|
+
export declare const SCHEMA_VERSION = 6;
|
|
57
57
|
/**
|
|
58
58
|
* ALI-829: a source timestamp as this database stores it - ISO-8601 Z - or null.
|
|
59
59
|
*
|
|
@@ -230,8 +230,25 @@ export declare function createLocalDb(dbPath: string): {
|
|
|
230
230
|
* there is no, and its docs are re-read (a few files, idempotent). Case-insensitive, as
|
|
231
231
|
* repo identities are. */
|
|
232
232
|
hasDocsForRepo(repo: string): boolean;
|
|
233
|
-
|
|
233
|
+
/**
|
|
234
|
+
* ALI-787: `model` tags which HF model produced `embedding`, so a future model swap
|
|
235
|
+
* cannot compare two models' vectors as if they were interchangeable - same-length
|
|
236
|
+
* float arrays from different models pass cosineSimilarity's length check and produce a
|
|
237
|
+
* plausible, meaningless score with nothing to catch it (see local-embeddings.ts,
|
|
238
|
+
* cosineSimilarity's own doc comment, for the sibling case this closes: a length
|
|
239
|
+
* mismatch throws, but a same-length cross-model comparison would not have).
|
|
240
|
+
*
|
|
241
|
+
* Optional and defaulting to NULL (`?? null`, since node:sqlite throws on a bound
|
|
242
|
+
* `undefined` rather than treating it as NULL) so every existing 2-arg caller keeps
|
|
243
|
+
* compiling and behaving exactly as before. The one production caller
|
|
244
|
+
* (local-gateway-client.ts's ingestOne) always passes EMBEDDING_MODEL_ID.
|
|
245
|
+
*/
|
|
246
|
+
setEmbedding(decisionId: string, embedding: Float32Array, model?: string): void;
|
|
234
247
|
getEmbedding(decisionId: string): Float32Array | null;
|
|
248
|
+
/** ALI-787: which model tagged this decision's stored embedding, or null when there is
|
|
249
|
+
* no embedding row, or the row predates tagging and was never backfilled (should not
|
|
250
|
+
* happen post-migration, but reads as "unknown" rather than a false match either way). */
|
|
251
|
+
getEmbeddingModel(decisionId: string): string | null;
|
|
235
252
|
/**
|
|
236
253
|
* Unscoped by default: relationship linking (ingestOne, in local-gateway-client.ts) wants
|
|
237
254
|
* candidates across EVERY repo - cross-repo memory is the product this ticket protects,
|
|
@@ -239,10 +256,23 @@ export declare function createLocalDb(dbPath: string): {
|
|
|
239
256
|
* paths (search, ask) that DO want to stay in-scope, filtered here rather than after
|
|
240
257
|
* ranking - filtering post-rank would silently return fewer than `topK` results whenever
|
|
241
258
|
* some of the best global matches fall outside the scope.
|
|
259
|
+
*
|
|
260
|
+
* ALI-787: `filter.model`, when given, excludes rows tagged with a DIFFERENT (non-null)
|
|
261
|
+
* model - the "degrade honestly" half of the model tag: a decision embedded by a retired
|
|
262
|
+
* model drops out of ranking rather than being compared to a current-model vector it is
|
|
263
|
+
* not compatible with. A NULL-tagged row (no model recorded at all) is treated as
|
|
264
|
+
* compatible rather than excluded, the same "unknown, not wrong" leniency checkDrift
|
|
265
|
+
* applies to a single decision - the migration backfills every pre-existing row, so NULL
|
|
266
|
+
* should not occur in a real graph, and this is what keeps a hand-built test fixture that
|
|
267
|
+
* predates ALI-787 (a bare 2-arg setEmbedding) behaving as it always did. Omitted (the
|
|
268
|
+
* default) applies no filter at all, which is what most existing callers and tests rely
|
|
269
|
+
* on - only local-gateway-client.ts's findSimilar passes it, with the currently active
|
|
270
|
+
* EMBEDDING_MODEL_ID.
|
|
242
271
|
*/
|
|
243
272
|
getAllEmbeddings(filter?: {
|
|
244
273
|
repo?: string;
|
|
245
274
|
includeUnattributed?: boolean;
|
|
275
|
+
model?: string;
|
|
246
276
|
}): Array<{
|
|
247
277
|
decisionId: string;
|
|
248
278
|
embedding: Float32Array;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-db.d.ts","sourceRoot":"","sources":["../../src/lib/local-db.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB;;gEAE4D;IAC5D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;8CAE0C;IAC1C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB;+EAC2E;IAC3E,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC;uFACmF;IACnF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,0FAA0F;IAC1F,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"local-db.d.ts","sourceRoot":"","sources":["../../src/lib/local-db.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/local-db.js
CHANGED
|
@@ -31,7 +31,8 @@ CREATE TABLE IF NOT EXISTS decision_audit (
|
|
|
31
31
|
|
|
32
32
|
CREATE TABLE IF NOT EXISTS decision_embeddings (
|
|
33
33
|
decision_id TEXT PRIMARY KEY REFERENCES decisions(id) ON DELETE CASCADE,
|
|
34
|
-
embedding BLOB NOT NULL
|
|
34
|
+
embedding BLOB NOT NULL,
|
|
35
|
+
model TEXT
|
|
35
36
|
);
|
|
36
37
|
|
|
37
38
|
CREATE TABLE IF NOT EXISTS decision_links (
|
|
@@ -59,7 +60,7 @@ CREATE TABLE IF NOT EXISTS decision_refs (
|
|
|
59
60
|
* `migrate` from the source and compares it here, because forgetting the bump leaves the new
|
|
60
61
|
* branch running destructively on every open with nothing to stop it.
|
|
61
62
|
*/
|
|
62
|
-
export const SCHEMA_VERSION =
|
|
63
|
+
export const SCHEMA_VERSION = 6;
|
|
63
64
|
/**
|
|
64
65
|
* ALI-829: a source timestamp as this database stores it - ISO-8601 Z - or null.
|
|
65
66
|
*
|
|
@@ -139,6 +140,18 @@ export function identifyingSourceUrl(raw) {
|
|
|
139
140
|
* read by the migration; SCHEMA above spells them a second time because a fresh CREATE
|
|
140
141
|
* TABLE cannot read a constant, and the provenance test pins both against each other. */
|
|
141
142
|
const PROVENANCE_COLUMNS = ['decider_kind', 'confirmed_by', 'confirmed_at', 'ratified_by', 'ratified_at'];
|
|
143
|
+
/**
|
|
144
|
+
* ALI-787: the only embedding model this graph has ever written before the `model` column
|
|
145
|
+
* existed. Verified, not assumed - `git log --all -p` on local-embeddings.ts and
|
|
146
|
+
* local-embeddings-wasm.ts shows exactly one HF model id was ever hardcoded there, across
|
|
147
|
+
* every commit. So backfilling every pre-column row with this is a true historical fact,
|
|
148
|
+
* unlike `decided_at` (step 4 below), which genuinely cannot be derived from an existing row.
|
|
149
|
+
*
|
|
150
|
+
* A deliberate LITERAL, not an import of local-embeddings.ts's EMBEDDING_MODEL_ID: this
|
|
151
|
+
* constant names what was true when the column was added, and must stay that value even
|
|
152
|
+
* after a future model swap changes EMBEDDING_MODEL_ID. Migrations are a historical record.
|
|
153
|
+
*/
|
|
154
|
+
const LEGACY_EMBEDDING_MODEL = 'Xenova/all-MiniLM-L6-v2';
|
|
142
155
|
/**
|
|
143
156
|
* One-time data migrations, tracked in SQLite's built-in `user_version`.
|
|
144
157
|
*
|
|
@@ -393,6 +406,29 @@ function migrate(db) {
|
|
|
393
406
|
throw err;
|
|
394
407
|
}
|
|
395
408
|
}
|
|
409
|
+
if (version < 6) {
|
|
410
|
+
// Inside the write lock, for the reason step 4/5 give: two concurrent opens of a v5
|
|
411
|
+
// file must not both read "no column" and race the ALTER.
|
|
412
|
+
db.exec('BEGIN IMMEDIATE');
|
|
413
|
+
try {
|
|
414
|
+
const hasModel = db.prepare('PRAGMA table_info(decision_embeddings)').all()
|
|
415
|
+
.some((c) => c.name === 'model');
|
|
416
|
+
if (!hasModel) {
|
|
417
|
+
db.exec('ALTER TABLE decision_embeddings ADD COLUMN model TEXT');
|
|
418
|
+
}
|
|
419
|
+
// Every row that predates the column was written by LEGACY_EMBEDDING_MODEL - see its
|
|
420
|
+
// doc comment for how that is verified rather than assumed. Only rows with no tag yet
|
|
421
|
+
// are touched, so re-running this on an already-migrated database is a no-op.
|
|
422
|
+
db.prepare('UPDATE decision_embeddings SET model = ? WHERE model IS NULL').run(LEGACY_EMBEDDING_MODEL);
|
|
423
|
+
db.exec('PRAGMA user_version = 6');
|
|
424
|
+
db.exec('COMMIT');
|
|
425
|
+
}
|
|
426
|
+
catch (err) {
|
|
427
|
+
if (db.isTransaction)
|
|
428
|
+
db.exec('ROLLBACK');
|
|
429
|
+
throw err;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
396
432
|
if (version < SCHEMA_VERSION) {
|
|
397
433
|
db.exec(`PRAGMA user_version = ${SCHEMA_VERSION}`);
|
|
398
434
|
}
|
|
@@ -606,8 +642,21 @@ export function createLocalDb(dbPath) {
|
|
|
606
642
|
OR lower(source_url) LIKE '%/' || ? || '/-/blob/%' ESCAPE '\\') LIMIT 1`).get(literal, literal);
|
|
607
643
|
return row !== undefined;
|
|
608
644
|
},
|
|
609
|
-
|
|
610
|
-
|
|
645
|
+
/**
|
|
646
|
+
* ALI-787: `model` tags which HF model produced `embedding`, so a future model swap
|
|
647
|
+
* cannot compare two models' vectors as if they were interchangeable - same-length
|
|
648
|
+
* float arrays from different models pass cosineSimilarity's length check and produce a
|
|
649
|
+
* plausible, meaningless score with nothing to catch it (see local-embeddings.ts,
|
|
650
|
+
* cosineSimilarity's own doc comment, for the sibling case this closes: a length
|
|
651
|
+
* mismatch throws, but a same-length cross-model comparison would not have).
|
|
652
|
+
*
|
|
653
|
+
* Optional and defaulting to NULL (`?? null`, since node:sqlite throws on a bound
|
|
654
|
+
* `undefined` rather than treating it as NULL) so every existing 2-arg caller keeps
|
|
655
|
+
* compiling and behaving exactly as before. The one production caller
|
|
656
|
+
* (local-gateway-client.ts's ingestOne) always passes EMBEDDING_MODEL_ID.
|
|
657
|
+
*/
|
|
658
|
+
setEmbedding(decisionId, embedding, model) {
|
|
659
|
+
db.prepare(`INSERT OR REPLACE INTO decision_embeddings (decision_id, embedding, model) VALUES (?, ?, ?)`).run(decisionId, Buffer.from(embedding.buffer, embedding.byteOffset, embedding.byteLength), model ?? null);
|
|
611
660
|
},
|
|
612
661
|
getEmbedding(decisionId) {
|
|
613
662
|
const row = db.prepare(`SELECT embedding FROM decision_embeddings WHERE decision_id = ?`).get(decisionId);
|
|
@@ -615,6 +664,13 @@ export function createLocalDb(dbPath) {
|
|
|
615
664
|
return null;
|
|
616
665
|
return new Float32Array(row.embedding.buffer, row.embedding.byteOffset, row.embedding.byteLength / 4);
|
|
617
666
|
},
|
|
667
|
+
/** ALI-787: which model tagged this decision's stored embedding, or null when there is
|
|
668
|
+
* no embedding row, or the row predates tagging and was never backfilled (should not
|
|
669
|
+
* happen post-migration, but reads as "unknown" rather than a false match either way). */
|
|
670
|
+
getEmbeddingModel(decisionId) {
|
|
671
|
+
const row = db.prepare(`SELECT model FROM decision_embeddings WHERE decision_id = ?`).get(decisionId);
|
|
672
|
+
return row?.model ?? null;
|
|
673
|
+
},
|
|
618
674
|
/**
|
|
619
675
|
* Unscoped by default: relationship linking (ingestOne, in local-gateway-client.ts) wants
|
|
620
676
|
* candidates across EVERY repo - cross-repo memory is the product this ticket protects,
|
|
@@ -622,15 +678,34 @@ export function createLocalDb(dbPath) {
|
|
|
622
678
|
* paths (search, ask) that DO want to stay in-scope, filtered here rather than after
|
|
623
679
|
* ranking - filtering post-rank would silently return fewer than `topK` results whenever
|
|
624
680
|
* some of the best global matches fall outside the scope.
|
|
681
|
+
*
|
|
682
|
+
* ALI-787: `filter.model`, when given, excludes rows tagged with a DIFFERENT (non-null)
|
|
683
|
+
* model - the "degrade honestly" half of the model tag: a decision embedded by a retired
|
|
684
|
+
* model drops out of ranking rather than being compared to a current-model vector it is
|
|
685
|
+
* not compatible with. A NULL-tagged row (no model recorded at all) is treated as
|
|
686
|
+
* compatible rather than excluded, the same "unknown, not wrong" leniency checkDrift
|
|
687
|
+
* applies to a single decision - the migration backfills every pre-existing row, so NULL
|
|
688
|
+
* should not occur in a real graph, and this is what keeps a hand-built test fixture that
|
|
689
|
+
* predates ALI-787 (a bare 2-arg setEmbedding) behaving as it always did. Omitted (the
|
|
690
|
+
* default) applies no filter at all, which is what most existing callers and tests rely
|
|
691
|
+
* on - only local-gateway-client.ts's findSimilar passes it, with the currently active
|
|
692
|
+
* EMBEDDING_MODEL_ID.
|
|
625
693
|
*/
|
|
626
694
|
getAllEmbeddings(filter = {}) {
|
|
627
695
|
let sql = `SELECT e.decision_id, e.embedding FROM decision_embeddings e`;
|
|
696
|
+
const where = [];
|
|
628
697
|
const params = [];
|
|
629
698
|
if (filter.repo !== undefined) {
|
|
630
699
|
sql += ` JOIN decisions d ON d.id = e.decision_id`;
|
|
631
|
-
|
|
700
|
+
where.push(filter.includeUnattributed ? `(d.repo = ? OR d.repo IS NULL)` : `d.repo = ?`);
|
|
632
701
|
params.push(filter.repo);
|
|
633
702
|
}
|
|
703
|
+
if (filter.model !== undefined) {
|
|
704
|
+
where.push(`(e.model = ? OR e.model IS NULL)`);
|
|
705
|
+
params.push(filter.model);
|
|
706
|
+
}
|
|
707
|
+
if (where.length)
|
|
708
|
+
sql += ` WHERE ${where.join(' AND ')}`;
|
|
634
709
|
const rows = db.prepare(sql).all(...params);
|
|
635
710
|
return rows.map(r => ({
|
|
636
711
|
decisionId: r.decision_id,
|