@claudexor/daemon 4.1.1 → 4.3.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 (93) hide show
  1. package/dist/account-evidence.d.ts +37 -0
  2. package/dist/account-evidence.d.ts.map +1 -0
  3. package/dist/account-evidence.js +48 -0
  4. package/dist/account-evidence.js.map +1 -0
  5. package/dist/client.d.ts +8 -1
  6. package/dist/client.d.ts.map +1 -1
  7. package/dist/client.js +3 -0
  8. package/dist/client.js.map +1 -1
  9. package/dist/credential-generation.d.ts +23 -2
  10. package/dist/credential-generation.d.ts.map +1 -1
  11. package/dist/credential-generation.js +27 -3
  12. package/dist/credential-generation.js.map +1 -1
  13. package/dist/credential-unusable-ledger.d.ts +1 -1
  14. package/dist/credential-unusable-ledger.d.ts.map +1 -1
  15. package/dist/credential-unusable-ledger.js +2 -2
  16. package/dist/credential-unusable-ledger.js.map +1 -1
  17. package/dist/delivery-command.d.ts.map +1 -1
  18. package/dist/delivery-command.js +4 -1
  19. package/dist/delivery-command.js.map +1 -1
  20. package/dist/index.d.ts +2 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +2 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/interactions.d.ts +2 -0
  25. package/dist/interactions.d.ts.map +1 -1
  26. package/dist/interactions.js +26 -2
  27. package/dist/interactions.js.map +1 -1
  28. package/dist/journaled-run-events.d.ts.map +1 -1
  29. package/dist/journaled-run-events.js +1 -0
  30. package/dist/journaled-run-events.js.map +1 -1
  31. package/dist/pre-progress-refusal-ledger.d.ts +1 -1
  32. package/dist/pre-progress-refusal-ledger.d.ts.map +1 -1
  33. package/dist/pre-progress-refusal-ledger.js +2 -2
  34. package/dist/pre-progress-refusal-ledger.js.map +1 -1
  35. package/dist/quota-poll-lanes.d.ts +4 -4
  36. package/dist/quota-poll-lanes.d.ts.map +1 -1
  37. package/dist/quota-poll-lanes.js +23 -8
  38. package/dist/quota-poll-lanes.js.map +1 -1
  39. package/dist/quota-refresh-batches.d.ts.map +1 -1
  40. package/dist/quota-refresh-batches.js +5 -1
  41. package/dist/quota-refresh-batches.js.map +1 -1
  42. package/dist/quota-refresh-demand.d.ts +13 -26
  43. package/dist/quota-refresh-demand.d.ts.map +1 -1
  44. package/dist/quota-refresh-demand.js +51 -68
  45. package/dist/quota-refresh-demand.js.map +1 -1
  46. package/dist/quota-registry-support.d.ts +0 -4
  47. package/dist/quota-registry-support.d.ts.map +1 -1
  48. package/dist/quota-registry-support.js +0 -6
  49. package/dist/quota-registry-support.js.map +1 -1
  50. package/dist/quota-registry.d.ts +42 -0
  51. package/dist/quota-registry.d.ts.map +1 -1
  52. package/dist/quota-registry.js +3 -3
  53. package/dist/quota-registry.js.map +1 -1
  54. package/dist/quota-resource-demand.d.ts +13 -0
  55. package/dist/quota-resource-demand.d.ts.map +1 -0
  56. package/dist/quota-resource-demand.js +32 -0
  57. package/dist/quota-resource-demand.js.map +1 -0
  58. package/dist/quota-resources.d.ts +14 -0
  59. package/dist/quota-resources.d.ts.map +1 -1
  60. package/dist/quota-resources.js +6 -0
  61. package/dist/quota-resources.js.map +1 -1
  62. package/dist/rpc-problem.d.ts +1 -0
  63. package/dist/rpc-problem.d.ts.map +1 -1
  64. package/dist/rpc-problem.js +5 -0
  65. package/dist/rpc-problem.js.map +1 -1
  66. package/dist/run-time-limit.d.ts +26 -0
  67. package/dist/run-time-limit.d.ts.map +1 -0
  68. package/dist/run-time-limit.js +120 -0
  69. package/dist/run-time-limit.js.map +1 -0
  70. package/dist/run-time-limits.d.ts +16 -0
  71. package/dist/run-time-limits.d.ts.map +1 -0
  72. package/dist/run-time-limits.js +41 -0
  73. package/dist/run-time-limits.js.map +1 -0
  74. package/dist/server.d.ts +3 -0
  75. package/dist/server.d.ts.map +1 -1
  76. package/dist/server.js +7 -6
  77. package/dist/server.js.map +1 -1
  78. package/dist/store/account-service.d.ts +40 -0
  79. package/dist/store/account-service.d.ts.map +1 -0
  80. package/dist/store/account-service.js +116 -0
  81. package/dist/store/account-service.js.map +1 -0
  82. package/dist/store/command-prune.d.ts.map +1 -1
  83. package/dist/store/command-prune.js +3 -2
  84. package/dist/store/command-prune.js.map +1 -1
  85. package/dist/store/schema.d.ts +2 -2
  86. package/dist/store/schema.d.ts.map +1 -1
  87. package/dist/store/schema.js +22 -5
  88. package/dist/store/schema.js.map +1 -1
  89. package/dist/store/sql-daemon-services.d.ts +8 -0
  90. package/dist/store/sql-daemon-services.d.ts.map +1 -1
  91. package/dist/store/sql-daemon-services.js +5 -0
  92. package/dist/store/sql-daemon-services.js.map +1 -1
  93. package/package.json +5 -5
@@ -0,0 +1,16 @@
1
+ import type { JobRecord } from "./job-record.js";
2
+ import { RunTimeLimit } from "./run-time-limit.js";
3
+ /** The scheduler owns which live run may expose its timer; params stay immutable. */
4
+ export declare class RunTimeLimits {
5
+ private readonly owners;
6
+ register(id: string, timer: RunTimeLimit, live: () => boolean): void;
7
+ close(id: string): void;
8
+ dispatch(raw: unknown, lookup: (id: string) => JobRecord | undefined): {
9
+ revision: number;
10
+ mode: "hard" | "soft";
11
+ state: "armed" | "closed" | "disabled" | "reached";
12
+ deadlineAt: string | null;
13
+ reachedAt: string | null;
14
+ };
15
+ }
16
+ //# sourceMappingURL=run-time-limits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-time-limits.d.ts","sourceRoot":"","sources":["../src/run-time-limits.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAoB,MAAM,qBAAqB,CAAC;AAErE,qFAAqF;AACrF,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+D;IACtF,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,OAAO,GAAG,IAAI,CAGnE;IACD,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGtB;IACD,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS;;;;;;MAgCnE;CACF"}
@@ -0,0 +1,41 @@
1
+ import { delegatedParentOf, RunTimeLimitRequest } from "@claudexor/schema";
2
+ import { timeLimitProblem } from "./run-time-limit.js";
3
+ /** The scheduler owns which live run may expose its timer; params stay immutable. */
4
+ export class RunTimeLimits {
5
+ owners = new Map();
6
+ register(id, timer, live) {
7
+ if (this.owners.has(id))
8
+ throw timeLimitProblem("A run already owns this timer");
9
+ this.owners.set(id, { timer, live });
10
+ }
11
+ close(id) {
12
+ this.owners.get(id)?.timer.dispose();
13
+ this.owners.delete(id);
14
+ }
15
+ dispatch(raw, lookup) {
16
+ if (!raw || typeof raw !== "object" || Array.isArray(raw))
17
+ throw timeLimitProblem("Expected a timer request envelope", "time_limit_invalid", 400);
18
+ const params = raw;
19
+ if (typeof params.id !== "string" ||
20
+ !params.id.trim() ||
21
+ Object.keys(params).some((key) => key !== "id" && key !== "request"))
22
+ throw timeLimitProblem("Expected an exact job id and timer request", "time_limit_invalid", 400);
23
+ const request = RunTimeLimitRequest.parse(params.request);
24
+ const record = lookup(params.id);
25
+ if (!record)
26
+ throw timeLimitProblem("No such run", "run_not_found", 404);
27
+ if (record.state !== "running")
28
+ throw timeLimitProblem("Run has no active timer", "run_not_active");
29
+ if (request.action !== "read" && delegatedParentOf(record.params))
30
+ throw timeLimitProblem("Delegate child timers remain governed by their parent", "delegated_time_limit_forbidden", 403);
31
+ const owner = this.owners.get(record.id);
32
+ if (!owner)
33
+ throw Object.assign(timeLimitProblem("Run timer is not ready", "time_limit_not_ready"), {
34
+ retryable: true,
35
+ });
36
+ if (!owner.live())
37
+ throw timeLimitProblem("Run has already been cancelled", "run_not_active");
38
+ return owner.timer.control(request);
39
+ }
40
+ }
41
+ //# sourceMappingURL=run-time-limits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-time-limits.js","sourceRoot":"","sources":["../src/run-time-limits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EAAgB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAErE,qFAAqF;AACrF,MAAM,OAAO,aAAa;IACP,MAAM,GAAG,IAAI,GAAG,EAAoD,CAAC;IACtF,QAAQ,CAAC,EAAU,EAAE,KAAmB,EAAE,IAAmB;QAC3D,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,MAAM,gBAAgB,CAAC,+BAA+B,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,KAAK,CAAC,EAAU;QACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,QAAQ,CAAC,GAAY,EAAE,MAA6C;QAClE,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YACvD,MAAM,gBAAgB,CAAC,mCAAmC,EAAE,oBAAoB,EAAE,GAAG,CAAC,CAAC;QACzF,MAAM,MAAM,GAAG,GAA8B,CAAC;QAC9C,IACE,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ;YAC7B,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,CAAC;YAEpE,MAAM,gBAAgB,CACpB,4CAA4C,EAC5C,oBAAoB,EACpB,GAAG,CACJ,CAAC;QACJ,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM;YAAE,MAAM,gBAAgB,CAAC,aAAa,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC;QACzE,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;YAC5B,MAAM,gBAAgB,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC;YAC/D,MAAM,gBAAgB,CACpB,uDAAuD,EACvD,gCAAgC,EAChC,GAAG,CACJ,CAAC;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK;YACR,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,wBAAwB,EAAE,sBAAsB,CAAC,EAAE;gBACtF,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;QACL,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,MAAM,gBAAgB,CAAC,gCAAgC,EAAE,gBAAgB,CAAC,CAAC;QAC9F,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;CACF"}
package/dist/server.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { RunTimeLimit } from "./run-time-limit.js";
1
2
  import { type TurnEnqueueProblem as TurnEnqueueProblemValue, type CancelReasonCode, type RuntimeConcurrencyCaps, type DaemonStoreFacts, type ConcurrencyLimit, type JobAdmission } from "@claudexor/schema";
2
3
  import { type CommandBackend } from "./command-authority.js";
3
4
  import { type DelegationAdmissionAuthority } from "./delegation-admission.js";
@@ -9,6 +10,7 @@ export { jobStateFromResult, socketAlive, type JobRecord };
9
10
  export interface RunContext {
10
11
  jobId: string;
11
12
  signal: AbortSignal;
13
+ registerTimeLimit?: (timer: RunTimeLimit) => void;
12
14
  onRunStart: (info: {
13
15
  runId: string;
14
16
  taskId: string;
@@ -58,6 +60,7 @@ export declare class DaemonServer {
58
60
  private readonly activeJobs;
59
61
  private readonly cancelled;
60
62
  private readonly controllers;
63
+ private readonly timeLimits;
61
64
  private readonly activeTasks;
62
65
  private readonly taskFailures;
63
66
  private readonly commands;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -1,4 +1,5 @@
1
- import { rpcProblem } from "./rpc-problem.js";
1
+ import { rpcProblem, storageOnlyFailure } from "./rpc-problem.js";
2
+ import { RunTimeLimits } from "./run-time-limits.js";
2
3
  import { createServer } from "node:net";
3
4
  import { ControlRunStartRequest, TurnEnqueueProblem, delegatedParentOf, resolveRunReviewRequested, normalizeCancelReasonCode, isTerminalLifecycle, } from "@claudexor/schema";
4
5
  import { daemonHealth, daemonConcurrencyCaps } from "./daemon-health.js";
@@ -26,6 +27,7 @@ export class DaemonServer {
26
27
  activeJobs = new Map();
27
28
  cancelled = new Set();
28
29
  controllers = new Map();
30
+ timeLimits = new RunTimeLimits();
29
31
  activeTasks = new Set();
30
32
  taskFailures = [];
31
33
  commands;
@@ -248,6 +250,8 @@ export class DaemonServer {
248
250
  case "claudexor.cancel": {
249
251
  return this.cancelJob(String(params?.id), normalizeCancelReasonCode(params?.reason_code));
250
252
  }
253
+ case "claudexor.runTimeLimit":
254
+ return this.timeLimits.dispatch(params, (id) => this.getRecord(id));
251
255
  case "claudexor.delegationFence": {
252
256
  const runId = String(params?.runId ?? "");
253
257
  const rec = this.commands.queries.getByRunId(runId);
@@ -384,6 +388,7 @@ export class DaemonServer {
384
388
  const result = await this.opts.runner(rec.params, {
385
389
  jobId: id,
386
390
  signal: controller.signal,
391
+ registerTimeLimit: (timer) => this.timeLimits.register(id, timer, () => !controller.signal.aborted),
387
392
  onRunStart: (info) => {
388
393
  rec = this.updateRecord(rec, info);
389
394
  },
@@ -412,6 +417,7 @@ export class DaemonServer {
412
417
  });
413
418
  }
414
419
  finally {
420
+ this.timeLimits.close(id);
415
421
  this.controllers.delete(id);
416
422
  this.activeJobs.delete(id);
417
423
  // An admitted child can fail before the orchestrator attaches its
@@ -456,9 +462,4 @@ export class DaemonServer {
456
462
  }
457
463
  }
458
464
  }
459
- function storageOnlyFailure(error) {
460
- if (error instanceof AggregateError)
461
- return error.errors.length > 0 && error.errors.every(storageOnlyFailure);
462
- return ["store_corrupt", "store_flush_unavailable"].includes(error?.code ?? "");
463
- }
464
465
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { AccountLastService, CredentialProfile } from "@claudexor/schema";
2
+ import type { EngineStore } from "./store.js";
3
+ /** The try that served: dedupe and producer-bound retraction key. */
4
+ export interface ServiceProducer {
5
+ runId: string;
6
+ attemptId: string;
7
+ tryIndex: number;
8
+ }
9
+ type BoundProfile = Pick<CredentialProfile, "harness_id" | "profile_id" | "credential_kind" | "secret_ref" | "isolation_locator" | "created_at">;
10
+ /** A row's credential binding: only its non-secret registration identity.
11
+ * Renaming or toggling a row keeps its service history; replacing what it
12
+ * points at (locator, secret name, kind, re-creation) does not. */
13
+ export declare function accountBindingDigest(profile: BoundProfile): string;
14
+ /**
15
+ * Durable "which account served this requested model last" (INV-135 tie-break)
16
+ * in the engine store. One current fact per binding and requested model,
17
+ * written synchronously by the single row writer; it carries no expiry, quota
18
+ * or authentication meaning. Reads never write.
19
+ */
20
+ export declare class AccountServiceStore {
21
+ private readonly store;
22
+ constructor(store: EngineStore);
23
+ /** Record that this producer's try served; the same producer twice is a no-op. */
24
+ serve(profile: BoundProfile, model: string | null, producer: ServiceProducer): void;
25
+ /** The try's own identity contradicted the row after it served: remove only
26
+ * the fact THIS producer wrote, never a newer producer's. */
27
+ retract(profile: BoundProfile, model: string | null, producer: ServiceProducer): void;
28
+ /** A credential change voids the facts about it: one row's, or every row's. */
29
+ clear(subject: {
30
+ harnessId: string;
31
+ profileId: string;
32
+ } | null): void;
33
+ /** Service order of each given row for one harness and requested model
34
+ * (higher = served more recently); rows whose binding changed are absent. */
35
+ orders(harnessId: string, model: string | null, profiles: readonly BoundProfile[]): Map<string, number>;
36
+ /** The latest service of each given row per requested model, newest first. */
37
+ latest(profiles: readonly BoundProfile[]): AccountLastService[];
38
+ }
39
+ export {};
40
+ //# sourceMappingURL=account-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-service.d.ts","sourceRoot":"","sources":["../../src/store/account-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,KAAK,YAAY,GAAG,IAAI,CACtB,iBAAiB,EACf,YAAY,GACZ,YAAY,GACZ,iBAAiB,GACjB,YAAY,GACZ,mBAAmB,GACnB,YAAY,CACf,CAAC;AAEF;;mEAEmE;AACnE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAWlE;AAID;;;;;GAKG;AACH,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAlC,YAA6B,KAAK,EAAE,WAAW,EAAI;IAEnD,kFAAkF;IAClF,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CA0ClF;IAED;iEAC6D;IAC7D,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAiBpF;IAED,+EAA+E;IAC/E,KAAK,CAAC,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,IAAI,CAQpE;IAED;iFAC6E;IAC7E,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,QAAQ,EAAE,SAAS,YAAY,EAAE,GAChC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAuBrB;IAED,8EAA8E;IAC9E,MAAM,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,GAAG,kBAAkB,EAAE,CA2B9D;CACF"}
@@ -0,0 +1,116 @@
1
+ import { createHash } from "node:crypto";
2
+ /** A row's credential binding: only its non-secret registration identity.
3
+ * Renaming or toggling a row keeps its service history; replacing what it
4
+ * points at (locator, secret name, kind, re-creation) does not. */
5
+ export function accountBindingDigest(profile) {
6
+ return createHash("sha256")
7
+ .update(JSON.stringify([
8
+ profile.credential_kind,
9
+ profile.secret_ref ?? null,
10
+ profile.isolation_locator ?? null,
11
+ profile.created_at ?? null,
12
+ ]))
13
+ .digest("hex");
14
+ }
15
+ const modelKey = (model) => JSON.stringify(model);
16
+ /**
17
+ * Durable "which account served this requested model last" (INV-135 tie-break)
18
+ * in the engine store. One current fact per binding and requested model,
19
+ * written synchronously by the single row writer; it carries no expiry, quota
20
+ * or authentication meaning. Reads never write.
21
+ */
22
+ export class AccountServiceStore {
23
+ store;
24
+ constructor(store) {
25
+ this.store = store;
26
+ }
27
+ /** Record that this producer's try served; the same producer twice is a no-op. */
28
+ serve(profile, model, producer) {
29
+ const key = [
30
+ profile.harness_id,
31
+ profile.profile_id,
32
+ modelKey(model),
33
+ accountBindingDigest(profile),
34
+ ];
35
+ this.store.transaction(() => {
36
+ const current = this.store
37
+ .prepare(`SELECT run_id, attempt_id, try_index FROM account_last_service
38
+ WHERE harness_id=? AND profile_id=? AND requested_model_key=? AND binding_digest=?`)
39
+ .get(...key);
40
+ if (current?.run_id === producer.runId &&
41
+ current.attempt_id === producer.attemptId &&
42
+ Number(current.try_index) === producer.tryIndex)
43
+ return;
44
+ // Allocated inside the writer's transaction: above every live row, so
45
+ // the newest service always sorts first whatever the wall clock says.
46
+ const { next } = this.store
47
+ .prepare("SELECT coalesce(max(service_seq), 0) + 1 AS next FROM account_last_service")
48
+ .get();
49
+ this.store
50
+ .prepare(`INSERT INTO account_last_service(harness_id, profile_id, requested_model_key, binding_digest,
51
+ service_seq, observed_at, run_id, attempt_id, try_index) VALUES(?,?,?,?,?,?,?,?,?)
52
+ ON CONFLICT(harness_id, profile_id, requested_model_key, binding_digest) DO UPDATE SET
53
+ service_seq=excluded.service_seq, observed_at=excluded.observed_at, run_id=excluded.run_id,
54
+ attempt_id=excluded.attempt_id, try_index=excluded.try_index`)
55
+ .run(...key, Number(next), this.store.now().toISOString(), producer.runId, producer.attemptId, producer.tryIndex);
56
+ });
57
+ }
58
+ /** The try's own identity contradicted the row after it served: remove only
59
+ * the fact THIS producer wrote, never a newer producer's. */
60
+ retract(profile, model, producer) {
61
+ this.store.transaction(() => this.store
62
+ .prepare(`DELETE FROM account_last_service WHERE harness_id=? AND profile_id=? AND requested_model_key=?
63
+ AND binding_digest=? AND run_id=? AND attempt_id=? AND try_index=?`)
64
+ .run(profile.harness_id, profile.profile_id, modelKey(model), accountBindingDigest(profile), producer.runId, producer.attemptId, producer.tryIndex));
65
+ }
66
+ /** A credential change voids the facts about it: one row's, or every row's. */
67
+ clear(subject) {
68
+ this.store.transaction(() => {
69
+ if (subject)
70
+ this.store
71
+ .prepare("DELETE FROM account_last_service WHERE harness_id=? AND profile_id=?")
72
+ .run(subject.harnessId, subject.profileId);
73
+ else
74
+ this.store.prepare("DELETE FROM account_last_service").run();
75
+ });
76
+ }
77
+ /** Service order of each given row for one harness and requested model
78
+ * (higher = served more recently); rows whose binding changed are absent. */
79
+ orders(harnessId, model, profiles) {
80
+ const digests = new Map(profiles
81
+ .filter((profile) => profile.harness_id === harnessId)
82
+ .map((profile) => [profile.profile_id, accountBindingDigest(profile)]));
83
+ const orders = new Map();
84
+ if (digests.size === 0)
85
+ return orders;
86
+ const rows = this.store
87
+ .prepare(`SELECT profile_id, binding_digest, service_seq FROM account_last_service
88
+ WHERE harness_id=? AND requested_model_key=?`)
89
+ .all(harnessId, modelKey(model));
90
+ for (const row of rows) {
91
+ if (digests.get(row.profile_id) === row.binding_digest)
92
+ orders.set(row.profile_id, Number(row.service_seq));
93
+ }
94
+ return orders;
95
+ }
96
+ /** The latest service of each given row per requested model, newest first. */
97
+ latest(profiles) {
98
+ const digests = new Map(profiles.map((profile) => [
99
+ `${profile.harness_id}\0${profile.profile_id}`,
100
+ accountBindingDigest(profile),
101
+ ]));
102
+ const rows = this.store
103
+ .prepare(`SELECT harness_id, profile_id, requested_model_key, binding_digest, observed_at
104
+ FROM account_last_service ORDER BY service_seq DESC`)
105
+ .all();
106
+ return rows
107
+ .filter((row) => digests.get(`${row.harness_id}\0${row.profile_id}`) === row.binding_digest)
108
+ .map((row) => ({
109
+ harness_id: row.harness_id,
110
+ profile_id: row.profile_id,
111
+ requested_model: JSON.parse(row.requested_model_key),
112
+ observed_at: row.observed_at,
113
+ }));
114
+ }
115
+ }
116
+ //# sourceMappingURL=account-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-service.js","sourceRoot":"","sources":["../../src/store/account-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"command-prune.d.ts","sourceRoot":"","sources":["../../src/store/command-prune.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAmC,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAMtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,KAAK,QAAQ,GAAG;IACd,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF;;wEAEwE;AACxE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,EAAE,CAkC/F;AAED;iFACiF;AACjF,qBAAa,gBAAgB;IAGzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,OAAO,CAAC,WAAW,CAAgC;IACnD,YACmB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE;QACxB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QAChC,gBAAgB,CAAC,EAAE,OAAO,qBAAqB,CAAC;KAC5C,EACJ;IAEJ,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBpE;IAED,KAAK,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAchD;IAED;;4EAEwE;IACxE,OAAO,CAAC,kBAAkB;IAiD1B,OAAO,CAAC,OAAO;CAGhB"}
1
+ {"version":3,"file":"command-prune.d.ts","sourceRoot":"","sources":["../../src/store/command-prune.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAmC,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAMtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,KAAK,QAAQ,GAAG;IACd,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF;;wEAEwE;AACxE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,EAAE,CAkC/F;AAED;iFACiF;AACjF,qBAAa,gBAAgB;IAGzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,OAAO,CAAC,WAAW,CAAgC;IACnD,YACmB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE;QACxB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;QAChC,gBAAgB,CAAC,EAAE,OAAO,qBAAqB,CAAC;KAC5C,EACJ;IAEJ,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBpE;IAED,KAAK,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAchD;IAED;;4EAEwE;IACxE,OAAO,CAAC,kBAAkB;IAiD1B,OAAO,CAAC,OAAO;CAGhB"}
@@ -1,4 +1,4 @@
1
- import { retainedEnvelopeOfRun } from "@claudexor/workspace";
1
+ import { holdsRetainedSources, retainedEnvelopeOfRun } from "@claudexor/workspace";
2
2
  import { deleteTargetIdempotencyInTx } from "./idempotency.js";
3
3
  import { requireTransaction, runMutation } from "./mutation.js";
4
4
  import { commandRetentionCandidates, deleteEventKeysInTx, COMMAND_RETENTION_BATCH, } from "./retention.js";
@@ -56,7 +56,8 @@ export class SqlCommandPruner {
56
56
  cap,
57
57
  exempt: (candidate) => !!(candidate.runDir &&
58
58
  candidate.runId &&
59
- (this.options.retainedEnvelope ?? retainedEnvelopeOfRun)(candidate.runDir, candidate.runId)),
59
+ ((this.options.retainedEnvelope ?? retainedEnvelopeOfRun)(candidate.runDir, candidate.runId) ||
60
+ holdsRetainedSources(candidate.runDir, candidate.runId, (error) => this.options.log?.(`command retention kept ${candidate.id}: retained sources of run ${candidate.runId} are unreadable: ${error instanceof Error ? error.message : String(error)}`)))),
60
61
  });
61
62
  this.prune(selection.victims.map((row) => row.id));
62
63
  this.pruneReceiptEvents(now);
@@ -1 +1 @@
1
- {"version":3,"file":"command-prune.js","sourceRoot":"","sources":["../../src/store/command-prune.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-prune.js","sourceRoot":"","sources":["../../src/store/command-prune.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { DatabaseSync } from "node:sqlite";
2
2
  /** `PRAGMA application_id` of every engine store ("CXEN"). */
3
3
  export declare const ENGINE_APPLICATION_ID = 1129858382;
4
4
  /** `PRAGMA user_version`: the one schema this engine creates and serves. */
5
- export declare const ENGINE_SCHEMA_VERSION = 1;
5
+ export declare const ENGINE_SCHEMA_VERSION = 2;
6
6
  /**
7
7
  * SYNTHESIS_R5 §5 with R5_AMENDMENTS A1 (`command.kind`/`live` replace
8
8
  * `retention_exempt`; obligation `state`/`materialized_g`). STRICT everywhere; WITHOUT ROWID where the
@@ -11,7 +11,7 @@ export declare const ENGINE_SCHEMA_VERSION = 1;
11
11
  * history. `pid` is the surrogate of one partition generation and the only
12
12
  * partition key a row carries.
13
13
  */
14
- export declare const ENGINE_SCHEMA_SQL = "\nCREATE TABLE meta(key TEXT PRIMARY KEY, value TEXT NOT NULL) STRICT;\nCREATE TABLE partition(id INTEGER PRIMARY KEY, name TEXT NOT NULL, epoch TEXT NOT NULL, status TEXT NOT NULL,\n next_seq INTEGER NOT NULL, project_id TEXT, created_at TEXT NOT NULL, UNIQUE(name, epoch)) STRICT;\nCREATE TABLE event(pid INTEGER NOT NULL, seq INTEGER NOT NULL, time TEXT NOT NULL, type TEXT NOT NULL,\n payload BLOB NOT NULL, payload_sha TEXT, slot_key TEXT, group_key TEXT, PRIMARY KEY(pid, seq)) WITHOUT ROWID, STRICT;\nCREATE INDEX event_type ON event(pid, type, seq);\nCREATE INDEX event_slot ON event(pid, slot_key) WHERE slot_key IS NOT NULL;\nCREATE INDEX event_group ON event(pid, group_key) WHERE group_key IS NOT NULL;\nCREATE INDEX event_payload ON event(payload_sha) WHERE payload_sha IS NOT NULL;\nCREATE INDEX event_command_age ON event(time,pid,seq) WHERE type IN ('command.accepted','command.updated');\nCREATE TABLE blob(sha256 TEXT PRIMARY KEY, size INTEGER NOT NULL, inline BLOB) STRICT;\nCREATE TABLE command(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, operation TEXT NOT NULL, state TEXT NOT NULL, client_id TEXT,\n run_id TEXT, task_id TEXT, run_dir TEXT, thread_id TEXT, turn_id TEXT, delegated_from TEXT, continue_from TEXT, scope_root TEXT,\n created_at TEXT NOT NULL, started_at TEXT, finished_at TEXT, summary BLOB NOT NULL, params_sha TEXT NOT NULL, result_sha TEXT,\n error BLOB, last_event_seq INTEGER, response_state TEXT, response_expires_at TEXT, request_resource_id TEXT, response_resource_id TEXT,\n kind TEXT NOT NULL, live INTEGER NOT NULL DEFAULT 1, needs_decision INTEGER NOT NULL DEFAULT 0) STRICT;\nCREATE INDEX command_run ON command(run_id);\nCREATE INDEX command_partition ON command(pid);\nCREATE INDEX command_active ON command(state, pid) WHERE live = 1 AND state IN ('queued','running');\nCREATE INDEX command_thread ON command(thread_id, state);\nCREATE INDEX command_turn ON command(turn_id, created_at);\nCREATE INDEX command_request_resource ON command(request_resource_id) WHERE request_resource_id IS NOT NULL;\nCREATE INDEX command_response_resource ON command(response_resource_id) WHERE response_resource_id IS NOT NULL;\nCREATE INDEX command_parent ON command(delegated_from);\nCREATE INDEX command_continue ON command(continue_from);\nCREATE INDEX command_list ON command(created_at DESC, id DESC) WHERE live = 1 AND kind = 'product';\nCREATE INDEX command_list_state ON command(state, created_at DESC, id DESC) WHERE live = 1 AND kind = 'product';\nCREATE INDEX command_terminal ON command(created_at, id)\n WHERE live = 1 AND kind IN ('product','delivery','maintenance') AND finished_at IS NOT NULL;\nCREATE INDEX command_prunable ON command(created_at, id)\n WHERE live = 1 AND kind IN ('product','delivery','maintenance') AND finished_at IS NOT NULL AND needs_decision = 0;\nCREATE INDEX command_expiry ON command(response_state, response_expires_at) WHERE kind = 'model';\nCREATE INDEX command_maintenance_harness ON command(json_extract(CAST(summary AS TEXT),'$.params.harness'),created_at)\n WHERE live=1 AND kind='maintenance';\nCREATE INDEX command_params ON command(params_sha);\nCREATE INDEX command_result ON command(result_sha) WHERE result_sha IS NOT NULL;\nCREATE TABLE run_terminal(run_id TEXT PRIMARY KEY, pid INTEGER NOT NULL, event BLOB NOT NULL) STRICT;\nCREATE TABLE effect_obligation(kind TEXT NOT NULL, key TEXT NOT NULL, pid INTEGER NOT NULL, created_at TEXT NOT NULL, payload BLOB NOT NULL,\n state TEXT NOT NULL DEFAULT 'pending', materialized_g INTEGER, PRIMARY KEY(kind, key)) WITHOUT ROWID, STRICT;\nCREATE TABLE idempotency(owner TEXT NOT NULL, pid INTEGER NOT NULL, key_digest TEXT NOT NULL, operation TEXT NOT NULL,\n request_digest TEXT NOT NULL, target_id TEXT NOT NULL, result BLOB, created_at TEXT NOT NULL,\n PRIMARY KEY(owner, pid, key_digest)) WITHOUT ROWID, STRICT;\nCREATE INDEX idempotency_target ON idempotency(target_id);\nCREATE TABLE thread(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, state TEXT NOT NULL, updated_at TEXT NOT NULL,\n head_revision INTEGER NOT NULL DEFAULT 0, body BLOB NOT NULL) STRICT;\nCREATE INDEX thread_list ON thread(pid, state, updated_at DESC);\nCREATE TABLE turn(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, thread_id TEXT NOT NULL, ordinal INTEGER NOT NULL, run_id TEXT,\n created_at TEXT NOT NULL, prompt_sha TEXT NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE UNIQUE INDEX turn_thread ON turn(thread_id, ordinal);\nCREATE UNIQUE INDEX turn_run ON turn(run_id) WHERE run_id IS NOT NULL;\nCREATE INDEX turn_prompt ON turn(prompt_sha);\nCREATE TABLE session(id TEXT PRIMARY KEY, thread_id TEXT NOT NULL, harness_id TEXT NOT NULL, profile_id TEXT NOT NULL DEFAULT '', pid INTEGER NOT NULL,\n insertion_ordinal INTEGER NOT NULL DEFAULT 0, body BLOB NOT NULL) WITHOUT ROWID, STRICT;\nCREATE INDEX session_lane ON session(thread_id, harness_id, profile_id);\nCREATE INDEX session_order ON session(thread_id, insertion_ordinal);\nCREATE INDEX session_partition ON session(pid, insertion_ordinal);\nCREATE TABLE lane_checkpoint(thread_id TEXT NOT NULL, harness_id TEXT NOT NULL, profile_id TEXT NOT NULL DEFAULT '', pid INTEGER NOT NULL,\n insertion_ordinal INTEGER NOT NULL DEFAULT 0, turn_id TEXT NOT NULL, body BLOB NOT NULL, PRIMARY KEY(thread_id, harness_id, profile_id)) WITHOUT ROWID, STRICT;\nCREATE INDEX lane_checkpoint_order ON lane_checkpoint(thread_id, insertion_ordinal);\nCREATE INDEX lane_checkpoint_partition ON lane_checkpoint(pid, insertion_ordinal);\nCREATE TABLE interaction(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, run_id TEXT NOT NULL, state TEXT NOT NULL,\n request BLOB NOT NULL, resolution BLOB) STRICT;\nCREATE INDEX interaction_pending ON interaction(run_id) WHERE state = 'pending';\nCREATE INDEX interaction_run ON interaction(run_id);\nCREATE INDEX interaction_partition_pending ON interaction(pid,run_id) WHERE state = 'pending';\nCREATE TABLE operator_decision(run_id TEXT PRIMARY KEY, pid INTEGER NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE TABLE project(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, root TEXT NOT NULL, status TEXT NOT NULL,\n current_pid INTEGER, creation_key_digest TEXT, created_at TEXT NOT NULL, updated_at TEXT NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE UNIQUE INDEX project_root_active ON project(pid, root) WHERE status = 'active';\nCREATE INDEX project_current_pid ON project(current_pid) WHERE status = 'active';\nCREATE TABLE pruned_root(root TEXT PRIMARY KEY) STRICT;\nCREATE TABLE resource(id TEXT PRIMARY KEY, purpose TEXT, kind TEXT NOT NULL, sha256 TEXT NOT NULL, size_bytes INTEGER NOT NULL,\n state TEXT NOT NULL, created_at TEXT NOT NULL, expires_at TEXT, released_at TEXT, body BLOB NOT NULL) STRICT;\nCREATE INDEX resource_sha ON resource(sha256);\nCREATE INDEX resource_expiry ON resource(state, expires_at);\nCREATE TABLE upload(id TEXT PRIMARY KEY, state TEXT NOT NULL, received_bytes INTEGER NOT NULL, expected_bytes INTEGER,\n finalize_sha TEXT, body BLOB NOT NULL) STRICT;\nCREATE INDEX upload_finalize ON upload(finalize_sha) WHERE finalize_sha IS NOT NULL;\nCREATE TABLE import_partition(name TEXT PRIMARY KEY, status TEXT NOT NULL, pid INTEGER, epoch TEXT, next_seq INTEGER,\n previous_frame_hash TEXT, source_size INTEGER, source_mtime TEXT, fingerprint TEXT, records INTEGER, digest TEXT, problem TEXT) STRICT;\nCREATE TABLE unclassified(pid INTEGER NOT NULL, seq INTEGER NOT NULL, type TEXT NOT NULL, reason TEXT NOT NULL, payload BLOB NOT NULL,\n PRIMARY KEY(pid, seq)) WITHOUT ROWID, STRICT;\n";
14
+ export declare const ENGINE_SCHEMA_SQL = "\nCREATE TABLE meta(key TEXT PRIMARY KEY, value TEXT NOT NULL) STRICT;\nCREATE TABLE partition(id INTEGER PRIMARY KEY, name TEXT NOT NULL, epoch TEXT NOT NULL, status TEXT NOT NULL,\n next_seq INTEGER NOT NULL, project_id TEXT, created_at TEXT NOT NULL, UNIQUE(name, epoch)) STRICT;\nCREATE TABLE event(pid INTEGER NOT NULL, seq INTEGER NOT NULL, time TEXT NOT NULL, type TEXT NOT NULL,\n payload BLOB NOT NULL, payload_sha TEXT, slot_key TEXT, group_key TEXT, PRIMARY KEY(pid, seq)) WITHOUT ROWID, STRICT;\nCREATE INDEX event_type ON event(pid, type, seq);\nCREATE INDEX event_slot ON event(pid, slot_key) WHERE slot_key IS NOT NULL;\nCREATE INDEX event_group ON event(pid, group_key) WHERE group_key IS NOT NULL;\nCREATE INDEX event_payload ON event(payload_sha) WHERE payload_sha IS NOT NULL;\nCREATE INDEX event_command_age ON event(time,pid,seq) WHERE type IN ('command.accepted','command.updated');\nCREATE TABLE blob(sha256 TEXT PRIMARY KEY, size INTEGER NOT NULL, inline BLOB) STRICT;\nCREATE TABLE command(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, operation TEXT NOT NULL, state TEXT NOT NULL, client_id TEXT,\n run_id TEXT, task_id TEXT, run_dir TEXT, thread_id TEXT, turn_id TEXT, delegated_from TEXT, continue_from TEXT, scope_root TEXT,\n created_at TEXT NOT NULL, started_at TEXT, finished_at TEXT, summary BLOB NOT NULL, params_sha TEXT NOT NULL, result_sha TEXT,\n error BLOB, last_event_seq INTEGER, response_state TEXT, response_expires_at TEXT, request_resource_id TEXT, response_resource_id TEXT,\n kind TEXT NOT NULL, live INTEGER NOT NULL DEFAULT 1, needs_decision INTEGER NOT NULL DEFAULT 0) STRICT;\nCREATE INDEX command_run ON command(run_id);\nCREATE INDEX command_partition ON command(pid);\nCREATE INDEX command_active ON command(state, pid) WHERE live = 1 AND state IN ('queued','running');\nCREATE INDEX command_thread ON command(thread_id, state);\nCREATE INDEX command_turn ON command(turn_id, created_at);\nCREATE INDEX command_request_resource ON command(request_resource_id) WHERE request_resource_id IS NOT NULL;\nCREATE INDEX command_response_resource ON command(response_resource_id) WHERE response_resource_id IS NOT NULL;\nCREATE INDEX command_parent ON command(delegated_from);\nCREATE INDEX command_continue ON command(continue_from);\nCREATE INDEX command_list ON command(created_at DESC, id DESC) WHERE live = 1 AND kind = 'product';\nCREATE INDEX command_list_state ON command(state, created_at DESC, id DESC) WHERE live = 1 AND kind = 'product';\nCREATE INDEX command_terminal ON command(created_at, id)\n WHERE live = 1 AND kind IN ('product','delivery','maintenance') AND finished_at IS NOT NULL;\nCREATE INDEX command_prunable ON command(created_at, id)\n WHERE live = 1 AND kind IN ('product','delivery','maintenance') AND finished_at IS NOT NULL AND needs_decision = 0;\nCREATE INDEX command_expiry ON command(response_state, response_expires_at) WHERE kind = 'model';\nCREATE INDEX command_maintenance_harness ON command(json_extract(CAST(summary AS TEXT),'$.params.harness'),created_at)\n WHERE live=1 AND kind='maintenance';\nCREATE INDEX command_params ON command(params_sha);\nCREATE INDEX command_result ON command(result_sha) WHERE result_sha IS NOT NULL;\nCREATE TABLE run_terminal(run_id TEXT PRIMARY KEY, pid INTEGER NOT NULL, event BLOB NOT NULL) STRICT;\nCREATE TABLE effect_obligation(kind TEXT NOT NULL, key TEXT NOT NULL, pid INTEGER NOT NULL, created_at TEXT NOT NULL, payload BLOB NOT NULL,\n state TEXT NOT NULL DEFAULT 'pending', materialized_g INTEGER, PRIMARY KEY(kind, key)) WITHOUT ROWID, STRICT;\nCREATE TABLE idempotency(owner TEXT NOT NULL, pid INTEGER NOT NULL, key_digest TEXT NOT NULL, operation TEXT NOT NULL,\n request_digest TEXT NOT NULL, target_id TEXT NOT NULL, result BLOB, created_at TEXT NOT NULL,\n PRIMARY KEY(owner, pid, key_digest)) WITHOUT ROWID, STRICT;\nCREATE INDEX idempotency_target ON idempotency(target_id);\nCREATE TABLE thread(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, state TEXT NOT NULL, updated_at TEXT NOT NULL,\n head_revision INTEGER NOT NULL DEFAULT 0, body BLOB NOT NULL) STRICT;\nCREATE INDEX thread_list ON thread(pid, state, updated_at DESC);\nCREATE TABLE turn(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, thread_id TEXT NOT NULL, ordinal INTEGER NOT NULL, run_id TEXT,\n created_at TEXT NOT NULL, prompt_sha TEXT NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE UNIQUE INDEX turn_thread ON turn(thread_id, ordinal);\nCREATE UNIQUE INDEX turn_run ON turn(run_id) WHERE run_id IS NOT NULL;\nCREATE INDEX turn_prompt ON turn(prompt_sha);\nCREATE TABLE session(id TEXT PRIMARY KEY, thread_id TEXT NOT NULL, harness_id TEXT NOT NULL, profile_id TEXT NOT NULL DEFAULT '', pid INTEGER NOT NULL,\n insertion_ordinal INTEGER NOT NULL DEFAULT 0, body BLOB NOT NULL) WITHOUT ROWID, STRICT;\nCREATE INDEX session_lane ON session(thread_id, harness_id, profile_id);\nCREATE INDEX session_order ON session(thread_id, insertion_ordinal);\nCREATE INDEX session_partition ON session(pid, insertion_ordinal);\nCREATE TABLE lane_checkpoint(thread_id TEXT NOT NULL, harness_id TEXT NOT NULL, profile_id TEXT NOT NULL DEFAULT '', pid INTEGER NOT NULL,\n insertion_ordinal INTEGER NOT NULL DEFAULT 0, turn_id TEXT NOT NULL, body BLOB NOT NULL, PRIMARY KEY(thread_id, harness_id, profile_id)) WITHOUT ROWID, STRICT;\nCREATE INDEX lane_checkpoint_order ON lane_checkpoint(thread_id, insertion_ordinal);\nCREATE INDEX lane_checkpoint_partition ON lane_checkpoint(pid, insertion_ordinal);\nCREATE TABLE interaction(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, run_id TEXT NOT NULL, state TEXT NOT NULL,\n request BLOB NOT NULL, resolution BLOB) STRICT;\nCREATE INDEX interaction_pending ON interaction(run_id) WHERE state = 'pending';\nCREATE INDEX interaction_run ON interaction(run_id);\nCREATE INDEX interaction_partition_pending ON interaction(pid,run_id) WHERE state = 'pending';\nCREATE TABLE operator_decision(run_id TEXT PRIMARY KEY, pid INTEGER NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE TABLE project(id TEXT PRIMARY KEY, pid INTEGER NOT NULL, root TEXT NOT NULL, status TEXT NOT NULL,\n current_pid INTEGER, creation_key_digest TEXT, created_at TEXT NOT NULL, updated_at TEXT NOT NULL, body BLOB NOT NULL) STRICT;\nCREATE UNIQUE INDEX project_root_active ON project(pid, root) WHERE status = 'active';\nCREATE INDEX project_current_pid ON project(current_pid) WHERE status = 'active';\nCREATE TABLE pruned_root(root TEXT PRIMARY KEY) STRICT;\nCREATE TABLE resource(id TEXT PRIMARY KEY, purpose TEXT, kind TEXT NOT NULL, sha256 TEXT NOT NULL, size_bytes INTEGER NOT NULL,\n state TEXT NOT NULL, created_at TEXT NOT NULL, expires_at TEXT, released_at TEXT, body BLOB NOT NULL) STRICT;\nCREATE INDEX resource_sha ON resource(sha256);\nCREATE INDEX resource_expiry ON resource(state, expires_at);\nCREATE TABLE upload(id TEXT PRIMARY KEY, state TEXT NOT NULL, received_bytes INTEGER NOT NULL, expected_bytes INTEGER,\n finalize_sha TEXT, body BLOB NOT NULL) STRICT;\nCREATE INDEX upload_finalize ON upload(finalize_sha) WHERE finalize_sha IS NOT NULL;\nCREATE TABLE import_partition(name TEXT PRIMARY KEY, status TEXT NOT NULL, pid INTEGER, epoch TEXT, next_seq INTEGER,\n previous_frame_hash TEXT, source_size INTEGER, source_mtime TEXT, fingerprint TEXT, records INTEGER, digest TEXT, problem TEXT) STRICT;\nCREATE TABLE unclassified(pid INTEGER NOT NULL, seq INTEGER NOT NULL, type TEXT NOT NULL, reason TEXT NOT NULL, payload BLOB NOT NULL,\n PRIMARY KEY(pid, seq)) WITHOUT ROWID, STRICT;\n\nCREATE TABLE account_last_service(harness_id TEXT NOT NULL, profile_id TEXT NOT NULL, requested_model_key TEXT NOT NULL,\n binding_digest TEXT NOT NULL, service_seq INTEGER NOT NULL, observed_at TEXT NOT NULL, run_id TEXT NOT NULL,\n attempt_id TEXT NOT NULL, try_index INTEGER NOT NULL,\n PRIMARY KEY(harness_id, profile_id, requested_model_key, binding_digest)) WITHOUT ROWID, STRICT;\n";
15
15
  /** Every table the DDL creates, in creation order (for tests and the importer seam). */
16
16
  export declare const ENGINE_TABLES: readonly string[];
17
17
  export interface SchemaIdentity {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,8DAA8D;AAC9D,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAChD,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,k6OAmF7B,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAE1C,CAAC;AASF,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,CAYnE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAqB9F;AAED,uFAAuF;AACvF,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,GAAE,MAAM,IAAuB,GAAG,IAAI,CAkCvF"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,8DAA8D;AAC9D,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAChD,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAiBvC;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,2yPAmFF,CAAC;AAE7B,wFAAwF;AACxF,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAE1C,CAAC;AAYF,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,CAYnE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAqB9F;AAED,uFAAuF;AACvF,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,GAAE,MAAM,IAAuB,GAAG,IAAI,CAkCvF"}
@@ -3,7 +3,21 @@ import { StoreSchemaUnsupportedError } from "./errors.js";
3
3
  /** `PRAGMA application_id` of every engine store ("CXEN"). */
4
4
  export const ENGINE_APPLICATION_ID = 0x4358454e;
5
5
  /** `PRAGMA user_version`: the one schema this engine creates and serves. */
6
- export const ENGINE_SCHEMA_VERSION = 1;
6
+ export const ENGINE_SCHEMA_VERSION = 2;
7
+ /**
8
+ * Version 2: the latest request each account served per requested model
9
+ * (INV-135 last-served tie-break). One current row per (harness, row,
10
+ * requested-model key, credential-binding digest); the model key is the JSON
11
+ * encoding, so the default model (`null`), `""` and `"null"` stay distinct.
12
+ * `service_seq` orders services by acceptance in the single writer, never by
13
+ * the wall clock.
14
+ */
15
+ const ACCOUNT_LAST_SERVICE_SQL = `
16
+ CREATE TABLE account_last_service(harness_id TEXT NOT NULL, profile_id TEXT NOT NULL, requested_model_key TEXT NOT NULL,
17
+ binding_digest TEXT NOT NULL, service_seq INTEGER NOT NULL, observed_at TEXT NOT NULL, run_id TEXT NOT NULL,
18
+ attempt_id TEXT NOT NULL, try_index INTEGER NOT NULL,
19
+ PRIMARY KEY(harness_id, profile_id, requested_model_key, binding_digest)) WITHOUT ROWID, STRICT;
20
+ `;
7
21
  /**
8
22
  * SYNTHESIS_R5 §5 with R5_AMENDMENTS A1 (`command.kind`/`live` replace
9
23
  * `retention_exempt`; obligation `state`/`materialized_g`). STRICT everywhere; WITHOUT ROWID where the
@@ -95,15 +109,18 @@ CREATE TABLE import_partition(name TEXT PRIMARY KEY, status TEXT NOT NULL, pid I
95
109
  previous_frame_hash TEXT, source_size INTEGER, source_mtime TEXT, fingerprint TEXT, records INTEGER, digest TEXT, problem TEXT) STRICT;
96
110
  CREATE TABLE unclassified(pid INTEGER NOT NULL, seq INTEGER NOT NULL, type TEXT NOT NULL, reason TEXT NOT NULL, payload BLOB NOT NULL,
97
111
  PRIMARY KEY(pid, seq)) WITHOUT ROWID, STRICT;
98
- `;
112
+ ${ACCOUNT_LAST_SERVICE_SQL}`;
99
113
  /** Every table the DDL creates, in creation order (for tests and the importer seam). */
100
114
  export const ENGINE_TABLES = Object.freeze([...ENGINE_SCHEMA_SQL.matchAll(/CREATE TABLE (\w+)\(/g)].map((match) => match[1]));
101
115
  /**
102
116
  * Migrations from an older `user_version` to the current one, keyed by the
103
- * version they start from. Empty for version 1; a stored version with no
104
- * entry here (older without a path, or newer than this engine) is refused.
117
+ * version they start from; a stored version with no entry here (older without
118
+ * a path, or newer than this engine) is refused. Each step only adds: an
119
+ * older engine refuses the upgraded file as newer, so the upgrade is one-way.
105
120
  */
106
- const SCHEMA_MIGRATIONS = new Map();
121
+ const SCHEMA_MIGRATIONS = new Map([
122
+ [1, (db) => db.exec(ACCOUNT_LAST_SERVICE_SQL)],
123
+ ]);
107
124
  export function readSchemaIdentity(db) {
108
125
  const scalar = (sql) => {
109
126
  const row = db.prepare(sql).get();
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,14 @@ export declare function createSqlDaemonServices(store: EngineStore, options: Sql
42
42
  readonly quota: QuotaRegistry;
43
43
  interactions: InteractionRegistry;
44
44
  liveInputs: LiveInputRegistry;
45
+ accounts: {
46
+ credentials: import("../credential-generation.js").CredentialGeneration;
47
+ unusable: import("../credential-unusable-ledger.js").CredentialUnusableLedger;
48
+ refusals: import("../pre-progress-refusal-ledger.js").PreProgressRefusalLedger;
49
+ substitutions: import("../model-substitution-ledger.js").ModelSubstitutionLedger;
50
+ services: import("../account-evidence.js").AccountServiceEvidence | null;
51
+ retire: () => void;
52
+ };
45
53
  /** Called by the existing global recovery replacement owner after it
46
54
  * drains setup and changes the registry generation. Publish both owners
47
55
  * together only after the new quota projection validates. */