@cotal-ai/lang 0.64.0 → 0.65.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 (52) hide show
  1. package/README.md +2 -1
  2. package/conformance/corpus.json +6 -0
  3. package/dist/dryrun.d.ts +2 -0
  4. package/dist/dryrun.d.ts.map +1 -1
  5. package/dist/dryrun.js +4 -1
  6. package/dist/dryrun.js.map +1 -1
  7. package/dist/effects.d.ts +18 -5
  8. package/dist/effects.d.ts.map +1 -1
  9. package/dist/effects.js +17 -6
  10. package/dist/effects.js.map +1 -1
  11. package/dist/engine/ctx.d.ts.map +1 -1
  12. package/dist/engine/ctx.js +5 -1
  13. package/dist/engine/ctx.js.map +1 -1
  14. package/dist/engine/worker-entry.js +1 -0
  15. package/dist/engine/worker-entry.js.map +1 -1
  16. package/dist/engine/worker.d.ts +2 -0
  17. package/dist/engine/worker.d.ts.map +1 -1
  18. package/dist/engine/worker.js.map +1 -1
  19. package/dist/errors.d.ts +2 -0
  20. package/dist/errors.d.ts.map +1 -1
  21. package/dist/errors.js +5 -0
  22. package/dist/errors.js.map +1 -1
  23. package/dist/grammar.d.ts.map +1 -1
  24. package/dist/grammar.js +8 -2
  25. package/dist/grammar.js.map +1 -1
  26. package/dist/index.d.ts +1 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +1 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/interpret.d.ts.map +1 -1
  31. package/dist/interpret.js +3 -1
  32. package/dist/interpret.js.map +1 -1
  33. package/dist/journal.d.ts +8 -0
  34. package/dist/journal.d.ts.map +1 -1
  35. package/dist/journal.js +31 -1
  36. package/dist/journal.js.map +1 -1
  37. package/dist/keys.d.ts +10 -1
  38. package/dist/keys.d.ts.map +1 -1
  39. package/dist/keys.js +13 -0
  40. package/dist/keys.js.map +1 -1
  41. package/dist/perform.d.ts +13 -0
  42. package/dist/perform.d.ts.map +1 -1
  43. package/dist/perform.js +124 -34
  44. package/dist/perform.js.map +1 -1
  45. package/dist/primitives.d.ts +6 -0
  46. package/dist/primitives.d.ts.map +1 -1
  47. package/dist/primitives.js +18 -0
  48. package/dist/primitives.js.map +1 -1
  49. package/dist/sim.d.ts +3 -0
  50. package/dist/sim.d.ts.map +1 -1
  51. package/dist/sim.js.map +1 -1
  52. package/package.json +1 -1
package/dist/journal.d.ts CHANGED
@@ -63,6 +63,12 @@ export interface JournalEntry {
63
63
  readonly error?: EntryError;
64
64
  /** The external resource this effect bound, so a crash mid-effect is recoverable. */
65
65
  readonly external?: Readonly<Record<string, unknown>>;
66
+ /**
67
+ * The binding of the hold opened for an at-most-once step (spec/cotal-lang.md §7.8). Its own
68
+ * field so the first attempt's `external` stays on the entry as the write's evidence. An entry
69
+ * carrying it is a held step.
70
+ */
71
+ readonly hold?: Readonly<Record<string, unknown>>;
66
72
  /**
67
73
  * WHAT THIS STEP HAS OBSERVED SO FAR, and the distinction this field exists to make is the whole
68
74
  * of #1459.
@@ -332,6 +338,8 @@ export declare class Journal {
332
338
  reissueAs(key: StepKey, requestId: string, attempt: number): Promise<void>;
333
339
  /** Record the external resource the handler created, before its terminal is awaited. */
334
340
  bind(key: StepKey, external: Readonly<Record<string, unknown>>): Promise<void>;
341
+ /** Record a hold's own binding, beside the first attempt's `external` rather than over it. */
342
+ hold(key: StepKey, hold: Readonly<Record<string, unknown>>): Promise<void>;
335
343
  /**
336
344
  * Record ONE OBSERVATION onto a pending entry, leaving it pending.
337
345
  *
@@ -1 +1 @@
1
- {"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../src/journal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../src/journal.ts"],"names":[],"mappings":"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"}
package/dist/journal.js CHANGED
@@ -97,6 +97,7 @@ export function journalEntryKeyString(entry) {
97
97
  */
98
98
  const WHAT_THE_FIELD_IS = {
99
99
  external: "`external` is what a resume re-binds the handler's own record to",
100
+ hold: "`hold` is what a resume re-binds an at-most-once step's hold to",
100
101
  "error.detail": "`error.detail` is how a failed step explains itself, and a resume hands it to the program that catches it",
101
102
  result: "`result` is what a resume hands back INSTEAD of running the step again",
102
103
  observations: "`observations` is the history of what a still-waiting step saw, and a resumed `waitUntil` hands the newest one to the program's own predicate",
@@ -111,10 +112,11 @@ function bindingWithoutCanonicalForm(entry, field, cause) {
111
112
  + `\`${field}\` is a value an effect boundary can carry\n fork(run, "${step}") start again from before this step`);
112
113
  }
113
114
  /** The entry kinds whose `result` is an assembly of branches rather than one handler's value. */
114
- const SCOPE_KINDS = new Set(["parallel", "race", "fanOut", "conclave"]);
115
+ const SCOPE_KINDS = new Set(["parallel", "race", "fanOut", "conclave", "once"]);
115
116
  /** What the crossing rule calls the value it is refusing, so its path reads as the record's own. */
116
117
  const LABEL_OF = {
117
118
  external: "the recorded binding",
119
+ hold: "the recorded hold binding",
118
120
  "error.detail": "the recorded failure detail",
119
121
  result: "the recorded result",
120
122
  observations: "the recorded observation",
@@ -187,6 +189,17 @@ export class Journal {
187
189
  throw bindingWithoutCanonicalForm(e, field, cause);
188
190
  }
189
191
  }
192
+ // AND A HOLD'S BINDING, which a resume re-binds the hold to exactly as it re-binds `external`.
193
+ if (e.hold !== undefined) {
194
+ try {
195
+ assertCrossable(e.hold, LABEL_OF.hold);
196
+ }
197
+ catch (cause) {
198
+ if (!(cause instanceof NotCrossable))
199
+ throw cause;
200
+ throw bindingWithoutCanonicalForm(e, "hold", cause);
201
+ }
202
+ }
190
203
  // AND THE OBSERVATIONS, by the same rule and for a reason the other two do not cover: an
191
204
  // observation is not merely READ back, it is handed to the program's own `terminal` predicate
192
205
  // on the next activation. A recorded observation the language cannot express would therefore
@@ -377,6 +390,23 @@ export class Journal {
377
390
  await this.persist(k, next);
378
391
  this.byKey.set(k, next);
379
392
  }
393
+ /** Record a hold's own binding, beside the first attempt's `external` rather than over it. */
394
+ async hold(key, hold) {
395
+ if (this.readOnly)
396
+ throw new JournalReadOnlyError(key);
397
+ const k = Journal.keyOf(key);
398
+ const entry = this.byKey.get(k);
399
+ if (entry === undefined)
400
+ throw new Error(`hold before begin for ${k}`);
401
+ if (entry.state !== "pending")
402
+ throw new Error(`hold on a settled entry for ${k}; a hold binds only a step whose outcome is still unknown`);
403
+ // The seed check refuses a `hold` that is not crossable (L5024), so one written here would
404
+ // publish an entry this journal's own reload refuses.
405
+ assertCrossable(hold, `the hold binding of ${stepKeyString(key)}`);
406
+ const next = { ...entry, hold };
407
+ await this.persist(k, next);
408
+ this.byKey.set(k, next);
409
+ }
380
410
  /**
381
411
  * Record ONE OBSERVATION onto a pending entry, leaving it pending.
382
412
  *
@@ -1 +1 @@
1
- {"version":3,"file":"journal.js","sourceRoot":"","sources":["../src/journal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"journal.js","sourceRoot":"","sources":["../src/journal.ts"],"names":[],"mappings":"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"}
package/dist/keys.d.ts CHANGED
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import type { EffectKind } from "./primitives.js";
17
17
  /** The concurrency combinators that open a scope. */
18
- export type ScopeKind = "parallel" | "race" | "fanOut" | "conclave";
18
+ export type ScopeKind = "parallel" | "race" | "fanOut" | "conclave" | "once";
19
19
  /**
20
20
  * What may name a level of the scope PATH: a concurrency combinator, or a `waitUntil`.
21
21
  *
@@ -79,6 +79,15 @@ export declare const DIGEST_PREFIX: "sha256:";
79
79
  * dot-separated subject a goal id rides.
80
80
  */
81
81
  export declare function requestId(runId: string, key: StepKey, inputHash: string, attempt?: number): string;
82
+ /**
83
+ * The token a hold for an at-most-once step is minted under. Derived, not the recorded id, because
84
+ * the step's first dispatch may already have armed and settled a pause under that id, and a hold
85
+ * minted there would read that settle back as its own. A pure function of the recorded id, so a
86
+ * resume finds the same hold with nothing recorded before the mint.
87
+ */
88
+ export declare function holdRequestId(requestId: string): string;
89
+ /** A step is at-most-once when any frame on its scope path is a `once`. */
90
+ export declare function atMostOnce(scope: readonly ScopeFrame[]): boolean;
82
91
  export declare function digest(value: unknown): string;
83
92
  /**
84
93
  * A program's identity, as one function so there is only one answer.
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,qDAAqD;AACrD,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEpE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oGAAoG;IACpG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;gDACgD;AAChD,eAAO,MAAM,aAAa,EAAG,SAAkB,CAAC;AAEhD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,MAAM,CAI7F;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE7C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,QAAU,CAAC;AA0BvC,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAEpE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAGlD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAE7D;AAED;;;;;;;GAOG;AACH,qBAAa,QAAQ;IAIP,QAAQ,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE;IAHhD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;gBAEpC,IAAI,GAAE,SAAS,UAAU,EAAO;IAErD,uFAAuF;IACvF,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,SAAK,GAAG,OAAO;IAchD;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW,GAAG,MAAM;IAY9D;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAI3E,sEAAsE;IACtE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ;CAO7F;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,EAAE,CAIrG"}
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"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"}
package/dist/keys.js CHANGED
@@ -38,6 +38,19 @@ export function requestId(runId, key, inputHash, attempt = 0) {
38
38
  .update(canonicalize([runId, stepKeyString(key), inputHash, attempt]), "utf8")
39
39
  .digest("base64url");
40
40
  }
41
+ /**
42
+ * The token a hold for an at-most-once step is minted under. Derived, not the recorded id, because
43
+ * the step's first dispatch may already have armed and settled a pause under that id, and a hold
44
+ * minted there would read that settle back as its own. A pure function of the recorded id, so a
45
+ * resume finds the same hold with nothing recorded before the mint.
46
+ */
47
+ export function holdRequestId(requestId) {
48
+ return createHash("sha256").update(canonicalize([requestId, "hold"]), "utf8").digest("base64url");
49
+ }
50
+ /** A step is at-most-once when any frame on its scope path is a `once`. */
51
+ export function atMostOnce(scope) {
52
+ return scope.some((f) => f.kind === "once");
53
+ }
41
54
  export function digest(value) {
42
55
  return DIGEST_PREFIX + createHash("sha256").update(canonicalize(value), "utf8").digest("hex");
43
56
  }
package/dist/keys.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"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"}
package/dist/perform.d.ts CHANGED
@@ -1,3 +1,14 @@
1
+ /**
2
+ * The effect seam, shared by both engines.
3
+ *
4
+ * {@link performEffect} is the durable core (key allocation, journal lookup and replay, the
5
+ * pending protocol, the two failure domains), and {@link dispatchPrimitive} is the per-primitive
6
+ * wiring from evaluated argument VALUES to the handler, with the hashed projections that decide
7
+ * each effect's identity. The tree-walker (`interpret.ts`) delegates here; the v2 engine host
8
+ * calls it directly. ONE function over ONE table: a second copy of a projection would be a
9
+ * divergence the differential suite could only find program-by-program.
10
+ */
11
+ import { RuntimeFault } from "./errors.js";
1
12
  import { type KeyScope, type PathKind, type ScopeKind, type StepKey } from "./keys.js";
2
13
  import { Journal, RunClock } from "./journal.js";
3
14
  import { type EffectKind } from "./primitives.js";
@@ -23,6 +34,8 @@ export interface EffectFrame {
23
34
  readonly signal: CancelSignal;
24
35
  }
25
36
  export declare function option(bag: unknown, key: string): unknown;
37
+ /** L4011 for `once`'s body, raised by both engines before the scope's entry begins. */
38
+ export declare function onceBodyNotCallable(): RuntimeFault;
26
39
  /**
27
40
  * Perform one effect, or replay it.
28
41
  *
@@ -1 +1 @@
1
- {"version":3,"file":"perform.d.ts","sourceRoot":"","sources":["../src/perform.ts"],"names":[],"mappings":"AAWA,OAAO,EAAoC,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACzH,OAAO,EAAE,OAAO,EAAyB,QAAQ,EAAmB,MAAM,cAAc,CAAC;AAEzF,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG9D,OAAO,EAQL,KAAK,YAAY,EAGjB,KAAK,aAAa,EAGnB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;CAC/B;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAEzD;AAgHD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EACpE,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,OAAO,CAAC,CAoLlB;AAsOD;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAibvH;AAED,+DAA+D;AAC/D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC,CAqBjH;AAUD;;;;;;;GAOG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC;CAC3F;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,4FAA4F;IAC5F,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACpE;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IACnF,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,2FAA2F;AAC3F,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IACnF,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAuDD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC,EAC/E,OAAO,CAAC,EAAE,OAAO;AACjB,0FAA0F;AAC1F,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,GAAG,SAAS,GAC/D,OAAO,CAAC,OAAO,CAAC,CAuRlB;AAYD,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,OAAO;AACd;;;;;;GAMG;AACH,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAC9B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,aAAa;AAClB,4FAA4F;AAC5F,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GACzB,OAAO,CAAC,YAAY,CAAC,CAuYvB"}
1
+ {"version":3,"file":"perform.d.ts","sourceRoot":"","sources":["../src/perform.ts"],"names":[],"mappings":"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"}
package/dist/perform.js CHANGED
@@ -9,10 +9,10 @@
9
9
  * divergence the differential suite could only find program-by-program.
10
10
  */
11
11
  import { InterpreterDefect, RunDivergence, RuntimeFault, ScopeBranchMissing, UnwalkableScope, isStackExhaustion, messageOf, stackOf } from "./errors.js";
12
- import { digest, requestId, stepKeyString } from "./keys.js";
12
+ import { atMostOnce, digest, holdRequestId, requestId, scopePathString, stepKeyString } from "./keys.js";
13
13
  import { Journal, JournalAppendRejected, RunClock } from "./journal.js";
14
14
  import { NotCrossable, assertCrossable, assertScopeValueCrossable, deepFreeze } from "./values.js";
15
- import { PRIMITIVES } from "./primitives.js";
15
+ import { HOLDABLE_KINDS, PRIMITIVES } from "./primitives.js";
16
16
  import { parseDuration } from "./duration.js";
17
17
  import { notifyFactViolation } from "./notify-fact.js";
18
18
  import { Cancelled, RunReleased, EffectRefused, RunHeld, EffectError, applyCheckpointPolicy, } from "./effects.js";
@@ -126,6 +126,17 @@ function recordableError(e, kind) {
126
126
  };
127
127
  }
128
128
  }
129
+ /**
130
+ * L4028: an effect kind `once` does not admit (spec/cotal-lang.md §7.8), refused before its entry
131
+ * begins, so no handler method is called and a resume reaches the same refusal.
132
+ */
133
+ function notHoldable(kind, path) {
134
+ return new RuntimeFault("L4028", `\`${kind}\` runs inside \`once\` at ${scopePathString(path)}, and \`once\` admits only \`ask\`: a resume could not hold any other kind without dispatching it again or losing run state it builds. Move the \`${kind}\` outside the \`once\` that wraps the write.`);
135
+ }
136
+ /** L4011 for `once`'s body, raised by both engines before the scope's entry begins. */
137
+ export function onceBodyNotCallable() {
138
+ return new RuntimeFault("L4011", "the body of `once` is not a function, so it cannot be called");
139
+ }
129
140
  /**
130
141
  * Perform one effect, or replay it.
131
142
  *
@@ -186,6 +197,10 @@ export async function performEffect(host, kind, name, hashedInput, perform, fram
186
197
  // identity the far side may never have seen. An entry with no recorded id predates this rule.
187
198
  const recorded = verdict.verdict === "pending" && verdict.entry.requestId !== undefined ? verdict.entry : undefined;
188
199
  const reqId = recorded?.requestId ?? requestId(host.options.runId, key, inputHash);
200
+ // AT MOST ONCE (spec/cotal-lang.md §7.8): a pending step under `once` may already have written,
201
+ // so it is never dispatched again. Its outcome is unknown, and a hold asks for it.
202
+ if (verdict.verdict === "pending" && atMostOnce(key.scope))
203
+ return await performHold(host, key, reqId, verdict.entry.hold, frame);
189
204
  // WHICH attempt is open, not merely which id. An id alone cannot say how much of an escalation
190
205
  // chain is already spent, and a recovery that cannot tell replays the hop: it mints again under
191
206
  // the id the far side already holds and reads that mint's cached expiry back as a fresh
@@ -252,10 +267,6 @@ export async function performEffect(host, kind, name, hashedInput, perform, fram
252
267
  }
253
268
  catch (e) {
254
269
  const endedAt = host.options.handler.now();
255
- // A journal that just refused an append cannot be asked to record why. It leaves by its own
256
- // door, unwrapped, before anything tries to settle on top of it.
257
- if (e instanceof JournalAppendRejected)
258
- throw e;
259
270
  // A REFUSAL IS NOT A FAILURE. The handler attempted nothing, so recording `failed` would
260
271
  // replay a failure forever for work the world never saw (measured: the mesh handler's L5016
261
272
  // settled `failed`, and a run started before the durable-action surface landed could never
@@ -265,39 +276,103 @@ export async function performEffect(host, kind, name, hashedInput, perform, fram
265
276
  await host.journal.settle(key, { status: "refused", error: { code: e.code, kind: "refused", message: e.message } }, endedAt);
266
277
  throw new RunHeld(stepKeyString(key), e.message);
267
278
  }
268
- if (e instanceof Cancelled) {
269
- await host.journal.settle(key, { status: "cancelled" }, endedAt);
270
- throw e;
271
- }
272
- // A handler may raise a language code directly, and it survives. The simulator's "unscripted
273
- // effect" is L6001, and flattening that to a generic handler fault would tell a caller acting
274
- // on `code` that the handler broke, when what actually happened is that their script is
275
- // incomplete. Only the L-code shape is honoured: anything else a thrown object happens to
276
- // call `code` (an errno, an HTTP status) is a handler fault and is recorded as one.
277
- // Read defensively: a handler is other people's code and may throw a primitive, and reading
278
- // `.code` or `.message` off `null` would replace its failure with the recorder's own.
279
- const raised = e?.code;
280
- const carried = typeof raised === "string" && /^L\d{4}$/.test(raised) ? raised : null;
281
- const recorded = e instanceof EffectError ? recordableError(e, "handler-fault") : undefined;
282
- // THE STACK IS THE ONLY FIELD THAT NAMES THE HOST CODE. A handler fault happens outside both the
283
- // program and the language, so `message` alone ("timeout") is the symptom with no origin, and
284
- // the durable entry is usually the only look anyone gets at it. Read defensively, by the same
285
- // rule as `messageOf` one line up: a primitive throw carries no stack and none is recorded.
286
- const stack = stackOf(e);
279
+ return await settleThrown(host, key, frame, e, endedAt);
280
+ }
281
+ const endedAt = host.options.handler.now();
282
+ await host.journal.settle(key, { status: "ok", result: deepFreeze(result) }, endedAt);
283
+ frame.clock.advance(endedAt);
284
+ return result;
285
+ }
286
+ /**
287
+ * Settle a step whose dispatch threw anything but a refusal, and rethrow what the program sees.
288
+ * {@link performEffect} and {@link performHold} differ only in what a refusal records.
289
+ */
290
+ async function settleThrown(host, key, frame, e, endedAt) {
291
+ // A journal that just refused an append cannot be asked to record why. It leaves by its own
292
+ // door, unwrapped, before anything tries to settle on top of it.
293
+ if (e instanceof JournalAppendRejected)
294
+ throw e;
295
+ if (e instanceof Cancelled) {
296
+ await host.journal.settle(key, { status: "cancelled" }, endedAt);
297
+ throw e;
298
+ }
299
+ // A handler may raise a language code directly, and it survives. The simulator's "unscripted
300
+ // effect" is L6001, and flattening that to a generic handler fault would tell a caller acting
301
+ // on `code` that the handler broke, when what actually happened is that their script is
302
+ // incomplete. Only the L-code shape is honoured: anything else a thrown object happens to
303
+ // call `code` (an errno, an HTTP status) is a handler fault and is recorded as one.
304
+ // Read defensively: a handler is other people's code and may throw a primitive, and reading
305
+ // `.code` or `.message` off `null` would replace its failure with the recorder's own.
306
+ const raised = e?.code;
307
+ const carried = typeof raised === "string" && /^L\d{4}$/.test(raised) ? raised : null;
308
+ const recorded = e instanceof EffectError ? recordableError(e, "handler-fault") : undefined;
309
+ // THE STACK IS THE ONLY FIELD THAT NAMES THE HOST CODE. A handler fault happens outside both the
310
+ // program and the language, so `message` alone ("timeout") is the symptom with no origin, and
311
+ // the durable entry is usually the only look anyone gets at it. Read defensively, by the same
312
+ // rule as `messageOf` one line up: a primitive throw carries no stack and none is recorded.
313
+ const stack = stackOf(e);
314
+ const error = {
315
+ ...(recorded !== undefined
316
+ ? recorded.error
317
+ : { code: carried ?? "L4000", kind: "handler-fault", message: messageOf(e) }),
318
+ ...(stack !== undefined ? { stack } : {}),
319
+ };
320
+ await host.journal.settle(key, { status: "failed", error }, endedAt);
321
+ frame.clock.advance(endedAt);
322
+ // THE CALLER AND THE RECORD SAY THE SAME THING. Rethrowing the handler's own error unchanged is
323
+ // right whenever the record kept it; when the detail forced a downgrade it is not, because the
324
+ // program would then catch an L6002 the journal has no L6002 for.
325
+ throw recorded?.faithful === true ? e : new EffectError(error.code, error.kind, error.message);
326
+ }
327
+ /**
328
+ * The hold of an at-most-once step (spec/cotal-lang.md §7.8): a checkpoint under the hold id
329
+ * whose answer becomes the step's result. The step's own handler method is never called here.
330
+ *
331
+ * A refused hold does not settle `refused`. That verdict means "never attempted" and dispatches,
332
+ * so recording it would turn a host that cannot open a checkpoint into the second write. The entry
333
+ * stays pending with the hold it had, and the next capable host opens the same hold.
334
+ */
335
+ async function performHold(host, key, recorded, resume, frame) {
336
+ const step = stepKeyString(key);
337
+ const ctx = {
338
+ key,
339
+ signal: frame.signal,
340
+ requestId: holdRequestId(recorded),
341
+ attempt: 0,
342
+ ...(resume !== undefined ? { resume } : {}),
343
+ bind: (hold) => host.journal.hold(key, hold),
344
+ };
345
+ const prompt = `The outcome of ${step} is unknown: it was dispatched under request id ${recorded} and never settled, `
346
+ + "so it is not dispatched again. Answer with the step's result; your answer becomes its value.";
347
+ let raw;
348
+ try {
349
+ raw = await host.options.handler.checkpoint({ prompt }, ctx);
350
+ assertCrossable(raw, `the hold of ${step}`);
351
+ // A hold settles only on `resolved` or `expired`. Any other outcome is a handler fault, never
352
+ // an answer: read as one, it would record a result for the write that nobody gave.
353
+ const outcome = raw.outcome;
354
+ if (outcome !== "resolved" && outcome !== "expired")
355
+ throw new Error(`the hold of ${step} answered outcome ${JSON.stringify(outcome)}; a checkpoint answers "resolved" or "expired"`);
356
+ }
357
+ catch (e) {
358
+ if (e instanceof EffectRefused)
359
+ throw new RunHeld(step, e.message, true);
360
+ return await settleThrown(host, key, frame, e, host.options.handler.now());
361
+ }
362
+ const endedAt = host.options.handler.now();
363
+ if (raw.outcome === "expired") {
287
364
  const error = {
288
- ...(recorded !== undefined
289
- ? recorded.error
290
- : { code: carried ?? "L4000", kind: "handler-fault", message: messageOf(e) }),
291
- ...(stack !== undefined ? { stack } : {}),
365
+ code: "L4027",
366
+ kind: "outcome-unknown",
367
+ message: `L4027 At-most-once step's outcome was never settled\n\n step ${step} request id ${recorded}\n\n`
368
+ + "The step was dispatched and its outcome never settled, and nobody answered its hold in time. It is not dispatched again.\n\n"
369
+ + `Options\n catch it: \`e.code === "L4027"\` and check the far side for the write under request id ${recorded}`,
292
370
  };
293
371
  await host.journal.settle(key, { status: "failed", error }, endedAt);
294
372
  frame.clock.advance(endedAt);
295
- // THE CALLER AND THE RECORD SAY THE SAME THING. Rethrowing the handler's own error unchanged is
296
- // right whenever the record kept it; when the detail forced a downgrade it is not, because the
297
- // program would then catch an L6002 the journal has no L6002 for.
298
- throw recorded?.faithful === true ? e : new EffectError(error.code, error.kind, error.message);
373
+ throw new EffectError(error.code, error.kind, error.message);
299
374
  }
300
- const endedAt = host.options.handler.now();
375
+ const result = raw.value ?? null;
301
376
  await host.journal.settle(key, { status: "ok", result: deepFreeze(result) }, endedAt);
302
377
  frame.clock.advance(endedAt);
303
378
  return result;
@@ -559,6 +634,8 @@ export async function dispatchPrimitive(host, name, args, frame) {
559
634
  const bag = args[spec.optionsAt];
560
635
  const stepName = (name === "checkpoint" ? args[0] : option(bag, "name"));
561
636
  const handler = host.options.handler;
637
+ if (spec.kind !== null && !HOLDABLE_KINDS.has(spec.kind) && atMostOnce(frame.keys.path))
638
+ throw notHoldable(spec.kind, frame.keys.path);
562
639
  switch (name) {
563
640
  case "spawn": {
564
641
  // The first argument is a persona name, or a record carrying the persona WITH its model
@@ -960,6 +1037,8 @@ function digestFacts(of, losers) {
960
1037
  export async function performScope(host, scopeKey, frame, body, subject,
961
1038
  /** The `branchDigest` over a named loser set. Absent where there is nothing to digest. */
962
1039
  branchDigest) {
1040
+ if (scopeKey.kind === "conclave" && atMostOnce(scopeKey.scope))
1041
+ throw notHoldable("conclave", scopeKey.scope);
963
1042
  const inputHash = digest(subject === undefined
964
1043
  ? { kind: scopeKey.kind, name: scopeKey.name }
965
1044
  : { kind: scopeKey.kind, name: scopeKey.name, subject });
@@ -1609,6 +1688,17 @@ only) {
1609
1688
  throw new ScopeFailed(bodyError, { closed: true });
1610
1689
  return { branches: [branchKey], value, closed: true };
1611
1690
  }
1691
+ if (name === "once") {
1692
+ // One body, the fixed branch `in`, as `conclave`'s, with no open and no close. `only` is
1693
+ // ignored: a migration's walk always enters `in`, because one branch is never a loser.
1694
+ const branch = frame.branch(scopeKind, scopeName, occurrence, "in");
1695
+ try {
1696
+ return { branches: ["in"], value: await first(branch, []) };
1697
+ }
1698
+ finally {
1699
+ frame.clock.join([branch.clock]);
1700
+ }
1701
+ }
1612
1702
  throw new InterpreterDefect(`the primitive ${name}`);
1613
1703
  }
1614
1704
  //# sourceMappingURL=perform.js.map