@buoy-gg/agent-core 7.0.36 → 7.0.38
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 +13 -9
- package/lib/commonjs/catalog/catalog.g.js +93 -6
- package/lib/commonjs/catalog/catalog.g.js.map +1 -1
- package/lib/commonjs/catalog/catalog.source.json +106 -4
- package/lib/commonjs/catalog/catalog.types.g.js +3 -3
- package/lib/commonjs/catalog/catalog.types.g.js.map +1 -1
- package/lib/commonjs/catalog/toProviderTools.js +3 -1
- package/lib/commonjs/catalog/toProviderTools.js.map +1 -1
- package/lib/commonjs/effects/ledger.js +13 -1
- package/lib/commonjs/effects/ledger.js.map +1 -1
- package/lib/commonjs/engine/evidence.js +113 -0
- package/lib/commonjs/engine/evidence.js.map +1 -0
- package/lib/commonjs/engine/historyBudget.js +158 -55
- package/lib/commonjs/engine/historyBudget.js.map +1 -1
- package/lib/commonjs/engine/retrieve.js +214 -0
- package/lib/commonjs/engine/retrieve.js.map +1 -0
- package/lib/commonjs/engine/runAgentTurn.js +364 -94
- package/lib/commonjs/engine/runAgentTurn.js.map +1 -1
- package/lib/commonjs/engine/systemPrompt.js +31 -1
- package/lib/commonjs/engine/systemPrompt.js.map +1 -1
- package/lib/commonjs/engine/tokenCalibration.js +81 -0
- package/lib/commonjs/engine/tokenCalibration.js.map +1 -0
- package/lib/commonjs/engine/verify.js +300 -0
- package/lib/commonjs/engine/verify.js.map +1 -0
- package/lib/commonjs/index.js +16 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/providers/anthropic.js +12 -3
- package/lib/commonjs/providers/anthropic.js.map +1 -1
- package/lib/commonjs/providers/openai.js +11 -3
- package/lib/commonjs/providers/openai.js.map +1 -1
- package/lib/commonjs/providers/problem.js +98 -0
- package/lib/commonjs/providers/problem.js.map +1 -0
- package/lib/commonjs/providers/sse.js +6 -5
- package/lib/commonjs/providers/sse.js.map +1 -1
- package/lib/commonjs/providers/transport.js +20 -4
- package/lib/commonjs/providers/transport.js.map +1 -1
- package/lib/commonjs/providers/xhrStream.js +3 -0
- package/lib/commonjs/providers/xhrStream.js.map +1 -1
- package/lib/commonjs/session.js +32 -5
- package/lib/commonjs/session.js.map +1 -1
- package/lib/module/catalog/catalog.g.js +93 -6
- package/lib/module/catalog/catalog.g.js.map +1 -1
- package/lib/module/catalog/catalog.source.json +106 -4
- package/lib/module/catalog/catalog.types.g.js +3 -3
- package/lib/module/catalog/catalog.types.g.js.map +1 -1
- package/lib/module/catalog/toProviderTools.js +3 -1
- package/lib/module/catalog/toProviderTools.js.map +1 -1
- package/lib/module/effects/ledger.js +13 -1
- package/lib/module/effects/ledger.js.map +1 -1
- package/lib/module/engine/evidence.js +107 -0
- package/lib/module/engine/evidence.js.map +1 -0
- package/lib/module/engine/historyBudget.js +158 -54
- package/lib/module/engine/historyBudget.js.map +1 -1
- package/lib/module/engine/retrieve.js +210 -0
- package/lib/module/engine/retrieve.js.map +1 -0
- package/lib/module/engine/runAgentTurn.js +365 -96
- package/lib/module/engine/runAgentTurn.js.map +1 -1
- package/lib/module/engine/systemPrompt.js +30 -1
- package/lib/module/engine/systemPrompt.js.map +1 -1
- package/lib/module/engine/tokenCalibration.js +75 -0
- package/lib/module/engine/tokenCalibration.js.map +1 -0
- package/lib/module/engine/verify.js +292 -0
- package/lib/module/engine/verify.js.map +1 -0
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/providers/anthropic.js +12 -3
- package/lib/module/providers/anthropic.js.map +1 -1
- package/lib/module/providers/openai.js +11 -3
- package/lib/module/providers/openai.js.map +1 -1
- package/lib/module/providers/problem.js +92 -0
- package/lib/module/providers/problem.js.map +1 -0
- package/lib/module/providers/sse.js +6 -5
- package/lib/module/providers/sse.js.map +1 -1
- package/lib/module/providers/transport.js +20 -4
- package/lib/module/providers/transport.js.map +1 -1
- package/lib/module/providers/xhrStream.js +3 -0
- package/lib/module/providers/xhrStream.js.map +1 -1
- package/lib/module/session.js +33 -6
- package/lib/module/session.js.map +1 -1
- package/lib/typescript/catalog/catalog.g.d.ts +2 -2
- package/lib/typescript/catalog/catalog.g.d.ts.map +1 -1
- package/lib/typescript/catalog/catalog.types.g.d.ts +3 -3
- package/lib/typescript/catalog/catalog.types.g.d.ts.map +1 -1
- package/lib/typescript/catalog/toProviderTools.d.ts.map +1 -1
- package/lib/typescript/effects/ledger.d.ts +18 -0
- package/lib/typescript/effects/ledger.d.ts.map +1 -1
- package/lib/typescript/engine/evidence.d.ts +67 -0
- package/lib/typescript/engine/evidence.d.ts.map +1 -0
- package/lib/typescript/engine/historyBudget.d.ts +31 -8
- package/lib/typescript/engine/historyBudget.d.ts.map +1 -1
- package/lib/typescript/engine/retrieve.d.ts +32 -0
- package/lib/typescript/engine/retrieve.d.ts.map +1 -0
- package/lib/typescript/engine/runAgentTurn.d.ts +96 -2
- package/lib/typescript/engine/runAgentTurn.d.ts.map +1 -1
- package/lib/typescript/engine/systemPrompt.d.ts +39 -0
- package/lib/typescript/engine/systemPrompt.d.ts.map +1 -1
- package/lib/typescript/engine/tokenCalibration.d.ts +46 -0
- package/lib/typescript/engine/tokenCalibration.d.ts.map +1 -0
- package/lib/typescript/engine/verify.d.ts +67 -0
- package/lib/typescript/engine/verify.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +4 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/providers/anthropic.d.ts.map +1 -1
- package/lib/typescript/providers/openai.d.ts.map +1 -1
- package/lib/typescript/providers/problem.d.ts +50 -0
- package/lib/typescript/providers/problem.d.ts.map +1 -0
- package/lib/typescript/providers/sse.d.ts +4 -1
- package/lib/typescript/providers/sse.d.ts.map +1 -1
- package/lib/typescript/providers/transport.d.ts +8 -0
- package/lib/typescript/providers/transport.d.ts.map +1 -1
- package/lib/typescript/providers/types.d.ts +14 -0
- package/lib/typescript/providers/types.d.ts.map +1 -1
- package/lib/typescript/providers/xhrStream.d.ts +2 -0
- package/lib/typescript/providers/xhrStream.d.ts.map +1 -1
- package/lib/typescript/session.d.ts +15 -2
- package/lib/typescript/session.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +6 -0
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +9 -9
- package/LICENSE +0 -58
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* `ask-buoy.retrieve` — read part of a kept result back. See evidence.ts.
|
|
5
|
+
*
|
|
6
|
+
* Four ways in, chosen so the model never needs the whole thing again:
|
|
7
|
+
*
|
|
8
|
+
* - nothing but `ref` → the SHAPE: top-level keys with type and size, so the
|
|
9
|
+
* next call can name a path. Handing back the full
|
|
10
|
+
* text would only hit the same cap that cut it.
|
|
11
|
+
* - `path` → the value at a dotted / slash path ("stats.0.base_stat",
|
|
12
|
+
* "/moves/3/move/name"). Arrays index by number.
|
|
13
|
+
* - `slice: [a, b]` → a window: items of an array, characters of a string.
|
|
14
|
+
* Combines with `path`.
|
|
15
|
+
* - `pattern` → a literal, case-insensitive substring search over the
|
|
16
|
+
* pretty-printed text; matching lines with
|
|
17
|
+
* `contextLines` (default 2) around each. Not a regex:
|
|
18
|
+
* a model that means "height" should not have to
|
|
19
|
+
* escape anything, and an executable pattern over a
|
|
20
|
+
* store of app data is a surface nobody asked for.
|
|
21
|
+
*
|
|
22
|
+
* Every result is capped at the same size as any other tool result, and the
|
|
23
|
+
* engine never stashes a retrieve result — a retrieve of a retrieve is a loop.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
const MAX_MATCHES = 20;
|
|
27
|
+
const MAX_SHAPE_KEYS = 60;
|
|
28
|
+
const DEFAULT_CONTEXT_LINES = 2;
|
|
29
|
+
export function retrieveEvidence(store, params) {
|
|
30
|
+
if (!store) {
|
|
31
|
+
return {
|
|
32
|
+
ok: false,
|
|
33
|
+
error: "There is no evidence store in this session, so earlier results cannot be re-read. Call the tool again for the current value."
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const entry = store.get(params.ref);
|
|
37
|
+
if (!entry) {
|
|
38
|
+
return store.wasEvicted(params.ref) ? {
|
|
39
|
+
ok: false,
|
|
40
|
+
error: `${params.ref} was kept but has since been evicted to make room (the store holds the most recent ~4 MB of results). Call the tool again for the current value.`
|
|
41
|
+
} : {
|
|
42
|
+
ok: false,
|
|
43
|
+
error: `No result with ref ${params.ref}. Refs look like ev_12 and appear in [truncated — …] and [earlier result — …] markers.`
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
const meta = {
|
|
47
|
+
ref: entry.ref,
|
|
48
|
+
from: `${entry.toolId}.${entry.action}`,
|
|
49
|
+
capturedAt: new Date(entry.capturedAt).toISOString(),
|
|
50
|
+
totalChars: entry.text.length
|
|
51
|
+
};
|
|
52
|
+
let parsed;
|
|
53
|
+
let isJson = true;
|
|
54
|
+
try {
|
|
55
|
+
parsed = JSON.parse(entry.text);
|
|
56
|
+
} catch {
|
|
57
|
+
isJson = false;
|
|
58
|
+
}
|
|
59
|
+
if (params.pattern !== undefined && params.pattern !== "") {
|
|
60
|
+
return {
|
|
61
|
+
...meta,
|
|
62
|
+
...search(isJson ? JSON.stringify(parsed, null, 1) : entry.text, params.pattern, params.contextLines ?? DEFAULT_CONTEXT_LINES)
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
if (!isJson) {
|
|
66
|
+
const text = params.slice ? entry.text.slice(params.slice[0], params.slice[1]) : entry.text;
|
|
67
|
+
return {
|
|
68
|
+
...meta,
|
|
69
|
+
text
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
let value = parsed;
|
|
73
|
+
let at = "(root)";
|
|
74
|
+
if (params.path) {
|
|
75
|
+
const resolved = resolvePath(parsed, params.path);
|
|
76
|
+
if (!resolved.ok) return {
|
|
77
|
+
...meta,
|
|
78
|
+
ok: false,
|
|
79
|
+
error: resolved.error
|
|
80
|
+
};
|
|
81
|
+
value = resolved.value;
|
|
82
|
+
at = params.path;
|
|
83
|
+
}
|
|
84
|
+
if (params.slice) {
|
|
85
|
+
const [a, b] = params.slice;
|
|
86
|
+
if (Array.isArray(value)) return {
|
|
87
|
+
...meta,
|
|
88
|
+
at,
|
|
89
|
+
sliced: [a, b],
|
|
90
|
+
of: value.length,
|
|
91
|
+
value: value.slice(a, b)
|
|
92
|
+
};
|
|
93
|
+
if (typeof value === "string") return {
|
|
94
|
+
...meta,
|
|
95
|
+
at,
|
|
96
|
+
sliced: [a, b],
|
|
97
|
+
of: value.length,
|
|
98
|
+
value: value.slice(a, b)
|
|
99
|
+
};
|
|
100
|
+
return {
|
|
101
|
+
...meta,
|
|
102
|
+
ok: false,
|
|
103
|
+
error: `slice applies to an array or a string; the value at ${at} is ${typeOf(value)}.`
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
if (!params.path) return {
|
|
107
|
+
...meta,
|
|
108
|
+
shape: shapeOf(parsed),
|
|
109
|
+
hint: "Pass path (e.g. \"stats.0\") or pattern to read a part."
|
|
110
|
+
};
|
|
111
|
+
return {
|
|
112
|
+
...meta,
|
|
113
|
+
at,
|
|
114
|
+
value
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// ── helpers ──────────────────────────────────────────────────────────────────
|
|
119
|
+
|
|
120
|
+
function typeOf(v) {
|
|
121
|
+
if (v === null) return "null";
|
|
122
|
+
if (Array.isArray(v)) return "array";
|
|
123
|
+
return typeof v;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/** Top-level keys (or array items) with a type and a size, for choosing a path. */
|
|
127
|
+
function shapeOf(v) {
|
|
128
|
+
if (Array.isArray(v)) {
|
|
129
|
+
return {
|
|
130
|
+
type: "array",
|
|
131
|
+
length: v.length,
|
|
132
|
+
first: v.length ? describe(v[0]) : undefined
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
if (v && typeof v === "object") {
|
|
136
|
+
const keys = Object.keys(v);
|
|
137
|
+
const shown = keys.slice(0, MAX_SHAPE_KEYS);
|
|
138
|
+
const out = {};
|
|
139
|
+
for (const k of shown) out[k] = describe(v[k]);
|
|
140
|
+
return keys.length > shown.length ? {
|
|
141
|
+
...out,
|
|
142
|
+
"…": `${keys.length - shown.length} more keys`
|
|
143
|
+
} : out;
|
|
144
|
+
}
|
|
145
|
+
return describe(v);
|
|
146
|
+
}
|
|
147
|
+
function describe(v) {
|
|
148
|
+
if (v === null || v === undefined) return String(v);
|
|
149
|
+
if (Array.isArray(v)) return `array(${v.length})`;
|
|
150
|
+
if (typeof v === "object") {
|
|
151
|
+
const keys = Object.keys(v);
|
|
152
|
+
const size = JSON.stringify(v).length;
|
|
153
|
+
return `object{${keys.slice(0, 6).join(", ")}${keys.length > 6 ? ", …" : ""}} ~${size.toLocaleString("en-US")} chars`;
|
|
154
|
+
}
|
|
155
|
+
if (typeof v === "string") return v.length > 40 ? `string(${v.length})` : JSON.stringify(v);
|
|
156
|
+
return `${typeof v}: ${String(v)}`;
|
|
157
|
+
}
|
|
158
|
+
function resolvePath(root, path) {
|
|
159
|
+
const segs = path.replace(/^\/+/, "").split(/[./]/).filter(s => s.length > 0);
|
|
160
|
+
let cur = root;
|
|
161
|
+
const walked = [];
|
|
162
|
+
for (const seg of segs) {
|
|
163
|
+
if (cur === null || typeof cur !== "object") {
|
|
164
|
+
return {
|
|
165
|
+
ok: false,
|
|
166
|
+
error: `Cannot go into ${walked.join(".") || "(root)"} — it is ${typeOf(cur)}.`
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
if (Array.isArray(cur)) {
|
|
170
|
+
const i = Number(seg);
|
|
171
|
+
if (!Number.isInteger(i) || i < 0 || i >= cur.length) {
|
|
172
|
+
return {
|
|
173
|
+
ok: false,
|
|
174
|
+
error: `${walked.join(".") || "(root)"} is an array of ${cur.length}; "${seg}" is not an index in it.`
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
cur = cur[i];
|
|
178
|
+
} else {
|
|
179
|
+
const rec = cur;
|
|
180
|
+
if (!(seg in rec)) {
|
|
181
|
+
return {
|
|
182
|
+
ok: false,
|
|
183
|
+
error: `No field "${seg}" at ${walked.join(".") || "(root)"}. It has: ${Object.keys(rec).slice(0, 30).join(", ")}.`
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
cur = rec[seg];
|
|
187
|
+
}
|
|
188
|
+
walked.push(seg);
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
ok: true,
|
|
192
|
+
value: cur
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
function search(text, pattern, contextLines) {
|
|
196
|
+
const lines = text.split("\n");
|
|
197
|
+
const needle = pattern.toLowerCase();
|
|
198
|
+
const hits = [];
|
|
199
|
+
for (let i = 0; i < lines.length; i++) if (lines[i].toLowerCase().includes(needle)) hits.push(i);
|
|
200
|
+
const ctx = Math.max(0, Math.min(10, contextLines));
|
|
201
|
+
const matches = hits.slice(0, MAX_MATCHES).map(i => ({
|
|
202
|
+
line: i + 1,
|
|
203
|
+
text: lines.slice(Math.max(0, i - ctx), i + ctx + 1).join("\n")
|
|
204
|
+
}));
|
|
205
|
+
return {
|
|
206
|
+
matches,
|
|
207
|
+
totalMatches: hits.length
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=retrieve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MAX_MATCHES","MAX_SHAPE_KEYS","DEFAULT_CONTEXT_LINES","retrieveEvidence","store","params","ok","error","entry","get","ref","wasEvicted","meta","from","toolId","action","capturedAt","Date","toISOString","totalChars","text","length","parsed","isJson","JSON","parse","pattern","undefined","search","stringify","contextLines","slice","value","at","path","resolved","resolvePath","a","b","Array","isArray","sliced","of","typeOf","shape","shapeOf","hint","v","type","first","describe","keys","Object","shown","out","k","String","size","join","toLocaleString","root","segs","replace","split","filter","s","cur","walked","seg","i","Number","isInteger","rec","push","lines","needle","toLowerCase","hits","includes","ctx","Math","max","min","matches","map","line","totalMatches"],"sourceRoot":"../../../src","sources":["engine/retrieve.ts"],"mappings":"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","ignoreList":[]}
|