@pikku/core 0.12.106 → 0.12.111

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 (589) hide show
  1. package/CHANGELOG.md +358 -0
  2. package/dist/analytics/analytics.d.ts +6 -0
  3. package/dist/analytics/analytics.js +58 -0
  4. package/dist/analytics/analytics.types.d.ts +156 -0
  5. package/dist/analytics/analytics.types.js +1 -0
  6. package/dist/analytics/anonymous-analytics-identity.d.ts +23 -0
  7. package/dist/analytics/anonymous-analytics-identity.js +27 -0
  8. package/dist/analytics/compose-analytics-identity.d.ts +14 -0
  9. package/dist/analytics/compose-analytics-identity.js +33 -0
  10. package/dist/analytics/cookie-analytics-identity.d.ts +24 -0
  11. package/dist/analytics/cookie-analytics-identity.js +37 -0
  12. package/dist/analytics/define-analytics-events.d.ts +22 -0
  13. package/dist/analytics/define-analytics-events.js +9 -0
  14. package/dist/analytics/fan-out-analytics.d.ts +15 -0
  15. package/dist/analytics/fan-out-analytics.js +36 -0
  16. package/dist/analytics/index.d.ts +13 -0
  17. package/dist/analytics/index.js +8 -0
  18. package/dist/analytics/logger-analytics-service.d.ts +14 -0
  19. package/dist/analytics/logger-analytics-service.js +23 -0
  20. package/dist/analytics/mint-cookie.d.ts +44 -0
  21. package/dist/analytics/mint-cookie.js +55 -0
  22. package/dist/errors/errors.d.ts +7 -0
  23. package/dist/errors/errors.js +17 -0
  24. package/dist/function/function-meta.types.d.ts +2 -0
  25. package/dist/function/function-runner.js +29 -0
  26. package/dist/function/functions.types.d.ts +22 -3
  27. package/dist/middleware/auth-apikey.d.ts +1 -1
  28. package/dist/pikku-state.d.ts +1 -1
  29. package/dist/scopes.d.ts +11 -0
  30. package/dist/scopes.js +17 -0
  31. package/dist/services/credential-wire-service.d.ts +1 -1
  32. package/dist/services/feature-flag-service.d.ts +100 -0
  33. package/dist/services/feature-flag-service.js +1 -0
  34. package/dist/services/index.d.ts +1 -0
  35. package/dist/services/meta-service.d.ts +16 -0
  36. package/dist/services/meta-service.js +19 -0
  37. package/dist/services/webhook-service.d.ts +7 -2
  38. package/dist/services/webhook-service.js +11 -6
  39. package/dist/testing/service-tests/agent-run-service-tests.d.ts +2 -2
  40. package/dist/testing/service-tests/agent-storage-service-tests.d.ts +1 -1
  41. package/dist/testing/service-tests/channel-store-tests.d.ts +1 -1
  42. package/dist/testing/service-tests/credential-service-tests.d.ts +1 -1
  43. package/dist/testing/service-tests/deployment-service-tests.d.ts +1 -1
  44. package/dist/testing/service-tests/event-hub-store-tests.d.ts +1 -1
  45. package/dist/testing/service-tests/secret-service-tests.d.ts +1 -1
  46. package/dist/testing/service-tests/session-store-tests.d.ts +1 -1
  47. package/dist/testing/service-tests/workflow-run-service-tests.d.ts +1 -1
  48. package/dist/testing/service-tests/workflow-service-tests.d.ts +1 -1
  49. package/dist/types/core.types.d.ts +23 -0
  50. package/dist/wirings/agent/agent-rpc.d.ts +1 -1
  51. package/dist/wirings/agent/agent-turn.d.ts +1 -1
  52. package/dist/wirings/agent-scorer/agent-scorer-live.d.ts +1 -1
  53. package/dist/wirings/channel/channel-common.d.ts +1 -1
  54. package/dist/wirings/channel/channel-rpc-validators.d.ts +2 -2
  55. package/dist/wirings/channel/channel-runner.d.ts +1 -1
  56. package/dist/wirings/channel/local/local-channel-runner.d.ts +1 -1
  57. package/dist/wirings/channel/serverless/serverless-channel-runner.d.ts +1 -1
  58. package/dist/wirings/cli/channel/cli-approval.d.ts +2 -2
  59. package/dist/wirings/flag/assert-feature-available.d.ts +15 -0
  60. package/dist/wirings/flag/assert-feature-available.js +23 -0
  61. package/dist/wirings/flag/cached-flag-source.d.ts +73 -0
  62. package/dist/wirings/flag/cached-flag-source.js +96 -0
  63. package/dist/wirings/flag/define-feature-flags.d.ts +33 -0
  64. package/dist/wirings/flag/define-feature-flags.js +32 -0
  65. package/dist/wirings/flag/flag.types.d.ts +97 -0
  66. package/dist/wirings/flag/flag.types.js +1 -0
  67. package/dist/wirings/flag/index.d.ts +7 -0
  68. package/dist/wirings/flag/index.js +5 -0
  69. package/dist/wirings/flag/resolve-flag.d.ts +52 -0
  70. package/dist/wirings/flag/resolve-flag.js +90 -0
  71. package/dist/wirings/flag/validate-flag-definitions.d.ts +26 -0
  72. package/dist/wirings/flag/validate-flag-definitions.js +103 -0
  73. package/dist/wirings/rpc/rpc-runner.js +3 -0
  74. package/dist/wirings/virtual-user/virtual-user-scaffold.d.ts +8 -8
  75. package/dist/wirings/virtual-user/virtual-user-schedule.d.ts +1 -1
  76. package/dist/wirings/workflow/workflow-queue-routing.d.ts +1 -1
  77. package/package.json +11 -5
  78. package/run-tests.sh +17 -9
  79. package/src/public-surface.json +26 -0
  80. package/src/agent-naming.test.ts +0 -68
  81. package/src/api-report.test.ts +0 -138
  82. package/src/app-alias-surface.test.ts +0 -179
  83. package/src/app-leaf-surface.test.ts +0 -222
  84. package/src/bootstrap-compat/root.ts +0 -20
  85. package/src/classification/column-form.test.ts +0 -97
  86. package/src/classification/column-form.ts +0 -55
  87. package/src/classification/data-classification.ts +0 -73
  88. package/src/classification/index.ts +0 -40
  89. package/src/classification/key-ids.ts +0 -2
  90. package/src/classification/secret-value.test.ts +0 -204
  91. package/src/classification/secret-value.ts +0 -106
  92. package/src/crypto-utils.test.ts +0 -668
  93. package/src/crypto-utils.ts +0 -460
  94. package/src/dev/hot-reload.test.ts +0 -587
  95. package/src/dev/hot-reload.ts +0 -225
  96. package/src/dev/module-runner.test.ts +0 -235
  97. package/src/dev/module-runner.ts +0 -138
  98. package/src/dev/reload-meta.test.ts +0 -183
  99. package/src/dev/reload-meta.ts +0 -144
  100. package/src/ecosystem-tier-removed.test.ts +0 -72
  101. package/src/env.ts +0 -1
  102. package/src/errors/error-handler.ts +0 -77
  103. package/src/errors/error.test.ts +0 -229
  104. package/src/errors/errors.ts +0 -393
  105. package/src/errors/index.ts +0 -11
  106. package/src/errors/serialized-error.ts +0 -12
  107. package/src/factory-functions.test.ts +0 -111
  108. package/src/function/abort-scope.test.ts +0 -97
  109. package/src/function/abort-scope.ts +0 -80
  110. package/src/function/function-meta.types.ts +0 -151
  111. package/src/function/function-runner.test.ts +0 -1619
  112. package/src/function/function-runner.ts +0 -499
  113. package/src/function/functions.types.ts +0 -319
  114. package/src/function/index.ts +0 -40
  115. package/src/function/list.types.test.ts +0 -100
  116. package/src/function/list.types.ts +0 -69
  117. package/src/function/pikku-request.test.ts +0 -35
  118. package/src/function/pikku-request.ts +0 -17
  119. package/src/gopass-secrets-removed.test.ts +0 -51
  120. package/src/handle-error.test.ts +0 -532
  121. package/src/handle-error.ts +0 -64
  122. package/src/middleware/auth-apikey.test.ts +0 -362
  123. package/src/middleware/auth-apikey.ts +0 -39
  124. package/src/middleware/auth-bearer.test.ts +0 -566
  125. package/src/middleware/auth-bearer.ts +0 -83
  126. package/src/middleware/auth-cookie.test.ts +0 -572
  127. package/src/middleware/auth-cookie.ts +0 -107
  128. package/src/middleware/cors.test.ts +0 -579
  129. package/src/middleware/cors.ts +0 -103
  130. package/src/middleware/index.ts +0 -30
  131. package/src/middleware/middleware-factories.ts +0 -76
  132. package/src/middleware/middleware.types.ts +0 -61
  133. package/src/middleware/remote-auth.test.ts +0 -547
  134. package/src/middleware/remote-auth.ts +0 -95
  135. package/src/middleware/remote-jobs-secret.ts +0 -35
  136. package/src/middleware/require-origin.test.ts +0 -115
  137. package/src/middleware/require-origin.ts +0 -79
  138. package/src/middleware/telemetry.ts +0 -83
  139. package/src/middleware-runner.test.ts +0 -578
  140. package/src/middleware-runner.ts +0 -232
  141. package/src/no-any-casts.test.ts +0 -57
  142. package/src/no-root-barrel.test.ts +0 -122
  143. package/src/permissions.test.ts +0 -256
  144. package/src/permissions.ts +0 -217
  145. package/src/pikku-state.test.ts +0 -198
  146. package/src/pikku-state.ts +0 -206
  147. package/src/production-barrels-stay-lean.test.ts +0 -110
  148. package/src/public-surface.test.ts +0 -133
  149. package/src/remote.test.ts +0 -173
  150. package/src/remote.ts +0 -56
  151. package/src/removed-legacy-exports.test.ts +0 -66
  152. package/src/run-tests-script.test.ts +0 -67
  153. package/src/schema.test.ts +0 -430
  154. package/src/schema.ts +0 -204
  155. package/src/scopes.test.ts +0 -203
  156. package/src/scopes.ts +0 -67
  157. package/src/services/agent-run-state-service.ts +0 -37
  158. package/src/services/agent-runner-service.ts +0 -238
  159. package/src/services/agent-storage-service.ts +0 -39
  160. package/src/services/ai-embedding-service.ts +0 -9
  161. package/src/services/audit-service.test.ts +0 -44
  162. package/src/services/audit-service.ts +0 -280
  163. package/src/services/content-service.ts +0 -65
  164. package/src/services/credential-service.ts +0 -20
  165. package/src/services/credential-wire-service.test.ts +0 -235
  166. package/src/services/credential-wire-service.ts +0 -120
  167. package/src/services/deployment-service.ts +0 -32
  168. package/src/services/email-service.test.ts +0 -100
  169. package/src/services/email-service.ts +0 -60
  170. package/src/services/email-template.test.ts +0 -311
  171. package/src/services/email-template.ts +0 -254
  172. package/src/services/file-scenario-run-store.test.ts +0 -349
  173. package/src/services/file-scenario-run-store.ts +0 -282
  174. package/src/services/gateway-service.ts +0 -5
  175. package/src/services/http-personas-converse.test.ts +0 -274
  176. package/src/services/http-personas.test.ts +0 -379
  177. package/src/services/http-personas.ts +0 -508
  178. package/src/services/in-memory-agent-run-state-service.ts +0 -87
  179. package/src/services/in-memory-queue-service.test.ts +0 -162
  180. package/src/services/in-memory-queue-service.ts +0 -78
  181. package/src/services/in-memory-session-store.test.ts +0 -58
  182. package/src/services/in-memory-session-store.ts +0 -20
  183. package/src/services/in-memory-trigger-service.ts +0 -47
  184. package/src/services/in-memory-workflow-service.test.ts +0 -430
  185. package/src/services/in-memory-workflow-service.ts +0 -595
  186. package/src/services/index.ts +0 -192
  187. package/src/services/istanbul-coverage-service.test.ts +0 -66
  188. package/src/services/istanbul-coverage-service.ts +0 -59
  189. package/src/services/jwt-service.ts +0 -15
  190. package/src/services/local-content-request-handler.test.ts +0 -240
  191. package/src/services/local-content-request-handler.ts +0 -295
  192. package/src/services/local-content.test.ts +0 -186
  193. package/src/services/local-content.ts +0 -242
  194. package/src/services/local-credential-service.ts +0 -63
  195. package/src/services/local-email-service.test.ts +0 -182
  196. package/src/services/local-email-service.ts +0 -43
  197. package/src/services/local-gateway-service.ts +0 -51
  198. package/src/services/local-secrets.test.ts +0 -95
  199. package/src/services/local-secrets.ts +0 -71
  200. package/src/services/local-variables.test.ts +0 -61
  201. package/src/services/local-variables.ts +0 -45
  202. package/src/services/logger-console.test.ts +0 -117
  203. package/src/services/logger-console.ts +0 -174
  204. package/src/services/logger.ts +0 -48
  205. package/src/services/meta-service.test.ts +0 -75
  206. package/src/services/meta-service.ts +0 -767
  207. package/src/services/persona-actor-secret.test.ts +0 -68
  208. package/src/services/persona-actor-secret.ts +0 -70
  209. package/src/services/persona-sign-in.test.ts +0 -219
  210. package/src/services/persona-sign-in.ts +0 -238
  211. package/src/services/personas-service.ts +0 -191
  212. package/src/services/pikku-user-id.test.ts +0 -62
  213. package/src/services/pikku-user-id.ts +0 -13
  214. package/src/services/queue-webhook-service.test.ts +0 -409
  215. package/src/services/queue-webhook-service.ts +0 -150
  216. package/src/services/remote-jobs.test.ts +0 -106
  217. package/src/services/remote-jobs.ts +0 -92
  218. package/src/services/scheduler-service.ts +0 -37
  219. package/src/services/schema-service.ts +0 -10
  220. package/src/services/scope-service.ts +0 -91
  221. package/src/services/scoped-credential-service.test.ts +0 -86
  222. package/src/services/scoped-credential-service.ts +0 -63
  223. package/src/services/scoped-secret-service.test.ts +0 -93
  224. package/src/services/scoped-secret-service.ts +0 -40
  225. package/src/services/secret-host-binding.test.ts +0 -138
  226. package/src/services/secret-host-binding.ts +0 -51
  227. package/src/services/secret-service.ts +0 -25
  228. package/src/services/secretless.test.ts +0 -54
  229. package/src/services/secretless.ts +0 -29
  230. package/src/services/session-store.ts +0 -9
  231. package/src/services/stub-tracker.test.ts +0 -104
  232. package/src/services/stub-tracker.ts +0 -175
  233. package/src/services/system-role-guard.test.ts +0 -96
  234. package/src/services/system-role-guard.ts +0 -71
  235. package/src/services/temporary-file-service.ts +0 -76
  236. package/src/services/trigger-service.ts +0 -5
  237. package/src/services/typed-credential-service.ts +0 -83
  238. package/src/services/typed-secret-service.test.ts +0 -204
  239. package/src/services/typed-secret-service.ts +0 -132
  240. package/src/services/typed-variables-service.test.ts +0 -166
  241. package/src/services/typed-variables-service.ts +0 -166
  242. package/src/services/user-session-service.test.ts +0 -147
  243. package/src/services/user-session-service.ts +0 -85
  244. package/src/services/v8-coverage-service.test.ts +0 -69
  245. package/src/services/v8-coverage-service.ts +0 -163
  246. package/src/services/variables-service.ts +0 -13
  247. package/src/services/webhook-service.ts +0 -147
  248. package/src/services/workflow-service.ts +0 -120
  249. package/src/side-effects-are-declared.test.ts +0 -84
  250. package/src/source-files-stay-composable.test.ts +0 -41
  251. package/src/template-alias-surface.test.ts +0 -240
  252. package/src/test-utils.ts +0 -38
  253. package/src/testing/index.ts +0 -3
  254. package/src/testing/service-tests/agent-run-service-tests.ts +0 -98
  255. package/src/testing/service-tests/agent-storage-service-tests.ts +0 -379
  256. package/src/testing/service-tests/channel-store-tests.ts +0 -98
  257. package/src/testing/service-tests/credential-service-tests.ts +0 -143
  258. package/src/testing/service-tests/deployment-service-tests.ts +0 -33
  259. package/src/testing/service-tests/event-hub-store-tests.ts +0 -48
  260. package/src/testing/service-tests/secret-service-tests.ts +0 -105
  261. package/src/testing/service-tests/session-store-tests.ts +0 -62
  262. package/src/testing/service-tests/workflow-run-service-tests.ts +0 -59
  263. package/src/testing/service-tests/workflow-service-tests.ts +0 -308
  264. package/src/testing/service-tests.ts +0 -95
  265. package/src/time-utils.test.ts +0 -56
  266. package/src/time-utils.ts +0 -89
  267. package/src/types/core.types.ts +0 -446
  268. package/src/types/index.ts +0 -25
  269. package/src/types/state.types.ts +0 -226
  270. package/src/types/typed-credentials.test.ts +0 -72
  271. package/src/utils/hash.test.ts +0 -68
  272. package/src/utils/hash.ts +0 -26
  273. package/src/utils/hmac.ts +0 -21
  274. package/src/utils/node-host-resolver.ts +0 -20
  275. package/src/utils/safe-fetch.test.ts +0 -515
  276. package/src/utils/safe-fetch.ts +0 -347
  277. package/src/utils.test.ts +0 -359
  278. package/src/utils.ts +0 -165
  279. package/src/version.test.ts +0 -80
  280. package/src/version.ts +0 -25
  281. package/src/wirings/actor-flow/actor-flow.types.ts +0 -40
  282. package/src/wirings/actor-flow/index.ts +0 -10
  283. package/src/wirings/actor-flow/run-conversation.test.ts +0 -187
  284. package/src/wirings/actor-flow/run-conversation.ts +0 -280
  285. package/src/wirings/addon/addon-auth-tags.test.ts +0 -219
  286. package/src/wirings/addon/addon-runner.ts +0 -236
  287. package/src/wirings/addon/addon-scopes.test.ts +0 -225
  288. package/src/wirings/addon/addon-secrets.test.ts +0 -391
  289. package/src/wirings/addon/index.ts +0 -12
  290. package/src/wirings/addon/remote-addon-auth.ts +0 -65
  291. package/src/wirings/addon/wire-addon.test.ts +0 -102
  292. package/src/wirings/addon/wire-addon.ts +0 -202
  293. package/src/wirings/addon/wire-remote-addon.ts +0 -41
  294. package/src/wirings/agent/agent-agui.test.ts +0 -1213
  295. package/src/wirings/agent/agent-agui.ts +0 -405
  296. package/src/wirings/agent/agent-authorization.test.ts +0 -208
  297. package/src/wirings/agent/agent-finalize.test.ts +0 -187
  298. package/src/wirings/agent/agent-finalize.ts +0 -197
  299. package/src/wirings/agent/agent-helpers.test.ts +0 -215
  300. package/src/wirings/agent/agent-helpers.ts +0 -96
  301. package/src/wirings/agent/agent-interrupt.test.ts +0 -833
  302. package/src/wirings/agent/agent-interrupt.ts +0 -400
  303. package/src/wirings/agent/agent-memory.test.ts +0 -397
  304. package/src/wirings/agent/agent-memory.ts +0 -496
  305. package/src/wirings/agent/agent-middleware.types.test.ts +0 -41
  306. package/src/wirings/agent/agent-model-config.test.ts +0 -103
  307. package/src/wirings/agent/agent-model-config.ts +0 -59
  308. package/src/wirings/agent/agent-prepare.test.ts +0 -977
  309. package/src/wirings/agent/agent-prepare.ts +0 -1083
  310. package/src/wirings/agent/agent-registry.test.ts +0 -455
  311. package/src/wirings/agent/agent-registry.ts +0 -99
  312. package/src/wirings/agent/agent-resume-authorization.test.ts +0 -206
  313. package/src/wirings/agent/agent-rpc.ts +0 -116
  314. package/src/wirings/agent/agent-runner.test.ts +0 -1229
  315. package/src/wirings/agent/agent-runner.ts +0 -858
  316. package/src/wirings/agent/agent-stream-delegate.test.ts +0 -381
  317. package/src/wirings/agent/agent-stream-output-hooks.test.ts +0 -353
  318. package/src/wirings/agent/agent-stream.test.ts +0 -1800
  319. package/src/wirings/agent/agent-stream.ts +0 -1639
  320. package/src/wirings/agent/agent-thread-ownership.test.ts +0 -297
  321. package/src/wirings/agent/agent-turn.test.ts +0 -65
  322. package/src/wirings/agent/agent-turn.ts +0 -122
  323. package/src/wirings/agent/agent-utils.ts +0 -20
  324. package/src/wirings/agent/agent.types.ts +0 -676
  325. package/src/wirings/agent/index.ts +0 -58
  326. package/src/wirings/agent/voice-input.test.ts +0 -220
  327. package/src/wirings/agent/voice-input.ts +0 -180
  328. package/src/wirings/agent/voice-output.test.ts +0 -510
  329. package/src/wirings/agent/voice-output.ts +0 -311
  330. package/src/wirings/agent-scorer/agent-scorer-grade.test.ts +0 -106
  331. package/src/wirings/agent-scorer/agent-scorer-grade.ts +0 -55
  332. package/src/wirings/agent-scorer/agent-scorer-judge.test.ts +0 -285
  333. package/src/wirings/agent-scorer/agent-scorer-judge.ts +0 -180
  334. package/src/wirings/agent-scorer/agent-scorer-live.test.ts +0 -174
  335. package/src/wirings/agent-scorer/agent-scorer-live.ts +0 -56
  336. package/src/wirings/agent-scorer/agent-scorer-registry.ts +0 -66
  337. package/src/wirings/agent-scorer/agent-scorer-sampling.test.ts +0 -34
  338. package/src/wirings/agent-scorer/agent-scorer-sampling.ts +0 -36
  339. package/src/wirings/agent-scorer/agent-scorer-snapshots.test.ts +0 -49
  340. package/src/wirings/agent-scorer/agent-scorer-snapshots.ts +0 -46
  341. package/src/wirings/agent-scorer/agent-scorer-worker.test.ts +0 -122
  342. package/src/wirings/agent-scorer/agent-scorer-worker.ts +0 -71
  343. package/src/wirings/agent-scorer/agent-scorer.ts +0 -102
  344. package/src/wirings/agent-scorer/agent-scorer.types.ts +0 -128
  345. package/src/wirings/agent-scorer/index.ts +0 -23
  346. package/src/wirings/channel/channel-common.ts +0 -102
  347. package/src/wirings/channel/channel-handler-shapes.test.ts +0 -72
  348. package/src/wirings/channel/channel-handler.test.ts +0 -322
  349. package/src/wirings/channel/channel-handler.ts +0 -259
  350. package/src/wirings/channel/channel-host-rpc.test.ts +0 -150
  351. package/src/wirings/channel/channel-host-rpc.ts +0 -69
  352. package/src/wirings/channel/channel-middleware-runner.test.ts +0 -188
  353. package/src/wirings/channel/channel-middleware-runner.ts +0 -126
  354. package/src/wirings/channel/channel-rpc-registry.ts +0 -116
  355. package/src/wirings/channel/channel-rpc-responder.ts +0 -117
  356. package/src/wirings/channel/channel-rpc-service.ts +0 -132
  357. package/src/wirings/channel/channel-rpc-validators.ts +0 -65
  358. package/src/wirings/channel/channel-rpc.test.ts +0 -841
  359. package/src/wirings/channel/channel-rpc.ts +0 -5
  360. package/src/wirings/channel/channel-rpc.types.ts +0 -160
  361. package/src/wirings/channel/channel-runner.ts +0 -164
  362. package/src/wirings/channel/channel-store.ts +0 -35
  363. package/src/wirings/channel/channel.types.ts +0 -193
  364. package/src/wirings/channel/define-channel-routes.ts +0 -5
  365. package/src/wirings/channel/eventhub-service.ts +0 -16
  366. package/src/wirings/channel/eventhub-store.ts +0 -13
  367. package/src/wirings/channel/index.ts +0 -40
  368. package/src/wirings/channel/local/index.ts +0 -3
  369. package/src/wirings/channel/local/local-channel-handler.ts +0 -98
  370. package/src/wirings/channel/local/local-channel-runner.test.ts +0 -339
  371. package/src/wirings/channel/local/local-channel-runner.ts +0 -271
  372. package/src/wirings/channel/local/local-eventhub-service.test.ts +0 -77
  373. package/src/wirings/channel/local/local-eventhub-service.ts +0 -69
  374. package/src/wirings/channel/log-channels.ts +0 -16
  375. package/src/wirings/channel/pikku-abstract-channel-handler.test.ts +0 -135
  376. package/src/wirings/channel/pikku-abstract-channel-handler.ts +0 -60
  377. package/src/wirings/channel/serverless/index.ts +0 -6
  378. package/src/wirings/channel/serverless/serverless-channel-runner.ts +0 -328
  379. package/src/wirings/cli/channel/cli-approval.test.ts +0 -177
  380. package/src/wirings/cli/channel/cli-approval.ts +0 -135
  381. package/src/wirings/cli/channel/cli-channel-runner.ts +0 -118
  382. package/src/wirings/cli/channel/cli-raw-channel-runner.test.ts +0 -192
  383. package/src/wirings/cli/channel/cli-raw-channel-runner.ts +0 -148
  384. package/src/wirings/cli/channel/cli-raw-client-runner.test.ts +0 -480
  385. package/src/wirings/cli/channel/cli-raw-client-runner.ts +0 -188
  386. package/src/wirings/cli/channel/index.ts +0 -6
  387. package/src/wirings/cli/cli-runner.test.ts +0 -969
  388. package/src/wirings/cli/cli-runner.ts +0 -538
  389. package/src/wirings/cli/cli.types.ts +0 -388
  390. package/src/wirings/cli/command-parser.test.ts +0 -1120
  391. package/src/wirings/cli/command-parser.ts +0 -713
  392. package/src/wirings/cli/define-cli-commands.ts +0 -13
  393. package/src/wirings/cli/format-cli-error.test.ts +0 -91
  394. package/src/wirings/cli/format-cli-error.ts +0 -96
  395. package/src/wirings/cli/index.ts +0 -19
  396. package/src/wirings/credential/credential.types.ts +0 -37
  397. package/src/wirings/credential/define-credential.ts +0 -49
  398. package/src/wirings/credential/index.ts +0 -7
  399. package/src/wirings/credential/validate-credential-definitions.ts +0 -63
  400. package/src/wirings/gateway/gateway-authorization.test.ts +0 -575
  401. package/src/wirings/gateway/gateway-channel-meta.test.ts +0 -44
  402. package/src/wirings/gateway/gateway-runner.test.ts +0 -581
  403. package/src/wirings/gateway/gateway-runner.ts +0 -411
  404. package/src/wirings/gateway/gateway.types.ts +0 -137
  405. package/src/wirings/gateway/index.ts +0 -15
  406. package/src/wirings/http/http-routes.test.ts +0 -318
  407. package/src/wirings/http/http-routes.ts +0 -111
  408. package/src/wirings/http/http-runner-addon-ref.test.ts +0 -238
  409. package/src/wirings/http/http-runner.test.ts +0 -503
  410. package/src/wirings/http/http-runner.ts +0 -462
  411. package/src/wirings/http/http.types.ts +0 -307
  412. package/src/wirings/http/index.ts +0 -27
  413. package/src/wirings/http/log-http-routes.ts +0 -18
  414. package/src/wirings/http/pikku-fetch-http-request.test.ts +0 -318
  415. package/src/wirings/http/pikku-fetch-http-request.ts +0 -260
  416. package/src/wirings/http/pikku-fetch-http-response.test.ts +0 -123
  417. package/src/wirings/http/pikku-fetch-http-response.ts +0 -149
  418. package/src/wirings/http/routers/http-router.ts +0 -13
  419. package/src/wirings/http/routers/path-to-regex.test.ts +0 -306
  420. package/src/wirings/http/routers/path-to-regex.ts +0 -115
  421. package/src/wirings/http/web-request.test.ts +0 -382
  422. package/src/wirings/http/web-request.ts +0 -162
  423. package/src/wirings/mcp/index.ts +0 -26
  424. package/src/wirings/mcp/mcp-endpoint-registry.test.ts +0 -388
  425. package/src/wirings/mcp/mcp-endpoint-registry.ts +0 -159
  426. package/src/wirings/mcp/mcp-runner.test.ts +0 -588
  427. package/src/wirings/mcp/mcp-runner.ts +0 -330
  428. package/src/wirings/mcp/mcp.types.ts +0 -199
  429. package/src/wirings/node/index.ts +0 -2
  430. package/src/wirings/node/node.types.ts +0 -23
  431. package/src/wirings/oauth2/index.ts +0 -1
  432. package/src/wirings/oauth2/oauth2.types.ts +0 -12
  433. package/src/wirings/persona/define-personas.ts +0 -33
  434. package/src/wirings/persona/index.ts +0 -75
  435. package/src/wirings/persona/persona-app-scopes.test.ts +0 -47
  436. package/src/wirings/persona/persona-app-scopes.ts +0 -74
  437. package/src/wirings/persona/persona-email.ts +0 -87
  438. package/src/wirings/persona/persona-environments.test.ts +0 -194
  439. package/src/wirings/persona/persona-environments.ts +0 -138
  440. package/src/wirings/persona/persona-mailbox.ts +0 -156
  441. package/src/wirings/persona/persona.test.ts +0 -230
  442. package/src/wirings/persona/persona.types.ts +0 -156
  443. package/src/wirings/persona/validate-personas.ts +0 -137
  444. package/src/wirings/queue/index.ts +0 -29
  445. package/src/wirings/queue/queue-identity.test.ts +0 -454
  446. package/src/wirings/queue/queue-identity.ts +0 -176
  447. package/src/wirings/queue/queue-runner.test.ts +0 -705
  448. package/src/wirings/queue/queue-runner.ts +0 -181
  449. package/src/wirings/queue/queue.types.ts +0 -161
  450. package/src/wirings/queue/register-queue-helper.ts +0 -46
  451. package/src/wirings/queue/signed-queue-service.ts +0 -60
  452. package/src/wirings/queue/validate-worker-config.test.ts +0 -108
  453. package/src/wirings/queue/validate-worker-config.ts +0 -90
  454. package/src/wirings/role/define-system-role.ts +0 -33
  455. package/src/wirings/role/index.ts +0 -13
  456. package/src/wirings/role/role.test.ts +0 -104
  457. package/src/wirings/role/role.types.ts +0 -47
  458. package/src/wirings/role/validate-role-definitions.ts +0 -93
  459. package/src/wirings/rpc/index.ts +0 -8
  460. package/src/wirings/rpc/rpc-runner.test.ts +0 -1130
  461. package/src/wirings/rpc/rpc-runner.ts +0 -566
  462. package/src/wirings/rpc/rpc-types.ts +0 -87
  463. package/src/wirings/scheduler/index.ts +0 -11
  464. package/src/wirings/scheduler/log-schedulers.ts +0 -16
  465. package/src/wirings/scheduler/scheduler-runner.test.ts +0 -835
  466. package/src/wirings/scheduler/scheduler-runner.ts +0 -138
  467. package/src/wirings/scheduler/scheduler.types.ts +0 -42
  468. package/src/wirings/scope/define-scope.ts +0 -33
  469. package/src/wirings/scope/index.ts +0 -15
  470. package/src/wirings/scope/scope.test.ts +0 -159
  471. package/src/wirings/scope/scope.types.ts +0 -42
  472. package/src/wirings/scope/validate-scope-definitions.ts +0 -107
  473. package/src/wirings/secret/index.ts +0 -9
  474. package/src/wirings/secret/secret.types.ts +0 -70
  475. package/src/wirings/secret/validate-secret-definitions.test.ts +0 -232
  476. package/src/wirings/secret/validate-secret-definitions.ts +0 -88
  477. package/src/wirings/trigger/index.ts +0 -9
  478. package/src/wirings/trigger/pikku-trigger-service.ts +0 -107
  479. package/src/wirings/trigger/trigger-runner.test.ts +0 -78
  480. package/src/wirings/trigger/trigger-runner.ts +0 -113
  481. package/src/wirings/trigger/trigger.types.ts +0 -100
  482. package/src/wirings/variable/index.ts +0 -8
  483. package/src/wirings/variable/validate-variable-definitions.test.ts +0 -115
  484. package/src/wirings/variable/validate-variable-definitions.ts +0 -71
  485. package/src/wirings/variable/variable.types.ts +0 -40
  486. package/src/wirings/virtual-user/index.ts +0 -107
  487. package/src/wirings/virtual-user/prepare-virtual-user-run.test.ts +0 -115
  488. package/src/wirings/virtual-user/prepare-virtual-user-run.ts +0 -95
  489. package/src/wirings/virtual-user/run-virtual-user.test.ts +0 -774
  490. package/src/wirings/virtual-user/run-virtual-user.ts +0 -684
  491. package/src/wirings/virtual-user/virtual-user-agents.test.ts +0 -72
  492. package/src/wirings/virtual-user/virtual-user-agents.ts +0 -62
  493. package/src/wirings/virtual-user/virtual-user-catalogue.test.ts +0 -215
  494. package/src/wirings/virtual-user/virtual-user-catalogue.ts +0 -184
  495. package/src/wirings/virtual-user/virtual-user-derive.test.ts +0 -426
  496. package/src/wirings/virtual-user/virtual-user-derive.ts +0 -161
  497. package/src/wirings/virtual-user/virtual-user-dispositions.test.ts +0 -68
  498. package/src/wirings/virtual-user/virtual-user-dispositions.ts +0 -210
  499. package/src/wirings/virtual-user/virtual-user-intents.test.ts +0 -218
  500. package/src/wirings/virtual-user/virtual-user-intents.ts +0 -185
  501. package/src/wirings/virtual-user/virtual-user-rng.test.ts +0 -72
  502. package/src/wirings/virtual-user/virtual-user-rng.ts +0 -50
  503. package/src/wirings/virtual-user/virtual-user-run-store.ts +0 -131
  504. package/src/wirings/virtual-user/virtual-user-scaffold.test.ts +0 -854
  505. package/src/wirings/virtual-user/virtual-user-scaffold.ts +0 -664
  506. package/src/wirings/virtual-user/virtual-user-schedule-store.ts +0 -93
  507. package/src/wirings/virtual-user/virtual-user-schedule.test.ts +0 -280
  508. package/src/wirings/virtual-user/virtual-user-schedule.ts +0 -156
  509. package/src/wirings/virtual-user/virtual-user-target.ts +0 -47
  510. package/src/wirings/virtual-user/virtual-user.types.ts +0 -215
  511. package/src/wirings/workflow/dsl/workflow-dsl.types.ts +0 -709
  512. package/src/wirings/workflow/dsl/workflow-runner.ts +0 -25
  513. package/src/wirings/workflow/feature.test.ts +0 -131
  514. package/src/wirings/workflow/feature.ts +0 -59
  515. package/src/wirings/workflow/graph/graph-foreach-queued.test.ts +0 -569
  516. package/src/wirings/workflow/graph/graph-foreach.test.ts +0 -626
  517. package/src/wirings/workflow/graph/graph-node.ts +0 -115
  518. package/src/wirings/workflow/graph/graph-runner.test.ts +0 -1049
  519. package/src/wirings/workflow/graph/graph-runner.ts +0 -1376
  520. package/src/wirings/workflow/graph/graph-validation.test.ts +0 -27
  521. package/src/wirings/workflow/graph/graph-validation.ts +0 -41
  522. package/src/wirings/workflow/graph/template.test.ts +0 -49
  523. package/src/wirings/workflow/graph/template.ts +0 -42
  524. package/src/wirings/workflow/graph/wire-workflow-graph.ts +0 -39
  525. package/src/wirings/workflow/graph/workflow-graph.types.ts +0 -75
  526. package/src/wirings/workflow/index.ts +0 -107
  527. package/src/wirings/workflow/pikku-scenario-service.ts +0 -1013
  528. package/src/wirings/workflow/pikku-workflow-service.test.ts +0 -963
  529. package/src/wirings/workflow/pikku-workflow-service.ts +0 -1993
  530. package/src/wirings/workflow/run-timeline.test.ts +0 -199
  531. package/src/wirings/workflow/run-timeline.ts +0 -185
  532. package/src/wirings/workflow/scenario-cookie-jar.test.ts +0 -107
  533. package/src/wirings/workflow/scenario-cookie-jar.ts +0 -57
  534. package/src/wirings/workflow/scenario-expectations.test.ts +0 -238
  535. package/src/wirings/workflow/scenario-hooks.test.ts +0 -259
  536. package/src/wirings/workflow/scenario-poll.test.ts +0 -64
  537. package/src/wirings/workflow/scenario-poll.ts +0 -27
  538. package/src/wirings/workflow/scenario-prose.test.ts +0 -275
  539. package/src/wirings/workflow/scenario-prose.ts +0 -86
  540. package/src/wirings/workflow/scenario-run.types.ts +0 -193
  541. package/src/wirings/workflow/scenario-service.test.ts +0 -147
  542. package/src/wirings/workflow/scenario-step-guards.ts +0 -23
  543. package/src/wirings/workflow/scenario-step.test.ts +0 -800
  544. package/src/wirings/workflow/scenario-step.types.ts +0 -262
  545. package/src/wirings/workflow/scenario-surface.test.ts +0 -146
  546. package/src/wirings/workflow/scenario-surface.ts +0 -71
  547. package/src/wirings/workflow/scenario.types.ts +0 -63
  548. package/src/wirings/workflow/workflow-approval-audit.ts +0 -47
  549. package/src/wirings/workflow/workflow-approval-policy.test.ts +0 -594
  550. package/src/wirings/workflow/workflow-approval-policy.ts +0 -68
  551. package/src/wirings/workflow/workflow-approval.ts +0 -290
  552. package/src/wirings/workflow/workflow-child-run-session.test.ts +0 -168
  553. package/src/wirings/workflow/workflow-constants.ts +0 -66
  554. package/src/wirings/workflow/workflow-dispatch-durability.test.ts +0 -116
  555. package/src/wirings/workflow/workflow-dispatch-payload.test.ts +0 -55
  556. package/src/wirings/workflow/workflow-dispatch-relay.test.ts +0 -128
  557. package/src/wirings/workflow/workflow-errors.ts +0 -132
  558. package/src/wirings/workflow/workflow-inline-authority.test.ts +0 -175
  559. package/src/wirings/workflow/workflow-invocation-id.test.ts +0 -51
  560. package/src/wirings/workflow/workflow-invocation-id.ts +0 -28
  561. package/src/wirings/workflow/workflow-meta-resolver.ts +0 -45
  562. package/src/wirings/workflow/workflow-mirror.test.ts +0 -171
  563. package/src/wirings/workflow/workflow-missing-meta.test.ts +0 -92
  564. package/src/wirings/workflow/workflow-on-error.test.ts +0 -145
  565. package/src/wirings/workflow/workflow-queue-routing.ts +0 -129
  566. package/src/wirings/workflow/workflow-queue-wiring.ts +0 -149
  567. package/src/wirings/workflow/workflow-queue-workers.test.ts +0 -131
  568. package/src/wirings/workflow/workflow-queue-workers.ts +0 -66
  569. package/src/wirings/workflow/workflow-recovery.ts +0 -192
  570. package/src/wirings/workflow/workflow-replay-snapshot.test.ts +0 -140
  571. package/src/wirings/workflow/workflow-retry-policy.test.ts +0 -113
  572. package/src/wirings/workflow/workflow-run-authority.test.ts +0 -212
  573. package/src/wirings/workflow/workflow-run-context.test.ts +0 -172
  574. package/src/wirings/workflow/workflow-run-engine.types.ts +0 -92
  575. package/src/wirings/workflow/workflow-run-ownership.ts +0 -37
  576. package/src/wirings/workflow/workflow-run-polling.test.ts +0 -127
  577. package/src/wirings/workflow/workflow-stalled-recovery.test.ts +0 -152
  578. package/src/wirings/workflow/workflow-status-stream.test.ts +0 -354
  579. package/src/wirings/workflow/workflow-status-stream.ts +0 -144
  580. package/src/wirings/workflow/workflow-step-claim.ts +0 -46
  581. package/src/wirings/workflow/workflow-step-ordinal.test.ts +0 -94
  582. package/src/wirings/workflow/workflow-step-session.test.ts +0 -87
  583. package/src/wirings/workflow/workflow-suspend.ts +0 -61
  584. package/src/wirings/workflow/workflow-terminal-run-guard.test.ts +0 -105
  585. package/src/wirings/workflow/workflow.types.ts +0 -268
  586. package/src/wirings-stay-decoupled.test.ts +0 -130
  587. package/tsconfig.json +0 -14
  588. package/tsconfig.tsbuildinfo +0 -1
  589. package/tsconfig.type-tests.json +0 -15
@@ -1,330 +0,0 @@
1
- import type { PikkuRawWire } from '../../types/core.types.js'
2
- import type { PikkuHTTP } from '../http/http.types.js'
3
- import type {
4
- CoreMCPResource,
5
- CoreMCPPrompt,
6
- JsonRpcRequest,
7
- JsonRpcResponse,
8
- JsonRpcErrorResponse,
9
- PikkuMCP,
10
- } from './mcp.types.js'
11
- import type {
12
- CorePikkuFunctionConfig,
13
- CorePikkuFunctionSessionless,
14
- } from '../../function/functions.types.js'
15
- import { getErrorResponse } from '../../errors/error-handler.js'
16
- import { isProduction } from '../../env.js'
17
- import {
18
- pikkuState,
19
- getSingletonServices,
20
- getCreateWireServices,
21
- } from '../../pikku-state.js'
22
- import { addFunction, runPikkuFunc } from '../../function/function-runner.js'
23
- import { resolveNamespace } from '../rpc/rpc-runner.js'
24
- import { BadRequestError, NotFoundError } from '../../errors/errors.js'
25
- import {
26
- PikkuSessionService,
27
- createMiddlewareSessionWireProps,
28
- } from '../../services/user-session-service.js'
29
- export class MCPError extends Error {
30
- constructor(public readonly error: JsonRpcErrorResponse) {
31
- super(error?.message || 'MCP Error')
32
- this.name = 'MCPError'
33
- this.stack = new Error().stack
34
- }
35
- }
36
-
37
- export type RunMCPEndpointParams<Tools extends string = any> = {
38
- mcp?: PikkuMCP<Tools>
39
- /**
40
- * The HTTP request the MCP call arrived on, when it arrived over HTTP.
41
- *
42
- * Auth middleware reads the session off `wire.http.request` — every
43
- * implementation opens with `if (!http?.request) return` — so without this an
44
- * MCP call reaches the function unauthenticated no matter what middleware the
45
- * app has registered, and a tool fronting a session-requiring function can
46
- * only ever answer 'Authentication required'.
47
- *
48
- * Left undefined for transports that have no request to offer, such as stdio.
49
- * Those remain anonymous, which is a property of the transport rather than a
50
- * default chosen here.
51
- */
52
- http?: PikkuHTTP
53
- /** Defaults to enabled outside production. */
54
- exposeErrors?: boolean
55
- }
56
-
57
- export const wireMCPResource = <
58
- PikkuFunctionConfig extends CorePikkuFunctionConfig<
59
- CorePikkuFunctionSessionless<any, any>
60
- > = CorePikkuFunctionConfig<CorePikkuFunctionSessionless<any, any>>,
61
- >(
62
- mcpResource: CoreMCPResource<PikkuFunctionConfig>
63
- ) => {
64
- const resourcesMeta = pikkuState(null, 'mcp', 'resourcesMeta')
65
- const mcpResourceMeta = resourcesMeta[mcpResource.uri]
66
- if (!mcpResourceMeta) {
67
- console.warn(
68
- `[pikku] Skipping MCP resource '${mcpResource.uri}' — metadata not found. Consider moving this wiring to its own file.`
69
- )
70
- return
71
- }
72
- addFunction(mcpResourceMeta.pikkuFuncId, mcpResource.func)
73
- const resources = pikkuState(null, 'mcp', 'resources')
74
- if (resources.has(mcpResource.uri)) {
75
- throw new Error(`MCP resource already exists: ${mcpResource.uri}`)
76
- }
77
- resources.set(mcpResource.uri, mcpResource)
78
- }
79
-
80
- export const wireMCPPrompt = <
81
- PikkuFunctionConfig extends CorePikkuFunctionConfig<
82
- CorePikkuFunctionSessionless<any, any>
83
- > = CorePikkuFunctionConfig<CorePikkuFunctionSessionless<any, any>>,
84
- >(
85
- mcpPrompt: CoreMCPPrompt<PikkuFunctionConfig>
86
- ) => {
87
- const promptsMeta = pikkuState(null, 'mcp', 'promptsMeta')
88
- const mcpPromptMeta = promptsMeta[mcpPrompt.name]
89
- if (!mcpPromptMeta) {
90
- console.warn(
91
- `[pikku] Skipping MCP prompt '${mcpPrompt.name}' — metadata not found. Consider moving this wiring to its own file.`
92
- )
93
- return
94
- }
95
- addFunction(mcpPromptMeta.pikkuFuncId, mcpPrompt.func)
96
- const prompts = pikkuState(null, 'mcp', 'prompts')
97
- if (prompts.has(mcpPrompt.name)) {
98
- throw new Error(`MCP prompt already exists: ${mcpPrompt.name}`)
99
- }
100
- prompts.set(mcpPrompt.name, mcpPrompt)
101
- }
102
-
103
- export async function runMCPResource(
104
- request: JsonRpcRequest,
105
- params: RunMCPEndpointParams,
106
- uri: string
107
- ) {
108
- let endpoint: CoreMCPResource | undefined
109
- let pikkuFuncId: string | undefined
110
- let extractedParams: Record<string, string> = {}
111
-
112
- const metas = pikkuState(null, 'mcp', 'resourcesMeta')
113
- const endpoints = pikkuState(null, 'mcp', 'resources')
114
-
115
- // The key the resource's meta (and its middleware) is stored under. For a
116
- // templated resource this is the template, not the concrete request URI — so
117
- // it must be carried forward, or the meta lookup downstream misses and the
118
- // resource's declared middleware (including auth) is silently skipped.
119
- let metaKey = uri
120
-
121
- if (endpoints.has(uri)) {
122
- endpoint = endpoints.get(uri)
123
- pikkuFuncId = metas[uri]?.pikkuFuncId
124
- } else {
125
- for (const [uriTemplate, value] of endpoints.entries()) {
126
- const paramNames = Array.from(
127
- uriTemplate.matchAll(/\{([^}]+)\}/g),
128
- (m) => m[1]
129
- )
130
-
131
- const regexPattern = uriTemplate.replace(/\{[^}]+\}/g, '([^/]+)')
132
- const regex = new RegExp(`^${regexPattern}$`)
133
- const match = uri.match(regex)
134
-
135
- if (match) {
136
- endpoint = value
137
- metaKey = uriTemplate
138
- pikkuFuncId = metas[uriTemplate]?.pikkuFuncId
139
-
140
- for (let i = 0; i < paramNames.length; i++) {
141
- extractedParams[paramNames[i]!] = match[i + 1]! // match[0] is the full match
142
- }
143
- break
144
- }
145
- }
146
- }
147
-
148
- return await runMCPPikkuFunc(
149
- {
150
- ...request,
151
- params: { ...request.params, ...extractedParams },
152
- },
153
- 'resource',
154
- uri,
155
- endpoint,
156
- pikkuFuncId,
157
- { ...params, mcp: { ...params.mcp, uri } } as RunMCPEndpointParams<
158
- keyof CoreMCPResource
159
- >,
160
- metaKey
161
- )
162
- }
163
-
164
- export async function runMCPTool(
165
- request: JsonRpcRequest,
166
- params: RunMCPEndpointParams,
167
- name: string
168
- ) {
169
- const meta = pikkuState(null, 'mcp', 'toolsMeta')[name]
170
- return await runMCPPikkuFunc(
171
- request,
172
- 'tool',
173
- name,
174
- undefined,
175
- meta?.pikkuFuncId,
176
- params
177
- )
178
- }
179
-
180
- export async function runMCPPrompt(
181
- request: JsonRpcRequest,
182
- params: RunMCPEndpointParams,
183
- name: string
184
- ) {
185
- const endpoint = pikkuState(null, 'mcp', 'prompts').get(name)
186
- const meta = pikkuState(null, 'mcp', 'promptsMeta')[name]
187
- return await runMCPPikkuFunc(
188
- request,
189
- 'prompt',
190
- name,
191
- endpoint,
192
- meta?.pikkuFuncId,
193
- params
194
- )
195
- }
196
-
197
- async function runMCPPikkuFunc(
198
- request: JsonRpcRequest,
199
- type: 'resource' | 'tool' | 'prompt',
200
- name: string,
201
- mcp: CoreMCPResource | CoreMCPPrompt | undefined,
202
- pikkuFuncId: string | undefined,
203
- { mcp: mcpWire, http, exposeErrors = !isProduction() }: RunMCPEndpointParams,
204
- // The key the endpoint's meta is stored under. Differs from `name` only for a
205
- // templated resource, where `name` is the concrete URI and the meta lives
206
- // under the template. Defaults to `name` for tools and prompts.
207
- metaKey: string = name
208
- ): Promise<JsonRpcResponse> {
209
- const singletonServices = getSingletonServices()
210
- const createWireServices = getCreateWireServices()
211
-
212
- try {
213
- if (request.jsonrpc !== '2.0') {
214
- throw new BadRequestError(
215
- 'Invalid JSON-RPC version, only supoorted version is 2.0'
216
- )
217
- }
218
-
219
- if (mcp === undefined && type !== 'tool') {
220
- throw new NotFoundError(
221
- `MCP '${type}' registration not found for '${name}'`
222
- )
223
- }
224
-
225
- if (!pikkuFuncId) {
226
- throw new NotFoundError(
227
- `MCP '${type}' PikkuFunction Mapping not found for '${name}'`
228
- )
229
- }
230
-
231
- singletonServices.logger.debug(`Running MCP ${type}: ${name}`)
232
-
233
- const mcpSessionService = new PikkuSessionService(
234
- singletonServices.sessionStore
235
- )
236
- const wire: PikkuRawWire = {
237
- mcp: mcpWire,
238
- // Only when the transport supplied one. Setting `http: undefined`
239
- // explicitly would be the same to a reader and different to a spread.
240
- ...(http ? { http } : {}),
241
- ...createMiddlewareSessionWireProps(mcpSessionService),
242
- }
243
-
244
- let meta: any
245
- if (type === 'resource') {
246
- meta = pikkuState(null, 'mcp', 'resourcesMeta')[metaKey]
247
- } else if (type === 'tool') {
248
- meta = pikkuState(null, 'mcp', 'toolsMeta')[metaKey]
249
- } else if (type === 'prompt') {
250
- meta = pikkuState(null, 'mcp', 'promptsMeta')[metaKey]
251
- }
252
-
253
- let resolvedFuncName = pikkuFuncId
254
- let resolvedPackageName: string | null = meta?.packageName ?? null
255
- if (pikkuFuncId.includes(':')) {
256
- const resolved = resolveNamespace(pikkuFuncId)
257
- if (resolved) {
258
- resolvedFuncName = resolved.function
259
- resolvedPackageName = resolved.package
260
- }
261
- }
262
-
263
- let result = await runPikkuFunc(
264
- 'mcp',
265
- `${type}:${name}`,
266
- resolvedFuncName,
267
- {
268
- singletonServices,
269
- createWireServices,
270
- data: () => request.params,
271
- inheritedMiddleware: meta?.middleware,
272
- wireMiddleware: mcp?.middleware,
273
- tags: mcp?.tags,
274
- wire,
275
- sessionService: mcpSessionService,
276
- packageName: resolvedPackageName,
277
- }
278
- )
279
-
280
- if (type === 'tool' && meta?.outputSchema !== 'MCPToolResponse') {
281
- result = [{ type: 'text', text: JSON.stringify(result) }]
282
- }
283
-
284
- return {
285
- id: request.id,
286
- result,
287
- }
288
- } catch (e: any) {
289
- singletonServices.logger.error(
290
- `Error running MCP ${type} '${name}':`,
291
- e.constructor
292
- )
293
- const errorResponse = getErrorResponse(e)
294
- if (errorResponse?.mcpCode) {
295
- throw new MCPError({
296
- id: request.id,
297
- code: errorResponse.mcpCode,
298
- message: errorResponse.message,
299
- })
300
- } else {
301
- if (errorResponse) {
302
- singletonServices.logger.warn(
303
- `Got error without a mapping: ${errorResponse.message}`
304
- )
305
- }
306
- throw new MCPError({
307
- id: request.id,
308
- code: -32603,
309
- message: 'Internal error',
310
- // knowledge: decisions/security/mcp-internal-error-details-are-double-gated-on-production.md
311
- data:
312
- exposeErrors && !isProduction() && e instanceof Error
313
- ? { message: e.message, stack: e.stack }
314
- : undefined,
315
- })
316
- }
317
- }
318
- }
319
-
320
- export const getMCPResourcesMeta = () => {
321
- return pikkuState(null, 'mcp', 'resourcesMeta')
322
- }
323
-
324
- export const getMCPToolsMeta = () => {
325
- return pikkuState(null, 'mcp', 'toolsMeta')
326
- }
327
-
328
- export const getMCPPromptsMeta = () => {
329
- return pikkuState(null, 'mcp', 'promptsMeta')
330
- }
@@ -1,199 +0,0 @@
1
- import type {
2
- CorePikkuFunctionConfig,
3
- CorePikkuFunctionSessionless,
4
- CorePikkuPermission,
5
- } from '../../function/functions.types.js'
6
- import type {
7
- CorePikkuMiddleware,
8
- MiddlewareMetadata,
9
- } from '../../middleware/middleware.types.js'
10
- /** "user/{userId}/post/{postId}" => "userId" | "postId" */
11
- type ExtractMCPURIParams<S extends string> =
12
- S extends `${string}{${infer Param}}/${infer Rest}`
13
- ? Param | ExtractMCPURIParams<Rest>
14
- : S extends `${string}{${infer Param}}`
15
- ? Param
16
- : never
17
-
18
- /** Resolves to a tuple of error strings, not `never`, so the mismatch surfaces in the type error. */
19
- export type AssertMCPResourceURIParams<In, URI extends string> =
20
- ExtractMCPURIParams<URI> extends keyof In
21
- ? unknown
22
- : [
23
- 'Error: MCP Resource URI parameters',
24
- ExtractMCPURIParams<URI>,
25
- 'not in input type',
26
- keyof In,
27
- ]
28
-
29
- export type PikkuMCP<Tools extends string = any> = {
30
- uri?: string
31
- sendResourceUpdated: (uri: string) => void
32
- enableResources: (resources: Record<string, boolean>) => Promise<boolean>
33
- enablePrompts: (prompts: Record<string, boolean>) => Promise<boolean>
34
- enableTools: (tools: Record<Tools, boolean>) => Promise<boolean>
35
- }
36
-
37
- export type MCPResourceMeta = Record<
38
- string,
39
- Omit<CoreMCPResource, 'func' | 'middleware'> & {
40
- pikkuFuncId: string
41
- inputSchema: string | null
42
- outputSchema: string | null
43
- middleware?: MiddlewareMetadata[] // tag + explicit, already merged
44
- }
45
- >
46
-
47
- export type MCPToolMeta = Record<
48
- string,
49
- Omit<CoreMCPTool, 'func' | 'middleware'> & {
50
- pikkuFuncId: string
51
- inputSchema: string | null
52
- outputSchema: string | null
53
- middleware?: MiddlewareMetadata[] // tag + explicit, already merged
54
- }
55
- >
56
-
57
- export type MCPPromptMeta = Record<
58
- string,
59
- Omit<CoreMCPPrompt, 'func' | 'middleware'> & {
60
- pikkuFuncId: string
61
- inputSchema: string | null
62
- outputSchema: string | null
63
- arguments: Array<{
64
- name: string
65
- description: string
66
- required: boolean
67
- }>
68
- middleware?: MiddlewareMetadata[] // tag + explicit, already merged
69
- }
70
- >
71
-
72
- export type CoreMCPResource<
73
- PikkuFunctionConfig = CorePikkuFunctionConfig<
74
- CorePikkuFunctionSessionless<any, any>
75
- >,
76
- PikkuPermission = CorePikkuPermission<any, any>,
77
- PikkuMiddleware = CorePikkuMiddleware<any>,
78
- > = {
79
- /** How the client addresses this resource. `{name}` marks a parameter, and every parameter must be a key of the function's input schema. */
80
- uri: string
81
- /** The name a human sees in a client's resource list. */
82
- title: string
83
- /** What the resource holds, written for the model deciding whether to read it. */
84
- description: string
85
- /** A one-line description for listings, where the full `description` is too long. */
86
- summary?: string
87
- /** Names of error classes this may throw, so the client is told which failures are its own fault. */
88
- errors?: string[]
89
- /** The media type of what the function returns, so the client knows whether it is text, JSON or an image. */
90
- mimeType?: string
91
- /** Size in bytes, where it is known ahead of the read. A client uses it to decide whether to fetch at all. */
92
- size?: number
93
- /** Whether the function returns the content in chunks rather than at once. */
94
- streaming?: boolean
95
- /** The function to run. It is sessionless: an MCP client is not a logged-in user. */
96
- func: PikkuFunctionConfig
97
- /** Filters this wiring in and out of a build — see the `tags` option on `pikku all`. It has no effect at runtime. */
98
- tags?: string[]
99
- /** Wraps every call: tracing, rate limiting, whatever the transport does not do. */
100
- middleware?: PikkuMiddleware[]
101
- }
102
-
103
- export type CoreMCPTool<
104
- PikkuFunctionConfig = CorePikkuFunctionConfig<
105
- CorePikkuFunctionSessionless<any, any>
106
- >,
107
- PikkuPermission = CorePikkuPermission<any, any>,
108
- PikkuMiddleware = CorePikkuMiddleware<any>,
109
- > = {
110
- /** How the model calls this tool. It is the tool's identity, so renaming it breaks any client that already knows it. */
111
- name: string
112
- /** The name a human sees, where the calling `name` is not readable. */
113
- title?: string
114
- /** What the tool does and when to reach for it. This is what the model decides on, so it earns more care than the rest of this object. */
115
- description?: string
116
- /** A one-line description for listings, where the full `description` is too long. */
117
- summary?: string
118
- /** Names of error classes this may throw, so the client is told which failures are its own fault. */
119
- errors?: string[]
120
- /** The function to run. It is sessionless: an MCP client is not a logged-in user. */
121
- func: PikkuFunctionConfig
122
- /** Filters this wiring in and out of a build — see the `tags` option on `pikku all`. It has no effect at runtime. */
123
- tags?: string[]
124
- /** Whether the function returns its result in chunks rather than at once. */
125
- streaming?: boolean
126
- /** Wraps every call: tracing, rate limiting, whatever the transport does not do. */
127
- middleware?: PikkuMiddleware[]
128
- }
129
-
130
- export type CoreMCPPrompt<
131
- PikkuFunctionConfig = CorePikkuFunctionConfig<
132
- CorePikkuFunctionSessionless<any, MCPPromptResponse>
133
- >,
134
- PikkuPermission = CorePikkuPermission<any, any>,
135
- PikkuMiddleware = CorePikkuMiddleware<any>,
136
- > = {
137
- /** How the client asks for this prompt. */
138
- name: string
139
- /** What the prompt is for, written for the human picking it out of a list. */
140
- description: string
141
- /** A one-line description for listings, where the full `description` is too long. */
142
- summary?: string
143
- /** Names of error classes this may throw, so the client is told which failures are its own fault. */
144
- errors?: string[]
145
- /** The function to run. It is sessionless: an MCP client is not a logged-in user. */
146
- func: PikkuFunctionConfig
147
- /** Filters this wiring in and out of a build — see the `tags` option on `pikku all`. It has no effect at runtime. */
148
- tags?: string[]
149
- /** Wraps every call: tracing, rate limiting, whatever the transport does not do. */
150
- middleware?: PikkuMiddleware[]
151
- }
152
-
153
- export type JsonRpcRequest = {
154
- jsonrpc: string
155
- id?: string | number | null
156
- params?: any
157
- }
158
-
159
- export type JsonRpcResponse = {
160
- id?: string | number | null
161
- result?: any
162
- }
163
-
164
- export type JsonRpcErrorResponse = {
165
- id?: string | number | null
166
- code: number
167
- message: string
168
- data?: any
169
- }
170
-
171
- export type MCPPromptMessage = {
172
- role: 'user' | 'assistant' | 'system'
173
- content: {
174
- type: 'text' | 'image'
175
- text: string
176
- data?: string
177
- }
178
- }
179
-
180
- export type MCPPromptResponse = MCPPromptMessage[]
181
-
182
- export type MCPResourceMessage = {
183
- uri: string
184
- text: string
185
- }
186
-
187
- export type MCPResourceResponse = MCPResourceMessage[]
188
-
189
- export type MCPToolMessage =
190
- | {
191
- type: 'text'
192
- text: string
193
- }
194
- | {
195
- type: 'image'
196
- data: string // base64
197
- }
198
-
199
- export type MCPToolResponse = MCPToolMessage[]
@@ -1,2 +0,0 @@
1
- export type { CoreNodeConfig, NodeType } from './node.types.js'
2
- export type { NodesMeta } from './node.types.js'
@@ -1,23 +0,0 @@
1
- export type NodeType = 'trigger' | 'action' | 'end'
2
-
3
- export type CoreNodeConfig = {
4
- displayName: string
5
- category: string
6
- type: NodeType
7
- errorOutput?: boolean
8
- }
9
-
10
- export type NodeMeta = {
11
- name: string
12
- displayName: string
13
- category: string
14
- type: NodeType
15
- rpc: string
16
- description?: string
17
- errorOutput: boolean
18
- inputSchemaName: string | null
19
- outputSchemaName: string | null
20
- tags?: string[]
21
- }
22
-
23
- export type NodesMeta = Record<string, NodeMeta>
@@ -1 +0,0 @@
1
- export type { OAuth2AppCredential, OAuth2Token } from './oauth2.types.js'
@@ -1,12 +0,0 @@
1
- export type OAuth2AppCredential = {
2
- clientId: string
3
- clientSecret?: string // Optional for PKCE flows
4
- }
5
-
6
- export type OAuth2Token = {
7
- accessToken: string
8
- refreshToken?: string
9
- expiresAt?: number // Unix timestamp
10
- tokenType: string
11
- scope?: string
12
- }
@@ -1,33 +0,0 @@
1
- import type { CorePersonas } from './persona.types.js'
2
-
3
- /**
4
- * No-op function for declaring personas.
5
- * This exists purely for TypeScript type checking and will be tree-shaken.
6
- * The CLI extracts metadata via AST parsing and generates a `PersonaId` union
7
- * and a `personas.gen.json` the console and `pikku persona run` read off disk —
8
- * describing, listing or running one never has to load the app.
9
- *
10
- * `definePersonas` rather than `defineVirtualUsers` because declaring is not
11
- * running: a persona that exists only to be acted upon (the account an admin
12
- * bans, the colleague a document is shared with) is seeded and never run.
13
- *
14
- * Exactly one `definePersonas(...)` is allowed per codebase, so there is one
15
- * place to read the cast from and one place to add to. A second call — even in
16
- * the same file — fails the build.
17
- *
18
- * @example
19
- * ```typescript
20
- * definePersonas({
21
- * susan: {
22
- * name: 'Susan',
23
- * jobTitle: 'Buys for a small café',
24
- * roles: ['buyer'],
25
- * personality: 'Hunts cheap deals. Tries three coupon codes before giving up.',
26
- * goals: ['Get the weekly order in under five minutes'],
27
- * disposition: 'careless',
28
- * account: {},
29
- * },
30
- * })
31
- * ```
32
- */
33
- export const definePersonas = (_config: CorePersonas): void => {}
@@ -1,75 +0,0 @@
1
- export { definePersonas } from './define-personas.js'
2
- export {
3
- isRunnablePersona,
4
- roleMismatchMessage,
5
- runnablePersonas,
6
- validateAndBuildPersonasMeta,
7
- verifyPersonaRoles,
8
- } from './validate-personas.js'
9
- export type { RoleVerification } from './validate-personas.js'
10
- export {
11
- personaEnvironmentErrors,
12
- personaEnvironmentRefusal,
13
- } from './persona-environments.js'
14
- export type {
15
- PersonaEnvironment,
16
- PersonaEnvironmentSubject,
17
- } from './persona-environments.js'
18
- export { personaEmail, personaEmails } from './persona-email.js'
19
- export {
20
- APP_SCOPE_ROOT,
21
- appScopeId,
22
- buildAppScopeDefinition,
23
- } from './persona-app-scopes.js'
24
- export type {
25
- MailboxAllowlist,
26
- PersonaMailbox,
27
- ReceivedEmail,
28
- } from './persona-mailbox.js'
29
- export type {
30
- CorePersona,
31
- CorePersonas,
32
- PersonaAccountMeta,
33
- PersonaDefinitions,
34
- PersonaMeta,
35
- PersonasMeta,
36
- } from './persona.types.js'
37
-
38
- /**
39
- * Signing in as a persona and talking to a stage over HTTP.
40
- *
41
- * Deliberately reached through this entry point rather than `@pikku/core/services`.
42
- * `HttpPersona` pulls in the actor-flow conversation runner and, through it, the
43
- * agent runner — none of which a production server has any use for. Exporting it
44
- * from the services barrel put that chain in the module graph of every app that
45
- * imports services, which only a bundler could remove and an unbundled Node or
46
- * Lambda deploy would load outright.
47
- */
48
- export {
49
- HttpPersona,
50
- createHttpPersonas,
51
- type HttpPersonasConfig,
52
- } from '../../services/http-personas.js'
53
- export {
54
- ActorSignIn,
55
- OperatorSignIn,
56
- establishOperatorSession,
57
- IMPERSONATE_USER_ID_HEADER,
58
- type ActorSecretResolver,
59
- type PersonaSignIn,
60
- type OperatorSignInOptions,
61
- type OperatorSessionResult,
62
- authMount,
63
- } from '../../services/persona-sign-in.js'
64
- export {
65
- ACTOR_ROOT_SECRET_MIN_LENGTH,
66
- ACTOR_SECRET_INFO,
67
- ACTOR_SECRET_NAME,
68
- actorSecretSubject,
69
- deriveActorSecret,
70
- verifyActorSecret,
71
- } from '../../services/persona-actor-secret.js'
72
- export {
73
- postScenarioJson,
74
- readScenarioHttpResponse,
75
- } from '../../services/personas-service.js'