@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.
- package/LICENSE +98 -0
- package/README.md +38 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/providers/EthereumProvider.d.ts +48 -4
- package/dist/providers/EthereumProvider.d.ts.map +1 -1
- package/dist/providers/EthereumProvider.js +261 -27
- package/dist/providers/EthereumProvider.js.map +1 -1
- package/dist/providers/OpenTimestampsProvider.d.ts +26 -2
- package/dist/providers/OpenTimestampsProvider.d.ts.map +1 -1
- package/dist/providers/OpenTimestampsProvider.js +141 -26
- package/dist/providers/OpenTimestampsProvider.js.map +1 -1
- package/dist/providers/RekorProvider.d.ts +32 -3
- package/dist/providers/RekorProvider.d.ts.map +1 -1
- package/dist/providers/RekorProvider.js +212 -25
- package/dist/providers/RekorProvider.js.map +1 -1
- package/dist/providers/SolanaProvider.d.ts +58 -4
- package/dist/providers/SolanaProvider.d.ts.map +1 -1
- package/dist/providers/SolanaProvider.js +310 -25
- package/dist/providers/SolanaProvider.js.map +1 -1
- package/dist/providers/WormSnapshotProvider.d.ts +30 -2
- package/dist/providers/WormSnapshotProvider.d.ts.map +1 -1
- package/dist/providers/WormSnapshotProvider.js +176 -27
- package/dist/providers/WormSnapshotProvider.js.map +1 -1
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +1 -0
- package/dist/register.js.map +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/http-client.d.ts.map +1 -1
- package/dist/utils/http-client.js +1 -0
- package/dist/utils/http-client.js.map +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/serialization.d.ts.map +1 -1
- package/dist/utils/serialization.js +1 -0
- package/dist/utils/serialization.js.map +1 -1
- package/manifest.json +5 -5
- package/package.json +26 -21
- package/CHANGELOG.md +0 -16
- package/src/index.ts +0 -59
- package/src/providers/EthereumProvider.ts +0 -87
- package/src/providers/OpenTimestampsProvider.ts +0 -86
- package/src/providers/RekorProvider.ts +0 -82
- package/src/providers/SolanaProvider.ts +0 -439
- package/src/providers/WormSnapshotProvider.ts +0 -84
- package/src/register.ts +0 -69
- package/src/types.ts +0 -27
- package/src/utils/http-client.ts +0 -75
- package/src/utils/index.ts +0 -3
- package/src/utils/serialization.ts +0 -33
- package/test/integration.spec.ts +0 -175
- package/test/providers.spec.ts +0 -163
- package/test/register.spec.ts +0 -69
- package/test/types.spec.ts +0 -55
- package/test/utils.spec.ts +0 -225
- 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
|
-
*
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
58
|
-
|
|
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
|
-
|
|
61
|
-
|
|
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
|
|
1
|
+
{"version":3,"file":"WormSnapshotProvider.js","sourceRoot":"","sources":["../../src/providers/WormSnapshotProvider.ts"],"names":[],"mappings":"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"}
|
package/dist/register.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"
|
|
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
package/dist/register.js.map
CHANGED
|
@@ -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"}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
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
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":"
|
|
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 +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":"
|
|
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"}
|
package/dist/utils/index.js
CHANGED
package/dist/utils/index.js.map
CHANGED
|
@@ -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":"
|
|
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 +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.
|
|
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/
|
|
10
|
+
"url": "https://github.com/framerslab"
|
|
11
11
|
},
|
|
12
|
-
"license": "
|
|
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": "
|
|
26
|
+
"agentosVersion": ">=0.10.40",
|
|
27
27
|
"categories": ["provenance", "enterprise"],
|
|
28
28
|
"repository": {
|
|
29
29
|
"type": "git",
|
|
30
|
-
"url": "https://github.com/
|
|
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
|
|
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": "
|
|
43
|
+
"license": "Apache-2.0",
|
|
54
44
|
"repository": {
|
|
55
45
|
"type": "git",
|
|
56
|
-
"url": "https://github.com/
|
|
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
|
-
"@
|
|
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": "^
|
|
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
|
-
}
|