@pikku/cli 0.12.92 → 0.12.93

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 (96) hide show
  1. package/console-app/assets/{index-D0HG8q0B.css → index-BYj7ZbUU.css} +1 -1
  2. package/console-app/assets/{index-DDpIMCpy.js → index-CmAplHjZ.js} +150 -148
  3. package/console-app/index.html +2 -2
  4. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
  5. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
  6. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  7. package/dist/.pikku/cli/pikku-cli-channel.js +11 -1
  8. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  9. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  10. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
  11. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
  12. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
  13. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  14. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
  15. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +27 -0
  16. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  17. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  18. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  19. package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
  20. package/dist/.pikku/console/pikku-node-types.gen.d.ts +1 -1
  21. package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
  22. package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
  23. package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
  24. package/dist/.pikku/function/pikku-functions-meta.gen.json +38 -0
  25. package/dist/.pikku/function/pikku-functions.gen.js +1 -1
  26. package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
  27. package/dist/.pikku/http/pikku-http-types.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-scenarios.gen.d.ts +1 -1
  31. package/dist/.pikku/pikku-bootstrap-scenarios.gen.js +1 -1
  32. package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
  33. package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
  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/queue/pikku-queue-workers-wirings-meta.gen.js +1 -1
  42. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  43. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  44. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
  45. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +2 -0
  46. package/dist/.pikku/scenarios/pikku-scenario-functions-meta.gen.js +1 -1
  47. package/dist/.pikku/scenarios/pikku-scenario-functions.gen.d.ts +1 -1
  48. package/dist/.pikku/scenarios/pikku-scenario-wirings-meta.gen.js +1 -1
  49. package/dist/.pikku/scenarios/pikku-scenario-wirings.gen.d.ts +1 -1
  50. package/dist/.pikku/scenarios/schemas/register.gen.d.ts +1 -1
  51. package/dist/.pikku/scenarios/schemas/register.gen.js +1 -1
  52. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  53. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  54. package/dist/.pikku/schemas/register.gen.js +9 -1
  55. package/dist/.pikku/schemas/schemas/KnowledgeIndexInput.schema.json +1 -0
  56. package/dist/.pikku/schemas/schemas/KnowledgeIndexOutput.schema.json +1 -0
  57. package/dist/.pikku/schemas/schemas/KnowledgeValidateInput.schema.json +1 -0
  58. package/dist/.pikku/schemas/schemas/KnowledgeValidateOutput.schema.json +1 -0
  59. package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
  60. package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
  61. package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
  62. package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
  63. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
  64. package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
  65. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
  66. package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
  67. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
  68. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
  69. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
  70. package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
  71. package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
  72. package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
  73. package/dist/.pikku/workflow/pikku-scenario-actors.gen.d.ts +1 -1
  74. package/dist/.pikku/workflow/pikku-scenario-actors.gen.js +1 -1
  75. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
  76. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
  77. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  78. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  79. package/dist/bin/pikku-bin.mjs +2 -2
  80. package/dist/src/cli.wiring.js +23 -0
  81. package/dist/src/fabric/functions/validate.function.js +16 -7
  82. package/dist/src/functions/commands/knowledge-index.d.ts +30 -0
  83. package/dist/src/functions/commands/knowledge-index.js +11 -0
  84. package/dist/src/functions/commands/knowledge-validate.d.ts +33 -0
  85. package/dist/src/functions/commands/knowledge-validate.js +11 -0
  86. package/dist/src/functions/commands/new-addon.d.ts +18 -0
  87. package/dist/src/functions/commands/new-addon.js +40 -24
  88. package/dist/src/functions/knowledge/render.d.ts +3 -0
  89. package/dist/src/functions/knowledge/render.js +66 -0
  90. package/dist/src/functions/knowledge/schemas.d.ts +51 -0
  91. package/dist/src/functions/knowledge/schemas.js +25 -0
  92. package/dist/src/functions/wirings/credentials/serialize-credentials-types.js +8 -1
  93. package/dist/src/functions/wirings/secrets/serialize-secrets-types.js +10 -3
  94. package/dist/src/functions/wirings/variables/serialize-variables-types.js +8 -1
  95. package/dist/tsconfig.tsbuildinfo +1 -1
  96. package/package.json +6 -5
@@ -110,7 +110,23 @@ function sanitizeAddonName(raw) {
110
110
  name = `x${name}`;
111
111
  return name || raw;
112
112
  }
113
- function getAddonFiles(vars, flags) {
113
+ /**
114
+ * `--display-name` and `--description` are free-form prose, so an apostrophe in
115
+ * them is ordinary — "Bob's CRM". `JSON.stringify` emits a valid, escaped
116
+ * string literal; interpolating the raw text into a quoted one terminates the
117
+ * string and the scaffolded file no longer parses. Prose composed with other
118
+ * words is stringified as a whole, not swapped in place.
119
+ */
120
+ const literal = (value) => JSON.stringify(value);
121
+ /**
122
+ * The same prose inside a generated template literal, where a backtick or a
123
+ * `${` opens an interpolation rather than ending the string — so the emitted
124
+ * message keeps its own `\${response.status}` holes.
125
+ */
126
+ const inTemplate = (value) => value.replace(/\\/g, '\\\\').replace(/`/g, '\\`').replace(/\$\{/g, '\\${');
127
+ /** The same prose on a `//` comment line, where a newline ends the comment. */
128
+ const inComment = (value) => value.replace(/\s+/g, ' ').trim();
129
+ export function getAddonFiles(vars, flags) {
114
130
  const { name, camelName, pascalName, screamingName, displayName, description, category, } = vars;
115
131
  const files = {};
116
132
  // package.json
@@ -205,7 +221,7 @@ ${description}
205
221
  6. Build: \`yarn install && yarn pikku && yarn build\`
206
222
  `;
207
223
  // src/index.ts
208
- files['src/index.ts'] = `// ${displayName} functions
224
+ files['src/index.ts'] = `// ${inComment(displayName)} functions
209
225
  // export { ${camelName}Operation } from './functions/operation.function.js'
210
226
  `;
211
227
  // src/services.ts
@@ -224,10 +240,10 @@ export const createWireServices = pikkuAddonWireServices(
224
240
  }
225
241
  const cred = await wire.getCredential<{ token: string; expiresAt?: number }>('${camelName}')
226
242
  if (!cred?.token) {
227
- throw new UnauthorizedError('No ${displayName} session — sign in again')
243
+ throw new UnauthorizedError(${literal(`No ${displayName} session — sign in again`)})
228
244
  }
229
245
  if (cred.expiresAt && cred.expiresAt * 1000 < Date.now()) {
230
- throw new UnauthorizedError('${displayName} session expired — sign in again')
246
+ throw new UnauthorizedError(${literal(`${displayName} session expired — sign in again`)})
231
247
  }
232
248
  const ${camelName} = new ${pascalName}Service(cred, variables)
233
249
 
@@ -275,7 +291,7 @@ export const createWireServices = pikkuAddonWireServices(
275
291
  }
276
292
  const cred = await wire.getCredential<{ accessToken: string }>('${camelName}')
277
293
  if (!cred?.accessToken) {
278
- throw new UnauthorizedError('No ${displayName} connection — connect ${displayName} first')
294
+ throw new UnauthorizedError(${literal(`No ${displayName} connection — connect ${displayName} first`)})
279
295
  }
280
296
  const ${camelName} = new ${pascalName}Service(cred, variables)
281
297
 
@@ -363,7 +379,7 @@ export class ${pascalName}Service {
363
379
 
364
380
  if (!response.ok) {
365
381
  const errorText = await response.text()
366
- throw new Error(\`${displayName} API error (\${response.status}): \${errorText}\`)
382
+ throw new Error(\`${inTemplate(displayName)} API error (\${response.status}): \${errorText}\`)
367
383
  }
368
384
 
369
385
  return response.json() as Promise<T>
@@ -416,7 +432,7 @@ export class ${pascalName}Service {
416
432
 
417
433
  if (!response.ok) {
418
434
  const errorText = await response.text()
419
- throw new Error(\`${displayName} API error (\${response.status}): \${errorText}\`)
435
+ throw new Error(\`${inTemplate(displayName)} API error (\${response.status}): \${errorText}\`)
420
436
  }
421
437
 
422
438
  return response.json() as Promise<T>
@@ -464,7 +480,7 @@ export class ${pascalName}Service {
464
480
 
465
481
  if (!response.ok) {
466
482
  const errorText = await response.text()
467
- throw new Error(\`${displayName} API error (\${response.status}): \${errorText}\`)
483
+ throw new Error(\`${inTemplate(displayName)} API error (\${response.status}): \${errorText}\`)
468
484
  }
469
485
 
470
486
  return response.json() as Promise<T>
@@ -507,7 +523,7 @@ export class ${pascalName}Service {
507
523
 
508
524
  if (!response.ok) {
509
525
  const errorText = await response.text()
510
- throw new Error(\`${displayName} API error (\${response.status}): \${errorText}\`)
526
+ throw new Error(\`${inTemplate(displayName)} API error (\${response.status}): \${errorText}\`)
511
527
  }
512
528
 
513
529
  return response.json() as Promise<T>
@@ -553,13 +569,13 @@ export interface Services extends CoreServices<SingletonServices> {}
553
569
  import { wireCredential } from '@pikku/core/credential'
554
570
 
555
571
  export const ${camelName}CredentialSchema = z.object({
556
- apiKey: z.string().describe('${displayName} API key'),
572
+ apiKey: z.string().describe(${literal(`${displayName} API key`)}),
557
573
  })
558
574
 
559
575
  wireCredential({
560
576
  name: '${camelName}',
561
- displayName: '${displayName}',
562
- description: '${description}',
577
+ displayName: ${literal(displayName)},
578
+ description: ${literal(description)},
563
579
  type: 'wire',
564
580
  schema: ${camelName}CredentialSchema,
565
581
  })
@@ -567,10 +583,10 @@ wireCredential({
567
583
  }
568
584
  else if (flags.credential === 'bearer') {
569
585
  const credentialFields = flags.delegated
570
- ? ` token: z.string().describe('${displayName} session token captured at delegated sign-in'),
586
+ ? ` token: z.string().describe(${literal(`${displayName} session token captured at delegated sign-in`)}),
571
587
  expiresAt: z.number().optional().describe('Token expiry (epoch seconds)'),
572
588
  tenantId: z.string().optional().describe('Upstream tenant id'),`
573
- : ` token: z.string().describe('${displayName} bearer token'),`;
589
+ : ` token: z.string().describe(${literal(`${displayName} bearer token`)}),`;
574
590
  files[`src/${name}.credential.ts`] = `import { z } from 'zod'
575
591
  import { wireCredential } from '@pikku/core/credential'
576
592
 
@@ -580,8 +596,8 @@ ${credentialFields}
580
596
 
581
597
  wireCredential({
582
598
  name: '${camelName}',
583
- displayName: '${displayName}',
584
- description: '${description}',
599
+ displayName: ${literal(displayName)},
600
+ description: ${literal(description)},
585
601
  type: 'wire',
586
602
  schema: ${camelName}CredentialSchema,
587
603
  })
@@ -599,8 +615,8 @@ export const ${camelName}TokenSchema = z.object({
599
615
 
600
616
  wireCredential({
601
617
  name: '${camelName}',
602
- displayName: '${displayName}',
603
- description: '${description}',
618
+ displayName: ${literal(displayName)},
619
+ description: ${literal(description)},
604
620
  type: 'wire',
605
621
  schema: ${camelName}TokenSchema,
606
622
  oauth2: {
@@ -614,8 +630,8 @@ wireCredential({
614
630
 
615
631
  wireSecret({
616
632
  name: '${camelName}OAuthApp',
617
- displayName: '${displayName} OAuth App',
618
- description: 'OAuth2 app credentials for ${displayName}',
633
+ displayName: ${literal(`${displayName} OAuth App`)},
634
+ description: ${literal(`OAuth2 app credentials for ${displayName}`)},
619
635
  secretId: '${screamingName}_OAUTH_APP',
620
636
  })
621
637
  `;
@@ -625,7 +641,7 @@ wireSecret({
625
641
  import { wireSecret } from '@pikku/core/secret'
626
642
 
627
643
  export const ${camelName}SecretsSchema = z.object({
628
- apiKey: z.string().describe('${displayName} API key'),
644
+ apiKey: z.string().describe(${literal(`${displayName} API key`)}),
629
645
  // Add other secret fields as needed
630
646
  })
631
647
 
@@ -633,8 +649,8 @@ export type ${pascalName}Secrets = z.infer<typeof ${camelName}SecretsSchema>
633
649
 
634
650
  wireSecret({
635
651
  name: '${camelName}',
636
- displayName: '${displayName} API',
637
- description: '${description}',
652
+ displayName: ${literal(`${displayName} API`)},
653
+ description: ${literal(description)},
638
654
  secretId: '${screamingName}_CREDENTIALS',
639
655
  schema: ${camelName}SecretsSchema,
640
656
  })
@@ -649,7 +665,7 @@ export const ${camelName}VariableSchema = z.string().optional().describe('TODO:
649
665
 
650
666
  wireVariable({
651
667
  name: '${camelName}_variable',
652
- displayName: '${displayName} Variable',
668
+ displayName: ${literal(`${displayName} Variable`)},
653
669
  description: 'TODO: describe this variable',
654
670
  variableId: '${screamingName}_VARIABLE',
655
671
  schema: ${camelName}VariableSchema,
@@ -0,0 +1,3 @@
1
+ import type { KnowledgeIndexResult, KnowledgeValidateResult } from '@pikku/knowledge';
2
+ export declare const renderKnowledgeValidate: (_services: unknown, { ok, notes, findings }: KnowledgeValidateResult) => void;
3
+ export declare const renderKnowledgeIndex: (_services: unknown, { ok, check, files }: KnowledgeIndexResult) => void;
@@ -0,0 +1,66 @@
1
+ import { added, changed, dim, removed } from '../../fabric/lib/output.js';
2
+ export const renderKnowledgeValidate = (_services, { ok, notes, findings }) => {
3
+ const errors = findings.filter((f) => f.severity === 'error');
4
+ const warns = findings.filter((f) => f.severity === 'warn');
5
+ const infos = findings.filter((f) => f.severity === 'info');
6
+ for (const finding of [...errors, ...warns, ...infos]) {
7
+ const icon = finding.severity === 'error'
8
+ ? removed('✗')
9
+ : finding.severity === 'warn'
10
+ ? changed('⚠')
11
+ : dim('ℹ');
12
+ console.log(`${icon} ${finding.message}`);
13
+ console.log(` ${dim('fix:')} ${finding.fixHint}`);
14
+ console.log();
15
+ }
16
+ const counts = [dim(`${notes} note${notes !== 1 ? 's' : ''}`)];
17
+ if (errors.length) {
18
+ counts.push(removed(`${errors.length} error${errors.length !== 1 ? 's' : ''}`));
19
+ }
20
+ if (warns.length) {
21
+ counts.push(changed(`${warns.length} warning${warns.length !== 1 ? 's' : ''}`));
22
+ }
23
+ console.log('─'.repeat(40));
24
+ console.log(counts.join(' '));
25
+ if (ok && warns.length === 0 && errors.length === 0) {
26
+ console.log(added('✓') + ' ' + dim('the knowledge base is consistent'));
27
+ }
28
+ // An error means the base contradicts itself, which a pipeline has to be able
29
+ // to stop on — so this command reports it the only way a shell can read.
30
+ if (!ok)
31
+ process.exitCode = 1;
32
+ };
33
+ export const renderKnowledgeIndex = (_services, { ok, check, files }) => {
34
+ if (files.length === 0) {
35
+ console.log(dim('No knowledge notes — nothing to index.'));
36
+ return;
37
+ }
38
+ for (const file of files) {
39
+ if (file.action === 'unchanged') {
40
+ console.log(`${dim('=')} ${dim(file.path)}`);
41
+ }
42
+ else if (check) {
43
+ console.log(`${removed('✗')} ${file.path} ${dim(`(${file.action})`)}`);
44
+ }
45
+ else {
46
+ console.log(`${added('✓')} ${file.path} ${dim(`(${file.action})`)}`);
47
+ }
48
+ }
49
+ console.log('─'.repeat(40));
50
+ if (!check) {
51
+ const written = files.filter((f) => f.action !== 'unchanged').length;
52
+ console.log(written === 0
53
+ ? added('✓') + ' ' + dim('every index was already current')
54
+ : added('✓') +
55
+ ` ${written} index file${written !== 1 ? 's' : ''} written`);
56
+ }
57
+ else {
58
+ console.log(ok
59
+ ? added('✓') + ' ' + dim('every index is current')
60
+ : removed('✗') +
61
+ ' ' +
62
+ 'indexes are stale — run `pikku knowledge index`');
63
+ if (!ok)
64
+ process.exitCode = 1;
65
+ }
66
+ };
@@ -0,0 +1,51 @@
1
+ /**
2
+ * The knowledge command schemas, re-bound to variables declared HERE rather than
3
+ * imported straight into the command files.
4
+ *
5
+ * Two things about how the CLI builds itself make this the only shape that works:
6
+ *
7
+ * 1. The build bootstraps with the PUBLISHED CLI and inspector, so the code that
8
+ * reads these schemas is whatever npm has, not what is in this worktree. An
9
+ * identifier imported from `@pikku/knowledge` resolves to that package's
10
+ * `.d.ts`, and importing a declaration file yields a module with no exports at
11
+ * all — every one of them is a type. A binding declared in a `.ts` gives the
12
+ * inspector a file it can execute, and the import inside it resolves to the
13
+ * package's emitted JS.
14
+ * 2. The command files import `#pikku`, which points at `dist/.pikku/` — output
15
+ * that does not exist yet while the bootstrap is running. A schema the
16
+ * inspector has to import therefore cannot live beside a wired function.
17
+ *
18
+ * `schemaRuntimeFile` in the inspector fixes (1) at the root, so once a release
19
+ * carrying it is the bootstrap version, (2) is the only reason this file is here.
20
+ */
21
+ export declare const KnowledgeIndexInputSchema: import("zod").ZodObject<{
22
+ check: import("zod").ZodOptional<import("zod").ZodBoolean>;
23
+ }, import("zod/v4/core").$strip>;
24
+ export declare const KnowledgeIndexOutputSchema: import("zod").ZodObject<{
25
+ ok: import("zod").ZodBoolean;
26
+ check: import("zod").ZodBoolean;
27
+ files: import("zod").ZodArray<import("zod").ZodObject<{
28
+ path: import("zod").ZodString;
29
+ action: import("zod").ZodEnum<{
30
+ created: "created";
31
+ updated: "updated";
32
+ unchanged: "unchanged";
33
+ }>;
34
+ }, import("zod/v4/core").$strip>>;
35
+ }, import("zod/v4/core").$strip>;
36
+ export declare const KnowledgeValidateInputSchema: import("zod").ZodObject<{}, import("zod/v4/core").$strip>;
37
+ export declare const KnowledgeValidateOutputSchema: import("zod").ZodObject<{
38
+ ok: import("zod").ZodBoolean;
39
+ notes: import("zod").ZodNumber;
40
+ findings: import("zod").ZodArray<import("zod").ZodObject<{
41
+ id: import("zod").ZodString;
42
+ severity: import("zod").ZodEnum<{
43
+ error: "error";
44
+ warn: "warn";
45
+ info: "info";
46
+ }>;
47
+ message: import("zod").ZodString;
48
+ path: import("zod").ZodString;
49
+ fixHint: import("zod").ZodString;
50
+ }, import("zod/v4/core").$strip>>;
51
+ }, import("zod/v4/core").$strip>;
@@ -0,0 +1,25 @@
1
+ import { KnowledgeIndexInput, KnowledgeIndexOutput, KnowledgeValidateInput, KnowledgeValidateOutput, } from '@pikku/knowledge';
2
+ /**
3
+ * The knowledge command schemas, re-bound to variables declared HERE rather than
4
+ * imported straight into the command files.
5
+ *
6
+ * Two things about how the CLI builds itself make this the only shape that works:
7
+ *
8
+ * 1. The build bootstraps with the PUBLISHED CLI and inspector, so the code that
9
+ * reads these schemas is whatever npm has, not what is in this worktree. An
10
+ * identifier imported from `@pikku/knowledge` resolves to that package's
11
+ * `.d.ts`, and importing a declaration file yields a module with no exports at
12
+ * all — every one of them is a type. A binding declared in a `.ts` gives the
13
+ * inspector a file it can execute, and the import inside it resolves to the
14
+ * package's emitted JS.
15
+ * 2. The command files import `#pikku`, which points at `dist/.pikku/` — output
16
+ * that does not exist yet while the bootstrap is running. A schema the
17
+ * inspector has to import therefore cannot live beside a wired function.
18
+ *
19
+ * `schemaRuntimeFile` in the inspector fixes (1) at the root, so once a release
20
+ * carrying it is the bootstrap version, (2) is the only reason this file is here.
21
+ */
22
+ export const KnowledgeIndexInputSchema = KnowledgeIndexInput;
23
+ export const KnowledgeIndexOutputSchema = KnowledgeIndexOutput;
24
+ export const KnowledgeValidateInputSchema = KnowledgeValidateInput;
25
+ export const KnowledgeValidateOutputSchema = KnowledgeValidateOutput;
@@ -1,5 +1,12 @@
1
1
  import { validateAndBuildCredentialDefinitionsMeta } from '@pikku/core/credential';
2
2
  import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
3
+ /**
4
+ * A display name is the human-facing label a developer wrote, so an apostrophe
5
+ * in it is ordinary. `JSON.stringify` emits a valid, escaped TypeScript string
6
+ * literal; interpolating the raw text into a quoted one terminates the string
7
+ * and the generated file stops parsing.
8
+ */
9
+ const literal = (value) => JSON.stringify(value);
3
10
  export const serializeCredentialsTypes = ({ definitions, schemaLookup, credentialsFile, packageMappings, }) => {
4
11
  const credentials = validateAndBuildCredentialDefinitionsMeta(definitions, schemaLookup);
5
12
  const credentialEntries = Object.entries(credentials);
@@ -22,7 +29,7 @@ export const serializeCredentialsTypes = ({ definitions, schemaLookup, credentia
22
29
  }
23
30
  const metaParts = [
24
31
  `name: '${name}'`,
25
- `displayName: '${meta.displayName}'`,
32
+ `displayName: ${literal(meta.displayName)}`,
26
33
  `type: '${meta.type}'`,
27
34
  ];
28
35
  if (meta.oauth2) {
@@ -1,5 +1,12 @@
1
1
  import { validateAndBuildSecretDefinitionsMeta } from '@pikku/core/secret';
2
2
  import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
3
+ /**
4
+ * A display name is the human-facing label a developer wrote, so an apostrophe
5
+ * in it is ordinary. `JSON.stringify` emits a valid, escaped TypeScript string
6
+ * literal; interpolating the raw text into a quoted one terminates the string
7
+ * and the generated file stops parsing.
8
+ */
9
+ const literal = (value) => JSON.stringify(value);
3
10
  export const serializeSecretsTypes = ({ definitions, schemaLookup, secretsFile, packageMappings, }) => {
4
11
  const secrets = validateAndBuildSecretDefinitionsMeta(definitions, schemaLookup);
5
12
  const credentialEntries = Object.entries(secrets);
@@ -13,8 +20,8 @@ export const serializeSecretsTypes = ({ definitions, schemaLookup, secretsFile,
13
20
  needsOAuth2Types = true;
14
21
  mapEntries.push(` '${meta.secretId}': OAuth2AppCredential`);
15
22
  mapEntries.push(` '${meta.oauth2.tokenSecretId}': OAuth2Token`);
16
- metaEntries.push(` '${meta.secretId}': { name: '${name}', displayName: '${meta.displayName}', oauth2: { tokenSecretId: '${meta.oauth2.tokenSecretId}' } }`);
17
- metaEntries.push(` '${meta.oauth2.tokenSecretId}': { name: '${name}_tokens', displayName: '${meta.displayName} Tokens' }`);
23
+ metaEntries.push(` '${meta.secretId}': { name: '${name}', displayName: ${literal(meta.displayName)}, oauth2: { tokenSecretId: '${meta.oauth2.tokenSecretId}' } }`);
24
+ metaEntries.push(` '${meta.oauth2.tokenSecretId}': { name: '${name}_tokens', displayName: ${literal(`${meta.displayName} Tokens`)} }`);
18
25
  }
19
26
  else if (meta.schema && typeof meta.schema === 'string') {
20
27
  const schemaRef = schemaLookup.get(meta.schema);
@@ -25,7 +32,7 @@ export const serializeSecretsTypes = ({ definitions, schemaLookup, secretsFile,
25
32
  }
26
33
  schemaImports.get(schemaRef.sourceFile).add(schemaRef.variableName);
27
34
  mapEntries.push(` '${meta.secretId}': z.infer<typeof ${schemaRef.variableName}>`);
28
- metaEntries.push(` '${meta.secretId}': { name: '${name}', displayName: '${meta.displayName}' }`);
35
+ metaEntries.push(` '${meta.secretId}': { name: '${name}', displayName: ${literal(meta.displayName)} }`);
29
36
  }
30
37
  }
31
38
  }
@@ -1,5 +1,12 @@
1
1
  import { validateAndBuildVariableDefinitionsMeta } from '@pikku/core/variable';
2
2
  import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
3
+ /**
4
+ * A display name is the human-facing label a developer wrote, so an apostrophe
5
+ * in it is ordinary. `JSON.stringify` emits a valid, escaped TypeScript string
6
+ * literal; interpolating the raw text into a quoted one terminates the string
7
+ * and the generated file stops parsing.
8
+ */
9
+ const literal = (value) => JSON.stringify(value);
3
10
  export const serializeVariablesTypes = ({ definitions, schemaLookup, variablesFile, packageMappings, }) => {
4
11
  const variables = validateAndBuildVariableDefinitionsMeta(definitions, schemaLookup);
5
12
  const variableEntries = Object.entries(variables);
@@ -17,7 +24,7 @@ export const serializeVariablesTypes = ({ definitions, schemaLookup, variablesFi
17
24
  }
18
25
  schemaImports.get(schemaRef.sourceFile).add(schemaRef.variableName);
19
26
  mapEntries.push(` '${meta.variableId}': z.infer<typeof ${schemaRef.variableName}>`);
20
- metaEntries.push(` '${meta.variableId}': { name: '${name}', displayName: '${meta.displayName}' }`);
27
+ metaEntries.push(` '${meta.variableId}': { name: '${name}', displayName: ${literal(meta.displayName)} }`);
21
28
  }
22
29
  }
23
30
  }
@@ -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/server-entry.ts","../src/deploy/analyzer/analyzer.ts","../src/deploy/analyzer/index.ts","../src/deploy/analyzer/manifest.ts","../src/deploy/bundler/bun-bundler.ts","../src/deploy/bundler/bundler.interface.ts","../src/deploy/bundler/bundler.ts","../src/deploy/bundler/dep-extractor.ts","../src/deploy/bundler/index.ts","../src/deploy/bundler/node-bundler.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/fabric/fabric-commands.ts","../src/fabric/functions/add.function.ts","../src/fabric/functions/addon-verify.function.ts","../src/fabric/functions/db-schema.function.ts","../src/fabric/functions/deploy-list.function.ts","../src/fabric/functions/deploy-units.function.ts","../src/fabric/functions/deploy.function.ts","../src/fabric/functions/domains-add.function.ts","../src/fabric/functions/domains-list.function.ts","../src/fabric/functions/domains-remove.function.ts","../src/fabric/functions/errors.function.ts","../src/fabric/functions/init.function.ts","../src/fabric/functions/link.function.ts","../src/fabric/functions/llm-key.function.ts","../src/fabric/functions/login.function.ts","../src/fabric/functions/logs.function.ts","../src/fabric/functions/metrics.function.ts","../src/fabric/functions/publish.function.ts","../src/fabric/functions/rollback.function.ts","../src/fabric/functions/secrets-list.function.ts","../src/fabric/functions/secrets-rotate.function.ts","../src/fabric/functions/secrets-set.function.ts","../src/fabric/functions/smoke.function.ts","../src/fabric/functions/status.function.ts","../src/fabric/functions/trace.function.ts","../src/fabric/functions/validate.function.ts","../src/fabric/lib/config.ts","../src/fabric/lib/console-url.ts","../src/fabric/lib/frontend-typecheck.ts","../src/fabric/lib/git.ts","../src/fabric/lib/http.ts","../src/fabric/lib/not-implemented.ts","../src/fabric/lib/output.ts","../src/fabric/lib/prompt.ts","../src/fabric/lib/sealed-box.ts","../src/fabric/lib/stage.ts","../src/fabric/sdk/http-map.gen.d.ts","../src/fabric/sdk/pikku-fetch.gen.ts","../src/fabric/sdk/pikku-rpc.gen.ts","../src/fabric/sdk/rpc-map.gen.d.ts","../src/functions/commands/all.ts","../src/functions/commands/audit.ts","../src/functions/commands/binary.ts","../src/functions/commands/bootstrap.ts","../src/functions/commands/bun-coverage-loader.ts","../src/functions/commands/db-audit.ts","../src/functions/commands/db-baseline.ts","../src/functions/commands/db-check.ts","../src/functions/commands/db-codegen.ts","../src/functions/commands/db-export.ts","../src/functions/commands/db-generate.ts","../src/functions/commands/db-migrate.ts","../src/functions/commands/db-reset.ts","../src/functions/commands/db-seed.ts","../src/functions/commands/db-shared.ts","../src/functions/commands/deploy-apply.ts","../src/functions/commands/deploy-info.ts","../src/functions/commands/deploy-plan.ts","../src/functions/commands/dev-ai-runner.ts","../src/functions/commands/dev.ts","../src/functions/commands/emails-init.ts","../src/functions/commands/enable.ts","../src/functions/commands/import-n8n.ts","../src/functions/commands/info.ts","../src/functions/commands/load-user-project.ts","../src/functions/commands/login.ts","../src/functions/commands/meta.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/scenario-browser.ts","../src/functions/commands/scenario-environment.ts","../src/functions/commands/scenario-formatter.ts","../src/functions/commands/scenario-ladder.ts","../src/functions/commands/scenario-plan.ts","../src/functions/commands/scenario.ts","../src/functions/commands/scopes-audit.ts","../src/functions/commands/scopes-prune.ts","../src/functions/commands/scopes-shared.ts","../src/functions/commands/serve-console.ts","../src/functions/commands/serve.ts","../src/functions/commands/skills.ts","../src/functions/commands/start-coverage.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/commands/workspace-validate.ts","../src/functions/db/annotation-parser.ts","../src/functions/db/better-auth-schema.ts","../src/functions/db/coercion-plugin.ts","../src/functions/db/db-codegen.ts","../src/functions/db/db-introspector.ts","../src/functions/db/db-migrator.ts","../src/functions/db/local-db.ts","../src/functions/db/migration-identifiers.ts","../src/functions/db/migration-provenance.ts","../src/functions/db/schema-sql.ts","../src/functions/db/zod-codegen.ts","../src/functions/db/postgres/pglite-kysely.ts","../src/functions/db/postgres/postgres-introspector.ts","../src/functions/db/postgres/postgres-migrator.ts","../src/functions/db/sqlite/seed.ts","../src/functions/db/sqlite/sqlite-introspector.ts","../src/functions/db/sqlite/sqlite-kysely.ts","../src/functions/db/sqlite/sqlite-migrator.ts","../src/functions/db/sqlite/sqlite-runtime-bun.ts","../src/functions/db/sqlite/sqlite-runtime-node.ts","../src/functions/db/sqlite/sqlite-runtime.ts","../src/functions/runtimes/fetch/index.ts","../src/functions/runtimes/nextjs/pikku-command-nextjs.ts","../src/functions/runtimes/nextjs/serialize-nextjs-backend-worker-rpc-wrapper.ts","../src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts","../src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts","../src/functions/runtimes/tanstack-start/pikku-command-tanstack-start.ts","../src/functions/runtimes/tanstack-start/serialize-tanstack-start-shim.ts","../src/functions/runtimes/websocket/pikku-command-websocket-typed.ts","../src/functions/runtimes/websocket/serialize-websocket-wrapper.ts","../src/functions/validate/workspace-validate.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/auth/pikku-command-auth.ts","../src/functions/wirings/auth/serialize-auth-gen.ts","../src/functions/wirings/auth/serialize-auth-meta.ts","../src/functions/wirings/auth/serialize-auth-types.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/emails/pikku-command-emails.ts","../src/functions/wirings/emails/serialize-emails.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-refs.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/gateway/serialize-gateway-meta.ts","../src/functions/wirings/graph/pikku-command-graph-wirings.ts","../src/functions/wirings/graph/serialize-graph-wirings.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/realtime/pikku-command-events-scaffold.ts","../src/functions/wirings/realtime/pikku-command-realtime.ts","../src/functions/wirings/realtime/serialize-events-scaffold.ts","../src/functions/wirings/realtime/serialize-realtime-client.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/scenarios/register-scenario-instrumentation.ts","../src/functions/wirings/scenarios/scenario-partition.ts","../src/functions/wirings/scenarios/scenario-schema-partition.ts","../src/functions/wirings/scenarios/serialize-feature-meta.ts","../src/functions/wirings/scenarios/serialize-scenario-meta.ts","../src/functions/wirings/scenarios/serialize-scenario-registration.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/scopes/pikku-command-scopes.ts","../src/functions/wirings/scopes/serialize-scopes-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/user-admin/pikku-command-user-admin-functions.ts","../src/functions/wirings/user-admin/serialize-user-admin-functions.ts","../src/functions/wirings/variables/pikku-command-variables.ts","../src/functions/wirings/variables/serialize-variables-types.ts","../src/functions/wirings/webhook/pikku-command-webhook.ts","../src/functions/wirings/webhook/serialize-webhook.ts","../src/functions/wirings/workflow/pikku-command-workflow-routes.ts","../src/functions/wirings/workflow/pikku-command-workflow.ts","../src/functions/wirings/workflow/serialize-scenario-actors.ts","../src/functions/wirings/workflow/serialize-scenario-step-map.ts","../src/functions/wirings/workflow/serialize-workflow-bootstrap-map.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/server/bun-server-runner.ts","../src/server/dev-server-runner.interface.ts","../src/server/node-server-runner.ts","../src/server/server-ready.ts","../src/server/spawn-dev-server.ts","../src/services/cli-logger-forwarder.service.ts","../src/services/cli-logger.service.ts","../src/utils/assert-single-core-version.ts","../src/utils/check-required-types.ts","../src/utils/cli-session.ts","../src/utils/command-summary.ts","../src/utils/contract-versions.ts","../src/utils/detect-better-auth.ts","../src/utils/device-auth.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/meta-diff.ts","../src/utils/parse-cli-filters.ts","../src/utils/pikku-cli-config.ts","../src/utils/pikku-files-and-methods.ts","../src/utils/precise-coverage-map.ts","../src/utils/remove-legacy-scaffold-file.ts","../src/utils/resolve-scenario-actors.ts","../src/utils/serialize-import-map.ts","../src/utils/serialize-meta-ts.ts","../src/utils/serialize-schemas.ts","../src/utils/strip-verbose-meta.ts","../src/utils/tsc-check.ts","../.pikku/pikku-bootstrap-scenarios.gen.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/auth/auth.types.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-contracts-meta.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/mcp/pikku-mcp-types.gen.ts","../.pikku/node/pikku-node-types.gen.ts","../.pikku/queue/pikku-queue-types.gen.ts","../.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts","../.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts","../.pikku/queue/pikku-queue-workers-wirings.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-map.remote.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts","../.pikku/scenarios/pikku-scenario-functions-meta.gen.ts","../.pikku/scenarios/pikku-scenario-functions.gen.ts","../.pikku/scenarios/pikku-scenario-wirings-meta.gen.ts","../.pikku/scenarios/pikku-scenario-wirings.gen.ts","../.pikku/scenarios/schemas/register.gen.ts","../.pikku/scheduler/pikku-scheduler-types.gen.ts","../.pikku/schemas/register.gen.ts","../.pikku/scopes/pikku-scope-types.gen.ts","../.pikku/scopes/pikku-scopes.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-scenario-actors.gen.ts","../.pikku/workflow/pikku-scenario-step-map.gen.d.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/bun-sqlite.d.ts","../types/config.d.ts"],"version":"6.0.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/server-entry.ts","../src/deploy/analyzer/analyzer.ts","../src/deploy/analyzer/index.ts","../src/deploy/analyzer/manifest.ts","../src/deploy/bundler/bun-bundler.ts","../src/deploy/bundler/bundler.interface.ts","../src/deploy/bundler/bundler.ts","../src/deploy/bundler/dep-extractor.ts","../src/deploy/bundler/index.ts","../src/deploy/bundler/node-bundler.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/fabric/fabric-commands.ts","../src/fabric/functions/add.function.ts","../src/fabric/functions/addon-verify.function.ts","../src/fabric/functions/db-schema.function.ts","../src/fabric/functions/deploy-list.function.ts","../src/fabric/functions/deploy-units.function.ts","../src/fabric/functions/deploy.function.ts","../src/fabric/functions/domains-add.function.ts","../src/fabric/functions/domains-list.function.ts","../src/fabric/functions/domains-remove.function.ts","../src/fabric/functions/errors.function.ts","../src/fabric/functions/init.function.ts","../src/fabric/functions/link.function.ts","../src/fabric/functions/llm-key.function.ts","../src/fabric/functions/login.function.ts","../src/fabric/functions/logs.function.ts","../src/fabric/functions/metrics.function.ts","../src/fabric/functions/publish.function.ts","../src/fabric/functions/rollback.function.ts","../src/fabric/functions/secrets-list.function.ts","../src/fabric/functions/secrets-rotate.function.ts","../src/fabric/functions/secrets-set.function.ts","../src/fabric/functions/smoke.function.ts","../src/fabric/functions/status.function.ts","../src/fabric/functions/trace.function.ts","../src/fabric/functions/validate.function.ts","../src/fabric/lib/config.ts","../src/fabric/lib/console-url.ts","../src/fabric/lib/frontend-typecheck.ts","../src/fabric/lib/git.ts","../src/fabric/lib/http.ts","../src/fabric/lib/not-implemented.ts","../src/fabric/lib/output.ts","../src/fabric/lib/prompt.ts","../src/fabric/lib/sealed-box.ts","../src/fabric/lib/stage.ts","../src/fabric/sdk/http-map.gen.d.ts","../src/fabric/sdk/pikku-fetch.gen.ts","../src/fabric/sdk/pikku-rpc.gen.ts","../src/fabric/sdk/rpc-map.gen.d.ts","../src/functions/commands/all.ts","../src/functions/commands/audit.ts","../src/functions/commands/binary.ts","../src/functions/commands/bootstrap.ts","../src/functions/commands/bun-coverage-loader.ts","../src/functions/commands/db-audit.ts","../src/functions/commands/db-baseline.ts","../src/functions/commands/db-check.ts","../src/functions/commands/db-codegen.ts","../src/functions/commands/db-export.ts","../src/functions/commands/db-generate.ts","../src/functions/commands/db-migrate.ts","../src/functions/commands/db-reset.ts","../src/functions/commands/db-seed.ts","../src/functions/commands/db-shared.ts","../src/functions/commands/deploy-apply.ts","../src/functions/commands/deploy-info.ts","../src/functions/commands/deploy-plan.ts","../src/functions/commands/dev-ai-runner.ts","../src/functions/commands/dev.ts","../src/functions/commands/emails-init.ts","../src/functions/commands/enable.ts","../src/functions/commands/import-n8n.ts","../src/functions/commands/info.ts","../src/functions/commands/knowledge-index.ts","../src/functions/commands/knowledge-validate.ts","../src/functions/commands/load-user-project.ts","../src/functions/commands/login.ts","../src/functions/commands/meta.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/scenario-browser.ts","../src/functions/commands/scenario-environment.ts","../src/functions/commands/scenario-formatter.ts","../src/functions/commands/scenario-ladder.ts","../src/functions/commands/scenario-plan.ts","../src/functions/commands/scenario.ts","../src/functions/commands/scopes-audit.ts","../src/functions/commands/scopes-prune.ts","../src/functions/commands/scopes-shared.ts","../src/functions/commands/serve-console.ts","../src/functions/commands/serve.ts","../src/functions/commands/skills.ts","../src/functions/commands/start-coverage.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/commands/workspace-validate.ts","../src/functions/db/annotation-parser.ts","../src/functions/db/better-auth-schema.ts","../src/functions/db/coercion-plugin.ts","../src/functions/db/db-codegen.ts","../src/functions/db/db-introspector.ts","../src/functions/db/db-migrator.ts","../src/functions/db/local-db.ts","../src/functions/db/migration-identifiers.ts","../src/functions/db/migration-provenance.ts","../src/functions/db/schema-sql.ts","../src/functions/db/zod-codegen.ts","../src/functions/db/postgres/pglite-kysely.ts","../src/functions/db/postgres/postgres-introspector.ts","../src/functions/db/postgres/postgres-migrator.ts","../src/functions/db/sqlite/seed.ts","../src/functions/db/sqlite/sqlite-introspector.ts","../src/functions/db/sqlite/sqlite-kysely.ts","../src/functions/db/sqlite/sqlite-migrator.ts","../src/functions/db/sqlite/sqlite-runtime-bun.ts","../src/functions/db/sqlite/sqlite-runtime-node.ts","../src/functions/db/sqlite/sqlite-runtime.ts","../src/functions/knowledge/render.ts","../src/functions/knowledge/schemas.ts","../src/functions/runtimes/fetch/index.ts","../src/functions/runtimes/nextjs/pikku-command-nextjs.ts","../src/functions/runtimes/nextjs/serialize-nextjs-backend-worker-rpc-wrapper.ts","../src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts","../src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts","../src/functions/runtimes/tanstack-start/pikku-command-tanstack-start.ts","../src/functions/runtimes/tanstack-start/serialize-tanstack-start-shim.ts","../src/functions/runtimes/websocket/pikku-command-websocket-typed.ts","../src/functions/runtimes/websocket/serialize-websocket-wrapper.ts","../src/functions/validate/workspace-validate.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/auth/pikku-command-auth.ts","../src/functions/wirings/auth/serialize-auth-gen.ts","../src/functions/wirings/auth/serialize-auth-meta.ts","../src/functions/wirings/auth/serialize-auth-types.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/emails/pikku-command-emails.ts","../src/functions/wirings/emails/serialize-emails.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-refs.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/gateway/serialize-gateway-meta.ts","../src/functions/wirings/graph/pikku-command-graph-wirings.ts","../src/functions/wirings/graph/serialize-graph-wirings.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/realtime/pikku-command-events-scaffold.ts","../src/functions/wirings/realtime/pikku-command-realtime.ts","../src/functions/wirings/realtime/serialize-events-scaffold.ts","../src/functions/wirings/realtime/serialize-realtime-client.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/scenarios/register-scenario-instrumentation.ts","../src/functions/wirings/scenarios/scenario-partition.ts","../src/functions/wirings/scenarios/scenario-schema-partition.ts","../src/functions/wirings/scenarios/serialize-feature-meta.ts","../src/functions/wirings/scenarios/serialize-scenario-meta.ts","../src/functions/wirings/scenarios/serialize-scenario-registration.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/scopes/pikku-command-scopes.ts","../src/functions/wirings/scopes/serialize-scopes-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/user-admin/pikku-command-user-admin-functions.ts","../src/functions/wirings/user-admin/serialize-user-admin-functions.ts","../src/functions/wirings/variables/pikku-command-variables.ts","../src/functions/wirings/variables/serialize-variables-types.ts","../src/functions/wirings/webhook/pikku-command-webhook.ts","../src/functions/wirings/webhook/serialize-webhook.ts","../src/functions/wirings/workflow/pikku-command-workflow-routes.ts","../src/functions/wirings/workflow/pikku-command-workflow.ts","../src/functions/wirings/workflow/serialize-scenario-actors.ts","../src/functions/wirings/workflow/serialize-scenario-step-map.ts","../src/functions/wirings/workflow/serialize-workflow-bootstrap-map.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/server/bun-server-runner.ts","../src/server/dev-server-runner.interface.ts","../src/server/node-server-runner.ts","../src/server/server-ready.ts","../src/server/spawn-dev-server.ts","../src/services/cli-logger-forwarder.service.ts","../src/services/cli-logger.service.ts","../src/utils/assert-single-core-version.ts","../src/utils/check-required-types.ts","../src/utils/cli-session.ts","../src/utils/command-summary.ts","../src/utils/contract-versions.ts","../src/utils/detect-better-auth.ts","../src/utils/device-auth.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/meta-diff.ts","../src/utils/parse-cli-filters.ts","../src/utils/pikku-cli-config.ts","../src/utils/pikku-files-and-methods.ts","../src/utils/precise-coverage-map.ts","../src/utils/remove-legacy-scaffold-file.ts","../src/utils/resolve-scenario-actors.ts","../src/utils/serialize-import-map.ts","../src/utils/serialize-meta-ts.ts","../src/utils/serialize-schemas.ts","../src/utils/strip-verbose-meta.ts","../src/utils/tsc-check.ts","../.pikku/pikku-bootstrap-scenarios.gen.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/auth/auth.types.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-contracts-meta.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/mcp/pikku-mcp-types.gen.ts","../.pikku/node/pikku-node-types.gen.ts","../.pikku/queue/pikku-queue-types.gen.ts","../.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts","../.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts","../.pikku/queue/pikku-queue-workers-wirings.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-map.remote.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts","../.pikku/scenarios/pikku-scenario-functions-meta.gen.ts","../.pikku/scenarios/pikku-scenario-functions.gen.ts","../.pikku/scenarios/pikku-scenario-wirings-meta.gen.ts","../.pikku/scenarios/pikku-scenario-wirings.gen.ts","../.pikku/scenarios/schemas/register.gen.ts","../.pikku/scheduler/pikku-scheduler-types.gen.ts","../.pikku/schemas/register.gen.ts","../.pikku/scopes/pikku-scope-types.gen.ts","../.pikku/scopes/pikku-scopes.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-scenario-actors.gen.ts","../.pikku/workflow/pikku-scenario-step-map.gen.d.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/bun-sqlite.d.ts","../types/config.d.ts"],"version":"6.0.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pikku/cli",
3
- "version": "0.12.92",
3
+ "version": "0.12.93",
4
4
  "description": "Pikku CLI — code generation, dev server, migrations and deployment",
5
5
  "author": "yasser.fadl@gmail.com",
6
6
  "license": "BUSL-1.1",
@@ -33,14 +33,15 @@
33
33
  "@pikku/bun-server": "^0.12.4",
34
34
  "@pikku/deploy-cloudflare": "^0.12.9",
35
35
  "@pikku/fetch": "^0.12.8",
36
- "@pikku/inspector": "^0.12.49",
36
+ "@pikku/inspector": "^0.12.50",
37
+ "@pikku/knowledge": "^0.12.1",
37
38
  "@pikku/kysely": "^0.13.6",
38
39
  "@pikku/kysely-node-sqlite": "^0.12.3",
39
40
  "@pikku/n8n-import": "^0.0.3",
40
41
  "@pikku/node-http-server": "^0.12.6",
41
42
  "@pikku/openapi-parser": "^0.12.16",
42
43
  "@pikku/schedule": "^0.12.4",
43
- "@pikku/skills": "^0.12.1",
44
+ "@pikku/skills": "^0.12.2",
44
45
  "@pikku/ws": "^0.12.4",
45
46
  "@types/cookie": "^1.0.0",
46
47
  "@types/json-schema": "^7.0.15",
@@ -62,11 +63,11 @@
62
63
  "zod-to-ts": "^2.1.0"
63
64
  },
64
65
  "peerDependencies": {
65
- "@pikku/core": "^0.12.71",
66
+ "@pikku/core": "^0.12.72",
66
67
  "@pikku/playwright": "^0.12.71"
67
68
  },
68
69
  "devDependencies": {
69
- "@pikku/core": "^0.12.71",
70
+ "@pikku/core": "^0.12.72",
70
71
  "@pikku/playwright": "^0.12.71",
71
72
  "@types/istanbul-lib-instrument": "^1.7.7",
72
73
  "@types/node": "^24.11.0",