@cat-factory/orchestration 0.302.1 → 0.303.0

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 (31) hide show
  1. package/dist/container/dependencies.d.ts +8 -1
  2. package/dist/container/dependencies.d.ts.map +1 -1
  3. package/dist/container/environmentsModule.factory.d.ts +2 -0
  4. package/dist/container/environmentsModule.factory.d.ts.map +1 -1
  5. package/dist/container/environmentsModule.factory.js +17 -0
  6. package/dist/container/environmentsModule.factory.js.map +1 -1
  7. package/dist/container/modules.d.ts +23 -3
  8. package/dist/container/modules.d.ts.map +1 -1
  9. package/dist/container/modules.js +61 -1
  10. package/dist/container/modules.js.map +1 -1
  11. package/dist/container/platform-modules.d.ts +6 -0
  12. package/dist/container/platform-modules.d.ts.map +1 -1
  13. package/dist/container/platform-modules.js +2 -2
  14. package/dist/container/platform-modules.js.map +1 -1
  15. package/dist/container.d.ts +1 -1
  16. package/dist/container.d.ts.map +1 -1
  17. package/dist/container.js +5 -37
  18. package/dist/container.js.map +1 -1
  19. package/dist/index.d.ts +1 -0
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +1 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/modules/environments/EnvironmentTestService.d.ts +95 -2
  24. package/dist/modules/environments/EnvironmentTestService.d.ts.map +1 -1
  25. package/dist/modules/environments/EnvironmentTestService.js +219 -7
  26. package/dist/modules/environments/EnvironmentTestService.js.map +1 -1
  27. package/dist/modules/environments/environmentProbeStage.d.ts +85 -0
  28. package/dist/modules/environments/environmentProbeStage.d.ts.map +1 -0
  29. package/dist/modules/environments/environmentProbeStage.js +181 -0
  30. package/dist/modules/environments/environmentProbeStage.js.map +1 -0
  31. package/package.json +12 -12
@@ -1,30 +1,44 @@
1
- import { assertFound, ConflictError, describeTerminalEnvironment, getErrorMessage, NotFoundError, requireWorkspace, } from '@cat-factory/kernel';
1
+ import { assertFound, ConflictError, describeTerminalEnvironment, getErrorMessage, NotFoundError, noopLogger, requireWorkspace, runBestEffort, } from '@cat-factory/kernel';
2
2
  function toRun(record) {
3
3
  return {
4
4
  id: record.id,
5
5
  workspaceId: record.workspaceId,
6
6
  blockId: record.blockId,
7
+ mode: record.mode,
7
8
  status: record.status,
8
9
  stage: record.stage,
9
10
  branch: record.branch,
10
11
  envUrl: record.envUrl,
11
12
  error: record.error,
12
13
  failedStage: record.failedStage,
14
+ probe: record.probe,
15
+ probeProgress: record.probeProgress,
13
16
  createdAt: record.createdAt,
14
17
  updatedAt: record.updatedAt,
15
18
  };
16
19
  }
17
20
  // ---------------------------------------------------------------------------
18
- // EnvironmentTestService — the ephemeral-environment SELF-TEST run.
21
+ // EnvironmentTestService: the ephemeral-environment SELF-TEST run, in two modes.
19
22
  //
20
23
  // A developer-triggered diagnostic that exercises a service frame's configured
21
24
  // provisioning end to end against a THROWAWAY branch and always cleans up:
22
- // creating_branch → provisioning → tearing_down → deleting_branch → done
25
+ // creating_branch → provisioning → [probing] → tearing_down → deleting_branch → done
23
26
  // (or `failed` with the stage it failed at). It touches no board block and
24
27
  // leaves no branch/env behind. Modelled like a bootstrap run: `startTest`
25
28
  // does the fast up-front work + dispatch and hands off to the durable driver;
26
29
  // `pollEnvTest` advances the state machine idempotently so replays are safe.
27
30
  //
31
+ // `probing` is the AGENT DRY RUN (`mode: 'agent-probe'`): the environment is handed to a prober
32
+ // that tries to OPERATE the service and reports what it managed and what it could not work out
33
+ // (see `environmentProbeStage.ts`). It is ONE state machine rather than two services on purpose:
34
+ // the always-cleans-up contract, the stop⇄driver race guard and the sweeper are the hard parts of
35
+ // this flow, and a second implementation of them is a second set of ways to strand an
36
+ // environment. The extra mode costs one stage, one claim field and one report field.
37
+ //
38
+ // The run's `status` stays a statement about the LIFECYCLE in both modes: a dry run that reports
39
+ // `inoperable` SUCCEEDED, because the diagnostic did its job and cleaned up. What the agent found
40
+ // is the report's own `verdict`; see the contract's note on `status`.
41
+ //
28
42
  // Repo/registry isolation (see EnvironmentProvisioningService): provisioning
29
43
  // resolves the repo from `frameId ?? blockId`, and `recordProvisioned`
30
44
  // supersedes any prior env for the `(blockId, frameId)` pair. So the run passes
@@ -43,8 +57,14 @@ function toRun(record) {
43
57
  // ---------------------------------------------------------------------------
44
58
  export class EnvironmentTestService {
45
59
  deps;
60
+ /**
61
+ * The injected logger, normalised once so every site can log unconditionally (and so
62
+ * `runBestEffort`, which requires one, can be used at all). See CLAUDE.md's logging rules.
63
+ */
64
+ log;
46
65
  constructor(deps) {
47
66
  this.deps = deps;
67
+ this.log = deps.logger ?? noopLogger;
48
68
  }
49
69
  /** The synthetic provisioning block id for a run (registry-key + namespace isolation). */
50
70
  provisionBlockId(runId) {
@@ -67,8 +87,16 @@ export class EnvironmentTestService {
67
87
  * connected) throw as 409s BEFORE any record exists; after the record is inserted,
68
88
  * every failure runs best-effort cleanup and returns the run already `failed`.
69
89
  */
70
- async startTest(workspaceId, blockId, initiatedBy) {
90
+ async startTest(workspaceId, blockId, initiatedBy, mode = 'provision') {
71
91
  await requireWorkspace(this.deps.workspaceRepository, workspaceId);
92
+ // Refuse an agent dry run this deployment cannot drive BEFORE anything is provisioned. A run
93
+ // admitted here would create a branch, stand an environment up and then park at a stage with
94
+ // nothing to advance it, until the sweeper tore the whole thing down with a timeout for a
95
+ // reason (a wiring gap) that was knowable before a single side effect.
96
+ if (mode === 'agent-probe' && !this.deps.probeStage) {
97
+ throw new ConflictError('Agent dry runs are not available on this deployment: they need a container runner, a ' +
98
+ 'connected repository and a model the LLM proxy can serve.', 'env_test_probe_unavailable');
99
+ }
72
100
  const frame = assertFound(await this.deps.blockRepository.get(workspaceId, blockId), 'Block', blockId);
73
101
  if (frame.level !== 'frame') {
74
102
  throw new ConflictError('Environment tests run against a service frame, not a task or module.', 'env_test_not_a_frame');
@@ -77,6 +105,17 @@ export class EnvironmentTestService {
77
105
  if (!provisioning || provisioning.type === 'infraless') {
78
106
  throw new ConflictError('This service has no ephemeral-environment provisioning configured to test.', 'env_test_infraless');
79
107
  }
108
+ // ONE self-test at a time per frame, whichever mode. Each run provisions its own environment
109
+ // under a synthetic per-run key that nothing supersedes or sweeps, so two in flight is two live
110
+ // environments for one service: billed twice, and racing each other to create on any provider
111
+ // whose namespace is derived per service rather than per branch. Enforced here rather than in
112
+ // the SPA's button state, which is per mode and per tab and so cannot see the other run.
113
+ const live = (await this.deps.environmentTestRunRepository.listRunningByWorkspace(workspaceId)).find((row) => row.blockId === blockId);
114
+ if (live) {
115
+ throw new ConflictError('A self-test is already running for this service. Wait for it to finish, or stop it first.', 'env_test_already_running', { runId: live.id, runMode: live.mode });
116
+ }
117
+ if (mode === 'agent-probe')
118
+ await this.assertProbeAdmissible(workspaceId, frame, initiatedBy);
80
119
  const gate = await this.deps.provisioning.canProvision(workspaceId, provisioning, initiatedBy);
81
120
  if (!gate.ok) {
82
121
  throw new ConflictError('This service’s provisioning cannot run yet — configure its environment handler first.', 'env_test_not_provisionable',
@@ -107,6 +146,7 @@ export class EnvironmentTestService {
107
146
  id: this.deps.idGenerator.next('envtest'),
108
147
  workspaceId,
109
148
  blockId,
149
+ mode,
110
150
  status: 'running',
111
151
  stage: 'creating_branch',
112
152
  initiatedBy: initiatedBy ?? null,
@@ -119,6 +159,10 @@ export class EnvironmentTestService {
119
159
  envUrl: null,
120
160
  error: null,
121
161
  failedStage: null,
162
+ probeSurface: null,
163
+ probeDispatchedAt: null,
164
+ probeProgress: null,
165
+ probe: null,
122
166
  createdAt: now,
123
167
  updatedAt: now,
124
168
  };
@@ -169,6 +213,55 @@ export class EnvironmentTestService {
169
213
  return this.fail(record, getErrorMessage(error), error);
170
214
  }
171
215
  }
216
+ /**
217
+ * The two gates an AGENT DRY RUN answers to beyond the provisioning self-test's, both asked
218
+ * BEFORE the first side effect, because both are knowable then and neither is knowable cheaply
219
+ * afterwards.
220
+ *
221
+ * A wired prober is not the same question as a runnable one: each surface runs on its own
222
+ * executor image, so a deployment that binds the plain container class and not the browser one
223
+ * serves an `api` dry run and refuses a `ui` one deep inside `stage.dispatch`, after a branch, a
224
+ * full provision and (on the way back out) a teardown. And a workspace past its spend ceiling
225
+ * would pay for exactly the same sequence before the proxy refused the container's first
226
+ * completion.
227
+ */
228
+ async assertProbeAdmissible(workspaceId, frame, initiatedBy) {
229
+ const stage = this.deps.probeStage;
230
+ if (!stage)
231
+ return;
232
+ const surface = stage.surfaceFor(frame);
233
+ if (!(await stage.supports(workspaceId, surface))) {
234
+ throw new ConflictError(surface === 'ui'
235
+ ? 'A dry run for a frontend service runs in a browser container, and this deployment ' +
236
+ 'has no browser executor image wired. Dry runs of its backend services still run.'
237
+ : 'This deployment has no executor image wired for an agent dry run of this service.', 'env_test_probe_unavailable', { surface });
238
+ }
239
+ if (await this.overBudget(workspaceId, initiatedBy)) {
240
+ throw new ConflictError('This workspace has reached a spend budget, and an agent dry run is a billable model ' +
241
+ 'call. Raise the budget (or wait for the billing period to reset) and try again; the ' +
242
+ 'provisioning self-test beside it costs nothing and still runs.', 'env_test_over_budget');
243
+ }
244
+ }
245
+ /**
246
+ * Whether the workspace is over its model budget. Fails CLOSED, as the monorepo survey's probe
247
+ * does: a ledger nobody can read is not a licence to spend against it.
248
+ */
249
+ async overBudget(workspaceId, initiatedBy) {
250
+ const probe = this.deps.isOverBudget;
251
+ if (!probe)
252
+ return false;
253
+ try {
254
+ return await probe(workspaceId);
255
+ }
256
+ catch (error) {
257
+ this.log.warn('environment dry run: budget probe failed; refusing the run', {
258
+ workspaceId,
259
+ initiatedBy: initiatedBy ?? null,
260
+ err: getErrorMessage(error),
261
+ });
262
+ return true;
263
+ }
264
+ }
172
265
  /**
173
266
  * Advance one running self-test by one stage (idempotent — a terminal run is returned
174
267
  * as-is, so the driver's retries/replays are safe). Returns the poll's terminal-ness.
@@ -189,6 +282,8 @@ export class EnvironmentTestService {
189
282
  throw new Error('The environment test did not finish starting (the start request was interrupted).');
190
283
  case 'provisioning':
191
284
  return await this.advanceProvisioning(record);
285
+ case 'probing':
286
+ return await this.advanceProbing(record);
192
287
  case 'tearing_down':
193
288
  return await this.advanceTeardown(record);
194
289
  case 'deleting_branch':
@@ -217,7 +312,7 @@ export class EnvironmentTestService {
217
312
  const handle = await this.deps.provisioning.refreshStatus(record.workspaceId, record.environmentId);
218
313
  if (handle.status === 'ready') {
219
314
  await this.patch(record, {
220
- stage: 'tearing_down',
315
+ stage: this.stageAfterProvisioning(record),
221
316
  ...(handle.url ? { envUrl: handle.url } : {}),
222
317
  });
223
318
  return { state: 'running' };
@@ -264,12 +359,124 @@ export class EnvironmentTestService {
264
359
  throw new Error(handle.lastError ?? 'Environment provisioning failed.');
265
360
  }
266
361
  await this.patch(record, {
267
- stage: 'tearing_down',
362
+ stage: this.stageAfterProvisioning(record),
268
363
  environmentId: handle.id,
269
364
  envUrl: handle.url,
270
365
  });
271
366
  return { state: 'running' };
272
367
  }
368
+ /**
369
+ * Where a run goes once its environment is up: straight to teardown, or through the dry run
370
+ * first. One helper rather than the ternary twice, because `advanceProvisioning` has two exits
371
+ * (the synchronous provider's readiness poll and the deploy job's finalize) and a mode honoured
372
+ * at only one of them is a dry run that silently skips the probe for half the providers.
373
+ */
374
+ stageAfterProvisioning(record) {
375
+ return record.mode === 'agent-probe' ? 'probing' : 'tearing_down';
376
+ }
377
+ /**
378
+ * Advance the AGENT DRY RUN: claim and dispatch the prober, then poll it, then record what it
379
+ * reported and move on to teardown.
380
+ *
381
+ * Three writes in a fixed order, and each one is load-bearing:
382
+ *
383
+ * 1. the CLAIM (`probeSurface`), before the dispatch, so a replay cannot start a second agent
384
+ * against the same environment;
385
+ * 2. the DISPATCH;
386
+ * 3. the MARK (`probeDispatchedAt`), after it is accepted, so a replay that landed in between
387
+ * can tell a claim with no container behind it from a running job. Without the mark, such a
388
+ * replay polls a job that was never started and the backend's "no such job" comes back as an
389
+ * EVICTION: a lost isolate reported to the developer as a container failure. With it, the
390
+ * replay re-dispatches instead, which is safe because a dispatch is idempotent per job id.
391
+ *
392
+ * Every write goes through the same running-guard, which makes the stop ⇄ driver race
393
+ * first-writer-wins in both directions. The mark's guard does double duty: a stop that landed
394
+ * while the dispatch was in flight ran its reclaim against a container that did not exist yet, so
395
+ * a rejected mark means the container now starting has nobody left to reclaim it. That throws,
396
+ * and `fail()` (whose FIRST action is the reclaim) is what actually collects it.
397
+ *
398
+ * A probe that FAILS (an evicted container, a reply with no JSON) throws, so the run fails at
399
+ * this stage with the container's error and `fail()` reclaims the environment. A probe that
400
+ * REPORTS advances, whatever its verdict: an `inoperable` verdict is the diagnostic working, and
401
+ * the run still owes the developer its teardown.
402
+ */
403
+ async advanceProbing(record) {
404
+ const stage = this.deps.probeStage;
405
+ if (!stage) {
406
+ // Only reachable when a deployment lost the capability between the start and the poll (a
407
+ // redeploy mid-run). Nothing can advance the run, so fail it here rather than spin: the
408
+ // environment is up and every poll is costing the developer.
409
+ throw new Error('Agent dry runs are no longer configured on this deployment.');
410
+ }
411
+ const claimed = record.probeSurface;
412
+ if (!claimed || !record.probeDispatchedAt) {
413
+ // ONE frame read, shared by the surface and the prompt: see `resolveTarget`. The PINNED
414
+ // surface still wins on a re-dispatch, because the claim addresses a container.
415
+ const target = await stage.resolveTarget(record);
416
+ const surface = claimed ?? target.surface;
417
+ if (!claimed && !(await this.guardedUpdate(record, { probeSurface: surface }))) {
418
+ throw new Error('The environment test was stopped before the agent dry run started.');
419
+ }
420
+ record.probeSurface = surface;
421
+ await stage.dispatch(record, surface, target.frame);
422
+ const probeDispatchedAt = this.deps.clock.now();
423
+ if (!(await this.guardedUpdate(record, { probeDispatchedAt }))) {
424
+ throw new Error('The environment test was stopped while the agent dry run was starting.');
425
+ }
426
+ record.probeDispatchedAt = probeDispatchedAt;
427
+ return { state: 'running' };
428
+ }
429
+ const outcome = await stage.poll(record, claimed);
430
+ if (outcome.state === 'running') {
431
+ await this.writeProbeProgress(record, outcome.subtasks);
432
+ return { state: 'running' };
433
+ }
434
+ // The report is in hand, so the prober's container has nothing left to do: reclaim it before
435
+ // teardown rather than leaving it to idle out beside an environment that is about to vanish.
436
+ await this.releaseProbe(record);
437
+ // The live counts go with it: the report is the finer answer to the same question, and a stale
438
+ // "3 of 5" left beside a finished run reads as a probe still working.
439
+ await this.patch(record, {
440
+ stage: 'tearing_down',
441
+ probe: outcome.report,
442
+ probeProgress: null,
443
+ });
444
+ return { state: 'running' };
445
+ }
446
+ /**
447
+ * Persist the prober's live todo counts, and push them, when they MOVED.
448
+ *
449
+ * `probing` is the only stage of this run measured in minutes; every other one turns over in
450
+ * seconds. With nothing written the run row never changes, so no `envTestChanged` event fires
451
+ * for the whole probe and the SPA sits on "probing with an agent" for the entire container run,
452
+ * which is indistinguishable from a wedge. Compared on the COUNTS alone: the item labels move
453
+ * whenever the agent rewords a todo, and a write per poll is the cost this guard exists to
454
+ * avoid.
455
+ */
456
+ async writeProbeProgress(record, subtasks) {
457
+ if (!subtasks)
458
+ return;
459
+ const current = record.probeProgress;
460
+ if (current &&
461
+ current.completed === subtasks.completed &&
462
+ current.inProgress === subtasks.inProgress &&
463
+ current.total === subtasks.total) {
464
+ return;
465
+ }
466
+ await this.patch(record, { probeProgress: subtasks });
467
+ }
468
+ /**
469
+ * Reclaim the dry run's container, if one was ever claimed. Best-effort by contract (an
470
+ * unreachable runner idles out on its own), and it must never propagate: every caller is either
471
+ * settling a run or already failing one.
472
+ */
473
+ async releaseProbe(record) {
474
+ const stage = this.deps.probeStage;
475
+ const surface = record.probeSurface;
476
+ if (!stage || !surface)
477
+ return;
478
+ await runBestEffort(this.log, 'release environment dry-run container', () => stage.release(record, surface), { workspaceId: record.workspaceId, runId: record.id, surface });
479
+ }
273
480
  async advanceTeardown(record) {
274
481
  if (record.environmentId) {
275
482
  try {
@@ -377,13 +584,18 @@ export class EnvironmentTestService {
377
584
  // record + SPA aside). Carries the stage + message (which now includes any provider
378
585
  // field-level detail) and the stack when the cause is an `Error`, so an unexpected throw is
379
586
  // debuggable from the logs rather than just the terminal run row.
380
- this.deps.logger?.warn('environment self-test failed', {
587
+ this.log.warn('environment self-test failed', {
381
588
  workspaceId: record.workspaceId,
382
589
  runId: record.id,
383
590
  failedStage,
384
591
  err: message,
385
592
  ...(cause instanceof Error && cause.stack ? { stack: cause.stack } : {}),
386
593
  });
594
+ // Reclaim the dry run's container when one was claimed and never settled (a stop mid-probe, a
595
+ // dispatch that threw, a replay that failed the run). It is claimed before it is dispatched,
596
+ // so a claim with no container behind it is a tolerated no-op. The opposite ordering would
597
+ // leave a browser container running for its full lifetime beside a torn-down environment.
598
+ await this.releaseProbe(record);
387
599
  // Release any in-flight deploy job when provisioning never settled (a stop
388
600
  // mid-provision, a dispatch that threw or crashed before the stage patch landed):
389
601
  // best-effort abort of the deploy runner so a stopped test doesn't keep a container
@@ -1 +1 @@
1
- {"version":3,"file":"EnvironmentTestService.js","sourceRoot":"","sources":["../../../src/modules/environments/EnvironmentTestService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EnvironmentTestService.js","sourceRoot":"","sources":["../../../src/modules/environments/EnvironmentTestService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import type { Block, BlockRepository, EnvironmentHandle, EnvironmentProbeAgent, EnvironmentProbeHandle, EnvironmentProbeReport, EnvironmentProbeSurface, EnvironmentTestRunRecord, Logger, ResolveRunRepoContext, StepSubtasks } from '@cat-factory/kernel';
2
+ /** The environment reads the probe stage makes: the live handle, WITH its decrypted access. */
3
+ export interface EnvironmentProbeRegistry {
4
+ getHandleWithAccess(workspaceId: string, id: string): Promise<EnvironmentHandle | null>;
5
+ }
6
+ export interface EnvironmentProbeStageDependencies {
7
+ /** Dispatches, polls and reclaims the probe container (a facade implementation). */
8
+ agent: EnvironmentProbeAgent;
9
+ blockRepository: Pick<BlockRepository, 'get'>;
10
+ environments: EnvironmentProbeRegistry;
11
+ /** Resolves the frame's repo identity, so the prober gets a checkout of what is running. */
12
+ resolveRunRepoContext: ResolveRunRepoContext;
13
+ logger?: Logger;
14
+ }
15
+ /** What one poll of the probing stage settled on. */
16
+ export type EnvironmentProbeOutcome =
17
+ /**
18
+ * Still working. `subtasks` is the container's own live todo count when it reported one, which
19
+ * the caller persists: `probing` is the only stage of this run that lasts minutes, so it is the
20
+ * only one where writing nothing leaves the SPA unable to tell work from a wedge.
21
+ */
22
+ {
23
+ state: 'running';
24
+ subtasks?: StepSubtasks;
25
+ }
26
+ /** The agent reported; the report is already coerced, capped, scrubbed and platform-graded. */
27
+ | {
28
+ state: 'reported';
29
+ report: EnvironmentProbeReport;
30
+ };
31
+ export declare class EnvironmentProbeStage {
32
+ private readonly deps;
33
+ /** The injected logger, normalised once so every site can log unconditionally (CLAUDE.md). */
34
+ private readonly log;
35
+ constructor(deps: EnvironmentProbeStageDependencies);
36
+ /**
37
+ * Which prober a frame's dry run would run, through the shared rule the SPA's button label
38
+ * reads. Pure, so ADMISSION can ask it with the frame it has already loaded and no record yet.
39
+ */
40
+ surfaceFor(frame: Block): EnvironmentProbeSurface;
41
+ /**
42
+ * Whether this deployment can actually run `surface`'s prober for this workspace, asked at
43
+ * admission. Delegated to the agent, which is where the runner backend is known; see the port
44
+ * for why an unknown answers yes.
45
+ */
46
+ supports(workspaceId: string, surface: EnvironmentProbeSurface): Promise<boolean>;
47
+ /**
48
+ * The frame this run is probing, read ONCE per tick, with the prober its type selects.
49
+ *
50
+ * One read rather than one per collaborator: the surface decides which container the job runs
51
+ * in and the title and description go into the prompt, and two reads a moment apart can observe
52
+ * two different frames, so a rename between them puts a service name in the prompt that does not
53
+ * match the surface the claim pinned. The caller PINS the surface on the run at the claim
54
+ * (`probeSurface`) and passes the pinned value back to {@link dispatch}: every later poll and
55
+ * reclaim must address the container that actually started, not one re-derived from a frame that
56
+ * may since have been retyped or deleted.
57
+ */
58
+ resolveTarget(record: EnvironmentTestRunRecord): Promise<{
59
+ frame: Block;
60
+ surface: EnvironmentProbeSurface;
61
+ }>;
62
+ /**
63
+ * Dispatch the dry run for `record`, whose environment is `ready`.
64
+ *
65
+ * Throws when anything it needs is missing, and each throw is the run's terminal error, so the
66
+ * messages name what a human has to fix rather than what this function could not find. The
67
+ * caller has already CLAIMED the probe (see `EnvironmentTestRunRecord.probeSurface`), so a throw
68
+ * here fails the run at the `probing` stage with the environment still up for `fail()` to
69
+ * reclaim.
70
+ */
71
+ dispatch(record: EnvironmentTestRunRecord, surface: EnvironmentProbeSurface, frame: Block): Promise<EnvironmentProbeHandle>;
72
+ /**
73
+ * Poll the dispatched dry run.
74
+ *
75
+ * A `failed` update THROWS rather than being reported as a verdict: an evicted container or a
76
+ * reply carrying no JSON is a diagnostic that never happened, and returning it as a finding
77
+ * would tell an operator their service is inoperable when it is the platform's own step that
78
+ * broke. The run then fails at the `probing` stage with the container's own error, which is the
79
+ * honest reading and the one the sweeper's cleanup already handles.
80
+ */
81
+ poll(record: EnvironmentTestRunRecord, surface: EnvironmentProbeSurface): Promise<EnvironmentProbeOutcome>;
82
+ /** Reclaim the probe's container. Best-effort by contract; never throws at the caller. */
83
+ release(record: EnvironmentTestRunRecord, surface: EnvironmentProbeSurface): Promise<void>;
84
+ }
85
+ //# sourceMappingURL=environmentProbeStage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environmentProbeStage.d.ts","sourceRoot":"","sources":["../../../src/modules/environments/environmentProbeStage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,KAAK,EACL,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EAEvB,wBAAwB,EACxB,MAAM,EACN,qBAAqB,EACrB,YAAY,EACb,MAAM,qBAAqB,CAAA;AAyB5B,+FAA+F;AAC/F,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;CACxF;AAED,MAAM,WAAW,iCAAiC;IAChD,oFAAoF;IACpF,KAAK,EAAE,qBAAqB,CAAA;IAC5B,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;IAC7C,YAAY,EAAE,wBAAwB,CAAA;IACtC,4FAA4F;IAC5F,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qDAAqD;AACrD,MAAM,MAAM,uBAAuB;AACjC;;;;GAIG;AACD;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;CAAE;AAC/C,+FAA+F;GAC7F;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,CAAA;AAiCzD,qBAAa,qBAAqB;IAIpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,8FAA8F;IAC9F,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAE5B,YAA6B,IAAI,EAAE,iCAAiC,EAEnE;IAED;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,uBAAuB,CAEhD;IAED;;;;OAIG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAEtF;IAED;;;;;;;;;;OAUG;IACG,aAAa,CACjB,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,uBAAuB,CAAA;KAAE,CAAC,CAM7D;IAED;;;;;;;;OAQG;IACG,QAAQ,CACZ,MAAM,EAAE,wBAAwB,EAChC,OAAO,EAAE,uBAAuB,EAChC,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,sBAAsB,CAAC,CA0DjC;IAED;;;;;;;;OAQG;IACG,IAAI,CACR,MAAM,EAAE,wBAAwB,EAChC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,uBAAuB,CAAC,CAiClC;IAED,0FAA0F;IACpF,OAAO,CAAC,MAAM,EAAE,wBAAwB,EAAE,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAM/F;CACF"}