agent-protocols 0.7.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.
Files changed (48) hide show
  1. package/README.md +38 -9
  2. package/dist/delegation.d.ts +98 -29
  3. package/dist/delegation.d.ts.map +1 -1
  4. package/dist/delegation.js +377 -51
  5. package/dist/delegation.js.map +1 -1
  6. package/dist/discourse.d.ts +196 -74
  7. package/dist/discourse.d.ts.map +1 -1
  8. package/dist/discourse.js +568 -116
  9. package/dist/discourse.js.map +1 -1
  10. package/dist/errors.d.ts.map +1 -1
  11. package/dist/errors.js.map +1 -1
  12. package/dist/http-client.d.ts +47 -17
  13. package/dist/http-client.d.ts.map +1 -1
  14. package/dist/http-client.js +118 -39
  15. package/dist/http-client.js.map +1 -1
  16. package/dist/identity.d.ts +101 -4
  17. package/dist/identity.d.ts.map +1 -1
  18. package/dist/identity.js +334 -8
  19. package/dist/identity.js.map +1 -1
  20. package/dist/local-connector/catalog.d.ts +1 -16
  21. package/dist/local-connector/catalog.d.ts.map +1 -1
  22. package/dist/local-connector/catalog.js +53 -63
  23. package/dist/local-connector/catalog.js.map +1 -1
  24. package/dist/local-connector/engine.d.ts +57 -33
  25. package/dist/local-connector/engine.d.ts.map +1 -1
  26. package/dist/local-connector/engine.js +652 -607
  27. package/dist/local-connector/engine.js.map +1 -1
  28. package/dist/local-connector/inputs.d.ts +29 -76
  29. package/dist/local-connector/inputs.d.ts.map +1 -1
  30. package/dist/local-connector/inputs.js +19 -1
  31. package/dist/local-connector/inputs.js.map +1 -1
  32. package/dist/local-connector/projection.d.ts +24 -9
  33. package/dist/local-connector/projection.d.ts.map +1 -1
  34. package/dist/local-connector/projection.js +79 -40
  35. package/dist/local-connector/projection.js.map +1 -1
  36. package/dist/local-connector/state.d.ts +10 -3
  37. package/dist/local-connector/state.d.ts.map +1 -1
  38. package/dist/local-connector/state.js +3 -0
  39. package/dist/local-connector/state.js.map +1 -1
  40. package/dist/local-connector/views.d.ts +36 -12
  41. package/dist/local-connector/views.d.ts.map +1 -1
  42. package/dist/local-connector/views.js +49 -31
  43. package/dist/local-connector/views.js.map +1 -1
  44. package/dist/profile.d.ts +23 -9
  45. package/dist/profile.d.ts.map +1 -1
  46. package/dist/profile.js +120 -3
  47. package/dist/profile.js.map +1 -1
  48. package/package.json +5 -5
@@ -1,23 +1,34 @@
1
- // Pure room-state projection: the ADP Section 6.1 rules that turn an accepted
2
- // ServerRecord into member, timeline, contract, and inbox changes on a
1
+ // Pure room-state projection: the ADP Section 5.1 rules that turn an accepted
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 { builtinEventClass, eventType, isTypeDef, } from "../discourse.js";
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.envelope.event.type);
15
+ return eventTypeAdvancesRoomHead(room, recordType(record));
12
16
  }
13
- /** Lifecycle, `message`-, and `control`-kind records advance the room head;
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
- const cls = builtinEventClass(type);
17
- if (cls !== undefined)
18
- return cls !== "signal";
19
- const def = room.room.types?.find((definition) => definition.type === type);
20
- return def === undefined || def.kind !== "signal";
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, receivedAt) {
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 <= receivedAt) {
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 (!recordAdvancesRoomHead(room, record))
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
- if (room.headSeq !== baseSeq || room.headHash !== baseHash) {
104
- throw invalidPayload("record base_seq/base_hash must match current room head");
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.received_at);
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
- if (payload.request.applicant === activeAgent &&
200
- payload.decision === "approve") {
201
- inbox.push(inboxFromItem("room.join.approved", "high", item, "join_approved", true));
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(event.payload, activeAgent)) {
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
- if (typeof speaker !== "string")
241
- return undefined;
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
- instruction: typeof instructionRaw === "string" ? instructionRaw : undefined,
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
- function steerTargetsAgent(payload, activeAgent) {
257
- if (!isRecord(payload))
258
- return true;
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.received_at,
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.has(agentId);
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 false;
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, RoomJoinRequestStatus, RoomResponse, ServerRecord } from "../discourse.js";
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: ServerRecord[];
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
- joinRequests: Map<string, RoomJoinRequestStatus[]>;
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,qBAAqB,EACrB,YAAY,EACZ,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,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,YAAY,EAAE,CAAC;IACxB,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,CAAA;CAAE,GACnB;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,YAAY,uCAA8C;IAC1D,aAAa,wCAAgD;IAC7D,KAAK,0BAAiC;IACtC,MAAM,8BAAqC;CAC5C"}
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;AA6D1E;;;;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,YAAY,GAAG,IAAI,GAAG,EAAmC,CAAC;IAC1D,aAAa,GAAG,IAAI,GAAG,EAAqC,CAAC;IAC7D,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IACtC,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;CAC5C"}
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 6.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
- kind: string;
55
- actor: AgentId;
56
- created_at: number;
57
- received_at: number;
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
- payload: unknown;
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" | "send_as_is" | "stay_silent" | "send_anyway";
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: string;
109
+ turn_id: number;
99
110
  speaker: AgentId;
100
111
  assigned_seq: number;
101
- expires_at?: number | null;
102
- instruction?: string;
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
- export declare function timelineItemFromRecord(record: ServerRecord): TimelineItem;
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":"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"}
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
- export function timelineItemFromRecord(record) {
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: timelineKind(event.type),
63
+ kind: recordClass(event.type, types) ?? "message",
47
64
  actor: event.actor,
48
65
  created_at: event.created_at,
49
- received_at: record.received_at,
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: message?.references ?? [],
71
+ references: referencesOf(payload),
55
72
  payload,
56
73
  };
57
74
  }
58
- function timelineKind(type) {
59
- if (type === eventType.MESSAGE_CREATE)
60
- return "message";
61
- if (type.startsWith("room."))
62
- return "room";
63
- if (type.startsWith("type."))
64
- return "type";
65
- return "custom";
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, 200);
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 summary = payload.summary ?? payload.reason ?? payload.title ?? payload.state;
75
- if (typeof summary === "string" && summary.trim() !== "") {
76
- return truncate(summary, 200);
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
- content_type: payload.content_type,
88
- content: payload.content,
89
- references: Array.isArray(payload.references)
90
- ? payload.references.filter((value) => typeof value === "string")
91
- : undefined,
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, maxLength) {
96
- return value.length <= maxLength ? value : `${value.slice(0, maxLength - 1)}...`;
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