@walkeros/cli 4.1.0 → 4.1.1-next-1779822275564

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.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Flow, Elb, WalkerOS } from '@walkeros/core';
1
+ import { Flow, Elb, WalkerOS, Simulation } from '@walkeros/core';
2
2
  export { Flow } from '@walkeros/core';
3
3
  import { BuildOptions as BuildOptions$1 } from 'esbuild';
4
4
  import { z } from '@walkeros/core/dev';
@@ -330,23 +330,8 @@ interface PushCommandOptions {
330
330
  interface PushResult {
331
331
  success: boolean;
332
332
  elbResult?: Elb.PushResult;
333
- captured?: Array<{
334
- event: unknown;
335
- timestamp: number;
336
- }>;
337
- /** Tracked destination API calls keyed by destination ID */
338
- usage?: Record<string, Array<{
339
- fn: string;
340
- args: unknown[];
341
- ts: number;
342
- }>>;
343
333
  /** Network calls captured during web simulation (fetch + sendBeacon) */
344
334
  networkCalls?: NetworkCall[];
345
- /**
346
- * Per-destination simulation results when --simulate destination.* is
347
- * called with multiple ids. Undefined for single-target or non-simulate runs.
348
- */
349
- perDestination?: Record<string, PushResult>;
350
335
  duration: number;
351
336
  error?: string;
352
337
  }
@@ -424,7 +409,7 @@ interface SimulateSourceOptions {
424
409
  * The `input` parameter is `unknown` — the CLI is agnostic to source-specific
425
410
  * content shapes. The source's createTrigger defines what it expects.
426
411
  */
427
- declare function simulateSource(configOrPath: string | Flow.Json, input: unknown, options: SimulateSourceOptions): Promise<PushResult>;
412
+ declare function simulateSource(configOrPath: string | Flow.Json, input: unknown, options: SimulateSourceOptions): Promise<Simulation.Result>;
428
413
  interface SimulateTransformerOptions {
429
414
  transformerId: string;
430
415
  bundlePath?: string;
@@ -444,7 +429,7 @@ interface SimulateTransformerOptions {
444
429
  * Captured array: first entry = input event, subsequent entries = output event(s).
445
430
  * If the transformer drops the event (returns false), output event is null.
446
431
  */
447
- declare function simulateTransformer(configOrPath: string | Flow.Json, event: WalkerOS.DeepPartialEvent, options: SimulateTransformerOptions): Promise<PushResult>;
432
+ declare function simulateTransformer(configOrPath: string | Flow.Json, event: WalkerOS.DeepPartialEvent, options: SimulateTransformerOptions): Promise<Simulation.Result>;
448
433
  interface SimulateDestinationOptions {
449
434
  destinationId: string;
450
435
  bundlePath?: string;
@@ -463,7 +448,7 @@ interface SimulateDestinationOptions {
463
448
  * pipeline support — consent checks, event mapping, createEvent enrichment,
464
449
  * before chains — without manual wiring.
465
450
  */
466
- declare function simulateDestination(configOrPath: string | Flow.Json, event: WalkerOS.DeepPartialEvent, options: SimulateDestinationOptions): Promise<PushResult>;
451
+ declare function simulateDestination(configOrPath: string | Flow.Json, event: WalkerOS.DeepPartialEvent, options: SimulateDestinationOptions): Promise<Simulation.Result>;
467
452
 
468
453
  /**
469
454
  * Run Command Types
@@ -684,15 +669,23 @@ interface WhoamiCommandOptions extends GlobalOptions {
684
669
  }
685
670
  declare function whoamiCommand(options: WhoamiCommandOptions): Promise<void>;
686
671
 
687
- declare function listProjects(): Promise<{
672
+ interface ListProjectsOptions {
673
+ cursor?: string;
674
+ limit?: number;
675
+ }
676
+ declare function listProjects(options?: ListProjectsOptions): Promise<{
688
677
  projects: {
689
678
  id: string;
690
679
  name: string;
691
680
  role: "owner" | "admin" | "member" | "deployer" | "viewer";
692
681
  createdAt: string;
693
682
  updatedAt: string;
683
+ memberCount: number;
684
+ flowCount: number;
685
+ deploymentCount: number;
694
686
  }[];
695
687
  total: number;
688
+ nextCursor: string | null;
696
689
  }>;
697
690
  declare function getProject(options?: {
698
691
  projectId?: string;
@@ -702,6 +695,9 @@ declare function getProject(options?: {
702
695
  role: "owner" | "admin" | "member" | "deployer" | "viewer";
703
696
  createdAt: string;
704
697
  updatedAt: string;
698
+ memberCount: number;
699
+ flowCount: number;
700
+ deploymentCount: number;
705
701
  }>;
706
702
  declare function createProject(options: {
707
703
  name: string;
@@ -719,6 +715,9 @@ declare function updateProject(options: {
719
715
  role: "owner" | "admin" | "member" | "deployer" | "viewer";
720
716
  createdAt: string;
721
717
  updatedAt: string;
718
+ memberCount: number;
719
+ flowCount: number;
720
+ deploymentCount: number;
722
721
  }>;
723
722
  declare function deleteProject(options?: {
724
723
  projectId?: string;
@@ -730,6 +729,8 @@ interface ProjectsCommandOptions extends GlobalOptions {
730
729
  output?: string;
731
730
  project?: string;
732
731
  name?: string;
732
+ cursor?: string;
733
+ limit?: number;
733
734
  }
734
735
  declare function listProjectsCommand(options: ProjectsCommandOptions): Promise<void>;
735
736
  declare function getProjectCommand(projectId: string | undefined, options: ProjectsCommandOptions): Promise<void>;
@@ -1201,7 +1202,10 @@ interface paths {
1201
1202
  */
1202
1203
  get: {
1203
1204
  parameters: {
1204
- query?: never;
1205
+ query?: {
1206
+ cursor?: string;
1207
+ limit?: number;
1208
+ };
1205
1209
  header?: never;
1206
1210
  path?: never;
1207
1211
  cookie?: never;
@@ -1738,6 +1742,8 @@ interface paths {
1738
1742
  sort?: 'name' | 'updated_at' | 'created_at';
1739
1743
  order?: 'asc' | 'desc';
1740
1744
  include_deleted?: 'true' | 'false';
1745
+ cursor?: string;
1746
+ limit?: number;
1741
1747
  };
1742
1748
  header?: never;
1743
1749
  path: {
@@ -1863,7 +1869,7 @@ interface paths {
1863
1869
  get: {
1864
1870
  parameters: {
1865
1871
  query?: {
1866
- /** @description Comma-separated dot-paths to select specific fields (e.g., "config.variables,config.flows.web.sources"). Always includes id, createdAt, updatedAt. */
1872
+ /** @description Comma-separated dot-paths to select specific fields (e.g., "config.variables,config.flows.tracking.sources"). Always includes id, createdAt, updatedAt. */
1867
1873
  fields?: string;
1868
1874
  };
1869
1875
  header?: never;
@@ -2604,7 +2610,7 @@ interface paths {
2604
2610
  };
2605
2611
  /**
2606
2612
  * Download settings JSON
2607
- * @description Download the named flow settings as a self-contained Config JSON file. Includes parent variables.
2613
+ * @description Download the named flow settings as a self-contained Config JSON file. Includes parent variables and definitions.
2608
2614
  */
2609
2615
  get: {
2610
2616
  parameters: {
@@ -2981,6 +2987,263 @@ interface paths {
2981
2987
  patch?: never;
2982
2988
  trace?: never;
2983
2989
  };
2990
+ '/api/projects/{projectId}/flows/{flowId}/previews': {
2991
+ parameters: {
2992
+ query?: never;
2993
+ header?: never;
2994
+ path?: never;
2995
+ cookie?: never;
2996
+ };
2997
+ /**
2998
+ * List previews
2999
+ * @description List all previews for a flow, ordered by creation date descending.
3000
+ */
3001
+ get: {
3002
+ parameters: {
3003
+ query?: never;
3004
+ header?: never;
3005
+ path: {
3006
+ projectId: string;
3007
+ flowId: string;
3008
+ };
3009
+ cookie?: never;
3010
+ };
3011
+ requestBody?: never;
3012
+ responses: {
3013
+ /** @description List of previews */
3014
+ 200: {
3015
+ headers: {
3016
+ [name: string]: unknown;
3017
+ };
3018
+ content: {
3019
+ 'application/json': components['schemas']['ListPreviewsResponse'];
3020
+ };
3021
+ };
3022
+ /** @description Unauthorized */
3023
+ 401: {
3024
+ headers: {
3025
+ [name: string]: unknown;
3026
+ };
3027
+ content: {
3028
+ 'application/json': components['schemas']['ErrorResponse'];
3029
+ };
3030
+ };
3031
+ /** @description Not found */
3032
+ 404: {
3033
+ headers: {
3034
+ [name: string]: unknown;
3035
+ };
3036
+ content: {
3037
+ 'application/json': components['schemas']['ErrorResponse'];
3038
+ };
3039
+ };
3040
+ };
3041
+ };
3042
+ put?: never;
3043
+ /**
3044
+ * Create preview
3045
+ * @description Create a new preview for a web flow settings entry. Bundles the flow and publishes to a unique token-based URL.
3046
+ */
3047
+ post: {
3048
+ parameters: {
3049
+ query?: never;
3050
+ header?: never;
3051
+ path: {
3052
+ projectId: string;
3053
+ flowId: string;
3054
+ };
3055
+ cookie?: never;
3056
+ };
3057
+ requestBody?: {
3058
+ content: {
3059
+ 'application/json': components['schemas']['CreatePreviewRequest'];
3060
+ };
3061
+ };
3062
+ responses: {
3063
+ /** @description Preview created */
3064
+ 201: {
3065
+ headers: {
3066
+ [name: string]: unknown;
3067
+ };
3068
+ content: {
3069
+ 'application/json': components['schemas']['PreviewResponse'];
3070
+ };
3071
+ };
3072
+ /** @description Validation error */
3073
+ 400: {
3074
+ headers: {
3075
+ [name: string]: unknown;
3076
+ };
3077
+ content: {
3078
+ 'application/json': components['schemas']['ErrorResponse'];
3079
+ };
3080
+ };
3081
+ /** @description Unauthorized */
3082
+ 401: {
3083
+ headers: {
3084
+ [name: string]: unknown;
3085
+ };
3086
+ content: {
3087
+ 'application/json': components['schemas']['ErrorResponse'];
3088
+ };
3089
+ };
3090
+ /** @description Forbidden */
3091
+ 403: {
3092
+ headers: {
3093
+ [name: string]: unknown;
3094
+ };
3095
+ content: {
3096
+ 'application/json': components['schemas']['ErrorResponse'];
3097
+ };
3098
+ };
3099
+ /** @description Not found */
3100
+ 404: {
3101
+ headers: {
3102
+ [name: string]: unknown;
3103
+ };
3104
+ content: {
3105
+ 'application/json': components['schemas']['ErrorResponse'];
3106
+ };
3107
+ };
3108
+ /** @description Quota exceeded */
3109
+ 429: {
3110
+ headers: {
3111
+ [name: string]: unknown;
3112
+ };
3113
+ content: {
3114
+ 'application/json': components['schemas']['ErrorResponse'];
3115
+ };
3116
+ };
3117
+ /** @description Bundle or upload failed */
3118
+ 502: {
3119
+ headers: {
3120
+ [name: string]: unknown;
3121
+ };
3122
+ content: {
3123
+ 'application/json': components['schemas']['ErrorResponse'];
3124
+ };
3125
+ };
3126
+ };
3127
+ };
3128
+ delete?: never;
3129
+ options?: never;
3130
+ head?: never;
3131
+ patch?: never;
3132
+ trace?: never;
3133
+ };
3134
+ '/api/projects/{projectId}/flows/{flowId}/previews/{previewId}': {
3135
+ parameters: {
3136
+ query?: never;
3137
+ header?: never;
3138
+ path?: never;
3139
+ cookie?: never;
3140
+ };
3141
+ /**
3142
+ * Get preview
3143
+ * @description Get a single preview by ID.
3144
+ */
3145
+ get: {
3146
+ parameters: {
3147
+ query?: never;
3148
+ header?: never;
3149
+ path: {
3150
+ projectId: string;
3151
+ flowId: string;
3152
+ previewId: string;
3153
+ };
3154
+ cookie?: never;
3155
+ };
3156
+ requestBody?: never;
3157
+ responses: {
3158
+ /** @description Preview details */
3159
+ 200: {
3160
+ headers: {
3161
+ [name: string]: unknown;
3162
+ };
3163
+ content: {
3164
+ 'application/json': components['schemas']['PreviewResponse'];
3165
+ };
3166
+ };
3167
+ /** @description Unauthorized */
3168
+ 401: {
3169
+ headers: {
3170
+ [name: string]: unknown;
3171
+ };
3172
+ content: {
3173
+ 'application/json': components['schemas']['ErrorResponse'];
3174
+ };
3175
+ };
3176
+ /** @description Not found */
3177
+ 404: {
3178
+ headers: {
3179
+ [name: string]: unknown;
3180
+ };
3181
+ content: {
3182
+ 'application/json': components['schemas']['ErrorResponse'];
3183
+ };
3184
+ };
3185
+ };
3186
+ };
3187
+ put?: never;
3188
+ post?: never;
3189
+ /**
3190
+ * Delete preview
3191
+ * @description Delete a preview and its S3 bundle. Requires member role.
3192
+ */
3193
+ delete: {
3194
+ parameters: {
3195
+ query?: never;
3196
+ header?: never;
3197
+ path: {
3198
+ projectId: string;
3199
+ flowId: string;
3200
+ previewId: string;
3201
+ };
3202
+ cookie?: never;
3203
+ };
3204
+ requestBody?: never;
3205
+ responses: {
3206
+ /** @description Preview deleted */
3207
+ 204: {
3208
+ headers: {
3209
+ [name: string]: unknown;
3210
+ };
3211
+ content?: never;
3212
+ };
3213
+ /** @description Unauthorized */
3214
+ 401: {
3215
+ headers: {
3216
+ [name: string]: unknown;
3217
+ };
3218
+ content: {
3219
+ 'application/json': components['schemas']['ErrorResponse'];
3220
+ };
3221
+ };
3222
+ /** @description Forbidden */
3223
+ 403: {
3224
+ headers: {
3225
+ [name: string]: unknown;
3226
+ };
3227
+ content: {
3228
+ 'application/json': components['schemas']['ErrorResponse'];
3229
+ };
3230
+ };
3231
+ /** @description Not found */
3232
+ 404: {
3233
+ headers: {
3234
+ [name: string]: unknown;
3235
+ };
3236
+ content: {
3237
+ 'application/json': components['schemas']['ErrorResponse'];
3238
+ };
3239
+ };
3240
+ };
3241
+ };
3242
+ options?: never;
3243
+ head?: never;
3244
+ patch?: never;
3245
+ trace?: never;
3246
+ };
2984
3247
  '/api/projects/{projectId}/flows/{flowId}/versions': {
2985
3248
  parameters: {
2986
3249
  query?: never;
@@ -3332,14 +3595,16 @@ interface paths {
3332
3595
  get?: never;
3333
3596
  put?: never;
3334
3597
  /**
3335
- * Trigger flow bundle
3336
- * @description Start a bundle job for a project flow. For multi-settings flows, specify the named flow via ?flow= query parameter.
3598
+ * Bundle flow
3599
+ * @description Bundle a flow using CLI. Returns bundleId (content-hash). Use ?output=download to redirect to presigned S3 URL.
3337
3600
  */
3338
3601
  post: {
3339
3602
  parameters: {
3340
3603
  query?: {
3341
3604
  /** @description Named flow to bundle (required for multi-settings flows) */
3342
3605
  flow?: string;
3606
+ /** @description Set to "download" to redirect to the bundle file */
3607
+ output?: 'download';
3343
3608
  };
3344
3609
  header?: never;
3345
3610
  path: {
@@ -3350,35 +3615,24 @@ interface paths {
3350
3615
  };
3351
3616
  requestBody?: never;
3352
3617
  responses: {
3353
- /** @description Bundle job started */
3618
+ /** @description Bundle result */
3354
3619
  200: {
3355
3620
  headers: {
3356
3621
  [name: string]: unknown;
3357
3622
  };
3358
3623
  content: {
3359
- 'application/json': components['schemas']['BundleJobResponse'];
3360
- };
3361
- };
3362
- /** @description Unauthorized */
3363
- 401: {
3364
- headers: {
3365
- [name: string]: unknown;
3366
- };
3367
- content: {
3368
- 'application/json': components['schemas']['ErrorResponse'];
3624
+ 'application/json': components['schemas']['BundleResponse'];
3369
3625
  };
3370
3626
  };
3371
- /** @description Not found */
3372
- 404: {
3627
+ /** @description Redirect to presigned bundle URL (when output=download) */
3628
+ 302: {
3373
3629
  headers: {
3374
3630
  [name: string]: unknown;
3375
3631
  };
3376
- content: {
3377
- 'application/json': components['schemas']['ErrorResponse'];
3378
- };
3632
+ content?: never;
3379
3633
  };
3380
- /** @description Flow selection required for multi-settings flows */
3381
- 422: {
3634
+ /** @description Unauthorized */
3635
+ 401: {
3382
3636
  headers: {
3383
3637
  [name: string]: unknown;
3384
3638
  };
@@ -3386,8 +3640,8 @@ interface paths {
3386
3640
  'application/json': components['schemas']['ErrorResponse'];
3387
3641
  };
3388
3642
  };
3389
- /** @description Service unavailable */
3390
- 503: {
3643
+ /** @description Not found */
3644
+ 404: {
3391
3645
  headers: {
3392
3646
  [name: string]: unknown;
3393
3647
  };
@@ -3403,22 +3657,22 @@ interface paths {
3403
3657
  patch?: never;
3404
3658
  trace?: never;
3405
3659
  };
3406
- '/api/projects/{projectId}/flows/{flowId}/bundle/stream': {
3660
+ '/api/projects/{projectId}/flows/{flowId}/simulate': {
3407
3661
  parameters: {
3408
3662
  query?: never;
3409
3663
  header?: never;
3410
3664
  path?: never;
3411
3665
  cookie?: never;
3412
3666
  };
3667
+ get?: never;
3668
+ put?: never;
3413
3669
  /**
3414
- * Stream bundle job status (SSE)
3415
- * @description Stream bundle job progress via Server-Sent Events.
3670
+ * Simulate a flow step
3671
+ * @description Execute a simulation against a pre-built bundle. Requires bundleId from the bundle endpoint.
3416
3672
  */
3417
- get: {
3673
+ post: {
3418
3674
  parameters: {
3419
- query: {
3420
- jobId: string;
3421
- };
3675
+ query?: never;
3422
3676
  header?: never;
3423
3677
  path: {
3424
3678
  projectId: string;
@@ -3426,14 +3680,20 @@ interface paths {
3426
3680
  };
3427
3681
  cookie?: never;
3428
3682
  };
3429
- requestBody?: never;
3683
+ requestBody?: {
3684
+ content: {
3685
+ 'application/json': components['schemas']['SimulateRequest'];
3686
+ };
3687
+ };
3430
3688
  responses: {
3431
- /** @description SSE event stream */
3689
+ /** @description Simulation result */
3432
3690
  200: {
3433
3691
  headers: {
3434
3692
  [name: string]: unknown;
3435
3693
  };
3436
- content?: never;
3694
+ content: {
3695
+ 'application/json': components['schemas']['SimulateResponse'];
3696
+ };
3437
3697
  };
3438
3698
  /** @description Unauthorized */
3439
3699
  401: {
@@ -3444,17 +3704,33 @@ interface paths {
3444
3704
  'application/json': components['schemas']['ErrorResponse'];
3445
3705
  };
3446
3706
  };
3707
+ /** @description Not found */
3708
+ 404: {
3709
+ headers: {
3710
+ [name: string]: unknown;
3711
+ };
3712
+ content: {
3713
+ 'application/json': components['schemas']['ErrorResponse'];
3714
+ };
3715
+ };
3716
+ /** @description Simulation container error */
3717
+ 502: {
3718
+ headers: {
3719
+ [name: string]: unknown;
3720
+ };
3721
+ content: {
3722
+ 'application/json': components['schemas']['ErrorResponse'];
3723
+ };
3724
+ };
3447
3725
  };
3448
3726
  };
3449
- put?: never;
3450
- post?: never;
3451
3727
  delete?: never;
3452
3728
  options?: never;
3453
3729
  head?: never;
3454
3730
  patch?: never;
3455
3731
  trace?: never;
3456
3732
  };
3457
- '/api/projects/{projectId}/flows/{flowId}/publish': {
3733
+ '/api/projects/{projectId}/deployments': {
3458
3734
  parameters: {
3459
3735
  query?: never;
3460
3736
  header?: never;
@@ -3462,39 +3738,47 @@ interface paths {
3462
3738
  cookie?: never;
3463
3739
  };
3464
3740
  /**
3465
- * Get publish status
3466
- * @description Get the current publish status for a flow (CDN deployment).
3741
+ * List deployments
3742
+ * @description List deployments for a project. Supports filtering by status, type, origin, and flowId, plus pagination.
3467
3743
  */
3468
3744
  get: {
3469
3745
  parameters: {
3470
- query?: never;
3746
+ query?: {
3747
+ status?:
3748
+ | 'idle'
3749
+ | 'deploying'
3750
+ | 'published'
3751
+ | 'active'
3752
+ | 'stopped'
3753
+ | 'failed';
3754
+ type?: 'web' | 'server';
3755
+ origin?: 'cloud' | 'self-hosted';
3756
+ flowId?: string;
3757
+ sort?: 'created_at' | 'updated_at';
3758
+ order?: 'asc' | 'desc';
3759
+ limit?: number;
3760
+ offset?: number | null;
3761
+ cursor?: string;
3762
+ };
3471
3763
  header?: never;
3472
3764
  path: {
3473
3765
  projectId: string;
3474
- flowId: string;
3475
3766
  };
3476
3767
  cookie?: never;
3477
3768
  };
3478
3769
  requestBody?: never;
3479
3770
  responses: {
3480
- /** @description Publish status */
3771
+ /** @description List of deployments */
3481
3772
  200: {
3482
- headers: {
3483
- [name: string]: unknown;
3484
- };
3485
- content?: never;
3486
- };
3487
- /** @description Unauthorized */
3488
- 401: {
3489
3773
  headers: {
3490
3774
  [name: string]: unknown;
3491
3775
  };
3492
3776
  content: {
3493
- 'application/json': components['schemas']['ErrorResponse'];
3777
+ 'application/json': components['schemas']['ListDeploymentsResponse'];
3494
3778
  };
3495
3779
  };
3496
- /** @description Not found */
3497
- 404: {
3780
+ /** @description Validation error */
3781
+ 400: {
3498
3782
  headers: {
3499
3783
  [name: string]: unknown;
3500
3784
  };
@@ -3502,32 +3786,6 @@ interface paths {
3502
3786
  'application/json': components['schemas']['ErrorResponse'];
3503
3787
  };
3504
3788
  };
3505
- };
3506
- };
3507
- put?: never;
3508
- /**
3509
- * Publish flow to CDN
3510
- * @description Publish a bundled flow to the CDN for client-side loading.
3511
- */
3512
- post: {
3513
- parameters: {
3514
- query?: never;
3515
- header?: never;
3516
- path: {
3517
- projectId: string;
3518
- flowId: string;
3519
- };
3520
- cookie?: never;
3521
- };
3522
- requestBody?: never;
3523
- responses: {
3524
- /** @description Flow published */
3525
- 200: {
3526
- headers: {
3527
- [name: string]: unknown;
3528
- };
3529
- content?: never;
3530
- };
3531
3789
  /** @description Unauthorized */
3532
3790
  401: {
3533
3791
  headers: {
@@ -3537,17 +3795,10 @@ interface paths {
3537
3795
  'application/json': components['schemas']['ErrorResponse'];
3538
3796
  };
3539
3797
  };
3540
- /** @description Not found */
3541
- 404: {
3542
- headers: {
3543
- [name: string]: unknown;
3544
- };
3545
- content: {
3546
- 'application/json': components['schemas']['ErrorResponse'];
3547
- };
3548
- };
3549
3798
  };
3550
3799
  };
3800
+ put?: never;
3801
+ post?: never;
3551
3802
  delete?: never;
3552
3803
  options?: never;
3553
3804
  head?: never;
@@ -3998,6 +4249,58 @@ interface paths {
3998
4249
  patch?: never;
3999
4250
  trace?: never;
4000
4251
  };
4252
+ '/api/feedback': {
4253
+ parameters: {
4254
+ query?: never;
4255
+ header?: never;
4256
+ path?: never;
4257
+ cookie?: never;
4258
+ };
4259
+ get?: never;
4260
+ put?: never;
4261
+ /**
4262
+ * Submit user feedback
4263
+ * @description Accepts free-form feedback from the walkerOS CLI, MCP, or a future in-app form. Public endpoint — no authentication required. The body `userId` is stored verbatim as a best-effort contact email and is not validated against the app users table.
4264
+ */
4265
+ post: {
4266
+ parameters: {
4267
+ query?: never;
4268
+ header?: never;
4269
+ path?: never;
4270
+ cookie?: never;
4271
+ };
4272
+ requestBody?: {
4273
+ content: {
4274
+ 'application/json': components['schemas']['FeedbackRequest'];
4275
+ };
4276
+ };
4277
+ responses: {
4278
+ /** @description Feedback stored */
4279
+ 201: {
4280
+ headers: {
4281
+ [name: string]: unknown;
4282
+ };
4283
+ content: {
4284
+ 'application/json': components['schemas']['FeedbackResponse'];
4285
+ };
4286
+ };
4287
+ /** @description Validation error */
4288
+ 400: {
4289
+ headers: {
4290
+ [name: string]: unknown;
4291
+ };
4292
+ content: {
4293
+ 'application/json': components['schemas']['ErrorResponse'];
4294
+ };
4295
+ };
4296
+ };
4297
+ };
4298
+ delete?: never;
4299
+ options?: never;
4300
+ head?: never;
4301
+ patch?: never;
4302
+ trace?: never;
4303
+ };
4001
4304
  }
4002
4305
  interface components {
4003
4306
  schemas: {
@@ -4019,6 +4322,27 @@ interface components {
4019
4322
  };
4020
4323
  };
4021
4324
  };
4325
+ ClientOutdatedError: {
4326
+ error: {
4327
+ /** @enum {string} */
4328
+ code: 'CLIENT_OUTDATED';
4329
+ /** @example This endpoint requires @walkeros/cli >= 3.5.0 (you are on 3.3.1). */
4330
+ message: string;
4331
+ /** @example 3.5.0 */
4332
+ minVersion: string;
4333
+ /** @example 3.3.1 */
4334
+ clientVersion: string;
4335
+ /** @example cli */
4336
+ client: string;
4337
+ /** @example npm install -g @walkeros/cli@latest */
4338
+ upgrade: string;
4339
+ /**
4340
+ * Format: uri
4341
+ * @example https://walkeros.io/docs/upgrading
4342
+ */
4343
+ docs: string;
4344
+ };
4345
+ };
4022
4346
  FlowConfig: {
4023
4347
  /** @enum {number} */
4024
4348
  version: 4;
@@ -4027,6 +4351,9 @@ interface components {
4027
4351
  variables?: {
4028
4352
  [key: string]: unknown;
4029
4353
  };
4354
+ definitions?: {
4355
+ [key: string]: unknown;
4356
+ };
4030
4357
  flows?: {
4031
4358
  [key: string]: unknown;
4032
4359
  };
@@ -4144,6 +4471,12 @@ interface components {
4144
4471
  * @example 2026-01-26T14:30:00.000Z
4145
4472
  */
4146
4473
  updatedAt: string;
4474
+ /** @example 3 */
4475
+ memberCount: number;
4476
+ /** @example 5 */
4477
+ flowCount: number;
4478
+ /** @example 2 */
4479
+ deploymentCount: number;
4147
4480
  };
4148
4481
  Member: {
4149
4482
  userId: string;
@@ -4245,6 +4578,7 @@ interface components {
4245
4578
  name: string;
4246
4579
  config: components['schemas']['FlowConfig'];
4247
4580
  settings?: components['schemas']['FlowSettingsEnriched'][];
4581
+ bundleId?: string | null;
4248
4582
  /**
4249
4583
  * Format: date-time
4250
4584
  * @example 2026-01-26T14:30:00.000Z
@@ -4345,6 +4679,9 @@ interface components {
4345
4679
  | 'failed';
4346
4680
  currentVersionNumber: number | null;
4347
4681
  url: string | null;
4682
+ /** @example flow_a1b2c3d4 */
4683
+ flowId: string | null;
4684
+ flowName: string | null;
4348
4685
  /** Format: date-time */
4349
4686
  createdAt: string;
4350
4687
  /** Format: date-time */
@@ -4439,6 +4776,9 @@ interface components {
4439
4776
  | 'failed';
4440
4777
  currentVersionNumber: number | null;
4441
4778
  url: string | null;
4779
+ /** @example flow_a1b2c3d4 */
4780
+ flowId: string | null;
4781
+ flowName: string | null;
4442
4782
  /** Format: date-time */
4443
4783
  createdAt: string;
4444
4784
  /** Format: date-time */
@@ -4453,6 +4793,7 @@ interface components {
4453
4793
  total: number;
4454
4794
  limit: number;
4455
4795
  offset: number;
4796
+ nextCursor: string | null;
4456
4797
  };
4457
4798
  UpdateDeploymentResponse: {
4458
4799
  /** @example dep_a1b2c3d4 */
@@ -4554,6 +4895,48 @@ interface components {
4554
4895
  /** Format: uri */
4555
4896
  observerUrl: string;
4556
4897
  };
4898
+ PreviewResponse: {
4899
+ /** @example prv_abc123xyz456 */
4900
+ id: string;
4901
+ /** @example flow_a1b2c3d4 */
4902
+ flowId: string;
4903
+ flowSettingsId: string;
4904
+ projectId: string;
4905
+ /** @example k9x2m4p7abcd */
4906
+ token: string;
4907
+ /** Format: uri */
4908
+ bundleUrl: string;
4909
+ activationUrl: string;
4910
+ createdBy: string;
4911
+ /** Format: date-time */
4912
+ createdAt: string;
4913
+ };
4914
+ ListPreviewsResponse: {
4915
+ previews: components['schemas']['PreviewResponse'][];
4916
+ total: number;
4917
+ };
4918
+ CreatePreviewRequest: {
4919
+ flowSettingsId: string;
4920
+ };
4921
+ FeedbackRequest: {
4922
+ /** @example The MCP flow_bundle tool is great but slow on large configs. */
4923
+ text: string;
4924
+ /**
4925
+ * Format: email
4926
+ * @example alex@example.com
4927
+ */
4928
+ userId?: string;
4929
+ /** @example proj_abc123 */
4930
+ projectId?: string;
4931
+ /** @example 0.4.2 */
4932
+ version?: string;
4933
+ };
4934
+ FeedbackResponse: {
4935
+ /** @enum {boolean} */
4936
+ ok: true;
4937
+ /** @example fb_abcdef1234567890 */
4938
+ id: string;
4939
+ };
4557
4940
  MagicLinkResponse: {
4558
4941
  /** @example true */
4559
4942
  success: boolean;
@@ -4616,6 +4999,7 @@ interface components {
4616
4999
  ListProjectsResponse: {
4617
5000
  projects: components['schemas']['Project'][];
4618
5001
  total: number;
5002
+ nextCursor: string | null;
4619
5003
  };
4620
5004
  CreateProjectRequest: {
4621
5005
  name: string;
@@ -4646,6 +5030,7 @@ interface components {
4646
5030
  ListFlowsResponse: {
4647
5031
  flows: components['schemas']['FlowSummary'][];
4648
5032
  total: number;
5033
+ nextCursor: string | null;
4649
5034
  };
4650
5035
  CreateFlowRequest: {
4651
5036
  /** @example my-website-flow */
@@ -4777,11 +5162,36 @@ interface components {
4777
5162
  /** @example 90 */
4778
5163
  expiresInDays?: number | null;
4779
5164
  };
4780
- BundleJobResponse: {
4781
- jobId: string;
4782
- state: string;
4783
- hash: string;
4784
- bundlePath: string;
5165
+ BundleResponse: {
5166
+ bundleId: string;
5167
+ cached: boolean;
5168
+ };
5169
+ SimulateResponse: {
5170
+ success: boolean;
5171
+ result?: {
5172
+ /** @enum {string} */
5173
+ step: 'source' | 'transformer' | 'destination';
5174
+ name: string;
5175
+ events: {
5176
+ [key: string]: unknown;
5177
+ }[];
5178
+ calls: {
5179
+ fn: string;
5180
+ args: unknown[];
5181
+ ts: number;
5182
+ }[];
5183
+ duration: number;
5184
+ };
5185
+ };
5186
+ SimulateRequest: {
5187
+ bundleId: string;
5188
+ config: {
5189
+ [key: string]: unknown;
5190
+ };
5191
+ event: {
5192
+ [key: string]: unknown;
5193
+ };
5194
+ step: string;
4785
5195
  };
4786
5196
  RegisterRuntimeRequest: {
4787
5197
  flowId: string;
@@ -4824,6 +5234,8 @@ interface ListFlowsOptions {
4824
5234
  sort?: 'name' | 'updated_at' | 'created_at';
4825
5235
  order?: 'asc' | 'desc';
4826
5236
  includeDeleted?: boolean;
5237
+ cursor?: string;
5238
+ limit?: number;
4827
5239
  }
4828
5240
  declare function listFlows(options?: ListFlowsOptions): Promise<{
4829
5241
  flows: {
@@ -4842,6 +5254,7 @@ declare function listFlows(options?: ListFlowsOptions): Promise<{
4842
5254
  deletedAt: string | null;
4843
5255
  }[];
4844
5256
  total: number;
5257
+ nextCursor: string | null;
4845
5258
  }>;
4846
5259
  declare function listAllFlows(options?: Omit<ListFlowsOptions, 'projectId'>): Promise<ProjectFlows[]>;
4847
5260
  declare function getFlow(options: {
@@ -4859,6 +5272,9 @@ declare function getFlow(options: {
4859
5272
  variables?: {
4860
5273
  [x: string]: unknown;
4861
5274
  } | undefined;
5275
+ definitions?: {
5276
+ [x: string]: unknown;
5277
+ } | undefined;
4862
5278
  flows?: {
4863
5279
  [x: string]: unknown;
4864
5280
  } | undefined;
@@ -4883,6 +5299,7 @@ declare function getFlow(options: {
4883
5299
  createdAt: string;
4884
5300
  updatedAt: string;
4885
5301
  }[] | undefined;
5302
+ bundleId?: string | null | undefined;
4886
5303
  createdAt: string;
4887
5304
  updatedAt: string;
4888
5305
  deletedAt: string | null;
@@ -4902,6 +5319,9 @@ declare function createFlow(options: {
4902
5319
  variables?: {
4903
5320
  [x: string]: unknown;
4904
5321
  } | undefined;
5322
+ definitions?: {
5323
+ [x: string]: unknown;
5324
+ } | undefined;
4905
5325
  flows?: {
4906
5326
  [x: string]: unknown;
4907
5327
  } | undefined;
@@ -4937,6 +5357,9 @@ declare function updateFlow(options: {
4937
5357
  variables?: {
4938
5358
  [x: string]: unknown;
4939
5359
  } | undefined;
5360
+ definitions?: {
5361
+ [x: string]: unknown;
5362
+ } | undefined;
4940
5363
  flows?: {
4941
5364
  [x: string]: unknown;
4942
5365
  } | undefined;
@@ -4968,6 +5391,9 @@ declare function duplicateFlow(options: {
4968
5391
  variables?: {
4969
5392
  [x: string]: unknown;
4970
5393
  } | undefined;
5394
+ definitions?: {
5395
+ [x: string]: unknown;
5396
+ } | undefined;
4971
5397
  flows?: {
4972
5398
  [x: string]: unknown;
4973
5399
  } | undefined;
@@ -4995,6 +5421,8 @@ declare function listFlowsCommand(options: FlowsCommandOptions & {
4995
5421
  sort?: string;
4996
5422
  order?: string;
4997
5423
  includeDeleted?: boolean;
5424
+ cursor?: string;
5425
+ limit?: number;
4998
5426
  }): Promise<void>;
4999
5427
  declare function getFlowCommand(flowId: string, options: FlowsCommandOptions): Promise<void>;
5000
5428
  declare function createFlowCommand(name: string, options: FlowsCommandOptions & {
@@ -5040,6 +5468,8 @@ interface ListDeploymentsOptions {
5040
5468
  type?: 'web' | 'server';
5041
5469
  status?: string;
5042
5470
  flowId?: string;
5471
+ cursor?: string;
5472
+ limit?: number;
5043
5473
  }
5044
5474
  declare function listDeployments(options?: ListDeploymentsOptions): Promise<any>;
5045
5475
  /**
@@ -5097,6 +5527,8 @@ interface DeploymentsCommandOptions extends GlobalOptions {
5097
5527
  type?: string;
5098
5528
  status?: string;
5099
5529
  label?: string;
5530
+ cursor?: string;
5531
+ limit?: number;
5100
5532
  }
5101
5533
  declare function listDeploymentsCommand(options: DeploymentsCommandOptions): Promise<void>;
5102
5534
  declare function getDeploymentBySlugCommand(slug: string, options: DeploymentsCommandOptions): Promise<void>;
@@ -5176,6 +5608,16 @@ interface WrapSkeletonOptions {
5176
5608
  previewOrigin?: string;
5177
5609
  /** Browser-only: project scope for preview URL isolation. */
5178
5610
  previewScope?: string;
5611
+ /**
5612
+ * Browser-only: telemetry wiring. When provided, the wrapped bundle
5613
+ * installs an observer built via `createTelemetryObserver` onto
5614
+ * `collector.observers` and forwards FlowState records to `observerUrl`
5615
+ * using `createBatchedPoster`.
5616
+ *
5617
+ * Omit (or pass `level: 'off'`) to ship a bundle with zero telemetry
5618
+ * plumbing.
5619
+ */
5620
+ telemetry?: TelemetryBundleOptions;
5179
5621
  /**
5180
5622
  * esbuild target. @default 'es2018' for browser, 'node18' for node.
5181
5623
  */
@@ -5185,6 +5627,18 @@ interface WrapSkeletonOptions {
5185
5627
  /** Fine-grained minification options, forwarded to esbuild. */
5186
5628
  minifyOptions?: MinifyOptions;
5187
5629
  }
5630
+ interface TelemetryBundleOptions {
5631
+ /** Absolute ingest URL. POST receives JSON array of FlowState. */
5632
+ observerUrl: string;
5633
+ /** Deployment-scoped plaintext token. Sent as `Authorization: Bearer`. */
5634
+ ingestToken: string;
5635
+ /** Used as the `flowId` on every emitted FlowState. */
5636
+ flowId: string;
5637
+ /** Verbosity. Default 'standard'. 'off' suppresses the entire wiring. */
5638
+ level?: 'off' | 'standard' | 'trace';
5639
+ /** Deterministic sample fraction in [0, 1]. Default 1. */
5640
+ sample?: number;
5641
+ }
5188
5642
  declare function wrapSkeleton(options: WrapSkeletonOptions): Promise<void>;
5189
5643
 
5190
5644
  declare function createApiClient(): openapi_fetch.Client<paths, `${string}/${string}`>;
@@ -5579,4 +6033,4 @@ declare module '@walkeros/core' {
5579
6033
  }
5580
6034
  }
5581
6035
 
5582
- export { ApiError, type ApiErrorDetail, type BuildOptions, type BundleStats, type CLIBuildOptions, type ClientContext, type ClientType, type CreatePreviewOptions, type DeletePreviewOptions, type DeployOptions, DeploymentAmbiguityError, type DeploymentSummaryForFlow, type DeviceCodeOptions, type DeviceCodeResult, type ExampleLookupResult, type FeedbackOptions, type GetPreviewOptions, type GlobalOptions, type ListDeploymentsOptions, type ListFlowsOptions, type ListPreviewsOptions, type MinifyOptions, type PollOptions, type PollResult, type PrepareInput, type PreparedFlow, type ProjectFlows, type PushResult, type RunCommandOptions, type RunOptions, type RunResult, type SSEEvent, type SSEParseResult, type SimulateDestinationOptions, type SimulateSourceOptions, type SimulateTransformerOptions, type ValidateResult, type ValidationError, type ValidationType, type ValidationWarning, type WalkerOSConfig, type WrapSkeletonOptions, apiFetch, bundle, bundleCommand, clientContextHeaders, compareOutput, createApiClient, createDeployCommand, createDeployment, createDeploymentCommand, createFlow, createFlowCommand, createPreview, createProject, createProjectCommand, deleteConfig, deleteDeployment, deleteDeploymentByFlowId, deleteDeploymentCommand, deleteFlow, deleteFlowCommand, deletePreview, deleteProject, deleteProjectCommand, deploy, deployCommand, deployFetch, duplicateFlow, duplicateFlowCommand, feedback, feedbackCommand, findExample, getAuthHeaders, getClientContext, getDefaultProject, getDeployment, getDeploymentBySlug, getDeploymentBySlugCommand, getDeploymentCommand, getFeedbackPreference, getFlow, getFlowCommand, getPreview, getProject, getProjectCommand, getToken, listAllFlows, listDeployments, listDeploymentsCommand, listFlows, listFlowsCommand, listPreviews, listProjects, listProjectsCommand, loadConfig, loadJsonConfig, loginCommand, logoutCommand, mergeAuthHeaders, parseSSEEvents, pollForToken, publicFetch, push, pushCommand, readConfig, requestDeviceCode, requireProjectId, resetClientContext, resolveToken, run, runCommand, setClientContext, setDefaultProject, setFeedbackPreference, simulateDestination, simulateSource, simulateTransformer, index as telemetry, telemetryDisableCommand, telemetryEnableCommand, telemetryStatusCommand, throwApiError, updateFlow, updateFlowCommand, updateProject, updateProjectCommand, validate, validateCommand, whoami, whoamiCommand, wrapSkeleton, writeConfig };
6036
+ export { ApiError, type ApiErrorDetail, type BuildOptions, type BundleStats, type CLIBuildOptions, type ClientContext, type ClientType, type CreatePreviewOptions, type DeletePreviewOptions, type DeployOptions, DeploymentAmbiguityError, type DeploymentSummaryForFlow, type DeviceCodeOptions, type DeviceCodeResult, type ExampleLookupResult, type FeedbackOptions, type GetPreviewOptions, type GlobalOptions, type ListDeploymentsOptions, type ListFlowsOptions, type ListPreviewsOptions, type ListProjectsOptions, type MinifyOptions, type PollOptions, type PollResult, type PrepareInput, type PreparedFlow, type ProjectFlows, type PushResult, type RunCommandOptions, type RunOptions, type RunResult, type SSEEvent, type SSEParseResult, type SimulateDestinationOptions, type SimulateSourceOptions, type SimulateTransformerOptions, type ValidateResult, type ValidationError, type ValidationType, type ValidationWarning, type WalkerOSConfig, type WrapSkeletonOptions, apiFetch, bundle, bundleCommand, clientContextHeaders, compareOutput, createApiClient, createDeployCommand, createDeployment, createDeploymentCommand, createFlow, createFlowCommand, createPreview, createProject, createProjectCommand, deleteConfig, deleteDeployment, deleteDeploymentByFlowId, deleteDeploymentCommand, deleteFlow, deleteFlowCommand, deletePreview, deleteProject, deleteProjectCommand, deploy, deployCommand, deployFetch, duplicateFlow, duplicateFlowCommand, feedback, feedbackCommand, findExample, getAuthHeaders, getClientContext, getDefaultProject, getDeployment, getDeploymentBySlug, getDeploymentBySlugCommand, getDeploymentCommand, getFeedbackPreference, getFlow, getFlowCommand, getPreview, getProject, getProjectCommand, getToken, listAllFlows, listDeployments, listDeploymentsCommand, listFlows, listFlowsCommand, listPreviews, listProjects, listProjectsCommand, loadConfig, loadJsonConfig, loginCommand, logoutCommand, mergeAuthHeaders, parseSSEEvents, pollForToken, publicFetch, push, pushCommand, readConfig, requestDeviceCode, requireProjectId, resetClientContext, resolveToken, run, runCommand, setClientContext, setDefaultProject, setFeedbackPreference, simulateDestination, simulateSource, simulateTransformer, index as telemetry, telemetryDisableCommand, telemetryEnableCommand, telemetryStatusCommand, throwApiError, updateFlow, updateFlowCommand, updateProject, updateProjectCommand, validate, validateCommand, whoami, whoamiCommand, wrapSkeleton, writeConfig };