@hyperdrive.bot/cli 1.0.12 → 1.0.16

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 (157) hide show
  1. package/README.md +1495 -474
  2. package/dist/commands/deploy.d.ts +18 -0
  3. package/dist/commands/deploy.js +239 -0
  4. package/dist/commands/deployment/create.js +10 -2
  5. package/dist/commands/domain/{switch.d.ts → set-production.d.ts} +1 -1
  6. package/dist/commands/domain/set-production.js +27 -0
  7. package/dist/commands/git/list-open-prs.d.ts +12 -0
  8. package/dist/commands/git/list-open-prs.js +87 -0
  9. package/dist/commands/hook/add.d.ts +22 -0
  10. package/dist/commands/hook/add.js +299 -0
  11. package/dist/commands/hook/list.d.ts +11 -0
  12. package/dist/commands/hook/list.js +111 -0
  13. package/dist/commands/hook/logs.d.ts +13 -0
  14. package/dist/commands/hook/logs.js +124 -0
  15. package/dist/commands/hook/remove.d.ts +12 -0
  16. package/dist/commands/hook/remove.js +115 -0
  17. package/dist/commands/hook/toggle.d.ts +12 -0
  18. package/dist/commands/hook/toggle.js +125 -0
  19. package/dist/commands/init.d.ts +1 -1
  20. package/dist/commands/init.js +49 -9
  21. package/dist/commands/module/bindings.d.ts +14 -0
  22. package/dist/commands/module/bindings.js +125 -0
  23. package/dist/commands/module/create.d.ts +3 -0
  24. package/dist/commands/module/create.js +156 -78
  25. package/dist/commands/module/list.d.ts +1 -0
  26. package/dist/commands/module/list.js +22 -1
  27. package/dist/commands/module/sync.d.ts +29 -0
  28. package/dist/commands/module/sync.js +409 -0
  29. package/dist/commands/module/unlink.d.ts +11 -0
  30. package/dist/commands/module/unlink.js +77 -0
  31. package/dist/commands/module/update.d.ts +10 -0
  32. package/dist/commands/module/update.js +168 -5
  33. package/dist/commands/network/discover.d.ts +12 -0
  34. package/dist/commands/network/discover.js +210 -0
  35. package/dist/commands/network/get.d.ts +13 -0
  36. package/dist/commands/network/get.js +90 -0
  37. package/dist/commands/{auth/logout.d.ts → network/list.d.ts} +2 -9
  38. package/dist/commands/network/list.js +71 -0
  39. package/dist/commands/network/register.d.ts +16 -0
  40. package/dist/commands/network/register.js +144 -0
  41. package/dist/commands/parameter/sync.d.ts +13 -0
  42. package/dist/commands/parameter/sync.js +69 -1
  43. package/dist/commands/project/sync.d.ts +5 -11
  44. package/dist/commands/project/sync.js +12 -381
  45. package/dist/commands/seed.d.ts +93 -0
  46. package/dist/commands/seed.js +324 -0
  47. package/dist/commands/service/backup.d.ts +17 -0
  48. package/dist/commands/service/backup.js +156 -0
  49. package/dist/commands/service/backups.d.ts +14 -0
  50. package/dist/commands/service/backups.js +110 -0
  51. package/dist/commands/service/bind.d.ts +16 -0
  52. package/dist/commands/service/bind.js +106 -0
  53. package/dist/commands/service/bindings.d.ts +13 -0
  54. package/dist/commands/service/bindings.js +78 -0
  55. package/dist/commands/service/clone.d.ts +19 -0
  56. package/dist/commands/service/clone.js +153 -0
  57. package/dist/commands/service/create.d.ts +16 -0
  58. package/dist/commands/service/create.js +212 -0
  59. package/dist/commands/service/get.d.ts +13 -0
  60. package/dist/commands/service/get.js +97 -0
  61. package/dist/commands/service/list.d.ts +12 -0
  62. package/dist/commands/service/list.js +86 -0
  63. package/dist/commands/service/register.d.ts +21 -0
  64. package/dist/commands/service/register.js +215 -0
  65. package/dist/commands/service/restore.d.ts +19 -0
  66. package/dist/commands/service/restore.js +158 -0
  67. package/dist/commands/service/seed.d.ts +17 -0
  68. package/dist/commands/service/seed.js +173 -0
  69. package/dist/commands/service/templates.d.ts +10 -0
  70. package/dist/commands/service/templates.js +66 -0
  71. package/dist/commands/service/unbind.d.ts +15 -0
  72. package/dist/commands/service/unbind.js +74 -0
  73. package/dist/commands/stage/create.d.ts +23 -0
  74. package/dist/commands/stage/create.js +145 -6
  75. package/dist/commands/stage/delete.d.ts +11 -0
  76. package/dist/commands/stage/delete.js +85 -0
  77. package/dist/commands/stage/deploy.d.ts +34 -0
  78. package/dist/commands/stage/deploy.js +294 -0
  79. package/dist/commands/stage/ensure-branches.d.ts +23 -0
  80. package/dist/commands/stage/ensure-branches.js +101 -0
  81. package/dist/commands/stage/list.js +4 -0
  82. package/dist/commands/stage/status.d.ts +14 -0
  83. package/dist/commands/stage/status.js +100 -0
  84. package/dist/commands/{jira → tracker}/connect.js +32 -23
  85. package/dist/commands/tracker/hook/add.d.ts +25 -0
  86. package/dist/commands/tracker/hook/add.js +284 -0
  87. package/dist/commands/{jira → tracker}/hook/list.js +20 -11
  88. package/dist/commands/{jira/hook/add.d.ts → tracker/hook/logs.d.ts} +2 -3
  89. package/dist/commands/tracker/hook/logs.js +126 -0
  90. package/dist/commands/{jira → tracker}/hook/remove.js +9 -8
  91. package/dist/commands/{jira → tracker}/hook/toggle.js +14 -12
  92. package/dist/commands/tracker/project/init.d.ts +17 -0
  93. package/dist/commands/tracker/project/init.js +178 -0
  94. package/dist/commands/tracker/project/link-module.d.ts +17 -0
  95. package/dist/commands/tracker/project/link-module.js +287 -0
  96. package/dist/commands/tracker/project/list-modules.d.ts +11 -0
  97. package/dist/commands/tracker/project/list-modules.js +117 -0
  98. package/dist/commands/tracker/project/list.d.ts +10 -0
  99. package/dist/commands/tracker/project/list.js +90 -0
  100. package/dist/commands/tracker/project/status.d.ts +13 -0
  101. package/dist/commands/tracker/project/status.js +168 -0
  102. package/dist/commands/tracker/project/unlink-module.d.ts +13 -0
  103. package/dist/commands/tracker/project/unlink-module.js +251 -0
  104. package/dist/commands/{jira → tracker}/status.js +3 -3
  105. package/dist/lib/ensure-branches.d.ts +53 -0
  106. package/dist/lib/ensure-branches.js +149 -0
  107. package/dist/lib/git-providers/github.d.ts +16 -0
  108. package/dist/lib/git-providers/github.js +157 -0
  109. package/dist/lib/git-providers/gitlab.d.ts +16 -0
  110. package/dist/lib/git-providers/gitlab.js +148 -0
  111. package/dist/lib/git-providers/index.d.ts +67 -0
  112. package/dist/lib/git-providers/index.js +39 -0
  113. package/dist/lib/lambda-warmer.d.ts +106 -0
  114. package/dist/lib/lambda-warmer.js +189 -0
  115. package/dist/services/hyperdrive-sigv4.d.ts +360 -5
  116. package/dist/services/hyperdrive-sigv4.js +192 -24
  117. package/dist/utils/hook-flow.d.ts +60 -3
  118. package/dist/utils/hook-flow.js +437 -2
  119. package/dist/utils/hook-normalize.d.ts +6 -0
  120. package/dist/utils/hook-normalize.js +33 -0
  121. package/dist/utils/lifecycle-poller.d.ts +32 -0
  122. package/dist/utils/lifecycle-poller.js +72 -0
  123. package/dist/utils/retry.d.ts +43 -0
  124. package/dist/utils/retry.js +88 -0
  125. package/dist/utils/summary-display.js +1 -1
  126. package/dist/utils/tracker-project-flow.d.ts +84 -0
  127. package/dist/utils/tracker-project-flow.js +564 -0
  128. package/package.json +35 -7
  129. package/dist/commands/auth/login.d.ts +0 -16
  130. package/dist/commands/auth/login.js +0 -179
  131. package/dist/commands/auth/logout.js +0 -116
  132. package/dist/commands/auth/refresh.d.ts +0 -6
  133. package/dist/commands/auth/refresh.js +0 -66
  134. package/dist/commands/auth/status.d.ts +0 -6
  135. package/dist/commands/auth/status.js +0 -63
  136. package/dist/commands/config/get.d.ts +0 -9
  137. package/dist/commands/config/get.js +0 -37
  138. package/dist/commands/config/set.d.ts +0 -10
  139. package/dist/commands/config/set.js +0 -48
  140. package/dist/commands/config/show.d.ts +0 -6
  141. package/dist/commands/config/show.js +0 -10
  142. package/dist/commands/domain/current.d.ts +0 -6
  143. package/dist/commands/domain/current.js +0 -18
  144. package/dist/commands/domain/list.d.ts +0 -6
  145. package/dist/commands/domain/list.js +0 -42
  146. package/dist/commands/domain/switch.js +0 -40
  147. package/dist/commands/jira/hook/add.js +0 -147
  148. package/dist/services/tenant-service.d.ts +0 -127
  149. package/dist/services/tenant-service.js +0 -396
  150. package/dist/utils/auth-flow.d.ts +0 -147
  151. package/dist/utils/auth-flow.js +0 -479
  152. package/oclif.manifest.json +0 -3519
  153. /package/dist/commands/{jira → tracker}/connect.d.ts +0 -0
  154. /package/dist/commands/{jira → tracker}/hook/list.d.ts +0 -0
  155. /package/dist/commands/{jira → tracker}/hook/remove.d.ts +0 -0
  156. /package/dist/commands/{jira → tracker}/hook/toggle.d.ts +0 -0
  157. /package/dist/commands/{jira → tracker}/status.d.ts +0 -0
@@ -41,16 +41,66 @@ interface ModuleResponse {
41
41
  buildRuntimeVersion?: string;
42
42
  ciService?: string;
43
43
  createdAt?: string;
44
+ defaultBranch?: string;
45
+ dependsOn?: Array<{
46
+ artifactKey: string;
47
+ downloadTo: string;
48
+ }>;
49
+ deployCommand?: string;
50
+ deploymentStrategy?: string;
51
+ dockerBuild?: Record<string, unknown>;
44
52
  framework?: string;
45
- moduleType?: 'backend' | 'frontend';
53
+ gitFullRepoPath?: string;
54
+ gitOrganization?: string;
55
+ gitProvider?: string;
56
+ gitRepoName?: string;
57
+ hasCI?: boolean;
58
+ installCommand?: string;
59
+ moduleType?: 'backend' | 'frontend' | 'cdk';
46
60
  name?: string;
61
+ postDeployCommand?: string;
62
+ postDeployFailureMode?: 'fail' | 'warn';
47
63
  projectId?: string;
48
64
  runCommand?: string;
49
65
  runtime?: string;
66
+ runtimeConfig?: {
67
+ memory?: number;
68
+ timeout?: number;
69
+ };
50
70
  runtimeVersion?: string;
51
71
  slug?: string;
52
72
  sourceLocation?: string;
53
73
  subdomain?: string;
74
+ targets?: Record<string, Record<string, unknown>>;
75
+ tenantId?: string;
76
+ updatedAt?: string;
77
+ }
78
+ /**
79
+ * Lambda env update report returned by the backend after a parameter sync.
80
+ *
81
+ * The CLI never updates Lambda directly — it asks the backend (API-111 AC5)
82
+ * to perform GetFunctionConfiguration → merge env → UpdateFunctionConfiguration
83
+ * on each function bound to the module/stage. The backend returns the per-
84
+ * function diff so the CLI can surface what changed.
85
+ *
86
+ * AC6 contract: `updatedKeys` is the testable list of env vars actually
87
+ * written for that function. Empty array = idempotent no-op.
88
+ */
89
+ export interface LambdaEnvUpdateReport {
90
+ /** Was an actual UpdateFunctionConfiguration call made? false on dry-run / no-op */
91
+ applied?: boolean;
92
+ /** Free-form error if the update failed for this function only */
93
+ error?: string;
94
+ /** Lambda function name (e.g. `api-alunos-feat-e2e-handler`) */
95
+ functionName: string;
96
+ /** Env keys removed by this sync (when sync deletes a previously-set var) */
97
+ removedKeys?: string[];
98
+ /** Reason this Lambda was skipped, if applicable (e.g. function not found) */
99
+ skipped?: string;
100
+ /** Env keys preserved unchanged (already match desired values) */
101
+ unchangedKeys?: string[];
102
+ /** Env keys whose values differed and were written (or would be on dry-run) */
103
+ updatedKeys: string[];
54
104
  }
55
105
  interface ParameterSyncResponse {
56
106
  errors?: Array<{
@@ -70,6 +120,12 @@ interface ParameterSyncStatusResponse {
70
120
  error: string;
71
121
  key: string;
72
122
  }>;
123
+ /**
124
+ * Lambda env update results, present when the request was made with
125
+ * `applyToLambda: true`. One entry per Lambda the backend tried to update.
126
+ * Order is not guaranteed.
127
+ */
128
+ lambdaUpdates?: LambdaEnvUpdateReport[];
73
129
  progress?: {
74
130
  percentage: number;
75
131
  processed: number;
@@ -93,6 +149,52 @@ interface StageResponse {
93
149
  provider?: string;
94
150
  regions?: string[];
95
151
  slug?: string;
152
+ /**
153
+ * Project slugs linked to this stage (as originally requested at
154
+ * creation). Mirrors `StageData.projectSlugs` on the backend.
155
+ */
156
+ projectSlugs?: string[];
157
+ /**
158
+ * Runtime project deployment tracking — map of slug → last-deployment info.
159
+ * Populated after each deploy. Mirrors `Stage.projects` on the backend.
160
+ */
161
+ projects?: Record<string, {
162
+ lastDeployment?: {
163
+ url?: string;
164
+ deploymentId?: string;
165
+ deployedAt?: string;
166
+ };
167
+ }>;
168
+ }
169
+ interface DeployManifestModuleResponse {
170
+ moduleSlug: string;
171
+ status: 'pending' | 'deployed' | 'failed' | 'timeout' | 'skipped';
172
+ deploymentId?: string;
173
+ errorType?: string;
174
+ startedAt?: string;
175
+ updatedAt?: string;
176
+ }
177
+ interface DeployManifestWaveResponse {
178
+ waveIndex: number;
179
+ modules: DeployManifestModuleResponse[];
180
+ }
181
+ export interface DeployManifestResponse {
182
+ tenantId: string;
183
+ stageId: string;
184
+ missionId: string;
185
+ status: 'running' | 'partial-failure' | 'success' | 'failed';
186
+ waves: DeployManifestWaveResponse[];
187
+ startedAt: string;
188
+ updatedAt: string;
189
+ }
190
+ export interface DeployManifestApiResponse {
191
+ manifest: DeployManifestResponse | null;
192
+ reason?: string;
193
+ }
194
+ export interface StageDeployResponse {
195
+ missionId: string;
196
+ logging: LoggingConfig;
197
+ manifest: DeployManifestResponse;
96
198
  }
97
199
  interface AWSAccountResponse {
98
200
  accountId: string;
@@ -139,7 +241,7 @@ interface GitAuthInitiateResponse {
139
241
  state: string;
140
242
  }
141
243
  export type HookTriggerEvent = 'comment_added' | 'field_changed' | 'issue_assigned' | 'issue_created' | 'label_changed' | 'status_transition';
142
- export type HookActionType = 'adhb-enrich' | 'ci-trigger' | 'git-create-branch' | 'git-create-mr' | 'git-delete-branch' | 'slack-notify' | 'webhook';
244
+ export type HookActionType = 'adhb-enrich' | 'ci-trigger' | 'deploy' | 'git-create-branch' | 'git-create-mr' | 'git-delete-branch' | 'slack-notify' | 'stage-create' | 'stage-delete' | 'webhook';
143
245
  export type HookActionCategory = 'flex' | 'smart';
144
246
  export interface SlackNotifyConfig {
145
247
  channel: string;
@@ -168,9 +270,30 @@ export interface HookResponse {
168
270
  triggerStatus: string;
169
271
  updatedAt: string;
170
272
  }
273
+ export interface TrackerHookResponseV2 {
274
+ action: {
275
+ category: string;
276
+ config: Record<string, unknown>;
277
+ type: string;
278
+ };
279
+ createdAt: string;
280
+ enabled: boolean;
281
+ hookId: string;
282
+ order?: number;
283
+ trackerProjectId: string;
284
+ trigger: {
285
+ conditions?: Record<string, string>;
286
+ event: string;
287
+ source: string;
288
+ };
289
+ updatedAt: string;
290
+ }
171
291
  export interface HookListResponse {
172
292
  hooks: HookResponse[];
173
293
  }
294
+ export interface TrackerHookListResponseV2 {
295
+ hooks: TrackerHookResponseV2[];
296
+ }
174
297
  export interface HookLogEntry {
175
298
  actionType: string;
176
299
  durationMs: number;
@@ -204,6 +327,102 @@ export interface HookCreateRequestV2 {
204
327
  source: string;
205
328
  };
206
329
  }
330
+ export type HyperdriveLifecycleEvent = 'stage.created' | 'stage.provisioned' | 'stage.domain.ready' | 'stage.domain.failed' | 'stage.destroying' | 'stage.destroyed' | 'deploy.created' | 'deploy.ready' | 'deploy.launched' | 'deploy.completed' | 'deploy.failed' | 'launch.created' | 'launch.deployed' | 'launch.failed' | 'launch.terminated' | 'mission.started' | 'mission.wave.completed' | 'mission.completed' | 'mission.failed';
331
+ export interface TenantHookResponse {
332
+ action: {
333
+ category: 'flex' | 'smart';
334
+ config: Record<string, unknown>;
335
+ type: string;
336
+ };
337
+ createdAt: string;
338
+ enabled: boolean;
339
+ hookId: string;
340
+ order?: number;
341
+ schedulerResource?: {
342
+ arn: string;
343
+ groupName: string;
344
+ scheduleName: string;
345
+ state: 'DISABLED' | 'ENABLED';
346
+ };
347
+ trigger: {
348
+ conditions?: Record<string, string>;
349
+ event: string;
350
+ expression?: string;
351
+ flexibleWindowMinutes?: number;
352
+ source: 'hyperdrive';
353
+ timezone?: string;
354
+ type?: 'cron';
355
+ };
356
+ updatedAt?: string;
357
+ }
358
+ export type TenantHookTrigger = {
359
+ conditions?: Record<string, string>;
360
+ event: HyperdriveLifecycleEvent;
361
+ source: 'hyperdrive';
362
+ } | {
363
+ expression: string;
364
+ flexibleWindowMinutes?: number;
365
+ timezone: string;
366
+ type: 'cron';
367
+ };
368
+ export interface TenantHookCreateRequest {
369
+ action: {
370
+ category: HookActionCategory;
371
+ config: Record<string, unknown>;
372
+ type: HookActionType;
373
+ };
374
+ order?: number;
375
+ trigger: TenantHookTrigger;
376
+ }
377
+ export type NormalizedWorkflowState = 'blocked' | 'deploying' | 'done' | 'enriching' | 'implementing' | 'in_review' | 'pending' | 'ready_to_merge' | 'testing' | 'validating';
378
+ export interface TrackerProject {
379
+ createdAt: string;
380
+ externalProjectKey: string;
381
+ externalProjectName: string;
382
+ provider: string;
383
+ statusMapping: Record<string, NormalizedWorkflowState>;
384
+ trackerId: string;
385
+ trackerProjectId: string;
386
+ updatedAt: string;
387
+ }
388
+ export interface TrackerProjectCreateRequest {
389
+ externalProjectKey: string;
390
+ externalProjectName: string;
391
+ provider: string;
392
+ statusMapping: Record<string, NormalizedWorkflowState>;
393
+ trackerId: string;
394
+ }
395
+ export interface TrackerProjectModuleLink {
396
+ linkedAt: string;
397
+ moduleId: string;
398
+ role?: 'primary' | 'supporting';
399
+ trackerProjectId: string;
400
+ }
401
+ export interface TrackerProjectModuleLinkRequest {
402
+ moduleId: string;
403
+ role?: 'primary' | 'supporting';
404
+ }
405
+ export interface ModuleContextInProject {
406
+ architectureSummary: Record<string, unknown> | null;
407
+ entityRegistry: Array<{
408
+ name: string;
409
+ path: string;
410
+ type: string;
411
+ }>;
412
+ lastSyncedAt: string | null;
413
+ metadata: {
414
+ name: string;
415
+ slug: string;
416
+ };
417
+ moduleId: string;
418
+ moduleList: string[];
419
+ summaryStatus: 'fresh' | 'not_generated' | 'stale';
420
+ }
421
+ export interface TrackerProjectContextResponse {
422
+ hooksSummary: Record<string, string[]>;
423
+ linkedModules: ModuleContextInProject[];
424
+ trackerProject: TrackerProject;
425
+ }
207
426
  export type BackupStatus = 'completed' | 'failed' | 'in-progress' | 'pending';
208
427
  export type BackupType = 'clone' | 'restore' | 'snapshot';
209
428
  export type SeedRunStatus = 'completed' | 'failed' | 'in-progress' | 'pending';
@@ -243,11 +462,10 @@ export interface SeedRunListResponse {
243
462
  lastEvaluatedKey?: Record<string, unknown>;
244
463
  seedRuns: SeedRunResponse[];
245
464
  }
246
- /**
247
- * Hyperdrive API Service with AWS SigV4 authentication
248
- */
249
465
  export declare class HyperdriveSigV4Service extends SigV4ApiClient {
466
+ private readonly projectsApiUrl?;
250
467
  private readonly userGroupsApiUrl?;
468
+ private readonly parameterApiUrl;
251
469
  constructor(domain?: string);
252
470
  accountAdd(params: {
253
471
  accountId: string;
@@ -576,6 +794,31 @@ export declare class HyperdriveSigV4Service extends SigV4ApiClient {
576
794
  projectSlug: string;
577
795
  stage: string;
578
796
  }): Promise<DeploymentResponse[]>;
797
+ deploymentCreateStatic(params: {
798
+ commit: string;
799
+ deploymentName: string;
800
+ files: Array<{
801
+ contentType: string;
802
+ path: string;
803
+ size: number;
804
+ }>;
805
+ projectSlug: string;
806
+ stage: string;
807
+ }): Promise<{
808
+ bucketName: string;
809
+ deploymentId: string;
810
+ uploadUrls: Array<{
811
+ path: string;
812
+ url: string;
813
+ }>;
814
+ }>;
815
+ deploymentFinalizeStatic(deploymentId: string, options?: {
816
+ spa?: boolean;
817
+ }): Promise<{
818
+ deploymentId: string;
819
+ launchId: string;
820
+ url: string;
821
+ }>;
579
822
  gitAuthInitiate(provider: 'github' | 'gitlab'): Promise<GitAuthInitiateResponse>;
580
823
  gitCheckRepoAccess(params: {
581
824
  provider: 'github' | 'gitlab';
@@ -610,6 +853,23 @@ export declare class HyperdriveSigV4Service extends SigV4ApiClient {
610
853
  hookUpdate(projectId: string, hookId: string, body: Partial<HookCreateRequest> & {
611
854
  enabled?: boolean;
612
855
  }): Promise<HookResponse>;
856
+ tenantHookCreate(body: TenantHookCreateRequest): Promise<TenantHookResponse>;
857
+ tenantHookDelete(hookId: string): Promise<{
858
+ message: string;
859
+ }>;
860
+ tenantHookGet(hookId: string): Promise<TenantHookResponse>;
861
+ tenantHookList(): Promise<TenantHookResponse[]>;
862
+ tenantHookLogList(options?: {
863
+ limit?: number;
864
+ status?: string;
865
+ }): Promise<HookLogListResponse>;
866
+ tenantHookUpdate(hookId: string, body: {
867
+ action?: {
868
+ config: Record<string, unknown>;
869
+ };
870
+ enabled?: boolean;
871
+ order?: number;
872
+ }): Promise<TenantHookResponse>;
613
873
  projectGetJiraStatuses(projectId: string): Promise<{
614
874
  statuses: Array<{
615
875
  id: string;
@@ -617,6 +877,14 @@ export declare class HyperdriveSigV4Service extends SigV4ApiClient {
617
877
  category?: string;
618
878
  }>;
619
879
  }>;
880
+ jiraListProjects(): Promise<{
881
+ projects: Array<{
882
+ id?: string;
883
+ key?: string;
884
+ name?: string;
885
+ projectTypeKey?: string;
886
+ }>;
887
+ }>;
620
888
  jiraGetProjectStatuses(jiraProjectKey: string): Promise<{
621
889
  statuses: Array<{
622
890
  id: string;
@@ -639,6 +907,30 @@ export declare class HyperdriveSigV4Service extends SigV4ApiClient {
639
907
  };
640
908
  success: boolean;
641
909
  }>;
910
+ jiraStatus(): Promise<Record<string, unknown>>;
911
+ trackerProjectCreate(data: TrackerProjectCreateRequest): Promise<TrackerProject>;
912
+ trackerProjectDelete(trackerProjectId: string): Promise<{
913
+ message: string;
914
+ }>;
915
+ trackerProjectHookCreate(trackerProjectId: string, body: HookCreateRequest): Promise<HookResponse>;
916
+ trackerProjectHookCreateV2(trackerProjectId: string, body: HookCreateRequestV2): Promise<TrackerHookResponseV2>;
917
+ trackerProjectHookDelete(trackerProjectId: string, hookId: string): Promise<{
918
+ message: string;
919
+ }>;
920
+ trackerProjectHookList(trackerProjectId: string): Promise<TrackerHookListResponseV2>;
921
+ trackerProjectHookLogList(trackerProjectId: string, options?: {
922
+ limit?: number;
923
+ status?: string;
924
+ }): Promise<HookLogListResponse>;
925
+ trackerProjectHookUpdate(trackerProjectId: string, hookId: string, body: Partial<HookCreateRequest> & {
926
+ enabled?: boolean;
927
+ }): Promise<TrackerHookResponseV2>;
928
+ trackerProjectLinkModule(trackerProjectId: string, data: TrackerProjectModuleLinkRequest): Promise<TrackerProjectModuleLink>;
929
+ trackerProjectList(): Promise<TrackerProject[]>;
930
+ trackerProjectListModules(trackerProjectId: string): Promise<TrackerProjectModuleLink[]>;
931
+ trackerProjectUnlinkModule(trackerProjectId: string, moduleId: string): Promise<void>;
932
+ trackerProjectGet(trackerProjectId: string): Promise<TrackerProject>;
933
+ trackerProjectGetContext(trackerProjectId: string): Promise<TrackerProjectContextResponse>;
642
934
  projectAddRepo(projectId: string, repo: {
643
935
  defaultBranch: string;
644
936
  gitProvider: string;
@@ -762,6 +1054,10 @@ export declare class HyperdriveSigV4Service extends SigV4ApiClient {
762
1054
  parameters: Record<string, boolean>;
763
1055
  targetSlug: string;
764
1056
  }): Promise<ModuleResponse>;
1057
+ moduleUnlink(params: {
1058
+ originSlug: string;
1059
+ targetSlug: string;
1060
+ }): Promise<ModuleResponse>;
765
1061
  moduleList(): Promise<ModuleResponse[]>;
766
1062
  moduleReanalyze(slug: string, userPrompt: string): Promise<{
767
1063
  jobId: string;
@@ -770,18 +1066,43 @@ export declare class HyperdriveSigV4Service extends SigV4ApiClient {
770
1066
  projectId: string;
771
1067
  status: string;
772
1068
  }>;
1069
+ moduleUpdateContext(moduleSlug: string, data: {
1070
+ architectureSummary: string;
1071
+ entityRegistry: Array<{
1072
+ description?: string;
1073
+ name: string;
1074
+ path: string;
1075
+ repository?: string;
1076
+ type: string;
1077
+ }>;
1078
+ lastSyncedAt: string;
1079
+ }): Promise<Record<string, unknown>>;
773
1080
  moduleUpdate(params: {
774
1081
  buildCommand?: string;
775
1082
  buildFolder?: string;
776
1083
  buildRuntime?: string;
777
1084
  buildRuntimeVersion?: string;
778
1085
  ciService?: string;
1086
+ dependsOn?: Array<{
1087
+ artifactKey: string;
1088
+ downloadTo: string;
1089
+ }>;
1090
+ deployCommand?: string;
1091
+ deploymentStrategy?: string;
1092
+ dockerBuild?: Record<string, unknown>;
779
1093
  framework?: string;
780
1094
  installCommand?: string;
781
1095
  moduleType?: 'backend' | 'frontend' | 'cdk';
782
1096
  name?: string;
1097
+ postDeployCommand?: string;
1098
+ postDeployFailureMode?: 'fail' | 'warn';
783
1099
  runCommand?: string;
784
1100
  runtime?: string;
1101
+ runtimeConfig?: {
1102
+ memory?: number;
1103
+ timeout?: number;
1104
+ };
1105
+ runtimeMode?: string;
785
1106
  runtimeVersion?: string;
786
1107
  slug: string;
787
1108
  sourceLocation?: string;
@@ -840,6 +1161,19 @@ export declare class HyperdriveSigV4Service extends SigV4ApiClient {
840
1161
  }>;
841
1162
  parameterSync(params: {
842
1163
  accountId: string;
1164
+ /**
1165
+ * When true, after writing to DDB the backend also updates each Lambda
1166
+ * function bound to the module/stage with the new env vars. Existing env
1167
+ * vars not present in the sync are preserved (read current → merge →
1168
+ * UpdateFunctionConfiguration). See API-111 AC5.
1169
+ */
1170
+ applyToLambda?: boolean;
1171
+ /**
1172
+ * When true, the backend computes the DDB and Lambda diff but does not
1173
+ * write either. Status response surfaces `lambdaUpdates` with
1174
+ * `applied: false` so the CLI can preview the change set.
1175
+ */
1176
+ dryRun?: boolean;
843
1177
  encodedContent: string;
844
1178
  projectSlug?: string;
845
1179
  specific: boolean;
@@ -872,6 +1206,27 @@ export declare class HyperdriveSigV4Service extends SigV4ApiClient {
872
1206
  name: string;
873
1207
  }): Promise<StageResponse>;
874
1208
  stageList(): Promise<StageResponse[]>;
1209
+ stageGetDeployManifest(stageName: string): Promise<DeployManifestApiResponse>;
1210
+ stageDeploy(params: {
1211
+ stageName: string;
1212
+ mode: 'retry' | 'module';
1213
+ moduleSlug?: string;
1214
+ }): Promise<StageDeployResponse>;
1215
+ stageDelete(stageName: string, force?: boolean): Promise<{
1216
+ stage: StageResponse;
1217
+ cleanup: 'queued';
1218
+ } | {
1219
+ stage: StageResponse;
1220
+ stacks: {
1221
+ stacksDeleted: string[];
1222
+ errors: string[];
1223
+ };
1224
+ logGroups?: {
1225
+ deleted: number;
1226
+ errors: string[];
1227
+ };
1228
+ domainTeardown?: string;
1229
+ }>;
875
1230
  stageAccessGet(stageName: string): Promise<{
876
1231
  access: Array<{
877
1232
  role: string;