agent-protocols 0.1.0 → 0.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/README.md +6 -5
- package/dist/discourse.d.ts +84 -75
- package/dist/discourse.d.ts.map +1 -1
- package/dist/discourse.js +38 -43
- package/dist/discourse.js.map +1 -1
- package/dist/http-client.d.ts +22 -8
- package/dist/http-client.d.ts.map +1 -1
- package/dist/http-client.js +56 -10
- package/dist/http-client.js.map +1 -1
- package/dist/identity.d.ts +27 -29
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +71 -71
- package/dist/identity.js.map +1 -1
- package/dist/profile.d.ts +31 -9
- package/dist/profile.d.ts.map +1 -1
- package/dist/profile.js +8 -6
- package/dist/profile.js.map +1 -1
- package/package.json +1 -2
package/dist/http-client.js
CHANGED
|
@@ -8,6 +8,12 @@ export class ProfileClient {
|
|
|
8
8
|
async getProfile(agentId) {
|
|
9
9
|
return this.getJson(`/v1/profiles/${agentId}`);
|
|
10
10
|
}
|
|
11
|
+
async getProfiles(agentIds) {
|
|
12
|
+
return this.postJson("/v1/profiles/batch", { ids: agentIds });
|
|
13
|
+
}
|
|
14
|
+
async profileEvents(agentId, limit = 1) {
|
|
15
|
+
return this.getJson(`/v1/profiles/${agentId}/events?limit=${limit}`);
|
|
16
|
+
}
|
|
11
17
|
async submitProfileUpdate(envelope) {
|
|
12
18
|
return this.postJson("/v1/profiles", envelope);
|
|
13
19
|
}
|
|
@@ -35,34 +41,58 @@ export class DiscourseClient {
|
|
|
35
41
|
this.fetchImpl = fetchImpl;
|
|
36
42
|
}
|
|
37
43
|
async protocol() {
|
|
38
|
-
return this.getJson("/
|
|
44
|
+
return this.getJson("/.well-known/agent-discourse");
|
|
39
45
|
}
|
|
40
46
|
async createRoom(envelope) {
|
|
41
47
|
return this.postJson("/v1/rooms", envelope);
|
|
42
48
|
}
|
|
49
|
+
async room(roomId) {
|
|
50
|
+
return this.getJson(`/v1/rooms/${roomId}`);
|
|
51
|
+
}
|
|
52
|
+
async requestJoin(roomId, jwt, request) {
|
|
53
|
+
return this.postJson(`/v1/rooms/${roomId}/join-requests`, request, jwt);
|
|
54
|
+
}
|
|
55
|
+
async joinRequest(roomId, requestId, jwt) {
|
|
56
|
+
return this.getJson(`/v1/rooms/${roomId}/join-requests/${requestId}`, jwt);
|
|
57
|
+
}
|
|
58
|
+
async joinRequests(roomId, jwt) {
|
|
59
|
+
return this.getJson(`/v1/rooms/${roomId}/join-requests`, jwt);
|
|
60
|
+
}
|
|
43
61
|
async joinRoom(roomId, envelope) {
|
|
44
|
-
return this.postJson(`/v1/rooms/${roomId}
|
|
62
|
+
return this.postJson(`/v1/rooms/${roomId}`, envelope);
|
|
45
63
|
}
|
|
46
64
|
async leaveRoom(roomId, envelope) {
|
|
47
|
-
return this.postJson(`/v1/rooms/${roomId}
|
|
65
|
+
return this.postJson(`/v1/rooms/${roomId}`, envelope);
|
|
48
66
|
}
|
|
49
67
|
async submitEvent(roomId, envelope) {
|
|
50
|
-
return this.postJson(`/v1/rooms/${roomId}
|
|
68
|
+
return this.postJson(`/v1/rooms/${roomId}`, envelope);
|
|
51
69
|
}
|
|
52
|
-
async events(roomId) {
|
|
53
|
-
return this.getJson(`/v1/rooms/${roomId}/events
|
|
70
|
+
async events(roomId, options = {}) {
|
|
71
|
+
return this.getJson(addQuery(`/v1/rooms/${roomId}/events`, {
|
|
72
|
+
after_seq: options.afterSeq,
|
|
73
|
+
limit: options.limit,
|
|
74
|
+
cursor: options.cursor,
|
|
75
|
+
}), options.jwt);
|
|
76
|
+
}
|
|
77
|
+
websocketEventsUrl(roomId, jwt) {
|
|
78
|
+
return websocketEventsUrl(this.baseUrl, roomId, jwt);
|
|
54
79
|
}
|
|
55
80
|
async archive(roomId) {
|
|
56
81
|
return this.getJson(`/v1/rooms/${roomId}/archive`);
|
|
57
82
|
}
|
|
58
|
-
async getJson(path) {
|
|
59
|
-
const response = await this.fetchImpl(this.url(path)
|
|
83
|
+
async getJson(path, jwt) {
|
|
84
|
+
const response = await this.fetchImpl(this.url(path), {
|
|
85
|
+
headers: jwt ? { authorization: `Bearer ${jwt}` } : undefined,
|
|
86
|
+
});
|
|
60
87
|
return readJson(response);
|
|
61
88
|
}
|
|
62
|
-
async postJson(path, body) {
|
|
89
|
+
async postJson(path, body, jwt) {
|
|
63
90
|
const response = await this.fetchImpl(this.url(path), {
|
|
64
91
|
method: "POST",
|
|
65
|
-
headers: {
|
|
92
|
+
headers: {
|
|
93
|
+
"content-type": "application/json",
|
|
94
|
+
...(jwt ? { authorization: `Bearer ${jwt}` } : {}),
|
|
95
|
+
},
|
|
66
96
|
body: JSON.stringify(body),
|
|
67
97
|
});
|
|
68
98
|
return readJson(response);
|
|
@@ -71,6 +101,22 @@ export class DiscourseClient {
|
|
|
71
101
|
return `${this.baseUrl.replace(/\/$/, "")}/${path.replace(/^\//, "")}`;
|
|
72
102
|
}
|
|
73
103
|
}
|
|
104
|
+
export function websocketEventsUrl(baseUrl, roomId, jwt) {
|
|
105
|
+
const websocketBase = baseUrl
|
|
106
|
+
.replace(/\/$/, "")
|
|
107
|
+
.replace(/^https:/, "wss:")
|
|
108
|
+
.replace(/^http:/, "ws:");
|
|
109
|
+
return `${websocketBase}/v1/rooms/${encodeURIComponent(roomId)}/events/live?access_token=${encodeURIComponent(jwt)}`;
|
|
110
|
+
}
|
|
111
|
+
function addQuery(path, params) {
|
|
112
|
+
const query = new URLSearchParams();
|
|
113
|
+
for (const [key, value] of Object.entries(params)) {
|
|
114
|
+
if (value !== undefined)
|
|
115
|
+
query.set(key, String(value));
|
|
116
|
+
}
|
|
117
|
+
const encoded = query.toString();
|
|
118
|
+
return encoded ? `${path}?${encoded}` : path;
|
|
119
|
+
}
|
|
74
120
|
async function readJson(response) {
|
|
75
121
|
if (!response.ok) {
|
|
76
122
|
const text = await response.text();
|
package/dist/http-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"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"}
|
package/dist/identity.d.ts
CHANGED
|
@@ -1,37 +1,36 @@
|
|
|
1
1
|
export declare const AGENT_ID_PREFIX = "did:agent:";
|
|
2
|
-
export declare const EVENT_ID_PREFIX = "evt_";
|
|
3
2
|
export declare const DEFAULT_LIVE_WRITE_WINDOW_MS = 300000;
|
|
3
|
+
export declare const DEFAULT_NONCE_TTL_MS = 300000;
|
|
4
4
|
export declare const DEFAULT_REQUEST_JWT_TTL_SECS = 300;
|
|
5
|
+
export declare const MAX_NONCE_HEADER = "Max-Seen-Nonce";
|
|
5
6
|
export type AgentId = string;
|
|
6
7
|
export interface Event<P = unknown> {
|
|
7
8
|
protocol: string;
|
|
8
9
|
type: string;
|
|
9
10
|
actor: AgentId;
|
|
10
11
|
created_at: number;
|
|
11
|
-
nonce:
|
|
12
|
+
nonce: number;
|
|
12
13
|
room_id?: string;
|
|
13
14
|
payload: P;
|
|
14
15
|
[key: string]: unknown;
|
|
15
16
|
}
|
|
16
17
|
export interface Envelope<P = unknown> {
|
|
17
|
-
|
|
18
|
+
hash: string;
|
|
18
19
|
event: Event<P>;
|
|
19
20
|
signature: string;
|
|
20
21
|
}
|
|
21
|
-
export
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
protocol: string;
|
|
25
|
-
room_id?: string;
|
|
26
|
-
nonce: string;
|
|
22
|
+
export interface NonceRecord {
|
|
23
|
+
maxNonce: number;
|
|
24
|
+
expiresAt: number;
|
|
27
25
|
}
|
|
28
26
|
export interface NonceStore {
|
|
29
|
-
|
|
27
|
+
checkAndUpdate(actor: AgentId, nonce: number, nowMs: number, ttlMs: number): number;
|
|
28
|
+
maxNonce(actor: AgentId, nowMs: number): number | undefined;
|
|
30
29
|
}
|
|
31
30
|
export interface LiveWriteOptions {
|
|
32
31
|
nowMs?: number;
|
|
33
32
|
windowMs?: number;
|
|
34
|
-
|
|
33
|
+
nonceTtlMs?: number;
|
|
35
34
|
}
|
|
36
35
|
export interface RequestJwtHeader {
|
|
37
36
|
alg: "EdDSA";
|
|
@@ -40,9 +39,6 @@ export interface RequestJwtHeader {
|
|
|
40
39
|
}
|
|
41
40
|
export interface RequestBinding {
|
|
42
41
|
audience: string;
|
|
43
|
-
method: string;
|
|
44
|
-
host: string;
|
|
45
|
-
path: string;
|
|
46
42
|
}
|
|
47
43
|
export interface RequestJwtClaims {
|
|
48
44
|
iss: AgentId;
|
|
@@ -50,10 +46,6 @@ export interface RequestJwtClaims {
|
|
|
50
46
|
aud: string;
|
|
51
47
|
iat: number;
|
|
52
48
|
exp: number;
|
|
53
|
-
jti: string;
|
|
54
|
-
method: string;
|
|
55
|
-
host: string;
|
|
56
|
-
path: string;
|
|
57
49
|
}
|
|
58
50
|
export interface RequestAuthContext extends RequestBinding {
|
|
59
51
|
nowSecs?: number;
|
|
@@ -70,28 +62,34 @@ export declare class AgentSigner {
|
|
|
70
62
|
signRequestJwt(claims: RequestJwtClaims): string;
|
|
71
63
|
}
|
|
72
64
|
export declare class MemoryNonceStore implements NonceStore {
|
|
73
|
-
private readonly
|
|
74
|
-
|
|
65
|
+
private readonly records;
|
|
66
|
+
checkAndUpdate(actor: AgentId, nonce: number, nowMs: number, ttlMs: number): number;
|
|
67
|
+
maxNonce(actor: AgentId, nowMs: number): number | undefined;
|
|
68
|
+
}
|
|
69
|
+
export declare class ClientNonceManager {
|
|
70
|
+
private nextNonceValue;
|
|
71
|
+
constructor(nextNonceValue?: number);
|
|
72
|
+
peek(): number;
|
|
73
|
+
nextNonce(): number;
|
|
74
|
+
observeMaxNonce(maxNonce: number | string | null | undefined): void;
|
|
75
75
|
}
|
|
76
|
-
export declare function createEvent<P>(protocol: string, type: string, actor: AgentId, createdAt: number, nonce:
|
|
76
|
+
export declare function createEvent<P>(protocol: string, type: string, actor: AgentId, createdAt: number, nonce: number, payload: P): Event<P>;
|
|
77
77
|
export declare function withRoomId<P>(event: Event<P>, roomId: string): Event<P>;
|
|
78
78
|
export declare function agentIdFromPublicKey(publicKey: Uint8Array): AgentId;
|
|
79
79
|
export declare function publicKeyBytes(agentId: AgentId): Uint8Array;
|
|
80
80
|
export declare function validateAgentId(agentId: AgentId): AgentId;
|
|
81
81
|
export declare function canonicalEventBytes(event: Event<unknown>): Uint8Array;
|
|
82
|
-
export declare function
|
|
82
|
+
export declare function eventHash(event: Event<unknown>): string;
|
|
83
83
|
export declare function signEvent(secretKey: Uint8Array, event: Event<unknown>): string;
|
|
84
|
-
export declare function
|
|
84
|
+
export declare function verifyEventHash(envelope: Envelope<unknown>): void;
|
|
85
85
|
export declare function verifySignature(envelope: Envelope<unknown>): void;
|
|
86
86
|
export declare function verifyEnvelope(envelope: Envelope<unknown>): void;
|
|
87
87
|
export declare function verifyTimestamp(createdAt: number, nowMs: number, windowMs: number): void;
|
|
88
|
-
export declare function
|
|
89
|
-
export declare function
|
|
90
|
-
export declare function
|
|
91
|
-
export declare function createRequestJwtClaims(agentId: AgentId, binding: RequestBinding, issuedAt: number, ttlSecs: number, jti: string): RequestJwtClaims;
|
|
88
|
+
export declare function verifyLiveEnvelope(envelope: Envelope<unknown>, nonceStore: NonceStore, options?: LiveWriteOptions): number;
|
|
89
|
+
export declare function createRequestBinding(audience: string): RequestBinding;
|
|
90
|
+
export declare function createRequestJwtClaims(agentId: AgentId, binding: RequestBinding, issuedAt: number, ttlSecs: number): RequestJwtClaims;
|
|
92
91
|
export declare function verifyRequestJwt(token: string, context: RequestAuthContext): RequestJwtClaims;
|
|
93
|
-
export declare function verifyRequestJwtLive(token: string, context: RequestAuthContext, nonceStore: NonceStore): RequestJwtClaims;
|
|
94
92
|
export declare function unixTimeMillis(): number;
|
|
95
93
|
export declare function unixTimeSecs(): number;
|
|
96
|
-
export declare function
|
|
94
|
+
export declare function validateNonce(nonce: number): void;
|
|
97
95
|
//# sourceMappingURL=identity.d.ts.map
|
package/dist/identity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,4BAA4B,SAAU,CAAC;AACpD,eAAO,MAAM,oBAAoB,SAAU,CAAC;AAC5C,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AAEjD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,KAAK,CAAC,CAAC,GAAG,OAAO;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,CAAC,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,OAAO;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,cAAc,CACZ,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC;IACV,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC7D;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,KAAK,CAAC;IACX,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,WAAW;IACF,OAAO,CAAC,QAAQ,CAAC,OAAO;IAA5C,OAAO;IAEP,MAAM,CAAC,QAAQ,IAAI,WAAW;IAI9B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW;IAU9C,OAAO,IAAI,OAAO;IAIlB,SAAS,IAAI,UAAU;IAIvB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAQ1C,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;CAuBjD;AAED,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAE3D,cAAc,CACZ,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,MAAM;IAmBT,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAI5D;AAED,qBAAa,kBAAkB;IACjB,OAAO,CAAC,cAAc;gBAAd,cAAc,SAAI;IAItC,IAAI,IAAI,MAAM;IAId,SAAS,IAAI,MAAM;IASnB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI;CAQpE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,GACT,KAAK,CAAC,CAAC,CAAC,CAWV;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAKvE;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAQnE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAkB3D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAGzD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,UAAU,CASrE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,CAKvD;AAED,wBAAgB,SAAS,CACvB,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GACpB,MAAM,CAUR;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAQjE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAgBjE;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAGhE;AAED,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,IAAI,CAON;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC3B,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAcR;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAIrE;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,gBAAgB,CAQlB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,kBAAkB,GAC1B,gBAAgB,CAwDlB;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAOjD"}
|
package/dist/identity.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import canonicalize from "canonicalize";
|
|
2
|
-
import
|
|
3
|
-
import { createHash, randomBytes } from "node:crypto";
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
4
3
|
import nacl from "tweetnacl";
|
|
5
4
|
import { protocolError } from "./errors.js";
|
|
6
5
|
export const AGENT_ID_PREFIX = "did:agent:";
|
|
7
|
-
export const EVENT_ID_PREFIX = "evt_";
|
|
8
6
|
export const DEFAULT_LIVE_WRITE_WINDOW_MS = 300_000;
|
|
7
|
+
export const DEFAULT_NONCE_TTL_MS = 300_000;
|
|
9
8
|
export const DEFAULT_REQUEST_JWT_TTL_SECS = 300;
|
|
10
|
-
const
|
|
9
|
+
export const MAX_NONCE_HEADER = "Max-Seen-Nonce";
|
|
11
10
|
export class AgentSigner {
|
|
12
11
|
keyPair;
|
|
13
12
|
constructor(keyPair) {
|
|
@@ -30,7 +29,7 @@ export class AgentSigner {
|
|
|
30
29
|
}
|
|
31
30
|
signEvent(event) {
|
|
32
31
|
return {
|
|
33
|
-
|
|
32
|
+
hash: eventHash(event),
|
|
34
33
|
event,
|
|
35
34
|
signature: signEvent(this.keyPair.secretKey, event),
|
|
36
35
|
};
|
|
@@ -49,22 +48,54 @@ export class AgentSigner {
|
|
|
49
48
|
}
|
|
50
49
|
}
|
|
51
50
|
export class MemoryNonceStore {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
51
|
+
records = new Map();
|
|
52
|
+
checkAndUpdate(actor, nonce, nowMs, ttlMs) {
|
|
53
|
+
validateNonce(nonce);
|
|
54
|
+
if (ttlMs < 0) {
|
|
55
|
+
throw protocolError("invalid_nonce", "nonce cache ttl must be non-negative");
|
|
56
|
+
}
|
|
57
|
+
const record = this.records.get(actor);
|
|
58
|
+
if (record && record.expiresAt > nowMs && nonce <= record.maxNonce) {
|
|
59
|
+
throw protocolError("nonce_not_greater", `nonce must be greater than accepted max nonce ${record.maxNonce}`);
|
|
60
|
+
}
|
|
61
|
+
this.records.set(actor, { maxNonce: nonce, expiresAt: nowMs + ttlMs });
|
|
62
|
+
return nonce;
|
|
63
|
+
}
|
|
64
|
+
maxNonce(actor, nowMs) {
|
|
65
|
+
const record = this.records.get(actor);
|
|
66
|
+
return record && record.expiresAt > nowMs ? record.maxNonce : undefined;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export class ClientNonceManager {
|
|
70
|
+
nextNonceValue;
|
|
71
|
+
constructor(nextNonceValue = 1) {
|
|
72
|
+
this.nextNonceValue = nextNonceValue;
|
|
73
|
+
validateNonce(nextNonceValue);
|
|
74
|
+
}
|
|
75
|
+
peek() {
|
|
76
|
+
return this.nextNonceValue;
|
|
77
|
+
}
|
|
78
|
+
nextNonce() {
|
|
79
|
+
const nonce = this.nextNonceValue;
|
|
80
|
+
if (!Number.isSafeInteger(nonce + 1)) {
|
|
81
|
+
throw protocolError("invalid_nonce", "nonce counter overflow");
|
|
82
|
+
}
|
|
83
|
+
this.nextNonceValue = nonce + 1;
|
|
84
|
+
return nonce;
|
|
85
|
+
}
|
|
86
|
+
observeMaxNonce(maxNonce) {
|
|
87
|
+
if (maxNonce === null || maxNonce === undefined || maxNonce === "")
|
|
88
|
+
return;
|
|
89
|
+
const parsed = typeof maxNonce === "string" ? Number(maxNonce) : maxNonce;
|
|
90
|
+
validateNonce(parsed);
|
|
91
|
+
if (parsed >= this.nextNonceValue) {
|
|
92
|
+
this.nextNonceValue = parsed + 1;
|
|
62
93
|
}
|
|
63
|
-
this.seen.add(key);
|
|
64
94
|
}
|
|
65
95
|
}
|
|
66
96
|
export function createEvent(protocol, type, actor, createdAt, nonce, payload) {
|
|
67
97
|
validateAgentId(actor);
|
|
98
|
+
validateNonce(nonce);
|
|
68
99
|
return {
|
|
69
100
|
protocol,
|
|
70
101
|
type,
|
|
@@ -84,7 +115,7 @@ export function agentIdFromPublicKey(publicKey) {
|
|
|
84
115
|
if (publicKey.byteLength !== 32) {
|
|
85
116
|
throw protocolError("invalid_public_key", `public key must be 32 bytes, got ${publicKey.byteLength}`);
|
|
86
117
|
}
|
|
87
|
-
return `${AGENT_ID_PREFIX}${
|
|
118
|
+
return `${AGENT_ID_PREFIX}${base64UrlEncode(publicKey)}`;
|
|
88
119
|
}
|
|
89
120
|
export function publicKeyBytes(agentId) {
|
|
90
121
|
const encoded = agentId.startsWith(AGENT_ID_PREFIX)
|
|
@@ -93,7 +124,7 @@ export function publicKeyBytes(agentId) {
|
|
|
93
124
|
if (!encoded) {
|
|
94
125
|
throw protocolError("invalid_agent_id", "agent id must start with did:agent:");
|
|
95
126
|
}
|
|
96
|
-
const bytes =
|
|
127
|
+
const bytes = base64UrlDecodeNoPad(encoded);
|
|
97
128
|
if (bytes.byteLength !== 32) {
|
|
98
129
|
throw protocolError("invalid_public_key", `agent id public key must be 32 bytes, got ${bytes.byteLength}`);
|
|
99
130
|
}
|
|
@@ -110,11 +141,11 @@ export function canonicalEventBytes(event) {
|
|
|
110
141
|
}
|
|
111
142
|
return new TextEncoder().encode(canonical);
|
|
112
143
|
}
|
|
113
|
-
export function
|
|
114
|
-
const digest = createHash("
|
|
144
|
+
export function eventHash(event) {
|
|
145
|
+
const digest = createHash("sha3-256")
|
|
115
146
|
.update(canonicalEventBytes(event))
|
|
116
147
|
.digest();
|
|
117
|
-
return
|
|
148
|
+
return base64UrlEncode(digest);
|
|
118
149
|
}
|
|
119
150
|
export function signEvent(secretKey, event) {
|
|
120
151
|
if (secretKey.byteLength !== 64) {
|
|
@@ -122,10 +153,10 @@ export function signEvent(secretKey, event) {
|
|
|
122
153
|
}
|
|
123
154
|
return base64UrlEncode(nacl.sign.detached(canonicalEventBytes(event), secretKey));
|
|
124
155
|
}
|
|
125
|
-
export function
|
|
126
|
-
const expected =
|
|
127
|
-
if (expected !== envelope.
|
|
128
|
-
throw protocolError("
|
|
156
|
+
export function verifyEventHash(envelope) {
|
|
157
|
+
const expected = eventHash(envelope.event);
|
|
158
|
+
if (expected !== envelope.hash) {
|
|
159
|
+
throw protocolError("invalid_event_hash", `invalid event hash: expected ${expected}, got ${envelope.hash}`);
|
|
129
160
|
}
|
|
130
161
|
}
|
|
131
162
|
export function verifySignature(envelope) {
|
|
@@ -139,7 +170,7 @@ export function verifySignature(envelope) {
|
|
|
139
170
|
}
|
|
140
171
|
}
|
|
141
172
|
export function verifyEnvelope(envelope) {
|
|
142
|
-
|
|
173
|
+
verifyEventHash(envelope);
|
|
143
174
|
verifySignature(envelope);
|
|
144
175
|
}
|
|
145
176
|
export function verifyTimestamp(createdAt, nowMs, windowMs) {
|
|
@@ -147,38 +178,24 @@ export function verifyTimestamp(createdAt, nowMs, windowMs) {
|
|
|
147
178
|
throw protocolError("timestamp_out_of_window", "timestamp is outside the allowed live-write window");
|
|
148
179
|
}
|
|
149
180
|
}
|
|
150
|
-
export function nonceScopeForEvent(event, kind = "actor_protocol") {
|
|
151
|
-
return {
|
|
152
|
-
actor: event.actor,
|
|
153
|
-
protocol: event.protocol,
|
|
154
|
-
room_id: kind === "actor_room" ? event.room_id : undefined,
|
|
155
|
-
nonce: event.nonce,
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
181
|
export function verifyLiveEnvelope(envelope, nonceStore, options = {}) {
|
|
182
|
+
const nowMs = options.nowMs ?? unixTimeMillis();
|
|
159
183
|
verifyEnvelope(envelope);
|
|
160
|
-
verifyTimestamp(envelope.event.created_at,
|
|
161
|
-
nonceStore.
|
|
184
|
+
verifyTimestamp(envelope.event.created_at, nowMs, options.windowMs ?? DEFAULT_LIVE_WRITE_WINDOW_MS);
|
|
185
|
+
return nonceStore.checkAndUpdate(envelope.event.actor, envelope.event.nonce, nowMs, options.nonceTtlMs ?? DEFAULT_NONCE_TTL_MS);
|
|
162
186
|
}
|
|
163
|
-
export function createRequestBinding(audience
|
|
187
|
+
export function createRequestBinding(audience) {
|
|
164
188
|
return {
|
|
165
189
|
audience,
|
|
166
|
-
method: method.toUpperCase(),
|
|
167
|
-
host,
|
|
168
|
-
path,
|
|
169
190
|
};
|
|
170
191
|
}
|
|
171
|
-
export function createRequestJwtClaims(agentId, binding, issuedAt, ttlSecs
|
|
192
|
+
export function createRequestJwtClaims(agentId, binding, issuedAt, ttlSecs) {
|
|
172
193
|
return {
|
|
173
194
|
iss: agentId,
|
|
174
195
|
sub: agentId,
|
|
175
196
|
aud: binding.audience,
|
|
176
197
|
iat: issuedAt,
|
|
177
198
|
exp: issuedAt + ttlSecs,
|
|
178
|
-
jti,
|
|
179
|
-
method: binding.method.toUpperCase(),
|
|
180
|
-
host: binding.host,
|
|
181
|
-
path: binding.path,
|
|
182
199
|
};
|
|
183
200
|
}
|
|
184
201
|
export function verifyRequestJwt(token, context) {
|
|
@@ -202,15 +219,8 @@ export function verifyRequestJwt(token, context) {
|
|
|
202
219
|
if (!nacl.sign.detached.verify(new TextEncoder().encode(signingInput), signature, publicKeyBytes(header.kid))) {
|
|
203
220
|
throw protocolError("invalid_signature", "JWT signature verification failed");
|
|
204
221
|
}
|
|
205
|
-
const method = context.method.toUpperCase();
|
|
206
222
|
if (claims.aud !== context.audience)
|
|
207
223
|
throw protocolError("invalid_jwt_claim", "aud mismatch");
|
|
208
|
-
if (claims.method !== method)
|
|
209
|
-
throw protocolError("invalid_jwt_claim", "method mismatch");
|
|
210
|
-
if (claims.host !== context.host)
|
|
211
|
-
throw protocolError("invalid_jwt_claim", "host mismatch");
|
|
212
|
-
if (claims.path !== context.path)
|
|
213
|
-
throw protocolError("invalid_jwt_claim", "path mismatch");
|
|
214
224
|
const nowSecs = context.nowSecs ?? unixTimeSecs();
|
|
215
225
|
const maxTtlSecs = context.maxTtlSecs ?? DEFAULT_REQUEST_JWT_TTL_SECS;
|
|
216
226
|
if (claims.iat > nowSecs || claims.exp < nowSecs) {
|
|
@@ -221,32 +231,16 @@ export function verifyRequestJwt(token, context) {
|
|
|
221
231
|
}
|
|
222
232
|
return claims;
|
|
223
233
|
}
|
|
224
|
-
export function verifyRequestJwtLive(token, context, nonceStore) {
|
|
225
|
-
const claims = verifyRequestJwt(token, context);
|
|
226
|
-
nonceStore.checkAndInsert({
|
|
227
|
-
actor: claims.iss,
|
|
228
|
-
protocol: REQUEST_AUTH_REPLAY_SCOPE,
|
|
229
|
-
nonce: claims.jti,
|
|
230
|
-
});
|
|
231
|
-
return claims;
|
|
232
|
-
}
|
|
233
234
|
export function unixTimeMillis() {
|
|
234
235
|
return Date.now();
|
|
235
236
|
}
|
|
236
237
|
export function unixTimeSecs() {
|
|
237
238
|
return Math.floor(Date.now() / 1000);
|
|
238
239
|
}
|
|
239
|
-
export function
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
function base58BtcEncode(bytes) {
|
|
243
|
-
return `z${bs58.encode(bytes)}`;
|
|
244
|
-
}
|
|
245
|
-
function base58BtcDecode(value) {
|
|
246
|
-
if (!value.startsWith("z")) {
|
|
247
|
-
throw protocolError("invalid_encoding", "expected base58btc multibase value");
|
|
240
|
+
export function validateNonce(nonce) {
|
|
241
|
+
if (!Number.isSafeInteger(nonce) || nonce < 1) {
|
|
242
|
+
throw protocolError("invalid_nonce", "nonce must be a positive safe integer");
|
|
248
243
|
}
|
|
249
|
-
return bs58.decode(value.slice(1));
|
|
250
244
|
}
|
|
251
245
|
function base64UrlEncode(bytes) {
|
|
252
246
|
return Buffer.from(bytes).toString("base64url");
|
|
@@ -254,4 +248,10 @@ function base64UrlEncode(bytes) {
|
|
|
254
248
|
function base64UrlDecode(value) {
|
|
255
249
|
return new Uint8Array(Buffer.from(value, "base64url"));
|
|
256
250
|
}
|
|
251
|
+
function base64UrlDecodeNoPad(value) {
|
|
252
|
+
if (!/^[A-Za-z0-9_-]+$/.test(value)) {
|
|
253
|
+
throw protocolError("invalid_encoding", "expected base64url without padding");
|
|
254
|
+
}
|
|
255
|
+
return base64UrlDecode(value);
|
|
256
|
+
}
|
|
257
257
|
//# sourceMappingURL=identity.js.map
|
package/dist/identity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
|
package/dist/profile.d.ts
CHANGED
|
@@ -6,27 +6,49 @@ export interface ServiceEndpoint {
|
|
|
6
6
|
url: string;
|
|
7
7
|
protocols?: string[];
|
|
8
8
|
}
|
|
9
|
+
export type ProfileLinkRel = "homepage" | "documentation" | "source_code" | "social" | "browser";
|
|
10
|
+
export interface ProfileLink {
|
|
11
|
+
name: string;
|
|
12
|
+
url: string;
|
|
13
|
+
rel: ProfileLinkRel;
|
|
14
|
+
}
|
|
9
15
|
export interface ProfileUpdatePayload {
|
|
10
|
-
|
|
16
|
+
id?: AgentId;
|
|
17
|
+
agent_id?: AgentId;
|
|
11
18
|
name: string;
|
|
12
19
|
description?: string;
|
|
13
20
|
avatar_url?: string;
|
|
14
21
|
provider?: string;
|
|
15
22
|
capabilities?: string[];
|
|
16
23
|
service_endpoints?: ServiceEndpoint[];
|
|
17
|
-
links?:
|
|
18
|
-
|
|
24
|
+
links?: ProfileLink[];
|
|
25
|
+
extra?: Record<string, unknown>;
|
|
19
26
|
}
|
|
20
|
-
export interface AgentProfile
|
|
27
|
+
export interface AgentProfile {
|
|
28
|
+
id: AgentId;
|
|
29
|
+
name: string;
|
|
30
|
+
description?: string;
|
|
31
|
+
avatar_url?: string;
|
|
32
|
+
provider?: string;
|
|
33
|
+
capabilities?: string[];
|
|
34
|
+
service_endpoints?: ServiceEndpoint[];
|
|
35
|
+
links?: ProfileLink[];
|
|
36
|
+
extra?: Record<string, unknown>;
|
|
21
37
|
updated_at: number;
|
|
22
|
-
|
|
38
|
+
event_id: string;
|
|
39
|
+
}
|
|
40
|
+
export interface ProfileBatchReadRequest {
|
|
41
|
+
ids: AgentId[];
|
|
42
|
+
}
|
|
43
|
+
export interface ProfileBatchReadResponse {
|
|
44
|
+
result: AgentProfile[];
|
|
23
45
|
}
|
|
24
|
-
export interface
|
|
25
|
-
|
|
26
|
-
profile_event?: Envelope<ProfileUpdatePayload>;
|
|
46
|
+
export interface ProfileEventsResponse {
|
|
47
|
+
result: Envelope<ProfileUpdatePayload>[];
|
|
27
48
|
}
|
|
28
49
|
export interface ProfileServiceEndpoints {
|
|
29
50
|
profiles: string;
|
|
51
|
+
profile_batch?: string;
|
|
30
52
|
}
|
|
31
53
|
export interface ProfileServiceDiscovery {
|
|
32
54
|
protocol: string;
|
|
@@ -34,7 +56,7 @@ export interface ProfileServiceDiscovery {
|
|
|
34
56
|
endpoints: ProfileServiceEndpoints;
|
|
35
57
|
features?: string[];
|
|
36
58
|
}
|
|
37
|
-
export declare function profileUpdateEvent(actor: AgentId, createdAt: number, nonce:
|
|
59
|
+
export declare function profileUpdateEvent(actor: AgentId, createdAt: number, nonce: number, payload: ProfileUpdatePayload): Event<ProfileUpdatePayload>;
|
|
38
60
|
export declare function validateProfileUpdate(envelope: Envelope<ProfileUpdatePayload>): void;
|
|
39
61
|
export declare function materializeProfile(envelope: Envelope<ProfileUpdatePayload>): AgentProfile;
|
|
40
62
|
//# sourceMappingURL=profile.d.ts.map
|
package/dist/profile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,KAAK,EAGN,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AACpD,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,KAAK,EAGN,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AACpD,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,eAAe,GACf,aAAa,GACb,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,cAAc,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC;IACtC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC;IACtC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,OAAO,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,uBAAuB,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,oBAAoB,GAC5B,KAAK,CAAC,oBAAoB,CAAC,CAS7B;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GACvC,IAAI,CAsBN;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GACvC,YAAY,CAiBd"}
|