@intentic/iq 1.326.0 → 1.327.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 +59 -4
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +7 -3
- package/dist/app.js.map +1 -1
- package/dist/commands/sessions/sessions.routes.js +1 -1
- package/dist/commands/sessions/sessions.routes.js.map +1 -1
- package/dist/recall/fleet/conversations.d.ts +7 -0
- package/dist/recall/fleet/conversations.d.ts.map +1 -0
- package/dist/recall/fleet/conversations.js +48 -0
- package/dist/recall/fleet/conversations.js.map +1 -0
- package/dist/recall/fork/fork-point.d.ts +10 -0
- package/dist/recall/fork/fork-point.d.ts.map +1 -0
- package/dist/recall/fork/fork-point.js +74 -0
- package/dist/recall/fork/fork-point.js.map +1 -0
- package/dist/recall/fork/fork.d.ts +15 -0
- package/dist/recall/fork/fork.d.ts.map +1 -0
- package/dist/recall/fork/fork.js +108 -0
- package/dist/recall/fork/fork.js.map +1 -0
- package/dist/recall/ingest/ingest.d.ts +13 -0
- package/dist/recall/ingest/ingest.d.ts.map +1 -0
- package/dist/recall/ingest/ingest.js +180 -0
- package/dist/recall/ingest/ingest.js.map +1 -0
- package/dist/recall/rank/files.d.ts +26 -0
- package/dist/recall/rank/files.d.ts.map +1 -0
- package/dist/recall/rank/files.js +88 -0
- package/dist/recall/rank/files.js.map +1 -0
- package/dist/recall/rank/grab.d.ts +25 -0
- package/dist/recall/rank/grab.d.ts.map +1 -0
- package/dist/recall/rank/grab.js +74 -0
- package/dist/recall/rank/grab.js.map +1 -0
- package/dist/recall/rank/match.d.ts +18 -0
- package/dist/recall/rank/match.d.ts.map +1 -0
- package/dist/recall/rank/match.js +122 -0
- package/dist/recall/rank/match.js.map +1 -0
- package/dist/recall/rank/terms.d.ts +4 -0
- package/dist/recall/rank/terms.d.ts.map +1 -0
- package/dist/recall/rank/terms.js +25 -0
- package/dist/recall/rank/terms.js.map +1 -0
- package/dist/recall/recall.d.ts +52 -0
- package/dist/recall/recall.d.ts.map +1 -0
- package/dist/recall/recall.js +86 -0
- package/dist/recall/recall.js.map +1 -0
- package/dist/recall/store/db.d.ts +3 -0
- package/dist/recall/store/db.d.ts.map +1 -0
- package/dist/recall/store/db.js +91 -0
- package/dist/recall/store/db.js.map +1 -0
- package/dist/recall/transcript/line-reader.d.ts +6 -0
- package/dist/recall/transcript/line-reader.d.ts.map +1 -0
- package/dist/recall/transcript/line-reader.js +36 -0
- package/dist/recall/transcript/line-reader.js.map +1 -0
- package/dist/recall/transcript/lines.d.ts +22 -0
- package/dist/recall/transcript/lines.d.ts.map +1 -0
- package/dist/recall/transcript/lines.js +134 -0
- package/dist/recall/transcript/lines.js.map +1 -0
- package/dist/recall/transcript/slug.d.ts +3 -0
- package/dist/recall/transcript/slug.d.ts.map +1 -0
- package/dist/recall/transcript/slug.js +5 -0
- package/dist/recall/transcript/slug.js.map +1 -0
- package/package.json +17 -7
package/README.md
CHANGED
|
@@ -7,15 +7,22 @@ flowchart LR
|
|
|
7
7
|
plugin["plugin/<br/>skill + hooks"] -. "teaches" .-> agent["Agent or shell"]
|
|
8
8
|
agent -- "iq '…' · def · refs · outline" --> iq(["iq"])
|
|
9
9
|
iq -- "createEngine" --> engine["iq-engine<br/>index + ranking"]
|
|
10
|
-
iq -- "sessions" --> recall["
|
|
10
|
+
iq -- "sessions" --> recall["src/recall<br/>past transcripts · recall.db"]
|
|
11
11
|
iq -- "capsule + code<br/>within --budget" --> agent
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
- A bare query picks its own strategy: a path, an identifier, a regex or natural language, falling back to semantic search when nothing matches exactly. There is no separate verb for questions.
|
|
15
|
-
- Every answer opens with a capsule: `answer:` names the top anchor, its enclosing symbol and a verdict
|
|
14
|
+
- A bare query picks its own strategy: an address, a path, an identifier, a regex or natural language, falling back to semantic search when nothing matches exactly. There is no separate verb for questions. Text the workspace holds verbatim leads a natural-language answer: UI copy off a screenshot answers with the component that renders it, through its translation key, and an address (`iq '/sandbox/agent?section=tools'`) with its route, view and section ([iq-engine](../iq-engine) has the rules).
|
|
15
|
+
- Every answer opens with a capsule: `answer:` names the top anchor, its enclosing symbol and a verdict; `key:`, `route:` and `siblings:` lines under it say what it resolved through and which files sit beside it; `candidates:` and `more:` follow. Output fits `--budget` tokens, capsule included.
|
|
16
|
+
- `confident`: the top answer scored as an answer on its own and clearly ahead of the next file (a rerank of 0.9 and a lead of 0.1), or is an exact match (one translation key, one route, one definition). Right 93% of the time on iq-bench's reranked cases.
|
|
17
|
+
- `ambiguous`: anything between; the answer is usually among the top files and the candidates.
|
|
18
|
+
- `weak`: nothing retrieved scored as a likely answer (a best rerank under 0.05), so the thing asked about may not exist.
|
|
16
19
|
- Exit codes follow grep (0 hits, 1 none, 2 error). Common grep flags get a one-line redirect instead of a usage dump.
|
|
17
20
|
- `iq verify` reads an answer (a file, or stdin) and checks every reference in it against the index: cited files exist, `path:line` anchors fall inside their file and near the names the same line cites, and code names are defined or at least written somewhere here. It exits 0 when all hold and 1 when any does not, so a hook or CI step can gate on it.
|
|
18
21
|
- The index lives in `.intentic/local/cache/iq` and maintains itself; `iq index rebuild` is for a stale index only.
|
|
22
|
+
- `iq sessions` is session recall (`src/recall/`): it indexes Claude Code transcripts so an agent can ask which files
|
|
23
|
+
past sessions touched for a topic, find a related session, or fork one mid-way ([below](#session-recall)). Its
|
|
24
|
+
tolerant line readers are exported as `@intentic/iq/transcript`, whose `promptOf` says which user lines a person
|
|
25
|
+
wrote; `@intentic/agent-context` finds turn boundaries with it, so the two readers of this format agree.
|
|
19
26
|
- `plugin/` is a Claude Code plugin: the `iq` skill, a SessionStart nudge that ingests transcripts, and a prompt hook that suggests matching past sessions. The sandbox image bakes it and loads it for every agent.
|
|
20
27
|
|
|
21
28
|
## Usage
|
|
@@ -31,11 +38,59 @@ iq verify answer.md # do an answer's paths, path:line
|
|
|
31
38
|
iq sessions files "auth refresh" # files past sessions touched for a topic
|
|
32
39
|
```
|
|
33
40
|
|
|
41
|
+
## Session recall
|
|
42
|
+
|
|
43
|
+
```mermaid
|
|
44
|
+
flowchart LR
|
|
45
|
+
transcripts["~/.claude/projects<br/>JSONL transcripts"] -- "ingest" --> recall(["src/recall<br/>recall.db"])
|
|
46
|
+
fleet["Daemon conversations<br/>titles · owners"] -.-> recall
|
|
47
|
+
recall -- "files · grab · list" --> verbs["iq sessions"]
|
|
48
|
+
recall -- "match" --> hook["prompt hook<br/>suggests a past session"]
|
|
49
|
+
recall -- "fork" --> resume["claude --resume"]
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
- The index is a disposable cache beside the search index (`.intentic/local/cache/iq/recall.db`). Ingest is
|
|
53
|
+
incremental: unchanged transcripts are skipped and grown ones resume from their stored byte offset. It is also safe to
|
|
54
|
+
run twice at once (the prompt hook's budgeted pass and the SessionStart background pass overlap): a turn is unique per
|
|
55
|
+
session, so the second pass stores nothing new.
|
|
56
|
+
- Ranking is purely statistical, with no model calls: BM25 over prompts, responses and titles, recency decay, and
|
|
57
|
+
inverse ubiquity so files every session touches (`package.json`) carry no weight.
|
|
58
|
+
- Queries keep only a prompt's content terms: the shared stopwords from `@intentic/base/stopwords` and a short list of
|
|
59
|
+
what agent prompts say without naming a topic ("please", "continue", "go ahead") are dropped, by the one tokenizer the
|
|
60
|
+
FTS query and the match gate both use (`src/recall/rank/terms.ts`).
|
|
61
|
+
- Prompts are the user's own words. Inside a sandbox the daemon puts notes in front of them (the project map, the checks
|
|
62
|
+
note), the same few hundred words on every turn, so ingest stores a turn's prompt without them and every query takes
|
|
63
|
+
them off before it is tokenized. Both use `stripInjectedPreamble` from `@intentic/constants`: a text that opens with
|
|
64
|
+
`## ` or a dependency notice loses everything up to the first `\n\n---\n\n`, and any other text is left whole. The
|
|
65
|
+
index's schema version went to 3 with it, so an older index rebuilds from the transcripts on its next open.
|
|
66
|
+
- 2026-09-29: v3 rebuilds from the transcripts rather than migrating v2 rows in place. On a copy of a live v2 index
|
|
67
|
+
every row a rebuild dropped was a duplicate (419 of 4,889, left by two ingests racing), and ingest already deletes a
|
|
68
|
+
session whose transcript is gone, so an in-place migration would have kept nothing the rebuild loses.
|
|
69
|
+
- 2026-09-29: the recogniser matches the note openings rather than holding the daemon's exact header list. Moving the
|
|
70
|
+
headers to a shared package would have touched a dozen sandbox files, and transcripts still carry notes the daemon
|
|
71
|
+
has since retired (`## Your branch moved onto newer main`, 205 turns in one live index), which an exact list would
|
|
72
|
+
miss. A test in the sandbox (`agent/prompt/turn-preamble.test.ts`) fails when a header the daemon parses is not
|
|
73
|
+
recognised here. Measured on a copy of a live index, the preamble had made 39 of 54 real first prompts strong
|
|
74
|
+
matches; with it off, 17 are.
|
|
75
|
+
- A matched session is `strong`, the only kind the prompt hook shows the agent, on an absolute scale: the prompt names
|
|
76
|
+
at least two content terms, and one turn of the session plus its title covers at least half of their IDF weight. The
|
|
77
|
+
match score orders sessions but is scaled to the query's own best candidate, so it cannot say whether that candidate
|
|
78
|
+
is any good.
|
|
79
|
+
- `forkPoint` suggests the turn that keeps the most still-valid context per token; `fork` writes a new transcript up to
|
|
80
|
+
a chosen turn, which `claude --resume` opens.
|
|
81
|
+
- Transcript lines are read tolerantly (`src/recall/transcript/lines.ts`): unknown shapes and fields pass through as
|
|
82
|
+
undefined rather than failing the ingest. It is a second reader of the same files beside
|
|
83
|
+
`@intentic/agent-context`'s `claude-transcript.ts`, on purpose: see that package's README.
|
|
84
|
+
- Inside a sandbox it joins sessions to the daemon's conversation titles; outside one that lookup is empty and nothing
|
|
85
|
+
else changes.
|
|
86
|
+
- 2026-10-06: recall was its own published package, `@intentic/iq-recall`, until it folded into this one. `iq` was its
|
|
87
|
+
only consumer; it is no longer published on its own.
|
|
88
|
+
|
|
34
89
|
## Key files
|
|
35
90
|
|
|
36
91
|
- [src/app.ts](src/app.ts) — the verb table and the `--help` text agents read.
|
|
37
92
|
- [src/lib/run.ts](src/lib/run.ts) — the executor every search verb shares: engine, path resolution, output mode, exit code.
|
|
38
93
|
- [src/commands/q.command.ts](src/commands/q.command.ts) — the default verb behind a bare `iq "…"`.
|
|
39
94
|
- [src/commands/verify.command.ts](src/commands/verify.command.ts) — `iq verify`, the grounding check for an answer's references.
|
|
40
|
-
- [src/
|
|
95
|
+
- [src/recall/recall.ts](src/recall/recall.ts) — `createRecall`: ingest, topic-to-file ranking, session match and fork.
|
|
41
96
|
- [plugin/skills/iq/SKILL.md](plugin/skills/iq/SKILL.md) — which verb to reach for, as agents are taught it.
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AA4EA,eAAO,MAAM,GAAG,6EAkCf,CAAC"}
|
package/dist/app.js
CHANGED
|
@@ -30,6 +30,9 @@ const formatException = (exc) => {
|
|
|
30
30
|
const HELP = `One search tool, intent-first. A bare query auto-detects intent, fuses engines, and answers
|
|
31
31
|
natural language semantically: there is no second verb for questions:
|
|
32
32
|
iq "where do we enforce the secrets floor?"
|
|
33
|
+
Text the workspace holds verbatim leads: UI copy off a screenshot answers with the component that
|
|
34
|
+
renders it (through its translation key, slots filled in or not), and an address such as
|
|
35
|
+
iq '/sandbox/agent?section=tools' with its route, view and section.
|
|
33
36
|
|
|
34
37
|
iq find 'createServer\\(' --lang ts text/regex match (--literal --word --case)
|
|
35
38
|
iq files wkignore file by fuzzy name (--exact for globs)
|
|
@@ -51,9 +54,10 @@ natural language semantically: there is no second verb for questions:
|
|
|
51
54
|
iq sessions files "auth refresh" files past sessions touched for a topic
|
|
52
55
|
|
|
53
56
|
Read the first lines and stop: every answer opens with a capsule, \`answer:\` names the top
|
|
54
|
-
path:line, its enclosing symbol and a verdict: confident (
|
|
55
|
-
or weak (nothing here likely answers, it may not exist: stop, or rephrase
|
|
56
|
-
|
|
57
|
+
path:line, its enclosing symbol and a verdict: confident (it scored as the answer: stop), ambiguous
|
|
58
|
+
(compare the candidates), or weak (nothing here likely answers, it may not exist: stop, or rephrase
|
|
59
|
+
once in the code's words); \`key:\`/\`route:\` say what the answer resolved through, \`siblings:\` names
|
|
60
|
+
the files beside it; \`candidates:\` names the ranked paths that did not fit; \`more:\` the --after command.
|
|
57
61
|
The code follows below it, so \`head\` never cuts the part that matters. Natural-language answers
|
|
58
62
|
carry the top hits' full enclosing bodies: read those instead of re-opening the file.
|
|
59
63
|
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,CAAC,EAAE,MAAM,yBAAyB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAGhD,MAAM,eAAe,GAAG,CAAC,GAAY,EAAU,EAAE;IAC7C,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACvB,OAAO,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;IAC3E,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC;AAGF,MAAM,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { countParser } from "@intentic/agent-cli/flags";
|
|
2
2
|
import { estimateTokens } from "@intentic/base/format";
|
|
3
3
|
import { buildCommand, buildRouteMap } from "@stricli/core";
|
|
4
|
-
import { createRecall, parseLine, readLines, typedPromptOf } from "
|
|
4
|
+
import { createRecall, parseLine, readLines, typedPromptOf } from "../../recall/recall.js";
|
|
5
5
|
import { loadConfig } from "../../env.config.js";
|
|
6
6
|
const recallFor = (root) => {
|
|
7
7
|
const config = loadConfig();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.routes.js","sourceRoot":"","sources":["../../../src/commands/sessions/sessions.routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sessions.routes.js","sourceRoot":"","sources":["../../../src/commands/sessions/sessions.routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../../src/recall/fleet/conversations.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAEzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAC3B;AAyCD,eAAO,MAAM,sBAAsB,iBAAiB,MAAM,KAAkB,GAAG,CAAC,MAAM,EAAE,YAAY,CAenG,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { DatabaseSync } from "node:sqlite";
|
|
3
|
+
import { HISTORY_ROOT } from "@intentic/constants";
|
|
4
|
+
const ROWS = `SELECT id,
|
|
5
|
+
json_extract(record, '$.sessionId') AS sessionId,
|
|
6
|
+
json_extract(record, '$.social.title.text') AS title,
|
|
7
|
+
json_extract(record, '$.social.owner.email') AS owner
|
|
8
|
+
FROM conversation`;
|
|
9
|
+
const readRows = (historyRoot) => {
|
|
10
|
+
const db = new DatabaseSync(join(historyRoot, "conversations.db"), { readOnly: true });
|
|
11
|
+
try {
|
|
12
|
+
return db.prepare(ROWS).all();
|
|
13
|
+
}
|
|
14
|
+
finally {
|
|
15
|
+
db.close();
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const conversationOf = (row) => {
|
|
19
|
+
if (typeof row.sessionId !== "string" || row.sessionId === "") {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
sessionId: row.sessionId,
|
|
24
|
+
conversation: {
|
|
25
|
+
id: row.id,
|
|
26
|
+
...(typeof row.title === "string" ? { title: row.title } : {}),
|
|
27
|
+
...(typeof row.owner === "string" && row.owner !== "" ? { owner: row.owner } : {}),
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export const conversationsBySession = (historyRoot = HISTORY_ROOT) => {
|
|
32
|
+
let rows;
|
|
33
|
+
try {
|
|
34
|
+
rows = readRows(historyRoot);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return new Map();
|
|
38
|
+
}
|
|
39
|
+
const bySession = new Map();
|
|
40
|
+
for (const row of rows) {
|
|
41
|
+
const found = conversationOf(row);
|
|
42
|
+
if (found !== undefined) {
|
|
43
|
+
bySession.set(found.sessionId, found.conversation);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return bySession;
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=conversations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../../src/recall/fleet/conversations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAsBnD,MAAM,IAAI,GAAG;;;;kBAIK,CAAC;AAEnB,MAAM,QAAQ,GAAG,CAAC,WAAmB,EAAqB,EAAE;IACxD,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACvF,IAAI,CAAC;QACD,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAkC,CAAC;IAClE,CAAC;YAAS,CAAC;QACP,EAAE,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;AACL,CAAC,CAAC;AAGF,MAAM,cAAc,GAAG,CAAC,GAAoB,EAAmF,EAAE;IAC7H,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO;QACH,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,YAAY,EAAE;YACV,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrF;KACJ,CAAC;AACN,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,WAAW,GAAW,YAAY,EAA6B,EAAE;IACpG,IAAI,IAAuB,CAAC;IAC5B,IAAI,CAAC;QACD,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,GAAG,EAAE,CAAC;IACrB,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAwB,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SqliteDb } from "@intentic/base/sqlite";
|
|
2
|
+
export interface ForkPoint {
|
|
3
|
+
readonly turnUuid: string;
|
|
4
|
+
readonly ordinal: number;
|
|
5
|
+
readonly estTokens: number;
|
|
6
|
+
readonly coverageFiles: readonly string[];
|
|
7
|
+
readonly staleFiles: readonly string[];
|
|
8
|
+
}
|
|
9
|
+
export declare const selectForkPoint: (db: SqliteDb, root: string, sessionId: string, prompt?: string) => ForkPoint | undefined;
|
|
10
|
+
//# sourceMappingURL=fork-point.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fork-point.d.ts","sourceRoot":"","sources":["../../../src/recall/fork/fork-point.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGtD,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAE1C,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAMD,eAAO,MAAM,eAAe,OAAQ,QAAQ,QAAQ,MAAM,aAAa,MAAM,WAAW,MAAM,KAAG,SAAS,GAAG,SA0E5G,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { statSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { tokensOfChars } from "@intentic/base/format";
|
|
4
|
+
import { fileIdf, rankFilesForTopic } from "../rank/files.js";
|
|
5
|
+
export const selectForkPoint = (db, root, sessionId, prompt) => {
|
|
6
|
+
const session = db.get("SELECT id FROM sessions WHERE session_id = ?", sessionId);
|
|
7
|
+
if (session === undefined) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
const sessionRowId = Number(session["id"]);
|
|
11
|
+
const turns = db.all("SELECT id, uuid, ordinal, ts, start_byte FROM turns WHERE session_id = ? ORDER BY ordinal", sessionRowId).map((row) => ({
|
|
12
|
+
id: Number(row["id"]),
|
|
13
|
+
uuid: row["uuid"],
|
|
14
|
+
ordinal: Number(row["ordinal"]),
|
|
15
|
+
startByte: Number(row["start_byte"]),
|
|
16
|
+
}));
|
|
17
|
+
if (turns.length === 0) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
const transcriptSize = Number(db.get("SELECT size FROM transcripts WHERE session_id = ?", sessionId)?.["size"] ?? 0);
|
|
21
|
+
const touchesByTurn = new Map();
|
|
22
|
+
const allPaths = new Set();
|
|
23
|
+
for (const row of db.all("SELECT tf.turn_id AS turn_id, tf.path AS path, tf.last_ts AS last_ts FROM turn_files tf JOIN turns t ON t.id = tf.turn_id WHERE t.session_id = ?", sessionRowId)) {
|
|
24
|
+
const turnId = Number(row["turn_id"]);
|
|
25
|
+
const touches = touchesByTurn.get(turnId) ?? [];
|
|
26
|
+
touchesByTurn.set(turnId, touches);
|
|
27
|
+
touches.push({ path: row["path"], lastTs: Number(row["last_ts"]) });
|
|
28
|
+
allPaths.add(row["path"]);
|
|
29
|
+
}
|
|
30
|
+
const relevant = prompt === undefined
|
|
31
|
+
? allPaths
|
|
32
|
+
: new Set(rankFilesForTopic(db, prompt, { limit: 50, days: 365 })
|
|
33
|
+
.map((file) => file.path)
|
|
34
|
+
.filter((path) => allPaths.has(path)));
|
|
35
|
+
if (relevant.size === 0) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
const idf = fileIdf(db, [...relevant]);
|
|
39
|
+
const mtimeOf = (path) => {
|
|
40
|
+
try {
|
|
41
|
+
return statSync(join(root, path)).mtimeMs;
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return Number.MAX_SAFE_INTEGER;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const diskMtime = new Map([...relevant].map((path) => [path, mtimeOf(path)]));
|
|
48
|
+
const covered = new Map();
|
|
49
|
+
let best;
|
|
50
|
+
for (const [k, turn] of turns.entries()) {
|
|
51
|
+
for (const touch of touchesByTurn.get(turn.id) ?? []) {
|
|
52
|
+
if (relevant.has(touch.path)) {
|
|
53
|
+
covered.set(touch.path, Math.max(covered.get(touch.path) ?? 0, touch.lastTs));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const fresh = [];
|
|
57
|
+
const stale = [];
|
|
58
|
+
for (const [path, lastTs] of covered) {
|
|
59
|
+
(diskMtime.get(path) > lastTs ? stale : fresh).push(path);
|
|
60
|
+
}
|
|
61
|
+
const sum = (paths) => paths.reduce((total, path) => total + (idf.get(path) ?? 0), 0);
|
|
62
|
+
const bytes = (turns[k + 1]?.startByte ?? transcriptSize) - turns[0].startByte;
|
|
63
|
+
const estTokens = tokensOfChars(bytes);
|
|
64
|
+
const score = (sum(fresh) - 1.5 * sum(stale)) / Math.sqrt(estTokens + 1000);
|
|
65
|
+
if (score > 0 && (best === undefined || score > best.score)) {
|
|
66
|
+
best = {
|
|
67
|
+
point: { turnUuid: turn.uuid, ordinal: turn.ordinal, estTokens, coverageFiles: fresh.toSorted(), staleFiles: stale.toSorted() },
|
|
68
|
+
score,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return best?.point;
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=fork-point.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fork-point.js","sourceRoot":"","sources":["../../../src/recall/fork/fork-point.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface ForkOptions {
|
|
2
|
+
readonly transcriptPath: string;
|
|
3
|
+
readonly atTurnUuid?: string;
|
|
4
|
+
readonly dryRun?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface ForkResult {
|
|
7
|
+
readonly sessionId: string;
|
|
8
|
+
readonly path: string;
|
|
9
|
+
readonly keptLines: number;
|
|
10
|
+
readonly droppedLines: number;
|
|
11
|
+
readonly leafUuid: string;
|
|
12
|
+
readonly staleFiles: readonly string[];
|
|
13
|
+
}
|
|
14
|
+
export declare const materializeFork: (options: ForkOptions) => Promise<ForkResult>;
|
|
15
|
+
//# sourceMappingURL=fork.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/recall/fork/fork.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAG1B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AASD,eAAO,MAAM,eAAe,YAAmB,WAAW,KAAG,OAAO,CAAC,UAAU,CAwG9E,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { statSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { randomUUID } from "node:crypto";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import { readLines } from "../transcript/line-reader.js";
|
|
5
|
+
import { aiTitleOf, fileTouchesOf, leafUuidOf, parseLine, parentUuidOf, timestampOf, typedPromptOf, typeOf, uuidOf, } from "../transcript/lines.js";
|
|
6
|
+
const DROPPED_TYPES = new Set(["queue-operation", "file-history-snapshot", "mode", "ai-title", "last-prompt"]);
|
|
7
|
+
export const materializeFork = async (options) => {
|
|
8
|
+
const entries = [];
|
|
9
|
+
const byUuid = new Map();
|
|
10
|
+
const turns = [];
|
|
11
|
+
let lastLeaf;
|
|
12
|
+
let lastUuid;
|
|
13
|
+
let title;
|
|
14
|
+
for await (const { json } of readLines(options.transcriptPath, 0)) {
|
|
15
|
+
const line = parseLine(json);
|
|
16
|
+
if (line === undefined) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
const entry = { json, line };
|
|
20
|
+
entries.push(entry);
|
|
21
|
+
const uuid = uuidOf(line);
|
|
22
|
+
if (uuid !== undefined) {
|
|
23
|
+
byUuid.set(uuid, entry);
|
|
24
|
+
lastUuid = uuid;
|
|
25
|
+
}
|
|
26
|
+
const prompt = typedPromptOf(line);
|
|
27
|
+
if (prompt !== undefined && uuid !== undefined) {
|
|
28
|
+
const parentUuid = parentUuidOf(line);
|
|
29
|
+
turns.push({ uuid, prompt, ...(parentUuid !== undefined ? { parentUuid } : {}) });
|
|
30
|
+
}
|
|
31
|
+
title = aiTitleOf(line) ?? title;
|
|
32
|
+
lastLeaf = leafUuidOf(line) ?? lastLeaf;
|
|
33
|
+
}
|
|
34
|
+
if (turns.length === 0) {
|
|
35
|
+
throw new Error(`no user turns in ${options.transcriptPath}: nothing to fork`);
|
|
36
|
+
}
|
|
37
|
+
let leaf;
|
|
38
|
+
let lastPrompt;
|
|
39
|
+
if (options.atTurnUuid === undefined) {
|
|
40
|
+
leaf = lastLeaf ?? lastUuid;
|
|
41
|
+
lastPrompt = turns.at(-1).prompt;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
const index = turns.findIndex((turn) => turn.uuid === options.atTurnUuid);
|
|
45
|
+
if (index === -1) {
|
|
46
|
+
throw new Error(`--at ${options.atTurnUuid} is not a user turn of this session`);
|
|
47
|
+
}
|
|
48
|
+
const next = turns[index + 1];
|
|
49
|
+
if (next === undefined) {
|
|
50
|
+
leaf = lastLeaf ?? lastUuid;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
if (next.parentUuid === undefined) {
|
|
54
|
+
throw new Error(`turn after ${options.atTurnUuid} has no parent: cannot resolve the fork leaf`);
|
|
55
|
+
}
|
|
56
|
+
leaf = next.parentUuid;
|
|
57
|
+
}
|
|
58
|
+
lastPrompt = turns[index].prompt;
|
|
59
|
+
}
|
|
60
|
+
const chain = new Set();
|
|
61
|
+
for (let current = leaf; current !== undefined;) {
|
|
62
|
+
const entry = byUuid.get(current);
|
|
63
|
+
if (entry === undefined) {
|
|
64
|
+
throw new Error(`fork chain broken at ${current}: transcript line missing or oversized`);
|
|
65
|
+
}
|
|
66
|
+
chain.add(current);
|
|
67
|
+
current = parentUuidOf(entry.line);
|
|
68
|
+
}
|
|
69
|
+
const sessionId = randomUUID();
|
|
70
|
+
const kept = [];
|
|
71
|
+
const staleByPath = new Map();
|
|
72
|
+
for (const entry of entries) {
|
|
73
|
+
const type = typeOf(entry.line);
|
|
74
|
+
const uuid = uuidOf(entry.line);
|
|
75
|
+
if ((type !== undefined && DROPPED_TYPES.has(type)) || uuid === undefined || !chain.has(uuid)) {
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
kept.push(JSON.stringify({ ...entry.line, sessionId }));
|
|
79
|
+
const ts = timestampOf(entry.line);
|
|
80
|
+
for (const touch of fileTouchesOf(entry.line)) {
|
|
81
|
+
let changed;
|
|
82
|
+
try {
|
|
83
|
+
changed = ts !== undefined && statSync(touch.path).mtimeMs > ts;
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
changed = true;
|
|
87
|
+
}
|
|
88
|
+
staleByPath.set(touch.path, changed);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
kept.push(...(title !== undefined ? [JSON.stringify({ type: "ai-title", aiTitle: `${title} (fork)`, sessionId })] : []), JSON.stringify({ type: "last-prompt", lastPrompt, leafUuid: leaf, sessionId }));
|
|
92
|
+
const path = join(dirname(options.transcriptPath), `${sessionId}.jsonl`);
|
|
93
|
+
if (options.dryRun !== true) {
|
|
94
|
+
writeFileSync(path, `${kept.join("\n")}\n`);
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
sessionId,
|
|
98
|
+
path,
|
|
99
|
+
keptLines: kept.length,
|
|
100
|
+
droppedLines: entries.length - (kept.length - (title !== undefined ? 2 : 1)),
|
|
101
|
+
leafUuid: leaf,
|
|
102
|
+
staleFiles: [...staleByPath.entries()]
|
|
103
|
+
.filter(([, changed]) => changed)
|
|
104
|
+
.map(([touched]) => touched)
|
|
105
|
+
.toSorted(),
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=fork.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fork.js","sourceRoot":"","sources":["../../../src/recall/fork/fork.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SqliteDb } from "@intentic/base/sqlite";
|
|
2
|
+
export interface IngestStats {
|
|
3
|
+
transcripts: number;
|
|
4
|
+
sessions: number;
|
|
5
|
+
turns: number;
|
|
6
|
+
files: number;
|
|
7
|
+
}
|
|
8
|
+
export declare const ingest: (db: SqliteDb, options: {
|
|
9
|
+
root: string;
|
|
10
|
+
projectsDir: string;
|
|
11
|
+
deadlineMs?: number;
|
|
12
|
+
}) => Promise<IngestStats>;
|
|
13
|
+
//# sourceMappingURL=ingest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../../src/recall/ingest/ingest.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,WAAW,WAAW;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB;AAkLD,eAAO,MAAM,MAAM,OAAc,QAAQ,WAAW;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,OAAO,CAAC,WAAW,CA4EnI,CAAC"}
|