@pikku/core 0.12.82 → 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 (364) hide show
  1. package/CHANGELOG.md +101 -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 +9 -10
  104. package/dist/services/index.js +3 -3
  105. package/dist/services/meta-service.d.ts +5 -4
  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 +12 -11
  113. package/dist/types/core.types.js +1 -1
  114. package/dist/types/state.types.d.ts +11 -6
  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/ai-agent-prepare.js +2 -0
  171. package/dist/wirings/ai-agent/voice-output.d.ts +1 -2
  172. package/dist/wirings/channel/channel-rpc.types.d.ts +2 -2
  173. package/dist/wirings/rpc/addon-runner.d.ts +4 -0
  174. package/dist/wirings/rpc/addon-runner.js +14 -2
  175. package/dist/wirings/rpc/rpc-runner.d.ts +1 -1
  176. package/dist/wirings/rpc/rpc-runner.js +4 -2
  177. package/dist/wirings/rpc/rpc-types.d.ts +5 -1
  178. package/dist/wirings/rpc/wire-addon.d.ts +12 -0
  179. package/dist/wirings/rpc/wire-addon.js +4 -0
  180. package/dist/wirings/virtual-user/prepare-virtual-user-run.js +1 -1
  181. package/dist/wirings/virtual-user/virtual-user-agents.d.ts +1 -1
  182. package/dist/wirings/workflow/feature.d.ts +2 -1
  183. package/dist/wirings/workflow/index.d.ts +3 -14
  184. package/dist/wirings/workflow/index.js +0 -8
  185. package/dist/wirings/workflow/pikku-scenario-service.d.ts +10 -0
  186. package/dist/wirings/workflow/pikku-scenario-service.js +9 -0
  187. package/dist/wirings/workflow/run-timeline.d.ts +1 -2
  188. package/dist/wirings/workflow/scenario.types.d.ts +37 -0
  189. package/dist/wirings/workflow/scenario.types.js +1 -0
  190. package/dist/wirings/workflow/workflow.types.d.ts +2 -37
  191. 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
  192. package/knowledge/decisions/internals/a-resumed-agent-turn-is-as-interruptible-as-the-first.md +1 -1
  193. package/knowledge/decisions/internals/actor-flow-drives-the-target-through-a-transport-seam.md +1 -1
  194. 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
  195. 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
  196. package/knowledge/decisions/internals/agent-context-waits-for-a-tool-result-still-being-written.md +1 -1
  197. package/knowledge/decisions/internals/{ai-agent-credential-suspensions-hide-the-tool-result.md → agent-credential-suspensions-hide-the-tool-result.md} +2 -2
  198. package/knowledge/decisions/internals/{ai-agent-delegate-and-supervise-hide-different-text.md → agent-delegate-and-supervise-hide-different-text.md} +4 -4
  199. package/knowledge/decisions/internals/{ai-agent-llm-tool-arguments-have-nulls-stripped.md → agent-llm-tool-arguments-have-nulls-stripped.md} +3 -3
  200. 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
  201. package/knowledge/decisions/internals/{ai-agent-onerror-hooks-cannot-change-the-failure.md → agent-onerror-hooks-cannot-change-the-failure.md} +6 -6
  202. package/knowledge/decisions/internals/{ai-agent-runner-methods-must-keep-their-receiver.md → agent-runner-methods-must-keep-their-receiver.md} +4 -4
  203. package/knowledge/decisions/internals/agent-speech-travels-as-a-custom-agui-event.md +1 -1
  204. package/knowledge/decisions/internals/{ai-agent-stream-persistence-is-best-effort.md → agent-stream-persistence-is-best-effort.md} +4 -4
  205. 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
  206. package/knowledge/decisions/internals/{ai-agent-tool-execute-failures-are-logged-unconditionally.md → agent-tool-execute-failures-are-logged-unconditionally.md} +3 -3
  207. 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
  208. 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
  209. package/knowledge/decisions/internals/an-agent-interrupt-is-not-a-failure.md +2 -2
  210. package/knowledge/decisions/internals/an-agent-run-owned-by-another-instance-says-so.md +3 -3
  211. package/knowledge/decisions/internals/an-agent-stream-send-must-return-the-inner-sends-promise.md +2 -2
  212. package/knowledge/decisions/internals/an-empty-text-part-is-omitted-from-an-agent-message.md +1 -1
  213. package/knowledge/decisions/internals/an-empty-transcript-is-not-recorded.md +1 -1
  214. package/knowledge/decisions/internals/speech-synthesis-picks-a-voice-per-sentence-and-warns-once.md +1 -1
  215. package/knowledge/decisions/internals/the-agent-done-event-goes-through-the-middleware-and-is-awaited.md +1 -1
  216. package/knowledge/decisions/internals/the-embedding-model-is-pinned-per-service-and-doc-query-embedding-is-split.md +1 -1
  217. package/knowledge/decisions/internals/the-per-invocation-rpc-view-is-a-class.md +5 -5
  218. package/knowledge/decisions/internals/the-transcript-event-is-sent-ahead-of-the-run.md +2 -2
  219. package/knowledge/decisions/internals/thread-history-records-the-transcript-not-the-audio.md +2 -2
  220. package/knowledge/decisions/internals/voice-output-speaks-unless-voice-input-explicitly-says-otherwise.md +1 -1
  221. package/knowledge/decisions/security/{ai-agent-approval-forwarding-requires-a-symbol-brand.md → agent-approval-forwarding-requires-a-symbol-brand.md} +3 -3
  222. package/knowledge/decisions/security/{ai-agent-credential-requests-are-symbol-branded.md → agent-credential-requests-are-symbol-branded.md} +4 -4
  223. 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
  224. package/knowledge/decisions/security/{ai-agent-ownership-failures-never-echo-the-resource.md → agent-ownership-failures-never-echo-the-resource.md} +2 -2
  225. package/knowledge/decisions/security/{ai-agent-resume-re-runs-the-authorization-gate.md → agent-resume-re-runs-the-authorization-gate.md} +4 -4
  226. package/knowledge/decisions/security/{ai-agent-sessionless-deployments-have-no-thread-ownership.md → agent-sessionless-deployments-have-no-thread-ownership.md} +5 -5
  227. package/knowledge/decisions/security/{ai-agent-thread-ownership-composes-the-session-principal.md → agent-thread-ownership-composes-the-session-principal.md} +2 -2
  228. 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
  229. package/knowledge/decisions/security/an-agent-approval-is-claimed-before-the-tool-runs.md +3 -3
  230. package/knowledge/decisions/security/an-empty-owners-constraint-matches-nothing.md +3 -3
  231. package/knowledge/decisions/security/console-addon-privileged-functions-gate-themselves.md +20 -13
  232. package/knowledge/decisions/security/index.md +1 -2
  233. package/package.json +4 -4
  234. package/scripts/generate-api-report.mts +32 -8
  235. package/src/agent-naming.test.ts +68 -0
  236. package/src/ecosystem/agent-scorer.ts +24 -0
  237. package/src/ecosystem/agent.ts +42 -0
  238. package/src/ecosystem/channel/local.ts +1 -0
  239. package/src/ecosystem/channel.ts +22 -0
  240. package/src/ecosystem/cli/channel.ts +25 -0
  241. package/src/ecosystem/cli.ts +21 -0
  242. package/src/ecosystem/credential.ts +10 -0
  243. package/src/ecosystem/dev.ts +12 -0
  244. package/src/ecosystem/function.ts +28 -0
  245. package/src/ecosystem/gateway.ts +4 -0
  246. package/src/ecosystem/hmac.ts +1 -0
  247. package/src/ecosystem/http.ts +22 -0
  248. package/src/ecosystem/mcp.ts +17 -0
  249. package/src/ecosystem/middleware.ts +27 -0
  250. package/src/ecosystem/node-host-resolver.ts +1 -0
  251. package/src/ecosystem/node.ts +5 -0
  252. package/src/ecosystem/oauth2.ts +4 -0
  253. package/src/ecosystem/persona.ts +30 -0
  254. package/src/ecosystem/queue.ts +23 -0
  255. package/src/ecosystem/remote.ts +9 -0
  256. package/src/ecosystem/role.ts +13 -0
  257. package/src/ecosystem/rpc.ts +7 -0
  258. package/src/ecosystem/safe-fetch.ts +8 -0
  259. package/src/ecosystem/scenario.ts +32 -0
  260. package/src/ecosystem/scheduler.ts +5 -0
  261. package/src/ecosystem/schema.ts +1 -0
  262. package/src/ecosystem/scope.ts +14 -0
  263. package/src/ecosystem/secret.ts +15 -0
  264. package/src/ecosystem/services/istanbul-coverage.ts +1 -0
  265. package/src/ecosystem/services/local-content-request-handler.ts +16 -0
  266. package/src/ecosystem/services/local-content.ts +1 -0
  267. package/src/ecosystem/services/v8-coverage.ts +1 -0
  268. package/src/ecosystem/services.ts +82 -0
  269. package/src/ecosystem/testing.ts +8 -0
  270. package/src/ecosystem/trigger.ts +7 -0
  271. package/src/ecosystem/types.ts +34 -0
  272. package/src/ecosystem/variable.ts +14 -0
  273. package/src/ecosystem/virtual-user.ts +48 -0
  274. package/src/ecosystem/workflow.ts +68 -0
  275. package/src/index.ts +8 -19
  276. package/src/pikku-state.ts +3 -3
  277. package/src/public-surface.json +183 -91
  278. package/src/public-surface.json.README +20 -2
  279. package/src/public-surface.test.ts +31 -3
  280. package/src/services/{ai-run-state-service.ts → agent-run-state-service.ts} +5 -5
  281. package/src/services/{ai-agent-runner-service.ts → agent-runner-service.ts} +18 -18
  282. package/src/services/{ai-storage-service.ts → agent-storage-service.ts} +7 -7
  283. package/src/services/http-personas-converse.test.ts +3 -3
  284. package/src/services/http-personas.ts +4 -4
  285. package/src/services/{in-memory-ai-run-state-service.ts → in-memory-agent-run-state-service.ts} +7 -7
  286. package/src/services/index.ts +13 -24
  287. package/src/services/meta-service.ts +5 -7
  288. package/src/testing/service-tests/agent-run-service-tests.ts +4 -4
  289. package/src/testing/service-tests/{ai-storage-service-tests.ts → agent-storage-service-tests.ts} +8 -8
  290. package/src/testing/service-tests.ts +10 -8
  291. package/src/types/core.types.ts +13 -13
  292. package/src/types/state.types.ts +11 -10
  293. package/src/wirings/actor-flow/run-conversation.test.ts +2 -2
  294. package/src/wirings/actor-flow/run-conversation.ts +7 -9
  295. package/src/wirings/{ai-agent/ai-agent-agui.test.ts → agent/agent-agui.test.ts} +126 -105
  296. package/src/wirings/{ai-agent/ai-agent-agui.ts → agent/agent-agui.ts} +7 -7
  297. package/src/wirings/{ai-agent/ai-agent-authorization.test.ts → agent/agent-authorization.test.ts} +6 -6
  298. package/src/wirings/{ai-agent/ai-agent-finalize.test.ts → agent/agent-finalize.test.ts} +17 -16
  299. package/src/wirings/{ai-agent/ai-agent-finalize.ts → agent/agent-finalize.ts} +22 -22
  300. package/src/wirings/{ai-agent/ai-agent-helpers.test.ts → agent/agent-helpers.test.ts} +1 -1
  301. package/src/wirings/{ai-agent/ai-agent-helpers.ts → agent/agent-helpers.ts} +1 -1
  302. package/src/wirings/{ai-agent/ai-agent-interrupt.test.ts → agent/agent-interrupt.test.ts} +67 -77
  303. package/src/wirings/{ai-agent/ai-agent-interrupt.ts → agent/agent-interrupt.ts} +5 -5
  304. package/src/wirings/{ai-agent/ai-agent-memory.test.ts → agent/agent-memory.test.ts} +12 -12
  305. package/src/wirings/{ai-agent/ai-agent-memory.ts → agent/agent-memory.ts} +36 -36
  306. package/src/wirings/{ai-agent/ai-agent-model-config.test.ts → agent/agent-model-config.test.ts} +2 -5
  307. package/src/wirings/{ai-agent/ai-agent-model-config.ts → agent/agent-model-config.ts} +1 -1
  308. package/src/wirings/{ai-agent/ai-agent-prepare.test.ts → agent/agent-prepare.test.ts} +18 -18
  309. package/src/wirings/{ai-agent/ai-agent-prepare.ts → agent/agent-prepare.ts} +54 -51
  310. package/src/wirings/{ai-agent/ai-agent-registry.test.ts → agent/agent-registry.test.ts} +49 -43
  311. package/src/wirings/{ai-agent/ai-agent-registry.ts → agent/agent-registry.ts} +14 -14
  312. package/src/wirings/{ai-agent/ai-agent-resume-authorization.test.ts → agent/agent-resume-authorization.test.ts} +18 -18
  313. package/src/wirings/{ai-agent → agent}/agent-rpc.ts +16 -20
  314. package/src/wirings/{ai-agent/ai-agent-runner.test.ts → agent/agent-runner.test.ts} +105 -106
  315. package/src/wirings/{ai-agent/ai-agent-runner.ts → agent/agent-runner.ts} +90 -80
  316. package/src/wirings/{ai-agent/ai-agent-stream-output-hooks.test.ts → agent/agent-stream-output-hooks.test.ts} +25 -25
  317. package/src/wirings/{ai-agent/ai-agent-stream.test.ts → agent/agent-stream.test.ts} +147 -143
  318. package/src/wirings/{ai-agent/ai-agent-stream.ts → agent/agent-stream.ts} +147 -146
  319. package/src/wirings/{ai-agent/ai-agent-thread-ownership.test.ts → agent/agent-thread-ownership.test.ts} +24 -28
  320. package/src/wirings/{ai-agent/ai-agent-turn.test.ts → agent/agent-turn.test.ts} +3 -5
  321. package/src/wirings/{ai-agent/ai-agent-turn.ts → agent/agent-turn.ts} +7 -7
  322. package/src/wirings/{ai-agent/ai-agent.types.ts → agent/agent.types.ts} +51 -48
  323. package/src/wirings/agent/index.ts +56 -0
  324. package/src/wirings/{ai-agent → agent}/voice-input.test.ts +15 -15
  325. package/src/wirings/{ai-agent → agent}/voice-input.ts +11 -11
  326. package/src/wirings/{ai-agent → agent}/voice-output.test.ts +23 -23
  327. package/src/wirings/{ai-agent → agent}/voice-output.ts +11 -11
  328. package/src/wirings/{ai-scorer/ai-scorer-grade.test.ts → agent-scorer/agent-scorer-grade.test.ts} +8 -8
  329. package/src/wirings/{ai-scorer/ai-scorer-grade.ts → agent-scorer/agent-scorer-grade.ts} +9 -9
  330. package/src/wirings/{ai-scorer/ai-scorer-judge.test.ts → agent-scorer/agent-scorer-judge.test.ts} +11 -14
  331. package/src/wirings/{ai-scorer/ai-scorer-judge.ts → agent-scorer/agent-scorer-judge.ts} +11 -11
  332. package/src/wirings/{ai-scorer/ai-scorer-live.test.ts → agent-scorer/agent-scorer-live.test.ts} +11 -11
  333. package/src/wirings/{ai-scorer/ai-scorer-live.ts → agent-scorer/agent-scorer-live.ts} +3 -3
  334. package/src/wirings/{ai-scorer/ai-scorer-registry.ts → agent-scorer/agent-scorer-registry.ts} +11 -8
  335. package/src/wirings/{ai-scorer/ai-scorer-sampling.test.ts → agent-scorer/agent-scorer-sampling.test.ts} +1 -1
  336. package/src/wirings/{ai-scorer/ai-scorer-snapshots.test.ts → agent-scorer/agent-scorer-snapshots.test.ts} +2 -2
  337. package/src/wirings/{ai-scorer/ai-scorer-snapshots.ts → agent-scorer/agent-scorer-snapshots.ts} +1 -1
  338. package/src/wirings/{ai-scorer/ai-scorer-worker.test.ts → agent-scorer/agent-scorer-worker.test.ts} +15 -15
  339. package/src/wirings/{ai-scorer/ai-scorer-worker.ts → agent-scorer/agent-scorer-worker.ts} +9 -7
  340. package/src/wirings/{ai-scorer/ai-scorer.ts → agent-scorer/agent-scorer.ts} +7 -7
  341. package/src/wirings/{ai-scorer/ai-scorer.types.ts → agent-scorer/agent-scorer.types.ts} +6 -6
  342. package/src/wirings/agent-scorer/index.ts +22 -0
  343. package/src/wirings/channel/channel-rpc.types.ts +2 -2
  344. package/src/wirings/rpc/addon-runner.ts +31 -3
  345. package/src/wirings/rpc/addon-secrets.test.ts +130 -0
  346. package/src/wirings/rpc/rpc-runner.ts +4 -2
  347. package/src/wirings/rpc/rpc-types.ts +5 -1
  348. package/src/wirings/rpc/wire-addon.ts +16 -0
  349. package/src/wirings/virtual-user/prepare-virtual-user-run.ts +1 -1
  350. package/src/wirings/virtual-user/run-virtual-user.test.ts +2 -2
  351. package/src/wirings/virtual-user/run-virtual-user.ts +3 -3
  352. package/src/wirings/virtual-user/virtual-user-agents.ts +1 -1
  353. package/src/wirings/workflow/feature.ts +2 -5
  354. package/src/wirings/workflow/index.ts +1 -49
  355. package/src/wirings/workflow/pikku-scenario-service.ts +21 -1
  356. package/src/wirings/workflow/run-timeline.ts +1 -1
  357. package/src/wirings/workflow/scenario.types.ts +63 -0
  358. package/src/wirings/workflow/workflow.types.ts +1 -54
  359. package/src/wirings-stay-decoupled.test.ts +3 -3
  360. package/tsconfig.tsbuildinfo +1 -1
  361. package/src/wirings/ai-agent/index.ts +0 -65
  362. package/src/wirings/ai-scorer/index.ts +0 -24
  363. /package/src/wirings/{ai-agent/ai-agent-utils.ts → agent/agent-utils.ts} +0 -0
  364. /package/src/wirings/{ai-scorer/ai-scorer-sampling.ts → agent-scorer/agent-scorer-sampling.ts} +0 -0
@@ -43,7 +43,7 @@ export interface HttpPersonasConfig {
43
43
  /**
44
44
  * Default model a persona thinks with when `converse(...)` is called without
45
45
  * an explicit `model`. Its own turns/approvals/evaluation run in-process via
46
- * the configured `aiAgentRunner`.
46
+ * the configured `agentRunner`.
47
47
  */
48
48
  model?: string
49
49
  }
@@ -107,8 +107,8 @@ export class HttpPersona implements ScenarioPersona {
107
107
  }
108
108
 
109
109
  async converse(options: ConverseOptions): Promise<ActorFlowVerdict> {
110
- const { aiAgentRunner } = getSingletonServices()
111
- if (!aiAgentRunner) {
110
+ const { agentRunner } = getSingletonServices()
111
+ if (!agentRunner) {
112
112
  throw new AIProviderNotConfiguredError()
113
113
  }
114
114
  const model = options.model ?? this.config.model
@@ -129,7 +129,7 @@ export class HttpPersona implements ScenarioPersona {
129
129
  approvals: options.approvals,
130
130
  model,
131
131
  maxTurns: options.maxTurns,
132
- llm: (params) => aiAgentRunner.run(params),
132
+ llm: (params) => agentRunner.run(params),
133
133
  target: {
134
134
  run: (message) =>
135
135
  this.agentRun(options.agent, message, threadId, resourceId),
@@ -1,17 +1,17 @@
1
1
  import type {
2
- AIRunStateService,
2
+ AgentRunStateService,
3
3
  CreateRunInput,
4
4
  SaveScoreInput,
5
- } from './ai-run-state-service.js'
5
+ } from './agent-run-state-service.js'
6
6
  import type {
7
7
  AgentRunState,
8
8
  PendingApproval,
9
- } from '../wirings/ai-agent/ai-agent.types.js'
10
- import type { AIRunScore } from '../wirings/ai-scorer/ai-scorer.types.js'
9
+ } from '../wirings/agent/agent.types.js'
10
+ import type { AgentRunScore } from '../wirings/agent-scorer/agent-scorer.types.js'
11
11
 
12
- export class InMemoryAIRunStateService implements AIRunStateService {
12
+ export class InMemoryAgentRunStateService implements AgentRunStateService {
13
13
  private runs = new Map<string, AgentRunState>()
14
- private scores = new Map<string, AIRunScore[]>()
14
+ private scores = new Map<string, AgentRunScore[]>()
15
15
  private counter = 0
16
16
 
17
17
  async createRun(run: CreateRunInput): Promise<string> {
@@ -81,7 +81,7 @@ export class InMemoryAIRunStateService implements AIRunStateService {
81
81
  this.scores.set(score.runId, existing)
82
82
  }
83
83
 
84
- async getScores(runId: string): Promise<AIRunScore[]> {
84
+ async getScores(runId: string): Promise<AgentRunScore[]> {
85
85
  return [...(this.scores.get(runId) ?? [])]
86
86
  }
87
87
  }
@@ -6,9 +6,7 @@ export {
6
6
  createMiddlewareSessionWireProps,
7
7
  } from './user-session-service.js'
8
8
  export { TypedSecretService } from './typed-secret-service.js'
9
- export {
10
- PikkuCredentialWireService,
11
- } from './credential-wire-service.js'
9
+ export { PikkuCredentialWireService } from './credential-wire-service.js'
12
10
  export { TypedVariablesService } from './typed-variables-service.js'
13
11
  export { LocalSecretService } from './local-secrets.js'
14
12
  export { LocalEmailService } from './local-email-service.js'
@@ -22,7 +20,7 @@ export {
22
20
  } from './queue-webhook-service.js'
23
21
  export { InMemoryQueueService } from './in-memory-queue-service.js'
24
22
  export { InMemoryTriggerService } from './in-memory-trigger-service.js'
25
- export { InMemoryAIRunStateService } from './in-memory-ai-run-state-service.js'
23
+ export { InMemoryAgentRunStateService } from './in-memory-agent-run-state-service.js'
26
24
  export { LocalGatewayService } from './local-gateway-service.js'
27
25
  export type {
28
26
  ContentService,
@@ -38,10 +36,8 @@ export type {
38
36
  ScenarioPersona,
39
37
  ResolvedPersona,
40
38
  ScenarioPersonas,
41
- ScenarioHttpResponse,
42
39
  } from './personas-service.js'
43
40
  // knowledge: decisions/internals/the-persona-runtime-is-exported-from-the-persona-entry-point.md
44
- export type { HttpPersonasConfig } from './http-personas.js'
45
41
  export type { JWTService } from './jwt-service.js'
46
42
  export type {
47
43
  EmailService,
@@ -81,36 +77,29 @@ export type {
81
77
  DeploymentInfo,
82
78
  DeploymentServiceConfig,
83
79
  } from './deployment-service.js'
84
- export type { AIStorageService } from './ai-storage-service.js'
80
+ export type { AgentStorageService } from './agent-storage-service.js'
85
81
  export type {
86
- AIAgentRunnerParams,
87
- AIAgentRunnerResult,
88
- AIAgentStepResult,
89
- AIAgentRunnerService,
90
- } from './ai-agent-runner-service.js'
82
+ AgentRunnerParams,
83
+ AgentRunnerResult,
84
+ AgentStepResult,
85
+ AgentRunnerService,
86
+ } from './agent-runner-service.js'
91
87
  export type { AIEmbeddingService } from './ai-embedding-service.js'
92
88
  export type {
93
89
  CreateRunInput,
94
90
  SaveScoreInput,
95
- AIRunStateService,
96
- } from './ai-run-state-service.js'
97
- export type {
98
- CredentialMeta,
99
- } from './typed-secret-service.js'
91
+ AgentRunStateService,
92
+ } from './agent-run-state-service.js'
93
+ export type { CredentialMeta } from './typed-secret-service.js'
100
94
  export type { CredentialService } from './credential-service.js'
101
95
  export { TypedCredentialService } from './typed-credential-service.js'
102
- export type {
103
- CredentialMetaInfo,
104
- } from './typed-credential-service.js'
96
+ export type { CredentialMetaInfo } from './typed-credential-service.js'
105
97
  export type { VariableMeta } from './typed-variables-service.js'
106
98
  export type { MetaService } from './meta-service.js'
107
99
  export type { SessionStore } from './session-store.js'
108
100
  export type { ScopeService, Role } from './scope-service.js'
109
101
  export type { IsSystemRole } from './system-role-guard.js'
110
- export {
111
- NoopAuditService,
112
- createInvocationAudit,
113
- } from './audit-service.js'
102
+ export { NoopAuditService, createInvocationAudit } from './audit-service.js'
114
103
  export type {
115
104
  AuditConfig,
116
105
  AuditDurability,
@@ -13,10 +13,8 @@ import type {
13
13
  MCPToolMeta,
14
14
  MCPPromptMeta,
15
15
  } from '../wirings/mcp/mcp.types.js'
16
- import type {
17
- FeaturesMeta,
18
- WorkflowsMeta,
19
- } from '../wirings/workflow/workflow.types.js'
16
+ import type { WorkflowsMeta } from '../wirings/workflow/workflow.types.js'
17
+ import type { FeaturesMeta } from '../wirings/workflow/scenario.types.js'
20
18
  import type { ResolvedPersona } from './personas-service.js'
21
19
  import type { SystemRoleDefinitionsMeta } from '../wirings/role/role.types.js'
22
20
  import type {
@@ -32,7 +30,7 @@ import type {
32
30
  MiddlewareMetadata,
33
31
  PermissionMetadata,
34
32
  } from '../types/core.types.js'
35
- import type { AIAgentMeta } from '../wirings/ai-agent/ai-agent.types.js'
33
+ import type { AgentsMeta } from '../wirings/agent/agent.types.js'
36
34
  import type { GatewaysMeta } from '../wirings/gateway/gateway.types.js'
37
35
 
38
36
  export type {
@@ -41,8 +39,8 @@ export type {
41
39
  MiddlewareMetadata as MiddlewareMeta,
42
40
  PermissionMetadata as PermissionMeta,
43
41
  }
44
- export type AgentsMeta = AIAgentMeta
45
- export type AgentMeta = AIAgentMeta[string]
42
+ export type { AgentsMeta }
43
+ export type AgentMeta = AgentsMeta[string]
46
44
 
47
45
  export interface MCPMeta {
48
46
  resources: MCPResourceMeta
@@ -1,7 +1,7 @@
1
1
  import { describe, test, before } from 'node:test'
2
2
  import assert from 'node:assert/strict'
3
3
 
4
- import type { AgentRunService } from '../../wirings/ai-agent/ai-agent.types.js'
4
+ import type { AgentRunService } from '../../wirings/agent/agent.types.js'
5
5
  import type { ServiceTestConfig } from '../service-tests.js'
6
6
 
7
7
  /** Conformance suite for `agentRunService`. Runs only when a backend supplies one. */
@@ -16,7 +16,7 @@ export const defineAgentRunServiceTests = (
16
16
  * only runs when a backend supplies both. Passed explicitly rather than
17
17
  * closed over, so the dependency is visible in the signature.
18
18
  */
19
- aiStorageService?: ServiceTestConfig['services']['aiStorageService']
19
+ agentStorageService?: ServiceTestConfig['services']['agentStorageService']
20
20
  ): void => {
21
21
  const factory = agentRunService
22
22
  describe(`AgentRunService [${name}]`, () => {
@@ -31,8 +31,8 @@ export const defineAgentRunServiceTests = (
31
31
  assert.ok(Array.isArray(threads))
32
32
  })
33
33
 
34
- if (aiStorageService) {
35
- const storageFactory = aiStorageService
34
+ if (agentStorageService) {
35
+ const storageFactory = agentStorageService
36
36
 
37
37
  // The `owners` constraint is what keeps the generated thread-management
38
38
  // functions from leaking across tenants: a caller may only list threads
@@ -1,20 +1,20 @@
1
1
  import { describe, test, before } from 'node:test'
2
2
  import assert from 'node:assert/strict'
3
3
 
4
- import type { AIStorageService } from '../../services/ai-storage-service.js'
5
- import type { AIRunStateService } from '../../services/ai-run-state-service.js'
4
+ import type { AgentStorageService } from '../../services/agent-storage-service.js'
5
+ import type { AgentRunStateService } from '../../services/agent-run-state-service.js'
6
6
  import type { ServiceTestConfig } from '../service-tests.js'
7
7
 
8
- /** Conformance suite for `aiStorageService`. Runs only when a backend supplies one. */
8
+ /** Conformance suite for `agentStorageService`. Runs only when a backend supplies one. */
9
9
  export const defineAiStorageServiceTests = (
10
10
  name: string,
11
- aiStorageService: NonNullable<
12
- ServiceTestConfig['services']['aiStorageService']
11
+ agentStorageService: NonNullable<
12
+ ServiceTestConfig['services']['agentStorageService']
13
13
  >
14
14
  ): void => {
15
- const factory = aiStorageService
16
- describe(`AIStorageService [${name}]`, () => {
17
- let storage: AIStorageService & AIRunStateService
15
+ const factory = agentStorageService
16
+ describe(`AgentStorageService [${name}]`, () => {
17
+ let storage: AgentStorageService & AgentRunStateService
18
18
 
19
19
  before(async () => {
20
20
  storage = await factory()
@@ -3,11 +3,11 @@ import type { EventHubStore } from '../wirings/channel/eventhub-store.js'
3
3
  import type { PikkuWorkflowService } from '../wirings/workflow/pikku-workflow-service.js'
4
4
  import type { WorkflowRunService } from '../wirings/workflow/workflow.types.js'
5
5
  import type { DeploymentService } from '../services/deployment-service.js'
6
- import type { AIStorageService } from '../services/ai-storage-service.js'
7
- import type { AIRunStateService } from '../services/ai-run-state-service.js'
6
+ import type { AgentStorageService } from '../services/agent-storage-service.js'
7
+ import type { AgentRunStateService } from '../services/agent-run-state-service.js'
8
8
  import type { SecretService } from '../services/secret-service.js'
9
9
  import type { CredentialService } from '../services/credential-service.js'
10
- import type { AgentRunService } from '../wirings/ai-agent/ai-agent.types.js'
10
+ import type { AgentRunService } from '../wirings/agent/agent.types.js'
11
11
  import type { SessionStore } from '../services/session-store.js'
12
12
 
13
13
  export interface ServiceTestConfig {
@@ -20,7 +20,9 @@ export interface ServiceTestConfig {
20
20
  deploymentService?: () => Promise<
21
21
  DeploymentService & { stop(): Promise<void> }
22
22
  >
23
- aiStorageService?: () => Promise<AIStorageService & AIRunStateService>
23
+ agentStorageService?: () => Promise<
24
+ AgentStorageService & AgentRunStateService
25
+ >
24
26
  agentRunService?: () => Promise<AgentRunService>
25
27
  secretService?: (config: {
26
28
  key: string
@@ -40,7 +42,7 @@ import { defineChannelStoreTests } from './service-tests/channel-store-tests.js'
40
42
  import { defineEventHubStoreTests } from './service-tests/event-hub-store-tests.js'
41
43
  import { defineWorkflowServiceTests } from './service-tests/workflow-service-tests.js'
42
44
  import { defineWorkflowRunServiceTests } from './service-tests/workflow-run-service-tests.js'
43
- import { defineAiStorageServiceTests } from './service-tests/ai-storage-service-tests.js'
45
+ import { defineAiStorageServiceTests } from './service-tests/agent-storage-service-tests.js'
44
46
  import { defineDeploymentServiceTests } from './service-tests/deployment-service-tests.js'
45
47
  import { defineSecretServiceTests } from './service-tests/secret-service-tests.js'
46
48
  import { defineCredentialServiceTests } from './service-tests/credential-service-tests.js'
@@ -68,8 +70,8 @@ export function defineServiceTests(config: ServiceTestConfig): void {
68
70
  if (services.workflowRunService) {
69
71
  defineWorkflowRunServiceTests(name, services.workflowRunService)
70
72
  }
71
- if (services.aiStorageService) {
72
- defineAiStorageServiceTests(name, services.aiStorageService)
73
+ if (services.agentStorageService) {
74
+ defineAiStorageServiceTests(name, services.agentStorageService)
73
75
  }
74
76
  if (services.deploymentService) {
75
77
  defineDeploymentServiceTests(name, services.deploymentService)
@@ -84,7 +86,7 @@ export function defineServiceTests(config: ServiceTestConfig): void {
84
86
  defineAgentRunServiceTests(
85
87
  name,
86
88
  services.agentRunService,
87
- services.aiStorageService
89
+ services.agentStorageService
88
90
  )
89
91
  }
90
92
  if (services.sessionStore) {
@@ -17,11 +17,11 @@ import type { PikkuQueue, QueueService } from '../wirings/queue/queue.types.js'
17
17
  import type { PikkuCLI } from '../wirings/cli/cli.types.js'
18
18
  import type {
19
19
  PikkuWorkflowWire,
20
- PikkuScenarioWire,
21
20
  WorkflowService,
22
21
  WorkflowServiceConfig,
23
22
  WorkflowStepWire,
24
23
  } from '../wirings/workflow/workflow.types.js'
24
+ import type { PikkuScenarioWire } from '../wirings/workflow/scenario.types.js'
25
25
  import type {
26
26
  PikkuBrowserWire,
27
27
  PikkuScenarioStepWire,
@@ -33,19 +33,19 @@ import type { PikkuTrigger } from '../wirings/trigger/trigger.types.js'
33
33
  import type { PikkuGateway } from '../wirings/gateway/gateway.types.js'
34
34
  import type { SchedulerService } from '../services/scheduler-service.js'
35
35
  import type { DeploymentService } from '../services/deployment-service.js'
36
- import type { AIStorageService } from '../services/ai-storage-service.js'
36
+ import type { AgentStorageService } from '../services/agent-storage-service.js'
37
37
 
38
38
  import type { ContentService } from '../services/content-service.js'
39
39
  import type {
40
40
  ScenarioPersonaOf,
41
41
  ScenarioPersonas,
42
42
  } from '../services/personas-service.js'
43
- import type { AIAgentRunnerService } from '../services/ai-agent-runner-service.js'
43
+ import type { AgentRunnerService } from '../services/agent-runner-service.js'
44
44
  import type { AIEmbeddingService } from '../services/ai-embedding-service.js'
45
- import type { AIRunStateService } from '../services/ai-run-state-service.js'
46
- import type { AgentRunService } from '../wirings/ai-agent/ai-agent.types.js'
45
+ import type { AgentRunStateService } from '../services/agent-run-state-service.js'
46
+ import type { AgentRunService } from '../wirings/agent/agent.types.js'
47
47
  import type { VirtualUserRunStore } from '../wirings/virtual-user/virtual-user-run-store.js'
48
- import type { PikkuAIMiddlewareHooks } from '../wirings/ai-agent/ai-agent.types.js'
48
+ import type { PikkuAgentMiddlewareHooks } from '../wirings/agent/agent.types.js'
49
49
  import type { WorkflowRunService } from '../wirings/workflow/workflow.types.js'
50
50
  import type { CredentialService } from '../services/credential-service.js'
51
51
  import type { EmailService } from '../services/email-service.js'
@@ -325,12 +325,12 @@ export interface CoreSingletonServices<Config extends CoreConfig = CoreConfig> {
325
325
  eventHub?: EventHubService<Record<string, any>>
326
326
  schedulerService?: SchedulerService
327
327
  deploymentService?: DeploymentService
328
- aiStorage?: AIStorageService
328
+ agentStorage?: AgentStorageService
329
329
 
330
330
  content?: ContentService
331
- aiAgentRunner?: AIAgentRunnerService
331
+ agentRunner?: AgentRunnerService
332
332
  aiEmbedding?: AIEmbeddingService
333
- aiRunState?: AIRunStateService
333
+ agentRunState?: AgentRunStateService
334
334
  agentRunService?: AgentRunService
335
335
  workflowRunService?: WorkflowRunService
336
336
  credentialService?: CredentialService
@@ -547,14 +547,14 @@ export const pikkuChannelMiddlewareFactory = <In = any>(
547
547
  return factory
548
548
  }
549
549
 
550
- export type { PikkuAIMiddlewareHooks } from '../wirings/ai-agent/ai-agent.types.js'
550
+ export type { PikkuAgentMiddlewareHooks } from '../wirings/agent/agent.types.js'
551
551
 
552
- export const pikkuAIMiddleware = <
552
+ export const pikkuAgentMiddleware = <
553
553
  State extends Record<string, unknown> = Record<string, unknown>,
554
554
  SingletonServices extends CoreSingletonServices = CoreSingletonServices,
555
555
  >(
556
- hooks: PikkuAIMiddlewareHooks<State, SingletonServices>
557
- ): PikkuAIMiddlewareHooks<State, SingletonServices> => hooks
556
+ hooks: PikkuAgentMiddlewareHooks<State, SingletonServices>
557
+ ): PikkuAgentMiddlewareHooks<State, SingletonServices> => hooks
558
558
 
559
559
  export type CoreServices<SingletonServices = CoreSingletonServices> =
560
560
  SingletonServices
@@ -25,14 +25,11 @@ import type {
25
25
  CoreMCPPrompt,
26
26
  MCPPromptMeta,
27
27
  } from '../wirings/mcp/mcp.types.js'
28
+ import type { CoreAgent, AgentsMeta } from '../wirings/agent/agent.types.js'
28
29
  import type {
29
- CoreAIAgent,
30
- AIAgentMeta,
31
- } from '../wirings/ai-agent/ai-agent.types.js'
32
- import type {
33
- PikkuAIScorer,
30
+ PikkuAgentScorer,
34
31
  ScorerMeta,
35
- } from '../wirings/ai-scorer/ai-scorer.types.js'
32
+ } from '../wirings/agent-scorer/agent-scorer.types.js'
36
33
  import type {
37
34
  CoreGateway,
38
35
  GatewaysMeta,
@@ -47,9 +44,9 @@ import type {
47
44
  } from '../wirings/scheduler/scheduler.types.js'
48
45
  import type {
49
46
  CoreWorkflow,
50
- CoreFeature,
51
47
  WorkflowsRuntimeMeta,
52
48
  } from '../wirings/workflow/workflow.types.js'
49
+ import type { CoreFeature } from '../wirings/workflow/scenario.types.js'
53
50
  import type {
54
51
  CoreTrigger,
55
52
  CoreTriggerSource,
@@ -102,6 +99,10 @@ export interface PikkuPackageState {
102
99
  variableOverrides?: Record<string, string>
103
100
  /** Per-instance name-aliases: logical name the addon reads -> actual project credential name */
104
101
  credentialOverrides?: Record<string, string>
102
+ /** Secrets the host lends this instance, named as the addon reads them */
103
+ secretGrants?: string[]
104
+ /** Credentials the host lends this instance, named as the addon reads them */
105
+ credentialGrants?: string[]
105
106
  /** Why this instance gets the whole `SecretService` rather than one scoped to its declared secrets */
106
107
  globalSecrets?: string
107
108
  /** Why this instance gets the whole `CredentialService` rather than one scoped to its declared credentials */
@@ -159,9 +160,9 @@ export interface PikkuPackageState {
159
160
  promptsMeta: MCPPromptMeta
160
161
  }
161
162
  agent: {
162
- agents: Map<string, CoreAIAgent>
163
- agentsMeta: AIAgentMeta
164
- scorers: Map<string, PikkuAIScorer>
163
+ agents: Map<string, CoreAgent>
164
+ agentsMeta: AgentsMeta
165
+ scorers: Map<string, PikkuAgentScorer>
165
166
  scorersMeta: ScorerMeta
166
167
  /** Alias -> `provider/model`, from the `models` table in pikku.config.json. */
167
168
  modelAliases: Record<string, string>
@@ -7,9 +7,9 @@ import type {
7
7
  TargetAgentReply,
8
8
  ActorFlowApprovalPolicy,
9
9
  } from './actor-flow.types.js'
10
- import type { AIAgentStepResult } from '../../services/ai-agent-runner-service.js'
10
+ import type { AgentStepResult } from '../../services/agent-runner-service.js'
11
11
 
12
- const stepResult = (object: unknown): AIAgentStepResult => ({
12
+ const stepResult = (object: unknown): AgentStepResult => ({
13
13
  text: '',
14
14
  object,
15
15
  toolCalls: [],
@@ -5,11 +5,11 @@ import type {
5
5
  TargetPendingApproval,
6
6
  } from './actor-flow.types.js'
7
7
  import type { ResolvedPersona } from '../../services/personas-service.js'
8
- import type { AIMessage } from '../ai-agent/ai-agent.types.js'
8
+ import type { AgentMessage } from '../agent/agent.types.js'
9
9
  import type {
10
- AIAgentRunnerParams,
11
- AIAgentStepResult,
12
- } from '../../services/ai-agent-runner-service.js'
10
+ AgentRunnerParams,
11
+ AgentStepResult,
12
+ } from '../../services/agent-runner-service.js'
13
13
 
14
14
  /** One turn the actor takes: the message to send and whether it's finished. */
15
15
  const ACTOR_TURN_SCHEMA = {
@@ -56,9 +56,7 @@ const DEFAULT_MAX_TURNS = 12
56
56
  const DEFAULT_MAX_APPROVAL_ROUNDS = 16
57
57
 
58
58
  /** The LLM call the actor uses for its own turns/decisions/evaluation. */
59
- export type ActorLLM = (
60
- params: AIAgentRunnerParams
61
- ) => Promise<AIAgentStepResult>
59
+ export type ActorLLM = (params: AgentRunnerParams) => Promise<AgentStepResult>
62
60
 
63
61
  export interface RunConversationParams {
64
62
  /** The person being played — name, job title, personality. */
@@ -85,7 +83,7 @@ export interface RunConversationParams {
85
83
  agentName: string
86
84
  }
87
85
 
88
- function msg(role: AIMessage['role'], content: string): AIMessage {
86
+ function msg(role: AgentMessage['role'], content: string): AgentMessage {
89
87
  return {
90
88
  id: globalThis.crypto.randomUUID(),
91
89
  role,
@@ -221,7 +219,7 @@ export async function runConversation(
221
219
  // Seed a kickoff so the very first actor turn has a non-empty message list
222
220
  // (providers reject an empty prompt). It's an instruction TO the actor, so
223
221
  // it never appears in the transcript.
224
- const actorMessages: AIMessage[] = [
222
+ const actorMessages: AgentMessage[] = [
225
223
  msg(
226
224
  'user',
227
225
  'Begin the conversation now — send your first message to the assistant to work towards your goal.'