@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.
Files changed (83) hide show
  1. package/.env.defaults +6 -5
  2. package/SPEC.md +177 -111
  3. package/dist/build-info.json +1 -1
  4. package/dist/core/AdmittedTurnExecutor.d.ts +2 -2
  5. package/dist/core/AdmittedTurnExecutor.d.ts.map +1 -1
  6. package/dist/core/AdmittedTurnExecutor.js +12 -16
  7. package/dist/core/AdmittedTurnExecutor.js.map +1 -1
  8. package/dist/core/BareBatchRunner.d.ts +5 -1
  9. package/dist/core/BareBatchRunner.d.ts.map +1 -1
  10. package/dist/core/BareBatchRunner.js +86 -50
  11. package/dist/core/BareBatchRunner.js.map +1 -1
  12. package/dist/core/Dispatcher.d.ts +2 -2
  13. package/dist/core/Dispatcher.d.ts.map +1 -1
  14. package/dist/core/Dispatcher.js +23 -57
  15. package/dist/core/Dispatcher.js.map +1 -1
  16. package/dist/core/Dispatcher.sql +7 -0
  17. package/dist/core/LogBody.js +2 -2
  18. package/dist/core/LogBody.js.map +1 -1
  19. package/dist/core/LogEntryProjection.d.ts.map +1 -1
  20. package/dist/core/LogEntryProjection.js +0 -4
  21. package/dist/core/LogEntryProjection.js.map +1 -1
  22. package/dist/core/LoopDriver.d.ts.map +1 -1
  23. package/dist/core/LoopDriver.js +17 -4
  24. package/dist/core/LoopDriver.js.map +1 -1
  25. package/dist/core/PacketBuilder.d.ts.map +1 -1
  26. package/dist/core/PacketBuilder.js +3 -2
  27. package/dist/core/PacketBuilder.js.map +1 -1
  28. package/dist/core/PacketBuilder.sql +5 -0
  29. package/dist/core/ProviderRecovery.d.ts +9 -0
  30. package/dist/core/ProviderRecovery.d.ts.map +1 -0
  31. package/dist/core/ProviderRecovery.js +22 -0
  32. package/dist/core/ProviderRecovery.js.map +1 -0
  33. package/dist/core/ServiceTeardown.d.ts +1 -1
  34. package/dist/core/ServiceTeardown.d.ts.map +1 -1
  35. package/dist/core/ServiceTeardown.js +4 -2
  36. package/dist/core/ServiceTeardown.js.map +1 -1
  37. package/dist/core/StrikeRail.d.ts +3 -0
  38. package/dist/core/StrikeRail.d.ts.map +1 -1
  39. package/dist/core/StrikeRail.js +16 -1
  40. package/dist/core/StrikeRail.js.map +1 -1
  41. package/dist/core/TurnDispositionHandler.d.ts +3 -2
  42. package/dist/core/TurnDispositionHandler.d.ts.map +1 -1
  43. package/dist/core/TurnDispositionHandler.js +48 -15
  44. package/dist/core/TurnDispositionHandler.js.map +1 -1
  45. package/dist/core/TurnMaterialization.d.ts.map +1 -1
  46. package/dist/core/TurnMaterialization.js +7 -1
  47. package/dist/core/TurnMaterialization.js.map +1 -1
  48. package/dist/core/TurnOps.d.ts.map +1 -1
  49. package/dist/core/TurnOps.js +4 -0
  50. package/dist/core/TurnOps.js.map +1 -1
  51. package/dist/core/TurnRunner.d.ts +0 -4
  52. package/dist/core/TurnRunner.d.ts.map +1 -1
  53. package/dist/core/TurnRunner.js +32 -100
  54. package/dist/core/TurnRunner.js.map +1 -1
  55. package/dist/core/TurnSources.sql +1 -1
  56. package/dist/core/ambient.sql +2 -2
  57. package/dist/core/packet-wire.d.ts.map +1 -1
  58. package/dist/core/packet-wire.js +67 -47
  59. package/dist/core/packet-wire.js.map +1 -1
  60. package/dist/core/results.d.ts +1 -0
  61. package/dist/core/results.d.ts.map +1 -1
  62. package/dist/core/results.js +7 -0
  63. package/dist/core/results.js.map +1 -1
  64. package/dist/core/turn-scheduler.js +1 -1
  65. package/dist/core/turn-scheduler.js.map +1 -1
  66. package/dist/core/unconcluded-emission.d.ts +7 -0
  67. package/dist/core/unconcluded-emission.d.ts.map +1 -0
  68. package/dist/core/unconcluded-emission.js +11 -0
  69. package/dist/core/unconcluded-emission.js.map +1 -0
  70. package/dist/core/unconcluded-emission.sql +14 -0
  71. package/dist/schemes/Log.d.ts.map +1 -1
  72. package/dist/schemes/Log.js +1 -0
  73. package/dist/schemes/Log.js.map +1 -1
  74. package/dist/server/Retention.d.ts.map +1 -1
  75. package/dist/server/Retention.js +2 -0
  76. package/dist/server/Retention.js.map +1 -1
  77. package/dist/server/Retention.sql +5 -0
  78. package/dist/server/logEntry.sql +2 -2
  79. package/dist/service.d.ts.map +1 -1
  80. package/dist/service.js +4 -1
  81. package/dist/service.js.map +1 -1
  82. package/migrations/006_log.sql +10 -4
  83. package/package.json +161 -163
@@ -1 +1 @@
1
- {"package":"@plurnk/plurnk-service","version":"1.19.3","revision":"f5b4322844224e4baa01d05b44930059eeb6b245","dirty":false}
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, proseAnswer, bare, signal, onDispatch, onSettled, }: {
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
- proseAnswer?: PlurnkStatement | null;
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,WAAkB,EAClB,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,WAAW,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;QACrC,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,CAuP9B;CAGJ"}
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, proseAnswer = null, bare, signal, onDispatch, onSettled, }) {
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, the packet says so, and the strike rail counts it once.
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.fingerprintTurn([]), emptyTurn: true };
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
- ...(statement === proseAnswer ? { proseAnswer: true } : {}),
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: false,
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;AAEvD,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,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;KACnC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CA2G7B;CAEJ"}
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, modelCall, providerWorkerId } = item;
53
- try {
54
- signal?.throwIfAborted();
55
- const response = await observed(genAiRequestName(provider.model), { model: provider.model, attempt: 1, kind: "bare" }, async (span) => {
56
- try {
57
- const generated = await provider.generate({
58
- messages: [{ role: "user", content: prompt }],
59
- workerId: providerWorkerId,
60
- workspaceId: String(workspaceId),
61
- signal,
62
- observeRequest: modelCall.observeRequest,
63
- callKind: "bare",
64
- });
65
- modelCall.assertAccounting(generated.accounting);
66
- recordCounter(PROVIDER_CALLS, {
67
- model: provider.model,
68
- attempt: 1,
69
- status: "resolved",
70
- });
71
- span.setAttribute("status", "resolved");
72
- settleGenAiResponse(span, generated);
73
- return generated;
74
- }
75
- catch (error) {
76
- if (error instanceof ProviderError) {
77
- modelCall.assertAccounting(error.accounting);
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
- throw error;
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
- }, genAiRequestOptions(ProviderInstantiate.providerIdOf(provider) ?? "other", provider.model));
82
- await modelCall.observeResponse(response);
83
- return {
84
- statement,
85
- modelCallId: modelCall.id,
86
- result: Results.assert({
87
- status: 200,
88
- content: response.assistant.content,
89
- mimetype: "text/plain",
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
- else {
102
- await modelCall.fail(failure);
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":"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"}
1
+ {"version":3,"file":"BareBatchRunner.js","sourceRoot":"","sources":["../../src/core/BareBatchRunner.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ export type DispatchContext = {
24
24
  origin: WriterTier;
25
25
  logSelectionMaxId?: number;
26
26
  editSequence?: EditSequence;
27
- proseAnswer?: boolean;
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":"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"}
1
+ {"version":3,"file":"Dispatcher.d.ts","sourceRoot":"","sources":["../../src/core/Dispatcher.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  var _a;
2
- import { PlurnkParser, parsePath } from "@plurnk/plurnk-parser";
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, origin, workerId, loopId);
385
- if (context.proseAnswer === true && result.status === 200)
386
- result = await this.#answered(result, workerId, loopId);
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, origin, workerId, loopId),
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
- // {§loop-answer} a prose answer's row names where the answer lives, ops://<worker>/<loop>, and
954
- // renders under its own leaf ({§log-coordinate-hierarchy}) rather than as a SEND.
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
- // A failed operation is also an unobserved result: it does not enter the
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