usertrust 0.2.2 → 0.2.3

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 (43) hide show
  1. package/dist/audit/canonical.d.ts.map +1 -1
  2. package/dist/audit/canonical.js +11 -0
  3. package/dist/audit/canonical.js.map +1 -1
  4. package/dist/audit/chain.d.ts +1 -1
  5. package/dist/audit/chain.d.ts.map +1 -1
  6. package/dist/audit/chain.js +104 -57
  7. package/dist/audit/chain.js.map +1 -1
  8. package/dist/audit/rotation.d.ts +1 -1
  9. package/dist/audit/rotation.js +1 -1
  10. package/dist/audit/verify.d.ts +1 -0
  11. package/dist/audit/verify.d.ts.map +1 -1
  12. package/dist/audit/verify.js +13 -3
  13. package/dist/audit/verify.js.map +1 -1
  14. package/dist/board/board.d.ts +1 -1
  15. package/dist/board/board.js +1 -1
  16. package/dist/detect.d.ts +19 -2
  17. package/dist/detect.d.ts.map +1 -1
  18. package/dist/detect.js +7 -2
  19. package/dist/detect.js.map +1 -1
  20. package/dist/govern.d.ts +2 -0
  21. package/dist/govern.d.ts.map +1 -1
  22. package/dist/govern.js +378 -260
  23. package/dist/govern.js.map +1 -1
  24. package/dist/ledger/engine.d.ts +1 -1
  25. package/dist/ledger/engine.d.ts.map +1 -1
  26. package/dist/ledger/engine.js +35 -12
  27. package/dist/ledger/engine.js.map +1 -1
  28. package/dist/memory/patterns.d.ts +4 -1
  29. package/dist/memory/patterns.d.ts.map +1 -1
  30. package/dist/memory/patterns.js +46 -14
  31. package/dist/memory/patterns.js.map +1 -1
  32. package/dist/policy/gate.d.ts.map +1 -1
  33. package/dist/policy/gate.js +38 -6
  34. package/dist/policy/gate.js.map +1 -1
  35. package/dist/proxy.d.ts +3 -0
  36. package/dist/proxy.d.ts.map +1 -1
  37. package/dist/proxy.js +14 -0
  38. package/dist/proxy.js.map +1 -1
  39. package/dist/resilience/scope.d.ts +32 -4
  40. package/dist/resilience/scope.d.ts.map +1 -1
  41. package/dist/resilience/scope.js +83 -35
  42. package/dist/resilience/scope.js.map +1 -1
  43. package/package.json +2 -4
@@ -7,8 +7,9 @@
7
7
  * Each lease locks a set of glob patterns; overlapping patterns from different
8
8
  * actors are rejected.
9
9
  *
10
- * Store path: `.usertools/leases.json`
10
+ * Store path: `.usertrust/leases.json`
11
11
  */
12
+ import { randomUUID } from "node:crypto";
12
13
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
13
14
  import { join } from "node:path";
14
15
  import { minimatch } from "minimatch";
@@ -16,33 +17,39 @@ import { VAULT_DIR } from "../shared/constants.js";
16
17
  // ---------------------------------------------------------------------------
17
18
  // Path Resolution
18
19
  // ---------------------------------------------------------------------------
19
- let storeDir = join(process.cwd(), VAULT_DIR);
20
+ let moduleStoreDir = join(process.cwd(), VAULT_DIR);
20
21
  /**
21
22
  * Set the store directory path (for testing).
23
+ *
24
+ * @deprecated Use the `storeDir` constructor parameter on `ScopeManager` instead.
25
+ * This function mutates module-level state shared by all ScopeManager instances
26
+ * that were created without an explicit storeDir.
22
27
  */
23
28
  export function setStoreDir(dir) {
24
- storeDir = dir;
29
+ moduleStoreDir = dir;
25
30
  }
26
31
  /**
27
- * Get the current store directory.
32
+ * Get the current module-level store directory.
33
+ *
34
+ * @deprecated Use the `storeDir` constructor parameter on `ScopeManager` instead.
28
35
  */
29
36
  export function getStoreDir() {
30
- return storeDir;
37
+ return moduleStoreDir;
31
38
  }
32
- function getLeasesPath() {
39
+ // ---------------------------------------------------------------------------
40
+ // File Operations (parameterized by storeDir)
41
+ // ---------------------------------------------------------------------------
42
+ function getLeasesPath(storeDir) {
33
43
  return join(storeDir, "leases.json");
34
44
  }
35
- function ensureStoreDir() {
45
+ function ensureStoreDir(storeDir) {
36
46
  if (!existsSync(storeDir)) {
37
47
  mkdirSync(storeDir, { recursive: true });
38
48
  }
39
49
  }
40
- // ---------------------------------------------------------------------------
41
- // File Operations
42
- // ---------------------------------------------------------------------------
43
- function readLeases() {
44
- ensureStoreDir();
45
- const path = getLeasesPath();
50
+ function readLeases(storeDir) {
51
+ ensureStoreDir(storeDir);
52
+ const path = getLeasesPath(storeDir);
46
53
  if (!existsSync(path)) {
47
54
  return {};
48
55
  }
@@ -54,16 +61,15 @@ function readLeases() {
54
61
  return {};
55
62
  }
56
63
  }
57
- function writeLeases(store) {
58
- ensureStoreDir();
59
- writeFileSync(getLeasesPath(), JSON.stringify(store, null, "\t"));
64
+ function writeLeases(store, storeDir) {
65
+ ensureStoreDir(storeDir);
66
+ writeFileSync(getLeasesPath(storeDir), JSON.stringify(store, null, "\t"));
60
67
  }
61
68
  // ---------------------------------------------------------------------------
62
- // ID Generation
69
+ // ID Generation (AUD-466: crypto.randomUUID replaces Math.random)
63
70
  // ---------------------------------------------------------------------------
64
71
  function generateLeaseId() {
65
- const hex = Math.random().toString(16).substring(2, 10);
66
- return `ls_${hex}`;
72
+ return `ls_${randomUUID().replace(/-/g, "").substring(0, 16)}`;
67
73
  }
68
74
  // ---------------------------------------------------------------------------
69
75
  // Scope Overlap
@@ -111,18 +117,35 @@ export function fileMatchesScope(file, scope) {
111
117
  *
112
118
  * Provides `acquireLease`, `releaseLease`, `findConflicts`, and `expireStale`
113
119
  * for coordinating parallel workers operating on overlapping file scopes.
120
+ *
121
+ * AUD-465: Accepts an optional `storeDir` constructor parameter to avoid
122
+ * reliance on module-level mutable state. Falls back to the module-level
123
+ * `moduleStoreDir` for backward compatibility.
114
124
  */
115
125
  export class ScopeManager {
116
126
  clock;
117
- constructor(clock) {
118
- this.clock = clock ?? Date.now;
127
+ storeDir;
128
+ /**
129
+ * @param optionsOrClock - Either an options object `{ clock?, storeDir? }`
130
+ * or a legacy clock function `() => number` for backward compatibility.
131
+ */
132
+ constructor(optionsOrClock) {
133
+ if (typeof optionsOrClock === "function") {
134
+ // Legacy constructor: ScopeManager(clock)
135
+ this.clock = optionsOrClock;
136
+ this.storeDir = moduleStoreDir;
137
+ }
138
+ else {
139
+ this.clock = optionsOrClock?.clock ?? Date.now;
140
+ this.storeDir = optionsOrClock?.storeDir ?? moduleStoreDir;
141
+ }
119
142
  }
120
143
  /**
121
144
  * Acquire a lease for the given scope.
122
145
  * Throws if scope overlaps with another actor's active lease.
123
146
  */
124
147
  acquireLease(options) {
125
- const store = readLeases();
148
+ const store = readLeases(this.storeDir);
126
149
  const ttlMin = options.ttlMin ?? 60;
127
150
  // Expire stale leases first
128
151
  this.expireStaleInStore(store);
@@ -147,14 +170,28 @@ export class ScopeManager {
147
170
  status: "active",
148
171
  };
149
172
  store[leaseId] = lease;
150
- writeLeases(store);
173
+ writeLeases(store, this.storeDir);
151
174
  return lease;
152
175
  }
153
176
  /**
154
177
  * Renew an existing lease, extending its TTL.
178
+ *
179
+ * AUD-466: When `actor` is provided, verifies the caller matches the lease
180
+ * owner to prevent unauthorized renewal by a different actor. Callers SHOULD
181
+ * always pass `actor` — omitting it is supported only for backward
182
+ * compatibility and will be removed in a future major version.
155
183
  */
156
- renewLease(leaseId, ttlMin = 60) {
157
- const store = readLeases();
184
+ renewLease(leaseId, actorOrTtl, ttlMin) {
185
+ let actor;
186
+ let ttl;
187
+ if (typeof actorOrTtl === "string") {
188
+ actor = actorOrTtl;
189
+ ttl = ttlMin ?? 60;
190
+ }
191
+ else {
192
+ ttl = actorOrTtl ?? 60;
193
+ }
194
+ const store = readLeases(this.storeDir);
158
195
  const lease = store[leaseId];
159
196
  if (!lease) {
160
197
  throw new Error(`Lease ${leaseId} not found`);
@@ -162,29 +199,40 @@ export class ScopeManager {
162
199
  if (lease.status !== "active") {
163
200
  throw new Error(`Lease ${leaseId} is ${lease.status}, cannot renew`);
164
201
  }
165
- lease.expires_at = new Date(this.clock() + ttlMin * 60_000).toISOString();
202
+ if (actor !== undefined && lease.actor !== actor) {
203
+ throw new Error(`Actor "${actor}" cannot renew lease ${leaseId} owned by "${lease.actor}"`);
204
+ }
205
+ lease.expires_at = new Date(this.clock() + ttl * 60_000).toISOString();
166
206
  lease.last_renewed_at = new Date(this.clock()).toISOString();
167
- writeLeases(store);
207
+ writeLeases(store, this.storeDir);
168
208
  return lease;
169
209
  }
170
210
  /**
171
211
  * Release a lease, marking it as released.
212
+ *
213
+ * AUD-466: When `actor` is provided, verifies the caller matches the lease
214
+ * owner to prevent unauthorized release by a different actor. Callers SHOULD
215
+ * always pass `actor` — omitting it is supported only for backward
216
+ * compatibility and will be removed in a future major version.
172
217
  */
173
- releaseLease(leaseId) {
174
- const store = readLeases();
218
+ releaseLease(leaseId, actor) {
219
+ const store = readLeases(this.storeDir);
175
220
  const lease = store[leaseId];
176
221
  if (!lease) {
177
222
  throw new Error(`Lease ${leaseId} not found`);
178
223
  }
224
+ if (actor !== undefined && lease.actor !== actor) {
225
+ throw new Error(`Actor "${actor}" cannot release lease ${leaseId} owned by "${lease.actor}"`);
226
+ }
179
227
  lease.status = "released";
180
- writeLeases(store);
228
+ writeLeases(store, this.storeDir);
181
229
  return lease;
182
230
  }
183
231
  /**
184
232
  * Find conflicts for a proposed scope against active leases.
185
233
  */
186
234
  findConflicts(scope, excludeActor) {
187
- const store = readLeases();
235
+ const store = readLeases(this.storeDir);
188
236
  this.expireStaleInStore(store);
189
237
  return this.findConflictsInStore(store, scope, excludeActor);
190
238
  }
@@ -193,10 +241,10 @@ export class ScopeManager {
193
241
  * Returns the number of leases expired.
194
242
  */
195
243
  expireStale() {
196
- const store = readLeases();
244
+ const store = readLeases(this.storeDir);
197
245
  const count = this.expireStaleInStore(store);
198
246
  if (count > 0) {
199
- writeLeases(store);
247
+ writeLeases(store, this.storeDir);
200
248
  }
201
249
  return count;
202
250
  }
@@ -204,14 +252,14 @@ export class ScopeManager {
204
252
  * Get all active leases.
205
253
  */
206
254
  getActiveLeases() {
207
- const store = readLeases();
255
+ const store = readLeases(this.storeDir);
208
256
  return Object.values(store).filter((l) => l.status === "active");
209
257
  }
210
258
  /**
211
259
  * Get a lease by ID.
212
260
  */
213
261
  getLease(leaseId) {
214
- const store = readLeases();
262
+ const store = readLeases(this.storeDir);
215
263
  return store[leaseId];
216
264
  }
217
265
  // ── Private helpers ──
@@ -1 +1 @@
1
- {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/resilience/scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/resilience/scope.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "usertrust",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "Financial governance for AI agents. Every LLM call becomes an immutable, auditable transaction.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Usertools, Inc. <hello@usertools.ai> (https://usertrust.ai)",
@@ -47,9 +47,7 @@
47
47
  "build": "tsc",
48
48
  "prepublishOnly": "tsc"
49
49
  },
50
- "files": [
51
- "dist"
52
- ],
50
+ "files": ["dist"],
53
51
  "peerDependencies": {
54
52
  "@anthropic-ai/sdk": ">=0.30.0",
55
53
  "openai": ">=4.70.0"