@claudexor/daemon 3.17.0 → 3.17.2

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.
@@ -23,12 +23,16 @@ import type { CredentialUnusableObservation, HarnessEvent } from "@claudexor/sch
23
23
  * `clearDefaultSubjects`, wired beside the daemon's status-cache busting).
24
24
  * Clearing is always fail-open — a lost observation costs at
25
25
  * most one attempt rediscovering a refusal, while a stale one poisons
26
- * rotation.
26
+ * rotation;
27
+ * 4. no verdict is recorded while a login may be rewriting that harness's
28
+ * credential store (the daemon's setup-lifecycle window, #363): it would be
29
+ * about a credential in flux, and the window's close clears the ledger.
27
30
  */
28
31
  export declare class CredentialUnusableLedger {
29
32
  private readonly now;
33
+ private readonly mutating;
30
34
  private rows;
31
- constructor(now?: () => Date);
35
+ constructor(now?: () => Date, mutating?: (harnessId: string) => boolean);
32
36
  /** Validate, clamp to the TTL bound, newest-wins per (subject, model). */
33
37
  record(value: CredentialUnusableObservation): void;
34
38
  /** Every un-expired observation (the read side of the orchestrator deps). */
@@ -1 +1 @@
1
- {"version":3,"file":"credential-unusable-ledger.d.ts","sourceRoot":"","sources":["../src/credential-unusable-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQrF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,wBAAwB;IAGvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFhC,OAAO,CAAC,IAAI,CAAoD;IAEhE,YAA6B,GAAG,GAAE,MAAM,IAAuB,EAAI;IAEnE,0EAA0E;IAC1E,MAAM,CAAC,KAAK,EAAE,6BAA6B,GAAG,IAAI,CAejD;IAED,6EAA6E;IAC7E,IAAI,IAAI,SAAS,6BAA6B,EAAE,CAG/C;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CASzD;IAED;2CACuC;IACvC,oBAAoB,IAAI,IAAI,CAE3B;IAED;;2DAEuD;IACvD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAI9D;IAED;;;yEAGqE;IACrE,oBAAoB,IAAI,IAAI,CAI3B;IAED,OAAO,CAAC,KAAK;CAOd"}
1
+ {"version":3,"file":"credential-unusable-ledger.d.ts","sourceRoot":"","sources":["../src/credential-unusable-ledger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,6BAA6B,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQrF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,wBAAwB;IAIjC,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ3B,OAAO,CAAC,IAAI,CAAoD;IAEhE,YACmB,GAAG,GAAE,MAAM,IAAuB,EAClC,QAAQ,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAsC,EACtF;IAEJ,0EAA0E;IAC1E,MAAM,CAAC,KAAK,EAAE,6BAA6B,GAAG,IAAI,CAgBjD;IAED,6EAA6E;IAC7E,IAAI,IAAI,SAAS,6BAA6B,EAAE,CAG/C;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CASzD;IAED;2CACuC;IACvC,oBAAoB,IAAI,IAAI,CAE3B;IAED;;2DAEuD;IACvD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAI9D;IAED;;;yEAGqE;IACrE,oBAAoB,IAAI,IAAI,CAI3B;IAED,OAAO,CAAC,KAAK;CAOd"}
@@ -1,3 +1,4 @@
1
+ import { credentialMutationWindowOpen } from "@claudexor/core";
1
2
  import { CredentialUnusableObservation as CredentialUnusableObservationSchema } from "@claudexor/schema";
2
3
  /** No observation may outlive this bound, whatever its producer asked for. */
3
4
  const MAX_TTL_MS = 24 * 60 * 60_000;
@@ -27,17 +28,24 @@ const MAX_ROWS = 64;
27
28
  * `clearDefaultSubjects`, wired beside the daemon's status-cache busting).
28
29
  * Clearing is always fail-open — a lost observation costs at
29
30
  * most one attempt rediscovering a refusal, while a stale one poisons
30
- * rotation.
31
+ * rotation;
32
+ * 4. no verdict is recorded while a login may be rewriting that harness's
33
+ * credential store (the daemon's setup-lifecycle window, #363): it would be
34
+ * about a credential in flux, and the window's close clears the ledger.
31
35
  */
32
36
  export class CredentialUnusableLedger {
33
37
  now;
38
+ mutating;
34
39
  rows = new Map();
35
- constructor(now = () => new Date()) {
40
+ constructor(now = () => new Date(), mutating = credentialMutationWindowOpen) {
36
41
  this.now = now;
42
+ this.mutating = mutating;
37
43
  }
38
44
  /** Validate, clamp to the TTL bound, newest-wins per (subject, model). */
39
45
  record(value) {
40
46
  const obs = CredentialUnusableObservationSchema.parse(value);
47
+ if (this.mutating(obs.harness_id))
48
+ return;
41
49
  const observed = Date.parse(obs.observed_at);
42
50
  const cap = (Number.isFinite(observed) ? observed : this.now().getTime()) + MAX_TTL_MS;
43
51
  const expires = Math.min(Date.parse(obs.expires_at), cap);
@@ -1 +1 @@
1
- {"version":3,"file":"credential-unusable-ledger.js","sourceRoot":"","sources":["../src/credential-unusable-ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credential-unusable-ledger.js","sourceRoot":"","sources":["../src/credential-unusable-ledger.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -28,6 +28,7 @@ export * from "./quota-poll-lanes.js";
28
28
  export { quotaPacerFileStore } from "./quota-poll-pacer.js";
29
29
  export * from "./credential-unusable-ledger.js";
30
30
  export * from "./model-substitution-ledger.js";
31
+ export * from "./pre-progress-refusal-ledger.js";
31
32
  export * from "./project-partitions.js";
32
33
  export * from "./model-operations.js";
33
34
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -28,6 +28,7 @@ export * from "./quota-poll-lanes.js";
28
28
  export { quotaPacerFileStore } from "./quota-poll-pacer.js";
29
29
  export * from "./credential-unusable-ledger.js";
30
30
  export * from "./model-substitution-ledger.js";
31
+ export * from "./pre-progress-refusal-ledger.js";
31
32
  export * from "./project-partitions.js";
32
33
  export * from "./model-operations.js";
33
34
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
@@ -40,7 +40,7 @@ export declare class ModelOperations {
40
40
  private closed;
41
41
  private readonly startedAt;
42
42
  constructor(deps: ModelOperationDependencies);
43
- create(request: ModelPayloadRef, idempotencyKey: string, captureFailureEvidence?: boolean): Promise<ControlModelOperationDetail>;
43
+ create(request: ModelPayloadRef, idempotencyKey: string, captureFailureEvidence?: boolean, captureEffortEvidence?: boolean): Promise<ControlModelOperationDetail>;
44
44
  execute(raw: unknown, ctx: RunContext): Promise<ModelOperationReceipt>;
45
45
  inspect(id: string): ControlModelOperationDetail;
46
46
  readResult(id: string): {
@@ -1 +1 @@
1
- {"version":3,"file":"model-operations.d.ts","sourceRoot":"","sources":["../src/model-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-operations.d.ts","sourceRoot":"","sources":["../src/model-operations.ts"],"names":[],"mappings":"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"}
@@ -45,11 +45,14 @@ export class ModelOperations {
45
45
  this.deps = deps;
46
46
  this.startedAt = this.now().getTime();
47
47
  }
48
- async create(request, idempotencyKey, captureFailureEvidence) {
48
+ async create(request, idempotencyKey, captureFailureEvidence, captureEffortEvidence) {
49
49
  if (this.closed)
50
50
  throw operationError("daemon_stopping", "Model operations are stopping", 503);
51
51
  // Omission and false retain the historical command and idempotency bytes.
52
- const capture = captureFailureEvidence === true ? { captureFailureEvidence: true } : {};
52
+ const capture = {
53
+ ...(captureFailureEvidence === true ? { captureFailureEvidence: true } : {}),
54
+ ...(captureEffortEvidence === true ? { captureEffortEvidence: true } : {}),
55
+ };
53
56
  const envelope = {
54
57
  request: ModelOperationParams.parse({ kind: "model", request, ...capture }),
55
58
  operation: MODEL_OPERATION_ID,
@@ -110,7 +113,12 @@ export class ModelOperations {
110
113
  evidence.usage = result.usage;
111
114
  evidence.cost = result.cost;
112
115
  evidence.problem = result.problem;
113
- if (evidence.dispatch.state === "started") {
116
+ const notDelivered = result.outcome === "failed" &&
117
+ result.problem?.code === "transport_not_delivered" &&
118
+ result.problem.context.generationStarted === false &&
119
+ result.problem.context.requestDelivery?.state ===
120
+ "not_delivered";
121
+ if (evidence.dispatch.state === "started" && !notDelivered) {
114
122
  evidence.dispatch = {
115
123
  ...evidence.dispatch,
116
124
  state: result.outcome === "unknown" ? "unknown" : "response_received",
@@ -129,6 +137,9 @@ export class ModelOperations {
129
137
  : result.outcome === "unknown" || result.outcome === "incomplete"
130
138
  ? "interrupted"
131
139
  : "failed";
140
+ // Freeze the negotiated shape BEFORE publication; GET must keep its digest-bound bytes.
141
+ if (params.captureEffortEvidence !== true)
142
+ delete result.effortResolution;
132
143
  const ref = this.deps.resources().publishModel(Buffer.from(JSON.stringify(result), "utf8"));
133
144
  const ready = this.now();
134
145
  evidence.response = {
@@ -137,6 +148,11 @@ export class ModelOperations {
137
148
  readyAt: ready.toISOString(),
138
149
  expiresAt: new Date(ready.getTime() + RESPONSE_RETENTION_MS).toISOString(),
139
150
  };
151
+ // Refine only a complete terminal proof. The earlier attempted-send
152
+ // stamp/route survive; a crash or publication failure still reads unknown.
153
+ if (notDelivered && evidence.dispatch.state === "started") {
154
+ evidence.dispatch = { ...evidence.dispatch, state: "not_started" };
155
+ }
140
156
  // DaemonServer's existing terminal update atomically publishes this
141
157
  // compact receipt. Bodies never enter JobRecord.params/result.
142
158
  return ModelOperationReceipt.parse({ lifecycle, ...evidence });
@@ -1 +1 @@
1
- {"version":3,"file":"model-operations.js","sourceRoot":"","sources":["../src/model-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-operations.js","sourceRoot":"","sources":["../src/model-operations.ts"],"names":[],"mappings":"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"}
@@ -25,13 +25,17 @@ import type { ModelSubstitutionObservation } from "@claudexor/schema";
25
25
  * 3. a credential-generation change voids the verdicts about the changed
26
26
  * generation, at the unusable ledger's call sites: a login/logout clears the
27
27
  * WHOLE ledger (`noteCredentialChange`), a control-API profile mutation
28
- * clears PER SUBJECT (`clearSubject`). A secret mutation names no subject
29
- * here — model operations admit managed-login rows only.
28
+ * clears PER SUBJECT (`clearSubject`). Secret mutations also clear every
29
+ * matching registry subject, including subscription OAuth rows;
30
+ * 4. no mark is recorded while a login may be rewriting that harness's
31
+ * credential store (the daemon's setup-lifecycle window, #363); the
32
+ * window's close clears the ledger.
30
33
  */
31
34
  export declare class ModelSubstitutionLedger {
32
35
  private readonly now;
36
+ private readonly mutating;
33
37
  private rows;
34
- constructor(now?: () => Date);
38
+ constructor(now?: () => Date, mutating?: (harnessId: string) => boolean);
35
39
  /** Validate and stamp, newest-wins per (subject, requested model). */
36
40
  record(value: Omit<ModelSubstitutionObservation, "observed_at" | "expires_at">): void;
37
41
  /** Every un-expired observation (the read side of account resolution). */
@@ -1 +1 @@
1
- {"version":3,"file":"model-substitution-ledger.d.ts","sourceRoot":"","sources":["../src/model-substitution-ledger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAWtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,uBAAuB;IAGtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFhC,OAAO,CAAC,IAAI,CAAmD;IAE/D,YAA6B,GAAG,GAAE,MAAM,IAAuB,EAAI;IAEnE,sEAAsE;IACtE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,4BAA4B,EAAE,aAAa,GAAG,YAAY,CAAC,GAAG,IAAI,CAgBpF;IAED,0EAA0E;IAC1E,IAAI,IAAI,SAAS,4BAA4B,EAAE,CAG9C;IAED;2CACuC;IACvC,oBAAoB,IAAI,IAAI,CAE3B;IAED;8DAC0D;IAC1D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAIvD;IAED,OAAO,CAAC,KAAK;CAMd"}
1
+ {"version":3,"file":"model-substitution-ledger.d.ts","sourceRoot":"","sources":["../src/model-substitution-ledger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAWtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,uBAAuB;IAIhC,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ3B,OAAO,CAAC,IAAI,CAAmD;IAE/D,YACmB,GAAG,GAAE,MAAM,IAAuB,EAClC,QAAQ,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAsC,EACtF;IAEJ,sEAAsE;IACtE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,4BAA4B,EAAE,aAAa,GAAG,YAAY,CAAC,GAAG,IAAI,CAiBpF;IAED,0EAA0E;IAC1E,IAAI,IAAI,SAAS,4BAA4B,EAAE,CAG9C;IAED;2CACuC;IACvC,oBAAoB,IAAI,IAAI,CAE3B;IAED;8DAC0D;IAC1D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAIvD;IAED,OAAO,CAAC,KAAK;CAMd"}
@@ -1,3 +1,4 @@
1
+ import { credentialMutationWindowOpen } from "@claudexor/core";
1
2
  import { ModelSubstitutionObservation as ModelSubstitutionObservationSchema } from "@claudexor/schema";
2
3
  /** Observation retention, not a vendor reset time; a false mark costs only ordering. */
3
4
  // The requested model is what ranks; what was served instead travels on the
@@ -32,17 +33,24 @@ const MAX_ROWS = 64;
32
33
  * 3. a credential-generation change voids the verdicts about the changed
33
34
  * generation, at the unusable ledger's call sites: a login/logout clears the
34
35
  * WHOLE ledger (`noteCredentialChange`), a control-API profile mutation
35
- * clears PER SUBJECT (`clearSubject`). A secret mutation names no subject
36
- * here — model operations admit managed-login rows only.
36
+ * clears PER SUBJECT (`clearSubject`). Secret mutations also clear every
37
+ * matching registry subject, including subscription OAuth rows;
38
+ * 4. no mark is recorded while a login may be rewriting that harness's
39
+ * credential store (the daemon's setup-lifecycle window, #363); the
40
+ * window's close clears the ledger.
37
41
  */
38
42
  export class ModelSubstitutionLedger {
39
43
  now;
44
+ mutating;
40
45
  rows = new Map();
41
- constructor(now = () => new Date()) {
46
+ constructor(now = () => new Date(), mutating = credentialMutationWindowOpen) {
42
47
  this.now = now;
48
+ this.mutating = mutating;
43
49
  }
44
50
  /** Validate and stamp, newest-wins per (subject, requested model). */
45
51
  record(value) {
52
+ if (this.mutating(value.harness_id))
53
+ return;
46
54
  const at = this.now().getTime();
47
55
  const obs = ModelSubstitutionObservationSchema.parse({
48
56
  ...value,
@@ -1 +1 @@
1
- {"version":3,"file":"model-substitution-ledger.js","sourceRoot":"","sources":["../src/model-substitution-ledger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,IAAI,kCAAkC,EAAE,MAAM,mBAAmB,CAAC;AAEvG,wFAAwF;AACxF,4EAA4E;AAC5E,2EAA2E;AAC3E,4BAA4B;AAC5B,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC;AAC3B,8DAA8D;AAC9D,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,uBAAuB;IAGL,GAAG;IAFxB,IAAI,GAAG,IAAI,GAAG,EAAwC,CAAC;IAE/D,YAA6B,GAAG,GAAe,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;mBAAlC,GAAG;IAAkC,CAAC;IAEnE,sEAAsE;IACtE,MAAM,CAAC,KAAuE;QAC5E,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,kCAAkC,CAAC,KAAK,CAAC;YACnD,GAAG,KAAK;YACR,WAAW,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;YACvC,UAAU,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC3D,yEAAyE;YACzE,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACxD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACnE,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,0EAA0E;IAC1E,IAAI;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;IAED;2CACuC;IACvC,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED;8DAC0D;IAC1D,YAAY,CAAC,SAAiB,EAAE,SAAiB;QAC/C,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAEO,KAAK;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF;AAED,SAAS,GAAG,CAAC,GAAiC;IAC5C,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"model-substitution-ledger.js","sourceRoot":"","sources":["../src/model-substitution-ledger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { PreProgressRefusalObservation } from "@claudexor/schema";
2
+ /**
3
+ * The daemon's bounded, self-expiring memory of typed pre-progress refusals:
4
+ * "this pool account's vendor session started for model M and ended in a
5
+ * terminal refusal before any agent progress".
6
+ *
7
+ * The structural rotation already moves THAT run to a sibling without reading
8
+ * the vendor's wording; without this memory the pool's deterministic order
9
+ * puts the same refusing account first on every later unpinned run. A live
10
+ * observation only ORDERS the pool for that requested model (INV-135): it never
11
+ * excludes a row, never touches a pin or a usable bound account, and never
12
+ * claims spent quota or a dead credential.
13
+ *
14
+ * Deliberately IN-MEMORY, like the ledgers beside it: a restart forgets every
15
+ * mark and each account rediscovers its own refusal at the cost of one
16
+ * rotation.
17
+ *
18
+ * Clearing contract:
19
+ * 1. self-expiry — every row is stamped here with the one retention above;
20
+ * 2. a served try — a later try on the same account and requested model that
21
+ * made agent progress or ended without an error clears that mark (`clear`);
22
+ * 3. a credential-generation change voids the verdicts about the changed
23
+ * generation, at the unusable ledger's call sites: a login/logout clears the
24
+ * WHOLE ledger (`noteCredentialChange`), a control-API profile mutation
25
+ * clears PER SUBJECT (`clearSubject`). Neither waits for runs in flight, so
26
+ * each also moves the account's `generation`: a try binds it before its
27
+ * session spawns, and an outcome that arrives after a change neither
28
+ * recreates a voided mark nor clears the changed credential's newer one;
29
+ * 4. while a login may be rewriting the harness's credential store (the
30
+ * daemon's setup-lifecycle window), the generation is NO number at all: a
31
+ * try bound inside the window, or one whose outcome lands inside it, is
32
+ * about a credential in flux and neither records nor clears (#363).
33
+ */
34
+ export declare class PreProgressRefusalLedger {
35
+ private readonly now;
36
+ private readonly mutating;
37
+ private rows;
38
+ /** Monotonic credential-change counter: the last change wholesale and per
39
+ * account (only accounts changed since the last wholesale change). */
40
+ private changes;
41
+ private everyAccountChangedAt;
42
+ private accountChangedAt;
43
+ constructor(now?: () => Date, mutating?: (harnessId: string) => boolean);
44
+ /** Validate and stamp, newest-wins per (subject, requested model). */
45
+ record(value: Omit<PreProgressRefusalObservation, "observed_at" | "expires_at">): void;
46
+ /** Every un-expired observation (the read side of account resolution). */
47
+ live(): readonly PreProgressRefusalObservation[];
48
+ /** The account served this requested model again: its mark is stale. */
49
+ clear(harnessId: string, profileId: string, requestedModel: string | null): void;
50
+ /** The account's credential generation: it moves only when a credential
51
+ * change voids the account's verdicts, never with evidence or expiry. */
52
+ generation(harnessId: string, profileId: string): number;
53
+ /** Credential generation changed wholesale (login/logout): every verdict
54
+ * about the old generation is void. */
55
+ noteCredentialChange(): void;
56
+ /** ONE account's credential changed (a control-API profile mutation): only
57
+ * ITS verdicts are void, across every requested model. */
58
+ clearSubject(harnessId: string, profileId: string): void;
59
+ private prune;
60
+ }
61
+ //# sourceMappingURL=pre-progress-refusal-ledger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pre-progress-refusal-ledger.d.ts","sourceRoot":"","sources":["../src/pre-progress-refusal-ledger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAWvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,wBAAwB;IASjC,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAT3B,OAAO,CAAC,IAAI,CAAoD;IAChE;0EACsE;IACtE,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,gBAAgB,CAA6B;IAErD,YACmB,GAAG,GAAE,MAAM,IAAuB,EAClC,QAAQ,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAsC,EACtF;IAEJ,sEAAsE;IACtE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,6BAA6B,EAAE,aAAa,GAAG,YAAY,CAAC,GAAG,IAAI,CAiBrF;IAED,0EAA0E;IAC1E,IAAI,IAAI,SAAS,6BAA6B,EAAE,CAG/C;IAED,wEAAwE;IACxE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAI/E;IAED;6EACyE;IACzE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAOvD;IAED;2CACuC;IACvC,oBAAoB,IAAI,IAAI,CAI3B;IAED;8DAC0D;IAC1D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAKvD;IAED,OAAO,CAAC,KAAK;CAMd"}
@@ -0,0 +1,121 @@
1
+ import { credentialMutationWindowOpen } from "@claudexor/core";
2
+ import { PreProgressRefusalObservation as PreProgressRefusalObservationSchema } from "@claudexor/schema";
3
+ /** Observation retention, not a vendor reset time: the refusal was read from
4
+ * typed attempt evidence, never from prose, so it names no reset. One hour is
5
+ * the bound the credential differential already gives a possibly model-scoped
6
+ * refusal; a false mark costs only ordering. */
7
+ const TTL_MS = 60 * 60_000;
8
+ /** Bounded memory: the ledger holds evidence, not history. */
9
+ const MAX_ROWS = 64;
10
+ /**
11
+ * The daemon's bounded, self-expiring memory of typed pre-progress refusals:
12
+ * "this pool account's vendor session started for model M and ended in a
13
+ * terminal refusal before any agent progress".
14
+ *
15
+ * The structural rotation already moves THAT run to a sibling without reading
16
+ * the vendor's wording; without this memory the pool's deterministic order
17
+ * puts the same refusing account first on every later unpinned run. A live
18
+ * observation only ORDERS the pool for that requested model (INV-135): it never
19
+ * excludes a row, never touches a pin or a usable bound account, and never
20
+ * claims spent quota or a dead credential.
21
+ *
22
+ * Deliberately IN-MEMORY, like the ledgers beside it: a restart forgets every
23
+ * mark and each account rediscovers its own refusal at the cost of one
24
+ * rotation.
25
+ *
26
+ * Clearing contract:
27
+ * 1. self-expiry — every row is stamped here with the one retention above;
28
+ * 2. a served try — a later try on the same account and requested model that
29
+ * made agent progress or ended without an error clears that mark (`clear`);
30
+ * 3. a credential-generation change voids the verdicts about the changed
31
+ * generation, at the unusable ledger's call sites: a login/logout clears the
32
+ * WHOLE ledger (`noteCredentialChange`), a control-API profile mutation
33
+ * clears PER SUBJECT (`clearSubject`). Neither waits for runs in flight, so
34
+ * each also moves the account's `generation`: a try binds it before its
35
+ * session spawns, and an outcome that arrives after a change neither
36
+ * recreates a voided mark nor clears the changed credential's newer one;
37
+ * 4. while a login may be rewriting the harness's credential store (the
38
+ * daemon's setup-lifecycle window), the generation is NO number at all: a
39
+ * try bound inside the window, or one whose outcome lands inside it, is
40
+ * about a credential in flux and neither records nor clears (#363).
41
+ */
42
+ export class PreProgressRefusalLedger {
43
+ now;
44
+ mutating;
45
+ rows = new Map();
46
+ /** Monotonic credential-change counter: the last change wholesale and per
47
+ * account (only accounts changed since the last wholesale change). */
48
+ changes = 0;
49
+ everyAccountChangedAt = 0;
50
+ accountChangedAt = new Map();
51
+ constructor(now = () => new Date(), mutating = credentialMutationWindowOpen) {
52
+ this.now = now;
53
+ this.mutating = mutating;
54
+ }
55
+ /** Validate and stamp, newest-wins per (subject, requested model). */
56
+ record(value) {
57
+ if (this.mutating(value.harness_id))
58
+ return;
59
+ const at = this.now().getTime();
60
+ const obs = PreProgressRefusalObservationSchema.parse({
61
+ ...value,
62
+ observed_at: new Date(at).toISOString(),
63
+ expires_at: new Date(at + TTL_MS).toISOString(),
64
+ });
65
+ this.prune();
66
+ if (this.rows.size >= MAX_ROWS && !this.rows.has(key(obs))) {
67
+ // Bounded: drop the earliest-expiring row rather than refusing evidence.
68
+ const earliest = [...this.rows.entries()].reduce((a, b) => Date.parse(a[1].expires_at) <= Date.parse(b[1].expires_at) ? a : b);
69
+ this.rows.delete(earliest[0]);
70
+ }
71
+ this.rows.set(key(obs), obs);
72
+ }
73
+ /** Every un-expired observation (the read side of account resolution). */
74
+ live() {
75
+ this.prune();
76
+ return [...this.rows.values()];
77
+ }
78
+ /** The account served this requested model again: its mark is stale. */
79
+ clear(harnessId, profileId, requestedModel) {
80
+ this.rows.delete(key({ harness_id: harnessId, profile_id: profileId, requested_model: requestedModel }));
81
+ }
82
+ /** The account's credential generation: it moves only when a credential
83
+ * change voids the account's verdicts, never with evidence or expiry. */
84
+ generation(harnessId, profileId) {
85
+ // NaN equals nothing, itself included: a window-bound try never matches.
86
+ if (this.mutating(harnessId))
87
+ return Number.NaN;
88
+ return Math.max(this.everyAccountChangedAt, this.accountChangedAt.get(accountKey(harnessId, profileId)) ?? 0);
89
+ }
90
+ /** Credential generation changed wholesale (login/logout): every verdict
91
+ * about the old generation is void. */
92
+ noteCredentialChange() {
93
+ this.rows.clear();
94
+ this.accountChangedAt.clear();
95
+ this.everyAccountChangedAt = ++this.changes;
96
+ }
97
+ /** ONE account's credential changed (a control-API profile mutation): only
98
+ * ITS verdicts are void, across every requested model. */
99
+ clearSubject(harnessId, profileId) {
100
+ for (const [k, obs] of this.rows) {
101
+ if (obs.harness_id === harnessId && obs.profile_id === profileId)
102
+ this.rows.delete(k);
103
+ }
104
+ this.accountChangedAt.set(accountKey(harnessId, profileId), ++this.changes);
105
+ }
106
+ prune() {
107
+ const now = this.now().getTime();
108
+ for (const [k, obs] of this.rows) {
109
+ if (Date.parse(obs.expires_at) <= now)
110
+ this.rows.delete(k);
111
+ }
112
+ }
113
+ }
114
+ function key(obs) {
115
+ // `\u0001` keeps the null default model distinct from a model named "".
116
+ return [obs.harness_id, obs.profile_id, obs.requested_model ?? "\u0001"].join("\0");
117
+ }
118
+ function accountKey(harnessId, profileId) {
119
+ return [harnessId, profileId].join("\0");
120
+ }
121
+ //# sourceMappingURL=pre-progress-refusal-ledger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pre-progress-refusal-ledger.js","sourceRoot":"","sources":["../src/pre-progress-refusal-ledger.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claudexor/daemon",
3
- "version": "3.17.0",
3
+ "version": "3.17.2",
4
4
  "license": "MIT",
5
5
  "description": "Managed local daemon: Unix-socket JSON-RPC, token auth, task queue. Runner injected (no second scheduler).",
6
6
  "type": "module",
@@ -17,10 +17,10 @@
17
17
  ],
18
18
  "dependencies": {
19
19
  "yaml": "^2.8.2",
20
- "@claudexor/core": "3.17.0",
21
- "@claudexor/util": "3.17.0",
22
- "@claudexor/journal": "3.17.0",
23
- "@claudexor/schema": "3.17.0"
20
+ "@claudexor/journal": "3.17.2",
21
+ "@claudexor/core": "3.17.2",
22
+ "@claudexor/schema": "3.17.2",
23
+ "@claudexor/util": "3.17.2"
24
24
  },
25
25
  "repository": {
26
26
  "type": "git",