@underdogai/mesh-event-schemas 0.3.0 → 0.8.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 (45) hide show
  1. package/dist/apppacks.d.ts +6070 -693
  2. package/dist/apppacks.d.ts.map +1 -1
  3. package/dist/apppacks.js +1 -1
  4. package/dist/blocks.d.ts +1402 -84
  5. package/dist/blocks.d.ts.map +1 -1
  6. package/dist/blocks.js +246 -13
  7. package/dist/blocks.js.map +1 -1
  8. package/dist/capabilities.d.ts +13 -1
  9. package/dist/capabilities.d.ts.map +1 -1
  10. package/dist/capabilities.js +13 -1
  11. package/dist/capabilities.js.map +1 -1
  12. package/dist/events.d.ts +1875 -174
  13. package/dist/events.d.ts.map +1 -1
  14. package/dist/events.js +190 -2
  15. package/dist/events.js.map +1 -1
  16. package/dist/geo.d.ts +52 -0
  17. package/dist/geo.d.ts.map +1 -0
  18. package/dist/geo.js +65 -0
  19. package/dist/geo.js.map +1 -0
  20. package/dist/index.d.ts +1 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/namespace.d.ts +13 -0
  25. package/dist/namespace.d.ts.map +1 -1
  26. package/dist/namespace.js +13 -0
  27. package/dist/namespace.js.map +1 -1
  28. package/dist/registry.d.ts +3 -2
  29. package/dist/registry.d.ts.map +1 -1
  30. package/dist/registry.js +36 -3
  31. package/dist/registry.js.map +1 -1
  32. package/dist/surfaces.d.ts +31135 -3417
  33. package/dist/surfaces.d.ts.map +1 -1
  34. package/dist/surfaces.js +8 -1
  35. package/dist/surfaces.js.map +1 -1
  36. package/package.json +1 -1
  37. package/src/apppacks.ts +1 -1
  38. package/src/blocks.ts +260 -14
  39. package/src/capabilities.ts +13 -1
  40. package/src/events.ts +207 -5
  41. package/src/geo.ts +75 -0
  42. package/src/index.ts +1 -0
  43. package/src/namespace.ts +13 -0
  44. package/src/registry.ts +38 -2
  45. package/src/surfaces.ts +8 -0
package/dist/namespace.js CHANGED
@@ -16,6 +16,17 @@ export const EventType = {
16
16
  UiCard: `${NS}.ui.card`,
17
17
  /** 사용자 → 에이전트: UI 카드 상호작용 결과 */
18
18
  UiAction: `${NS}.ui.action`,
19
+ /**
20
+ * 에이전트 → **누른 사람**: 액션 한 건의 판정 결과 (0.7.0, 메시지 이벤트).
21
+ *
22
+ * 검증 오류·권한 거절·성공 확인·동적 옵션 응답이 전부 이 한 채널을 탄다 — 그래서 앱이 `send` 로
23
+ * 오류 카드·거절 카드를 방에 쌓지 않아도 된다. `m.reference` 로 **액션 이벤트**를 가리키고,
24
+ * `to` 가 수신자를 지정한다(다른 뷰어는 받아도 그리지 않는다).
25
+ *
26
+ * 🔴 **옛 클라는 이 타입을 모른다 → 클라 registry 가 null 을 돌려 타임라인에서 조용히 빠진다.**
27
+ * 그 성질이 전환기의 안전망이다 — 앱은 `result` 와 옛 알림 카드를 한동안 같이 낼 수 있다.
28
+ */
29
+ UiActionResult: `${NS}.ui.action.result`,
19
30
  /** 상태 이벤트: 에이전트 역량 프로필 (state_key = 에이전트 MXID) */
20
31
  AgentCapability: `${NS}.agent.capability`,
21
32
  /** 상태 이벤트: 엔티티(방)의 현재 워크플로 상태 (last-writer-wins) */
@@ -62,6 +73,8 @@ export const EventType = {
62
73
  * 강제 잠금이 아니라 **표시용**이고, 유효기간은 수신측이 `ts` 로 판정한다(스테일 자동 소멸).
63
74
  */
64
75
  NoteEditing: `${NS}.note.editing`,
76
+ /** 파생 미리보기: 변환기 봇이 원본 파일(m.file)을 렌더한 이미지 — 원본을 m.reference (메시지 이벤트) */
77
+ FilePreview: `${NS}.file.preview`,
65
78
  };
66
79
  /** ERP 인바운드 이벤트 타입 접두사. 실제 타입은 `org.corp.erp.<entity>.<verb>` 로 만든다. */
67
80
  export const ERP_EVENT_PREFIX = `${NS}.erp.`;
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../src/namespace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,EAAE,GAAG,UAAmB,CAAC;AAEtC;qEACqE;AACrE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,KAAc,CAAC;AAElD,oBAAoB;AACpB,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,qEAAqE;IACrE,OAAO,EAAE,GAAG,EAAE,UAAU;IACxB,gDAAgD;IAChD,MAAM,EAAE,GAAG,EAAE,UAAU;IACvB,gCAAgC;IAChC,QAAQ,EAAE,GAAG,EAAE,YAAY;IAC3B,kDAAkD;IAClD,eAAe,EAAE,GAAG,EAAE,mBAAmB;IACzC,oDAAoD;IACpD,aAAa,EAAE,GAAG,EAAE,iBAAiB;IACrC,6DAA6D;IAC7D,WAAW,EAAE,GAAG,EAAE,eAAe;IACjC,4EAA4E;IAC5E,cAAc,EAAE,GAAG,EAAE,kBAAkB;IACvC,iDAAiD;IACjD,eAAe,EAAE,GAAG,EAAE,mBAAmB;IACzC,2DAA2D;IAC3D,gBAAgB,EAAE,GAAG,EAAE,oBAAoB;IAC3C,6DAA6D;IAC7D,SAAS,EAAE,GAAG,EAAE,aAAa;IAC7B,kEAAkE;IAClE,SAAS,EAAE,GAAG,EAAE,aAAa;IAC7B,kDAAkD;IAClD,UAAU,EAAE,GAAG,EAAE,cAAc;IAC/B,2DAA2D;IAC3D,UAAU,EAAE,GAAG,EAAE,cAAc;IAC/B,kCAAkC;IAClC,UAAU,EAAE,GAAG,EAAE,cAAc;IAC/B,kCAAkC;IAClC,SAAS,EAAE,GAAG,EAAE,aAAa;IAC7B,+FAA+F;IAC/F,UAAU,EAAE,GAAG,EAAE,cAAc;IAC/B,sFAAsF;IACtF,SAAS,EAAE,GAAG,EAAE,aAAa;IAC7B,mGAAmG;IACnG,QAAQ,EAAE,GAAG,EAAE,YAAY;IAC3B;;;;;;;OAOG;IACH,SAAS,EAAE,GAAG,EAAE,aAAa;IAC7B,6CAA6C;IAC7C,QAAQ,EAAE,GAAG,EAAE,YAAY;IAC3B;;;OAGG;IACH,WAAW,EAAE,GAAG,EAAE,eAAe;CACzB,CAAC;AAEX,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,OAAgB,CAAC;AAEtD,8DAA8D;AAC9D,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,IAAY;IACvD,OAAO,GAAG,gBAAgB,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../src/namespace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,EAAE,GAAG,UAAmB,CAAC;AAEtC;qEACqE;AACrE,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,KAAc,CAAC;AAElD,oBAAoB;AACpB,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,qEAAqE;IACrE,OAAO,EAAE,GAAG,EAAE,UAAU;IACxB,gDAAgD;IAChD,MAAM,EAAE,GAAG,EAAE,UAAU;IACvB,gCAAgC;IAChC,QAAQ,EAAE,GAAG,EAAE,YAAY;IAC3B;;;;;;;;;OASG;IACH,cAAc,EAAE,GAAG,EAAE,mBAAmB;IACxC,kDAAkD;IAClD,eAAe,EAAE,GAAG,EAAE,mBAAmB;IACzC,oDAAoD;IACpD,aAAa,EAAE,GAAG,EAAE,iBAAiB;IACrC,6DAA6D;IAC7D,WAAW,EAAE,GAAG,EAAE,eAAe;IACjC,4EAA4E;IAC5E,cAAc,EAAE,GAAG,EAAE,kBAAkB;IACvC,iDAAiD;IACjD,eAAe,EAAE,GAAG,EAAE,mBAAmB;IACzC,2DAA2D;IAC3D,gBAAgB,EAAE,GAAG,EAAE,oBAAoB;IAC3C,6DAA6D;IAC7D,SAAS,EAAE,GAAG,EAAE,aAAa;IAC7B,kEAAkE;IAClE,SAAS,EAAE,GAAG,EAAE,aAAa;IAC7B,kDAAkD;IAClD,UAAU,EAAE,GAAG,EAAE,cAAc;IAC/B,2DAA2D;IAC3D,UAAU,EAAE,GAAG,EAAE,cAAc;IAC/B,kCAAkC;IAClC,UAAU,EAAE,GAAG,EAAE,cAAc;IAC/B,kCAAkC;IAClC,SAAS,EAAE,GAAG,EAAE,aAAa;IAC7B,+FAA+F;IAC/F,UAAU,EAAE,GAAG,EAAE,cAAc;IAC/B,sFAAsF;IACtF,SAAS,EAAE,GAAG,EAAE,aAAa;IAC7B,mGAAmG;IACnG,QAAQ,EAAE,GAAG,EAAE,YAAY;IAC3B;;;;;;;OAOG;IACH,SAAS,EAAE,GAAG,EAAE,aAAa;IAC7B,6CAA6C;IAC7C,QAAQ,EAAE,GAAG,EAAE,YAAY;IAC3B;;;OAGG;IACH,WAAW,EAAE,GAAG,EAAE,eAAe;IACjC,yEAAyE;IACzE,WAAW,EAAE,GAAG,EAAE,eAAe;CACzB,CAAC;AAEX,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,OAAgB,CAAC;AAEtD,8DAA8D;AAC9D,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,IAAY;IACvD,OAAO,GAAG,gBAAgB,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAC3C,CAAC"}
@@ -55,11 +55,12 @@ export declare function validateEvent(type: string, content: unknown): Validatio
55
55
  /** 발행자가 해당 타입을 보낼 자격이 있는지 (서버측 권한 검증의 보조). */
56
56
  export declare function canPublish(type: string, publisher: Publisher): boolean;
57
57
  /**
58
- * 발신자 MXID 를 발행자 분류(human/agent/bridge)로 매핑한다 (docs/tickets/SEC-3).
58
+ * 발신자 MXID 를 발행자 분류(human/agent/bridge)로 매핑한다 (규범: docs/event-model.md §발행자 권한).
59
59
  *
60
60
  * 서버가 인바운드 이벤트를 받을 때 `canPublish(type, classifySender(sender))` 로 "이 발신자가 이 타입을
61
61
  * 보낼 자격이 있는가"를 강제하는 데 쓴다. 분류는 AS 독점 네임스페이스 관례를 따른다
62
- * (infra/registration: `@agent_*` = 에이전트, `@erp_*` = 브리지, 그 외 = 사람).
62
+ * (infra/registration: `@agent_*` = 에이전트, `@erp_*` = 브리지, 그 외 = 사람) — 그 관례 밖의 봇
63
+ * 계정은 BRIDGE_LOCALPARTS 로 정확히 하나씩 인정한다.
63
64
  *
64
65
  * ⚠️ 반드시 홈서버가 서명·귀속한 event.sender 로 호출할 것 — 본문(content)의 from_* 필드는 위조 가능하다.
65
66
  */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0B7B,6CAA6C;AAC7C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErD,yDAAyD;AACzD,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;IACrB,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,aAAa,EAoJzC,CAAC;AAUF,0CAA0C;AAC1C,wBAAgB,gBAAgB,IAAI,aAAa,EAAE,CAElD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAWhE;AAED,0DAA0D;AAC1D,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEnE;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1D;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,GAAG,iBAAiB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE/F;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,gBAAgB,CAa9E;AAED,8CAA8C;AAC9C,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAGtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAK1D"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA4B7B,6CAA6C;AAC7C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErD,yDAAyD;AACzD,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;IACrB,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,aAAa,EAuKzC,CAAC;AAUF,0CAA0C;AAC1C,wBAAgB,gBAAgB,IAAI,aAAa,EAAE,CAElD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAWhE;AAED,0DAA0D;AAC1D,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEnE;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1D;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,GAAG,iBAAiB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE/F;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,gBAAgB,CAa9E;AAED,8CAA8C;AAC9C,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAGtE;AAeD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAM1D"}
package/dist/registry.js CHANGED
@@ -1,4 +1,4 @@
1
- import { A2aRequestContentSchema, A2aResultContentSchema, AgentCapabilityContentSchema, AgentPlanContentSchema, AgentStepContentSchema, ApprovalDecisionContentSchema, ApprovalRequestContentSchema, CommandContentSchema, EntitySnapshotContentSchema, ErpEventContentSchema, NoteBlockContentSchema, NoteEditingContentSchema, NoteMetaContentSchema, RoomAppsContentSchema, RoomBindingContentSchema, TaskCreateContentSchema, TaskUpdateContentSchema, UiActionContentSchema, UiCardContentSchema, WorkflowStateContentSchema, } from "./events.js";
1
+ import { A2aRequestContentSchema, A2aResultContentSchema, AgentCapabilityContentSchema, AgentPlanContentSchema, AgentStepContentSchema, ApprovalDecisionContentSchema, ApprovalRequestContentSchema, CommandContentSchema, EntitySnapshotContentSchema, ErpEventContentSchema, FilePreviewContentSchema, NoteBlockContentSchema, NoteEditingContentSchema, NoteMetaContentSchema, RoomAppsContentSchema, RoomBindingContentSchema, TaskCreateContentSchema, TaskUpdateContentSchema, UiActionContentSchema, UiActionResultContentSchema, UiCardContentSchema, WorkflowStateContentSchema, } from "./events.js";
2
2
  import { ERP_EVENT_PREFIX, EventType } from "./namespace.js";
3
3
  import { AppSurfaceContentSchema } from "./surfaces.js";
4
4
  /**
@@ -27,6 +27,17 @@ export const EVENT_REGISTRY = [
27
27
  publishableBy: ["human", "agent"],
28
28
  description: "사용자 → 에이전트: UI 카드 상호작용 결과",
29
29
  },
30
+ {
31
+ type: EventType.UiActionResult,
32
+ kind: "message",
33
+ schema: UiActionResultContentSchema,
34
+ /**
35
+ * 🔴 **에이전트만** 발행한다 — 판정의 권위가 서버라서다. 사람이 "당신은 거절됐습니다" 를 보낼 수
36
+ * 있으면 이 채널이 곧 남을 속이는 통로가 된다(canPublish 가 인바운드에서 강제한다).
37
+ */
38
+ publishableBy: ["agent"],
39
+ description: "에이전트 → 누른 사람: 액션 한 건의 판정 결과 (검증 오류·권한 거절·성공 확인·동적 후보). to 로 수신자 지정, m.reference 로 액션 이벤트를 가리킨다",
40
+ },
30
41
  {
31
42
  prefix: ERP_EVENT_PREFIX,
32
43
  kind: "message",
@@ -153,6 +164,13 @@ export const EVENT_REGISTRY = [
153
164
  publishableBy: ["agent"],
154
165
  description: "에이전트 → 에이전트 위임 결과 회신 (A2A)",
155
166
  },
167
+ {
168
+ type: EventType.FilePreview,
169
+ kind: "message",
170
+ schema: FilePreviewContentSchema,
171
+ publishableBy: ["agent", "bridge"],
172
+ description: "파생 미리보기 이미지 (org.corp.file.preview) — 변환기 봇이 발행하고 원본 파일 이벤트를 m.reference. pending→ready/failed 를 새 이벤트로 흘리고 최신이 이긴다. 사람 발행 금지: 클라가 원본 타일을 이 이미지로 대체하는 신뢰 통로다",
173
+ },
156
174
  ];
157
175
  /** 플러그인이 런타임에 추가한 엔트리(org.corp.<domain>.*). 코어 뒤에 둔다 = 코어 우선. */
158
176
  const runtimeEntries = [];
@@ -214,11 +232,24 @@ export function canPublish(type, publisher) {
214
232
  return entry ? entry.publishableBy.includes(publisher) : false;
215
233
  }
216
234
  /**
217
- * 발신자 MXID 를 발행자 분류(human/agent/bridge)로 매핑한다 (docs/tickets/SEC-3).
235
+ * AS 네임스페이스 **밖**에 사는 봇 계정 — 접두사 관례로는 못 잡아 정확 일치로 인정한다.
236
+ *
237
+ * 이 홈서버의 mesh-bots 가 그렇다(`@mesh-bot`): `@agent_*` 도 `@erp_*` 도 아니라 human 으로 떨어지고,
238
+ * 그러면 file.preview 처럼 봇만 발행할 수 있는 타입이 **발행은 성공하는데 수신측에서 통째로 버려진다**
239
+ * — 화면엔 아무것도 안 나오고 이유도 로그에 안 남는 실패다.
240
+ *
241
+ * ⚠️ 부분 일치("bot 이 들어가면")로 넓히지 말 것. 이 함수는 파일 미리보기 전용이 아니라 **전 이벤트의
242
+ * 권한 게이트**이고, `ui.action` 은 `["human","agent"]` 라 bridge 가 못 보낸다 — `@robot` 같은 사람
243
+ * 계정이 봇 매칭에 걸리면 그 사람의 카드 버튼이 조용히 막힌다.
244
+ */
245
+ const BRIDGE_LOCALPARTS = new Set(["@mesh-bot"]);
246
+ /**
247
+ * 발신자 MXID 를 발행자 분류(human/agent/bridge)로 매핑한다 (규범: docs/event-model.md §발행자 권한).
218
248
  *
219
249
  * 서버가 인바운드 이벤트를 받을 때 `canPublish(type, classifySender(sender))` 로 "이 발신자가 이 타입을
220
250
  * 보낼 자격이 있는가"를 강제하는 데 쓴다. 분류는 AS 독점 네임스페이스 관례를 따른다
221
- * (infra/registration: `@agent_*` = 에이전트, `@erp_*` = 브리지, 그 외 = 사람).
251
+ * (infra/registration: `@agent_*` = 에이전트, `@erp_*` = 브리지, 그 외 = 사람) — 그 관례 밖의 봇
252
+ * 계정은 BRIDGE_LOCALPARTS 로 정확히 하나씩 인정한다.
222
253
  *
223
254
  * ⚠️ 반드시 홈서버가 서명·귀속한 event.sender 로 호출할 것 — 본문(content)의 from_* 필드는 위조 가능하다.
224
255
  */
@@ -228,6 +259,8 @@ export function classifySender(senderId) {
228
259
  return "agent";
229
260
  if (localpart.startsWith("@erp_"))
230
261
  return "bridge";
262
+ if (BRIDGE_LOCALPARTS.has(localpart))
263
+ return "bridge";
231
264
  return "human";
232
265
  }
233
266
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}