@pikku/cli 0.11.1 → 0.11.2

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 (257) hide show
  1. package/.pikku/channel/pikku-channel-types.gen.ts +11 -12
  2. package/.pikku/channel/pikku-channels-map.gen.d.ts +8 -8
  3. package/.pikku/channel/pikku-channels-meta.gen.ts +1 -1
  4. package/.pikku/channel/pikku-channels.gen.ts +1 -1
  5. package/.pikku/cli/pikku-cli-channel.ts +2 -2
  6. package/.pikku/cli/pikku-cli-client.gen.ts +1 -3
  7. package/.pikku/cli/pikku-cli-types.gen.ts +3 -3
  8. package/.pikku/cli/pikku-cli-wirings-meta.gen.json +146 -0
  9. package/.pikku/cli/pikku-cli-wirings-meta.gen.ts +4 -157
  10. package/.pikku/cli/pikku-cli-wirings.gen.ts +3 -3
  11. package/.pikku/cli/pikku-cli.gen.ts +3 -3
  12. package/.pikku/function/pikku-function-types.gen.ts +49 -63
  13. package/.pikku/function/pikku-functions-meta.gen.json +988 -0
  14. package/.pikku/function/pikku-functions-meta.gen.ts +4 -970
  15. package/.pikku/function/pikku-functions-meta.min.gen.json +212 -0
  16. package/.pikku/function/pikku-functions-meta.min.gen.ts +4 -209
  17. package/.pikku/http/pikku-http-types.gen.ts +2 -2
  18. package/.pikku/http/pikku-http-wirings-map.gen.d.ts +8 -8
  19. package/.pikku/http/pikku-http-wirings-meta.gen.ts +1 -1
  20. package/.pikku/http/pikku-http-wirings.gen.ts +1 -1
  21. package/.pikku/mcp/pikku-mcp-types.gen.ts +13 -13
  22. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +5 -0
  23. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.ts +6 -4
  24. package/.pikku/mcp/pikku-mcp-wirings.gen.ts +1 -1
  25. package/.pikku/pikku-bootstrap.gen.ts +1 -4
  26. package/.pikku/pikku-services.gen.ts +4 -6
  27. package/.pikku/pikku-types.gen.ts +1 -1
  28. package/.pikku/pikku-websocket.gen.ts +1 -1
  29. package/.pikku/queue/pikku-queue-types.gen.ts +2 -2
  30. package/.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts +8 -8
  31. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +1 -0
  32. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts +5 -7
  33. package/.pikku/queue/pikku-queue-workers-wirings.gen.ts +1 -1
  34. package/.pikku/rpc/pikku-remote-rpc-workers.gen.ts +2 -2
  35. package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +8 -8
  36. package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +34 -33
  37. package/.pikku/scheduler/pikku-scheduler-types.gen.ts +2 -2
  38. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +1 -0
  39. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.ts +5 -2
  40. package/.pikku/scheduler/pikku-schedulers-wirings.gen.ts +1 -1
  41. package/.pikku/schemas/register.gen.ts +25 -25
  42. package/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
  43. package/.pikku/services/config.gen.json +99 -0
  44. package/.pikku/services/getInspectorState.gen.json +10 -0
  45. package/.pikku/services/jwt.gen.json +13 -0
  46. package/.pikku/services/logger.gen.json +25 -0
  47. package/.pikku/services/queueService.gen.json +14 -0
  48. package/.pikku/services/schedulerService.gen.json +17 -0
  49. package/.pikku/services/schema.gen.json +14 -0
  50. package/.pikku/services/variables.gen.json +13 -0
  51. package/.pikku/services/workflowService.gen.json +31 -0
  52. package/.pikku/workflow/pikku-workflow-map.gen.d.ts +8 -8
  53. package/.pikku/workflow/pikku-workflow-types.gen.ts +36 -31
  54. package/.pikku/workflow/pikku-workflow-wirings-meta.gen.json +1 -0
  55. package/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +5 -2
  56. package/.pikku/workflow/pikku-workflow-wirings.gen.ts +6 -2
  57. package/CHANGELOG.md +21 -0
  58. package/bin/pikku.ts +6 -32
  59. package/build.sh +53 -31
  60. package/cli.schema.json +1 -1
  61. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +6 -7
  62. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  63. package/dist/.pikku/channel/pikku-channels-meta.gen.js +1 -1
  64. package/dist/.pikku/channel/pikku-channels.gen.d.ts +1 -1
  65. package/dist/.pikku/channel/pikku-channels.gen.js +1 -1
  66. package/dist/.pikku/cli/pikku-cli-channel.js +2 -2
  67. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  68. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -3
  69. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +3 -3
  70. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  71. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +3 -157
  72. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +146 -0
  73. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +2 -2
  74. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +2 -2
  75. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  76. package/dist/.pikku/cli/pikku-cli.gen.js +3 -3
  77. package/dist/.pikku/function/pikku-function-types.gen.d.ts +29 -79
  78. package/dist/.pikku/function/pikku-function-types.gen.js +19 -15
  79. package/dist/.pikku/function/pikku-functions-meta.gen.js +3 -969
  80. package/dist/.pikku/function/pikku-functions-meta.gen.json +988 -0
  81. package/dist/.pikku/function/pikku-functions-meta.min.gen.js +3 -208
  82. package/dist/.pikku/function/pikku-functions-meta.min.gen.json +212 -0
  83. package/dist/.pikku/http/pikku-http-types.gen.d.ts +2 -2
  84. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  85. package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +1 -1
  86. package/dist/.pikku/http/pikku-http-wirings.gen.d.ts +1 -1
  87. package/dist/.pikku/http/pikku-http-wirings.gen.js +1 -1
  88. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +13 -13
  89. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  90. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +5 -4
  91. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +5 -0
  92. package/dist/.pikku/mcp/pikku-mcp-wirings.gen.d.ts +1 -1
  93. package/dist/.pikku/mcp/pikku-mcp-wirings.gen.js +1 -1
  94. package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -4
  95. package/dist/.pikku/pikku-bootstrap.gen.js +1 -4
  96. package/dist/.pikku/pikku-services.gen.d.ts +3 -6
  97. package/dist/.pikku/pikku-services.gen.js +2 -5
  98. package/dist/.pikku/pikku-types.gen.d.ts +1 -1
  99. package/dist/.pikku/pikku-types.gen.js +1 -1
  100. package/dist/.pikku/pikku-websocket.gen.d.ts +1 -1
  101. package/dist/.pikku/pikku-websocket.gen.js +1 -1
  102. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +2 -2
  103. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  104. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +3 -7
  105. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +1 -0
  106. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  107. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  108. package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.d.ts +6 -9
  109. package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.js +2 -2
  110. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +2 -2
  111. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  112. package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.js +3 -2
  113. package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +1 -0
  114. package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.d.ts +1 -1
  115. package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.js +1 -1
  116. package/dist/.pikku/schemas/register.gen.js +15 -15
  117. package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
  118. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +29 -25
  119. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +22 -8
  120. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +3 -2
  121. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.json +1 -0
  122. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +6 -2
  123. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +6 -3
  124. package/dist/bin/pikku.js +5 -26
  125. package/dist/src/cli.wiring.js +4 -4
  126. package/dist/src/functions/commands/all.js +82 -42
  127. package/dist/src/functions/commands/bootstrap.js +22 -10
  128. package/dist/src/functions/commands/watch.js +6 -3
  129. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.js +12 -7
  130. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.d.ts +1 -1
  131. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.js +42 -4
  132. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.d.ts +1 -1
  133. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.js +40 -2
  134. package/dist/src/functions/wirings/channels/pikku-channels.js +9 -2
  135. package/dist/src/functions/wirings/channels/serialize-channel-types.js +10 -11
  136. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +4 -4
  137. package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +1 -1
  138. package/dist/src/functions/wirings/cli/pikku-command-cli.js +9 -3
  139. package/dist/src/functions/wirings/cli/serialize-channel-cli.js +1 -1
  140. package/dist/src/functions/wirings/cli/serialize-cli-types.js +2 -2
  141. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.d.ts +1 -1
  142. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +4 -4
  143. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.js +4 -4
  144. package/dist/src/functions/wirings/functions/pikku-command-functions.js +15 -5
  145. package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
  146. package/dist/src/functions/wirings/functions/pikku-command-services.js +23 -23
  147. package/dist/src/functions/wirings/functions/schemas.js +1 -1
  148. package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +1 -1
  149. package/dist/src/functions/wirings/functions/serialize-function-types.js +50 -64
  150. package/dist/src/functions/wirings/http/openapi-spec-generator.js +4 -4
  151. package/dist/src/functions/wirings/http/pikku-http-routes.js +9 -2
  152. package/dist/src/functions/wirings/http/serialize-http-types.js +1 -1
  153. package/dist/src/functions/wirings/mcp/pikku-command-mcp.js +18 -4
  154. package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +12 -12
  155. package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +26 -2
  156. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.d.ts +5 -2
  157. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.js +5 -13
  158. package/dist/src/functions/wirings/queue/pikku-command-queue.js +9 -3
  159. package/dist/src/functions/wirings/queue/pikku-queue.js +9 -3
  160. package/dist/src/functions/wirings/queue/serialize-queue-meta.d.ts +2 -1
  161. package/dist/src/functions/wirings/queue/serialize-queue-meta.js +10 -1
  162. package/dist/src/functions/wirings/queue/serialize-queue-types.js +1 -1
  163. package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +9 -2
  164. package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +11 -4
  165. package/dist/src/functions/wirings/rpc/serialize-remote-rpc.js +1 -1
  166. package/dist/src/functions/wirings/rpc/serialize-rpc-wrapper.js +3 -3
  167. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.js +6 -3
  168. package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.d.ts +2 -1
  169. package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.js +11 -1
  170. package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.js +1 -1
  171. package/dist/src/functions/wirings/services/pikku-command-service-metadata.d.ts +1 -0
  172. package/dist/src/functions/wirings/services/pikku-command-service-metadata.js +22 -0
  173. package/dist/src/functions/wirings/workflow/pikku-command-workflow-types.js +3 -1
  174. package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +12 -8
  175. package/dist/src/functions/wirings/workflow/serialize-workflow-meta.d.ts +2 -1
  176. package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +11 -1
  177. package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +1 -1
  178. package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +36 -31
  179. package/dist/src/functions/wirings/workflow/serialize-workflow-wirings.d.ts +8 -0
  180. package/dist/src/functions/wirings/workflow/serialize-workflow-wirings.js +30 -0
  181. package/dist/src/functions/wirings/workflow/serialize-workflow-workers.js +2 -2
  182. package/dist/src/middleware/log-command-info-and-time.d.ts +2 -2
  183. package/dist/src/middleware/log-command-info-and-time.js +1 -4
  184. package/dist/src/services/cli-logger-forwarder.service.js +1 -1
  185. package/dist/src/services.d.ts +2 -7
  186. package/dist/src/services.js +14 -12
  187. package/dist/src/utils/check-required-types.d.ts +2 -2
  188. package/dist/src/utils/check-required-types.js +2 -3
  189. package/dist/src/utils/pikku-cli-config.js +35 -2
  190. package/dist/src/utils/pikku-files-and-methods.d.ts +2 -2
  191. package/dist/src/utils/pikku-files-and-methods.js +4 -4
  192. package/dist/src/utils/schema-generator.d.ts +1 -1
  193. package/dist/src/utils/schema-generator.js +1 -1
  194. package/dist/tsconfig.tsbuildinfo +1 -1
  195. package/package.json +7 -8
  196. package/src/cli.wiring.ts +4 -4
  197. package/src/functions/commands/all.ts +94 -45
  198. package/src/functions/commands/bootstrap.ts +25 -10
  199. package/src/functions/commands/watch.ts +6 -3
  200. package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +26 -5
  201. package/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts +43 -4
  202. package/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts +40 -1
  203. package/src/functions/wirings/channels/pikku-channels.ts +27 -3
  204. package/src/functions/wirings/channels/serialize-channel-types.ts +10 -11
  205. package/src/functions/wirings/cli/pikku-command-cli-entry.ts +4 -4
  206. package/src/functions/wirings/cli/pikku-command-cli-types.ts +1 -1
  207. package/src/functions/wirings/cli/pikku-command-cli.ts +26 -3
  208. package/src/functions/wirings/cli/serialize-channel-cli.ts +1 -1
  209. package/src/functions/wirings/cli/serialize-cli-types.ts +2 -2
  210. package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +5 -5
  211. package/src/functions/wirings/functions/pikku-command-function-types-split.ts +6 -6
  212. package/src/functions/wirings/functions/pikku-command-functions.ts +39 -4
  213. package/src/functions/wirings/functions/pikku-command-services.ts +25 -25
  214. package/src/functions/wirings/functions/schemas.ts +2 -2
  215. package/src/functions/wirings/functions/serialize-function-types.ts +51 -65
  216. package/src/functions/wirings/http/openapi-spec-generator.ts +14 -5
  217. package/src/functions/wirings/http/pikku-http-routes.ts +28 -2
  218. package/src/functions/wirings/http/serialize-http-types.ts +1 -1
  219. package/src/functions/wirings/mcp/pikku-command-mcp.ts +30 -4
  220. package/src/functions/wirings/mcp/serialize-mcp-types.ts +12 -12
  221. package/src/functions/wirings/middleware/pikku-command-middleware.ts +35 -2
  222. package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +4 -19
  223. package/src/functions/wirings/permissions/pikku-command-permissions.ts +2 -2
  224. package/src/functions/wirings/queue/pikku-command-queue.ts +27 -2
  225. package/src/functions/wirings/queue/pikku-queue.ts +27 -2
  226. package/src/functions/wirings/queue/serialize-queue-meta.ts +15 -1
  227. package/src/functions/wirings/queue/serialize-queue-types.ts +1 -1
  228. package/src/functions/wirings/rpc/pikku-command-rpc.ts +25 -2
  229. package/src/functions/wirings/rpc/serialize-public-rpc.ts +11 -4
  230. package/src/functions/wirings/rpc/serialize-remote-rpc.ts +1 -1
  231. package/src/functions/wirings/rpc/serialize-rpc-wrapper.ts +3 -3
  232. package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +30 -4
  233. package/src/functions/wirings/scheduler/serialize-scheduler-meta.ts +20 -1
  234. package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +1 -1
  235. package/src/functions/wirings/services/pikku-command-service-metadata.ts +25 -0
  236. package/src/functions/wirings/workflow/pikku-command-workflow-types.ts +8 -1
  237. package/src/functions/wirings/workflow/pikku-command-workflow.ts +36 -8
  238. package/src/functions/wirings/workflow/serialize-workflow-meta.ts +18 -1
  239. package/src/functions/wirings/workflow/serialize-workflow-types.ts +39 -31
  240. package/src/functions/wirings/workflow/serialize-workflow-wirings.ts +47 -0
  241. package/src/functions/wirings/workflow/serialize-workflow-workers.ts +2 -2
  242. package/src/middleware/log-command-info-and-time.ts +3 -6
  243. package/src/services/cli-logger-forwarder.service.ts +1 -1
  244. package/src/services.ts +15 -15
  245. package/src/utils/check-required-types.ts +4 -7
  246. package/src/utils/pikku-cli-config.ts +69 -2
  247. package/src/utils/pikku-files-and-methods.ts +10 -13
  248. package/src/utils/schema-generator.ts +2 -2
  249. package/types/application-types.d.ts +1 -1
  250. package/types/config.d.ts +12 -1
  251. package/.pikku/function/pikku-functions.gen.ts +0 -84
  252. package/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts +0 -47
  253. package/dist/.pikku/function/pikku-functions.gen.d.ts +0 -1
  254. package/dist/.pikku/function/pikku-functions.gen.js +0 -83
  255. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.d.ts +0 -1
  256. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +0 -47
  257. package/dist/.pikku/schemas/schemas/PikkuRemoteInternalRPCInput.schema.json +0 -1
@@ -1,21 +1,19 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.11.1
2
+ * This file was generated by @pikku/cli@0.11.2
3
3
  */
4
4
  /**
5
5
  * Core function, middleware, and permission types for all wirings
6
6
  */
7
7
 
8
- import { CorePikkuFunctionConfig, CorePikkuPermission, CorePikkuMiddleware, CorePermissionGroup, addMiddleware as addMiddlewareCore, addPermission as addPermissionCore } from '@pikku/core'
8
+ import { CorePikkuFunctionConfig, CorePikkuPermission, CorePikkuMiddleware, CorePermissionGroup, addMiddleware as addMiddlewareCore, addPermission as addPermissionCore, PikkuWire, PickRequired } from '@pikku/core'
9
9
  import { CorePikkuFunction, CorePikkuFunctionSessionless } from '@pikku/core/function'
10
- import { PikkuChannel } from '@pikku/core/channel'
11
- import { PikkuMCP } from '@pikku/core/mcp'
12
10
 
13
11
  import type { UserSession } from '../../types/application-types.d.js'
14
12
  import type { SingletonServices } from '../../types/application-types.d.js'
15
13
  import type { Services } from '../../types/application-types.d.js'
16
14
  import type { Config } from '../../types/application-types.d.js'
17
15
  import type { TypedPikkuRPC } from '../rpc/pikku-rpc-wirings-map.internal.gen.d.js'
18
- import type { RequiredSingletonServices, RequiredSessionServices } from '../pikku-services.gen.js'
16
+ import type { RequiredSingletonServices, RequiredWireServices } from '../pikku-services.gen.js'
19
17
 
20
18
 
21
19
 
@@ -29,7 +27,7 @@ type Session = UserSession
29
27
  * @template In - The input type that the permission check will receive
30
28
  * @template RequiredServices - The services required for this permission check
31
29
  */
32
- export type PikkuPermission<In = unknown, RequiredServices extends Services = Services> = CorePikkuPermission<In, RequiredServices, Session>
30
+ export type PikkuPermission<In = unknown, RequiredServices extends Services = Services> = CorePikkuPermission<In, RequiredServices, PikkuWire<In, never, false, Session>>
33
31
 
34
32
  /**
35
33
  * Type-safe middleware definition that can access your application's services and session.
@@ -37,7 +35,7 @@ export type PikkuPermission<In = unknown, RequiredServices extends Services = Se
37
35
  *
38
36
  * @template RequiredServices - The services required for this middleware
39
37
  */
40
- export type PikkuMiddleware<RequiredServices extends SingletonServices = SingletonServices> = CorePikkuMiddleware<RequiredServices, Session>
38
+ export type PikkuMiddleware<RequiredServices extends SingletonServices = SingletonServices> = CorePikkuMiddleware<RequiredServices>
41
39
 
42
40
  /**
43
41
  * Configuration object for creating a permission with metadata
@@ -58,7 +56,8 @@ export type PikkuPermissionConfig<In = unknown, RequiredServices extends Service
58
56
  * @example
59
57
  * ```typescript
60
58
  * // Direct function syntax
61
- * const permission = pikkuPermission(({ logger }, data, session) => {
59
+ * const permission = pikkuPermission(async ({ logger }, data, { session }) => {
60
+ * const session = await session?.get()
62
61
  * return session?.role === 'admin'
63
62
  * })
64
63
  *
@@ -66,7 +65,8 @@ export type PikkuPermissionConfig<In = unknown, RequiredServices extends Service
66
65
  * const adminPermission = pikkuPermission({
67
66
  * name: 'Admin Permission',
68
67
  * description: 'Checks if user has admin role',
69
- * func: async ({ logger }, data, session) => {
68
+ * func: async ({ logger }, data, { session }) => {
69
+ * const session = await session?.get()
70
70
  * return session?.role === 'admin'
71
71
  * }
72
72
  * })
@@ -97,7 +97,7 @@ export type PikkuMiddlewareConfig<RequiredServices extends SingletonServices = S
97
97
  * @example
98
98
  * ```typescript
99
99
  * // Direct function syntax
100
- * const middleware = pikkuMiddleware(({ logger }, interactions, next) => {
100
+ * const middleware = pikkuMiddleware(({ logger }, wires, next) => {
101
101
  * logger.info('Middleware executed')
102
102
  * await next()
103
103
  * })
@@ -106,7 +106,7 @@ export type PikkuMiddlewareConfig<RequiredServices extends SingletonServices = S
106
106
  * const logMiddleware = pikkuMiddleware({
107
107
  * name: 'Request Logger',
108
108
  * description: 'Logs all incoming requests',
109
- * func: async ({ logger }, interactions, next) => {
109
+ * func: async ({ logger }, wires, next) => {
110
110
  * logger.info('Request started')
111
111
  * await next()
112
112
  * }
@@ -129,7 +129,7 @@ export const pikkuMiddleware = <RequiredServices extends SingletonServices = Sin
129
129
  * message,
130
130
  * level = 'info'
131
131
  * }) => {
132
- * return pikkuMiddleware(async ({ logger }, _interaction, next) => {
132
+ * return pikkuMiddleware(async ({ logger }, next) => {
133
133
  * logger[level](message)
134
134
  * await next()
135
135
  * })
@@ -151,8 +151,8 @@ export const pikkuMiddlewareFactory = <In = any>(
151
151
  * export const requireRole = pikkuPermissionFactory<{ role: string }>(({
152
152
  * role
153
153
  * }) => {
154
- * return pikkuPermission(async ({ logger }, data, session) => {
155
- * if (!session || session.role !== role) {
154
+ * return pikkuPermission(async ({ logger }, data, { initialSession }) => {
155
+ * if (!initialSession || initialSession.role !== role) {
156
156
  * logger.warn(`Permission denied: required role '${role}'`)
157
157
  * return false
158
158
  * }
@@ -173,25 +173,19 @@ export const pikkuPermissionFactory = <In = any>(
173
173
  *
174
174
  * @template In - The input type
175
175
  * @template Out - The output type that the function returns
176
- * @template ChannelData - Channel data type (null = optional channel)
177
- * @template MCPData - MCP data type (null = optional MCP)
178
176
  * @template RequiredServices - Services required by this function
179
177
  */
180
178
  export type PikkuFunctionSessionless<
181
179
  In = unknown,
182
180
  Out = never,
183
- ChannelData = null, // null means optional channel
184
- MCPData = null, // null means optional MCP
185
- RequiredServices extends Services = Omit<Services, 'rpc' | 'channel' | 'mcp'> &
186
- { rpc: TypedPikkuRPC } & (
187
- [ChannelData] extends [null]
188
- ? { channel?: PikkuChannel<unknown, Out> } // Optional channel
189
- : { channel: PikkuChannel<ChannelData, Out> } // Required channel with any data type
190
- ) & ([MCPData] extends [null]
191
- ? { mcp?: PikkuMCP } // Optional MCP
192
- : { mcp: PikkuMCP } // Required MCP
193
- )
194
- > = CorePikkuFunctionSessionless<In, Out, ChannelData, RequiredServices, Session>
181
+ RequiredWires extends keyof PikkuWire = never,
182
+ RequiredServices extends Services = Services
183
+ > = CorePikkuFunctionSessionless<
184
+ In,
185
+ Out,
186
+ RequiredServices,
187
+ PickRequired<PikkuWire<In, Out, false, Session, TypedPikkuRPC, null, any>, RequiredWires>
188
+ >
195
189
 
196
190
  /**
197
191
  * A session-aware API function that requires user authentication.
@@ -199,25 +193,19 @@ export type PikkuFunctionSessionless<
199
193
  *
200
194
  * @template In - The input type
201
195
  * @template Out - The output type that the function returns
202
- * @template ChannelData - Channel data type (null = optional channel)
203
- * @template MCPData - MCP data type (null = optional MCP)
204
196
  * @template RequiredServices - Services required by this function
205
197
  */
206
198
  export type PikkuFunction<
207
199
  In = unknown,
208
200
  Out = never,
209
- ChannelData = null, // null means optional channel
210
- MCPData = null, // null means optional MCP
211
- RequiredServices extends Services = Omit<Services, 'rpc' | 'channel' | 'mcp'> &
212
- { rpc: TypedPikkuRPC } & (
213
- [ChannelData] extends [null]
214
- ? { channel?: PikkuChannel<unknown, Out> } // Optional channel
215
- : { channel: PikkuChannel<ChannelData, Out> } // Required channel with any data type
216
- ) & ([MCPData] extends [null]
217
- ? { mcp?: PikkuMCP } // Optional MCP
218
- : { mcp: PikkuMCP } // Required MCP
219
- )
220
- > = CorePikkuFunction<In, Out, ChannelData, RequiredServices, Session>
201
+ RequiredWires extends keyof PikkuWire = 'session',
202
+ RequiredServices extends Services = Services
203
+ > = CorePikkuFunction<
204
+ In,
205
+ Out,
206
+ RequiredServices,
207
+ PickRequired<PikkuWire<In, Out, true, Session, TypedPikkuRPC, null, any>, RequiredWires>
208
+ >
221
209
 
222
210
  /**
223
211
  * Configuration object for Pikku functions with optional middleware, permissions, tags, and documentation.
@@ -225,16 +213,13 @@ export type PikkuFunction<
225
213
  *
226
214
  * @template In - The input type
227
215
  * @template Out - The output type
228
- * @template ChannelData - Channel data type
229
- * @template MCPData - MCP data type
230
216
  * @template PikkuFunc - The function type (can be narrowed to PikkuFunction or PikkuFunctionSessionless)
231
217
  */
232
218
  export type PikkuFunctionConfig<
233
219
  In = unknown,
234
220
  Out = unknown,
235
- ChannelData = unknown,
236
- MCPData = unknown,
237
- PikkuFunc extends PikkuFunction<In, Out, ChannelData, MCPData> | PikkuFunctionSessionless<In, Out, ChannelData, MCPData> = PikkuFunction<In, Out, ChannelData, MCPData> | PikkuFunctionSessionless<In, Out, ChannelData, MCPData>
221
+ RequiredWires extends keyof PikkuWire = never,
222
+ PikkuFunc extends PikkuFunction<In, Out, RequiredWires> | PikkuFunctionSessionless<In, Out, RequiredWires> = PikkuFunction<In, Out, RequiredWires> | PikkuFunctionSessionless<In, Out, RequiredWires>
238
223
  > = CorePikkuFunctionConfig<PikkuFunc, PikkuPermission<In>, PikkuMiddleware>
239
224
 
240
225
  /**
@@ -249,7 +234,8 @@ export type PikkuFunctionConfig<
249
234
  * @example
250
235
  * \`\`\`typescript
251
236
  * const createUser = pikkuFunc<{name: string, email: string}, {id: number, message: string}>({
252
- * func: async ({db, logger}, input) => {
237
+ * func: async ({db, logger}, input, wire) => {
238
+ * const session = await wire.session.get()
253
239
  * logger.info('Creating user', input.name)
254
240
  * const user = await db.users.create(input)
255
241
  * return {id: user.id, message: \`User \${input.name} created successfully\`}
@@ -260,8 +246,8 @@ export type PikkuFunctionConfig<
260
246
  */
261
247
  export const pikkuFunc = <In, Out = unknown>(
262
248
  func:
263
- | PikkuFunction<In, Out>
264
- | CorePikkuFunctionConfig<PikkuFunction<In, Out>, PikkuPermission<In>, PikkuMiddleware>
249
+ | PikkuFunction<In, Out, 'session' | 'rpc'>
250
+ | PikkuFunctionConfig<In, Out, 'session' | 'rpc'>
265
251
  ) => {
266
252
  return typeof func === 'function' ? { func } : func
267
253
  }
@@ -278,7 +264,7 @@ export const pikkuFunc = <In, Out = unknown>(
278
264
  * @example
279
265
  * \`\`\`typescript
280
266
  * const healthCheck = pikkuSessionlessFunc<void, {status: string, timestamp: string}>({
281
- * func: async ({logger}) => {
267
+ * func: async ({logger}, input) => {
282
268
  * logger.info('Health check requested')
283
269
  * return {status: 'healthy', timestamp: new Date().toISOString()}
284
270
  * },
@@ -288,8 +274,8 @@ export const pikkuFunc = <In, Out = unknown>(
288
274
  */
289
275
  export const pikkuSessionlessFunc = <In, Out = unknown>(
290
276
  func:
291
- | PikkuFunctionSessionless<In, Out>
292
- | CorePikkuFunctionConfig<PikkuFunctionSessionless<In, Out>, PikkuPermission<In>, PikkuMiddleware>
277
+ | PikkuFunctionSessionless<In, Out, 'session' | 'rpc'>
278
+ | PikkuFunctionConfig<In, Out, 'session' | 'rpc'>
293
279
  ) => {
294
280
  return typeof func === 'function' ? { func } : func
295
281
  }
@@ -312,8 +298,8 @@ export const pikkuSessionlessFunc = <In, Out = unknown>(
312
298
  */
313
299
  export const pikkuVoidFunc = (
314
300
  func:
315
- | PikkuFunctionSessionless<void, void>
316
- | CorePikkuFunctionConfig<PikkuFunctionSessionless<void, void>, PikkuPermission<void>>
301
+ | PikkuFunctionSessionless<void, void, 'session' | 'rpc'>
302
+ | PikkuFunctionConfig<void, void, 'session' | 'rpc'>
317
303
  ) => {
318
304
  return typeof func === 'function' ? { func } : func
319
305
  }
@@ -362,27 +348,27 @@ export const pikkuServices = (
362
348
  ) => func
363
349
 
364
350
  /**
365
- * Creates a Pikku session services factory.
351
+ * Creates a Pikku wire services factory.
366
352
  * Use this to define services that are created per-request/session.
367
353
  *
368
- * @param func - Session services factory function
369
- * @returns The session services factory function
354
+ * @param func - Wire services factory function
355
+ * @returns The wire services factory function
370
356
  *
371
357
  * @example
372
358
  * ```typescript
373
- * export const createSessionServices = pikkuSessionServices(async (services, interaction, session) => {
359
+ * export const createWireServices = pikkuWireServices(async (services, wire) => {
360
+ * const session = await wire.session?.get()
374
361
  * return {
375
362
  * userCache: new UserCache(session?.userId)
376
363
  * }
377
364
  * })
378
365
  * ```
379
366
  */
380
- export const pikkuSessionServices = (
367
+ export const pikkuWireServices = (
381
368
  func: (
382
369
  services: SingletonServices,
383
- interaction: any,
384
- session: Session | undefined
385
- ) => Promise<RequiredSessionServices>
370
+ wire: any
371
+ ) => Promise<RequiredWireServices>
386
372
  ) => func
387
373
 
388
374
  /**