@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,13 +1,21 @@
1
+ // @ts-nocheck
1
2
  /**
2
3
  * @file WormSnapshotProvider.ts
3
4
  * @description S3 Object Lock / WORM storage anchor provider.
4
- * Publishes anchor records to an S3 bucket with Object Lock governance/compliance retention.
5
+ *
6
+ * `publish()` writes the canonical anchor JSON to an S3 bucket with
7
+ * Object Lock retention so the object cannot be overwritten or deleted
8
+ * before the configured retention date. `verify()` issues a HeadObject
9
+ * and confirms the active retention window is still in the future.
5
10
  *
6
11
  * Proof level: `externally-archived`
7
- * Required peer dependency: `@aws-sdk/client-s3`
12
+ * Required peer dependency: `@aws-sdk/client-s3` (loaded via dynamic
13
+ * import at runtime so projects that don't use this provider don't pay
14
+ * the bundle cost).
8
15
  *
9
16
  * @module @framers/agentos-ext-anchor-providers
10
17
  */
18
+ import { createHash } from 'node:crypto';
11
19
  import { resolveBaseConfig } from '../types.js';
12
20
  import { canonicalizeAnchor } from '../utils/serialization.js';
13
21
  export class WormSnapshotProvider {
@@ -16,49 +24,190 @@ export class WormSnapshotProvider {
16
24
  proofLevel = 'externally-archived';
17
25
  config;
18
26
  baseConfig;
27
+ /** Cached S3Client instance — reused across publish/verify calls. */
28
+ cachedClient = null;
19
29
  constructor(config) {
20
30
  this.config = {
21
- keyPrefix: 'provenance/anchors/',
22
- retentionDays: 365,
23
- retentionMode: 'GOVERNANCE',
24
- ...config,
31
+ bucket: config.bucket,
32
+ region: config.region,
33
+ keyPrefix: config.keyPrefix ?? 'provenance/anchors/',
34
+ retentionDays: config.retentionDays ?? 365,
35
+ retentionMode: config.retentionMode ?? 'GOVERNANCE',
36
+ timeoutMs: config.timeoutMs ?? 30_000,
37
+ retries: config.retries ?? 3,
38
+ // retryDelayMs is part of BaseProviderConfig but the AWS SDK uses
39
+ // its own exponential-backoff implementation (configured here via
40
+ // `maxAttempts` on the S3Client) so this value is intentionally
41
+ // not applied. Retained for parity with the shared interface.
42
+ retryDelayMs: config.retryDelayMs ?? 1_000,
43
+ credentials: config.credentials,
44
+ endpoint: config.endpoint,
25
45
  };
26
46
  this.baseConfig = resolveBaseConfig(config);
27
47
  }
28
48
  async publish(anchor) {
29
- // TODO: Implement using @aws-sdk/client-s3
30
- //
31
- // Implementation outline:
32
- // 1. Import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3'
33
- // 2. Create S3Client with region from config
34
- // 3. Serialize anchor via canonicalizeAnchor()
35
- // 4. PutObject with:
36
- // - Bucket: this.config.bucket
37
- // - Key: `${this.config.keyPrefix}${anchor.id}.json`
38
- // - Body: canonical JSON
39
- // - ContentType: 'application/json'
40
- // - ObjectLockMode: this.config.retentionMode
41
- // - ObjectLockRetainUntilDate: now + retentionDays
42
- // 5. Return { success: true, externalRef: `s3://${bucket}/${key}` }
49
+ let sdk;
43
50
  try {
44
- const _canonical = canonicalizeAnchor(anchor);
45
- throw new Error('WormSnapshotProvider is not yet implemented. ' +
46
- 'Install @aws-sdk/client-s3 and implement the S3 Object Lock integration.');
51
+ sdk = await this.loadSdk();
47
52
  }
48
53
  catch (e) {
49
54
  return {
50
55
  providerId: this.id,
51
56
  success: false,
52
57
  error: e instanceof Error ? e.message : String(e),
58
+ metadata: { sdkMissing: true },
59
+ };
60
+ }
61
+ const canonical = canonicalizeAnchor(anchor);
62
+ const body = Buffer.from(canonical, 'utf-8');
63
+ const objectHash = createHash('sha256').update(body).digest('hex');
64
+ const key = `${this.config.keyPrefix}${anchor.id}.json`;
65
+ const retainUntil = new Date(Date.now() + this.config.retentionDays * 24 * 60 * 60 * 1000);
66
+ try {
67
+ const client = await this.getClient(sdk);
68
+ const command = new sdk.PutObjectCommand({
69
+ Bucket: this.config.bucket,
70
+ Key: key,
71
+ Body: body,
72
+ ContentType: 'application/json',
73
+ ContentMD5: createHash('md5').update(body).digest('base64'),
74
+ // Object Lock retention — once written, the object cannot be
75
+ // deleted or overwritten before `retainUntil`. GOVERNANCE mode
76
+ // permits override by privileged IAM principals; COMPLIANCE
77
+ // mode is absolute (even the root account cannot remove).
78
+ ObjectLockMode: this.config.retentionMode,
79
+ ObjectLockRetainUntilDate: retainUntil,
80
+ // Metadata is captured separately for fast HEAD lookups during
81
+ // verify; the canonical anchor body is the authoritative copy.
82
+ Metadata: {
83
+ 'anchor-id': anchor.id,
84
+ 'merkle-root': anchor.merkleRoot,
85
+ 'sequence-from': String(anchor.sequenceFrom),
86
+ 'sequence-to': String(anchor.sequenceTo),
87
+ 'sha256': objectHash,
88
+ },
89
+ });
90
+ await client.send(command);
91
+ const externalRef = `s3://${this.config.bucket}/${key}`;
92
+ return {
93
+ providerId: this.id,
94
+ success: true,
95
+ externalRef,
96
+ publishedAt: new Date().toISOString(),
97
+ metadata: {
98
+ bucket: this.config.bucket,
99
+ region: this.config.region,
100
+ key,
101
+ objectSha256: objectHash,
102
+ retentionMode: this.config.retentionMode,
103
+ retainUntil: retainUntil.toISOString(),
104
+ },
105
+ };
106
+ }
107
+ catch (e) {
108
+ const message = e instanceof Error ? e.message : String(e);
109
+ return {
110
+ providerId: this.id,
111
+ success: false,
112
+ error: `S3 PutObject failed: ${message}`,
113
+ metadata: {
114
+ bucket: this.config.bucket,
115
+ region: this.config.region,
116
+ key,
117
+ },
53
118
  };
54
119
  }
55
120
  }
121
+ /**
122
+ * Verify the stored object still exists in the bucket and that its
123
+ * Object Lock retention window has not expired. Does NOT re-hash the
124
+ * stored body (that would require GetObject + a network read of the
125
+ * whole anchor); checks the metadata `sha256` against the recomputed
126
+ * canonical anchor hash for a constant-time integrity signal.
127
+ */
56
128
  async verify(anchor) {
57
- // TODO: Implement using HeadObject to check object exists and retention is active
58
- if (!anchor.externalRef)
129
+ if (!anchor.externalRef?.startsWith('s3://'))
130
+ return false;
131
+ let sdk;
132
+ try {
133
+ sdk = await this.loadSdk();
134
+ }
135
+ catch {
59
136
  return false;
60
- console.warn('[WormSnapshotProvider] verify() is not yet implemented');
61
- return false;
137
+ }
138
+ // Parse s3://bucket/key into pieces.
139
+ const ref = anchor.externalRef.slice('s3://'.length);
140
+ const slash = ref.indexOf('/');
141
+ if (slash <= 0)
142
+ return false;
143
+ const bucket = ref.slice(0, slash);
144
+ const key = ref.slice(slash + 1);
145
+ try {
146
+ const client = await this.getClient(sdk);
147
+ const head = await client.send(new sdk.HeadObjectCommand({ Bucket: bucket, Key: key }));
148
+ // Confirm retention is still active. Both GOVERNANCE and COMPLIANCE
149
+ // expose ObjectLockRetainUntilDate.
150
+ const retainUntil = head.ObjectLockRetainUntilDate;
151
+ if (!retainUntil)
152
+ return false;
153
+ if (retainUntil.getTime() <= Date.now())
154
+ return false;
155
+ // Confirm the recorded SHA-256 matches what the current anchor
156
+ // would canonicalise to. If the source anchor has been mutated
157
+ // since storage, this fails — which is the correct behaviour.
158
+ const recordedHash = head.Metadata?.['sha256'];
159
+ const recomputed = createHash('sha256')
160
+ .update(canonicalizeAnchor(anchor), 'utf-8')
161
+ .digest('hex');
162
+ return typeof recordedHash === 'string' && recordedHash === recomputed;
163
+ }
164
+ catch {
165
+ return false;
166
+ }
167
+ }
168
+ async dispose() {
169
+ if (this.cachedClient && typeof this.cachedClient.destroy === 'function') {
170
+ try {
171
+ this.cachedClient.destroy();
172
+ }
173
+ catch {
174
+ // Best-effort cleanup.
175
+ }
176
+ }
177
+ this.cachedClient = null;
178
+ }
179
+ /** Dynamic-import the AWS SDK so the package isn't a hard dep. */
180
+ async loadSdk() {
181
+ const moduleName = '@aws-sdk/client-s3';
182
+ try {
183
+ return await import(moduleName);
184
+ }
185
+ catch {
186
+ throw new Error('WormSnapshotProvider requires @aws-sdk/client-s3 at runtime. ' +
187
+ 'Install it in your project to enable S3 Object Lock anchoring.');
188
+ }
189
+ }
190
+ /** Build/cache an S3Client with this provider's config. */
191
+ async getClient(sdk) {
192
+ if (this.cachedClient)
193
+ return this.cachedClient;
194
+ const clientConfig = {
195
+ region: this.config.region,
196
+ // Plumb the retry config through the SDK's native retry middleware.
197
+ // maxAttempts is total attempts (initial + retries), so retries=3
198
+ // becomes maxAttempts=4. Per-attempt timeout comes from this.config.timeoutMs.
199
+ maxAttempts: this.config.retries + 1,
200
+ requestHandler: { requestTimeout: this.config.timeoutMs },
201
+ };
202
+ if (this.config.credentials)
203
+ clientConfig.credentials = this.config.credentials;
204
+ if (this.config.endpoint) {
205
+ clientConfig.endpoint = this.config.endpoint;
206
+ // Custom endpoints (MinIO, LocalStack) usually require path-style URLs.
207
+ clientConfig.forcePathStyle = true;
208
+ }
209
+ this.cachedClient = new sdk.S3Client(clientConfig);
210
+ return this.cachedClient;
62
211
  }
63
212
  }
64
213
  //# sourceMappingURL=WormSnapshotProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WormSnapshotProvider.js","sourceRoot":"","sources":["../../src/providers/WormSnapshotProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAe/D,MAAM,OAAO,oBAAoB;IACtB,EAAE,GAAG,eAAe,CAAC;IACrB,IAAI,GAAG,gCAAgC,CAAC;IACxC,UAAU,GAAe,qBAAqB,CAAC;IAEvC,MAAM,CAA6B;IACnC,UAAU,CAA+B;IAE1D,YAAY,MAAkC;QAC5C,IAAI,CAAC,MAAM,GAAG;YACZ,SAAS,EAAE,qBAAqB;YAChC,aAAa,EAAE,GAAG;YAClB,aAAa,EAAE,YAAY;YAC3B,GAAG,MAAM;SACV,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAoB;QAChC,2CAA2C;QAC3C,EAAE;QACF,0BAA0B;QAC1B,uEAAuE;QACvE,+CAA+C;QAC/C,iDAAiD;QACjD,uBAAuB;QACvB,oCAAoC;QACpC,0DAA0D;QAC1D,8BAA8B;QAC9B,yCAAyC;QACzC,mDAAmD;QACnD,wDAAwD;QACxD,sEAAsE;QACtE,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,+CAA+C;gBAC/C,0EAA0E,CAC3E,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,kFAAkF;QAClF,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"WormSnapshotProvider.js","sourceRoot":"","sources":["../../src/providers/WormSnapshotProvider.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAwBjD"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAgBH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAwBjD"}
package/dist/register.js CHANGED
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  /**
2
3
  * @file register.ts
3
4
  * @description Registers all anchor provider factories with the core AgentOS factory.
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,0BAA0B;IACxC,IAAI,UAAU;QAAE,OAAO;IAEvB,6BAA6B,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CACtD,IAAI,oBAAoB,CAAC,IAA6C,CAAC,CACxE,CAAC;IAEF,6BAA6B,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAC9C,IAAI,aAAa,CAAC,IAAsC,CAAC,CAC1D,CAAC;IAEF,6BAA6B,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CACvD,IAAI,sBAAsB,CAAC,IAA+C,CAAC,CAC5E,CAAC;IAEF,6BAA6B,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CACjD,IAAI,gBAAgB,CAAC,IAAyC,CAAC,CAChE,CAAC;IAEF,6BAA6B,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAC/C,IAAI,cAAc,CAAC,IAAuC,CAAC,CAC5D,CAAC;IAEF,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;;;;;;GAOG;AAEH,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,0BAA0B;IACxC,IAAI,UAAU;QAAE,OAAO;IAEvB,6BAA6B,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CACtD,IAAI,oBAAoB,CAAC,IAA6C,CAAC,CACxE,CAAC;IAEF,6BAA6B,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAC9C,IAAI,aAAa,CAAC,IAAsC,CAAC,CAC1D,CAAC;IAEF,6BAA6B,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CACvD,IAAI,sBAAsB,CAAC,IAA+C,CAAC,CAC5E,CAAC;IAEF,6BAA6B,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CACjD,IAAI,gBAAgB,CAAC,IAAyC,CAAC,CAChE,CAAC;IAEF,6BAA6B,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAC/C,IAAI,cAAc,CAAC,IAAuC,CAAC,CAC5D,CAAC;IAEF,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAMpG"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAMpG"}
package/dist/types.js CHANGED
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  /**
2
3
  * @file types.ts
3
4
  * @description Shared types for anchor provider implementations.
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAoC;IACpE,OAAO;QACL,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,MAAM;QACtC,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,CAAC;QAC7B,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,KAAK;KAC5C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;;GAGG;AAcH;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAoC;IACpE,OAAO;QACL,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,MAAM;QACtC,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,CAAC;QAC7B,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,KAAK;KAC5C,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/utils/http-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,WAAgB,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,QAAQ,CAAC,CA2CnB"}
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/utils/http-client.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,WAAgB,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,QAAQ,CAAC,CA2CnB"}
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  /**
2
3
  * @file http-client.ts
3
4
  * @description Shared HTTP fetch wrapper with retry and timeout for anchor providers.
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/utils/http-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAErC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAW,EACX,OAAoB,EAAE,EACtB,OAA4B;IAE5B,MAAM,UAAU,GAAG,OAAO,EAAE,OAAO,IAAI,eAAe,CAAC;IACvD,MAAM,SAAS,GAAG,OAAO,EAAE,YAAY,IAAI,sBAAsB,CAAC;IAClE,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,kBAAkB,CAAC;IAE3D,IAAI,SAA4B,CAAC;IAEjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;YAEhE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,GAAG,IAAI;gBACP,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,OAAO,CAAC,CAAC;YAEtB,4DAA4D;YAC5D,IAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;gBACrE,OAAO,QAAQ,CAAC;YAClB,CAAC;YAED,uBAAuB;YACvB,SAAS,GAAG,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAEhE,yCAAyC;YACzC,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACpC,SAAS,GAAG,IAAI,KAAK,CAAC,2BAA2B,SAAS,IAAI,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,MAAM,SAAS,IAAI,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;AACnE,CAAC"}
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/utils/http-client.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;;GAGG;AAWH,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAErC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAW,EACX,OAAoB,EAAE,EACtB,OAA4B;IAE5B,MAAM,UAAU,GAAG,OAAO,EAAE,OAAO,IAAI,eAAe,CAAC;IACvD,MAAM,SAAS,GAAG,OAAO,EAAE,YAAY,IAAI,sBAAsB,CAAC;IAClE,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,kBAAkB,CAAC;IAE3D,IAAI,SAA4B,CAAC;IAEjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;YAEhE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,GAAG,IAAI;gBACP,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,OAAO,CAAC,CAAC;YAEtB,4DAA4D;YAC5D,IAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;gBACrE,OAAO,QAAQ,CAAC;YAClB,CAAC;YAED,uBAAuB;YACvB,SAAS,GAAG,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAEhE,yCAAyC;YACzC,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACpC,SAAS,GAAG,IAAI,KAAK,CAAC,2BAA2B,SAAS,IAAI,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,MAAM,SAAS,IAAI,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;AACnE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  export { fetchWithRetry } from './http-client.js';
2
3
  export { canonicalizeAnchor, hashCanonicalAnchor } from './serialization.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../src/utils/serialization.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAW/D;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAG/E"}
1
+ {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../src/utils/serialization.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAW/D;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAG/E"}
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  /**
2
3
  * @file serialization.ts
3
4
  * @description Deterministic serialization for anchor records before external publishing.
@@ -1 +1 @@
1
- {"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../src/utils/serialization.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,MAAM,SAAS,GAAG;QAChB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAoB;IAC5D,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../src/utils/serialization.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,MAAM,SAAS,GAAG;QAChB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAoB;IAC5D,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC"}
package/manifest.json CHANGED
@@ -2,14 +2,14 @@
2
2
  "$schema": "https://agentos.sh/schemas/extension-manifest-v1.json",
3
3
  "id": "com.framers.provenance.anchor-providers",
4
4
  "name": "Provenance Anchor Providers",
5
- "version": "1.0.0",
5
+ "version": "1.2.1",
6
6
  "description": "External anchor providers for the AgentOS provenance system — WORM storage, transparency logs, and blockchain timestamping",
7
7
  "author": {
8
8
  "name": "Frame.dev",
9
9
  "email": "support@frame.dev",
10
- "url": "https://github.com/framersai"
10
+ "url": "https://github.com/framerslab"
11
11
  },
12
- "license": "MIT",
12
+ "license": "Apache-2.0",
13
13
  "keywords": [
14
14
  "provenance",
15
15
  "anchor",
@@ -23,11 +23,11 @@
23
23
  "transparency-log",
24
24
  "tamper-evidence"
25
25
  ],
26
- "agentosVersion": "^0.1.0",
26
+ "agentosVersion": ">=0.10.40",
27
27
  "categories": ["provenance", "enterprise"],
28
28
  "repository": {
29
29
  "type": "git",
30
- "url": "https://github.com/framersai/agentos-extensions"
30
+ "url": "https://github.com/framerslab/agentos-extensions"
31
31
  },
32
32
  "extensions": [
33
33
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@framers/agentos-ext-anchor-providers",
3
- "version": "1.1.0",
3
+ "version": "1.2.1",
4
4
  "description": "External anchor providers for AgentOS provenance — blockchain, WORM storage, and transparency log integrations",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -14,16 +14,6 @@
14
14
  "./manifest.json": "./manifest.json",
15
15
  "./package.json": "./package.json"
16
16
  },
17
- "scripts": {
18
- "build": "tsc",
19
- "test": "vitest run",
20
- "test:watch": "vitest",
21
- "test:coverage": "vitest run --coverage",
22
- "lint": "eslint src --ext .ts",
23
- "typecheck": "tsc --noEmit",
24
- "docs": "typedoc --out docs src/index.ts",
25
- "clean": "rimraf dist"
26
- },
27
17
  "keywords": [
28
18
  "agentos",
29
19
  "extension",
@@ -50,18 +40,18 @@
50
40
  "url": "https://github.com/jddunn"
51
41
  }
52
42
  ],
53
- "license": "MIT",
43
+ "license": "Apache-2.0",
54
44
  "repository": {
55
45
  "type": "git",
56
- "url": "https://github.com/framersai/agentos-extensions.git",
46
+ "url": "git+https://github.com/framerslab/agentos-extensions.git",
57
47
  "directory": "registry/curated/provenance/anchor-providers"
58
48
  },
59
49
  "publishConfig": {
60
50
  "access": "public"
61
51
  },
62
52
  "peerDependencies": {
63
- "@framers/agentos": "^0.1.0",
64
53
  "@aws-sdk/client-s3": "^3.0.0",
54
+ "@framers/agentos": ">=0.10.40",
65
55
  "@solana/web3.js": "^1.0.0",
66
56
  "bs58": "^5.0.0",
67
57
  "ethers": "^6.0.0",
@@ -89,15 +79,30 @@
89
79
  }
90
80
  },
91
81
  "devDependencies": {
92
- "@framers/agentos": "^0.1.0",
93
82
  "@types/node": "^20.12.12",
94
- "@typescript-eslint/eslint-plugin": "^8.0.0",
95
- "@typescript-eslint/parser": "^8.0.0",
96
- "@vitest/coverage-v8": "^1.6.0",
97
- "eslint": "^9.11.0",
83
+ "@vitest/coverage-v8": "^3.2.7",
98
84
  "rimraf": "^5.0.7",
99
85
  "typedoc": "^0.25.13",
100
86
  "typescript": "^5.4.5",
101
- "vitest": "^1.6.0"
87
+ "vitest": "^3.2.7",
88
+ "@framers/agentos": "^0.13.40"
89
+ },
90
+ "homepage": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/provenance/anchor-providers#readme",
91
+ "bugs": {
92
+ "url": "https://github.com/framerslab/agentos-extensions/issues"
93
+ },
94
+ "files": [
95
+ "dist",
96
+ "manifest.json",
97
+ "README.md"
98
+ ],
99
+ "scripts": {
100
+ "build": "tsc",
101
+ "test": "vitest run --passWithNoTests",
102
+ "test:watch": "vitest",
103
+ "test:coverage": "vitest run --coverage",
104
+ "typecheck": "tsc --noEmit",
105
+ "docs": "typedoc --out docs src/index.ts",
106
+ "clean": "rimraf dist"
102
107
  }
103
- }
108
+ }
package/CHANGELOG.md DELETED
@@ -1,16 +0,0 @@
1
- # @framers/agentos-ext-anchor-providers
2
-
3
- ## 1.1.0
4
-
5
- ### Minor Changes
6
-
7
- - [`e6a2eb6`](https://github.com/framersai/agentos-extensions/commit/e6a2eb61145c5715df63668b795fe90720a3c7c1) Thanks [@jddunn](https://github.com/jddunn)! - Initial release of AgentOS extension packages.
8
-
9
- - Auth: JWT authentication and subscription management
10
- - Anchor Providers: Solana on-chain provenance anchoring
11
- - Wunderland Tip Ingestion: Tip content processing pipeline
12
- - Web Search: Search, research aggregation, and fact-checking
13
- - Web Browser: Browser automation and content extraction
14
- - Telegram Integration: Telegram Bot API integration
15
- - Telegram Bot: Telegram bot communications handler
16
- - CLI Executor: Shell command execution and file management
package/src/index.ts DELETED
@@ -1,59 +0,0 @@
1
- /**
2
- * @file index.ts
3
- * @description Main entry point for @framers/agentos-ext-anchor-providers.
4
- *
5
- * External anchor providers for the AgentOS provenance system:
6
- * - **WormSnapshotProvider** — S3 Object Lock / WORM storage (externally-archived)
7
- * - **RekorProvider** — Sigstore Rekor transparency log (publicly-auditable)
8
- * - **OpenTimestampsProvider** — Bitcoin-anchored timestamping (publicly-timestamped)
9
- * - **EthereumProvider** — Ethereum on-chain anchor (publicly-timestamped)
10
- * - **SolanaProvider** — Solana on-chain anchor (publicly-timestamped)
11
- *
12
- * ## Quick Start
13
- *
14
- * ### Option 1: Config-driven (via registry)
15
- * ```typescript
16
- * import { registerExtensionProviders } from '@framers/agentos-ext-anchor-providers';
17
- * import { createAnchorProvider } from '@framers/agentos';
18
- *
19
- * registerExtensionProviders();
20
- * const provider = createAnchorProvider({ type: 'rekor' });
21
- * ```
22
- *
23
- * ### Option 2: Direct construction
24
- * ```typescript
25
- * import { RekorProvider } from '@framers/agentos-ext-anchor-providers';
26
- *
27
- * const provider = new RekorProvider({ serverUrl: 'https://rekor.sigstore.dev' });
28
- * ```
29
- *
30
- * @module @framers/agentos-ext-anchor-providers
31
- */
32
-
33
- // Registry
34
- export { registerExtensionProviders } from './register.js';
35
-
36
- // Providers
37
- export { WormSnapshotProvider } from './providers/WormSnapshotProvider.js';
38
- export type { WormSnapshotProviderConfig } from './providers/WormSnapshotProvider.js';
39
-
40
- export { RekorProvider } from './providers/RekorProvider.js';
41
- export type { RekorProviderConfig } from './providers/RekorProvider.js';
42
-
43
- export { OpenTimestampsProvider } from './providers/OpenTimestampsProvider.js';
44
- export type { OpenTimestampsProviderConfig } from './providers/OpenTimestampsProvider.js';
45
-
46
- export { EthereumProvider } from './providers/EthereumProvider.js';
47
- export type { EthereumProviderConfig } from './providers/EthereumProvider.js';
48
-
49
- export { SolanaProvider } from './providers/SolanaProvider.js';
50
- export type { SolanaProviderConfig } from './providers/SolanaProvider.js';
51
-
52
- // Shared types
53
- export type { BaseProviderConfig } from './types.js';
54
- export { resolveBaseConfig } from './types.js';
55
-
56
- // Utilities
57
- export { fetchWithRetry } from './utils/http-client.js';
58
- export type { HttpRequestOptions } from './utils/http-client.js';
59
- export { canonicalizeAnchor, hashCanonicalAnchor } from './utils/serialization.js';
@@ -1,87 +0,0 @@
1
- /**
2
- * @file EthereumProvider.ts
3
- * @description Ethereum on-chain anchor provider.
4
- * Publishes anchor Merkle roots as calldata in Ethereum transactions.
5
- *
6
- * Proof level: `publicly-timestamped`
7
- * Required peer dependency: `ethers`
8
- *
9
- * @module @framers/agentos-ext-anchor-providers
10
- */
11
-
12
- import type { AnchorProvider, AnchorRecord, AnchorProviderResult, ProofLevel } from '@framers/agentos';
13
- import type { BaseProviderConfig } from '../types.js';
14
- import { resolveBaseConfig } from '../types.js';
15
- import { hashCanonicalAnchor } from '../utils/serialization.js';
16
-
17
- export interface EthereumProviderConfig extends BaseProviderConfig {
18
- /** JSON-RPC endpoint URL. */
19
- rpcUrl: string;
20
- /** Contract address for anchor storage (optional — can use raw calldata tx). */
21
- contractAddress?: string;
22
- /** Private key hex for signing transactions. */
23
- signerPrivateKey?: string;
24
- /** Chain ID. Default: 1 (mainnet). */
25
- chainId?: number;
26
- /** Gas limit override. Default: auto-estimate. */
27
- gasLimit?: number;
28
- }
29
-
30
- export class EthereumProvider implements AnchorProvider {
31
- readonly id = 'ethereum';
32
- readonly name = 'Ethereum On-Chain Anchor';
33
- readonly proofLevel: ProofLevel = 'publicly-timestamped';
34
-
35
- private readonly config: EthereumProviderConfig;
36
- private readonly baseConfig: Required<BaseProviderConfig>;
37
-
38
- constructor(config: EthereumProviderConfig) {
39
- this.config = {
40
- chainId: 1,
41
- ...config,
42
- };
43
- this.baseConfig = resolveBaseConfig(config);
44
- }
45
-
46
- async publish(anchor: AnchorRecord): Promise<AnchorProviderResult> {
47
- // TODO: Implement using ethers.js or viem
48
- //
49
- // Implementation outline:
50
- // 1. Compute SHA-256 of canonical anchor: hashCanonicalAnchor(anchor)
51
- // 2. Create ethers.JsonRpcProvider(this.config.rpcUrl)
52
- // 3. Create ethers.Wallet(this.config.signerPrivateKey, provider)
53
- // 4. If contractAddress is set:
54
- // - ABI-encode call to `anchor(bytes32 merkleRoot)` on the contract
55
- // - Send contract transaction
56
- // 5. If no contractAddress (raw calldata):
57
- // - Send self-transfer with 0x + anchorHash as calldata
58
- // 6. Wait for transaction receipt (1 confirmation)
59
- // 7. Return { success: true, externalRef: `eth:${chainId}:${txHash}`,
60
- // metadata: { blockNumber, blockHash, gasUsed, chainId } }
61
- try {
62
- const _hash = await hashCanonicalAnchor(anchor);
63
- throw new Error(
64
- 'EthereumProvider is not yet implemented. ' +
65
- 'Install ethers.js and implement the Ethereum on-chain anchor integration.',
66
- );
67
- } catch (e: unknown) {
68
- return {
69
- providerId: this.id,
70
- success: false,
71
- error: e instanceof Error ? e.message : String(e),
72
- };
73
- }
74
- }
75
-
76
- async verify(anchor: AnchorRecord): Promise<boolean> {
77
- // TODO: Parse txHash from externalRef, fetch transaction receipt,
78
- // decode calldata, compare with anchor hash
79
- if (!anchor.externalRef) return false;
80
- console.warn('[EthereumProvider] verify() is not yet implemented');
81
- return false;
82
- }
83
-
84
- async dispose(): Promise<void> {
85
- // TODO: Disconnect provider if persistent connection was established
86
- }
87
- }