agent-protocols 0.8.0 → 0.9.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/README.md +24 -19
- package/dist/delegation.d.ts +57 -36
- package/dist/delegation.d.ts.map +1 -1
- package/dist/delegation.js +208 -69
- package/dist/delegation.js.map +1 -1
- package/dist/discourse.d.ts +196 -74
- package/dist/discourse.d.ts.map +1 -1
- package/dist/discourse.js +568 -116
- package/dist/discourse.js.map +1 -1
- package/dist/http-client.d.ts +43 -18
- package/dist/http-client.d.ts.map +1 -1
- package/dist/http-client.js +86 -32
- package/dist/http-client.js.map +1 -1
- package/dist/identity.d.ts +100 -3
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +333 -7
- package/dist/identity.js.map +1 -1
- package/dist/local-connector/catalog.d.ts +1 -16
- package/dist/local-connector/catalog.d.ts.map +1 -1
- package/dist/local-connector/catalog.js +53 -71
- package/dist/local-connector/catalog.js.map +1 -1
- package/dist/local-connector/engine.d.ts +55 -32
- package/dist/local-connector/engine.d.ts.map +1 -1
- package/dist/local-connector/engine.js +636 -608
- package/dist/local-connector/engine.js.map +1 -1
- package/dist/local-connector/inputs.d.ts +28 -76
- package/dist/local-connector/inputs.d.ts.map +1 -1
- package/dist/local-connector/inputs.js +19 -1
- package/dist/local-connector/inputs.js.map +1 -1
- package/dist/local-connector/projection.d.ts +24 -9
- package/dist/local-connector/projection.d.ts.map +1 -1
- package/dist/local-connector/projection.js +78 -39
- package/dist/local-connector/projection.js.map +1 -1
- package/dist/local-connector/state.d.ts +10 -3
- package/dist/local-connector/state.d.ts.map +1 -1
- package/dist/local-connector/state.js +3 -0
- package/dist/local-connector/state.js.map +1 -1
- package/dist/local-connector/views.d.ts +36 -12
- package/dist/local-connector/views.d.ts.map +1 -1
- package/dist/local-connector/views.js +49 -31
- package/dist/local-connector/views.js.map +1 -1
- package/dist/profile.d.ts +23 -9
- package/dist/profile.d.ts.map +1 -1
- package/dist/profile.js +120 -3
- package/dist/profile.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,23 +1,34 @@
|
|
|
1
1
|
// Pure room-state projection: the ADP Section 5.1 rules that turn an accepted
|
|
2
|
-
//
|
|
2
|
+
// record into member, timeline, contract, and inbox changes on a
|
|
3
3
|
// LocalRoomState, plus the local-chain validation that gates them and the
|
|
4
4
|
// read-side predicates over room state. Every function is a plain transform
|
|
5
5
|
// over borrowed state — no signing, no network — which is what makes the
|
|
6
6
|
// connector's projection behaviour testable in isolation.
|
|
7
|
-
import {
|
|
7
|
+
import { eventAdvancesRoomHead, eventRequiresRoomHead, eventType, isRedactedRecord, isTypeDef, } from "../discourse.js";
|
|
8
8
|
import { TOOL_ROOM_SEND_MESSAGE } from "./catalog.js";
|
|
9
9
|
import { invalidPayload, isRecord } from "./internal.js";
|
|
10
|
+
/** Type of a record's event, including a redacted record's kept type. */
|
|
11
|
+
export function recordType(record) {
|
|
12
|
+
return isRedactedRecord(record) ? record.envelope.type : record.envelope.event.type;
|
|
13
|
+
}
|
|
10
14
|
export function recordAdvancesRoomHead(room, record) {
|
|
11
|
-
return eventTypeAdvancesRoomHead(room, record
|
|
15
|
+
return eventTypeAdvancesRoomHead(room, recordType(record));
|
|
12
16
|
}
|
|
13
|
-
/**
|
|
14
|
-
* `signal`-kind records — including the membership events — only anchor. */
|
|
17
|
+
/** `genesis`, `contract`, and `control` records advance the room head. */
|
|
15
18
|
export function eventTypeAdvancesRoomHead(room, type) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return
|
|
19
|
+
return eventAdvancesRoomHead(type, room.room.types ?? []);
|
|
20
|
+
}
|
|
21
|
+
/** Message and control writes — `message.create` and `message`/`control` kinds — must be based at or after the head. */
|
|
22
|
+
export function eventTypeRequiresRoomHead(room, type) {
|
|
23
|
+
return eventRequiresRoomHead(type, room.room.types ?? []);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Whether a message or control write based on `base` still passes the ADP
|
|
27
|
+
* Section 5.1 head check against the verified local head: the base is the
|
|
28
|
+
* head itself or a later record.
|
|
29
|
+
*/
|
|
30
|
+
export function baseIsCurrent(room, base) {
|
|
31
|
+
return base[0] > room.headSeq || (base[0] === room.headSeq && base[1] === room.headHash);
|
|
21
32
|
}
|
|
22
33
|
export function materializeCreator(room) {
|
|
23
34
|
const creator = room.room.creator ?? room.room.envelope?.event.actor;
|
|
@@ -35,7 +46,7 @@ export function materializeCreator(room) {
|
|
|
35
46
|
}
|
|
36
47
|
}
|
|
37
48
|
/** A present field replaces the current value; an empty value clears it. */
|
|
38
|
-
function applyRoomUpdate(room, payload,
|
|
49
|
+
function applyRoomUpdate(room, payload, acceptedAt) {
|
|
39
50
|
const response = room.room;
|
|
40
51
|
if (payload.topic !== undefined)
|
|
41
52
|
response.topic = payload.topic;
|
|
@@ -58,7 +69,7 @@ function applyRoomUpdate(room, payload, receivedAt) {
|
|
|
58
69
|
response.start_time = payload.start_time;
|
|
59
70
|
// A scheduled room whose new start_time is at or before acceptance becomes
|
|
60
71
|
// active.
|
|
61
|
-
if (response.status === "scheduled" && payload.start_time <=
|
|
72
|
+
if (response.status === "scheduled" && payload.start_time <= acceptedAt) {
|
|
62
73
|
response.status = "active";
|
|
63
74
|
}
|
|
64
75
|
}
|
|
@@ -83,10 +94,20 @@ export function validateNextRecord(room, record) {
|
|
|
83
94
|
throw invalidPayload("record pre_hash mismatch");
|
|
84
95
|
}
|
|
85
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Section 5.1 base check against local state: head-bound records must name
|
|
99
|
+
* the current head; contract and signal records must name an earlier accepted
|
|
100
|
+
* record. A redacted record's base is not visible and is not checked.
|
|
101
|
+
*/
|
|
86
102
|
export function validateRecordBasePrecondition(room, record) {
|
|
103
|
+
if (isRedactedRecord(record))
|
|
104
|
+
return;
|
|
87
105
|
const event = record.envelope.event;
|
|
88
106
|
if (event.type === eventType.ROOM_CREATE)
|
|
89
107
|
return;
|
|
108
|
+
if (event.type === eventType.ROOM_JOIN_REQUEST) {
|
|
109
|
+
throw invalidPayload("a room.join.request is never a record");
|
|
110
|
+
}
|
|
90
111
|
const baseSeq = event.base_seq;
|
|
91
112
|
if (baseSeq === undefined) {
|
|
92
113
|
throw invalidPayload("record event requires base_seq");
|
|
@@ -98,13 +119,23 @@ export function validateRecordBasePrecondition(room, record) {
|
|
|
98
119
|
if (baseSeq >= record.seq) {
|
|
99
120
|
throw invalidPayload("record base_seq must reference an earlier accepted record");
|
|
100
121
|
}
|
|
101
|
-
if (
|
|
122
|
+
if (eventTypeRequiresRoomHead(room, event.type) && baseSeq < room.headSeq) {
|
|
123
|
+
throw invalidPayload("record base_seq must be at or after the room head");
|
|
124
|
+
}
|
|
125
|
+
if (baseSeq === room.headSeq) {
|
|
126
|
+
if (room.headHash !== baseHash) {
|
|
127
|
+
throw invalidPayload("record base_hash does not match the anchored record");
|
|
128
|
+
}
|
|
102
129
|
return;
|
|
103
|
-
|
|
104
|
-
|
|
130
|
+
}
|
|
131
|
+
const anchor = room.records.find((existing) => existing.seq === baseSeq);
|
|
132
|
+
if (anchor && anchor.hash !== baseHash) {
|
|
133
|
+
throw invalidPayload("record base_hash does not match the anchored record");
|
|
105
134
|
}
|
|
106
135
|
}
|
|
107
136
|
export function applyRecordProjection(room, record, item, activeAgent, inbox) {
|
|
137
|
+
if (isRedactedRecord(record))
|
|
138
|
+
return;
|
|
108
139
|
const event = record.envelope.event;
|
|
109
140
|
switch (event.type) {
|
|
110
141
|
case eventType.ROOM_JOIN: {
|
|
@@ -114,6 +145,7 @@ export function applyRecordProjection(room, record, item, activeAgent, inbox) {
|
|
|
114
145
|
role: payload.role,
|
|
115
146
|
status: "active",
|
|
116
147
|
is_creator: false,
|
|
148
|
+
perspective: payload.perspective,
|
|
117
149
|
joined_seq: record.seq,
|
|
118
150
|
last_event_seq: record.seq,
|
|
119
151
|
});
|
|
@@ -142,7 +174,7 @@ export function applyRecordProjection(room, record, item, activeAgent, inbox) {
|
|
|
142
174
|
}
|
|
143
175
|
case eventType.ROOM_UPDATE: {
|
|
144
176
|
const payload = event.payload;
|
|
145
|
-
applyRoomUpdate(room, payload, record.
|
|
177
|
+
applyRoomUpdate(room, payload, record.accepted_at);
|
|
146
178
|
inbox.push(inboxFromItem("room.state.changed", "normal", item, "room_updated", false));
|
|
147
179
|
break;
|
|
148
180
|
}
|
|
@@ -190,15 +222,27 @@ export function applyRecordProjection(room, record, item, activeAgent, inbox) {
|
|
|
190
222
|
room.room.types = [];
|
|
191
223
|
room.room.types = room.room.types.filter((existing) => existing.type !== declaration.type);
|
|
192
224
|
room.room.types.push(declaration);
|
|
193
|
-
inbox.push(inboxFromItem("room.state.changed", "normal", item, "type_registry_changed", false));
|
|
194
225
|
}
|
|
226
|
+
inbox.push(inboxFromItem("room.state.changed", "normal", item, "type_registry_changed", false));
|
|
195
227
|
break;
|
|
196
228
|
}
|
|
197
229
|
case eventType.ROOM_JOIN_REVIEW: {
|
|
198
230
|
const payload = event.payload;
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
231
|
+
const request = payload.request.event;
|
|
232
|
+
if (payload.decision === "approve" && payload.role !== undefined) {
|
|
233
|
+
// The review record is the approved applicant's membership event.
|
|
234
|
+
room.members.set(request.actor, {
|
|
235
|
+
agent_id: request.actor,
|
|
236
|
+
role: payload.role,
|
|
237
|
+
status: "active",
|
|
238
|
+
is_creator: false,
|
|
239
|
+
perspective: request.payload.perspective,
|
|
240
|
+
joined_seq: record.seq,
|
|
241
|
+
last_event_seq: record.seq,
|
|
242
|
+
});
|
|
243
|
+
if (request.actor === activeAgent) {
|
|
244
|
+
inbox.push(inboxFromItem("room.join.approved", "high", item, "join_approved", false));
|
|
245
|
+
}
|
|
202
246
|
}
|
|
203
247
|
break;
|
|
204
248
|
}
|
|
@@ -223,7 +267,7 @@ export function applyRecordProjection(room, record, item, activeAgent, inbox) {
|
|
|
223
267
|
break;
|
|
224
268
|
}
|
|
225
269
|
case "steer.create": {
|
|
226
|
-
if (steerTargetsAgent(
|
|
270
|
+
if (steerTargetsAgent(item.mentions ?? [], activeAgent)) {
|
|
227
271
|
inbox.push(inboxFromItem("room.steer", "high", item, "steer", true));
|
|
228
272
|
}
|
|
229
273
|
break;
|
|
@@ -237,29 +281,22 @@ function activeTurnFromItem(item) {
|
|
|
237
281
|
if (!isRecord(payload))
|
|
238
282
|
return undefined;
|
|
239
283
|
const speaker = payload.speaker;
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
const turnRaw = payload.turn_id;
|
|
243
|
-
if (turnRaw === undefined)
|
|
284
|
+
const turnId = payload.turn_id;
|
|
285
|
+
if (typeof speaker !== "string" || typeof turnId !== "number")
|
|
244
286
|
return undefined;
|
|
245
|
-
const turnId = typeof turnRaw === "string" ? turnRaw : JSON.stringify(turnRaw);
|
|
246
|
-
const instructionRaw = payload.intent ?? payload.topic ?? payload.reason;
|
|
247
287
|
return {
|
|
248
288
|
turn_id: turnId,
|
|
249
289
|
speaker,
|
|
250
290
|
assigned_seq: item.seq,
|
|
251
291
|
expires_at: typeof payload.expires_at === "number" ? payload.expires_at : undefined,
|
|
252
|
-
|
|
292
|
+
intent: typeof payload.intent === "string" ? payload.intent : undefined,
|
|
293
|
+
topic: typeof payload.topic === "string" ? payload.topic : undefined,
|
|
253
294
|
source_event_id: item.event_id,
|
|
254
295
|
};
|
|
255
296
|
}
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
const target = payload.target;
|
|
260
|
-
if (typeof target !== "string")
|
|
261
|
-
return true;
|
|
262
|
-
return target === activeAgent;
|
|
297
|
+
/** A steer addresses every member when its `mentions` are empty, and otherwise only the mentioned agents. */
|
|
298
|
+
function steerTargetsAgent(mentions, activeAgent) {
|
|
299
|
+
return mentions.length === 0 || mentions.includes(activeAgent);
|
|
263
300
|
}
|
|
264
301
|
function inboxFromItem(kind, priority, item, reason, requiresResponse) {
|
|
265
302
|
return {
|
|
@@ -270,35 +307,37 @@ function inboxFromItem(kind, priority, item, reason, requiresResponse) {
|
|
|
270
307
|
seq: item.seq,
|
|
271
308
|
event_id: item.event_id,
|
|
272
309
|
actor: item.actor,
|
|
273
|
-
created_at: item.
|
|
310
|
+
created_at: item.accepted_at,
|
|
274
311
|
requires_response: requiresResponse,
|
|
275
312
|
reason,
|
|
276
313
|
suggested_tools: requiresResponse ? [TOOL_ROOM_SEND_MESSAGE] : [],
|
|
277
314
|
message: { summary: item.summary },
|
|
278
315
|
};
|
|
279
316
|
}
|
|
317
|
+
/** Pending, due deferred, and claimed-but-expired entries are ready. */
|
|
280
318
|
export function inboxEntryReady(entry, nowMs) {
|
|
281
319
|
switch (entry.state.kind) {
|
|
282
320
|
case "pending":
|
|
283
321
|
return true;
|
|
284
322
|
case "deferred":
|
|
323
|
+
case "claimed":
|
|
285
324
|
return entry.state.until <= nowMs;
|
|
286
325
|
default:
|
|
287
326
|
return false;
|
|
288
327
|
}
|
|
289
328
|
}
|
|
290
|
-
export function membershipFilter(room, agentId, membership) {
|
|
329
|
+
export function membershipFilter(room, agentId, membership, pending) {
|
|
291
330
|
switch (membership ?? "all") {
|
|
292
331
|
case "all":
|
|
293
332
|
return true;
|
|
294
333
|
case "member":
|
|
295
|
-
return room.members.
|
|
334
|
+
return room.members.get(agentId)?.status === "active";
|
|
296
335
|
case "creator":
|
|
297
336
|
return room.members.get(agentId)?.is_creator ?? false;
|
|
298
337
|
case "moderator":
|
|
299
338
|
return room.members.get(agentId)?.role === "moderator";
|
|
300
339
|
case "pending":
|
|
301
|
-
return
|
|
340
|
+
return pending;
|
|
302
341
|
default:
|
|
303
342
|
return true;
|
|
304
343
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../src/local-connector/projection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../src/local-connector/projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AgentStatus,
|
|
1
|
+
import { AgentStatus, ArchiveRecord, RoomJoinRequest, RoomResponse } from "../discourse.js";
|
|
2
2
|
import { AgentId } from "../identity.js";
|
|
3
3
|
import { AgentProfile } from "../profile.js";
|
|
4
4
|
import { ActiveTurn, AgentProtocolsHost, HeldDraft, InboxItem, RoomMemberView, TimelineItem } from "./views.js";
|
|
@@ -15,12 +15,15 @@ export interface LocalRoomState {
|
|
|
15
15
|
room: RoomResponse;
|
|
16
16
|
headSeq: number;
|
|
17
17
|
headHash?: string;
|
|
18
|
+
/** Presented head for this connector session (local connector Section 4.2). */
|
|
19
|
+
presentedSeq?: number;
|
|
20
|
+
presentedHash?: string;
|
|
18
21
|
syncedSeq: number;
|
|
19
22
|
syncedHash?: string;
|
|
20
23
|
subscribed: boolean;
|
|
21
24
|
members: Map<AgentId, RoomMemberView>;
|
|
22
25
|
timeline: TimelineItem[];
|
|
23
|
-
records:
|
|
26
|
+
records: ArchiveRecord[];
|
|
24
27
|
readSeq: number;
|
|
25
28
|
activeTurn?: ActiveTurn;
|
|
26
29
|
}
|
|
@@ -28,6 +31,7 @@ export type InboxEntryState = {
|
|
|
28
31
|
kind: "pending";
|
|
29
32
|
} | {
|
|
30
33
|
kind: "claimed";
|
|
34
|
+
until: number;
|
|
31
35
|
} | {
|
|
32
36
|
kind: "deferred";
|
|
33
37
|
until: number;
|
|
@@ -58,7 +62,10 @@ export declare class LocalConnectorState {
|
|
|
58
62
|
hosts: Map<string, AgentProtocolsHost>;
|
|
59
63
|
rooms: Map<string, LocalRoomState>;
|
|
60
64
|
profiles: Map<string, AgentProfile>;
|
|
61
|
-
|
|
65
|
+
/** Join requests visible to this agent as a reviewer, by room key. */
|
|
66
|
+
joinRequests: Map<string, RoomJoinRequest[]>;
|
|
67
|
+
/** This agent's own join requests, by room key. */
|
|
68
|
+
ownJoinRequests: Map<string, RoomJoinRequest>;
|
|
62
69
|
agentStatuses: Map<string, Map<string, AgentStatus>>;
|
|
63
70
|
inbox: Map<string, InboxEntry>;
|
|
64
71
|
drafts: Map<string, HeldDraftEntry>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/local-connector/state.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/local-connector/state.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,aAAa,EACb,eAAe,EACf,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEzE;yEACyE;AACzE,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACtC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC;AAE7B,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,eAAe,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,oBAAoB,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,KAAK,kCAAyC;IAC9C,KAAK,8BAAqC;IAC1C,QAAQ,4BAAoC;IAC5C,sEAAsE;IACtE,YAAY,iCAAwC;IACpD,mDAAmD;IACnD,eAAe,+BAAsC;IACrD,aAAa,wCAAgD;IAC7D,KAAK,0BAAiC;IACtC,MAAM,8BAAqC;CAC5C"}
|
|
@@ -10,7 +10,10 @@ export class LocalConnectorState {
|
|
|
10
10
|
hosts = new Map();
|
|
11
11
|
rooms = new Map();
|
|
12
12
|
profiles = new Map();
|
|
13
|
+
/** Join requests visible to this agent as a reviewer, by room key. */
|
|
13
14
|
joinRequests = new Map();
|
|
15
|
+
/** This agent's own join requests, by room key. */
|
|
16
|
+
ownJoinRequests = new Map();
|
|
14
17
|
agentStatuses = new Map();
|
|
15
18
|
inbox = new Map();
|
|
16
19
|
drafts = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/local-connector/state.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,gFAAgF;AAChF,0EAA0E;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/local-connector/state.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,gFAAgF;AAChF,0EAA0E;AAgE1E;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IAC9B,KAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;IAC9C,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC1C,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC5C,sEAAsE;IACtE,YAAY,GAAG,IAAI,GAAG,EAA6B,CAAC;IACpD,mDAAmD;IACnD,eAAe,GAAG,IAAI,GAAG,EAA2B,CAAC;IACrD,aAAa,GAAG,IAAI,GAAG,EAAqC,CAAC;IAC7D,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IACtC,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;CAC5C"}
|
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
import { AgentStatus, Role, RoomPolicy, RoomResponse, RoomState, ServerRecord, TypeDef, Visibility } from "../discourse.js";
|
|
1
|
+
import { AgentStatus, ArchiveRecord, RecordClass, Role, RoomPolicy, RoomResponse, RoomState, ServerRecord, TypeDef, Visibility } from "../discourse.js";
|
|
2
2
|
import { AgentId } from "../identity.js";
|
|
3
3
|
import { LocalConnectorToolName } from "./catalog.js";
|
|
4
|
+
export type { DelegationVerdict } from "../delegation.js";
|
|
4
5
|
/**
|
|
5
6
|
* Connector sync marker for one room. Connectors key local room state by
|
|
6
7
|
* `(host, room_id)`: ADP room IDs are only recommended to be globally unique
|
|
7
8
|
* and a connector can be configured with multiple hosts. `head_seq` /
|
|
8
9
|
* `head_hash` are the latest locally verified head-advancing record per ADP
|
|
9
|
-
* Section 5.1
|
|
10
|
+
* Section 5.1; `presented_seq` / `presented_hash` are the latest head the agent
|
|
11
|
+
* has been shown with every record before it, the default write base.
|
|
10
12
|
*/
|
|
11
13
|
export interface SyncState {
|
|
12
14
|
host: string;
|
|
13
15
|
room_id: string;
|
|
14
16
|
head_seq: number;
|
|
15
17
|
head_hash: string;
|
|
18
|
+
presented_seq?: number;
|
|
19
|
+
presented_hash?: string;
|
|
16
20
|
synced_seq: number;
|
|
17
21
|
remote_seq: number;
|
|
18
22
|
subscribed: boolean;
|
|
@@ -51,16 +55,22 @@ export interface TimelineItem {
|
|
|
51
55
|
seq: number;
|
|
52
56
|
event_id: string;
|
|
53
57
|
type: string;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
/** The record's ADP class: freshness class for built-ins, registry kind for custom types. */
|
|
59
|
+
kind: RecordClass;
|
|
60
|
+
/** Absent on redacted records. */
|
|
61
|
+
actor?: AgentId;
|
|
62
|
+
/** Absent on redacted records. */
|
|
63
|
+
created_at?: number;
|
|
64
|
+
accepted_at: number;
|
|
65
|
+
/** Informative excerpt; its derivation is connector-defined. */
|
|
58
66
|
summary: string;
|
|
59
67
|
content_type?: string;
|
|
60
68
|
content?: unknown;
|
|
61
69
|
mentions?: AgentId[];
|
|
62
70
|
references?: string[];
|
|
63
|
-
|
|
71
|
+
/** Absent on redacted records. */
|
|
72
|
+
payload?: unknown;
|
|
73
|
+
redacted?: true;
|
|
64
74
|
}
|
|
65
75
|
export type InboxKind = "room.message.new" | "room.mention" | "room.turn.assigned" | "room.steer" | "room.join.requested" | "room.join.approved" | "room.role.changed" | "room.member.removed" | "room.state.changed" | "room.event.custom";
|
|
66
76
|
export type InboxPriority = "low" | "normal" | "high";
|
|
@@ -81,7 +91,7 @@ export interface InboxItem {
|
|
|
81
91
|
}
|
|
82
92
|
export type HeadMismatchPolicy = "hold" | "reject" | "send_anyway";
|
|
83
93
|
export type HeldDraftKind = "message" | "event";
|
|
84
|
-
export type DraftAction = "revise" | "
|
|
94
|
+
export type DraftAction = "revise" | "send" | "drop";
|
|
85
95
|
export interface HeldDraft {
|
|
86
96
|
id: string;
|
|
87
97
|
room_id: string;
|
|
@@ -94,12 +104,14 @@ export interface HeldDraft {
|
|
|
94
104
|
reason: string;
|
|
95
105
|
options?: DraftAction[];
|
|
96
106
|
}
|
|
107
|
+
/** The latest accepted `turn.update`; fields are copied from its payload. */
|
|
97
108
|
export interface ActiveTurn {
|
|
98
|
-
turn_id:
|
|
109
|
+
turn_id: number;
|
|
99
110
|
speaker: AgentId;
|
|
100
111
|
assigned_seq: number;
|
|
101
|
-
expires_at?: number
|
|
102
|
-
|
|
112
|
+
expires_at?: number;
|
|
113
|
+
intent?: string;
|
|
114
|
+
topic?: string;
|
|
103
115
|
source_event_id: string;
|
|
104
116
|
}
|
|
105
117
|
export interface RoomSummary {
|
|
@@ -165,5 +177,17 @@ export declare function roomSummaryFromResponse(host: string, room: RoomResponse
|
|
|
165
177
|
unreadCount?: number;
|
|
166
178
|
pendingInboxCount?: number;
|
|
167
179
|
}): RoomSummary;
|
|
168
|
-
|
|
180
|
+
/**
|
|
181
|
+
* Projects a record into a timeline item. `types` is the room's materialized
|
|
182
|
+
* registry; a custom type missing from it is reported as `message`.
|
|
183
|
+
*/
|
|
184
|
+
export declare function timelineItemFromRecord(record: ArchiveRecord, types?: readonly TypeDef[]): TimelineItem;
|
|
185
|
+
/** Maximum summary length in Unicode code points. */
|
|
186
|
+
export declare const SUMMARY_MAX_CHARS = 160;
|
|
187
|
+
/**
|
|
188
|
+
* Informative summary shared by the SDK connectors: a string message body, or
|
|
189
|
+
* the first non-empty summary-like payload field, truncated to 160 code points
|
|
190
|
+
* with a trailing ellipsis; otherwise the event type.
|
|
191
|
+
*/
|
|
192
|
+
export declare function summarizePayload(type: string, payload: unknown): string;
|
|
169
193
|
//# sourceMappingURL=views.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/local-connector/views.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/local-connector/views.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Structured result types the connector returns to callers, plus the pure
|
|
2
2
|
// projection that turns a ServerRecord into a TimelineItem. These are the
|
|
3
3
|
// shapes a caller reads back; they carry no signing keys or live handles.
|
|
4
|
-
import { eventType, } from "../discourse.js";
|
|
4
|
+
import { eventType, isRedactedRecord, recordClass, } from "../discourse.js";
|
|
5
5
|
import { isRecord, normalizeHost } from "./internal.js";
|
|
6
6
|
export function syncStateFromRoomResponse(host, room, options = {}) {
|
|
7
7
|
const head = room.head ?? { seq: room.seq, hash: room.hash };
|
|
@@ -34,46 +34,65 @@ export function roomSummaryFromResponse(host, room, options = {}) {
|
|
|
34
34
|
pending_inbox_count: options.pendingInboxCount ?? 0,
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Projects a record into a timeline item. `types` is the room's materialized
|
|
39
|
+
* registry; a custom type missing from it is reported as `message`.
|
|
40
|
+
*/
|
|
41
|
+
export function timelineItemFromRecord(record, types = []) {
|
|
42
|
+
if (isRedactedRecord(record)) {
|
|
43
|
+
const type = record.envelope.type;
|
|
44
|
+
return {
|
|
45
|
+
room_id: record.room_id,
|
|
46
|
+
seq: record.seq,
|
|
47
|
+
event_id: record.envelope.hash,
|
|
48
|
+
type,
|
|
49
|
+
kind: recordClass(type, types) ?? "message",
|
|
50
|
+
accepted_at: record.accepted_at,
|
|
51
|
+
summary: "[redacted]",
|
|
52
|
+
redacted: true,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
38
55
|
const event = record.envelope.event;
|
|
39
56
|
const payload = event.payload;
|
|
40
|
-
const message = messagePayload(payload);
|
|
57
|
+
const message = event.type === eventType.MESSAGE_CREATE ? messagePayload(payload) : undefined;
|
|
41
58
|
return {
|
|
42
59
|
room_id: record.room_id,
|
|
43
60
|
seq: record.seq,
|
|
44
61
|
event_id: record.envelope.hash,
|
|
45
62
|
type: event.type,
|
|
46
|
-
kind:
|
|
63
|
+
kind: recordClass(event.type, types) ?? "message",
|
|
47
64
|
actor: event.actor,
|
|
48
65
|
created_at: event.created_at,
|
|
49
|
-
|
|
66
|
+
accepted_at: record.accepted_at,
|
|
50
67
|
summary: summarizePayload(event.type, payload),
|
|
51
68
|
content_type: message?.content_type,
|
|
52
69
|
content: message?.content,
|
|
53
70
|
mentions: event.mentions ?? [],
|
|
54
|
-
references:
|
|
71
|
+
references: referencesOf(payload),
|
|
55
72
|
payload,
|
|
56
73
|
};
|
|
57
74
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
function summarizePayload(type, payload) {
|
|
75
|
+
/** Maximum summary length in Unicode code points. */
|
|
76
|
+
export const SUMMARY_MAX_CHARS = 160;
|
|
77
|
+
const SUMMARY_FIELDS = ["summary", "title", "instruction", "intent", "question", "reason", "state"];
|
|
78
|
+
/**
|
|
79
|
+
* Informative summary shared by the SDK connectors: a string message body, or
|
|
80
|
+
* the first non-empty summary-like payload field, truncated to 160 code points
|
|
81
|
+
* with a trailing ellipsis; otherwise the event type.
|
|
82
|
+
*/
|
|
83
|
+
export function summarizePayload(type, payload) {
|
|
68
84
|
if (type === eventType.MESSAGE_CREATE) {
|
|
69
85
|
const message = messagePayload(payload);
|
|
70
|
-
if (typeof message?.content === "string")
|
|
71
|
-
return truncate(message.content,
|
|
86
|
+
if (typeof message?.content === "string" && message.content.trim() !== "") {
|
|
87
|
+
return truncate(message.content, SUMMARY_MAX_CHARS);
|
|
88
|
+
}
|
|
72
89
|
}
|
|
73
90
|
if (isRecord(payload)) {
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
91
|
+
for (const field of SUMMARY_FIELDS) {
|
|
92
|
+
const value = payload[field];
|
|
93
|
+
if (typeof value === "string" && value.trim() !== "") {
|
|
94
|
+
return truncate(value, SUMMARY_MAX_CHARS);
|
|
95
|
+
}
|
|
77
96
|
}
|
|
78
97
|
}
|
|
79
98
|
return type;
|
|
@@ -83,16 +102,15 @@ function messagePayload(payload) {
|
|
|
83
102
|
return undefined;
|
|
84
103
|
if (typeof payload.content_type !== "string")
|
|
85
104
|
return undefined;
|
|
86
|
-
return {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
extra: isRecord(payload.extra) ? payload.extra : undefined,
|
|
93
|
-
};
|
|
105
|
+
return { content_type: payload.content_type, content: payload.content };
|
|
106
|
+
}
|
|
107
|
+
function referencesOf(payload) {
|
|
108
|
+
if (!isRecord(payload) || !Array.isArray(payload.references))
|
|
109
|
+
return [];
|
|
110
|
+
return payload.references.filter((value) => typeof value === "string");
|
|
94
111
|
}
|
|
95
|
-
function truncate(value,
|
|
96
|
-
|
|
112
|
+
function truncate(value, maxChars) {
|
|
113
|
+
const chars = [...value];
|
|
114
|
+
return chars.length <= maxChars ? value : `${chars.slice(0, maxChars - 1).join("")}…`;
|
|
97
115
|
}
|
|
98
116
|
//# sourceMappingURL=views.js.map
|