@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.
Files changed (120) hide show
  1. package/README.md +13 -9
  2. package/lib/commonjs/catalog/catalog.g.js +93 -6
  3. package/lib/commonjs/catalog/catalog.g.js.map +1 -1
  4. package/lib/commonjs/catalog/catalog.source.json +106 -4
  5. package/lib/commonjs/catalog/catalog.types.g.js +3 -3
  6. package/lib/commonjs/catalog/catalog.types.g.js.map +1 -1
  7. package/lib/commonjs/catalog/toProviderTools.js +3 -1
  8. package/lib/commonjs/catalog/toProviderTools.js.map +1 -1
  9. package/lib/commonjs/effects/ledger.js +13 -1
  10. package/lib/commonjs/effects/ledger.js.map +1 -1
  11. package/lib/commonjs/engine/evidence.js +113 -0
  12. package/lib/commonjs/engine/evidence.js.map +1 -0
  13. package/lib/commonjs/engine/historyBudget.js +158 -55
  14. package/lib/commonjs/engine/historyBudget.js.map +1 -1
  15. package/lib/commonjs/engine/retrieve.js +214 -0
  16. package/lib/commonjs/engine/retrieve.js.map +1 -0
  17. package/lib/commonjs/engine/runAgentTurn.js +364 -94
  18. package/lib/commonjs/engine/runAgentTurn.js.map +1 -1
  19. package/lib/commonjs/engine/systemPrompt.js +31 -1
  20. package/lib/commonjs/engine/systemPrompt.js.map +1 -1
  21. package/lib/commonjs/engine/tokenCalibration.js +81 -0
  22. package/lib/commonjs/engine/tokenCalibration.js.map +1 -0
  23. package/lib/commonjs/engine/verify.js +300 -0
  24. package/lib/commonjs/engine/verify.js.map +1 -0
  25. package/lib/commonjs/index.js +16 -0
  26. package/lib/commonjs/index.js.map +1 -1
  27. package/lib/commonjs/providers/anthropic.js +12 -3
  28. package/lib/commonjs/providers/anthropic.js.map +1 -1
  29. package/lib/commonjs/providers/openai.js +11 -3
  30. package/lib/commonjs/providers/openai.js.map +1 -1
  31. package/lib/commonjs/providers/problem.js +98 -0
  32. package/lib/commonjs/providers/problem.js.map +1 -0
  33. package/lib/commonjs/providers/sse.js +6 -5
  34. package/lib/commonjs/providers/sse.js.map +1 -1
  35. package/lib/commonjs/providers/transport.js +20 -4
  36. package/lib/commonjs/providers/transport.js.map +1 -1
  37. package/lib/commonjs/providers/xhrStream.js +3 -0
  38. package/lib/commonjs/providers/xhrStream.js.map +1 -1
  39. package/lib/commonjs/session.js +32 -5
  40. package/lib/commonjs/session.js.map +1 -1
  41. package/lib/module/catalog/catalog.g.js +93 -6
  42. package/lib/module/catalog/catalog.g.js.map +1 -1
  43. package/lib/module/catalog/catalog.source.json +106 -4
  44. package/lib/module/catalog/catalog.types.g.js +3 -3
  45. package/lib/module/catalog/catalog.types.g.js.map +1 -1
  46. package/lib/module/catalog/toProviderTools.js +3 -1
  47. package/lib/module/catalog/toProviderTools.js.map +1 -1
  48. package/lib/module/effects/ledger.js +13 -1
  49. package/lib/module/effects/ledger.js.map +1 -1
  50. package/lib/module/engine/evidence.js +107 -0
  51. package/lib/module/engine/evidence.js.map +1 -0
  52. package/lib/module/engine/historyBudget.js +158 -54
  53. package/lib/module/engine/historyBudget.js.map +1 -1
  54. package/lib/module/engine/retrieve.js +210 -0
  55. package/lib/module/engine/retrieve.js.map +1 -0
  56. package/lib/module/engine/runAgentTurn.js +365 -96
  57. package/lib/module/engine/runAgentTurn.js.map +1 -1
  58. package/lib/module/engine/systemPrompt.js +30 -1
  59. package/lib/module/engine/systemPrompt.js.map +1 -1
  60. package/lib/module/engine/tokenCalibration.js +75 -0
  61. package/lib/module/engine/tokenCalibration.js.map +1 -0
  62. package/lib/module/engine/verify.js +292 -0
  63. package/lib/module/engine/verify.js.map +1 -0
  64. package/lib/module/index.js +2 -0
  65. package/lib/module/index.js.map +1 -1
  66. package/lib/module/providers/anthropic.js +12 -3
  67. package/lib/module/providers/anthropic.js.map +1 -1
  68. package/lib/module/providers/openai.js +11 -3
  69. package/lib/module/providers/openai.js.map +1 -1
  70. package/lib/module/providers/problem.js +92 -0
  71. package/lib/module/providers/problem.js.map +1 -0
  72. package/lib/module/providers/sse.js +6 -5
  73. package/lib/module/providers/sse.js.map +1 -1
  74. package/lib/module/providers/transport.js +20 -4
  75. package/lib/module/providers/transport.js.map +1 -1
  76. package/lib/module/providers/xhrStream.js +3 -0
  77. package/lib/module/providers/xhrStream.js.map +1 -1
  78. package/lib/module/session.js +33 -6
  79. package/lib/module/session.js.map +1 -1
  80. package/lib/typescript/catalog/catalog.g.d.ts +2 -2
  81. package/lib/typescript/catalog/catalog.g.d.ts.map +1 -1
  82. package/lib/typescript/catalog/catalog.types.g.d.ts +3 -3
  83. package/lib/typescript/catalog/catalog.types.g.d.ts.map +1 -1
  84. package/lib/typescript/catalog/toProviderTools.d.ts.map +1 -1
  85. package/lib/typescript/effects/ledger.d.ts +18 -0
  86. package/lib/typescript/effects/ledger.d.ts.map +1 -1
  87. package/lib/typescript/engine/evidence.d.ts +67 -0
  88. package/lib/typescript/engine/evidence.d.ts.map +1 -0
  89. package/lib/typescript/engine/historyBudget.d.ts +31 -8
  90. package/lib/typescript/engine/historyBudget.d.ts.map +1 -1
  91. package/lib/typescript/engine/retrieve.d.ts +32 -0
  92. package/lib/typescript/engine/retrieve.d.ts.map +1 -0
  93. package/lib/typescript/engine/runAgentTurn.d.ts +96 -2
  94. package/lib/typescript/engine/runAgentTurn.d.ts.map +1 -1
  95. package/lib/typescript/engine/systemPrompt.d.ts +39 -0
  96. package/lib/typescript/engine/systemPrompt.d.ts.map +1 -1
  97. package/lib/typescript/engine/tokenCalibration.d.ts +46 -0
  98. package/lib/typescript/engine/tokenCalibration.d.ts.map +1 -0
  99. package/lib/typescript/engine/verify.d.ts +67 -0
  100. package/lib/typescript/engine/verify.d.ts.map +1 -0
  101. package/lib/typescript/index.d.ts +4 -2
  102. package/lib/typescript/index.d.ts.map +1 -1
  103. package/lib/typescript/providers/anthropic.d.ts.map +1 -1
  104. package/lib/typescript/providers/openai.d.ts.map +1 -1
  105. package/lib/typescript/providers/problem.d.ts +50 -0
  106. package/lib/typescript/providers/problem.d.ts.map +1 -0
  107. package/lib/typescript/providers/sse.d.ts +4 -1
  108. package/lib/typescript/providers/sse.d.ts.map +1 -1
  109. package/lib/typescript/providers/transport.d.ts +8 -0
  110. package/lib/typescript/providers/transport.d.ts.map +1 -1
  111. package/lib/typescript/providers/types.d.ts +14 -0
  112. package/lib/typescript/providers/types.d.ts.map +1 -1
  113. package/lib/typescript/providers/xhrStream.d.ts +2 -0
  114. package/lib/typescript/providers/xhrStream.d.ts.map +1 -1
  115. package/lib/typescript/session.d.ts +15 -2
  116. package/lib/typescript/session.d.ts.map +1 -1
  117. package/lib/typescript/types.d.ts +6 -0
  118. package/lib/typescript/types.d.ts.map +1 -1
  119. package/package.json +9 -9
  120. 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":[]}