@fabric-harness/sdk 2.4.0 → 2.5.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.
package/dist/store.js CHANGED
@@ -1,4 +1,5 @@
1
- import { createHash } from 'node:crypto';
1
+ import { createHash } from "node:crypto";
2
+ import { approvalGrantFromJson, approvalGrantToJson, createApprovalGrantForState, } from "./approval.js";
2
3
  export class InMemorySessionStore {
3
4
  /** Tag so callers (and runtime-mode resolution) can detect ephemeral storage. */
4
5
  __inMemory = true;
@@ -13,11 +14,17 @@ export class InMemorySessionStore {
13
14
  this.sessions.set(data.id, cloneSessionData(data));
14
15
  }
15
16
  async listSessions() {
16
- return [...this.sessions.values()].map((session) => cloneSessionData(session)).sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
17
+ return [...this.sessions.values()]
18
+ .map((session) => cloneSessionData(session))
19
+ .sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
17
20
  }
18
21
  async appendEvent(sessionId, event) {
19
22
  const existing = await this.ensure(sessionId);
20
- await this.save({ ...existing, updatedAt: new Date().toISOString(), events: [...(existing.events ?? []), event] });
23
+ await this.save({
24
+ ...existing,
25
+ updatedAt: new Date().toISOString(),
26
+ events: [...(existing.events ?? []), event],
27
+ });
21
28
  }
22
29
  async appendEntry(sessionId, entry) {
23
30
  const existing = await this.ensure(sessionId);
@@ -53,9 +60,9 @@ export class InMemorySessionStore {
53
60
  const state = await this.getApprovalState(sessionId, approvalId);
54
61
  if (!state)
55
62
  throw new Error(`Approval not found: ${approvalId}`);
56
- if (state.status !== 'pending')
63
+ if (state.status !== "pending")
57
64
  throw new Error(`Approval is already ${state.status}: ${approvalId}`);
58
- const voteEntry = approvalEntry(sessionId, 'approval_voted', {
65
+ const voteEntry = approvalEntry(sessionId, "approval_voted", {
59
66
  approvalId,
60
67
  actor: approvalActorToJson(normalizeApprovalActor(vote.actor)),
61
68
  decision: vote.decision,
@@ -67,11 +74,21 @@ export class InMemorySessionStore {
67
74
  const next = await this.getApprovalState(sessionId, approvalId);
68
75
  if (!next)
69
76
  throw new Error(`Approval not found after vote: ${approvalId}`);
70
- if (next.status === 'approved' || next.status === 'denied') {
71
- const response = { decision: next.status, ...(next.resolutionReason ? { reason: next.resolutionReason } : {}) };
72
- const terminalEntry = approvalEntry(sessionId, next.status === 'approved' ? 'approval_granted' : 'approval_denied', {
77
+ if (next.status === "approved" || next.status === "denied") {
78
+ const approvers = next.votes
79
+ .filter((candidate) => candidate.decision === "approved")
80
+ .map((candidate) => approvalActorIdentity(candidate.actor));
81
+ const response = {
82
+ decision: next.status,
83
+ ...(next.resolutionReason ? { reason: next.resolutionReason } : {}),
84
+ ...(approvers.length > 0 ? { approvers } : {}),
85
+ };
86
+ const grant = next.status === "approved" ? createApprovalGrantForState(next, response) : undefined;
87
+ const terminalEntry = approvalEntry(sessionId, next.status === "approved" ? "approval_granted" : "approval_denied", {
73
88
  approvalId,
74
- reason: response.reason ?? (next.status === 'approved' ? 'Approval quorum reached' : 'Approval denied by vote'),
89
+ reason: response.reason ??
90
+ (next.status === "approved" ? "Approval quorum reached" : "Approval denied by vote"),
91
+ ...(grant ? { grant: approvalGrantToJson(grant) } : {}),
75
92
  });
76
93
  await this.appendEntry(sessionId, terminalEntry);
77
94
  await this.appendEvent(sessionId, entryToEvent(sessionId, terminalEntry));
@@ -87,15 +104,15 @@ export class InMemorySessionStore {
87
104
  return approvalStatesFromEntries(sessionId, (await this.load(sessionId))?.entries ?? []);
88
105
  }
89
106
  async putArtifact(sessionId, name, content, options = {}) {
90
- const bytes = typeof content === 'string' ? new TextEncoder().encode(content) : new Uint8Array(content);
107
+ const bytes = typeof content === "string" ? new TextEncoder().encode(content) : new Uint8Array(content);
91
108
  const createdAt = new Date().toISOString();
92
109
  const ref = {
93
- id: `${createdAt}-${name}`.replace(/[^a-zA-Z0-9._:-]/g, '_'),
110
+ id: `${createdAt}-${name}`.replace(/[^a-zA-Z0-9._:-]/g, "_"),
94
111
  sessionId,
95
112
  name,
96
113
  path: name,
97
114
  size: bytes.byteLength,
98
- sha256: createHash('sha256').update(bytes).digest('hex'),
115
+ sha256: createHash("sha256").update(bytes).digest("hex"),
99
116
  createdAt,
100
117
  ...(options.contentType ? { contentType: options.contentType } : {}),
101
118
  ...(options.metadata ? { metadata: options.metadata } : {}),
@@ -139,22 +156,28 @@ export class InMemorySessionStore {
139
156
  exportPersistenceSnapshot() {
140
157
  return {
141
158
  sessions: [...this.sessions.entries()].map(([key, value]) => [key, cloneSessionData(value)]),
142
- artifacts: [...this.artifacts.entries()].map(([key, value]) => [key, {
159
+ artifacts: [...this.artifacts.entries()].map(([key, value]) => [
160
+ key,
161
+ {
143
162
  ref: { ...value.ref },
144
163
  content: [...value.content],
145
- }]),
164
+ },
165
+ ]),
146
166
  };
147
167
  }
148
168
  importPersistenceSnapshot(snapshot) {
149
169
  this.sessions.clear();
150
170
  this.artifacts.clear();
151
- if (!snapshot || typeof snapshot !== 'object')
171
+ if (!snapshot || typeof snapshot !== "object")
152
172
  return;
153
173
  const value = snapshot;
154
174
  for (const [key, session] of value.sessions ?? [])
155
175
  this.sessions.set(key, cloneSessionData(session));
156
176
  for (const [key, artifact] of value.artifacts ?? []) {
157
- this.artifacts.set(key, { ref: { ...artifact.ref }, content: Uint8Array.from(artifact.content) });
177
+ this.artifacts.set(key, {
178
+ ref: { ...artifact.ref },
179
+ content: Uint8Array.from(artifact.content),
180
+ });
158
181
  }
159
182
  }
160
183
  resolveApprovalWaiters(sessionId, approvalId, response) {
@@ -238,7 +261,9 @@ export class UnifiedInMemoryStore extends InMemorySessionStore {
238
261
  }
239
262
  // RunStore
240
263
  async saveRun(run) {
241
- const id = typeof run?.id === 'string' ? run.id : `run-${Date.now()}-${Math.random().toString(16).slice(2)}`;
264
+ const id = typeof run?.id === "string"
265
+ ? run.id
266
+ : `run-${Date.now()}-${Math.random().toString(16).slice(2)}`;
242
267
  this.runs.set(id, run);
243
268
  }
244
269
  async getRun(id) {
@@ -277,13 +302,15 @@ export function createUnifiedInMemoryStore() {
277
302
  }
278
303
  function findApprovalResolution(entries, approvalId) {
279
304
  for (const entry of entries) {
280
- if (entry.type !== 'approval_granted' && entry.type !== 'approval_denied')
305
+ if (entry.type !== "approval_granted" && entry.type !== "approval_denied")
281
306
  continue;
282
307
  if (entry.data?.approvalId !== approvalId)
283
308
  continue;
309
+ const grant = entry.type === "approval_granted" ? approvalGrantFromJson(entry.data?.grant) : undefined;
284
310
  return {
285
- decision: entry.type === 'approval_granted' ? 'approved' : 'denied',
286
- ...(typeof entry.data.reason === 'string' ? { reason: entry.data.reason } : {}),
311
+ decision: entry.type === "approval_granted" ? "approved" : "denied",
312
+ ...(typeof entry.data.reason === "string" ? { reason: entry.data.reason } : {}),
313
+ ...(grant ? { grant, approvers: grant.approvers } : {}),
287
314
  };
288
315
  }
289
316
  return undefined;
@@ -316,14 +343,14 @@ export function approvalStatesFromEntries(sessionId, entries) {
316
343
  const states = new Map();
317
344
  const votesByApproval = new Map();
318
345
  for (const entry of entries) {
319
- if (entry.type === 'approval_requested') {
346
+ if (entry.type === "approval_requested") {
320
347
  const request = approvalRequestFromEntry(sessionId, entry);
321
348
  if (!request)
322
349
  continue;
323
350
  states.set(request.id, {
324
351
  id: request.id,
325
352
  sessionId,
326
- status: 'pending',
353
+ status: "pending",
327
354
  requiredApprovals: request.requiredApprovals ?? 1,
328
355
  approvedCount: 0,
329
356
  deniedCount: 0,
@@ -332,7 +359,7 @@ export function approvalStatesFromEntries(sessionId, entries) {
332
359
  });
333
360
  continue;
334
361
  }
335
- if (entry.type === 'approval_voted') {
362
+ if (entry.type === "approval_voted") {
336
363
  const vote = approvalVoteFromEntry(entry);
337
364
  if (!vote)
338
365
  continue;
@@ -341,42 +368,52 @@ export function approvalStatesFromEntries(sessionId, entries) {
341
368
  votes.set(actorKey, vote);
342
369
  votesByApproval.set(vote.approvalId, votes);
343
370
  const state = states.get(vote.approvalId);
344
- if (state && state.status === 'pending')
371
+ if (state && state.status === "pending")
345
372
  applyVotesToState(state, [...votes.values()]);
346
373
  continue;
347
374
  }
348
- if (!['approval_granted', 'approval_denied', 'approval_expired'].includes(entry.type))
375
+ if (!["approval_granted", "approval_denied", "approval_expired"].includes(entry.type))
349
376
  continue;
350
- const approvalId = typeof entry.data?.approvalId === 'string' ? entry.data.approvalId : undefined;
377
+ const approvalId = typeof entry.data?.approvalId === "string" ? entry.data.approvalId : undefined;
351
378
  if (!approvalId)
352
379
  continue;
353
380
  const state = states.get(approvalId);
354
381
  if (!state)
355
382
  continue;
356
- state.status = entry.type === 'approval_granted' ? 'approved' : entry.type === 'approval_denied' ? 'denied' : 'expired';
383
+ state.status =
384
+ entry.type === "approval_granted"
385
+ ? "approved"
386
+ : entry.type === "approval_denied"
387
+ ? "denied"
388
+ : "expired";
389
+ if (entry.type === "approval_granted") {
390
+ const grant = approvalGrantFromJson(entry.data?.grant);
391
+ if (grant)
392
+ state.grant = grant;
393
+ }
357
394
  state.resolvedAt = entry.timestamp;
358
- if (typeof entry.data?.reason === 'string')
395
+ if (typeof entry.data?.reason === "string")
359
396
  state.resolutionReason = entry.data.reason;
360
397
  }
361
398
  for (const state of states.values()) {
362
399
  const votes = [...(votesByApproval.get(state.id)?.values() ?? [])];
363
- if (state.status === 'pending')
400
+ if (state.status === "pending")
364
401
  applyVotesToState(state, votes);
365
402
  else {
366
403
  state.votes = votes;
367
- state.approvedCount = votes.filter((vote) => vote.decision === 'approved').length;
368
- state.deniedCount = votes.filter((vote) => vote.decision === 'denied').length;
404
+ state.approvedCount = votes.filter((vote) => vote.decision === "approved").length;
405
+ state.deniedCount = votes.filter((vote) => vote.decision === "denied").length;
369
406
  }
370
407
  }
371
408
  return [...states.values()];
372
409
  }
373
410
  function applyVotesToState(state, votes) {
374
411
  state.votes = votes.sort((a, b) => a.votedAt.localeCompare(b.votedAt));
375
- state.approvedCount = state.votes.filter((vote) => vote.decision === 'approved').length;
376
- state.deniedCount = state.votes.filter((vote) => vote.decision === 'denied').length;
412
+ state.approvedCount = state.votes.filter((vote) => vote.decision === "approved").length;
413
+ state.deniedCount = state.votes.filter((vote) => vote.decision === "denied").length;
377
414
  if (state.deniedCount > 0) {
378
- state.status = 'denied';
379
- const denial = state.votes.find((vote) => vote.decision === 'denied');
415
+ state.status = "denied";
416
+ const denial = state.votes.find((vote) => vote.decision === "denied");
380
417
  if (denial?.votedAt !== undefined)
381
418
  state.resolvedAt = denial.votedAt;
382
419
  if (denial?.reason)
@@ -384,52 +421,74 @@ function applyVotesToState(state, votes) {
384
421
  return;
385
422
  }
386
423
  if (state.approvedCount >= state.requiredApprovals) {
387
- state.status = 'approved';
388
- const finalApproval = state.votes.filter((vote) => vote.decision === 'approved').at(-1);
424
+ state.status = "approved";
425
+ const finalApproval = state.votes.filter((vote) => vote.decision === "approved").at(-1);
389
426
  if (finalApproval?.votedAt !== undefined)
390
427
  state.resolvedAt = finalApproval.votedAt;
391
- state.resolutionReason = finalApproval?.reason ?? `${state.approvedCount}/${state.requiredApprovals} approvals received`;
428
+ state.resolutionReason =
429
+ finalApproval?.reason ??
430
+ `${state.approvedCount}/${state.requiredApprovals} approvals received`;
392
431
  }
393
432
  }
394
433
  function approvalRequestFromEntry(sessionId, entry) {
395
- const id = typeof entry.data?.id === 'string' ? entry.data.id : undefined;
434
+ const id = typeof entry.data?.id === "string" ? entry.data.id : undefined;
396
435
  if (!id)
397
436
  return undefined;
398
437
  return {
399
438
  id,
400
439
  sessionId,
401
- reason: typeof entry.data?.reason === 'string' ? entry.data.reason : 'Approval requested',
402
- subject: typeof entry.data?.subject === 'string' ? entry.data.subject : id,
403
- kind: entry.data?.kind === 'tool' ? 'tool' : 'command',
404
- createdAt: typeof entry.data?.createdAt === 'string' ? entry.data.createdAt : entry.timestamp,
405
- ...(typeof entry.data?.requiredApprovals === 'number' ? { requiredApprovals: entry.data.requiredApprovals } : {}),
440
+ reason: typeof entry.data?.reason === "string" ? entry.data.reason : "Approval requested",
441
+ subject: typeof entry.data?.subject === "string" ? entry.data.subject : id,
442
+ kind: entry.data?.kind === "tool" ||
443
+ entry.data?.kind === "custom" ||
444
+ entry.data?.kind === "cost-limit"
445
+ ? entry.data.kind
446
+ : "command",
447
+ createdAt: typeof entry.data?.createdAt === "string" ? entry.data.createdAt : entry.timestamp,
448
+ ...(typeof entry.data?.tool === "string" ? { tool: entry.data.tool } : {}),
449
+ ...(typeof entry.data?.command === "string" ? { command: entry.data.command } : {}),
450
+ ...(isJsonValue(entry.data?.input) ? { input: entry.data.input } : {}),
451
+ ...(typeof entry.data?.toolCallId === "string" ? { toolCallId: entry.data.toolCallId } : {}),
452
+ ...(typeof entry.data?.inputDigest === "string" ? { inputDigest: entry.data.inputDigest } : {}),
453
+ ...(isFabricPrincipal(entry.data?.executingPrincipal)
454
+ ? { executingPrincipal: entry.data.executingPrincipal }
455
+ : {}),
456
+ ...(typeof entry.data?.audience === "string" ? { audience: entry.data.audience } : {}),
457
+ ...(typeof entry.data?.ttlSeconds === "number" ? { ttlSeconds: entry.data.ttlSeconds } : {}),
458
+ ...(typeof entry.data?.requiredApprovals === "number"
459
+ ? { requiredApprovals: entry.data.requiredApprovals }
460
+ : {}),
406
461
  };
407
462
  }
408
463
  function approvalVoteFromEntry(entry) {
409
- const approvalId = typeof entry.data?.approvalId === 'string' ? entry.data.approvalId : undefined;
410
- const decision = entry.data?.decision === 'approved' || entry.data?.decision === 'denied' ? entry.data.decision : undefined;
464
+ const approvalId = typeof entry.data?.approvalId === "string" ? entry.data.approvalId : undefined;
465
+ const decision = entry.data?.decision === "approved" || entry.data?.decision === "denied"
466
+ ? entry.data.decision
467
+ : undefined;
411
468
  if (!approvalId || !decision)
412
469
  return undefined;
413
470
  return {
414
471
  approvalId,
415
472
  actor: normalizeApprovalActor(entry.data?.actor),
416
473
  decision,
417
- votedAt: typeof entry.data?.votedAt === 'string' ? entry.data.votedAt : entry.timestamp,
418
- ...(typeof entry.data?.reason === 'string' ? { reason: entry.data.reason } : {}),
474
+ votedAt: typeof entry.data?.votedAt === "string" ? entry.data.votedAt : entry.timestamp,
475
+ ...(typeof entry.data?.reason === "string" ? { reason: entry.data.reason } : {}),
419
476
  };
420
477
  }
421
478
  function normalizeApprovalActor(actor) {
422
- if (typeof actor === 'string')
479
+ if (typeof actor === "string")
423
480
  return actor;
424
- if (typeof actor === 'object' && actor !== null && typeof actor.id === 'string')
481
+ if (typeof actor === "object" &&
482
+ actor !== null &&
483
+ typeof actor.id === "string")
425
484
  return actor;
426
- return 'unknown';
485
+ return "unknown";
427
486
  }
428
487
  function approvalActorKey(actor) {
429
- return typeof actor === 'string' ? actor : actor.id;
488
+ return typeof actor === "string" ? actor : actor.id;
430
489
  }
431
490
  function approvalActorToJson(actor) {
432
- if (typeof actor === 'string')
491
+ if (typeof actor === "string")
433
492
  return actor;
434
493
  const result = { id: actor.id };
435
494
  if (actor.type)
@@ -442,6 +501,29 @@ function approvalActorToJson(actor) {
442
501
  result.displayName = actor.displayName;
443
502
  return result;
444
503
  }
504
+ function approvalActorIdentity(actor) {
505
+ return typeof actor === "string" ? { id: actor } : actor;
506
+ }
507
+ function isFabricPrincipal(value) {
508
+ return (typeof value === "object" &&
509
+ value !== null &&
510
+ !Array.isArray(value) &&
511
+ (value.kind === "user" ||
512
+ value.kind === "service-principal" ||
513
+ value.kind === "app-principal") &&
514
+ typeof value.id === "string");
515
+ }
516
+ function isJsonValue(value) {
517
+ if (value === null || typeof value === "string" || typeof value === "boolean")
518
+ return true;
519
+ if (typeof value === "number")
520
+ return Number.isFinite(value);
521
+ if (Array.isArray(value))
522
+ return value.every(isJsonValue);
523
+ if (typeof value !== "object" || value === undefined)
524
+ return false;
525
+ return Object.values(value).every(isJsonValue);
526
+ }
445
527
  function approvalEntry(sessionId, type, data) {
446
528
  return {
447
529
  id: `${sessionId}-entry-${Date.now()}-${Math.random().toString(16).slice(2)}`,
@@ -451,7 +533,12 @@ function approvalEntry(sessionId, type, data) {
451
533
  };
452
534
  }
453
535
  function entryToEvent(sessionId, entry) {
454
- const event = { id: `${sessionId}-${Date.now()}-${Math.random().toString(16).slice(2)}`, type: entry.type, timestamp: entry.timestamp, sessionId };
536
+ const event = {
537
+ id: `${sessionId}-${Date.now()}-${Math.random().toString(16).slice(2)}`,
538
+ type: entry.type,
539
+ timestamp: entry.timestamp,
540
+ sessionId,
541
+ };
455
542
  if (entry.data !== undefined)
456
543
  event.data = entry.data;
457
544
  return event;
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}