claude-code-infinite 1.0.33 → 1.0.34
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 +9 -2
- package/dist/cli-main.js +18 -9
- package/dist/cli-main.js.map +1 -1
- package/dist/hooks.d.ts +20 -0
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +34 -4
- package/dist/hooks.js.map +1 -1
- package/dist/host-session.d.ts +12 -0
- package/dist/host-session.d.ts.map +1 -0
- package/dist/host-session.js +12 -0
- package/dist/host-session.js.map +1 -0
- package/dist/image-refs.d.ts +24 -2
- package/dist/image-refs.d.ts.map +1 -1
- package/dist/image-refs.js +67 -20
- package/dist/image-refs.js.map +1 -1
- package/dist/index-wait-413.d.ts +26 -0
- package/dist/index-wait-413.d.ts.map +1 -0
- package/dist/index-wait-413.js +113 -0
- package/dist/index-wait-413.js.map +1 -0
- package/dist/memtree-finder.d.ts +70 -6
- package/dist/memtree-finder.d.ts.map +1 -1
- package/dist/memtree-finder.js +150 -20
- package/dist/memtree-finder.js.map +1 -1
- package/dist/memtree-handover.d.ts +13 -0
- package/dist/memtree-handover.d.ts.map +1 -0
- package/dist/memtree-handover.js +231 -0
- package/dist/memtree-handover.js.map +1 -0
- package/dist/memtree-mcp-config.d.ts +2 -2
- package/dist/memtree-mcp-config.d.ts.map +1 -1
- package/dist/memtree-mcp-config.js +8 -5
- package/dist/memtree-mcp-config.js.map +1 -1
- package/dist/memtree-mcp.d.ts +182 -2
- package/dist/memtree-mcp.d.ts.map +1 -1
- package/dist/memtree-mcp.js +357 -38
- package/dist/memtree-mcp.js.map +1 -1
- package/dist/memtree-newest.d.ts +21 -3
- package/dist/memtree-newest.d.ts.map +1 -1
- package/dist/memtree-newest.js +43 -11
- package/dist/memtree-newest.js.map +1 -1
- package/dist/memtree-times.d.ts +33 -0
- package/dist/memtree-times.d.ts.map +1 -1
- package/dist/memtree-times.js +77 -0
- package/dist/memtree-times.js.map +1 -1
- package/dist/memtree-tools.d.ts +19 -5
- package/dist/memtree-tools.d.ts.map +1 -1
- package/dist/memtree-tools.js +97 -23
- package/dist/memtree-tools.js.map +1 -1
- package/dist/memtree.d.ts +23 -0
- package/dist/memtree.d.ts.map +1 -1
- package/dist/memtree.js +78 -4
- package/dist/memtree.js.map +1 -1
- package/dist/network-failure.d.ts +28 -0
- package/dist/network-failure.d.ts.map +1 -0
- package/dist/network-failure.js +67 -0
- package/dist/network-failure.js.map +1 -0
- package/dist/prefix-store.d.ts +4 -0
- package/dist/prefix-store.d.ts.map +1 -1
- package/dist/prefix-store.js +8 -4
- package/dist/prefix-store.js.map +1 -1
- package/dist/project-trees.d.ts +15 -7
- package/dist/project-trees.d.ts.map +1 -1
- package/dist/project-trees.js +20 -9
- package/dist/project-trees.js.map +1 -1
- package/dist/proxy.d.ts +69 -1
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +467 -39
- package/dist/proxy.js.map +1 -1
- package/dist/reqlog.d.ts +24 -0
- package/dist/reqlog.d.ts.map +1 -1
- package/dist/reqlog.js.map +1 -1
- package/dist/resume-guidance.d.ts +9 -3
- package/dist/resume-guidance.d.ts.map +1 -1
- package/dist/resume-guidance.js +9 -3
- package/dist/resume-guidance.js.map +1 -1
- package/dist/route-fallback.d.ts +77 -11
- package/dist/route-fallback.d.ts.map +1 -1
- package/dist/route-fallback.js +157 -33
- package/dist/route-fallback.js.map +1 -1
- package/dist/route-identity.d.ts +6 -2
- package/dist/route-identity.d.ts.map +1 -1
- package/dist/route-identity.js +209 -16
- package/dist/route-identity.js.map +1 -1
- package/dist/subagent-hint.d.ts +28 -0
- package/dist/subagent-hint.d.ts.map +1 -1
- package/dist/subagent-hint.js +37 -0
- package/dist/subagent-hint.js.map +1 -1
- package/package.json +1 -1
package/dist/memtree-finder.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* and says which `read_lines` / `read_node`
|
|
14
14
|
* call opens it: those tools take the tree id as `tree`.
|
|
15
15
|
*/
|
|
16
|
-
import { formatTime, formatTimeSpan } from "./memtree-times.js";
|
|
16
|
+
import { bracketedSpan, formatTime, formatTimeSpan, MissingTimeNote } from "./memtree-times.js";
|
|
17
17
|
import { ToolInputError } from "./memtree-tools.js";
|
|
18
18
|
export const SESSIONS_DEFAULT_LIMIT = 20;
|
|
19
19
|
export const SESSIONS_MAX_LIMIT = 100;
|
|
@@ -21,6 +21,9 @@ export const FINDER_SEARCH_DEFAULT_LIMIT = 10;
|
|
|
21
21
|
export const FINDER_SEARCH_MAX_LIMIT = 50;
|
|
22
22
|
export const FINDER_SEARCH_MODES = ["vector", "text"];
|
|
23
23
|
const SNIPPET_CHARS = 400;
|
|
24
|
+
/** One `snippets` line of a cross-session hit (the server cuts them at ~240 characters). */
|
|
25
|
+
const SNIPPET_LINE_CHARS = 300;
|
|
26
|
+
const SUMMARY_CHARS = 300;
|
|
24
27
|
const TITLE_CHARS = 300;
|
|
25
28
|
const PATH_SUMMARY_CHARS = 80;
|
|
26
29
|
/** Query string for `/memtree/sessions` from the tool's arguments. */
|
|
@@ -51,6 +54,52 @@ export function searchQuery(args, tree) {
|
|
|
51
54
|
addLimit(params, args.limit, FINDER_SEARCH_MAX_LIMIT);
|
|
52
55
|
return `?${params.toString()}`;
|
|
53
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* A search across all sessions that the server refused as too broad (422: it
|
|
59
|
+
* did not finish in time) is retried over the newest days, widest window first.
|
|
60
|
+
* Measured on staging (2026-11-06): ~28% of agent searches came back 422 after
|
|
61
|
+
* 9-16 s. On its busiest account an unscoped search took ~10.5 s even for a word in
|
|
62
|
+
* no session (the cost is finding the account's trees, not matching), 14 and 7 days
|
|
63
|
+
* still timed out, and 2-3 days answered in ~0.5 s. The agents' own retries succeeded
|
|
64
|
+
* once they added a recent `since`. Only when the caller set no tree, time bounds or
|
|
65
|
+
* cursor.
|
|
66
|
+
*/
|
|
67
|
+
export const RECENT_SEARCH_WINDOWS_DAYS = [3, 1];
|
|
68
|
+
const DAY_MS = 24 * 60 * 60 * 1000;
|
|
69
|
+
/** The narrowed retry's arguments for `days`, or undefined when no retry applies. */
|
|
70
|
+
export function recentSearchArgs(args, tree, status, nowMs, days) {
|
|
71
|
+
if (status !== 422 || tree)
|
|
72
|
+
return undefined;
|
|
73
|
+
if (isSet(args.since) || isSet(args.until) || isSet(args.cursor))
|
|
74
|
+
return undefined;
|
|
75
|
+
// Vector search is left to the agent: its 422 already says how to narrow it (neither is
|
|
76
|
+
// charged, a search is charged only when its first page is delivered).
|
|
77
|
+
if (searchMode(args.mode) === "vector")
|
|
78
|
+
return undefined;
|
|
79
|
+
const since = new Date(nowMs - days * DAY_MS).toISOString().slice(0, 10);
|
|
80
|
+
return { ...args, since };
|
|
81
|
+
}
|
|
82
|
+
/** Added to the refusal when no narrowed window answered either. */
|
|
83
|
+
export function recentSearchFailedNote(triedDays, last) {
|
|
84
|
+
const windows = triedDays.map((d) => (d === 1 ? "1 day" : `${d} days`)).join(", then ");
|
|
85
|
+
const how = last.status === 422 ? "too broad as well; add a rarer word, project or tree"
|
|
86
|
+
: `that failed: ${last.error ?? `HTTP ${last.status}`}`;
|
|
87
|
+
return ` (ccc also tried the last ${windows}: ${how})`;
|
|
88
|
+
}
|
|
89
|
+
/** Said first in a narrowed retry's answer, so the model knows what was left out. */
|
|
90
|
+
export function recentSearchNote(since, days, pages = false) {
|
|
91
|
+
// The server binds a cursor to the search's filters, `since` included.
|
|
92
|
+
const more = pages
|
|
93
|
+
? ` To page on, add "since": "${since}" to the same arguments with the cursor below.`
|
|
94
|
+
: "";
|
|
95
|
+
return (`Searching all sessions matched too much to finish in time, so this searched only ` +
|
|
96
|
+
`sessions active since ${since} (the last ${days === 1 ? "day" : `${days} days`}). ` +
|
|
97
|
+
"For older work, search again " +
|
|
98
|
+
"with since/until, project or tree, or a rarer word (a name, id or path)." + more);
|
|
99
|
+
}
|
|
100
|
+
function isSet(value) {
|
|
101
|
+
return value !== undefined && value !== null && value !== "";
|
|
102
|
+
}
|
|
54
103
|
export function searchMode(value) {
|
|
55
104
|
if (value === undefined || value === null || value === "")
|
|
56
105
|
return "text";
|
|
@@ -76,7 +125,9 @@ function addLimit(params, value, max) {
|
|
|
76
125
|
throw new ToolInputError("limit must be a number");
|
|
77
126
|
params.set("limit", String(Math.max(1, Math.min(max, Math.floor(n)))));
|
|
78
127
|
}
|
|
79
|
-
export function formatSessions(body, args
|
|
128
|
+
export function formatSessions(body, args,
|
|
129
|
+
/** The calling Claude Code session: its entry is marked "(this session)". */
|
|
130
|
+
currentSessionId) {
|
|
80
131
|
const sessions = body.sessions ?? [];
|
|
81
132
|
if (!sessions.length) {
|
|
82
133
|
return args.cursor
|
|
@@ -85,7 +136,8 @@ export function formatSessions(body, args) {
|
|
|
85
136
|
}
|
|
86
137
|
const out = [`${sessions.length} session${sessions.length === 1 ? "" : "s"}, most recently active first:`];
|
|
87
138
|
sessions.forEach((s, i) => {
|
|
88
|
-
|
|
139
|
+
const mine = currentSessionId && s.session_id === currentSessionId ? " (this session)" : "";
|
|
140
|
+
out.push("", `[${i + 1}]${mine} ${oneLine(s.title, TITLE_CHARS) || "(no MemTree yet)"}`);
|
|
89
141
|
const when = [s.first_at, s.last_at].map(shortTime).filter(Boolean);
|
|
90
142
|
out.push(" " +
|
|
91
143
|
[
|
|
@@ -105,39 +157,50 @@ export function formatSessions(body, args) {
|
|
|
105
157
|
const tree = s.latest_tree;
|
|
106
158
|
if (tree?.request_id) {
|
|
107
159
|
const ref = tree.ref ?? tree.request_id;
|
|
108
|
-
out.push(` latest tree: ${tree.request_id}${tree.links?.url ? ` (${tree.links.url})` : ""}; ` +
|
|
160
|
+
out.push(` latest tree: ${tree.request_id}${bracketedSpan(tree.times)}${tree.links?.url ? ` (${tree.links.url})` : ""}; ` +
|
|
109
161
|
`browse it with read_node {"tree": "${ref}", "id": 0}, or search it with search {"tree": "${ref}", "query": …}`);
|
|
110
162
|
}
|
|
111
163
|
});
|
|
112
164
|
out.push("", nextPage("list", body.next_cursor));
|
|
113
165
|
return out.join("\n");
|
|
114
166
|
}
|
|
167
|
+
/** Said after a charged first page's heading (the server's `charged`). */
|
|
168
|
+
export const CHARGED_NOTE = "charged: one search";
|
|
115
169
|
export function formatSearchResults(body, args) {
|
|
116
170
|
const query = typeof body.query === "string" ? body.query : String(args.query ?? "");
|
|
117
171
|
if (body.groups) {
|
|
118
|
-
|
|
172
|
+
// A group ranked over only the newest trees says so even when it found nothing there.
|
|
173
|
+
const groups = body.groups.filter((g) => g.hits?.length || g.partial);
|
|
119
174
|
if (!groups.length)
|
|
120
|
-
return noHits(query, "vector", args);
|
|
175
|
+
return noHits(query, "vector", args, body.coverage, body.charged);
|
|
121
176
|
const out = [
|
|
122
177
|
`Semantic matches for ${JSON.stringify(query)}` +
|
|
123
|
-
(body.charged ?
|
|
178
|
+
(body.charged ? ` (${CHARGED_NOTE})` : "") +
|
|
124
179
|
":",
|
|
125
180
|
];
|
|
126
181
|
if (groups.length > 1) {
|
|
127
182
|
out.push("Each embedding model is ranked on its own; scores are not comparable across groups.");
|
|
128
183
|
}
|
|
184
|
+
const missing = new MissingTimeNote();
|
|
129
185
|
for (const group of groups) {
|
|
130
186
|
out.push("", `== ${group.embedding_model} ==`);
|
|
131
|
-
group.
|
|
187
|
+
if (group.partial)
|
|
188
|
+
out.push(partialNote(group.partial));
|
|
189
|
+
(group.hits ?? []).forEach((hit, i) => out.push(...formatHit(hit, i + 1, missing)));
|
|
132
190
|
}
|
|
133
191
|
out.push("", nextPage("search", body.next_cursor), OPEN_NOTE);
|
|
134
192
|
return out.join("\n");
|
|
135
193
|
}
|
|
136
194
|
const hits = body.hits ?? [];
|
|
137
195
|
if (!hits.length)
|
|
138
|
-
return noHits(query, "text", args);
|
|
139
|
-
const out = [
|
|
140
|
-
|
|
196
|
+
return noHits(query, "text", args, body.coverage, body.charged);
|
|
197
|
+
const out = [
|
|
198
|
+
`${hits.length} text match${hits.length === 1 ? "" : "es"} for ${JSON.stringify(query)}` +
|
|
199
|
+
(body.charged ? ` (${CHARGED_NOTE})` : "") +
|
|
200
|
+
":",
|
|
201
|
+
];
|
|
202
|
+
const missing = new MissingTimeNote();
|
|
203
|
+
hits.forEach((hit, i) => out.push(...formatHit(hit, i + 1, missing)));
|
|
141
204
|
if (body.relaxed === "any_word") {
|
|
142
205
|
out.splice(1, 0, "(No passage has every word, so these have some of them, best first. Try other words, or mode \"vector\" for meaning.)");
|
|
143
206
|
}
|
|
@@ -147,9 +210,9 @@ export function formatSearchResults(body, args) {
|
|
|
147
210
|
out.push("", nextPage("search", body.next_cursor), OPEN_NOTE);
|
|
148
211
|
return out.join("\n");
|
|
149
212
|
}
|
|
150
|
-
const OPEN_NOTE = "Snippets are excerpts. read_node {\"node\": <address>} opens a hit's node (its children and path; the path's " +
|
|
213
|
+
const OPEN_NOTE = "Snippets are excerpts (L<n>: the line in the hit's block). read_node {\"node\": <address>} opens a hit's node (its children and path; the path's " +
|
|
151
214
|
"addresses lead to parents and siblings); read_lines {\"node\": <address>} returns its exact transcript lines.";
|
|
152
|
-
function formatHit(hit, n) {
|
|
215
|
+
function formatHit(hit, n, missing) {
|
|
153
216
|
const tree = hit.tree?.request_id;
|
|
154
217
|
const ref = hit.tree?.ref ?? tree;
|
|
155
218
|
const range = hit.range;
|
|
@@ -158,7 +221,7 @@ function formatHit(hit, n) {
|
|
|
158
221
|
hit.tree?.created_at ? `tree ${tree} of ${shortTime(hit.tree.created_at)}` : `tree ${tree}`,
|
|
159
222
|
hit.leaf ? `leaf ${hit.leaf}` : undefined,
|
|
160
223
|
range ? `block ${range.block} lines ${range.start}-${range.end}` : undefined,
|
|
161
|
-
formatTimeSpan(hit.times),
|
|
224
|
+
formatTimeSpan(hit.times) ?? missing.next(),
|
|
162
225
|
typeof hit.score === "number" ? `score ${hit.score.toFixed(3)}` : undefined,
|
|
163
226
|
]
|
|
164
227
|
.filter(Boolean)
|
|
@@ -168,8 +231,9 @@ function formatHit(hit, n) {
|
|
|
168
231
|
lines.push(` page: ${hit.tree.links.url}`);
|
|
169
232
|
if (hit.path?.length)
|
|
170
233
|
lines.push(` path: ${formatPath(hit.path, ref)}`);
|
|
171
|
-
if (hit.
|
|
172
|
-
lines.push(` ${oneLine(
|
|
234
|
+
if (hit.summary)
|
|
235
|
+
lines.push(` summary: ${oneLine(hit.summary, SUMMARY_CHARS)}`);
|
|
236
|
+
lines.push(...hitSnippets(hit));
|
|
173
237
|
if (hit.address) {
|
|
174
238
|
lines.push(` address: ${hit.address}`);
|
|
175
239
|
}
|
|
@@ -178,23 +242,89 @@ function formatHit(hit, n) {
|
|
|
178
242
|
}
|
|
179
243
|
return lines;
|
|
180
244
|
}
|
|
245
|
+
/** `L<n>: text` per server snippet line, else the joined `snippet` (older servers). */
|
|
246
|
+
function hitSnippets(hit) {
|
|
247
|
+
const numbered = (Array.isArray(hit.snippets) ? hit.snippets : []).filter((s) => Number.isInteger(s?.line) && typeof s?.text === "string");
|
|
248
|
+
if (numbered.length) {
|
|
249
|
+
return numbered.map((s) => ` L${s.line}: ${oneLine(boldToMarkdown(s.text), SNIPPET_LINE_CHARS)}`);
|
|
250
|
+
}
|
|
251
|
+
return hit.snippet ? [` ${oneLine(boldToMarkdown(hit.snippet), SNIPPET_CHARS)}`] : [];
|
|
252
|
+
}
|
|
253
|
+
/** Why a vector group ranked only the newest trees. */
|
|
254
|
+
function partialNote(partial) {
|
|
255
|
+
const counted = typeof partial.trees === "number" && typeof partial.of_trees === "number"
|
|
256
|
+
? ` (${partial.trees} of ${partial.of_trees} trees${partial.since ? `, made since ${shortTime(partial.since)}` : ""})`
|
|
257
|
+
: "";
|
|
258
|
+
return `(Only the newest trees were ranked${counted}: the full ranking ran out of time. ` +
|
|
259
|
+
"There is no next page; narrow with since, until, project or tree to rank the others, or use mode \"text\".)";
|
|
260
|
+
}
|
|
181
261
|
/** Ancestors root first, ` › `-joined, each with its address when the tree is known. */
|
|
182
262
|
export function formatPath(path, ref) {
|
|
183
263
|
return path
|
|
184
264
|
.map((p) => `${oneLine(p.summary, PATH_SUMMARY_CHARS)}${ref ? ` (${ref}#${p.id})` : ` (node ${p.id})`}`)
|
|
185
265
|
.join(" › ");
|
|
186
266
|
}
|
|
187
|
-
function noHits(query, mode, args) {
|
|
267
|
+
function noHits(query, mode, args, coverage, charged) {
|
|
188
268
|
if (args.cursor)
|
|
189
269
|
return "No more matches.";
|
|
270
|
+
const searched = charged ? `${mode} search, ${CHARGED_NOTE}` : `${mode} search`;
|
|
190
271
|
const other = mode === "vector"
|
|
191
272
|
? 'For an exact word, id or path, try mode "text".'
|
|
192
|
-
: '
|
|
273
|
+
: 'Text mode needs the exact words; for meaning, try mode "vector".';
|
|
193
274
|
if (typeof args.tree === "string" && args.tree) {
|
|
194
|
-
return `Nothing in tree ${args.tree} matches ${JSON.stringify(query)} (${
|
|
275
|
+
return `Nothing in tree ${args.tree} matches ${JSON.stringify(query)} (${searched}). ${other}`;
|
|
276
|
+
}
|
|
277
|
+
const filtered = ["project", "since", "until"].some((k) => typeof args[k] === "string" && args[k]);
|
|
278
|
+
return [
|
|
279
|
+
`No passage in your sessions matches ${JSON.stringify(query)} (${searched}).`,
|
|
280
|
+
...coverageLines(coverage),
|
|
281
|
+
other + (filtered ? " Or widen since/until, or drop the project filter." : ""),
|
|
282
|
+
NOT_SEARCHED_NOTE,
|
|
283
|
+
].join(" ");
|
|
284
|
+
}
|
|
285
|
+
/** What an empty search covered: sessions searched, the newest index, this session's state. */
|
|
286
|
+
export function coverageLines(coverage) {
|
|
287
|
+
if (!coverage || typeof coverage.sessions !== "number")
|
|
288
|
+
return [];
|
|
289
|
+
const n = coverage.sessions;
|
|
290
|
+
const newest = shortTime(coverage.newest_indexed_at);
|
|
291
|
+
const lines = [
|
|
292
|
+
n === 0
|
|
293
|
+
? "None of your sessions has a MemTree yet."
|
|
294
|
+
: `Searched ${n} session${n === 1 ? "" : "s"}${newest ? ` (newest indexed ${newest})` : ""}.`,
|
|
295
|
+
];
|
|
296
|
+
const own = thisSessionLine(coverage.this_session);
|
|
297
|
+
if (own)
|
|
298
|
+
lines.push(own);
|
|
299
|
+
return lines;
|
|
300
|
+
}
|
|
301
|
+
function thisSessionLine(own) {
|
|
302
|
+
switch (own?.state) {
|
|
303
|
+
case "indexed": {
|
|
304
|
+
const at = shortTime(own.indexed_at);
|
|
305
|
+
return `This session is indexed${at ? ` up to ${at}` : ""}.`;
|
|
306
|
+
}
|
|
307
|
+
case "building":
|
|
308
|
+
return `This session isn't indexed yet: its first index is ${Math.max(0, Math.min(99, Math.floor(own.percent ?? 0)))}% done.`;
|
|
309
|
+
case "too_short":
|
|
310
|
+
return `This session isn't indexed yet: indexing starts at about ${kTokens(own.start_tokens)} tokens and it has about ${kTokens(own.tokens)}.`;
|
|
311
|
+
case "not_indexed":
|
|
312
|
+
return "This session isn't indexed yet.";
|
|
313
|
+
default:
|
|
314
|
+
return undefined;
|
|
195
315
|
}
|
|
196
|
-
return `No passage in your sessions matches ${JSON.stringify(query)} (${mode} search). ${other} Or widen since/until, or drop the project filter.`;
|
|
197
316
|
}
|
|
317
|
+
function kTokens(n) {
|
|
318
|
+
const value = Math.max(0, Number(n) || 0);
|
|
319
|
+
return value >= 1000 ? `${Math.round(value / 1000)}k` : String(Math.round(value));
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Why a session may not be found, said on every empty search across sessions: only
|
|
323
|
+
* ccc sessions are indexed, and a session's newest messages wait for its next index.
|
|
324
|
+
*/
|
|
325
|
+
export const NOT_SEARCHED_NOTE = "Only ccc sessions on this MemTree account are searched (any machine); Codex and plain claude sessions are not. " +
|
|
326
|
+
"A session's newest turns reach search and list's ending only with its next index (often 10+ minutes later); " +
|
|
327
|
+
"read_lines {\"tree\": <ref>, \"tail\": true} shows its messages up to its latest user prompt.";
|
|
198
328
|
function nextPage(tool, cursor) {
|
|
199
329
|
return cursor
|
|
200
330
|
? `More results: call ${tool} again with the same arguments and "cursor": "${cursor}".`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memtree-finder.js","sourceRoot":"","sources":["../src/memtree-finder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memtree-finder.js","sourceRoot":"","sources":["../src/memtree-finder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Days of messages a pack covers by default, and at most (the server's bounds). */
|
|
2
|
+
export declare const HANDOVER_DEFAULT_DAYS = 3;
|
|
3
|
+
export declare const HANDOVER_MAX_DAYS = 60;
|
|
4
|
+
export declare const USER_MESSAGES_MAX_LIMIT = 200;
|
|
5
|
+
/** `user_messages` arguments as the server's query string; throws on bad input. */
|
|
6
|
+
export declare function userMessagesQuery(args: Record<string, unknown>): URLSearchParams;
|
|
7
|
+
/** `handover` arguments as the server's query string; throws on bad input. */
|
|
8
|
+
export declare function handoverQuery(args: Record<string, unknown>): URLSearchParams;
|
|
9
|
+
/** The user_messages answer as text. */
|
|
10
|
+
export declare function formatUserMessages(body: unknown, args: Record<string, unknown>, tree?: string): string;
|
|
11
|
+
/** The handover pack as text: how it ended, the model's lists, then the messages. */
|
|
12
|
+
export declare function formatHandover(body: unknown, tree?: string): string;
|
|
13
|
+
//# sourceMappingURL=memtree-handover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memtree-handover.d.ts","sourceRoot":"","sources":["../src/memtree-handover.ts"],"names":[],"mappings":"AAcA,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,uBAAuB,MAAM,CAAC;AA2B3C,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CAiBhF;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CAY5E;AAED,wCAAwC;AACxC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBtG;AAED,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CA8BnE"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `user_messages` and `handover` tools: the person's own messages over a time
|
|
3
|
+
* range, and a handover pack (their recent messages, how the session ended, and a
|
|
4
|
+
* model's reading of their goals, instructions, decisions and open questions).
|
|
5
|
+
*
|
|
6
|
+
* The server builds both (polychat `routes/memtree_handover.py`); this module turns its
|
|
7
|
+
* JSON into the tool's text and its arguments into the query string. Why: a new agent
|
|
8
|
+
* taking over a long session needs what the person asked for, decided and corrected, and
|
|
9
|
+
* the tree mixes those with every tool result (polychat
|
|
10
|
+
* reports/2026-11-08_memtree_orchestrator_handover.md).
|
|
11
|
+
*/
|
|
12
|
+
import { formatTime } from "./memtree-times.js";
|
|
13
|
+
import { ToolInputError } from "./memtree-tools.js";
|
|
14
|
+
/** Days of messages a pack covers by default, and at most (the server's bounds). */
|
|
15
|
+
export const HANDOVER_DEFAULT_DAYS = 3;
|
|
16
|
+
export const HANDOVER_MAX_DAYS = 60;
|
|
17
|
+
export const USER_MESSAGES_MAX_LIMIT = 200;
|
|
18
|
+
/** `user_messages` arguments as the server's query string; throws on bad input. */
|
|
19
|
+
export function userMessagesQuery(args) {
|
|
20
|
+
const params = new URLSearchParams();
|
|
21
|
+
for (const key of ["since", "until", "cursor"])
|
|
22
|
+
setString("user_messages", params, args, key, key);
|
|
23
|
+
setString("user_messages", params, args, "query", "q");
|
|
24
|
+
if (args.limit !== undefined && args.limit !== null) {
|
|
25
|
+
const limit = integer(args.limit);
|
|
26
|
+
if (limit === undefined || limit < 1) {
|
|
27
|
+
throw new ToolInputError(`user_messages: limit must be 1 to ${USER_MESSAGES_MAX_LIMIT}`);
|
|
28
|
+
}
|
|
29
|
+
params.set("limit", String(Math.min(limit, USER_MESSAGES_MAX_LIMIT)));
|
|
30
|
+
}
|
|
31
|
+
for (const flag of ["full", "context"]) {
|
|
32
|
+
if (args[flag] === undefined || args[flag] === null)
|
|
33
|
+
continue;
|
|
34
|
+
if (typeof args[flag] !== "boolean")
|
|
35
|
+
throw new ToolInputError(`user_messages: ${flag} must be true or false`);
|
|
36
|
+
if (args[flag])
|
|
37
|
+
params.set(flag, "true");
|
|
38
|
+
}
|
|
39
|
+
return params;
|
|
40
|
+
}
|
|
41
|
+
/** `handover` arguments as the server's query string; throws on bad input. */
|
|
42
|
+
export function handoverQuery(args) {
|
|
43
|
+
const params = new URLSearchParams();
|
|
44
|
+
setString("handover", params, args, "since", "since");
|
|
45
|
+
setString("handover", params, args, "until", "until");
|
|
46
|
+
if (args.days !== undefined && args.days !== null) {
|
|
47
|
+
const days = integer(args.days);
|
|
48
|
+
if (days === undefined || days < 1 || days > HANDOVER_MAX_DAYS) {
|
|
49
|
+
throw new ToolInputError(`handover: days must be 1 to ${HANDOVER_MAX_DAYS}`);
|
|
50
|
+
}
|
|
51
|
+
params.set("days", String(days));
|
|
52
|
+
}
|
|
53
|
+
return params;
|
|
54
|
+
}
|
|
55
|
+
/** The user_messages answer as text. */
|
|
56
|
+
export function formatUserMessages(body, args, tree) {
|
|
57
|
+
const page = (body ?? {});
|
|
58
|
+
const messages = Array.isArray(page.messages) ? page.messages : [];
|
|
59
|
+
const where = windowText(page.window);
|
|
60
|
+
if (!messages.length) {
|
|
61
|
+
const none = `No messages from the person${where}${args.query ? ` with ${JSON.stringify(args.query)}` : ""}.`;
|
|
62
|
+
const notes = pageNotes(page, args);
|
|
63
|
+
return notes.length ? `${none}\n[${notes.join("; ")}]` : none;
|
|
64
|
+
}
|
|
65
|
+
const out = [
|
|
66
|
+
`The person's own messages${where}: ${messages.length} of ${page.total ?? messages.length}, oldest first ` +
|
|
67
|
+
"(typed, commands, words sent mid-turn, board messages; tool results and other agents' messages left out).",
|
|
68
|
+
];
|
|
69
|
+
for (const m of messages)
|
|
70
|
+
out.push("", ...messageLines(m));
|
|
71
|
+
out.push("", ...footer(page, args, tree));
|
|
72
|
+
return out.join("\n");
|
|
73
|
+
}
|
|
74
|
+
/** The handover pack as text: how it ended, the model's lists, then the messages. */
|
|
75
|
+
export function formatHandover(body, tree) {
|
|
76
|
+
const pack = (body ?? {});
|
|
77
|
+
const out = [
|
|
78
|
+
`Handover pack${tree ? ` for ${tree}` : " for this session"}${windowText(pack.window)}.`,
|
|
79
|
+
];
|
|
80
|
+
out.push(...endingLines(pack.ending));
|
|
81
|
+
if (pack.llm === "ok") {
|
|
82
|
+
out.push("", "Goals, instructions, decisions and open questions below are a model's reading of the " +
|
|
83
|
+
"person's messages: check one against the messages it cites (n) before acting on it.");
|
|
84
|
+
out.push(...listLines("Goals", pack.goals, (i) => i.text));
|
|
85
|
+
out.push(...listLines("Standing instructions", pack.instructions, (i) => i.text));
|
|
86
|
+
out.push(...listLines("Decisions (newest first)", pack.decisions, (i) => `${i.decision}${i.reason ? ` (why: ${i.reason})` : ""}`));
|
|
87
|
+
out.push(...listLines("Open questions", pack.open_questions, (i) => `${i.question}${i.context ? ` (${i.context})` : ""}`));
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
out.push("", `(No model summary this time: ${llmNote(pack.llm)}. The messages below are the person's own words.)`);
|
|
91
|
+
}
|
|
92
|
+
const messages = Array.isArray(pack.messages) ? pack.messages : [];
|
|
93
|
+
out.push("", `The person's messages in the window (${messages.length} of ${pack.messages_total ?? messages.length}, ` +
|
|
94
|
+
"oldest first; each with the agent's words it answered):");
|
|
95
|
+
for (const m of messages)
|
|
96
|
+
out.push("", ...messageLines(m));
|
|
97
|
+
const cursor = pack.messages_cursor;
|
|
98
|
+
if (typeof cursor === "string" && cursor) {
|
|
99
|
+
out.push("", `[older messages in the window: user_messages {${treeArg(tree)}"cursor": ${JSON.stringify(cursor)}${sinceArg(pack.window)}, "context": true}]`);
|
|
100
|
+
}
|
|
101
|
+
out.push("", readHint(tree));
|
|
102
|
+
const newest = pack.newest?.note;
|
|
103
|
+
if (newest)
|
|
104
|
+
out.push(`(${newest})`);
|
|
105
|
+
return out.join("\n");
|
|
106
|
+
}
|
|
107
|
+
// --- helpers -----------------------------------------------------------------
|
|
108
|
+
function setString(tool, params, args, key, param) {
|
|
109
|
+
const value = args[key];
|
|
110
|
+
if (value === undefined || value === null)
|
|
111
|
+
return;
|
|
112
|
+
if (typeof value !== "string")
|
|
113
|
+
throw new ToolInputError(`${tool}: ${key} must be a string`);
|
|
114
|
+
if (value.trim())
|
|
115
|
+
params.set(param, value.trim());
|
|
116
|
+
}
|
|
117
|
+
/** An integer given as a number or a numeric string; undefined for anything else. */
|
|
118
|
+
function integer(value) {
|
|
119
|
+
if (typeof value === "number")
|
|
120
|
+
return Number.isInteger(value) ? value : undefined;
|
|
121
|
+
if (typeof value === "string" && /^\s*-?\d+\s*$/.test(value))
|
|
122
|
+
return Number(value);
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
function messageLines(m) {
|
|
126
|
+
const at = m.at ? formatTime(m.at) ?? m.at : m.approx ? `~${formatTime(m.approx[0]) ?? m.approx[0]}` : "time unknown";
|
|
127
|
+
const board = m.board?.title ? ` (${m.board.title})` : "";
|
|
128
|
+
const cut = m.shortened ? ` · shortened from ${m.chars ?? "?"} chars` : "";
|
|
129
|
+
const head = `[n ${m.n} · ${at} · ${m.kind ?? "typed"}${board} · ${readRef(m.read)}${cut}]`;
|
|
130
|
+
const lines = [head];
|
|
131
|
+
if (m.reply_to)
|
|
132
|
+
lines.push(`↳ answering: ${m.reply_to.replace(/\s+/g, " ").trim()}`);
|
|
133
|
+
lines.push(m.text ?? "");
|
|
134
|
+
return lines;
|
|
135
|
+
}
|
|
136
|
+
function readRef(read) {
|
|
137
|
+
if (!read)
|
|
138
|
+
return "?";
|
|
139
|
+
if (typeof read.tail === "number")
|
|
140
|
+
return `tail ${read.tail}`;
|
|
141
|
+
const more = read.continues ? ` + block ${read.continues.block} lines ${read.continues.start}-${read.continues.end}` : "";
|
|
142
|
+
return `block ${read.block} lines ${read.start}-${read.end}${more}`;
|
|
143
|
+
}
|
|
144
|
+
function footer(page, args, tree) {
|
|
145
|
+
const notes = [];
|
|
146
|
+
if (page.next_cursor) {
|
|
147
|
+
const rest = ["since", "until", "query", "limit", "full", "context"]
|
|
148
|
+
.filter((k) => args[k] !== undefined && args[k] !== null && args[k] !== "" && args[k] !== false)
|
|
149
|
+
.map((k) => `, ${JSON.stringify(k)}: ${JSON.stringify(args[k])}`).join("");
|
|
150
|
+
notes.push(`older: user_messages {${treeArg(tree)}"cursor": ${JSON.stringify(page.next_cursor)}${rest}}`);
|
|
151
|
+
}
|
|
152
|
+
notes.push(...pageNotes(page, args));
|
|
153
|
+
const out = notes.length ? [`[${notes.join("; ")}]`] : [];
|
|
154
|
+
out.push(readHint(tree));
|
|
155
|
+
return out;
|
|
156
|
+
}
|
|
157
|
+
function pageNotes(page, _args) {
|
|
158
|
+
const notes = [];
|
|
159
|
+
if (page.untimed)
|
|
160
|
+
notes.push(`${page.untimed} older message(s) have no recorded time and are only listed without since/until`);
|
|
161
|
+
if (page.newest?.note)
|
|
162
|
+
notes.push(page.newest.note);
|
|
163
|
+
return notes;
|
|
164
|
+
}
|
|
165
|
+
function readHint(tree) {
|
|
166
|
+
return `Context of one message: read_lines {${treeArg(tree)}"block": B, "start": S, "end": E} for "block B lines S-E", ` +
|
|
167
|
+
`read_lines {${treeArg(tree)}"tail": true, "start": N, "end": N} for "tail N".`;
|
|
168
|
+
}
|
|
169
|
+
function endingLines(ending) {
|
|
170
|
+
if (!ending || typeof ending !== "object" || !Object.keys(ending).length)
|
|
171
|
+
return [];
|
|
172
|
+
const at = typeof ending.at === "string" ? ` (newest message ${formatTime(ending.at) ?? ending.at})` : "";
|
|
173
|
+
const out = ["", `How it ended${at}:`];
|
|
174
|
+
if (typeof ending.summary === "string")
|
|
175
|
+
out.push(ending.summary);
|
|
176
|
+
const last = ending.last_message;
|
|
177
|
+
if (last?.text) {
|
|
178
|
+
const when = last.at ? ` at ${formatTime(last.at) ?? last.at}` : "";
|
|
179
|
+
out.push(`The person's last message (n ${last.n}${when}): ${last.text}`);
|
|
180
|
+
}
|
|
181
|
+
if (Array.isArray(ending.tools_after) && ending.tools_after.length) {
|
|
182
|
+
out.push(`Then the agent ran: ${countRuns(ending.tools_after)}`);
|
|
183
|
+
}
|
|
184
|
+
if (typeof ending.last_words === "string")
|
|
185
|
+
out.push(`The agent's last words: ${ending.last_words}`);
|
|
186
|
+
return out;
|
|
187
|
+
}
|
|
188
|
+
function countRuns(tools) {
|
|
189
|
+
const runs = [];
|
|
190
|
+
for (let i = 0; i < tools.length;) {
|
|
191
|
+
let j = i;
|
|
192
|
+
while (j < tools.length && tools[j] === tools[i])
|
|
193
|
+
j++;
|
|
194
|
+
runs.push(j - i > 1 ? `${tools[i]} ×${j - i}` : tools[i]);
|
|
195
|
+
i = j;
|
|
196
|
+
}
|
|
197
|
+
return runs.join(", ");
|
|
198
|
+
}
|
|
199
|
+
function listLines(title, raw, text) {
|
|
200
|
+
const items = Array.isArray(raw) ? raw : [];
|
|
201
|
+
if (!items.length)
|
|
202
|
+
return ["", `${title}: none found.`];
|
|
203
|
+
const out = ["", `${title}:`];
|
|
204
|
+
for (const item of items) {
|
|
205
|
+
const refs = Array.isArray(item.refs) && item.refs.length ? ` (n ${item.refs.join(", ")})` : "";
|
|
206
|
+
out.push(`- ${text(item) ?? ""}${refs}`);
|
|
207
|
+
}
|
|
208
|
+
return out;
|
|
209
|
+
}
|
|
210
|
+
function llmNote(status) {
|
|
211
|
+
switch (status) {
|
|
212
|
+
case "off": return "the summary is switched off on this server";
|
|
213
|
+
case "rate_limited": return "too many packs this hour; try again later";
|
|
214
|
+
default: return "the summary model failed; try again in a minute";
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
function windowText(window) {
|
|
218
|
+
if (!window || (!window.since && !window.until))
|
|
219
|
+
return "";
|
|
220
|
+
const from = window.since ? formatTime(window.since) ?? window.since : "the start";
|
|
221
|
+
const to = window.until ? formatTime(window.until) ?? window.until : "now";
|
|
222
|
+
return ` from ${from} to ${to}`;
|
|
223
|
+
}
|
|
224
|
+
function sinceArg(window) {
|
|
225
|
+
const w = window;
|
|
226
|
+
return [w?.since ? `, "since": ${JSON.stringify(w.since)}` : "", w?.until ? `, "until": ${JSON.stringify(w.until)}` : ""].join("");
|
|
227
|
+
}
|
|
228
|
+
function treeArg(tree) {
|
|
229
|
+
return tree ? `"tree": ${JSON.stringify(tree)}, ` : "";
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=memtree-handover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memtree-handover.js","sourceRoot":"","sources":["../src/memtree-handover.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,12 +5,12 @@ export declare const MEMTREE_ALLOWED_TOOLS: string[];
|
|
|
5
5
|
export declare const MEMTREE_MCP_SCRIPT: string;
|
|
6
6
|
export declare function memtreeMcpEnabledByEnv(env: NodeJS.ProcessEnv): boolean;
|
|
7
7
|
/** The `--mcp-config` JSON for this ccc's server, bound to its proxy. */
|
|
8
|
-
export declare function memtreeMcpConfig(proxyUrl: string): object;
|
|
8
|
+
export declare function memtreeMcpConfig(proxyUrl: string, hostToken?: string): object;
|
|
9
9
|
export interface MemtreeMcpConfigFile {
|
|
10
10
|
path: string;
|
|
11
11
|
close(): void;
|
|
12
12
|
}
|
|
13
|
-
export declare function writeMemtreeMcpConfig(proxyUrl: string, tempRoot?: string): MemtreeMcpConfigFile;
|
|
13
|
+
export declare function writeMemtreeMcpConfig(proxyUrl: string, tempRoot?: string, hostToken?: string): MemtreeMcpConfigFile;
|
|
14
14
|
export interface MemtreeMcpPlan {
|
|
15
15
|
/** ccc registers its own server (`--mcp-config` + `--allowedTools`). */
|
|
16
16
|
register: boolean;
|