pulseed 0.6.2 → 0.6.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 (614) hide show
  1. package/dist/adapters/agents/claude-api.d.ts +2 -2
  2. package/dist/adapters/agents/claude-api.d.ts.map +1 -1
  3. package/dist/adapters/agents/claude-api.js +3 -2
  4. package/dist/adapters/agents/claude-api.js.map +1 -1
  5. package/dist/adapters/agents/openai-codex.d.ts +3 -0
  6. package/dist/adapters/agents/openai-codex.d.ts.map +1 -1
  7. package/dist/adapters/agents/openai-codex.js +5 -0
  8. package/dist/adapters/agents/openai-codex.js.map +1 -1
  9. package/dist/adapters/datasources/artifact-metric-datasource.d.ts +13 -0
  10. package/dist/adapters/datasources/artifact-metric-datasource.d.ts.map +1 -1
  11. package/dist/adapters/datasources/artifact-metric-datasource.js +257 -8
  12. package/dist/adapters/datasources/artifact-metric-datasource.js.map +1 -1
  13. package/dist/base/config/global-config.d.ts +4 -4
  14. package/dist/base/llm/codex-llm-client.d.ts +3 -0
  15. package/dist/base/llm/codex-llm-client.d.ts.map +1 -1
  16. package/dist/base/llm/codex-llm-client.js +71 -7
  17. package/dist/base/llm/codex-llm-client.js.map +1 -1
  18. package/dist/base/llm/llm-client.d.ts +2 -0
  19. package/dist/base/llm/llm-client.d.ts.map +1 -1
  20. package/dist/base/llm/llm-client.js +2 -2
  21. package/dist/base/llm/llm-client.js.map +1 -1
  22. package/dist/base/llm/ollama-client.d.ts.map +1 -1
  23. package/dist/base/llm/ollama-client.js +12 -0
  24. package/dist/base/llm/ollama-client.js.map +1 -1
  25. package/dist/base/llm/openai-client.d.ts +4 -0
  26. package/dist/base/llm/openai-client.d.ts.map +1 -1
  27. package/dist/base/llm/openai-client.js +29 -15
  28. package/dist/base/llm/openai-client.js.map +1 -1
  29. package/dist/base/llm/provider-config.d.ts +12 -2
  30. package/dist/base/llm/provider-config.d.ts.map +1 -1
  31. package/dist/base/llm/provider-config.js +46 -5
  32. package/dist/base/llm/provider-config.js.map +1 -1
  33. package/dist/base/llm/provider-factory.d.ts +1 -1
  34. package/dist/base/llm/provider-factory.d.ts.map +1 -1
  35. package/dist/base/llm/provider-factory.js +7 -2
  36. package/dist/base/llm/provider-factory.js.map +1 -1
  37. package/dist/base/protocol/exact-protocol.d.ts +47 -0
  38. package/dist/base/protocol/exact-protocol.d.ts.map +1 -0
  39. package/dist/base/protocol/exact-protocol.js +175 -0
  40. package/dist/base/protocol/exact-protocol.js.map +1 -0
  41. package/dist/base/types/core.d.ts +1 -1
  42. package/dist/base/types/core.d.ts.map +1 -1
  43. package/dist/base/types/core.js +2 -0
  44. package/dist/base/types/core.js.map +1 -1
  45. package/dist/base/utils/execFileNoThrow.d.ts +4 -0
  46. package/dist/base/utils/execFileNoThrow.d.ts.map +1 -1
  47. package/dist/base/utils/execFileNoThrow.js +81 -2
  48. package/dist/base/utils/execFileNoThrow.js.map +1 -1
  49. package/dist/base/utils/workspace-path.d.ts +6 -0
  50. package/dist/base/utils/workspace-path.d.ts.map +1 -0
  51. package/dist/base/utils/workspace-path.js +24 -0
  52. package/dist/base/utils/workspace-path.js.map +1 -0
  53. package/dist/index.d.ts +4 -0
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +2 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/interface/chat/chat-event-state.d.ts +2 -0
  58. package/dist/interface/chat/chat-event-state.d.ts.map +1 -1
  59. package/dist/interface/chat/chat-event-state.js +22 -41
  60. package/dist/interface/chat/chat-event-state.js.map +1 -1
  61. package/dist/interface/chat/chat-events.d.ts +15 -1
  62. package/dist/interface/chat/chat-events.d.ts.map +1 -1
  63. package/dist/interface/chat/chat-history.d.ts +3816 -192
  64. package/dist/interface/chat/chat-history.d.ts.map +1 -1
  65. package/dist/interface/chat/chat-history.js +529 -5
  66. package/dist/interface/chat/chat-history.js.map +1 -1
  67. package/dist/interface/chat/chat-runner-command-helpers.d.ts +1 -0
  68. package/dist/interface/chat/chat-runner-command-helpers.d.ts.map +1 -1
  69. package/dist/interface/chat/chat-runner-command-helpers.js +1 -0
  70. package/dist/interface/chat/chat-runner-command-helpers.js.map +1 -1
  71. package/dist/interface/chat/chat-runner-commands.d.ts +3 -1
  72. package/dist/interface/chat/chat-runner-commands.d.ts.map +1 -1
  73. package/dist/interface/chat/chat-runner-commands.js +175 -22
  74. package/dist/interface/chat/chat-runner-commands.js.map +1 -1
  75. package/dist/interface/chat/chat-runner-contracts.d.ts +6 -1
  76. package/dist/interface/chat/chat-runner-contracts.d.ts.map +1 -1
  77. package/dist/interface/chat/chat-runner-event-bridge.d.ts +13 -1
  78. package/dist/interface/chat/chat-runner-event-bridge.d.ts.map +1 -1
  79. package/dist/interface/chat/chat-runner-event-bridge.js +51 -3
  80. package/dist/interface/chat/chat-runner-event-bridge.js.map +1 -1
  81. package/dist/interface/chat/chat-runner-routes.d.ts +5 -17
  82. package/dist/interface/chat/chat-runner-routes.d.ts.map +1 -1
  83. package/dist/interface/chat/chat-runner-routes.js +80 -51
  84. package/dist/interface/chat/chat-runner-routes.js.map +1 -1
  85. package/dist/interface/chat/chat-runner-runtime.d.ts.map +1 -1
  86. package/dist/interface/chat/chat-runner-runtime.js +4 -0
  87. package/dist/interface/chat/chat-runner-runtime.js.map +1 -1
  88. package/dist/interface/chat/chat-runner.d.ts +8 -1
  89. package/dist/interface/chat/chat-runner.d.ts.map +1 -1
  90. package/dist/interface/chat/chat-runner.js +172 -49
  91. package/dist/interface/chat/chat-runner.js.map +1 -1
  92. package/dist/interface/chat/chat-session-store.d.ts +3 -0
  93. package/dist/interface/chat/chat-session-store.d.ts.map +1 -1
  94. package/dist/interface/chat/chat-session-store.js +12 -0
  95. package/dist/interface/chat/chat-session-store.js.map +1 -1
  96. package/dist/interface/chat/chat-state-service.d.ts +1 -0
  97. package/dist/interface/chat/chat-state-service.d.ts.map +1 -1
  98. package/dist/interface/chat/chat-state-service.js +1 -0
  99. package/dist/interface/chat/chat-state-service.js.map +1 -1
  100. package/dist/interface/chat/cross-platform-session.d.ts +15 -0
  101. package/dist/interface/chat/cross-platform-session.d.ts.map +1 -1
  102. package/dist/interface/chat/cross-platform-session.js +260 -42
  103. package/dist/interface/chat/cross-platform-session.js.map +1 -1
  104. package/dist/interface/chat/failure-recovery.d.ts.map +1 -1
  105. package/dist/interface/chat/failure-recovery.js +15 -1
  106. package/dist/interface/chat/failure-recovery.js.map +1 -1
  107. package/dist/interface/chat/freeform-route-classifier.d.ts +2 -2
  108. package/dist/interface/chat/ingress-router.d.ts +3 -0
  109. package/dist/interface/chat/ingress-router.d.ts.map +1 -1
  110. package/dist/interface/chat/ingress-router.js +3 -0
  111. package/dist/interface/chat/ingress-router.js.map +1 -1
  112. package/dist/interface/chat/model-request-builder.d.ts +37 -0
  113. package/dist/interface/chat/model-request-builder.d.ts.map +1 -0
  114. package/dist/interface/chat/model-request-builder.js +76 -0
  115. package/dist/interface/chat/model-request-builder.js.map +1 -0
  116. package/dist/interface/chat/turn-context.d.ts +200 -0
  117. package/dist/interface/chat/turn-context.d.ts.map +1 -0
  118. package/dist/interface/chat/turn-context.js +249 -0
  119. package/dist/interface/chat/turn-context.js.map +1 -0
  120. package/dist/interface/chat/turn-protocol.d.ts +35 -0
  121. package/dist/interface/chat/turn-protocol.d.ts.map +1 -0
  122. package/dist/interface/chat/turn-protocol.js +27 -0
  123. package/dist/interface/chat/turn-protocol.js.map +1 -0
  124. package/dist/interface/chat/user-input.d.ts +55 -0
  125. package/dist/interface/chat/user-input.d.ts.map +1 -0
  126. package/dist/interface/chat/user-input.js +52 -0
  127. package/dist/interface/chat/user-input.js.map +1 -0
  128. package/dist/interface/cli/cli-command-registry.d.ts +1 -1
  129. package/dist/interface/cli/cli-command-registry.d.ts.map +1 -1
  130. package/dist/interface/cli/cli-command-registry.js +12 -16
  131. package/dist/interface/cli/cli-command-registry.js.map +1 -1
  132. package/dist/interface/cli/commands/config.d.ts.map +1 -1
  133. package/dist/interface/cli/commands/config.js +12 -1
  134. package/dist/interface/cli/commands/config.js.map +1 -1
  135. package/dist/interface/cli/commands/daemon-shared.d.ts +8 -0
  136. package/dist/interface/cli/commands/daemon-shared.d.ts.map +1 -1
  137. package/dist/interface/cli/commands/daemon-shared.js +18 -2
  138. package/dist/interface/cli/commands/daemon-shared.js.map +1 -1
  139. package/dist/interface/cli/commands/daemon.d.ts.map +1 -1
  140. package/dist/interface/cli/commands/daemon.js +64 -2
  141. package/dist/interface/cli/commands/daemon.js.map +1 -1
  142. package/dist/interface/cli/commands/doctor.d.ts +1 -0
  143. package/dist/interface/cli/commands/doctor.d.ts.map +1 -1
  144. package/dist/interface/cli/commands/doctor.js +83 -1
  145. package/dist/interface/cli/commands/doctor.js.map +1 -1
  146. package/dist/interface/cli/commands/goal-dispatch.d.ts.map +1 -1
  147. package/dist/interface/cli/commands/goal-dispatch.js +19 -7
  148. package/dist/interface/cli/commands/goal-dispatch.js.map +1 -1
  149. package/dist/interface/cli/commands/goal-raw.d.ts +1 -0
  150. package/dist/interface/cli/commands/goal-raw.d.ts.map +1 -1
  151. package/dist/interface/cli/commands/goal-raw.js +34 -2
  152. package/dist/interface/cli/commands/goal-raw.js.map +1 -1
  153. package/dist/interface/cli/commands/goal-utils.d.ts.map +1 -1
  154. package/dist/interface/cli/commands/goal-utils.js +3 -5
  155. package/dist/interface/cli/commands/goal-utils.js.map +1 -1
  156. package/dist/interface/cli/commands/run.d.ts.map +1 -1
  157. package/dist/interface/cli/commands/run.js +50 -0
  158. package/dist/interface/cli/commands/run.js.map +1 -1
  159. package/dist/interface/cli/commands/setup/import/flow.d.ts.map +1 -1
  160. package/dist/interface/cli/commands/setup/import/flow.js +2 -0
  161. package/dist/interface/cli/commands/setup/import/flow.js.map +1 -1
  162. package/dist/interface/cli/commands/setup/import/provider.d.ts.map +1 -1
  163. package/dist/interface/cli/commands/setup/import/provider.js +5 -1
  164. package/dist/interface/cli/commands/setup/import/provider.js.map +1 -1
  165. package/dist/interface/cli/commands/setup/import/types.d.ts +1 -0
  166. package/dist/interface/cli/commands/setup/import/types.d.ts.map +1 -1
  167. package/dist/interface/cli/commands/setup-shared.d.ts +2 -0
  168. package/dist/interface/cli/commands/setup-shared.d.ts.map +1 -1
  169. package/dist/interface/cli/commands/setup-shared.js +4 -1
  170. package/dist/interface/cli/commands/setup-shared.js.map +1 -1
  171. package/dist/interface/cli/commands/setup-wizard.d.ts +2 -0
  172. package/dist/interface/cli/commands/setup-wizard.d.ts.map +1 -1
  173. package/dist/interface/cli/commands/setup-wizard.js +36 -4
  174. package/dist/interface/cli/commands/setup-wizard.js.map +1 -1
  175. package/dist/interface/cli/commands/setup.d.ts.map +1 -1
  176. package/dist/interface/cli/commands/setup.js +13 -1
  177. package/dist/interface/cli/commands/setup.js.map +1 -1
  178. package/dist/interface/cli/setup.d.ts +1 -1
  179. package/dist/interface/cli/setup.d.ts.map +1 -1
  180. package/dist/interface/cli/setup.js +4 -3
  181. package/dist/interface/cli/setup.js.map +1 -1
  182. package/dist/interface/cli/utils/loop-runner.d.ts +1 -0
  183. package/dist/interface/cli/utils/loop-runner.d.ts.map +1 -1
  184. package/dist/interface/cli/utils/loop-runner.js +12 -3
  185. package/dist/interface/cli/utils/loop-runner.js.map +1 -1
  186. package/dist/interface/tui/app.d.ts +6 -1
  187. package/dist/interface/tui/app.d.ts.map +1 -1
  188. package/dist/interface/tui/app.js +29 -12
  189. package/dist/interface/tui/app.js.map +1 -1
  190. package/dist/interface/tui/bash-mode.d.ts.map +1 -1
  191. package/dist/interface/tui/bash-mode.js +2 -9
  192. package/dist/interface/tui/bash-mode.js.map +1 -1
  193. package/dist/interface/tui/chat/suggestions.js +1 -1
  194. package/dist/interface/tui/chat/suggestions.js.map +1 -1
  195. package/dist/interface/tui/chat/viewport.d.ts.map +1 -1
  196. package/dist/interface/tui/chat/viewport.js +57 -11
  197. package/dist/interface/tui/chat/viewport.js.map +1 -1
  198. package/dist/interface/tui/entry-deps.d.ts +6 -1
  199. package/dist/interface/tui/entry-deps.d.ts.map +1 -1
  200. package/dist/interface/tui/entry-deps.js +3 -0
  201. package/dist/interface/tui/entry-deps.js.map +1 -1
  202. package/dist/interface/tui/entry.d.ts.map +1 -1
  203. package/dist/interface/tui/entry.js +6 -2
  204. package/dist/interface/tui/entry.js.map +1 -1
  205. package/dist/interface/tui/input-action.d.ts.map +1 -1
  206. package/dist/interface/tui/input-action.js +3 -2
  207. package/dist/interface/tui/input-action.js.map +1 -1
  208. package/dist/interface/tui/intent-recognizer.d.ts.map +1 -1
  209. package/dist/interface/tui/intent-recognizer.js +21 -33
  210. package/dist/interface/tui/intent-recognizer.js.map +1 -1
  211. package/dist/orchestrator/execution/adapter-layer.d.ts +6 -1
  212. package/dist/orchestrator/execution/adapter-layer.d.ts.map +1 -1
  213. package/dist/orchestrator/execution/adapter-layer.js.map +1 -1
  214. package/dist/orchestrator/execution/agent-loop/agent-loop-command-classifier.d.ts +12 -1
  215. package/dist/orchestrator/execution/agent-loop/agent-loop-command-classifier.d.ts.map +1 -1
  216. package/dist/orchestrator/execution/agent-loop/agent-loop-command-classifier.js +16 -31
  217. package/dist/orchestrator/execution/agent-loop/agent-loop-command-classifier.js.map +1 -1
  218. package/dist/orchestrator/execution/agent-loop/agent-loop-compaction-record.d.ts +75 -0
  219. package/dist/orchestrator/execution/agent-loop/agent-loop-compaction-record.d.ts.map +1 -0
  220. package/dist/orchestrator/execution/agent-loop/agent-loop-compaction-record.js +10 -0
  221. package/dist/orchestrator/execution/agent-loop/agent-loop-compaction-record.js.map +1 -0
  222. package/dist/orchestrator/execution/agent-loop/agent-loop-compactor.d.ts +3 -2
  223. package/dist/orchestrator/execution/agent-loop/agent-loop-compactor.d.ts.map +1 -1
  224. package/dist/orchestrator/execution/agent-loop/agent-loop-compactor.js +185 -22
  225. package/dist/orchestrator/execution/agent-loop/agent-loop-compactor.js.map +1 -1
  226. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.d.ts.map +1 -1
  227. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.js +12 -1
  228. package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.js.map +1 -1
  229. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.d.ts +1 -1
  230. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.d.ts.map +1 -1
  231. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js +11 -2
  232. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js.map +1 -1
  233. package/dist/orchestrator/execution/agent-loop/agent-loop-events.d.ts +8 -1
  234. package/dist/orchestrator/execution/agent-loop/agent-loop-events.d.ts.map +1 -1
  235. package/dist/orchestrator/execution/agent-loop/agent-loop-events.js.map +1 -1
  236. package/dist/orchestrator/execution/agent-loop/agent-loop-history.d.ts +3 -1
  237. package/dist/orchestrator/execution/agent-loop/agent-loop-history.d.ts.map +1 -1
  238. package/dist/orchestrator/execution/agent-loop/agent-loop-history.js +12 -3
  239. package/dist/orchestrator/execution/agent-loop/agent-loop-history.js.map +1 -1
  240. package/dist/orchestrator/execution/agent-loop/agent-loop-model-client.d.ts.map +1 -1
  241. package/dist/orchestrator/execution/agent-loop/agent-loop-model-client.js +8 -1
  242. package/dist/orchestrator/execution/agent-loop/agent-loop-model-client.js.map +1 -1
  243. package/dist/orchestrator/execution/agent-loop/agent-loop-model.d.ts +39 -1
  244. package/dist/orchestrator/execution/agent-loop/agent-loop-model.d.ts.map +1 -1
  245. package/dist/orchestrator/execution/agent-loop/agent-loop-model.js +21 -0
  246. package/dist/orchestrator/execution/agent-loop/agent-loop-model.js.map +1 -1
  247. package/dist/orchestrator/execution/agent-loop/agent-loop-result.d.ts +17 -11
  248. package/dist/orchestrator/execution/agent-loop/agent-loop-result.d.ts.map +1 -1
  249. package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.d.ts +4 -0
  250. package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.d.ts.map +1 -1
  251. package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.js +135 -0
  252. package/dist/orchestrator/execution/agent-loop/agent-loop-session-state.js.map +1 -1
  253. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.d.ts +3 -2
  254. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.d.ts.map +1 -1
  255. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.js +68 -61
  256. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.js.map +1 -1
  257. package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.d.ts +3 -1
  258. package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.d.ts.map +1 -1
  259. package/dist/orchestrator/execution/agent-loop/agent-loop-turn-context.js.map +1 -1
  260. package/dist/orchestrator/execution/agent-loop/agent-timeline.d.ts +12 -1
  261. package/dist/orchestrator/execution/agent-loop/agent-timeline.d.ts.map +1 -1
  262. package/dist/orchestrator/execution/agent-loop/agent-timeline.js +19 -56
  263. package/dist/orchestrator/execution/agent-loop/agent-timeline.js.map +1 -1
  264. package/dist/orchestrator/execution/agent-loop/anthropic-messages-agent-loop-model-client.d.ts.map +1 -1
  265. package/dist/orchestrator/execution/agent-loop/anthropic-messages-agent-loop-model-client.js +13 -4
  266. package/dist/orchestrator/execution/agent-loop/anthropic-messages-agent-loop-model-client.js.map +1 -1
  267. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts +12 -0
  268. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts.map +1 -1
  269. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js +404 -79
  270. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js.map +1 -1
  271. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts +1 -1
  272. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts.map +1 -1
  273. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js +80 -12
  274. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js.map +1 -1
  275. package/dist/orchestrator/execution/agent-loop/chat-display-output.d.ts +1 -0
  276. package/dist/orchestrator/execution/agent-loop/chat-display-output.d.ts.map +1 -1
  277. package/dist/orchestrator/execution/agent-loop/chat-display-output.js +3 -1
  278. package/dist/orchestrator/execution/agent-loop/chat-display-output.js.map +1 -1
  279. package/dist/orchestrator/execution/agent-loop/index.d.ts +3 -0
  280. package/dist/orchestrator/execution/agent-loop/index.d.ts.map +1 -1
  281. package/dist/orchestrator/execution/agent-loop/index.js +3 -0
  282. package/dist/orchestrator/execution/agent-loop/index.js.map +1 -1
  283. package/dist/orchestrator/execution/agent-loop/openai-responses-agent-loop-model-client.d.ts +1 -0
  284. package/dist/orchestrator/execution/agent-loop/openai-responses-agent-loop-model-client.d.ts.map +1 -1
  285. package/dist/orchestrator/execution/agent-loop/openai-responses-agent-loop-model-client.js +56 -11
  286. package/dist/orchestrator/execution/agent-loop/openai-responses-agent-loop-model-client.js.map +1 -1
  287. package/dist/orchestrator/execution/agent-loop/response-item-tool-router.d.ts +20 -0
  288. package/dist/orchestrator/execution/agent-loop/response-item-tool-router.d.ts.map +1 -0
  289. package/dist/orchestrator/execution/agent-loop/response-item-tool-router.js +180 -0
  290. package/dist/orchestrator/execution/agent-loop/response-item-tool-router.js.map +1 -0
  291. package/dist/orchestrator/execution/agent-loop/response-item.d.ts +805 -0
  292. package/dist/orchestrator/execution/agent-loop/response-item.d.ts.map +1 -0
  293. package/dist/orchestrator/execution/agent-loop/response-item.js +104 -0
  294. package/dist/orchestrator/execution/agent-loop/response-item.js.map +1 -0
  295. package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.d.ts +7 -2
  296. package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.d.ts.map +1 -1
  297. package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.js +20 -1
  298. package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.js.map +1 -1
  299. package/dist/orchestrator/execution/agent-loop/task-agent-loop-result.d.ts +5 -3
  300. package/dist/orchestrator/execution/agent-loop/task-agent-loop-result.d.ts.map +1 -1
  301. package/dist/orchestrator/execution/agent-loop/task-agent-loop-result.js +110 -10
  302. package/dist/orchestrator/execution/agent-loop/task-agent-loop-result.js.map +1 -1
  303. package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.d.ts +2 -0
  304. package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.d.ts.map +1 -1
  305. package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.js +9 -4
  306. package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.js.map +1 -1
  307. package/dist/orchestrator/execution/agent-loop/task-agent-loop-verification.d.ts +0 -1
  308. package/dist/orchestrator/execution/agent-loop/task-agent-loop-verification.d.ts.map +1 -1
  309. package/dist/orchestrator/execution/agent-loop/task-agent-loop-verification.js +7 -87
  310. package/dist/orchestrator/execution/agent-loop/task-agent-loop-verification.js.map +1 -1
  311. package/dist/orchestrator/execution/agent-loop/task-agent-loop-worktree.d.ts.map +1 -1
  312. package/dist/orchestrator/execution/agent-loop/task-agent-loop-worktree.js +25 -0
  313. package/dist/orchestrator/execution/agent-loop/task-agent-loop-worktree.js.map +1 -1
  314. package/dist/orchestrator/execution/context/issue-context-fetcher.d.ts +5 -1
  315. package/dist/orchestrator/execution/context/issue-context-fetcher.d.ts.map +1 -1
  316. package/dist/orchestrator/execution/context/issue-context-fetcher.js +7 -4
  317. package/dist/orchestrator/execution/context/issue-context-fetcher.js.map +1 -1
  318. package/dist/orchestrator/execution/task/task-artifact-contract.d.ts +18 -0
  319. package/dist/orchestrator/execution/task/task-artifact-contract.d.ts.map +1 -0
  320. package/dist/orchestrator/execution/task/task-artifact-contract.js +176 -0
  321. package/dist/orchestrator/execution/task/task-artifact-contract.js.map +1 -0
  322. package/dist/orchestrator/execution/task/task-diff-capture.d.ts +14 -1
  323. package/dist/orchestrator/execution/task/task-diff-capture.d.ts.map +1 -1
  324. package/dist/orchestrator/execution/task/task-diff-capture.js +269 -17
  325. package/dist/orchestrator/execution/task/task-diff-capture.js.map +1 -1
  326. package/dist/orchestrator/execution/task/task-execution-helpers.d.ts +1 -0
  327. package/dist/orchestrator/execution/task/task-execution-helpers.d.ts.map +1 -1
  328. package/dist/orchestrator/execution/task/task-execution-helpers.js +76 -17
  329. package/dist/orchestrator/execution/task/task-execution-helpers.js.map +1 -1
  330. package/dist/orchestrator/execution/task/task-executor.d.ts +16 -1
  331. package/dist/orchestrator/execution/task/task-executor.d.ts.map +1 -1
  332. package/dist/orchestrator/execution/task/task-executor.js +55 -50
  333. package/dist/orchestrator/execution/task/task-executor.js.map +1 -1
  334. package/dist/orchestrator/execution/task/task-generation.d.ts +54 -1
  335. package/dist/orchestrator/execution/task/task-generation.d.ts.map +1 -1
  336. package/dist/orchestrator/execution/task/task-generation.js +19 -3
  337. package/dist/orchestrator/execution/task/task-generation.js.map +1 -1
  338. package/dist/orchestrator/execution/task/task-lifecycle-runner.d.ts +4 -3
  339. package/dist/orchestrator/execution/task/task-lifecycle-runner.d.ts.map +1 -1
  340. package/dist/orchestrator/execution/task/task-lifecycle-runner.js +32 -5
  341. package/dist/orchestrator/execution/task/task-lifecycle-runner.js.map +1 -1
  342. package/dist/orchestrator/execution/task/task-lifecycle.d.ts +5 -4
  343. package/dist/orchestrator/execution/task/task-lifecycle.d.ts.map +1 -1
  344. package/dist/orchestrator/execution/task/task-lifecycle.js +61 -11
  345. package/dist/orchestrator/execution/task/task-lifecycle.js.map +1 -1
  346. package/dist/orchestrator/execution/task/task-outcome-ledger.d.ts +8 -0
  347. package/dist/orchestrator/execution/task/task-outcome-ledger.d.ts.map +1 -1
  348. package/dist/orchestrator/execution/task/task-outcome-ledger.js +59 -3
  349. package/dist/orchestrator/execution/task/task-outcome-ledger.js.map +1 -1
  350. package/dist/orchestrator/execution/task/task-prompt-builder.d.ts +3 -1
  351. package/dist/orchestrator/execution/task/task-prompt-builder.d.ts.map +1 -1
  352. package/dist/orchestrator/execution/task/task-prompt-builder.js +23 -12
  353. package/dist/orchestrator/execution/task/task-prompt-builder.js.map +1 -1
  354. package/dist/orchestrator/execution/task/task-verifier-rules.d.ts +5 -2
  355. package/dist/orchestrator/execution/task/task-verifier-rules.d.ts.map +1 -1
  356. package/dist/orchestrator/execution/task/task-verifier-rules.js +346 -104
  357. package/dist/orchestrator/execution/task/task-verifier-rules.js.map +1 -1
  358. package/dist/orchestrator/execution/task/task-verifier-types.d.ts +13 -0
  359. package/dist/orchestrator/execution/task/task-verifier-types.d.ts.map +1 -1
  360. package/dist/orchestrator/execution/task/task-verifier-types.js.map +1 -1
  361. package/dist/orchestrator/execution/task/task-verifier.d.ts +5 -4
  362. package/dist/orchestrator/execution/task/task-verifier.d.ts.map +1 -1
  363. package/dist/orchestrator/execution/task/task-verifier.js +237 -22
  364. package/dist/orchestrator/execution/task/task-verifier.js.map +1 -1
  365. package/dist/orchestrator/execution/task/task-workspace.d.ts +13 -0
  366. package/dist/orchestrator/execution/task/task-workspace.d.ts.map +1 -0
  367. package/dist/orchestrator/execution/task/task-workspace.js +32 -0
  368. package/dist/orchestrator/execution/task/task-workspace.js.map +1 -0
  369. package/dist/orchestrator/execution/types/task-group.d.ts +76 -5
  370. package/dist/orchestrator/execution/types/task-group.d.ts.map +1 -1
  371. package/dist/orchestrator/execution/types/task.d.ts +117 -3
  372. package/dist/orchestrator/execution/types/task.d.ts.map +1 -1
  373. package/dist/orchestrator/execution/types/task.js +12 -0
  374. package/dist/orchestrator/execution/types/task.js.map +1 -1
  375. package/dist/orchestrator/goal/types/goal.d.ts +6 -6
  376. package/dist/orchestrator/loop/durable-loop/iteration-kernel.d.ts +1 -0
  377. package/dist/orchestrator/loop/durable-loop/iteration-kernel.d.ts.map +1 -1
  378. package/dist/orchestrator/loop/durable-loop/iteration-kernel.js +2 -2
  379. package/dist/orchestrator/loop/durable-loop/iteration-kernel.js.map +1 -1
  380. package/dist/orchestrator/loop/durable-loop/preparation.d.ts.map +1 -1
  381. package/dist/orchestrator/loop/durable-loop/preparation.js +7 -1
  382. package/dist/orchestrator/loop/durable-loop/preparation.js.map +1 -1
  383. package/dist/orchestrator/loop/durable-loop/task-cycle.d.ts +2 -1
  384. package/dist/orchestrator/loop/durable-loop/task-cycle.d.ts.map +1 -1
  385. package/dist/orchestrator/loop/durable-loop/task-cycle.js +2 -2
  386. package/dist/orchestrator/loop/durable-loop/task-cycle.js.map +1 -1
  387. package/dist/orchestrator/loop/durable-loop.d.ts +3 -2
  388. package/dist/orchestrator/loop/durable-loop.d.ts.map +1 -1
  389. package/dist/orchestrator/loop/durable-loop.js +26 -6
  390. package/dist/orchestrator/loop/durable-loop.js.map +1 -1
  391. package/dist/platform/corrections/memory-correction-ledger.d.ts +30 -30
  392. package/dist/platform/corrections/memory-governance.d.ts +2 -2
  393. package/dist/platform/knowledge/memory/memory-selection.d.ts.map +1 -1
  394. package/dist/platform/knowledge/memory/memory-selection.js +24 -18
  395. package/dist/platform/knowledge/memory/memory-selection.js.map +1 -1
  396. package/dist/platform/knowledge/types/agent-memory.d.ts +30 -30
  397. package/dist/platform/observation/context-provider/collector.d.ts.map +1 -1
  398. package/dist/platform/observation/context-provider/collector.js +89 -24
  399. package/dist/platform/observation/context-provider/collector.js.map +1 -1
  400. package/dist/platform/observation/data-source-adapter.d.ts +2 -0
  401. package/dist/platform/observation/data-source-adapter.d.ts.map +1 -1
  402. package/dist/platform/observation/data-source-adapter.js.map +1 -1
  403. package/dist/platform/observation/observation-apply.d.ts.map +1 -1
  404. package/dist/platform/observation/observation-apply.js +8 -2
  405. package/dist/platform/observation/observation-apply.js.map +1 -1
  406. package/dist/platform/observation/observation-engine.d.ts.map +1 -1
  407. package/dist/platform/observation/observation-engine.js +154 -67
  408. package/dist/platform/observation/observation-engine.js.map +1 -1
  409. package/dist/platform/observation/observation-helpers.d.ts +2 -0
  410. package/dist/platform/observation/observation-helpers.d.ts.map +1 -1
  411. package/dist/platform/observation/observation-helpers.js.map +1 -1
  412. package/dist/platform/observation/types/data-source.d.ts +60 -0
  413. package/dist/platform/observation/types/data-source.d.ts.map +1 -1
  414. package/dist/platform/observation/types/data-source.js +5 -0
  415. package/dist/platform/observation/types/data-source.js.map +1 -1
  416. package/dist/platform/observation/workspace-context.d.ts.map +1 -1
  417. package/dist/platform/observation/workspace-context.js +13 -18
  418. package/dist/platform/observation/workspace-context.js.map +1 -1
  419. package/dist/platform/soil/contracts.d.ts +74 -74
  420. package/dist/reporting/types/report.d.ts +7 -0
  421. package/dist/reporting/types/report.d.ts.map +1 -1
  422. package/dist/runtime/approval-broker.d.ts +12 -0
  423. package/dist/runtime/approval-broker.d.ts.map +1 -1
  424. package/dist/runtime/approval-broker.js +27 -7
  425. package/dist/runtime/approval-broker.js.map +1 -1
  426. package/dist/runtime/control/daemon-runtime-control-executor.d.ts.map +1 -1
  427. package/dist/runtime/control/daemon-runtime-control-executor.js +9 -4
  428. package/dist/runtime/control/daemon-runtime-control-executor.js.map +1 -1
  429. package/dist/runtime/control/runtime-control-intent.d.ts.map +1 -1
  430. package/dist/runtime/control/runtime-control-intent.js +3 -2
  431. package/dist/runtime/control/runtime-control-intent.js.map +1 -1
  432. package/dist/runtime/control/runtime-control-service.d.ts +2 -1
  433. package/dist/runtime/control/runtime-control-service.d.ts.map +1 -1
  434. package/dist/runtime/control/runtime-control-service.js +9 -2
  435. package/dist/runtime/control/runtime-control-service.js.map +1 -1
  436. package/dist/runtime/control/runtime-target-resolver.js +2 -0
  437. package/dist/runtime/control/runtime-target-resolver.js.map +1 -1
  438. package/dist/runtime/daemon/runner-goal-cycle.d.ts.map +1 -1
  439. package/dist/runtime/daemon/runner-goal-cycle.js +1 -2
  440. package/dist/runtime/daemon/runner-goal-cycle.js.map +1 -1
  441. package/dist/runtime/daemon/runner-recovery.d.ts +17 -3
  442. package/dist/runtime/daemon/runner-recovery.d.ts.map +1 -1
  443. package/dist/runtime/daemon/runner-recovery.js +50 -12
  444. package/dist/runtime/daemon/runner-recovery.js.map +1 -1
  445. package/dist/runtime/daemon/runner-startup.d.ts.map +1 -1
  446. package/dist/runtime/daemon/runner-startup.js +18 -1
  447. package/dist/runtime/daemon/runner-startup.js.map +1 -1
  448. package/dist/runtime/daemon/runner.d.ts.map +1 -1
  449. package/dist/runtime/daemon/runner.js +3 -2
  450. package/dist/runtime/daemon/runner.js.map +1 -1
  451. package/dist/runtime/daemon/runtime-ownership.d.ts +0 -1
  452. package/dist/runtime/daemon/runtime-ownership.d.ts.map +1 -1
  453. package/dist/runtime/daemon/runtime-ownership.js +18 -18
  454. package/dist/runtime/daemon/runtime-ownership.js.map +1 -1
  455. package/dist/runtime/daemon/wait-deadline-resolver.d.ts.map +1 -1
  456. package/dist/runtime/daemon/wait-deadline-resolver.js +2 -0
  457. package/dist/runtime/daemon/wait-deadline-resolver.js.map +1 -1
  458. package/dist/runtime/evidence-answer.d.ts.map +1 -1
  459. package/dist/runtime/evidence-answer.js +34 -7
  460. package/dist/runtime/evidence-answer.js.map +1 -1
  461. package/dist/runtime/executor/goal-worker.d.ts +6 -1
  462. package/dist/runtime/executor/goal-worker.d.ts.map +1 -1
  463. package/dist/runtime/executor/goal-worker.js +18 -1
  464. package/dist/runtime/executor/goal-worker.js.map +1 -1
  465. package/dist/runtime/executor/loop-supervisor.d.ts +1 -0
  466. package/dist/runtime/executor/loop-supervisor.d.ts.map +1 -1
  467. package/dist/runtime/executor/loop-supervisor.js +58 -6
  468. package/dist/runtime/executor/loop-supervisor.js.map +1 -1
  469. package/dist/runtime/gateway/channel-adapter.d.ts +3 -0
  470. package/dist/runtime/gateway/channel-adapter.d.ts.map +1 -1
  471. package/dist/runtime/gateway/channel-display-policy.d.ts +42 -0
  472. package/dist/runtime/gateway/channel-display-policy.d.ts.map +1 -0
  473. package/dist/runtime/gateway/channel-display-policy.js +85 -0
  474. package/dist/runtime/gateway/channel-display-policy.js.map +1 -0
  475. package/dist/runtime/gateway/chat-event-rendering.d.ts +2 -1
  476. package/dist/runtime/gateway/chat-event-rendering.d.ts.map +1 -1
  477. package/dist/runtime/gateway/chat-event-rendering.js +2 -0
  478. package/dist/runtime/gateway/chat-event-rendering.js.map +1 -1
  479. package/dist/runtime/gateway/chat-session-dispatch.d.ts.map +1 -1
  480. package/dist/runtime/gateway/chat-session-dispatch.js +4 -9
  481. package/dist/runtime/gateway/chat-session-dispatch.js.map +1 -1
  482. package/dist/runtime/gateway/chat-session-port.d.ts +2 -0
  483. package/dist/runtime/gateway/chat-session-port.d.ts.map +1 -1
  484. package/dist/runtime/gateway/chat-session-port.js.map +1 -1
  485. package/dist/runtime/gateway/discord-gateway-adapter.d.ts +4 -0
  486. package/dist/runtime/gateway/discord-gateway-adapter.d.ts.map +1 -1
  487. package/dist/runtime/gateway/discord-gateway-adapter.js +100 -31
  488. package/dist/runtime/gateway/discord-gateway-adapter.js.map +1 -1
  489. package/dist/runtime/gateway/index.d.ts +4 -0
  490. package/dist/runtime/gateway/index.d.ts.map +1 -1
  491. package/dist/runtime/gateway/index.js +2 -0
  492. package/dist/runtime/gateway/index.js.map +1 -1
  493. package/dist/runtime/gateway/non-tui-display-projector.d.ts +40 -0
  494. package/dist/runtime/gateway/non-tui-display-projector.d.ts.map +1 -0
  495. package/dist/runtime/gateway/non-tui-display-projector.js +166 -0
  496. package/dist/runtime/gateway/non-tui-display-projector.js.map +1 -0
  497. package/dist/runtime/gateway/signal-gateway-adapter.d.ts +1 -0
  498. package/dist/runtime/gateway/signal-gateway-adapter.d.ts.map +1 -1
  499. package/dist/runtime/gateway/signal-gateway-adapter.js +47 -4
  500. package/dist/runtime/gateway/signal-gateway-adapter.js.map +1 -1
  501. package/dist/runtime/gateway/slack-channel-adapter.d.ts +1 -0
  502. package/dist/runtime/gateway/slack-channel-adapter.d.ts.map +1 -1
  503. package/dist/runtime/gateway/slack-channel-adapter.js +93 -18
  504. package/dist/runtime/gateway/slack-channel-adapter.js.map +1 -1
  505. package/dist/runtime/gateway/telegram-gateway-adapter.d.ts +2 -0
  506. package/dist/runtime/gateway/telegram-gateway-adapter.d.ts.map +1 -1
  507. package/dist/runtime/gateway/telegram-gateway-adapter.js +61 -113
  508. package/dist/runtime/gateway/telegram-gateway-adapter.js.map +1 -1
  509. package/dist/runtime/gateway/whatsapp-gateway-adapter.d.ts +1 -0
  510. package/dist/runtime/gateway/whatsapp-gateway-adapter.d.ts.map +1 -1
  511. package/dist/runtime/gateway/whatsapp-gateway-adapter.js +49 -4
  512. package/dist/runtime/gateway/whatsapp-gateway-adapter.js.map +1 -1
  513. package/dist/runtime/permission-dialogue.d.ts +113 -0
  514. package/dist/runtime/permission-dialogue.d.ts.map +1 -0
  515. package/dist/runtime/permission-dialogue.js +82 -0
  516. package/dist/runtime/permission-dialogue.js.map +1 -0
  517. package/dist/runtime/run-spec/derive.d.ts +14 -14
  518. package/dist/runtime/run-spec/handoff.js +2 -0
  519. package/dist/runtime/run-spec/handoff.js.map +1 -1
  520. package/dist/runtime/run-spec/types.d.ts +16 -16
  521. package/dist/runtime/session-registry/types.d.ts +12 -12
  522. package/dist/runtime/store/artifact-retention.d.ts +2 -0
  523. package/dist/runtime/store/artifact-retention.d.ts.map +1 -1
  524. package/dist/runtime/store/artifact-retention.js +24 -21
  525. package/dist/runtime/store/artifact-retention.js.map +1 -1
  526. package/dist/runtime/store/budget-store.d.ts +8 -8
  527. package/dist/runtime/store/evidence-ledger.d.ts.map +1 -1
  528. package/dist/runtime/store/evidence-ledger.js +39 -1
  529. package/dist/runtime/store/evidence-ledger.js.map +1 -1
  530. package/dist/runtime/store/evidence-types.d.ts +118 -118
  531. package/dist/runtime/store/experiment-queue-store.d.ts +20 -20
  532. package/dist/runtime/store/postmortem-report.d.ts +2 -2
  533. package/dist/runtime/store/reproducibility-manifest.d.ts +20 -20
  534. package/dist/runtime/store/runtime-operation-schemas.d.ts +18 -18
  535. package/dist/runtime/store/runtime-operation-schemas.d.ts.map +1 -1
  536. package/dist/runtime/store/runtime-operation-schemas.js +1 -0
  537. package/dist/runtime/store/runtime-operation-schemas.js.map +1 -1
  538. package/dist/runtime/store/runtime-schemas.d.ts +58 -28
  539. package/dist/runtime/store/runtime-schemas.d.ts.map +1 -1
  540. package/dist/runtime/store/runtime-schemas.js +1 -0
  541. package/dist/runtime/store/runtime-schemas.js.map +1 -1
  542. package/dist/tools/execution/MemorySaveTool/MemorySaveTool.d.ts +8 -8
  543. package/dist/tools/execution/RunAdapterTool/RunAdapterTool.d.ts +6 -0
  544. package/dist/tools/execution/RunAdapterTool/RunAdapterTool.d.ts.map +1 -1
  545. package/dist/tools/execution/RunAdapterTool/RunAdapterTool.js +2 -0
  546. package/dist/tools/execution/RunAdapterTool/RunAdapterTool.js.map +1 -1
  547. package/dist/tools/execution-orchestrator.d.ts +29 -0
  548. package/dist/tools/execution-orchestrator.d.ts.map +1 -0
  549. package/dist/tools/execution-orchestrator.js +153 -0
  550. package/dist/tools/execution-orchestrator.js.map +1 -0
  551. package/dist/tools/executor.d.ts +6 -0
  552. package/dist/tools/executor.d.ts.map +1 -1
  553. package/dist/tools/executor.js +48 -11
  554. package/dist/tools/executor.js.map +1 -1
  555. package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.d.ts.map +1 -1
  556. package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.js +130 -17
  557. package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.js.map +1 -1
  558. package/dist/tools/mutation/TaskStopTool/TaskStopTool.d.ts.map +1 -1
  559. package/dist/tools/mutation/TaskStopTool/TaskStopTool.js +8 -0
  560. package/dist/tools/mutation/TaskStopTool/TaskStopTool.js.map +1 -1
  561. package/dist/tools/mutation/TaskUpdateTool/TaskUpdateTool.d.ts +6 -6
  562. package/dist/tools/network/GitHubCliTool/GitHubCliTool.d.ts +4 -4
  563. package/dist/tools/network/McpStdioTool/McpStdioTool.d.ts +4 -4
  564. package/dist/tools/permission.d.ts +0 -1
  565. package/dist/tools/permission.d.ts.map +1 -1
  566. package/dist/tools/permission.js +9 -33
  567. package/dist/tools/permission.js.map +1 -1
  568. package/dist/tools/query/CodeReadContextTool/CodeReadContextTool.d.ts +4 -4
  569. package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.d.ts +8 -8
  570. package/dist/tools/query/CodeSearchTool/CodeSearchTool.d.ts +4 -4
  571. package/dist/tools/query/ConfigTool/ConfigTool.d.ts.map +1 -1
  572. package/dist/tools/query/ConfigTool/ConfigTool.js +1 -0
  573. package/dist/tools/query/ConfigTool/ConfigTool.js.map +1 -1
  574. package/dist/tools/query/MemoryRecallTool/MemoryRecallTool.d.ts +4 -4
  575. package/dist/tools/query/runtime-session-tools.d.ts +73 -5
  576. package/dist/tools/query/runtime-session-tools.d.ts.map +1 -1
  577. package/dist/tools/query/runtime-session-tools.js +114 -0
  578. package/dist/tools/query/runtime-session-tools.js.map +1 -1
  579. package/dist/tools/runtime/LongRunningRuntimeTools.d.ts +60 -42
  580. package/dist/tools/runtime/LongRunningRuntimeTools.d.ts.map +1 -1
  581. package/dist/tools/runtime/LongRunningRuntimeTools.js +4 -1
  582. package/dist/tools/runtime/LongRunningRuntimeTools.js.map +1 -1
  583. package/dist/tools/runtime/RunSpecHandoffTools.d.ts.map +1 -1
  584. package/dist/tools/runtime/RunSpecHandoffTools.js +162 -2
  585. package/dist/tools/runtime/RunSpecHandoffTools.js.map +1 -1
  586. package/dist/tools/runtime/SetupRuntimeControlTools.d.ts.map +1 -1
  587. package/dist/tools/runtime/SetupRuntimeControlTools.js +169 -17
  588. package/dist/tools/runtime/SetupRuntimeControlTools.js.map +1 -1
  589. package/dist/tools/system/GitDiffTool/GitDiffTool.d.ts +4 -4
  590. package/dist/tools/system/ShellCommandTool/ShellCommandTool.d.ts.map +1 -1
  591. package/dist/tools/system/ShellCommandTool/ShellCommandTool.js +7 -1
  592. package/dist/tools/system/ShellCommandTool/ShellCommandTool.js.map +1 -1
  593. package/dist/tools/system/ShellTool/ShellTool.d.ts.map +1 -1
  594. package/dist/tools/system/ShellTool/ShellTool.js +25 -11
  595. package/dist/tools/system/ShellTool/ShellTool.js.map +1 -1
  596. package/dist/tools/system/ShellTool/command-policy.d.ts +11 -8
  597. package/dist/tools/system/ShellTool/command-policy.d.ts.map +1 -1
  598. package/dist/tools/system/ShellTool/command-policy.js +402 -98
  599. package/dist/tools/system/ShellTool/command-policy.js.map +1 -1
  600. package/dist/tools/system/TestRunnerTool/TestRunnerTool.d.ts +1 -1
  601. package/dist/tools/system/TestRunnerTool/TestRunnerTool.d.ts.map +1 -1
  602. package/dist/tools/system/TestRunnerTool/TestRunnerTool.js +153 -9
  603. package/dist/tools/system/TestRunnerTool/TestRunnerTool.js.map +1 -1
  604. package/dist/tools/system/UpdatePlanTool/UpdatePlanTool.js +1 -1
  605. package/dist/tools/system/UpdatePlanTool/UpdatePlanTool.js.map +1 -1
  606. package/dist/tools/types.d.ts +34 -12
  607. package/dist/tools/types.d.ts.map +1 -1
  608. package/dist/tools/types.js +26 -3
  609. package/dist/tools/types.js.map +1 -1
  610. package/dist/tools/workspace-scope.d.ts +11 -0
  611. package/dist/tools/workspace-scope.d.ts.map +1 -0
  612. package/dist/tools/workspace-scope.js +77 -0
  613. package/dist/tools/workspace-scope.js.map +1 -0
  614. package/package.json +1 -1
@@ -1,10 +1,10 @@
1
1
  import type { IAdapter, AgentTask, AgentResult } from "../../orchestrator/execution/adapter-layer.js";
2
2
  import type { ILLMClient } from "../../base/llm/llm-client.js";
3
3
  export declare class ClaudeAPIAdapter implements IAdapter {
4
- readonly adapterType = "claude_api";
4
+ readonly adapterType: string;
5
5
  readonly capabilities: readonly ["text_generation", "analysis", "planning"];
6
6
  private readonly llmClient;
7
- constructor(llmClient: ILLMClient);
7
+ constructor(llmClient: ILLMClient, adapterType?: string);
8
8
  execute(task: AgentTask): Promise<AgentResult>;
9
9
  }
10
10
  //# sourceMappingURL=claude-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-api.d.ts","sourceRoot":"","sources":["../../../src/adapters/agents/claude-api.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AACtG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,qBAAa,gBAAiB,YAAW,QAAQ;IAC/C,QAAQ,CAAC,WAAW,gBAAgB;IACpC,QAAQ,CAAC,YAAY,uDAAwD;IAE7E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;gBAE3B,SAAS,EAAE,UAAU;IAI3B,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;CAsDrD"}
1
+ {"version":3,"file":"claude-api.d.ts","sourceRoot":"","sources":["../../../src/adapters/agents/claude-api.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AACtG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,qBAAa,gBAAiB,YAAW,QAAQ;IAKZ,QAAQ,CAAC,WAAW;IAJvD,QAAQ,CAAC,YAAY,uDAAwD;IAE7E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;gBAE3B,SAAS,EAAE,UAAU,EAAW,WAAW,SAAe;IAIhE,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;CAsDrD"}
@@ -4,10 +4,11 @@
4
4
  // Intended for tasks where a single LLM call is sufficient.
5
5
  // Timeout is handled via Promise.race().
6
6
  export class ClaudeAPIAdapter {
7
- adapterType = "claude_api";
7
+ adapterType;
8
8
  capabilities = ["text_generation", "analysis", "planning"];
9
9
  llmClient;
10
- constructor(llmClient) {
10
+ constructor(llmClient, adapterType = "claude_api") {
11
+ this.adapterType = adapterType;
11
12
  this.llmClient = llmClient;
12
13
  }
13
14
  async execute(task) {
@@ -1 +1 @@
1
- {"version":3,"file":"claude-api.js","sourceRoot":"","sources":["../../../src/adapters/agents/claude-api.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,EAAE;AACF,+DAA+D;AAC/D,4DAA4D;AAC5D,yCAAyC;AAKzC,MAAM,OAAO,gBAAgB;IAClB,WAAW,GAAG,YAAY,CAAC;IAC3B,YAAY,GAAG,CAAC,iBAAiB,EAAE,UAAU,EAAE,UAAU,CAAU,CAAC;IAE5D,SAAS,CAAa;IAEvC,YAAY,SAAqB;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAe;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,kEAAkE;QAClE,IAAI,aAAwD,CAAC;QAC7D,MAAM,cAAc,GAAyB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACnE,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,OAAO,CAAC;oBACN,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE,mBAAmB,IAAI,CAAC,UAAU,IAAI;oBAC7C,SAAS,EAAE,IAAI;oBACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAClC,cAAc,EAAE,SAAS;iBAC1B,CAAC,CAAC;YACL,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,uBAAuB;QACvB,MAAM,UAAU,GAAyB,CAAC,KAAK,IAAI,EAAE;YACnD,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACvF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;oBAC5C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;iBACvC,EAAE,UAAU,CAAC,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,QAAQ,CAAC,OAAO;oBACxB,KAAK,EAAE,IAAI;oBACX,SAAS,EAAE,IAAI;oBACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAClC,cAAc,EAAE,WAAoB;iBACrC,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBACvD,SAAS,EAAE,IAAI;oBACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAClC,cAAc,EAAE,OAAgB;iBACjC,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;QAEhE,iDAAiD;QACjD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,YAAY,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"claude-api.js","sourceRoot":"","sources":["../../../src/adapters/agents/claude-api.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,EAAE;AACF,+DAA+D;AAC/D,4DAA4D;AAC5D,yCAAyC;AAKzC,MAAM,OAAO,gBAAgB;IAKiB;IAJnC,YAAY,GAAG,CAAC,iBAAiB,EAAE,UAAU,EAAE,UAAU,CAAU,CAAC;IAE5D,SAAS,CAAa;IAEvC,YAAY,SAAqB,EAAW,cAAc,YAAY;QAA1B,gBAAW,GAAX,WAAW,CAAe;QACpE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAe;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,kEAAkE;QAClE,IAAI,aAAwD,CAAC;QAC7D,MAAM,cAAc,GAAyB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACnE,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,OAAO,CAAC;oBACN,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE,mBAAmB,IAAI,CAAC,UAAU,IAAI;oBAC7C,SAAS,EAAE,IAAI;oBACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAClC,cAAc,EAAE,SAAS;iBAC1B,CAAC,CAAC;YACL,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,uBAAuB;QACvB,MAAM,UAAU,GAAyB,CAAC,KAAK,IAAI,EAAE;YACnD,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACvF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;oBAC5C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;iBACvC,EAAE,UAAU,CAAC,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,QAAQ,CAAC,OAAO;oBACxB,KAAK,EAAE,IAAI;oBACX,SAAS,EAAE,IAAI;oBACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAClC,cAAc,EAAE,WAAoB;iBACrC,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBACvD,SAAS,EAAE,IAAI;oBACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAClC,cAAc,EAAE,OAAgB;iBACjC,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;QAEhE,iDAAiD;QACjD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,YAAY,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -12,6 +12,8 @@ export interface OpenAICodexCLIAdapterConfig {
12
12
  sandboxPolicy?: string | null;
13
13
  /** If set, pass -m <model> to the CLI. */
14
14
  model?: string;
15
+ /** If set, pass Codex model_reasoning_effort through -c. */
16
+ reasoningEffort?: string;
15
17
  /** Repository path passed to Codex for workspace-aware execution. Default: "." */
16
18
  repoPath?: string;
17
19
  /** Pass --skip-git-repo-check. Default: true for daemon/test workspaces. */
@@ -25,6 +27,7 @@ export declare class OpenAICodexCLIAdapter implements IAdapter {
25
27
  private readonly cliPath;
26
28
  private readonly sandboxPolicy;
27
29
  private readonly model;
30
+ private readonly reasoningEffort;
28
31
  private readonly repoPath;
29
32
  private readonly skipGitRepoCheck;
30
33
  private readonly terminalBackend?;
@@ -1 +1 @@
1
- {"version":3,"file":"openai-codex.d.ts","sourceRoot":"","sources":["../../../src/adapters/agents/openai-codex.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AACtG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAuB,KAAK,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAEpG,MAAM,WAAW,2BAA2B;IAC1C,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,8EAA8E;IAC9E,eAAe,CAAC,EAAE,qBAAqB,CAAC;CACzC;AAED,qBAAa,qBAAsB,YAAW,QAAQ;IACpD,QAAQ,CAAC,WAAW,sBAAsB;IAC1C,QAAQ,CAAC,YAAY,yEAA0E;IAE/F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;gBAErB,MAAM,GAAE,2BAAgC,EAAE,MAAM,CAAC,EAAE,MAAM;IAW/D,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;CA6DrD"}
1
+ {"version":3,"file":"openai-codex.d.ts","sourceRoot":"","sources":["../../../src/adapters/agents/openai-codex.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AACtG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAuB,KAAK,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAEpG,MAAM,WAAW,2BAA2B;IAC1C,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,8EAA8E;IAC9E,eAAe,CAAC,EAAE,qBAAqB,CAAC;CACzC;AAED,qBAAa,qBAAsB,YAAW,QAAQ;IACpD,QAAQ,CAAC,WAAW,sBAAsB;IAC1C,QAAQ,CAAC,YAAY,yEAA0E;IAE/F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;gBAErB,MAAM,GAAE,2BAAgC,EAAE,MAAM,CAAC,EAAE,MAAM;IAY/D,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;CAiErD"}
@@ -22,6 +22,7 @@ export class OpenAICodexCLIAdapter {
22
22
  cliPath;
23
23
  sandboxPolicy;
24
24
  model;
25
+ reasoningEffort;
25
26
  repoPath;
26
27
  skipGitRepoCheck;
27
28
  terminalBackend;
@@ -31,6 +32,7 @@ export class OpenAICodexCLIAdapter {
31
32
  this.sandboxPolicy =
32
33
  config.sandboxPolicy !== undefined ? config.sandboxPolicy : "workspace-write";
33
34
  this.model = config.model;
35
+ this.reasoningEffort = config.reasoningEffort;
34
36
  this.repoPath = config.repoPath?.trim() || ".";
35
37
  this.skipGitRepoCheck = config.skipGitRepoCheck ?? true;
36
38
  this.terminalBackend = config.terminalBackend;
@@ -47,6 +49,9 @@ export class OpenAICodexCLIAdapter {
47
49
  if (this.model) {
48
50
  spawnArgs.push("-m", this.model);
49
51
  }
52
+ if (this.reasoningEffort) {
53
+ spawnArgs.push("-c", `model_reasoning_effort="${this.reasoningEffort}"`);
54
+ }
50
55
  if (this.skipGitRepoCheck) {
51
56
  spawnArgs.push("--skip-git-repo-check");
52
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openai-codex.js","sourceRoot":"","sources":["../../../src/adapters/agents/openai-codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-codex.js","sourceRoot":"","sources":["../../../src/adapters/agents/openai-codex.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,31 @@
1
1
  import type { DataSourceConfig, DataSourceQuery, DataSourceResult, DataSourceType } from "../../base/types/data-source.js";
2
2
  import type { IDataSourceAdapter } from "../../platform/observation/data-source-adapter.js";
3
+ type Aggregation = "max" | "min" | "count" | "file_count";
4
+ type FreshnessScope = "none" | "goal" | "task" | "run";
5
+ export interface ArtifactMetricFreshnessScope {
6
+ freshAfterTime: string;
7
+ freshnessScope: Exclude<FreshnessScope, "none">;
8
+ freshnessScopeId: string;
9
+ }
3
10
  export declare function createWorkspaceArtifactMetricDataSource(workspacePath?: string): ArtifactMetricDataSourceAdapter;
11
+ export declare function createGoalWorkspaceArtifactMetricDataSource(goalId: string, workspacePath: string, dimensionMetrics: Record<string, string[]>, dimensionAggregations?: Record<string, Aggregation>, freshnessScope?: ArtifactMetricFreshnessScope): ArtifactMetricDataSourceAdapter;
4
12
  export declare class ArtifactMetricDataSourceAdapter implements IDataSourceAdapter {
5
13
  readonly sourceId: string;
6
14
  readonly sourceType: DataSourceType;
7
15
  readonly config: DataSourceConfig;
16
+ private observationPassCache;
8
17
  constructor(config: DataSourceConfig);
9
18
  connect(): Promise<void>;
10
19
  disconnect(): Promise<void>;
11
20
  healthCheck(): Promise<boolean>;
21
+ beginObservationPass(): void;
22
+ endObservationPass(): void;
12
23
  getSupportedDimensions(): string[];
13
24
  supportsDimension(dimensionName: string): boolean;
14
25
  query(params: DataSourceQuery): Promise<DataSourceResult>;
15
26
  private workspaceRoot;
16
27
  private scanOptions;
28
+ private discoverMetricCandidatesForPass;
17
29
  }
30
+ export {};
18
31
  //# sourceMappingURL=artifact-metric-datasource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-metric-datasource.d.ts","sourceRoot":"","sources":["../../../src/adapters/datasources/artifact-metric-datasource.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAuE5F,wBAAgB,uCAAuC,CAAC,aAAa,SAAgB,GAAG,+BAA+B,CAStH;AAED,qBAAa,+BAAgC,YAAW,kBAAkB;IACxE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAqB;IACxD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;gBAEtB,MAAM,EAAE,gBAAgB;IAK9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC,sBAAsB,IAAI,MAAM,EAAE;IAWlC,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAI3C,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAyE/D,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;CAoBpB"}
1
+ {"version":3,"file":"artifact-metric-datasource.d.ts","sourceRoot":"","sources":["../../../src/adapters/datasources/artifact-metric-datasource.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAE5F,KAAK,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,YAAY,CAAC;AAG1D,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAGvD,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAChD,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAgGD,wBAAgB,uCAAuC,CAAC,aAAa,SAAgB,GAAG,+BAA+B,CAStH;AAED,wBAAgB,2CAA2C,CACzD,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAC1C,qBAAqB,GAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAM,EACvD,cAAc,CAAC,EAAE,4BAA4B,GAC5C,+BAA+B,CAwBjC;AAED,qBAAa,+BAAgC,YAAW,kBAAkB;IACxE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAqB;IACxD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,OAAO,CAAC,oBAAoB,CAAqD;gBAErE,MAAM,EAAE,gBAAgB;IAK9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC,oBAAoB,IAAI,IAAI;IAI5B,kBAAkB,IAAI,IAAI;IAI1B,sBAAsB,IAAI,MAAM,EAAE;IAWlC,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAI3C,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA+G/D,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;YA2BL,+BAA+B;CAU9C"}
@@ -2,7 +2,7 @@ import * as fs from "node:fs/promises";
2
2
  import * as path from "node:path";
3
3
  const BUILTIN_SOURCE_ID = "ds_builtin_workspace_artifacts";
4
4
  const DEFAULT_METRIC_FILE_NAMES = ["metrics.json", "result.json"];
5
- const DEFAULT_ARTIFACT_ROOTS = ["artifacts", "runs", "reports", "outputs", "results", "logs"];
5
+ const DEFAULT_ARTIFACT_ROOTS = ["artifacts", "experiments", "runs", "reports", "outputs", "results", "logs"];
6
6
  const DEFAULT_EXCLUDE_DIRS = new Set([
7
7
  ".cache",
8
8
  ".git",
@@ -18,6 +18,7 @@ const DEFAULT_EXCLUDE_PATHS = new Set(["data/raw"]);
18
18
  const DEFAULT_MAX_METRIC_FILES = 5_000;
19
19
  const DEFAULT_MAX_ARTIFACT_FILES = 100_000;
20
20
  const DEFAULT_MAX_CANDIDATES = 200;
21
+ const DEFAULT_GOAL_SCOPED_STALE_AFTER_MS = 24 * 60 * 60 * 1000;
21
22
  const MAX_RAW_CANDIDATES = 25;
22
23
  export function createWorkspaceArtifactMetricDataSource(workspacePath = process.cwd()) {
23
24
  return new ArtifactMetricDataSourceAdapter({
@@ -29,10 +30,36 @@ export function createWorkspaceArtifactMetricDataSource(workspacePath = process.
29
30
  created_at: new Date().toISOString(),
30
31
  });
31
32
  }
33
+ export function createGoalWorkspaceArtifactMetricDataSource(goalId, workspacePath, dimensionMetrics, dimensionAggregations = {}, freshnessScope) {
34
+ return new ArtifactMetricDataSourceAdapter({
35
+ id: `${BUILTIN_SOURCE_ID}:goal:${goalId}`,
36
+ name: "builtin:goal workspace artifact metrics",
37
+ type: "artifact_metric",
38
+ connection: {
39
+ path: workspacePath,
40
+ dimension_metrics: dimensionMetrics,
41
+ dimension_aggregations: dimensionAggregations,
42
+ require_metric_match: true,
43
+ stale_after_ms: DEFAULT_GOAL_SCOPED_STALE_AFTER_MS,
44
+ ...(freshnessScope
45
+ ? {
46
+ fresh_after_time: freshnessScope.freshAfterTime,
47
+ freshness_scope: freshnessScope.freshnessScope,
48
+ freshness_scope_id: freshnessScope.freshnessScopeId,
49
+ }
50
+ : {}),
51
+ current_progress_policy: "completed_fresh_only",
52
+ },
53
+ enabled: true,
54
+ created_at: new Date().toISOString(),
55
+ scope_goal_id: goalId,
56
+ });
57
+ }
32
58
  export class ArtifactMetricDataSourceAdapter {
33
59
  sourceId;
34
60
  sourceType = "artifact_metric";
35
61
  config;
62
+ observationPassCache = null;
36
63
  constructor(config) {
37
64
  this.config = config;
38
65
  this.sourceId = config.id;
@@ -52,6 +79,12 @@ export class ArtifactMetricDataSourceAdapter {
52
79
  return false;
53
80
  }
54
81
  }
82
+ beginObservationPass() {
83
+ this.observationPassCache = new Map();
84
+ }
85
+ endObservationPass() {
86
+ this.observationPassCache = null;
87
+ }
55
88
  getSupportedDimensions() {
56
89
  const dimensions = new Set([
57
90
  ...Object.keys(this.config.dimension_mapping ?? {}),
@@ -80,17 +113,19 @@ export class ArtifactMetricDataSourceAdapter {
80
113
  aggregation,
81
114
  file_count: count,
82
115
  discovery: discoveryRaw(options),
116
+ freshness: freshnessRaw(options, null, [], "file_count"),
83
117
  },
84
118
  timestamp,
85
119
  source_id: this.sourceId,
86
120
  };
87
121
  }
88
122
  const keys = resolveMetricKeys(params.dimension_name, expression, this.config);
89
- const candidates = await discoverMetricCandidates(root, options, keys);
90
- const observations = await readMetricObservations(candidates);
123
+ const snapshot = await this.discoverMetricCandidatesForPass(root, options);
124
+ const candidates = selectCandidatesForKeys(snapshot.candidates, keys, options);
125
+ const observations = await readMetricObservations(candidates, options);
91
126
  const evidenceCandidates = buildEvidenceCandidates(observations, keys, aggregation === "min" ? "min" : "max");
92
127
  if (aggregation === "count") {
93
- const matched = observations.filter((observation) => hasAnyMetric(observation, keys));
128
+ const matched = observations.filter((observation) => observation.eligibleForCurrentProgress && hasAnyMetric(observation, keys));
94
129
  return {
95
130
  value: matched.length,
96
131
  raw: {
@@ -100,10 +135,12 @@ export class ArtifactMetricDataSourceAdapter {
100
135
  matched_metric_files: matched.length,
101
136
  metric_keys: keys,
102
137
  discovery: discoveryRaw(options),
138
+ freshness: freshnessRaw(options, null, observations, matched.length > 0 ? "eligible" : "missing"),
103
139
  candidates: rawCandidates(candidates),
104
140
  evidence_candidates: evidenceCandidates,
105
141
  conflicts: detectMetricConflicts(params.dimension_name, observations, keys),
106
142
  stale_candidates: staleRaw(observations),
143
+ ineligible_candidates: ineligibleRaw(observations),
107
144
  strategic_correctness: "not_evaluated",
108
145
  },
109
146
  timestamp,
@@ -111,6 +148,38 @@ export class ArtifactMetricDataSourceAdapter {
111
148
  };
112
149
  }
113
150
  const match = selectMetric(observations, keys, aggregation);
151
+ if (this.config.connection.require_metric_match && match === null) {
152
+ if (hasCurrentScopeStaleMetricMatch(observations, keys, options)) {
153
+ return {
154
+ value: 0,
155
+ raw: {
156
+ root,
157
+ aggregation,
158
+ inspected_metric_files: candidates.length,
159
+ metric_keys: keys,
160
+ selected_path: null,
161
+ selected_key: null,
162
+ selected_value: 0,
163
+ selected: null,
164
+ discovery: discoveryRaw(options),
165
+ freshness: freshnessRaw(options, null, observations, "ineligible_artifact_metrics_only"),
166
+ candidates: rawCandidates(candidates),
167
+ evidence_candidates: evidenceCandidates,
168
+ conflicts: detectMetricConflicts(params.dimension_name, observations, keys),
169
+ stale_candidates: staleRaw(observations),
170
+ ineligible_candidates: ineligibleRaw(observations),
171
+ strategic_correctness: "not_evaluated",
172
+ },
173
+ timestamp,
174
+ source_id: this.sourceId,
175
+ metadata: {
176
+ confidence: 0.35,
177
+ confidence_reason: "Only stale or pre-scope artifact metrics matched the current progress datasource query.",
178
+ },
179
+ };
180
+ }
181
+ throw new Error(`No artifact metric found for dimension "${params.dimension_name}" using keys [${keys.join(", ")}]`);
182
+ }
114
183
  return {
115
184
  value: match?.value ?? 0,
116
185
  raw: {
@@ -123,10 +192,12 @@ export class ArtifactMetricDataSourceAdapter {
123
192
  selected_value: match?.value ?? 0,
124
193
  selected: match,
125
194
  discovery: discoveryRaw(options),
195
+ freshness: freshnessRaw(options, match, observations, match ? "eligible" : "missing"),
126
196
  candidates: rawCandidates(candidates),
127
197
  evidence_candidates: evidenceCandidates,
128
198
  conflicts: detectMetricConflicts(params.dimension_name, observations, keys),
129
199
  stale_candidates: staleRaw(observations),
200
+ ineligible_candidates: ineligibleRaw(observations),
130
201
  strategic_correctness: "not_evaluated",
131
202
  },
132
203
  timestamp,
@@ -155,8 +226,24 @@ export class ArtifactMetricDataSourceAdapter {
155
226
  maxArtifactFiles: this.config.connection.max_artifact_files ?? DEFAULT_MAX_ARTIFACT_FILES,
156
227
  maxCandidates: this.config.connection.max_candidates ?? DEFAULT_MAX_CANDIDATES,
157
228
  staleAfterMs: this.config.connection.stale_after_ms,
229
+ currentProgressPolicy: this.config.connection.current_progress_policy ?? "legacy",
230
+ freshAfterTime: this.config.connection.fresh_after_time,
231
+ freshAfterMs: parseIsoMs(this.config.connection.fresh_after_time),
232
+ freshnessScope: this.config.connection.freshness_scope ?? "none",
233
+ freshnessScopeId: this.config.connection.freshness_scope_id,
234
+ nowMs: Date.now(),
158
235
  };
159
236
  }
237
+ async discoverMetricCandidatesForPass(root, options) {
238
+ const cacheKey = scanCacheKey(root, options);
239
+ const cached = this.observationPassCache?.get(cacheKey);
240
+ if (cached)
241
+ return cached;
242
+ const candidates = await discoverMetricCandidates(root, options, []);
243
+ const snapshot = { candidates };
244
+ this.observationPassCache?.set(cacheKey, snapshot);
245
+ return snapshot;
246
+ }
160
247
  }
161
248
  async function discoverMetricCandidates(root, options, keys) {
162
249
  const discovered = new Map();
@@ -185,9 +272,46 @@ async function discoverMetricCandidates(root, options, keys) {
185
272
  });
186
273
  }
187
274
  return Array.from(discovered.values())
275
+ .sort(compareCandidates)
276
+ .slice(0, keys.length === 0 ? options.maxMetricFiles : options.maxCandidates);
277
+ }
278
+ function selectCandidatesForKeys(candidates, keys, options) {
279
+ return candidates
280
+ .map((candidate) => applyMetricKeyScore(candidate, keys))
188
281
  .sort(compareCandidates)
189
282
  .slice(0, options.maxCandidates);
190
283
  }
284
+ function applyMetricKeyScore(candidate, keys) {
285
+ let score = candidate.candidateScore;
286
+ const reasons = [...candidate.reasons];
287
+ for (const key of keys) {
288
+ if (candidate.relativePath.toLowerCase().includes(key.toLowerCase())) {
289
+ score += 8;
290
+ reasons.push(`path metric hint: ${key}`);
291
+ break;
292
+ }
293
+ }
294
+ return { ...candidate, candidateScore: score, reasons };
295
+ }
296
+ function scanCacheKey(root, options) {
297
+ return JSON.stringify({
298
+ root,
299
+ metricFileNames: [...options.metricFileNames].sort(),
300
+ artifactRoots: options.artifactRoots,
301
+ includePaths: options.includePaths,
302
+ parserHints: [...options.parserHints].sort(),
303
+ excludeDirs: [...options.excludeDirs].sort(),
304
+ excludePaths: [...options.excludePaths].sort(),
305
+ maxMetricFiles: options.maxMetricFiles,
306
+ maxArtifactFiles: options.maxArtifactFiles,
307
+ maxCandidates: options.maxCandidates,
308
+ staleAfterMs: options.staleAfterMs,
309
+ freshAfterTime: options.freshAfterTime,
310
+ freshnessScope: options.freshnessScope,
311
+ freshnessScopeId: options.freshnessScopeId,
312
+ currentProgressPolicy: options.currentProgressPolicy,
313
+ });
314
+ }
191
315
  async function resolveSearchRoots(root, options) {
192
316
  const roots = [];
193
317
  for (const includePath of [...options.includePaths, ...options.artifactRoots]) {
@@ -223,22 +347,34 @@ async function buildMetricCandidate(root, filePath, options, keys) {
223
347
  }
224
348
  }
225
349
  const mtime = stats.mtime;
226
- if (Date.now() - mtime.getTime() < 24 * 60 * 60 * 1000) {
350
+ const artifactAgeMs = Math.max(0, options.nowMs - mtime.getTime());
351
+ if (artifactAgeMs < 24 * 60 * 60 * 1000) {
227
352
  score += 10;
228
353
  reasons.push("recent artifact");
229
354
  }
230
- const stale = options.staleAfterMs !== undefined && Date.now() - mtime.getTime() > options.staleAfterMs;
355
+ const beforeFreshnessScope = options.freshAfterMs !== undefined && mtime.getTime() < options.freshAfterMs;
356
+ const staleByAge = options.staleAfterMs !== undefined && artifactAgeMs > options.staleAfterMs;
357
+ const stale = beforeFreshnessScope || staleByAge;
358
+ const freshnessStatus = beforeFreshnessScope ? "pre_scope" : staleByAge ? "stale" : "fresh";
359
+ const currentRun = options.freshAfterMs === undefined ? null : !beforeFreshnessScope;
231
360
  if (stale) {
232
361
  score -= 30;
233
- reasons.push("stale artifact");
362
+ reasons.push(beforeFreshnessScope
363
+ ? `artifact precedes ${options.freshnessScope} freshness scope`
364
+ : "stale artifact");
234
365
  }
235
366
  return {
236
367
  path: filePath,
237
368
  relativePath,
238
369
  updatedTime: mtime.toISOString(),
370
+ artifactAgeMs,
239
371
  candidateScore: score,
240
372
  reasons,
241
373
  stale,
374
+ freshnessStatus,
375
+ currentRun,
376
+ freshnessScope: options.freshnessScope,
377
+ freshnessScopeId: options.freshnessScopeId ?? null,
242
378
  };
243
379
  }
244
380
  async function countArtifactFiles(root, options) {
@@ -282,18 +418,23 @@ function shouldSkipDirectory(name, relPath, options) {
282
418
  }
283
419
  return false;
284
420
  }
285
- async function readMetricObservations(candidates) {
421
+ async function readMetricObservations(candidates, options) {
286
422
  const observations = [];
287
423
  for (const candidate of candidates) {
288
424
  try {
289
425
  const parsed = JSON.parse(await fs.readFile(candidate.path, "utf8"));
290
426
  const metrics = extractNumericMetrics(parsed);
291
427
  if (metrics.length > 0) {
428
+ const lifecycle = extractArtifactLifecycle(parsed);
429
+ const ineligibleReason = currentProgressIneligibleReason(candidate, lifecycle, options);
292
430
  observations.push({
293
431
  ...candidate,
294
432
  parser: "json",
295
433
  metrics,
296
434
  extractionConfidence: Math.max(...metrics.map((metric) => metric.confidence)),
435
+ lifecycle,
436
+ eligibleForCurrentProgress: ineligibleReason === null,
437
+ ineligibleReason,
297
438
  });
298
439
  }
299
440
  }
@@ -340,6 +481,43 @@ function extractNumericMetrics(value) {
340
481
  }
341
482
  return metrics;
342
483
  }
484
+ function extractArtifactLifecycle(value) {
485
+ if (!isRecord(value))
486
+ return { state: "unknown", status: null, success: null };
487
+ const status = typeof value["status"] === "string" ? value["status"] : null;
488
+ const success = booleanOrNull(value["success"]);
489
+ if (status === "running")
490
+ return { state: "running", status, success };
491
+ if (status === "failed")
492
+ return { state: "failed", status, success };
493
+ if (success === false)
494
+ return { state: "failed", status, success };
495
+ if (status === "completed")
496
+ return { state: "completed", status, success };
497
+ if (success === true)
498
+ return { state: "completed", status, success };
499
+ return { state: "unknown", status, success };
500
+ }
501
+ function booleanOrNull(value) {
502
+ return typeof value === "boolean" ? value : null;
503
+ }
504
+ function currentProgressIneligibleReason(candidate, lifecycle, options) {
505
+ if (options.currentProgressPolicy === "legacy")
506
+ return null;
507
+ if (candidate.freshnessStatus === "pre_scope") {
508
+ return `artifact precedes ${candidate.freshnessScope} freshness scope`;
509
+ }
510
+ if (candidate.stale)
511
+ return "artifact is stale for current progress";
512
+ if (options.currentProgressPolicy === "allow_live") {
513
+ return lifecycle.state === "completed" || lifecycle.state === "running"
514
+ ? null
515
+ : `artifact lifecycle is ${lifecycle.state}`;
516
+ }
517
+ return lifecycle.state === "completed"
518
+ ? null
519
+ : `artifact lifecycle is ${lifecycle.state}`;
520
+ }
343
521
  function addNumber(metrics, key, keyPath, value, confidence) {
344
522
  if (typeof value === "number" && Number.isFinite(value)) {
345
523
  metrics.push({ key, keyPath, value, confidence });
@@ -350,6 +528,13 @@ function hasAnyMetric(observation, keys) {
350
528
  return observation.metrics.length > 0;
351
529
  return keys.some((key) => observation.metrics.some((metric) => metric.key === key));
352
530
  }
531
+ function hasCurrentScopeStaleMetricMatch(observations, keys, options) {
532
+ if (options.freshnessScope === "none")
533
+ return false;
534
+ return observations.some((observation) => (observation.stale
535
+ && !observation.eligibleForCurrentProgress
536
+ && hasAnyMetric(observation, keys)));
537
+ }
353
538
  function selectMetric(observations, keys, aggregation) {
354
539
  const matches = matchingMetrics(observations, keys);
355
540
  if (matches.length === 0)
@@ -364,15 +549,22 @@ function selectMetric(observations, keys, aggregation) {
364
549
  value: best.metric.value,
365
550
  parser: best.observation.parser,
366
551
  updatedTime: best.observation.updatedTime,
552
+ artifactAgeMs: best.observation.artifactAgeMs,
367
553
  extractionConfidence: best.metric.confidence,
368
554
  candidateScore: best.observation.candidateScore,
369
555
  stale: best.observation.stale,
556
+ freshnessStatus: best.observation.freshnessStatus,
557
+ currentRun: best.observation.currentRun,
558
+ freshnessScope: best.observation.freshnessScope,
559
+ freshnessScopeId: best.observation.freshnessScopeId,
370
560
  };
371
561
  }
372
562
  function matchingMetrics(observations, keys) {
373
563
  const wanted = new Set(keys);
374
564
  const matches = [];
375
565
  for (const observation of observations) {
566
+ if (!observation.eligibleForCurrentProgress)
567
+ continue;
376
568
  for (const metric of observation.metrics) {
377
569
  if (wanted.size === 0 || wanted.has(metric.key)) {
378
570
  matches.push({ observation, metric });
@@ -438,8 +630,11 @@ function buildConflict(metricKey, matches) {
438
630
  keyPath: metric.keyPath,
439
631
  value: metric.value,
440
632
  updatedTime: observation.updatedTime,
633
+ artifactAgeMs: observation.artifactAgeMs,
441
634
  extractionConfidence: metric.confidence,
442
635
  stale: observation.stale,
636
+ freshnessStatus: observation.freshnessStatus,
637
+ currentRun: observation.currentRun,
443
638
  })),
444
639
  };
445
640
  }
@@ -454,9 +649,13 @@ function buildEvidenceCandidates(observations, keys, aggregation) {
454
649
  value: metric.value,
455
650
  parser: observation.parser,
456
651
  updated_time: observation.updatedTime,
652
+ artifact_age_ms: observation.artifactAgeMs,
457
653
  extraction_confidence: metric.confidence,
458
654
  candidate_score: observation.candidateScore,
459
655
  stale: observation.stale,
656
+ freshness_status: observation.freshnessStatus,
657
+ current_run: observation.currentRun,
658
+ current_progress_eligible: observation.eligibleForCurrentProgress,
460
659
  reasons: observation.reasons,
461
660
  strategic_correctness: "not_evaluated",
462
661
  }));
@@ -465,8 +664,13 @@ function rawCandidates(candidates) {
465
664
  return candidates.slice(0, MAX_RAW_CANDIDATES).map((candidate) => ({
466
665
  path: candidate.relativePath,
467
666
  updated_time: candidate.updatedTime,
667
+ artifact_age_ms: candidate.artifactAgeMs,
468
668
  candidate_score: candidate.candidateScore,
469
669
  stale: candidate.stale,
670
+ freshness_status: candidate.freshnessStatus,
671
+ current_run: candidate.currentRun,
672
+ freshness_scope: candidate.freshnessScope,
673
+ freshness_scope_id: candidate.freshnessScopeId,
470
674
  reasons: candidate.reasons,
471
675
  }));
472
676
  }
@@ -477,7 +681,29 @@ function staleRaw(observations) {
477
681
  .map((observation) => ({
478
682
  path: observation.relativePath,
479
683
  updated_time: observation.updatedTime,
684
+ artifact_age_ms: observation.artifactAgeMs,
480
685
  extraction_confidence: observation.extractionConfidence,
686
+ freshness_status: observation.freshnessStatus,
687
+ current_run: observation.currentRun,
688
+ }));
689
+ }
690
+ function ineligibleRaw(observations) {
691
+ return observations
692
+ .filter((observation) => !observation.eligibleForCurrentProgress)
693
+ .slice(0, MAX_RAW_CANDIDATES)
694
+ .map((observation) => ({
695
+ path: observation.relativePath,
696
+ updated_time: observation.updatedTime,
697
+ artifact_age_ms: observation.artifactAgeMs,
698
+ stale: observation.stale,
699
+ freshness_status: observation.freshnessStatus,
700
+ current_run: observation.currentRun,
701
+ freshness_scope: observation.freshnessScope,
702
+ freshness_scope_id: observation.freshnessScopeId,
703
+ lifecycle_state: observation.lifecycle.state,
704
+ lifecycle_status: observation.lifecycle.status,
705
+ success: observation.lifecycle.success,
706
+ reason: observation.ineligibleReason,
481
707
  }));
482
708
  }
483
709
  function discoveryRaw(options) {
@@ -489,6 +715,23 @@ function discoveryRaw(options) {
489
715
  max_candidates: options.maxCandidates,
490
716
  parser_hints: Array.from(options.parserHints),
491
717
  stale_after_ms: options.staleAfterMs ?? null,
718
+ fresh_after_time: options.freshAfterTime ?? null,
719
+ freshness_scope: options.freshnessScope,
720
+ freshness_scope_id: options.freshnessScopeId ?? null,
721
+ current_progress_policy: options.currentProgressPolicy,
722
+ };
723
+ }
724
+ function freshnessRaw(options, match, observations, currentProgressStatus) {
725
+ return {
726
+ scope: options.freshnessScope,
727
+ scope_id: options.freshnessScopeId ?? null,
728
+ fresh_after_time: options.freshAfterTime ?? null,
729
+ selected_path: match?.relativePath ?? null,
730
+ selected_artifact_age_ms: match?.artifactAgeMs ?? null,
731
+ selected_freshness_status: match?.freshnessStatus ?? null,
732
+ selected_current_run: match?.currentRun ?? null,
733
+ current_progress_status: currentProgressStatus,
734
+ ineligible_candidate_count: observations.filter((observation) => !observation.eligibleForCurrentProgress).length,
492
735
  };
493
736
  }
494
737
  function compareCandidates(left, right) {
@@ -589,4 +832,10 @@ function unique(values) {
589
832
  function isRecord(value) {
590
833
  return typeof value === "object" && value !== null && !Array.isArray(value);
591
834
  }
835
+ function parseIsoMs(value) {
836
+ if (!value)
837
+ return undefined;
838
+ const parsed = Date.parse(value);
839
+ return Number.isFinite(parsed) ? parsed : undefined;
840
+ }
592
841
  //# sourceMappingURL=artifact-metric-datasource.js.map