@treeseed/sdk 0.10.24 → 0.10.26

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 (39) hide show
  1. package/dist/index.d.ts +12 -2
  2. package/dist/index.js +42 -1
  3. package/dist/market-client.d.ts +23 -0
  4. package/dist/market-client.js +30 -0
  5. package/dist/operations/providers/default.js +103 -10
  6. package/dist/operations/repository-operations.d.ts +6 -1
  7. package/dist/operations/repository-operations.js +44 -0
  8. package/dist/operations/services/config-runtime.d.ts +24 -9
  9. package/dist/operations/services/config-runtime.js +60 -12
  10. package/dist/operations/services/deploy.js +6 -1
  11. package/dist/operations/services/hub-launch.js +1 -0
  12. package/dist/operations/services/hub-provider-launch.d.ts +11 -1
  13. package/dist/operations/services/hub-provider-launch.js +81 -8
  14. package/dist/operations/services/project-host-operations.d.ts +153 -0
  15. package/dist/operations/services/project-host-operations.js +365 -0
  16. package/dist/operations/services/project-platform.d.ts +198 -193
  17. package/dist/operations/services/project-platform.js +29 -14
  18. package/dist/operations/services/railway-deploy.d.ts +3 -0
  19. package/dist/operations/services/railway-deploy.js +74 -35
  20. package/dist/operations/services/release-candidate.js +8 -2
  21. package/dist/operations/services/template-host-bindings.d.ts +68 -0
  22. package/dist/operations/services/template-host-bindings.js +400 -0
  23. package/dist/operations/services/template-registry.d.ts +22 -2
  24. package/dist/operations/services/template-registry.js +60 -3
  25. package/dist/operations/services/template-secret-sync.d.ts +97 -0
  26. package/dist/operations/services/template-secret-sync.js +292 -0
  27. package/dist/platform/environment.d.ts +3 -0
  28. package/dist/project-workflow.d.ts +7 -1
  29. package/dist/scripts/scaffold-site.js +3 -2
  30. package/dist/scripts/test-scaffold.js +2 -1
  31. package/dist/sdk-types.d.ts +87 -0
  32. package/dist/sdk-types.js +29 -0
  33. package/dist/template-catalog.js +3 -1
  34. package/dist/template-launch-requirements.d.ts +118 -0
  35. package/dist/template-launch-requirements.js +759 -0
  36. package/dist/template-launch-ui.d.ts +85 -0
  37. package/dist/template-launch-ui.js +189 -0
  38. package/dist/treeseed/template-catalog/catalog.fixture.json +330 -3
  39. package/package.json +13 -1
@@ -97,54 +97,6 @@ export declare function deployProjectPlatform(options: ProjectPlatformActionOpti
97
97
  ok: true;
98
98
  target: any;
99
99
  checks: {
100
- r2: {
101
- ok: boolean;
102
- skipped: boolean;
103
- reason: string;
104
- objectKey?: undefined;
105
- } | {
106
- ok: boolean;
107
- objectKey: string;
108
- skipped?: undefined;
109
- reason?: undefined;
110
- } | {
111
- ok: boolean;
112
- skipped: boolean;
113
- reason: string;
114
- };
115
- queue: {
116
- ok: boolean;
117
- skipped: boolean;
118
- reason: string;
119
- messageId?: undefined;
120
- detail?: undefined;
121
- attempts?: undefined;
122
- } | {
123
- ok: boolean;
124
- skipped: boolean;
125
- reason: string;
126
- messageId: string;
127
- detail: string;
128
- attempts?: undefined;
129
- } | {
130
- ok: boolean;
131
- reason: string;
132
- skipped?: undefined;
133
- messageId?: undefined;
134
- detail?: undefined;
135
- attempts?: undefined;
136
- } | {
137
- ok: boolean;
138
- messageId: string;
139
- attempts: number;
140
- skipped?: undefined;
141
- reason?: undefined;
142
- detail?: undefined;
143
- } | {
144
- ok: boolean;
145
- skipped: boolean;
146
- reason: string;
147
- };
148
100
  pages: {
149
101
  ok: boolean;
150
102
  status: number | null;
@@ -196,6 +148,54 @@ export declare function deployProjectPlatform(options: ProjectPlatformActionOpti
196
148
  skipped: boolean;
197
149
  reason: string;
198
150
  };
151
+ r2: {
152
+ ok: boolean;
153
+ skipped: boolean;
154
+ reason: string;
155
+ objectKey?: undefined;
156
+ } | {
157
+ ok: boolean;
158
+ objectKey: string;
159
+ skipped?: undefined;
160
+ reason?: undefined;
161
+ } | {
162
+ ok: boolean;
163
+ skipped: boolean;
164
+ reason: string;
165
+ };
166
+ queue: {
167
+ ok: boolean;
168
+ skipped: boolean;
169
+ reason: string;
170
+ messageId?: undefined;
171
+ detail?: undefined;
172
+ attempts?: undefined;
173
+ } | {
174
+ ok: boolean;
175
+ skipped: boolean;
176
+ reason: string;
177
+ messageId: string;
178
+ detail: string;
179
+ attempts?: undefined;
180
+ } | {
181
+ ok: boolean;
182
+ reason: string;
183
+ skipped?: undefined;
184
+ messageId?: undefined;
185
+ detail?: undefined;
186
+ attempts?: undefined;
187
+ } | {
188
+ ok: boolean;
189
+ messageId: string;
190
+ attempts: number;
191
+ skipped?: undefined;
192
+ reason?: undefined;
193
+ detail?: undefined;
194
+ } | {
195
+ ok: boolean;
196
+ skipped: boolean;
197
+ reason: string;
198
+ };
199
199
  scaleProbe: {
200
200
  ok: boolean;
201
201
  mocked: boolean;
@@ -272,6 +272,7 @@ export declare function deployProjectPlatform(options: ProjectPlatformActionOpti
272
272
  command: string;
273
273
  cwd: any;
274
274
  publicBaseUrl: any;
275
+ timings: TreeseedTimingEntry[];
275
276
  runtimeConfiguration?: undefined;
276
277
  } | {
277
278
  service: any;
@@ -279,6 +280,7 @@ export declare function deployProjectPlatform(options: ProjectPlatformActionOpti
279
280
  command: string;
280
281
  cwd: any;
281
282
  publicBaseUrl: any;
283
+ timings: TreeseedTimingEntry[];
282
284
  runtimeConfiguration: {
283
285
  updated: boolean;
284
286
  healthcheckPath: string | null;
@@ -295,9 +297,10 @@ export declare function deployProjectPlatform(options: ProjectPlatformActionOpti
295
297
  } | undefined)[];
296
298
  timings: TreeseedTimingEntry[];
297
299
  }>;
298
- export declare function resolveRailwayServiceDeployDependencies({ includeDataDependency, previousRailwayDeployNodeId, }: {
300
+ export declare function resolveRailwayServiceDeployDependencies({ includeDataDependency, previousRailwayDeployNodeId, sequentialRailwayDeploys, }: {
299
301
  includeDataDependency: boolean;
300
302
  previousRailwayDeployNodeId?: string | null;
303
+ sequentialRailwayDeploys?: boolean;
301
304
  }): string[];
302
305
  export declare function publishProjectContent(options: ProjectPlatformActionOptions): Promise<{
303
306
  ok: boolean;
@@ -312,54 +315,6 @@ export declare function monitorProjectPlatform(options: ProjectPlatformActionOpt
312
315
  ok: true;
313
316
  target: any;
314
317
  checks: {
315
- r2: {
316
- ok: boolean;
317
- skipped: boolean;
318
- reason: string;
319
- objectKey?: undefined;
320
- } | {
321
- ok: boolean;
322
- objectKey: string;
323
- skipped?: undefined;
324
- reason?: undefined;
325
- } | {
326
- ok: boolean;
327
- skipped: boolean;
328
- reason: string;
329
- };
330
- queue: {
331
- ok: boolean;
332
- skipped: boolean;
333
- reason: string;
334
- messageId?: undefined;
335
- detail?: undefined;
336
- attempts?: undefined;
337
- } | {
338
- ok: boolean;
339
- skipped: boolean;
340
- reason: string;
341
- messageId: string;
342
- detail: string;
343
- attempts?: undefined;
344
- } | {
345
- ok: boolean;
346
- reason: string;
347
- skipped?: undefined;
348
- messageId?: undefined;
349
- detail?: undefined;
350
- attempts?: undefined;
351
- } | {
352
- ok: boolean;
353
- messageId: string;
354
- attempts: number;
355
- skipped?: undefined;
356
- reason?: undefined;
357
- detail?: undefined;
358
- } | {
359
- ok: boolean;
360
- skipped: boolean;
361
- reason: string;
362
- };
363
318
  pages: {
364
319
  ok: boolean;
365
320
  status: number | null;
@@ -411,6 +366,54 @@ export declare function monitorProjectPlatform(options: ProjectPlatformActionOpt
411
366
  skipped: boolean;
412
367
  reason: string;
413
368
  };
369
+ r2: {
370
+ ok: boolean;
371
+ skipped: boolean;
372
+ reason: string;
373
+ objectKey?: undefined;
374
+ } | {
375
+ ok: boolean;
376
+ objectKey: string;
377
+ skipped?: undefined;
378
+ reason?: undefined;
379
+ } | {
380
+ ok: boolean;
381
+ skipped: boolean;
382
+ reason: string;
383
+ };
384
+ queue: {
385
+ ok: boolean;
386
+ skipped: boolean;
387
+ reason: string;
388
+ messageId?: undefined;
389
+ detail?: undefined;
390
+ attempts?: undefined;
391
+ } | {
392
+ ok: boolean;
393
+ skipped: boolean;
394
+ reason: string;
395
+ messageId: string;
396
+ detail: string;
397
+ attempts?: undefined;
398
+ } | {
399
+ ok: boolean;
400
+ reason: string;
401
+ skipped?: undefined;
402
+ messageId?: undefined;
403
+ detail?: undefined;
404
+ attempts?: undefined;
405
+ } | {
406
+ ok: boolean;
407
+ messageId: string;
408
+ attempts: number;
409
+ skipped?: undefined;
410
+ reason?: undefined;
411
+ detail?: undefined;
412
+ } | {
413
+ ok: boolean;
414
+ skipped: boolean;
415
+ reason: string;
416
+ };
414
417
  scaleProbe: {
415
418
  ok: boolean;
416
419
  mocked: boolean;
@@ -478,54 +481,6 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
478
481
  ok: true;
479
482
  target: any;
480
483
  checks: {
481
- r2: {
482
- ok: boolean;
483
- skipped: boolean;
484
- reason: string;
485
- objectKey?: undefined;
486
- } | {
487
- ok: boolean;
488
- objectKey: string;
489
- skipped?: undefined;
490
- reason?: undefined;
491
- } | {
492
- ok: boolean;
493
- skipped: boolean;
494
- reason: string;
495
- };
496
- queue: {
497
- ok: boolean;
498
- skipped: boolean;
499
- reason: string;
500
- messageId?: undefined;
501
- detail?: undefined;
502
- attempts?: undefined;
503
- } | {
504
- ok: boolean;
505
- skipped: boolean;
506
- reason: string;
507
- messageId: string;
508
- detail: string;
509
- attempts?: undefined;
510
- } | {
511
- ok: boolean;
512
- reason: string;
513
- skipped?: undefined;
514
- messageId?: undefined;
515
- detail?: undefined;
516
- attempts?: undefined;
517
- } | {
518
- ok: boolean;
519
- messageId: string;
520
- attempts: number;
521
- skipped?: undefined;
522
- reason?: undefined;
523
- detail?: undefined;
524
- } | {
525
- ok: boolean;
526
- skipped: boolean;
527
- reason: string;
528
- };
529
484
  pages: {
530
485
  ok: boolean;
531
486
  status: number | null;
@@ -577,6 +532,54 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
577
532
  skipped: boolean;
578
533
  reason: string;
579
534
  };
535
+ r2: {
536
+ ok: boolean;
537
+ skipped: boolean;
538
+ reason: string;
539
+ objectKey?: undefined;
540
+ } | {
541
+ ok: boolean;
542
+ objectKey: string;
543
+ skipped?: undefined;
544
+ reason?: undefined;
545
+ } | {
546
+ ok: boolean;
547
+ skipped: boolean;
548
+ reason: string;
549
+ };
550
+ queue: {
551
+ ok: boolean;
552
+ skipped: boolean;
553
+ reason: string;
554
+ messageId?: undefined;
555
+ detail?: undefined;
556
+ attempts?: undefined;
557
+ } | {
558
+ ok: boolean;
559
+ skipped: boolean;
560
+ reason: string;
561
+ messageId: string;
562
+ detail: string;
563
+ attempts?: undefined;
564
+ } | {
565
+ ok: boolean;
566
+ reason: string;
567
+ skipped?: undefined;
568
+ messageId?: undefined;
569
+ detail?: undefined;
570
+ attempts?: undefined;
571
+ } | {
572
+ ok: boolean;
573
+ messageId: string;
574
+ attempts: number;
575
+ skipped?: undefined;
576
+ reason?: undefined;
577
+ detail?: undefined;
578
+ } | {
579
+ ok: boolean;
580
+ skipped: boolean;
581
+ reason: string;
582
+ };
580
583
  scaleProbe: {
581
584
  ok: boolean;
582
585
  mocked: boolean;
@@ -637,54 +640,6 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
637
640
  ok: true;
638
641
  target: any;
639
642
  checks: {
640
- r2: {
641
- ok: boolean;
642
- skipped: boolean;
643
- reason: string;
644
- objectKey?: undefined;
645
- } | {
646
- ok: boolean;
647
- objectKey: string;
648
- skipped?: undefined;
649
- reason?: undefined;
650
- } | {
651
- ok: boolean;
652
- skipped: boolean;
653
- reason: string;
654
- };
655
- queue: {
656
- ok: boolean;
657
- skipped: boolean;
658
- reason: string;
659
- messageId?: undefined;
660
- detail?: undefined;
661
- attempts?: undefined;
662
- } | {
663
- ok: boolean;
664
- skipped: boolean;
665
- reason: string;
666
- messageId: string;
667
- detail: string;
668
- attempts?: undefined;
669
- } | {
670
- ok: boolean;
671
- reason: string;
672
- skipped?: undefined;
673
- messageId?: undefined;
674
- detail?: undefined;
675
- attempts?: undefined;
676
- } | {
677
- ok: boolean;
678
- messageId: string;
679
- attempts: number;
680
- skipped?: undefined;
681
- reason?: undefined;
682
- detail?: undefined;
683
- } | {
684
- ok: boolean;
685
- skipped: boolean;
686
- reason: string;
687
- };
688
643
  pages: {
689
644
  ok: boolean;
690
645
  status: number | null;
@@ -736,6 +691,54 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
736
691
  skipped: boolean;
737
692
  reason: string;
738
693
  };
694
+ r2: {
695
+ ok: boolean;
696
+ skipped: boolean;
697
+ reason: string;
698
+ objectKey?: undefined;
699
+ } | {
700
+ ok: boolean;
701
+ objectKey: string;
702
+ skipped?: undefined;
703
+ reason?: undefined;
704
+ } | {
705
+ ok: boolean;
706
+ skipped: boolean;
707
+ reason: string;
708
+ };
709
+ queue: {
710
+ ok: boolean;
711
+ skipped: boolean;
712
+ reason: string;
713
+ messageId?: undefined;
714
+ detail?: undefined;
715
+ attempts?: undefined;
716
+ } | {
717
+ ok: boolean;
718
+ skipped: boolean;
719
+ reason: string;
720
+ messageId: string;
721
+ detail: string;
722
+ attempts?: undefined;
723
+ } | {
724
+ ok: boolean;
725
+ reason: string;
726
+ skipped?: undefined;
727
+ messageId?: undefined;
728
+ detail?: undefined;
729
+ attempts?: undefined;
730
+ } | {
731
+ ok: boolean;
732
+ messageId: string;
733
+ attempts: number;
734
+ skipped?: undefined;
735
+ reason?: undefined;
736
+ detail?: undefined;
737
+ } | {
738
+ ok: boolean;
739
+ skipped: boolean;
740
+ reason: string;
741
+ };
739
742
  scaleProbe: {
740
743
  ok: boolean;
741
744
  mocked: boolean;
@@ -812,6 +815,7 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
812
815
  command: string;
813
816
  cwd: any;
814
817
  publicBaseUrl: any;
818
+ timings: TreeseedTimingEntry[];
815
819
  runtimeConfiguration?: undefined;
816
820
  } | {
817
821
  service: any;
@@ -819,6 +823,7 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
819
823
  command: string;
820
824
  cwd: any;
821
825
  publicBaseUrl: any;
826
+ timings: TreeseedTimingEntry[];
822
827
  runtimeConfiguration: {
823
828
  updated: boolean;
824
829
  healthcheckPath: string | null;
@@ -1320,6 +1320,7 @@ async function deployProjectPlatform(options) {
1320
1320
  const selectedServices = validation.services.filter(
1321
1321
  (service) => service.key === "api" ? selectedSystems.has("api") : selectedSystems.has("agents")
1322
1322
  );
1323
+ const sequentialRailwayDeploys = String(env.TREESEED_RAILWAY_DEPLOY_SEQUENTIAL ?? "").trim() === "1";
1323
1324
  let previousRailwayDeployNodeId = null;
1324
1325
  for (const service of selectedServices) {
1325
1326
  const system = service.key === "api" ? "api" : "agents";
@@ -1329,7 +1330,8 @@ async function deployProjectPlatform(options) {
1329
1330
  id: nodeId,
1330
1331
  dependencies: resolveRailwayServiceDeployDependencies({
1331
1332
  includeDataDependency: selectedSystems.has("data"),
1332
- previousRailwayDeployNodeId
1333
+ previousRailwayDeployNodeId,
1334
+ sequentialRailwayDeploys
1333
1335
  }),
1334
1336
  run: async () => {
1335
1337
  const result = await deployRailwayService(options.tenantRoot, service, {
@@ -1347,7 +1349,9 @@ async function deployProjectPlatform(options) {
1347
1349
  return result;
1348
1350
  }
1349
1351
  });
1350
- previousRailwayDeployNodeId = nodeId;
1352
+ if (sequentialRailwayDeploys) {
1353
+ previousRailwayDeployNodeId = nodeId;
1354
+ }
1351
1355
  }
1352
1356
  }
1353
1357
  const managesRailwaySchedules = options.scope === "staging" || options.scope === "prod";
@@ -1381,6 +1385,9 @@ async function deployProjectPlatform(options) {
1381
1385
  }
1382
1386
  await runTreeseedBootstrapDag({ nodes, execution, write, timings });
1383
1387
  const serviceResults = selectedRailwayServiceKeys.map((serviceKey) => serviceResultsByKey.get(serviceKey)).filter(Boolean);
1388
+ for (const result of serviceResults) {
1389
+ timings.push(...result.timings ?? []);
1390
+ }
1384
1391
  if (options.scope !== "local" && !options.dryRun && (selectedSystems.has("web") || serviceResults.length > 0)) {
1385
1392
  finalizeDeploymentState(options.tenantRoot, {
1386
1393
  target: createPersistentDeployTarget(options.scope),
@@ -1434,11 +1441,12 @@ async function deployProjectPlatform(options) {
1434
1441
  }
1435
1442
  function resolveRailwayServiceDeployDependencies({
1436
1443
  includeDataDependency,
1437
- previousRailwayDeployNodeId
1444
+ previousRailwayDeployNodeId,
1445
+ sequentialRailwayDeploys = false
1438
1446
  }) {
1439
1447
  return [
1440
1448
  ...includeDataDependency ? ["data:d1-migrate"] : [],
1441
- ...previousRailwayDeployNodeId ? [previousRailwayDeployNodeId] : []
1449
+ ...sequentialRailwayDeploys && previousRailwayDeployNodeId ? [previousRailwayDeployNodeId] : []
1442
1450
  ];
1443
1451
  }
1444
1452
  async function publishProjectContent(options) {
@@ -1458,7 +1466,7 @@ async function monitorProjectPlatform(options) {
1458
1466
  const webProbeUrl = resolveImmediatePagesProbeUrl(siteConfig, state, target);
1459
1467
  const apiBaseUrl = resolveImmediateApiProbeUrl(siteConfig, state, target);
1460
1468
  const apiMonitorEndpoints = resolveApiMonitorEndpoints(siteConfig, apiBaseUrl);
1461
- const railwayResources = options.scope === "local" || !apiSelected && !agentsSelected ? { ok: true, skipped: true, reason: options.scope === "local" ? "local_scope" : "railway_not_selected" } : await timedPhase(timings, "monitor:railway-resources", () => verifyRailwayManagedResources(options.tenantRoot, options.scope, {
1469
+ const railwayResourcesPromise = options.scope === "local" || !apiSelected && !agentsSelected ? { ok: true, skipped: true, reason: options.scope === "local" ? "local_scope" : "railway_not_selected" } : timedPhase(timings, "monitor:railway-resources", () => verifyRailwayManagedResources(options.tenantRoot, options.scope, {
1462
1470
  env,
1463
1471
  settleDeployments: true,
1464
1472
  onProgress: options.write
@@ -1467,15 +1475,15 @@ async function monitorProjectPlatform(options) {
1467
1475
  const skippedAgentCheck = agentsSelected ? { ok: false, skipped: true, reason: "api_url_unconfigured" } : { ok: true, skipped: true, reason: "agents_not_selected" };
1468
1476
  const skippedD1Check = apiMonitorEndpoints.processingAgentApi ? { ok: true, skipped: true, reason: "processing_agent_api" } : skippedApiCheck;
1469
1477
  const checks = {
1470
- pages: await timedPhase(timings, "monitor:probe-pages", () => probeHttp(webProbeUrl, { attempts: 3, delayMs: 5e3 })),
1471
- apiHealth: apiSelected && apiMonitorEndpoints.apiHealth ? await timedPhase(timings, "monitor:probe-api-health", () => probeHttp(apiMonitorEndpoints.apiHealth, { attempts: 8, delayMs: 1e4 })) : skippedApiCheck,
1472
- apiReady: apiSelected && apiMonitorEndpoints.apiReady ? await timedPhase(timings, "monitor:probe-api-ready", () => probeHttp(apiMonitorEndpoints.apiReady, { attempts: 8, delayMs: 1e4 })) : skippedApiCheck,
1473
- d1Health: apiSelected && apiMonitorEndpoints.d1Health ? await timedPhase(timings, "monitor:probe-d1-health", () => probeHttp(apiMonitorEndpoints.d1Health, { attempts: 8, delayMs: 1e4 })) : skippedD1Check,
1474
- agentHealth: agentsSelected && apiMonitorEndpoints.agentHealth ? await timedPhase(timings, "monitor:probe-agent-health", () => probeHttp(apiMonitorEndpoints.agentHealth, { attempts: 8, delayMs: 1e4 })) : skippedAgentCheck,
1475
- r2: options.dryRun ? { ok: true, skipped: true, reason: "dry_run" } : timedPhase(timings, "monitor:probe-r2", () => probeR2(options.tenantRoot, siteConfig, state, target)),
1478
+ pages: timedPhase(timings, "monitor:probe-pages", () => probeHttp(webProbeUrl, { attempts: 3, delayMs: 5e3 })),
1479
+ apiHealth: apiSelected && apiMonitorEndpoints.apiHealth ? timedPhase(timings, "monitor:probe-api-health", () => probeHttp(apiMonitorEndpoints.apiHealth, { attempts: 8, delayMs: 1e4 })) : Promise.resolve(skippedApiCheck),
1480
+ apiReady: apiSelected && apiMonitorEndpoints.apiReady ? timedPhase(timings, "monitor:probe-api-ready", () => probeHttp(apiMonitorEndpoints.apiReady, { attempts: 8, delayMs: 1e4 })) : Promise.resolve(skippedApiCheck),
1481
+ d1Health: apiSelected && apiMonitorEndpoints.d1Health ? timedPhase(timings, "monitor:probe-d1-health", () => probeHttp(apiMonitorEndpoints.d1Health, { attempts: 8, delayMs: 1e4 })) : Promise.resolve(skippedD1Check),
1482
+ agentHealth: agentsSelected && apiMonitorEndpoints.agentHealth ? timedPhase(timings, "monitor:probe-agent-health", () => probeHttp(apiMonitorEndpoints.agentHealth, { attempts: 8, delayMs: 1e4 })) : Promise.resolve(skippedAgentCheck),
1483
+ r2: options.dryRun ? Promise.resolve({ ok: true, skipped: true, reason: "dry_run" }) : timedPhase(timings, "monitor:probe-r2", () => probeR2(options.tenantRoot, siteConfig, state, target)),
1476
1484
  queue: options.dryRun ? Promise.resolve({ ok: true, skipped: true, reason: "dry_run" }) : timedPhase(timings, "monitor:probe-queue", () => probeQueue(siteConfig, state)),
1477
- scaleProbe: await timedPhase(timings, "monitor:probe-scale", () => probeScaleConfiguration(siteConfig, state)),
1478
- railwayResources,
1485
+ scaleProbe: timedPhase(timings, "monitor:probe-scale", () => probeScaleConfiguration(siteConfig, state)),
1486
+ railwayResources: Promise.resolve(railwayResourcesPromise),
1479
1487
  readiness: state.readiness,
1480
1488
  apiMonitor: {
1481
1489
  ok: true,
@@ -1485,8 +1493,15 @@ async function monitorProjectPlatform(options) {
1485
1493
  };
1486
1494
  const resolvedChecks = {
1487
1495
  ...checks,
1496
+ pages: await checks.pages,
1497
+ apiHealth: await checks.apiHealth,
1498
+ apiReady: await checks.apiReady,
1499
+ d1Health: await checks.d1Health,
1500
+ agentHealth: await checks.agentHealth,
1488
1501
  r2: await checks.r2,
1489
- queue: await checks.queue
1502
+ queue: await checks.queue,
1503
+ scaleProbe: await checks.scaleProbe,
1504
+ railwayResources: await checks.railwayResources
1490
1505
  };
1491
1506
  const ok = [
1492
1507
  resolvedChecks.pages,
@@ -1,4 +1,5 @@
1
1
  import { type TreeseedBootstrapTaskPrefix, type TreeseedBootstrapWriter } from './bootstrap-runner.ts';
2
+ import { type TreeseedTimingEntry } from '../../timing.ts';
2
3
  export declare function deriveRailwayWorkerRunnerServiceName(projectSlug: any, index?: number): string;
3
4
  export declare function deriveRailwayMarketOperationsRunnerServiceName(baseServiceName: any, index?: number): string;
4
5
  export declare function deriveRailwayWorkerRunnerVolumeName(serviceName: any, environmentName?: string): string;
@@ -211,6 +212,7 @@ export declare function deployRailwayService(tenantRoot: any, service: any, { dr
211
212
  command: string;
212
213
  cwd: any;
213
214
  publicBaseUrl: any;
215
+ timings: TreeseedTimingEntry[];
214
216
  runtimeConfiguration?: undefined;
215
217
  } | {
216
218
  service: any;
@@ -218,6 +220,7 @@ export declare function deployRailwayService(tenantRoot: any, service: any, { dr
218
220
  command: string;
219
221
  cwd: any;
220
222
  publicBaseUrl: any;
223
+ timings: TreeseedTimingEntry[];
221
224
  runtimeConfiguration: {
222
225
  updated: boolean;
223
226
  healthcheckPath: string | null;