@e2edev/e2e 0.2.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 (168) hide show
  1. package/dist/agent/act.d.ts.map +1 -1
  2. package/dist/agent/act.js +89 -28
  3. package/dist/agent/act.js.map +1 -1
  4. package/dist/agent/actions.d.ts +15 -0
  5. package/dist/agent/actions.d.ts.map +1 -1
  6. package/dist/agent/actions.js +59 -1
  7. package/dist/agent/actions.js.map +1 -1
  8. package/dist/agent/default-agent.d.ts +34 -4
  9. package/dist/agent/default-agent.d.ts.map +1 -1
  10. package/dist/agent/default-agent.js +18 -127
  11. package/dist/agent/default-agent.js.map +1 -1
  12. package/dist/agent/derived.d.ts +17 -0
  13. package/dist/agent/derived.d.ts.map +1 -0
  14. package/dist/agent/derived.js +45 -0
  15. package/dist/agent/derived.js.map +1 -0
  16. package/dist/agent/executor.d.ts +116 -2
  17. package/dist/agent/executor.d.ts.map +1 -1
  18. package/dist/agent/executor.js.map +1 -1
  19. package/dist/agent/index.js +1 -1
  20. package/dist/agent/index.js.map +1 -1
  21. package/dist/agent/invocation.d.ts +3 -2
  22. package/dist/agent/invocation.d.ts.map +1 -1
  23. package/dist/agent/invocation.js +12 -12
  24. package/dist/agent/invocation.js.map +1 -1
  25. package/dist/agent/ledger.d.ts +14 -4
  26. package/dist/agent/ledger.d.ts.map +1 -1
  27. package/dist/agent/ledger.js +26 -5
  28. package/dist/agent/ledger.js.map +1 -1
  29. package/dist/agent/loop-guards.d.ts +14 -1
  30. package/dist/agent/loop-guards.d.ts.map +1 -1
  31. package/dist/agent/loop-guards.js +11 -8
  32. package/dist/agent/loop-guards.js.map +1 -1
  33. package/dist/agent/observation.d.ts +26 -7
  34. package/dist/agent/observation.d.ts.map +1 -1
  35. package/dist/agent/observation.js +51 -5
  36. package/dist/agent/observation.js.map +1 -1
  37. package/dist/agent/primitives.d.ts +86 -0
  38. package/dist/agent/primitives.d.ts.map +1 -0
  39. package/dist/agent/primitives.js +255 -0
  40. package/dist/agent/primitives.js.map +1 -0
  41. package/dist/agent/prompts.d.ts.map +1 -1
  42. package/dist/agent/prompts.js.map +1 -1
  43. package/dist/agent/public.d.ts +6 -3
  44. package/dist/agent/public.d.ts.map +1 -1
  45. package/dist/agent/public.js +4 -2
  46. package/dist/agent/public.js.map +1 -1
  47. package/dist/agent/replay.d.ts +1 -1
  48. package/dist/agent/replay.d.ts.map +1 -1
  49. package/dist/agent/replay.js +19 -2
  50. package/dist/agent/replay.js.map +1 -1
  51. package/dist/agent/step-cache.d.ts +3 -0
  52. package/dist/agent/step-cache.d.ts.map +1 -1
  53. package/dist/agent/step-cache.js +35 -3
  54. package/dist/agent/step-cache.js.map +1 -1
  55. package/dist/agent/tool-loop.d.ts +59 -5
  56. package/dist/agent/tool-loop.d.ts.map +1 -1
  57. package/dist/agent/tool-loop.js +77 -105
  58. package/dist/agent/tool-loop.js.map +1 -1
  59. package/dist/backend/index.d.ts +50 -1
  60. package/dist/backend/index.d.ts.map +1 -1
  61. package/dist/backend/index.js +2 -0
  62. package/dist/backend/index.js.map +1 -1
  63. package/dist/cache/recorder.d.ts +2 -0
  64. package/dist/cache/recorder.d.ts.map +1 -1
  65. package/dist/cache/recorder.js +4 -1
  66. package/dist/cache/recorder.js.map +1 -1
  67. package/dist/cache/relocate.d.ts.map +1 -1
  68. package/dist/cache/relocate.js +11 -2
  69. package/dist/cache/relocate.js.map +1 -1
  70. package/dist/cache/trace.d.ts +11 -0
  71. package/dist/cache/trace.d.ts.map +1 -1
  72. package/dist/cache/trace.js +9 -0
  73. package/dist/cache/trace.js.map +1 -1
  74. package/dist/cli/index.d.ts.map +1 -1
  75. package/dist/cli/index.js +28 -18
  76. package/dist/cli/index.js.map +1 -1
  77. package/dist/cli/init.d.ts.map +1 -1
  78. package/dist/cli/init.js +32 -9
  79. package/dist/cli/init.js.map +1 -1
  80. package/dist/cli/signals.d.ts +23 -0
  81. package/dist/cli/signals.d.ts.map +1 -0
  82. package/dist/cli/signals.js +42 -0
  83. package/dist/cli/signals.js.map +1 -0
  84. package/dist/collect/registry.d.ts +14 -4
  85. package/dist/collect/registry.d.ts.map +1 -1
  86. package/dist/collect/registry.js +10 -10
  87. package/dist/collect/registry.js.map +1 -1
  88. package/dist/config/resolve.d.ts +0 -1
  89. package/dist/config/resolve.d.ts.map +1 -1
  90. package/dist/config/resolve.js +4 -14
  91. package/dist/config/resolve.js.map +1 -1
  92. package/dist/index.d.ts +3 -2
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +1 -1
  95. package/dist/index.js.map +1 -1
  96. package/dist/internal/errors.d.ts +9 -0
  97. package/dist/internal/errors.d.ts.map +1 -1
  98. package/dist/internal/errors.js +15 -0
  99. package/dist/internal/errors.js.map +1 -1
  100. package/dist/internal/time.d.ts +5 -0
  101. package/dist/internal/time.d.ts.map +1 -1
  102. package/dist/internal/time.js +22 -0
  103. package/dist/internal/time.js.map +1 -1
  104. package/dist/internal/urls.d.ts +2 -1
  105. package/dist/internal/urls.d.ts.map +1 -1
  106. package/dist/internal/urls.js +22 -2
  107. package/dist/internal/urls.js.map +1 -1
  108. package/dist/locator/engine.d.ts +5 -3
  109. package/dist/locator/engine.d.ts.map +1 -1
  110. package/dist/locator/engine.js +7 -6
  111. package/dist/locator/engine.js.map +1 -1
  112. package/dist/report/build.d.ts +0 -1
  113. package/dist/report/build.d.ts.map +1 -1
  114. package/dist/report/build.js +0 -1
  115. package/dist/report/build.js.map +1 -1
  116. package/dist/report/list.d.ts +2 -0
  117. package/dist/report/list.d.ts.map +1 -1
  118. package/dist/report/list.js +12 -0
  119. package/dist/report/list.js.map +1 -1
  120. package/dist/report/live-status.d.ts.map +1 -1
  121. package/dist/report/live-status.js +2 -1
  122. package/dist/report/live-status.js.map +1 -1
  123. package/dist/run/budget.d.ts +25 -0
  124. package/dist/run/budget.d.ts.map +1 -0
  125. package/dist/run/budget.js +38 -0
  126. package/dist/run/budget.js.map +1 -0
  127. package/dist/run/events.d.ts +13 -0
  128. package/dist/run/events.d.ts.map +1 -1
  129. package/dist/run/events.js.map +1 -1
  130. package/dist/run/execute.d.ts +8 -0
  131. package/dist/run/execute.d.ts.map +1 -1
  132. package/dist/run/execute.js +53 -8
  133. package/dist/run/execute.js.map +1 -1
  134. package/dist/run/fixtures.d.ts +6 -3
  135. package/dist/run/fixtures.d.ts.map +1 -1
  136. package/dist/run/fixtures.js +7 -5
  137. package/dist/run/fixtures.js.map +1 -1
  138. package/dist/run/in-process.d.ts.map +1 -1
  139. package/dist/run/in-process.js +11 -2
  140. package/dist/run/in-process.js.map +1 -1
  141. package/dist/run/realm.d.ts +43 -8
  142. package/dist/run/realm.d.ts.map +1 -1
  143. package/dist/run/realm.js +67 -24
  144. package/dist/run/realm.js.map +1 -1
  145. package/dist/run/runner.d.ts +8 -0
  146. package/dist/run/runner.d.ts.map +1 -1
  147. package/dist/run/runner.js +93 -25
  148. package/dist/run/runner.js.map +1 -1
  149. package/dist/run/scheduler.d.ts +8 -0
  150. package/dist/run/scheduler.d.ts.map +1 -1
  151. package/dist/run/scheduler.js +37 -3
  152. package/dist/run/scheduler.js.map +1 -1
  153. package/dist/run/serial.d.ts +2 -0
  154. package/dist/run/serial.d.ts.map +1 -1
  155. package/dist/run/serial.js +10 -0
  156. package/dist/run/serial.js.map +1 -1
  157. package/dist/run/worker/entry.js +17 -2
  158. package/dist/run/worker/entry.js.map +1 -1
  159. package/dist/run/worker/protocol.d.ts +9 -1
  160. package/dist/run/worker/protocol.d.ts.map +1 -1
  161. package/dist/run/worker/protocol.js.map +1 -1
  162. package/dist/run/worker/session.d.ts +12 -0
  163. package/dist/run/worker/session.d.ts.map +1 -1
  164. package/dist/run/worker/session.js +23 -1
  165. package/dist/run/worker/session.js.map +1 -1
  166. package/dist/types.d.ts +0 -1
  167. package/dist/types.d.ts.map +1 -1
  168. package/package.json +2 -2
@@ -9,9 +9,9 @@ import { Deadline } from '../internal/time.js';
9
9
  import { agentTrace, observationTrace } from '../internal/trace.js';
10
10
  import { AgentError } from './error.js';
11
11
  import { boundedOperation, checkStepClock, instrumentPhase, recordPolicyEvent, retryingObserve, } from './phases.js';
12
- import { serializeLedger } from './ledger.js';
12
+ import { projectPriorSteps, serializeLedger } from './ledger.js';
13
13
  import { imageTokenUpperBound, ModelOutputInvalidError, tokenUpperBound, } from './model/adapter.js';
14
- import { prepareObservation } from './observation.js';
14
+ import { pixelsForModel, prepareObservation } from './observation.js';
15
15
  import { POLICY_VERSION, buildPrompt, buildSystem } from './prompts.js';
16
16
  const MAX_OUTPUT_TOKENS = 2048;
17
17
  /**
@@ -78,7 +78,7 @@ export class Invocation {
78
78
  this.pixelTier = options.vision === true || options.vision === 'only';
79
79
  this.system = buildSystem(options.task, runtime.agentContext);
80
80
  this.systemBytes = tokenUpperBound(this.system);
81
- this.ledger = serializeLedger(runtime.priorSteps(), runtime.config.limits.maxLedgerBytes);
81
+ this.ledger = serializeLedger(projectPriorSteps(runtime.priorSteps()), runtime.config.limits.maxLedgerBytes);
82
82
  agentTrace(() => `${options.api} ${JSON.stringify(options.label ?? '')} start ` +
83
83
  `(timeout ${options.timeoutMs}ms, budget ${options.maxModelCalls} calls, ledger ${this.ledger.bytes}B)`);
84
84
  }
@@ -135,7 +135,7 @@ export class Invocation {
135
135
  observe: (operation) => this.session.observe(operation, { pixels }),
136
136
  operation: () => this.operation(),
137
137
  guard: (cause) => this.checkDeadline(cause),
138
- signal: this.runtime.signal,
138
+ signal: this.runtime.engine.signal,
139
139
  api: this.options.api,
140
140
  });
141
141
  }
@@ -155,13 +155,13 @@ export class Invocation {
155
155
  }
156
156
  /** Records whether requested pixels actually became model input. */
157
157
  recordPixels(observation) {
158
- const pixels = observation.pixels;
159
- if (pixels === undefined) {
160
- this.loseVision(observation.pixelsWithheld ?? 'UNSUPPORTED_CAPABILITY');
158
+ const outcome = pixelsForModel(observation, this.runtime.taint.value);
159
+ if ('withheld' in outcome) {
160
+ this.loseVision(outcome.withheld);
161
161
  return;
162
162
  }
163
163
  this.visionInput = true;
164
- this.metrics.pixelBytes = Math.max(this.metrics.pixelBytes ?? 0, pixels.bytes);
164
+ this.metrics.pixelBytes = Math.max(this.metrics.pixelBytes ?? 0, outcome.pixels.data.byteLength);
165
165
  this.recordPolicy('vision.pixels', 'allowed');
166
166
  }
167
167
  /**
@@ -234,7 +234,7 @@ export class Invocation {
234
234
  validate: request.validate,
235
235
  maxOutputTokens: MAX_OUTPUT_TOKENS,
236
236
  maxInputTokens: this.runtime.config.limits.maxModelTokensPerCall,
237
- signal: this.runtime.signal,
237
+ signal: this.runtime.engine.signal,
238
238
  timeoutMs: Math.max(1, this.deadline.remaining()),
239
239
  }), (generated) => ({
240
240
  count: generated.usage.inputTokens + generated.usage.outputTokens,
@@ -295,7 +295,7 @@ export class Invocation {
295
295
  /** Fails when the invocation deadline has elapsed (see checkStepClock). */
296
296
  checkDeadline(cause) {
297
297
  checkStepClock({
298
- signal: this.runtime.signal,
298
+ signal: this.runtime.engine.signal,
299
299
  deadline: this.deadline,
300
300
  api: this.options.api,
301
301
  timeoutMs: this.options.timeoutMs,
@@ -365,8 +365,8 @@ export class Invocation {
365
365
  /** Trace fragment describing what pixel evidence an observation carried. */
366
366
  function describePixels(observation) {
367
367
  if (observation.pixels !== undefined) {
368
- const { width, height, bytes, maskedRegionCount } = observation.pixels;
369
- return `, pixels ${width}x${height} ${bytes}B, ${maskedRegionCount} masked`;
368
+ const { width, height, data, maskedRegionCount } = observation.pixels;
369
+ return `, pixels ${width}x${height} ${data.byteLength}B, ${maskedRegionCount} masked`;
370
370
  }
371
371
  return observation.pixelsWithheld === undefined
372
372
  ? ''
@@ -1 +1 @@
1
- {"version":3,"file":"invocation.js","sourceRoot":"","sources":["../../src/agent/invocation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAapE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,eAAe,GAEhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAsB,MAAM,aAAa,CAAC;AAClE,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,GAGhB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,kBAAkB,EAAyB,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AAsD1F,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B;;;GAGG;AACH,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAElC;;;;;;;;;;;;;;GAcG;AACH,MAAM,aAAa,GAAG,oBAAoB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAE5E,gFAAgF;AAChF,MAAM,OAAO,UAAU;IAsCF,OAAO;IACP,OAAO;IAtCjB,QAAQ,CAAW;IAEX,OAAO,GAAgB;QACtC,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,CAAC;QACd,gBAAgB,EAAE,CAAC;QACnB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;KACf,CAAC;IAEF;;;;OAIG;IACc,MAAM,CAAS;IACf,MAAM,CAAgB;IAE/B,WAAW,GAAG,CAAC,CAAC;IAChB,YAAY,GAAG,CAAC,CAAC;IACjB,iBAAiB,GAAG,CAAC,CAAC;IACtB,UAAU,GAAuC,UAAU,CAAC;IAC5D,gBAAgB,CAAqB;IACrC,mBAAmB,CAAqB;IACxC,WAAW,CAAqB;IAChC,WAAW,GAAG,KAAK,CAAC;IACpB,cAAc,CAAgC;IACtD;;;;OAIG;IACM,SAAS,CAAU;IAC5B,gEAAgE;IAC/C,WAAW,CAAS;IAErC,YACmB,OAAqB,EACrB,OAA0B;uBAD1B,OAAO;uBACP,OAAO;QAExB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC;QACtE,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC1F,UAAU,CACR,GAAG,EAAE,CACH,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS;YAC9D,YAAY,OAAO,CAAC,SAAS,cAAc,OAAO,CAAC,aAAa,kBAAkB,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAC1G,CAAC;IACJ,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;OAMG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC;IACxC,CAAC;IAED,yEAAyE;IACjE,UAAU,CAChB,IAA4B,EAC5B,IAA0B,EAC1B,MAA6C;QAE7C,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzF,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CACvC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAE,EAC/C,KAAK,IAAI,EAAE;YACT,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAClD,OAAO,kBAAkB,CAAC,GAAG,EAAE;gBAC7B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EAAE;gBACtC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe;aACrD,CAAC,CAAC;QACL,CAAC,EACD,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CACtE,CAAC;QACF,yEAAyE;QACzE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,QAAQ,CAAC;QAChD,IAAI,MAAM;YAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAC3C,gBAAgB,CACd,GAAG,EAAE,CACH,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC,QAAQ,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,WAAW,WAAW,CAAC,KAAK,IAChG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAC1C,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,EACnC,WAAW,CAAC,IAAI,CACjB,CAAC;QACF,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,0EAA0E;IAClE,kBAAkB,CAAC,MAAe;QACxC,OAAO,eAAe,CAAC;YACrB,OAAO,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC;YACnE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;YACjC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAC3C,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;SACtB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,eAAe;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAClC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oEAAoE;IAC5D,YAAY,CAAC,WAA6B;QAChD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAClC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,IAAI,wBAAwB,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/E,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;OAMG;IACK,UAAU,CAAC,IAAuB;QACxC,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO;QAC3C,MAAM,IAAI,UAAU,CAClB,eAAe,EACf,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,iEAAiE;YAClF,gDAAgD,IAAI,iCAAiC;YACrF,uBAAuB,CAC1B,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,qBAAqB;QAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,yEAAyE;QACzE,wEAAwE;QACxE,yEAAyE;QACzE,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC;QAC/D,MAAM,QAAQ,GACZ,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK;YACjB,mBAAmB;YACnB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,GAAG,QAAQ,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;IACxE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAQ,OAMhB;QACC,IAAI,MAAM,GAA0B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAC7C,SAAS,CAAC;YACR,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,WAAW,CAAC;gBACzB,GAAG,OAAO,CAAC,MAAM;gBACjB,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACxB,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;aAC5C,CAAC,CAAC;YACH,oEAAoE;YACpE,kEAAkE;YAClE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACrD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAClC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,EACjE,GAAG,EAAE,CACH,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;oBACpB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM;oBACN,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;oBAC3C,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,eAAe,EAAE,iBAAiB;oBAClC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB;oBAChE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;oBAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;iBAClD,CAAC,EACJ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACd,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,YAAY;iBAClE,CAAC,CACH,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/B,OAAO,MAAM,CAAC,KAAK,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IACE,KAAK,YAAY,uBAAuB;oBACxC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa;oBACpD,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EACxB,CAAC;oBACD,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC/C,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,kBAAkB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;oBAC3E,MAAM,GAAG;wBACP,KAAK,EAAE,KAAK,CAAC,WAAW;wBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;qBACvB,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,qBAAqB,CAAC,IAAY;QAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;YAC7B,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,SAAS,EAAE;YACtB,UAAU,EAAE,CAAC;YACb,MAAM,EAAE,QAAQ;YAChB,IAAI;YACJ,IAAI,EAAE,sBAAsB;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,oDAAoD;IACpD,YAAY,CAAC,IAAY,EAAE,QAA8B,EAAE,IAAa;QACtE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,kDAAkD;IAClD,UAAU,CAAC,IAAY,EAAE,KAAa;QACpC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;YAC7B,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,SAAS,EAAE;YACtB,UAAU,EAAE,CAAC;YACb,MAAM,EAAE,QAAQ;YAChB,IAAI;YACJ,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjG,CAAC;IAED,2EAA2E;IAC3E,aAAa,CAAC,KAAe;QAC3B,cAAc,CAAC;YACb,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;YACrB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,+EAA+E;IAC/E,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC1F,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,OAAiC;QACpC,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAChF,CAAC;IAED,4EAA4E;IAC5E,MAAM;QACJ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC;YACpC,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;YAC5B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,GAAG,CAAC,IAAI,CAAC,mBAAmB,KAAK,SAAS;gBACxC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE;gBACnD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtF,CAAC,CAAC;IACL,CAAC;IAEO,SAAS;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAC3C,OAAO;YACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,aAAa,EAAE,cAAc;YAC7B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YAC9B,eAAe,EAAE,IAAI,CAAC,UAAU;YAChC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,GAAG,CAAC,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5F,CAAC;IACJ,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1D,MAAM,IAAI,UAAU,CAClB,uBAAuB,EACvB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,uCAAuC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CACvF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEO,WAAW,CAAC,KAKnB;QACC,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAC/B,IAAI,CAAC,iBAAiB,EACtB,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,YAAY,CACvC,CAAC;QACF,IAAI,KAAK,CAAC,UAAU,KAAK,qBAAqB;YAAE,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC;QACxF,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC;QAChF,CAAC;IACH,CAAC;CACF;AAED,4EAA4E;AAC5E,SAAS,cAAc,CAAC,WAA6B;IACnD,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC;QACvE,OAAO,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,MAAM,iBAAiB,SAAS,CAAC;IAC9E,CAAC;IACD,OAAO,WAAW,CAAC,cAAc,KAAK,SAAS;QAC7C,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,sBAAsB,WAAW,CAAC,cAAc,GAAG,CAAC;AAC1D,CAAC;AAED,2EAA2E;AAC3E,SAAS,SAAS,CAAC,WAAyC;IAC1D,MAAM,MAAM,GAAG,WAAW,EAAE,MAAM,CAAC;IACnC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO;QACL;YACE,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"invocation.js","sourceRoot":"","sources":["../../src/agent/invocation.ts"],"names":[],"mappings":"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"}
@@ -8,17 +8,27 @@
8
8
  * Entries are untrusted quoted evidence and never carry policy authority.
9
9
  */
10
10
  import type { StepRecord } from '../run/steps.ts';
11
+ import type { ExecutorPriorStep } from './executor.ts';
11
12
  /** Maximum size of one handoff, before ledger-wide compaction. */
12
13
  export declare const MAX_HANDOFF_BYTES = 700;
14
+ /**
15
+ * Projects recorded steps onto the executor-facing shape: the fields a brain
16
+ * builds history from, sanitized here — the one trust boundary where step
17
+ * records become model input — and nothing that carries runner internals.
18
+ */
19
+ export declare function projectPriorSteps(records: readonly StepRecord[]): ExecutorPriorStep[];
20
+ /** The fields one ledger entry is built from. */
21
+ type LedgerEntry = Pick<ExecutorPriorStep, 'api' | 'label' | 'status' | 'explanation'>;
13
22
  export interface LedgerContext {
14
23
  readonly text: string;
15
24
  readonly bytes: number;
16
25
  }
17
26
  /**
18
- * Serializes completed steps as prompt context: newest entries first until the
27
+ * Serializes prior steps as prompt context: newest entries first until the
19
28
  * byte budget is reached, then emitted chronologically with the dropped count
20
- * prepended. Labels and handoffs are sanitized and bounded here, at the trust
21
- * boundary where they become model input.
29
+ * prepended. Takes the already-sanitized `ExecutorPriorStep` records and
30
+ * bounds each label and handoff to the ledger's own line budget.
22
31
  */
23
- export declare function serializeLedger(steps: readonly StepRecord[], maxBytes: number): LedgerContext;
32
+ export declare function serializeLedger(steps: readonly LedgerEntry[], maxBytes: number): LedgerContext;
33
+ export {};
24
34
  //# sourceMappingURL=ledger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../src/agent/ledger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAIrC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAiB7F"}
1
+ {"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../src/agent/ledger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAOrC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,iBAAiB,EAAE,CAUrF;AAMD,iDAAiD;AACjD,KAAK,WAAW,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,CAAC,CAAC;AAEvF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAiB9F"}
@@ -11,11 +11,32 @@ import { sanitizeText, truncateUtf8 } from '../internal/errors.js';
11
11
  /** Maximum size of one handoff, before ledger-wide compaction. */
12
12
  export const MAX_HANDOFF_BYTES = 700;
13
13
  const MAX_LABEL_BYTES = 256;
14
+ /** Bytes one prior-step field may occupy: sanitized quoted evidence, never policy. */
15
+ const MAX_PRIOR_STEP_FIELD_BYTES = 8_192;
14
16
  /**
15
- * Serializes completed steps as prompt context: newest entries first until the
17
+ * Projects recorded steps onto the executor-facing shape: the fields a brain
18
+ * builds history from, sanitized here — the one trust boundary where step
19
+ * records become model input — and nothing that carries runner internals.
20
+ */
21
+ export function projectPriorSteps(records) {
22
+ return records.map((step) => ({
23
+ index: step.index,
24
+ kind: step.kind,
25
+ api: step.api,
26
+ label: boundedText(step.label),
27
+ status: step.status,
28
+ ...(step.explanation === undefined ? {} : { explanation: boundedText(step.explanation) }),
29
+ ...(step.cache === undefined ? {} : { cache: step.cache.mode }),
30
+ }));
31
+ }
32
+ function boundedText(text) {
33
+ return truncateUtf8(sanitizeText(text), MAX_PRIOR_STEP_FIELD_BYTES);
34
+ }
35
+ /**
36
+ * Serializes prior steps as prompt context: newest entries first until the
16
37
  * byte budget is reached, then emitted chronologically with the dropped count
17
- * prepended. Labels and handoffs are sanitized and bounded here, at the trust
18
- * boundary where they become model input.
38
+ * prepended. Takes the already-sanitized `ExecutorPriorStep` records and
39
+ * bounds each label and handoff to the ledger's own line budget.
19
40
  */
20
41
  export function serializeLedger(steps, maxBytes) {
21
42
  const encoder = new TextEncoder();
@@ -38,11 +59,11 @@ export function serializeLedger(steps, maxBytes) {
38
59
  return { text, bytes: encoder.encode(text).byteLength };
39
60
  }
40
61
  function formatEntry(step, position) {
41
- const label = truncateUtf8(sanitizeText(step.label), MAX_LABEL_BYTES);
62
+ const label = truncateUtf8(step.label, MAX_LABEL_BYTES);
42
63
  const head = `${position}. ${step.api} ${step.status}${label === '' ? '' : ` :: ${label}`}`;
43
64
  if (step.explanation === undefined)
44
65
  return head;
45
- const handoff = truncateUtf8(sanitizeText(step.explanation), MAX_HANDOFF_BYTES);
66
+ const handoff = truncateUtf8(step.explanation, MAX_HANDOFF_BYTES);
46
67
  return `${head}\n observed: ${handoff}`;
47
68
  }
48
69
  //# sourceMappingURL=ledger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/agent/ledger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGnE,kEAAkE;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC,MAAM,eAAe,GAAG,GAAG,CAAC;AAO5B;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAA4B,EAAE,QAAgB;IAC5E,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,OAAO,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC;QACpD,IAAI,KAAK,GAAG,IAAI,GAAG,QAAQ;YAAE,MAAM;QACnC,KAAK,IAAI,IAAI,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,KAAK,CAAC,OAAO,EAAE,CAAC;IAChB,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC;IAC1B,IAAI,OAAO,GAAG,CAAC;QAAE,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,2BAA2B,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,WAAW,CAAC,IAAgB,EAAE,QAAgB;IACrD,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,GAAG,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;IAC5F,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAChD,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAChF,OAAO,GAAG,IAAI,kBAAkB,OAAO,EAAE,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/agent/ledger.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,19 @@ export type LoopGuardVerdict = {
20
20
  readonly kind: 'warn' | 'stop';
21
21
  readonly reason: string;
22
22
  };
23
+ /**
24
+ * Guard thresholds. Identical-call (period 1) counts are consecutive
25
+ * repetitions of one call; cycle (period 2..4) counts are whole repetitions
26
+ * of the sequence. Each warns first, then forces the conclusion.
27
+ */
28
+ export interface LoopGuardThresholds {
29
+ readonly repeatWarn: number;
30
+ readonly repeatStop: number;
31
+ readonly cycleWarn: number;
32
+ readonly cycleStop: number;
33
+ }
34
+ /** The thresholds the built-in agent ships with. */
35
+ export declare const DEFAULT_LOOP_GUARD_THRESHOLDS: LoopGuardThresholds;
23
36
  /**
24
37
  * Extracts the tool-call identity sequence from a model transcript,
25
38
  * excluding the conclusion tool: concluding attempts are never "loops".
@@ -31,5 +44,5 @@ export declare function extractGuardCalls(messages: readonly ModelMessage[], con
31
44
  * on different targets never count as a repeat — only literally re-issuing
32
45
  * the same work does.
33
46
  */
34
- export declare function checkLoopGuards(calls: readonly GuardToolCall[]): LoopGuardVerdict;
47
+ export declare function checkLoopGuards(calls: readonly GuardToolCall[], thresholds?: LoopGuardThresholds): LoopGuardVerdict;
35
48
  //# sourceMappingURL=loop-guards.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loop-guards.d.ts","sourceRoot":"","sources":["../../src/agent/loop-guards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAEvC,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAahE;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,gBAAgB,EAAE,MAAM,GACvB,aAAa,EAAE,CAUjB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,gBAAgB,CAajF"}
1
+ {"version":3,"file":"loop-guards.d.ts","sourceRoot":"","sources":["../../src/agent/loop-guards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAEvC,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAKhE;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,oDAAoD;AACpD,eAAO,MAAM,6BAA6B,EAAE,mBAK3C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,gBAAgB,EAAE,MAAM,GACvB,aAAa,EAAE,CAUjB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,UAAU,GAAE,mBAAmD,GAC9D,gBAAgB,CAgBlB"}
@@ -10,12 +10,13 @@
10
10
  */
11
11
  /** Longest cycle period the detector considers. */
12
12
  const MAX_CYCLE_PERIOD = 4;
13
- /** Identical-call (period 1) thresholds: warn, then force the conclusion. */
14
- const REPEAT_WARN = 3;
15
- const REPEAT_STOP = 5;
16
- /** Cycle (period 2..4) thresholds, counted in whole repetitions. */
17
- const CYCLE_WARN = 2;
18
- const CYCLE_STOP = 3;
13
+ /** The thresholds the built-in agent ships with. */
14
+ export const DEFAULT_LOOP_GUARD_THRESHOLDS = {
15
+ repeatWarn: 3,
16
+ repeatStop: 5,
17
+ cycleWarn: 2,
18
+ cycleStop: 3,
19
+ };
19
20
  /**
20
21
  * Extracts the tool-call identity sequence from a model transcript,
21
22
  * excluding the conclusion tool: concluding attempts are never "loops".
@@ -39,11 +40,13 @@ export function extractGuardCalls(messages, concludeToolName) {
39
40
  * on different targets never count as a repeat — only literally re-issuing
40
41
  * the same work does.
41
42
  */
42
- export function checkLoopGuards(calls) {
43
+ export function checkLoopGuards(calls, thresholds = DEFAULT_LOOP_GUARD_THRESHOLDS) {
43
44
  let warning;
44
45
  for (let period = 1; period <= MAX_CYCLE_PERIOD; period += 1) {
45
46
  const repeats = trailingRepeats(calls, period);
46
- const [warnAt, stopAt] = period === 1 ? [REPEAT_WARN, REPEAT_STOP] : [CYCLE_WARN, CYCLE_STOP];
47
+ const [warnAt, stopAt] = period === 1
48
+ ? [thresholds.repeatWarn, thresholds.repeatStop]
49
+ : [thresholds.cycleWarn, thresholds.cycleStop];
47
50
  if (repeats >= stopAt) {
48
51
  return { kind: 'stop', reason: describe(calls, period, repeats) };
49
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loop-guards.js","sourceRoot":"","sources":["../../src/agent/loop-guards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop-guards.js","sourceRoot":"","sources":["../../src/agent/loop-guards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH,mDAAmD;AACnD,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAc3B,oDAAoD;AACpD,MAAM,CAAC,MAAM,6BAA6B,GAAwB;IAChE,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;CACb,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAiC,EACjC,gBAAwB;IAExB,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,SAAS;QAC9E,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB;gBAAE,SAAS;YAC9E,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,KAA+B,EAC/B,UAAU,GAAwB,6BAA6B;IAE/D,IAAI,OAAqC,CAAC;IAC1C,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpB,MAAM,KAAK,CAAC;YACV,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC;YAChD,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QACpE,CAAC;QACD,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/C,OAAO,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QACvE,CAAC;IACH,CAAC;IACD,OAAO,OAAO,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAED,kFAAkF;AAClF,SAAS,eAAe,CAAC,KAA+B,EAAE,MAAc;IACtE,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM;QAAE,OAAO,CAAC,CAAC;IACpC,4EAA4E;IAC5E,0EAA0E;IAC1E,IAAI,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC;QAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,CAAC,CAA4B,EAAE,CAA4B,EAAW,EAAE,CACnF,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;IACzF,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,MAAM,IAAI,MAAM,EAAE,CAAC;QAChF,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC/F,OAAO,GAAG,KAAK,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO;YAAE,MAAM;QACpB,OAAO,IAAI,CAAC,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6EAA6E;AAC7E,SAAS,eAAe,CAAC,KAA+B,EAAE,MAAc;IACtE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;QAClD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;YACzF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,KAA+B,EAAE,MAAc,EAAE,OAAe;IAChF,MAAM,KAAK,GAAG,KAAK;SAChB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;SAC5B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC5B,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,MAAM,KAAK,CAAC;QACjB,CAAC,CAAC,aAAa,KAAK,0CAA0C,OAAO,iBAAiB;QACtF,CAAC,CAAC,YAAY,MAAM,mBAAmB,KAAK,cAAc,OAAO,8BAA8B,CAAC;AACpG,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -1,18 +1,19 @@
1
1
  /** Observation capture, redaction, and model serialization (spec 09-drivers.md, 14-security.md). */
2
- import type { Observation, ObservationPixels, SemanticNode } from '../backend/surface.ts';
2
+ import type { Observation, SemanticNode } from '../backend/surface.ts';
3
+ import type { VisionDegradation } from '../run/steps.ts';
4
+ import type { ExecutorNode, ExecutorPixels } from './executor.ts';
3
5
  /** Why pixels the caller asked for are not part of this observation. */
4
6
  type PixelsWithheld = 'MASKING_UNPROVEN';
5
- /** Masked pixel evidence cleared for model input. */
6
- export interface AgentPixels extends ObservationPixels {
7
- readonly maskedRegionCount: number;
8
- readonly bytes: number;
9
- }
10
7
  export interface AgentObservation {
11
8
  readonly revision: string;
12
9
  /** Redacted, size-bounded serialization sent to the model. */
13
10
  readonly text: string;
14
11
  readonly bytes: number;
15
12
  readonly nodes: ReadonlyMap<string, SemanticNode>;
13
+ /** Parent id of every non-root node, for the container a target sits in. */
14
+ readonly parents: ReadonlyMap<string, string>;
15
+ /** The raw tree as the backend reported it; redacted only on the way out. */
16
+ readonly tree: SemanticNode;
16
17
  readonly viewport: {
17
18
  readonly width: number;
18
19
  readonly height: number;
@@ -20,7 +21,7 @@ export interface AgentObservation {
20
21
  };
21
22
  readonly truncated: boolean;
22
23
  /** Present only when the backend captured pixels and masking checks out. */
23
- readonly pixels?: AgentPixels | undefined;
24
+ readonly pixels?: ExecutorPixels | undefined;
24
25
  /** Set when captured pixels were dropped instead of being sent. */
25
26
  readonly pixelsWithheld?: PixelsWithheld | undefined;
26
27
  }
@@ -37,6 +38,24 @@ export declare function prepareObservation(observation: Observation, options: {
37
38
  maxBytes: number;
38
39
  testIdAttribute: string;
39
40
  }): AgentObservation;
41
+ /**
42
+ * Whether requested pixels become model input, decided once per observation
43
+ * for every tier that asks: a tainted viewport (a secret filled this attempt)
44
+ * is denied first, since the secret may be anywhere on screen; then the
45
+ * capture's own reasons; then the pixels themselves.
46
+ */
47
+ export declare function pixelsForModel(observation: AgentObservation, tainted: boolean): {
48
+ readonly pixels: ExecutorPixels;
49
+ } | {
50
+ readonly withheld: VisionDegradation;
51
+ };
52
+ /**
53
+ * Projects the raw tree onto the executor-facing node shape: the same
54
+ * redaction the text serialization applies, field by field, and no value at
55
+ * all for a secure node. Selectors stay behind — they are relocation
56
+ * material for the trace cache, not something a brain reasons about.
57
+ */
58
+ export declare function projectTree(node: SemanticNode, redact: (text: string) => string): ExecutorNode;
40
59
  /**
41
60
  * What the screen looks like, independent of which observation looked at it.
42
61
  *
@@ -1 +1 @@
1
- {"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../../src/agent/observation.ts"],"names":[],"mappings":"AAAA,oGAAoG;AAEpG,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAO1F,wEAAwE;AACxE,KAAK,cAAc,GAAG,kBAAkB,CAAC;AAEzC,qDAAqD;AACrD,MAAM,WAAW,WAAY,SAAQ,iBAAiB;IACpD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAClD,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/F,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC1C,mEAAmE;IACnE,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CACtD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE;IACP,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB,GACA,gBAAgB,CA6ClB;AAiED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,GAAG,MAAM,CAOtE;AAMD,oFAAoF;AACpF,UAAU,WAAW;IACnB,WAAW,IAAI,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,EAC7B,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,CAAC,CAAC,CAaZ"}
1
+ {"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../../src/agent/observation.ts"],"names":[],"mappings":"AAAA,oGAAoG;AAEpG,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKlE,wEAAwE;AACxE,KAAK,cAAc,GAAG,kBAAkB,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAClD,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/F,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAC7C,mEAAmE;IACnE,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CACtD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE;IACP,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB,GACA,gBAAgB,CAgDlB;AAqBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,OAAO,GACf;IAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;CAAE,CAMhF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,YAAY,CAqB9F;AA8CD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,GAAG,MAAM,CAOtE;AAMD,oFAAoF;AACpF,UAAU,WAAW;IACnB,WAAW,IAAI,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,EAC7B,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,CAAC,CAAC,CAaZ"}
@@ -13,7 +13,8 @@ const TRUNCATION_MARKER = '[observation truncated at the resolved observation by
13
13
  */
14
14
  export function prepareObservation(observation, options) {
15
15
  const nodes = new Map();
16
- indexNodes(observation.tree, nodes);
16
+ const parents = new Map();
17
+ indexNodes(observation.tree, nodes, parents);
17
18
  const redact = options.redact;
18
19
  const lines = [];
19
20
  const encoder = new TextEncoder();
@@ -51,6 +52,8 @@ export function prepareObservation(observation, options) {
51
52
  text,
52
53
  bytes: textBytes,
53
54
  nodes,
55
+ parents,
56
+ tree: observation.tree,
54
57
  viewport: observation.viewport,
55
58
  truncated,
56
59
  ...(pixels.cleared === undefined ? {} : { pixels: pixels.cleared }),
@@ -72,7 +75,48 @@ function clearPixels(observation) {
72
75
  const { secureNodeCount, maskedRegionCount } = observation.redaction;
73
76
  if (maskedRegionCount < secureNodeCount)
74
77
  return { withheld: 'MASKING_UNPROVEN' };
75
- return { cleared: { ...pixels, maskedRegionCount, bytes: pixels.data.byteLength } };
78
+ return { cleared: { ...pixels, maskedRegionCount } };
79
+ }
80
+ /**
81
+ * Whether requested pixels become model input, decided once per observation
82
+ * for every tier that asks: a tainted viewport (a secret filled this attempt)
83
+ * is denied first, since the secret may be anywhere on screen; then the
84
+ * capture's own reasons; then the pixels themselves.
85
+ */
86
+ export function pixelsForModel(observation, tainted) {
87
+ if (tainted)
88
+ return { withheld: 'PIXEL_TAINTED' };
89
+ if (observation.pixels === undefined) {
90
+ return { withheld: observation.pixelsWithheld ?? 'UNSUPPORTED_CAPABILITY' };
91
+ }
92
+ return { pixels: observation.pixels };
93
+ }
94
+ /**
95
+ * Projects the raw tree onto the executor-facing node shape: the same
96
+ * redaction the text serialization applies, field by field, and no value at
97
+ * all for a secure node. Selectors stay behind — they are relocation
98
+ * material for the trace cache, not something a brain reasons about.
99
+ */
100
+ export function projectTree(node, redact) {
101
+ const secure = node.states?.secure === true;
102
+ const attributes = node.attributes === undefined
103
+ ? undefined
104
+ : Object.fromEntries(Object.entries(node.attributes).map(([key, value]) => [key, redact(value)]));
105
+ return {
106
+ id: node.ref.id,
107
+ ...(node.role === undefined ? {} : { role: node.role }),
108
+ ...(node.name === undefined ? {} : { name: redact(node.name) }),
109
+ ...(node.text === undefined ? {} : { text: redact(node.text) }),
110
+ ...(node.value === undefined || secure ? {} : { value: redact(node.value) }),
111
+ ...(node.inputPurpose === undefined ? {} : { inputPurpose: node.inputPurpose }),
112
+ ...(node.states === undefined ? {} : { states: node.states }),
113
+ ...(attributes === undefined ? {} : { attributes }),
114
+ ...(node.rect === undefined ? {} : { rect: node.rect }),
115
+ ...(node.framePath === undefined ? {} : { framePath: node.framePath }),
116
+ ...(node.children === undefined
117
+ ? {}
118
+ : { children: node.children.map((child) => projectTree(child, redact)) }),
119
+ };
76
120
  }
77
121
  /** Depth beyond this renders flat; deep chrome must not buy tokens with spaces. */
78
122
  const MAX_INDENT_DEPTH = 10;
@@ -166,9 +210,11 @@ export async function settleObservation(capture, shapeOf, clock) {
166
210
  }
167
211
  return value;
168
212
  }
169
- function indexNodes(node, into) {
213
+ function indexNodes(node, into, parents) {
170
214
  into.set(node.ref.id, node);
171
- for (const child of node.children ?? [])
172
- indexNodes(child, into);
215
+ for (const child of node.children ?? []) {
216
+ parents.set(child.ref.id, node.ref.id);
217
+ indexNodes(child, into, parents);
218
+ }
173
219
  }
174
220
  //# sourceMappingURL=observation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"observation.js","sourceRoot":"","sources":["../../src/agent/observation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observation.js","sourceRoot":"","sources":["../../src/agent/observation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * The primitives under the built-in agent (RFC0001, layer 4). Each is one
3
+ * piece of the discipline the chassis and `createAgent` are assembled from,
4
+ * usable on its own with a raw AI SDK `ToolLoopAgent` or `generateText` —
5
+ * the way the AI SDK itself is a small opinionated agent over primitives you
6
+ * can also call directly:
7
+ *
8
+ * - `createGrammarTools` — AI SDK tools over the harness action grammar;
9
+ * - `createVerdictTool` — the `complete_step` tool and the closed blocked-code policy;
10
+ * - `trackModelCalls` — step handlers that report usage to the harness budgets;
11
+ * - `conversationMemory` — a message history kept across the steps of an attempt.
12
+ *
13
+ * Nothing here loads the `ai` package: an AI SDK tool is a plain object, so
14
+ * the module is safe to import from a config that never calls a model.
15
+ */
16
+ import type { ModelMessage, StepResult, Tool, ToolSet } from 'ai';
17
+ import { type StepExecutorContext, type StepVerdict } from './executor.ts';
18
+ /** The verdict rules the built-in agent appends to its instructions. */
19
+ export declare const VERDICT_RULES = "Verdict rules:\n- When the step's goal is achieved, or you are certain it cannot be, call complete_step exactly once.\n- Verify outcomes with your tools before concluding; never guess success.\n- \"passed\" means the application behaved as the step required. \"failed\" means it did not. \"blocked\" means credentials, the environment, or test setup prevented a product verdict \u2014 blocked says nothing about the product and requires an errorCode.";
20
+ /** The conclusion tool and the verdict it collected. */
21
+ export interface VerdictTool {
22
+ /** The `complete_step` tool; add it to the toolset under that name. */
23
+ readonly tool: Tool;
24
+ /** The verdict once the model called the tool with an accepted one. */
25
+ verdict(): StepVerdict | undefined;
26
+ /** True once a verdict landed; a `stopWhen` condition for a raw loop. */
27
+ concluded(): boolean;
28
+ }
29
+ /**
30
+ * The `complete_step` verdict tool. A blocked verdict without a blockable
31
+ * code is rejected back to the model, a passed verdict never carries a code,
32
+ * and the first accepted verdict is final.
33
+ */
34
+ export declare function createVerdictTool(): VerdictTool;
35
+ /** What a tool body runs under; the chassis supplies its loop policy here. */
36
+ export interface GrammarToolOptions {
37
+ /**
38
+ * Wraps every tool body. The default runs it as is, so a harness hard stop
39
+ * (budget, timeout, cancel) propagates out of the tool; the chassis's guard
40
+ * instead turns it into text and ends the loop.
41
+ */
42
+ readonly guard?: (body: () => Promise<string>) => Promise<string>;
43
+ }
44
+ /**
45
+ * AI SDK tools over the harness action grammar, limited to the verbs the
46
+ * target's backend declared. A verb the surface cannot honor is not offered
47
+ * at all, so the model never learns vocabulary it can only be rejected on.
48
+ * Every mutating tool returns the updated screen.
49
+ */
50
+ export declare function createGrammarTools(context: StepExecutorContext, options?: GrammarToolOptions): ToolSet;
51
+ /** Step handlers that report every model round trip to the harness budgets. */
52
+ export interface ModelCallTracker {
53
+ /** Pass as `onStepStart`; marks the turn's start for its duration. */
54
+ onStepStart(): void;
55
+ /**
56
+ * Pass as `onStepEnd` (or `onStepFinish`); records the turn's usage, cost,
57
+ * and provenance. Throws `STEP_BUDGET_EXHAUSTED` past the model-call budget,
58
+ * which ends a raw loop the same way it ends the chassis.
59
+ */
60
+ onStepEnd(step: Pick<StepResult<ToolSet>, 'usage' | 'providerMetadata'>): void;
61
+ }
62
+ /**
63
+ * Model-call accounting for a loop the executor runs itself. `model` names
64
+ * the provider and model id in the report; pass the AI SDK model instance.
65
+ */
66
+ export declare function trackModelCalls(context: StepExecutorContext, model?: {
67
+ readonly provider?: string;
68
+ readonly modelId?: string;
69
+ }): ModelCallTracker;
70
+ /** A conversation kept in the attempt memory across the steps of one test. */
71
+ export interface ConversationMemory {
72
+ /** Messages remembered by earlier steps of this attempt; empty on the first. */
73
+ readonly messages: readonly ModelMessage[];
74
+ /** Index of the last step that remembered, or -1. */
75
+ readonly lastStepIndex: number;
76
+ /** Stores the history for the next step of the attempt. */
77
+ remember(messages: readonly ModelMessage[]): void;
78
+ }
79
+ /**
80
+ * The executor's own conversation across an attempt, kept in
81
+ * `context.attempt.memory` under `key`. Open a step with
82
+ * `[...memory.messages, { role: 'user', content }]` and `remember` the full
83
+ * transcript when it ends; the harness drops it with the attempt.
84
+ */
85
+ export declare function conversationMemory(context: StepExecutorContext, key?: string): ConversationMemory;
86
+ //# sourceMappingURL=primitives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/agent/primitives.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAGlE,OAAO,EAAmB,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAsB5F,wEAAwE;AACxE,eAAO,MAAM,aAAa,ucAG4N,CAAC;AAcvP,wDAAwD;AACxD,MAAM,WAAW,WAAW;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,uEAAuE;IACvE,OAAO,IAAI,WAAW,GAAG,SAAS,CAAC;IACnC,yEAAyE;IACzE,SAAS,IAAI,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CA0C/C;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACnE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAsHT;AAED,+EAA+E;AAC/E,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,WAAW,IAAI,IAAI,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC,GAAG,IAAI,CAAC;CAChF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,mBAAmB,EAC5B,KAAK,CAAC,EAAE;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAChE,gBAAgB,CAkBlB;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,qDAAqD;IACrD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI,CAAC;CACnD;AAOD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,mBAAmB,EAC5B,GAAG,SAAqB,GACvB,kBAAkB,CAapB"}