@pikku/cli 0.12.83 → 0.12.85

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 (217) hide show
  1. package/console-app/assets/{index-CN_U0k_D.js → index-CEv-kj3J.js} +147 -150
  2. package/console-app/assets/index-CSzCJzBb.css +1 -0
  3. package/console-app/index.html +2 -2
  4. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +3 -2
  5. package/dist/.pikku/{http/pikku-http-wirings.gen.d.ts → auth/auth.types.d.ts} +1 -1
  6. package/dist/.pikku/auth/auth.types.js +5 -0
  7. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
  8. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  9. package/dist/.pikku/cli/pikku-cli-channel.d.ts +4 -4
  10. package/dist/.pikku/cli/pikku-cli-channel.js +1 -1
  11. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  12. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  13. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
  14. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
  15. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
  16. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  17. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
  18. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  19. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  20. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  21. package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
  22. package/dist/.pikku/console/pikku-node-types.gen.d.ts +1 -1
  23. package/dist/.pikku/function/pikku-function-types.gen.d.ts +24 -14
  24. package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
  25. package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
  26. package/dist/.pikku/function/pikku-functions-meta.gen.json +6 -21
  27. package/dist/.pikku/function/pikku-functions.gen.js +1 -3
  28. package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
  29. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  30. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
  31. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  32. package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -5
  33. package/dist/.pikku/pikku-bootstrap.gen.js +1 -5
  34. package/dist/.pikku/pikku-meta-service.gen.d.ts +1 -1
  35. package/dist/.pikku/pikku-meta-service.gen.js +1 -1
  36. package/dist/.pikku/pikku-services.gen.d.ts +1 -1
  37. package/dist/.pikku/pikku-types.gen.d.ts +1 -1
  38. package/dist/.pikku/pikku-types.gen.js +1 -1
  39. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  40. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  41. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
  42. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +1 -2
  43. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  44. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  45. package/dist/.pikku/schemas/register.gen.js +1 -7
  46. package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
  47. package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
  48. package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
  49. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
  50. package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
  51. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
  52. package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
  53. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
  54. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
  55. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
  56. package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
  57. package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
  58. package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
  59. package/dist/.pikku/workflow/meta/allWorkflow.gen.json +2 -2
  60. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +8 -2
  61. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
  62. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  63. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  64. package/dist/bin/pikku-bin.mjs +2 -2
  65. package/dist/src/fabric/fabric-commands.d.ts +50 -50
  66. package/dist/src/fabric/functions/add.function.d.ts +2 -2
  67. package/dist/src/fabric/functions/addon-verify.function.d.ts +2 -2
  68. package/dist/src/fabric/functions/db-schema.function.d.ts +2 -2
  69. package/dist/src/fabric/functions/deploy-list.function.d.ts +2 -2
  70. package/dist/src/fabric/functions/deploy-units.function.d.ts +2 -2
  71. package/dist/src/fabric/functions/deploy.function.d.ts +4 -4
  72. package/dist/src/fabric/functions/domains-add.function.d.ts +2 -2
  73. package/dist/src/fabric/functions/domains-list.function.d.ts +2 -2
  74. package/dist/src/fabric/functions/domains-remove.function.d.ts +2 -2
  75. package/dist/src/fabric/functions/errors.function.d.ts +2 -2
  76. package/dist/src/fabric/functions/init.function.d.ts +2 -2
  77. package/dist/src/fabric/functions/link.function.d.ts +2 -2
  78. package/dist/src/fabric/functions/llm-key.function.d.ts +2 -2
  79. package/dist/src/fabric/functions/login.function.d.ts +2 -2
  80. package/dist/src/fabric/functions/logs.function.d.ts +2 -2
  81. package/dist/src/fabric/functions/metrics.function.d.ts +2 -2
  82. package/dist/src/fabric/functions/publish.function.d.ts +2 -2
  83. package/dist/src/fabric/functions/rollback.function.d.ts +2 -2
  84. package/dist/src/fabric/functions/secrets-list.function.d.ts +2 -2
  85. package/dist/src/fabric/functions/secrets-set.function.d.ts +2 -2
  86. package/dist/src/fabric/functions/smoke.function.d.ts +2 -2
  87. package/dist/src/fabric/functions/status.function.d.ts +2 -2
  88. package/dist/src/fabric/functions/trace.function.d.ts +2 -2
  89. package/dist/src/fabric/functions/validate.function.d.ts +2 -2
  90. package/dist/src/functions/commands/all.d.ts +1 -1
  91. package/dist/src/functions/commands/audit.d.ts +1 -1
  92. package/dist/src/functions/commands/binary.d.ts +2 -2
  93. package/dist/src/functions/commands/bootstrap.d.ts +1 -1
  94. package/dist/src/functions/commands/db-audit.d.ts +1 -1
  95. package/dist/src/functions/commands/db-generate.d.ts +1 -1
  96. package/dist/src/functions/commands/db-migrate.d.ts +1 -1
  97. package/dist/src/functions/commands/db-reset.d.ts +1 -1
  98. package/dist/src/functions/commands/db-seed.d.ts +1 -1
  99. package/dist/src/functions/commands/deploy-apply.d.ts +2 -2
  100. package/dist/src/functions/commands/deploy-info.d.ts +1 -1
  101. package/dist/src/functions/commands/deploy-plan.d.ts +2 -2
  102. package/dist/src/functions/commands/dev.d.ts +2 -2
  103. package/dist/src/functions/commands/emails-init.d.ts +1 -1
  104. package/dist/src/functions/commands/enable.d.ts +8 -8
  105. package/dist/src/functions/commands/import-n8n.d.ts +2 -2
  106. package/dist/src/functions/commands/info.d.ts +4 -4
  107. package/dist/src/functions/commands/login.d.ts +5 -5
  108. package/dist/src/functions/commands/meta.d.ts +25 -25
  109. package/dist/src/functions/commands/new-addon.d.ts +13 -2
  110. package/dist/src/functions/commands/new-addon.js +38 -4
  111. package/dist/src/functions/commands/new-function.d.ts +2 -2
  112. package/dist/src/functions/commands/new-middleware.d.ts +2 -2
  113. package/dist/src/functions/commands/new-permission.d.ts +2 -2
  114. package/dist/src/functions/commands/new-wiring.d.ts +2 -2
  115. package/dist/src/functions/commands/pikku-command-bootstrap.d.ts +1 -1
  116. package/dist/src/functions/commands/pikku-command-summary.d.ts +1 -1
  117. package/dist/src/functions/commands/scenario.d.ts +3 -3
  118. package/dist/src/functions/commands/scopes-audit.d.ts +1 -1
  119. package/dist/src/functions/commands/scopes-prune.d.ts +2 -2
  120. package/dist/src/functions/commands/serve.d.ts +2 -2
  121. package/dist/src/functions/commands/skills.d.ts +4 -4
  122. package/dist/src/functions/commands/versions-check.d.ts +1 -1
  123. package/dist/src/functions/commands/versions-init.d.ts +2 -2
  124. package/dist/src/functions/commands/versions-update.d.ts +1 -1
  125. package/dist/src/functions/commands/watch.d.ts +2 -2
  126. package/dist/src/functions/commands/workspace-validate.d.ts +2 -2
  127. package/dist/src/functions/runtimes/fetch/index.d.ts +1 -1
  128. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.d.ts +1 -1
  129. package/dist/src/functions/runtimes/tanstack-start/pikku-command-tanstack-start.d.ts +1 -1
  130. package/dist/src/functions/runtimes/websocket/pikku-command-websocket-typed.d.ts +1 -1
  131. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.d.ts +1 -1
  132. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.js +3 -2
  133. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.d.ts +1 -1
  134. package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.d.ts +1 -1
  135. package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.d.ts +1 -1
  136. package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.js +3 -2
  137. package/dist/src/functions/wirings/ai-agent/serialize-public-agent.js +55 -16
  138. package/dist/src/functions/wirings/auth/pikku-command-auth.d.ts +2 -2
  139. package/dist/src/functions/wirings/channels/pikku-channels.d.ts +1 -1
  140. package/dist/src/functions/wirings/channels/pikku-command-channel-types.d.ts +1 -1
  141. package/dist/src/functions/wirings/channels/pikku-command-channels-map.d.ts +1 -1
  142. package/dist/src/functions/wirings/channels/pikku-command-channels.d.ts +1 -1
  143. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.d.ts +1 -1
  144. package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +1 -1
  145. package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -1
  146. package/dist/src/functions/wirings/console/pikku-command-console-functions.d.ts +1 -1
  147. package/dist/src/functions/wirings/console/pikku-command-node-types.d.ts +1 -1
  148. package/dist/src/functions/wirings/console/pikku-command-nodes-meta.d.ts +1 -1
  149. package/dist/src/functions/wirings/credentials/pikku-command-credentials.d.ts +1 -1
  150. package/dist/src/functions/wirings/emails/pikku-command-emails.d.ts +1 -1
  151. package/dist/src/functions/wirings/functions/pikku-command-addon-types.d.ts +1 -1
  152. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.d.ts +2 -2
  153. package/dist/src/functions/wirings/functions/pikku-command-function-types.d.ts +2 -2
  154. package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -1
  155. package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +2 -2
  156. package/dist/src/functions/wirings/functions/pikku-command-services.js +9 -2
  157. package/dist/src/functions/wirings/functions/schemas.d.ts +1 -1
  158. package/dist/src/functions/wirings/functions/serialize-function-types.js +23 -12
  159. package/dist/src/functions/wirings/gateway/pikku-command-gateway.d.ts +1 -1
  160. package/dist/src/functions/wirings/graph/pikku-command-graph-wirings.d.ts +1 -1
  161. package/dist/src/functions/wirings/http/pikku-command-http-map.d.ts +1 -1
  162. package/dist/src/functions/wirings/http/pikku-command-http-routes.d.ts +1 -1
  163. package/dist/src/functions/wirings/http/pikku-command-http-types.d.ts +1 -1
  164. package/dist/src/functions/wirings/http/pikku-command-openapi.d.ts +1 -1
  165. package/dist/src/functions/wirings/http/pikku-http-routes.d.ts +1 -1
  166. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.d.ts +1 -1
  167. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.d.ts +1 -1
  168. package/dist/src/functions/wirings/mcp/pikku-command-mcp.d.ts +1 -1
  169. package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -1
  170. package/dist/src/functions/wirings/package/pikku-command-package-types.d.ts +3 -3
  171. package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -1
  172. package/dist/src/functions/wirings/permissions/pikku-command-permissions.d.ts +1 -1
  173. package/dist/src/functions/wirings/queue/pikku-command-queue-map.d.ts +1 -1
  174. package/dist/src/functions/wirings/queue/pikku-command-queue-service.d.ts +1 -1
  175. package/dist/src/functions/wirings/queue/pikku-command-queue-types.d.ts +1 -1
  176. package/dist/src/functions/wirings/queue/pikku-command-queue.d.ts +1 -1
  177. package/dist/src/functions/wirings/queue/pikku-queue-map.d.ts +1 -1
  178. package/dist/src/functions/wirings/queue/pikku-queue.d.ts +1 -1
  179. package/dist/src/functions/wirings/realtime/pikku-command-events-scaffold.d.ts +1 -1
  180. package/dist/src/functions/wirings/realtime/pikku-command-realtime.d.ts +1 -1
  181. package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.d.ts +1 -1
  182. package/dist/src/functions/wirings/rpc/pikku-command-react-query.d.ts +1 -1
  183. package/dist/src/functions/wirings/rpc/pikku-command-remote-rpc.d.ts +1 -1
  184. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.d.ts +1 -1
  185. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +3 -3
  186. package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -1
  187. package/dist/src/functions/wirings/scenarios/pikku-command-scenario-functions.d.ts +1 -1
  188. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.d.ts +1 -1
  189. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.d.ts +1 -1
  190. package/dist/src/functions/wirings/scopes/pikku-command-scopes.d.ts +2 -2
  191. package/dist/src/functions/wirings/secrets/pikku-command-secrets.d.ts +1 -1
  192. package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.d.ts +2 -2
  193. package/dist/src/functions/wirings/triggers/pikku-command-trigger.d.ts +1 -1
  194. package/dist/src/functions/wirings/variables/pikku-command-variables.d.ts +1 -1
  195. package/dist/src/functions/wirings/webhook/pikku-command-webhook.d.ts +1 -1
  196. package/dist/src/functions/wirings/workflow/pikku-command-workflow-routes.d.ts +1 -1
  197. package/dist/src/functions/wirings/workflow/pikku-command-workflow.d.ts +1 -1
  198. package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +2 -1
  199. package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +1 -1
  200. package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +8 -2
  201. package/dist/tsconfig.tsbuildinfo +1 -1
  202. package/package.json +5 -5
  203. package/skills/pikku-ai-agent/SKILL.md +3 -3
  204. package/skills/pikku-services/SKILL.md +34 -0
  205. package/console-app/assets/index-CpHRlBt-.css +0 -1
  206. package/dist/.pikku/http/pikku-http-wirings-meta.gen.d.ts +0 -1
  207. package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +0 -6
  208. package/dist/.pikku/http/pikku-http-wirings-meta.gen.json +0 -26
  209. package/dist/.pikku/http/pikku-http-wirings.gen.js +0 -5
  210. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.d.ts +0 -1
  211. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +0 -6
  212. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +0 -10
  213. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +0 -4
  214. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +0 -5
  215. package/dist/.pikku/schemas/schemas/RemoteRPCHandlerInput.schema.json +0 -1
  216. package/dist/src/scaffold/rpc-remote.gen.d.ts +0 -10
  217. package/dist/src/scaffold/rpc-remote.gen.js +0 -27
@@ -2,6 +2,6 @@ export declare const pikkuFunctionTypes: import("#pikku").PikkuFunctionConfig<{
2
2
  bootstrap?: boolean;
3
3
  }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
4
4
  bootstrap?: boolean;
5
- }, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
5
+ }, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
6
6
  bootstrap?: boolean;
7
- }, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
7
+ }, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuFunctions: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuFunctions: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1,2 +1,2 @@
1
- export declare const serializeServicesMap: (allSingletonServices: string[], allWireServices: string[], requiredServices: Set<string>, forceRequiredServices: string[] | undefined, servicesImport: string, wireServicesImport: string, addonRequiredParentServices?: string[], authInjected?: boolean) => string;
2
- export declare const pikkuServices: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const serializeServicesMap: (allSingletonServices: string[], allWireServices: string[], requiredServices: Set<string>, forceRequiredServices: string[] | undefined, servicesImport: string, wireServicesImport: string, addonRequiredParentServices?: string[], authInjected?: boolean, agentScaffoldEnabled?: boolean) => string;
2
+ export declare const pikkuServices: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -3,7 +3,7 @@ import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
3
3
  import { checkRequiredTypes } from '../../../utils/check-required-types.js';
4
4
  import { writeFileInDir } from '../../../utils/file-writer.js';
5
5
  import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
6
- export const serializeServicesMap = (allSingletonServices, allWireServices, requiredServices, forceRequiredServices = [], servicesImport, wireServicesImport, addonRequiredParentServices = [], authInjected = false) => {
6
+ export const serializeServicesMap = (allSingletonServices, allWireServices, requiredServices, forceRequiredServices = [], servicesImport, wireServicesImport, addonRequiredParentServices = [], authInjected = false, agentScaffoldEnabled = false) => {
7
7
  // Use pre-aggregated services from inspector state
8
8
  // This includes services from:
9
9
  // - Wired functions (HTTP, channels, queues, schedulers, MCP, CLI, RPC)
@@ -40,6 +40,13 @@ export const serializeServicesMap = (allSingletonServices, allWireServices, requ
40
40
  if (authInjected) {
41
41
  usedServices.add('auth');
42
42
  }
43
+ // The generated public-agent permission (isThreadOwner) always destructures
44
+ // agentRunService, but agent.gen.ts is written after requiredServices is
45
+ // computed from inspecting hand-written sources, so the inspector never
46
+ // sees that usage — force it required whenever the agent scaffold runs.
47
+ if (agentScaffoldEnabled) {
48
+ usedServices.add('agentRunService');
49
+ }
43
50
  // Create singleton services map: all singleton services with true/false based on usage
44
51
  const singletonServicesMap = {};
45
52
  allSingletonServices.forEach((service) => {
@@ -111,7 +118,7 @@ export const pikkuServices = pikkuSessionlessFunc({
111
118
  }
112
119
  const servicesImport = `import type { ${singletonServicesType.type} } from '${getFileImportRelativePath(config.typesDeclarationFile, singletonServicesType.typePath, config.packageMappings)}'`;
113
120
  const wireServicesImport = `import type { ${wireServicesType.type} } from '${getFileImportRelativePath(config.typesDeclarationFile, wireServicesType.typePath, config.packageMappings)}'`;
114
- const servicesCode = serializeServicesMap(visitState.serviceAggregation.allSingletonServices, visitState.serviceAggregation.allWireServices, visitState.serviceAggregation.requiredServices, config.forceRequiredServices, servicesImport, wireServicesImport, config.addonName ? visitState.addonRequiredParentServices : [], Boolean(visitState.auth?.definition));
121
+ const servicesCode = serializeServicesMap(visitState.serviceAggregation.allSingletonServices, visitState.serviceAggregation.allWireServices, visitState.serviceAggregation.requiredServices, config.forceRequiredServices, servicesImport, wireServicesImport, config.addonName ? visitState.addonRequiredParentServices : [], Boolean(visitState.auth?.definition), Boolean(config.scaffold?.agent));
115
122
  await writeFileInDir(logger, config.servicesFile, servicesCode);
116
123
  },
117
124
  middleware: [
@@ -1 +1 @@
1
- export declare const pikkuSchemas: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuSchemas: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -42,6 +42,17 @@ ${wireServicesTypeName !== 'Services' ? `export type Services = ${wireServicesTy
42
42
  ${userSessionTypeName !== 'Session' ? `export type Session = ${userSessionTypeName}` : `export type { ${userSessionTypeName} as Session }`}
43
43
  ${configTypeImport.includes('Config type not found') ? 'export type Config = any' : ''}
44
44
 
45
+ /**
46
+ * The services a wired function actually receives. The inspector records which
47
+ * services each wired \`func\`, \`permissions\` and \`middleware\` destructures and
48
+ * emits them as \`RequiredSingletonServices\`; intersecting that here makes those
49
+ * services **non-optional** at every call site. A service is optional only when
50
+ * nothing destructures it — in which case it is never created either. This is
51
+ * why an \`if (!service)\` guard inside a function body is always dead code.
52
+ */
53
+ export type WiredSingletonServices = RequiredSingletonServices & SingletonServices
54
+ export type WiredServices = RequiredSingletonServices & Services
55
+
45
56
  /**
46
57
  * Inline node configuration for function definitions.
47
58
  */
@@ -59,7 +70,7 @@ export type NodeConfig = {
59
70
  * @template In - The input type that the permission check will receive
60
71
  * @template RequiredServices - The services required for this permission check
61
72
  */
62
- export type PikkuPermission<In = unknown, RequiredServices extends Services = Services> = CorePikkuPermission<In, RequiredServices, PikkuWire<In, never, false, Session>>
73
+ export type PikkuPermission<In = unknown, RequiredServices extends Services = WiredServices> = CorePikkuPermission<In, RequiredServices, PikkuWire<In, never, false, Session>>
63
74
 
64
75
  /**
65
76
  * Type-safe middleware definition that can access your application's services and session.
@@ -67,12 +78,12 @@ export type PikkuPermission<In = unknown, RequiredServices extends Services = Se
67
78
  *
68
79
  * @template RequiredServices - The services required for this middleware
69
80
  */
70
- export type PikkuMiddleware<RequiredServices extends SingletonServices = SingletonServices> = CorePikkuMiddleware<RequiredServices>
81
+ export type PikkuMiddleware<RequiredServices extends SingletonServices = WiredSingletonServices> = CorePikkuMiddleware<RequiredServices>
71
82
 
72
83
  /**
73
84
  * Configuration object for creating a permission with metadata
74
85
  */
75
- export type PikkuPermissionConfig<In = unknown, RequiredServices extends Services = Services> = {
86
+ export type PikkuPermissionConfig<In = unknown, RequiredServices extends Services = WiredServices> = {
76
87
  /** The permission function */
77
88
  func: PikkuPermission<In, RequiredServices>
78
89
  /** Optional human-readable name for the permission */
@@ -117,12 +128,12 @@ export const pikkuPermission = <In>(
117
128
  *
118
129
  * @template RequiredServices - The services required for this auth check
119
130
  */
120
- export type PikkuAuth<RequiredServices extends SingletonServices = SingletonServices> = CorePikkuAuth<RequiredServices, Session>
131
+ export type PikkuAuth<RequiredServices extends SingletonServices = WiredSingletonServices> = CorePikkuAuth<RequiredServices, Session>
121
132
 
122
133
  /**
123
134
  * Configuration object for creating an auth permission with metadata
124
135
  */
125
- export type PikkuAuthConfig<RequiredServices extends SingletonServices = SingletonServices> = CorePikkuAuthConfig<RequiredServices, Session>
136
+ export type PikkuAuthConfig<RequiredServices extends SingletonServices = WiredSingletonServices> = CorePikkuAuthConfig<RequiredServices, Session>
126
137
 
127
138
  /**
128
139
  * Factory function for creating auth-only permissions with tree-shaking support.
@@ -144,7 +155,7 @@ export type PikkuAuthConfig<RequiredServices extends SingletonServices = Singlet
144
155
  * })
145
156
  * \\\`\\\`\\\`
146
157
  */
147
- export const pikkuAuth = <RequiredServices extends SingletonServices = SingletonServices>(
158
+ export const pikkuAuth = <RequiredServices extends SingletonServices = WiredSingletonServices>(
148
159
  auth: PikkuAuth<RequiredServices> | PikkuAuthConfig<RequiredServices>
149
160
  ): PikkuPermission<any, any> => {
150
161
  return pikkuAuthCore(auth as any) as any
@@ -153,7 +164,7 @@ export const pikkuAuth = <RequiredServices extends SingletonServices = Singleton
153
164
  /**
154
165
  * Configuration object for creating middleware with metadata
155
166
  */
156
- export type PikkuMiddlewareConfig<RequiredServices extends SingletonServices = SingletonServices> = {
167
+ export type PikkuMiddlewareConfig<RequiredServices extends SingletonServices = WiredSingletonServices> = {
157
168
  /** The middleware function */
158
169
  func: PikkuMiddleware<RequiredServices>
159
170
  /** Optional human-readable name for the middleware */
@@ -185,7 +196,7 @@ export type PikkuMiddlewareConfig<RequiredServices extends SingletonServices = S
185
196
  * })
186
197
  * \`\`\`
187
198
  */
188
- export const pikkuMiddleware = <RequiredServices extends SingletonServices = SingletonServices>(
199
+ export const pikkuMiddleware = <RequiredServices extends SingletonServices = WiredSingletonServices>(
189
200
  middleware: PikkuMiddleware<RequiredServices> | PikkuMiddlewareConfig<RequiredServices>
190
201
  ): PikkuMiddleware<RequiredServices> => {
191
202
  return typeof middleware === 'function' ? middleware : middleware.func
@@ -246,7 +257,7 @@ export const pikkuPermissionFactory = <In = any>(
246
257
  * @template In - The input type (same as the function it describes)
247
258
  * @template RequiredServices - The services required for this description function
248
259
  */
249
- export type PikkuApprovalDescription<In = unknown, RequiredServices extends Services = Services> = (
260
+ export type PikkuApprovalDescription<In = unknown, RequiredServices extends Services = WiredServices> = (
250
261
  services: RequiredServices,
251
262
  data: In
252
263
  ) => Promise<string>
@@ -264,7 +275,7 @@ export type PikkuApprovalDescription<In = unknown, RequiredServices extends Serv
264
275
  * )
265
276
  * \`\`\`
266
277
  */
267
- export const pikkuApprovalDescription = <In = unknown, RequiredServices extends Services = Services>(
278
+ export const pikkuApprovalDescription = <In = unknown, RequiredServices extends Services = WiredServices>(
268
279
  fn: PikkuApprovalDescription<In, RequiredServices>
269
280
  ): PikkuApprovalDescription<In, RequiredServices> => {
270
281
  return fn
@@ -282,7 +293,7 @@ export type PikkuFunctionSessionless<
282
293
  In = unknown,
283
294
  Out = never,
284
295
  RequiredWires extends keyof PikkuWire = never,
285
- RequiredServices extends Services = Services
296
+ RequiredServices extends Services = WiredServices
286
297
  > = CorePikkuFunctionSessionless<
287
298
  In,
288
299
  Out,
@@ -303,7 +314,7 @@ export type PikkuFunction<
303
314
  In = unknown,
304
315
  Out = never,
305
316
  RequiredWires extends keyof PikkuWire = 'session',
306
- RequiredServices extends Services = Services
317
+ RequiredServices extends Services = WiredServices
307
318
  > = CorePikkuFunction<
308
319
  In,
309
320
  Out,
@@ -1 +1 @@
1
- export declare const pikkuGateway: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuGateway: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuGraphWirings: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuGraphWirings: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuHTTPMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuHTTPMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuCommandHTTP: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuCommandHTTP: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuHTTPTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuHTTPTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuOpenAPI: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuOpenAPI: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuHTTP: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuHTTP: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuMCPJSON: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuMCPJSON: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuMCPTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuMCPTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuMCP: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuMCP: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuMiddleware: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuMiddleware: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1,3 +1,3 @@
1
- export declare const pikkuSecretDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
2
- export declare const pikkuScopeDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
3
- export declare const pikkuVariableDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuSecretDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
2
+ export declare const pikkuScopeDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
3
+ export declare const pikkuVariableDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuPackage: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuPackage: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuPermissions: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuPermissions: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuCommandQueueMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuCommandQueueMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuQueueService: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuQueueService: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuQueueTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuQueueTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuCommandQueue: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuCommandQueue: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuQueueMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuQueueMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuQueue: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuQueue: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuEventsScaffold: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuEventsScaffold: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuRealtime: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuRealtime: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuPublicRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuPublicRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuReactQuery: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuReactQuery: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuRemoteRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuRemoteRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuRPCClient: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuRPCClient: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1,7 +1,7 @@
1
- export declare const pikkuRPCInternalMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
2
- export declare const pikkuRPCExposedMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuRPCInternalMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
2
+ export declare const pikkuRPCExposedMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
3
3
  /**
4
4
  * The `remote: true` surface — what a `wireRemoteAddon` consumer imports.
5
5
  * Mirrors the exposed map but is fed from `rpc.remoteMeta`.
6
6
  */
7
- export declare const pikkuRPCRemoteMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
7
+ export declare const pikkuRPCRemoteMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1,2 +1,2 @@
1
1
  export declare function filterInternalRPCMeta(internalMeta: Record<string, string>, functionsMeta: Record<string, unknown>): Record<string, string>;
2
- export declare const pikkuRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
2
+ export declare const pikkuRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuScenarioFunctions: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuScenarioFunctions: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuSchedulerTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuSchedulerTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuScheduler: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuScheduler: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -2,6 +2,6 @@ export declare const pikkuScopes: import("#pikku").PikkuFunctionConfig<{
2
2
  bootstrap?: boolean;
3
3
  }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
4
4
  bootstrap?: boolean;
5
- }, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
5
+ }, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
6
6
  bootstrap?: boolean;
7
- }, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
7
+ }, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuSecrets: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuSecrets: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -2,6 +2,6 @@ export declare const pikkuTriggerTypes: import("#pikku").PikkuFunctionConfig<{
2
2
  bootstrap?: boolean;
3
3
  }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
4
4
  bootstrap?: boolean;
5
- }, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
5
+ }, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
6
6
  bootstrap?: boolean;
7
- }, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
7
+ }, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuTrigger: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuTrigger: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuVariables: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuVariables: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuWebhook: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuWebhook: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuWorkflowRoutes: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
1
+ export declare const pikkuWorkflowRoutes: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1,5 +1,5 @@
1
1
  type WorkflowCommandInput = {
2
2
  bootstrap?: boolean;
3
3
  };
4
- export declare const pikkuWorkflow: import("#pikku").PikkuFunctionConfig<WorkflowCommandInput, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<WorkflowCommandInput, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<WorkflowCommandInput, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
4
+ export declare const pikkuWorkflow: import("#pikku").PikkuFunctionConfig<WorkflowCommandInput, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<WorkflowCommandInput, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<WorkflowCommandInput, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
5
5
  export {};
@@ -63,7 +63,8 @@ export const pikkuWorkflow = pikkuSessionlessFunc({
63
63
  const rpcMapImportPath = getFileImportRelativePath(workflowTypesFile, config.rpcInternalMapDeclarationFile, packageMappings);
64
64
  const workflowMapImportPath = getFileImportRelativePath(workflowTypesFile, workflowMapDeclarationFile, packageMappings);
65
65
  const agentMapImportPath = getFileImportRelativePath(workflowTypesFile, config.agentMapDeclarationFile, packageMappings);
66
- await writeFileInDir(logger, workflowTypesFile, serializeWorkflowTypes(functionTypesImportPath, rpcMapImportPath, workflowMapImportPath, agentMapImportPath));
66
+ const scopesImportPath = getFileImportRelativePath(workflowTypesFile, config.scopesFile, packageMappings);
67
+ await writeFileInDir(logger, workflowTypesFile, serializeWorkflowTypes(functionTypesImportPath, rpcMapImportPath, workflowMapImportPath, agentMapImportPath, scopesImportPath));
67
68
  const scenarioActors = config.scenarios?.actors;
68
69
  if (scenarioActors && Object.keys(scenarioActors).length > 0) {
69
70
  const agentMapImportPath = getFileImportRelativePath(config.scenarioActorsFile, config.agentMapDeclarationFile, packageMappings);
@@ -1 +1 @@
1
- export declare const serializeWorkflowTypes: (functionTypesImportPath: string, rpcMapImportPath: string, workflowMapImportPath: string, agentMapImportPath: string) => string;
1
+ export declare const serializeWorkflowTypes: (functionTypesImportPath: string, rpcMapImportPath: string, workflowMapImportPath: string, agentMapImportPath: string, scopesImportPath: string) => string;
@@ -1,4 +1,4 @@
1
- export const serializeWorkflowTypes = (functionTypesImportPath, rpcMapImportPath, workflowMapImportPath, agentMapImportPath) => {
1
+ export const serializeWorkflowTypes = (functionTypesImportPath, rpcMapImportPath, workflowMapImportPath, agentMapImportPath, scopesImportPath) => {
2
2
  return `import { WorkflowCancelledException } from '@pikku/core/workflow'
3
3
  import { template } from '@pikku/core/workflow'
4
4
  import {
@@ -42,6 +42,7 @@ export type TypedScenario = TypedWorkflow & Omit<PikkuScenarioWire, keyof PikkuW
42
42
 
43
43
  import type { StandardSchemaV1 } from '@standard-schema/spec'
44
44
  import type { InferSchemaOutput, PikkuPermission, PikkuMiddleware, NodeConfig, PikkuApprovalDescription } from '${functionTypesImportPath}'
45
+ import type { ScopeId } from '${scopesImportPath}'
45
46
  import { PikkuError } from '@pikku/core/errors'
46
47
  import type { CorePermissionGroup } from '@pikku/core'
47
48
 
@@ -76,6 +77,11 @@ export type PikkuWorkflowConfigWithSchema<
76
77
  OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown
77
78
  >
78
79
  auth?: boolean
80
+ /**
81
+ * Scopes the session must hold to run this workflow. All of them are required
82
+ * (AND), and they are checked before \`permissions\`.
83
+ */
84
+ scopes?: ScopeId[]
79
85
  permissions?: InputSchema extends StandardSchemaV1 ? CorePermissionGroup<PikkuPermission<InferSchemaOutput<InputSchema>>> : undefined
80
86
  middleware?: PikkuMiddleware[]
81
87
  input?: InputSchema
@@ -118,7 +124,7 @@ export function pikkuWorkflowComplexFunc(func: any) {
118
124
  export type PikkuScenarioConfigWithSchema<
119
125
  InputSchema extends StandardSchemaV1 | undefined = undefined,
120
126
  OutputSchema extends StandardSchemaV1 | undefined = undefined
121
- > = Omit<PikkuWorkflowConfigWithSchema<InputSchema, OutputSchema>, 'func'> & {
127
+ > = Omit<PikkuWorkflowConfigWithSchema<InputSchema, OutputSchema>, 'func' | 'auth' | 'scopes' | 'permissions'> & {
122
128
  func: PikkuFunctionScenario<
123
129
  InputSchema extends StandardSchemaV1 ? InferSchemaOutput<InputSchema> : unknown,
124
130
  OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown