@pikku/cli 0.12.41 → 0.12.42

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/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
  2. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
  3. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  4. package/dist/.pikku/cli/pikku-cli-channel.js +6 -1
  5. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
  6. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  7. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
  8. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +21 -0
  9. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  10. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  11. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  12. package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
  13. package/dist/.pikku/console/pikku-node-types.gen.d.ts +1 -1
  14. package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
  15. package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
  16. package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
  17. package/dist/.pikku/function/pikku-functions-meta.gen.json +79 -60
  18. package/dist/.pikku/function/pikku-functions.gen.js +1 -1
  19. package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
  20. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  21. package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +1 -1
  22. package/dist/.pikku/http/pikku-http-wirings.gen.d.ts +1 -1
  23. package/dist/.pikku/http/pikku-http-wirings.gen.js +1 -1
  24. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
  25. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  26. package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
  27. package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
  28. package/dist/.pikku/pikku-meta-service.gen.d.ts +1 -1
  29. package/dist/.pikku/pikku-meta-service.gen.js +1 -1
  30. package/dist/.pikku/pikku-services.gen.d.ts +1 -1
  31. package/dist/.pikku/pikku-types.gen.d.ts +1 -1
  32. package/dist/.pikku/pikku-types.gen.js +1 -1
  33. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  34. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  35. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +1 -1
  36. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  37. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  38. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
  39. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +4 -3
  40. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  41. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  42. package/dist/.pikku/schemas/register.gen.js +9 -5
  43. package/dist/.pikku/schemas/schemas/FabricLinkOutput.schema.json +1 -1
  44. package/dist/.pikku/schemas/schemas/FabricSmokeInput.schema.json +1 -0
  45. package/dist/.pikku/schemas/schemas/FabricSmokeOutput.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/pikku-workflow-types.gen.d.ts +1 -1
  57. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
  58. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  59. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  60. package/dist/bin/pikku-bin.mjs +2 -2
  61. package/dist/src/fabric/fabric-commands.d.ts +67 -0
  62. package/dist/src/fabric/fabric-commands.js +21 -0
  63. package/dist/src/fabric/functions/link.function.d.ts +4 -0
  64. package/dist/src/fabric/functions/link.function.js +3 -1
  65. package/dist/src/fabric/functions/smoke.function.d.ts +93 -0
  66. package/dist/src/fabric/functions/smoke.function.js +860 -0
  67. package/dist/src/functions/db/local-db.js +20 -75
  68. package/dist/src/scaffold/rpc-remote.gen.js +1 -1
  69. package/dist/tsconfig.tsbuildinfo +1 -1
  70. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.41
2
+ * This file was generated by @pikku/cli@0.12.42
3
3
  */
4
4
  import { addSchema } from '@pikku/core/schema';
5
5
  import * as PikkuSchemasOutput from './schemas/PikkuSchemasOutput.schema.json' with { type: 'json' };
@@ -98,6 +98,10 @@ import * as FabricValidateInput from './schemas/FabricValidateInput.schema.json'
98
98
  addSchema('FabricValidateInput', FabricValidateInput);
99
99
  import * as FabricValidateOutput from './schemas/FabricValidateOutput.schema.json' with { type: 'json' };
100
100
  addSchema('FabricValidateOutput', FabricValidateOutput);
101
+ import * as FabricSmokeInput from './schemas/FabricSmokeInput.schema.json' with { type: 'json' };
102
+ addSchema('FabricSmokeInput', FabricSmokeInput);
103
+ import * as FabricSmokeOutput from './schemas/FabricSmokeOutput.schema.json' with { type: 'json' };
104
+ addSchema('FabricSmokeOutput', FabricSmokeOutput);
101
105
  import * as WatchInput from './schemas/WatchInput.schema.json' with { type: 'json' };
102
106
  addSchema('WatchInput', WatchInput);
103
107
  import * as ConsoleCommandInput from './schemas/ConsoleCommandInput.schema.json' with { type: 'json' };
@@ -198,14 +202,14 @@ import * as PikkuConsoleFunctionsOutput from './schemas/PikkuConsoleFunctionsOut
198
202
  addSchema('PikkuConsoleFunctionsOutput', PikkuConsoleFunctionsOutput);
199
203
  import * as PikkuNodesMetaOutput from './schemas/PikkuNodesMetaOutput.schema.json' with { type: 'json' };
200
204
  addSchema('PikkuNodesMetaOutput', PikkuNodesMetaOutput);
205
+ import * as PikkuGatewayOutput from './schemas/PikkuGatewayOutput.schema.json' with { type: 'json' };
206
+ addSchema('PikkuGatewayOutput', PikkuGatewayOutput);
201
207
  import * as PikkuFunctionTypesSplitInput from './schemas/PikkuFunctionTypesSplitInput.schema.json' with { type: 'json' };
202
208
  addSchema('PikkuFunctionTypesSplitInput', PikkuFunctionTypesSplitInput);
203
209
  import * as PikkuFunctionTypesInput from './schemas/PikkuFunctionTypesInput.schema.json' with { type: 'json' };
204
210
  addSchema('PikkuFunctionTypesInput', PikkuFunctionTypesInput);
205
211
  import * as PikkuFunctionsOutput from './schemas/PikkuFunctionsOutput.schema.json' with { type: 'json' };
206
212
  addSchema('PikkuFunctionsOutput', PikkuFunctionsOutput);
207
- import * as PikkuGatewayOutput from './schemas/PikkuGatewayOutput.schema.json' with { type: 'json' };
208
- addSchema('PikkuGatewayOutput', PikkuGatewayOutput);
209
213
  import * as PikkuCommandHTTPOutput from './schemas/PikkuCommandHTTPOutput.schema.json' with { type: 'json' };
210
214
  addSchema('PikkuCommandHTTPOutput', PikkuCommandHTTPOutput);
211
215
  import * as PikkuHTTPOutput from './schemas/PikkuHTTPOutput.schema.json' with { type: 'json' };
@@ -218,8 +222,6 @@ import * as PikkuPackageOutput from './schemas/PikkuPackageOutput.schema.json' w
218
222
  addSchema('PikkuPackageOutput', PikkuPackageOutput);
219
223
  import * as PikkuPermissionsOutput from './schemas/PikkuPermissionsOutput.schema.json' with { type: 'json' };
220
224
  addSchema('PikkuPermissionsOutput', PikkuPermissionsOutput);
221
- import * as PikkuEventsScaffoldOutput from './schemas/PikkuEventsScaffoldOutput.schema.json' with { type: 'json' };
222
- addSchema('PikkuEventsScaffoldOutput', PikkuEventsScaffoldOutput);
223
225
  import * as PikkuCommandQueueOutput from './schemas/PikkuCommandQueueOutput.schema.json' with { type: 'json' };
224
226
  addSchema('PikkuCommandQueueOutput', PikkuCommandQueueOutput);
225
227
  import * as PikkuQueueOutput from './schemas/PikkuQueueOutput.schema.json' with { type: 'json' };
@@ -232,6 +234,8 @@ import * as PikkuRPCOutput from './schemas/PikkuRPCOutput.schema.json' with { ty
232
234
  addSchema('PikkuRPCOutput', PikkuRPCOutput);
233
235
  import * as PikkuSchedulerOutput from './schemas/PikkuSchedulerOutput.schema.json' with { type: 'json' };
234
236
  addSchema('PikkuSchedulerOutput', PikkuSchedulerOutput);
237
+ import * as PikkuEventsScaffoldOutput from './schemas/PikkuEventsScaffoldOutput.schema.json' with { type: 'json' };
238
+ addSchema('PikkuEventsScaffoldOutput', PikkuEventsScaffoldOutput);
235
239
  import * as PikkuTriggerTypesInput from './schemas/PikkuTriggerTypesInput.schema.json' with { type: 'json' };
236
240
  addSchema('PikkuTriggerTypesInput', PikkuTriggerTypesInput);
237
241
  import * as PikkuTriggerOutput from './schemas/PikkuTriggerOutput.schema.json' with { type: 'json' };
@@ -1 +1 @@
1
- { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "projectSlug": { "type": "string" }, "deploymentId": { "type": "string" }, "stageId": { "type": "string" } }, "required": ["projectSlug", "deploymentId", "stageId"], "additionalProperties": false }
1
+ { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "projectId": { "type": "string" }, "projectSlug": { "type": "string" }, "deploymentId": { "type": "string" }, "stageId": { "type": "string" } }, "required": ["projectId", "projectSlug", "deploymentId", "stageId"], "additionalProperties": false }
@@ -0,0 +1 @@
1
+ { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "keepTemp": { "type": "boolean" }, "timeoutSeconds": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "startupTimeoutSeconds": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "port": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 } }, "additionalProperties": false }
@@ -0,0 +1 @@
1
+ { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "ok": { "type": "boolean" }, "root": { "type": "string" }, "ref": { "type": "string" }, "tempDir": { "type": "string" }, "tempDirKept": { "type": "boolean" }, "notes": { "type": "array", "items": { "type": "string" } }, "steps": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "status": { "type": "string", "enum": ["passed", "failed", "skipped"] }, "durationMs": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "detail": { "type": "string" }, "command": { "type": "string" } }, "required": ["name", "status", "durationMs"], "additionalProperties": false } }, "failure": { "type": "string" }, "logTail": { "type": "string" } }, "required": ["ok", "root", "ref", "tempDir", "tempDirKept", "notes", "steps"], "additionalProperties": false }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.41
2
+ * This file was generated by @pikku/cli@0.12.42
3
3
  */
4
4
  export { wireSecret } from '@pikku/core/secret';
5
5
  export type { CoreSecret, SecretDefinitionMeta, SecretDefinitionsMeta } from '@pikku/core/secret';
@@ -1,4 +1,4 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.41
2
+ * This file was generated by @pikku/cli@0.12.42
3
3
  */
4
4
  export { wireSecret } from '@pikku/core/secret';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.41
2
+ * This file was generated by @pikku/cli@0.12.42
3
3
  */
4
4
  import { TypedSecretService as CoreTypedSecretService } from '@pikku/core/services';
5
5
  import type { SecretService } from '@pikku/core/services';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.41
2
+ * This file was generated by @pikku/cli@0.12.42
3
3
  */
4
4
  import { TypedSecretService as CoreTypedSecretService } from '@pikku/core/services';
5
5
  const CREDENTIALS_META = {};
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.41
2
+ * This file was generated by @pikku/cli@0.12.42
3
3
  */
4
4
  /**
5
5
  * Trigger-specific type definitions for tree-shaking optimization
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.41
2
+ * This file was generated by @pikku/cli@0.12.42
3
3
  */
4
4
  /**
5
5
  * Trigger-specific type definitions for tree-shaking optimization
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.41
2
+ * This file was generated by @pikku/cli@0.12.42
3
3
  */
4
4
  export { wireVariable } from '@pikku/core/variable';
5
5
  export type { CoreVariable, VariableDefinitionMeta, VariableDefinitionsMeta } from '@pikku/core/variable';
@@ -1,4 +1,4 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.41
2
+ * This file was generated by @pikku/cli@0.12.42
3
3
  */
4
4
  export { wireVariable } from '@pikku/core/variable';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.41
2
+ * This file was generated by @pikku/cli@0.12.42
3
3
  */
4
4
  import { TypedVariablesService as CoreTypedVariablesService } from '@pikku/core/services';
5
5
  import type { VariablesService } from '@pikku/core/services';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.41
2
+ * This file was generated by @pikku/cli@0.12.42
3
3
  */
4
4
  import { TypedVariablesService as CoreTypedVariablesService } from '@pikku/core/services';
5
5
  const VARIABLES_META = {};
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.41
2
+ * This file was generated by @pikku/cli@0.12.42
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.41
2
+ * This file was generated by @pikku/cli@0.12.42
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.41
2
+ * This file was generated by @pikku/cli@0.12.42
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.41
2
+ * This file was generated by @pikku/cli@0.12.42
3
3
  */
4
4
  import { addWorkflow } from '@pikku/core/workflow';
5
5
  import './pikku-workflow-wirings-meta.gen.js';
@@ -11,8 +11,8 @@ async function checkForUpdate() {
11
11
  })
12
12
  if (!res.ok) return
13
13
  const { version: latest } = await res.json()
14
- if (latest !== '0.12.41') {
15
- process.stderr.write(`\n Update available 0.12.41 → ${latest}\n brew upgrade pikku or npm install -g @pikku/cli\n\n`)
14
+ if (latest !== '0.12.42') {
15
+ process.stderr.write(`\n Update available 0.12.42 → ${latest}\n brew upgrade pikku or npm install -g @pikku/cli\n\n`)
16
16
  }
17
17
  } catch {}
18
18
  }
@@ -30,6 +30,70 @@ export declare const fabricCommands: {
30
30
  fixHint: string;
31
31
  }[];
32
32
  }, "session" | "rpc", import("../../types/application-types.js").Services>, undefined, undefined>, import("../../.pikku/pikku-types.gen.js").PikkuMiddleware, (services: import("../../types/application-types.js").SingletonServices, data: any, session?: import("../../types/application-types.js").UserSession | undefined) => void | Promise<void>, string>;
33
+ smoke: import("@pikku/core/cli").CoreCLICommandConfig<import("../../.pikku/pikku-types.gen.js").PikkuFunctionConfig<{
34
+ keepTemp?: boolean | undefined;
35
+ timeoutSeconds?: number | undefined;
36
+ startupTimeoutSeconds?: number | undefined;
37
+ port?: number | undefined;
38
+ }, {
39
+ ok: boolean;
40
+ root: string;
41
+ ref: string;
42
+ tempDir: string;
43
+ tempDirKept: boolean;
44
+ notes: string[];
45
+ steps: {
46
+ name: string;
47
+ status: "skipped" | "failed" | "passed";
48
+ durationMs: number;
49
+ detail?: string | undefined;
50
+ command?: string | undefined;
51
+ }[];
52
+ failure?: string | undefined;
53
+ logTail?: string | undefined;
54
+ }, "session" | "rpc", import("../../.pikku/pikku-types.gen.js").PikkuFunctionSessionless<{
55
+ keepTemp?: boolean | undefined;
56
+ timeoutSeconds?: number | undefined;
57
+ startupTimeoutSeconds?: number | undefined;
58
+ port?: number | undefined;
59
+ }, {
60
+ ok: boolean;
61
+ root: string;
62
+ ref: string;
63
+ tempDir: string;
64
+ tempDirKept: boolean;
65
+ notes: string[];
66
+ steps: {
67
+ name: string;
68
+ status: "skipped" | "failed" | "passed";
69
+ durationMs: number;
70
+ detail?: string | undefined;
71
+ command?: string | undefined;
72
+ }[];
73
+ failure?: string | undefined;
74
+ logTail?: string | undefined;
75
+ }, "session" | "rpc", import("../../types/application-types.js").Services> | import("../../.pikku/pikku-types.gen.js").PikkuFunction<{
76
+ keepTemp?: boolean | undefined;
77
+ timeoutSeconds?: number | undefined;
78
+ startupTimeoutSeconds?: number | undefined;
79
+ port?: number | undefined;
80
+ }, {
81
+ ok: boolean;
82
+ root: string;
83
+ ref: string;
84
+ tempDir: string;
85
+ tempDirKept: boolean;
86
+ notes: string[];
87
+ steps: {
88
+ name: string;
89
+ status: "skipped" | "failed" | "passed";
90
+ durationMs: number;
91
+ detail?: string | undefined;
92
+ command?: string | undefined;
93
+ }[];
94
+ failure?: string | undefined;
95
+ logTail?: string | undefined;
96
+ }, "session" | "rpc", import("../../types/application-types.js").Services>, undefined, undefined>, import("../../.pikku/pikku-types.gen.js").PikkuMiddleware, (services: import("../../types/application-types.js").SingletonServices, data: any, session?: import("../../types/application-types.js").UserSession | undefined) => void | Promise<void>, string>;
33
97
  login: import("@pikku/core/cli").CoreCLICommandConfig<import("../../.pikku/pikku-types.gen.js").PikkuFunctionConfig<{
34
98
  apiKey?: string | undefined;
35
99
  token?: string | undefined;
@@ -89,18 +153,21 @@ export declare const fabricCommands: {
89
153
  link: import("@pikku/core/cli").CoreCLICommandConfig<import("../../.pikku/pikku-types.gen.js").PikkuFunctionConfig<{
90
154
  apiUrl?: string | undefined;
91
155
  }, {
156
+ projectId: string;
92
157
  projectSlug: string;
93
158
  deploymentId: string;
94
159
  stageId: string;
95
160
  }, "session" | "rpc", import("../../.pikku/pikku-types.gen.js").PikkuFunctionSessionless<{
96
161
  apiUrl?: string | undefined;
97
162
  }, {
163
+ projectId: string;
98
164
  projectSlug: string;
99
165
  deploymentId: string;
100
166
  stageId: string;
101
167
  }, "session" | "rpc", import("../../types/application-types.js").Services> | import("../../.pikku/pikku-types.gen.js").PikkuFunction<{
102
168
  apiUrl?: string | undefined;
103
169
  }, {
170
+ projectId: string;
104
171
  projectSlug: string;
105
172
  deploymentId: string;
106
173
  stageId: string;
@@ -39,12 +39,33 @@ import { FabricDomainsAdd } from './functions/domains-add.function.js';
39
39
  import { FabricDomainsRemove } from './functions/domains-remove.function.js';
40
40
  import { FabricLLMKey, renderLLMKey } from './functions/llm-key.function.js';
41
41
  import { FabricValidate, renderValidate, } from './functions/validate.function.js';
42
+ import { FabricSmoke, renderSmoke, } from './functions/smoke.function.js';
42
43
  export const fabricCommands = defineCLICommands({
43
44
  validate: pikkuCLICommand({
44
45
  func: FabricValidate,
45
46
  render: renderValidate,
46
47
  description: 'Check the project structure for fabric compatibility — prints all missing or misconfigured items with fix hints',
47
48
  }),
49
+ smoke: pikkuCLICommand({
50
+ func: FabricSmoke,
51
+ render: renderSmoke,
52
+ description: 'Run a clean-room Fabric smoke test: temp worktree, install, codegen, migrate, and verify pikku dev startup',
53
+ options: {
54
+ keepTemp: {
55
+ description: 'Keep the temp worktree even on success',
56
+ default: false,
57
+ },
58
+ timeoutSeconds: {
59
+ description: 'Per-step timeout for install/build/codegen commands',
60
+ },
61
+ startupTimeoutSeconds: {
62
+ description: 'Timeout for waiting on pikku dev /health-check',
63
+ },
64
+ port: {
65
+ description: 'Port to use for the temporary pikku dev startup check',
66
+ },
67
+ },
68
+ }),
48
69
  login: pikkuCLICommand({
49
70
  func: FabricLogin,
50
71
  description: 'Authenticate against fabric-api',
@@ -3,6 +3,7 @@ export declare const FabricLinkInput: z.ZodObject<{
3
3
  apiUrl: z.ZodOptional<z.ZodString>;
4
4
  }, z.core.$strip>;
5
5
  export declare const FabricLinkOutput: z.ZodObject<{
6
+ projectId: z.ZodString;
6
7
  projectSlug: z.ZodString;
7
8
  deploymentId: z.ZodString;
8
9
  stageId: z.ZodString;
@@ -10,18 +11,21 @@ export declare const FabricLinkOutput: z.ZodObject<{
10
11
  export declare const FabricLink: import("../../../.pikku/pikku-types.gen.js").PikkuFunctionConfig<{
11
12
  apiUrl?: string | undefined;
12
13
  }, {
14
+ projectId: string;
13
15
  projectSlug: string;
14
16
  deploymentId: string;
15
17
  stageId: string;
16
18
  }, "session" | "rpc", import("../../../.pikku/pikku-types.gen.js").PikkuFunctionSessionless<{
17
19
  apiUrl?: string | undefined;
18
20
  }, {
21
+ projectId: string;
19
22
  projectSlug: string;
20
23
  deploymentId: string;
21
24
  stageId: string;
22
25
  }, "session" | "rpc", import("../../../types/application-types.js").Services> | import("../../../.pikku/pikku-types.gen.js").PikkuFunction<{
23
26
  apiUrl?: string | undefined;
24
27
  }, {
28
+ projectId: string;
25
29
  projectSlug: string;
26
30
  deploymentId: string;
27
31
  stageId: string;
@@ -7,6 +7,7 @@ export const FabricLinkInput = z.object({
7
7
  apiUrl: z.string().optional(),
8
8
  });
9
9
  export const FabricLinkOutput = z.object({
10
+ projectId: z.string(),
10
11
  projectSlug: z.string(),
11
12
  deploymentId: z.string(),
12
13
  stageId: z.string(),
@@ -61,7 +62,7 @@ export const FabricLink = pikkuSessionlessFunc({
61
62
  projectId: project.projectId,
62
63
  ...(apiUrlOverride ? { apiUrl: apiUrlOverride } : {}),
63
64
  });
64
- console.log(`[fabric] linked ${project.projectSlug}`);
65
+ console.log(`[fabric] linked ${project.projectSlug} projectId=${project.projectId}`);
65
66
  const deploy = await rpc.invoke('deployByStageKind', {
66
67
  projectId: project.projectId,
67
68
  branch: safety.branch,
@@ -69,6 +70,7 @@ export const FabricLink = pikkuSessionlessFunc({
69
70
  });
70
71
  console.log(`[fabric] queued deploy: branch=${safety.branch} deploymentId=${deploy.deploymentId}`);
71
72
  return {
73
+ projectId: project.projectId,
72
74
  projectSlug: project.projectSlug,
73
75
  deploymentId: deploy.deploymentId,
74
76
  stageId: deploy.stageId,
@@ -0,0 +1,93 @@
1
+ import { z } from 'zod';
2
+ export declare const FabricSmokeInput: z.ZodObject<{
3
+ keepTemp: z.ZodOptional<z.ZodBoolean>;
4
+ timeoutSeconds: z.ZodOptional<z.ZodNumber>;
5
+ startupTimeoutSeconds: z.ZodOptional<z.ZodNumber>;
6
+ port: z.ZodOptional<z.ZodNumber>;
7
+ }, z.core.$strip>;
8
+ export declare const FabricSmokeOutput: z.ZodObject<{
9
+ ok: z.ZodBoolean;
10
+ root: z.ZodString;
11
+ ref: z.ZodString;
12
+ tempDir: z.ZodString;
13
+ tempDirKept: z.ZodBoolean;
14
+ notes: z.ZodArray<z.ZodString>;
15
+ steps: z.ZodArray<z.ZodObject<{
16
+ name: z.ZodString;
17
+ status: z.ZodEnum<{
18
+ skipped: "skipped";
19
+ failed: "failed";
20
+ passed: "passed";
21
+ }>;
22
+ durationMs: z.ZodNumber;
23
+ detail: z.ZodOptional<z.ZodString>;
24
+ command: z.ZodOptional<z.ZodString>;
25
+ }, z.core.$strip>>;
26
+ failure: z.ZodOptional<z.ZodString>;
27
+ logTail: z.ZodOptional<z.ZodString>;
28
+ }, z.core.$strip>;
29
+ export declare const FabricSmoke: import("../../../.pikku/pikku-types.gen.js").PikkuFunctionConfig<{
30
+ keepTemp?: boolean | undefined;
31
+ timeoutSeconds?: number | undefined;
32
+ startupTimeoutSeconds?: number | undefined;
33
+ port?: number | undefined;
34
+ }, {
35
+ ok: boolean;
36
+ root: string;
37
+ ref: string;
38
+ tempDir: string;
39
+ tempDirKept: boolean;
40
+ notes: string[];
41
+ steps: {
42
+ name: string;
43
+ status: "skipped" | "failed" | "passed";
44
+ durationMs: number;
45
+ detail?: string | undefined;
46
+ command?: string | undefined;
47
+ }[];
48
+ failure?: string | undefined;
49
+ logTail?: string | undefined;
50
+ }, "session" | "rpc", import("../../../.pikku/pikku-types.gen.js").PikkuFunctionSessionless<{
51
+ keepTemp?: boolean | undefined;
52
+ timeoutSeconds?: number | undefined;
53
+ startupTimeoutSeconds?: number | undefined;
54
+ port?: number | undefined;
55
+ }, {
56
+ ok: boolean;
57
+ root: string;
58
+ ref: string;
59
+ tempDir: string;
60
+ tempDirKept: boolean;
61
+ notes: string[];
62
+ steps: {
63
+ name: string;
64
+ status: "skipped" | "failed" | "passed";
65
+ durationMs: number;
66
+ detail?: string | undefined;
67
+ command?: string | undefined;
68
+ }[];
69
+ failure?: string | undefined;
70
+ logTail?: string | undefined;
71
+ }, "session" | "rpc", import("../../../types/application-types.js").Services> | import("../../../.pikku/pikku-types.gen.js").PikkuFunction<{
72
+ keepTemp?: boolean | undefined;
73
+ timeoutSeconds?: number | undefined;
74
+ startupTimeoutSeconds?: number | undefined;
75
+ port?: number | undefined;
76
+ }, {
77
+ ok: boolean;
78
+ root: string;
79
+ ref: string;
80
+ tempDir: string;
81
+ tempDirKept: boolean;
82
+ notes: string[];
83
+ steps: {
84
+ name: string;
85
+ status: "skipped" | "failed" | "passed";
86
+ durationMs: number;
87
+ detail?: string | undefined;
88
+ command?: string | undefined;
89
+ }[];
90
+ failure?: string | undefined;
91
+ logTail?: string | undefined;
92
+ }, "session" | "rpc", import("../../../types/application-types.js").Services>, undefined, undefined>;
93
+ export declare const renderSmoke: (_services: unknown, output: z.infer<typeof FabricSmokeOutput>) => void;