@rulvar/core 1.56.0 → 1.57.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/dist/index.d.ts +10 -1
- package/dist/index.js +11 -7
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -2280,12 +2280,21 @@ declare function replayDisposition(entry: JournalEntry, fold: AbandonFold, optio
|
|
|
2280
2280
|
registry?: DeriverRegistry;
|
|
2281
2281
|
terminal?: JournalEntry;
|
|
2282
2282
|
invalidated?: ReadonlySet<number>;
|
|
2283
|
+
/**
|
|
2284
|
+
* True when the loaded journal carries a run settle with runStatus
|
|
2285
|
+
* 'ok' (the resume is a pure replay of a finished run): unstamped
|
|
2286
|
+
* limit entries then replay instead of re-running live. Terminal
|
|
2287
|
+
* settles other than ok keep the retry semantics.
|
|
2288
|
+
*/
|
|
2289
|
+
runSettledOk?: boolean;
|
|
2283
2290
|
}): ReplayDisposition;
|
|
2284
2291
|
/**
|
|
2285
2292
|
* Adapts the predicate to the matcher's disposition hook: two-phase
|
|
2286
2293
|
* operations dispatch on their terminal, single-phase on themselves.
|
|
2287
2294
|
*/
|
|
2288
|
-
declare function dispositionHook(fold: AbandonFold, registry: DeriverRegistry, invalidated?: ReadonlySet<number
|
|
2295
|
+
declare function dispositionHook(fold: AbandonFold, registry: DeriverRegistry, invalidated?: ReadonlySet<number>, options?: {
|
|
2296
|
+
runSettledOk?: boolean;
|
|
2297
|
+
}): (op: JournalOperation) => ReplayDisposition;
|
|
2289
2298
|
//#endregion
|
|
2290
2299
|
//#region src/journal/resolution.d.ts
|
|
2291
2300
|
type ResolutionAttempt = {
|
package/dist/index.js
CHANGED
|
@@ -4340,11 +4340,13 @@ function buildAbandonFold(entries) {
|
|
|
4340
4340
|
return isCovered(entry);
|
|
4341
4341
|
} };
|
|
4342
4342
|
}
|
|
4343
|
-
function applyRule(rule, op) {
|
|
4343
|
+
function applyRule(rule, op, runSettledOk) {
|
|
4344
4344
|
const terminal = op.terminal ?? op.running;
|
|
4345
4345
|
switch (rule) {
|
|
4346
4346
|
case "replay": return "replay";
|
|
4347
|
-
case "memoize-limit":
|
|
4347
|
+
case "memoize-limit":
|
|
4348
|
+
if (terminal.memoizeOutcome ?? op.running.memoizeOutcome ?? false) return "replay";
|
|
4349
|
+
return runSettledOk ? "replay" : "rerun";
|
|
4348
4350
|
case "memoize-task-error":
|
|
4349
4351
|
if (!(terminal.memoizeOutcome ?? op.running.memoizeOutcome ?? false) || terminal.error === void 0) return "rerun";
|
|
4350
4352
|
return classifyAgentError(agentErrorFromWireSafe(terminal)) === "task" ? "replay" : "rerun";
|
|
@@ -4381,17 +4383,18 @@ function replayDisposition(entry, fold, options) {
|
|
|
4381
4383
|
if (options?.invalidated?.has(entry.seq) === true) return "rerun";
|
|
4382
4384
|
const deriver = options?.registry?.get(entry.hashVersion) ?? deriverV2;
|
|
4383
4385
|
const status = (options?.terminal ?? entry).status;
|
|
4384
|
-
return applyRule(deriver.dispositionTable[status], op);
|
|
4386
|
+
return applyRule(deriver.dispositionTable[status], op, options?.runSettledOk ?? false);
|
|
4385
4387
|
}
|
|
4386
4388
|
/**
|
|
4387
4389
|
* Adapts the predicate to the matcher's disposition hook: two-phase
|
|
4388
4390
|
* operations dispatch on their terminal, single-phase on themselves.
|
|
4389
4391
|
*/
|
|
4390
|
-
function dispositionHook(fold, registry, invalidated) {
|
|
4392
|
+
function dispositionHook(fold, registry, invalidated, options) {
|
|
4391
4393
|
return (op) => replayDisposition(op.running, fold, {
|
|
4392
4394
|
registry,
|
|
4393
4395
|
...op.terminal === void 0 ? {} : { terminal: op.terminal },
|
|
4394
|
-
...invalidated === void 0 ? {} : { invalidated }
|
|
4396
|
+
...invalidated === void 0 ? {} : { invalidated },
|
|
4397
|
+
...options?.runSettledOk === void 0 ? {} : { runSettledOk: options.runSettledOk }
|
|
4395
4398
|
});
|
|
4396
4399
|
}
|
|
4397
4400
|
//#endregion
|
|
@@ -16684,8 +16687,9 @@ function createEngine(options) {
|
|
|
16684
16687
|
strict: resumeCtx?.strict ?? false
|
|
16685
16688
|
});
|
|
16686
16689
|
for (const seqToInvalidate of invalidated) replayer.invalidate(seqToInvalidate);
|
|
16687
|
-
|
|
16688
|
-
replayer.
|
|
16690
|
+
const runSettledOk = resumeCtx !== void 0 && lastRunSettle(resumeCtx.priorEntries)?.runStatus === "ok";
|
|
16691
|
+
replayer.setDisposition(dispositionHook(replayer.fold.abandonFold, registry, replayer.invalidatedSeqs, { runSettledOk }));
|
|
16692
|
+
replayer.setAliasDisposition(dispositionHook({ isAbandoned: () => false }, registry, replayer.invalidatedSeqs, { runSettledOk }));
|
|
16689
16693
|
if (resumeCtx !== void 0) {
|
|
16690
16694
|
const prior = replayer.ledger();
|
|
16691
16695
|
budgetSeed = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rulvar/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.57.0",
|
|
4
4
|
"description": "Rulvar core: L0 contracts, journal kernel, ctx primitives, agent runtime, model router, tool system, dynamic orchestrator, InMemory and JSONL stores, event stream.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|