@plurnk/plurnk-service 1.19.3 → 1.20.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/.env.defaults +6 -5
- package/SPEC.md +177 -111
- package/dist/build-info.json +1 -1
- package/dist/core/AdmittedTurnExecutor.d.ts +2 -2
- package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
- package/dist/core/AdmittedTurnExecutor.js +12 -16
- package/dist/core/AdmittedTurnExecutor.js.map +1 -1
- package/dist/core/BareBatchRunner.d.ts +5 -1
- package/dist/core/BareBatchRunner.d.ts.map +1 -1
- package/dist/core/BareBatchRunner.js +86 -50
- package/dist/core/BareBatchRunner.js.map +1 -1
- package/dist/core/Dispatcher.d.ts +2 -2
- package/dist/core/Dispatcher.d.ts.map +1 -1
- package/dist/core/Dispatcher.js +23 -57
- package/dist/core/Dispatcher.js.map +1 -1
- package/dist/core/Dispatcher.sql +7 -0
- package/dist/core/LogBody.js +2 -2
- package/dist/core/LogBody.js.map +1 -1
- package/dist/core/LogEntryProjection.d.ts.map +1 -1
- package/dist/core/LogEntryProjection.js +0 -4
- package/dist/core/LogEntryProjection.js.map +1 -1
- package/dist/core/LoopDriver.d.ts.map +1 -1
- package/dist/core/LoopDriver.js +17 -4
- package/dist/core/LoopDriver.js.map +1 -1
- package/dist/core/PacketBuilder.d.ts.map +1 -1
- package/dist/core/PacketBuilder.js +3 -2
- package/dist/core/PacketBuilder.js.map +1 -1
- package/dist/core/PacketBuilder.sql +5 -0
- package/dist/core/ProviderRecovery.d.ts +9 -0
- package/dist/core/ProviderRecovery.d.ts.map +1 -0
- package/dist/core/ProviderRecovery.js +22 -0
- package/dist/core/ProviderRecovery.js.map +1 -0
- package/dist/core/ServiceTeardown.d.ts +1 -1
- package/dist/core/ServiceTeardown.d.ts.map +1 -1
- package/dist/core/ServiceTeardown.js +4 -2
- package/dist/core/ServiceTeardown.js.map +1 -1
- package/dist/core/StrikeRail.d.ts +3 -0
- package/dist/core/StrikeRail.d.ts.map +1 -1
- package/dist/core/StrikeRail.js +16 -1
- package/dist/core/StrikeRail.js.map +1 -1
- package/dist/core/TurnDispositionHandler.d.ts +3 -2
- package/dist/core/TurnDispositionHandler.d.ts.map +1 -1
- package/dist/core/TurnDispositionHandler.js +48 -15
- package/dist/core/TurnDispositionHandler.js.map +1 -1
- package/dist/core/TurnMaterialization.d.ts.map +1 -1
- package/dist/core/TurnMaterialization.js +7 -1
- package/dist/core/TurnMaterialization.js.map +1 -1
- package/dist/core/TurnOps.d.ts.map +1 -1
- package/dist/core/TurnOps.js +4 -0
- package/dist/core/TurnOps.js.map +1 -1
- package/dist/core/TurnRunner.d.ts +0 -4
- package/dist/core/TurnRunner.d.ts.map +1 -1
- package/dist/core/TurnRunner.js +32 -100
- package/dist/core/TurnRunner.js.map +1 -1
- package/dist/core/TurnSources.sql +1 -1
- package/dist/core/ambient.sql +2 -2
- package/dist/core/packet-wire.d.ts.map +1 -1
- package/dist/core/packet-wire.js +67 -47
- package/dist/core/packet-wire.js.map +1 -1
- package/dist/core/results.d.ts +1 -0
- package/dist/core/results.d.ts.map +1 -1
- package/dist/core/results.js +7 -0
- package/dist/core/results.js.map +1 -1
- package/dist/core/turn-scheduler.js +1 -1
- package/dist/core/turn-scheduler.js.map +1 -1
- package/dist/core/unconcluded-emission.d.ts +7 -0
- package/dist/core/unconcluded-emission.d.ts.map +1 -0
- package/dist/core/unconcluded-emission.js +11 -0
- package/dist/core/unconcluded-emission.js.map +1 -0
- package/dist/core/unconcluded-emission.sql +14 -0
- package/dist/schemes/Log.d.ts.map +1 -1
- package/dist/schemes/Log.js +1 -0
- package/dist/schemes/Log.js.map +1 -1
- package/dist/server/Retention.d.ts.map +1 -1
- package/dist/server/Retention.js +2 -0
- package/dist/server/Retention.js.map +1 -1
- package/dist/server/Retention.sql +5 -0
- package/dist/server/logEntry.sql +2 -2
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +4 -1
- package/dist/service.js.map +1 -1
- package/migrations/006_log.sql +10 -4
- package/package.json +161 -163
package/dist/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"package":"@plurnk/plurnk-service","version":"1.
|
|
1
|
+
{"package":"@plurnk/plurnk-service","version":"1.20.0","revision":"e546e762f4003c68993473ab86bf635f55728912","dirty":false}
|
|
@@ -17,7 +17,7 @@ export default class AdmittedTurnExecutor {
|
|
|
17
17
|
dispatcher: Dispatcher;
|
|
18
18
|
bareBatch: BareBatchRunner;
|
|
19
19
|
});
|
|
20
|
-
executeAdmittedTurn({ statements, source, sourceModelCallId, origin, workspaceId, workerId, loopId, turnId, fromSequence, maxCommands, failOnOperationError, recoverableParseErrors, emptyTurn,
|
|
20
|
+
executeAdmittedTurn({ statements, source, sourceModelCallId, origin, workspaceId, workerId, loopId, turnId, fromSequence, maxCommands, failOnOperationError, recoverableParseErrors, emptyTurn, finalResponse, bare, signal, onDispatch, onSettled, }: {
|
|
21
21
|
statements: readonly PlurnkStatement[];
|
|
22
22
|
source: string | null;
|
|
23
23
|
sourceModelCallId?: number | null;
|
|
@@ -31,7 +31,7 @@ export default class AdmittedTurnExecutor {
|
|
|
31
31
|
failOnOperationError?: boolean;
|
|
32
32
|
recoverableParseErrors?: readonly ParseErrorInfo[];
|
|
33
33
|
emptyTurn?: boolean;
|
|
34
|
-
|
|
34
|
+
finalResponse?: boolean;
|
|
35
35
|
bare?: BareExecution;
|
|
36
36
|
signal?: AbortSignal;
|
|
37
37
|
onDispatch?: (logEntryId: number) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdmittedTurnExecutor.d.ts","sourceRoot":"","sources":["../../src/core/AdmittedTurnExecutor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAOzC,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAInD,OAAO,KAAK,EAAE,cAAc,EAAsC,aAAa,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAO7H,MAAM,CAAC,OAAO,OAAO,oBAAoB;;IAQrC,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE;QACnE,EAAE,EAAE,EAAE,CAAC;QACP,OAAO,EAAE,cAAc,CAAC;QACxB,OAAO,EAAE,aAAa,CAAC;QACvB,QAAQ,EAAE,UAAU,CAAC;QACrB,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,EAAE,eAAe,CAAC;KAC9B,EAOA;IAMK,mBAAmB,CAAC,EACtB,UAAU,EACV,MAAM,EACN,iBAAwB,EACxB,MAAM,EACN,WAAW,EACX,QAAQ,EACR,MAAM,EACN,MAAM,EACN,YAAY,EACZ,WAAsC,EACtC,oBAA4B,EAC5B,sBAA2B,EAC3B,SAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"AdmittedTurnExecutor.d.ts","sourceRoot":"","sources":["../../src/core/AdmittedTurnExecutor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAOzC,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAInD,OAAO,KAAK,EAAE,cAAc,EAAsC,aAAa,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAO7H,MAAM,CAAC,OAAO,OAAO,oBAAoB;;IAQrC,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE;QACnE,EAAE,EAAE,EAAE,CAAC;QACP,OAAO,EAAE,cAAc,CAAC;QACxB,OAAO,EAAE,aAAa,CAAC;QACvB,QAAQ,EAAE,UAAU,CAAC;QACrB,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,EAAE,eAAe,CAAC;KAC9B,EAOA;IAMK,mBAAmB,CAAC,EACtB,UAAU,EACV,MAAM,EACN,iBAAwB,EACxB,MAAM,EACN,WAAW,EACX,QAAQ,EACR,MAAM,EACN,MAAM,EACN,YAAY,EACZ,WAAsC,EACtC,oBAA4B,EAC5B,sBAA2B,EAC3B,SAAiB,EACjB,aAA8D,EAC9D,IAAI,EACJ,MAAM,EACN,UAAU,EACV,SAAS,GACZ,EAAE;QACC,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;QACvC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,MAAM,EAAE,UAAU,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,sBAAsB,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;QACnD,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,IAAI,CAAC,EAAE,aAAa,CAAC;QACrB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;QAC1C,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5D,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAmP9B;CAGJ"}
|
|
@@ -33,33 +33,27 @@ export default class AdmittedTurnExecutor {
|
|
|
33
33
|
// Every admitted producer program is scheduled, dispatched, recorded, and
|
|
34
34
|
// completed here; inference is only the model-specific way one program is
|
|
35
35
|
// acquired and supplied with BARE capability.
|
|
36
|
-
async executeAdmittedTurn({ statements, source, sourceModelCallId = null, origin, workspaceId, workerId, loopId, turnId, fromSequence, maxCommands = Number.POSITIVE_INFINITY, failOnOperationError = false, recoverableParseErrors = [], emptyTurn = false,
|
|
36
|
+
async executeAdmittedTurn({ statements, source, sourceModelCallId = null, origin, workspaceId, workerId, loopId, turnId, fromSequence, maxCommands = Number.POSITIVE_INFINITY, failOnOperationError = false, recoverableParseErrors = [], emptyTurn = false, finalResponse = TurnDisposition.requestsCompletion(statements), bare, signal, onDispatch, onSettled, }) {
|
|
37
37
|
// {§turn-shape} — continuation is the default; lifecycle verbs express explicit intent.
|
|
38
38
|
// {§turn-disposition} — every WAIT is admitted and dispatched; together they are one park,
|
|
39
39
|
// and the last of them settles the turn.
|
|
40
|
-
const dispositions = statements.filter(TurnDisposition.is);
|
|
40
|
+
const dispositions = statements.filter((statement) => TurnDisposition.is(statement) || TurnDisposition.isCompletion(statement));
|
|
41
41
|
const finalOp = dispositions.at(-1);
|
|
42
42
|
if (statements.length === 0 && !emptyTurn) {
|
|
43
43
|
throw new Error("an admitted operation batch must contain operations");
|
|
44
44
|
}
|
|
45
45
|
// {§empty-turn} — a model response with no operation is a turn all the same: its text and
|
|
46
|
-
// reasoning are kept,
|
|
47
|
-
if (statements.length === 0) {
|
|
46
|
+
// reasoning are kept, and the strike rail counts it once, silently.
|
|
47
|
+
if (statements.length === 0 && recoverableParseErrors.length === 0) {
|
|
48
48
|
if (source !== null)
|
|
49
49
|
await Turn.recordSource(this.#db, turnId, "ops", source, { modelCallId: sourceModelCallId });
|
|
50
|
-
this.#notices.push(workspaceId, workerId, loopId, {
|
|
51
|
-
source: "engine:turn",
|
|
52
|
-
kind: "turn_no_operations",
|
|
53
|
-
level: "warn",
|
|
54
|
-
message: "Emission contained no OPs or conclusion.",
|
|
55
|
-
});
|
|
56
50
|
await Turn.complete(this.#db, turnId, TURN_STATUS_IMPLICIT_CONTINUE);
|
|
57
|
-
return { status: TURN_STATUS_IMPLICIT_CONTINUE, outcomes: [], fingerprint: StrikeRail.
|
|
51
|
+
return { status: TURN_STATUS_IMPLICIT_CONTINUE, outcomes: [], fingerprint: StrikeRail.fingerprintEmptyTurn(source ?? ""), emptyTurn: true };
|
|
58
52
|
}
|
|
59
53
|
let wait = false;
|
|
60
54
|
const pendingEngineErrors = [];
|
|
61
55
|
let realCommands = 0;
|
|
62
|
-
const admitted = statements.filter((statement) => TurnDisposition.is(statement)
|
|
56
|
+
const admitted = statements.filter((statement) => TurnDisposition.is(statement) || TurnDisposition.isCompletion(statement)
|
|
63
57
|
|| realCommands++ < maxCommands);
|
|
64
58
|
const scheduled = scheduleTurnOps(admitted.flatMap(expandSafeUriTargetGroup));
|
|
65
59
|
const logSelectionMaxId = (await this.#db.engine_log_selection_high_water.get({
|
|
@@ -71,6 +65,7 @@ export default class AdmittedTurnExecutor {
|
|
|
71
65
|
const editSequence = scheduled.some((statement) => (statement.op === "EDIT" || statement.op === "KILL") && LineAnchors.hasAnchor(statement.lineMarker))
|
|
72
66
|
? new EditSequence() : undefined;
|
|
73
67
|
const droppedCount = statements.length - admitted.length;
|
|
68
|
+
const completionEligible = finalResponse && droppedCount === 0;
|
|
74
69
|
let bareResults = new Map();
|
|
75
70
|
const outcomes = [];
|
|
76
71
|
const results = [];
|
|
@@ -158,6 +153,7 @@ export default class AdmittedTurnExecutor {
|
|
|
158
153
|
loopSequence: bare.loopSequence,
|
|
159
154
|
turnSequence: bare.turnSequence,
|
|
160
155
|
signal: bare.signal,
|
|
156
|
+
notice: (notice) => this.#notices.push(workspaceId, workerId, loopId, notice),
|
|
161
157
|
});
|
|
162
158
|
bareResults = new Map(batch.map((item) => [item.statement, item]));
|
|
163
159
|
}
|
|
@@ -188,7 +184,7 @@ export default class AdmittedTurnExecutor {
|
|
|
188
184
|
origin,
|
|
189
185
|
logSelectionMaxId,
|
|
190
186
|
editSequence,
|
|
191
|
-
|
|
187
|
+
finalResponse: completionEligible,
|
|
192
188
|
onDispatch,
|
|
193
189
|
onSettled,
|
|
194
190
|
});
|
|
@@ -247,13 +243,13 @@ export default class AdmittedTurnExecutor {
|
|
|
247
243
|
result: Results.failure("engine:rail", problem.code, problem.status, problem.detail, {}, extensions),
|
|
248
244
|
});
|
|
249
245
|
}
|
|
250
|
-
const turnStatus = await this.#dispatcher.settleProgram({ workerId, loopId, turnId, origin }, wait);
|
|
246
|
+
const turnStatus = await this.#dispatcher.settleProgram({ workerId, loopId, turnId, origin }, wait, completionEligible);
|
|
251
247
|
await Turn.complete(this.#db, turnId, turnStatus);
|
|
252
248
|
return {
|
|
253
249
|
status: turnStatus,
|
|
254
250
|
outcomes,
|
|
255
|
-
fingerprint: StrikeRail.fingerprintTurn(scheduled, results),
|
|
256
|
-
emptyTurn
|
|
251
|
+
fingerprint: emptyTurn ? StrikeRail.fingerprintEmptyTurn(source ?? "") : StrikeRail.fingerprintTurn(scheduled, results),
|
|
252
|
+
emptyTurn,
|
|
257
253
|
};
|
|
258
254
|
}
|
|
259
255
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdmittedTurnExecutor.js","sourceRoot":"","sources":["../../src/core/AdmittedTurnExecutor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AdmittedTurnExecutor.js","sourceRoot":"","sources":["../../src/core/AdmittedTurnExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ import type { Db } from "./Db.ts";
|
|
|
4
4
|
import { type SchemeResult } from "./results.ts";
|
|
5
5
|
import type { Provider } from "@plurnk/plurnk-providers";
|
|
6
6
|
import type { BareBatchResult } from "./TurnRunner.ts";
|
|
7
|
+
import type NoticeChannel from "./NoticeChannel.ts";
|
|
8
|
+
type Notice = Parameters<NoticeChannel["push"]>[3];
|
|
7
9
|
export default class BareBatchRunner {
|
|
8
10
|
#private;
|
|
9
11
|
constructor({ db, providerAttributions, providerFailure }: {
|
|
@@ -11,7 +13,7 @@ export default class BareBatchRunner {
|
|
|
11
13
|
providerAttributions: (provider: Provider, context: PluginAttributionContext) => string[];
|
|
12
14
|
providerFailure: (error: unknown, signal: AbortSignal | undefined) => SchemeResult;
|
|
13
15
|
});
|
|
14
|
-
runBareBatch({ statements, preparePrompt, provider, turnId, workspaceId, workerId, loopSequence, turnSequence, signal, }: {
|
|
16
|
+
runBareBatch({ statements, preparePrompt, provider, turnId, workspaceId, workerId, loopSequence, turnSequence, signal, notice, }: {
|
|
15
17
|
statements: readonly BareStatement[];
|
|
16
18
|
preparePrompt: (statement: BareStatement) => Promise<{
|
|
17
19
|
prompt: string;
|
|
@@ -25,6 +27,8 @@ export default class BareBatchRunner {
|
|
|
25
27
|
loopSequence: number;
|
|
26
28
|
turnSequence: number;
|
|
27
29
|
signal: AbortSignal | undefined;
|
|
30
|
+
notice: (notice: Notice) => void;
|
|
28
31
|
}): Promise<BareBatchResult[]>;
|
|
29
32
|
}
|
|
33
|
+
export {};
|
|
30
34
|
//# sourceMappingURL=BareBatchRunner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BareBatchRunner.d.ts","sourceRoot":"","sources":["../../src/core/BareBatchRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAElC,OAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAK1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"BareBatchRunner.d.ts","sourceRoot":"","sources":["../../src/core/BareBatchRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAElC,OAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAK1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AAIpD,KAAK,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnD,MAAM,CAAC,OAAO,OAAO,eAAe;;IAKhC,YAAY,EAAE,EAAE,EAAE,oBAAoB,EAAE,eAAe,EAAE,EAAE;QACvD,EAAE,EAAE,EAAE,CAAC;QACP,oBAAoB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,KAAK,MAAM,EAAE,CAAC;QAC1F,eAAe,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,KAAK,YAAY,CAAC;KACtF,EAIA;IAEK,YAAY,CAAC,EACf,UAAU,EACV,aAAa,EACb,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,MAAM,GACT,EAAE;QACC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;QACrC,aAAa,EAAE,CAAC,SAAS,EAAE,aAAa,KAAK,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG;YAAE,MAAM,EAAE,YAAY,CAAA;SAAE,CAAC,CAAC;QACpG,QAAQ,EAAE,QAAQ,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;QAChC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;KACpC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CA2I7B;CAEJ"}
|
|
@@ -6,6 +6,8 @@ import { PROVIDER_CALLS, recordCounter } from "../observe/metrics.js";
|
|
|
6
6
|
import ModelCall, { ModelCallPersistenceError, ProviderAccountingIntegrityError } from "./ModelCall.js";
|
|
7
7
|
import { ProviderError } from "@plurnk/plurnk-providers";
|
|
8
8
|
import ProviderInstantiate from "./ProviderInstantiate.js";
|
|
9
|
+
import ProviderRecovery from "./ProviderRecovery.js";
|
|
10
|
+
import { setTimeout as delay } from "node:timers/promises";
|
|
9
11
|
export default class BareBatchRunner {
|
|
10
12
|
#db;
|
|
11
13
|
#providerAttributions;
|
|
@@ -15,7 +17,7 @@ export default class BareBatchRunner {
|
|
|
15
17
|
this.#providerAttributions = providerAttributions;
|
|
16
18
|
this.#providerFailure = providerFailure;
|
|
17
19
|
}
|
|
18
|
-
async runBareBatch({ statements, preparePrompt, provider, turnId, workspaceId, workerId, loopSequence, turnSequence, signal, }) {
|
|
20
|
+
async runBareBatch({ statements, preparePrompt, provider, turnId, workspaceId, workerId, loopSequence, turnSequence, signal, notice, }) {
|
|
19
21
|
const inputs = [];
|
|
20
22
|
for (const statement of statements) {
|
|
21
23
|
signal?.throwIfAborted();
|
|
@@ -49,59 +51,93 @@ export default class BareBatchRunner {
|
|
|
49
51
|
const settlements = await Promise.allSettled(prepared.map(async (item) => {
|
|
50
52
|
if ("result" in item)
|
|
51
53
|
return { ...item, modelCallId: null };
|
|
52
|
-
const { statement, prompt,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
54
|
+
const { statement, prompt, providerWorkerId } = item;
|
|
55
|
+
let { modelCall } = item;
|
|
56
|
+
// {§provider-recovery} — an isolated call takes the loop's recovery: each re-issue is its
|
|
57
|
+
// own model call on the ledger, under the same window and backoff as the loop's inference.
|
|
58
|
+
const recovery = { budget: ProviderRecovery.budget(), backoff: ProviderRecovery.backoff(), startedAt: null, failures: 0 };
|
|
59
|
+
for (let attempt = 1;; attempt += 1) {
|
|
60
|
+
try {
|
|
61
|
+
signal?.throwIfAborted();
|
|
62
|
+
const call = modelCall;
|
|
63
|
+
const response = await observed(genAiRequestName(provider.model), { model: provider.model, attempt, kind: "bare" }, async (span) => {
|
|
64
|
+
try {
|
|
65
|
+
const generated = await provider.generate({
|
|
66
|
+
messages: [{ role: "user", content: prompt }],
|
|
67
|
+
workerId: providerWorkerId,
|
|
68
|
+
workspaceId: String(workspaceId),
|
|
69
|
+
signal,
|
|
70
|
+
observeRequest: call.observeRequest,
|
|
71
|
+
callKind: "bare",
|
|
72
|
+
});
|
|
73
|
+
call.assertAccounting(generated.accounting);
|
|
74
|
+
recordCounter(PROVIDER_CALLS, {
|
|
75
|
+
model: provider.model,
|
|
76
|
+
attempt,
|
|
77
|
+
status: "resolved",
|
|
78
|
+
});
|
|
79
|
+
span.setAttribute("status", "resolved");
|
|
80
|
+
settleGenAiResponse(span, generated);
|
|
81
|
+
return generated;
|
|
78
82
|
}
|
|
79
|
-
|
|
83
|
+
catch (error) {
|
|
84
|
+
if (error instanceof ProviderError) {
|
|
85
|
+
call.assertAccounting(error.accounting);
|
|
86
|
+
}
|
|
87
|
+
throw error;
|
|
88
|
+
}
|
|
89
|
+
}, genAiRequestOptions(ProviderInstantiate.providerIdOf(provider) ?? "other", provider.model));
|
|
90
|
+
await modelCall.observeResponse(response);
|
|
91
|
+
if (recovery.failures > 0) {
|
|
92
|
+
notice({ source: "engine:provider", kind: "provider_recovered", level: "info", message: `The isolated call answered after ${recovery.failures} re-issued call(s).` });
|
|
80
93
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
}),
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
if (error instanceof ModelCallPersistenceError || error instanceof ProviderAccountingIntegrityError) {
|
|
95
|
-
throw error;
|
|
96
|
-
}
|
|
97
|
-
const failure = this.#providerFailure(error, signal);
|
|
98
|
-
if (error instanceof ProviderError && error.attempt !== undefined) {
|
|
99
|
-
await modelCall.observeResponse(error.attempt, failure);
|
|
94
|
+
return {
|
|
95
|
+
statement,
|
|
96
|
+
modelCallId: modelCall.id,
|
|
97
|
+
result: Results.assert({
|
|
98
|
+
status: 200,
|
|
99
|
+
content: response.assistant.content,
|
|
100
|
+
mimetype: "text/plain",
|
|
101
|
+
}),
|
|
102
|
+
};
|
|
100
103
|
}
|
|
101
|
-
|
|
102
|
-
|
|
104
|
+
catch (error) {
|
|
105
|
+
if (error instanceof ModelCallPersistenceError || error instanceof ProviderAccountingIntegrityError) {
|
|
106
|
+
throw error;
|
|
107
|
+
}
|
|
108
|
+
const failure = this.#providerFailure(error, signal);
|
|
109
|
+
if (error instanceof ProviderError && error.attempt !== undefined) {
|
|
110
|
+
await modelCall.observeResponse(error.attempt, failure);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
await modelCall.fail(failure);
|
|
114
|
+
}
|
|
115
|
+
const recoverable = error instanceof ProviderError && ProviderRecovery.RECOVERABLE.has(error.kind) && signal?.aborted !== true;
|
|
116
|
+
if (!recoverable)
|
|
117
|
+
return { statement, modelCallId: modelCall.id, result: failure };
|
|
118
|
+
recovery.startedAt ??= Date.now();
|
|
119
|
+
const elapsed = Date.now() - recovery.startedAt;
|
|
120
|
+
if (elapsed >= recovery.budget)
|
|
121
|
+
return { statement, modelCallId: modelCall.id, result: failure };
|
|
122
|
+
recovery.failures += 1;
|
|
123
|
+
const wait = ProviderRecovery.wait(recovery.backoff, recovery.failures);
|
|
124
|
+
notice({
|
|
125
|
+
source: "engine:provider",
|
|
126
|
+
kind: "provider_unavailable",
|
|
127
|
+
level: "warn",
|
|
128
|
+
message: `${failure.problem?.title ?? "Provider failure"}: re-issuing the isolated call in ${Math.round(wait / 1000)}s (${Math.round(elapsed / 1000)}s of the ${Math.round(recovery.budget / 1000)}s recovery window used).`,
|
|
129
|
+
});
|
|
130
|
+
// An abort during the wait re-enters generate, which refuses on the aborted signal.
|
|
131
|
+
await delay(wait, undefined, { signal }).catch(() => undefined);
|
|
132
|
+
const attributions = this.#providerAttributions(provider, Object.freeze({
|
|
133
|
+
workspaceId: String(workspaceId),
|
|
134
|
+
workerId: providerWorkerId,
|
|
135
|
+
loop: loopSequence,
|
|
136
|
+
turn: turnSequence,
|
|
137
|
+
attempt: attempt + 1,
|
|
138
|
+
}));
|
|
139
|
+
modelCall = await ModelCall.open(this.#db, { turnId, kind: "bare", attributions, model: provider.model });
|
|
103
140
|
}
|
|
104
|
-
return { statement, modelCallId: modelCall.id, result: failure };
|
|
105
141
|
}
|
|
106
142
|
}));
|
|
107
143
|
const internalFailure = settlements.find((settlement) => settlement.status === "rejected");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BareBatchRunner.js","sourceRoot":"","sources":["../../src/core/BareBatchRunner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,OAA8B,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,SAAS,EAAE,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAExG,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAG3D,MAAM,CAAC,OAAO,OAAO,eAAe;IACvB,GAAG,CAAK;IACR,qBAAqB,CAAsE;IAC3F,gBAAgB,CAAoE;IAE7F,YAAY,EAAE,EAAE,EAAE,oBAAoB,EAAE,eAAe,EAItD;QACG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EACf,UAAU,EACV,aAAa,EACb,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,MAAM,
|
|
1
|
+
{"version":3,"file":"BareBatchRunner.js","sourceRoot":"","sources":["../../src/core/BareBatchRunner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,OAA8B,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,SAAS,EAAE,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAExG,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAG3D,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAI3D,MAAM,CAAC,OAAO,OAAO,eAAe;IACvB,GAAG,CAAK;IACR,qBAAqB,CAAsE;IAC3F,gBAAgB,CAAoE;IAE7F,YAAY,EAAE,EAAE,EAAE,oBAAoB,EAAE,eAAe,EAItD;QACG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EACf,UAAU,EACV,aAAa,EACb,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,MAAM,GAYT;QACG,MAAM,MAAM,GAA0F,EAAE,CAAC;QACzG,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,MAAM,QAAQ,GAMR,EAAE,CAAC;QACT,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,SAAS;YACb,CAAC;YACD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;YACpC,MAAM,gBAAgB,GAAG,UAAU,EAAE,CAAC;YACtC,MAAM,kBAAkB,GAA6B,MAAM,CAAC,MAAM,CAAC;gBAC/D,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;gBAChC,QAAQ,EAAE,gBAAgB;gBAC1B,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,CAAC;aACb,CAAC,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YAC9E,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC7C,MAAM;gBACN,IAAI,EAAE,MAAM;gBACZ,YAAY;gBACZ,KAAK,EAAE,QAAQ,CAAC,KAAK;aACxB,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACrE,IAAI,QAAQ,IAAI,IAAI;gBAAE,OAAO,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YAC5D,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;YACrD,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YACzB,0FAA0F;YAC1F,2FAA2F;YAC3F,MAAM,QAAQ,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAqB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;YAC3I,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC;oBACD,MAAM,EAAE,cAAc,EAAE,CAAC;oBACzB,MAAM,IAAI,GAAG,SAAS,CAAC;oBACvB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAC3B,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAChC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAChD,KAAK,EAAE,IAAI,EAAE,EAAE;wBACX,IAAI,CAAC;4BACD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC;gCACtC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;gCAC7C,QAAQ,EAAE,gBAAgB;gCAC1B,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;gCAChC,MAAM;gCACN,cAAc,EAAE,IAAI,CAAC,cAAc;gCACnC,QAAQ,EAAE,MAAM;6BACnB,CAAC,CAAC;4BACH,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;4BAC5C,aAAa,CAAC,cAAc,EAAE;gCAC1B,KAAK,EAAE,QAAQ,CAAC,KAAK;gCACrB,OAAO;gCACP,MAAM,EAAE,UAAU;6BACrB,CAAC,CAAC;4BACH,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;4BACxC,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;4BACrC,OAAO,SAAS,CAAC;wBACrB,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACb,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;gCACjC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;4BAC5C,CAAC;4BACD,MAAM,KAAK,CAAC;wBAChB,CAAC;oBACL,CAAC,EACD,mBAAmB,CACf,mBAAmB,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,OAAO,EACrD,QAAQ,CAAC,KAAK,CACjB,CACJ,CAAC;oBACF,MAAM,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBAC1C,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;wBACxB,MAAM,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,oCAAoC,QAAQ,CAAC,QAAQ,qBAAqB,EAAE,CAAC,CAAC;oBAC1K,CAAC;oBACD,OAAO;wBACH,SAAS;wBACT,WAAW,EAAE,SAAS,CAAC,EAAE;wBACzB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;4BACnB,MAAM,EAAE,GAAG;4BACX,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO;4BACnC,QAAQ,EAAE,YAAY;yBACzB,CAAC;qBACL,CAAC;gBACN,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,IAAI,KAAK,YAAY,yBAAyB,IAAI,KAAK,YAAY,gCAAgC,EAAE,CAAC;wBAClG,MAAM,KAAK,CAAC;oBAChB,CAAC;oBACD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBACrD,IAAI,KAAK,YAAY,aAAa,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;wBAChE,MAAM,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC5D,CAAC;yBAAM,CAAC;wBACJ,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,CAAC;oBACD,MAAM,WAAW,GAAG,KAAK,YAAY,aAAa,IAAI,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;oBAC/H,IAAI,CAAC,WAAW;wBAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;oBACnF,QAAQ,CAAC,SAAS,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAClC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC;oBAChD,IAAI,OAAO,IAAI,QAAQ,CAAC,MAAM;wBAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;oBACjG,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC;oBACvB,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACxE,MAAM,CAAC;wBACH,MAAM,EAAE,iBAAiB;wBACzB,IAAI,EAAE,sBAAsB;wBAC5B,KAAK,EAAE,MAAM;wBACb,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,kBAAkB,qCAAqC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,0BAA0B;qBAC/N,CAAC,CAAC;oBACH,oFAAoF;oBACpF,MAAM,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;oBAChE,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;wBACpE,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;wBAChC,QAAQ,EAAE,gBAAgB;wBAC1B,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,YAAY;wBAClB,OAAO,EAAE,OAAO,GAAG,CAAC;qBACvB,CAAC,CAAC,CAAC;oBACJ,SAAS,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC9G,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC,CAAC;QAEJ,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,CACpC,CAAC,UAAU,EAAuC,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,UAAU,CACxF,CAAC;QACF,IAAI,eAAe,KAAK,SAAS;YAAE,MAAM,eAAe,CAAC,MAAM,CAAC;QAChE,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAE,UAAsD,CAAC,KAAK,CAAC,CAAC;IAC1G,CAAC;CAEJ"}
|
|
@@ -24,7 +24,7 @@ export type DispatchContext = {
|
|
|
24
24
|
origin: WriterTier;
|
|
25
25
|
logSelectionMaxId?: number;
|
|
26
26
|
editSequence?: EditSequence;
|
|
27
|
-
|
|
27
|
+
finalResponse?: boolean;
|
|
28
28
|
onDispatch?: (logEntryId: number) => void;
|
|
29
29
|
onSettled?: (logEntryId: number) => void | Promise<void>;
|
|
30
30
|
fanout?: {
|
|
@@ -110,7 +110,7 @@ export default class Dispatcher {
|
|
|
110
110
|
loopId: number;
|
|
111
111
|
turnId: number;
|
|
112
112
|
origin: WriterTier;
|
|
113
|
-
}, wait: boolean): Promise<number>;
|
|
113
|
+
}, wait: boolean, finalResponse: boolean): Promise<number>;
|
|
114
114
|
hasLiveWork(loopId: number): Promise<boolean>;
|
|
115
115
|
}
|
|
116
116
|
//# sourceMappingURL=Dispatcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dispatcher.d.ts","sourceRoot":"","sources":["../../src/core/Dispatcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAA8D,UAAU,EAAY,eAAe,EAAE,aAAa,EAAgC,MAAM,0BAA0B,CAAC;AACpO,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAC;AAO9D,OAAO,KAAK,EAAkB,UAAU,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAIzF,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEpI,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAC;AAC5D,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAI/C,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAmD,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAQhJ,OAAO,mBAAmB,EAAE,EAAsD,KAAK,sBAAsB,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAS1K,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAQlD,MAAM,MAAM,eAAe,GAAG;IAC1B,SAAS,EAAE,eAAe,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IAGjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IAGnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Dispatcher.d.ts","sourceRoot":"","sources":["../../src/core/Dispatcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAA8D,UAAU,EAAY,eAAe,EAAE,aAAa,EAAgC,MAAM,0BAA0B,CAAC;AACpO,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAC;AAO9D,OAAO,KAAK,EAAkB,UAAU,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAIzF,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEpI,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAC;AAC5D,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAI/C,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAmD,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAQhJ,OAAO,mBAAmB,EAAE,EAAsD,KAAK,sBAAsB,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAS1K,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAQlD,MAAM,MAAM,eAAe,GAAG;IAC1B,SAAS,EAAE,eAAe,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IAGjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IAGnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IAGxB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGzD,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAClH,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC;AAC1C,MAAM,MAAM,sBAAsB,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhG,MAAM,WAAW,0BAA0B;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AACnG,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe,EAAE;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC,CAAC;AAW/E,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;AAIhF,MAAM,CAAC,OAAO,OAAO,UAAU;;IA2C3B,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE;QAC9P,EAAE,EAAE,EAAE,CAAC;QACP,SAAS,EAAE,aAAa,CAAC;QACzB,OAAO,EAAE,cAAc,CAAC;QACxB,SAAS,EAAE,SAAS,CAAC;QACrB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;QAChC,OAAO,EAAE,aAAa,CAAC;QACvB,SAAS,EAAE,iBAAiB,CAAC;QAC7B,YAAY,EAAE,kBAAkB,CAAC;QACjC,SAAS,EAAE,MAAM,gBAAgB,GAAG,SAAS,CAAC;QAC9C,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;QACxD,iBAAiB,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACnE,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;QACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QACpC,YAAY,CAAC,EAAE,kBAAkB,CAAC;QAClC,YAAY,CAAC,EAAE,kBAAkB,CAAC;QAClC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;QAChD,iBAAiB,EAAE,iBAAiB,CAAC;QACrC,cAAc,EAAE,mBAAmB,CAAC;KACvC,EAkDA;IAMD,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAE7C;IAsNK,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAchE;IA4QK,IAAI,CAAC,OAAO,EAAE;QAChB,SAAS,EAAE,eAAe,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QACtD,MAAM,CAAC,EAAE,UAAU,CAAC;KACvB,GAAG,OAAO,CAAC,cAAc,CAAC,CAc1B;IAED,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAEvE;IAKK,mBAAmB,CAAC,OAAO,EAAE;QAC/B,MAAM,EAAE,UAAU,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAuB7C;IAEK,gBAAgB,CAClB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,mBAAmB,GACzB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAcxC;IAkGK,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAG5F;IAsMD,gBAAgB,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAGnG;IAUK,oBAAoB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE;QACtF,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QACrF,WAAW,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BlB;IA8BK,iBAAiB,CACnB,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC,GAAG;QAAE,SAAS,EAAE,aAAa,CAAA;KAAE,GAC3H,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,cAAc,CAAA;KAAE,CAAC,CAS1D;IA+BK,gBAAgB,CAClB,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG;QAAE,SAAS,EAAE,aAAa,CAAA;KAAE,EAC1E,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,GAAG,IAAI,GAC3B,OAAO,CAAC,cAAc,CAAC,CAWzB;IAoCK,aAAa,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzJ;IA6CK,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGlD;CAiFJ"}
|
package/dist/core/Dispatcher.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var _a;
|
|
2
|
-
import {
|
|
2
|
+
import { parsePath } from "@plurnk/plurnk-parser";
|
|
3
3
|
import { TurnDisposition } from "@plurnk/plurnk-contracts";
|
|
4
4
|
import Turn from "./Turn.js";
|
|
5
5
|
import { foldAuthorityIntoPath, renderAddress, renderTarget, schemeNameOf } from "./plurnk-uri.js";
|
|
@@ -381,9 +381,12 @@ class Dispatcher {
|
|
|
381
381
|
result = await this.#resourceMutations.edit(statement, schemeCtx, context.editSequence);
|
|
382
382
|
}
|
|
383
383
|
else if (statement.op === "SEND" && statement.target === null) {
|
|
384
|
-
result = await this.#respond(statement, schemeCtx,
|
|
385
|
-
|
|
386
|
-
|
|
384
|
+
result = await this.#respond(statement, schemeCtx, loopId);
|
|
385
|
+
}
|
|
386
|
+
else if (TurnDisposition.isCompletion(statement)) {
|
|
387
|
+
result = await this.#disposition.completion({ workerId, loopId, turnId, origin }, context.finalResponse === true, (statement.body ?? "").trim() !== "");
|
|
388
|
+
if (result.status === 200)
|
|
389
|
+
result = await this.#respond(statement, schemeCtx, loopId);
|
|
387
390
|
}
|
|
388
391
|
else if (statement.op === "NOTE") {
|
|
389
392
|
await Turn.recordSource(this.#db, turnId, "note", statement.body ?? "", { sequence });
|
|
@@ -714,7 +717,7 @@ class Dispatcher {
|
|
|
714
717
|
workspaceId, workerId, loopId, turnId,
|
|
715
718
|
writer: origin,
|
|
716
719
|
resources: { capture: (targets) => ResourceBindings.using(this.#schemes, context, (bound) => this.#resourceSelector.capture(targets, bound)) },
|
|
717
|
-
replyToMessage: (statement) => this.#respond(statement, context,
|
|
720
|
+
replyToMessage: (statement) => this.#respond(statement, context, loopId),
|
|
718
721
|
signal: this.#loopSignal(loopId),
|
|
719
722
|
streamEventNotify: this.#streamEventNotify,
|
|
720
723
|
wakeWorkerNotify: this.#wakeWorkerNotify,
|
|
@@ -740,7 +743,7 @@ class Dispatcher {
|
|
|
740
743
|
#checkWritable(statement, origin, workspaceId) {
|
|
741
744
|
if (!isExecution(statement) && !MUTATING_OPS.has(statement.op))
|
|
742
745
|
return null;
|
|
743
|
-
if (TurnDisposition.is(statement) || statement.op === "SEND" && statement.target === null)
|
|
746
|
+
if (TurnDisposition.is(statement) || TurnDisposition.isCompletion(statement) || statement.op === "SEND" && statement.target === null)
|
|
744
747
|
return null;
|
|
745
748
|
// An execution's operation authority always belongs to the exec scheme;
|
|
746
749
|
// runtime-specific resource authority is gated separately below.
|
|
@@ -950,35 +953,23 @@ class Dispatcher {
|
|
|
950
953
|
await this.#notifySettled(context, logEntryId);
|
|
951
954
|
return result;
|
|
952
955
|
}
|
|
953
|
-
// {§
|
|
954
|
-
|
|
955
|
-
async #answered(result, workerId, loopId) {
|
|
956
|
-
const loop = await this.#db.engine_loop_sequence.get({ loop_id: loopId });
|
|
957
|
-
if (loop === undefined)
|
|
958
|
-
throw new Error(`prose answer has no loop sequence for loop ${loopId}`);
|
|
959
|
-
const resource = renderAddress({ scheme: "ops", authority: await WorkerName.forId(this.#db, workerId), pathname: `/${loop.sequence}` });
|
|
960
|
-
return { ...result, resource, attrs: { ...(result.attrs ?? {}), answer: "prose" } };
|
|
961
|
-
}
|
|
962
|
-
// {§send-response-receipt} {§send-looks-like-operation}
|
|
963
|
-
async #respond(statement, schemeCtx, origin, workerId, loopId) {
|
|
964
|
-
if (origin === "model") {
|
|
965
|
-
const heading = this.#operationHeading(typeof statement.body === "string" ? statement.body : statement.body?.raw ?? "", schemeCtx);
|
|
966
|
-
if (heading !== null) {
|
|
967
|
-
return _a.#failure("send-looks-like-operation", 400, `The response begins with the operation heading \`${heading}\`; nothing ran and nothing was delivered.`, {}, {
|
|
968
|
-
heading,
|
|
969
|
-
stage: "dispatch",
|
|
970
|
-
recovery: `An operation goes on the fence line (\`\`\`\`${heading}); a quoted example goes inside a SEND body.`,
|
|
971
|
-
retryable: false,
|
|
972
|
-
});
|
|
973
|
-
}
|
|
974
|
-
}
|
|
956
|
+
// {§send-response-receipt}: message content is literal; only its header selects a destination.
|
|
957
|
+
async #respond(statement, schemeCtx, loopId) {
|
|
975
958
|
const captured = await MessageAttachments.capture(statement.metadata, schemeCtx.resources, "message:reply");
|
|
976
959
|
if ("failure" in captured)
|
|
977
960
|
return captured.failure;
|
|
978
961
|
const target = statement.target;
|
|
979
962
|
let answers;
|
|
980
963
|
if (target === null) {
|
|
964
|
+
const content = typeof statement.body === "string" ? statement.body : statement.body?.raw ?? "";
|
|
965
|
+
if (content.trim() === "" && captured.attachments.length === 0)
|
|
966
|
+
return { status: 200 };
|
|
981
967
|
answers = await this.#openMessages(loopId);
|
|
968
|
+
if (answers.length === 0) {
|
|
969
|
+
const original = await this.#db.engine_original_message.get({ loop_id: loopId });
|
|
970
|
+
if (original !== undefined)
|
|
971
|
+
answers = [original.path];
|
|
972
|
+
}
|
|
982
973
|
}
|
|
983
974
|
else {
|
|
984
975
|
const message = await this.#db.message_source_by_address.get({
|
|
@@ -991,35 +982,13 @@ class Dispatcher {
|
|
|
991
982
|
return { status: 200, answers,
|
|
992
983
|
...(captured.attachments.length === 0 ? {} : { attachments: MessageAttachments.receipts(captured.attachments) }) };
|
|
993
984
|
}
|
|
994
|
-
// The first non-blank line, when it parses alone as one clean heading naming an operation
|
|
995
|
-
// this worker could perform: a Plurnk operation, or a registered executor or MCP service.
|
|
996
|
-
#operationHeading(body, schemeCtx) {
|
|
997
|
-
const line = body.split("\n").find((candidate) => candidate.trim().length > 0)?.trim();
|
|
998
|
-
if (line === undefined || line.startsWith("`"))
|
|
999
|
-
return null;
|
|
1000
|
-
const parsed = PlurnkParser.parseStatements(PlurnkParser.frame(line, null), {
|
|
1001
|
-
executors: schemeCtx.executors?.availableRuntimes(schemeCtx.workspaceId) ?? [],
|
|
1002
|
-
});
|
|
1003
|
-
if (parsed.unparsedTail !== undefined || parsed.items.length !== 1 || parsed.items[0].kind !== "statement")
|
|
1004
|
-
return null;
|
|
1005
|
-
const { statement } = parsed.items[0];
|
|
1006
|
-
// {§naked-pattern} lifts prose after the path on FIND, READ and KILL as a literal matcher;
|
|
1007
|
-
// on a reply's first line a multi-word literal is prose, not a mis-fenced operation.
|
|
1008
|
-
if ("matcher" in statement && statement.matcher?.dialect === "glob" && /\s/u.test(statement.matcher.raw))
|
|
1009
|
-
return null;
|
|
1010
|
-
if (!isExecution(statement))
|
|
1011
|
-
return line;
|
|
1012
|
-
if (schemeCtx.executors?.entry(statement.runtime, schemeCtx.workspaceId) === undefined)
|
|
1013
|
-
return null;
|
|
1014
|
-
return line;
|
|
1015
|
-
}
|
|
1016
985
|
// {§send-response-receipt}: published unanswered source addresses, oldest first.
|
|
1017
986
|
async #openMessages(loopId) {
|
|
1018
987
|
const rows = await this.#db.engine_open_messages.all({ loop_id: loopId });
|
|
1019
988
|
return rows.map((row) => row.path);
|
|
1020
989
|
}
|
|
1021
|
-
async settleProgram(ctx, wait) {
|
|
1022
|
-
return this.#disposition.settle(ctx, wait);
|
|
990
|
+
async settleProgram(ctx, wait, finalResponse) {
|
|
991
|
+
return this.#disposition.settle(ctx, wait, finalResponse);
|
|
1023
992
|
}
|
|
1024
993
|
// {§send-premature-terminate}: judge observation boundaries after the whole program settles.
|
|
1025
994
|
async #pendingSet(workerId, turnId, loopId) {
|
|
@@ -1062,10 +1031,7 @@ class Dispatcher {
|
|
|
1062
1031
|
childTerminations: childTermination !== undefined,
|
|
1063
1032
|
};
|
|
1064
1033
|
}
|
|
1065
|
-
//
|
|
1066
|
-
// model's Log until the next packet. Both explicit completion and an
|
|
1067
|
-
// already-drained join must cross that observation boundary before they
|
|
1068
|
-
// can honestly finish the loop.
|
|
1034
|
+
// {§wait-obligation-matrix}: fresh failures precede automatic parking and completion.
|
|
1069
1035
|
async #unobservedFailureCount(turnId) {
|
|
1070
1036
|
const failedRows = await this.#db.engine_turn_failures.all({ turn_id: turnId });
|
|
1071
1037
|
return failedRows.length;
|
|
@@ -1106,7 +1072,7 @@ class Dispatcher {
|
|
|
1106
1072
|
static #isProposal(statement, result) {
|
|
1107
1073
|
if (result.status !== 202)
|
|
1108
1074
|
return false;
|
|
1109
|
-
return !TurnDisposition.is(statement);
|
|
1075
|
+
return !TurnDisposition.is(statement) && !TurnDisposition.isCompletion(statement);
|
|
1110
1076
|
}
|
|
1111
1077
|
// Normalize a parsed target for log storage. Bare paths and `file:///...`
|
|
1112
1078
|
// inputs collapse to scheme=null in log target metadata because both render
|