@nervekit/agent 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +5 -0
  3. package/dist/agent-loop.d.ts +2 -0
  4. package/dist/agent-loop.d.ts.map +1 -0
  5. package/dist/agent-loop.js +2 -0
  6. package/dist/agent-loop.js.map +1 -0
  7. package/dist/agent.d.ts +125 -0
  8. package/dist/agent.d.ts.map +1 -0
  9. package/dist/agent.js +427 -0
  10. package/dist/agent.js.map +1 -0
  11. package/dist/harness/agent-harness.d.ts +114 -0
  12. package/dist/harness/agent-harness.d.ts.map +1 -0
  13. package/dist/harness/agent-harness.js +474 -0
  14. package/dist/harness/agent-harness.js.map +1 -0
  15. package/dist/harness/compaction/branch-summarization.d.ts +54 -0
  16. package/dist/harness/compaction/branch-summarization.d.ts.map +1 -0
  17. package/dist/harness/compaction/branch-summarization.js +183 -0
  18. package/dist/harness/compaction/branch-summarization.js.map +1 -0
  19. package/dist/harness/compaction/compaction.d.ts +19 -0
  20. package/dist/harness/compaction/compaction.d.ts.map +1 -0
  21. package/dist/harness/compaction/compaction.js +335 -0
  22. package/dist/harness/compaction/compaction.js.map +1 -0
  23. package/dist/harness/compaction/cut-points.d.ts +7 -0
  24. package/dist/harness/compaction/cut-points.d.ts.map +1 -0
  25. package/dist/harness/compaction/cut-points.js +106 -0
  26. package/dist/harness/compaction/cut-points.js.map +1 -0
  27. package/dist/harness/compaction/overflow.d.ts +3 -0
  28. package/dist/harness/compaction/overflow.d.ts.map +1 -0
  29. package/dist/harness/compaction/overflow.js +54 -0
  30. package/dist/harness/compaction/overflow.js.map +1 -0
  31. package/dist/harness/compaction/policy.d.ts +8 -0
  32. package/dist/harness/compaction/policy.d.ts.map +1 -0
  33. package/dist/harness/compaction/policy.js +57 -0
  34. package/dist/harness/compaction/policy.js.map +1 -0
  35. package/dist/harness/compaction/types.d.ts +79 -0
  36. package/dist/harness/compaction/types.d.ts.map +1 -0
  37. package/dist/harness/compaction/types.js +2 -0
  38. package/dist/harness/compaction/types.js.map +1 -0
  39. package/dist/harness/compaction/usage.d.ts +30 -0
  40. package/dist/harness/compaction/usage.d.ts.map +1 -0
  41. package/dist/harness/compaction/usage.js +177 -0
  42. package/dist/harness/compaction/usage.js.map +1 -0
  43. package/dist/harness/compaction/utils.d.ts +25 -0
  44. package/dist/harness/compaction/utils.d.ts.map +1 -0
  45. package/dist/harness/compaction/utils.js +131 -0
  46. package/dist/harness/compaction/utils.js.map +1 -0
  47. package/dist/harness/configuration.d.ts +34 -0
  48. package/dist/harness/configuration.d.ts.map +1 -0
  49. package/dist/harness/configuration.js +75 -0
  50. package/dist/harness/configuration.js.map +1 -0
  51. package/dist/harness/conversation/context.d.ts +24 -0
  52. package/dist/harness/conversation/context.d.ts.map +1 -0
  53. package/dist/harness/conversation/context.js +76 -0
  54. package/dist/harness/conversation/context.js.map +1 -0
  55. package/dist/harness/conversation/conversation.d.ts +36 -0
  56. package/dist/harness/conversation/conversation.d.ts.map +1 -0
  57. package/dist/harness/conversation/conversation.js +163 -0
  58. package/dist/harness/conversation/conversation.js.map +1 -0
  59. package/dist/harness/conversation/entries.d.ts +117 -0
  60. package/dist/harness/conversation/entries.d.ts.map +1 -0
  61. package/dist/harness/conversation/entries.js +2 -0
  62. package/dist/harness/conversation/entries.js.map +1 -0
  63. package/dist/harness/conversation/jsonl-repo.d.ts +27 -0
  64. package/dist/harness/conversation/jsonl-repo.d.ts.map +1 -0
  65. package/dist/harness/conversation/jsonl-repo.js +110 -0
  66. package/dist/harness/conversation/jsonl-repo.js.map +1 -0
  67. package/dist/harness/conversation/jsonl-storage.d.ts +34 -0
  68. package/dist/harness/conversation/jsonl-storage.d.ts.map +1 -0
  69. package/dist/harness/conversation/jsonl-storage.js +213 -0
  70. package/dist/harness/conversation/jsonl-storage.js.map +1 -0
  71. package/dist/harness/conversation/memory-repo.d.ts +18 -0
  72. package/dist/harness/conversation/memory-repo.d.ts.map +1 -0
  73. package/dist/harness/conversation/memory-repo.js +45 -0
  74. package/dist/harness/conversation/memory-repo.js.map +1 -0
  75. package/dist/harness/conversation/memory-storage.d.ts +25 -0
  76. package/dist/harness/conversation/memory-storage.d.ts.map +1 -0
  77. package/dist/harness/conversation/memory-storage.js +88 -0
  78. package/dist/harness/conversation/memory-storage.js.map +1 -0
  79. package/dist/harness/conversation/repo-utils.d.ts +13 -0
  80. package/dist/harness/conversation/repo-utils.d.ts.map +1 -0
  81. package/dist/harness/conversation/repo-utils.js +39 -0
  82. package/dist/harness/conversation/repo-utils.js.map +1 -0
  83. package/dist/harness/conversation/storage-utils.d.ts +11 -0
  84. package/dist/harness/conversation/storage-utils.d.ts.map +1 -0
  85. package/dist/harness/conversation/storage-utils.js +32 -0
  86. package/dist/harness/conversation/storage-utils.js.map +1 -0
  87. package/dist/harness/conversation/text-extraction.d.ts +8 -0
  88. package/dist/harness/conversation/text-extraction.d.ts.map +1 -0
  89. package/dist/harness/conversation/text-extraction.js +24 -0
  90. package/dist/harness/conversation/text-extraction.js.map +1 -0
  91. package/dist/harness/conversation/uuid.d.ts +2 -0
  92. package/dist/harness/conversation/uuid.d.ts.map +1 -0
  93. package/dist/harness/conversation/uuid.js +54 -0
  94. package/dist/harness/conversation/uuid.js.map +1 -0
  95. package/dist/harness/conversation-writes.d.ts +9 -0
  96. package/dist/harness/conversation-writes.d.ts.map +1 -0
  97. package/dist/harness/conversation-writes.js +54 -0
  98. package/dist/harness/conversation-writes.js.map +1 -0
  99. package/dist/harness/env/nodejs.d.ts +53 -0
  100. package/dist/harness/env/nodejs.d.ts.map +1 -0
  101. package/dist/harness/env/nodejs.js +497 -0
  102. package/dist/harness/env/nodejs.js.map +1 -0
  103. package/dist/harness/env/types.d.ts +106 -0
  104. package/dist/harness/env/types.d.ts.map +1 -0
  105. package/dist/harness/env/types.js +2 -0
  106. package/dist/harness/env/types.js.map +1 -0
  107. package/dist/harness/errors.d.ts +48 -0
  108. package/dist/harness/errors.d.ts.map +1 -0
  109. package/dist/harness/errors.js +63 -0
  110. package/dist/harness/errors.js.map +1 -0
  111. package/dist/harness/events.d.ts +238 -0
  112. package/dist/harness/events.d.ts.map +1 -0
  113. package/dist/harness/events.js +2 -0
  114. package/dist/harness/events.js.map +1 -0
  115. package/dist/harness/harness-configuration-methods.d.ts +36 -0
  116. package/dist/harness/harness-configuration-methods.d.ts.map +1 -0
  117. package/dist/harness/harness-configuration-methods.js +145 -0
  118. package/dist/harness/harness-configuration-methods.js.map +1 -0
  119. package/dist/harness/harness-continuation.d.ts +18 -0
  120. package/dist/harness/harness-continuation.d.ts.map +1 -0
  121. package/dist/harness/harness-continuation.js +56 -0
  122. package/dist/harness/harness-continuation.js.map +1 -0
  123. package/dist/harness/harness-events.d.ts +23 -0
  124. package/dist/harness/harness-events.d.ts.map +1 -0
  125. package/dist/harness/harness-events.js +129 -0
  126. package/dist/harness/harness-events.js.map +1 -0
  127. package/dist/harness/harness-invocations.d.ts +20 -0
  128. package/dist/harness/harness-invocations.d.ts.map +1 -0
  129. package/dist/harness/harness-invocations.js +22 -0
  130. package/dist/harness/harness-invocations.js.map +1 -0
  131. package/dist/harness/harness-maintenance.d.ts +30 -0
  132. package/dist/harness/harness-maintenance.d.ts.map +1 -0
  133. package/dist/harness/harness-maintenance.js +155 -0
  134. package/dist/harness/harness-maintenance.js.map +1 -0
  135. package/dist/harness/harness-queue-methods.d.ts +45 -0
  136. package/dist/harness/harness-queue-methods.d.ts.map +1 -0
  137. package/dist/harness/harness-queue-methods.js +51 -0
  138. package/dist/harness/harness-queue-methods.js.map +1 -0
  139. package/dist/harness/messages.d.ts +76 -0
  140. package/dist/harness/messages.d.ts.map +1 -0
  141. package/dist/harness/messages.js +147 -0
  142. package/dist/harness/messages.js.map +1 -0
  143. package/dist/harness/options.d.ts +95 -0
  144. package/dist/harness/options.d.ts.map +1 -0
  145. package/dist/harness/options.js +2 -0
  146. package/dist/harness/options.js.map +1 -0
  147. package/dist/harness/prompt-templates.d.ts +49 -0
  148. package/dist/harness/prompt-templates.d.ts.map +1 -0
  149. package/dist/harness/prompt-templates.js +230 -0
  150. package/dist/harness/prompt-templates.js.map +1 -0
  151. package/dist/harness/result.d.ts +19 -0
  152. package/dist/harness/result.d.ts.map +1 -0
  153. package/dist/harness/result.js +32 -0
  154. package/dist/harness/result.js.map +1 -0
  155. package/dist/harness/run/messages.d.ts +5 -0
  156. package/dist/harness/run/messages.d.ts.map +1 -0
  157. package/dist/harness/run/messages.js +37 -0
  158. package/dist/harness/run/messages.js.map +1 -0
  159. package/dist/harness/skills/format.d.ts +6 -0
  160. package/dist/harness/skills/format.d.ts.map +1 -0
  161. package/dist/harness/skills/format.js +38 -0
  162. package/dist/harness/skills/format.js.map +1 -0
  163. package/dist/harness/skills/index.d.ts +5 -0
  164. package/dist/harness/skills/index.d.ts.map +1 -0
  165. package/dist/harness/skills/index.js +5 -0
  166. package/dist/harness/skills/index.js.map +1 -0
  167. package/dist/harness/skills/loader.d.ts +43 -0
  168. package/dist/harness/skills/loader.d.ts.map +1 -0
  169. package/dist/harness/skills/loader.js +279 -0
  170. package/dist/harness/skills/loader.js.map +1 -0
  171. package/dist/harness/skills/parser.d.ts +12 -0
  172. package/dist/harness/skills/parser.d.ts.map +1 -0
  173. package/dist/harness/skills/parser.js +22 -0
  174. package/dist/harness/skills/parser.js.map +1 -0
  175. package/dist/harness/skills/validation.d.ts +3 -0
  176. package/dist/harness/skills/validation.d.ts.map +1 -0
  177. package/dist/harness/skills/validation.js +28 -0
  178. package/dist/harness/skills/validation.js.map +1 -0
  179. package/dist/harness/skills.d.ts +2 -0
  180. package/dist/harness/skills.d.ts.map +1 -0
  181. package/dist/harness/skills.js +2 -0
  182. package/dist/harness/skills.js.map +1 -0
  183. package/dist/harness/stream-options.d.ts +5 -0
  184. package/dist/harness/stream-options.d.ts.map +1 -0
  185. package/dist/harness/stream-options.js +67 -0
  186. package/dist/harness/stream-options.js.map +1 -0
  187. package/dist/harness/system-prompt.d.ts +2 -0
  188. package/dist/harness/system-prompt.d.ts.map +1 -0
  189. package/dist/harness/system-prompt.js +2 -0
  190. package/dist/harness/system-prompt.js.map +1 -0
  191. package/dist/harness/turn-state.d.ts +27 -0
  192. package/dist/harness/turn-state.d.ts.map +1 -0
  193. package/dist/harness/turn-state.js +35 -0
  194. package/dist/harness/turn-state.js.map +1 -0
  195. package/dist/harness/types.d.ts +9 -0
  196. package/dist/harness/types.d.ts.map +1 -0
  197. package/dist/harness/types.js +8 -0
  198. package/dist/harness/types.js.map +1 -0
  199. package/dist/harness/utils/env-path.d.ts +14 -0
  200. package/dist/harness/utils/env-path.d.ts.map +1 -0
  201. package/dist/harness/utils/env-path.js +99 -0
  202. package/dist/harness/utils/env-path.js.map +1 -0
  203. package/dist/harness/utils/shell-output.d.ts +16 -0
  204. package/dist/harness/utils/shell-output.d.ts.map +1 -0
  205. package/dist/harness/utils/shell-output.js +137 -0
  206. package/dist/harness/utils/shell-output.js.map +1 -0
  207. package/dist/harness/utils/truncate.d.ts +70 -0
  208. package/dist/harness/utils/truncate.d.ts.map +1 -0
  209. package/dist/harness/utils/truncate.js +289 -0
  210. package/dist/harness/utils/truncate.js.map +1 -0
  211. package/dist/index.d.ts +24 -0
  212. package/dist/index.d.ts.map +1 -0
  213. package/dist/index.js +25 -0
  214. package/dist/index.js.map +1 -0
  215. package/dist/node.d.ts +3 -0
  216. package/dist/node.d.ts.map +1 -0
  217. package/dist/node.js +3 -0
  218. package/dist/node.js.map +1 -0
  219. package/dist/proxy.d.ts +67 -0
  220. package/dist/proxy.d.ts.map +1 -0
  221. package/dist/proxy.js +299 -0
  222. package/dist/proxy.js.map +1 -0
  223. package/dist/runtime/loop/agent-loop.d.ts +24 -0
  224. package/dist/runtime/loop/agent-loop.d.ts.map +1 -0
  225. package/dist/runtime/loop/agent-loop.js +72 -0
  226. package/dist/runtime/loop/agent-loop.js.map +1 -0
  227. package/dist/runtime/loop/events.d.ts +5 -0
  228. package/dist/runtime/loop/events.d.ts.map +1 -0
  229. package/dist/runtime/loop/events.js +5 -0
  230. package/dist/runtime/loop/events.js.map +1 -0
  231. package/dist/runtime/loop/index.d.ts +6 -0
  232. package/dist/runtime/loop/index.d.ts.map +1 -0
  233. package/dist/runtime/loop/index.js +6 -0
  234. package/dist/runtime/loop/index.js.map +1 -0
  235. package/dist/runtime/loop/stream-assistant.d.ts +9 -0
  236. package/dist/runtime/loop/stream-assistant.d.ts.map +1 -0
  237. package/dist/runtime/loop/stream-assistant.js +87 -0
  238. package/dist/runtime/loop/stream-assistant.js.map +1 -0
  239. package/dist/runtime/loop/tool-execution.d.ts +15 -0
  240. package/dist/runtime/loop/tool-execution.d.ts.map +1 -0
  241. package/dist/runtime/loop/tool-execution.js +271 -0
  242. package/dist/runtime/loop/tool-execution.js.map +1 -0
  243. package/dist/runtime/loop/turn-loop.d.ts +7 -0
  244. package/dist/runtime/loop/turn-loop.d.ts.map +1 -0
  245. package/dist/runtime/loop/turn-loop.js +84 -0
  246. package/dist/runtime/loop/turn-loop.js.map +1 -0
  247. package/dist/runtime.d.ts +63 -0
  248. package/dist/runtime.d.ts.map +1 -0
  249. package/dist/runtime.js +170 -0
  250. package/dist/runtime.js.map +1 -0
  251. package/dist/suspension.d.ts +18 -0
  252. package/dist/suspension.d.ts.map +1 -0
  253. package/dist/suspension.js +19 -0
  254. package/dist/suspension.js.map +1 -0
  255. package/dist/types.d.ts +395 -0
  256. package/dist/types.d.ts.map +1 -0
  257. package/dist/types.js +2 -0
  258. package/dist/types.js.map +1 -0
  259. package/dist/worker.d.ts +2 -0
  260. package/dist/worker.d.ts.map +1 -0
  261. package/dist/worker.js +88 -0
  262. package/dist/worker.js.map +1 -0
  263. package/package.json +54 -0
@@ -0,0 +1,48 @@
1
+ /** Stable, backend-independent file error codes returned by {@link FileSystem} file operations. */
2
+ export type FileErrorCode = "aborted" | "not_found" | "permission_denied" | "not_directory" | "is_directory" | "invalid" | "not_supported" | "unknown";
3
+ /** Error returned by {@link FileSystem} file operations. */
4
+ export declare class FileError extends Error {
5
+ /** Backend-independent error code. */
6
+ code: FileErrorCode;
7
+ /** Absolute addressed path associated with the failure, when available. */
8
+ path?: string;
9
+ constructor(code: FileErrorCode, message: string, path?: string, cause?: Error);
10
+ }
11
+ /** Stable, backend-independent execution error codes returned by {@link ExecutionEnv.exec}. */
12
+ export type ExecutionErrorCode = "aborted" | "timeout" | "shell_unavailable" | "spawn_error" | "callback_error" | "unknown";
13
+ /** Error returned by {@link ExecutionEnv.exec}. */
14
+ export declare class ExecutionError extends Error {
15
+ /** Backend-independent error code. */
16
+ code: ExecutionErrorCode;
17
+ constructor(code: ExecutionErrorCode, message: string, cause?: Error);
18
+ }
19
+ /** Stable compaction error codes returned by compaction helpers. */
20
+ export type CompactionErrorCode = "aborted" | "summarization_failed" | "invalid_conversation" | "unknown";
21
+ /** Error returned by compaction helpers. */
22
+ export declare class CompactionError extends Error {
23
+ /** Backend-independent error code. */
24
+ code: CompactionErrorCode;
25
+ constructor(code: CompactionErrorCode, message: string, cause?: Error);
26
+ }
27
+ /** Stable branch-summary error codes returned by branch summarization helpers. */
28
+ export type BranchSummaryErrorCode = "aborted" | "summarization_failed" | "invalid_conversation";
29
+ /** Error returned by branch summarization helpers. */
30
+ export declare class BranchSummaryError extends Error {
31
+ /** Backend-independent error code. */
32
+ code: BranchSummaryErrorCode;
33
+ constructor(code: BranchSummaryErrorCode, message: string, cause?: Error);
34
+ }
35
+ export type ConversationErrorCode = "not_found" | "invalid_conversation" | "invalid_entry" | "invalid_fork_target" | "storage" | "unknown";
36
+ /** Error thrown by conversation storage, repositories, and conversation tree operations. */
37
+ export declare class ConversationError extends Error {
38
+ /** Conversation subsystem error code. */
39
+ code: ConversationErrorCode;
40
+ constructor(code: ConversationErrorCode, message: string, cause?: Error);
41
+ }
42
+ export type AgentHarnessErrorCode = "busy" | "invalid_state" | "invalid_argument" | "conversation" | "hook" | "auth" | "compaction" | "branch_summary" | "unknown";
43
+ /** Public AgentHarness failure with a stable top-level classification. */
44
+ export declare class AgentHarnessError extends Error {
45
+ code: AgentHarnessErrorCode;
46
+ constructor(code: AgentHarnessErrorCode, message: string, cause?: Error);
47
+ }
48
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/harness/errors.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,WAAW,GACX,mBAAmB,GACnB,eAAe,GACf,cAAc,GACd,SAAS,GACT,eAAe,GACf,SAAS,CAAC;AAEd,4DAA4D;AAC5D,qBAAa,SAAU,SAAQ,KAAK;IAClC,sCAAsC;IAC/B,IAAI,EAAE,aAAa,CAAC;IAC3B,2EAA2E;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;gBAGnB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,KAAK;CAOhB;AAED,+FAA+F;AAC/F,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,SAAS,GACT,mBAAmB,GACnB,aAAa,GACb,gBAAgB,GAChB,SAAS,CAAC;AAEd,mDAAmD;AACnD,qBAAa,cAAe,SAAQ,KAAK;IACvC,sCAAsC;IAC/B,IAAI,EAAE,kBAAkB,CAAC;gBAEpB,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAKrE;AAED,oEAAoE;AACpE,MAAM,MAAM,mBAAmB,GAC3B,SAAS,GACT,sBAAsB,GACtB,sBAAsB,GACtB,SAAS,CAAC;AAEd,4CAA4C;AAC5C,qBAAa,eAAgB,SAAQ,KAAK;IACxC,sCAAsC;IAC/B,IAAI,EAAE,mBAAmB,CAAC;gBAErB,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAKtE;AAED,kFAAkF;AAClF,MAAM,MAAM,sBAAsB,GAC9B,SAAS,GACT,sBAAsB,GACtB,sBAAsB,CAAC;AAE3B,sDAAsD;AACtD,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,sCAAsC;IAC/B,IAAI,EAAE,sBAAsB,CAAC;gBAExB,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAKzE;AAED,MAAM,MAAM,qBAAqB,GAC7B,WAAW,GACX,sBAAsB,GACtB,eAAe,GACf,qBAAqB,GACrB,SAAS,GACT,SAAS,CAAC;AAEd,4FAA4F;AAC5F,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,yCAAyC;IAClC,IAAI,EAAE,qBAAqB,CAAC;gBAEvB,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAKxE;AAED,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,eAAe,GACf,kBAAkB,GAClB,cAAc,GACd,MAAM,GACN,MAAM,GACN,YAAY,GACZ,gBAAgB,GAChB,SAAS,CAAC;AAEd,0EAA0E;AAC1E,qBAAa,iBAAkB,SAAQ,KAAK;IACnC,IAAI,EAAE,qBAAqB,CAAC;gBAEvB,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAKxE"}
@@ -0,0 +1,63 @@
1
+ /** Error returned by {@link FileSystem} file operations. */
2
+ export class FileError extends Error {
3
+ /** Backend-independent error code. */
4
+ code;
5
+ /** Absolute addressed path associated with the failure, when available. */
6
+ path;
7
+ constructor(code, message, path, cause) {
8
+ super(message, cause === undefined ? undefined : { cause });
9
+ this.name = "FileError";
10
+ this.code = code;
11
+ this.path = path;
12
+ }
13
+ }
14
+ /** Error returned by {@link ExecutionEnv.exec}. */
15
+ export class ExecutionError extends Error {
16
+ /** Backend-independent error code. */
17
+ code;
18
+ constructor(code, message, cause) {
19
+ super(message, cause === undefined ? undefined : { cause });
20
+ this.name = "ExecutionError";
21
+ this.code = code;
22
+ }
23
+ }
24
+ /** Error returned by compaction helpers. */
25
+ export class CompactionError extends Error {
26
+ /** Backend-independent error code. */
27
+ code;
28
+ constructor(code, message, cause) {
29
+ super(message, cause === undefined ? undefined : { cause });
30
+ this.name = "CompactionError";
31
+ this.code = code;
32
+ }
33
+ }
34
+ /** Error returned by branch summarization helpers. */
35
+ export class BranchSummaryError extends Error {
36
+ /** Backend-independent error code. */
37
+ code;
38
+ constructor(code, message, cause) {
39
+ super(message, cause === undefined ? undefined : { cause });
40
+ this.name = "BranchSummaryError";
41
+ this.code = code;
42
+ }
43
+ }
44
+ /** Error thrown by conversation storage, repositories, and conversation tree operations. */
45
+ export class ConversationError extends Error {
46
+ /** Conversation subsystem error code. */
47
+ code;
48
+ constructor(code, message, cause) {
49
+ super(message, cause === undefined ? undefined : { cause });
50
+ this.name = "ConversationError";
51
+ this.code = code;
52
+ }
53
+ }
54
+ /** Public AgentHarness failure with a stable top-level classification. */
55
+ export class AgentHarnessError extends Error {
56
+ code;
57
+ constructor(code, message, cause) {
58
+ super(message, cause === undefined ? undefined : { cause });
59
+ this.name = "AgentHarnessError";
60
+ this.code = code;
61
+ }
62
+ }
63
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/harness/errors.ts"],"names":[],"mappings":"AAWA,4DAA4D;AAC5D,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,sCAAsC;IAC/B,IAAI,CAAgB;IAC3B,2EAA2E;IACpE,IAAI,CAAU;IAErB,YACE,IAAmB,EACnB,OAAe,EACf,IAAa,EACb,KAAa;QAEb,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAWD,mDAAmD;AACnD,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,sCAAsC;IAC/B,IAAI,CAAqB;IAEhC,YAAY,IAAwB,EAAE,OAAe,EAAE,KAAa;QAClE,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AASD,4CAA4C;AAC5C,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,sCAAsC;IAC/B,IAAI,CAAsB;IAEjC,YAAY,IAAyB,EAAE,OAAe,EAAE,KAAa;QACnE,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAQD,sDAAsD;AACtD,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,sCAAsC;IAC/B,IAAI,CAAyB;IAEpC,YAAY,IAA4B,EAAE,OAAe,EAAE,KAAa;QACtE,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAUD,4FAA4F;AAC5F,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,yCAAyC;IAClC,IAAI,CAAwB;IAEnC,YAAY,IAA2B,EAAE,OAAe,EAAE,KAAa;QACrE,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAaD,0EAA0E;AAC1E,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACnC,IAAI,CAAwB;IAEnC,YAAY,IAA2B,EAAE,OAAe,EAAE,KAAa;QACrE,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,238 @@
1
+ import type { ImageContent, TextContent } from "@earendil-works/pi-ai";
2
+ import type { AgentEvent, AgentMessage, AnyModel, ThinkingLevel } from "../types.js";
3
+ import type { BranchSummaryEntry, CompactionEntry, ConversationTreeEntry } from "./conversation/entries.js";
4
+ import type { AgentHarnessResources, AgentHarnessStreamOptions, AgentHarnessStreamOptionsPatch, PromptTemplate, Skill } from "./options.js";
5
+ export type AgentHarnessPhase = "idle" | "turn" | "compaction" | "branch_summary" | "retry";
6
+ export type PendingConversationWrite = (ConversationTreeEntry extends infer TEntry ? TEntry extends ConversationTreeEntry ? Omit<TEntry, "id" | "parentId" | "timestamp"> : never : never) & {
7
+ id?: string;
8
+ timestamp?: string;
9
+ };
10
+ export interface QueueUpdateEvent {
11
+ type: "queue_update";
12
+ steer: AgentMessage[];
13
+ followUp: AgentMessage[];
14
+ nextTurn: AgentMessage[];
15
+ }
16
+ export interface SavePointEvent {
17
+ type: "save_point";
18
+ hadPendingMutations: boolean;
19
+ }
20
+ export interface AbortEvent {
21
+ type: "abort";
22
+ clearedSteer: AgentMessage[];
23
+ clearedFollowUp: AgentMessage[];
24
+ }
25
+ export interface SettledEvent {
26
+ type: "settled";
27
+ nextTurnCount: number;
28
+ }
29
+ export interface BeforeAgentStartEvent<TSkill extends Skill = Skill, TPromptTemplate extends PromptTemplate = PromptTemplate> {
30
+ type: "before_agent_start";
31
+ prompt: string;
32
+ images?: ImageContent[];
33
+ systemPrompt: string;
34
+ resources: AgentHarnessResources<TSkill, TPromptTemplate>;
35
+ }
36
+ export interface ContextEvent {
37
+ type: "context";
38
+ messages: AgentMessage[];
39
+ }
40
+ export interface BeforeProviderRequestEvent {
41
+ type: "before_provider_request";
42
+ model: AnyModel;
43
+ conversationId: string;
44
+ streamOptions: AgentHarnessStreamOptions;
45
+ }
46
+ export interface BeforeProviderPayloadEvent {
47
+ type: "before_provider_payload";
48
+ model: AnyModel;
49
+ payload: unknown;
50
+ }
51
+ export interface AfterProviderResponseEvent {
52
+ type: "after_provider_response";
53
+ status: number;
54
+ headers: Record<string, string>;
55
+ }
56
+ export interface ToolCallEvent {
57
+ type: "tool_call";
58
+ toolCallId: string;
59
+ toolName: string;
60
+ input: Record<string, unknown>;
61
+ }
62
+ export interface ToolResultEvent {
63
+ type: "tool_result";
64
+ toolCallId: string;
65
+ toolName: string;
66
+ input: Record<string, unknown>;
67
+ content: Array<TextContent | ImageContent>;
68
+ details: unknown;
69
+ isError: boolean;
70
+ }
71
+ export interface ConversationBeforeCompactEvent {
72
+ type: "conversation_before_compact";
73
+ preparation: CompactionPreparation;
74
+ branchEntries: ConversationTreeEntry[];
75
+ customInstructions?: string;
76
+ signal: AbortSignal;
77
+ }
78
+ export interface ConversationCompactEvent {
79
+ type: "conversation_compact";
80
+ compactionEntry: CompactionEntry;
81
+ fromHook: boolean;
82
+ }
83
+ export interface ConversationBeforeTreeEvent {
84
+ type: "conversation_before_tree";
85
+ preparation: TreePreparation;
86
+ signal: AbortSignal;
87
+ }
88
+ export interface ConversationTreeEvent {
89
+ type: "conversation_tree";
90
+ newLeafId: string | null;
91
+ oldLeafId: string | null;
92
+ summaryEntry?: BranchSummaryEntry;
93
+ fromHook?: boolean;
94
+ }
95
+ export interface ModelUpdateEvent {
96
+ type: "model_update";
97
+ model: AnyModel;
98
+ previousModel: AnyModel | undefined;
99
+ source: "set" | "restore";
100
+ }
101
+ export interface ThinkingLevelUpdateEvent {
102
+ type: "thinking_level_update";
103
+ level: ThinkingLevel;
104
+ previousLevel: ThinkingLevel;
105
+ }
106
+ export interface ToolsUpdateEvent {
107
+ type: "tools_update";
108
+ toolNames: string[];
109
+ previousToolNames: string[];
110
+ activeToolNames: string[];
111
+ previousActiveToolNames: string[];
112
+ source: "set" | "restore";
113
+ }
114
+ export interface ResourcesUpdateEvent<TSkill extends Skill = Skill, TPromptTemplate extends PromptTemplate = PromptTemplate> {
115
+ type: "resources_update";
116
+ resources: AgentHarnessResources<TSkill, TPromptTemplate>;
117
+ previousResources: AgentHarnessResources<TSkill, TPromptTemplate>;
118
+ }
119
+ export type AgentHarnessOwnEvent<TSkill extends Skill = Skill, TPromptTemplate extends PromptTemplate = PromptTemplate> = QueueUpdateEvent | SavePointEvent | AbortEvent | SettledEvent | BeforeAgentStartEvent<TSkill, TPromptTemplate> | ContextEvent | BeforeProviderRequestEvent | BeforeProviderPayloadEvent | AfterProviderResponseEvent | ToolCallEvent | ToolResultEvent | ConversationBeforeCompactEvent | ConversationCompactEvent | ConversationBeforeTreeEvent | ConversationTreeEvent | ModelUpdateEvent | ThinkingLevelUpdateEvent | ResourcesUpdateEvent<TSkill, TPromptTemplate> | ToolsUpdateEvent;
120
+ export type AgentHarnessEvent<TSkill extends Skill = Skill, TPromptTemplate extends PromptTemplate = PromptTemplate> = AgentEvent | AgentHarnessOwnEvent<TSkill, TPromptTemplate>;
121
+ export interface BeforeAgentStartResult {
122
+ messages?: AgentMessage[];
123
+ systemPrompt?: string;
124
+ }
125
+ export interface ContextResult {
126
+ messages: AgentMessage[];
127
+ }
128
+ export interface BeforeProviderRequestResult {
129
+ streamOptions?: AgentHarnessStreamOptionsPatch;
130
+ }
131
+ export interface BeforeProviderPayloadResult {
132
+ payload: unknown;
133
+ }
134
+ export interface ToolCallResult {
135
+ block?: boolean;
136
+ reason?: string;
137
+ }
138
+ export interface ToolResultPatch {
139
+ content?: Array<TextContent | ImageContent>;
140
+ details?: unknown;
141
+ isError?: boolean;
142
+ terminate?: boolean;
143
+ }
144
+ export interface ConversationBeforeCompactResult {
145
+ cancel?: boolean;
146
+ compaction?: CompactResult;
147
+ }
148
+ export interface ConversationBeforeTreeResult {
149
+ cancel?: boolean;
150
+ summary?: {
151
+ summary: string;
152
+ details?: unknown;
153
+ };
154
+ customInstructions?: string;
155
+ replaceInstructions?: boolean;
156
+ label?: string;
157
+ }
158
+ export type AgentHarnessEventResultMap = {
159
+ before_agent_start: BeforeAgentStartResult | undefined;
160
+ context: ContextResult | undefined;
161
+ before_provider_request: BeforeProviderRequestResult | undefined;
162
+ before_provider_payload: BeforeProviderPayloadResult | undefined;
163
+ after_provider_response: undefined;
164
+ tool_call: ToolCallResult | undefined;
165
+ tool_result: ToolResultPatch | undefined;
166
+ conversation_before_compact: ConversationBeforeCompactResult | undefined;
167
+ conversation_compact: undefined;
168
+ conversation_before_tree: ConversationBeforeTreeResult | undefined;
169
+ conversation_tree: undefined;
170
+ model_update: undefined;
171
+ thinking_level_update: undefined;
172
+ resources_update: undefined;
173
+ tools_update: undefined;
174
+ queue_update: undefined;
175
+ save_point: undefined;
176
+ abort: undefined;
177
+ settled: undefined;
178
+ };
179
+ export interface AbortResult {
180
+ clearedSteer: AgentMessage[];
181
+ clearedFollowUp: AgentMessage[];
182
+ }
183
+ export interface CompactResult {
184
+ summary: string;
185
+ firstKeptEntryId: string;
186
+ tokensBefore: number;
187
+ details?: unknown;
188
+ }
189
+ export interface NavigateTreeResult {
190
+ cancelled: boolean;
191
+ editorText?: string;
192
+ summaryEntry?: BranchSummaryEntry;
193
+ }
194
+ export interface CompactionSettings {
195
+ enabled: boolean;
196
+ reserveTokens: number;
197
+ keepRecentTokens: number;
198
+ }
199
+ export interface CompactionPreparation {
200
+ firstKeptEntryId: string;
201
+ messagesToSummarize: AgentMessage[];
202
+ turnPrefixMessages: AgentMessage[];
203
+ isSplitTurn: boolean;
204
+ tokensBefore: number;
205
+ previousSummary?: string;
206
+ fileOps: FileOperations;
207
+ settings: CompactionSettings;
208
+ }
209
+ export interface FileOperations {
210
+ read: Set<string>;
211
+ written: Set<string>;
212
+ edited: Set<string>;
213
+ }
214
+ export interface TreePreparation {
215
+ targetId: string;
216
+ oldLeafId: string | null;
217
+ commonAncestorId: string | null;
218
+ entriesToSummarize: ConversationTreeEntry[];
219
+ userWantsSummary: boolean;
220
+ customInstructions?: string;
221
+ replaceInstructions?: boolean;
222
+ label?: string;
223
+ }
224
+ export interface GenerateBranchSummaryOptions {
225
+ model: AnyModel;
226
+ apiKey: string;
227
+ headers?: Record<string, string>;
228
+ signal: AbortSignal;
229
+ customInstructions?: string;
230
+ replaceInstructions?: boolean;
231
+ reserveTokens?: number;
232
+ }
233
+ export interface BranchSummaryResult {
234
+ summary: string;
235
+ readFiles: string[];
236
+ modifiedFiles: string[];
237
+ }
238
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/harness/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/harness/events.ts"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ import type { AgentMessage, AgentTool, AnyModel, QueueMode, ThinkingLevel } from "../types.js";
2
+ import type { Conversation } from "./conversation/conversation.js";
3
+ import type { AbortResult, AgentHarnessOwnEvent, AgentHarnessPhase, PendingConversationWrite } from "./events.js";
4
+ import type { AgentHarnessResources, AgentHarnessStreamOptions, PromptTemplate, Skill } from "./options.js";
5
+ type QueuedMessageEntry = {
6
+ message: AgentMessage;
7
+ };
8
+ export type HarnessConfigurationState<TSkill extends Skill, TPromptTemplate extends PromptTemplate, TTool extends AgentTool> = {
9
+ phase: AgentHarnessPhase;
10
+ conversation: Conversation;
11
+ pendingConversationWrites: PendingConversationWrite[];
12
+ model: AnyModel;
13
+ thinkingLevel: ThinkingLevel;
14
+ tools: Map<string, TTool>;
15
+ activeToolNames: string[];
16
+ steeringQueueMode: QueueMode;
17
+ followUpQueueMode: QueueMode;
18
+ resources: AgentHarnessResources<TSkill, TPromptTemplate>;
19
+ streamOptions: AgentHarnessStreamOptions;
20
+ steerQueue: QueuedMessageEntry[];
21
+ followUpQueue: QueuedMessageEntry[];
22
+ runAbortController?: AbortController;
23
+ emitOwn(event: AgentHarnessOwnEvent): Promise<void>;
24
+ emitQueueUpdate(): Promise<void>;
25
+ waitForIdle(): Promise<void>;
26
+ };
27
+ export declare function setHarnessModel<TSkill extends Skill, TPromptTemplate extends PromptTemplate, TTool extends AgentTool>(state: HarnessConfigurationState<TSkill, TPromptTemplate, TTool>, model: AnyModel): Promise<void>;
28
+ export declare function setHarnessThinkingLevel<TSkill extends Skill, TPromptTemplate extends PromptTemplate, TTool extends AgentTool>(state: HarnessConfigurationState<TSkill, TPromptTemplate, TTool>, level: ThinkingLevel): Promise<void>;
29
+ export declare function setHarnessTools<TSkill extends Skill, TPromptTemplate extends PromptTemplate, TTool extends AgentTool>(state: HarnessConfigurationState<TSkill, TPromptTemplate, TTool>, tools: TTool[], activeToolNames?: string[]): Promise<void>;
30
+ export declare function getHarnessActiveTools<TSkill extends Skill, TPromptTemplate extends PromptTemplate, TTool extends AgentTool>(state: HarnessConfigurationState<TSkill, TPromptTemplate, TTool>): TTool[];
31
+ export declare function setHarnessActiveTools<TSkill extends Skill, TPromptTemplate extends PromptTemplate, TTool extends AgentTool>(state: HarnessConfigurationState<TSkill, TPromptTemplate, TTool>, toolNames: string[]): Promise<void>;
32
+ export declare function setHarnessResources<TSkill extends Skill, TPromptTemplate extends PromptTemplate, TTool extends AgentTool>(state: HarnessConfigurationState<TSkill, TPromptTemplate, TTool>, resources: AgentHarnessResources<TSkill, TPromptTemplate>): Promise<void>;
33
+ export declare function abortHarnessRun<TSkill extends Skill, TPromptTemplate extends PromptTemplate, TTool extends AgentTool>(state: HarnessConfigurationState<TSkill, TPromptTemplate, TTool>): Promise<AbortResult>;
34
+ export declare function cloneHarnessStreamOptions(streamOptions: AgentHarnessStreamOptions): AgentHarnessStreamOptions;
35
+ export {};
36
+ //# sourceMappingURL=harness-configuration-methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-configuration-methods.d.ts","sourceRoot":"","sources":["../../src/harness/harness-configuration-methods.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ import { cloneHarnessResources, createModelUpdateEvent, createThinkingLevelUpdateEvent, prepareActiveToolsConfiguration, prepareToolConfiguration, } from "./configuration.js";
2
+ import { AgentHarnessError } from "./errors.js";
3
+ import { normalizeHarnessError } from "./harness-events.js";
4
+ import { toError } from "./result.js";
5
+ import { cloneStreamOptions } from "./stream-options.js";
6
+ export async function setHarnessModel(state, model) {
7
+ try {
8
+ const previousModel = state.model;
9
+ if (state.phase === "idle") {
10
+ await state.conversation.appendModelChange(model.provider, model.id);
11
+ }
12
+ else {
13
+ state.pendingConversationWrites.push({
14
+ type: "model_change",
15
+ provider: model.provider,
16
+ modelId: model.id,
17
+ });
18
+ }
19
+ state.model = model;
20
+ await state.emitOwn(createModelUpdateEvent(model, previousModel, "set"));
21
+ }
22
+ catch (error) {
23
+ throw normalizeHarnessError(error, "conversation");
24
+ }
25
+ }
26
+ export async function setHarnessThinkingLevel(state, level) {
27
+ try {
28
+ const previousLevel = state.thinkingLevel;
29
+ if (state.phase === "idle") {
30
+ await state.conversation.appendThinkingLevelChange(level);
31
+ }
32
+ else {
33
+ state.pendingConversationWrites.push({
34
+ type: "thinking_level_change",
35
+ thinkingLevel: level,
36
+ });
37
+ }
38
+ state.thinkingLevel = level;
39
+ await state.emitOwn(createThinkingLevelUpdateEvent(level, previousLevel));
40
+ }
41
+ catch (error) {
42
+ throw normalizeHarnessError(error, "conversation");
43
+ }
44
+ }
45
+ export async function setHarnessTools(state, tools, activeToolNames) {
46
+ try {
47
+ const next = prepareToolConfiguration({
48
+ currentTools: state.tools,
49
+ currentActiveToolNames: state.activeToolNames,
50
+ tools,
51
+ activeToolNames,
52
+ source: "set",
53
+ });
54
+ await writeActiveToolsChange(state, next.activeToolNames);
55
+ state.tools = next.tools;
56
+ state.activeToolNames = [...next.activeToolNames];
57
+ await state.emitOwn(next.event);
58
+ }
59
+ catch (error) {
60
+ throw normalizeHarnessError(error, "invalid_argument");
61
+ }
62
+ }
63
+ export function getHarnessActiveTools(state) {
64
+ return state.activeToolNames.map((name) => {
65
+ const tool = state.tools.get(name);
66
+ if (!tool) {
67
+ throw new AgentHarnessError("invalid_state", `Active tool ${name} is not registered`);
68
+ }
69
+ return tool;
70
+ });
71
+ }
72
+ export async function setHarnessActiveTools(state, toolNames) {
73
+ try {
74
+ const next = prepareActiveToolsConfiguration({
75
+ tools: state.tools,
76
+ currentActiveToolNames: state.activeToolNames,
77
+ activeToolNames: toolNames,
78
+ source: "set",
79
+ });
80
+ await writeActiveToolsChange(state, next.activeToolNames);
81
+ state.activeToolNames = [...next.activeToolNames];
82
+ await state.emitOwn(next.event);
83
+ }
84
+ catch (error) {
85
+ throw normalizeHarnessError(error, "invalid_argument");
86
+ }
87
+ }
88
+ export async function setHarnessResources(state, resources) {
89
+ const previousResources = cloneHarnessResources(state.resources);
90
+ state.resources = cloneHarnessResources(resources);
91
+ await state.emitOwn({
92
+ type: "resources_update",
93
+ resources: cloneHarnessResources(state.resources),
94
+ previousResources,
95
+ });
96
+ }
97
+ export async function abortHarnessRun(state) {
98
+ const clearedSteer = state.steerQueue.map((entry) => entry.message);
99
+ const clearedFollowUp = state.followUpQueue.map((entry) => entry.message);
100
+ state.steerQueue = [];
101
+ state.followUpQueue = [];
102
+ state.runAbortController?.abort();
103
+ const errors = [];
104
+ try {
105
+ await state.emitQueueUpdate();
106
+ }
107
+ catch (error) {
108
+ errors.push(toError(error));
109
+ }
110
+ try {
111
+ await state.waitForIdle();
112
+ }
113
+ catch (error) {
114
+ errors.push(toError(error));
115
+ }
116
+ try {
117
+ await state.emitOwn({ type: "abort", clearedSteer, clearedFollowUp });
118
+ }
119
+ catch (error) {
120
+ errors.push(toError(error));
121
+ }
122
+ if (errors.length > 0) {
123
+ const [singleError] = errors;
124
+ const cause = errors.length === 1 && singleError
125
+ ? singleError
126
+ : new AggregateError(errors, "Abort completed with errors");
127
+ throw normalizeHarnessError(cause, "hook");
128
+ }
129
+ return { clearedSteer, clearedFollowUp };
130
+ }
131
+ export function cloneHarnessStreamOptions(streamOptions) {
132
+ return cloneStreamOptions(streamOptions);
133
+ }
134
+ async function writeActiveToolsChange(state, activeToolNames) {
135
+ if (state.phase === "idle") {
136
+ await state.conversation.appendActiveToolsChange(activeToolNames);
137
+ }
138
+ else {
139
+ state.pendingConversationWrites.push({
140
+ type: "active_tools_change",
141
+ activeToolNames: [...activeToolNames],
142
+ });
143
+ }
144
+ }
145
+ //# sourceMappingURL=harness-configuration-methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-configuration-methods.js","sourceRoot":"","sources":["../../src/harness/harness-configuration-methods.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { AssistantMessage } from "@earendil-works/pi-ai";
2
+ import type { AgentEvent, AgentMessage, AgentTool, AnyModel } from "../types.js";
3
+ import type { PromptTemplate, Skill } from "./options.js";
4
+ import type { AgentHarnessTurnState } from "./turn-state.js";
5
+ export type HarnessContinuationState<TSkill extends Skill, TPromptTemplate extends PromptTemplate, TTool extends AgentTool> = {
6
+ phase: string;
7
+ runAbortController?: AbortController;
8
+ startRunPromise(): () => void;
9
+ createTurnState(): Promise<AgentHarnessTurnState<TSkill, TPromptTemplate, TTool>>;
10
+ createContext(turnState: AgentHarnessTurnState<TSkill, TPromptTemplate, TTool>): unknown;
11
+ createLoopConfig(getTurnState: () => AgentHarnessTurnState<TSkill, TPromptTemplate, TTool>, setTurnState: (turnState: AgentHarnessTurnState<TSkill, TPromptTemplate, TTool>) => void): never;
12
+ handleAgentEvent(event: AgentEvent, signal?: AbortSignal): Promise<void>;
13
+ createStreamFn(getTurnState: () => AgentHarnessTurnState<TSkill, TPromptTemplate, TTool>): never;
14
+ emitRunFailure(model: AnyModel, error: unknown, aborted: boolean, signal: AbortSignal): Promise<AgentMessage[]>;
15
+ flushPendingConversationWrites(): Promise<void>;
16
+ };
17
+ export declare function continueHarnessRun<TSkill extends Skill, TPromptTemplate extends PromptTemplate, TTool extends AgentTool>(state: HarnessContinuationState<TSkill, TPromptTemplate, TTool>): Promise<AssistantMessage>;
18
+ //# sourceMappingURL=harness-continuation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-continuation.d.ts","sourceRoot":"","sources":["../../src/harness/harness-continuation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,SAAS,EACT,QAAQ,EACT,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,MAAM,wBAAwB,CAClC,MAAM,SAAS,KAAK,EACpB,eAAe,SAAS,cAAc,EACtC,KAAK,SAAS,SAAS,IACrB;IACF,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC,eAAe,IAAI,MAAM,IAAI,CAAC;IAC9B,eAAe,IAAI,OAAO,CACxB,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,CACtD,CAAC;IACF,aAAa,CACX,SAAS,EAAE,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,GAC/D,OAAO,CAAC;IACX,gBAAgB,CACd,YAAY,EAAE,MAAM,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,EACzE,YAAY,EAAE,CACZ,SAAS,EAAE,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,KAC7D,IAAI,GACR,KAAK,CAAC;IACT,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,cAAc,CACZ,YAAY,EAAE,MAAM,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,GACxE,KAAK,CAAC;IACT,cAAc,CACZ,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3B,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,MAAM,SAAS,KAAK,EACpB,eAAe,SAAS,cAAc,EACtC,KAAK,SAAS,SAAS,EAEvB,KAAK,EAAE,wBAAwB,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,GAC9D,OAAO,CAAC,gBAAgB,CAAC,CAiE3B"}