@pikku/core 0.12.83 → 0.12.84

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 (343) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/README.md +1 -1
  3. package/dist/ecosystem/agent-scorer.d.ts +12 -0
  4. package/dist/ecosystem/agent-scorer.js +5 -0
  5. package/dist/ecosystem/agent.d.ts +18 -0
  6. package/dist/ecosystem/agent.js +6 -0
  7. package/dist/ecosystem/ai-agent.d.ts +18 -0
  8. package/dist/ecosystem/ai-agent.js +6 -0
  9. package/dist/ecosystem/ai-scorer.d.ts +12 -0
  10. package/dist/ecosystem/ai-scorer.js +5 -0
  11. package/dist/ecosystem/channel/local.d.ts +1 -0
  12. package/dist/ecosystem/channel/local.js +1 -0
  13. package/dist/ecosystem/channel.d.ts +12 -0
  14. package/dist/ecosystem/channel.js +4 -0
  15. package/dist/ecosystem/cli/channel.d.ts +16 -0
  16. package/dist/ecosystem/cli/channel.js +2 -0
  17. package/dist/ecosystem/cli.d.ts +9 -0
  18. package/dist/ecosystem/cli.js +2 -0
  19. package/dist/ecosystem/credential.d.ts +9 -0
  20. package/dist/ecosystem/credential.js +1 -0
  21. package/dist/ecosystem/dev.d.ts +8 -0
  22. package/dist/ecosystem/dev.js +1 -0
  23. package/dist/ecosystem/function.d.ts +13 -0
  24. package/dist/ecosystem/function.js +2 -0
  25. package/dist/ecosystem/gateway.d.ts +1 -0
  26. package/dist/ecosystem/gateway.js +1 -0
  27. package/dist/ecosystem/hmac.d.ts +1 -0
  28. package/dist/ecosystem/hmac.js +1 -0
  29. package/dist/ecosystem/http.d.ts +11 -0
  30. package/dist/ecosystem/http.js +3 -0
  31. package/dist/ecosystem/mcp.d.ts +3 -0
  32. package/dist/ecosystem/mcp.js +2 -0
  33. package/dist/ecosystem/middleware.d.ts +17 -0
  34. package/dist/ecosystem/middleware.js +6 -0
  35. package/dist/ecosystem/node-host-resolver.d.ts +1 -0
  36. package/dist/ecosystem/node-host-resolver.js +1 -0
  37. package/dist/ecosystem/node.d.ts +1 -0
  38. package/dist/ecosystem/node.js +1 -0
  39. package/dist/ecosystem/oauth2.d.ts +1 -0
  40. package/dist/ecosystem/oauth2.js +1 -0
  41. package/dist/ecosystem/persona.d.ts +15 -0
  42. package/dist/ecosystem/persona.js +4 -0
  43. package/dist/ecosystem/queue.d.ts +11 -0
  44. package/dist/ecosystem/queue.js +2 -0
  45. package/dist/ecosystem/remote.d.ts +8 -0
  46. package/dist/ecosystem/remote.js +1 -0
  47. package/dist/ecosystem/role.d.ts +3 -0
  48. package/dist/ecosystem/role.js +2 -0
  49. package/dist/ecosystem/rpc.d.ts +4 -0
  50. package/dist/ecosystem/rpc.js +2 -0
  51. package/dist/ecosystem/safe-fetch.d.ts +7 -0
  52. package/dist/ecosystem/safe-fetch.js +1 -0
  53. package/dist/ecosystem/scenario.d.ts +15 -0
  54. package/dist/ecosystem/scenario.js +4 -0
  55. package/dist/ecosystem/scheduler.d.ts +2 -0
  56. package/dist/ecosystem/scheduler.js +1 -0
  57. package/dist/ecosystem/schema.d.ts +1 -0
  58. package/dist/ecosystem/schema.js +1 -0
  59. package/dist/ecosystem/scope.d.ts +3 -0
  60. package/dist/ecosystem/scope.js +2 -0
  61. package/dist/ecosystem/secret.d.ts +9 -0
  62. package/dist/ecosystem/secret.js +1 -0
  63. package/dist/ecosystem/services/istanbul-coverage.d.ts +1 -0
  64. package/dist/ecosystem/services/istanbul-coverage.js +1 -0
  65. package/dist/ecosystem/services/local-content-request-handler.d.ts +9 -0
  66. package/dist/ecosystem/services/local-content-request-handler.js +1 -0
  67. package/dist/ecosystem/services/local-content.d.ts +1 -0
  68. package/dist/ecosystem/services/local-content.js +1 -0
  69. package/dist/ecosystem/services/v8-coverage.d.ts +1 -0
  70. package/dist/ecosystem/services/v8-coverage.js +1 -0
  71. package/dist/ecosystem/services.d.ts +28 -0
  72. package/dist/ecosystem/services.js +6 -0
  73. package/dist/ecosystem/testing.d.ts +7 -0
  74. package/dist/ecosystem/testing.js +1 -0
  75. package/dist/ecosystem/trigger.d.ts +1 -0
  76. package/dist/ecosystem/trigger.js +1 -0
  77. package/dist/ecosystem/types.d.ts +9 -0
  78. package/dist/ecosystem/types.js +5 -0
  79. package/dist/ecosystem/variable.d.ts +8 -0
  80. package/dist/ecosystem/variable.js +1 -0
  81. package/dist/ecosystem/virtual-user.d.ts +21 -0
  82. package/dist/ecosystem/virtual-user.js +5 -0
  83. package/dist/ecosystem/workflow.d.ts +18 -0
  84. package/dist/ecosystem/workflow.js +4 -0
  85. package/dist/index.d.ts +8 -8
  86. package/dist/index.js +3 -3
  87. package/dist/middleware/auth-apikey.d.ts +1 -1
  88. package/dist/middleware/auth-bearer.d.ts +1 -1
  89. package/dist/middleware/auth-cookie.d.ts +1 -1
  90. package/dist/middleware/cors.d.ts +1 -1
  91. package/dist/middleware/remote-auth.d.ts +1 -1
  92. package/dist/middleware/telemetry.d.ts +2 -2
  93. package/dist/services/agent-run-state-service.d.ts +29 -0
  94. package/dist/services/agent-run-state-service.js +1 -0
  95. package/dist/services/agent-runner-service.d.ts +220 -0
  96. package/dist/services/agent-runner-service.js +1 -0
  97. package/dist/services/agent-storage-service.d.ts +18 -0
  98. package/dist/services/agent-storage-service.js +1 -0
  99. package/dist/services/http-personas.d.ts +1 -1
  100. package/dist/services/http-personas.js +3 -3
  101. package/dist/services/in-memory-agent-run-state-service.d.ts +19 -0
  102. package/dist/services/in-memory-agent-run-state-service.js +54 -0
  103. package/dist/services/index.d.ts +4 -4
  104. package/dist/services/index.js +1 -1
  105. package/dist/services/meta-service.d.ts +3 -3
  106. package/dist/testing/service-tests/agent-run-service-tests.d.ts +1 -1
  107. package/dist/testing/service-tests/agent-run-service-tests.js +3 -3
  108. package/dist/testing/service-tests/agent-storage-service-tests.d.ts +3 -0
  109. package/dist/testing/service-tests/agent-storage-service-tests.js +302 -0
  110. package/dist/testing/service-tests.d.ts +4 -4
  111. package/dist/testing/service-tests.js +4 -4
  112. package/dist/types/core.types.d.ts +10 -10
  113. package/dist/types/core.types.js +1 -1
  114. package/dist/types/state.types.d.ts +5 -5
  115. package/dist/wirings/actor-flow/run-conversation.d.ts +2 -2
  116. package/dist/wirings/agent/agent-agui.d.ts +79 -0
  117. package/dist/wirings/agent/agent-agui.js +327 -0
  118. package/dist/wirings/agent/agent-finalize.d.ts +58 -0
  119. package/dist/wirings/agent/agent-finalize.js +138 -0
  120. package/dist/wirings/agent/agent-helpers.d.ts +35 -0
  121. package/dist/wirings/agent/agent-helpers.js +47 -0
  122. package/dist/wirings/agent/agent-interrupt.d.ts +153 -0
  123. package/dist/wirings/agent/agent-interrupt.js +257 -0
  124. package/dist/wirings/agent/agent-memory.d.ts +42 -0
  125. package/dist/wirings/agent/agent-memory.js +333 -0
  126. package/dist/wirings/agent/agent-model-config.d.ts +16 -0
  127. package/dist/wirings/agent/agent-model-config.js +51 -0
  128. package/dist/wirings/agent/agent-prepare.d.ts +117 -0
  129. package/dist/wirings/agent/agent-prepare.js +728 -0
  130. package/dist/wirings/agent/agent-registry.d.ts +16 -0
  131. package/dist/wirings/agent/agent-registry.js +51 -0
  132. package/dist/wirings/agent/agent-rpc.d.ts +15 -0
  133. package/dist/wirings/agent/agent-rpc.js +53 -0
  134. package/dist/wirings/agent/agent-runner.d.ts +7 -0
  135. package/dist/wirings/agent/agent-runner.js +580 -0
  136. package/dist/wirings/agent/agent-stream.d.ts +41 -0
  137. package/dist/wirings/agent/agent-stream.js +1029 -0
  138. package/dist/wirings/agent/agent-turn.d.ts +57 -0
  139. package/dist/wirings/agent/agent-turn.js +82 -0
  140. package/dist/wirings/agent/agent-utils.d.ts +1 -0
  141. package/dist/wirings/agent/agent-utils.js +1 -0
  142. package/dist/wirings/agent/agent.types.d.ts +625 -0
  143. package/dist/wirings/agent/agent.types.js +1 -0
  144. package/dist/wirings/agent/index.d.ts +12 -0
  145. package/dist/wirings/agent/index.js +10 -0
  146. package/dist/wirings/agent/voice-input.d.ts +69 -0
  147. package/dist/wirings/agent/voice-input.js +150 -0
  148. package/dist/wirings/agent/voice-output.d.ts +85 -0
  149. package/dist/wirings/agent/voice-output.js +196 -0
  150. package/dist/wirings/agent-scorer/agent-scorer-grade.d.ts +26 -0
  151. package/dist/wirings/agent-scorer/agent-scorer-grade.js +33 -0
  152. package/dist/wirings/agent-scorer/agent-scorer-judge.d.ts +17 -0
  153. package/dist/wirings/agent-scorer/agent-scorer-judge.js +92 -0
  154. package/dist/wirings/agent-scorer/agent-scorer-live.d.ts +15 -0
  155. package/dist/wirings/agent-scorer/agent-scorer-live.js +38 -0
  156. package/dist/wirings/agent-scorer/agent-scorer-registry.d.ts +18 -0
  157. package/dist/wirings/agent-scorer/agent-scorer-registry.js +46 -0
  158. package/dist/wirings/agent-scorer/agent-scorer-sampling.d.ts +8 -0
  159. package/dist/wirings/agent-scorer/agent-scorer-sampling.js +31 -0
  160. package/dist/wirings/agent-scorer/agent-scorer-snapshots.d.ts +10 -0
  161. package/dist/wirings/agent-scorer/agent-scorer-snapshots.js +40 -0
  162. package/dist/wirings/agent-scorer/agent-scorer-worker.d.ts +15 -0
  163. package/dist/wirings/agent-scorer/agent-scorer-worker.js +60 -0
  164. package/dist/wirings/agent-scorer/agent-scorer.d.ts +39 -0
  165. package/dist/wirings/agent-scorer/agent-scorer.js +40 -0
  166. package/dist/wirings/agent-scorer/agent-scorer.types.d.ts +90 -0
  167. package/dist/wirings/agent-scorer/agent-scorer.types.js +4 -0
  168. package/dist/wirings/agent-scorer/index.d.ts +6 -0
  169. package/dist/wirings/agent-scorer/index.js +5 -0
  170. package/dist/wirings/ai-agent/voice-output.d.ts +1 -2
  171. package/dist/wirings/channel/channel-rpc.types.d.ts +2 -2
  172. package/dist/wirings/rpc/rpc-runner.d.ts +1 -1
  173. package/dist/wirings/rpc/rpc-runner.js +2 -2
  174. package/dist/wirings/rpc/rpc-types.d.ts +1 -1
  175. package/dist/wirings/virtual-user/prepare-virtual-user-run.js +1 -1
  176. package/dist/wirings/virtual-user/virtual-user-agents.d.ts +1 -1
  177. package/dist/wirings/workflow/run-timeline.d.ts +1 -2
  178. package/knowledge/decisions/internals/{a-non-streaming-agent-run-registers-with-airunstate-too.md → a-non-streaming-agent-run-registers-with-agentrunstate-too.md} +6 -6
  179. package/knowledge/decisions/internals/a-resumed-agent-turn-is-as-interruptible-as-the-first.md +1 -1
  180. package/knowledge/decisions/internals/actor-flow-drives-the-target-through-a-transport-seam.md +1 -1
  181. package/knowledge/decisions/internals/{ai-agent-agui-bridge-obeys-the-client-ordering-contract.md → agent-agui-bridge-obeys-the-client-ordering-contract.md} +5 -5
  182. package/knowledge/decisions/internals/{ai-agent-audio-chunks-carry-the-format-the-provider-returned.md → agent-audio-chunks-carry-the-format-the-provider-returned.md} +2 -2
  183. package/knowledge/decisions/internals/agent-context-waits-for-a-tool-result-still-being-written.md +1 -1
  184. package/knowledge/decisions/internals/{ai-agent-credential-suspensions-hide-the-tool-result.md → agent-credential-suspensions-hide-the-tool-result.md} +2 -2
  185. package/knowledge/decisions/internals/{ai-agent-delegate-and-supervise-hide-different-text.md → agent-delegate-and-supervise-hide-different-text.md} +4 -4
  186. package/knowledge/decisions/internals/{ai-agent-llm-tool-arguments-have-nulls-stripped.md → agent-llm-tool-arguments-have-nulls-stripped.md} +3 -3
  187. package/knowledge/decisions/internals/{ai-agent-model-config-stays-a-single-resolution-seam.md → agent-model-config-stays-a-single-resolution-seam.md} +3 -3
  188. package/knowledge/decisions/internals/{ai-agent-onerror-hooks-cannot-change-the-failure.md → agent-onerror-hooks-cannot-change-the-failure.md} +6 -6
  189. package/knowledge/decisions/internals/{ai-agent-runner-methods-must-keep-their-receiver.md → agent-runner-methods-must-keep-their-receiver.md} +4 -4
  190. package/knowledge/decisions/internals/agent-speech-travels-as-a-custom-agui-event.md +1 -1
  191. package/knowledge/decisions/internals/{ai-agent-stream-persistence-is-best-effort.md → agent-stream-persistence-is-best-effort.md} +4 -4
  192. package/knowledge/decisions/internals/{ai-agent-sub-agents-inherit-the-parent-context-block.md → agent-sub-agents-inherit-the-parent-context-block.md} +3 -3
  193. package/knowledge/decisions/internals/{ai-agent-tool-execute-failures-are-logged-unconditionally.md → agent-tool-execute-failures-are-logged-unconditionally.md} +3 -3
  194. package/knowledge/decisions/internals/{ai-agent-voice-input-transcribes-audio-parts-in-place.md → agent-voice-input-transcribes-audio-parts-in-place.md} +2 -2
  195. package/knowledge/decisions/internals/{ai-agent-working-memory-is-persisted-only-when-valid.md → agent-working-memory-is-persisted-only-when-valid.md} +2 -2
  196. package/knowledge/decisions/internals/an-agent-interrupt-is-not-a-failure.md +2 -2
  197. package/knowledge/decisions/internals/an-agent-run-owned-by-another-instance-says-so.md +3 -3
  198. package/knowledge/decisions/internals/an-agent-stream-send-must-return-the-inner-sends-promise.md +2 -2
  199. package/knowledge/decisions/internals/an-empty-text-part-is-omitted-from-an-agent-message.md +1 -1
  200. package/knowledge/decisions/internals/an-empty-transcript-is-not-recorded.md +1 -1
  201. package/knowledge/decisions/internals/speech-synthesis-picks-a-voice-per-sentence-and-warns-once.md +1 -1
  202. package/knowledge/decisions/internals/the-agent-done-event-goes-through-the-middleware-and-is-awaited.md +1 -1
  203. package/knowledge/decisions/internals/the-embedding-model-is-pinned-per-service-and-doc-query-embedding-is-split.md +1 -1
  204. package/knowledge/decisions/internals/the-per-invocation-rpc-view-is-a-class.md +5 -5
  205. package/knowledge/decisions/internals/the-transcript-event-is-sent-ahead-of-the-run.md +2 -2
  206. package/knowledge/decisions/internals/thread-history-records-the-transcript-not-the-audio.md +2 -2
  207. package/knowledge/decisions/internals/voice-output-speaks-unless-voice-input-explicitly-says-otherwise.md +1 -1
  208. package/knowledge/decisions/security/{ai-agent-approval-forwarding-requires-a-symbol-brand.md → agent-approval-forwarding-requires-a-symbol-brand.md} +3 -3
  209. package/knowledge/decisions/security/{ai-agent-credential-requests-are-symbol-branded.md → agent-credential-requests-are-symbol-branded.md} +4 -4
  210. package/knowledge/decisions/security/{ai-agent-gate-requires-a-session-only-when-auth-is-true.md → agent-gate-requires-a-session-only-when-auth-is-true.md} +3 -3
  211. package/knowledge/decisions/security/{ai-agent-ownership-failures-never-echo-the-resource.md → agent-ownership-failures-never-echo-the-resource.md} +2 -2
  212. package/knowledge/decisions/security/{ai-agent-resume-re-runs-the-authorization-gate.md → agent-resume-re-runs-the-authorization-gate.md} +4 -4
  213. package/knowledge/decisions/security/{ai-agent-sessionless-deployments-have-no-thread-ownership.md → agent-sessionless-deployments-have-no-thread-ownership.md} +5 -5
  214. package/knowledge/decisions/security/{ai-agent-thread-ownership-composes-the-session-principal.md → agent-thread-ownership-composes-the-session-principal.md} +2 -2
  215. package/knowledge/decisions/security/{ai-agent-tool-filtering-reads-the-live-function-config.md → agent-tool-filtering-reads-the-live-function-config.md} +2 -2
  216. package/knowledge/decisions/security/an-agent-approval-is-claimed-before-the-tool-runs.md +3 -3
  217. package/knowledge/decisions/security/an-empty-owners-constraint-matches-nothing.md +3 -3
  218. package/knowledge/decisions/security/console-addon-privileged-functions-gate-themselves.md +20 -13
  219. package/knowledge/decisions/security/index.md +1 -2
  220. package/package.json +4 -3
  221. package/scripts/generate-api-report.mts +32 -8
  222. package/src/agent-naming.test.ts +68 -0
  223. package/src/ecosystem/agent-scorer.ts +24 -0
  224. package/src/ecosystem/agent.ts +42 -0
  225. package/src/ecosystem/channel/local.ts +1 -0
  226. package/src/ecosystem/channel.ts +22 -0
  227. package/src/ecosystem/cli/channel.ts +25 -0
  228. package/src/ecosystem/cli.ts +21 -0
  229. package/src/ecosystem/credential.ts +10 -0
  230. package/src/ecosystem/dev.ts +12 -0
  231. package/src/ecosystem/function.ts +28 -0
  232. package/src/ecosystem/gateway.ts +4 -0
  233. package/src/ecosystem/hmac.ts +1 -0
  234. package/src/ecosystem/http.ts +22 -0
  235. package/src/ecosystem/mcp.ts +17 -0
  236. package/src/ecosystem/middleware.ts +27 -0
  237. package/src/ecosystem/node-host-resolver.ts +1 -0
  238. package/src/ecosystem/node.ts +5 -0
  239. package/src/ecosystem/oauth2.ts +4 -0
  240. package/src/ecosystem/persona.ts +30 -0
  241. package/src/ecosystem/queue.ts +23 -0
  242. package/src/ecosystem/remote.ts +9 -0
  243. package/src/ecosystem/role.ts +13 -0
  244. package/src/ecosystem/rpc.ts +7 -0
  245. package/src/ecosystem/safe-fetch.ts +8 -0
  246. package/src/ecosystem/scenario.ts +32 -0
  247. package/src/ecosystem/scheduler.ts +5 -0
  248. package/src/ecosystem/schema.ts +1 -0
  249. package/src/ecosystem/scope.ts +14 -0
  250. package/src/ecosystem/secret.ts +15 -0
  251. package/src/ecosystem/services/istanbul-coverage.ts +1 -0
  252. package/src/ecosystem/services/local-content-request-handler.ts +16 -0
  253. package/src/ecosystem/services/local-content.ts +1 -0
  254. package/src/ecosystem/services/v8-coverage.ts +1 -0
  255. package/src/ecosystem/services.ts +82 -0
  256. package/src/ecosystem/testing.ts +8 -0
  257. package/src/ecosystem/trigger.ts +7 -0
  258. package/src/ecosystem/types.ts +34 -0
  259. package/src/ecosystem/variable.ts +14 -0
  260. package/src/ecosystem/virtual-user.ts +48 -0
  261. package/src/ecosystem/workflow.ts +68 -0
  262. package/src/index.ts +8 -19
  263. package/src/pikku-state.ts +3 -3
  264. package/src/public-surface.json +173 -68
  265. package/src/public-surface.json.README +20 -2
  266. package/src/public-surface.test.ts +31 -3
  267. package/src/services/{ai-run-state-service.ts → agent-run-state-service.ts} +5 -5
  268. package/src/services/{ai-agent-runner-service.ts → agent-runner-service.ts} +18 -18
  269. package/src/services/{ai-storage-service.ts → agent-storage-service.ts} +7 -7
  270. package/src/services/http-personas-converse.test.ts +3 -3
  271. package/src/services/http-personas.ts +4 -4
  272. package/src/services/{in-memory-ai-run-state-service.ts → in-memory-agent-run-state-service.ts} +7 -7
  273. package/src/services/index.ts +9 -9
  274. package/src/services/meta-service.ts +3 -3
  275. package/src/testing/service-tests/agent-run-service-tests.ts +4 -4
  276. package/src/testing/service-tests/{ai-storage-service-tests.ts → agent-storage-service-tests.ts} +8 -8
  277. package/src/testing/service-tests.ts +10 -8
  278. package/src/types/core.types.ts +12 -12
  279. package/src/types/state.types.ts +6 -9
  280. package/src/wirings/actor-flow/run-conversation.test.ts +2 -2
  281. package/src/wirings/actor-flow/run-conversation.ts +7 -9
  282. package/src/wirings/{ai-agent/ai-agent-agui.test.ts → agent/agent-agui.test.ts} +126 -105
  283. package/src/wirings/{ai-agent/ai-agent-agui.ts → agent/agent-agui.ts} +7 -7
  284. package/src/wirings/{ai-agent/ai-agent-authorization.test.ts → agent/agent-authorization.test.ts} +6 -6
  285. package/src/wirings/{ai-agent/ai-agent-finalize.test.ts → agent/agent-finalize.test.ts} +17 -16
  286. package/src/wirings/{ai-agent/ai-agent-finalize.ts → agent/agent-finalize.ts} +22 -22
  287. package/src/wirings/{ai-agent/ai-agent-helpers.test.ts → agent/agent-helpers.test.ts} +1 -1
  288. package/src/wirings/{ai-agent/ai-agent-helpers.ts → agent/agent-helpers.ts} +1 -1
  289. package/src/wirings/{ai-agent/ai-agent-interrupt.test.ts → agent/agent-interrupt.test.ts} +67 -77
  290. package/src/wirings/{ai-agent/ai-agent-interrupt.ts → agent/agent-interrupt.ts} +5 -5
  291. package/src/wirings/{ai-agent/ai-agent-memory.test.ts → agent/agent-memory.test.ts} +12 -12
  292. package/src/wirings/{ai-agent/ai-agent-memory.ts → agent/agent-memory.ts} +36 -36
  293. package/src/wirings/{ai-agent/ai-agent-model-config.test.ts → agent/agent-model-config.test.ts} +2 -5
  294. package/src/wirings/{ai-agent/ai-agent-model-config.ts → agent/agent-model-config.ts} +1 -1
  295. package/src/wirings/{ai-agent/ai-agent-prepare.test.ts → agent/agent-prepare.test.ts} +18 -18
  296. package/src/wirings/{ai-agent/ai-agent-prepare.ts → agent/agent-prepare.ts} +52 -51
  297. package/src/wirings/{ai-agent/ai-agent-registry.test.ts → agent/agent-registry.test.ts} +49 -43
  298. package/src/wirings/{ai-agent/ai-agent-registry.ts → agent/agent-registry.ts} +14 -14
  299. package/src/wirings/{ai-agent/ai-agent-resume-authorization.test.ts → agent/agent-resume-authorization.test.ts} +18 -18
  300. package/src/wirings/{ai-agent → agent}/agent-rpc.ts +16 -20
  301. package/src/wirings/{ai-agent/ai-agent-runner.test.ts → agent/agent-runner.test.ts} +105 -106
  302. package/src/wirings/{ai-agent/ai-agent-runner.ts → agent/agent-runner.ts} +90 -80
  303. package/src/wirings/{ai-agent/ai-agent-stream-output-hooks.test.ts → agent/agent-stream-output-hooks.test.ts} +25 -25
  304. package/src/wirings/{ai-agent/ai-agent-stream.test.ts → agent/agent-stream.test.ts} +147 -143
  305. package/src/wirings/{ai-agent/ai-agent-stream.ts → agent/agent-stream.ts} +147 -146
  306. package/src/wirings/{ai-agent/ai-agent-thread-ownership.test.ts → agent/agent-thread-ownership.test.ts} +24 -28
  307. package/src/wirings/{ai-agent/ai-agent-turn.test.ts → agent/agent-turn.test.ts} +3 -5
  308. package/src/wirings/{ai-agent/ai-agent-turn.ts → agent/agent-turn.ts} +7 -7
  309. package/src/wirings/{ai-agent/ai-agent.types.ts → agent/agent.types.ts} +51 -48
  310. package/src/wirings/agent/index.ts +56 -0
  311. package/src/wirings/{ai-agent → agent}/voice-input.test.ts +15 -15
  312. package/src/wirings/{ai-agent → agent}/voice-input.ts +11 -11
  313. package/src/wirings/{ai-agent → agent}/voice-output.test.ts +23 -23
  314. package/src/wirings/{ai-agent → agent}/voice-output.ts +11 -11
  315. package/src/wirings/{ai-scorer/ai-scorer-grade.test.ts → agent-scorer/agent-scorer-grade.test.ts} +8 -8
  316. package/src/wirings/{ai-scorer/ai-scorer-grade.ts → agent-scorer/agent-scorer-grade.ts} +9 -9
  317. package/src/wirings/{ai-scorer/ai-scorer-judge.test.ts → agent-scorer/agent-scorer-judge.test.ts} +11 -14
  318. package/src/wirings/{ai-scorer/ai-scorer-judge.ts → agent-scorer/agent-scorer-judge.ts} +11 -11
  319. package/src/wirings/{ai-scorer/ai-scorer-live.test.ts → agent-scorer/agent-scorer-live.test.ts} +11 -11
  320. package/src/wirings/{ai-scorer/ai-scorer-live.ts → agent-scorer/agent-scorer-live.ts} +3 -3
  321. package/src/wirings/{ai-scorer/ai-scorer-registry.ts → agent-scorer/agent-scorer-registry.ts} +11 -8
  322. package/src/wirings/{ai-scorer/ai-scorer-sampling.test.ts → agent-scorer/agent-scorer-sampling.test.ts} +1 -1
  323. package/src/wirings/{ai-scorer/ai-scorer-snapshots.test.ts → agent-scorer/agent-scorer-snapshots.test.ts} +2 -2
  324. package/src/wirings/{ai-scorer/ai-scorer-snapshots.ts → agent-scorer/agent-scorer-snapshots.ts} +1 -1
  325. package/src/wirings/{ai-scorer/ai-scorer-worker.test.ts → agent-scorer/agent-scorer-worker.test.ts} +15 -15
  326. package/src/wirings/{ai-scorer/ai-scorer-worker.ts → agent-scorer/agent-scorer-worker.ts} +9 -7
  327. package/src/wirings/{ai-scorer/ai-scorer.ts → agent-scorer/agent-scorer.ts} +7 -7
  328. package/src/wirings/{ai-scorer/ai-scorer.types.ts → agent-scorer/agent-scorer.types.ts} +6 -6
  329. package/src/wirings/agent-scorer/index.ts +22 -0
  330. package/src/wirings/channel/channel-rpc.types.ts +2 -2
  331. package/src/wirings/rpc/rpc-runner.ts +2 -2
  332. package/src/wirings/rpc/rpc-types.ts +1 -1
  333. package/src/wirings/virtual-user/prepare-virtual-user-run.ts +1 -1
  334. package/src/wirings/virtual-user/run-virtual-user.test.ts +2 -2
  335. package/src/wirings/virtual-user/run-virtual-user.ts +3 -3
  336. package/src/wirings/virtual-user/virtual-user-agents.ts +1 -1
  337. package/src/wirings/workflow/run-timeline.ts +1 -1
  338. package/src/wirings-stay-decoupled.test.ts +3 -3
  339. package/tsconfig.tsbuildinfo +1 -1
  340. package/src/wirings/ai-agent/index.ts +0 -65
  341. package/src/wirings/ai-scorer/index.ts +0 -24
  342. /package/src/wirings/{ai-agent/ai-agent-utils.ts → agent/agent-utils.ts} +0 -0
  343. /package/src/wirings/{ai-scorer/ai-scorer-sampling.ts → agent-scorer/agent-scorer-sampling.ts} +0 -0
@@ -1,5 +1,5 @@
1
- import type { AIStreamChannel, AIStreamEvent } from './ai-agent.types.js'
2
- import { randomUUID } from './ai-agent-utils.js'
1
+ import type { AgentStreamChannel, AgentStreamEvent } from './agent.types.js'
2
+ import { randomUUID } from './agent-utils.js'
3
3
 
4
4
  type AGUIEvent =
5
5
  | { type: 'TEXT_MESSAGE_START'; messageId: string }
@@ -57,9 +57,9 @@ function resultToString(result: unknown): string {
57
57
  }
58
58
 
59
59
  export function wrapChannelWithAGUI(
60
- inner: AIStreamChannel,
60
+ inner: AgentStreamChannel,
61
61
  options?: AGUIChannelOptions
62
- ): AIStreamChannel {
62
+ ): AgentStreamChannel {
63
63
  const threadId = options?.threadId ?? randomUUID()
64
64
  let runId: string | null = options?.runId ?? null
65
65
 
@@ -87,9 +87,9 @@ export function wrapChannelWithAGUI(
87
87
  type: 'RUN_STARTED',
88
88
  threadId,
89
89
  runId: resolveRunId(),
90
- } as unknown as AIStreamEvent)
90
+ } as unknown as AgentStreamEvent)
91
91
  }
92
- inner.send(event as unknown as AIStreamEvent)
92
+ inner.send(event as unknown as AgentStreamEvent)
93
93
  }
94
94
 
95
95
  function endTextMessage(): void {
@@ -171,7 +171,7 @@ export function wrapChannelWithAGUI(
171
171
  sendBinary: (data) => inner.sendBinary(data),
172
172
  close: () => inner.close(),
173
173
 
174
- send: (event: AIStreamEvent) => {
174
+ send: (event: AgentStreamEvent) => {
175
175
  if (terminal) return
176
176
 
177
177
  switch (event.type) {
@@ -6,10 +6,10 @@ import {
6
6
  pikkuState,
7
7
  setSingletonServices,
8
8
  } from '../../pikku-state.js'
9
- import { assertAgentAuthorized } from './ai-agent-prepare.js'
9
+ import { assertAgentAuthorized } from './agent-prepare.js'
10
10
  import { clearPermissionsCache } from '../../permissions.js'
11
11
  import { ForbiddenError, MissingScopeError } from '../../errors/errors.js'
12
- import type { CoreAIAgent } from './ai-agent.types.js'
12
+ import type { CoreAgent } from './agent.types.js'
13
13
  import type { CoreUserSession } from '../../types/core.types.js'
14
14
 
15
15
  const logger = {
@@ -27,16 +27,16 @@ beforeEach(() => {
27
27
 
28
28
  const addAgent = (
29
29
  agentName: string,
30
- overrides: Partial<CoreAIAgent> = {}
31
- ): CoreAIAgent => {
32
- const agent: CoreAIAgent = {
30
+ overrides: Partial<CoreAgent> = {}
31
+ ): CoreAgent => {
32
+ const agent: CoreAgent = {
33
33
  name: agentName,
34
34
  description: `${agentName} description`,
35
35
  goal: `${agentName} goal`,
36
36
  instructions: `${agentName} instructions`,
37
37
  model: 'test/test-model',
38
38
  ...overrides,
39
- } as CoreAIAgent
39
+ } as CoreAgent
40
40
 
41
41
  pikkuState(null, 'agent', 'agents').set(agentName, agent)
42
42
  return agent
@@ -4,13 +4,11 @@ import {
4
4
  applyOutputMiddleware,
5
5
  finalizeAgentRun,
6
6
  type FinalizedRun,
7
- } from './ai-agent-finalize.js'
8
- import type { AIAgentStep, PikkuAIMiddlewareHooks } from './ai-agent.types.js'
9
- import type { AIRunStateService } from '../../services/ai-run-state-service.js'
7
+ } from './agent-finalize.js'
8
+ import type { AgentStep, PikkuAgentMiddlewareHooks } from './agent.types.js'
9
+ import type { AgentRunStateService } from '../../services/agent-run-state-service.js'
10
10
 
11
- const step = (
12
- toolCalls: NonNullable<AIAgentStep['toolCalls']>
13
- ): AIAgentStep => ({
11
+ const step = (toolCalls: NonNullable<AgentStep['toolCalls']>): AgentStep => ({
14
12
  usage: { inputTokens: 0, outputTokens: 0 },
15
13
  toolCalls,
16
14
  })
@@ -24,7 +22,7 @@ const call = (name: string, result: string) => ({
24
22
  describe('applyOutputMiddleware', () => {
25
23
  test('hands the middleware every tool call the run made, flattened across steps', async () => {
26
24
  const seen: string[][] = []
27
- const middleware: PikkuAIMiddlewareHooks[] = [
25
+ const middleware: PikkuAgentMiddlewareHooks[] = [
28
26
  {
29
27
  modifyOutput: (_services, ctx) => {
30
28
  seen.push(ctx.toolCalls.map((c) => c.name))
@@ -48,7 +46,7 @@ describe('applyOutputMiddleware', () => {
48
46
  })
49
47
 
50
48
  test('a rewritten tool call is redistributed back onto the step it came from', async () => {
51
- const middleware: PikkuAIMiddlewareHooks[] = [
49
+ const middleware: PikkuAgentMiddlewareHooks[] = [
52
50
  {
53
51
  modifyOutput: (_services, ctx) => ({
54
52
  text: ctx.text,
@@ -79,7 +77,7 @@ describe('applyOutputMiddleware', () => {
79
77
  })
80
78
 
81
79
  test('dropping a tool call collapses the calls into the last step rather than mis-attributing them', async () => {
82
- const middleware: PikkuAIMiddlewareHooks[] = [
80
+ const middleware: PikkuAgentMiddlewareHooks[] = [
83
81
  {
84
82
  modifyOutput: (_services, ctx) => ({
85
83
  text: ctx.text,
@@ -108,7 +106,7 @@ describe('applyOutputMiddleware', () => {
108
106
 
109
107
  test('runs the chain in reverse registration order, each hook seeing the previous rewrite', async () => {
110
108
  const order: string[] = []
111
- const middleware: PikkuAIMiddlewareHooks[] = [
109
+ const middleware: PikkuAgentMiddlewareHooks[] = [
112
110
  {
113
111
  modifyOutput: (_services, ctx) => {
114
112
  order.push(`first saw ${ctx.text}`)
@@ -152,14 +150,14 @@ describe('finalizeAgentRun', () => {
152
150
 
153
151
  test('completes the run and records its usage', async () => {
154
152
  const updates: unknown[] = []
155
- const aiRunState = {
153
+ const agentRunState = {
156
154
  updateRun: async (_runId: string, update: unknown) => {
157
155
  updates.push(update)
158
156
  },
159
- } as unknown as AIRunStateService
157
+ } as unknown as AgentRunStateService
160
158
 
161
159
  await finalizeAgentRun(
162
- aiRunState,
160
+ agentRunState,
163
161
  run({ inputTokens: 10, outputTokens: 20, model: 'gpt-4o' })
164
162
  )
165
163
 
@@ -173,13 +171,16 @@ describe('finalizeAgentRun', () => {
173
171
 
174
172
  test('omits usage entirely when no model reported one', async () => {
175
173
  const updates: any[] = []
176
- const aiRunState = {
174
+ const agentRunState = {
177
175
  updateRun: async (_runId: string, update: unknown) => {
178
176
  updates.push(update)
179
177
  },
180
- } as unknown as AIRunStateService
178
+ } as unknown as AgentRunStateService
181
179
 
182
- await finalizeAgentRun(aiRunState, run({ inputTokens: 0, outputTokens: 0 }))
180
+ await finalizeAgentRun(
181
+ agentRunState,
182
+ run({ inputTokens: 0, outputTokens: 0 })
183
+ )
183
184
 
184
185
  assert.deepEqual(updates, [{ status: 'completed' }])
185
186
  })
@@ -1,12 +1,12 @@
1
1
  import type {
2
- AIAgentStep,
3
- AIMessage,
4
- PikkuAIMiddlewareHooks,
5
- } from './ai-agent.types.js'
6
- import type { AIRunStateService } from '../../services/ai-run-state-service.js'
2
+ AgentStep,
3
+ AgentMessage,
4
+ PikkuAgentMiddlewareHooks,
5
+ } from './agent.types.js'
6
+ import type { AgentRunStateService } from '../../services/agent-run-state-service.js'
7
7
  import { pikkuState } from '../../pikku-state.js'
8
- import { scoreFinishedRun } from '../ai-scorer/ai-scorer-live.js'
9
- import { recordScoreSnapshot } from '../ai-scorer/ai-scorer-snapshots.js'
8
+ import { scoreFinishedRun } from '../agent-scorer/agent-scorer-live.js'
9
+ import { recordScoreSnapshot } from '../agent-scorer/agent-scorer-snapshots.js'
10
10
 
11
11
  export type RunUsage = {
12
12
  inputTokens: number
@@ -28,7 +28,7 @@ export type FinalizedRun = {
28
28
  /** The prompt the run answered — what a scorer grades the answer against. */
29
29
  input: string
30
30
  text: string
31
- steps: AIAgentStep[]
31
+ steps: AgentStep[]
32
32
  usage: RunUsage
33
33
  }
34
34
 
@@ -36,7 +36,7 @@ export type FinalizedRun = {
36
36
  * The prompt a run answered: the most recent user turn, which is what the model
37
37
  * was last asked. On a resumed run the earlier turns are context, not the ask.
38
38
  */
39
- export const lastUserMessageText = (messages: AIMessage[]): string => {
39
+ export const lastUserMessageText = (messages: AgentMessage[]): string => {
40
40
  for (let i = messages.length - 1; i >= 0; i--) {
41
41
  const message = messages[i]
42
42
  if (message?.role !== 'user') continue
@@ -52,8 +52,8 @@ export const lastUserMessageText = (messages: AIMessage[]): string => {
52
52
  }
53
53
 
54
54
  const flattenToolCalls = (
55
- steps: AIAgentStep[]
56
- ): NonNullable<AIAgentStep['toolCalls']> =>
55
+ steps: AgentStep[]
56
+ ): NonNullable<AgentStep['toolCalls']> =>
57
57
  steps.flatMap((step) => step.toolCalls ?? [])
58
58
 
59
59
  /**
@@ -63,9 +63,9 @@ const flattenToolCalls = (
63
63
  * step rather than silently mis-attributing calls to the wrong step.
64
64
  */
65
65
  const distributeToolCalls = (
66
- steps: AIAgentStep[],
67
- toolCalls: NonNullable<AIAgentStep['toolCalls']>
68
- ): AIAgentStep[] => {
66
+ steps: AgentStep[],
67
+ toolCalls: NonNullable<AgentStep['toolCalls']>
68
+ ): AgentStep[] => {
69
69
  if (toolCalls.length !== flattenToolCalls(steps).length) {
70
70
  return steps.map((step, index) => ({
71
71
  ...step,
@@ -89,22 +89,22 @@ const distributeToolCalls = (
89
89
  * wraps the others, so it sees the output last.
90
90
  */
91
91
  export const applyOutputMiddleware = async (
92
- aiMiddlewares: PikkuAIMiddlewareHooks[],
92
+ agentMiddlewares: PikkuAgentMiddlewareHooks[],
93
93
  singletonServices: any,
94
94
  input: {
95
95
  text: string
96
- messages: AIMessage[]
97
- steps: AIAgentStep[]
96
+ messages: AgentMessage[]
97
+ steps: AgentStep[]
98
98
  usage: { inputTokens: number; outputTokens: number }
99
99
  }
100
- ): Promise<{ text: string; messages: AIMessage[]; steps: AIAgentStep[] }> => {
100
+ ): Promise<{ text: string; messages: AgentMessage[]; steps: AgentStep[] }> => {
101
101
  let text = input.text
102
102
  let messages = input.messages
103
103
  let steps = input.steps
104
104
  let toolCalls = flattenToolCalls(steps)
105
105
 
106
- for (let i = aiMiddlewares.length - 1; i >= 0; i--) {
107
- const mw = aiMiddlewares[i]
106
+ for (let i = agentMiddlewares.length - 1; i >= 0; i--) {
107
+ const mw = agentMiddlewares[i]
108
108
  if (!mw.modifyOutput) continue
109
109
  const result = await mw.modifyOutput(singletonServices, {
110
110
  text,
@@ -136,10 +136,10 @@ export const applyOutputMiddleware = async (
136
136
  * the streaming path, the client already has the reply.
137
137
  */
138
138
  export const finalizeAgentRun = async (
139
- aiRunState: AIRunStateService,
139
+ agentRunState: AgentRunStateService,
140
140
  run: FinalizedRun
141
141
  ): Promise<void> => {
142
- await aiRunState.updateRun(run.runId, {
142
+ await agentRunState.updateRun(run.runId, {
143
143
  status: 'completed',
144
144
  ...(run.usage.model
145
145
  ? {
@@ -5,7 +5,7 @@ import {
5
5
  agentStream,
6
6
  agentResume,
7
7
  agentApprove,
8
- } from './ai-agent-helpers.js'
8
+ } from './agent-helpers.js'
9
9
 
10
10
  describe('agent helpers', () => {
11
11
  describe('agent', () => {
@@ -1,4 +1,4 @@
1
- import type { AgentInterruptResult } from './ai-agent-interrupt.js'
1
+ import type { AgentInterruptResult } from './agent-interrupt.js'
2
2
 
3
3
  export function agent<TAgentMap extends Record<string, { output: any }>>(
4
4
  agentName: string & keyof TAgentMap