@claudexor/daemon 3.4.2 → 3.6.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 (41) hide show
  1. package/dist/credential-unusable-ledger.d.ts +59 -0
  2. package/dist/credential-unusable-ledger.d.ts.map +1 -0
  3. package/dist/credential-unusable-ledger.js +117 -0
  4. package/dist/credential-unusable-ledger.js.map +1 -0
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/partition-accounts.d.ts +27 -0
  10. package/dist/partition-accounts.d.ts.map +1 -0
  11. package/dist/partition-accounts.js +21 -0
  12. package/dist/partition-accounts.js.map +1 -0
  13. package/dist/project-partitions.d.ts +10 -0
  14. package/dist/project-partitions.d.ts.map +1 -1
  15. package/dist/project-partitions.js +26 -66
  16. package/dist/project-partitions.js.map +1 -1
  17. package/dist/project-remove.d.ts +11 -0
  18. package/dist/project-remove.d.ts.map +1 -0
  19. package/dist/project-remove.js +67 -0
  20. package/dist/project-remove.js.map +1 -0
  21. package/dist/quota-registry-support.d.ts +16 -0
  22. package/dist/quota-registry-support.d.ts.map +1 -0
  23. package/dist/quota-registry-support.js +66 -0
  24. package/dist/quota-registry-support.js.map +1 -0
  25. package/dist/quota-registry.d.ts +10 -4
  26. package/dist/quota-registry.d.ts.map +1 -1
  27. package/dist/quota-registry.js +19 -71
  28. package/dist/quota-registry.js.map +1 -1
  29. package/dist/thread-lane-checkpoints.d.ts +59 -1
  30. package/dist/thread-lane-checkpoints.d.ts.map +1 -1
  31. package/dist/thread-lane-checkpoints.js +127 -1
  32. package/dist/thread-lane-checkpoints.js.map +1 -1
  33. package/dist/thread-store-support.d.ts +6 -1
  34. package/dist/thread-store-support.d.ts.map +1 -1
  35. package/dist/thread-store-support.js +54 -2
  36. package/dist/thread-store-support.js.map +1 -1
  37. package/dist/threads.d.ts +16 -0
  38. package/dist/threads.d.ts.map +1 -1
  39. package/dist/threads.js +31 -67
  40. package/dist/threads.js.map +1 -1
  41. package/package.json +5 -5
@@ -0,0 +1,59 @@
1
+ import type { CredentialUnusableObservation, HarnessEvent } from "@claudexor/schema";
2
+ /**
3
+ * The daemon's bounded, self-expiring memory of typed `credential_unusable`
4
+ * observations (A7): "this credential is DEAD, not quota-spent".
5
+ *
6
+ * Deliberately IN-MEMORY, never journaled: profile readiness is non-durable by
7
+ * contract (the doctor's projection), the quota poller re-derives vendor
8
+ * rejections within a poll cycle after a restart, and a restart usually
9
+ * follows exactly the re-login that heals a dead credential — journaling would
10
+ * buy rollback-compat risk to preserve evidence that expires anyway. The
11
+ * `QuotaAbsence` channel is unsuitable on purpose: the registry hides an
12
+ * absence while ANY live snapshot covers the subject, which is exactly how a
13
+ * dead credential with a lingering cooldown snapshot would vanish.
14
+ *
15
+ * Clearing contract (all three, per the design roast):
16
+ * 1. self-expiry — every row carries `expires_at`, clamped to 24h max;
17
+ * 2. a successful model response for the same subject (`observeEvent`);
18
+ * 3. a credential-generation change voids the verdicts about the changed
19
+ * generation: a login/logout clears the WHOLE ledger
20
+ * (`noteCredentialChange`, wired in claudexord's setup lifecycle), while a
21
+ * control-API credential mutation (profile enable/disable/create/remove,
22
+ * secret set/delete) clears PER SUBJECT (`clearSubject` /
23
+ * `clearDefaultSubjects`, wired beside the daemon's status-cache busting).
24
+ * Clearing is always fail-open — a lost observation costs at
25
+ * most one attempt rediscovering a refusal, while a stale one poisons
26
+ * rotation.
27
+ */
28
+ export declare class CredentialUnusableLedger {
29
+ private readonly now;
30
+ private rows;
31
+ constructor(now?: () => Date);
32
+ /** Validate, clamp to the TTL bound, newest-wins per (subject, model). */
33
+ record(value: CredentialUnusableObservation): void;
34
+ /** Every un-expired observation (the read side of the orchestrator deps). */
35
+ live(): readonly CredentialUnusableObservation[];
36
+ /**
37
+ * Success telemetry (wired where usage events already flow): a usage event
38
+ * with served tokens proves the vendor honored this subject's credential,
39
+ * so its credential-wide observations are stale. A model-SCOPED entitlement
40
+ * observation clears only when the event's observed model matches exactly —
41
+ * vendor display labels are not slugs, so an unprovable match honestly
42
+ * leaves the row to its short TTL or a generation change.
43
+ */
44
+ observeEvent(harnessId: string, event: HarnessEvent): void;
45
+ /** Credential generation changed wholesale (login/logout): every verdict
46
+ * about the old generation is void. */
47
+ noteCredentialChange(): void;
48
+ /** ONE subject's credential changed (a control-API profile or profile-secret
49
+ * mutation): only ITS verdicts are void, across every model scope.
50
+ * `profileId` null = the harness's default subject. */
51
+ clearSubject(harnessId: string, profileId: string | null): void;
52
+ /** A bare managed secret name changed an engine-DEFAULT credential slot.
53
+ * WHICH harness reads that slot is adapter knowledge the daemon does not
54
+ * duplicate, so every default subject's verdicts are voided — fail-open by
55
+ * the clearing contract (costs at most one rediscovered refusal). */
56
+ clearDefaultSubjects(): void;
57
+ private prune;
58
+ }
59
+ //# sourceMappingURL=credential-unusable-ledger.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,117 @@
1
+ import { CredentialUnusableObservation as CredentialUnusableObservationSchema } from "@claudexor/schema";
2
+ /** No observation may outlive this bound, whatever its producer asked for. */
3
+ const MAX_TTL_MS = 24 * 60 * 60_000;
4
+ /** Bounded memory: the ledger holds evidence, not history. */
5
+ const MAX_ROWS = 64;
6
+ /**
7
+ * The daemon's bounded, self-expiring memory of typed `credential_unusable`
8
+ * observations (A7): "this credential is DEAD, not quota-spent".
9
+ *
10
+ * Deliberately IN-MEMORY, never journaled: profile readiness is non-durable by
11
+ * contract (the doctor's projection), the quota poller re-derives vendor
12
+ * rejections within a poll cycle after a restart, and a restart usually
13
+ * follows exactly the re-login that heals a dead credential — journaling would
14
+ * buy rollback-compat risk to preserve evidence that expires anyway. The
15
+ * `QuotaAbsence` channel is unsuitable on purpose: the registry hides an
16
+ * absence while ANY live snapshot covers the subject, which is exactly how a
17
+ * dead credential with a lingering cooldown snapshot would vanish.
18
+ *
19
+ * Clearing contract (all three, per the design roast):
20
+ * 1. self-expiry — every row carries `expires_at`, clamped to 24h max;
21
+ * 2. a successful model response for the same subject (`observeEvent`);
22
+ * 3. a credential-generation change voids the verdicts about the changed
23
+ * generation: a login/logout clears the WHOLE ledger
24
+ * (`noteCredentialChange`, wired in claudexord's setup lifecycle), while a
25
+ * control-API credential mutation (profile enable/disable/create/remove,
26
+ * secret set/delete) clears PER SUBJECT (`clearSubject` /
27
+ * `clearDefaultSubjects`, wired beside the daemon's status-cache busting).
28
+ * Clearing is always fail-open — a lost observation costs at
29
+ * most one attempt rediscovering a refusal, while a stale one poisons
30
+ * rotation.
31
+ */
32
+ export class CredentialUnusableLedger {
33
+ now;
34
+ rows = new Map();
35
+ constructor(now = () => new Date()) {
36
+ this.now = now;
37
+ }
38
+ /** Validate, clamp to the TTL bound, newest-wins per (subject, model). */
39
+ record(value) {
40
+ const obs = CredentialUnusableObservationSchema.parse(value);
41
+ const observed = Date.parse(obs.observed_at);
42
+ const cap = (Number.isFinite(observed) ? observed : this.now().getTime()) + MAX_TTL_MS;
43
+ const expires = Math.min(Date.parse(obs.expires_at), cap);
44
+ this.prune();
45
+ if (!Number.isFinite(expires) || expires <= this.now().getTime())
46
+ return;
47
+ if (this.rows.size >= MAX_ROWS && !this.rows.has(key(obs))) {
48
+ // Bounded: drop the earliest-expiring row rather than refusing evidence.
49
+ const earliest = [...this.rows.entries()].reduce((a, b) => Date.parse(a[1].expires_at) <= Date.parse(b[1].expires_at) ? a : b);
50
+ this.rows.delete(earliest[0]);
51
+ }
52
+ this.rows.set(key(obs), { ...obs, expires_at: new Date(expires).toISOString() });
53
+ }
54
+ /** Every un-expired observation (the read side of the orchestrator deps). */
55
+ live() {
56
+ this.prune();
57
+ return [...this.rows.values()];
58
+ }
59
+ /**
60
+ * Success telemetry (wired where usage events already flow): a usage event
61
+ * with served tokens proves the vendor honored this subject's credential,
62
+ * so its credential-wide observations are stale. A model-SCOPED entitlement
63
+ * observation clears only when the event's observed model matches exactly —
64
+ * vendor display labels are not slugs, so an unprovable match honestly
65
+ * leaves the row to its short TTL or a generation change.
66
+ */
67
+ observeEvent(harnessId, event) {
68
+ if (event.type !== "usage")
69
+ return;
70
+ const served = (event.usage?.input_tokens ?? 0) > 0 || (event.usage?.output_tokens ?? 0) > 0;
71
+ if (!served)
72
+ return;
73
+ const profileId = event.credential_profile_id ?? null;
74
+ for (const [k, obs] of this.rows) {
75
+ if (obs.harness_id !== harnessId || obs.profile_id !== profileId)
76
+ continue;
77
+ if (obs.model === null || obs.model === (event.observed_model ?? null))
78
+ this.rows.delete(k);
79
+ }
80
+ }
81
+ /** Credential generation changed wholesale (login/logout): every verdict
82
+ * about the old generation is void. */
83
+ noteCredentialChange() {
84
+ this.rows.clear();
85
+ }
86
+ /** ONE subject's credential changed (a control-API profile or profile-secret
87
+ * mutation): only ITS verdicts are void, across every model scope.
88
+ * `profileId` null = the harness's default subject. */
89
+ clearSubject(harnessId, profileId) {
90
+ for (const [k, obs] of this.rows) {
91
+ if (obs.harness_id === harnessId && obs.profile_id === profileId)
92
+ this.rows.delete(k);
93
+ }
94
+ }
95
+ /** A bare managed secret name changed an engine-DEFAULT credential slot.
96
+ * WHICH harness reads that slot is adapter knowledge the daemon does not
97
+ * duplicate, so every default subject's verdicts are voided — fail-open by
98
+ * the clearing contract (costs at most one rediscovered refusal). */
99
+ clearDefaultSubjects() {
100
+ for (const [k, obs] of this.rows) {
101
+ if (obs.profile_id === null)
102
+ this.rows.delete(k);
103
+ }
104
+ }
105
+ prune() {
106
+ const now = this.now().getTime();
107
+ for (const [k, obs] of this.rows) {
108
+ const expires = Date.parse(obs.expires_at);
109
+ if (!Number.isFinite(expires) || expires <= now)
110
+ this.rows.delete(k);
111
+ }
112
+ }
113
+ }
114
+ function key(obs) {
115
+ return [obs.harness_id, obs.profile_id ?? "", obs.model ?? ""].join("\0");
116
+ }
117
+ //# sourceMappingURL=credential-unusable-ledger.js.map
@@ -0,0 +1 @@
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
@@ -20,5 +20,6 @@ export * from "./command-authority.js";
20
20
  export * from "./resource-store.js";
21
21
  export * from "./quota-registry.js";
22
22
  export * from "./quota-projection.js";
23
+ export * from "./credential-unusable-ledger.js";
23
24
  export * from "./project-partitions.js";
24
25
  //# 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,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,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,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -20,5 +20,6 @@ export * from "./command-authority.js";
20
20
  export * from "./resource-store.js";
21
21
  export * from "./quota-registry.js";
22
22
  export * from "./quota-projection.js";
23
+ export * from "./credential-unusable-ledger.js";
23
24
  export * from "./project-partitions.js";
24
25
  //# 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,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,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,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { ThreadStore } from "./threads.js";
2
+ /**
3
+ * Cross-partition account lifecycle helpers (INV-135/137), extracted from
4
+ * project-partitions.ts (INV-124). The unified-accounts migration and its
5
+ * rollback apply a continuity mutation across the global store and every
6
+ * HEALTHY project partition; quarantined partitions are skipped and DISCLOSED
7
+ * (their null-lane sessions migrate on a later start once recovered — a
8
+ * bounded disclosed residual, never silent loss).
9
+ */
10
+ export interface ProfileContinuityResult {
11
+ sessions: number;
12
+ checkpoints: number;
13
+ skippedPartitions: string[];
14
+ }
15
+ export declare function applyProfileContinuityAcross(hosts: {
16
+ stores: ThreadStore[];
17
+ skippedPartitions: string[];
18
+ }, apply: (store: ThreadStore) => {
19
+ sessions: number;
20
+ checkpoints: number;
21
+ }): ProfileContinuityResult;
22
+ /** Credential-profile deletion invalidation summed across every store. */
23
+ export declare function invalidateCredentialProfileAcross(stores: ThreadStore[], harnessId: string, profileId: string): {
24
+ clearedThreads: number;
25
+ invalidatedSessions: number;
26
+ };
27
+ //# sourceMappingURL=partition-accounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partition-accounts.d.ts","sourceRoot":"","sources":["../src/partition-accounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;;;;GAOG;AAEH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE;IAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,EAC7D,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACvE,uBAAuB,CASzB;AAED,0EAA0E;AAC1E,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,WAAW,EAAE,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAWzD"}
@@ -0,0 +1,21 @@
1
+ export function applyProfileContinuityAcross(hosts, apply) {
2
+ let sessions = 0;
3
+ let checkpoints = 0;
4
+ for (const store of hosts.stores) {
5
+ const result = apply(store);
6
+ sessions += result.sessions;
7
+ checkpoints += result.checkpoints;
8
+ }
9
+ return { sessions, checkpoints, skippedPartitions: hosts.skippedPartitions };
10
+ }
11
+ /** Credential-profile deletion invalidation summed across every store. */
12
+ export function invalidateCredentialProfileAcross(stores, harnessId, profileId) {
13
+ return stores.reduce((total, store) => {
14
+ const result = store.invalidateCredentialProfile(harnessId, profileId);
15
+ return {
16
+ clearedThreads: total.clearedThreads + result.clearedThreads,
17
+ invalidatedSessions: total.invalidatedSessions + result.invalidatedSessions,
18
+ };
19
+ }, { clearedThreads: 0, invalidatedSessions: 0 });
20
+ }
21
+ //# sourceMappingURL=partition-accounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partition-accounts.js","sourceRoot":"","sources":["../src/partition-accounts.ts"],"names":[],"mappings":"AAiBA,MAAM,UAAU,4BAA4B,CAC1C,KAA6D,EAC7D,KAAwE;IAExE,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;QAC5B,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC;IACpC,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAC/E,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,iCAAiC,CAC/C,MAAqB,EACrB,SAAiB,EACjB,SAAiB;IAEjB,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,KAAK,CAAC,2BAA2B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACvE,OAAO;YACL,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc;YAC5D,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB;SAC5E,CAAC;IACJ,CAAC,EACD,EAAE,cAAc,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAC9C,CAAC;AACJ,CAAC"}
@@ -8,6 +8,7 @@ import type { ProjectStore } from "./projects.js";
8
8
  import { type CreateThreadInput, type CreateTurnInput, type ThreadHeadPingSink, type ThreadStore, type UpdateThreadInput } from "./threads.js";
9
9
  import type { CommandAuthority } from "./command-authority.js";
10
10
  import { type ProjectPartitionsPreparation } from "./project-partition-preparation.js";
11
+ import { type ProfileContinuityResult } from "./partition-accounts.js";
11
12
  export type { ProjectPartitionsPreparation } from "./project-partition-preparation.js";
12
13
  export declare class ProjectPartitions implements CommandAuthority {
13
14
  private readonly rootDir;
@@ -133,6 +134,10 @@ export declare class ProjectPartitions implements CommandAuthority {
133
134
  createTurn(id: string, prompt: string, input?: CreateTurnInput): ThreadTurn;
134
135
  findTurnByIdempotency(id: string, input: NonNullable<CreateTurnInput["idempotency"]>): ThreadTurn | undefined;
135
136
  updateThread(id: string, patch: UpdateThreadInput): Thread;
137
+ /** Unified-accounts continuity steps (contract: partition-accounts.ts). */
138
+ migrateNullProfileContinuity(harnessId: string, rowId: string): ProfileContinuityResult;
139
+ rollbackProfileContinuity(harnessId: string, rowId: string): ProfileContinuityResult;
140
+ private continuityHosts;
136
141
  invalidateCredentialProfile(harnessId: string, profileId: string): {
137
142
  clearedThreads: number;
138
143
  invalidatedSessions: number;
@@ -153,6 +158,11 @@ export declare class ProjectPartitions implements CommandAuthority {
153
158
  sessionId: string;
154
159
  profileId: string | null;
155
160
  }>;
161
+ resumeMapAuto(id: string): Record<string, {
162
+ sessionId: string;
163
+ profileId: string | null;
164
+ }>;
165
+ accountBindings(id: string): Record<string, string>;
156
166
  recordSession(id: string, harnessId: string, nativeSessionId: string, observedModel?: string | null, profileId?: string | null): void;
157
167
  recordLaneCheckpoint(id: string, harnessId: string, profileId: string | null, turnId: string): void;
158
168
  laneCheckpoint(id: string, harnessId: string, profileId: string | null): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"project-partitions.d.ts","sourceRoot":"","sources":["../src/project-partitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-partitions.d.ts","sourceRoot":"","sources":["../src/project-partitions.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ import { hashJson, isClaudexorOwnedRuntimePath } from "@claudexor/util";
4
4
  import { beginDeliveryCommand, completeDeliveryCommand, failDeliveryCommand, } from "./delivery-command.js";
5
5
  import { activatePreparedProjectPartitions, prepareProjectPartitions, refreshProjectPartitionsPreparation, ProjectPartitionCollection, } from "./project-partition-preparation.js";
6
6
  import { listProjectThreadsResilient } from "./project-thread-listing.js";
7
+ import { applyProfileContinuityAcross, invalidateCredentialProfileAcross, } from "./partition-accounts.js";
8
+ import { removeProjectFromPartitions } from "./project-remove.js";
7
9
  export class ProjectPartitions {
8
10
  rootDir;
9
11
  projects;
@@ -199,66 +201,8 @@ export class ProjectPartitions {
199
201
  * GC/retention. Unknown id -> 404. Recovery-pending partition -> 409.
200
202
  */
201
203
  removeProject(id, activeRunRoots) {
202
- const registry = this.projects.current();
203
- const project = registry.get(id);
204
- if (!project) {
205
- throw Object.assign(new Error(`no such project: ${id}`), {
206
- code: "project_not_found",
207
- status: 404,
208
- });
209
- }
210
204
  this.partitions.sync();
211
- const entry = this.partitions.get(id);
212
- if (entry) {
213
- if (!entry.manager.ready()) {
214
- throw Object.assign(new Error(`project ${id} partition requires journal recovery before it can be removed`), { code: "journal_recovery_required", status: 409 });
215
- }
216
- const blocking = entry.threads
217
- .current()
218
- .listThreads()
219
- .filter((thread) => thread.state !== "purged");
220
- if (blocking.length > 0) {
221
- throw Object.assign(new Error(`project ${id} still has ${blocking.length} thread(s); trash and purge them before removing it`), { code: "project_has_threads", status: 409 });
222
- }
223
- }
224
- if (activeRunRoots.has(project.root)) {
225
- throw Object.assign(new Error(`project ${id} has a live or queued run; wait for it to finish before removing it`), { code: "project_has_active_run", status: 409 });
226
- }
227
- const archivedPartitionPath = entry ? entry.manager.archivePartition() : null;
228
- try {
229
- registry.unregister(id);
230
- }
231
- catch (unregisterError) {
232
- // Archive succeeded but the durable registry rejected the unregister: the
233
- // project is now archived-but-registered. Roll the archive back into the
234
- // active tree so the two views stay consistent, then surface the original
235
- // unregister failure. If the rollback ITSELF fails we cannot restore
236
- // consistency — disclose the partial state honestly with a typed error
237
- // rather than pretend the remove succeeded (Ф2 finding 4).
238
- if (entry && archivedPartitionPath) {
239
- try {
240
- entry.manager.restoreArchivedPartition(archivedPartitionPath);
241
- }
242
- catch (rollbackError) {
243
- throw Object.assign(new Error(`project ${id} could not be removed: its journal partition was archived to ${archivedPartitionPath}, the registry unregister failed, and the archive could not be rolled back (${rollbackError instanceof Error ? rollbackError.message : String(rollbackError)}); the project is archived-but-registered and needs manual reconciliation`), { code: "project_remove_partial", status: 500, archivedPartitionPath });
244
- }
245
- }
246
- throw unregisterError;
247
- }
248
- this.partitions.delete(id);
249
- return {
250
- projectId: project.id,
251
- root: project.root,
252
- registryRemoved: true,
253
- journalPartitionArchived: archivedPartitionPath !== null,
254
- archivedPartitionPath,
255
- artifactsRetained: true,
256
- // W2: `activeRunRoots` was snapshotted by the caller via an async daemon
257
- // IPC job-list read BEFORE this synchronous removal. A run that starts in
258
- // the window between that snapshot and this point is not fenced — disclose
259
- // it honestly rather than implying an atomic guarantee we cannot make.
260
- activeRunCheck: "snapshot",
261
- };
205
+ return removeProjectFromPartitions(this.projects.current(), this.partitions, id, activeRunRoots);
262
206
  }
263
207
  journal(partition) {
264
208
  if (!partition.startsWith("project:"))
@@ -314,15 +258,25 @@ export class ProjectPartitions {
314
258
  updateThread(id, patch) {
315
259
  return this.requireThreadStore(id).updateThread(id, patch);
316
260
  }
261
+ /** Unified-accounts continuity steps (contract: partition-accounts.ts). */
262
+ migrateNullProfileContinuity(harnessId, rowId) {
263
+ return applyProfileContinuityAcross(this.continuityHosts(), (store) => store.migrateNullProfileContinuity(harnessId, rowId));
264
+ }
265
+ rollbackProfileContinuity(harnessId, rowId) {
266
+ return applyProfileContinuityAcross(this.continuityHosts(), (store) => store.rollbackProfileContinuity(harnessId, rowId));
267
+ }
268
+ continuityHosts() {
269
+ this.partitions.sync();
270
+ return {
271
+ stores: this.threadStores(),
272
+ skippedPartitions: [...this.partitions.entries()]
273
+ .filter(([, entry]) => !entry.manager.ready())
274
+ .map(([id]) => id),
275
+ };
276
+ }
317
277
  invalidateCredentialProfile(harnessId, profileId) {
318
278
  this.assertCredentialProfileInvalidationReady();
319
- return this.threadStores().reduce((total, store) => {
320
- const result = store.invalidateCredentialProfile(harnessId, profileId);
321
- return {
322
- clearedThreads: total.clearedThreads + result.clearedThreads,
323
- invalidatedSessions: total.invalidatedSessions + result.invalidatedSessions,
324
- };
325
- }, { clearedThreads: 0, invalidatedSessions: 0 });
279
+ return invalidateCredentialProfileAcross(this.threadStores(), harnessId, profileId);
326
280
  }
327
281
  assertCredentialProfileInvalidationReady() {
328
282
  this.partitions.sync();
@@ -367,6 +321,12 @@ export class ProjectPartitions {
367
321
  resumeMap(id, profileId = null) {
368
322
  return this.requireThreadStore(id).resumeMap(id, profileId);
369
323
  }
324
+ resumeMapAuto(id) {
325
+ return this.requireThreadStore(id).resumeMapAuto(id);
326
+ }
327
+ accountBindings(id) {
328
+ return this.requireThreadStore(id).accountBindings(id);
329
+ }
370
330
  recordSession(id, harnessId, nativeSessionId, observedModel, profileId = null) {
371
331
  this.requireThreadStore(id).recordSession(id, harnessId, nativeSessionId, observedModel, profileId);
372
332
  }
@@ -1 +1 @@
1
- {"version":3,"file":"project-partitions.js","sourceRoot":"","sources":["../src/project-partitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-partitions.js","sourceRoot":"","sources":["../src/project-partitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { ControlProjectRemoveReceipt } from "@claudexor/schema";
2
+ import type { ProjectPartitionCollection } from "./project-partition-preparation.js";
3
+ import type { ProjectStore } from "./projects.js";
4
+ /**
5
+ * QA-049 minimal project remove (extracted from project-partitions.ts,
6
+ * INV-124): retire the durable registry entry and archive the journal
7
+ * partition, fenced against non-purged threads and live/queued runs. The
8
+ * caller has already synced the partition collection.
9
+ */
10
+ export declare function removeProjectFromPartitions(registry: ProjectStore, partitions: ProjectPartitionCollection, id: string, activeRunRoots: ReadonlySet<string>): ControlProjectRemoveReceipt;
11
+ //# sourceMappingURL=project-remove.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-remove.d.ts","sourceRoot":"","sources":["../src/project-remove.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,0BAA0B,EACtC,EAAE,EAAE,MAAM,EACV,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,GAClC,2BAA2B,CAyE7B"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * QA-049 minimal project remove (extracted from project-partitions.ts,
3
+ * INV-124): retire the durable registry entry and archive the journal
4
+ * partition, fenced against non-purged threads and live/queued runs. The
5
+ * caller has already synced the partition collection.
6
+ */
7
+ export function removeProjectFromPartitions(registry, partitions, id, activeRunRoots) {
8
+ const project = registry.get(id);
9
+ if (!project) {
10
+ throw Object.assign(new Error(`no such project: ${id}`), {
11
+ code: "project_not_found",
12
+ status: 404,
13
+ });
14
+ }
15
+ const entry = partitions.get(id);
16
+ if (entry) {
17
+ if (!entry.manager.ready()) {
18
+ throw Object.assign(new Error(`project ${id} partition requires journal recovery before it can be removed`), { code: "journal_recovery_required", status: 409 });
19
+ }
20
+ const blocking = entry.threads
21
+ .current()
22
+ .listThreads()
23
+ .filter((thread) => thread.state !== "purged");
24
+ if (blocking.length > 0) {
25
+ throw Object.assign(new Error(`project ${id} still has ${blocking.length} thread(s); trash and purge them before removing it`), { code: "project_has_threads", status: 409 });
26
+ }
27
+ }
28
+ if (activeRunRoots.has(project.root)) {
29
+ throw Object.assign(new Error(`project ${id} has a live or queued run; wait for it to finish before removing it`), { code: "project_has_active_run", status: 409 });
30
+ }
31
+ const archivedPartitionPath = entry ? entry.manager.archivePartition() : null;
32
+ try {
33
+ registry.unregister(id);
34
+ }
35
+ catch (unregisterError) {
36
+ // Archive succeeded but the durable registry rejected the unregister: the
37
+ // project is now archived-but-registered. Roll the archive back into the
38
+ // active tree so the two views stay consistent, then surface the original
39
+ // unregister failure. If the rollback ITSELF fails we cannot restore
40
+ // consistency — disclose the partial state honestly with a typed error
41
+ // rather than pretend the remove succeeded (Ф2 finding 4).
42
+ if (entry && archivedPartitionPath) {
43
+ try {
44
+ entry.manager.restoreArchivedPartition(archivedPartitionPath);
45
+ }
46
+ catch (rollbackError) {
47
+ throw Object.assign(new Error(`project ${id} could not be removed: its journal partition was archived to ${archivedPartitionPath}, the registry unregister failed, and the archive could not be rolled back (${rollbackError instanceof Error ? rollbackError.message : String(rollbackError)}); the project is archived-but-registered and needs manual reconciliation`), { code: "project_remove_partial", status: 500, archivedPartitionPath });
48
+ }
49
+ }
50
+ throw unregisterError;
51
+ }
52
+ partitions.delete(id);
53
+ return {
54
+ projectId: project.id,
55
+ root: project.root,
56
+ registryRemoved: true,
57
+ journalPartitionArchived: archivedPartitionPath !== null,
58
+ archivedPartitionPath,
59
+ artifactsRetained: true,
60
+ // W2: `activeRunRoots` was snapshotted by the caller via an async daemon
61
+ // IPC job-list read BEFORE this synchronous removal. A run that starts in
62
+ // the window between that snapshot and this point is not fenced — disclose
63
+ // it honestly rather than implying an atomic guarantee we cannot make.
64
+ activeRunCheck: "snapshot",
65
+ };
66
+ }
67
+ //# sourceMappingURL=project-remove.js.map