@code-yeongyu/senpi-agent-core 2026.9.29-2 → 2026.9.29-4

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 (219) hide show
  1. package/package.json +4 -3
  2. package/dist/agent-loop.d.ts.map +0 -1
  3. package/dist/agent-loop.js.map +0 -1
  4. package/dist/agent.d.ts.map +0 -1
  5. package/dist/agent.js.map +0 -1
  6. package/dist/assistant-terminal-state.d.ts.map +0 -1
  7. package/dist/assistant-terminal-state.js.map +0 -1
  8. package/dist/empty-assistant-recovery.d.ts.map +0 -1
  9. package/dist/empty-assistant-recovery.js.map +0 -1
  10. package/dist/harness/agent-harness.d.ts.map +0 -1
  11. package/dist/harness/agent-harness.js.map +0 -1
  12. package/dist/harness/compaction/branch-summarization.d.ts.map +0 -1
  13. package/dist/harness/compaction/branch-summarization.js.map +0 -1
  14. package/dist/harness/compaction/compaction.d.ts.map +0 -1
  15. package/dist/harness/compaction/compaction.js.map +0 -1
  16. package/dist/harness/compaction/utils.d.ts.map +0 -1
  17. package/dist/harness/compaction/utils.js.map +0 -1
  18. package/dist/harness/config.d.ts.map +0 -1
  19. package/dist/harness/config.js.map +0 -1
  20. package/dist/harness/context.d.ts.map +0 -1
  21. package/dist/harness/context.js.map +0 -1
  22. package/dist/harness/env/nodejs.d.ts.map +0 -1
  23. package/dist/harness/env/nodejs.js.map +0 -1
  24. package/dist/harness/events.d.ts.map +0 -1
  25. package/dist/harness/events.js.map +0 -1
  26. package/dist/harness/execution/assistant.d.ts.map +0 -1
  27. package/dist/harness/execution/assistant.js.map +0 -1
  28. package/dist/harness/execution/effect-gate.d.ts.map +0 -1
  29. package/dist/harness/execution/effect-gate.js.map +0 -1
  30. package/dist/harness/execution/tools.d.ts.map +0 -1
  31. package/dist/harness/execution/tools.js.map +0 -1
  32. package/dist/harness/hooks.d.ts.map +0 -1
  33. package/dist/harness/hooks.js.map +0 -1
  34. package/dist/harness/messages.d.ts.map +0 -1
  35. package/dist/harness/messages.js.map +0 -1
  36. package/dist/harness/prompt-templates.d.ts.map +0 -1
  37. package/dist/harness/prompt-templates.js.map +0 -1
  38. package/dist/harness/result.d.ts.map +0 -1
  39. package/dist/harness/result.js.map +0 -1
  40. package/dist/harness/runtime/drive/boundary.d.ts.map +0 -1
  41. package/dist/harness/runtime/drive/boundary.js.map +0 -1
  42. package/dist/harness/runtime/drive/checkpoint.d.ts.map +0 -1
  43. package/dist/harness/runtime/drive/checkpoint.js.map +0 -1
  44. package/dist/harness/runtime/drive/deferred.d.ts.map +0 -1
  45. package/dist/harness/runtime/drive/deferred.js.map +0 -1
  46. package/dist/harness/runtime/drive/generation.d.ts.map +0 -1
  47. package/dist/harness/runtime/drive/generation.js.map +0 -1
  48. package/dist/harness/runtime/drive/reconcile.d.ts.map +0 -1
  49. package/dist/harness/runtime/drive/reconcile.js.map +0 -1
  50. package/dist/harness/runtime/drive/recovery.d.ts.map +0 -1
  51. package/dist/harness/runtime/drive/recovery.js.map +0 -1
  52. package/dist/harness/runtime/drive/response.d.ts.map +0 -1
  53. package/dist/harness/runtime/drive/response.js.map +0 -1
  54. package/dist/harness/runtime/drive/retry.d.ts.map +0 -1
  55. package/dist/harness/runtime/drive/retry.js.map +0 -1
  56. package/dist/harness/runtime/drive/structural.d.ts.map +0 -1
  57. package/dist/harness/runtime/drive/structural.js.map +0 -1
  58. package/dist/harness/runtime/drive/terminal.d.ts.map +0 -1
  59. package/dist/harness/runtime/drive/terminal.js.map +0 -1
  60. package/dist/harness/runtime/drive/tool-placement.d.ts.map +0 -1
  61. package/dist/harness/runtime/drive/tool-placement.js.map +0 -1
  62. package/dist/harness/runtime/drive/tools.d.ts.map +0 -1
  63. package/dist/harness/runtime/drive/tools.js.map +0 -1
  64. package/dist/harness/runtime/drive.d.ts.map +0 -1
  65. package/dist/harness/runtime/drive.js.map +0 -1
  66. package/dist/harness/runtime/harness.d.ts.map +0 -1
  67. package/dist/harness/runtime/harness.js.map +0 -1
  68. package/dist/harness/runtime/index.d.ts.map +0 -1
  69. package/dist/harness/runtime/index.js.map +0 -1
  70. package/dist/harness/runtime/lane.d.ts.map +0 -1
  71. package/dist/harness/runtime/lane.js.map +0 -1
  72. package/dist/harness/runtime/progress.d.ts.map +0 -1
  73. package/dist/harness/runtime/progress.js.map +0 -1
  74. package/dist/harness/runtime/reducer.d.ts.map +0 -1
  75. package/dist/harness/runtime/reducer.js.map +0 -1
  76. package/dist/harness/runtime/restore.d.ts.map +0 -1
  77. package/dist/harness/runtime/restore.js.map +0 -1
  78. package/dist/harness/runtime/transcript.d.ts.map +0 -1
  79. package/dist/harness/runtime/transcript.js.map +0 -1
  80. package/dist/harness/runtime/types.d.ts.map +0 -1
  81. package/dist/harness/runtime/types.js.map +0 -1
  82. package/dist/harness/session/commit.d.ts.map +0 -1
  83. package/dist/harness/session/commit.js.map +0 -1
  84. package/dist/harness/session/context.d.ts.map +0 -1
  85. package/dist/harness/session/context.js.map +0 -1
  86. package/dist/harness/session/fork-policy.d.ts.map +0 -1
  87. package/dist/harness/session/fork-policy.js.map +0 -1
  88. package/dist/harness/session/fork.d.ts.map +0 -1
  89. package/dist/harness/session/fork.js.map +0 -1
  90. package/dist/harness/session/in-memory-storage-state.d.ts.map +0 -1
  91. package/dist/harness/session/in-memory-storage-state.js.map +0 -1
  92. package/dist/harness/session/index.d.ts.map +0 -1
  93. package/dist/harness/session/index.js.map +0 -1
  94. package/dist/harness/session/jsonl/codec.d.ts.map +0 -1
  95. package/dist/harness/session/jsonl/codec.js.map +0 -1
  96. package/dist/harness/session/jsonl/fork.d.ts.map +0 -1
  97. package/dist/harness/session/jsonl/fork.js.map +0 -1
  98. package/dist/harness/session/jsonl/index.d.ts.map +0 -1
  99. package/dist/harness/session/jsonl/index.js.map +0 -1
  100. package/dist/harness/session/jsonl/io.d.ts.map +0 -1
  101. package/dist/harness/session/jsonl/io.js.map +0 -1
  102. package/dist/harness/session/jsonl/legacy-v3.d.ts.map +0 -1
  103. package/dist/harness/session/jsonl/legacy-v3.js.map +0 -1
  104. package/dist/harness/session/jsonl/repo.d.ts.map +0 -1
  105. package/dist/harness/session/jsonl/repo.js.map +0 -1
  106. package/dist/harness/session/jsonl/storage.d.ts.map +0 -1
  107. package/dist/harness/session/jsonl/storage.js.map +0 -1
  108. package/dist/harness/session/jsonl/types.d.ts.map +0 -1
  109. package/dist/harness/session/jsonl/types.js.map +0 -1
  110. package/dist/harness/session/memory.d.ts.map +0 -1
  111. package/dist/harness/session/memory.js.map +0 -1
  112. package/dist/harness/session/mutation-line.d.ts.map +0 -1
  113. package/dist/harness/session/mutation-line.js.map +0 -1
  114. package/dist/harness/session/session.d.ts.map +0 -1
  115. package/dist/harness/session/session.js.map +0 -1
  116. package/dist/harness/session/testing/benchmark/datasets.d.ts.map +0 -1
  117. package/dist/harness/session/testing/benchmark/datasets.js.map +0 -1
  118. package/dist/harness/session/testing/benchmark/session-repo.d.ts.map +0 -1
  119. package/dist/harness/session/testing/benchmark/session-repo.js.map +0 -1
  120. package/dist/harness/session/testing/benchmark/storage.d.ts.map +0 -1
  121. package/dist/harness/session/testing/benchmark/storage.js.map +0 -1
  122. package/dist/harness/session/testing/conformance/session-repo.d.ts.map +0 -1
  123. package/dist/harness/session/testing/conformance/session-repo.js.map +0 -1
  124. package/dist/harness/session/testing/conformance/storage.d.ts.map +0 -1
  125. package/dist/harness/session/testing/conformance/storage.js.map +0 -1
  126. package/dist/harness/session/testing/gating-storage.d.ts.map +0 -1
  127. package/dist/harness/session/testing/gating-storage.js.map +0 -1
  128. package/dist/harness/session/testing/index.d.ts.map +0 -1
  129. package/dist/harness/session/testing/index.js.map +0 -1
  130. package/dist/harness/session/testing/instrumented-storage.d.ts.map +0 -1
  131. package/dist/harness/session/testing/instrumented-storage.js.map +0 -1
  132. package/dist/harness/session/testing/storage-decorator.d.ts.map +0 -1
  133. package/dist/harness/session/testing/storage-decorator.js.map +0 -1
  134. package/dist/harness/session/testing/types.d.ts.map +0 -1
  135. package/dist/harness/session/testing/types.js.map +0 -1
  136. package/dist/harness/session/types.d.ts.map +0 -1
  137. package/dist/harness/session/types.js.map +0 -1
  138. package/dist/harness/session/values.d.ts.map +0 -1
  139. package/dist/harness/session/values.js.map +0 -1
  140. package/dist/harness/skills.d.ts.map +0 -1
  141. package/dist/harness/skills.js.map +0 -1
  142. package/dist/harness/system-prompt.d.ts.map +0 -1
  143. package/dist/harness/system-prompt.js.map +0 -1
  144. package/dist/harness/telemetry.d.ts.map +0 -1
  145. package/dist/harness/telemetry.js.map +0 -1
  146. package/dist/harness/tools/bash.d.ts.map +0 -1
  147. package/dist/harness/tools/bash.js.map +0 -1
  148. package/dist/harness/tools/edit-diff.d.ts.map +0 -1
  149. package/dist/harness/tools/edit-diff.js.map +0 -1
  150. package/dist/harness/tools/edit.d.ts.map +0 -1
  151. package/dist/harness/tools/edit.js.map +0 -1
  152. package/dist/harness/tools/file-mutation-queue.d.ts.map +0 -1
  153. package/dist/harness/tools/file-mutation-queue.js.map +0 -1
  154. package/dist/harness/tools/image.d.ts.map +0 -1
  155. package/dist/harness/tools/image.js.map +0 -1
  156. package/dist/harness/tools/index.d.ts.map +0 -1
  157. package/dist/harness/tools/index.js.map +0 -1
  158. package/dist/harness/tools/path-utils.d.ts.map +0 -1
  159. package/dist/harness/tools/path-utils.js.map +0 -1
  160. package/dist/harness/tools/post-mutate.d.ts.map +0 -1
  161. package/dist/harness/tools/post-mutate.js.map +0 -1
  162. package/dist/harness/tools/read.d.ts.map +0 -1
  163. package/dist/harness/tools/read.js.map +0 -1
  164. package/dist/harness/tools/tool-context.d.ts.map +0 -1
  165. package/dist/harness/tools/tool-context.js.map +0 -1
  166. package/dist/harness/tools/write.d.ts.map +0 -1
  167. package/dist/harness/tools/write.js.map +0 -1
  168. package/dist/harness/types.d.ts.map +0 -1
  169. package/dist/harness/types.js.map +0 -1
  170. package/dist/harness/utils/adaptive-publisher.d.ts.map +0 -1
  171. package/dist/harness/utils/adaptive-publisher.js.map +0 -1
  172. package/dist/harness/utils/output-capture.d.ts.map +0 -1
  173. package/dist/harness/utils/output-capture.js.map +0 -1
  174. package/dist/harness/utils/read-folders/brace-scanner.d.ts.map +0 -1
  175. package/dist/harness/utils/read-folders/brace-scanner.js.map +0 -1
  176. package/dist/harness/utils/read-folders/compose.d.ts.map +0 -1
  177. package/dist/harness/utils/read-folders/compose.js.map +0 -1
  178. package/dist/harness/utils/read-folders/header-protection.d.ts.map +0 -1
  179. package/dist/harness/utils/read-folders/header-protection.js.map +0 -1
  180. package/dist/harness/utils/read-folders/index.d.ts.map +0 -1
  181. package/dist/harness/utils/read-folders/index.js.map +0 -1
  182. package/dist/harness/utils/read-folders/lexical-context.d.ts.map +0 -1
  183. package/dist/harness/utils/read-folders/lexical-context.js.map +0 -1
  184. package/dist/harness/utils/read-folders/lexical-spans.d.ts.map +0 -1
  185. package/dist/harness/utils/read-folders/lexical-spans.js.map +0 -1
  186. package/dist/harness/utils/read-folders/prepare.d.ts.map +0 -1
  187. package/dist/harness/utils/read-folders/prepare.js.map +0 -1
  188. package/dist/harness/utils/read-folders/tree-sitter/engine.d.ts.map +0 -1
  189. package/dist/harness/utils/read-folders/tree-sitter/engine.js.map +0 -1
  190. package/dist/harness/utils/read-folders/tree-sitter/grammar-assets.d.ts.map +0 -1
  191. package/dist/harness/utils/read-folders/tree-sitter/grammar-assets.js.map +0 -1
  192. package/dist/harness/utils/read-folders/tree-sitter/syntax.d.ts.map +0 -1
  193. package/dist/harness/utils/read-folders/tree-sitter/syntax.js.map +0 -1
  194. package/dist/harness/utils/read-folders/types.d.ts.map +0 -1
  195. package/dist/harness/utils/read-folders/types.js.map +0 -1
  196. package/dist/harness/utils/segmented-read-view.d.ts.map +0 -1
  197. package/dist/harness/utils/segmented-read-view.js.map +0 -1
  198. package/dist/harness/utils/shell-output.d.ts.map +0 -1
  199. package/dist/harness/utils/shell-output.js.map +0 -1
  200. package/dist/harness/utils/truncate.d.ts.map +0 -1
  201. package/dist/harness/utils/truncate.js.map +0 -1
  202. package/dist/harness/utils/usage.d.ts.map +0 -1
  203. package/dist/harness/utils/usage.js.map +0 -1
  204. package/dist/index.d.ts.map +0 -1
  205. package/dist/index.js.map +0 -1
  206. package/dist/node.d.ts.map +0 -1
  207. package/dist/node.js.map +0 -1
  208. package/dist/proxy.d.ts.map +0 -1
  209. package/dist/proxy.js.map +0 -1
  210. package/dist/search/index.d.ts.map +0 -1
  211. package/dist/search/index.js.map +0 -1
  212. package/dist/stream-fn.d.ts.map +0 -1
  213. package/dist/stream-fn.js.map +0 -1
  214. package/dist/tool-arguments.d.ts.map +0 -1
  215. package/dist/tool-arguments.js.map +0 -1
  216. package/dist/tool-name-alias.d.ts.map +0 -1
  217. package/dist/tool-name-alias.js.map +0 -1
  218. package/dist/types.d.ts.map +0 -1
  219. package/dist/types.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"gating-storage.js","sourceRoot":"","sources":["../../../../src/harness/session/testing/gating-storage.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Context } from \"../../context.ts\";\nimport type { CommitResult, Write } from \"../types.ts\";\nimport { StorageDecorator } from \"./storage-decorator.ts\";\n\n/** Thrown for every commit rejected after simulated storage loss. */\nexport class CommitDiscarded extends Error {\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = \"CommitDiscarded\";\n\t}\n}\n\ninterface ParkedCommit {\n\trelease(): void;\n\tdrop(error: Error): void;\n\treadonly landing: Promise<void>;\n}\n\ninterface PendingWaiter {\n\tcount: number;\n\tresolve(): void;\n\treject(error: Error): void;\n}\n\n/** Test-only storage decorator that deterministically parks admitted commits. */\nexport class GatingStorage extends StorageDecorator {\n\tprivate armed = false;\n\tprivate discarded = false;\n\tprivate readonly queue: ParkedCommit[] = [];\n\tprivate readonly waiters: PendingWaiter[] = [];\n\n\t/** Fixture setup bypasses gating until explicitly armed. */\n\tarm(): void {\n\t\tthis.armed = true;\n\t}\n\n\tpending(): number {\n\t\treturn this.queue.length;\n\t}\n\n\t/** Wait until at least `count` commits are parked. */\n\twaitPending(count = 1): Promise<void> {\n\t\tif (!Number.isSafeInteger(count) || count < 1) {\n\t\t\treturn Promise.reject(new RangeError(\"Pending commit count must be a positive safe integer\"));\n\t\t}\n\t\tif (this.discarded) return Promise.reject(new CommitDiscarded(\"storage discarded\"));\n\t\tif (this.queue.length >= count) return Promise.resolve();\n\t\treturn new Promise<void>((resolve, reject) => {\n\t\t\tthis.waiters.push({ count, resolve, reject });\n\t\t});\n\t}\n\n\toverride async commit(writes: Write[], context: Context): Promise<CommitResult> {\n\t\tif (this.discarded) throw new CommitDiscarded(\"commit rejected: storage discarded\");\n\t\tif (!this.armed) return super.commit(writes, context);\n\n\t\tlet landed!: () => void;\n\t\tlet lost!: (error: Error) => void;\n\t\tconst landing = new Promise<void>((resolve, reject) => {\n\t\t\tlanded = resolve;\n\t\t\tlost = reject;\n\t\t});\n\t\tvoid landing.catch(() => {});\n\n\t\tconst released = new Promise<void>((resolve, reject) => {\n\t\t\tthis.queue.push({ release: resolve, drop: reject, landing });\n\t\t});\n\t\tthis.notifyWaiters();\n\n\t\ttry {\n\t\t\tawait released;\n\t\t\tif (this.discarded) throw new CommitDiscarded(\"commit rejected: storage discarded\");\n\t\t\tconst result = await super.commit(writes, context);\n\t\t\tlanded();\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tconst normalized = error instanceof Error ? error : new Error(String(error));\n\t\t\tlost(normalized);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\t/** Release `count` commits in FIFO order and wait until each write lands. */\n\tasync next(count = 1): Promise<void> {\n\t\tif (!Number.isSafeInteger(count) || count < 1) {\n\t\t\tthrow new RangeError(\"Released commit count must be a positive safe integer\");\n\t\t}\n\t\tfor (let index = 0; index < count; index++) {\n\t\t\tawait this.waitPending();\n\t\t\tconst parked = this.queue.shift();\n\t\t\tif (parked === undefined) throw new Error(\"No parked commit\");\n\t\t\tparked.release();\n\t\t\tawait parked.landing;\n\t\t}\n\t}\n\n\t/** Drop parked commits and permanently reject every later commit. */\n\tdiscard(): void {\n\t\tif (this.discarded) return;\n\t\tthis.discarded = true;\n\t\tconst error = new CommitDiscarded(\"commit discarded\");\n\t\tfor (const parked of this.queue.splice(0)) parked.drop(error);\n\t\tfor (const waiter of this.waiters.splice(0)) waiter.reject(error);\n\t}\n\n\tprivate notifyWaiters(): void {\n\t\tfor (let index = this.waiters.length - 1; index >= 0; index--) {\n\t\t\tconst waiter = this.waiters[index]!;\n\t\t\tif (this.queue.length < waiter.count) continue;\n\t\t\tthis.waiters.splice(index, 1);\n\t\t\twaiter.resolve();\n\t\t}\n\t}\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/harness/session/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EACN,uCAAuC,EACvC,6CAA6C,EAC7C,8CAA8C,EAC9C,oCAAoC,EACpC,2CAA2C,EAC3C,KAAK,kCAAkC,EACvC,+BAA+B,EAC/B,4BAA4B,EAC5B,6BAA6B,GAC7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACN,wCAAwC,EACxC,gCAAgC,EAChC,iCAAiC,EACjC,oBAAoB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,4BAA4B,EAC5B,wCAAwC,EACxC,gCAAgC,EAChC,4CAA4C,EAC5C,sDAAsD,EACtD,8CAA8C,EAC9C,qCAAqC,EACrC,mCAAmC,EACnC,qCAAqC,EACrC,yCAAyC,GACzC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/harness/session/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EACN,uCAAuC,EACvC,6CAA6C,EAC7C,8CAA8C,EAC9C,oCAAoC,EACpC,2CAA2C,EAE3C,+BAA+B,EAC/B,4BAA4B,EAC5B,6BAA6B,GAC7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACN,wCAAwC,EACxC,gCAAgC,EAChC,iCAAiC,EACjC,oBAAoB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,4BAA4B,EAC5B,wCAAwC,EACxC,gCAAgC,EAChC,4CAA4C,EAC5C,sDAAsD,EACtD,8CAA8C,EAC9C,qCAAqC,EACrC,mCAAmC,EACnC,qCAAqC,EACrC,yCAAyC,GACzC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC","sourcesContent":["export { STORAGE_BENCHMARK_DATASETS } from \"./benchmark/datasets.ts\";\nexport {\n\tSESSION_REPO_CATALOG_BENCHMARK_DATASETS,\n\tSESSION_REPO_CATALOG_READ_BENCHMARK_SCENARIOS,\n\tSESSION_REPO_CATALOG_WRITE_BENCHMARK_SCENARIOS,\n\tSESSION_REPO_FORK_BENCHMARK_DATASETS,\n\tSESSION_REPO_FORK_WRITE_BENCHMARK_SCENARIOS,\n\ttype SessionRepoCatalogBenchmarkDataset,\n\tseedSessionRepoCatalogBenchmark,\n\tseedSessionRepoForkBenchmark,\n\tsessionRepoBenchmarkSessionId,\n} from \"./benchmark/session-repo.ts\";\nexport {\n\tgenerateStorageBenchmarkSeedTransactions,\n\tSTORAGE_READ_BENCHMARK_SCENARIOS,\n\tSTORAGE_WRITE_BENCHMARK_SCENARIOS,\n\tseedStorageBenchmark,\n} from \"./benchmark/storage.ts\";\nexport {\n\tcreateSessionRepoConformance,\n\tcreateSessionRepoForkBehaviorConformance,\n\tcreateSessionRepoForkConformance,\n\tcreateSessionRepoForkCoordinationConformance,\n\tcreateSessionRepoForkDestinationReservationConformance,\n\tcreateSessionRepoForkSourceSnapshotConformance,\n\tcreateSessionRepoLifecycleConformance,\n\tcreateSessionRepoMessageConformance,\n\tcreateSessionRepoOwnershipConformance,\n\tcreateSessionRepoStreamingForkConformance,\n} from \"./conformance/session-repo.ts\";\nexport { createStorageConformance } from \"./conformance/storage.ts\";\nexport { CommitDiscarded, GatingStorage } from \"./gating-storage.ts\";\nexport { InstrumentedStorage } from \"./instrumented-storage.ts\";\nexport { StorageDecorator } from \"./storage-decorator.ts\";\nexport type { ConformanceCase, StorageFixture } from \"./types.ts\";\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"instrumented-storage.d.ts","sourceRoot":"","sources":["../../../../src/harness/session/testing/instrumented-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,6EAA6E;AAC7E,qBAAa,mBAAoB,SAAQ,gBAAgB;IACxD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAEhD,iBAAiB,IAAI,SAAS,KAAK,EAAE,EAAE,CAEtC;IAED,mBAAmB,IAAI,IAAI,CAE1B;IAEQ,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAGxE;CACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"instrumented-storage.js","sourceRoot":"","sources":["../../../../src/harness/session/testing/instrumented-storage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,6EAA6E;AAC7E,MAAM,OAAO,mBAAoB,SAAQ,gBAAgB;IAAzD;;QACkB,mBAAc,GAAc,EAAE,CAAC;IAcjD,CAAC;IAZA,iBAAiB;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAED,mBAAmB;QAClB,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IAEQ,MAAM,CAAC,MAAe,EAAE,OAAgB;QAChD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;CACD","sourcesContent":["import type { Context } from \"../../context.ts\";\nimport type { CommitResult, Write } from \"../types.ts\";\nimport { StorageDecorator } from \"./storage-decorator.ts\";\n\n/** Test-only transparent Storage decorator that records commit admission. */\nexport class InstrumentedStorage extends StorageDecorator {\n\tprivate readonly commitAttempts: Write[][] = [];\n\n\tgetCommitAttempts(): readonly Write[][] {\n\t\treturn this.commitAttempts.slice();\n\t}\n\n\tclearCommitAttempts(): void {\n\t\tthis.commitAttempts.length = 0;\n\t}\n\n\toverride commit(writes: Write[], context: Context): Promise<CommitResult> {\n\t\tthis.commitAttempts.push(writes);\n\t\treturn this.delegate.commit(writes, context);\n\t}\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage-decorator.d.ts","sourceRoot":"","sources":["../../../../src/harness/session/testing/storage-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EACX,YAAY,EACZ,KAAK,EACL,SAAS,EACT,cAAc,EACd,YAAY,EACZ,OAAO,EACP,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhG,wFAAwF;AACxF,qBAAa,gBAAiB,YAAW,OAAO;IAC/C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAErC,YAAY,QAAQ,EAAE,OAAO,EAE5B;IAED,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAE/D;IAED,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAEvE;IAED,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAEpF;IAED,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAE3E;IAED,QAAQ,CAAC,CAAC,EACT,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EACrB,OAAO,EAAE,eAAe,GAAG,SAAS,EACpC,OAAO,EAAE,OAAO,GACd,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAE3B;IAED,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAEvE;IAED,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAEzF;IAED,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAEhE;IAED,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAEjE;IAED,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAEhD;IAED,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAErC;CACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage-decorator.js","sourceRoot":"","sources":["../../../../src/harness/session/testing/storage-decorator.ts"],"names":[],"mappings":"AAeA,wFAAwF;AACxF,MAAM,OAAO,gBAAgB;IAG5B,YAAY,QAAiB;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,MAAe,EAAE,OAAgB;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU,CAAC,GAAa,EAAE,OAAgB;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,QAAQ,CAAI,OAAiB,EAAE,OAAgB;QAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,UAAU,CAAI,MAAgB,EAAE,OAAgB;QAC/C,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,QAAQ,CACP,OAAqB,EACrB,OAAoC,EACpC,OAAgB;QAEhB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,UAAU,CAAC,KAAwB,EAAE,OAAgB;QACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,mBAAmB,CAAC,KAAwB,EAAE,OAAgB;QAC7D,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,WAAW,CAAC,KAAgB,EAAE,OAAgB;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,SAAS,CAAC,KAAgB,EAAE,OAAgB;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,QAAQ,CAAC,OAAgB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,OAAgB;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;CACD","sourcesContent":["import type { Context } from \"../../context.ts\";\nimport type {\n\tCommitResult,\n\tEntry,\n\tEntryScan,\n\tEntryStructure,\n\tSessionStats,\n\tStorage,\n\tStorageBranchScan,\n\tUsageRow,\n\tUsageScan,\n\tWrite,\n} from \"../types.ts\";\nimport type { ListElement, ListReadOptions, StoredValue, Value, ValueList } from \"../values.ts\";\n\n/** Test-only forwarding base for decorators that alter one part of Storage behavior. */\nexport class StorageDecorator implements Storage {\n\tprotected readonly delegate: Storage;\n\n\tconstructor(delegate: Storage) {\n\t\tthis.delegate = delegate;\n\t}\n\n\tcommit(writes: Write[], context: Context): Promise<CommitResult> {\n\t\treturn this.delegate.commit(writes, context);\n\t}\n\n\tgetEntries(ids: string[], context: Context): Promise<Map<string, Entry>> {\n\t\treturn this.delegate.getEntries(ids, context);\n\t}\n\n\tgetValue<T>(address: Value<T>, context: Context): Promise<StoredValue<T> | undefined> {\n\t\treturn this.delegate.getValue(address, context);\n\t}\n\n\tscanValues<T>(prefix: Value<T>, context: Context): Promise<StoredValue<T>[]> {\n\t\treturn this.delegate.scanValues(prefix, context);\n\t}\n\n\treadList<T>(\n\t\taddress: ValueList<T>,\n\t\toptions: ListReadOptions | undefined,\n\t\tcontext: Context,\n\t): Promise<ListElement<T>[]> {\n\t\treturn this.delegate.readList(address, options, context);\n\t}\n\n\tscanBranch(query: StorageBranchScan, context: Context): Promise<Entry[]> {\n\t\treturn this.delegate.scanBranch(query, context);\n\t}\n\n\tscanBranchStructure(query: StorageBranchScan, context: Context): Promise<EntryStructure[]> {\n\t\treturn this.delegate.scanBranchStructure(query, context);\n\t}\n\n\tscanEntries(query: EntryScan, context: Context): Promise<Entry[]> {\n\t\treturn this.delegate.scanEntries(query, context);\n\t}\n\n\tscanUsage(query: UsageScan, context: Context): Promise<UsageRow[]> {\n\t\treturn this.delegate.scanUsage(query, context);\n\t}\n\n\tgetStats(context: Context): Promise<SessionStats> {\n\t\treturn this.delegate.getStats(context);\n\t}\n\n\tclose(context: Context): Promise<void> {\n\t\treturn this.delegate.close(context);\n\t}\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/harness/session/testing/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,4EAA4E;AAC5E,MAAM,WAAW,cAAe,SAAQ,eAAe;IACtD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC1B;AAED,4FAA4F;AAC5F,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/harness/session/testing/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Storage } from \"../types.ts\";\n\n/** A fresh backend storage instance owned by one test or benchmark case. */\nexport interface StorageFixture extends AsyncDisposable {\n\treadonly storage: Storage;\n}\n\n/** A runner-independent conformance case that can be registered with any test framework. */\nexport interface ConformanceCase {\n\treadonly group: string;\n\treadonly name: string;\n\trun(): Promise<void>;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/harness/session/types.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/harness/session/types.ts"],"names":[],"mappings":"AA4UA,gFAAgF;AAChF,MAAM,UAAU,gBAAgB,CAAC,KAAqB;IACrD,OAAO;QACN,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;KACpD,CAAC;AACH,CAAC","sourcesContent":["import type { JsonValue } from \"@earendil-works/chord\";\nimport type { AssistantMessage, StopReason, Usage } from \"@earendil-works/pi-ai\";\nimport type { AgentMessage, QueueMode, ThinkingLevel } from \"../../types.ts\";\nimport type { BranchPreparation } from \"../compaction/branch-summarization.ts\";\nimport type { CompactionPreparation, CompactionSettings } from \"../compaction/compaction.ts\";\nimport type { Context } from \"../context.ts\";\nimport type { AgentHarnessStreamOptions } from \"../types.ts\";\nimport type { ListElement, ListReadOptions, ListWrite, StoredValue, Value, ValueList, ValueWrite } from \"./values.ts\";\n\nexport type { JsonValue } from \"@earendil-works/chord\";\n\nexport type SettledAssistantMessage = AssistantMessage & {\n\tstopReason: Exclude<StopReason, \"pending\">;\n};\n\nexport type EntryType = \"message\" | \"compaction\" | \"branch_summary\" | \"custom\";\n\nexport interface EntryBase {\n\tid: string;\n\tparentId: string | null;\n\tseq: number;\n\ttimestamp: number;\n\ttype: EntryType;\n\tcustomType?: string;\n}\n\nexport interface MessageEntry extends EntryBase {\n\ttype: \"message\";\n\tmessage: AgentMessage;\n\tterminate?: true;\n}\n\nexport interface CompactionEntry extends EntryBase {\n\ttype: \"compaction\";\n\tsummary: string;\n\tretainedTail: AgentMessage[];\n\ttokensBefore: number;\n\tdetails?: JsonValue;\n\tusage?: Usage;\n\tfromHook: boolean;\n}\n\nexport interface BranchSummaryEntry extends EntryBase {\n\ttype: \"branch_summary\";\n\tfromId: string | null;\n\tsummary: string;\n\tdetails?: JsonValue;\n\tusage?: Usage;\n\tfromHook: boolean;\n}\n\nexport interface CustomEntry extends EntryBase {\n\ttype: \"custom\";\n\tcustomType: string;\n\tdata?: JsonValue;\n}\n\n/** Convert an application-defined custom entry into model context. */\nexport type EntryProjector = (\n\tentry: CustomEntry,\n\tcontext: Context,\n) => AgentMessage[] | undefined | Promise<AgentMessage[] | undefined>;\n\nexport type Entry = MessageEntry | CompactionEntry | BranchSummaryEntry | CustomEntry;\n\n/** Entry supplied to a transaction before storage assigns sequence and timestamp. */\nexport type NewEntry<TEntry extends Entry = Entry> = TEntry extends Entry ? Omit<TEntry, \"seq\" | \"timestamp\"> : never;\n\nexport interface LaneConfiguration {\n\tmodel: { provider: string; modelId: string };\n\tthinkingLevel: ThinkingLevel;\n\tactiveToolNames: string[];\n}\n\nexport interface OperationMeta {\n\toperationId: string;\n\tlane: string;\n\tsourceTipId: string | null;\n\tstartedAt: number;\n\tintent:\n\t\t| { kind: \"run\"; promptEntryIds: string[] }\n\t\t| { kind: \"compaction\"; customInstructions?: string }\n\t\t| {\n\t\t\t\tkind: \"navigation\";\n\t\t\t\ttargetId: string | null;\n\t\t\t\tsummarize: boolean;\n\t\t\t\tlabel?: string;\n\t\t\t\tcustomInstructions?: string;\n\t\t };\n}\n\nexport type Control =\n\t| { status: \"running\" }\n\t| {\n\t\t\tstatus: \"cancel_requested\";\n\t\t\trequestedAt: number;\n\t };\n\nexport interface OperationError {\n\tcode: string;\n\tmessage: string;\n\tdetails?: JsonValue;\n}\n\nexport type TerminalStatus = \"completed\" | \"declined\" | \"aborted\" | \"failed\";\n\n/** Immutable lane-lived observation record written by one terminal transaction. */\nexport interface OperationResultRecord {\n\toperationId: string;\n\tkind: OperationMeta[\"intent\"][\"kind\"];\n\tstatus: TerminalStatus;\n\terror?: OperationError;\n\tfromTipId: string | null;\n\ttipId: string | null;\n\tstartedAt: number;\n\tendedAt: number;\n}\n\nexport type Continuation =\n\t| { kind: \"need_assistant\"; overflowRecoveryUsed: boolean }\n\t| { kind: \"may_finish\"; includeFinalAssistant: boolean };\n\n/** Checkpoint payload; the flat leaf literal replaces the old nested phase tag. */\nexport interface CheckpointData {\n\tcontinuation: Continuation;\n\ttriggerEntryId: string;\n}\n\nexport type InboxItemKind = \"steer\" | \"followUp\" | \"nextRun\" | \"write\";\n\nexport interface InboxItem {\n\tentryId: string;\n\tkind: InboxItemKind;\n}\n\nexport interface NormalizedRetryPolicy {\n\tmaxAttempts: number;\n\tbaseDelayMs: number;\n\tmaxAgentDelayMs: number;\n}\n\nexport interface GenerationContext {\n\tstepId: string;\n\ttriggerEntryId: string;\n\tconfiguration: LaneConfiguration;\n\tstreamOptions: AgentHarnessStreamOptions;\n\tretryPolicy: NormalizedRetryPolicy;\n\toverflowRecoveryUsed: boolean;\n}\n\ninterface ToolCallSource {\n\t/** Zero-based index in the assistant message's complete content array, not a filtered tool-call ordinal. */\n\tsourceIndex: number;\n\tresultEntryId: string;\n}\n\nexport type ToolCall = ToolCallSource &\n\t(\n\t\t| { status: \"planned\" }\n\t\t| { status: \"effect_pending\"; replay: \"never\" | \"safe\" }\n\t\t| { status: \"outcome_ready\"; terminate: boolean }\n\t\t| { status: \"completed\"; terminate: boolean }\n\t);\n\nexport interface ToolBatch {\n\tassistantEntryId: string;\n\tconfiguration: LaneConfiguration;\n\tturnId: string;\n\tcalls: ToolCall[];\n}\n\nexport interface SummaryContext {\n\tresultEntryId: string;\n\tconfiguration: LaneConfiguration;\n\tstreamOptions: AgentHarnessStreamOptions;\n\tretryPolicy: NormalizedRetryPolicy;\n}\n\n/*\n * Durable operation state is one flat union with one family-neutral discriminator\n * per dispatcher leaf. ToolBatch/ToolCall remain the nested child collection state\n * machine, and cancellation stays orthogonal via Control.\n */\n\nexport interface Cancellable {\n\tcontrol: Control;\n}\n\nexport interface RunSettings {\n\tcompaction: CompactionSettings;\n\tsteeringMode: QueueMode;\n\tfollowUpMode: QueueMode;\n\ttoolExecution: \"sequential\" | \"parallel\";\n}\n\n/** Uniform scope carried by every operation leaf. */\nexport interface OperationScope extends Cancellable {\n\tsettings: RunSettings;\n\tlatestAssistantEntryId: string | null;\n}\n\n/** Shared backoff data for every retry-wait leaf. */\nexport interface RetryWait {\n\tnextAttempt: number;\n\tnotBefore: number;\n\terrorMessage: string;\n}\n\nexport interface AssistantGenerationScope {\n\tgenerationContext: GenerationContext;\n}\n\nexport type ResultBoundary =\n\t| { kind: \"resume_checkpoint\"; resumeAfter: CheckpointData }\n\t| { kind: \"finish\" }\n\t| { kind: \"commit_navigation\"; targetId: string; label?: string };\n\nexport interface SummaryTask {\n\ttaskId: string;\n\treason?: \"manual\" | \"threshold\" | \"overflow\";\n\tcustomInstructions?: string;\n\tboundary: ResultBoundary;\n}\n\nexport interface SummaryGenerationScope {\n\ttask: SummaryTask;\n\tsummaryContext: SummaryContext;\n}\n\nexport interface SummaryGenerationReady extends SummaryGenerationScope {\n\tnextAttempt: number;\n}\n\nexport interface SummaryGenerationEffectPending extends SummaryGenerationScope {\n\tattempt: number;\n\trequest?: { index: number; usageId: string };\n\tusageIds: string[];\n}\n\nexport interface SummaryGenerationRetryWait extends SummaryGenerationScope, RetryWait {}\n\nexport interface DeferredScope extends OperationScope {\n\tstepId: string;\n\tsourceEntryId: string;\n\tpoll: number;\n\tconfiguration: LaneConfiguration;\n\tstreamOptions: AgentHarnessStreamOptions;\n}\n\nexport interface StartingOperation extends OperationScope {\n\tat: \"starting\";\n}\n\nexport interface CheckpointOperation extends OperationScope, CheckpointData {\n\tat: \"checkpoint\";\n}\n\nexport interface AssistantReadyOperation extends OperationScope, AssistantGenerationScope {\n\tat: \"assistant.ready\";\n\tnextAttempt: number;\n}\n\nexport interface AssistantEffectPendingOperation extends OperationScope, AssistantGenerationScope {\n\tat: \"assistant.effect_pending\";\n\tattempt: number;\n\tresponseEntryId: string;\n\tusageId: string;\n\tintendedOutputLimit: number;\n\tcontextWindow: number;\n}\n\nexport interface AssistantRetryWaitOperation extends OperationScope, AssistantGenerationScope, RetryWait {\n\tat: \"assistant.retry_wait\";\n}\n\nexport interface ToolsOperation extends OperationScope {\n\tat: \"tools\";\n\tbatch: ToolBatch;\n}\n\nexport interface DeferredSuspendedOperation extends DeferredScope {\n\tat: \"deferred.suspended\";\n}\n\nexport interface DeferredEffectPendingOperation extends DeferredScope {\n\tat: \"deferred.effect_pending\";\n\tresponseEntryId: string;\n\tusageId: string;\n}\n\nexport interface SummaryDecidingOperation extends OperationScope {\n\tat: \"summary.deciding\";\n\ttask: SummaryTask;\n}\n\nexport interface SummaryReadyOperation extends OperationScope, SummaryGenerationReady {\n\tat: \"summary.ready\";\n}\n\nexport interface SummaryEffectPendingOperation extends OperationScope, SummaryGenerationEffectPending {\n\tat: \"summary.effect_pending\";\n}\n\nexport interface SummaryRetryWaitOperation extends OperationScope, SummaryGenerationRetryWait {\n\tat: \"summary.retry_wait\";\n}\n\nexport interface NavigationReadyToCommitOperation extends OperationScope {\n\tat: \"navigation.ready_to_commit\";\n\t/** Unsummarized navigation may target the branch root (null). */\n\ttargetId: string | null;\n\tlabel?: string;\n}\n\n/** Flat durable operation state: exactly 13 family-neutral dispatcher leaves. */\nexport type OperationState =\n\t| StartingOperation\n\t| CheckpointOperation\n\t| AssistantReadyOperation\n\t| AssistantEffectPendingOperation\n\t| AssistantRetryWaitOperation\n\t| ToolsOperation\n\t| DeferredSuspendedOperation\n\t| DeferredEffectPendingOperation\n\t| SummaryDecidingOperation\n\t| SummaryReadyOperation\n\t| SummaryEffectPendingOperation\n\t| SummaryRetryWaitOperation\n\t| NavigationReadyToCommitOperation;\n\nexport type OperationAt = OperationState[\"at\"];\n\n/** Copy only the uniform operation scope when constructing a successor leaf. */\nexport function operationScopeOf(state: OperationState): OperationScope {\n\treturn {\n\t\tcontrol: state.control,\n\t\tsettings: state.settings,\n\t\tlatestAssistantEntryId: state.latestAssistantEntryId,\n\t};\n}\n\nexport type Operation = { meta: OperationMeta; state: OperationState };\n\nexport interface LaneState {\n\tcurrentOperationId: string | null;\n\tlastOperationId: string | null;\n\tinbox: InboxItem[];\n}\n\nexport type PendingEntry =\n\t| { type: \"message\"; payload: AgentMessage }\n\t| { type: \"custom\"; customType: string; payload?: JsonValue };\n\nexport interface DurableFileOperations {\n\tread: string[];\n\twritten: string[];\n\tedited: string[];\n}\n\nexport type DurableStructuralPreparation =\n\t| {\n\t\t\tkind: \"compaction\";\n\t\t\tmessagesToSummarize: CompactionPreparation[\"messagesToSummarize\"];\n\t\t\tturnPrefixMessages: CompactionPreparation[\"turnPrefixMessages\"];\n\t\t\tretainedTail: CompactionPreparation[\"retainedTail\"];\n\t\t\tisSplitTurn: boolean;\n\t\t\ttokensBefore: number;\n\t\t\tpreviousSummary?: string;\n\t\t\tfileOps: DurableFileOperations;\n\t\t\tsettings: CompactionSettings;\n\t }\n\t| {\n\t\t\tkind: \"branch_summary\";\n\t\t\tmessages: BranchPreparation[\"messages\"];\n\t\t\tfileOps: DurableFileOperations;\n\t\t\ttotalTokens: number;\n\t };\n\nexport interface UsageRow {\n\tid: string;\n\tseq: number;\n\tusage: Usage;\n\tentryId?: string;\n\tadjustment: boolean;\n\tdetails?: JsonValue;\n}\n\nexport interface EntryWrite {\n\tkind: \"entry\";\n\tentry: NewEntry;\n}\n\nexport interface UsageWrite {\n\tkind: \"usage\";\n\trow: Omit<UsageRow, \"seq\">;\n}\n\nexport type Write = EntryWrite | UsageWrite | ValueWrite | ListWrite;\n\nexport interface CommitResult {\n\tfirstSeq: number;\n\tseqs: number[];\n\ttimestamp: number;\n\t/** Session totals immediately after this commit was applied. */\n\tstats: SessionStats;\n}\n\nexport interface EntryStructure {\n\tid: string;\n\tparentId: string | null;\n\tseq: number;\n\ttimestamp: number;\n\ttype: EntryType;\n\tcustomType?: string;\n}\n\nexport interface EntryCursor {\n\tseq: number;\n}\n\nexport interface BranchScan {\n\tstart?: string;\n\tstopAtType?: EntryType;\n\tstopAtId?: string;\n\ttype?: EntryType;\n\tcustomType?: string;\n\torder?: \"newestFirst\" | \"oldestFirst\";\n\tlimit?: number;\n\tcursor?: EntryCursor;\n}\n\nexport type StorageBranchScan = BranchScan & { start: string };\n\nexport interface EntryScan {\n\ttype?: EntryType;\n\tcustomType?: string;\n\tfromSeq?: number;\n\ttoSeq?: number;\n\torder?: \"asc\" | \"desc\";\n\tlimit?: number;\n}\n\nexport interface UsageScan {\n\tfromSeq?: number;\n\ttoSeq?: number;\n\torder?: \"asc\" | \"desc\";\n\tlimit?: number;\n}\n\nexport interface SessionStats {\n\tmessageCount: number;\n\tusage: Usage;\n}\n\nexport interface Storage {\n\tcommit(writes: Write[], context: Context): Promise<CommitResult>;\n\tgetEntries(ids: string[], context: Context): Promise<Map<string, Entry>>;\n\tgetValue<T>(address: Value<T>, context: Context): Promise<StoredValue<T> | undefined>;\n\tscanValues<T>(prefix: Value<T>, context: Context): Promise<StoredValue<T>[]>;\n\treadList<T>(\n\t\taddress: ValueList<T>,\n\t\toptions: ListReadOptions | undefined,\n\t\tcontext: Context,\n\t): Promise<ListElement<T>[]>;\n\tscanBranch(query: StorageBranchScan, context: Context): Promise<Entry[]>;\n\tscanBranchStructure(query: StorageBranchScan, context: Context): Promise<EntryStructure[]>;\n\tscanEntries(query: EntryScan, context: Context): Promise<Entry[]>;\n\tscanUsage(query: UsageScan, context: Context): Promise<UsageRow[]>;\n\tgetStats(context: Context): Promise<SessionStats>;\n\tclose(context: Context): Promise<void>;\n}\n\nexport interface SessionMetadata {\n\tid: string;\n\tcreatedAt: number;\n\tstorageVersion: number;\n\tcwd?: string;\n\tparentSessionId?: string;\n\tlegacyParentSessionPath?: string;\n}\n\nexport interface IdGenerator {\n\tnext(timestampMs?: number): string;\n}\n\nexport interface EntryQuery {\n\ttype?: EntryType;\n\tcustomType?: string;\n\torder?: \"asc\" | \"desc\";\n\tlimit?: number;\n\tcursor?: EntryCursor;\n}\n\nexport interface SessionReader {\n\tgetEntries(ids: string[], context: Context): Promise<Map<string, Entry>>;\n\tgetStats(context: Context): Promise<SessionStats>;\n\tgetValue<T>(address: Value<T>, context: Context): Promise<StoredValue<T> | undefined>;\n\tscanValues<T>(prefix: Value<T>, context: Context): Promise<StoredValue<T>[]>;\n\treadList<T>(\n\t\taddress: ValueList<T>,\n\t\toptions: ListReadOptions | undefined,\n\t\tcontext: Context,\n\t): Promise<ListElement<T>[]>;\n\t/** Scan a branch from an explicit entry while this reader capability remains valid. */\n\tscanBranch(query: StorageBranchScan, context: Context): Promise<Entry[]>;\n}\n\n/** Exclusive keyless mutation barrier for one Session. */\nexport interface SessionMutation extends SessionReader {\n\t/** Exactly zero or one commit attempt. A second attempt rejects. */\n\tcommit(writes: Write[], context: Context): Promise<CommitResult>;\n\t/** Wait for any commit attempt, invalidate the capability, and release the barrier. */\n\tend(context: Context): Promise<void>;\n}\n\n/** Callback-scoped mutation capability without authority to release its Session barrier. */\nexport type SessionMutator = Omit<SessionMutation, \"end\">;\n\nexport type SessionMutationCallback<T> = (mutator: SessionMutator, context: Context) => T | Promise<T>;\n\nexport interface Branch {\n\treadonly name: string;\n\tgetTipId(context: Context): Promise<string | null>;\n\tfindEntries(query: BranchScan | undefined, context: Context): Promise<Entry[]>;\n\tfindEntry(query: BranchScan | undefined, context: Context): Promise<Entry | undefined>;\n\tappendMessage(message: AgentMessage, context: Context): Promise<string>;\n\tappendCustomEntry(customType: string, data: JsonValue | undefined, context: Context): Promise<string>;\n}\n\nexport interface Session<TMetadata extends SessionMetadata = SessionMetadata> extends SessionReader {\n\treadonly metadata: TMetadata;\n\treadonly idGenerator: IdGenerator;\n\tgetEntry(id: string, context: Context): Promise<Entry | undefined>;\n\tgetStats(context: Context): Promise<SessionStats>;\n\tgetName(context: Context): Promise<string | undefined>;\n\tgetLabel(targetId: string, context: Context): Promise<string | undefined>;\n\tfindEntries(query: EntryQuery | undefined, context: Context): Promise<Entry[]>;\n\tfindEntry(query: EntryQuery | undefined, context: Context): Promise<Entry | undefined>;\n\tbranch(name: string, context: Context): Promise<Branch | undefined>;\n\tcreateBranch(name: string, at: string | null, context: Context): Promise<Branch>;\n\tbeginMutation(context: Context): Promise<SessionMutation>;\n\t/**\n\t * Trusted exclusive callback over the Session mutation line. Calling a public Session writer from\n\t * this callback queues it behind the callback; awaiting that nested writer therefore deadlocks.\n\t * Use the supplied mutator for the callback's sole commit.\n\t */\n\tmutate<T>(mutation: SessionMutationCallback<T>, context: Context): Promise<T>;\n\tsetValue<T>(address: Value<T>, next: NoInfer<T>, context: Context): Promise<void>;\n\tdeleteValue<T>(address: Value<T>, context: Context): Promise<void>;\n\tappendList<T>(address: ValueList<T>, element: NoInfer<T>, context: Context): Promise<void>;\n\tdeleteList<T>(address: ValueList<T>, context: Context): Promise<void>;\n\tsetName(name: string | undefined, context: Context): Promise<void>;\n\tsetLabel(targetId: string, label: string | undefined, context: Context): Promise<void>;\n\tclose(context: Context): Promise<void>;\n}\n\nexport interface SessionCreateOptions {\n\tid?: string;\n\tparentSessionId?: string;\n}\n\nexport type ForkOptions =\n\t| {\n\t\t\t/**\n\t\t\t * Copy one path from a complete configured source AgentLane under the same\n\t\t\t * Branch name, with copied configuration and fresh idle lane state.\n\t\t\t */\n\t\t\tscope: \"branch\";\n\t\t\t/** Source Branch to copy. */\n\t\t\tbranch: string;\n\t\t\t/** Entry on the source Branch's current tip ancestry. Defaults to the current tip. */\n\t\t\tentryId?: string;\n\t\t\t/**\n\t\t\t * Whether the fork includes the selected entry or stops at its parent.\n\t\t\t * Defaults to including the selected entry.\n\t\t\t */\n\t\t\tposition?: \"before\" | \"at\";\n\t\t\t/** Optional destination session id. */\n\t\t\tid?: string;\n\t }\n\t| {\n\t\t\t/**\n\t\t\t * Copy the whole conversation tree and every Branch tip. Each configured\n\t\t\t * AgentLane copies configuration plus fresh idle state; data-only Branches\n\t\t\t * remain data-only. Operation/pending/result/usage state is excluded.\n\t\t\t */\n\t\t\tscope: \"tree\";\n\t\t\t/** Optional destination session id. */\n\t\t\tid?: string;\n\t };\n\nexport interface SessionRepo<\n\tTMetadata extends SessionMetadata = SessionMetadata,\n\tTCreateOptions extends { id?: string; parentSessionId?: string } = SessionCreateOptions,\n\tTListOptions = void,\n> {\n\tcreate(options: TCreateOptions, context: Context): Promise<Session<TMetadata>>;\n\topen(metadata: TMetadata, context: Context): Promise<Session<TMetadata>>;\n\tlist(options: TListOptions | undefined, context: Context): Promise<TMetadata[]>;\n\tdelete(metadata: TMetadata, context: Context): Promise<void>;\n\tfork(source: TMetadata, options: ForkOptions, context: Context): Promise<Session<TMetadata>>;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../../src/harness/session/values.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"values.js","sourceRoot":"","sources":["../../../src/harness/session/values.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AssistantMessageFrame } from \"@earendil-works/pi-ai\";\nimport type { AgentToolResult } from \"../../types.ts\";\nimport type {\n\tDurableStructuralPreparation,\n\tJsonValue,\n\tLaneConfiguration,\n\tLaneState,\n\tOperationMeta,\n\tOperationResultRecord,\n\tOperationState,\n\tPendingEntry,\n} from \"./types.ts\";\n\ndeclare const storedValueType: unique symbol;\n\nexport interface StoredAddressBase {\n\treadonly namespace: string;\n\treadonly key: string;\n\treadonly kind: \"value\" | \"list\";\n}\n\nexport interface Value<T> extends StoredAddressBase {\n\treadonly kind: \"value\";\n\treadonly [storedValueType]?: (value: T) => T;\n}\n\nexport interface ValueList<T> extends StoredAddressBase {\n\treadonly kind: \"list\";\n\treadonly [storedValueType]?: (value: T) => T;\n}\n\nexport interface StoredValue<T> {\n\taddress: Value<T>;\n\tvalue: T;\n\tseq: number;\n}\n\nexport interface ListElement<T> {\n\tseq: number;\n\tvalue: T;\n}\n\nexport interface ListCursor {\n\tseq: number;\n}\n\nexport interface ListReadOptions {\n\tcursor?: ListCursor;\n\torder?: \"asc\" | \"desc\";\n\tlimit?: number;\n}\n\nexport interface ResolvedListReadOptions {\n\tcursor?: ListCursor;\n\torder: \"asc\" | \"desc\";\n\tlimit: number;\n}\n\nexport interface ValueSetWrite {\n\tkind: \"value\";\n\top: \"set\";\n\tnamespace: string;\n\tkey: string;\n\tvalue: unknown;\n}\n\nexport interface ValueDeleteWrite {\n\tkind: \"value\";\n\top: \"delete\";\n\tnamespace: string;\n\tkey: string;\n}\n\nexport interface ListAppendWrite {\n\tkind: \"list\";\n\top: \"append\";\n\tnamespace: string;\n\tkey: string;\n\tvalue: unknown;\n}\n\nexport interface ListDeleteWrite {\n\tkind: \"list\";\n\top: \"delete\";\n\tnamespace: string;\n\tkey: string;\n}\n\nexport type ValueWrite = ValueSetWrite | ValueDeleteWrite;\nexport type ListWrite = ListAppendWrite | ListDeleteWrite;\n\nfunction validateAddress(namespace: string, key: string): void {\n\tif (namespace.length === 0) throw new TypeError(\"Value namespace must not be empty\");\n\tif (namespace.includes(\"\\u0000\")) throw new TypeError(\"Value namespace must not contain \\\\u0000\");\n\tif (key.includes(\"\\u0000\")) throw new TypeError(\"Value key must not contain \\\\u0000\");\n}\n\nexport function value<T>(namespace: string, key = \"\"): Value<T> {\n\tvalidateAddress(namespace, key);\n\treturn Object.freeze({ namespace, key, kind: \"value\" }) as Value<T>;\n}\n\nexport function list<T>(namespace: string, key = \"\"): ValueList<T> {\n\tvalidateAddress(namespace, key);\n\treturn Object.freeze({ namespace, key, kind: \"list\" }) as ValueList<T>;\n}\n\nexport function setValue<T>(address: Value<T>, next: NoInfer<T>): ValueSetWrite {\n\treturn {\n\t\tkind: \"value\",\n\t\top: \"set\",\n\t\tnamespace: address.namespace,\n\t\tkey: address.key,\n\t\tvalue: next,\n\t};\n}\n\nexport function deleteValue<T>(address: Value<T>): ValueDeleteWrite {\n\treturn {\n\t\tkind: \"value\",\n\t\top: \"delete\",\n\t\tnamespace: address.namespace,\n\t\tkey: address.key,\n\t};\n}\n\nexport function appendList<T>(address: ValueList<T>, element: NoInfer<T>): ListAppendWrite {\n\treturn {\n\t\tkind: \"list\",\n\t\top: \"append\",\n\t\tnamespace: address.namespace,\n\t\tkey: address.key,\n\t\tvalue: element,\n\t};\n}\n\nexport function deleteList<T>(address: ValueList<T>): ListDeleteWrite {\n\treturn {\n\t\tkind: \"list\",\n\t\top: \"delete\",\n\t\tnamespace: address.namespace,\n\t\tkey: address.key,\n\t};\n}\n\nexport function resolveListReadOptions(options: ListReadOptions = {}): ResolvedListReadOptions {\n\tconst requestedLimit = options.limit ?? 1_000;\n\tif (!Number.isSafeInteger(requestedLimit) || requestedLimit <= 0) {\n\t\tthrow new TypeError(\"List read limit must be a positive safe integer\");\n\t}\n\treturn {\n\t\t...(options.cursor === undefined ? {} : { cursor: options.cursor }),\n\t\torder: options.order ?? \"asc\",\n\t\tlimit: Math.min(requestedLimit, 10_000),\n\t};\n}\n\nexport const branchTip = (branch: string) => value<string | null>(\"pi.branch.tip\", branch);\nexport const branchTipInventoryPrefix = () => value<string | null>(\"pi.branch.tip\");\nexport const laneConfig = (lane: string) => value<LaneConfiguration>(\"pi.lane.config\", lane);\nexport const laneState = (lane: string) => value<LaneState>(\"pi.lane.state\", lane);\nexport const operationResult = (operationId: string) => value<OperationResultRecord>(\"pi.result\", operationId);\n\nexport const operationMeta = (operationId: string) => value<OperationMeta>(\"pi.op.meta\", operationId);\nexport const operationState = (operationId: string) => value<OperationState>(\"pi.op.state\", operationId);\nexport const operationToolArgs = (operationId: string, stepId: string, sourceIndex: number) =>\n\tvalue<Record<string, JsonValue>>(\"pi.op.tool_args\", `${operationId}:${stepId}:${sourceIndex}`);\nexport const operationToolMemo = (operationId: string, invocationId: string, name: string) =>\n\tvalue<JsonValue>(\"pi.op.tool_memo\", `${operationId}:${invocationId}:${name}`);\nexport const operationPreparation = (operationId: string, taskId: string) =>\n\tvalue<DurableStructuralPreparation>(\"pi.op.preparation\", `${operationId}:${taskId}`);\n\nexport const operationToolArgsPrefix = (operationId: string, stepId?: string) =>\n\tvalue<Record<string, JsonValue>>(\n\t\t\"pi.op.tool_args\",\n\t\tstepId === undefined ? `${operationId}:` : `${operationId}:${stepId}:`,\n\t);\nexport const operationToolMemoPrefix = (operationId: string, invocationId?: string) =>\n\tvalue<JsonValue>(\n\t\t\"pi.op.tool_memo\",\n\t\tinvocationId === undefined ? `${operationId}:` : `${operationId}:${invocationId}:`,\n\t);\nexport const operationPreparationPrefix = (operationId: string) =>\n\tvalue<DurableStructuralPreparation>(\"pi.op.preparation\", `${operationId}:`);\n\nexport const pendingEntry = (entryId: string) => value<PendingEntry>(\"pi.pending.entry\", entryId);\nexport const pendingToolOutput = (operationId: string, invocationId: string) =>\n\tvalue<AgentToolResult<unknown>>(\"pi.pending.tool_output\", `${operationId}:${invocationId}`);\nexport const pendingAssistantFrames = (operationId: string, responseEntryId: string) =>\n\tlist<AssistantMessageFrame>(\"pi.pending.assistant_frame\", `${operationId}:${responseEntryId}`);\nexport const pendingToolOutputPrefix = (operationId: string) =>\n\tvalue<AgentToolResult<unknown>>(\"pi.pending.tool_output\", `${operationId}:`);\n\nexport const sessionName = value<string>(\"pi.session.name\");\nexport const entryLabel = (entryId: string) => value<string>(\"pi.entry.label\", entryId);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/harness/skills.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,KAAK,YAAY,EAA8B,KAAK,KAAK,EAAW,MAAM,YAAY,CAAC;AAQhG,MAAM,MAAM,mBAAmB,GAC5B,kBAAkB,GAClB,aAAa,GACb,aAAa,GACb,cAAc,GACd,kBAAkB,CAAC;AAEtB,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC/B,gEAAgE;IAChE,IAAI,EAAE,SAAS,CAAC;IAChB,8BAA8B;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;CACb;AASD,2FAA2F;AAC3F,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,sBAAsB,CAAC,EAAE,MAAM,GAAG,MAAM,CAG3F;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC/B,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,OAAO,EAAE,OAAO,GACd,OAAO,CAAC;IAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAAC,WAAW,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,CAuB9D;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,SAAS,KAAK,GAAG,KAAK,EAC5E,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,EAChD,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,GAAG,SAAS,EACnF,OAAO,EAAE,OAAO,GACd,OAAO,CAAC;IACV,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAClD,WAAW,EAAE,KAAK,CAAC,eAAe,GAAG;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC1D,CAAC,CAcD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/harness/skills.ts"],"names":[],"mappings":"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","sourcesContent":["import ignore from \"ignore\";\nimport { parse } from \"yaml\";\nimport type { Context } from \"./context.ts\";\nimport { type ExecutionEnv, type FileInfo, type Result, type Skill, toError } from \"./types.ts\";\n\nconst MAX_NAME_LENGTH = 64;\nconst MAX_DESCRIPTION_LENGTH = 1024;\nconst IGNORE_FILE_NAMES = [\".gitignore\", \".ignore\", \".fdignore\"];\n\ntype IgnoreMatcher = ReturnType<typeof ignore>;\n\nexport type SkillDiagnosticCode =\n\t| \"file_info_failed\"\n\t| \"list_failed\"\n\t| \"read_failed\"\n\t| \"parse_failed\"\n\t| \"invalid_metadata\";\n\n/** Warning produced while loading skills. */\nexport interface SkillDiagnostic {\n\t/** Diagnostic severity. Currently only warnings are emitted. */\n\ttype: \"warning\";\n\t/** Stable diagnostic code. */\n\tcode: SkillDiagnosticCode;\n\t/** Human-readable diagnostic message. */\n\tmessage: string;\n\t/** Path associated with the diagnostic. */\n\tpath: string;\n}\n\ninterface SkillFrontmatter {\n\tname?: string;\n\tdescription?: string;\n\t\"disable-model-invocation\"?: boolean;\n\t[key: string]: unknown;\n}\n\n/** Format a skill invocation prompt, optionally appending additional user instructions. */\nexport function formatSkillInvocation(skill: Skill, additionalInstructions?: string): string {\n\tconst skillBlock = `<skill name=\"${skill.name}\" location=\"${skill.filePath}\">\\nReferences are relative to ${dirnameEnvPath(skill.filePath)}.\\n\\n${skill.content}\\n</skill>`;\n\treturn additionalInstructions ? `${skillBlock}\\n\\n${additionalInstructions}` : skillBlock;\n}\n\n/**\n * Load skills from one or more directories.\n *\n * Traverses directories recursively, loads `SKILL.md` files, loads direct root `.md` files with skill\n * frontmatter, honors ignore files, and returns diagnostics for invalid declared skill files. Missing input\n * directories are skipped.\n */\nexport async function loadSkills(\n\tenv: ExecutionEnv,\n\tdirs: string | string[],\n\tcontext: Context,\n): Promise<{ skills: Skill[]; diagnostics: SkillDiagnostic[] }> {\n\tconst skills: Skill[] = [];\n\tconst diagnostics: SkillDiagnostic[] = [];\n\tfor (const dir of Array.isArray(dirs) ? dirs : [dirs]) {\n\t\tconst rootInfoResult = await env.fileInfo(dir, context);\n\t\tif (!rootInfoResult.ok) {\n\t\t\tif (rootInfoResult.error.code !== \"not_found\") {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\ttype: \"warning\",\n\t\t\t\t\tcode: \"file_info_failed\",\n\t\t\t\t\tmessage: rootInfoResult.error.message,\n\t\t\t\t\tpath: dir,\n\t\t\t\t});\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tconst rootInfo = rootInfoResult.value;\n\t\tif ((await resolveKind(env, rootInfo, diagnostics, context)) !== \"directory\") continue;\n\t\tconst result = await loadSkillsFromDirInternal(env, rootInfo.path, true, ignore(), rootInfo.path, context);\n\t\tskills.push(...result.skills);\n\t\tdiagnostics.push(...result.diagnostics);\n\t}\n\treturn { skills, diagnostics };\n}\n\n/**\n * Load skills from source-tagged directories.\n *\n * Source values are preserved exactly and attached to every loaded skill and diagnostic. The agent package does not\n * interpret source values; applications define their own provenance shape.\n */\nexport async function loadSourcedSkills<TSource, TSkill extends Skill = Skill>(\n\tenv: ExecutionEnv,\n\tinputs: Array<{ path: string; source: TSource }>,\n\tmapSkill: ((skill: Skill, source: TSource, context: Context) => TSkill) | undefined,\n\tcontext: Context,\n): Promise<{\n\tskills: Array<{ skill: TSkill; source: TSource }>;\n\tdiagnostics: Array<SkillDiagnostic & { source: TSource }>;\n}> {\n\tconst skills: Array<{ skill: TSkill; source: TSource }> = [];\n\tconst diagnostics: Array<SkillDiagnostic & { source: TSource }> = [];\n\tfor (const input of inputs) {\n\t\tconst result = await loadSkills(env, input.path, context);\n\t\tfor (const skill of result.skills) {\n\t\t\tskills.push({\n\t\t\t\tskill: mapSkill ? mapSkill(skill, input.source, context) : (skill as TSkill),\n\t\t\t\tsource: input.source,\n\t\t\t});\n\t\t}\n\t\tfor (const diagnostic of result.diagnostics) diagnostics.push({ ...diagnostic, source: input.source });\n\t}\n\treturn { skills, diagnostics };\n}\n\nasync function loadSkillsFromDirInternal(\n\tenv: ExecutionEnv,\n\tdir: string,\n\tincludeRootFiles: boolean,\n\tignoreMatcher: IgnoreMatcher,\n\trootDir: string,\n\tcontext: Context,\n): Promise<{ skills: Skill[]; diagnostics: SkillDiagnostic[] }> {\n\tconst skills: Skill[] = [];\n\tconst diagnostics: SkillDiagnostic[] = [];\n\n\tconst dirInfoResult = await env.fileInfo(dir, context);\n\tif (!dirInfoResult.ok) {\n\t\tif (dirInfoResult.error.code !== \"not_found\") {\n\t\t\tdiagnostics.push({\n\t\t\t\ttype: \"warning\",\n\t\t\t\tcode: \"file_info_failed\",\n\t\t\t\tmessage: dirInfoResult.error.message,\n\t\t\t\tpath: dir,\n\t\t\t});\n\t\t}\n\t\treturn { skills, diagnostics };\n\t}\n\tconst dirInfo = dirInfoResult.value;\n\tif ((await resolveKind(env, dirInfo, diagnostics, context)) !== \"directory\") return { skills, diagnostics };\n\n\tawait addIgnoreRules(env, ignoreMatcher, dir, rootDir, diagnostics, context);\n\n\tconst entriesResult = await env.listDir(dir, context);\n\tif (!entriesResult.ok) {\n\t\tdiagnostics.push({ type: \"warning\", code: \"list_failed\", message: entriesResult.error.message, path: dir });\n\t\treturn { skills, diagnostics };\n\t}\n\tconst entries = entriesResult.value;\n\n\tfor (const entry of entries) {\n\t\tif (entry.name !== \"SKILL.md\") continue;\n\t\tconst fullPath = entry.path;\n\t\tconst kind = await resolveKind(env, entry, diagnostics, context);\n\t\tif (kind !== \"file\") continue;\n\t\tconst relPath = relativeEnvPath(rootDir, fullPath);\n\t\tif (ignoreMatcher.ignores(relPath)) continue;\n\n\t\tconst result = await loadSkillFromFile(env, fullPath, dirInfo.name, context);\n\t\tif (result.skill) skills.push(result.skill);\n\t\tdiagnostics.push(...result.diagnostics);\n\t\treturn { skills, diagnostics };\n\t}\n\n\tfor (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {\n\t\tif (entry.name.startsWith(\".\") || entry.name === \"node_modules\") continue;\n\t\tconst fullPath = entry.path;\n\t\tconst kind = await resolveKind(env, entry, diagnostics, context);\n\t\tif (!kind) continue;\n\n\t\tconst relPath = relativeEnvPath(rootDir, fullPath);\n\t\tconst ignorePath = kind === \"directory\" ? `${relPath}/` : relPath;\n\t\tif (ignoreMatcher.ignores(ignorePath)) continue;\n\n\t\tif (kind === \"directory\") {\n\t\t\tconst result = await loadSkillsFromDirInternal(env, fullPath, false, ignoreMatcher, rootDir, context);\n\t\t\tskills.push(...result.skills);\n\t\t\tdiagnostics.push(...result.diagnostics);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (kind !== \"file\" || !includeRootFiles || !entry.name.endsWith(\".md\")) continue;\n\t\tconst result = await loadSkillFromFile(env, fullPath, dirInfo.name, context);\n\t\tif (result.skill) skills.push(result.skill);\n\t\tdiagnostics.push(...result.diagnostics);\n\t}\n\n\treturn { skills, diagnostics };\n}\n\nasync function addIgnoreRules(\n\tenv: ExecutionEnv,\n\tig: IgnoreMatcher,\n\tdir: string,\n\trootDir: string,\n\tdiagnostics: SkillDiagnostic[],\n\tcontext: Context,\n): Promise<void> {\n\tconst relativeDir = relativeEnvPath(rootDir, dir);\n\tconst prefix = relativeDir ? `${relativeDir}/` : \"\";\n\n\tfor (const filename of IGNORE_FILE_NAMES) {\n\t\tconst ignorePathResult = await env.joinPath([dir, filename], context);\n\t\tif (!ignorePathResult.ok) {\n\t\t\tdiagnostics.push({\n\t\t\t\ttype: \"warning\",\n\t\t\t\tcode: \"file_info_failed\",\n\t\t\t\tmessage: ignorePathResult.error.message,\n\t\t\t\tpath: dir,\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tconst ignorePath = ignorePathResult.value;\n\t\tconst info = await env.fileInfo(ignorePath, context);\n\t\tif (!info.ok) {\n\t\t\tif (info.error.code !== \"not_found\") {\n\t\t\t\tdiagnostics.push({\n\t\t\t\t\ttype: \"warning\",\n\t\t\t\t\tcode: \"file_info_failed\",\n\t\t\t\t\tmessage: info.error.message,\n\t\t\t\t\tpath: ignorePath,\n\t\t\t\t});\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (info.value.kind !== \"file\") continue;\n\t\tconst content = await env.readTextFile(ignorePath, context);\n\t\tif (!content.ok) {\n\t\t\tdiagnostics.push({ type: \"warning\", code: \"read_failed\", message: content.error.message, path: ignorePath });\n\t\t\tcontinue;\n\t\t}\n\t\tconst patterns = content.value\n\t\t\t.split(/\\r?\\n/)\n\t\t\t.map((line) => prefixIgnorePattern(line, prefix))\n\t\t\t.filter((line): line is string => Boolean(line));\n\t\tif (patterns.length > 0) ig.add(patterns);\n\t}\n}\n\nfunction prefixIgnorePattern(line: string, prefix: string): string | null {\n\tconst trimmed = line.trim();\n\tif (!trimmed) return null;\n\tif (trimmed.startsWith(\"#\") && !trimmed.startsWith(\"\\\\#\")) return null;\n\n\tlet pattern = line;\n\tlet negated = false;\n\tif (pattern.startsWith(\"!\")) {\n\t\tnegated = true;\n\t\tpattern = pattern.slice(1);\n\t} else if (pattern.startsWith(\"\\\\!\")) {\n\t\tpattern = pattern.slice(1);\n\t}\n\tif (pattern.startsWith(\"/\")) pattern = pattern.slice(1);\n\tconst prefixed = prefix ? `${prefix}${pattern}` : pattern;\n\treturn negated ? `!${prefixed}` : prefixed;\n}\n\nasync function loadSkillFromFile(\n\tenv: ExecutionEnv,\n\tfilePath: string,\n\tparentDirName: string,\n\tcontext: Context,\n): Promise<{ skill: Skill | null; diagnostics: SkillDiagnostic[] }> {\n\tconst diagnostics: SkillDiagnostic[] = [];\n\tconst isDeclaredSkill =\n\t\tfilePath\n\t\t\t.replace(/[\\\\/]+$/, \"\")\n\t\t\t.split(/[\\\\/]/)\n\t\t\t.pop() === \"SKILL.md\";\n\tconst rawContent = await env.readTextFile(filePath, context);\n\tif (!rawContent.ok) {\n\t\tdiagnostics.push({ type: \"warning\", code: \"read_failed\", message: rawContent.error.message, path: filePath });\n\t\treturn { skill: null, diagnostics };\n\t}\n\n\tconst parsed = parseFrontmatter<SkillFrontmatter>(rawContent.value);\n\tif (!parsed.ok) {\n\t\tif (isDeclaredSkill) {\n\t\t\tdiagnostics.push({ type: \"warning\", code: \"parse_failed\", message: parsed.error.message, path: filePath });\n\t\t}\n\t\treturn { skill: null, diagnostics };\n\t}\n\n\tconst { frontmatter, body } = parsed.value;\n\tconst description = typeof frontmatter.description === \"string\" ? frontmatter.description : undefined;\n\tif (!isDeclaredSkill && (!description || description.trim() === \"\")) {\n\t\treturn { skill: null, diagnostics };\n\t}\n\n\tfor (const error of validateDescription(description)) {\n\t\tdiagnostics.push({ type: \"warning\", code: \"invalid_metadata\", message: error, path: filePath });\n\t}\n\n\tconst frontmatterName = typeof frontmatter.name === \"string\" ? frontmatter.name : undefined;\n\tconst name = frontmatterName || parentDirName;\n\tfor (const error of validateName(name, parentDirName)) {\n\t\tdiagnostics.push({ type: \"warning\", code: \"invalid_metadata\", message: error, path: filePath });\n\t}\n\n\tif (!description || description.trim() === \"\") {\n\t\treturn { skill: null, diagnostics };\n\t}\n\n\treturn {\n\t\tskill: {\n\t\t\tname,\n\t\t\tdescription,\n\t\t\tcontent: body,\n\t\t\tfilePath,\n\t\t\tdisableModelInvocation: frontmatter[\"disable-model-invocation\"] === true,\n\t\t},\n\t\tdiagnostics,\n\t};\n}\n\nfunction validateName(name: string, parentDirName: string): string[] {\n\tconst errors: string[] = [];\n\tif (name !== parentDirName) errors.push(`name \"${name}\" does not match parent directory \"${parentDirName}\"`);\n\tif (name.length > MAX_NAME_LENGTH) errors.push(`name exceeds ${MAX_NAME_LENGTH} characters (${name.length})`);\n\tif (!/^[a-z0-9-]+$/.test(name)) {\n\t\terrors.push(\"name contains invalid characters (must be lowercase a-z, 0-9, hyphens only)\");\n\t}\n\tif (name.startsWith(\"-\") || name.endsWith(\"-\")) errors.push(\"name must not start or end with a hyphen\");\n\tif (name.includes(\"--\")) errors.push(\"name must not contain consecutive hyphens\");\n\treturn errors;\n}\n\nfunction validateDescription(description: string | undefined): string[] {\n\tconst errors: string[] = [];\n\tif (!description || description.trim() === \"\") {\n\t\terrors.push(\"description is required\");\n\t} else if (description.length > MAX_DESCRIPTION_LENGTH) {\n\t\terrors.push(`description exceeds ${MAX_DESCRIPTION_LENGTH} characters (${description.length})`);\n\t}\n\treturn errors;\n}\n\nfunction parseFrontmatter<T extends Record<string, unknown>>(\n\tcontent: string,\n): Result<{ frontmatter: T; body: string }, Error> {\n\ttry {\n\t\tconst normalized = content.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\");\n\t\tif (!normalized.startsWith(\"---\")) return { ok: true, value: { frontmatter: {} as T, body: normalized } };\n\t\tconst endIndex = normalized.indexOf(\"\\n---\", 3);\n\t\tif (endIndex === -1) return { ok: true, value: { frontmatter: {} as T, body: normalized } };\n\t\tconst yamlString = normalized.slice(4, endIndex);\n\t\tconst body = normalized.slice(endIndex + 4).trim();\n\t\treturn { ok: true, value: { frontmatter: (parse(yamlString) ?? {}) as T, body } };\n\t} catch (error) {\n\t\treturn { ok: false, error: toError(error) };\n\t}\n}\n\nasync function resolveKind(\n\tenv: ExecutionEnv,\n\tinfo: FileInfo,\n\tdiagnostics: SkillDiagnostic[],\n\tcontext: Context,\n): Promise<\"file\" | \"directory\" | undefined> {\n\tif (info.kind === \"file\" || info.kind === \"directory\") return info.kind;\n\tconst canonicalPath = await env.canonicalPath(info.path, context);\n\tif (!canonicalPath.ok) {\n\t\tif (canonicalPath.error.code !== \"not_found\") {\n\t\t\tdiagnostics.push({\n\t\t\t\ttype: \"warning\",\n\t\t\t\tcode: \"file_info_failed\",\n\t\t\t\tmessage: canonicalPath.error.message,\n\t\t\t\tpath: info.path,\n\t\t\t});\n\t\t}\n\t\treturn undefined;\n\t}\n\tconst target = await env.fileInfo(canonicalPath.value, context);\n\tif (!target.ok) {\n\t\tif (target.error.code !== \"not_found\") {\n\t\t\tdiagnostics.push({\n\t\t\t\ttype: \"warning\",\n\t\t\t\tcode: \"file_info_failed\",\n\t\t\t\tmessage: target.error.message,\n\t\t\t\tpath: info.path,\n\t\t\t});\n\t\t}\n\t\treturn undefined;\n\t}\n\treturn target.value.kind === \"file\" || target.value.kind === \"directory\" ? target.value.kind : undefined;\n}\n\nfunction dirnameEnvPath(path: string): string {\n\tconst normalized = path.replace(/[\\\\/]+$/, \"\");\n\tconst separatorIndex = Math.max(normalized.lastIndexOf(\"/\"), normalized.lastIndexOf(\"\\\\\"));\n\tif (separatorIndex === 2 && normalized[1] === \":\") return normalized.slice(0, 3);\n\treturn separatorIndex <= 0 ? \"/\" : normalized.slice(0, separatorIndex);\n}\n\nfunction relativeEnvPath(root: string, path: string): string {\n\tconst normalizedRoot = root.replace(/\\\\/g, \"/\").replace(/\\/+$/, \"\");\n\tconst normalizedPath = path.replace(/\\\\/g, \"/\").replace(/\\/+$/, \"\");\n\tif (normalizedPath === normalizedRoot) return \"\";\n\treturn normalizedPath.startsWith(`${normalizedRoot}/`)\n\t\t? normalizedPath.slice(normalizedRoot.length + 1)\n\t\t: normalizedPath.replace(/^\\/+/, \"\");\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/harness/system-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAsBnE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/harness/system-prompt.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,2BAA2B,CAAC,MAAe;IAC1D,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC9E,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE1C,MAAM,KAAK,GAAG;QACb,2EAA2E;QAC3E,iEAAiE;QACjE,8KAA8K;QAC9K,EAAE;QACF,oBAAoB;KACpB,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,oBAAoB,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,iBAAiB,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC/B,OAAO,KAAK;SACV,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC3B,CAAC","sourcesContent":["import type { Skill } from \"./types.ts\";\n\nexport function formatSkillsForSystemPrompt(skills: Skill[]): string {\n\tconst visibleSkills = skills.filter((skill) => !skill.disableModelInvocation);\n\tif (visibleSkills.length === 0) return \"\";\n\n\tconst lines = [\n\t\t\"The following skills provide specialized instructions for specific tasks.\",\n\t\t\"Read the full skill file when the task matches its description.\",\n\t\t\"When a skill file references a relative path, resolve it against the skill directory (parent of SKILL.md / dirname of the path) and use that absolute path in tool commands.\",\n\t\t\"\",\n\t\t\"<available_skills>\",\n\t];\n\n\tfor (const skill of visibleSkills) {\n\t\tlines.push(\" <skill>\");\n\t\tlines.push(` <name>${escapeXml(skill.name)}</name>`);\n\t\tlines.push(` <description>${escapeXml(skill.description)}</description>`);\n\t\tlines.push(` <location>${escapeXml(skill.filePath)}</location>`);\n\t\tlines.push(\" </skill>\");\n\t}\n\n\tlines.push(\"</available_skills>\");\n\treturn lines.join(\"\\n\");\n}\n\nfunction escapeXml(value: string): string {\n\treturn value\n\t\t.replace(/&/g, \"&amp;\")\n\t\t.replace(/</g, \"&lt;\")\n\t\t.replace(/>/g, \"&gt;\")\n\t\t.replace(/\"/g, \"&quot;\")\n\t\t.replace(/'/g, \"&apos;\");\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/harness/telemetry.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/harness/telemetry.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tExactTelemetryAttributes,\n\tSchemaTelemetrySpan,\n\tTelemetrySchemaDefinition,\n\tTelemetrySchemaSpanEndAttributes,\n\tTelemetrySchemaSpanEventAttributes,\n\tTelemetrySchemaSpanEventName,\n\tTelemetrySchemaSpanName,\n\tTelemetrySchemaSpanStartAttributes,\n\tTelemetrySchemaSpanUnion,\n\tTelemetrySpan,\n} from \"@earendil-works/pi-telemetry\";\nimport { type Context, getTelemetryContext, withTelemetryContext } from \"./context.ts\";\n\nexport type {\n\tAttributeValue,\n\tExactTelemetryAttributes,\n\tSchemaTelemetrySpan,\n\tSpanAttributes,\n\tSpanOptions,\n\tSpanStatus,\n\tTelemetryAttributeDefinition,\n\tTelemetryAttributeMetadata,\n\tTelemetryAttributeType,\n\tTelemetryContext,\n\tTelemetryEventAttributeDefinition,\n\tTelemetryEventDefinition,\n\tTelemetryParentDefinition,\n\tTelemetrySchemaDefinition,\n\tTelemetrySchemaSpanEndAttributes,\n\tTelemetrySchemaSpanEventAttributes,\n\tTelemetrySchemaSpanEventName,\n\tTelemetrySchemaSpanName,\n\tTelemetrySchemaSpanStartAttributes,\n\tTelemetrySchemaSpanUnion,\n\tTelemetrySpan,\n\tTelemetrySpanDefinition,\n\tTelemetryStartAttributeDefinition,\n\tTypedSpanStarter,\n} from \"@earendil-works/pi-telemetry\";\n\nexport const AI_TELEMETRY_SCHEMA = {\n\tversion: 1,\n\tspans: {\n\t\t\"pi.ai.request\": {\n\t\t\tdescription: \"One logical request to an AI provider\",\n\t\t\tparents: { kind: \"any\" },\n\t\t\tstartAttributes: {\n\t\t\t\t\"pi.ai.operation\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvalues: [\"stream\", \"fetch_deferred\", \"cancel_deferred\", \"generate_images\"],\n\t\t\t\t\tdescription: \"Logical provider operation\",\n\t\t\t\t},\n\t\t\t\t\"pi.ai.provider\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdescription: \"Selected provider id\",\n\t\t\t\t},\n\t\t\t\t\"pi.ai.model\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdescription: \"Requested model id\",\n\t\t\t\t},\n\t\t\t\t\"pi.ai.api\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdescription: \"Provider API id\",\n\t\t\t\t},\n\t\t\t\t\"pi.ai.streaming\": {\n\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdescription: \"Whether this operation returns a stream\",\n\t\t\t\t},\n\t\t\t\t\"pi.ai.deferred\": {\n\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tdescription: \"Whether the operation requests or participates in deferred execution\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tendAttributes: {\n\t\t\t\t\"pi.ai.response.model\": { type: \"string\", description: \"Concrete response model\" },\n\t\t\t\t\"pi.ai.response.id\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Provider response id\",\n\t\t\t\t},\n\t\t\t\t\"pi.ai.response.stop_reason\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalues: [\"stop\", \"length\", \"tool_use\", \"error\", \"aborted\", \"deferred\"],\n\t\t\t\t\tdescription: \"Normalized terminal response reason\",\n\t\t\t\t},\n\t\t\t\t\"pi.ai.http.status_code\": { type: \"number\", description: \"Final HTTP status\" },\n\t\t\t\t\"pi.ai.usage.input_tokens\": { type: \"number\", description: \"Reported input tokens\" },\n\t\t\t\t\"pi.ai.usage.output_tokens\": { type: \"number\", description: \"Reported output tokens\" },\n\t\t\t\t\"pi.ai.usage.cache_read_tokens\": { type: \"number\", description: \"Reported cache-read tokens\" },\n\t\t\t\t\"pi.ai.usage.cache_write_tokens\": {\n\t\t\t\t\ttype: \"number\",\n\t\t\t\t\tdescription: \"Reported cache-write tokens\",\n\t\t\t\t},\n\t\t\t\t\"pi.ai.usage.reasoning_tokens\": { type: \"number\", description: \"Reported reasoning tokens\" },\n\t\t\t\t\"pi.ai.usage.total_tokens\": { type: \"number\", description: \"Reported total tokens\" },\n\t\t\t\t\"pi.ai.usage.cost\": { type: \"number\", description: \"Reported total cost\" },\n\t\t\t\t\"pi.ai.stream.chunk_count\": { type: \"number\", description: \"Streamed update chunk count\" },\n\t\t\t\t\"pi.ai.stream.time_to_first_chunk_ms\": {\n\t\t\t\t\ttype: \"number\",\n\t\t\t\t\tdescription: \"Elapsed milliseconds to first update chunk\",\n\t\t\t\t},\n\t\t\t\t\"pi.ai.error.type\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tcardinality: \"low\",\n\t\t\t\t\tdescription: \"Provider or transport error class\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tstatus: { default: \"ok\", errorWhen: \"The operation throws or returns an error result\" },\n\t\t},\n\t},\n} as const satisfies TelemetrySchemaDefinition;\n\nexport type AiSpanName = TelemetrySchemaSpanName<typeof AI_TELEMETRY_SCHEMA>;\nexport type AiSpanStartAttributes<Name extends AiSpanName> = TelemetrySchemaSpanStartAttributes<\n\ttypeof AI_TELEMETRY_SCHEMA,\n\tName\n>;\nexport type AiSpanEndAttributes<Name extends AiSpanName> = TelemetrySchemaSpanEndAttributes<\n\ttypeof AI_TELEMETRY_SCHEMA,\n\tName\n>;\nexport type AiSpanAttributes<Name extends AiSpanName> = AiSpanStartAttributes<Name> & AiSpanEndAttributes<Name>;\nexport type AiSpanEventName<Name extends AiSpanName> = TelemetrySchemaSpanEventName<typeof AI_TELEMETRY_SCHEMA, Name>;\nexport type AiSpanEventAttributes<\n\tName extends AiSpanName,\n\tEventName extends AiSpanEventName<Name>,\n> = TelemetrySchemaSpanEventAttributes<typeof AI_TELEMETRY_SCHEMA, Name, EventName>;\nexport type AiTelemetrySpan<Name extends AiSpanName> = SchemaTelemetrySpan<typeof AI_TELEMETRY_SCHEMA, Name>;\nexport type AiSpan = TelemetrySchemaSpanUnion<typeof AI_TELEMETRY_SCHEMA>;\n\nexport function startAiSpan<Name extends AiSpanName, const Attributes extends AiSpanStartAttributes<Name>, Result>(\n\tname: Name,\n\tattributes: ExactTelemetryAttributes<AiSpanStartAttributes<Name>, Attributes>,\n\tcallback: (span: AiTelemetrySpan<Name>, context: Context) => Result | Promise<Result>,\n\tcontext: Context,\n): Promise<Result> {\n\treturn getTelemetryContext(context).startSpan({ name, attributes }, (span) =>\n\t\tcallback(span as AiTelemetrySpan<Name>, withTelemetryContext(span, context)),\n\t);\n}\n\nconst HOOK_NAMES = [\n\t\"before_run\",\n\t\"before_drive\",\n\t\"before_run_end\",\n\t\"transform_context\",\n\t\"before_request\",\n\t\"before_payload\",\n\t\"after_response\",\n\t\"before_tool\",\n\t\"after_tool\",\n\t\"before_compaction\",\n\t\"before_navigation\",\n] as const;\n\nconst EVENT_TYPES = [\n\t\"run_start\",\n\t\"run_resume\",\n\t\"run_suspend\",\n\t\"operation_abort\",\n\t\"run_end\",\n\t\"fault\",\n\t\"handler_error\",\n\t\"turn_start\",\n\t\"turn_end\",\n\t\"retry_scheduled\",\n\t\"retry_start\",\n\t\"retry_end\",\n\t\"message_start\",\n\t\"message_update\",\n\t\"message_end\",\n\t\"tool_start\",\n\t\"tool_update\",\n\t\"tool_end\",\n\t\"entry_added\",\n\t\"queue_update\",\n\t\"value_update\",\n\t\"config_update\",\n\t\"compaction_start\",\n\t\"compaction_end\",\n\t\"navigation_start\",\n\t\"navigation_end\",\n\t\"lane_created\",\n\t\"usage\",\n] as const;\n\nconst operationStartAttributes = {\n\t\"pi.session.id\": {\n\t\ttype: \"string\",\n\t\trequired: true,\n\t\tcardinality: \"high\",\n\t\tdescription: \"Session id\",\n\t},\n\t\"pi.lane.name\": {\n\t\ttype: \"string\",\n\t\trequired: true,\n\t\tcardinality: \"high\",\n\t\tdescription: \"Lane name\",\n\t},\n\t\"pi.operation.id\": {\n\t\ttype: \"string\",\n\t\trequired: true,\n\t\tcardinality: \"high\",\n\t\tdescription: \"Durable operation id\",\n\t},\n\t\"pi.operation.recovery\": {\n\t\ttype: \"boolean\",\n\t\trequired: true,\n\t\tdescription: \"Whether this invocation resumes durable work\",\n\t},\n} as const;\n\nconst operationErrorAttributes = {\n\t\"pi.error.code\": {\n\t\ttype: \"string\",\n\t\tcardinality: \"low\",\n\t\tdescription: \"Stable operation error code\",\n\t},\n\t\"pi.error.type\": {\n\t\ttype: \"string\",\n\t\tcardinality: \"low\",\n\t\tdescription: \"Low-cardinality operation error class\",\n\t},\n} as const;\n\nexport const HARNESS_TELEMETRY_SCHEMA = {\n\tversion: 1,\n\tspans: {\n\t\t\"pi.harness.run\": {\n\t\t\tdescription: \"One admitted in-process run invocation\",\n\t\t\tparents: { kind: \"root_or_external\" },\n\t\t\tstartAttributes: {\n\t\t\t\t...operationStartAttributes,\n\t\t\t\t\"pi.operation.kind\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvalues: [\"run\"],\n\t\t\t\t\tdescription: \"Run operation kind\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tendAttributes: {\n\t\t\t\t\"pi.operation.outcome\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalues: [\"completed\", \"aborted\", \"failed\", \"suspended\"],\n\t\t\t\t\tdescription: \"Run invocation outcome\",\n\t\t\t\t},\n\t\t\t\t...operationErrorAttributes,\n\t\t\t},\n\t\t\tstatus: { default: \"ok\", errorWhen: \"The run fails or throws\" },\n\t\t},\n\t\t\"pi.harness.compaction\": {\n\t\t\tdescription: \"One admitted in-process manual compaction invocation\",\n\t\t\tparents: { kind: \"root_or_external\" },\n\t\t\tstartAttributes: {\n\t\t\t\t...operationStartAttributes,\n\t\t\t\t\"pi.operation.kind\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvalues: [\"compaction\"],\n\t\t\t\t\tdescription: \"Compaction operation kind\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tendAttributes: {\n\t\t\t\t\"pi.operation.outcome\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalues: [\"completed\", \"declined\", \"aborted\", \"failed\"],\n\t\t\t\t\tdescription: \"Compaction invocation outcome\",\n\t\t\t\t},\n\t\t\t\t...operationErrorAttributes,\n\t\t\t},\n\t\t\tstatus: { default: \"ok\", errorWhen: \"The compaction fails or throws\" },\n\t\t},\n\t\t\"pi.harness.navigation\": {\n\t\t\tdescription: \"One admitted in-process navigation invocation\",\n\t\t\tparents: { kind: \"root_or_external\" },\n\t\t\tstartAttributes: {\n\t\t\t\t...operationStartAttributes,\n\t\t\t\t\"pi.operation.kind\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvalues: [\"navigation\"],\n\t\t\t\t\tdescription: \"Navigation operation kind\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tendAttributes: {\n\t\t\t\t\"pi.operation.outcome\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalues: [\"completed\", \"declined\", \"aborted\", \"failed\"],\n\t\t\t\t\tdescription: \"Navigation invocation outcome\",\n\t\t\t\t},\n\t\t\t\t...operationErrorAttributes,\n\t\t\t},\n\t\t\tstatus: { default: \"ok\", errorWhen: \"The navigation fails or throws\" },\n\t\t},\n\t\t\"pi.harness.checkpoint\": {\n\t\t\tdescription: \"One run checkpoint\",\n\t\t\tparents: { kind: \"spans\", spans: [\"pi.harness.run\"] },\n\t\t\tstartAttributes: {\n\t\t\t\t\"pi.lane.name\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Lane name\",\n\t\t\t\t},\n\t\t\t\t\"pi.operation.id\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Durable operation id\",\n\t\t\t\t},\n\t\t\t\t\"pi.checkpoint.kind\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvalues: [\"normal\", \"abort_reconcile\"],\n\t\t\t\t\tdescription: \"Checkpoint purpose\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tendAttributes: {},\n\t\t\tstatus: { default: \"ok\", errorWhen: \"Checkpoint work throws\" },\n\t\t},\n\t\t\"pi.harness.turn\": {\n\t\t\tdescription: \"One assistant response and its tool batch\",\n\t\t\tparents: { kind: \"spans\", spans: [\"pi.harness.run\"] },\n\t\t\tstartAttributes: {\n\t\t\t\t\"pi.lane.name\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Lane name\",\n\t\t\t\t},\n\t\t\t\t\"pi.operation.id\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Durable operation id\",\n\t\t\t\t},\n\t\t\t\t\"pi.turn.id\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Invocation-local turn id\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tendAttributes: {},\n\t\t\tstatus: { default: \"ok\", errorWhen: \"Turn work throws\" },\n\t\t},\n\t\t\"pi.harness.step\": {\n\t\t\tdescription: \"One durable retry attempt\",\n\t\t\tparents: {\n\t\t\t\tkind: \"spans\",\n\t\t\t\tspans: [\"pi.harness.turn\", \"pi.harness.checkpoint\", \"pi.harness.compaction\", \"pi.harness.navigation\"],\n\t\t\t},\n\t\t\tstartAttributes: {\n\t\t\t\t\"pi.lane.name\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Lane name\",\n\t\t\t\t},\n\t\t\t\t\"pi.operation.id\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Durable operation id\",\n\t\t\t\t},\n\t\t\t\t\"pi.step.kind\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvalues: [\"assistant\", \"compaction\", \"branch_summary\"],\n\t\t\t\t\tdescription: \"Retryable step kind\",\n\t\t\t\t},\n\t\t\t\t\"pi.step.attempt\": {\n\t\t\t\t\ttype: \"number\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdescription: \"One-based durable attempt number\",\n\t\t\t\t},\n\t\t\t\t\"pi.compaction.reason\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tvalues: [\"manual\", \"threshold\", \"overflow\"],\n\t\t\t\t\tdescription: \"Compaction trigger\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tendAttributes: {\n\t\t\t\t\"pi.step.outcome\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalues: [\"succeeded\", \"retry\", \"failed\", \"aborted\", \"deferred\", \"overflow\"],\n\t\t\t\t\tdescription: \"Attempt outcome\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tstatus: { default: \"ok\", errorWhen: \"The attempt retries, fails, or throws\" },\n\t\t},\n\t\t\"pi.harness.tool\": {\n\t\t\tdescription: \"One raw phase-2 tool execution\",\n\t\t\tparents: { kind: \"spans\", spans: [\"pi.harness.turn\", \"pi.harness.run\"] },\n\t\t\tstartAttributes: {\n\t\t\t\t\"pi.lane.name\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Lane name\",\n\t\t\t\t},\n\t\t\t\t\"pi.operation.id\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Durable operation id\",\n\t\t\t\t},\n\t\t\t\t\"pi.turn.id\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Invocation-local live turn id\",\n\t\t\t\t},\n\t\t\t\t\"pi.tool.name\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdescription: \"Tool name\",\n\t\t\t\t},\n\t\t\t\t\"pi.tool.call_id\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Tool call id\",\n\t\t\t\t},\n\t\t\t\t\"pi.tool.replay\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvalues: [\"never\", \"safe\"],\n\t\t\t\t\tdescription: \"Declared replay policy\",\n\t\t\t\t},\n\t\t\t\t\"pi.tool.recovery\": {\n\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdescription: \"Whether this is recovery execution\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tendAttributes: {\n\t\t\t\t\"pi.tool.is_error\": {\n\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\tdescription: \"Whether raw phase-2 execution returned an error\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tstatus: { default: \"ok\", errorWhen: \"Raw phase-2 execution returns an error\" },\n\t\t},\n\t\t\"pi.harness.hook\": {\n\t\t\tdescription: \"One registered hook handler invocation\",\n\t\t\tparents: { kind: \"any\" },\n\t\t\tstartAttributes: {\n\t\t\t\t\"pi.lane.name\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Lane name\",\n\t\t\t\t},\n\t\t\t\t\"pi.operation.id\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Durable operation id when accepted\",\n\t\t\t\t},\n\t\t\t\t\"pi.hook.name\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvalues: HOOK_NAMES,\n\t\t\t\t\tdescription: \"Hook name\",\n\t\t\t\t},\n\t\t\t\t\"pi.hook.registration_id\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tdescription: \"Optional hook registration metadata\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tendAttributes: {\n\t\t\t\t\"pi.hook.outcome\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalues: [\"completed\", \"skipped\", \"blocked\", \"failed\"],\n\t\t\t\t\tdescription: \"Handler outcome\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tstatus: { default: \"ok\", errorWhen: \"The handler throws\" },\n\t\t},\n\t\t\"pi.harness.sleep\": {\n\t\t\tdescription: \"One retry delay\",\n\t\t\tparents: {\n\t\t\t\tkind: \"spans\",\n\t\t\t\tspans: [\n\t\t\t\t\t\"pi.harness.run\",\n\t\t\t\t\t\"pi.harness.compaction\",\n\t\t\t\t\t\"pi.harness.navigation\",\n\t\t\t\t\t\"pi.harness.turn\",\n\t\t\t\t\t\"pi.harness.checkpoint\",\n\t\t\t\t],\n\t\t\t},\n\t\t\tstartAttributes: {\n\t\t\t\t\"pi.operation.id\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Durable operation id\",\n\t\t\t\t},\n\t\t\t\t\"pi.sleep.delay_ms\": {\n\t\t\t\t\ttype: \"number\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdescription: \"Requested delay in milliseconds\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tendAttributes: {\n\t\t\t\t\"pi.sleep.outcome\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalues: [\"elapsed\", \"aborted\"],\n\t\t\t\t\tdescription: \"Delay outcome\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tstatus: { default: \"ok\", errorWhen: \"Sleep work throws\" },\n\t\t},\n\t\t\"pi.harness.event_handler\": {\n\t\t\tdescription: \"One passive event listener invocation\",\n\t\t\tparents: { kind: \"any\" },\n\t\t\tstartAttributes: {\n\t\t\t\t\"pi.event.type\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcardinality: \"low\",\n\t\t\t\t\tvalues: EVENT_TYPES,\n\t\t\t\t\tdescription: \"Delivered harness event type\",\n\t\t\t\t},\n\t\t\t\t\"pi.lane.name\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Lane name for lane-scoped events\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tendAttributes: {},\n\t\t\tstatus: { default: \"ok\", errorWhen: \"The listener throws\" },\n\t\t},\n\t\t\"pi.session.write\": {\n\t\t\tdescription: \"One committed session transaction\",\n\t\t\tparents: { kind: \"any\" },\n\t\t\tstartAttributes: {\n\t\t\t\t\"pi.session.id\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Session id\",\n\t\t\t\t},\n\t\t\t\t\"pi.lane.name\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Lane name when supplied by the caller\",\n\t\t\t\t},\n\t\t\t\t\"pi.operation.id\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tcardinality: \"high\",\n\t\t\t\t\tdescription: \"Durable operation id when supplied by the caller\",\n\t\t\t\t},\n\t\t\t\t\"pi.session.item_count\": {\n\t\t\t\t\ttype: \"number\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdescription: \"Number of writes in the transaction\",\n\t\t\t\t},\n\t\t\t\t\"pi.session.item_kinds\": {\n\t\t\t\t\ttype: \"string[]\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\telementValues: [\"entry\", \"usage\", \"value\", \"list\"],\n\t\t\t\t\tdescription: \"Distinct write kinds in the transaction\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tendAttributes: {\n\t\t\t\t\"pi.session.first_seq\": {\n\t\t\t\t\ttype: \"number\",\n\t\t\t\t\tdescription: \"First committed sequence in the transaction\",\n\t\t\t\t},\n\t\t\t\t\"pi.session.last_seq\": {\n\t\t\t\t\ttype: \"number\",\n\t\t\t\t\tdescription: \"Last committed sequence in the transaction\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tstatus: { default: \"ok\", errorWhen: \"Storage rejects the transaction\" },\n\t\t},\n\t},\n} as const satisfies TelemetrySchemaDefinition;\n\n/** Combined typed span vocabulary for agent-owned AI-request and harness telemetry. */\nexport const AGENT_TELEMETRY_SCHEMAS = [AI_TELEMETRY_SCHEMA, HARNESS_TELEMETRY_SCHEMA] as const;\n\nexport type HarnessSpanName = TelemetrySchemaSpanName<typeof HARNESS_TELEMETRY_SCHEMA>;\nexport type HarnessSpanStartAttributes<Name extends HarnessSpanName> = TelemetrySchemaSpanStartAttributes<\n\ttypeof HARNESS_TELEMETRY_SCHEMA,\n\tName\n>;\nexport type HarnessSpanEndAttributes<Name extends HarnessSpanName> = TelemetrySchemaSpanEndAttributes<\n\ttypeof HARNESS_TELEMETRY_SCHEMA,\n\tName\n>;\nexport type HarnessSpanAttributes<Name extends HarnessSpanName> = HarnessSpanStartAttributes<Name> &\n\tHarnessSpanEndAttributes<Name>;\nexport type HarnessSpanEventName<Name extends HarnessSpanName> = TelemetrySchemaSpanEventName<\n\ttypeof HARNESS_TELEMETRY_SCHEMA,\n\tName\n>;\nexport type HarnessSpanEventAttributes<\n\tName extends HarnessSpanName,\n\tEventName extends HarnessSpanEventName<Name>,\n> = TelemetrySchemaSpanEventAttributes<typeof HARNESS_TELEMETRY_SCHEMA, Name, EventName>;\nexport type HarnessTelemetrySpan<Name extends HarnessSpanName> = SchemaTelemetrySpan<\n\ttypeof HARNESS_TELEMETRY_SCHEMA,\n\tName\n>;\nexport type HarnessSpan = TelemetrySchemaSpanUnion<typeof HARNESS_TELEMETRY_SCHEMA>;\n\nexport function startHarnessSpan<\n\tName extends HarnessSpanName,\n\tconst Attributes extends HarnessSpanStartAttributes<Name>,\n\tResult,\n>(\n\tname: Name,\n\tattributes: ExactTelemetryAttributes<HarnessSpanStartAttributes<Name>, Attributes>,\n\tcallback: (span: HarnessTelemetrySpan<Name>, context: Context) => Result | Promise<Result>,\n\tcontext: Context,\n): Promise<Result> {\n\treturn getTelemetryContext(context).startSpan({ name, attributes }, (span: TelemetrySpan) =>\n\t\tcallback(span as HarnessTelemetrySpan<Name>, withTelemetryContext(span, context)),\n\t);\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../src/harness/tools/bash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAmB,MAAM,aAAa,CAAC;AAG5F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAK9D,QAAA,MAAM,UAAU;;;EAGd,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;AAEtD,MAAM,WAAW,eAAe;IAC/B,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,WAAW,CAAC,QAAQ,SAAS,oBAAoB,GAAG,oBAAoB,IAAI,CACvF,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,QAAQ,EACrB,OAAO,EAAE,OAAO,KACZ,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,WAAW,eAAe,CAAC,QAAQ,SAAS,oBAAoB,GAAG,oBAAoB;IAC5F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;CAChC;AAYD,wBAAgB,cAAc,CAAC,QAAQ,SAAS,oBAAoB,GAAG,oBAAoB,EAC1F,OAAO,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,GACjC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,UAAU,EAAE,eAAe,GAAG,SAAS,CAAC,CA4F5E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../src/harness/tools/bash.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Static, Type } from \"typebox\";\nimport type { Context } from \"../context.ts\";\nimport type { AgentHarnessTool, ShellOutputTruncation, ShellOutputView } from \"../types.ts\";\nimport { applyShellOutputUpdate } from \"../utils/output-capture.ts\";\nimport { DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, formatSize } from \"../utils/truncate.ts\";\nimport type { ExecutionToolContext } from \"./tool-context.ts\";\n\nconst MAX_TIMEOUT_SECONDS = 2_147_483_647 / 1000;\nconst BASH_CHECKPOINT_INTERVAL_MS = 2_000;\n\nconst bashSchema = Type.Object({\n\tcommand: Type.String({ description: \"Bash command to execute\" }),\n\ttimeout: Type.Optional(Type.Number({ description: \"Timeout in seconds (optional, no default timeout)\" })),\n});\n\nexport type BashToolInput = Static<typeof bashSchema>;\n\nexport interface BashToolDetails {\n\ttruncation?: ShellOutputTruncation;\n\tfullOutputPath?: string;\n}\n\nexport interface BashExecution {\n\tcommand: string;\n\tcwd: string;\n\tenv: Record<string, string>;\n\tinheritEnv: boolean;\n}\n\nexport type BashPrepare<TContext extends ExecutionToolContext = ExecutionToolContext> = (\n\texecution: BashExecution,\n\ttoolContext: TContext,\n\tcontext: Context,\n) => void | Promise<void>;\n\nexport interface BashToolOptions<TContext extends ExecutionToolContext = ExecutionToolContext> {\n\tcommandPrefix?: string;\n\tprepare?: BashPrepare<TContext>;\n}\n\nfunction validateTimeout(timeout: number | undefined): void {\n\tif (timeout === undefined) return;\n\tif (!Number.isFinite(timeout) || timeout <= 0) {\n\t\tthrow new Error(\"Invalid timeout: must be a finite number of seconds\");\n\t}\n\tif (timeout > MAX_TIMEOUT_SECONDS) {\n\t\tthrow new Error(`Invalid timeout: maximum is ${MAX_TIMEOUT_SECONDS} seconds`);\n\t}\n}\n\nexport function createBashTool<TContext extends ExecutionToolContext = ExecutionToolContext>(\n\toptions?: BashToolOptions<TContext>,\n): AgentHarnessTool<TContext, typeof bashSchema, BashToolDetails | undefined> {\n\treturn {\n\t\tname: \"bash\",\n\t\tlabel: \"bash\",\n\t\tdescription: `Execute a bash command in the current working directory. Returns combined stdout and stderr. Output is truncated to last ${DEFAULT_MAX_LINES} lines or ${DEFAULT_MAX_BYTES / 1024}KB (whichever is hit first). If truncated, full output is saved to a temp file. Optionally provide a timeout in seconds.`,\n\t\tparameters: bashSchema,\n\t\tasync execute(_toolCallId, { command, timeout }, onUpdate, toolContext, _invocation, context) {\n\t\t\tvalidateTimeout(timeout);\n\t\t\tconst { env } = toolContext;\n\t\t\tconst execution: BashExecution = {\n\t\t\t\tcommand: options?.commandPrefix ? `${options.commandPrefix}\\n${command}` : command,\n\t\t\t\tcwd: env.cwd,\n\t\t\t\tenv: {},\n\t\t\t\tinheritEnv: true,\n\t\t\t};\n\t\t\tawait options?.prepare?.(execution, toolContext, context);\n\t\t\tlet view: ShellOutputView | undefined;\n\t\t\tlet lastCheckpointAt = Date.now();\n\t\t\tlet lastCheckpoint: string | undefined;\n\t\t\tlet acceptingUpdates = true;\n\n\t\t\tonUpdate({ content: [], details: undefined });\n\t\t\tconst result = await env.exec(\n\t\t\t\texecution.command,\n\t\t\t\t{\n\t\t\t\t\tcwd: execution.cwd,\n\t\t\t\t\tenv: execution.env,\n\t\t\t\t\tinheritEnv: execution.inheritEnv,\n\t\t\t\t\ttimeout,\n\t\t\t\t\tcapture: {\n\t\t\t\t\t\tlimits: { maxBytes: DEFAULT_MAX_BYTES, maxLines: DEFAULT_MAX_LINES, retain: \"tail\" },\n\t\t\t\t\t\tspill: true,\n\t\t\t\t\t},\n\t\t\t\t\tonUpdate: (update) => {\n\t\t\t\t\t\tif (!acceptingUpdates) return;\n\t\t\t\t\t\tview = applyShellOutputUpdate(view, update);\n\t\t\t\t\t\tconst snapshot = {\n\t\t\t\t\t\t\tcontent: [{ type: \"text\" as const, text: view.text }],\n\t\t\t\t\t\t\tdetails: {\n\t\t\t\t\t\t\t\ttruncation: view.truncation.truncated ? view.truncation : undefined,\n\t\t\t\t\t\t\t\tfullOutputPath: view.spillPath,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t\tconst now = Date.now();\n\t\t\t\t\t\tconst encoded = JSON.stringify(snapshot);\n\t\t\t\t\t\tconst checkpoint =\n\t\t\t\t\t\t\tnow - lastCheckpointAt >= BASH_CHECKPOINT_INTERVAL_MS && encoded !== lastCheckpoint;\n\t\t\t\t\t\tonUpdate(snapshot, checkpoint ? { checkpoint: true } : undefined);\n\t\t\t\t\t\tif (checkpoint) {\n\t\t\t\t\t\t\tlastCheckpointAt = now;\n\t\t\t\t\t\t\tlastCheckpoint = encoded;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tcontext,\n\t\t\t);\n\t\t\tacceptingUpdates = false;\n\n\t\t\tlet outputText = view?.text ?? \"\";\n\t\t\tconst capture = result.ok ? { text: outputText, ...result.value } : view;\n\t\t\tlet details: BashToolDetails | undefined;\n\t\t\tif (capture?.truncation.truncated) {\n\t\t\t\tdetails = { truncation: capture.truncation, fullOutputPath: capture.spillPath };\n\t\t\t\tconst startLine = capture.truncation.totalLines - capture.truncation.outputLines + 1;\n\t\t\t\tconst endLine = capture.truncation.totalLines;\n\t\t\t\tif (capture.truncation.lastLinePartial) {\n\t\t\t\t\tconst lastLineSize = formatSize(capture.lastLineBytes ?? capture.truncation.outputBytes);\n\t\t\t\t\toutputText += `\\n\\n[Showing last ${formatSize(capture.truncation.outputBytes)} of line ${endLine} (line is ${lastLineSize}). Full output: ${capture.spillPath}]`;\n\t\t\t\t} else if (capture.truncation.truncatedBy === \"lines\") {\n\t\t\t\t\toutputText += `\\n\\n[Showing lines ${startLine}-${endLine} of ${capture.truncation.totalLines}. Full output: ${capture.spillPath}]`;\n\t\t\t\t} else {\n\t\t\t\t\toutputText += `\\n\\n[Showing lines ${startLine}-${endLine} of ${capture.truncation.totalLines} (${formatSize(DEFAULT_MAX_BYTES)} limit). Full output: ${capture.spillPath}]`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!result.ok) {\n\t\t\t\tconst status =\n\t\t\t\t\tresult.error.code === \"timeout\"\n\t\t\t\t\t\t? `Command timed out after ${timeout} seconds`\n\t\t\t\t\t\t: result.error.code === \"aborted\"\n\t\t\t\t\t\t\t? \"Command aborted\"\n\t\t\t\t\t\t\t: result.error.message;\n\t\t\t\tthrow new Error(outputText ? `${outputText}\\n\\n${status}` : status, { cause: result.error });\n\t\t\t}\n\t\t\tif (result.value.exitCode !== 0) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`${outputText ? `${outputText}\\n\\n` : \"\"}Command exited with code ${result.value.exitCode}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn { content: [{ type: \"text\", text: outputText || \"(no output)\" }], details };\n\t\t},\n\t};\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"edit-diff.d.ts","sourceRoot":"","sources":["../../../src/harness/tools/edit-diff.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM/D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqB3D;AAWD,UAAU,WAAW;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC;AAiDnF;;;;;;;;;GASG;AACH,wBAAgB,yCAAyC,CACxD,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,eAAe,EAAE,GAC7B,MAAM,CAqCR;AAED,MAAM,WAAW,gBAAgB;IAChC,gCAAgC;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,4FAA4F;IAC5F,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,cAAc,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,IAAI;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAsChF;AAED,uFAAuF;AACvF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAEvE;AA8CD;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC5C,iBAAiB,EAAE,MAAM,EACzB,KAAK,EAAE,IAAI,EAAE,EACb,IAAI,EAAE,MAAM,GACV,kBAAkB,CA0DpB;AAED,yCAAyC;AACzC,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,SAAI,GAAG,MAAM,CAKnH;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CACjC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,YAAY,SAAI,GACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAuHxD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"edit-diff.js","sourceRoot":"","sources":["../../../src/harness/tools/edit-diff.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shared diff computation utilities for the edit and similar tools.\n */\n\nimport * as Diff from \"diff\";\n\nexport function detectLineEnding(content: string): \"\\r\\n\" | \"\\n\" {\n\tconst crlfIdx = content.indexOf(\"\\r\\n\");\n\tconst lfIdx = content.indexOf(\"\\n\");\n\tif (lfIdx === -1) return \"\\n\";\n\tif (crlfIdx === -1) return \"\\n\";\n\treturn crlfIdx < lfIdx ? \"\\r\\n\" : \"\\n\";\n}\n\nexport function normalizeToLF(text: string): string {\n\treturn text.replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\");\n}\n\nexport function restoreLineEndings(text: string, ending: \"\\r\\n\" | \"\\n\"): string {\n\treturn ending === \"\\r\\n\" ? text.replace(/\\n/g, \"\\r\\n\") : text;\n}\n\n/**\n * Normalize text for fuzzy matching. Applies progressive transformations:\n * - Strip trailing whitespace from each line\n * - Normalize smart quotes to ASCII equivalents\n * - Normalize Unicode dashes/hyphens to ASCII hyphen\n * - Normalize special Unicode spaces to regular space\n */\nexport function normalizeForFuzzyMatch(text: string): string {\n\treturn (\n\t\ttext\n\t\t\t.normalize(\"NFKC\")\n\t\t\t// Strip trailing whitespace per line\n\t\t\t.split(\"\\n\")\n\t\t\t.map((line) => line.trimEnd())\n\t\t\t.join(\"\\n\")\n\t\t\t// Smart single quotes → '\n\t\t\t.replace(/[\\u2018\\u2019\\u201A\\u201B]/g, \"'\")\n\t\t\t// Smart double quotes → \"\n\t\t\t.replace(/[\\u201C\\u201D\\u201E\\u201F]/g, '\"')\n\t\t\t// Various dashes/hyphens → -\n\t\t\t// U+2010 hyphen, U+2011 non-breaking hyphen, U+2012 figure dash,\n\t\t\t// U+2013 en-dash, U+2014 em-dash, U+2015 horizontal bar, U+2212 minus\n\t\t\t.replace(/[\\u2010\\u2011\\u2012\\u2013\\u2014\\u2015\\u2212]/g, \"-\")\n\t\t\t// Special spaces → regular space\n\t\t\t// U+00A0 NBSP, U+2002-U+200A various spaces, U+202F narrow NBSP,\n\t\t\t// U+205F medium math space, U+3000 ideographic space\n\t\t\t.replace(/[\\u00A0\\u2002-\\u200A\\u202F\\u205F\\u3000]/g, \" \")\n\t);\n}\n\nfunction splitLinesWithEndings(content: string): string[] {\n\treturn content.match(/[^\\n]*\\n|[^\\n]+/g) ?? [];\n}\n\ninterface LineSpan {\n\tstart: number;\n\tend: number;\n}\n\ninterface MatchedEdit {\n\teditIndex: number;\n\tmatchIndex: number;\n\tmatchLength: number;\n\tnewText: string;\n}\n\ntype TextReplacement = Pick<MatchedEdit, \"matchIndex\" | \"matchLength\" | \"newText\">;\n\nfunction getLineSpans(content: string): LineSpan[] {\n\tlet offset = 0;\n\treturn splitLinesWithEndings(content).map((line) => {\n\t\tconst span = { start: offset, end: offset + line.length };\n\t\toffset = span.end;\n\t\treturn span;\n\t});\n}\n\nfunction getReplacementLineRange(lines: LineSpan[], replacement: TextReplacement) {\n\tconst replacementStart = replacement.matchIndex;\n\tconst replacementEnd = replacement.matchIndex + replacement.matchLength;\n\n\tlet startLine = -1;\n\tfor (let i = 0; i < lines.length; i++) {\n\t\tconst line = lines[i];\n\t\tif (replacementStart >= line.start && replacementStart < line.end) {\n\t\t\tstartLine = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (startLine === -1) {\n\t\tthrow new Error(\"Replacement range is outside the base content.\");\n\t}\n\n\tlet endLine = startLine;\n\twhile (endLine < lines.length && lines[endLine].end < replacementEnd) {\n\t\tendLine++;\n\t}\n\tif (endLine >= lines.length) {\n\t\tthrow new Error(\"Replacement range is outside the base content.\");\n\t}\n\n\treturn { startLine, endLine: endLine + 1 };\n}\n\nfunction applyReplacements(content: string, replacements: TextReplacement[], offset = 0): string {\n\tlet result = content;\n\tfor (let i = replacements.length - 1; i >= 0; i--) {\n\t\tconst replacement = replacements[i];\n\t\tconst matchIndex = replacement.matchIndex - offset;\n\t\tresult =\n\t\t\tresult.substring(0, matchIndex) + replacement.newText + result.substring(matchIndex + replacement.matchLength);\n\t}\n\treturn result;\n}\n\n/**\n * Apply replacements matched against `baseContent` to `originalContent` while\n * preserving unchanged line blocks from the original.\n *\n * This is useful when `baseContent` is a normalized view of the original. Each\n * replacement is widened to the lines it actually touches, those touched lines\n * are rewritten from the normalized base, and all other lines are copied back\n * from `originalContent`. The actual replacement ranges drive preservation so\n * duplicate normalized lines cannot be aligned to the wrong occurrence.\n */\nexport function applyReplacementsPreservingUnchangedLines(\n\toriginalContent: string,\n\tbaseContent: string,\n\treplacements: TextReplacement[],\n): string {\n\tconst originalLines = splitLinesWithEndings(originalContent);\n\tconst baseLines = getLineSpans(baseContent);\n\tif (originalLines.length !== baseLines.length) {\n\t\tthrow new Error(\"Cannot preserve unchanged lines because the base content has a different line count.\");\n\t}\n\n\tconst groups: Array<{ startLine: number; endLine: number; replacements: TextReplacement[] }> = [];\n\tconst sortedReplacements = [...replacements].sort((a, b) => a.matchIndex - b.matchIndex);\n\tfor (const replacement of sortedReplacements) {\n\t\tconst range = getReplacementLineRange(baseLines, replacement);\n\t\tconst current = groups[groups.length - 1];\n\t\tif (current && range.startLine < current.endLine) {\n\t\t\tcurrent.endLine = Math.max(current.endLine, range.endLine);\n\t\t\tcurrent.replacements.push(replacement);\n\t\t\tcontinue;\n\t\t}\n\t\tgroups.push({ ...range, replacements: [replacement] });\n\t}\n\n\tlet originalLineIndex = 0;\n\tlet result = \"\";\n\tfor (const group of groups) {\n\t\tresult += originalLines.slice(originalLineIndex, group.startLine).join(\"\");\n\n\t\tconst groupStartOffset = baseLines[group.startLine].start;\n\t\tconst groupEndOffset = baseLines[group.endLine - 1].end;\n\t\tresult += applyReplacements(\n\t\t\tbaseContent.slice(groupStartOffset, groupEndOffset),\n\t\t\tgroup.replacements,\n\t\t\tgroupStartOffset,\n\t\t);\n\t\toriginalLineIndex = group.endLine;\n\t}\n\tresult += originalLines.slice(originalLineIndex).join(\"\");\n\n\treturn result;\n}\n\nexport interface FuzzyMatchResult {\n\t/** Whether a match was found */\n\tfound: boolean;\n\t/** The index where the match starts (in the content that should be used for replacement) */\n\tindex: number;\n\t/** Length of the matched text */\n\tmatchLength: number;\n\t/** Whether fuzzy matching was used (false = exact match) */\n\tusedFuzzyMatch: boolean;\n\t/**\n\t * The content to use for replacement operations.\n\t * When exact match: original content. When fuzzy match: normalized content.\n\t */\n\tcontentForReplacement: string;\n}\n\nexport interface Edit {\n\toldText: string;\n\tnewText: string;\n}\n\nexport interface AppliedEditsResult {\n\tbaseContent: string;\n\tnewContent: string;\n}\n\n/**\n * Find oldText in content, trying exact match first, then fuzzy match.\n * When fuzzy matching is used, the returned contentForReplacement is the\n * fuzzy-normalized version of the content (trailing whitespace stripped,\n * Unicode quotes/dashes normalized to ASCII).\n */\nexport function fuzzyFindText(content: string, oldText: string): FuzzyMatchResult {\n\t// Try exact match first\n\tconst exactIndex = content.indexOf(oldText);\n\tif (exactIndex !== -1) {\n\t\treturn {\n\t\t\tfound: true,\n\t\t\tindex: exactIndex,\n\t\t\tmatchLength: oldText.length,\n\t\t\tusedFuzzyMatch: false,\n\t\t\tcontentForReplacement: content,\n\t\t};\n\t}\n\n\t// Try fuzzy match - work entirely in normalized space\n\tconst fuzzyContent = normalizeForFuzzyMatch(content);\n\tconst fuzzyOldText = normalizeForFuzzyMatch(oldText);\n\tconst fuzzyIndex = fuzzyContent.indexOf(fuzzyOldText);\n\n\tif (fuzzyIndex === -1) {\n\t\treturn {\n\t\t\tfound: false,\n\t\t\tindex: -1,\n\t\t\tmatchLength: 0,\n\t\t\tusedFuzzyMatch: false,\n\t\t\tcontentForReplacement: content,\n\t\t};\n\t}\n\n\t// When fuzzy matching, return offsets in normalized space. Callers can use\n\t// the normalized content to compute replacements, then decide how much of\n\t// that normalized output should be written back.\n\treturn {\n\t\tfound: true,\n\t\tindex: fuzzyIndex,\n\t\tmatchLength: fuzzyOldText.length,\n\t\tusedFuzzyMatch: true,\n\t\tcontentForReplacement: fuzzyContent,\n\t};\n}\n\n/** Strip UTF-8 BOM if present, return both the BOM (if any) and the text without it */\nexport function stripBom(content: string): { bom: string; text: string } {\n\treturn content.startsWith(\"\\uFEFF\") ? { bom: \"\\uFEFF\", text: content.slice(1) } : { bom: \"\", text: content };\n}\n\nfunction countOccurrences(content: string, oldText: string): number {\n\tconst fuzzyContent = normalizeForFuzzyMatch(content);\n\tconst fuzzyOldText = normalizeForFuzzyMatch(oldText);\n\treturn fuzzyContent.split(fuzzyOldText).length - 1;\n}\n\nfunction getNotFoundError(path: string, editIndex: number, totalEdits: number): Error {\n\tif (totalEdits === 1) {\n\t\treturn new Error(\n\t\t\t`Could not find the exact text in ${path}. The old text must match exactly including all whitespace and newlines.`,\n\t\t);\n\t}\n\treturn new Error(\n\t\t`Could not find edits[${editIndex}] in ${path}. The oldText must match exactly including all whitespace and newlines.`,\n\t);\n}\n\nfunction getDuplicateError(path: string, editIndex: number, totalEdits: number, occurrences: number): Error {\n\tif (totalEdits === 1) {\n\t\treturn new Error(\n\t\t\t`Found ${occurrences} occurrences of the text in ${path}. The text must be unique. Please provide more context to make it unique.`,\n\t\t);\n\t}\n\treturn new Error(\n\t\t`Found ${occurrences} occurrences of edits[${editIndex}] in ${path}. Each oldText must be unique. Please provide more context to make it unique.`,\n\t);\n}\n\nfunction getEmptyOldTextError(path: string, editIndex: number, totalEdits: number): Error {\n\tif (totalEdits === 1) {\n\t\treturn new Error(`oldText must not be empty in ${path}.`);\n\t}\n\treturn new Error(`edits[${editIndex}].oldText must not be empty in ${path}.`);\n}\n\nfunction getNoChangeError(path: string, totalEdits: number): Error {\n\tif (totalEdits === 1) {\n\t\treturn new Error(\n\t\t\t`No changes made to ${path}. The replacement produced identical content. This might indicate an issue with special characters or the text not existing as expected.`,\n\t\t);\n\t}\n\treturn new Error(`No changes made to ${path}. The replacements produced identical content.`);\n}\n\n/**\n * Apply one or more exact-text replacements to LF-normalized content.\n *\n * All edits are matched against the same original content. Replacements are\n * then applied in reverse order so offsets remain stable. If any edit needs\n * fuzzy matching, the operation runs in fuzzy-normalized content space and then\n * overlays those line-level changes onto the original content so unchanged line\n * blocks keep their original bytes.\n */\nexport function applyEditsToNormalizedContent(\n\tnormalizedContent: string,\n\tedits: Edit[],\n\tpath: string,\n): AppliedEditsResult {\n\tconst normalizedEdits = edits.map((edit) => ({\n\t\toldText: normalizeToLF(edit.oldText),\n\t\tnewText: normalizeToLF(edit.newText),\n\t}));\n\n\tfor (let i = 0; i < normalizedEdits.length; i++) {\n\t\tif (normalizedEdits[i].oldText.length === 0) {\n\t\t\tthrow getEmptyOldTextError(path, i, normalizedEdits.length);\n\t\t}\n\t}\n\n\tconst initialMatches = normalizedEdits.map((edit) => fuzzyFindText(normalizedContent, edit.oldText));\n\tconst usedFuzzyMatch = initialMatches.some((match) => match.usedFuzzyMatch);\n\tconst replacementBaseContent = usedFuzzyMatch ? normalizeForFuzzyMatch(normalizedContent) : normalizedContent;\n\n\tconst matchedEdits: MatchedEdit[] = [];\n\tfor (let i = 0; i < normalizedEdits.length; i++) {\n\t\tconst edit = normalizedEdits[i];\n\t\tconst matchResult = fuzzyFindText(replacementBaseContent, edit.oldText);\n\t\tif (!matchResult.found) {\n\t\t\tthrow getNotFoundError(path, i, normalizedEdits.length);\n\t\t}\n\n\t\tconst occurrences = countOccurrences(replacementBaseContent, edit.oldText);\n\t\tif (occurrences > 1) {\n\t\t\tthrow getDuplicateError(path, i, normalizedEdits.length, occurrences);\n\t\t}\n\n\t\tmatchedEdits.push({\n\t\t\teditIndex: i,\n\t\t\tmatchIndex: matchResult.index,\n\t\t\tmatchLength: matchResult.matchLength,\n\t\t\tnewText: edit.newText,\n\t\t});\n\t}\n\n\tmatchedEdits.sort((a, b) => a.matchIndex - b.matchIndex);\n\tfor (let i = 1; i < matchedEdits.length; i++) {\n\t\tconst previous = matchedEdits[i - 1];\n\t\tconst current = matchedEdits[i];\n\t\tif (previous.matchIndex + previous.matchLength > current.matchIndex) {\n\t\t\tthrow new Error(\n\t\t\t\t`edits[${previous.editIndex}] and edits[${current.editIndex}] overlap in ${path}. Merge them into one edit or target disjoint regions.`,\n\t\t\t);\n\t\t}\n\t}\n\n\tconst baseContent = normalizedContent;\n\tconst newContent = usedFuzzyMatch\n\t\t? applyReplacementsPreservingUnchangedLines(normalizedContent, replacementBaseContent, matchedEdits)\n\t\t: applyReplacements(replacementBaseContent, matchedEdits);\n\n\tif (baseContent === newContent) {\n\t\tthrow getNoChangeError(path, normalizedEdits.length);\n\t}\n\n\treturn { baseContent, newContent };\n}\n\n/** Generate a standard unified patch. */\nexport function generateUnifiedPatch(path: string, oldContent: string, newContent: string, contextLines = 4): string {\n\treturn Diff.createTwoFilesPatch(path, path, oldContent, newContent, undefined, undefined, {\n\t\tcontext: contextLines,\n\t\theaderOptions: Diff.FILE_HEADERS_ONLY,\n\t});\n}\n\n/**\n * Generate a display-oriented diff string with line numbers and context.\n * Returns both the diff string and the first changed line number (in the new file).\n */\nexport function generateDiffString(\n\toldContent: string,\n\tnewContent: string,\n\tcontextLines = 4,\n): { diff: string; firstChangedLine: number | undefined } {\n\tconst parts = Diff.diffLines(oldContent, newContent);\n\tconst output: string[] = [];\n\n\tconst oldLines = oldContent.split(\"\\n\");\n\tconst newLines = newContent.split(\"\\n\");\n\tconst maxLineNum = Math.max(oldLines.length, newLines.length);\n\tconst lineNumWidth = String(maxLineNum).length;\n\n\tlet oldLineNum = 1;\n\tlet newLineNum = 1;\n\tlet lastWasChange = false;\n\tlet firstChangedLine: number | undefined;\n\n\tfor (let i = 0; i < parts.length; i++) {\n\t\tconst part = parts[i];\n\t\tconst raw = part.value.split(\"\\n\");\n\t\tif (raw[raw.length - 1] === \"\") {\n\t\t\traw.pop();\n\t\t}\n\n\t\tif (part.added || part.removed) {\n\t\t\t// Capture the first changed line (in the new file)\n\t\t\tif (firstChangedLine === undefined) {\n\t\t\t\tfirstChangedLine = newLineNum;\n\t\t\t}\n\n\t\t\t// Show the change\n\t\t\tfor (const line of raw) {\n\t\t\t\tif (part.added) {\n\t\t\t\t\tconst lineNum = String(newLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\toutput.push(`+${lineNum} ${line}`);\n\t\t\t\t\tnewLineNum++;\n\t\t\t\t} else {\n\t\t\t\t\t// removed\n\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\toutput.push(`-${lineNum} ${line}`);\n\t\t\t\t\toldLineNum++;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlastWasChange = true;\n\t\t} else {\n\t\t\t// Context lines - only show a few before/after changes\n\t\t\tconst nextPartIsChange = i < parts.length - 1 && (parts[i + 1].added || parts[i + 1].removed);\n\t\t\tconst hasLeadingChange = lastWasChange;\n\t\t\tconst hasTrailingChange = nextPartIsChange;\n\n\t\t\tif (hasLeadingChange && hasTrailingChange) {\n\t\t\t\tif (raw.length <= contextLines * 2) {\n\t\t\t\t\tfor (const line of raw) {\n\t\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\t\toutput.push(` ${lineNum} ${line}`);\n\t\t\t\t\t\toldLineNum++;\n\t\t\t\t\t\tnewLineNum++;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst leadingLines = raw.slice(0, contextLines);\n\t\t\t\t\tconst trailingLines = raw.slice(raw.length - contextLines);\n\t\t\t\t\tconst skippedLines = raw.length - leadingLines.length - trailingLines.length;\n\n\t\t\t\t\tfor (const line of leadingLines) {\n\t\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\t\toutput.push(` ${lineNum} ${line}`);\n\t\t\t\t\t\toldLineNum++;\n\t\t\t\t\t\tnewLineNum++;\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(` ${\"\".padStart(lineNumWidth, \" \")} ...`);\n\t\t\t\t\toldLineNum += skippedLines;\n\t\t\t\t\tnewLineNum += skippedLines;\n\n\t\t\t\t\tfor (const line of trailingLines) {\n\t\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\t\toutput.push(` ${lineNum} ${line}`);\n\t\t\t\t\t\toldLineNum++;\n\t\t\t\t\t\tnewLineNum++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (hasLeadingChange) {\n\t\t\t\tconst shownLines = raw.slice(0, contextLines);\n\t\t\t\tconst skippedLines = raw.length - shownLines.length;\n\n\t\t\t\tfor (const line of shownLines) {\n\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\toutput.push(` ${lineNum} ${line}`);\n\t\t\t\t\toldLineNum++;\n\t\t\t\t\tnewLineNum++;\n\t\t\t\t}\n\n\t\t\t\tif (skippedLines > 0) {\n\t\t\t\t\toutput.push(` ${\"\".padStart(lineNumWidth, \" \")} ...`);\n\t\t\t\t\toldLineNum += skippedLines;\n\t\t\t\t\tnewLineNum += skippedLines;\n\t\t\t\t}\n\t\t\t} else if (hasTrailingChange) {\n\t\t\t\tconst skippedLines = Math.max(0, raw.length - contextLines);\n\t\t\t\tif (skippedLines > 0) {\n\t\t\t\t\toutput.push(` ${\"\".padStart(lineNumWidth, \" \")} ...`);\n\t\t\t\t\toldLineNum += skippedLines;\n\t\t\t\t\tnewLineNum += skippedLines;\n\t\t\t\t}\n\n\t\t\t\tfor (const line of raw.slice(skippedLines)) {\n\t\t\t\t\tconst lineNum = String(oldLineNum).padStart(lineNumWidth, \" \");\n\t\t\t\t\toutput.push(` ${lineNum} ${line}`);\n\t\t\t\t\toldLineNum++;\n\t\t\t\t\tnewLineNum++;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Skip these context lines entirely\n\t\t\t\toldLineNum += raw.length;\n\t\t\t\tnewLineNum += raw.length;\n\t\t\t}\n\n\t\t\tlastWasChange = false;\n\t\t}\n\t}\n\n\treturn { diff: output.join(\"\\n\"), firstChangedLine };\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../../src/harness/tools/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAa,MAAM,aAAa,CAAC;AAc/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAa9D,QAAA,MAAM,UAAU;;;;;;EASf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;AAUtD,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAqCD,wBAAgB,cAAc,CAAC,QAAQ,SAAS,oBAAoB,GAAG,oBAAoB,KAAK,gBAAgB,CAC/G,QAAQ,EACR,OAAO,UAAU,EACjB,eAAe,GAAG,SAAS,CAC3B,CA0EA"}