@roackb2/heddle 0.0.8 → 0.0.9

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 (66) hide show
  1. package/README.md +87 -1
  2. package/dist/examples/cyberloop-observer.d.ts +3 -0
  3. package/dist/examples/cyberloop-observer.d.ts.map +1 -0
  4. package/dist/examples/cyberloop-observer.js +79 -0
  5. package/dist/examples/cyberloop-observer.js.map +1 -0
  6. package/dist/examples/host-events.d.ts +15 -0
  7. package/dist/examples/host-events.d.ts.map +1 -0
  8. package/dist/examples/host-events.js +233 -0
  9. package/dist/examples/host-events.js.map +1 -0
  10. package/dist/examples/programmatic-loop.js +2 -0
  11. package/dist/examples/programmatic-loop.js.map +1 -1
  12. package/dist/src/cli/chat/App.d.ts.map +1 -1
  13. package/dist/src/cli/chat/App.js +48 -0
  14. package/dist/src/cli/chat/App.js.map +1 -1
  15. package/dist/src/cli/chat/hooks/useAgentRun.d.ts +9 -0
  16. package/dist/src/cli/chat/hooks/useAgentRun.d.ts.map +1 -1
  17. package/dist/src/cli/chat/hooks/useAgentRun.js +34 -2
  18. package/dist/src/cli/chat/hooks/useAgentRun.js.map +1 -1
  19. package/dist/src/cli/chat/state/local-commands.d.ts +3 -0
  20. package/dist/src/cli/chat/state/local-commands.d.ts.map +1 -1
  21. package/dist/src/cli/chat/state/local-commands.js +21 -0
  22. package/dist/src/cli/chat/state/local-commands.js.map +1 -1
  23. package/dist/src/cli/chat/state/storage.d.ts.map +1 -1
  24. package/dist/src/cli/chat/state/storage.js +2 -0
  25. package/dist/src/cli/chat/state/storage.js.map +1 -1
  26. package/dist/src/cli/chat/state/types.d.ts +1 -0
  27. package/dist/src/cli/chat/state/types.d.ts.map +1 -1
  28. package/dist/src/cli/chat/submit.d.ts +3 -0
  29. package/dist/src/cli/chat/submit.d.ts.map +1 -1
  30. package/dist/src/cli/chat/submit.js +3 -0
  31. package/dist/src/cli/chat/submit.js.map +1 -1
  32. package/dist/src/cli/chat/utils/format.d.ts.map +1 -1
  33. package/dist/src/cli/chat/utils/format.js +6 -0
  34. package/dist/src/cli/chat/utils/format.js.map +1 -1
  35. package/dist/src/index.d.ts +4 -0
  36. package/dist/src/index.d.ts.map +1 -1
  37. package/dist/src/index.js +3 -0
  38. package/dist/src/index.js.map +1 -1
  39. package/dist/src/integrations/cyberloop-kinematics.d.ts +16 -0
  40. package/dist/src/integrations/cyberloop-kinematics.d.ts.map +1 -0
  41. package/dist/src/integrations/cyberloop-kinematics.js +77 -0
  42. package/dist/src/integrations/cyberloop-kinematics.js.map +1 -0
  43. package/dist/src/integrations/cyberloop.d.ts +88 -0
  44. package/dist/src/integrations/cyberloop.d.ts.map +1 -0
  45. package/dist/src/integrations/cyberloop.js +244 -0
  46. package/dist/src/integrations/cyberloop.js.map +1 -0
  47. package/dist/src/run-agent.d.ts +3 -1
  48. package/dist/src/run-agent.d.ts.map +1 -1
  49. package/dist/src/run-agent.js +10 -0
  50. package/dist/src/run-agent.js.map +1 -1
  51. package/dist/src/runtime/agent-loop.d.ts.map +1 -1
  52. package/dist/src/runtime/agent-loop.js +57 -2
  53. package/dist/src/runtime/agent-loop.js.map +1 -1
  54. package/dist/src/runtime/events.d.ts +66 -0
  55. package/dist/src/runtime/events.d.ts.map +1 -1
  56. package/dist/src/runtime/events.js +11 -0
  57. package/dist/src/runtime/events.js.map +1 -1
  58. package/dist/src/runtime/heartbeat.d.ts.map +1 -1
  59. package/dist/src/runtime/heartbeat.js +47 -2
  60. package/dist/src/runtime/heartbeat.js.map +1 -1
  61. package/dist/src/trace/format.d.ts.map +1 -1
  62. package/dist/src/trace/format.js +8 -0
  63. package/dist/src/trace/format.js.map +1 -1
  64. package/dist/src/types.d.ts +8 -0
  65. package/dist/src/types.d.ts.map +1 -1
  66. package/package.json +14 -1
package/README.md CHANGED
@@ -1,11 +1,15 @@
1
1
  # Heddle
2
2
 
3
- Heddle is a terminal coding agent runtime and CLI.
3
+ Heddle is a terminal coding agent runtime and CLI with optional semantic drift detection.
4
4
 
5
5
  It is built to feel like a terminal partner that understands your project, keeps continuity across real work, and becomes more useful over time.
6
6
 
7
7
  It is open source, provider-agnostic, supports OpenAI and Anthropic models, and can build memory across sessions. For agentic-system builders, Heddle also exposes heartbeat primitives for autonomous wake cycles, checkpointing, and long-running background work.
8
8
 
9
+ Heddle is designed to make live agent runs more observable, not just easier to launch. With optional semantic drift detection, Heddle can show whether an agent appears to be going off track based on its recent trajectory, surface `drift=unknown|low|medium|high` in chat, and write drift annotations into saved traces instead of leaving you to infer that only from token usage and tool calls.
10
+
11
+ If you are interested in the underlying methodology, Heddle's drift telemetry is powered by [CyberLoop on npm](https://www.npmjs.com/package/cyberloop). See the [CyberLoop repository](https://github.com/roackb2/cyberloop) and [paper](https://zenodo.org/records/18138161) for the geometric-control and trajectory-based details.
12
+
9
13
  ## How Heddle Helps
10
14
 
11
15
  - daily development work in real coding projects
@@ -17,10 +21,12 @@ It is open source, provider-agnostic, supports OpenAI and Anthropic models, and
17
21
 
18
22
  ## Advanced Capabilities
19
23
 
24
+ - optional CyberLoop-powered semantic drift detection in chat and traces with `/drift on`
20
25
  - provider-agnostic model support across OpenAI and Anthropic
21
26
  - embeddable `runAgentLoop` API for building non-CLI agent hosts
22
27
  - `runAgentHeartbeat` for scheduler-driven autonomous wake cycles without chat by default
23
28
  - serializable checkpoints for resume, background execution, and hosted workers
29
+ - CyberLoop-compatible observer hooks for host-side runtime instrumentation
24
30
  - provider-backed hosted web search through `web_search`
25
31
  - local image viewing from referenced file paths through `view_image`
26
32
  - inline `@file` mentions that tell the agent which workspace files to inspect first
@@ -47,6 +53,22 @@ npx @roackb2/heddle
47
53
 
48
54
  The installed CLI command remains `heddle`.
49
55
 
56
+ If you want optional CyberLoop drift telemetry in chat with `/drift on`, or you want to import `cyberloop/advanced` in your own host, install `cyberloop` in the same environment as Heddle:
57
+
58
+ ```bash
59
+ npm install -g cyberloop
60
+ # or for project-local usage
61
+ npm install cyberloop
62
+ ```
63
+
64
+ The plain `npx @roackb2/heddle` path does not include optional peer dependencies. For one-off drift-enabled usage, install both packages locally or run:
65
+
66
+ ```bash
67
+ npx -p @roackb2/heddle -p cyberloop heddle
68
+ ```
69
+
70
+ If you are developing inside the Heddle repo itself, `yarn install` also installs `cyberloop` through `devDependencies`, so `yarn chat:dev` can use the published package path without extra setup.
71
+
50
72
  ## Quick Start
51
73
 
52
74
  1. Set an API key for a supported provider.
@@ -90,6 +112,8 @@ Heddle currently supports:
90
112
  - persistent workspace memory notes under `.heddle/memory/`
91
113
  - autonomous heartbeat wake cycles through `runAgentHeartbeat`
92
114
  - serializable run checkpoints for programmatic hosts and later continuation
115
+ - passive CyberLoop-compatible observation through `createCyberLoopObserver`
116
+ - optional chat-mode CyberLoop semantic drift telemetry with `/drift on`
93
117
  - short working-plan support through `update_plan` for substantial multi-step tasks
94
118
  - remembered per-project approvals for repeated commands and edits
95
119
  - interrupt and resume support for longer-running coding workflows
@@ -103,6 +127,8 @@ The planning workflow is also intentionally lightweight: Heddle does not force a
103
127
 
104
128
  The web-search workflow is provider-backed rather than crawler-backed: OpenAI models use OpenAI-hosted web search, and Anthropic models use Anthropic-hosted web search when available through the selected model/tool path.
105
129
 
130
+ The CyberLoop workflow is observe-only. When `/drift on` is enabled, Heddle loads real [CyberLoop](https://www.npmjs.com/package/cyberloop) kinematics middleware, embeds runtime frames with OpenAI embeddings, shows `drift=unknown|low|medium|high` in the footer, and writes `cyberloop.annotation` events into saved traces. The toggle is saved on the active chat session, and `/drift` reports the last unavailable reason if the middleware or embeddings fail. Heddle does not calculate semantic drift itself. For the underlying methodology, see the [CyberLoop repository](https://github.com/roackb2/cyberloop) and [paper](https://zenodo.org/records/18138161).
131
+
106
132
  ## Heartbeat
107
133
 
108
134
  Heddle exposes `runAgentHeartbeat` for autonomous, scheduler-driven agent work.
@@ -228,6 +254,9 @@ Useful chat commands:
228
254
  - `/session close <id>`: remove a saved session
229
255
  - `/clear`: clear the current transcript
230
256
  - `/compact`: compact older session history immediately
257
+ - `/drift`: show CyberLoop semantic drift detection status
258
+ - `/drift on`: enable observe-only CyberLoop kinematics telemetry for chat runs
259
+ - `/drift off`: disable CyberLoop semantic drift detection
231
260
  - `!<command>`: run a shell command directly in chat
232
261
 
233
262
  Direct shell in chat:
@@ -242,6 +271,14 @@ Read-oriented commands stay in inspect mode when possible. Workspace-changing or
242
271
 
243
272
  Chat state is stored under `.heddle/`, including saved sessions, traces, approvals, and memory notes. The footer context indicator is an estimate of total request input against the active model's context window, not only the raw chat history length.
244
273
 
274
+ For local development against the sibling CyberLoop repo, run chat with the middleware module path:
275
+
276
+ ```bash
277
+ HEDDLE_CYBERLOOP_ADVANCED_MODULE=/Users/roackb2/Studio/projects/CyberLoop/src/advanced/kinematics-middleware.ts yarn chat:dev:openai
278
+ ```
279
+
280
+ Then use `/drift on` before asking Heddle to do real work. For installed usage, install the optional `cyberloop` peer dependency in the same environment as Heddle so it can dynamically import `cyberloop/advanced`.
281
+
245
282
  ## CLI Usage
246
283
 
247
284
  Supported commands:
@@ -361,6 +398,43 @@ The loop emits structured events for:
361
398
 
362
399
  The returned result also includes a serializable `state` object with the model, provider, workspace root, outcome, transcript, trace, usage, and timestamps. This is the boundary future hosts can persist for background execution, dashboards, middleware, or heartbeat-style continuation.
363
400
 
401
+ For passive semantic-drift experiments, `createCyberLoopObserver` can consume Heddle's event stream and run CyberLoop-compatible middleware over normalized runtime frames:
402
+
403
+ ```ts
404
+ import {
405
+ createCyberLoopObserver,
406
+ createRuntimeFrameEmbedder,
407
+ runAgentLoop,
408
+ } from '@roackb2/heddle'
409
+ import { kinematicsMiddleware } from 'cyberloop/advanced'
410
+
411
+ const frameEmbedder = createRuntimeFrameEmbedder({
412
+ async embedText(text) {
413
+ return embedWithYourProvider(text)
414
+ },
415
+ })
416
+
417
+ const observer = createCyberLoopObserver({
418
+ middleware: [
419
+ kinematicsMiddleware({
420
+ embedder: frameEmbedder,
421
+ goalEmbedding: await embedWithYourProvider('Investigate this repo'),
422
+ }),
423
+ ],
424
+ onAnnotation(annotation) {
425
+ console.log(annotation.driftLevel, annotation.frame.kind)
426
+ },
427
+ })
428
+
429
+ await runAgentLoop({
430
+ goal: 'Investigate this repo',
431
+ onEvent: observer.handleEvent,
432
+ })
433
+ await observer.flush()
434
+ ```
435
+
436
+ This is intentionally observe-only. Heddle still owns execution, tools, approvals, and checkpoints; CyberLoop-style middleware can annotate the run without steering or halting it. Heddle does not calculate semantic drift itself; actual drift signals should come from CyberLoop metadata such as kinematics, manifold, or Grassmannian channels.
437
+
364
438
  For autonomous background work, `runAgentHeartbeat` runs one wake cycle from a durable task and optional checkpoint:
365
439
 
366
440
  ```ts
@@ -391,6 +465,12 @@ Install as a dependency with:
391
465
  npm install @roackb2/heddle
392
466
  ```
393
467
 
468
+ If you want CyberLoop middleware examples or chat drift telemetry, install the optional peer dependency in the same project:
469
+
470
+ ```bash
471
+ npm install cyberloop
472
+ ```
473
+
394
474
  For a small real-LLM example of embedding the loop with a custom host tool:
395
475
 
396
476
  ```bash
@@ -405,6 +485,12 @@ export ANTHROPIC_API_KEY=your_key_here
405
485
  HEDDLE_EXAMPLE_MODEL=claude-3-5-haiku-latest yarn example:programmatic
406
486
  ```
407
487
 
488
+ For a small no-network observer example:
489
+
490
+ ```bash
491
+ yarn example:cyberloop-observer
492
+ ```
493
+
408
494
  The public API lives in [src/index.ts](/Users/roackb2/Studio/projects/ProjectHeddle/heddle/src/index.ts).
409
495
 
410
496
  ## Design Direction
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cyberloop-observer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cyberloop-observer.d.ts","sourceRoot":"","sources":["../../examples/cyberloop-observer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env node
2
+ import { createCyberLoopObserver, runAgentLoop, } from '../src/index.js';
3
+ const createMockLlm = () => {
4
+ let turn = 0;
5
+ return {
6
+ info: {
7
+ provider: 'openai',
8
+ model: 'gpt-demo',
9
+ capabilities: {
10
+ toolCalls: true,
11
+ systemMessages: true,
12
+ reasoningSummaries: false,
13
+ parallelToolCalls: true,
14
+ },
15
+ },
16
+ async chat() {
17
+ turn++;
18
+ if (turn === 1) {
19
+ return {
20
+ content: 'I will inspect the project before answering.',
21
+ toolCalls: [{ id: 'call-1', tool: 'inspect', input: { target: 'README.md' } }],
22
+ };
23
+ }
24
+ return { content: 'The project is a terminal coding agent runtime.' };
25
+ },
26
+ };
27
+ };
28
+ const inspectTool = {
29
+ name: 'inspect',
30
+ description: 'Demo inspection tool.',
31
+ parameters: {
32
+ type: 'object',
33
+ properties: { target: { type: 'string' } },
34
+ required: ['target'],
35
+ },
36
+ async execute(input) {
37
+ return { ok: true, output: `inspected ${JSON.stringify(input)}` };
38
+ },
39
+ };
40
+ /**
41
+ * This is intentionally only CyberLoop-compatible. In a real integration,
42
+ * callers can pass actual middleware from `cyberloop` or `cyberloop/advanced`.
43
+ */
44
+ const demoDriftMiddleware = {
45
+ name: 'demo-drift',
46
+ async beforeStep(ctx) {
47
+ const isToolFailure = ctx.state.kind === 'tool' && ctx.state.ok === false;
48
+ return {
49
+ ...ctx,
50
+ metadata: {
51
+ ...ctx.metadata,
52
+ kinematics: {
53
+ isStable: !isToolFailure,
54
+ correctionMagnitude: isToolFailure ? 1 : 0,
55
+ },
56
+ },
57
+ };
58
+ },
59
+ };
60
+ async function main() {
61
+ const observer = createCyberLoopObserver({
62
+ middleware: [demoDriftMiddleware],
63
+ onAnnotation(annotation) {
64
+ console.log(`[cyberloop] step=${annotation.step} kind=${annotation.frame.kind} drift=${annotation.driftLevel}`);
65
+ },
66
+ });
67
+ const result = await runAgentLoop({
68
+ goal: 'What does this project do?',
69
+ llm: createMockLlm(),
70
+ tools: [inspectTool],
71
+ includeDefaultTools: false,
72
+ maxSteps: 3,
73
+ onEvent: observer.handleEvent,
74
+ });
75
+ await observer.flush();
76
+ console.log(`\nFinal answer:\n${result.summary}`);
77
+ }
78
+ await main();
79
+ //# sourceMappingURL=cyberloop-observer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cyberloop-observer.js","sourceRoot":"","sources":["../../examples/cyberloop-observer.ts"],"names":[],"mappings":";AACA,OAAO,EACL,uBAAuB,EACvB,YAAY,GAMb,MAAM,iBAAiB,CAAC;AAEzB,MAAM,aAAa,GAAG,GAAe,EAAE;IACrC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO;QACL,IAAI,EAAE;YACJ,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,UAAU;YACjB,YAAY,EAAE;gBACZ,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,IAAI;gBACpB,kBAAkB,EAAE,KAAK;gBACzB,iBAAiB,EAAE,IAAI;aACxB;SACF;QACD,KAAK,CAAC,IAAI;YACR,IAAI,EAAE,CAAC;YACP,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,8CAA8C;oBACvD,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC;iBAC/E,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAC;QACxE,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAmB;IAClC,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,uBAAuB;IACpC,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC1C,QAAQ,EAAE,CAAC,QAAQ,CAAC;KACrB;IACD,KAAK,CAAC,OAAO,CAAC,KAAK;QACjB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;IACpE,CAAC;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,mBAAmB,GAAsD;IAC7E,IAAI,EAAE,YAAY;IAClB,KAAK,CAAC,UAAU,CAAC,GAAG;QAClB,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC;QAC1E,OAAO;YACL,GAAG,GAAG;YACN,QAAQ,EAAE;gBACR,GAAG,GAAG,CAAC,QAAQ;gBACf,UAAU,EAAE;oBACV,QAAQ,EAAE,CAAC,aAAa;oBACxB,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3C;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,QAAQ,GAAG,uBAAuB,CAAC;QACvC,UAAU,EAAE,CAAC,mBAAmB,CAAC;QACjC,YAAY,CAAC,UAAU;YACrB,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,CAAC,IAAI,SAAS,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;QAClH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,IAAI,EAAE,4BAA4B;QAClC,GAAG,EAAE,aAAa,EAAE;QACpB,KAAK,EAAE,CAAC,WAAW,CAAC;QACpB,mBAAmB,EAAE,KAAK;QAC1B,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,QAAQ,CAAC,WAAW;KAC9B,CAAC,CAAC;IACH,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEvB,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,IAAI,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Host Events Example
4
+ *
5
+ * Demonstrates how to consume Heddle's structured event stream for:
6
+ * - Real-time progress monitoring
7
+ * - Tool execution tracking
8
+ * - Checkpoint persistence
9
+ * - Escalation routing (for CyberLoop/Lucid integration)
10
+ *
11
+ * Usage:
12
+ * HEDDLE_EXAMPLE_MODEL=gpt-5.1-codex-mini npx tsx examples/host-events.ts
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=host-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-events.d.ts","sourceRoot":"","sources":["../../examples/host-events.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG"}
@@ -0,0 +1,233 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Host Events Example
4
+ *
5
+ * Demonstrates how to consume Heddle's structured event stream for:
6
+ * - Real-time progress monitoring
7
+ * - Tool execution tracking
8
+ * - Checkpoint persistence
9
+ * - Escalation routing (for CyberLoop/Lucid integration)
10
+ *
11
+ * Usage:
12
+ * HEDDLE_EXAMPLE_MODEL=gpt-5.1-codex-mini npx tsx examples/host-events.ts
13
+ */
14
+ import { runAgentLoop, runAgentHeartbeat } from '../src/index.js';
15
+ // ---------------------------------------------------------------------------
16
+ // Mock LLM for demo purposes (replace with real LLM in production)
17
+ // ---------------------------------------------------------------------------
18
+ const createMockLlm = (scenario) => {
19
+ let turn = 0;
20
+ return {
21
+ info: {
22
+ provider: 'openai',
23
+ model: 'gpt-demo',
24
+ capabilities: {
25
+ toolCalls: true,
26
+ systemMessages: true,
27
+ reasoningSummaries: false,
28
+ parallelToolCalls: true,
29
+ },
30
+ },
31
+ async chat(messages) {
32
+ turn++;
33
+ if (scenario === 'success') {
34
+ return { content: `Demo response turn ${turn}` };
35
+ }
36
+ if (scenario === 'tool-use' && turn === 1) {
37
+ return {
38
+ content: 'Using echo tool.',
39
+ toolCalls: [{ id: `call-${turn}`, tool: 'echo', input: { message: 'hello' } }],
40
+ };
41
+ }
42
+ if (scenario === 'escalate') {
43
+ return {
44
+ content: 'Blocked by policy and need human input.\n\nHEARTBEAT_DECISION: escalate',
45
+ };
46
+ }
47
+ return { content: `Turn ${turn} complete.` };
48
+ },
49
+ };
50
+ };
51
+ // ---------------------------------------------------------------------------
52
+ // Example tools
53
+ // ---------------------------------------------------------------------------
54
+ const echoTool = {
55
+ name: 'echo',
56
+ description: 'Echoes input back',
57
+ parameters: {
58
+ type: 'object',
59
+ properties: { message: { type: 'string' } },
60
+ required: ['message'],
61
+ },
62
+ async execute(input) {
63
+ return { ok: true, output: input };
64
+ },
65
+ };
66
+ // ---------------------------------------------------------------------------
67
+ // Structured event logger - demonstrates host-facing event consumption
68
+ // ---------------------------------------------------------------------------
69
+ class StructuredEventLogger {
70
+ runId = null;
71
+ events = [];
72
+ onEvent(event) {
73
+ this.events.push(event);
74
+ // Capture runId from first event for correlation
75
+ if (!this.runId && 'runId' in event) {
76
+ this.runId = event.runId;
77
+ console.log(`\nšŸ“‹ Run started: ${this.runId}`);
78
+ console.log('='.repeat(60));
79
+ }
80
+ switch (event.type) {
81
+ case 'loop.started':
82
+ console.log(`\nšŸš€ Loop started`);
83
+ console.log(` Goal: ${event.goal}`);
84
+ console.log(` Model: ${event.model} (${event.provider})`);
85
+ if (event.resumedFromCheckpoint) {
86
+ console.log(` Resumed from: ${event.resumedFromCheckpoint}`);
87
+ }
88
+ break;
89
+ case 'loop.resumed':
90
+ console.log(`\nšŸ”„ Resuming from checkpoint: ${event.fromCheckpoint}`);
91
+ console.log(` Prior trace events: ${event.priorTraceEvents}`);
92
+ break;
93
+ case 'assistant.stream':
94
+ // Debounce stream events for cleaner output
95
+ if (event.done) {
96
+ console.log(`\nšŸ’¬ Assistant [step ${event.step}]: "${event.text.slice(0, 60)}..."`);
97
+ }
98
+ break;
99
+ case 'tool.calling':
100
+ console.log(`\nšŸ”§ Tool calling [step ${event.step}]: ${event.tool}`);
101
+ console.log(` ToolCall ID: ${event.toolCallId}`);
102
+ console.log(` Requires approval: ${event.requiresApproval}`);
103
+ break;
104
+ case 'tool.completed':
105
+ console.log(`\nāœ… Tool completed [step ${event.step}]: ${event.tool}`);
106
+ console.log(` Duration: ${event.durationMs}ms`);
107
+ console.log(` Result: ${event.result.ok ? 'success' : 'failed'}`);
108
+ if (!event.result.ok && event.result.error) {
109
+ console.log(` Error: ${event.result.error}`);
110
+ }
111
+ break;
112
+ case 'trace':
113
+ // Trace events are verbose - log only important ones
114
+ if (event.event.type === 'run.finished') {
115
+ console.log(`\nšŸ Trace: run finished (${event.event.outcome})`);
116
+ }
117
+ break;
118
+ case 'checkpoint.saved':
119
+ console.log(`\nšŸ’¾ Checkpoint saved [step ${event.step}]`);
120
+ console.log(` Checkpoint run: ${event.checkpoint.runId}`);
121
+ console.log(` Created at: ${event.checkpoint.createdAt}`);
122
+ break;
123
+ case 'heartbeat.decision':
124
+ console.log(`\nšŸ’“ Heartbeat decision: ${event.decision}`);
125
+ console.log(` Outcome: ${event.outcome}`);
126
+ console.log(` Summary: ${event.summary.slice(0, 80)}...`);
127
+ break;
128
+ case 'escalation.required':
129
+ console.log(`\n🚨 ESCALATION REQUIRED [step ${event.step}]`);
130
+ console.log(` Task: ${event.task}`);
131
+ console.log(` Outcome: ${event.outcome}`);
132
+ console.log(` Summary: ${event.summary.slice(0, 100)}...`);
133
+ break;
134
+ case 'loop.finished':
135
+ console.log(`\n✨ Loop finished`);
136
+ console.log(` Outcome: ${event.outcome}`);
137
+ console.log(` Summary: ${event.summary.slice(0, 80)}...`);
138
+ console.log(` Total steps: ${event.state.trace.length}`);
139
+ console.log(` Usage: ${JSON.stringify(event.state.usage)}`);
140
+ console.log('\n' + '='.repeat(60));
141
+ break;
142
+ }
143
+ }
144
+ getStats() {
145
+ return {
146
+ totalEvents: this.events.length,
147
+ toolCalls: this.events.filter((e) => e.type === 'tool.calling').length,
148
+ checkpoints: this.events.filter((e) => e.type === 'checkpoint.saved').length,
149
+ escalations: this.events.filter((e) => e.type === 'escalation.required').length,
150
+ };
151
+ }
152
+ }
153
+ // ---------------------------------------------------------------------------
154
+ // Example: Basic run with event logging
155
+ // ---------------------------------------------------------------------------
156
+ async function exampleBasicRun() {
157
+ console.log('\n' + '#'.repeat(60));
158
+ console.log('# Example 1: Basic Run with Event Logging');
159
+ console.log('#'.repeat(60));
160
+ const logger = new StructuredEventLogger();
161
+ await runAgentLoop({
162
+ goal: 'Simple demo task',
163
+ llm: createMockLlm('success'),
164
+ tools: [],
165
+ includeDefaultTools: false,
166
+ maxSteps: 2,
167
+ onEvent: (event) => logger.onEvent(event),
168
+ });
169
+ console.log('\nšŸ“Š Stats:', logger.getStats());
170
+ }
171
+ // ---------------------------------------------------------------------------
172
+ // Example: Tool execution tracking
173
+ // ---------------------------------------------------------------------------
174
+ async function exampleToolTracking() {
175
+ console.log('\n' + '#'.repeat(60));
176
+ console.log('# Example 2: Tool Execution Tracking');
177
+ console.log('#'.repeat(60));
178
+ const logger = new StructuredEventLogger();
179
+ await runAgentLoop({
180
+ goal: 'Use echo tool',
181
+ llm: createMockLlm('tool-use'),
182
+ tools: [echoTool],
183
+ includeDefaultTools: false,
184
+ maxSteps: 2,
185
+ onEvent: (event) => logger.onEvent(event),
186
+ });
187
+ console.log('\nšŸ“Š Stats:', logger.getStats());
188
+ }
189
+ // ---------------------------------------------------------------------------
190
+ // Example: Heartbeat with escalation
191
+ // ---------------------------------------------------------------------------
192
+ async function exampleHeartbeatEscalation() {
193
+ console.log('\n' + '#'.repeat(60));
194
+ console.log('# Example 3: Heartbeat with Escalation Routing');
195
+ console.log('#'.repeat(60));
196
+ const logger = new StructuredEventLogger();
197
+ const result = await runAgentHeartbeat({
198
+ task: 'Background maintenance task',
199
+ llm: createMockLlm('escalate'),
200
+ tools: [],
201
+ includeDefaultTools: false,
202
+ maxSteps: 2,
203
+ onEvent: (event) => logger.onEvent(event),
204
+ });
205
+ console.log('\nšŸ“Š Stats:', logger.getStats());
206
+ console.log('\nšŸ“‹ Heartbeat Result:');
207
+ console.log(` Decision: ${result.decision}`);
208
+ console.log(` Checkpoint ID: ${result.checkpoint.runId}`);
209
+ // Demonstrate how Lucid/CyberLoop would route escalation
210
+ if (result.decision === 'escalate') {
211
+ console.log('\nšŸŽÆ Integration example:');
212
+ console.log(' - Lucid would route to operator channel');
213
+ console.log(' - CyberLoop would annotate drift in middleware');
214
+ }
215
+ }
216
+ // ---------------------------------------------------------------------------
217
+ // Main
218
+ // ---------------------------------------------------------------------------
219
+ async function main() {
220
+ console.log('Heddle Host Events Example');
221
+ console.log('Shows structured event consumption for external integration\n');
222
+ await exampleBasicRun();
223
+ await exampleToolTracking();
224
+ await exampleHeartbeatEscalation();
225
+ console.log('\n' + '#'.repeat(60));
226
+ console.log('# All examples completed successfully');
227
+ console.log('#'.repeat(60));
228
+ }
229
+ main().catch((error) => {
230
+ console.error('Error:', error);
231
+ process.exit(1);
232
+ });
233
+ //# sourceMappingURL=host-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-events.js","sourceRoot":"","sources":["../../examples/host-events.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAA4C,MAAM,iBAAiB,CAAC;AAG5G,8EAA8E;AAC9E,mEAAmE;AACnE,8EAA8E;AAC9E,MAAM,aAAa,GAAG,CAAC,QAA6C,EAAc,EAAE;IAClF,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO;QACL,IAAI,EAAE;YACJ,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,UAAU;YACjB,YAAY,EAAE;gBACZ,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,IAAI;gBACpB,kBAAkB,EAAE,KAAK;gBACzB,iBAAiB,EAAE,IAAI;aACxB;SACF;QACD,KAAK,CAAC,IAAI,CAAC,QAAuB;YAChC,IAAI,EAAE,CAAC;YAEP,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,EAAE,OAAO,EAAE,sBAAsB,IAAI,EAAE,EAAE,CAAC;YACnD,CAAC;YAED,IAAI,QAAQ,KAAK,UAAU,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC1C,OAAO;oBACL,OAAO,EAAE,kBAAkB;oBAC3B,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;iBAC/E,CAAC;YACJ,CAAC;YAED,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC5B,OAAO;oBACL,OAAO,EAAE,yEAAyE;iBACnF,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,CAAC;QAC/C,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAC9E,MAAM,QAAQ,GAAmB;IAC/B,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,mBAAmB;IAChC,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC3C,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;IACD,KAAK,CAAC,OAAO,CAAC,KAAc;QAC1B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;CACF,CAAC;AAEF,8EAA8E;AAC9E,uEAAuE;AACvE,8EAA8E;AAC9E,MAAM,qBAAqB;IACjB,KAAK,GAAkB,IAAI,CAAC;IAC5B,MAAM,GAAqB,EAAE,CAAC;IAEtC,OAAO,CAAC,KAAqB;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,iDAAiD;QACjD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,CAAC;QAED,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,cAAc;gBACjB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAC5D,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC;gBACjE,CAAC;gBACD,MAAM;YAER,KAAK,cAAc;gBACjB,OAAO,CAAC,GAAG,CAAC,kCAAkC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;gBACtE,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBAChE,MAAM;YAER,KAAK,kBAAkB;gBACrB,4CAA4C;gBAC5C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;gBACtF,CAAC;gBACD,MAAM;YAER,KAAK,cAAc;gBACjB,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBAC/D,MAAM;YAER,KAAK,gBAAgB;gBACnB,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtE,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACpE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACjD,CAAC;gBACD,MAAM;YAER,KAAK,OAAO;gBACV,qDAAqD;gBACrD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;gBACnE,CAAC;gBACD,MAAM;YAER,KAAK,kBAAkB;gBACrB,OAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC5D,MAAM;YAER,KAAK,oBAAoB;gBACvB,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC5D,MAAM;YAER,KAAK,qBAAqB;gBACxB,OAAO,CAAC,GAAG,CAAC,kCAAkC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC7D,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC7D,MAAM;YAER,KAAK,eAAe;gBAClB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnC,MAAM;QACV,CAAC;IACH,CAAC;IAED,QAAQ;QAMN,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC/B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,MAAM;YACtE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,MAAM;YAC5E,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,CAAC,CAAC,MAAM;SAChF,CAAC;IACJ,CAAC;CACF;AAED,8EAA8E;AAC9E,wCAAwC;AACxC,8EAA8E;AAC9E,KAAK,UAAU,eAAe;IAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,MAAM,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAE3C,MAAM,YAAY,CAAC;QACjB,IAAI,EAAE,kBAAkB;QACxB,GAAG,EAAE,aAAa,CAAC,SAAS,CAAC;QAC7B,KAAK,EAAE,EAAE;QACT,mBAAmB,EAAE,KAAK;QAC1B,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;KAC1C,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,8EAA8E;AAC9E,mCAAmC;AACnC,8EAA8E;AAC9E,KAAK,UAAU,mBAAmB;IAChC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,MAAM,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAE3C,MAAM,YAAY,CAAC;QACjB,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC;QAC9B,KAAK,EAAE,CAAC,QAAQ,CAAC;QACjB,mBAAmB,EAAE,KAAK;QAC1B,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;KAC1C,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,8EAA8E;AAC9E,qCAAqC;AACrC,8EAA8E;AAC9E,KAAK,UAAU,0BAA0B;IACvC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,MAAM,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAE3C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;QACrC,IAAI,EAAE,6BAA6B;QACnC,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC;QAC9B,KAAK,EAAE,EAAE;QACT,mBAAmB,EAAE,KAAK;QAC1B,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;KAC1C,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;IAE5D,yDAAyD;IACzD,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,OAAO;AACP,8EAA8E;AAC9E,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAE7E,MAAM,eAAe,EAAE,CAAC;IACxB,MAAM,mBAAmB,EAAE,CAAC;IAC5B,MAAM,0BAA0B,EAAE,CAAC;IAEnC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -102,6 +102,8 @@ function formatTraceEvent(event) {
102
102
  return `[trace] tool.call step=${event.step} tool=${event.call.tool} input=${JSON.stringify(event.call.input)}`;
103
103
  case 'tool.result':
104
104
  return `[trace] tool.result step=${event.step} tool=${event.tool} ok=${event.result.ok} output=${JSON.stringify(formatUnknown(event.result.output ?? event.result.error ?? ''))}`;
105
+ case 'cyberloop.annotation':
106
+ return `[trace] cyberloop.annotation step=${event.step} frame=${event.frameKind} drift=${event.driftLevel}`;
105
107
  case 'run.finished':
106
108
  return `[trace] run.finished step=${event.step} outcome=${event.outcome} summary=${JSON.stringify(shorten(event.summary))}`;
107
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"programmatic-loop.js","sourceRoot":"","sources":["../../examples/programmatic-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"programmatic-loop.js","sourceRoot":"","sources":["../../examples/programmatic-loop.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../src/cli/chat/App.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,wBAAgB,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,2CA4d9D"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../src/cli/chat/App.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,wBAAgB,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,2CAygB9D"}