@framers/agentos-ext-anchor-providers 1.1.0 → 1.2.1

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 (60) hide show
  1. package/LICENSE +98 -0
  2. package/README.md +38 -16
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/providers/EthereumProvider.d.ts +48 -4
  7. package/dist/providers/EthereumProvider.d.ts.map +1 -1
  8. package/dist/providers/EthereumProvider.js +261 -27
  9. package/dist/providers/EthereumProvider.js.map +1 -1
  10. package/dist/providers/OpenTimestampsProvider.d.ts +26 -2
  11. package/dist/providers/OpenTimestampsProvider.d.ts.map +1 -1
  12. package/dist/providers/OpenTimestampsProvider.js +141 -26
  13. package/dist/providers/OpenTimestampsProvider.js.map +1 -1
  14. package/dist/providers/RekorProvider.d.ts +32 -3
  15. package/dist/providers/RekorProvider.d.ts.map +1 -1
  16. package/dist/providers/RekorProvider.js +212 -25
  17. package/dist/providers/RekorProvider.js.map +1 -1
  18. package/dist/providers/SolanaProvider.d.ts +58 -4
  19. package/dist/providers/SolanaProvider.d.ts.map +1 -1
  20. package/dist/providers/SolanaProvider.js +310 -25
  21. package/dist/providers/SolanaProvider.js.map +1 -1
  22. package/dist/providers/WormSnapshotProvider.d.ts +30 -2
  23. package/dist/providers/WormSnapshotProvider.d.ts.map +1 -1
  24. package/dist/providers/WormSnapshotProvider.js +176 -27
  25. package/dist/providers/WormSnapshotProvider.js.map +1 -1
  26. package/dist/register.d.ts.map +1 -1
  27. package/dist/register.js +1 -0
  28. package/dist/register.js.map +1 -1
  29. package/dist/types.d.ts.map +1 -1
  30. package/dist/types.js +1 -0
  31. package/dist/types.js.map +1 -1
  32. package/dist/utils/http-client.d.ts.map +1 -1
  33. package/dist/utils/http-client.js +1 -0
  34. package/dist/utils/http-client.js.map +1 -1
  35. package/dist/utils/index.d.ts.map +1 -1
  36. package/dist/utils/index.js +1 -0
  37. package/dist/utils/index.js.map +1 -1
  38. package/dist/utils/serialization.d.ts.map +1 -1
  39. package/dist/utils/serialization.js +1 -0
  40. package/dist/utils/serialization.js.map +1 -1
  41. package/manifest.json +5 -5
  42. package/package.json +26 -21
  43. package/CHANGELOG.md +0 -16
  44. package/src/index.ts +0 -59
  45. package/src/providers/EthereumProvider.ts +0 -87
  46. package/src/providers/OpenTimestampsProvider.ts +0 -86
  47. package/src/providers/RekorProvider.ts +0 -82
  48. package/src/providers/SolanaProvider.ts +0 -439
  49. package/src/providers/WormSnapshotProvider.ts +0 -84
  50. package/src/register.ts +0 -69
  51. package/src/types.ts +0 -27
  52. package/src/utils/http-client.ts +0 -75
  53. package/src/utils/index.ts +0 -3
  54. package/src/utils/serialization.ts +0 -33
  55. package/test/integration.spec.ts +0 -175
  56. package/test/providers.spec.ts +0 -163
  57. package/test/register.spec.ts +0 -69
  58. package/test/types.spec.ts +0 -55
  59. package/test/utils.spec.ts +0 -225
  60. package/tsconfig.json +0 -21
@@ -1 +1 @@
1
- {"version":3,"file":"EthereumProvider.js","sourceRoot":"","sources":["../../src/providers/EthereumProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAehE,MAAM,OAAO,gBAAgB;IAClB,EAAE,GAAG,UAAU,CAAC;IAChB,IAAI,GAAG,0BAA0B,CAAC;IAClC,UAAU,GAAe,sBAAsB,CAAC;IAExC,MAAM,CAAyB;IAC/B,UAAU,CAA+B;IAE1D,YAAY,MAA8B;QACxC,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,CAAC;YACV,GAAG,MAAM;SACV,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAoB;QAChC,0CAA0C;QAC1C,EAAE;QACF,0BAA0B;QAC1B,wEAAwE;QACxE,yDAAyD;QACzD,oEAAoE;QACpE,kCAAkC;QAClC,yEAAyE;QACzE,mCAAmC;QACnC,6CAA6C;QAC7C,6DAA6D;QAC7D,qDAAqD;QACrD,wEAAwE;QACxE,wEAAwE;QACxE,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,2CAA2C;gBAC3C,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO;gBACL,UAAU,EAAE,IAAI,CAAC,EAAE;gBACnB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;aAClD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAoB;QAC/B,kEAAkE;QAClE,8CAA8C;QAC9C,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO;QACX,qEAAqE;IACvE,CAAC;CACF"}
1
+ {"version":3,"file":"EthereumProvider.js","sourceRoot":"","sources":["../../src/providers/EthereumProvider.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,21 @@
1
1
  /**
2
2
  * @file OpenTimestampsProvider.ts
3
3
  * @description Bitcoin-anchored timestamping via the OpenTimestamps protocol.
4
- * Creates OTS timestamps for anchor Merkle roots and submits to calendar servers.
4
+ *
5
+ * Submits a SHA-256 digest to one or more OpenTimestamps calendar servers
6
+ * via HTTP `POST /digest` and stores the calendars' binary attestations
7
+ * as base64. Each attestation eventually commits to a Bitcoin block via
8
+ * the calendar's own Merkle aggregation (typically 1–2 hours after
9
+ * submission); the verify path here is a non-Bitcoin "weak" verification
10
+ * that confirms a stored attestation was produced by a reachable calendar
11
+ * for the supplied hash.
12
+ *
13
+ * For full Bitcoin-anchor verification, parse the stored base64 with the
14
+ * `javascript-opentimestamps` library and call its `verify()` against a
15
+ * Bitcoin node or block explorer.
5
16
  *
6
17
  * Proof level: `publicly-timestamped`
7
- * Required peer dependency: `opentimestamps`
18
+ * Required dependencies: none (uses global `fetch`).
8
19
  *
9
20
  * @module @framers/agentos-ext-anchor-providers
10
21
  */
@@ -13,6 +24,12 @@ import type { BaseProviderConfig } from '../types.js';
13
24
  export interface OpenTimestampsProviderConfig extends BaseProviderConfig {
14
25
  /** OTS calendar server URLs. Default: public OpenTimestamps calendars. */
15
26
  calendarUrls?: string[];
27
+ /**
28
+ * Whether `publish()` requires every calendar in `calendarUrls` to succeed.
29
+ * Default `false`: any single calendar response is enough to consider the
30
+ * publish successful. Set `true` for higher independence guarantees.
31
+ */
32
+ requireAllCalendars?: boolean;
16
33
  }
17
34
  export declare class OpenTimestampsProvider implements AnchorProvider {
18
35
  readonly id = "opentimestamps";
@@ -22,6 +39,13 @@ export declare class OpenTimestampsProvider implements AnchorProvider {
22
39
  private readonly baseConfig;
23
40
  constructor(config?: OpenTimestampsProviderConfig);
24
41
  publish(anchor: AnchorRecord): Promise<AnchorProviderResult>;
42
+ /**
43
+ * Weak verification: re-derive the canonical anchor digest, decode the
44
+ * stored OTS payload, and confirm at least one stored attestation hash
45
+ * matches what the corresponding calendar serves today. This is NOT a
46
+ * full Bitcoin-block verification — for that, parse the base64 with
47
+ * `javascript-opentimestamps` and run its `verify()` against Bitcoin.
48
+ */
25
49
  verify(anchor: AnchorRecord): Promise<boolean>;
26
50
  dispose(): Promise<void>;
27
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OpenTimestampsProvider.d.ts","sourceRoot":"","sources":["../../src/providers/OpenTimestampsProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,MAAM,WAAW,4BAA6B,SAAQ,kBAAkB;IACtE,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAQD,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,QAAQ,CAAC,EAAE,oBAAoB;IAC/B,QAAQ,CAAC,IAAI,8BAA8B;IAC3C,QAAQ,CAAC,UAAU,EAAE,UAAU,CAA0B;IAEzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;gBAE9C,MAAM,GAAE,4BAAiC;IAU/C,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA6B5D,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
1
+ {"version":3,"file":"OpenTimestampsProvider.d.ts","sourceRoot":"","sources":["../../src/providers/OpenTimestampsProvider.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKtD,MAAM,WAAW,4BAA6B,SAAQ,kBAAkB;IACtE,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAgCD,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,QAAQ,CAAC,EAAE,oBAAoB;IAC/B,QAAQ,CAAC,IAAI,8BAA8B;IAC3C,QAAQ,CAAC,UAAU,EAAE,UAAU,CAA0B;IAEzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;gBAE9C,MAAM,GAAE,4BAAiC;IAW/C,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA0FlE;;;;;;OAMG;IACG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IA4C9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
@@ -1,20 +1,41 @@
1
+ // @ts-nocheck
1
2
  /**
2
3
  * @file OpenTimestampsProvider.ts
3
4
  * @description Bitcoin-anchored timestamping via the OpenTimestamps protocol.
4
- * Creates OTS timestamps for anchor Merkle roots and submits to calendar servers.
5
+ *
6
+ * Submits a SHA-256 digest to one or more OpenTimestamps calendar servers
7
+ * via HTTP `POST /digest` and stores the calendars' binary attestations
8
+ * as base64. Each attestation eventually commits to a Bitcoin block via
9
+ * the calendar's own Merkle aggregation (typically 1–2 hours after
10
+ * submission); the verify path here is a non-Bitcoin "weak" verification
11
+ * that confirms a stored attestation was produced by a reachable calendar
12
+ * for the supplied hash.
13
+ *
14
+ * For full Bitcoin-anchor verification, parse the stored base64 with the
15
+ * `javascript-opentimestamps` library and call its `verify()` against a
16
+ * Bitcoin node or block explorer.
5
17
  *
6
18
  * Proof level: `publicly-timestamped`
7
- * Required peer dependency: `opentimestamps`
19
+ * Required dependencies: none (uses global `fetch`).
8
20
  *
9
21
  * @module @framers/agentos-ext-anchor-providers
10
22
  */
23
+ import { createHash } from 'node:crypto';
11
24
  import { resolveBaseConfig } from '../types.js';
25
+ import { fetchWithRetry } from '../utils/http-client.js';
12
26
  import { hashCanonicalAnchor } from '../utils/serialization.js';
13
27
  const DEFAULT_CALENDAR_URLS = [
14
28
  'https://a.pool.opentimestamps.org',
15
29
  'https://b.pool.opentimestamps.org',
16
30
  'https://a.pool.eternitywall.com',
17
31
  ];
32
+ /**
33
+ * Convert a hex string into a Buffer of raw bytes. Used to send the SHA-256
34
+ * digest binary in the calendar POST body.
35
+ */
36
+ function hexToBuffer(hex) {
37
+ return Buffer.from(hex, 'hex');
38
+ }
18
39
  export class OpenTimestampsProvider {
19
40
  id = 'opentimestamps';
20
41
  name = 'OpenTimestamps (Bitcoin)';
@@ -24,6 +45,7 @@ export class OpenTimestampsProvider {
24
45
  constructor(config = {}) {
25
46
  this.config = {
26
47
  calendarUrls: config.calendarUrls ?? DEFAULT_CALENDAR_URLS,
48
+ requireAllCalendars: config.requireAllCalendars ?? false,
27
49
  timeoutMs: config.timeoutMs ?? 30_000,
28
50
  retries: config.retries ?? 3,
29
51
  retryDelayMs: config.retryDelayMs ?? 1_000,
@@ -31,42 +53,135 @@ export class OpenTimestampsProvider {
31
53
  this.baseConfig = resolveBaseConfig(config);
32
54
  }
33
55
  async publish(anchor) {
34
- // TODO: Implement using opentimestamps npm package
35
- //
36
- // Implementation outline:
37
- // 1. Compute SHA-256 of canonical anchor: hashCanonicalAnchor(anchor)
38
- // 2. Create a DetachedTimestampFile from the hash
39
- // 3. Submit to calendar servers: OpenTimestamps.stamp(detached, { calendars })
40
- // 4. Serialize the OTS proof to base64
41
- // 5. Return { success: true, externalRef: `ots:${base64Proof}`,
42
- // metadata: { calendarUrls, pendingAttestation: true } }
43
- //
44
- // Note: OTS proofs are initially "pending" — they confirm after a Bitcoin block
45
- // includes the calendar commitment (typically 1-2 hours). A separate verification
46
- // step can upgrade pending proofs to confirmed.
47
- try {
48
- const _hash = await hashCanonicalAnchor(anchor);
49
- throw new Error('OpenTimestampsProvider is not yet implemented. ' +
50
- 'Install opentimestamps and implement the Bitcoin timestamping integration.');
56
+ const digestHex = await hashCanonicalAnchor(anchor);
57
+ const digestBuf = hexToBuffer(digestHex);
58
+ const attestations = [];
59
+ const errors = [];
60
+ for (const calendarUrl of this.config.calendarUrls) {
61
+ const submitUrl = `${calendarUrl.replace(/\/$/, '')}/digest`;
62
+ try {
63
+ const response = await fetchWithRetry(submitUrl, {
64
+ method: 'POST',
65
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
66
+ body: digestBuf,
67
+ }, {
68
+ timeoutMs: this.config.timeoutMs,
69
+ retries: this.config.retries,
70
+ retryDelayMs: this.config.retryDelayMs,
71
+ });
72
+ if (!response.ok) {
73
+ errors.push({
74
+ calendar: calendarUrl,
75
+ message: `HTTP ${response.status} ${response.statusText}`,
76
+ });
77
+ continue;
78
+ }
79
+ const bytes = Buffer.from(await response.arrayBuffer());
80
+ attestations.push({
81
+ calendarUrl,
82
+ attestationBase64: bytes.toString('base64'),
83
+ attestationHash: createHash('sha256').update(bytes).digest('hex'),
84
+ });
85
+ }
86
+ catch (e) {
87
+ errors.push({
88
+ calendar: calendarUrl,
89
+ message: e instanceof Error ? e.message : String(e),
90
+ });
91
+ }
51
92
  }
52
- catch (e) {
93
+ const total = this.config.calendarUrls.length;
94
+ const succeeded = attestations.length;
95
+ const meetsThreshold = this.config.requireAllCalendars
96
+ ? succeeded === total
97
+ : succeeded > 0;
98
+ if (!meetsThreshold) {
53
99
  return {
54
100
  providerId: this.id,
55
101
  success: false,
56
- error: e instanceof Error ? e.message : String(e),
102
+ error: `OpenTimestamps calendar submission failed (${succeeded}/${total} succeeded${errors.length ? `; first error: ${errors[0]?.message}` : ''})`,
103
+ metadata: {
104
+ digestHex,
105
+ attemptedCalendars: this.config.calendarUrls,
106
+ errors,
107
+ },
57
108
  };
58
109
  }
110
+ const externalPayload = {
111
+ digestSha256: digestHex,
112
+ attestations,
113
+ submittedAt: new Date().toISOString(),
114
+ };
115
+ return {
116
+ providerId: this.id,
117
+ success: true,
118
+ // externalRef carries the entire OTS payload. Use the `ots:` prefix
119
+ // so it is unambiguously distinguishable from other provider refs
120
+ // (e.g. `eth:`, `s3://`, `solana:`) when stored on AnchorRecord.
121
+ externalRef: `ots:${Buffer.from(JSON.stringify(externalPayload), 'utf-8').toString('base64')}`,
122
+ publishedAt: externalPayload.submittedAt,
123
+ metadata: {
124
+ digestSha256: digestHex,
125
+ calendarsContacted: attestations.map((a) => a.calendarUrl),
126
+ calendarsFailed: errors.map((e) => e.calendar),
127
+ pendingBitcoinAttestation: true,
128
+ succeeded,
129
+ total,
130
+ },
131
+ };
59
132
  }
133
+ /**
134
+ * Weak verification: re-derive the canonical anchor digest, decode the
135
+ * stored OTS payload, and confirm at least one stored attestation hash
136
+ * matches what the corresponding calendar serves today. This is NOT a
137
+ * full Bitcoin-block verification — for that, parse the base64 with
138
+ * `javascript-opentimestamps` and run its `verify()` against Bitcoin.
139
+ */
60
140
  async verify(anchor) {
61
- // TODO: Deserialize OTS proof from externalRef, call OpenTimestamps.verify()
62
- // Returns true if the proof is confirmed by a Bitcoin block
63
- if (!anchor.externalRef)
141
+ if (!anchor.externalRef?.startsWith('ots:'))
142
+ return false;
143
+ let payload;
144
+ try {
145
+ const json = Buffer.from(anchor.externalRef.slice('ots:'.length), 'base64').toString('utf-8');
146
+ payload = JSON.parse(json);
147
+ }
148
+ catch {
64
149
  return false;
65
- console.warn('[OpenTimestampsProvider] verify() is not yet implemented');
150
+ }
151
+ const digestHex = await hashCanonicalAnchor(anchor);
152
+ if (payload.digestSha256 !== digestHex)
153
+ return false;
154
+ // Re-submit to the first reachable calendar; if it returns the same
155
+ // attestation bytes the original submission still aligns with the
156
+ // calendar's commitment. This is "weak" because a calendar could
157
+ // re-serve a tampered timestamp; for strong proof use the OTS library.
158
+ const digestBuf = hexToBuffer(digestHex);
159
+ for (const attestation of payload.attestations) {
160
+ try {
161
+ const response = await fetchWithRetry(`${attestation.calendarUrl.replace(/\/$/, '')}/digest`, {
162
+ method: 'POST',
163
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
164
+ body: digestBuf,
165
+ }, {
166
+ timeoutMs: this.config.timeoutMs,
167
+ retries: this.config.retries,
168
+ retryDelayMs: this.config.retryDelayMs,
169
+ });
170
+ if (!response.ok)
171
+ continue;
172
+ const bytes = Buffer.from(await response.arrayBuffer());
173
+ const reHash = createHash('sha256').update(bytes).digest('hex');
174
+ if (reHash === attestation.attestationHash)
175
+ return true;
176
+ }
177
+ catch {
178
+ // Try the next calendar.
179
+ }
180
+ }
66
181
  return false;
67
182
  }
68
183
  async dispose() {
69
- // No persistent resources in current implementation
184
+ // No persistent resources.
70
185
  }
71
186
  }
72
187
  //# sourceMappingURL=OpenTimestampsProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenTimestampsProvider.js","sourceRoot":"","sources":["../../src/providers/OpenTimestampsProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAOhE,MAAM,qBAAqB,GAAG;IAC5B,mCAAmC;IACnC,mCAAmC;IACnC,iCAAiC;CAClC,CAAC;AAEF,MAAM,OAAO,sBAAsB;IACxB,EAAE,GAAG,gBAAgB,CAAC;IACtB,IAAI,GAAG,0BAA0B,CAAC;IAClC,UAAU,GAAe,sBAAsB,CAAC;IAExC,MAAM,CAAyC;IAC/C,UAAU,CAA+B;IAE1D,YAAY,SAAuC,EAAE;QACnD,IAAI,CAAC,MAAM,GAAG;YACZ,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,qBAAqB;YAC1D,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM;YACrC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC;YAC5B,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,KAAK;SAC3C,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAoB;QAChC,mDAAmD;QACnD,EAAE;QACF,0BAA0B;QAC1B,wEAAwE;QACxE,oDAAoD;QACpD,iFAAiF;QACjF,yCAAyC;QACzC,kEAAkE;QAClE,sEAAsE;QACtE,EAAE;QACF,gFAAgF;QAChF,kFAAkF;QAClF,gDAAgD;QAChD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,iDAAiD;gBACjD,4EAA4E,CAC7E,CAAC;QACJ,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO;gBACL,UAAU,EAAE,IAAI,CAAC,EAAE;gBACnB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;aAClD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAoB;QAC/B,6EAA6E;QAC7E,8DAA8D;QAC9D,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO;QACX,oDAAoD;IACtD,CAAC;CACF"}
1
+ {"version":3,"file":"OpenTimestampsProvider.js","sourceRoot":"","sources":["../../src/providers/OpenTimestampsProvider.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,18 @@
1
1
  /**
2
2
  * @file RekorProvider.ts
3
- * @description Sigstore Rekor transparency log anchor provider.
4
- * Publishes anchor Merkle roots as hashedrekord entries to Rekor.
3
+ * @description Sigstore Rekor transparency-log anchor provider.
4
+ *
5
+ * Submits a `hashedrekord` entry to Rekor so each anchor is recorded
6
+ * in a public append-only log keyed by SHA-256 of the canonical
7
+ * anchor. Rekor cryptographically verifies the supplied signature
8
+ * against the supplied hash before accepting the entry, so the caller
9
+ * must provide an Ed25519 `signArtifact` function that signs over the
10
+ * raw hash bytes (Rekor's verification target) — **not** the
11
+ * AgentKeyManager's sign-over-merkleRoot-string output, which is the
12
+ * wrong byte sequence for Rekor's verifier.
5
13
  *
6
14
  * Proof level: `publicly-auditable`
7
- * Required peer dependency: `sigstore`
15
+ * Required dependencies: none for `publish` (uses global `fetch`).
8
16
  *
9
17
  * @module @framers/agentos-ext-anchor-providers
10
18
  */
@@ -13,6 +21,20 @@ import type { BaseProviderConfig } from '../types.js';
13
21
  export interface RekorProviderConfig extends BaseProviderConfig {
14
22
  /** Rekor server URL. Default: 'https://rekor.sigstore.dev'. */
15
23
  serverUrl?: string;
24
+ /**
25
+ * PEM-encoded Ed25519 public key matching the signer. Required for
26
+ * `publish()` because Rekor's hashedrekord verifier needs the
27
+ * public key to validate `signArtifact`'s signature against the
28
+ * artifact hash.
29
+ */
30
+ publicKeyPem?: string;
31
+ /**
32
+ * Sign the artifact's raw bytes (NOT the hex string) using the same
33
+ * Ed25519 keypair whose public key is in `publicKeyPem`. Required
34
+ * for `publish()`. Receives the canonical-anchor SHA-256 bytes and
35
+ * must return an Ed25519 signature.
36
+ */
37
+ signArtifact?: (bytes: Uint8Array) => Promise<Uint8Array> | Uint8Array;
16
38
  }
17
39
  export declare class RekorProvider implements AnchorProvider {
18
40
  readonly id = "rekor";
@@ -22,6 +44,13 @@ export declare class RekorProvider implements AnchorProvider {
22
44
  private readonly baseConfig;
23
45
  constructor(config?: RekorProviderConfig);
24
46
  publish(anchor: AnchorRecord): Promise<AnchorProviderResult>;
47
+ /**
48
+ * Confirm the anchor's Rekor entry exists and its body hash matches a
49
+ * fresh canonical anchor digest. Does NOT cryptographically verify
50
+ * the inclusion proof against the signed tree head — that needs the
51
+ * sigstore SDK; for compliance workflows wire up
52
+ * `sigstore.verify(bundle)` after this method returns true.
53
+ */
25
54
  verify(anchor: AnchorRecord): Promise<boolean>;
26
55
  dispose(): Promise<void>;
27
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RekorProvider.d.ts","sourceRoot":"","sources":["../../src/providers/RekorProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,qBAAa,aAAc,YAAW,cAAc;IAClD,QAAQ,CAAC,EAAE,WAAW;IACtB,QAAQ,CAAC,IAAI,qCAAqC;IAClD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAwB;IAEvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;gBAE9C,MAAM,GAAE,mBAAwB;IAUtC,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA4B5D,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAS9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
1
+ {"version":3,"file":"RekorProvider.d.ts","sourceRoot":"","sources":["../../src/providers/RekorProvider.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKtD,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;CACxE;AA0CD,qBAAa,aAAc,YAAW,cAAc;IAClD,QAAQ,CAAC,EAAE,WAAW;IACtB,QAAQ,CAAC,IAAI,qCAAqC;IAClD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAwB;IAEvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAGrB;IACF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;gBAE9C,MAAM,GAAE,mBAAwB;IAYtC,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoIlE;;;;;;OAMG;IACG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAmC9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}