@moltzap/identity 2026.902.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/NOTICE +19 -0
- package/README.md +31 -0
- package/bin/moltzap-registry +9 -0
- package/dist/agent-card.d.ts +69 -0
- package/dist/agent-card.d.ts.map +1 -0
- package/dist/agent-card.js +257 -0
- package/dist/agent-card.js.map +1 -0
- package/dist/agent-key.d.ts +77 -0
- package/dist/agent-key.d.ts.map +1 -0
- package/dist/agent-key.js +251 -0
- package/dist/agent-key.js.map +1 -0
- package/dist/authenticated-http.d.ts +44 -0
- package/dist/authenticated-http.d.ts.map +1 -0
- package/dist/authenticated-http.js +226 -0
- package/dist/authenticated-http.js.map +1 -0
- package/dist/canonical-json.d.ts +40 -0
- package/dist/canonical-json.d.ts.map +1 -0
- package/dist/canonical-json.js +399 -0
- package/dist/canonical-json.js.map +1 -0
- package/dist/http-errors.d.ts +115 -0
- package/dist/http-errors.d.ts.map +1 -0
- package/dist/http-errors.js +55 -0
- package/dist/http-errors.js.map +1 -0
- package/dist/http-signature.d.ts +60 -0
- package/dist/http-signature.d.ts.map +1 -0
- package/dist/http-signature.js +337 -0
- package/dist/http-signature.js.map +1 -0
- package/dist/identifiers.d.ts +32 -0
- package/dist/identifiers.d.ts.map +1 -0
- package/dist/identifiers.js +55 -0
- package/dist/identifiers.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/registry/admission.d.ts +27 -0
- package/dist/registry/admission.d.ts.map +1 -0
- package/dist/registry/admission.js +107 -0
- package/dist/registry/admission.js.map +1 -0
- package/dist/registry/client.d.ts +20 -0
- package/dist/registry/client.d.ts.map +1 -0
- package/dist/registry/client.js +250 -0
- package/dist/registry/client.js.map +1 -0
- package/dist/registry/contract.d.ts +213 -0
- package/dist/registry/contract.d.ts.map +1 -0
- package/dist/registry/contract.js +132 -0
- package/dist/registry/contract.js.map +1 -0
- package/dist/registry/http.d.ts +27 -0
- package/dist/registry/http.d.ts.map +1 -0
- package/dist/registry/http.js +258 -0
- package/dist/registry/http.js.map +1 -0
- package/dist/registry/migrations/0001_registry.d.ts +6 -0
- package/dist/registry/migrations/0001_registry.d.ts.map +1 -0
- package/dist/registry/migrations/0001_registry.js +36 -0
- package/dist/registry/migrations/0001_registry.js.map +1 -0
- package/dist/registry/rpc.d.ts +138 -0
- package/dist/registry/rpc.d.ts.map +1 -0
- package/dist/registry/rpc.js +85 -0
- package/dist/registry/rpc.js.map +1 -0
- package/dist/registry/server.d.ts +52 -0
- package/dist/registry/server.d.ts.map +1 -0
- package/dist/registry/server.js +157 -0
- package/dist/registry/server.js.map +1 -0
- package/dist/registry/storage.d.ts +62 -0
- package/dist/registry/storage.d.ts.map +1 -0
- package/dist/registry/storage.js +341 -0
- package/dist/registry/storage.js.map +1 -0
- package/dist/registry.d.ts +34 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +13 -0
- package/dist/registry.js.map +1 -0
- package/dist/signed-message.d.ts +54 -0
- package/dist/signed-message.d.ts.map +1 -0
- package/dist/signed-message.js +289 -0
- package/dist/signed-message.js.map +1 -0
- package/dist/version.d.ts +4 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +4 -0
- package/dist/version.js.map +1 -0
- package/package.json +139 -0
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
/** @file Durable Registry persistence for admission, immutable cards, and idempotent operations. */
|
|
2
|
+
import * as Migrator from "@effect/sql/Migrator";
|
|
3
|
+
import { SqlClient } from "@effect/sql/SqlClient";
|
|
4
|
+
import { Clock, Data, Effect, Either, Encoding, Schema } from "effect";
|
|
5
|
+
import { randomBytes } from "node:crypto";
|
|
6
|
+
import { AgentCard, AgentCardIssuedAt, encodeAgentCard, issueAgentCard, } from "../agent-card.js";
|
|
7
|
+
import { ed25519PublicKeyThumbprintUri, } from "../agent-key.js";
|
|
8
|
+
import { decodeCanonicalJson, encodeCanonicalJson } from "../canonical-json.js";
|
|
9
|
+
import { InternalServerError, UnavailableError } from "../http-errors.js";
|
|
10
|
+
import { AgentId } from "../identifiers.js";
|
|
11
|
+
import { MOLTZAP_VERSION } from "../version.js";
|
|
12
|
+
import { registerResponseSchema, } from "./contract.js";
|
|
13
|
+
import { registryMigration } from "./migrations/0001_registry.js";
|
|
14
|
+
/** Storage initialization failed before the Registry became ready. */
|
|
15
|
+
export class RegistryStorageInitializationError extends Data.TaggedError("RegistryStorageInitializationError") {
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Runs migrations and binds the configured signer and version to storage.
|
|
19
|
+
*
|
|
20
|
+
* @param input Initialization dependencies.
|
|
21
|
+
* @param input.sql Exclusive SQL capability for this Registry process.
|
|
22
|
+
* @param input.registrySignerPublicKey Pinned Registry verification key.
|
|
23
|
+
* @returns An effect that completes only after storage is ready.
|
|
24
|
+
*/
|
|
25
|
+
export function initializeRegistryStorage(input) {
|
|
26
|
+
return runStorageInitialization(input).pipe(
|
|
27
|
+
// eslint-disable-next-line agent-code-guard/no-effect-error-coalescing -- Startup exposes one empty storage phase error and never leaks database or key details.
|
|
28
|
+
Effect.mapError(() => new RegistryStorageInitializationError()), Effect.catchAllDefect(() => Effect.fail(new RegistryStorageInitializationError())), Effect.withSpan("initializeRegistryStorage"));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Creates durable Registry operations over one initialized SQL client.
|
|
32
|
+
*
|
|
33
|
+
* @param input Storage dependencies and operation bounds.
|
|
34
|
+
* @param input.sql Initialized SQL capability.
|
|
35
|
+
* @param input.registrySignerPublicKey Pinned Registry verification key.
|
|
36
|
+
* @param input.listPageSize Maximum complete cards in one list response.
|
|
37
|
+
* @param input.operationTimeoutMilliseconds Complete SQL operation deadline.
|
|
38
|
+
* @returns Durable Registry operations.
|
|
39
|
+
*/
|
|
40
|
+
export function makeRegistryStorage(input) {
|
|
41
|
+
return Object.freeze({
|
|
42
|
+
checkReadiness: makeCheckReadiness(input),
|
|
43
|
+
claimRegistrationNonce: makeClaimRegistrationNonce(input),
|
|
44
|
+
register: makeRegister(input),
|
|
45
|
+
lookup: makeLookup(input),
|
|
46
|
+
list: makeList(input),
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
const AGENT_ID_MINT_ATTEMPTS = 8;
|
|
50
|
+
const migrations = Migrator.fromRecord({
|
|
51
|
+
"0001_registry": registryMigration,
|
|
52
|
+
});
|
|
53
|
+
const exactStruct = (fields) => Schema.Struct(fields).annotations({
|
|
54
|
+
parseOptions: { exact: true, onExcessProperty: "error" },
|
|
55
|
+
});
|
|
56
|
+
const metadataRow = exactStruct({
|
|
57
|
+
moltzapVersion: Schema.String,
|
|
58
|
+
signerThumbprint: Schema.String,
|
|
59
|
+
});
|
|
60
|
+
const cardRow = exactStruct({
|
|
61
|
+
agentCardBytes: Schema.Uint8ArrayFromSelf,
|
|
62
|
+
});
|
|
63
|
+
const operationRow = exactStruct({
|
|
64
|
+
requestBytes: Schema.Uint8ArrayFromSelf,
|
|
65
|
+
resultBytes: Schema.Uint8ArrayFromSelf,
|
|
66
|
+
});
|
|
67
|
+
const countRow = exactStruct({
|
|
68
|
+
retained: Schema.Union(Schema.String, Schema.Number),
|
|
69
|
+
});
|
|
70
|
+
const readinessRow = exactStruct({
|
|
71
|
+
ready: Schema.Literal(1),
|
|
72
|
+
});
|
|
73
|
+
const internalFailure = (effect) => effect.pipe(
|
|
74
|
+
// eslint-disable-next-line agent-code-guard/no-effect-error-coalescing -- Stored bytes and internal cryptographic failures cross one closed, non-diagnostic storage boundary.
|
|
75
|
+
Effect.mapError(() => new InternalServerError()));
|
|
76
|
+
const exactRows = (schema, rows) => internalFailure(Schema.decodeUnknown(Schema.Array(schema))(rows, {
|
|
77
|
+
exact: true,
|
|
78
|
+
onExcessProperty: "error",
|
|
79
|
+
})).pipe(Effect.map((decoded) => Object.freeze([...decoded])));
|
|
80
|
+
const withStorageDeadline = (effect, timeoutMilliseconds) => effect.pipe(Effect.catchTag("SqlError", () => Effect.fail(new UnavailableError())), Effect.timeoutFail({
|
|
81
|
+
duration: timeoutMilliseconds,
|
|
82
|
+
onTimeout: () => new UnavailableError(),
|
|
83
|
+
}));
|
|
84
|
+
const decodeStoredCard = (bytes, registrySignerPublicKey) => internalFailure(decodeCanonicalJson(AgentCard, bytes).pipe(Effect.flatMap((agentCard) => AgentCard.verify({ agentCard, registrySignerPublicKey }))));
|
|
85
|
+
const encodeResult = (result) => internalFailure(Schema.encode(registerResponseSchema)(result).pipe(Effect.flatMap(encodeCanonicalJson)));
|
|
86
|
+
const decodeResult = (bytes, registrySignerPublicKey) => internalFailure(Effect.gen(function* () {
|
|
87
|
+
const result = yield* decodeCanonicalJson(registerResponseSchema, bytes);
|
|
88
|
+
if (result.kind !== "registered") {
|
|
89
|
+
return Object.freeze({ kind: result.kind });
|
|
90
|
+
}
|
|
91
|
+
const agentCard = yield* AgentCard.verify({
|
|
92
|
+
agentCard: result.agentCard,
|
|
93
|
+
registrySignerPublicKey,
|
|
94
|
+
});
|
|
95
|
+
return Object.freeze({ kind: "registered", agentCard });
|
|
96
|
+
}));
|
|
97
|
+
const sameBytes = (left, right) => left.byteLength === right.byteLength &&
|
|
98
|
+
left.every((value, index) => value === right[index]);
|
|
99
|
+
const mintAgentId = () => internalFailure(Effect.try({
|
|
100
|
+
try: () => `agt_${randomBytes(16).toString("base64url")}`,
|
|
101
|
+
catch: () => new InternalServerError(),
|
|
102
|
+
}).pipe(Effect.flatMap(Schema.decodeUnknown(AgentId))));
|
|
103
|
+
const retainedCount = (rows) => exactRows(countRow, rows).pipe(Effect.map((decoded) => Number(decoded[0]?.retained ?? 0)));
|
|
104
|
+
const mintUnusedAgentId = (sql) => Effect.gen(function* () {
|
|
105
|
+
for (let attempt = 0; attempt < AGENT_ID_MINT_ATTEMPTS; attempt += 1) {
|
|
106
|
+
const candidate = yield* mintAgentId();
|
|
107
|
+
const rows = yield* sql `
|
|
108
|
+
SELECT COUNT(*)::text AS retained
|
|
109
|
+
FROM moltzap_registry_agents
|
|
110
|
+
WHERE agent_id = ${candidate}
|
|
111
|
+
`;
|
|
112
|
+
if ((yield* retainedCount(rows)) === 0) {
|
|
113
|
+
return candidate;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return yield* new InternalServerError();
|
|
117
|
+
});
|
|
118
|
+
const issueTime = () => internalFailure(Clock.currentTimeMillis.pipe(Effect.map((milliseconds) => new Date(Math.floor(milliseconds / 1_000) * 1_000)
|
|
119
|
+
.toISOString()
|
|
120
|
+
.replace(".000Z", "Z")), Effect.flatMap(Schema.decodeUnknown(AgentCardIssuedAt))));
|
|
121
|
+
const decodeAgentIdBytes = (agentId) => Either.match(Encoding.decodeBase64Url(agentId.slice(4)), {
|
|
122
|
+
onLeft: () => Effect.fail(new InternalServerError()),
|
|
123
|
+
onRight: Effect.succeed,
|
|
124
|
+
});
|
|
125
|
+
function makeCheckReadiness(input) {
|
|
126
|
+
return () => withStorageDeadline(input.sql `SELECT 1 AS ready`.pipe(Effect.flatMap((rows) => exactRows(readinessRow, rows)), Effect.flatMap((rows) => rows.length === 1
|
|
127
|
+
? Effect.void
|
|
128
|
+
: Effect.fail(new InternalServerError()))), input.operationTimeoutMilliseconds);
|
|
129
|
+
}
|
|
130
|
+
const ensureMigrationTable = (sql) => sql.unsafe(`
|
|
131
|
+
CREATE TABLE IF NOT EXISTS moltzap_registry_migrations (
|
|
132
|
+
migration_id integer PRIMARY KEY,
|
|
133
|
+
created_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
134
|
+
name text NOT NULL
|
|
135
|
+
)
|
|
136
|
+
`);
|
|
137
|
+
const bindStorageMetadata = (input) => input.sql.withTransaction(Effect.gen(function* () {
|
|
138
|
+
yield* input.sql `
|
|
139
|
+
INSERT INTO moltzap_registry_metadata
|
|
140
|
+
(singleton, moltzap_version, signer_thumbprint)
|
|
141
|
+
VALUES (true, ${MOLTZAP_VERSION}, ${input.signerThumbprint})
|
|
142
|
+
ON CONFLICT (singleton) DO NOTHING
|
|
143
|
+
`;
|
|
144
|
+
const rows = yield* input.sql `
|
|
145
|
+
SELECT
|
|
146
|
+
moltzap_version AS "moltzapVersion",
|
|
147
|
+
signer_thumbprint AS "signerThumbprint"
|
|
148
|
+
FROM moltzap_registry_metadata
|
|
149
|
+
WHERE singleton = true
|
|
150
|
+
FOR UPDATE
|
|
151
|
+
`;
|
|
152
|
+
const metadata = yield* Schema.decodeUnknown(Schema.Tuple(metadataRow))(rows, { exact: true, onExcessProperty: "error" });
|
|
153
|
+
if (metadata[0].moltzapVersion !== MOLTZAP_VERSION ||
|
|
154
|
+
metadata[0].signerThumbprint !== input.signerThumbprint) {
|
|
155
|
+
return yield* Effect.die("Registry metadata mismatch");
|
|
156
|
+
}
|
|
157
|
+
}));
|
|
158
|
+
function runStorageInitialization(input) {
|
|
159
|
+
return Effect.gen(function* () {
|
|
160
|
+
// The PGlite socket closes after Migrator's missing-table probe. Creating
|
|
161
|
+
// Migrator's own table first keeps every supported database on one path.
|
|
162
|
+
yield* ensureMigrationTable(input.sql);
|
|
163
|
+
yield* Migrator.make({})({
|
|
164
|
+
loader: migrations,
|
|
165
|
+
table: "moltzap_registry_migrations",
|
|
166
|
+
}).pipe(Effect.provideService(SqlClient, input.sql));
|
|
167
|
+
const signerThumbprint = yield* ed25519PublicKeyThumbprintUri(input.registrySignerPublicKey);
|
|
168
|
+
yield* bindStorageMetadata({ sql: input.sql, signerThumbprint });
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
const claimNonceTransaction = (sql, claim) => sql.withTransaction(Effect.gen(function* () {
|
|
172
|
+
yield* sql `
|
|
173
|
+
SELECT singleton FROM moltzap_registry_metadata
|
|
174
|
+
WHERE singleton = true FOR UPDATE
|
|
175
|
+
`;
|
|
176
|
+
yield* sql `
|
|
177
|
+
DELETE FROM moltzap_registry_nonces
|
|
178
|
+
WHERE expires_at < ${claim.now}
|
|
179
|
+
`;
|
|
180
|
+
const existing = yield* sql `
|
|
181
|
+
SELECT COUNT(*)::text AS retained
|
|
182
|
+
FROM moltzap_registry_nonces WHERE nonce = ${claim.nonce}
|
|
183
|
+
`;
|
|
184
|
+
if ((yield* retainedCount(existing)) !== 0) {
|
|
185
|
+
return "replayed";
|
|
186
|
+
}
|
|
187
|
+
const retained = yield* sql `
|
|
188
|
+
SELECT COUNT(*)::text AS retained FROM moltzap_registry_nonces
|
|
189
|
+
`;
|
|
190
|
+
if ((yield* retainedCount(retained)) >= claim.capacity) {
|
|
191
|
+
return "full";
|
|
192
|
+
}
|
|
193
|
+
yield* sql `
|
|
194
|
+
INSERT INTO moltzap_registry_nonces (nonce, expires_at)
|
|
195
|
+
VALUES (${claim.nonce}, ${claim.expires})
|
|
196
|
+
`;
|
|
197
|
+
return "claimed";
|
|
198
|
+
}));
|
|
199
|
+
function makeClaimRegistrationNonce(input) {
|
|
200
|
+
return (claim) => withStorageDeadline(claimNonceTransaction(input.sql, claim), input.operationTimeoutMilliseconds);
|
|
201
|
+
}
|
|
202
|
+
const findStoredOperation = (sql, keyThumbprint, operationId) => sql `
|
|
203
|
+
SELECT
|
|
204
|
+
request_bytes AS "requestBytes",
|
|
205
|
+
result_bytes AS "resultBytes"
|
|
206
|
+
FROM moltzap_registry_operations
|
|
207
|
+
WHERE public_key_thumbprint = ${keyThumbprint}
|
|
208
|
+
AND operation_id = ${operationId}
|
|
209
|
+
`.pipe(Effect.flatMap((rows) => exactRows(operationRow, rows)), Effect.map((rows) => rows[0]));
|
|
210
|
+
const keyIsRegistered = (sql, thumbprint) => sql `
|
|
211
|
+
SELECT COUNT(*)::text AS retained
|
|
212
|
+
FROM moltzap_registry_agents
|
|
213
|
+
WHERE public_key_thumbprint = ${thumbprint}
|
|
214
|
+
`.pipe(Effect.flatMap(retainedCount), Effect.map((retained) => retained > 0));
|
|
215
|
+
const nameIsRegistered = (sql, agentName) => sql `
|
|
216
|
+
SELECT COUNT(*)::text AS retained
|
|
217
|
+
FROM moltzap_registry_agents
|
|
218
|
+
WHERE agent_name = ${agentName}
|
|
219
|
+
`.pipe(Effect.flatMap(retainedCount), Effect.map((retained) => retained > 0));
|
|
220
|
+
const insertNewAgent = (input, call, keyThumbprint) => Effect.gen(function* () {
|
|
221
|
+
const agentId = yield* mintUnusedAgentId(input.sql);
|
|
222
|
+
const issuedAt = yield* issueTime();
|
|
223
|
+
const agentCard = yield* internalFailure(issueAgentCard({
|
|
224
|
+
agentId,
|
|
225
|
+
principalId: call.request.principalId,
|
|
226
|
+
agentName: call.request.agentName,
|
|
227
|
+
publicKey: call.request.publicKey,
|
|
228
|
+
issuedAt,
|
|
229
|
+
registrySigningAuthority: call.registrySigningAuthority,
|
|
230
|
+
}));
|
|
231
|
+
const agentCardBytes = yield* internalFailure(encodeAgentCard(agentCard));
|
|
232
|
+
const agentIdBytes = yield* decodeAgentIdBytes(agentId);
|
|
233
|
+
yield* input.sql `
|
|
234
|
+
INSERT INTO moltzap_registry_agents
|
|
235
|
+
(agent_id, agent_id_bytes, principal_id, agent_name,
|
|
236
|
+
public_key_thumbprint, agent_card_bytes)
|
|
237
|
+
VALUES
|
|
238
|
+
(${agentId}, ${agentIdBytes}, ${call.request.principalId},
|
|
239
|
+
${call.request.agentName}, ${keyThumbprint}, ${agentCardBytes})
|
|
240
|
+
`;
|
|
241
|
+
return Object.freeze({ kind: "registered", agentCard });
|
|
242
|
+
});
|
|
243
|
+
const decideRegistration = (input, call, keyThumbprint) => Effect.gen(function* () {
|
|
244
|
+
if (yield* keyIsRegistered(input.sql, keyThumbprint)) {
|
|
245
|
+
return Object.freeze({ kind: "key_already_registered" });
|
|
246
|
+
}
|
|
247
|
+
if (yield* nameIsRegistered(input.sql, call.request.agentName)) {
|
|
248
|
+
return Object.freeze({ kind: "name_taken" });
|
|
249
|
+
}
|
|
250
|
+
return yield* insertNewAgent(input, call, keyThumbprint);
|
|
251
|
+
});
|
|
252
|
+
const recordOperation = (input) => input.sql `
|
|
253
|
+
INSERT INTO moltzap_registry_operations
|
|
254
|
+
(public_key_thumbprint, operation_id, request_bytes, result_bytes)
|
|
255
|
+
VALUES
|
|
256
|
+
(${input.keyThumbprint}, ${input.operationId},
|
|
257
|
+
${input.requestBytes}, ${input.resultBytes})
|
|
258
|
+
`;
|
|
259
|
+
const registerTransaction = (input, call, keyThumbprint) => input.sql.withTransaction(Effect.gen(function* () {
|
|
260
|
+
yield* input.sql `
|
|
261
|
+
SELECT singleton FROM moltzap_registry_metadata
|
|
262
|
+
WHERE singleton = true FOR UPDATE
|
|
263
|
+
`;
|
|
264
|
+
const previous = yield* findStoredOperation(input.sql, keyThumbprint, call.request.operationId);
|
|
265
|
+
if (previous !== undefined) {
|
|
266
|
+
return sameBytes(previous.requestBytes, call.requestBytes)
|
|
267
|
+
? yield* decodeResult(previous.resultBytes, input.registrySignerPublicKey)
|
|
268
|
+
: Object.freeze({ kind: "idempotency_conflict" });
|
|
269
|
+
}
|
|
270
|
+
const result = yield* decideRegistration(input, call, keyThumbprint);
|
|
271
|
+
const resultBytes = yield* encodeResult(result);
|
|
272
|
+
yield* recordOperation({
|
|
273
|
+
sql: input.sql,
|
|
274
|
+
keyThumbprint,
|
|
275
|
+
operationId: call.request.operationId,
|
|
276
|
+
requestBytes: call.requestBytes,
|
|
277
|
+
resultBytes,
|
|
278
|
+
});
|
|
279
|
+
return result;
|
|
280
|
+
}));
|
|
281
|
+
function makeRegister(input) {
|
|
282
|
+
return (call) => withStorageDeadline(internalFailure(ed25519PublicKeyThumbprintUri(call.request.publicKey)).pipe(Effect.flatMap((thumbprint) => registerTransaction(input, call, thumbprint))), input.operationTimeoutMilliseconds);
|
|
283
|
+
}
|
|
284
|
+
const findCardRows = (sql, request) => "agentId" in request
|
|
285
|
+
? sql `
|
|
286
|
+
SELECT agent_card_bytes AS "agentCardBytes"
|
|
287
|
+
FROM moltzap_registry_agents
|
|
288
|
+
WHERE agent_id = ${request.agentId}
|
|
289
|
+
`
|
|
290
|
+
: sql `
|
|
291
|
+
SELECT agent_card_bytes AS "agentCardBytes"
|
|
292
|
+
FROM moltzap_registry_agents
|
|
293
|
+
WHERE agent_name = ${request.agentName}
|
|
294
|
+
`;
|
|
295
|
+
function makeLookup(input) {
|
|
296
|
+
return (request) => withStorageDeadline(Effect.gen(function* () {
|
|
297
|
+
const cards = yield* findCardRows(input.sql, request).pipe(Effect.flatMap((rows) => exactRows(cardRow, rows)));
|
|
298
|
+
const card = cards[0];
|
|
299
|
+
if (card === undefined) {
|
|
300
|
+
return Object.freeze({ kind: "not_found" });
|
|
301
|
+
}
|
|
302
|
+
if (cards.length !== 1) {
|
|
303
|
+
return yield* new InternalServerError();
|
|
304
|
+
}
|
|
305
|
+
const agentCard = yield* decodeStoredCard(card.agentCardBytes, input.registrySignerPublicKey);
|
|
306
|
+
return Object.freeze({ kind: "found", agentCard });
|
|
307
|
+
}), input.operationTimeoutMilliseconds);
|
|
308
|
+
}
|
|
309
|
+
const readListRows = (input, afterBytes) => {
|
|
310
|
+
const maximumRows = input.listPageSize + 1;
|
|
311
|
+
return afterBytes === undefined
|
|
312
|
+
? input.sql `
|
|
313
|
+
SELECT agent_card_bytes AS "agentCardBytes"
|
|
314
|
+
FROM moltzap_registry_agents
|
|
315
|
+
ORDER BY agent_id_bytes ASC
|
|
316
|
+
LIMIT ${maximumRows}
|
|
317
|
+
`
|
|
318
|
+
: input.sql `
|
|
319
|
+
SELECT agent_card_bytes AS "agentCardBytes"
|
|
320
|
+
FROM moltzap_registry_agents
|
|
321
|
+
WHERE agent_id_bytes > ${afterBytes}
|
|
322
|
+
ORDER BY agent_id_bytes ASC
|
|
323
|
+
LIMIT ${maximumRows}
|
|
324
|
+
`;
|
|
325
|
+
};
|
|
326
|
+
function makeList(input) {
|
|
327
|
+
return (request) => withStorageDeadline(Effect.gen(function* () {
|
|
328
|
+
const afterBytes = request.afterAgentId === undefined
|
|
329
|
+
? undefined
|
|
330
|
+
: yield* decodeAgentIdBytes(request.afterAgentId);
|
|
331
|
+
const cardRows = yield* readListRows(input, afterBytes).pipe(Effect.flatMap((rows) => exactRows(cardRow, rows)));
|
|
332
|
+
const hasMore = cardRows.length > input.listPageSize;
|
|
333
|
+
const agentCards = yield* Effect.forEach(cardRows.slice(0, input.listPageSize), (row) => decodeStoredCard(row.agentCardBytes, input.registrySignerPublicKey), { concurrency: 1 });
|
|
334
|
+
return Object.freeze({
|
|
335
|
+
kind: "page",
|
|
336
|
+
agentCards: Object.freeze(agentCards),
|
|
337
|
+
hasMore,
|
|
338
|
+
});
|
|
339
|
+
}), input.operationTimeoutMilliseconds);
|
|
340
|
+
}
|
|
341
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/registry/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** @file Public Registry capability and its package-owned contract exports. */
|
|
2
|
+
import type { HttpClient } from "@effect/platform";
|
|
3
|
+
import { Context, type Duration, Effect, Layer } from "effect";
|
|
4
|
+
import type { Ed25519PublicKey } from "./agent-key.js";
|
|
5
|
+
import type { RegistryClientService } from "./registry/contract.js";
|
|
6
|
+
/** Closed Registry requests, verified results, and client failures. */
|
|
7
|
+
export { OperationId, RegistryConnectionError, RegistryInvalidResponseError, RegistryListRequest, type RegistryListResult, RegistryLookupRequest, type RegistryLookupResult, RegistryRegisterRequest, type RegistryRegisterResult, RegistryRequestTimeoutError, } from "./registry/contract.js";
|
|
8
|
+
declare const Registry_base: Context.TagClass<Registry, "@moltzap/identity/Registry", RegistryClientService>;
|
|
9
|
+
/** Bootstrap registration and immutable identity resolution. */
|
|
10
|
+
export declare class Registry extends Registry_base {
|
|
11
|
+
static readonly register: (input: Readonly<{
|
|
12
|
+
request: import("./registry.js").RegistryRegisterRequest;
|
|
13
|
+
admissionCredential: import("effect/Redacted").Redacted;
|
|
14
|
+
signingAuthority: import("./agent-key.js").AgentSigningAuthority;
|
|
15
|
+
}>) => Effect.Effect<import("./registry.js").RegistryRegisterResult, import("./http-signature.js").AgentSigningError | import("./http-errors.js").HttpEnvelopeError | (import("./registry.js").RegistryConnectionError | import("./registry.js").RegistryInvalidResponseError | import("./registry.js").RegistryRequestTimeoutError), Registry>;
|
|
16
|
+
static readonly lookup: (request: {
|
|
17
|
+
readonly agentId: string & import("effect/Brand").Brand<"AgentId">;
|
|
18
|
+
} | {
|
|
19
|
+
readonly agentName: string & import("effect/Brand").Brand<"AgentName">;
|
|
20
|
+
}) => Effect.Effect<import("./registry.js").RegistryLookupResult, (import("./registry.js").RegistryConnectionError | import("./registry.js").RegistryInvalidResponseError | import("./registry.js").RegistryRequestTimeoutError) | import("./registry/contract.js").RegistryPublicReadError, Registry>;
|
|
21
|
+
static readonly list: (request: {
|
|
22
|
+
readonly afterAgentId?: (string & import("effect/Brand").Brand<"AgentId">) | undefined;
|
|
23
|
+
}) => Effect.Effect<Readonly<{
|
|
24
|
+
kind: "page";
|
|
25
|
+
agentCards: readonly import("./agent-card.js").VerifiedAgentCard[];
|
|
26
|
+
hasMore: boolean;
|
|
27
|
+
}>, (import("./registry.js").RegistryConnectionError | import("./registry.js").RegistryInvalidResponseError | import("./registry.js").RegistryRequestTimeoutError) | import("./registry/contract.js").RegistryPublicReadError, Registry>;
|
|
28
|
+
static readonly layer: (input: {
|
|
29
|
+
readonly origin: URL;
|
|
30
|
+
readonly registrySignerPublicKey: Ed25519PublicKey;
|
|
31
|
+
readonly requestTimeout: Duration.Duration;
|
|
32
|
+
}) => Layer.Layer<Registry, never, HttpClient.HttpClient>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAGpE,uEAAuE;AACvE,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,4BAA4B,EAC5B,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,uBAAuB,EACvB,KAAK,sBAAsB,EAC3B,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;;AAEhC,gEAAgE;AAChE,qBAAa,QAAS,SAAQ,aAG3B;IACD,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;oVAGtB;IAEF,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;2SAGpB;IAEF,MAAM,CAAC,QAAQ,CAAC,IAAI;;;;;;6OAGlB;IAEF,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAW;QAC9B,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;QACrB,QAAQ,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;QACnD,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC;KAC5C,KAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CAAC,CACF;CACtD"}
|
package/dist/registry.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** @file Public Registry capability and its package-owned contract exports. */
|
|
2
|
+
import { Context, Effect, Layer } from "effect";
|
|
3
|
+
import { makeRegistryService } from "./registry/client.js";
|
|
4
|
+
/** Closed Registry requests, verified results, and client failures. */
|
|
5
|
+
export { OperationId, RegistryConnectionError, RegistryInvalidResponseError, RegistryListRequest, RegistryLookupRequest, RegistryRegisterRequest, RegistryRequestTimeoutError, } from "./registry/contract.js";
|
|
6
|
+
/** Bootstrap registration and immutable identity resolution. */
|
|
7
|
+
export class Registry extends Context.Tag("@moltzap/identity/Registry")() {
|
|
8
|
+
static register = Effect.serviceFunctionEffect(Registry, (service) => service.register);
|
|
9
|
+
static lookup = Effect.serviceFunctionEffect(Registry, (service) => service.lookup);
|
|
10
|
+
static list = Effect.serviceFunctionEffect(Registry, (service) => service.list);
|
|
11
|
+
static layer = (input) => Layer.effect(Registry, makeRegistryService(input));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAG/E,OAAO,EAAE,OAAO,EAAiB,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAG/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,uEAAuE;AACvE,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,4BAA4B,EAC5B,mBAAmB,EAEnB,qBAAqB,EAErB,uBAAuB,EAEvB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAEhC,gEAAgE;AAChE,MAAM,OAAO,QAAS,SAAQ,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAGpE;IACD,MAAM,CAAU,QAAQ,GAAG,MAAM,CAAC,qBAAqB,CACrD,QAAQ,EACR,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAC9B,CAAC;IAEF,MAAM,CAAU,MAAM,GAAG,MAAM,CAAC,qBAAqB,CACnD,QAAQ,EACR,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAC5B,CAAC;IAEF,MAAM,CAAU,IAAI,GAAG,MAAM,CAAC,qBAAqB,CACjD,QAAQ,EACR,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAC1B,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG,CAAC,KAIxB,EAAuD,EAAE,CACxD,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;CACtD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/** @file Canonical end-to-end signed message representation, signing, and verification. */
|
|
2
|
+
import { Brand, Effect, Schema } from "effect";
|
|
3
|
+
import { type AgentCardDigest as AgentCardDigestValue, type VerifiedAgentCard } from "./agent-card.js";
|
|
4
|
+
import { type AgentSigningAuthority as AgentSigningAuthorityValue } from "./agent-key.js";
|
|
5
|
+
import { type AgentId as AgentIdValue } from "./identifiers.js";
|
|
6
|
+
/** Sender-scoped identity of one attributed message. */
|
|
7
|
+
export declare const MessageId: Schema.brand<Schema.filter<typeof Schema.String>, "MessageId">;
|
|
8
|
+
/** Validated nominal value decoded by MessageId. */
|
|
9
|
+
export type MessageId = typeof MessageId.Type;
|
|
10
|
+
/** Immutable attributed-message fields exposed to Router consumers. */
|
|
11
|
+
export interface SignedMessage {
|
|
12
|
+
readonly senderAgentId: AgentIdValue;
|
|
13
|
+
readonly agentCardDigest: AgentCardDigestValue;
|
|
14
|
+
readonly recipientAgentIds: readonly AgentIdValue[];
|
|
15
|
+
readonly messageId: MessageId;
|
|
16
|
+
readonly body: Uint8Array;
|
|
17
|
+
}
|
|
18
|
+
/** SignedMessage whose sender attribution and signature are verified. */
|
|
19
|
+
export type VerifiedSignedMessage = SignedMessage & Brand.Brand<"VerifiedSignedMessage">;
|
|
20
|
+
declare const SignedMessageSigningError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
21
|
+
readonly _tag: "SignedMessageSigningError";
|
|
22
|
+
} & Readonly<A>;
|
|
23
|
+
/** A message cannot be signed under the supplied immutable identity. */
|
|
24
|
+
export declare class SignedMessageSigningError extends SignedMessageSigningError_base {
|
|
25
|
+
}
|
|
26
|
+
declare const SignedMessageVerificationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
27
|
+
readonly _tag: "SignedMessageVerificationError";
|
|
28
|
+
} & Readonly<A>;
|
|
29
|
+
/** A SignedMessage does not bind to the supplied verified AgentCard. */
|
|
30
|
+
export declare class SignedMessageVerificationError extends SignedMessageVerificationError_base {
|
|
31
|
+
}
|
|
32
|
+
interface SignInput {
|
|
33
|
+
readonly agentCard: VerifiedAgentCard;
|
|
34
|
+
readonly signingAuthority: AgentSigningAuthorityValue;
|
|
35
|
+
readonly recipientAgentIds: ReadonlySet<AgentIdValue>;
|
|
36
|
+
readonly messageId: MessageId;
|
|
37
|
+
readonly body: Uint8Array;
|
|
38
|
+
}
|
|
39
|
+
declare const sign: (input: SignInput) => Effect.Effect<VerifiedSignedMessage, SignedMessageSigningError>;
|
|
40
|
+
interface VerifyInput {
|
|
41
|
+
readonly signedMessage: SignedMessage;
|
|
42
|
+
readonly agentCard: VerifiedAgentCard;
|
|
43
|
+
}
|
|
44
|
+
declare const verify: (input: VerifyInput) => Effect.Effect<VerifiedSignedMessage, SignedMessageVerificationError>;
|
|
45
|
+
declare const encodedByteLength: (signedMessage: SignedMessage) => number;
|
|
46
|
+
/** Opaque attributed message operations and exact representation Schema. */
|
|
47
|
+
export declare const SignedMessage: Schema.Schema<SignedMessage, unknown> & Readonly<{
|
|
48
|
+
readonly sign: typeof sign;
|
|
49
|
+
readonly verify: typeof verify;
|
|
50
|
+
readonly encodedByteLength: typeof encodedByteLength;
|
|
51
|
+
readonly maximumEncodedByteLength: number;
|
|
52
|
+
}>;
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=signed-message.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signed-message.d.ts","sourceRoot":"","sources":["../src/signed-message.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAE3F,OAAO,EACL,KAAK,EAEL,MAAM,EAIN,MAAM,EAEP,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAEL,KAAK,eAAe,IAAI,oBAAoB,EAE5C,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,KAAK,qBAAqB,IAAI,0BAA0B,EAIzD,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAEL,KAAK,OAAO,IAAI,YAAY,EAE7B,MAAM,kBAAkB,CAAC;AAG1B,wDAAwD;AAExD,eAAO,MAAM,SAAS,gEAA+C,CAAC;AACtE,oDAAoD;AAEpD,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAC;AAiH9C,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,oBAAoB,CAAC;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,SAAS,YAAY,EAAE,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAmID,yEAAyE;AACzE,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAC/C,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;;;;AAIvC,wEAAwE;AACxE,qBAAa,yBAA0B,SAAQ,8BAE9C;CAAG;;;;AAEJ,wEAAwE;AACxE,qBAAa,8BAA+B,SAAQ,mCAEnD;CAAG;AAgBJ,UAAU,SAAS;IACjB,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AA2DD,QAAA,MAAM,IAAI,UACD,SAAS,KACf,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,CAiB7D,CAAC;AAEL,UAAU,WAAW;IACnB,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;CACvC;AAED,QAAA,MAAM,MAAM,UACH,WAAW,KACjB,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,CA8ClE,CAAC;AAEL,QAAA,MAAM,iBAAiB,kBAAmB,aAAa,KAAG,MACD,CAAC;AAK1D,4EAA4E;AAC5E,eAAO,MAAM,aAAa,EAKpB,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,GACzC,QAAQ,CAAC;IACP,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IACrD,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;CAC3C,CAAC,CAAC"}
|