@pikku/cli 0.12.19 → 0.12.20

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 (70) hide show
  1. package/console-app/assets/{index-DAQHIRK3.js → index-DXLy-_D4.js} +181 -181
  2. package/console-app/index.html +1 -1
  3. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
  4. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
  5. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  6. package/dist/.pikku/cli/pikku-cli-channel.js +6 -1
  7. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  8. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  9. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
  10. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  11. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
  12. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +22 -1
  13. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  14. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  15. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  16. package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
  17. package/dist/.pikku/console/pikku-node-types.gen.d.ts +1 -1
  18. package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
  19. package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
  20. package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
  21. package/dist/.pikku/function/pikku-functions-meta.gen.json +122 -108
  22. package/dist/.pikku/function/pikku-functions.gen.js +5 -1
  23. package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
  24. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  25. package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +1 -1
  26. package/dist/.pikku/http/pikku-http-wirings.gen.d.ts +1 -1
  27. package/dist/.pikku/http/pikku-http-wirings.gen.js +1 -1
  28. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
  29. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  30. package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
  31. package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
  32. package/dist/.pikku/pikku-meta-service.gen.d.ts +1 -1
  33. package/dist/.pikku/pikku-meta-service.gen.js +1 -1
  34. package/dist/.pikku/pikku-services.gen.d.ts +2 -1
  35. package/dist/.pikku/pikku-services.gen.js +1 -0
  36. package/dist/.pikku/pikku-types.gen.d.ts +1 -1
  37. package/dist/.pikku/pikku-types.gen.js +1 -1
  38. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  39. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  40. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
  41. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +12 -10
  42. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  43. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  44. package/dist/.pikku/schemas/register.gen.js +9 -7
  45. package/dist/.pikku/schemas/schemas/DevInput.schema.json +1 -0
  46. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
  47. package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
  48. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
  49. package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
  50. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
  51. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
  52. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
  53. package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
  54. package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
  55. package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
  56. package/dist/.pikku/workflow/meta/allWorkflow.gen.json +621 -152
  57. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
  58. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
  59. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  60. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  61. package/dist/src/cli.wiring.js +20 -0
  62. package/dist/src/functions/commands/dev.d.ts +13 -0
  63. package/dist/src/functions/commands/dev.js +187 -0
  64. package/dist/src/functions/commands/versions-update.js +7 -3
  65. package/dist/src/functions/wirings/workflow/serialize-workflow-routes.js +2 -2
  66. package/dist/src/functions/workflows/all.workflow.js +1 -6
  67. package/dist/src/scaffold/rpc-remote.gen.js +1 -1
  68. package/dist/src/scaffold/workflow-routes.gen.js +4 -4
  69. package/dist/tsconfig.tsbuildinfo +1 -1
  70. package/package.json +8 -4
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.19
2
+ * This file was generated by @pikku/cli@0.12.20
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.19
2
+ * This file was generated by @pikku/cli@0.12.20
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.19
2
+ * This file was generated by @pikku/cli@0.12.20
3
3
  */
4
4
  import { pikkuState } from '@pikku/core/internal';
5
5
  import allWorkflowMeta from './meta/allWorkflow.gen.json' with { type: 'json' };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.19
2
+ * This file was generated by @pikku/cli@0.12.20
3
3
  */
4
4
  import { addWorkflow } from '@pikku/core/workflow';
5
5
  import './pikku-workflow-wirings-meta.gen.js';
@@ -11,6 +11,7 @@ import { all } from './functions/commands/all.js';
11
11
  import { bootstrap } from './functions/commands/bootstrap.js';
12
12
  import { watch } from './functions/commands/watch.js';
13
13
  import { consoleCommand } from './functions/commands/console.js';
14
+ import { dev } from './functions/commands/dev.js';
14
15
  import { pikkuVersionsInit } from './functions/commands/versions-init.js';
15
16
  import { pikkuVersionsCheck } from './functions/commands/versions-check.js';
16
17
  import { pikkuVersionsUpdate } from './functions/commands/versions-update.js';
@@ -102,6 +103,25 @@ wireCLI({
102
103
  },
103
104
  },
104
105
  }),
106
+ dev: pikkuCLICommand({
107
+ func: dev,
108
+ description: 'Start a local development server with all services wired',
109
+ options: {
110
+ port: {
111
+ description: 'Port for the dev server',
112
+ default: '3000',
113
+ short: 'p',
114
+ },
115
+ watch: {
116
+ description: 'Watch for file changes and regenerate',
117
+ default: true,
118
+ },
119
+ hmr: {
120
+ description: 'Enable hot module reload',
121
+ default: true,
122
+ },
123
+ },
124
+ }),
105
125
  console: pikkuCLICommand({
106
126
  func: consoleCommand,
107
127
  description: 'Start the Pikku Console UI with live file watching',
@@ -0,0 +1,13 @@
1
+ export declare const dev: import("#pikku").PikkuFunctionConfig<{
2
+ port?: string;
3
+ watch?: boolean;
4
+ hmr?: boolean;
5
+ }, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<{
6
+ port?: string;
7
+ watch?: boolean;
8
+ hmr?: boolean;
9
+ }, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<{
10
+ port?: string;
11
+ watch?: boolean;
12
+ hmr?: boolean;
13
+ }, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
@@ -0,0 +1,187 @@
1
+ import { createServer } from 'http';
2
+ import { join, resolve } from 'path';
3
+ import { Readable } from 'stream';
4
+ import { pikkuSessionlessFunc } from '#pikku';
5
+ import chokidar from 'chokidar';
6
+ import { pikkuDevReloader } from '@pikku/core/dev';
7
+ import { ConsoleLogger, InMemoryQueueService, InMemoryWorkflowService, InMemoryTriggerService, InMemoryAIRunStateService, } from '@pikku/core/services';
8
+ import { stopSingletonServices } from '@pikku/core';
9
+ import { pikkuState } from '@pikku/core/internal';
10
+ import { fetchData, PikkuFetchHTTPResponse, logRoutes, } from '@pikku/core/http';
11
+ import { compileAllSchemas } from '@pikku/core/schema';
12
+ import { pikkuWebsocketHandler } from '@pikku/ws';
13
+ import { WebSocketServer } from 'ws';
14
+ import { InMemorySchedulerService } from '@pikku/schedule';
15
+ function incomingMessageToRequest(req) {
16
+ const url = new URL(req.url || '/', 'http://localhost');
17
+ const method = req.method ? req.method.toUpperCase() : 'GET';
18
+ const headers = new Headers();
19
+ for (const [key, value] of Object.entries(req.headers)) {
20
+ if (value) {
21
+ headers.set(key, Array.isArray(value) ? value.join(', ') : value);
22
+ }
23
+ }
24
+ let body = null;
25
+ if (method !== 'GET' && method !== 'HEAD') {
26
+ body = Readable.toWeb(req);
27
+ }
28
+ return new Request(url.toString(), {
29
+ method,
30
+ headers,
31
+ body,
32
+ // @ts-ignore - duplex is needed for streaming body in Node.js
33
+ duplex: 'half',
34
+ });
35
+ }
36
+ async function writeResponse(nodeRes, webResponse) {
37
+ const headers = {};
38
+ webResponse.headers.forEach((value, name) => {
39
+ const lower = name.toLowerCase();
40
+ if (lower === 'set-cookie') {
41
+ const existing = headers[lower];
42
+ if (Array.isArray(existing)) {
43
+ existing.push(value);
44
+ }
45
+ else {
46
+ headers[lower] = [value];
47
+ }
48
+ }
49
+ else {
50
+ headers[lower] = value;
51
+ }
52
+ });
53
+ nodeRes.writeHead(webResponse.status, headers);
54
+ if (webResponse.body) {
55
+ const reader = webResponse.body.getReader();
56
+ try {
57
+ while (true) {
58
+ const { done, value } = await reader.read();
59
+ if (done)
60
+ break;
61
+ nodeRes.write(value);
62
+ }
63
+ }
64
+ finally {
65
+ reader.releaseLock();
66
+ }
67
+ }
68
+ nodeRes.end();
69
+ }
70
+ export const dev = pikkuSessionlessFunc({
71
+ remote: true,
72
+ func: async ({ logger, config, getInspectorState }, { port, watch, hmr }, { rpc }) => {
73
+ const resolvedPort = parseInt(port || '3000', 10);
74
+ const hostname = 'localhost';
75
+ const enableWatch = watch !== false;
76
+ const enableHmr = hmr !== false;
77
+ await rpc.invoke('all');
78
+ const inspectorState = await getInspectorState(true);
79
+ const { pikkuConfigFactory, singletonServicesFactory } = inspectorState.filesAndMethods;
80
+ if (!pikkuConfigFactory || !singletonServicesFactory) {
81
+ logger.error('createConfig and createSingletonServices must be defined in your project');
82
+ return;
83
+ }
84
+ const pikkuDir = resolve(config.rootDir, config.outDir);
85
+ const bootstrapPath = join(pikkuDir, 'pikku-bootstrap.gen.js');
86
+ await import(bootstrapPath);
87
+ const configModule = await import(pikkuConfigFactory.file);
88
+ const servicesModule = await import(singletonServicesFactory.file);
89
+ const userCreateConfig = configModule[pikkuConfigFactory.variable];
90
+ const userCreateSingletonServices = servicesModule[singletonServicesFactory.variable];
91
+ const userConfig = await userCreateConfig();
92
+ const schedulerService = new InMemorySchedulerService();
93
+ const inMemoryServices = {
94
+ logger: new ConsoleLogger(),
95
+ schedulerService,
96
+ queueService: new InMemoryQueueService(),
97
+ workflowService: new InMemoryWorkflowService(),
98
+ triggerService: new InMemoryTriggerService(),
99
+ aiRunStateService: new InMemoryAIRunStateService(),
100
+ };
101
+ const singletonServices = await userCreateSingletonServices(userConfig, inMemoryServices);
102
+ pikkuState(null, 'package', 'singletonServices', singletonServices);
103
+ compileAllSchemas(logger);
104
+ logRoutes(logger);
105
+ const server = createServer(async (req, res) => {
106
+ const request = incomingMessageToRequest(req);
107
+ const pikkuResponse = new PikkuFetchHTTPResponse();
108
+ await fetchData(request, pikkuResponse, { respondWith404: true });
109
+ const response = pikkuResponse.toResponse();
110
+ await writeResponse(res, response);
111
+ });
112
+ const wss = new WebSocketServer({ noServer: true });
113
+ pikkuWebsocketHandler({ server, wss, logger });
114
+ await schedulerService.start();
115
+ await new Promise((resolve) => {
116
+ server.listen(resolvedPort, hostname, () => {
117
+ logger.info(`Dev server running at http://${hostname}:${resolvedPort}`);
118
+ resolve();
119
+ });
120
+ });
121
+ let configWatcher;
122
+ let watcher;
123
+ process.once('SIGINT', async () => {
124
+ logger.info('Stopping dev server...');
125
+ try {
126
+ await stopSingletonServices();
127
+ await configWatcher?.close();
128
+ await watcher?.close();
129
+ await new Promise((resolve, reject) => wss.close((err) => (err ? reject(err) : resolve())));
130
+ await new Promise((resolve, reject) => server.close((err) => (err ? reject(err) : resolve())));
131
+ }
132
+ finally {
133
+ process.exit(0);
134
+ }
135
+ });
136
+ if (enableHmr) {
137
+ await pikkuDevReloader({
138
+ srcDirectories: config.srcDirectories,
139
+ logger,
140
+ });
141
+ }
142
+ if (enableWatch) {
143
+ const genIgnore = /\.gen\.tsx?$/;
144
+ configWatcher = chokidar.watch(config.srcDirectories, {
145
+ ignoreInitial: true,
146
+ ignored: genIgnore,
147
+ });
148
+ const generatorWatcher = () => {
149
+ watcher?.close();
150
+ logger.info(`• Watching directories: \n - ${config.srcDirectories.join('\n - ')}`);
151
+ watcher = chokidar.watch(config.srcDirectories, {
152
+ ignoreInitial: true,
153
+ ignored: genIgnore,
154
+ });
155
+ watcher.on('ready', async () => {
156
+ const handle = async () => {
157
+ try {
158
+ const start = Date.now();
159
+ await rpc.invoke('all');
160
+ logger.info({
161
+ message: `✓ Generated in ${Date.now() - start}ms`,
162
+ type: 'timing',
163
+ });
164
+ }
165
+ catch (err) {
166
+ logger.error(`Error running watch: ${err}`);
167
+ }
168
+ };
169
+ await handle();
170
+ let timeout;
171
+ const deduped = (_file) => {
172
+ if (timeout) {
173
+ clearTimeout(timeout);
174
+ }
175
+ timeout = setTimeout(handle, 10);
176
+ };
177
+ watcher?.on('change', deduped);
178
+ watcher?.on('add', deduped);
179
+ watcher?.on('unlink', deduped);
180
+ });
181
+ };
182
+ configWatcher.on('ready', generatorWatcher);
183
+ configWatcher.on('change', generatorWatcher);
184
+ }
185
+ await new Promise(() => { });
186
+ },
187
+ });
@@ -7,12 +7,16 @@ export const pikkuVersionsUpdate = pikkuSessionlessFunc({
7
7
  const manifestPath = join(config.rootDir, 'versions.pikku.json');
8
8
  const visitState = await getInspectorState();
9
9
  if (!visitState.manifest.initial) {
10
- throw new Error(`Version manifest not found at ${manifestPath}. Run 'pikku versions init' to create one.`);
10
+ logger.warn(`Run 'pikku versions init' to enable contract versioning.`);
11
+ return;
11
12
  }
12
13
  const immutabilityErrors = visitState.manifest.errors.filter((e) => e.code === ErrorCode.FUNCTION_VERSION_MODIFIED);
13
14
  if (immutabilityErrors.length > 0) {
14
- const messages = immutabilityErrors.map((e) => `[${e.code}] ${e.message}`);
15
- throw new Error(messages.join('\n'));
15
+ for (const e of immutabilityErrors) {
16
+ logger.warn(`[${e.code}] ${e.message}`);
17
+ }
18
+ logger.warn(`Contract drift detected — version manifest not updated. Run 'pikku versions check' to inspect, or bump versions via code and re-run.`);
19
+ return;
16
20
  }
17
21
  await saveManifest(manifestPath, visitState.manifest.current);
18
22
  logger.debug(`Version manifest updated at ${manifestPath}`);
@@ -25,7 +25,7 @@ export const workflowStarter = pikkuSessionlessFunc<
25
25
  >({
26
26
  auth: ${authFlag},
27
27
  func: async (_services, { workflowName, data }, { rpc }) => {
28
- return await rpc.startWorkflow(workflowName as any, data ?? {})
28
+ return await rpc.startWorkflow(workflowName as any, (data ?? {}) as any)
29
29
  },
30
30
  })
31
31
 
@@ -193,7 +193,7 @@ export const graphStarter = pikkuSessionlessFunc<
193
193
  >({
194
194
  auth: ${authFlag},
195
195
  func: async (_services, { workflowName, nodeId, data }, { rpc }) => {
196
- return await rpc.startWorkflow(workflowName as any, data ?? {}, { startNode: nodeId })
196
+ return await rpc.startWorkflow(workflowName as any, (data ?? {}) as any, { startNode: nodeId })
197
197
  },
198
198
  })
199
199
 
@@ -200,12 +200,7 @@ export const allWorkflow = pikkuWorkflowComplexFunc({
200
200
  await workflow.do('OpenAPI re-inspect', async () => getInspectorState(true));
201
201
  await workflow.do('OpenAPI', 'pikkuOpenAPI', null);
202
202
  }
203
- try {
204
- await workflow.do('Versions update', 'pikkuVersionsUpdate', null);
205
- }
206
- catch {
207
- logger.warn(`Run 'pikku versions init' to enable contract versioning.`);
208
- }
203
+ await workflow.do('Versions update', 'pikkuVersionsUpdate', null);
209
204
  await workflow.do('Bootstrap', 'pikkuBootstrap', { allImports });
210
205
  await workflow.do('Summary', 'pikkuSummary', null);
211
206
  },
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.19
2
+ * This file was generated by @pikku/cli@0.12.20
3
3
  */
4
4
  /**
5
5
  * Auto-generated remote internal RPC queue worker and HTTP endpoint
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.19
2
+ * This file was generated by @pikku/cli@0.12.20
3
3
  */
4
4
  /**
5
5
  * Workflow HTTP catch-all routes
@@ -18,14 +18,14 @@ function assertWorkflowRunService(workflowRunService) {
18
18
  export const workflowStarter = pikkuSessionlessFunc({
19
19
  auth: false,
20
20
  func: async (_services, { workflowName, data }, { rpc }) => {
21
- return await rpc.startWorkflow(workflowName, data ?? {});
21
+ return await rpc.startWorkflow(workflowName, (data ?? {}));
22
22
  },
23
23
  });
24
24
  export const workflowRunner = pikkuSessionlessFunc({
25
25
  auth: false,
26
26
  func: async ({ workflowService }, { workflowName, data }, { rpc }) => {
27
27
  assertWorkflowService(workflowService);
28
- return await workflowService.runToCompletion(workflowName, data ?? {}, rpc);
28
+ return await workflowService.runToCompletion(workflowName, (data ?? {}), rpc);
29
29
  },
30
30
  });
31
31
  export const workflowStatusChecker = pikkuSessionlessFunc({
@@ -155,7 +155,7 @@ export const workflowStatusStreamFull = pikkuSessionlessFunc({
155
155
  export const graphStarter = pikkuSessionlessFunc({
156
156
  auth: false,
157
157
  func: async (_services, { workflowName, nodeId, data }, { rpc }) => {
158
- return await rpc.startWorkflow(workflowName, data ?? {}, { startNode: nodeId });
158
+ return await rpc.startWorkflow(workflowName, (data ?? {}), { startNode: nodeId });
159
159
  },
160
160
  });
161
161
  wireHTTPRoutes({
@@ -1 +1 @@
1
- {"root":["../bin/pikku.ts","../src/cli.wiring.ts","../src/services.ts","../src/deploy/build-pipeline.ts","../src/deploy/provider-adapter.ts","../src/deploy/analyzer/analyzer.ts","../src/deploy/analyzer/index.ts","../src/deploy/analyzer/manifest.ts","../src/deploy/bundler/bundler.ts","../src/deploy/bundler/dep-extractor.ts","../src/deploy/bundler/index.ts","../src/deploy/bundler/types.ts","../src/deploy/codegen/index.ts","../src/deploy/codegen/per-unit-codegen.ts","../src/deploy/plan/executor.ts","../src/deploy/plan/formatter.ts","../src/deploy/plan/index.ts","../src/deploy/plan/planner.ts","../src/deploy/plan/provider.ts","../src/deploy/plan/types.ts","../src/functions/commands/all.ts","../src/functions/commands/bootstrap.ts","../src/functions/commands/console.ts","../src/functions/commands/deploy-apply.ts","../src/functions/commands/deploy-info.ts","../src/functions/commands/deploy-plan.ts","../src/functions/commands/enable.ts","../src/functions/commands/info.ts","../src/functions/commands/new-addon.ts","../src/functions/commands/new-function.ts","../src/functions/commands/new-middleware.ts","../src/functions/commands/new-permission.ts","../src/functions/commands/new-wiring.ts","../src/functions/commands/pikku-command-bootstrap.ts","../src/functions/commands/pikku-command-summary.ts","../src/functions/commands/versions-check.ts","../src/functions/commands/versions-init.ts","../src/functions/commands/versions-update.ts","../src/functions/commands/watch.ts","../src/functions/runtimes/fetch/index.ts","../src/functions/runtimes/nextjs/pikku-command-nextjs.ts","../src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts","../src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts","../src/functions/runtimes/websocket/pikku-command-websocket-typed.ts","../src/functions/runtimes/websocket/serialize-websocket-wrapper.ts","../src/functions/wirings/ai-agent/pikku-command-ai-agent-types.ts","../src/functions/wirings/ai-agent/pikku-command-ai-agent.ts","../src/functions/wirings/ai-agent/pikku-command-public-agent.ts","../src/functions/wirings/ai-agent/serialize-agent-map.ts","../src/functions/wirings/ai-agent/serialize-ai-agent-types.ts","../src/functions/wirings/ai-agent/serialize-public-agent.ts","../src/functions/wirings/channels/pikku-channels.ts","../src/functions/wirings/channels/pikku-command-channel-types.ts","../src/functions/wirings/channels/pikku-command-channels-map.ts","../src/functions/wirings/channels/pikku-command-channels.ts","../src/functions/wirings/channels/serialize-channel-types.ts","../src/functions/wirings/channels/serialize-typed-channel-map.ts","../src/functions/wirings/cli/pikku-command-cli-entry.ts","../src/functions/wirings/cli/pikku-command-cli-types.ts","../src/functions/wirings/cli/pikku-command-cli.ts","../src/functions/wirings/cli/serialize-channel-cli-client.ts","../src/functions/wirings/cli/serialize-channel-cli.ts","../src/functions/wirings/cli/serialize-cli-types.ts","../src/functions/wirings/cli/serialize-local-cli-bootstrap.ts","../src/functions/wirings/console/pikku-command-console-functions.ts","../src/functions/wirings/console/pikku-command-node-types.ts","../src/functions/wirings/console/pikku-command-nodes-meta.ts","../src/functions/wirings/console/serialize-console-functions.ts","../src/functions/wirings/console/serialize-node-types.ts","../src/functions/wirings/credentials/pikku-command-credentials.ts","../src/functions/wirings/credentials/serialize-credentials-types.ts","../src/functions/wirings/functions/pikku-command-addon-types.ts","../src/functions/wirings/functions/pikku-command-function-types-split.ts","../src/functions/wirings/functions/pikku-command-function-types.ts","../src/functions/wirings/functions/pikku-command-functions.ts","../src/functions/wirings/functions/pikku-command-services.ts","../src/functions/wirings/functions/schemas.ts","../src/functions/wirings/functions/serialize-addon-types.ts","../src/functions/wirings/functions/serialize-function-imports.ts","../src/functions/wirings/functions/serialize-function-types.ts","../src/functions/wirings/functions/serialize-pikku-types-hub.ts","../src/functions/wirings/gateway/pikku-command-gateway.ts","../src/functions/wirings/http/pikku-command-http-map.ts","../src/functions/wirings/http/pikku-command-http-routes.ts","../src/functions/wirings/http/pikku-command-http-types.ts","../src/functions/wirings/http/pikku-command-openapi.ts","../src/functions/wirings/http/pikku-http-routes.ts","../src/functions/wirings/http/serialize-fetch-wrapper.ts","../src/functions/wirings/http/serialize-http-types.ts","../src/functions/wirings/http/serialize-typed-http-map.ts","../src/functions/wirings/mcp/pikku-command-mcp-json.ts","../src/functions/wirings/mcp/pikku-command-mcp-types.ts","../src/functions/wirings/mcp/pikku-command-mcp.ts","../src/functions/wirings/mcp/serialize-mcp-types.ts","../src/functions/wirings/middleware/pikku-command-middleware.ts","../src/functions/wirings/middleware/serialize-middleware-imports.ts","../src/functions/wirings/package/pikku-command-package-types.ts","../src/functions/wirings/package/pikku-command-package.ts","../src/functions/wirings/package/serialize-package-types.ts","../src/functions/wirings/package/serialize-package.ts","../src/functions/wirings/permissions/pikku-command-permissions.ts","../src/functions/wirings/permissions/serialize-permissions-imports.ts","../src/functions/wirings/queue/pikku-command-queue-map.ts","../src/functions/wirings/queue/pikku-command-queue-service.ts","../src/functions/wirings/queue/pikku-command-queue-types.ts","../src/functions/wirings/queue/pikku-command-queue.ts","../src/functions/wirings/queue/pikku-queue-map.ts","../src/functions/wirings/queue/pikku-queue.ts","../src/functions/wirings/queue/serialize-queue-map.ts","../src/functions/wirings/queue/serialize-queue-meta.ts","../src/functions/wirings/queue/serialize-queue-types.ts","../src/functions/wirings/queue/serialize-queue-wrapper.ts","../src/functions/wirings/rpc/pikku-command-public-rpc.ts","../src/functions/wirings/rpc/pikku-command-react-query.ts","../src/functions/wirings/rpc/pikku-command-remote-rpc.ts","../src/functions/wirings/rpc/pikku-command-rpc-client.ts","../src/functions/wirings/rpc/pikku-command-rpc-map.ts","../src/functions/wirings/rpc/pikku-command-rpc.ts","../src/functions/wirings/rpc/serialize-public-rpc.ts","../src/functions/wirings/rpc/serialize-react-query-hooks.ts","../src/functions/wirings/rpc/serialize-remote-rpc.ts","../src/functions/wirings/rpc/serialize-rpc-wrapper.ts","../src/functions/wirings/rpc/serialize-typed-rpc-map.ts","../src/functions/wirings/scheduler/pikku-command-scheduler-types.ts","../src/functions/wirings/scheduler/pikku-command-scheduler.ts","../src/functions/wirings/scheduler/serialize-scheduler-meta.ts","../src/functions/wirings/scheduler/serialize-scheduler-types.ts","../src/functions/wirings/secrets/pikku-command-secrets.ts","../src/functions/wirings/secrets/serialize-secrets-types.ts","../src/functions/wirings/triggers/pikku-command-trigger-types.ts","../src/functions/wirings/triggers/pikku-command-trigger.ts","../src/functions/wirings/triggers/serialize-trigger-meta.ts","../src/functions/wirings/triggers/serialize-trigger-types.ts","../src/functions/wirings/variables/pikku-command-variables.ts","../src/functions/wirings/variables/serialize-variables-types.ts","../src/functions/wirings/workflow/pikku-command-workflow-routes.ts","../src/functions/wirings/workflow/pikku-command-workflow.ts","../src/functions/wirings/workflow/serialize-workflow-map.ts","../src/functions/wirings/workflow/serialize-workflow-meta.ts","../src/functions/wirings/workflow/serialize-workflow-registration.ts","../src/functions/wirings/workflow/serialize-workflow-routes.ts","../src/functions/wirings/workflow/serialize-workflow-types.ts","../src/functions/workflows/all.workflow.ts","../src/middleware/log-command-info-and-time.ts","../src/scaffold/rpc-remote.gen.ts","../src/scaffold/workflow-routes.gen.ts","../src/services/cli-logger-forwarder.service.ts","../src/services/cli-logger.service.ts","../src/utils/check-required-types.ts","../src/utils/command-summary.ts","../src/utils/contract-versions.ts","../src/utils/file-import-path.ts","../src/utils/file-imports-serializer.ts","../src/utils/file-writer.ts","../src/utils/generate-bootstrap-file.ts","../src/utils/get-cli-version.ts","../src/utils/pikku-cli-config.ts","../src/utils/pikku-files-and-methods.ts","../src/utils/serialize-import-map.ts","../src/utils/serialize-meta-ts.ts","../src/utils/serialize-schemas.ts","../src/utils/strip-verbose-meta.ts","../.pikku/pikku-bootstrap.gen.ts","../.pikku/pikku-meta-service.gen.ts","../.pikku/pikku-services.gen.ts","../.pikku/pikku-types.gen.ts","../.pikku/agent/pikku-agent-map.gen.d.ts","../.pikku/agent/pikku-agent-types.gen.ts","../.pikku/channel/pikku-channel-types.gen.ts","../.pikku/cli/pikku-cli-channel.ts","../.pikku/cli/pikku-cli-client.gen.ts","../.pikku/cli/pikku-cli-types.gen.ts","../.pikku/cli/pikku-cli-wirings-meta.gen.ts","../.pikku/cli/pikku-cli-wirings.gen.ts","../.pikku/cli/pikku-cli.gen.ts","../.pikku/console/pikku-node-types.gen.ts","../.pikku/function/pikku-function-types.gen.ts","../.pikku/function/pikku-functions-meta.gen.ts","../.pikku/function/pikku-functions.gen.ts","../.pikku/http/pikku-http-types.gen.ts","../.pikku/http/pikku-http-wirings-map.gen.d.ts","../.pikku/http/pikku-http-wirings-meta.gen.ts","../.pikku/http/pikku-http-wirings.gen.ts","../.pikku/mcp/pikku-mcp-types.gen.ts","../.pikku/node/pikku-node-types.gen.ts","../.pikku/queue/pikku-queue-types.gen.ts","../.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts","../.pikku/scheduler/pikku-scheduler-types.gen.ts","../.pikku/schemas/register.gen.ts","../.pikku/secrets/pikku-secret-types.gen.ts","../.pikku/secrets/pikku-secrets.gen.ts","../.pikku/trigger/pikku-trigger-types.gen.ts","../.pikku/variables/pikku-variable-types.gen.ts","../.pikku/variables/pikku-variables.gen.ts","../.pikku/workflow/pikku-workflow-map.gen.d.ts","../.pikku/workflow/pikku-workflow-types.gen.ts","../.pikku/workflow/pikku-workflow-wirings-meta.gen.ts","../.pikku/workflow/pikku-workflow-wirings.gen.ts","../types/application-types.d.ts","../types/config.d.ts"],"version":"5.9.3"}
1
+ {"root":["../bin/pikku.ts","../src/cli.wiring.ts","../src/services.ts","../src/deploy/build-pipeline.ts","../src/deploy/provider-adapter.ts","../src/deploy/analyzer/analyzer.ts","../src/deploy/analyzer/index.ts","../src/deploy/analyzer/manifest.ts","../src/deploy/bundler/bundler.ts","../src/deploy/bundler/dep-extractor.ts","../src/deploy/bundler/index.ts","../src/deploy/bundler/types.ts","../src/deploy/codegen/index.ts","../src/deploy/codegen/per-unit-codegen.ts","../src/deploy/plan/executor.ts","../src/deploy/plan/formatter.ts","../src/deploy/plan/index.ts","../src/deploy/plan/planner.ts","../src/deploy/plan/provider.ts","../src/deploy/plan/types.ts","../src/functions/commands/all.ts","../src/functions/commands/bootstrap.ts","../src/functions/commands/console.ts","../src/functions/commands/deploy-apply.ts","../src/functions/commands/deploy-info.ts","../src/functions/commands/deploy-plan.ts","../src/functions/commands/dev.ts","../src/functions/commands/enable.ts","../src/functions/commands/info.ts","../src/functions/commands/new-addon.ts","../src/functions/commands/new-function.ts","../src/functions/commands/new-middleware.ts","../src/functions/commands/new-permission.ts","../src/functions/commands/new-wiring.ts","../src/functions/commands/pikku-command-bootstrap.ts","../src/functions/commands/pikku-command-summary.ts","../src/functions/commands/versions-check.ts","../src/functions/commands/versions-init.ts","../src/functions/commands/versions-update.ts","../src/functions/commands/watch.ts","../src/functions/runtimes/fetch/index.ts","../src/functions/runtimes/nextjs/pikku-command-nextjs.ts","../src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts","../src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts","../src/functions/runtimes/websocket/pikku-command-websocket-typed.ts","../src/functions/runtimes/websocket/serialize-websocket-wrapper.ts","../src/functions/wirings/ai-agent/pikku-command-ai-agent-types.ts","../src/functions/wirings/ai-agent/pikku-command-ai-agent.ts","../src/functions/wirings/ai-agent/pikku-command-public-agent.ts","../src/functions/wirings/ai-agent/serialize-agent-map.ts","../src/functions/wirings/ai-agent/serialize-ai-agent-types.ts","../src/functions/wirings/ai-agent/serialize-public-agent.ts","../src/functions/wirings/channels/pikku-channels.ts","../src/functions/wirings/channels/pikku-command-channel-types.ts","../src/functions/wirings/channels/pikku-command-channels-map.ts","../src/functions/wirings/channels/pikku-command-channels.ts","../src/functions/wirings/channels/serialize-channel-types.ts","../src/functions/wirings/channels/serialize-typed-channel-map.ts","../src/functions/wirings/cli/pikku-command-cli-entry.ts","../src/functions/wirings/cli/pikku-command-cli-types.ts","../src/functions/wirings/cli/pikku-command-cli.ts","../src/functions/wirings/cli/serialize-channel-cli-client.ts","../src/functions/wirings/cli/serialize-channel-cli.ts","../src/functions/wirings/cli/serialize-cli-types.ts","../src/functions/wirings/cli/serialize-local-cli-bootstrap.ts","../src/functions/wirings/console/pikku-command-console-functions.ts","../src/functions/wirings/console/pikku-command-node-types.ts","../src/functions/wirings/console/pikku-command-nodes-meta.ts","../src/functions/wirings/console/serialize-console-functions.ts","../src/functions/wirings/console/serialize-node-types.ts","../src/functions/wirings/credentials/pikku-command-credentials.ts","../src/functions/wirings/credentials/serialize-credentials-types.ts","../src/functions/wirings/functions/pikku-command-addon-types.ts","../src/functions/wirings/functions/pikku-command-function-types-split.ts","../src/functions/wirings/functions/pikku-command-function-types.ts","../src/functions/wirings/functions/pikku-command-functions.ts","../src/functions/wirings/functions/pikku-command-services.ts","../src/functions/wirings/functions/schemas.ts","../src/functions/wirings/functions/serialize-addon-types.ts","../src/functions/wirings/functions/serialize-function-imports.ts","../src/functions/wirings/functions/serialize-function-types.ts","../src/functions/wirings/functions/serialize-pikku-types-hub.ts","../src/functions/wirings/gateway/pikku-command-gateway.ts","../src/functions/wirings/http/pikku-command-http-map.ts","../src/functions/wirings/http/pikku-command-http-routes.ts","../src/functions/wirings/http/pikku-command-http-types.ts","../src/functions/wirings/http/pikku-command-openapi.ts","../src/functions/wirings/http/pikku-http-routes.ts","../src/functions/wirings/http/serialize-fetch-wrapper.ts","../src/functions/wirings/http/serialize-http-types.ts","../src/functions/wirings/http/serialize-typed-http-map.ts","../src/functions/wirings/mcp/pikku-command-mcp-json.ts","../src/functions/wirings/mcp/pikku-command-mcp-types.ts","../src/functions/wirings/mcp/pikku-command-mcp.ts","../src/functions/wirings/mcp/serialize-mcp-types.ts","../src/functions/wirings/middleware/pikku-command-middleware.ts","../src/functions/wirings/middleware/serialize-middleware-imports.ts","../src/functions/wirings/package/pikku-command-package-types.ts","../src/functions/wirings/package/pikku-command-package.ts","../src/functions/wirings/package/serialize-package-types.ts","../src/functions/wirings/package/serialize-package.ts","../src/functions/wirings/permissions/pikku-command-permissions.ts","../src/functions/wirings/permissions/serialize-permissions-imports.ts","../src/functions/wirings/queue/pikku-command-queue-map.ts","../src/functions/wirings/queue/pikku-command-queue-service.ts","../src/functions/wirings/queue/pikku-command-queue-types.ts","../src/functions/wirings/queue/pikku-command-queue.ts","../src/functions/wirings/queue/pikku-queue-map.ts","../src/functions/wirings/queue/pikku-queue.ts","../src/functions/wirings/queue/serialize-queue-map.ts","../src/functions/wirings/queue/serialize-queue-meta.ts","../src/functions/wirings/queue/serialize-queue-types.ts","../src/functions/wirings/queue/serialize-queue-wrapper.ts","../src/functions/wirings/rpc/pikku-command-public-rpc.ts","../src/functions/wirings/rpc/pikku-command-react-query.ts","../src/functions/wirings/rpc/pikku-command-remote-rpc.ts","../src/functions/wirings/rpc/pikku-command-rpc-client.ts","../src/functions/wirings/rpc/pikku-command-rpc-map.ts","../src/functions/wirings/rpc/pikku-command-rpc.ts","../src/functions/wirings/rpc/serialize-public-rpc.ts","../src/functions/wirings/rpc/serialize-react-query-hooks.ts","../src/functions/wirings/rpc/serialize-remote-rpc.ts","../src/functions/wirings/rpc/serialize-rpc-wrapper.ts","../src/functions/wirings/rpc/serialize-typed-rpc-map.ts","../src/functions/wirings/scheduler/pikku-command-scheduler-types.ts","../src/functions/wirings/scheduler/pikku-command-scheduler.ts","../src/functions/wirings/scheduler/serialize-scheduler-meta.ts","../src/functions/wirings/scheduler/serialize-scheduler-types.ts","../src/functions/wirings/secrets/pikku-command-secrets.ts","../src/functions/wirings/secrets/serialize-secrets-types.ts","../src/functions/wirings/triggers/pikku-command-trigger-types.ts","../src/functions/wirings/triggers/pikku-command-trigger.ts","../src/functions/wirings/triggers/serialize-trigger-meta.ts","../src/functions/wirings/triggers/serialize-trigger-types.ts","../src/functions/wirings/variables/pikku-command-variables.ts","../src/functions/wirings/variables/serialize-variables-types.ts","../src/functions/wirings/workflow/pikku-command-workflow-routes.ts","../src/functions/wirings/workflow/pikku-command-workflow.ts","../src/functions/wirings/workflow/serialize-workflow-map.ts","../src/functions/wirings/workflow/serialize-workflow-meta.ts","../src/functions/wirings/workflow/serialize-workflow-registration.ts","../src/functions/wirings/workflow/serialize-workflow-routes.ts","../src/functions/wirings/workflow/serialize-workflow-types.ts","../src/functions/workflows/all.workflow.ts","../src/middleware/log-command-info-and-time.ts","../src/scaffold/rpc-remote.gen.ts","../src/scaffold/workflow-routes.gen.ts","../src/services/cli-logger-forwarder.service.ts","../src/services/cli-logger.service.ts","../src/utils/check-required-types.ts","../src/utils/command-summary.ts","../src/utils/contract-versions.ts","../src/utils/file-import-path.ts","../src/utils/file-imports-serializer.ts","../src/utils/file-writer.ts","../src/utils/generate-bootstrap-file.ts","../src/utils/get-cli-version.ts","../src/utils/pikku-cli-config.ts","../src/utils/pikku-files-and-methods.ts","../src/utils/serialize-import-map.ts","../src/utils/serialize-meta-ts.ts","../src/utils/serialize-schemas.ts","../src/utils/strip-verbose-meta.ts","../.pikku/pikku-bootstrap.gen.ts","../.pikku/pikku-meta-service.gen.ts","../.pikku/pikku-services.gen.ts","../.pikku/pikku-types.gen.ts","../.pikku/agent/pikku-agent-map.gen.d.ts","../.pikku/agent/pikku-agent-types.gen.ts","../.pikku/channel/pikku-channel-types.gen.ts","../.pikku/cli/pikku-cli-channel.ts","../.pikku/cli/pikku-cli-client.gen.ts","../.pikku/cli/pikku-cli-types.gen.ts","../.pikku/cli/pikku-cli-wirings-meta.gen.ts","../.pikku/cli/pikku-cli-wirings.gen.ts","../.pikku/cli/pikku-cli.gen.ts","../.pikku/console/pikku-node-types.gen.ts","../.pikku/function/pikku-function-types.gen.ts","../.pikku/function/pikku-functions-meta.gen.ts","../.pikku/function/pikku-functions.gen.ts","../.pikku/http/pikku-http-types.gen.ts","../.pikku/http/pikku-http-wirings-map.gen.d.ts","../.pikku/http/pikku-http-wirings-meta.gen.ts","../.pikku/http/pikku-http-wirings.gen.ts","../.pikku/mcp/pikku-mcp-types.gen.ts","../.pikku/node/pikku-node-types.gen.ts","../.pikku/queue/pikku-queue-types.gen.ts","../.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts","../.pikku/scheduler/pikku-scheduler-types.gen.ts","../.pikku/schemas/register.gen.ts","../.pikku/secrets/pikku-secret-types.gen.ts","../.pikku/secrets/pikku-secrets.gen.ts","../.pikku/trigger/pikku-trigger-types.gen.ts","../.pikku/variables/pikku-variable-types.gen.ts","../.pikku/variables/pikku-variables.gen.ts","../.pikku/workflow/pikku-workflow-map.gen.d.ts","../.pikku/workflow/pikku-workflow-types.gen.ts","../.pikku/workflow/pikku-workflow-wirings-meta.gen.ts","../.pikku/workflow/pikku-workflow-wirings.gen.ts","../types/application-types.d.ts","../types/config.d.ts"],"version":"5.9.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pikku/cli",
3
- "version": "0.12.19",
3
+ "version": "0.12.20",
4
4
  "author": "yasser.fadl@gmail.com",
5
5
  "license": "BUSL-1.1",
6
6
  "imports": {
@@ -26,10 +26,12 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "@openapi-contrib/json-schema-to-openapi-schema": "^4.3.1",
29
- "@pikku/core": "^0.12.16",
29
+ "@pikku/core": "^0.12.18",
30
30
  "@pikku/deploy-cloudflare": "^0.12.0",
31
- "@pikku/inspector": "^0.12.9",
31
+ "@pikku/inspector": "^0.12.10",
32
32
  "@pikku/openapi-parser": "^0.12.10",
33
+ "@pikku/schedule": "^0.12.0",
34
+ "@pikku/ws": "^0.12.2",
33
35
  "@types/cookie": "^1.0.0",
34
36
  "@types/json-schema": "^7.0.15",
35
37
  "chalk": "^5.6.2",
@@ -42,12 +44,14 @@
42
44
  "ts-json-schema-generator": "^2.5.0",
43
45
  "tsx": "^4.21.0",
44
46
  "typescript": "^5.9",
47
+ "ws": "^8.18.0",
45
48
  "yaml": "^2.8.2",
46
49
  "zod": "^4.3.6",
47
50
  "zod-to-ts": "^2.0.0"
48
51
  },
49
52
  "devDependencies": {
50
- "@types/node": "^24.11.0"
53
+ "@types/node": "^24.11.0",
54
+ "@types/ws": "^8"
51
55
  },
52
56
  "files": [
53
57
  "dist",