@pikku/cli 0.12.16 → 0.12.19

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 (127) hide show
  1. package/cli.schema.json +1 -1
  2. package/console-app/assets/{index-DvrDbftC.css → index-BpY2pSuA.css} +10 -1
  3. package/console-app/assets/index-DAQHIRK3.js +717 -0
  4. package/console-app/index.html +2 -2
  5. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
  6. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
  7. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  8. package/dist/.pikku/cli/pikku-cli-channel.js +6 -1
  9. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  10. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  11. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
  12. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  13. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
  14. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +7 -1
  15. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  16. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  17. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  18. package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
  19. package/dist/.pikku/console/pikku-node-types.gen.d.ts +1 -1
  20. package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
  21. package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
  22. package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
  23. package/dist/.pikku/function/pikku-functions-meta.gen.json +204 -67
  24. package/dist/.pikku/function/pikku-functions.gen.js +1 -1
  25. package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
  26. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  27. package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +1 -1
  28. package/dist/.pikku/http/pikku-http-wirings-meta.gen.json +62 -1
  29. package/dist/.pikku/http/pikku-http-wirings.gen.d.ts +2 -1
  30. package/dist/.pikku/http/pikku-http-wirings.gen.js +2 -1
  31. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
  32. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  33. package/dist/.pikku/pikku-bootstrap.gen.d.ts +2 -1
  34. package/dist/.pikku/pikku-bootstrap.gen.js +2 -1
  35. package/dist/.pikku/pikku-meta-service.gen.d.ts +1 -1
  36. package/dist/.pikku/pikku-meta-service.gen.js +1 -1
  37. package/dist/.pikku/pikku-services.gen.d.ts +6 -6
  38. package/dist/.pikku/pikku-services.gen.js +4 -4
  39. package/dist/.pikku/pikku-types.gen.d.ts +1 -1
  40. package/dist/.pikku/pikku-types.gen.js +1 -1
  41. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  42. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  43. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
  44. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +15 -8
  45. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  46. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  47. package/dist/.pikku/schemas/register.gen.js +21 -3
  48. package/dist/.pikku/schemas/schemas/GraphStarterInput.schema.json +1 -0
  49. package/dist/.pikku/schemas/schemas/GraphStarterOutput.schema.json +1 -0
  50. package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
  51. package/dist/.pikku/schemas/schemas/WorkflowRunStatus.schema.json +1 -0
  52. package/dist/.pikku/schemas/schemas/WorkflowRunnerInput.schema.json +1 -0
  53. package/dist/.pikku/schemas/schemas/WorkflowStarterInput.schema.json +1 -0
  54. package/dist/.pikku/schemas/schemas/WorkflowStarterOutput.schema.json +1 -0
  55. package/dist/.pikku/schemas/schemas/WorkflowStatusCheckerInput.schema.json +1 -0
  56. package/dist/.pikku/schemas/schemas/WorkflowStatusStreamFullInput.schema.json +1 -0
  57. package/dist/.pikku/schemas/schemas/WorkflowStatusStreamInput.schema.json +1 -0
  58. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
  59. package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
  60. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
  61. package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
  62. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
  63. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
  64. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
  65. package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
  66. package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
  67. package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
  68. package/dist/.pikku/workflow/meta/allWorkflow.gen.json +442 -0
  69. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
  70. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
  71. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +5 -2
  72. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +2 -4
  73. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +5 -2
  74. package/dist/src/cli.wiring.js +5 -0
  75. package/dist/src/deploy/analyzer/analyzer.d.ts +1 -0
  76. package/dist/src/deploy/analyzer/analyzer.js +18 -15
  77. package/dist/src/deploy/codegen/per-unit-codegen.js +3 -3
  78. package/dist/src/functions/commands/all.js +2 -186
  79. package/dist/src/functions/commands/bootstrap.js +10 -10
  80. package/dist/src/functions/commands/console.js +1 -1
  81. package/dist/src/functions/commands/watch.js +1 -1
  82. package/dist/src/functions/wirings/rpc/pikku-command-react-query.d.ts +1 -0
  83. package/dist/src/functions/wirings/rpc/pikku-command-react-query.js +33 -0
  84. package/dist/src/functions/wirings/rpc/serialize-react-query-hooks.d.ts +1 -0
  85. package/dist/src/functions/wirings/rpc/serialize-react-query-hooks.js +108 -0
  86. package/dist/src/functions/wirings/rpc/serialize-rpc-wrapper.js +3 -3
  87. package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.js +6 -4
  88. package/dist/src/functions/wirings/workflow/serialize-workflow-routes.js +126 -27
  89. package/dist/src/functions/workflows/all.workflow.d.ts +1 -0
  90. package/dist/src/functions/workflows/all.workflow.js +212 -0
  91. package/dist/src/scaffold/rpc-remote.gen.js +1 -1
  92. package/dist/src/scaffold/workflow-routes.gen.d.ts +84 -0
  93. package/dist/src/scaffold/workflow-routes.gen.js +197 -0
  94. package/dist/src/services.js +2 -0
  95. package/dist/src/utils/pikku-cli-config.js +1 -0
  96. package/dist/tsconfig.tsbuildinfo +1 -1
  97. package/package.json +4 -6
  98. package/console-app/assets/index-CzMWJFqj.js +0 -700
  99. package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.d.ts +0 -1
  100. package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.js +0 -6
  101. package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.json +0 -3
  102. package/dist/.pikku/agent/pikku-agent-wirings.gen.d.ts +0 -4
  103. package/dist/.pikku/agent/pikku-agent-wirings.gen.js +0 -4
  104. package/dist/.pikku/channel/pikku-channels-meta.gen.d.ts +0 -1
  105. package/dist/.pikku/channel/pikku-channels-meta.gen.js +0 -6
  106. package/dist/.pikku/channel/pikku-channels-meta.gen.json +0 -1
  107. package/dist/.pikku/channel/pikku-channels.gen.d.ts +0 -4
  108. package/dist/.pikku/channel/pikku-channels.gen.js +0 -5
  109. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.d.ts +0 -1
  110. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +0 -8
  111. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +0 -5
  112. package/dist/.pikku/mcp/pikku-mcp-wirings.gen.d.ts +0 -4
  113. package/dist/.pikku/mcp/pikku-mcp-wirings.gen.js +0 -5
  114. package/dist/.pikku/pikku-websocket.gen.d.ts +0 -45
  115. package/dist/.pikku/pikku-websocket.gen.js +0 -63
  116. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.d.ts +0 -1
  117. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +0 -6
  118. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +0 -1
  119. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +0 -4
  120. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +0 -5
  121. package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.d.ts +0 -17
  122. package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.js +0 -25
  123. package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.d.ts +0 -1
  124. package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.js +0 -6
  125. package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +0 -1
  126. package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.d.ts +0 -4
  127. package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.js +0 -5
@@ -0,0 +1,442 @@
1
+ {
2
+ "name": "allWorkflow",
3
+ "pikkuFuncId": "allWorkflow",
4
+ "source": "complex",
5
+ "nodes": {
6
+ "Bootstrap inspect": {
7
+ "nodeId": "Bootstrap inspect",
8
+ "flow": "inline",
9
+ "next": "Bootstrap function types"
10
+ },
11
+ "Bootstrap function types": {
12
+ "nodeId": "Bootstrap function types",
13
+ "rpcName": "pikkuFunctionTypes",
14
+ "next": "Bootstrap function types split",
15
+ "stepHash": "c293829b03c7"
16
+ },
17
+ "Bootstrap function types split": {
18
+ "nodeId": "Bootstrap function types split",
19
+ "rpcName": "pikkuFunctionTypesSplit",
20
+ "next": "Bootstrap HTTP types",
21
+ "stepHash": "a59a35fde030"
22
+ },
23
+ "Bootstrap HTTP types": {
24
+ "nodeId": "Bootstrap HTTP types",
25
+ "rpcName": "pikkuHTTPTypes",
26
+ "next": "Bootstrap channel types",
27
+ "stepHash": "ef454ef713da"
28
+ },
29
+ "Bootstrap channel types": {
30
+ "nodeId": "Bootstrap channel types",
31
+ "rpcName": "pikkuChannelTypes",
32
+ "next": "Bootstrap scheduler types",
33
+ "stepHash": "106bc6b98409"
34
+ },
35
+ "Bootstrap scheduler types": {
36
+ "nodeId": "Bootstrap scheduler types",
37
+ "rpcName": "pikkuSchedulerTypes",
38
+ "next": "Bootstrap queue types",
39
+ "stepHash": "23bd821f9ee3"
40
+ },
41
+ "Bootstrap queue types": {
42
+ "nodeId": "Bootstrap queue types",
43
+ "rpcName": "pikkuQueueTypes",
44
+ "next": "Bootstrap workflow",
45
+ "stepHash": "46cd97f1fe31"
46
+ },
47
+ "Bootstrap workflow": {
48
+ "nodeId": "Bootstrap workflow",
49
+ "rpcName": "pikkuWorkflow",
50
+ "next": "Bootstrap MCP types",
51
+ "stepHash": "09f085dde448"
52
+ },
53
+ "Bootstrap MCP types": {
54
+ "nodeId": "Bootstrap MCP types",
55
+ "rpcName": "pikkuMCPTypes",
56
+ "next": "Bootstrap AI agent types",
57
+ "stepHash": "ef01efd74427"
58
+ },
59
+ "Bootstrap AI agent types": {
60
+ "nodeId": "Bootstrap AI agent types",
61
+ "rpcName": "pikkuAIAgentTypes",
62
+ "next": "Bootstrap CLI types",
63
+ "stepHash": "ccd99a28ffd6"
64
+ },
65
+ "Bootstrap CLI types": {
66
+ "nodeId": "Bootstrap CLI types",
67
+ "rpcName": "pikkuCLITypes",
68
+ "next": "Bootstrap re-inspect",
69
+ "stepHash": "bc3a92886cb6"
70
+ },
71
+ "Bootstrap re-inspect": {
72
+ "nodeId": "Bootstrap re-inspect",
73
+ "flow": "inline",
74
+ "next": "Generate function types"
75
+ },
76
+ "Generate function types": {
77
+ "nodeId": "Generate function types",
78
+ "rpcName": "pikkuFunctionTypes",
79
+ "next": "Re-inspect after types",
80
+ "stepHash": "3baeae2050fd"
81
+ },
82
+ "Re-inspect after types": {
83
+ "nodeId": "Re-inspect after types",
84
+ "flow": "inline",
85
+ "next": "Function types split"
86
+ },
87
+ "Function types split": {
88
+ "nodeId": "Function types split",
89
+ "rpcName": "pikkuFunctionTypesSplit",
90
+ "next": "Trigger types",
91
+ "stepHash": "3ce567580a38"
92
+ },
93
+ "Trigger types": {
94
+ "nodeId": "Trigger types",
95
+ "rpcName": "pikkuTriggerTypes",
96
+ "next": "AI agent types",
97
+ "stepHash": "01f3d641f2cf"
98
+ },
99
+ "AI agent types": {
100
+ "nodeId": "AI agent types",
101
+ "rpcName": "pikkuAIAgentTypes",
102
+ "next": "HTTP types",
103
+ "stepHash": "a0bf0ea14360"
104
+ },
105
+ "HTTP types": {
106
+ "nodeId": "HTTP types",
107
+ "rpcName": "pikkuHTTPTypes",
108
+ "next": "Channel types",
109
+ "stepHash": "f65b70567492"
110
+ },
111
+ "Channel types": {
112
+ "nodeId": "Channel types",
113
+ "rpcName": "pikkuChannelTypes",
114
+ "next": "Scheduler types",
115
+ "stepHash": "61560f2f0c8d"
116
+ },
117
+ "Scheduler types": {
118
+ "nodeId": "Scheduler types",
119
+ "rpcName": "pikkuSchedulerTypes",
120
+ "next": "Queue types",
121
+ "stepHash": "8f484a113d9c"
122
+ },
123
+ "Queue types": {
124
+ "nodeId": "Queue types",
125
+ "rpcName": "pikkuQueueTypes",
126
+ "next": "MCP types",
127
+ "stepHash": "32340a713206"
128
+ },
129
+ "MCP types": {
130
+ "nodeId": "MCP types",
131
+ "rpcName": "pikkuMCPTypes",
132
+ "next": "CLI types",
133
+ "stepHash": "685cbd3c2f83"
134
+ },
135
+ "CLI types": {
136
+ "nodeId": "CLI types",
137
+ "rpcName": "pikkuCLITypes",
138
+ "next": "Middleware",
139
+ "stepHash": "faf88549ab64"
140
+ },
141
+ "Middleware": {
142
+ "nodeId": "Middleware",
143
+ "rpcName": "pikkuMiddleware",
144
+ "next": "Permissions",
145
+ "stepHash": "69ff86ef7ac6"
146
+ },
147
+ "Permissions": {
148
+ "nodeId": "Permissions",
149
+ "rpcName": "pikkuPermissions",
150
+ "next": "Services",
151
+ "stepHash": "517642320b1f"
152
+ },
153
+ "Services": {
154
+ "nodeId": "Services",
155
+ "rpcName": "pikkuServices",
156
+ "next": "Package",
157
+ "stepHash": "c7aaeac0b6e2"
158
+ },
159
+ "Package": {
160
+ "nodeId": "Package",
161
+ "rpcName": "pikkuPackage",
162
+ "next": "RPC",
163
+ "stepHash": "8d10339db08d"
164
+ },
165
+ "RPC": {
166
+ "nodeId": "RPC",
167
+ "rpcName": "pikkuRPC",
168
+ "next": "AI agent",
169
+ "stepHash": "9c7ab6d16eb5"
170
+ },
171
+ "AI agent": {
172
+ "nodeId": "AI agent",
173
+ "rpcName": "pikkuAIAgent",
174
+ "next": "Public agent scaffold",
175
+ "stepHash": "b40cd11dc611"
176
+ },
177
+ "Public agent scaffold": {
178
+ "nodeId": "Public agent scaffold",
179
+ "rpcName": "pikkuPublicAgent",
180
+ "next": "Public RPC",
181
+ "stepHash": "64d807033007"
182
+ },
183
+ "Public RPC": {
184
+ "nodeId": "Public RPC",
185
+ "rpcName": "pikkuPublicRPC",
186
+ "next": "Console functions",
187
+ "stepHash": "4f8cc6772ba9"
188
+ },
189
+ "Console functions": {
190
+ "nodeId": "Console functions",
191
+ "rpcName": "pikkuConsoleFunctions",
192
+ "next": "Node types",
193
+ "stepHash": "45587b4864bf"
194
+ },
195
+ "Node types": {
196
+ "nodeId": "Node types",
197
+ "rpcName": "pikkuNodeTypes",
198
+ "next": "Secret definition types",
199
+ "stepHash": "fa0e98ce519c"
200
+ },
201
+ "Secret definition types": {
202
+ "nodeId": "Secret definition types",
203
+ "rpcName": "pikkuSecretDefinitionTypes",
204
+ "next": "Secrets",
205
+ "stepHash": "fbfdf42a3974"
206
+ },
207
+ "Secrets": {
208
+ "nodeId": "Secrets",
209
+ "rpcName": "pikkuSecrets",
210
+ "next": "Credentials",
211
+ "stepHash": "dc203fbd8f4d"
212
+ },
213
+ "Credentials": {
214
+ "nodeId": "Credentials",
215
+ "rpcName": "pikkuCredentials",
216
+ "next": "Variable definition types",
217
+ "stepHash": "3e4cb364d6f2"
218
+ },
219
+ "Variable definition types": {
220
+ "nodeId": "Variable definition types",
221
+ "rpcName": "pikkuVariableDefinitionTypes",
222
+ "next": "Variables",
223
+ "stepHash": "f0b1834d8da2"
224
+ },
225
+ "Variables": {
226
+ "nodeId": "Variables",
227
+ "rpcName": "pikkuVariables",
228
+ "next": "Addon types",
229
+ "stepHash": "a2bbb318d12b"
230
+ },
231
+ "Addon types": {
232
+ "nodeId": "Addon types",
233
+ "rpcName": "pikkuAddonTypes",
234
+ "next": "Re-inspect after agents",
235
+ "stepHash": "14f255190658"
236
+ },
237
+ "Re-inspect after agents": {
238
+ "nodeId": "Re-inspect after agents",
239
+ "flow": "inline",
240
+ "next": "Schemas"
241
+ },
242
+ "Schemas": {
243
+ "nodeId": "Schemas",
244
+ "rpcName": "pikkuSchemas",
245
+ "next": "RPC internal map",
246
+ "stepHash": "1d81976436e8"
247
+ },
248
+ "RPC internal map": {
249
+ "nodeId": "RPC internal map",
250
+ "rpcName": "pikkuRPCInternalMap",
251
+ "next": "RPC exposed map",
252
+ "stepHash": "71c071d4e0af"
253
+ },
254
+ "RPC exposed map": {
255
+ "nodeId": "RPC exposed map",
256
+ "rpcName": "pikkuRPCExposedMap",
257
+ "next": "Workflow",
258
+ "stepHash": "20b6c409e9fb"
259
+ },
260
+ "Workflow": {
261
+ "nodeId": "Workflow",
262
+ "rpcName": "pikkuWorkflow",
263
+ "next": "Remote RPC",
264
+ "stepHash": "21f5ac3be507"
265
+ },
266
+ "Remote RPC": {
267
+ "nodeId": "Remote RPC",
268
+ "rpcName": "pikkuRemoteRPC",
269
+ "next": "Workflow routes",
270
+ "stepHash": "82751ee2ed4b"
271
+ },
272
+ "Workflow routes": {
273
+ "nodeId": "Workflow routes",
274
+ "rpcName": "pikkuWorkflowRoutes",
275
+ "next": "Re-inspect after workflows",
276
+ "stepHash": "41b3fa734593"
277
+ },
278
+ "Re-inspect after workflows": {
279
+ "nodeId": "Re-inspect after workflows",
280
+ "flow": "inline",
281
+ "next": "Re-generate schemas"
282
+ },
283
+ "Re-generate schemas": {
284
+ "nodeId": "Re-generate schemas",
285
+ "rpcName": "pikkuSchemas",
286
+ "next": "HTTP",
287
+ "stepHash": "6c1b632628da"
288
+ },
289
+ "HTTP": {
290
+ "nodeId": "HTTP",
291
+ "rpcName": "pikkuHTTP",
292
+ "next": "Scheduler",
293
+ "stepHash": "3a613fe4489a"
294
+ },
295
+ "Scheduler": {
296
+ "nodeId": "Scheduler",
297
+ "rpcName": "pikkuScheduler",
298
+ "next": "Trigger",
299
+ "stepHash": "292dba63a8fa"
300
+ },
301
+ "Trigger": {
302
+ "nodeId": "Trigger",
303
+ "rpcName": "pikkuTrigger",
304
+ "next": "HTTP map",
305
+ "stepHash": "296e642d68de"
306
+ },
307
+ "HTTP map": {
308
+ "nodeId": "HTTP map",
309
+ "rpcName": "pikkuHTTPMap",
310
+ "next": "Fetch",
311
+ "stepHash": "9a365c798484"
312
+ },
313
+ "Fetch": {
314
+ "nodeId": "Fetch",
315
+ "rpcName": "pikkuFetch",
316
+ "next": "RPC client",
317
+ "stepHash": "4102b66eb092"
318
+ },
319
+ "RPC client": {
320
+ "nodeId": "RPC client",
321
+ "rpcName": "pikkuRPCClient",
322
+ "next": "Functions",
323
+ "stepHash": "7f48f64ea306"
324
+ },
325
+ "Functions": {
326
+ "nodeId": "Functions",
327
+ "rpcName": "pikkuFunctions",
328
+ "next": "Queue",
329
+ "stepHash": "90cd834fe20e"
330
+ },
331
+ "Queue": {
332
+ "nodeId": "Queue",
333
+ "rpcName": "pikkuQueue",
334
+ "next": "Channels",
335
+ "stepHash": "6d9159ddfa71"
336
+ },
337
+ "Channels": {
338
+ "nodeId": "Channels",
339
+ "rpcName": "pikkuChannels",
340
+ "next": "Gateway",
341
+ "stepHash": "65df9df381cf"
342
+ },
343
+ "Gateway": {
344
+ "nodeId": "Gateway",
345
+ "rpcName": "pikkuGateway",
346
+ "next": "MCP",
347
+ "stepHash": "4aba6d4affbd"
348
+ },
349
+ "MCP": {
350
+ "nodeId": "MCP",
351
+ "rpcName": "pikkuMCP",
352
+ "next": "CLI",
353
+ "stepHash": "fd4e9c89c777"
354
+ },
355
+ "CLI": {
356
+ "nodeId": "CLI",
357
+ "rpcName": "pikkuCLI",
358
+ "next": "Queue map",
359
+ "stepHash": "8b5a8e81446a"
360
+ },
361
+ "Queue map": {
362
+ "nodeId": "Queue map",
363
+ "rpcName": "pikkuQueueMap",
364
+ "next": "Queue service",
365
+ "stepHash": "ea903f8f068c"
366
+ },
367
+ "Queue service": {
368
+ "nodeId": "Queue service",
369
+ "rpcName": "pikkuQueueService",
370
+ "next": "Channels map",
371
+ "stepHash": "b142dd291e94"
372
+ },
373
+ "Channels map": {
374
+ "nodeId": "Channels map",
375
+ "rpcName": "pikkuChannelsMap",
376
+ "next": "WebSocket typed",
377
+ "stepHash": "7b33a77cf0b4"
378
+ },
379
+ "WebSocket typed": {
380
+ "nodeId": "WebSocket typed",
381
+ "rpcName": "pikkuWebSocketTyped",
382
+ "next": "MCP JSON",
383
+ "stepHash": "388552be75e1"
384
+ },
385
+ "MCP JSON": {
386
+ "nodeId": "MCP JSON",
387
+ "rpcName": "pikkuMCPJSON",
388
+ "next": "CLI entry",
389
+ "stepHash": "cd3ac7d24ff5"
390
+ },
391
+ "CLI entry": {
392
+ "nodeId": "CLI entry",
393
+ "rpcName": "pikkuCLIEntry",
394
+ "next": "Nodes meta",
395
+ "stepHash": "ad1933f9dc1b"
396
+ },
397
+ "Nodes meta": {
398
+ "nodeId": "Nodes meta",
399
+ "rpcName": "pikkuNodesMeta",
400
+ "next": "Next.js",
401
+ "stepHash": "5044787f9c0c"
402
+ },
403
+ "Next.js": {
404
+ "nodeId": "Next.js",
405
+ "rpcName": "pikkuNext",
406
+ "next": "OpenAPI re-inspect",
407
+ "stepHash": "23340e44049b"
408
+ },
409
+ "OpenAPI re-inspect": {
410
+ "nodeId": "OpenAPI re-inspect",
411
+ "flow": "inline",
412
+ "next": "OpenAPI"
413
+ },
414
+ "OpenAPI": {
415
+ "nodeId": "OpenAPI",
416
+ "rpcName": "pikkuOpenAPI",
417
+ "next": "Versions update",
418
+ "stepHash": "dde9b4dac1a8"
419
+ },
420
+ "Versions update": {
421
+ "nodeId": "Versions update",
422
+ "rpcName": "pikkuVersionsUpdate",
423
+ "next": "Bootstrap",
424
+ "stepHash": "181615f07c8d"
425
+ },
426
+ "Bootstrap": {
427
+ "nodeId": "Bootstrap",
428
+ "rpcName": "pikkuBootstrap",
429
+ "next": "Summary",
430
+ "stepHash": "3d656d5f2b03"
431
+ },
432
+ "Summary": {
433
+ "nodeId": "Summary",
434
+ "rpcName": "pikkuSummary",
435
+ "stepHash": "a6c8f33339e2"
436
+ }
437
+ },
438
+ "entryNodeIds": [
439
+ "Bootstrap inspect"
440
+ ],
441
+ "graphHash": "fd131e164f8a"
442
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.16
2
+ * This file was generated by @pikku/cli@0.12.19
3
3
  */
4
4
  import { WorkflowCancelledException } from '@pikku/core/workflow';
5
5
  import { template } from '@pikku/core/workflow';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.16
2
+ * This file was generated by @pikku/cli@0.12.19
3
3
  */
4
4
  import { WorkflowCancelledException } from '@pikku/core/workflow';
5
5
  import { template } from '@pikku/core/workflow';
@@ -1,6 +1,9 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.16
2
+ * This file was generated by @pikku/cli@0.12.19
3
3
  */
4
4
  import { pikkuState } from '@pikku/core/internal';
5
- const workflowsMeta = {};
5
+ import allWorkflowMeta from './meta/allWorkflow.gen.json' with { type: 'json' };
6
+ const workflowsMeta = {
7
+ 'allWorkflow': allWorkflowMeta,
8
+ };
6
9
  pikkuState(null, 'workflows', 'meta', workflowsMeta);
@@ -1,4 +1,2 @@
1
- export {};
2
- /**
3
- * This file was generated by @pikku/cli@0.12.16
4
- */
1
+ import './pikku-workflow-wirings-meta.gen.js';
2
+ export type WorkflowNames = 'allWorkflow';
@@ -1,4 +1,7 @@
1
- export {};
2
1
  /**
3
- * This file was generated by @pikku/cli@0.12.16
2
+ * This file was generated by @pikku/cli@0.12.19
4
3
  */
4
+ import { addWorkflow } from '@pikku/core/workflow';
5
+ import './pikku-workflow-wirings-meta.gen.js';
6
+ import { allWorkflow } from '../../src/functions/workflows/all.workflow.js';
7
+ addWorkflow('allWorkflow', allWorkflow);
@@ -2,6 +2,7 @@ import { pikkuSchemas } from './functions/wirings/functions/schemas.js';
2
2
  import { pikkuFetch } from './functions/runtimes/fetch/index.js';
3
3
  import { pikkuWebSocketTyped } from './functions/runtimes/websocket/pikku-command-websocket-typed.js';
4
4
  import { pikkuRPCClient } from './functions/wirings/rpc/pikku-command-rpc-client.js';
5
+ import { pikkuReactQuery } from './functions/wirings/rpc/pikku-command-react-query.js';
5
6
  import { pikkuQueueService } from './functions/wirings/queue/pikku-command-queue-service.js';
6
7
  import { pikkuOpenAPI } from './functions/wirings/http/pikku-command-openapi.js';
7
8
  import { pikkuNext } from './functions/runtimes/nextjs/pikku-command-nextjs.js';
@@ -137,6 +138,10 @@ wireCLI({
137
138
  func: pikkuRPCClient,
138
139
  description: 'Generate RPC client wrappers',
139
140
  }),
141
+ 'react-query': pikkuCLICommand({
142
+ func: pikkuReactQuery,
143
+ description: 'Generate React Query hooks from RPC map',
144
+ }),
140
145
  'queue-service': pikkuCLICommand({
141
146
  func: pikkuQueueService,
142
147
  description: 'Generate queue service wrapper',
@@ -14,3 +14,4 @@ export interface AnalyzerOptions {
14
14
  serverlessIncompatible?: string[];
15
15
  }
16
16
  export declare function analyzeDeployment(state: InspectorState, options: AnalyzerOptions): DeploymentManifest;
17
+ export declare function toSafeKebab(str: string): string;
@@ -71,7 +71,7 @@ export function analyzeDeployment(state, options) {
71
71
  handlers.push({ type: 'queue', queueName: queueMeta.name ?? queueName });
72
72
  queues.push({
73
73
  name: queueMeta.name ?? queueName,
74
- consumerUnit: toKebab(funcId),
74
+ consumerUnit: toSafeKebab(funcId),
75
75
  consumerFunctionId: funcId,
76
76
  });
77
77
  }
@@ -87,7 +87,7 @@ export function analyzeDeployment(state, options) {
87
87
  scheduledTasks.push({
88
88
  name: schedMeta.name,
89
89
  schedule: schedMeta.schedule,
90
- unitName: toKebab(funcId),
90
+ unitName: toSafeKebab(funcId),
91
91
  functionId: funcId,
92
92
  });
93
93
  }
@@ -129,7 +129,7 @@ export function analyzeDeployment(state, options) {
129
129
  continue;
130
130
  }
131
131
  units.push({
132
- name: toKebab(funcId),
132
+ name: toSafeKebab(funcId),
133
133
  role: 'function',
134
134
  target: resolveDeployTarget(funcMeta, serverlessIncompatible),
135
135
  functionIds: [funcId],
@@ -143,10 +143,10 @@ export function analyzeDeployment(state, options) {
143
143
  for (const [agentName, agentMeta] of entries(state.agents.agentsMeta)) {
144
144
  const toolIds = agentMeta.tools ?? [];
145
145
  const subAgentNames = agentMeta.agents ?? [];
146
- const unitName = `agent-${toKebab(agentName)}`;
146
+ const unitName = `agent-${toSafeKebab(agentName)}`;
147
147
  // Agent gateway depends on its tool function units
148
- const toolUnitNames = toolIds.map((id) => toKebab(id));
149
- const subAgentUnitNames = subAgentNames.map((sa) => `agent-${toKebab(sa)}`);
148
+ const toolUnitNames = toolIds.map((id) => toSafeKebab(id));
149
+ const subAgentUnitNames = subAgentNames.map((sa) => `agent-${toSafeKebab(sa)}`);
150
150
  // Agent needs AI services
151
151
  const agentServices = [
152
152
  { capability: 'ai-model', sourceServiceName: 'aiAgentRunner' },
@@ -209,7 +209,7 @@ export function analyzeDeployment(state, options) {
209
209
  const allMcpIds = [...mcpToolIds, ...mcpResourceIds, ...mcpPromptIds];
210
210
  if (allMcpIds.length > 0) {
211
211
  const unitName = 'mcp-server';
212
- const mcpFuncUnitNames = allMcpIds.map((id) => toKebab(id));
212
+ const mcpFuncUnitNames = allMcpIds.map((id) => toSafeKebab(id));
213
213
  units.push({
214
214
  name: unitName,
215
215
  role: 'mcp',
@@ -232,8 +232,8 @@ export function analyzeDeployment(state, options) {
232
232
  const funcIds = collectChannelFunctionIds(channelMeta);
233
233
  if (funcIds.length === 0)
234
234
  continue;
235
- const unitName = `channel-${toKebab(channelName)}`;
236
- const funcUnitNames = funcIds.map((id) => toKebab(id));
235
+ const unitName = `channel-${toSafeKebab(channelName)}`;
236
+ const funcUnitNames = funcIds.map((id) => toSafeKebab(id));
237
237
  units.push({
238
238
  name: unitName,
239
239
  role: 'channel',
@@ -346,7 +346,7 @@ function buildWorkflows(graphMeta, _functionsMeta, _httpMeta, units, workflows,
346
346
  continue;
347
347
  if (!('rpcName' in node))
348
348
  continue;
349
- const stepUnitName = toKebab(node.rpcName);
349
+ const stepUnitName = toSafeKebab(node.rpcName);
350
350
  const isAsync = node.options?.async === true;
351
351
  const isInline = !isAsync && graph.inline === true;
352
352
  steps.push({
@@ -358,7 +358,7 @@ function buildWorkflows(graphMeta, _functionsMeta, _httpMeta, units, workflows,
358
358
  stepUnitNames.push(stepUnitName);
359
359
  }
360
360
  // Build orchestrator unit — no function code, just orchestration
361
- const orchUnitName = `wf-${toKebab(graph.name)}`;
361
+ const orchUnitName = `wf-${toSafeKebab(graph.name)}`;
362
362
  const orchServices = [
363
363
  { capability: 'workflow-state', sourceServiceName: 'workflowService' },
364
364
  { capability: 'queue', sourceServiceName: 'queueService' },
@@ -387,7 +387,7 @@ function buildWorkflows(graphMeta, _functionsMeta, _httpMeta, units, workflows,
387
387
  },
388
388
  ];
389
389
  // Orchestrator queue — the orchestrator consumes from this
390
- const orchQueueName = `wf-orchestrator-${toKebab(graph.name)}`;
390
+ const orchQueueName = `wf-orchestrator-${toSafeKebab(graph.name)}`;
391
391
  const orchHandlers = [
392
392
  { type: 'fetch', routes: wfRoutes },
393
393
  { type: 'queue', queueName: orchQueueName },
@@ -413,10 +413,10 @@ function buildWorkflows(graphMeta, _functionsMeta, _httpMeta, units, workflows,
413
413
  for (const step of steps) {
414
414
  if (step.inline || !step.functionId)
415
415
  continue;
416
- const stepQueueName = `wf-step-${toKebab(step.functionId)}`;
416
+ const stepQueueName = `wf-step-${toSafeKebab(step.functionId)}`;
417
417
  queues.push({
418
418
  name: stepQueueName,
419
- consumerUnit: toKebab(step.functionId),
419
+ consumerUnit: toSafeKebab(step.functionId),
420
420
  consumerFunctionId: `pikkuWorkflowWorker:${step.functionId}`,
421
421
  });
422
422
  }
@@ -523,10 +523,13 @@ function collectChannelFunctionIds(channelMeta) {
523
523
  // ---------------------------------------------------------------------------
524
524
  // Naming helpers
525
525
  // ---------------------------------------------------------------------------
526
- function toKebab(str) {
526
+ export function toSafeKebab(str) {
527
527
  return str
528
528
  .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
529
529
  .replace(/([A-Z])([A-Z][a-z])/g, '$1-$2')
530
+ .replace(/[:/\\]/g, '-')
531
+ .replace(/--+/g, '-')
532
+ .replace(/^-|-$/g, '')
530
533
  .toLowerCase();
531
534
  }
532
535
  function fromKebab(str) {
@@ -14,6 +14,7 @@ import { tmpdir } from 'node:os';
14
14
  import { randomBytes } from 'node:crypto';
15
15
  import { promisify } from 'node:util';
16
16
  import { serializeInspectorState } from '@pikku/inspector';
17
+ import { toSafeKebab } from '../analyzer/analyzer.js';
17
18
  const execFileAsync = promisify(execFile);
18
19
  /**
19
20
  * Resolve the pikku CLI binary path.
@@ -122,12 +123,11 @@ function collectFilterNames(unit, manifest, inspectorState) {
122
123
  names.add('http:get:/workflow/:workflowName/status/:runId/stream');
123
124
  names.add('http:post:/workflow/:workflowName/graph/:nodeId');
124
125
  // Queue names for orchestrator and step workers
125
- const toKebab = (s) => s.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();
126
- names.add(`wf-orchestrator-${toKebab(wfDef.name)}`);
126
+ names.add(`wf-orchestrator-${toSafeKebab(wfDef.name)}`);
127
127
  for (const step of wfDef.steps) {
128
128
  if (step.functionId) {
129
129
  names.add(step.functionId);
130
- names.add(`wf-step-${toKebab(step.functionId)}`);
130
+ names.add(`wf-step-${toSafeKebab(step.functionId)}`);
131
131
  }
132
132
  }
133
133
  }