@skyphusion-labs/vivijure-core 1.14.0 → 1.16.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 (49) hide show
  1. package/dist/cast-lora-train.d.ts +14 -0
  2. package/dist/cast-lora-train.d.ts.map +1 -1
  3. package/dist/cast-lora-train.js +117 -0
  4. package/dist/cast-lora-train.js.map +1 -1
  5. package/dist/film-model.d.ts +112 -0
  6. package/dist/film-model.d.ts.map +1 -1
  7. package/dist/film-model.js +143 -0
  8. package/dist/film-model.js.map +1 -1
  9. package/dist/film-orchestrator.d.ts.map +1 -1
  10. package/dist/film-orchestrator.js +36 -16
  11. package/dist/film-orchestrator.js.map +1 -1
  12. package/dist/film-render-bridge.d.ts.map +1 -1
  13. package/dist/film-render-bridge.js +12 -44
  14. package/dist/film-render-bridge.js.map +1 -1
  15. package/dist/modules/manifest-validate.d.ts.map +1 -1
  16. package/dist/modules/manifest-validate.js +10 -0
  17. package/dist/modules/manifest-validate.js.map +1 -1
  18. package/dist/modules/registry.d.ts +6 -4
  19. package/dist/modules/registry.d.ts.map +1 -1
  20. package/dist/modules/registry.js +75 -23
  21. package/dist/modules/registry.js.map +1 -1
  22. package/dist/modules/types.d.ts +68 -0
  23. package/dist/modules/types.d.ts.map +1 -1
  24. package/dist/modules/types.js +14 -0
  25. package/dist/modules/types.js.map +1 -1
  26. package/dist/render-adopt.d.ts.map +1 -1
  27. package/dist/render-adopt.js +7 -0
  28. package/dist/render-adopt.js.map +1 -1
  29. package/dist/render-output-payload.d.ts +19 -0
  30. package/dist/render-output-payload.d.ts.map +1 -0
  31. package/dist/render-output-payload.js +100 -0
  32. package/dist/render-output-payload.js.map +1 -0
  33. package/dist/renders-db.d.ts +47 -1
  34. package/dist/renders-db.d.ts.map +1 -1
  35. package/dist/renders-db.js +88 -27
  36. package/dist/renders-db.js.map +1 -1
  37. package/dist/runpod-job-log.d.ts +244 -0
  38. package/dist/runpod-job-log.d.ts.map +1 -0
  39. package/dist/runpod-job-log.js +543 -0
  40. package/dist/runpod-job-log.js.map +1 -0
  41. package/dist/runpod-submit.d.ts +21 -0
  42. package/dist/runpod-submit.d.ts.map +1 -1
  43. package/dist/runpod-submit.js +13 -6
  44. package/dist/runpod-submit.js.map +1 -1
  45. package/dist/scatter-orchestrator.d.ts +10 -2
  46. package/dist/scatter-orchestrator.d.ts.map +1 -1
  47. package/dist/scatter-orchestrator.js +63 -12
  48. package/dist/scatter-orchestrator.js.map +1 -1
  49. package/package.json +1 -1
@@ -1,5 +1,19 @@
1
1
  import type { Env } from "./platform/orchestrator-context.js";
2
2
  import { type CastMember } from "./cast-db.js";
3
+ import { type RunpodJobBackend } from "./runpod-submit.js";
4
+ /** Job-log `module` label for a Wan cast train. Maps to the RUNPOD_WAN_TRAIN_ENDPOINT_ID endpoint,
5
+ * which bills as `vivijure-wan-train` in RunPod serverless. */
6
+ export declare const CAST_TRAIN_WAN_JOB_LOG_MODULE = "cast-train-wan";
7
+ /** Job-log `module` label for a cloud SDXL cast train, which shares the render endpoint. */
8
+ export declare const CAST_TRAIN_SDXL_JOB_LOG_MODULE = "cast-train-sdxl";
9
+ /**
10
+ * The job-log label for a result, or null when this job is not RunPod GPU spend on our account.
11
+ *
12
+ * Null for `local-door` (own iron) and for an UNTAGGED result. Untagged returning null is the point:
13
+ * a caller that forgets to tag records nothing, rather than recording a job against a guessed
14
+ * endpoint. A gap is findable; an invented row is not.
15
+ */
16
+ export declare function castTrainJobLogModule(backend: RunpodJobBackend | undefined): string | null;
3
17
  export type CastTrainModelFamily = "sdxl" | "wan";
4
18
  export interface CastTrainRequestBody {
5
19
  renderOverrides?: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"cast-lora-train.d.ts","sourceRoot":"","sources":["../src/cast-lora-train.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAOL,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAoBtB,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,KAAK,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC;AAGD,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAM3E;AAuBD,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,OAAO,EACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,oBAAoB,CAKtB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE;IACN,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,IAAI,GAAG,SAAS,EACpB,aAAa,EAAE,OAAO,GACrB,oBAAoB,CAmBtB;AAiCD,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAKhD,eAAO,MAAM,0BAA0B,QAAU,CAAC;AAOlD,eAAO,MAAM,mCAAmC,QAAc,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAMzE;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI/E;AAMD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACtC,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,qBAAqB,CA2BvB;AAiED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,UAAU,GAAG,IAAI,EACvB,GAAG,GAAE,MAAmB,GACvB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA0C5B;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,QAAQ,CAAC,CAKnB;AAID,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,QAAQ,CAAC,CAInB;AAuGD,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,QAAQ,CAAC,CAkDnB"}
1
+ {"version":3,"file":"cast-lora-train.d.ts","sourceRoot":"","sources":["../src/cast-lora-train.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAOL,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAIL,KAAK,gBAAgB,EAEtB,MAAM,oBAAoB,CAAC;AAsD5B;gEACgE;AAChE,eAAO,MAAM,6BAA6B,mBAAmB,CAAC;AAE9D,4FAA4F;AAC5F,eAAO,MAAM,8BAA8B,oBAAoB,CAAC;AAEhE;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAI1F;AAsDD,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,KAAK,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC;AAGD,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAM3E;AAuBD,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,OAAO,EACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,oBAAoB,CAKtB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE;IACN,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,IAAI,GAAG,SAAS,EACpB,aAAa,EAAE,OAAO,GACrB,oBAAoB,CAmBtB;AAiCD,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAKhD,eAAO,MAAM,0BAA0B,QAAU,CAAC;AAOlD,eAAO,MAAM,mCAAmC,QAAc,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAMzE;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI/E;AAMD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACtC,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,qBAAqB,CA2BvB;AAiED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,UAAU,GAAG,IAAI,EACvB,GAAG,GAAE,MAAmB,GACvB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA+C5B;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,QAAQ,CAAC,CAKnB;AAID,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,QAAQ,CAAC,CAInB;AA2GD,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,QAAQ,CAAC,CAoDnB"}
@@ -2,9 +2,115 @@
2
2
  import { getCastById, toPublicCast, markLoraFailed, markLoraReady, markWanLoraReady, setLoraJob, } from "./cast-db.js";
3
3
  import { assembleBundle } from "./bundle-assembler.js";
4
4
  import { pollCastLoraJob, submitTrainLoraJob, submitTrainWanLoraJob, } from "./runpod-submit.js";
5
+ import { parseRunpodErrorType, recordRunpodJob, terminalOutcomeFromRunpodStatus, } from "./runpod-job-log.js";
5
6
  import { secretValue } from "./secret-store.js";
6
7
  import { buildLoraTrainingBundleArgs, deriveLoraDestKey, deriveWanLoraDestKeys, extractTrainedLoraKey, extractTrainedWanLoraKeys, } from "./lora-bundle.js";
7
8
  const MIN_TRAINING_REFS = 4;
9
+ // -------------------------------------------------------------------------------------------------
10
+ // JOB-LOG ATTRIBUTION FOR CAST LoRA TRAINING (cf#475).
11
+ //
12
+ // THE GAP THIS CLOSES. Every RunPod job a MODULE WORKER submits has written a runpod_job_log row
13
+ // since cf#279. Cast LoRA training is submitted from HERE instead -- studio-side, through
14
+ // runpod-submit.ts -- and wrote nothing at all. Measured on the money rather than inferred: the
15
+ // vivijure-wan-train endpoint billed 14.5% of GPU spend on 2026-08-01 and 21.9% on 2026-08-02 with
16
+ // ZERO rows on either day. Not mis-attributed; absent, and absent in the flattering direction, since
17
+ // every row that IS in the table is correct.
18
+ //
19
+ // It matters more than telemetry tidiness because cf#394 rules cast-LoRA training in scope for the
20
+ // hosted door: without a row there is nothing that says which tenant caused an hour and three
21
+ // quarters of an 80GB card, TENANT_SPEND_DAILY_CEILING is unenforceable on the single most expensive
22
+ // operation in the product, and there is no basis to bill it.
23
+ //
24
+ // SAME RECORDER, NOT A SECOND ONE. recordRunpodJob is the identical function the 97 module call
25
+ // sites use; it moved into core in this change precisely so this path could reach it (see
26
+ // runpod-job-log.ts for why, and for the drift that had already happened between the two copies that
27
+ // existed before). Nothing here re-implements the upsert, the bounds, the timeout or the retry.
28
+ //
29
+ // WHAT IS DELIBERATELY NOT RECORDED, so an absence here is not read as an oversight:
30
+ //
31
+ // LOCAL-DOOR TRAINS. An SDXL train on the homelab door is our own iron and carries no marginal
32
+ // vendor cost, which is the standing ruling on what the meter is for. It is not RunPod spend and a
33
+ // runpod_job_log row for it would be a fabricated one.
34
+ //
35
+ // FAILED SUBMITS. No job id means nothing to key the upsert on, and nothing was billed. This
36
+ // matches the module path exactly, which also records only once an id exists.
37
+ //
38
+ // JOBS WE NEVER OBSERVED TERMINAL. The terminal write happens when a poll SEES a terminal status.
39
+ // A job that ages out of RunPod retention (~30 min) before any poll catches it leaves its row at
40
+ // `submitted` with no seconds -- honest, and visibly open, rather than guessed. reconcileOpenRunpodJobs
41
+ // in runpod-job-log.ts is the mechanism that closes those and is now reachable from core; wiring a
42
+ // cast-train pass through it is follow-on work, not something this change silently claims.
43
+ // -------------------------------------------------------------------------------------------------
44
+ /** Job-log `module` label for a Wan cast train. Maps to the RUNPOD_WAN_TRAIN_ENDPOINT_ID endpoint,
45
+ * which bills as `vivijure-wan-train` in RunPod serverless. */
46
+ export const CAST_TRAIN_WAN_JOB_LOG_MODULE = "cast-train-wan";
47
+ /** Job-log `module` label for a cloud SDXL cast train, which shares the render endpoint. */
48
+ export const CAST_TRAIN_SDXL_JOB_LOG_MODULE = "cast-train-sdxl";
49
+ /**
50
+ * The job-log label for a result, or null when this job is not RunPod GPU spend on our account.
51
+ *
52
+ * Null for `local-door` (own iron) and for an UNTAGGED result. Untagged returning null is the point:
53
+ * a caller that forgets to tag records nothing, rather than recording a job against a guessed
54
+ * endpoint. A gap is findable; an invented row is not.
55
+ */
56
+ export function castTrainJobLogModule(backend) {
57
+ if (backend === "runpod-wan-train")
58
+ return CAST_TRAIN_WAN_JOB_LOG_MODULE;
59
+ if (backend === "runpod-render")
60
+ return CAST_TRAIN_SDXL_JOB_LOG_MODULE;
61
+ return null;
62
+ }
63
+ /** Open the row the moment a training job exists on a RunPod endpoint. */
64
+ async function recordCastTrainSubmit(env, submit, submittedAtMs) {
65
+ if (!submit.ok)
66
+ return;
67
+ const moduleLabel = castTrainJobLogModule(submit.backend);
68
+ if (!moduleLabel)
69
+ return;
70
+ await recordRunpodJob(env.DB, {
71
+ jobId: submit.view.jobId,
72
+ module: moduleLabel,
73
+ outcome: "submitted",
74
+ submittedAtMs,
75
+ });
76
+ }
77
+ /**
78
+ * Close the row when a poll OBSERVES a terminal status, carrying RunPod's own execution and delay
79
+ * times so the seconds are attributable rather than merely counted.
80
+ *
81
+ * Self-gating on purpose: callers hand it every successful poll and it writes only on a terminal
82
+ * one. That keeps the two poll paths (refreshTrainingLora and handleCastLoraStatus) from each
83
+ * growing their own copy of the terminal-status list, which is the same duplication this whole
84
+ * change is about.
85
+ *
86
+ * submittedAtMs is NOT passed. The submit write already set it, the upsert never overwrites it, and
87
+ * the only value available here is the cast row's updated_at, which moves. An unknown submit time
88
+ * must stay distinguishable from a known one, so on the (rare) path where the submit write was lost
89
+ * this INSERTs with submitted_at NULL rather than with a plausible-looking guess.
90
+ */
91
+ async function recordCastTrainTerminal(env, poll) {
92
+ if (!poll.ok)
93
+ return;
94
+ const moduleLabel = castTrainJobLogModule(poll.backend);
95
+ if (!moduleLabel)
96
+ return;
97
+ const view = poll.view;
98
+ const outcome = terminalOutcomeFromRunpodStatus(view.statusRaw);
99
+ if (!outcome)
100
+ return;
101
+ await recordRunpodJob(env.DB, {
102
+ jobId: view.jobId,
103
+ module: moduleLabel,
104
+ outcome,
105
+ detail: outcome === "completed" ? undefined : view.error || "runpod status " + view.statusRaw,
106
+ errorType: parseRunpodErrorType(view.error),
107
+ // NULL-not-zero: normalizeRunpodResponse leaves these undefined when RunPod did not report
108
+ // them, and recordRunpodJob turns undefined into NULL. A 0 would read as a real measurement of
109
+ // a job that took no time.
110
+ executionMs: view.executionTimeMs ?? null,
111
+ delayMs: view.delayTimeMs ?? null,
112
+ });
113
+ }
8
114
  // True when the host wired RUNPOD_WAN_TRAIN_ENDPOINT_ID (the dedicated Wan train endpoint).
9
115
  export async function wanTrainEndpointConfigured(env) {
10
116
  const endpointId = await secretValue(env.RUNPOD_WAN_TRAIN_ENDPOINT_ID);
@@ -206,6 +312,11 @@ export async function refreshTrainingLora(env, cast, now = Date.now()) {
206
312
  catch {
207
313
  poll = { ok: false, error: "poll threw" };
208
314
  }
315
+ // cf#475: record BEFORE acting on the status. The recorder is best-effort by contract (it never
316
+ // throws and never outlives its own timeout), so it cannot affect what happens next; putting it
317
+ // first means every RETURN path below is already covered and a future branch cannot be added past
318
+ // the recording without noticing.
319
+ await recordCastTrainTerminal(env, poll);
209
320
  if (poll.ok) {
210
321
  const view = poll.view;
211
322
  if (view.status === "COMPLETED") {
@@ -291,6 +402,8 @@ async function executeCastTrain(env, id, bodyRenderOverrides, family) {
291
402
  if (!submit.ok) {
292
403
  return json({ error: submit.error }, 502);
293
404
  }
405
+ // cf#475: the job now exists on a RunPod endpoint and is accruing GPU-seconds. Open its row.
406
+ await recordCastTrainSubmit(env, submit, timestamp * 1000);
294
407
  const updated = await setLoraJob(env, cast.id, submit.view.jobId);
295
408
  return json({
296
409
  ok: true,
@@ -312,6 +425,8 @@ async function executeCastTrain(env, id, bodyRenderOverrides, family) {
312
425
  if (!submit.ok) {
313
426
  return json({ error: submit.error }, 502);
314
427
  }
428
+ // cf#475. A local-door train is tagged `local-door` and records nothing (see castTrainJobLogModule).
429
+ await recordCastTrainSubmit(env, submit, timestamp * 1000);
315
430
  const updated = await setLoraJob(env, cast.id, submit.view.jobId);
316
431
  return json({
317
432
  ok: true,
@@ -339,6 +454,8 @@ export async function handleCastLoraStatus(env, id) {
339
454
  catch {
340
455
  poll = { ok: false, error: "poll threw" };
341
456
  }
457
+ // cf#475, same reasoning as refreshTrainingLora: record the observation before branching on it.
458
+ await recordCastTrainTerminal(env, poll);
342
459
  if (poll.ok) {
343
460
  const view = poll.view;
344
461
  if (view.status === "COMPLETED") {
@@ -1 +1 @@
1
- {"version":3,"file":"cast-lora-train.js","sourceRoot":"","sources":["../src/cast-lora-train.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cast-lora-train.js","sourceRoot":"","sources":["../src/cast-lora-train.ts"],"names":[],"mappings":"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"}
@@ -175,6 +175,12 @@ export interface FilmJob {
175
175
  keyframe_recovered?: boolean;
176
176
  clips_recovered?: boolean;
177
177
  last_progress_at?: number;
178
+ /** core#182 honesty: chain steps in the CURRENT phase whose module declares no
179
+ * `max_invocation_seconds`, so the core could not size the stall ceiling to them and is holding
180
+ * the floor. Carried on the job (not merely logged) because an operator reading a stalled render
181
+ * needs to see which module the ceiling is unbounded against; an absence that is only in a log
182
+ * line is an absence nobody finds. Empty/absent means every step in play declared one. */
183
+ ceiling_undeclared?: string[];
178
184
  progress_marker?: string;
179
185
  error?: string;
180
186
  created_at: number;
@@ -296,6 +302,38 @@ export declare function finishShotAdoptableFromR2(fs: FinishShot): boolean;
296
302
  * the module's verdict / a stuck envelope). Mutates `finishShots`, returns the number adopted. Mirrors
297
303
  * reclaimClipsFromR2 on the clips leg so the two phases recover symmetrically. */
298
304
  export declare function reclaimFinishShotsFromR2(finishShots: FinishShot[], present: Map<string, string>, modules?: RegisteredModule[]): number;
305
+ /** cf#1662: the film.finish outcome in the shape that reaches the RENDER ROW.
306
+ *
307
+ * WHY THIS EXISTS. A film that ships without its title card or subtitles is `done`, carries no
308
+ * error, and was previously indistinguishable in render history from one that shipped complete --
309
+ * a DEGRADATION wearing completion. The chain already records everything needed (this type's own
310
+ * comment says `degraded` exists to prevent "a silent green"); it was simply never carried onto the
311
+ * poll view, and the poll view is what `updateRenderFromView` writes into `output_json`. So nobody
312
+ * could COUNT how often it happens, which makes every proposed fix for fc#1662 a trade against an
313
+ * incidence that does not exist anywhere.
314
+ *
315
+ * FOUR STATES, and the shape is four rather than a boolean deliberately:
316
+ *
317
+ * key absent this row predates the change -- NOT MEASURED
318
+ * null the chain did not run (nothing to card) -- MEASURED, not applicable
319
+ * degraded: null the chain ran and applied everything -- MEASURED, clean
320
+ * degraded: "..." the chain ran and SHIPPED UNCARDED -- MEASURED, the finding
321
+ *
322
+ * Collapsing "no cards were requested" into "cards applied cleanly" would rebuild the very defect
323
+ * this is here to expose, one field over. An absence never renders as a value.
324
+ *
325
+ * `adopted` is carried because it counts the RECOVERED re-encodes: a step whose artifact was found
326
+ * in R2 rather than run. Under fc#1662 that is the wasted-work signal, so it is as load-bearing as
327
+ * `degraded` and it is the number that says whether the waste is real. */
328
+ export declare function filmFinishView(ff?: {
329
+ applied?: string[];
330
+ adopted?: string[];
331
+ degraded?: string;
332
+ }): {
333
+ applied: string[];
334
+ adopted: string[];
335
+ degraded: string | null;
336
+ } | null;
299
337
  /** #662 honesty invariant: does this finish shot's per-step ledger reconcile 1:1 to its chain? True unless
300
338
  * a DONE shot has a ledger that fails to cover every chain step in order. Absent ledger (a pre-#662 job
301
339
  * doc) or a non-done shot (still advancing, or failed mid-chain with a partial ledger) is NOT asserted.
@@ -404,6 +442,80 @@ export declare const PER_SHOT_PHASES: ReadonlySet<FilmJob["phase"]>;
404
442
  * phase_started_at clock: no phase-level progress for the whole window really is wedged (#129).
405
443
  * Falls back to phase_started_at (then created_at) on jobs with no last_progress_at stamp. */
406
444
  export declare function ceilingAgeSeconds(job: FilmJob, now?: number): number;
445
+ /** What the phase ceiling resolved to for ONE job, and on what basis (core#182).
446
+ *
447
+ * `seconds` is the ceiling actually enforced; `basis` says whether the modules' own declarations
448
+ * raised it above the floor. The rest is the evidence, carried rather than logged-and-lost so the
449
+ * failure message can state WHY a render died and the poll view can disclose what the core could
450
+ * not bound. */
451
+ export interface PhaseCeiling {
452
+ seconds: number;
453
+ basis: "floor" | "derived";
454
+ /** FINISH_STEP_MAX_ATTEMPTS * the longest declared ceiling among the steps that could run next.
455
+ * 0 when nothing in play declared one. */
456
+ requiredSeconds: number;
457
+ /** The step that set `requiredSeconds`, for the failure message. */
458
+ longest: {
459
+ binding: string;
460
+ module: string;
461
+ seconds: number;
462
+ } | null;
463
+ /** Bindings whose module declared no `max_invocation_seconds`. The core does NOT invent a number
464
+ * for these; it holds the floor and says so. */
465
+ undeclared: string[];
466
+ /** Bindings in the live chain that resolve to no registered module at all. Distinguished from
467
+ * `undeclared` because they are a different defect (a chain referencing a module the registry no
468
+ * longer serves), and collapsing them would hide it. */
469
+ unresolved: string[];
470
+ }
471
+ /** Size the stall ceiling to the WORK IN THIS JOB rather than to a constant (core#182).
472
+ *
473
+ * THE MECHANISM THIS FIXES. `PHASE_HARD_DEADLINE_SECONDS` fails a phase that has shown no progress
474
+ * for 90 minutes. `filmProgressMarker` deliberately does not count `attempts` -- a step retrying is
475
+ * not a step progressing -- so a chain step that keeps timing out at its own door burns up to
476
+ * FINISH_STEP_MAX_ATTEMPTS full invocations while the marker never moves. Whether that fits inside
477
+ * 90 minutes is a fact about the MODULE, and the ordering between a door`s guard and this ceiling
478
+ * spans separate repositories with nothing asserting it. Modules whose guards exceed the ceiling on
479
+ * a SINGLE attempt already exist, so the 90 minutes is not conservative; it is unrelated.
480
+ *
481
+ * THE DERIVATION, and note it introduces NO new constant: both terms already exist.
482
+ *
483
+ * required = FINISH_STEP_MAX_ATTEMPTS * max(declared ceiling over the steps that could run next)
484
+ * effective = max(PHASE_HARD_DEADLINE_SECONDS, required)
485
+ *
486
+ * The 90-minute constant becomes a FLOOR rather than a guess. It can only ever be raised here, so a
487
+ * wedged phase with nothing declared still fails exactly when it does today.
488
+ *
489
+ * WHY `max` AND NOT `min` ACROSS SHOTS. Any shot advancing re-stamps the clock, so the no-progress
490
+ * window strictly ends when the FIRST shot moves, and `min` would be the tighter reading. It is
491
+ * also the reading that kills correct work: the ceiling must not fire while ANY correctly-running
492
+ * invocation is still inside its own door`s guard. Between a late loud failure and an early false
493
+ * one, this picks late.
494
+ *
495
+ * WHAT IT REFUSES TO DO. A step whose module declares nothing is NOT given a substituted number. It
496
+ * is named in `undeclared`, the floor holds, and the caller reports it -- because a fabricated
497
+ * ceiling would be indistinguishable from a declared one, which is the exact defect class this
498
+ * whole change exists to remove. Conformance fails such a module at the gate.
499
+ *
500
+ * Phases outside CEILING_DERIVED_HOOKS return the floor untouched. */
501
+ export declare function phaseCeiling(job: FilmJob, modules?: RegisteredModule[]): PhaseCeiling;
502
+ /** The complete stall-ceiling decision for one tick, as a PURE value (core#182).
503
+ *
504
+ * Extracted from `recoverStalledPhase` for the same reason `stampFilmProgress` was extracted from
505
+ * `advanceFilmJob` in #182: inline, the only way to exercise this was to restate the comparison and
506
+ * the message in a test, and a test that restates its subject agrees with the subject forever
507
+ * whatever the subject does. The orchestrator now APPLIES this verdict and decides nothing itself.
508
+ *
509
+ * `error` is the message the render dies with, and it names the BASIS -- so a kill at a derived
510
+ * ceiling (the module's own declared budget, exhausted) is distinguishable from a kill at the floor
511
+ * with nothing declared, without reading the code. */
512
+ export interface PhaseCeilingVerdict {
513
+ ceiling: PhaseCeiling;
514
+ ceilingAge: number;
515
+ expired: boolean;
516
+ error: string | null;
517
+ }
518
+ export declare function phaseCeilingVerdict(job: FilmJob, modules?: RegisteredModule[], now?: number): PhaseCeilingVerdict;
407
519
  /** Progress fingerprint for the stall signal (#136): the current phase, how many of its per-shot units
408
520
  * are done, and how many CHAIN STEPS have resolved inside those units. Monotonic within a phase (shots
409
521
  * only go pending->done, `idx` only advances) and it changes on every phase transition, so ANY change is
@@ -1 +1 @@
1
- {"version":3,"file":"film-model.d.ts","sourceRoot":"","sources":["../src/film-model.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEhJ,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKlF,MAAM,WAAW,SAAS;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAAE;AAEhF;;;8FAG8F;AAC9F;;;6GAG6G;AAC7G,MAAM,WAAW,gBAAgB;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;CAAE;AAEvF,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAIlB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAMnB,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;0FAI0F;AAC1F,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB;;;;;;;;;;wCAUoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;;oBAYgB;IAChB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIvC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAKjC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAKvD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnH,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,eAAe,CAAC,EAAE,MAAM,CAAC;IAIzB,aAAa,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAK5B,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAIxC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAIpC,YAAY,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IAMzB,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IASnB,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;KACrC,CAAC;IAGF,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,OAAO,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC;IAM7F,WAAW,CAAC,EAAE;QACZ,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAMlB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAInB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IAKF,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAQhD,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAI9C,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAQ7C,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAI7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAS3B,kBAAkB,CAAC,EAAE;QACnB,EAAE,EAAE,UAAU,GAAG,KAAK,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,OAAO,GAAG,aAAa,CAAC;QACnC,KAAK,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KACjD,CAAC;IAQF,oBAAoB,CAAC,EAAE;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iFAAiF;IACjF,WAAW,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAAC;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAK1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAI3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAG1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAI7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAM1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,QAAA,MAAM,OAAO,OAAQ,MAAM,WAAkC,CAAC;AAC9D,QAAA,MAAM,UAAU,cAAe,MAAM,WAA0C,CAAC;AAEhF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,UAAU,IAAI,aAAa,EAAE,CAAC;AAEjE,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAK3D;AAED;sGACsG;AACtG,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EAAE,EACnB,SAAS,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAAE,GACrD;IAAE,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAU9G;AAED,MAAM,WAAW,aAAa;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;CAAE;AACnI;;;;wCAIwC;AACxC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IAGf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,YAAY,EAAE,GAAG,SAAS,CAgBlF;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAIlB,WAAW,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAIrC,kBAAkB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAGnD,oBAAoB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAOvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,aAAa,CAiBlE;AACD,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,WAAW,CAsBhF;AAED;;0FAE0F;AAC1F,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,EAAE,EACnB,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,GAC7C;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,CAQzC;AAED;mGACmG;AACnG,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAYzE;AAED;;;6GAG6G;AAC7G,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAUzF;AAED;;;6FAG6F;AAC7F,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAQzE;AASD,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C;;oGAEoG;AACpG,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,eAAe,CAG9F;AAED;8CAC8C;AAC9C,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,aAAa,EAAE,MAAM,EACrB,WAAW,GAAE,MAAiC,GAC7C;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAI5D;AAED;;;;wDAIwD;AACxD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,YAAY,CAAA;CAAE,EAAE,EACzD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,GAChE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAE3B;AAED;;;;;;;;;uFASuF;AACvF,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAUjE;AAED;;mFAEmF;AACnF,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAoBtI;AAED;;;;6GAI6G;AAC7G,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAGlE;AAED;;;;;;;;gHAQgH;AAChH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAAE,GAAG,MAAM,GAAG,IAAI,CAgBhH;AAkDD;;;+GAG+G;AAC/G,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAkBzF;AAED;;;;;;;;;;;;qDAYqD;AACrD,MAAM,MAAM,iBAAiB,GACzB;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,iBAAiB,CAiBnB;AAID;6FAC6F;AAC7F,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAKzD,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAM1C,eAAO,MAAM,oBAAoB,QAAU,CAAC;AAE5C;0FAC0F;AAC1F,wBAAgB,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,GAAG,SAAS,CAG5E;AAED;;;;;oGAKoG;AACpG,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,KAAK,GAAG,KAAa,GAAG,MAAM,CAKtF;AAED;;;;oFAIoF;AACpF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,CAS5F;AAED;;gCAEgC;AAChC,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAMtE;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAEvD;AAED;;;;;0EAK0E;AAC1E,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAE/D;AAED;;;;;;;qDAOqD;AACrD,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,SAAS,GAAG,YAAY,EAAE,GAAG,SAAS,CAUhI;AAcD,eAAO,MAAM,sBAAsB,QAAU,CAAC;AAC9C,eAAO,MAAM,2BAA2B,QAAU,CAAC;AAEnD,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAsD,CAAC;AAEjH;6FAC6F;AAC7F,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,GAAE,MAAmB,GAAG,MAAM,CAG9E;AAED;;qFAEqF;AACrF,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAA0C,CAAC;AAErG;;;;;;+FAM+F;AAC/F,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,GAAE,MAAmB,GAAG,MAAM,CAIhF;AAED;;;;;;;;;;;;;;;;;;;;;6EAqB6E;AAC7E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,CAehF;AAED;;;;;oEAKoE;AACpE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAM1G;AAWD;4GAC4G;AAC5G;;;;;;wDAMwD;AACxD,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAC3C;;;;;;;8EAO8E;AAC9E,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C;;;;;iCAKiC;AACjC,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAOD;;;iGAGiG;AACjG,wBAAgB,yBAAyB,CACvC,GAAG,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3D,kBAAkB,CAKpB;AAED,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C;yFACyF;AACzF,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIxE;AAED;;;4FAG4F;AAC5F,wBAAgB,uBAAuB,CACrC,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,EACjC,aAAa,EAAE,OAAO,GACrB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxB;AAED;;uGAEuG;AACvG,wBAAgB,qBAAqB,CACnC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,EAC9C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED,mEAAmE;AACnE,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;yGAGyG;AACzG,wBAAgB,0BAA0B,CACxC,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,EACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,QAAQ,EAAE,MAAM,GACf,qBAAqB,EAAE,CAWzB;AAED;;;+EAG+E;AAC/E,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB"}
1
+ {"version":3,"file":"film-model.d.ts","sourceRoot":"","sources":["../src/film-model.ts"],"names":[],"mappings":"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"}
@@ -239,6 +239,39 @@ export function reclaimFinishShotsFromR2(finishShots, present, modules) {
239
239
  }
240
240
  return adopted;
241
241
  }
242
+ /** cf#1662: the film.finish outcome in the shape that reaches the RENDER ROW.
243
+ *
244
+ * WHY THIS EXISTS. A film that ships without its title card or subtitles is `done`, carries no
245
+ * error, and was previously indistinguishable in render history from one that shipped complete --
246
+ * a DEGRADATION wearing completion. The chain already records everything needed (this type's own
247
+ * comment says `degraded` exists to prevent "a silent green"); it was simply never carried onto the
248
+ * poll view, and the poll view is what `updateRenderFromView` writes into `output_json`. So nobody
249
+ * could COUNT how often it happens, which makes every proposed fix for fc#1662 a trade against an
250
+ * incidence that does not exist anywhere.
251
+ *
252
+ * FOUR STATES, and the shape is four rather than a boolean deliberately:
253
+ *
254
+ * key absent this row predates the change -- NOT MEASURED
255
+ * null the chain did not run (nothing to card) -- MEASURED, not applicable
256
+ * degraded: null the chain ran and applied everything -- MEASURED, clean
257
+ * degraded: "..." the chain ran and SHIPPED UNCARDED -- MEASURED, the finding
258
+ *
259
+ * Collapsing "no cards were requested" into "cards applied cleanly" would rebuild the very defect
260
+ * this is here to expose, one field over. An absence never renders as a value.
261
+ *
262
+ * `adopted` is carried because it counts the RECOVERED re-encodes: a step whose artifact was found
263
+ * in R2 rather than run. Under fc#1662 that is the wasted-work signal, so it is as load-bearing as
264
+ * `degraded` and it is the number that says whether the waste is real. */
265
+ export function filmFinishView(ff) {
266
+ if (!ff)
267
+ return null;
268
+ return {
269
+ applied: ff.applied ?? [],
270
+ adopted: ff.adopted ?? [],
271
+ // Empty string is not a reason. Only a non-empty string counts as degraded.
272
+ degraded: typeof ff.degraded === "string" && ff.degraded.length > 0 ? ff.degraded : null,
273
+ };
274
+ }
242
275
  /** #662 honesty invariant: does this finish shot's per-step ledger reconcile 1:1 to its chain? True unless
243
276
  * a DONE shot has a ledger that fails to cover every chain step in order. Absent ledger (a pre-#662 job
244
277
  * doc) or a non-done shot (still advancing, or failed mid-chain with a partial ledger) is NOT asserted.
@@ -495,6 +528,116 @@ export function ceilingAgeSeconds(job, now = Date.now()) {
495
528
  const since = Math.max(job.phase_started_at ?? job.created_at, job.last_progress_at ?? 0);
496
529
  return Math.max(0, Math.floor((now - since) / 1000));
497
530
  }
531
+ /** The chain steps that could run NEXT in a ceiling-derived phase: `chain[idx]` for every shot not
532
+ * already done. Not the whole chain -- a step further down the chain cannot run until the one before
533
+ * it resolves, and a step resolving MOVES the marker and re-stamps the clock, so it starts a fresh
534
+ * window rather than extending this one. */
535
+ function pendingChainSteps(job) {
536
+ const shots = job.phase === "finish" ? (job.finish_shots || []) : job.phase === "speech" ? (job.speech_shots || []) : [];
537
+ const out = [];
538
+ for (const sh of shots) {
539
+ if (sh.status === "done")
540
+ continue;
541
+ const step = (sh.chain || [])[Math.max(0, Math.trunc(sh.idx) || 0)];
542
+ if (typeof step === "string" && step)
543
+ out.push(step);
544
+ }
545
+ return out;
546
+ }
547
+ /** Size the stall ceiling to the WORK IN THIS JOB rather than to a constant (core#182).
548
+ *
549
+ * THE MECHANISM THIS FIXES. `PHASE_HARD_DEADLINE_SECONDS` fails a phase that has shown no progress
550
+ * for 90 minutes. `filmProgressMarker` deliberately does not count `attempts` -- a step retrying is
551
+ * not a step progressing -- so a chain step that keeps timing out at its own door burns up to
552
+ * FINISH_STEP_MAX_ATTEMPTS full invocations while the marker never moves. Whether that fits inside
553
+ * 90 minutes is a fact about the MODULE, and the ordering between a door`s guard and this ceiling
554
+ * spans separate repositories with nothing asserting it. Modules whose guards exceed the ceiling on
555
+ * a SINGLE attempt already exist, so the 90 minutes is not conservative; it is unrelated.
556
+ *
557
+ * THE DERIVATION, and note it introduces NO new constant: both terms already exist.
558
+ *
559
+ * required = FINISH_STEP_MAX_ATTEMPTS * max(declared ceiling over the steps that could run next)
560
+ * effective = max(PHASE_HARD_DEADLINE_SECONDS, required)
561
+ *
562
+ * The 90-minute constant becomes a FLOOR rather than a guess. It can only ever be raised here, so a
563
+ * wedged phase with nothing declared still fails exactly when it does today.
564
+ *
565
+ * WHY `max` AND NOT `min` ACROSS SHOTS. Any shot advancing re-stamps the clock, so the no-progress
566
+ * window strictly ends when the FIRST shot moves, and `min` would be the tighter reading. It is
567
+ * also the reading that kills correct work: the ceiling must not fire while ANY correctly-running
568
+ * invocation is still inside its own door`s guard. Between a late loud failure and an early false
569
+ * one, this picks late.
570
+ *
571
+ * WHAT IT REFUSES TO DO. A step whose module declares nothing is NOT given a substituted number. It
572
+ * is named in `undeclared`, the floor holds, and the caller reports it -- because a fabricated
573
+ * ceiling would be indistinguishable from a declared one, which is the exact defect class this
574
+ * whole change exists to remove. Conformance fails such a module at the gate.
575
+ *
576
+ * Phases outside CEILING_DERIVED_HOOKS return the floor untouched. */
577
+ export function phaseCeiling(job, modules) {
578
+ const floor = {
579
+ seconds: PHASE_HARD_DEADLINE_SECONDS,
580
+ basis: "floor",
581
+ requiredSeconds: 0,
582
+ longest: null,
583
+ undeclared: [],
584
+ unresolved: [],
585
+ };
586
+ if (job.phase !== "finish" && job.phase !== "speech")
587
+ return floor;
588
+ const steps = pendingChainSteps(job);
589
+ if (!steps.length)
590
+ return floor;
591
+ const byBinding = new Map();
592
+ for (const m of modules || [])
593
+ byBinding.set(m.binding, m);
594
+ const undeclared = [];
595
+ const unresolved = [];
596
+ let longest = null;
597
+ for (const binding of new Set(steps)) {
598
+ const mod = byBinding.get(binding);
599
+ if (!mod) {
600
+ unresolved.push(binding);
601
+ continue;
602
+ }
603
+ const declared = mod.max_invocation_seconds;
604
+ if (typeof declared !== "number" || !Number.isFinite(declared) || declared <= 0) {
605
+ undeclared.push(binding);
606
+ continue;
607
+ }
608
+ if (!longest || declared > longest.seconds)
609
+ longest = { binding, module: mod.name, seconds: declared };
610
+ }
611
+ undeclared.sort();
612
+ unresolved.sort();
613
+ const requiredSeconds = longest ? FINISH_STEP_MAX_ATTEMPTS * longest.seconds : 0;
614
+ const seconds = Math.max(PHASE_HARD_DEADLINE_SECONDS, requiredSeconds);
615
+ return {
616
+ seconds,
617
+ basis: seconds > PHASE_HARD_DEADLINE_SECONDS ? "derived" : "floor",
618
+ requiredSeconds,
619
+ longest,
620
+ undeclared,
621
+ unresolved,
622
+ };
623
+ }
624
+ export function phaseCeilingVerdict(job, modules, now = Date.now()) {
625
+ const ceiling = phaseCeiling(job, modules);
626
+ const ceilingAge = ceilingAgeSeconds(job, now);
627
+ const expired = ceilingAge >= ceiling.seconds;
628
+ if (!expired)
629
+ return { ceiling, ceilingAge, expired, error: null };
630
+ const unbounded = ceiling.undeclared.length + ceiling.unresolved.length;
631
+ const basis = ceiling.basis === "derived" && ceiling.longest
632
+ ? `ceiling ${ceiling.seconds}s derived from ${ceiling.longest.module} (${FINISH_STEP_MAX_ATTEMPTS} attempts x ${ceiling.longest.seconds}s declared)`
633
+ : `ceiling ${ceiling.seconds}s (the floor; ${unbounded} step(s) in this chain declare no per-invocation ceiling)`;
634
+ return {
635
+ ceiling,
636
+ ceilingAge,
637
+ expired,
638
+ error: `render stalled in phase "${job.phase}" for ${Math.floor(ceilingAge / 60)}min with no progress, ${basis}; failing so it does not hang (resubmit to retry) (#129/#704/core#182)`,
639
+ };
640
+ }
498
641
  /** Progress fingerprint for the stall signal (#136): the current phase, how many of its per-shot units
499
642
  * are done, and how many CHAIN STEPS have resolved inside those units. Monotonic within a phase (shots
500
643
  * only go pending->done, `idx` only advances) and it changes on every phase transition, so ANY change is