@inbrowser/agent 0.1.0 → 0.3.0

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 (130) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -2
  3. package/dist/cli/commands/run.js.map +1 -1
  4. package/dist/cli/fixtures.d.ts +2 -2
  5. package/dist/cli/fixtures.d.ts.map +1 -1
  6. package/dist/cli/fixtures.js +7 -16
  7. package/dist/cli/fixtures.js.map +1 -1
  8. package/dist/cli/llm/openrouter.d.ts +4 -4
  9. package/dist/cli/llm/openrouter.d.ts.map +1 -1
  10. package/dist/cli/llm/openrouter.js +20 -31
  11. package/dist/cli/llm/openrouter.js.map +1 -1
  12. package/dist/diagnostics/index.d.ts +5 -0
  13. package/dist/diagnostics/index.d.ts.map +1 -0
  14. package/dist/diagnostics/index.js +3 -0
  15. package/dist/diagnostics/index.js.map +1 -0
  16. package/dist/diagnostics/timing.d.ts +48 -0
  17. package/dist/diagnostics/timing.d.ts.map +1 -0
  18. package/dist/diagnostics/timing.js +85 -0
  19. package/dist/diagnostics/timing.js.map +1 -0
  20. package/dist/diagnostics/truthfulness.d.ts +36 -0
  21. package/dist/diagnostics/truthfulness.d.ts.map +1 -0
  22. package/dist/diagnostics/truthfulness.js +180 -0
  23. package/dist/diagnostics/truthfulness.js.map +1 -0
  24. package/dist/dispatch-memoization.d.ts +84 -0
  25. package/dist/dispatch-memoization.d.ts.map +1 -0
  26. package/dist/dispatch-memoization.js +197 -0
  27. package/dist/dispatch-memoization.js.map +1 -0
  28. package/dist/eval/comparison-report.d.ts +164 -0
  29. package/dist/eval/comparison-report.d.ts.map +1 -0
  30. package/dist/eval/comparison-report.js +316 -0
  31. package/dist/eval/comparison-report.js.map +1 -0
  32. package/dist/eval/fixture.d.ts +74 -0
  33. package/dist/eval/fixture.d.ts.map +1 -0
  34. package/dist/eval/fixture.js +217 -0
  35. package/dist/eval/fixture.js.map +1 -0
  36. package/dist/eval/index.d.ts +13 -0
  37. package/dist/eval/index.d.ts.map +1 -0
  38. package/dist/eval/index.js +7 -0
  39. package/dist/eval/index.js.map +1 -0
  40. package/dist/eval/load-node.d.ts +16 -0
  41. package/dist/eval/load-node.d.ts.map +1 -0
  42. package/dist/eval/load-node.js +58 -0
  43. package/dist/eval/load-node.js.map +1 -0
  44. package/dist/eval/metric-collector.d.ts +209 -0
  45. package/dist/eval/metric-collector.d.ts.map +1 -0
  46. package/dist/eval/metric-collector.js +293 -0
  47. package/dist/eval/metric-collector.js.map +1 -0
  48. package/dist/eval/run-record.d.ts +76 -0
  49. package/dist/eval/run-record.d.ts.map +1 -0
  50. package/dist/eval/run-record.js +32 -0
  51. package/dist/eval/run-record.js.map +1 -0
  52. package/dist/eval/runner.d.ts +140 -0
  53. package/dist/eval/runner.d.ts.map +1 -0
  54. package/dist/eval/runner.js +310 -0
  55. package/dist/eval/runner.js.map +1 -0
  56. package/dist/eval/spec-framework.d.ts +113 -0
  57. package/dist/eval/spec-framework.d.ts.map +1 -0
  58. package/dist/eval/spec-framework.js +100 -0
  59. package/dist/eval/spec-framework.js.map +1 -0
  60. package/dist/eval/spec-helpers.d.ts +245 -0
  61. package/dist/eval/spec-helpers.d.ts.map +1 -0
  62. package/dist/eval/spec-helpers.js +605 -0
  63. package/dist/eval/spec-helpers.js.map +1 -0
  64. package/dist/index.d.ts +32 -8
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +14 -3
  67. package/dist/index.js.map +1 -1
  68. package/dist/llm-adapter.d.ts +30 -34
  69. package/dist/llm-adapter.d.ts.map +1 -1
  70. package/dist/llm-adapter.js +61 -51
  71. package/dist/llm-adapter.js.map +1 -1
  72. package/dist/mcp/connect.d.ts +68 -0
  73. package/dist/mcp/connect.d.ts.map +1 -0
  74. package/dist/mcp/connect.js +111 -0
  75. package/dist/mcp/connect.js.map +1 -0
  76. package/dist/metrics.js +4 -4
  77. package/dist/metrics.js.map +1 -1
  78. package/dist/node.d.ts +3 -0
  79. package/dist/node.d.ts.map +1 -1
  80. package/dist/node.js +2 -0
  81. package/dist/node.js.map +1 -1
  82. package/dist/planner-executor.d.ts +132 -0
  83. package/dist/planner-executor.d.ts.map +1 -0
  84. package/dist/planner-executor.js +274 -0
  85. package/dist/planner-executor.js.map +1 -0
  86. package/dist/retrieval.d.ts +74 -0
  87. package/dist/retrieval.d.ts.map +1 -0
  88. package/dist/retrieval.js +287 -0
  89. package/dist/retrieval.js.map +1 -0
  90. package/dist/session.d.ts.map +1 -1
  91. package/dist/session.js +8 -2
  92. package/dist/session.js.map +1 -1
  93. package/dist/skill-catalog.d.ts +81 -0
  94. package/dist/skill-catalog.d.ts.map +1 -0
  95. package/dist/skill-catalog.js +388 -0
  96. package/dist/skill-catalog.js.map +1 -0
  97. package/dist/skill-router.d.ts +95 -0
  98. package/dist/skill-router.d.ts.map +1 -0
  99. package/dist/skill-router.js +130 -0
  100. package/dist/skill-router.js.map +1 -0
  101. package/dist/strategy.d.ts +22 -2
  102. package/dist/strategy.d.ts.map +1 -1
  103. package/dist/strategy.js +358 -28
  104. package/dist/strategy.js.map +1 -1
  105. package/dist/tools.d.ts +15 -1
  106. package/dist/tools.d.ts.map +1 -1
  107. package/dist/tools.js +18 -0
  108. package/dist/tools.js.map +1 -1
  109. package/dist/types/agent.d.ts +2 -3
  110. package/dist/types/agent.d.ts.map +1 -1
  111. package/dist/types/agent.js +1 -1
  112. package/dist/types/chat.d.ts +0 -15
  113. package/dist/types/chat.d.ts.map +1 -1
  114. package/dist/types/llm.d.ts +11 -64
  115. package/dist/types/llm.d.ts.map +1 -1
  116. package/dist/types/llm.js +7 -8
  117. package/dist/types/llm.js.map +1 -1
  118. package/dist/types/metrics.d.ts +2 -2
  119. package/dist/types/metrics.d.ts.map +1 -1
  120. package/dist/types/session.d.ts +2 -2
  121. package/dist/types/session.d.ts.map +1 -1
  122. package/dist/types/strategy.d.ts +60 -3
  123. package/dist/types/strategy.d.ts.map +1 -1
  124. package/dist/types/tools.d.ts +18 -0
  125. package/dist/types/tools.d.ts.map +1 -1
  126. package/dist/types/trace.d.ts +67 -15
  127. package/dist/types/trace.d.ts.map +1 -1
  128. package/dist/types/trace.js +5 -3
  129. package/dist/types/trace.js.map +1 -1
  130. package/package.json +3 -2
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Inverse-mode types — see `plans/inverse-mode-architecture.md`.
3
3
  *
4
- * In inference mode, an agent owns its LlmClient + conversation and the
4
+ * In inference mode, an agent owns its ModelClient + conversation and the
5
5
  * strategy drives a turn-by-turn loop calling `ToolHandler`s. In inverse
6
6
  * mode, an external LLM host (Claude Code, Claude Desktop) drives the
7
7
  * conversation and calls *behavior-named* `AgentTool`s one-shot.
@@ -70,8 +70,7 @@ export interface AgentContext {
70
70
  *
71
71
  * Field name preserved (vs. `projectContext`) so the public
72
72
  * AgentContext shape doesn't break external tools that destructure
73
- * `ctx.agentApp`; the *type* migrated from `AgentApp` to
74
- * `ProjectContext` in Phase C step 13 of the legacy-SDK migration.
73
+ * `ctx.agentApp`; the *type* is `ProjectContext`.
75
74
  */
76
75
  agentApp?: ProjectContext;
77
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;CACnE;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,MAAM,EAAE,QAAQ,CAAC;IACjB,gEAAgE;IAChE,MAAM,EAAE,WAAW,CAAC;IACpB;4CACwC;IACxC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,EAAE,EAAE,OAAO,CAAC;IACZ,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,CAAC,CAAC;IACT;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;CACnE;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,MAAM,EAAE,QAAQ,CAAC;IACjB,gEAAgE;IAChE,MAAM,EAAE,WAAW,CAAC;IACpB;4CACwC;IACxC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,EAAE,EAAE,OAAO,CAAC;IACZ,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,CAAC,CAAC;IACT;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Inverse-mode types — see `plans/inverse-mode-architecture.md`.
3
3
  *
4
- * In inference mode, an agent owns its LlmClient + conversation and the
4
+ * In inference mode, an agent owns its ModelClient + conversation and the
5
5
  * strategy drives a turn-by-turn loop calling `ToolHandler`s. In inverse
6
6
  * mode, an external LLM host (Claude Code, Claude Desktop) drives the
7
7
  * conversation and calls *behavior-named* `AgentTool`s one-shot.
@@ -56,19 +56,4 @@ export interface TurnDetails {
56
56
  /** Free-form provider routing info (OpenRouter "provider" field, etc.). */
57
57
  routing?: Record<string, unknown>;
58
58
  }
59
- /** A normalized message shape providers consume — drops React-specific fields like `streaming`. */
60
- export interface NormalizedMessage {
61
- role: ChatRole;
62
- text: string;
63
- toolCalls?: {
64
- callId: string;
65
- name: string;
66
- args: unknown;
67
- signature?: string;
68
- }[];
69
- /** For `role: 'tool'` only — the result of a previous tool call. */
70
- callId?: string;
71
- name?: string;
72
- resultJson?: string;
73
- }
74
59
  //# sourceMappingURL=chat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,+FAA+F;IAC/F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,mGAAmG;AACnG,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClF,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/types/chat.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,+FAA+F;IAC/F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC"}
@@ -1,15 +1,14 @@
1
1
  /**
2
- * `LlmClient` narrow provider interface.
3
- *
4
- * Implementations live in adapter packages (one per provider). The
5
- * client knows about model calls and streamed events; it knows
6
- * **nothing** about BYOK forms, localStorage, model pickers, or
7
- * pricing tables. Receives its config explicitly at construction
8
- * time so concurrent sessions can use different keys/models against
9
- * the same provider without contention.
2
+ * The agent's model-call contract is now the shared `ModelClient`
3
+ * contract from `@inbrowser/model` — the one type the cloud
4
+ * providers, the on-device engine, the relay (transport), and the
5
+ * agent (runtime) all speak. This module re-exports it so the
6
+ * `./types/llm.js` import site downstream code already uses keeps
7
+ * working, and keeps the agent-local construction helpers (`LlmConfig`,
8
+ * `LlmClientFactory`) plus the agent-local `JsonSchema` type.
10
9
  */
11
- import type { NormalizedMessage } from './chat.js';
12
- import type { TurnDetails, TurnMetrics } from './chat.js';
10
+ import type { ModelClient } from '@inbrowser/model';
11
+ export type { ModelClient, ModelRequest, ModelEvent, ModelMessage, ModelUsage, ToolSpec, ReasoningEffort, } from '@inbrowser/model';
13
12
  export interface LlmConfig {
14
13
  apiKey?: string;
15
14
  model: string;
@@ -20,19 +19,6 @@ export interface LlmConfig {
20
19
  /** Caller-side flag — affects metrics' `isByok`. */
21
20
  isByok?: boolean;
22
21
  }
23
- export interface ChatRequest {
24
- messages: NormalizedMessage[];
25
- /** Tool declarations the model may invoke. Empty array → plain chat. */
26
- tools: ToolDeclaration[];
27
- /** Lighter than `tools.length === 0`; lets adapters skip tool-mode encoding entirely. */
28
- toolUseEnabled: boolean;
29
- }
30
- export interface ToolDeclaration {
31
- name: string;
32
- description: string;
33
- /** JSON Schema describing the tool's arguments. */
34
- parameters: JsonSchema;
35
- }
36
22
  export type JsonSchema = {
37
23
  type?: string;
38
24
  description?: string;
@@ -42,48 +28,9 @@ export type JsonSchema = {
42
28
  enum?: unknown[];
43
29
  [key: string]: unknown;
44
30
  };
45
- export interface LlmClient {
46
- readonly id: string;
47
- readonly supportsTools: boolean;
48
- chat(req: ChatRequest, signal: AbortSignal): AsyncIterable<ChatEvent>;
49
- }
50
- export type ChatEvent = {
51
- kind: 'text';
52
- chunk: string;
53
- } | {
54
- kind: 'thinking';
55
- chunk: string;
56
- } | {
57
- kind: 'tool_call';
58
- id: string;
59
- name: string;
60
- args: unknown;
61
- signature?: string;
62
- } | {
63
- kind: 'turn_complete';
64
- usage: RawUsage;
65
- details: TurnDetails;
66
- } | {
67
- kind: 'error';
68
- message: string;
69
- };
70
- /**
71
- * Raw token usage as the provider reports it — interpreted by
72
- * `MetricsCollector` to derive `TurnMetrics` (cost, cached
73
- * fraction, reasoning fraction). Different providers report
74
- * different shapes; the collector handles them.
75
- */
76
- export interface RawUsage {
77
- promptTokens: number;
78
- completionTokens: number;
79
- cachedTokens?: number;
80
- reasoningTokens?: number;
81
- /** Provider-supplied cost (OpenRouter), when available — bypasses pricing tables. */
82
- costUsd?: number;
83
- }
84
31
  export interface LlmClientFactory {
85
- create(config: LlmConfig): LlmClient;
32
+ create(config: LlmConfig): ModelClient;
86
33
  }
87
34
  /** Re-export so consumers don't have to dig into `./chat.js`. */
88
- export type { TurnDetails, TurnMetrics };
35
+ export type { TurnDetails, TurnMetrics } from './chat.js';
89
36
  //# sourceMappingURL=llm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../src/types/llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE1D,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5C,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,wEAAwE;IACxE,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,yFAAyF;IACzF,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAClC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;CACvE;AAED,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAClF;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;CACtC;AAED,iEAAiE;AACjE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../src/types/llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,YAAY,EACV,WAAW,EACX,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5C,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAClC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;CACxC;AAED,iEAAiE;AACjE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
package/dist/types/llm.js CHANGED
@@ -1,12 +1,11 @@
1
1
  /**
2
- * `LlmClient` narrow provider interface.
3
- *
4
- * Implementations live in adapter packages (one per provider). The
5
- * client knows about model calls and streamed events; it knows
6
- * **nothing** about BYOK forms, localStorage, model pickers, or
7
- * pricing tables. Receives its config explicitly at construction
8
- * time so concurrent sessions can use different keys/models against
9
- * the same provider without contention.
2
+ * The agent's model-call contract is now the shared `ModelClient`
3
+ * contract from `@inbrowser/model` — the one type the cloud
4
+ * providers, the on-device engine, the relay (transport), and the
5
+ * agent (runtime) all speak. This module re-exports it so the
6
+ * `./types/llm.js` import site downstream code already uses keeps
7
+ * working, and keeps the agent-local construction helpers (`LlmConfig`,
8
+ * `LlmClientFactory`) plus the agent-local `JsonSchema` type.
10
9
  */
11
10
  export {};
12
11
  //# sourceMappingURL=llm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/types/llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
1
+ {"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/types/llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -6,7 +6,7 @@
6
6
  * cost breakdown. Pricing tables live here, not inside provider
7
7
  * implementations.
8
8
  */
9
- import type { RawUsage, TurnMetrics } from './llm.js';
9
+ import type { ModelUsage, TurnMetrics } from './llm.js';
10
10
  export interface MetricsCollector {
11
11
  /** Stamp a turn-completion event. Returns the typed metrics shape. */
12
12
  recordTurn(input: RecordTurnInput): TurnMetrics;
@@ -17,7 +17,7 @@ export interface MetricsCollector {
17
17
  }
18
18
  export interface RecordTurnInput {
19
19
  llmId: string;
20
- rawUsage: RawUsage;
20
+ rawUsage: ModelUsage;
21
21
  model: string;
22
22
  durationMs: number;
23
23
  isByok?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/types/metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,WAAW,CAAC;IAChD,wEAAwE;IACxE,MAAM,IAAI,aAAa,CAAC;IACxB,2DAA2D;IAC3D,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/types/metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,WAAW,CAAC;IAChD,wEAAwE;IACxE,MAAM,IAAI,aAAa,CAAC;IACxB,2DAA2D;IAC3D,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -8,7 +8,7 @@
8
8
  * (`./strategy.ts`).
9
9
  */
10
10
  import type { ChatMessage, TurnDetails, TurnMetrics } from './chat.js';
11
- import type { LlmClient } from './llm.js';
11
+ import type { ModelClient } from './llm.js';
12
12
  import type { MetricsCollector } from './metrics.js';
13
13
  import type { RuntimeState } from './runtime.js';
14
14
  import type { AgentStrategy } from './strategy.js';
@@ -18,7 +18,7 @@ import type { Workspace } from './workspace.js';
18
18
  export interface AgentSessionConfig {
19
19
  /** Pluggable inference algorithm. See `./strategy.ts`. */
20
20
  strategy: AgentStrategy;
21
- llm: LlmClient;
21
+ llm: ModelClient;
22
22
  tools: ToolDispatch;
23
23
  /** Tool declarations the LLM should see this turn. Caller filters by
24
24
  * capabilities before construction. Empty list disables function
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * surface stays stable; only the internals change.
8
8
  */
9
9
  import type { ChatMessage, TurnDetails } from './chat.js';
10
- import type { LlmClient, RawUsage } from './llm.js';
10
+ import type { ModelClient, ModelUsage } from './llm.js';
11
11
  import type { RuntimeState } from './runtime.js';
12
12
  import type { ToolContext, ToolDispatch, ToolHandler, ToolResult } from './tools.js';
13
13
  import type { Tracer } from './trace.js';
@@ -22,10 +22,19 @@ export interface AgentStrategy {
22
22
  }
23
23
  export interface StrategyRunInput {
24
24
  prompt: string;
25
+ /**
26
+ * Conversation history BEFORE this turn's prompt. The strategy is
27
+ * responsible for appending `prompt` itself when composing the
28
+ * message array (`[system, ...history, user(prompt)]`). `history`
29
+ * never contains the current `prompt` — the session keeps the user
30
+ * message in its own history for persistence/events, but hands the
31
+ * strategy the pre-prompt view so the prompt appears exactly once
32
+ * per LLM request.
33
+ */
25
34
  history: ChatMessage[];
26
35
  workspace: Workspace;
27
36
  runtime: RuntimeState;
28
- llm: LlmClient;
37
+ llm: ModelClient;
29
38
  tools: ToolDispatch;
30
39
  /** Already filtered by the active capabilities. */
31
40
  toolList: ToolHandler[];
@@ -60,7 +69,7 @@ export type StrategyEvent = {
60
69
  result: ToolResult;
61
70
  } | {
62
71
  kind: 'turn_complete';
63
- usage: RawUsage;
72
+ usage: ModelUsage;
64
73
  details: TurnDetails;
65
74
  } | {
66
75
  kind: 'error';
@@ -73,4 +82,52 @@ export type StrategyEvent = {
73
82
  name: string;
74
83
  data?: unknown;
75
84
  };
85
+ /**
86
+ * Opt-in critique-and-retry pass after a candidate final-answer turn.
87
+ *
88
+ * When `enabled === true`, the ReAct loop runs as usual, but instead of
89
+ * returning immediately on a turn that produced no tool calls the
90
+ * strategy issues a second chat call asking the model to evaluate its
91
+ * own last response against the prior tool results visible in the
92
+ * conversation. The evaluation returns a JSON verdict of the shape
93
+ * `{ "ok": boolean, "feedback"?: string }`. When the verdict is `ok`
94
+ * the original answer stands. When the verdict flags problems and the
95
+ * retry budget has not been exhausted, the strategy injects the
96
+ * feedback as a synthetic user message and loops back into the next
97
+ * ReAct iteration. When the retry budget is exhausted the strategy
98
+ * returns the most recent final-answer turn as-is — reflexion never
99
+ * blocks completion.
100
+ *
101
+ * A malformed verdict (non-JSON critique text, or JSON missing the
102
+ * `ok` field) is treated as `{ ok: true }`: fail-open, never block on a
103
+ * critique the strategy could not parse.
104
+ *
105
+ * The critique runs through the same `ModelClient` as the main loop; the
106
+ * trace emits an additional `llm_request` for the critique call with a
107
+ * `requestId` suffixed `#critique`, so trace consumers can distinguish
108
+ * critique requests from main-loop requests. The strategy emits a
109
+ * `custom` `StrategyEvent` named `'reflexion_critique'` with a
110
+ * `{ verdict, text, feedback? }` payload at every critique decision.
111
+ *
112
+ * Defaults: `maxRetries: 1`. When `enabled === false` (or the option
113
+ * is absent) the strategy's behavior is byte-for-byte identical to the
114
+ * pre-reflexion loop.
115
+ */
116
+ export interface ReflexionConfig {
117
+ /** Opt-in switch. */
118
+ enabled: boolean;
119
+ /**
120
+ * Maximum retries after the critique flags problems. Defaults to 1.
121
+ * Setting to 0 disables retries entirely (the critique runs and its
122
+ * verdict is emitted, but no retry is attempted on `ok: false`).
123
+ */
124
+ maxRetries?: number;
125
+ /**
126
+ * System prompt used for the critique call. Defaults to a neutral
127
+ * prompt that asks the model to evaluate consistency with prior
128
+ * tool results and reply with `{"ok": boolean, "feedback"?: string}`
129
+ * JSON. Override when a skill needs a tighter verifier rubric.
130
+ */
131
+ critiqueSystemPrompt?: string;
132
+ }
76
133
  //# sourceMappingURL=strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../src/types/strategy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;CACjF;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,mDAAmD;IACnD,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,6EAA6E;IAC7E,WAAW,IAAI,WAAW,CAAC;IAC3B,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAC;IACrB;;sEAEkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;sEAEkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAClF;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACpC;4DAC4D;GAC1D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../src/types/strategy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;CACjF;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB,GAAG,EAAE,WAAW,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,mDAAmD;IACnD,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,6EAA6E;IAC7E,WAAW,IAAI,WAAW,CAAC;IAC3B,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAC;IACrB;;sEAEkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;sEAEkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAClF;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACpC;4DAC4D;GAC1D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,WAAW,eAAe;IAC9B,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B"}
@@ -17,6 +17,24 @@ export interface ToolHandler<A = unknown, D = unknown> {
17
17
  parameters: JsonSchema;
18
18
  /** Capability gate — handler is excluded from `list()` when this returns false. */
19
19
  available?(capabilities: Capabilities): boolean;
20
+ /**
21
+ * Opt-in: the dispatcher is allowed to run this tool concurrently with
22
+ * other `parallelSafe` tools issued in the same turn. Absent or `false`
23
+ * means the conservative default — the dispatcher treats it as not safe
24
+ * to parallelize. Read this field via {@link isParallelSafe} so the
25
+ * default is applied uniformly. Pure-tool dispatchers (parallel
26
+ * scheduling) consume this; tag-only branches do not change runtime
27
+ * behavior.
28
+ */
29
+ parallelSafe?: boolean;
30
+ /**
31
+ * Opt-in: calling this tool with the same arguments against the same
32
+ * workspace state always produces the same result, so a content-addressed
33
+ * cache may serve repeat calls. Absent or `false` means the conservative
34
+ * default — the dispatch layer must execute the handler every call. Read
35
+ * this field via {@link isPure} so the default is applied uniformly.
36
+ */
37
+ pure?: boolean;
20
38
  execute(args: A, ctx: ToolContext): Promise<ToolResult<D>>;
21
39
  }
22
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"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"}
@@ -16,11 +16,13 @@
16
16
  * one — incur zero cost.
17
17
  *
18
18
  * Phase 1 captures `llm_request` only (the priority the playground
19
- * needs to ship a prompt visualizer). `llm_response` shape is
20
- * defined here so consumers can write against the full union from
21
- * day one; emit-site wiring lands in Phase 2.
19
+ * needs to ship a prompt visualizer). `llm_response` and
20
+ * `turn_dispatch_complete` complete the per-iteration wall-clock
21
+ * triple request-dispatched, response-completed, tool-dispatch-
22
+ * completed — that the eval harness uses to split language-model
23
+ * time from tool-dispatch time.
22
24
  */
23
- import type { NormalizedMessage } from './chat.js';
25
+ import type { ModelMessage } from './llm.js';
24
26
  /**
25
27
  * Wire-level snapshot of a single LLM request as it leaves the
26
28
  * strategy. Captured exactly once per ReAct iteration — N times per
@@ -36,7 +38,12 @@ export interface LlmRequestTrace {
36
38
  turnId: string;
37
39
  /** 0-indexed ReAct iteration within this turn. */
38
40
  iteration: number;
39
- /** Wall-clock ms at the moment the request was about to dispatch. */
41
+ /** Wall-clock ms captured immediately before the strategy hands
42
+ * the request to `ModelClient.chat()`. Pair with
43
+ * `LlmResponseTrace.ts` (response completed) and
44
+ * `TurnDispatchCompleteTrace.ts` (tool dispatch completed) to
45
+ * derive the language-model vs tool-dispatch wall-clock split for
46
+ * this iteration. */
40
47
  ts: number;
41
48
  /** The system-prompt string the strategy received from
42
49
  * `StrategyRunInput.systemPrompt`. Captured verbatim. */
@@ -45,7 +52,7 @@ export interface LlmRequestTrace {
45
52
  * the synthesized leading system message, the prior history, the
46
53
  * current user prompt, and any assistant+tool entries the ReAct
47
54
  * loop appended this turn. */
48
- messages: NormalizedMessage[];
55
+ messages: ModelMessage[];
49
56
  /** Tool declarations as filtered + shaped by the strategy. The
50
57
  * `parameters` value is captured opaquely — providers normalize
51
58
  * it (Gemini sanitizes; OpenRouter is permissive), so the trace
@@ -61,10 +68,11 @@ export interface LlmRequestTrace {
61
68
  };
62
69
  }
63
70
  /**
64
- * Tool-decl row as the agent loop produced it pre-provider. Mirrors
65
- * the `toolDecls` shape strategy.ts builds when constructing the
66
- * `ChatRequest`. Not coupled to the in-process `ToolHandler` type
67
- * the trace is a wire snapshot, not a live handle.
71
+ * Tool-decl row as the agent loop produced it pre-provider. The
72
+ * agent loop builds nested `ToolSpec`s for the `ModelRequest`; this
73
+ * flat view is the canonical pre-provider snapshot the trace exposes.
74
+ * Not coupled to the in-process `ToolHandler` type the trace is a
75
+ * wire snapshot, not a live handle.
68
76
  */
69
77
  export interface ToolDeclarationView {
70
78
  name: string;
@@ -72,15 +80,22 @@ export interface ToolDeclarationView {
72
80
  parameters: unknown;
73
81
  }
74
82
  /**
75
- * Response-side snapshot. Defined now so consumers can switch on
76
- * `TraceEvent.kind` and handle the full union from the start. The
77
- * emit-site in `strategy.ts` lands in Phase 2 strategies are free
78
- * to emit it earlier when the data is available.
83
+ * Response-side snapshot. Emitted once per ReAct iteration, paired
84
+ * one-to-one with `LlmRequestTrace` via `requestId`. Captures the
85
+ * full assistant output and the timestamp at which the chat()
86
+ * iterator drained `ts - LlmRequestTrace.ts` is the iteration's
87
+ * language-model wall-clock segment.
79
88
  */
80
89
  export interface LlmResponseTrace {
81
90
  /** Same id as the matching `LlmRequestTrace.requestId`. */
82
91
  requestId: string;
83
- /** Wall-clock ms when the chat() iterator completed. */
92
+ /** Wall-clock ms captured immediately after the `chat()` iterator
93
+ * has drained for this iteration (the `usage` event arrives just
94
+ * before the iterable returns, or `error` on a streaming failure).
95
+ * Not
96
+ * emitted on mid-stream error — callers should treat a missing
97
+ * `llm_response` as "language-model time unknown for this
98
+ * iteration." */
84
99
  ts: number;
85
100
  /** Full assistant text emitted this iteration. */
86
101
  text: string;
@@ -102,12 +117,49 @@ export interface LlmResponseTrace {
102
117
  cachedTokens?: number;
103
118
  };
104
119
  }
120
+ /**
121
+ * End-of-iteration tool-dispatch marker. Emitted once per ReAct
122
+ * iteration that actually ran tool calls, immediately after the
123
+ * per-turn dispatch loop drained. Paired one-to-one with
124
+ * `LlmResponseTrace` via `requestId`. NOT emitted for the final
125
+ * assistant turn (no tool calls → no dispatch segment to close).
126
+ *
127
+ * `ts - LlmResponseTrace.ts` is the iteration's tool-dispatch
128
+ * wall-clock segment; `ts - LlmRequestTrace.ts` is the iteration's
129
+ * total wall-clock from request dispatch through tool-result append.
130
+ *
131
+ * Only the aggregate is captured. Per-tool wall-clock can be added
132
+ * later — the existing `tool_call`/`tool_result` events on the
133
+ * strategy event stream are the right place for that, not the
134
+ * trace.
135
+ */
136
+ export interface TurnDispatchCompleteTrace {
137
+ /** Same id as the matching `LlmRequestTrace.requestId`. */
138
+ requestId: string;
139
+ /** Mirror of `LlmRequestTrace.turnId`, carried for grouping
140
+ * consumers that key by turn rather than by iteration. */
141
+ turnId: string;
142
+ /** 0-indexed ReAct iteration within the turn. Mirrors
143
+ * `LlmRequestTrace.iteration`. */
144
+ iteration: number;
145
+ /** Wall-clock ms captured immediately after the last tool result
146
+ * for this iteration was appended to the messages array, before
147
+ * the loop steps to the next iteration. */
148
+ ts: number;
149
+ /** Number of tool calls executed in this iteration. Always >= 1
150
+ * in practice (an iteration with zero tool calls does not emit
151
+ * this event). */
152
+ toolCallCount: number;
153
+ }
105
154
  export type TraceEvent = {
106
155
  kind: 'llm_request';
107
156
  data: LlmRequestTrace;
108
157
  } | {
109
158
  kind: 'llm_response';
110
159
  data: LlmResponseTrace;
160
+ } | {
161
+ kind: 'turn_dispatch_complete';
162
+ data: TurnDispatchCompleteTrace;
111
163
  };
112
164
  /**
113
165
  * Pluggable trace sink. Hosts implement `emit()` to push events to a
@@ -1 +1 @@
1
- {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/types/trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;+CAE2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,EAAE,EAAE,MAAM,CAAC;IACX;8DAC0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB;;;mCAG+B;IAC/B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B;;;iDAG6C;IAC7C,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B;;;oBAGgB;IAChB,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,CAAC;CAC7C;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb;gCAC4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,SAAS,EAAE;QACT,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,OAAO,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,EAAE,CAAC;IACJ;kDAC8C;IAC9C,KAAK,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/E;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAErD;;;;;;;;;GASG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B"}
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/types/trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;+CAE2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;0BAKsB;IACtB,EAAE,EAAE,MAAM,CAAC;IACX;8DAC0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB;;;mCAG+B;IAC/B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB;;;iDAG6C;IAC7C,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B;;;oBAGgB;IAChB,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,CAAC;CAC7C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;sBAMkB;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb;gCAC4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,SAAS,EAAE;QACT,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,OAAO,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,EAAE,CAAC;IACJ;kDAC8C;IAC9C,KAAK,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/E;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,yBAAyB;IACxC,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB;+DAC2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf;uCACmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB;;gDAE4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX;;uBAEmB;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,IAAI,EAAE,yBAAyB,CAAA;CAAE,CAAC;AAExE;;;;;;;;;GASG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B"}
@@ -16,9 +16,11 @@
16
16
  * one — incur zero cost.
17
17
  *
18
18
  * Phase 1 captures `llm_request` only (the priority the playground
19
- * needs to ship a prompt visualizer). `llm_response` shape is
20
- * defined here so consumers can write against the full union from
21
- * day one; emit-site wiring lands in Phase 2.
19
+ * needs to ship a prompt visualizer). `llm_response` and
20
+ * `turn_dispatch_complete` complete the per-iteration wall-clock
21
+ * triple request-dispatched, response-completed, tool-dispatch-
22
+ * completed — that the eval harness uses to split language-model
23
+ * time from tool-dispatch time.
22
24
  */
23
25
  export {};
24
26
  //# sourceMappingURL=trace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/types/trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
1
+ {"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/types/trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@inbrowser/agent",
3
- "version": "0.1.0",
4
- "description": "Agent runtime + CLI. Library exports AgentSession, AgentStrategy, ToolRegistry, LlmClient, MetricsCollector, SandboxObserver. Ships an `agent` binary with NDJSON output, --json stdin, --dry-run, schema introspection, and inverse-mode MCP serve. Domain-agnostic — hosts wire their own AgentDefinitions.",
3
+ "version": "0.3.0",
4
+ "description": "Agent runtime + CLI. Library exports AgentSession, AgentStrategy, ToolRegistry, ModelClient, MetricsCollector, SandboxObserver. Ships an `agent` binary with NDJSON output, --json stdin, --dry-run, schema introspection, and inverse-mode MCP serve. Domain-agnostic — hosts wire their own AgentDefinitions.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -29,6 +29,7 @@
29
29
  "typecheck": "tsc -p tsconfig.json --noEmit"
30
30
  },
31
31
  "dependencies": {
32
+ "@inbrowser/model": "workspace:*",
32
33
  "@modelcontextprotocol/sdk": "^1.0.0",
33
34
  "@opentui/core": "^0.1.0",
34
35
  "@opentui/react": "^0.1.0",