@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.
- package/README.md +2 -1
- package/conformance/corpus.json +6 -0
- package/dist/dryrun.d.ts +2 -0
- package/dist/dryrun.d.ts.map +1 -1
- package/dist/dryrun.js +4 -1
- package/dist/dryrun.js.map +1 -1
- package/dist/effects.d.ts +18 -5
- package/dist/effects.d.ts.map +1 -1
- package/dist/effects.js +17 -6
- package/dist/effects.js.map +1 -1
- package/dist/engine/ctx.d.ts.map +1 -1
- package/dist/engine/ctx.js +5 -1
- package/dist/engine/ctx.js.map +1 -1
- package/dist/engine/worker-entry.js +1 -0
- package/dist/engine/worker-entry.js.map +1 -1
- package/dist/engine/worker.d.ts +2 -0
- package/dist/engine/worker.d.ts.map +1 -1
- package/dist/engine/worker.js.map +1 -1
- package/dist/errors.d.ts +2 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +5 -0
- package/dist/errors.js.map +1 -1
- package/dist/grammar.d.ts.map +1 -1
- package/dist/grammar.js +8 -2
- package/dist/grammar.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interpret.d.ts.map +1 -1
- package/dist/interpret.js +3 -1
- package/dist/interpret.js.map +1 -1
- package/dist/journal.d.ts +8 -0
- package/dist/journal.d.ts.map +1 -1
- package/dist/journal.js +31 -1
- package/dist/journal.js.map +1 -1
- package/dist/keys.d.ts +10 -1
- package/dist/keys.d.ts.map +1 -1
- package/dist/keys.js +13 -0
- package/dist/keys.js.map +1 -1
- package/dist/perform.d.ts +13 -0
- package/dist/perform.d.ts.map +1 -1
- package/dist/perform.js +124 -34
- package/dist/perform.js.map +1 -1
- package/dist/primitives.d.ts +6 -0
- package/dist/primitives.d.ts.map +1 -1
- package/dist/primitives.js +18 -0
- package/dist/primitives.js.map +1 -1
- package/dist/sim.d.ts +3 -0
- package/dist/sim.d.ts.map +1 -1
- package/dist/sim.js.map +1 -1
- 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
|
*
|
package/dist/journal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../src/journal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,OAAO,EAAiB,MAAM,WAAW,CAAC;AAG1E,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAC/C,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AAEpE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,4EAA4E;IAC5E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IACpF;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IACnF;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,gEAAgE;AAChE,MAAM,MAAM,aAAa;AACvB,iDAAiD;AAC/C;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AAC9B,mEAAmE;GACjE;IAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE;AAC9D,qEAAqE;GACnE;IAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE;AACrE,mEAAmE;GACjE;IAAE,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE;AACxE,8FAA8F;GAC5F;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE;AAC/D,qFAAqF;GACnF;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE;AAC/D,kFAAkF;GAChF;IACE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEN;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,2FAA2F;IAC3F,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,wFAAwF;IACxF,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAO5C,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,KAAK,EAAE,UAAU;IAC1B,QAAQ,CAAC,MAAM,EAAE,KAAK;IARxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAW;IAEhC,oGAAoG;IACpG,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;gBAGrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,KAAK;CAazB;AAED;;;;;;;;;GASG;AACH,qBAAa,oBAAqB,SAAQ,qBAAqB;IAK3D,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM;IALxB,SAAkB,IAAI,EAAE,MAAM,CAAW;gBAGvC,OAAO,EAAE,MAAM,EACN,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM;CAMzB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,GAAG,EAAE,OAAO;CAIzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAGjE;
|
|
1
|
+
{"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../src/journal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,OAAO,EAAiB,MAAM,WAAW,CAAC;AAG1E,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAC/C,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AAEpE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,4EAA4E;IAC5E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IACpF;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IACnF;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,gEAAgE;AAChE,MAAM,MAAM,aAAa;AACvB,iDAAiD;AAC/C;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AAC9B,mEAAmE;GACjE;IAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE;AAC9D,qEAAqE;GACnE;IAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE;AACrE,mEAAmE;GACjE;IAAE,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE;AACxE,8FAA8F;GAC5F;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE;AAC/D,qFAAqF;GACnF;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAAE;AAC/D,kFAAkF;GAChF;IACE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEN;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,2FAA2F;IAC3F,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,wFAAwF;IACxF,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAO5C,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,KAAK,EAAE,UAAU;IAC1B,QAAQ,CAAC,MAAM,EAAE,KAAK;IARxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAW;IAEhC,oGAAoG;IACpG,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;gBAGrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,KAAK;CAazB;AAED;;;;;;;;;GASG;AACH,qBAAa,oBAAqB,SAAQ,qBAAqB;IAK3D,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM;IALxB,SAAkB,IAAI,EAAE,MAAM,CAAW;gBAGvC,OAAO,EAAE,MAAM,EACN,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM;CAMzB;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,GAAG,EAAE,OAAO;CAIzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAGjE;AA8DD,qBAAa,OAAO;IAClB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC;;;;;;;;OAQG;IACH,OAAO,CAAC,OAAO,CAAK;IACpB,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAE9C,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAS;gBAE1B,IAAI,EAAE,WAAW;IAkH7B,OAAO,CAAC,MAAM,CAAC,KAAK;IAIpB;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa;IAoBtD;;;;;;;;;;;OAWG;YACW,OAAO;IASrB;;;;;OAKG;IACG,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA+B1G;;;;;;;;;;OAUG;IACG,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhF,wFAAwF;IAClF,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpF,8FAA8F;IACxF,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAehF;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAoB9E;;;;;;;;OAQG;IACG,MAAM,CACV,GAAG,EAAE,OAAO,EACZ,OAAO,EACH;QAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,GACnD;QAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;KAAE,GACzD;QAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;KAAE,GAChC;QAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;KAAE,EAC9D,OAAO,EAAE,MAAM,EACf,KAAK,GAAE;QACL,QAAQ,CAAC,MAAM,CAAC,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;YAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;SAAE,CAAC;QACnF,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KAClC,GACL,OAAO,CAAC,YAAY,CAAC;IA6BxB;;;;;;;;;;;OAWG;IACG,YAAY,CAChB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM;IACf;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GACzB,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC;IAkB7B,kFAAkF;IAClF,OAAO,IAAI,SAAS,YAAY,EAAE;IAIlC,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS;IAI3C;;;;OAIG;IACH,OAAO,IAAI,SAAS,YAAY,EAAE;IAOlC;;;;;;;;;;;;;;;;;;OAkBG;IACH,iBAAiB,IAAI,MAAM;IAQ3B,iCAAiC;IACjC,aAAa,IAAI,IAAI;CAGtB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAC,CAA4B;gBAElC,SAAS,EAAE,MAAM;IAI7B,GAAG,IAAI,MAAM;IAIb;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI1C,kGAAkG;IAClG,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO9B,mEAAmE;IACnE,IAAI,IAAI,QAAQ;IAIhB,8FAA8F;IAC9F,IAAI,CAAC,QAAQ,EAAE,SAAS,QAAQ,EAAE,GAAG,IAAI;CAG1C"}
|
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
|
*
|
package/dist/journal.js.map
CHANGED
|
@@ -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.
|
package/dist/keys.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
*
|
package/dist/perform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"perform.d.ts","sourceRoot":"","sources":["../src/perform.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
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
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
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
|
-
|
|
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
|
|
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
|