@burtson-labs/host-kit 0.3.1

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 (79) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +55 -0
  3. package/dist/backgroundTasks.d.ts +113 -0
  4. package/dist/backgroundTasks.d.ts.map +1 -0
  5. package/dist/backgroundTasks.js +137 -0
  6. package/dist/backgroundTasks.js.map +1 -0
  7. package/dist/checkpoints.d.ts +99 -0
  8. package/dist/checkpoints.d.ts.map +1 -0
  9. package/dist/checkpoints.js +227 -0
  10. package/dist/checkpoints.js.map +1 -0
  11. package/dist/hooks.d.ts +51 -0
  12. package/dist/hooks.d.ts.map +1 -0
  13. package/dist/hooks.js +152 -0
  14. package/dist/hooks.js.map +1 -0
  15. package/dist/index.d.ts +19 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +95 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/insights.d.ts +398 -0
  20. package/dist/insights.d.ts.map +1 -0
  21. package/dist/insights.js +1933 -0
  22. package/dist/insights.js.map +1 -0
  23. package/dist/mcp.d.ts +60 -0
  24. package/dist/mcp.d.ts.map +1 -0
  25. package/dist/mcp.js +281 -0
  26. package/dist/mcp.js.map +1 -0
  27. package/dist/mcpConnectors.d.ts +108 -0
  28. package/dist/mcpConnectors.d.ts.map +1 -0
  29. package/dist/mcpConnectors.js +217 -0
  30. package/dist/mcpConnectors.js.map +1 -0
  31. package/dist/mcpToolCache.d.ts +43 -0
  32. package/dist/mcpToolCache.d.ts.map +1 -0
  33. package/dist/mcpToolCache.js +150 -0
  34. package/dist/mcpToolCache.js.map +1 -0
  35. package/dist/mcpTrust.d.ts +22 -0
  36. package/dist/mcpTrust.d.ts.map +1 -0
  37. package/dist/mcpTrust.js +104 -0
  38. package/dist/mcpTrust.js.map +1 -0
  39. package/dist/memory.d.ts +38 -0
  40. package/dist/memory.d.ts.map +1 -0
  41. package/dist/memory.js +151 -0
  42. package/dist/memory.js.map +1 -0
  43. package/dist/memoryIndex.d.ts +38 -0
  44. package/dist/memoryIndex.d.ts.map +1 -0
  45. package/dist/memoryIndex.js +142 -0
  46. package/dist/memoryIndex.js.map +1 -0
  47. package/dist/mentions.d.ts +33 -0
  48. package/dist/mentions.d.ts.map +1 -0
  49. package/dist/mentions.js +126 -0
  50. package/dist/mentions.js.map +1 -0
  51. package/dist/ollamaModels.d.ts +36 -0
  52. package/dist/ollamaModels.d.ts.map +1 -0
  53. package/dist/ollamaModels.js +83 -0
  54. package/dist/ollamaModels.js.map +1 -0
  55. package/dist/permissions.d.ts +72 -0
  56. package/dist/permissions.d.ts.map +1 -0
  57. package/dist/permissions.js +271 -0
  58. package/dist/permissions.js.map +1 -0
  59. package/dist/tools/extraTools.d.ts +80 -0
  60. package/dist/tools/extraTools.d.ts.map +1 -0
  61. package/dist/tools/extraTools.js +471 -0
  62. package/dist/tools/extraTools.js.map +1 -0
  63. package/dist/tools/readMemoryTool.d.ts +3 -0
  64. package/dist/tools/readMemoryTool.d.ts.map +1 -0
  65. package/dist/tools/readMemoryTool.js +115 -0
  66. package/dist/tools/readMemoryTool.js.map +1 -0
  67. package/dist/tools/taskTool.d.ts +119 -0
  68. package/dist/tools/taskTool.d.ts.map +1 -0
  69. package/dist/tools/taskTool.js +466 -0
  70. package/dist/tools/taskTool.js.map +1 -0
  71. package/dist/tools/testRunTool.d.ts +59 -0
  72. package/dist/tools/testRunTool.d.ts.map +1 -0
  73. package/dist/tools/testRunTool.js +308 -0
  74. package/dist/tools/testRunTool.js.map +1 -0
  75. package/dist/turnLog.d.ts +89 -0
  76. package/dist/turnLog.d.ts.map +1 -0
  77. package/dist/turnLog.js +469 -0
  78. package/dist/turnLog.js.map +1 -0
  79. package/package.json +35 -0
@@ -0,0 +1,469 @@
1
+ "use strict";
2
+ /**
3
+ * Tool-use transcript logger — records every LLM response, tool call, and
4
+ * tool result to a JSONL file under the workspace's .bandit/turns/ folder.
5
+ *
6
+ * Motivation: the agent occasionally claims to have done something it
7
+ * didn't. Without a record of what it emitted, diagnosis is impossible.
8
+ * This writes a per-turn log we can point at later to answer "what did
9
+ * the model actually try?".
10
+ *
11
+ * Format: one JSON object per line. Events:
12
+ * { t, type: 'user-prompt', prompt }
13
+ * { t, type: 'llm-response', iteration, textPreview }
14
+ * { t, type: 'tool-execute', iteration, name, params }
15
+ * { t, type: 'tool-result', iteration, name, isError, outputPreview }
16
+ * { t, type: 'tool-error', iteration, name, error }
17
+ * { t, type: 'tool-blocked', iteration, name, reason }
18
+ * { t, type: 'permission-request', name, primary, risk }
19
+ * { t, type: 'permission-decision', name, primary, choice }
20
+ * { t, type: 'permission-denied', name, primary, source, reason }
21
+ * { t, type: 'final-response', iterations, hitLimit, finalPreview }
22
+ *
23
+ * Keeping this in host-kit so both CLI and extension can use the same
24
+ * logger without duplicating code.
25
+ */
26
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
27
+ if (k2 === undefined) k2 = k;
28
+ var desc = Object.getOwnPropertyDescriptor(m, k);
29
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
30
+ desc = { enumerable: true, get: function() { return m[k]; } };
31
+ }
32
+ Object.defineProperty(o, k2, desc);
33
+ }) : (function(o, m, k, k2) {
34
+ if (k2 === undefined) k2 = k;
35
+ o[k2] = m[k];
36
+ }));
37
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
38
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
39
+ }) : function(o, v) {
40
+ o["default"] = v;
41
+ });
42
+ var __importStar = (this && this.__importStar) || (function () {
43
+ var ownKeys = function(o) {
44
+ ownKeys = Object.getOwnPropertyNames || function (o) {
45
+ var ar = [];
46
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
47
+ return ar;
48
+ };
49
+ return ownKeys(o);
50
+ };
51
+ return function (mod) {
52
+ if (mod && mod.__esModule) return mod;
53
+ var result = {};
54
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
55
+ __setModuleDefault(result, mod);
56
+ return result;
57
+ };
58
+ })();
59
+ Object.defineProperty(exports, "__esModule", { value: true });
60
+ exports.openTurnLog = openTurnLog;
61
+ exports.previewText = previewText;
62
+ exports.listTurnTraceFiles = listTurnTraceFiles;
63
+ exports.listTurnTraces = listTurnTraces;
64
+ exports.readTurnTrace = readTurnTrace;
65
+ exports.readTurnTraceById = readTurnTraceById;
66
+ exports.parseTurnLog = parseTurnLog;
67
+ exports.summarizeTurnTrace = summarizeTurnTrace;
68
+ exports.formatTurnTraceMarkdown = formatTurnTraceMarkdown;
69
+ const fs = __importStar(require("fs"));
70
+ const os = __importStar(require("os"));
71
+ const path = __importStar(require("path"));
72
+ const MAX_PREVIEW_CHARS = 2048;
73
+ const LOG_DIR = '.bandit/turns';
74
+ function normalizeListOptions(optionsOrLimit) {
75
+ if (typeof optionsOrLimit === 'number') {
76
+ return { limit: optionsOrLimit, includeGlobal: false, status: undefined };
77
+ }
78
+ return {
79
+ limit: optionsOrLimit?.limit ?? 20,
80
+ includeGlobal: optionsOrLimit?.includeGlobal ?? false,
81
+ status: optionsOrLimit?.status
82
+ };
83
+ }
84
+ /**
85
+ * Open a log file for a single agent turn. The filename includes a UTC
86
+ * timestamp and a random suffix so parallel turns (rare) can't collide.
87
+ */
88
+ async function openTurnLog(workspaceRoot) {
89
+ const dir = path.resolve(workspaceRoot, LOG_DIR);
90
+ await fs.promises.mkdir(dir, { recursive: true });
91
+ const iso = new Date().toISOString().replace(/[:.]/g, '-');
92
+ const rand = Math.random().toString(36).slice(2, 6);
93
+ const filePath = path.join(dir, `turn-${iso}-${rand}.jsonl`);
94
+ return {
95
+ filePath,
96
+ async append(event) {
97
+ try {
98
+ const line = JSON.stringify({ t: new Date().toISOString(), ...event }) + '\n';
99
+ await fs.promises.appendFile(filePath, line);
100
+ }
101
+ catch {
102
+ // Logging must never break the agent. Swallow write errors.
103
+ }
104
+ }
105
+ };
106
+ }
107
+ /** Truncate a string for log preview — protects against multi-MB tool outputs. */
108
+ function previewText(s) {
109
+ const str = typeof s === 'string' ? s : JSON.stringify(s ?? '');
110
+ return str.length > MAX_PREVIEW_CHARS ? str.slice(0, MAX_PREVIEW_CHARS) + `\n[…truncated, full length ${str.length}]` : str;
111
+ }
112
+ function traceDirs(workspaceRoot, includeGlobal) {
113
+ const dirs = [path.resolve(workspaceRoot, LOG_DIR)];
114
+ if (includeGlobal)
115
+ dirs.push(path.join(os.homedir(), LOG_DIR));
116
+ return [...new Set(dirs.map((dir) => path.resolve(dir)))];
117
+ }
118
+ function isInside(childPath, parentPath) {
119
+ const rel = path.relative(path.resolve(parentPath), path.resolve(childPath));
120
+ return rel === '' || (!!rel && !rel.startsWith('..') && !path.isAbsolute(rel));
121
+ }
122
+ function traceScope(filePath, workspaceRoot) {
123
+ if (workspaceRoot && isInside(filePath, path.resolve(workspaceRoot, LOG_DIR)))
124
+ return 'workspace';
125
+ if (isInside(filePath, path.join(os.homedir(), LOG_DIR)))
126
+ return 'global';
127
+ return 'external';
128
+ }
129
+ function expandHome(value) {
130
+ const home = os.homedir();
131
+ if (value === '~')
132
+ return home;
133
+ if (value.startsWith('~/'))
134
+ return path.join(home, value.slice(2));
135
+ return value;
136
+ }
137
+ function collectStringValues(value, out) {
138
+ if (typeof value === 'string') {
139
+ out.push(value);
140
+ return;
141
+ }
142
+ if (Array.isArray(value)) {
143
+ for (const item of value)
144
+ collectStringValues(item, out);
145
+ return;
146
+ }
147
+ if (value && typeof value === 'object') {
148
+ for (const item of Object.values(value))
149
+ collectStringValues(item, out);
150
+ }
151
+ }
152
+ function inferWorkspaceFromText(value) {
153
+ const home = os.homedir();
154
+ const expanded = expandHome(value);
155
+ const githubRoot = path.join(home, 'Documents', 'GitHub') + path.sep;
156
+ const githubIndex = expanded.indexOf(githubRoot);
157
+ if (githubIndex >= 0) {
158
+ const rest = expanded.slice(githubIndex + githubRoot.length);
159
+ const repo = rest.split(/[/"'`\s:]+/)[0];
160
+ if (repo)
161
+ return path.join(githubRoot, repo);
162
+ }
163
+ return null;
164
+ }
165
+ function inferTraceWorkspace(events, fallbackWorkspace) {
166
+ const candidates = new Map();
167
+ for (const event of events) {
168
+ const values = [];
169
+ collectStringValues(event.prompt, values);
170
+ collectStringValues(event.params, values);
171
+ collectStringValues(event.outputPreview, values);
172
+ collectStringValues(event.outputSnippet, values);
173
+ collectStringValues(event.finalPreview, values);
174
+ collectStringValues(event.responsePreview, values);
175
+ for (const value of values) {
176
+ const inferred = inferWorkspaceFromText(value);
177
+ if (inferred)
178
+ candidates.set(inferred, (candidates.get(inferred) ?? 0) + 1);
179
+ }
180
+ }
181
+ const [top] = [...candidates.entries()].sort((a, b) => b[1] - a[1]);
182
+ return top?.[0] ?? fallbackWorkspace;
183
+ }
184
+ function shortPath(value) {
185
+ const home = os.homedir();
186
+ return value.startsWith(home) ? `~${value.slice(home.length)}` : value;
187
+ }
188
+ async function listTurnTraceFiles(workspaceRoot, optionsOrLimit = 20) {
189
+ const options = normalizeListOptions(optionsOrLimit);
190
+ const dirs = traceDirs(workspaceRoot, options.includeGlobal);
191
+ const seen = new Set();
192
+ const stamped = [];
193
+ for (const dir of dirs) {
194
+ const entries = await listTurnTraceFilesInDir(dir);
195
+ for (const entry of entries) {
196
+ const key = path.resolve(entry.filePath);
197
+ if (seen.has(key))
198
+ continue;
199
+ seen.add(key);
200
+ stamped.push(entry);
201
+ }
202
+ }
203
+ stamped.sort((a, b) => b.mtime - a.mtime);
204
+ return stamped.slice(0, Math.max(0, options.limit)).map((entry) => entry.filePath);
205
+ }
206
+ async function listTurnTraceFilesInDir(dir) {
207
+ try {
208
+ const files = (await fs.promises.readdir(dir))
209
+ .filter((file) => file.endsWith('.jsonl'));
210
+ return Promise.all(files.map(async (file) => {
211
+ const filePath = path.join(dir, file);
212
+ try {
213
+ const stat = await fs.promises.stat(filePath);
214
+ return { filePath, mtime: stat.mtimeMs };
215
+ }
216
+ catch {
217
+ return { filePath, mtime: 0 };
218
+ }
219
+ }));
220
+ }
221
+ catch {
222
+ return [];
223
+ }
224
+ }
225
+ async function listTurnTraces(workspaceRoot, optionsOrLimit = 20) {
226
+ const options = normalizeListOptions(optionsOrLimit);
227
+ const files = await listTurnTraceFiles(workspaceRoot, options);
228
+ const traces = [];
229
+ for (const filePath of files) {
230
+ const trace = await readTurnTrace(filePath, { workspaceRoot });
231
+ if (trace)
232
+ traces.push(trace);
233
+ }
234
+ const statuses = Array.isArray(options.status)
235
+ ? options.status
236
+ : options.status
237
+ ? [options.status]
238
+ : null;
239
+ return statuses ? traces.filter((trace) => statuses.includes(trace.summary.status)) : traces;
240
+ }
241
+ async function readTurnTrace(filePath, options = {}) {
242
+ try {
243
+ const resolved = path.resolve(filePath);
244
+ const text = await fs.promises.readFile(filePath, 'utf-8');
245
+ const events = parseTurnLog(text);
246
+ const id = traceIdFromPath(resolved);
247
+ return {
248
+ id,
249
+ filePath: resolved,
250
+ events,
251
+ summary: summarizeTurnTrace(id, resolved, events, options)
252
+ };
253
+ }
254
+ catch {
255
+ return null;
256
+ }
257
+ }
258
+ async function readTurnTraceById(workspaceRoot, idOrPath, optionsOrLimit = 200) {
259
+ const trimmed = idOrPath.trim();
260
+ if (!trimmed)
261
+ return null;
262
+ if (trimmed.includes(path.sep) || trimmed.endsWith('.jsonl')) {
263
+ return readTurnTrace(path.resolve(workspaceRoot, trimmed), { workspaceRoot });
264
+ }
265
+ const options = normalizeListOptions(optionsOrLimit);
266
+ const searchLimit = typeof optionsOrLimit === 'number'
267
+ ? options.limit
268
+ : optionsOrLimit.limit ?? 500;
269
+ const files = await listTurnTraceFiles(workspaceRoot, { ...options, limit: searchLimit });
270
+ const match = files.find((filePath) => traceIdFromPath(filePath) === trimmed || path.basename(filePath) === trimmed);
271
+ return match ? readTurnTrace(match, { workspaceRoot }) : null;
272
+ }
273
+ function parseTurnLog(text) {
274
+ return text
275
+ .split('\n')
276
+ .map((line) => line.trim())
277
+ .filter(Boolean)
278
+ .map((line) => {
279
+ try {
280
+ const parsed = JSON.parse(line);
281
+ return typeof parsed.type === 'string' ? parsed : null;
282
+ }
283
+ catch {
284
+ return null;
285
+ }
286
+ })
287
+ .filter((event) => event !== null);
288
+ }
289
+ function summarizeTurnTrace(id, filePath, events, options = {}) {
290
+ const tools = new Set();
291
+ let toolCalls = 0;
292
+ let blockedTools = 0;
293
+ let errors = 0;
294
+ let retries = 0;
295
+ let nativeFallbacks = 0;
296
+ let permissionRequests = 0;
297
+ let permissionDecisions = 0;
298
+ let permissionDenials = 0;
299
+ let compactions = 0;
300
+ let checkpoints = 0;
301
+ let iterations = 0;
302
+ let hitLimit = false;
303
+ let prompt;
304
+ let finalPreview;
305
+ let status = 'unknown';
306
+ for (const event of events) {
307
+ const type = event.type;
308
+ const iteration = typeof event.iteration === 'number' ? event.iteration : undefined;
309
+ if (iteration !== undefined)
310
+ iterations = Math.max(iterations, iteration);
311
+ if (type === 'user-prompt' && typeof event.prompt === 'string')
312
+ prompt = event.prompt;
313
+ if (type === 'final-response') {
314
+ status = 'completed';
315
+ finalPreview = typeof event.finalPreview === 'string'
316
+ ? event.finalPreview
317
+ : typeof event.response === 'string'
318
+ ? event.response
319
+ : finalPreview;
320
+ hitLimit = !!event.hitLimit;
321
+ if (typeof event.iterations === 'number')
322
+ iterations = Math.max(iterations, event.iterations);
323
+ }
324
+ if (type === 'tool-execute' || type === 'subagent-tool-execute') {
325
+ toolCalls++;
326
+ if (typeof event.name === 'string')
327
+ tools.add(event.name);
328
+ }
329
+ if (type === 'tool-calls' || type === 'subagent-tool-calls') {
330
+ const emitted = Array.isArray(event.tools) ? event.tools.filter((tool) => typeof tool === 'string') : [];
331
+ emitted.forEach((tool) => tools.add(tool));
332
+ }
333
+ if (type === 'tool-blocked' || type === 'subagent-tool-blocked') {
334
+ blockedTools++;
335
+ status = status === 'unknown' ? 'blocked' : status;
336
+ }
337
+ if (type.includes('error') || type === 'tool-not-found') {
338
+ errors++;
339
+ status = status === 'unknown' ? 'failed' : status;
340
+ }
341
+ if (type === 'cancelled')
342
+ status = 'cancelled';
343
+ if (type.endsWith('retry') || type === 'llm-retry' || type === 'empty-retry' || type === 'parse-retry')
344
+ retries++;
345
+ if (type === 'native-tool-fallback')
346
+ nativeFallbacks++;
347
+ if (type === 'permission-request')
348
+ permissionRequests++;
349
+ if (type === 'permission-decision')
350
+ permissionDecisions++;
351
+ if (type === 'permission-denied') {
352
+ permissionDenials++;
353
+ status = status === 'unknown' ? 'blocked' : status;
354
+ }
355
+ if (type === 'compacted')
356
+ compactions++;
357
+ if (type === 'checkpoint')
358
+ checkpoints++;
359
+ }
360
+ if (hitLimit && status === 'completed')
361
+ status = 'failed';
362
+ const scope = traceScope(filePath, options.workspaceRoot);
363
+ const workspace = inferTraceWorkspace(events, options.workspaceRoot ?? process.cwd());
364
+ return {
365
+ id,
366
+ filePath,
367
+ scope,
368
+ workspace,
369
+ startedAt: events.find((event) => typeof event.t === 'string')?.t,
370
+ prompt,
371
+ finalPreview,
372
+ iterations,
373
+ hitLimit,
374
+ toolCalls,
375
+ tools: Array.from(tools).sort(),
376
+ blockedTools,
377
+ errors,
378
+ retries,
379
+ nativeFallbacks,
380
+ permissionRequests,
381
+ permissionDecisions,
382
+ permissionDenials,
383
+ compactions,
384
+ checkpoints,
385
+ status
386
+ };
387
+ }
388
+ function formatTurnTraceMarkdown(trace, options = {}) {
389
+ const { summary } = trace;
390
+ const maxEvents = options.maxEvents ?? 40;
391
+ const tools = summary.tools.length > 0 ? summary.tools.join(', ') : '(none)';
392
+ const lines = [
393
+ `## Trace ${summary.id}`,
394
+ '',
395
+ `- Status: ${summary.status}${summary.hitLimit ? ' (iteration limit)' : ''}`,
396
+ `- Started: ${summary.startedAt ?? '(unknown)'}`,
397
+ `- Iterations: ${summary.iterations}`,
398
+ `- Tools: ${summary.toolCalls} calls · ${tools}`,
399
+ `- Recovery: ${summary.retries} retries · ${summary.nativeFallbacks} native fallbacks · ${summary.compactions} compactions`,
400
+ `- Permissions: ${summary.permissionRequests} prompts · ${summary.permissionDecisions} decisions · ${summary.permissionDenials} denials`,
401
+ `- Blocks/errors: ${summary.blockedTools} blocked · ${summary.errors} errors`,
402
+ `- Source: ${summary.scope} · ${shortPath(summary.workspace)}`,
403
+ `- File: \`${summary.filePath}\``
404
+ ];
405
+ if (summary.prompt) {
406
+ lines.push('', '### Prompt', fence(summary.prompt));
407
+ }
408
+ lines.push('', '### Timeline');
409
+ const timeline = trace.events.slice(0, maxEvents).map(formatTraceEventLine);
410
+ lines.push(...(timeline.length ? timeline : ['_No events recorded._']));
411
+ if (trace.events.length > maxEvents) {
412
+ lines.push(`_… ${trace.events.length - maxEvents} more events hidden._`);
413
+ }
414
+ if (summary.finalPreview) {
415
+ lines.push('', '### Final', fence(summary.finalPreview));
416
+ }
417
+ return lines.join('\n');
418
+ }
419
+ function traceIdFromPath(filePath) {
420
+ return path.basename(filePath).replace(/\.jsonl$/, '');
421
+ }
422
+ function formatTraceEventLine(event) {
423
+ const iter = typeof event.iteration === 'number' ? ` i${event.iteration}` : '';
424
+ const at = typeof event.t === 'string' ? event.t.slice(11, 19) : '--:--:--';
425
+ if (event.type === 'permission-request') {
426
+ const details = [
427
+ typeof event.name === 'string' ? event.name : '',
428
+ typeof event.displayPrimary === 'string' ? event.displayPrimary : typeof event.primary === 'string' ? event.primary : '',
429
+ typeof event.risk === 'string' ? event.risk : ''
430
+ ].filter(Boolean).join(' · ');
431
+ return `- ${at}${iter} \`${event.type}\`${details ? ` — ${details}` : ''}`;
432
+ }
433
+ if (event.type === 'permission-decision') {
434
+ const details = [
435
+ typeof event.choice === 'string' ? event.choice : '',
436
+ typeof event.name === 'string' ? event.name : '',
437
+ typeof event.primary === 'string' ? event.primary : ''
438
+ ].filter(Boolean).join(' · ');
439
+ return `- ${at}${iter} \`${event.type}\`${details ? ` — ${details}` : ''}`;
440
+ }
441
+ if (event.type === 'permission-denied') {
442
+ const source = typeof event.source === 'string' ? `source:${event.source}` : '';
443
+ const details = [
444
+ source,
445
+ typeof event.name === 'string' ? event.name : '',
446
+ typeof event.primary === 'string' ? event.primary : '',
447
+ typeof event.reason === 'string' ? event.reason : typeof event.notes === 'string' ? event.notes : ''
448
+ ].filter(Boolean).join(' · ');
449
+ return `- ${at}${iter} \`${event.type}\`${details ? ` — ${details}` : ''}`;
450
+ }
451
+ const details = [];
452
+ if (typeof event.name === 'string')
453
+ details.push(event.name);
454
+ if (Array.isArray(event.tools))
455
+ details.push(event.tools.filter((tool) => typeof tool === 'string').join(', '));
456
+ if (typeof event.reason === 'string')
457
+ details.push(event.reason);
458
+ if (typeof event.error === 'string')
459
+ details.push(event.error);
460
+ if (typeof event.attempt === 'number')
461
+ details.push(`attempt ${event.attempt}`);
462
+ const suffix = details.filter(Boolean).join(' · ');
463
+ return `- ${at}${iter} \`${event.type}\`${suffix ? ` — ${suffix}` : ''}`;
464
+ }
465
+ function fence(value) {
466
+ const trimmed = value.trim();
467
+ return ['```', trimmed.length > 1200 ? `${trimmed.slice(0, 1200)}\n…` : trimmed, '```'].join('\n');
468
+ }
469
+ //# sourceMappingURL=turnLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turnLog.js","sourceRoot":"","sources":["../src/turnLog.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@burtson-labs/host-kit",
3
+ "version": "0.3.1",
4
+ "description": "Host-agnostic building blocks for the Bandit agent framework — memory files, hooks, mentions, and the extra tool set (todo_write, web_fetch).",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/Burtson-Labs/bandit-agent-framework.git",
10
+ "directory": "packages/host-kit"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/Burtson-Labs/bandit-agent-framework/issues"
14
+ },
15
+ "homepage": "https://github.com/Burtson-Labs/bandit-agent-framework/tree/main/packages/host-kit#readme",
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "dependencies": {
20
+ "@burtson-labs/agent-core": "1.6.13"
21
+ },
22
+ "devDependencies": {
23
+ "@types/node": "^20.11.0",
24
+ "typescript": "^5.4.0",
25
+ "vitest": "^4.0.10"
26
+ },
27
+ "license": "Apache-2.0",
28
+ "scripts": {
29
+ "prebuild": "pnpm -C ../.. --filter @burtson-labs/agent-core build",
30
+ "build": "tsc -p tsconfig.build.json",
31
+ "dev": "tsc -p tsconfig.build.json --watch",
32
+ "clean": "rm -rf dist",
33
+ "test": "vitest run"
34
+ }
35
+ }