@underdogai/mesh-event-schemas 0.1.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 (53) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +62 -0
  3. package/dist/apppacks.d.ts +15652 -0
  4. package/dist/apppacks.d.ts.map +1 -0
  5. package/dist/apppacks.js +71 -0
  6. package/dist/apppacks.js.map +1 -0
  7. package/dist/blocks.d.ts +2320 -0
  8. package/dist/blocks.d.ts.map +1 -0
  9. package/dist/blocks.js +472 -0
  10. package/dist/blocks.js.map +1 -0
  11. package/dist/capabilities.d.ts +35 -0
  12. package/dist/capabilities.d.ts.map +1 -0
  13. package/dist/capabilities.js +37 -0
  14. package/dist/capabilities.js.map +1 -0
  15. package/dist/events.d.ts +4557 -0
  16. package/dist/events.d.ts.map +1 -0
  17. package/dist/events.js +571 -0
  18. package/dist/events.js.map +1 -0
  19. package/dist/index.d.ts +16 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +16 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/namespace.d.ts +56 -0
  24. package/dist/namespace.d.ts.map +1 -0
  25. package/dist/namespace.js +60 -0
  26. package/dist/namespace.js.map +1 -0
  27. package/dist/plugins.d.ts +131 -0
  28. package/dist/plugins.d.ts.map +1 -0
  29. package/dist/plugins.js +66 -0
  30. package/dist/plugins.js.map +1 -0
  31. package/dist/registry.d.ts +67 -0
  32. package/dist/registry.d.ts.map +1 -0
  33. package/dist/registry.js +212 -0
  34. package/dist/registry.js.map +1 -0
  35. package/dist/surfaces.d.ts +54323 -0
  36. package/dist/surfaces.d.ts.map +1 -0
  37. package/dist/surfaces.js +523 -0
  38. package/dist/surfaces.js.map +1 -0
  39. package/dist/templates.d.ts +390 -0
  40. package/dist/templates.d.ts.map +1 -0
  41. package/dist/templates.js +493 -0
  42. package/dist/templates.js.map +1 -0
  43. package/package.json +50 -0
  44. package/src/apppacks.ts +90 -0
  45. package/src/blocks.ts +544 -0
  46. package/src/capabilities.ts +58 -0
  47. package/src/events.ts +758 -0
  48. package/src/index.ts +15 -0
  49. package/src/namespace.ts +64 -0
  50. package/src/plugins.ts +118 -0
  51. package/src/registry.ts +261 -0
  52. package/src/surfaces.ts +610 -0
  53. package/src/templates.ts +736 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAe,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3D,eAAO,MAAM,cAAc,EAAG,CAAU,CAAC;AA6BzC,eAAO,MAAM,eAAe,0DAAwD,CAAC;AACrF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,mBAAmB;;IAE9B,mDAAmD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAInD;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKH,6CAA6C;;;IAG7C,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASpC,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
package/dist/events.js ADDED
@@ -0,0 +1,571 @@
1
+ /**
2
+ * org.corp.* 커스텀 이벤트 content 스키마 + 빌더.
3
+ *
4
+ * 모든 content는 버전 필드 `v`를 가진다(스키마 진화 대비). 와이어로 나가는/들어오는
5
+ * 모든 형태의 단일 진실 공급원이며, appservice·bridge·client가 공통으로 import 한다.
6
+ */
7
+ import { z } from "zod";
8
+ import { BlockSchema } from "./blocks.js";
9
+ import { EventType, UI_CONTENT_KEY } from "./namespace.js";
10
+ export const SCHEMA_VERSION = 1;
11
+ // 버전은 strict v1 유지(스모크가 "잘못된 버전 거부"를 검증하는 의도적 설계). 임의-정수 버전 관용은
12
+ // 빌더 타입 15곳 카스케이드 + 버전 협상 전략(M4-1/PLAN-2)과 함께 v2 실제 도입 시 신중히 (백로그).
13
+ const VersionSchema = z.literal(SCHEMA_VERSION).default(SCHEMA_VERSION);
14
+ /**
15
+ * 인바운드 카드 content 에서 모르는/깨진 블록만 떨어낸다(전방호환 graceful degrade) — strict 스키마 검증 전에 호출.
16
+ * discriminatedUnion 은 한 원소만 실패해도 array 전체가 실패 → extractUiCard 가 null → 카드가 평문으로 붕괴.
17
+ * 그래서 *렌더 경로(extractUiCard)에 한해* 각 블록을 개별 safeParse 해 통과한 것만 남긴다(모르는 타입/구조오류
18
+ * 블록은 드롭, 나머지는 정상 렌더). 빌더(buildUiCardContent)는 strict 그대로 — 보낼 때 잘못된 블록은 즉시 거부.
19
+ */
20
+ function dropUnknownBlocks(raw) {
21
+ if (!raw || typeof raw !== "object")
22
+ return raw;
23
+ const c = raw;
24
+ const keep = (arr) => (Array.isArray(arr) ? arr.filter((b) => BlockSchema.safeParse(b).success) : arr);
25
+ const out = { ...c, blocks: keep(c.blocks) };
26
+ if (Array.isArray(c.steps)) {
27
+ out.steps = c.steps.map((s) => s && typeof s === "object" ? { ...s, blocks: keep(s.blocks) } : s);
28
+ }
29
+ return out;
30
+ }
31
+ // --------------------------------------------------------------------------
32
+ // org.corp.ui.card (에이전트 → 사용자, 메시지 이벤트)
33
+ // --------------------------------------------------------------------------
34
+ export const CardStateSchema = z.enum(["open", "submitted", "cancelled", "expired"]);
35
+ export const UiCardContentSchema = z.object({
36
+ v: VersionSchema,
37
+ /** 이 카드 인스턴스의 안정적 ID. 액션 회신·편집이 이 값으로 카드를 가리킨다. */
38
+ card_id: z.string().min(1),
39
+ title: z.string().optional(),
40
+ blocks: BlockSchema.array().default([]),
41
+ /**
42
+ * 멀티스텝(마법사) 폼. 설정하면 클라이언트가 단계 네비게이션(이전/다음)을 그리고,
43
+ * 모든 단계의 입력을 한 번에 모아 최종 제출한다. blocks 와 함께 쓰면 blocks 가 먼저 렌더된다.
44
+ */
45
+ steps: z
46
+ .object({ title: z.string().optional(), blocks: BlockSchema.array() })
47
+ .array()
48
+ .optional(),
49
+ /** 지원하지 않는 클라이언트를 위한 평문 degrade 텍스트 (필수). */
50
+ fallback: z.string(),
51
+ state: CardStateSchema.optional(),
52
+ /** 카드가 응답하는 원본 이벤트(예: 사용자 명령) id */
53
+ request_event_id: z.string().optional(),
54
+ context: z
55
+ .object({
56
+ agent: z.string().optional(),
57
+ entity: z.object({ type: z.string(), id: z.string() }).optional(),
58
+ })
59
+ .catchall(z.unknown())
60
+ .optional(),
61
+ /** epoch ms. 지나면 클라이언트가 입력을 비활성화한다. */
62
+ expires_at: z.number().int().optional(),
63
+ });
64
+ // --------------------------------------------------------------------------
65
+ // org.corp.ui.action (사용자 → 에이전트, 메시지 이벤트)
66
+ // --------------------------------------------------------------------------
67
+ export const UiActionContentSchema = z.object({
68
+ v: VersionSchema,
69
+ card_id: z.string().min(1),
70
+ /** 어떤 컨트롤이 트리거했는지 (버튼의 action_id 등) */
71
+ action_id: z.string().min(1),
72
+ action_type: z.enum(["button", "submit", "select", "cancel"]),
73
+ /** 폼 입력 수집 결과 (input/select/checkbox name → value) */
74
+ values: z.record(z.string(), z.unknown()).optional(),
75
+ /** 어떤 버튼의 value였는지 (선택) */
76
+ value: z.string().optional(),
77
+ "m.relates_to": z
78
+ .object({
79
+ rel_type: z.literal("m.reference"),
80
+ event_id: z.string(),
81
+ })
82
+ .optional(),
83
+ });
84
+ // --------------------------------------------------------------------------
85
+ // org.corp.command (구조화된 명령, 선택적)
86
+ // --------------------------------------------------------------------------
87
+ export const CommandContentSchema = z.object({
88
+ v: VersionSchema,
89
+ /** 의도 식별자 (예: "invoice.approve") */
90
+ intent: z.string().min(1),
91
+ args: z.record(z.string(), z.unknown()).optional(),
92
+ /** 원문 텍스트 (자연어 명령을 함께 보존) */
93
+ text: z.string().optional(),
94
+ });
95
+ // --------------------------------------------------------------------------
96
+ // org.corp.erp.<entity>.<verb> (브리지 → 방, 인바운드)
97
+ // --------------------------------------------------------------------------
98
+ export const ErpEventContentSchema = z.object({
99
+ v: VersionSchema,
100
+ entity: z.string(),
101
+ entity_id: z.string(),
102
+ verb: z.string(),
103
+ status: z.string().optional(),
104
+ source: z.string(),
105
+ /** ERP 원본으로 가는 딥링크 — 권위 데이터는 복제하지 않고 참조만 한다(원장 원칙). */
106
+ link: z.string().optional(),
107
+ occurred_at: z.number().int(),
108
+ /** 표시에 필요한 최소 필드만. 권위 데이터의 복제가 아니라 스냅샷. */
109
+ fields: z.record(z.string(), z.unknown()).optional(),
110
+ });
111
+ // --------------------------------------------------------------------------
112
+ // org.corp.agent.capability (상태 이벤트, state_key = 에이전트 MXID)
113
+ // --------------------------------------------------------------------------
114
+ export const AgentCapabilityContentSchema = z.object({
115
+ v: VersionSchema,
116
+ display_name: z.string().optional(),
117
+ mcp_servers: z.string().array(),
118
+ /** "invoice:read", "invoice:approve" 같은 역량 스코프 */
119
+ scopes: z.string().array(),
120
+ /** 이 에이전트가 행사할 수 있는 최대 power level */
121
+ max_power_level: z.number().int(),
122
+ });
123
+ // --------------------------------------------------------------------------
124
+ // org.corp.workflow.state (상태 이벤트, last-writer-wins)
125
+ // --------------------------------------------------------------------------
126
+ export const WorkflowStateContentSchema = z.object({
127
+ v: VersionSchema,
128
+ status: z.string(),
129
+ entity: z.object({ type: z.string(), id: z.string() }).optional(),
130
+ updated_by: z.string().optional(),
131
+ updated_at: z.number().int().optional(),
132
+ data: z.record(z.string(), z.unknown()).optional(),
133
+ });
134
+ // --------------------------------------------------------------------------
135
+ // org.corp.room.binding (상태 이벤트, state_key = "" — 룸이 자기 도메인을 선언)
136
+ // --------------------------------------------------------------------------
137
+ // 룸이 자기 도메인(app/엔티티)을 선언한다 → 클라이언트가 getAppPack(app) 으로 어느 팩을
138
+ // 렌더할지 고른다. 룸당 1개(state_key = "", last-writer-wins). 권위 데이터는 (entity_type,
139
+ // entity_id) 키로 MCP/브리지에서 재조회하고, 여기에는 식별자만 둔다(원장 원칙).
140
+ export const RoomBindingContentSchema = z.object({
141
+ v: VersionSchema,
142
+ /** 렌더할 App Pack 의 도메인 키 (AppPack.app / PluginManifest.app 과 일치). */
143
+ app: z.string().min(1),
144
+ /** 이 룸이 다루는 엔티티 타입 (예: "lead", "repo"). */
145
+ entity_type: z.string().min(1),
146
+ /** 엔티티 인스턴스 ID (권위 데이터 조회 키 — 값 자체는 복제하지 않는다). */
147
+ entity_id: z.string().min(1),
148
+ });
149
+ // --------------------------------------------------------------------------
150
+ // org.corp.space.apps (상태 이벤트, state_key = "" — Space 가 추가한 App Service 목록)
151
+ // --------------------------------------------------------------------------
152
+ // Space(컨테이너)를 "App Service 추가·관리 단위"로 둔다. 자식 채널은 room.binding 으로 개별 앱을
153
+ // 고를 때 이 목록 안에서만 고르게(거버넌스) 할 수 있다. 값은 AppPack 도메인 키 배열(room.binding.app 과 일치).
154
+ export const SpaceAppsContentSchema = z.object({
155
+ v: VersionSchema,
156
+ /** 이 Space 가 제공하는 App Pack 도메인 키들. */
157
+ apps: z.array(z.string().min(1)),
158
+ });
159
+ /** Space 앱 목록 content 를 만든다(org.corp.space.apps, state_key=""). */
160
+ export function buildSpaceApps(spaceApps) {
161
+ return SpaceAppsContentSchema.parse({ ...spaceApps, v: SCHEMA_VERSION });
162
+ }
163
+ // --------------------------------------------------------------------------
164
+ // org.corp.room.apps (상태 이벤트, state_key = "" — 룸이 직접 선언한 App Service 목록)
165
+ // --------------------------------------------------------------------------
166
+ // space.apps 의 per-room 짝: Space 가 아니라 룸(채널)이 자기 앱 키 목록을 직접 선언한다. 클라는 이걸로
167
+ // 룸 안에서 어떤 앱들을 "탭"으로 노출할지 정한다(거버넌스 = 부모 Space space.apps 의 부분집합). 값은
168
+ // AppPack 도메인 키 배열(room.binding.app / app.surface.app 과 일치). 엔티티는 v1 에선 룸 단위로 공유한다
169
+ // (entity.snapshot 단일) — 탭마다 다른 엔티티는 후속.
170
+ export const RoomAppsContentSchema = z.object({
171
+ v: VersionSchema,
172
+ /** 이 룸이 탭으로 노출하는 App Pack 도메인 키들(표시 순서). */
173
+ apps: z.array(z.string().min(1)),
174
+ });
175
+ /** 룸 앱 목록 content 를 만든다(org.corp.room.apps, state_key=""). */
176
+ export function buildRoomApps(roomApps) {
177
+ return RoomAppsContentSchema.parse({ ...roomApps, v: SCHEMA_VERSION });
178
+ }
179
+ // --------------------------------------------------------------------------
180
+ // org.corp.entity.snapshot (상태 이벤트, state_key = "" — 엔티티 표시 필드 투영)
181
+ // --------------------------------------------------------------------------
182
+ // room.binding 은 식별자만 담는다(원장 원칙). 팩 서피스가 쓰는 {{repo}}/{{owner}} 같은 표시 필드는
183
+ // 권위 데이터가 아니라 "표시 투영"이므로 별도 상태 이벤트로 둔다 — 브리지/에이전트가 LWW 로 유지하고,
184
+ // 클라이언트가 resolveBindings 의 엔티티 스냅샷 소스로 읽는다. 도메인 무관 프리미티브(room.binding/workflow.state 류).
185
+ export const EntitySnapshotContentSchema = z.object({
186
+ v: VersionSchema,
187
+ /** 이 스냅샷이 다루는 엔티티 타입 (room.binding.entity_type 과 일치). */
188
+ entity_type: z.string().min(1),
189
+ /** 엔티티 인스턴스 ID (room.binding.entity_id 과 일치). */
190
+ entity_id: z.string().min(1),
191
+ /** {{path}} 바인딩으로 해석되는 표시 필드(평면 문자열 맵). 권위 데이터 아님 — 표시 투영. */
192
+ fields: z.record(z.string(), z.string()),
193
+ });
194
+ /** 엔티티 표시 스냅샷 content 를 만든다(org.corp.entity.snapshot, state_key=""). */
195
+ export function buildEntitySnapshot(snapshot) {
196
+ return EntitySnapshotContentSchema.parse({ ...snapshot, v: SCHEMA_VERSION });
197
+ }
198
+ // --------------------------------------------------------------------------
199
+ // org.corp.approval.request / .decision (HITL 다단계 승인, 메시지 이벤트)
200
+ // --------------------------------------------------------------------------
201
+ // 위험한 행동을 사람(또는 에이전트 승인자)이 명시적으로 승인/반려한다. request 가 한 번,
202
+ // decision 이 승인자 수만큼 회신되어 min_approvals 도달 시 통과한다. 권위 데이터는 (entity)
203
+ // 키로 MCP/브리지에서 재조회하고, fields 는 표시용 스냅샷만 둔다(원장 원칙).
204
+ // 권한은 항상 서버(canPublish + appservice PL+scope 재검증) — 카드 UI 는 UX 게이트일 뿐.
205
+ export const ApprovalRequestContentSchema = z.object({
206
+ v: VersionSchema,
207
+ /** 이 승인 라이프사이클의 안정적 ID. decision 이 이 값으로 요청을 가리킨다. */
208
+ request_id: z.string().min(1),
209
+ /** 승인 대상 엔티티(예: invoice INV-1042). 권위 데이터 재조회 키 — 값은 복제하지 않는다. */
210
+ entity: z.object({ type: z.string(), id: z.string() }).optional(),
211
+ /** 표시용 요약 필드(금액·기한 등) — 권위 데이터 복제가 아니라 스냅샷. */
212
+ fields: z.record(z.string(), z.unknown()),
213
+ /** 순차 승인자(MXID 또는 표시명) 목록 — 순서대로 결재한다. */
214
+ approvers: z.string().array().min(1),
215
+ /** 통과에 필요한 최소 승인 수(미지정 시 approvers 전원). */
216
+ min_approvals: z.number().int().positive().optional(),
217
+ });
218
+ export const ApprovalDecisionContentSchema = z.object({
219
+ v: VersionSchema,
220
+ /** 어떤 승인 요청에 대한 결정인지 (ApprovalRequest.request_id). */
221
+ request_id: z.string().min(1),
222
+ /** 결정한 승인자(MXID 또는 표시명). */
223
+ approver: z.string().min(1),
224
+ decision: z.enum(["approve", "reject"]),
225
+ note: z.string().optional(),
226
+ /** 원본 승인 요청 이벤트를 참조(m.reference). */
227
+ "m.relates_to": z
228
+ .object({ rel_type: z.literal("m.reference"), event_id: z.string() })
229
+ .optional(),
230
+ });
231
+ // --------------------------------------------------------------------------
232
+ // org.corp.agent.plan / .step (에이전트 런 타임라인 텔레메트리, 메시지 이벤트)
233
+ // --------------------------------------------------------------------------
234
+ // 도메인 무관 C층 프리미티브: "에이전트가 어떤 계획으로 어디까지 진행했나"를 1급으로 흘린다.
235
+ // plan 이 한 번(단계 목록 = 런의 골격), step 이 진행될 때마다 회신되어 plan 을 m.reference 한다.
236
+ // 스트리밍 갱신은 buildUiMessageEdit(m.replace)와 동형 — plan 을 m.replace 로 통째 갱신하거나
237
+ // step 이벤트를 누적해 클라가 합성한다(실제 와이어링은 P2-5). 여기는 데이터 토대만 둔다.
238
+ // 권한은 항상 서버(canPublish + appservice 재검증) — 에이전트만 발행한다.
239
+ /** 에이전트 런 단계의 상태. queued(대기) → active(진행) → done(완료) / error(실패). */
240
+ export const AgentStepStatusSchema = z.enum(["queued", "active", "done", "error"]);
241
+ /** plan 안의 한 단계 — 안정적 id(step 이벤트가 이 값으로 단계를 가리킨다) + 라벨 + 상태. */
242
+ export const AgentPlanStepSchema = z.object({
243
+ /** 단계의 안정적 ID — AgentStep.step_id 가 이 값을 가리킨다. */
244
+ id: z.string().min(1),
245
+ label: z.string(),
246
+ /** 미지정 시 queued(아직 시작 안 함). */
247
+ status: AgentStepStatusSchema.default("queued"),
248
+ note: z.string().optional(),
249
+ });
250
+ export const AgentPlanContentSchema = z.object({
251
+ v: VersionSchema,
252
+ /** 이 에이전트 런의 안정적 ID. step 이 이 값으로 런을 가리킨다. */
253
+ run_id: z.string().min(1),
254
+ title: z.string().optional(),
255
+ /** 실행 에이전트(MXID 또는 표시명). */
256
+ agent: z.string().optional(),
257
+ /** 런의 단계 골격(최소 1개). */
258
+ steps: AgentPlanStepSchema.array().min(1),
259
+ /** 전체 공정률 0~100(생략 시 클라가 done/total 로 산출). */
260
+ progress: z.number().int().min(0).max(100).optional(),
261
+ });
262
+ export const AgentStepContentSchema = z.object({
263
+ v: VersionSchema,
264
+ /** 어떤 런에 대한 단계 갱신인지 (AgentPlan.run_id). */
265
+ run_id: z.string().min(1),
266
+ /** 어떤 단계인지 (AgentPlanStep.id). */
267
+ step_id: z.string().min(1),
268
+ status: AgentStepStatusSchema,
269
+ note: z.string().optional(),
270
+ /** 이 단계의 부분 공정률 0~100(예: active 단계의 진행). */
271
+ progress: z.number().int().min(0).max(100).optional(),
272
+ /** 원본 plan 이벤트를 참조(m.reference). */
273
+ "m.relates_to": z
274
+ .object({ rel_type: z.literal("m.reference"), event_id: z.string() })
275
+ .optional(),
276
+ });
277
+ // --------------------------------------------------------------------------
278
+ // org.corp.task.create / .update (작업항목 라이프사이클, 메시지 이벤트)
279
+ // --------------------------------------------------------------------------
280
+ // 도메인 무관 C층 프리미티브: 사람↔에이전트가 공유하는 "작업항목". create 가 한 번(작업의 정본),
281
+ // update 가 상태/배정/진행을 바꿀 때마다 회신되어 create 를 m.reference 한다(approval.request/.decision,
282
+ // agent.plan/.step 과 동형). update 는 패치형 — 바뀐 필드만 담는 타입드 옵션 필드(AgentStep 과 동형,
283
+ // field/value-unknown 대신 타입 안전). 진척 카드의 공정률은 update 값을 손으로 박는 게 아니라
284
+ // summarizeTasks 가 이벤트 스트림에서 파생한다(데이터 우선 — done_when "진척도 실데이터").
285
+ // 권위 데이터는 entity 키로 MCP/브리지 재조회하고 값은 복제하지 않는다(원장 원칙). 권한은 항상 서버.
286
+ /** 작업항목의 라이프사이클 상태. todo → in_progress → done. blocked(막힘)·cancelled(취소)는 분기. */
287
+ export const TaskStatusSchema = z.enum(["todo", "in_progress", "blocked", "done", "cancelled"]);
288
+ export const TaskCreateContentSchema = z.object({
289
+ v: VersionSchema,
290
+ /** 이 작업의 안정적 ID. update 가 이 값으로 작업을 가리킨다. */
291
+ task_id: z.string().min(1),
292
+ title: z.string(),
293
+ /** 생성 시 상태(미지정 시 todo — 아직 시작 안 함). */
294
+ status: TaskStatusSchema.default("todo"),
295
+ /** 담당자(MXID/표시명) 목록 — "배정"은 update.assignees 로 교체한다(상태가 아니라 필드). */
296
+ assignees: z.string().array().optional(),
297
+ /** 이 작업이 다루는 엔티티(권위 데이터 재조회 키 — 값은 복제하지 않는다). */
298
+ entity: z.object({ type: z.string(), id: z.string() }).optional(),
299
+ });
300
+ export const TaskUpdateContentSchema = z.object({
301
+ v: VersionSchema,
302
+ /** 어떤 작업을 갱신하는지 (TaskCreate.task_id). */
303
+ task_id: z.string().min(1),
304
+ /** 새 상태(바뀌었을 때만). */
305
+ status: TaskStatusSchema.optional(),
306
+ /** 재배정(담당자 집합 교체). */
307
+ assignees: z.string().array().optional(),
308
+ /** 이 작업 한 건의 부분 공정률 0~100(장기 작업의 스트리밍 진행). 카드 전체 %는 summarizeTasks 가 파생. */
309
+ progress: z.number().int().min(0).max(100).optional(),
310
+ /** 전이 사유/메모. */
311
+ note: z.string().optional(),
312
+ /** 원본 create 이벤트를 참조(m.reference). */
313
+ "m.relates_to": z
314
+ .object({ rel_type: z.literal("m.reference"), event_id: z.string() })
315
+ .optional(),
316
+ });
317
+ /**
318
+ * task.create + task.update 이벤트 스트림에서 진척 요약을 파생한다(데이터 우선).
319
+ * create 로 작업 집합을 세우고, update 를 주어진(타임라인) 순서대로 폴드해 최신값이 이기게 한다
320
+ * — 갤러리 applyStep 병합(에이전트 단계)을 작업 단위로 일반화. multiApproval(approved/required)·
321
+ * checklist(done/total) 의 0/N 산출과 동형. cancelled 는 분모에서 빼 진행 바를 끌어내리지 않는다.
322
+ * 코어(events.ts)에 두어 P2-4(라이브 m.replace 재파생)·P2-5(텔레메트리)가 템플릿 잠금 없이 재사용한다.
323
+ */
324
+ export function summarizeTasks(creates, updates) {
325
+ const byId = new Map();
326
+ for (const c of creates) {
327
+ // 같은 task_id 중복 create 는 첫 create 가 정본(멱등) — 이후는 무시.
328
+ if (byId.has(c.task_id))
329
+ continue;
330
+ byId.set(c.task_id, {
331
+ task_id: c.task_id,
332
+ title: c.title,
333
+ status: c.status,
334
+ assignees: c.assignees,
335
+ });
336
+ }
337
+ for (const u of updates) {
338
+ const t = byId.get(u.task_id);
339
+ if (!t)
340
+ continue; // create 없는 update 는 무시(방어)
341
+ if (u.status !== undefined)
342
+ t.status = u.status;
343
+ if (u.assignees !== undefined)
344
+ t.assignees = u.assignees;
345
+ if (u.progress !== undefined)
346
+ t.progress = u.progress;
347
+ if (u.note !== undefined)
348
+ t.note = u.note;
349
+ }
350
+ const tasks = [...byId.values()];
351
+ const byStatus = {
352
+ todo: 0,
353
+ in_progress: 0,
354
+ blocked: 0,
355
+ done: 0,
356
+ cancelled: 0,
357
+ };
358
+ for (const t of tasks)
359
+ byStatus[t.status]++;
360
+ const total = tasks.length;
361
+ const cancelled = byStatus.cancelled;
362
+ const done = byStatus.done;
363
+ const active = total - done - cancelled;
364
+ const countable = total - cancelled;
365
+ const percent = countable > 0 ? Math.round((done / countable) * 100) : 0;
366
+ return { total, done, active, cancelled, percent, byStatus, tasks };
367
+ }
368
+ // --------------------------------------------------------------------------
369
+ // org.corp.a2a.request / .result (에이전트 ↔ 에이전트 협업, 메시지 이벤트)
370
+ // --------------------------------------------------------------------------
371
+ // RFC §D4: A2A = 에이전트 ↔ 에이전트. 한 에이전트가 다른 에이전트에게 작업을 위임하고
372
+ // 결과를 회수한다. (UI 카드/액션과 별개의 채널 — 사람용 UI가 아니라 에이전트 간 프로토콜)
373
+ export const A2aRequestContentSchema = z.object({
374
+ v: VersionSchema,
375
+ request_id: z.string().min(1),
376
+ from_agent: z.string(),
377
+ to_agent: z.string(),
378
+ /** 위임 의도. 예: "invoice.second_approval" */
379
+ intent: z.string().min(1),
380
+ payload: z.record(z.string(), z.unknown()).optional(),
381
+ reason: z.string().optional(),
382
+ });
383
+ export const A2aResultContentSchema = z.object({
384
+ v: VersionSchema,
385
+ request_id: z.string().min(1),
386
+ from_agent: z.string(),
387
+ to_agent: z.string(),
388
+ status: z.enum(["approved", "rejected", "completed", "error"]),
389
+ result: z.record(z.string(), z.unknown()).optional(),
390
+ note: z.string().optional(),
391
+ "m.relates_to": z
392
+ .object({ rel_type: z.literal("m.reference"), event_id: z.string() })
393
+ .optional(),
394
+ });
395
+ // --------------------------------------------------------------------------
396
+ // 빌더 헬퍼
397
+ // --------------------------------------------------------------------------
398
+ /** 전용 이벤트 타입(org.corp.ui.card)으로 보낼 content를 만든다. */
399
+ export function buildUiCardContent(card) {
400
+ return UiCardContentSchema.parse({ ...card, v: SCHEMA_VERSION });
401
+ }
402
+ /**
403
+ * m.room.message 안에 UI 카드를 끼워 보낼 content를 만든다 (권장 기본 경로).
404
+ * Element/Cinny 등 미지원 클라는 fallback 텍스트를 보고, 우리 클라는 카드를 렌더한다.
405
+ */
406
+ export function buildUiMessageContent(card) {
407
+ const content = buildUiCardContent(card);
408
+ return {
409
+ msgtype: "m.text",
410
+ body: content.fallback,
411
+ [UI_CONTENT_KEY]: content,
412
+ };
413
+ }
414
+ /**
415
+ * 기존 UI 카드를 m.replace 로 편집하는 m.room.message content를 만든다.
416
+ * 진행률 갱신(progress 블록 스트리밍)이나 상태 전이(state: submitted 등)에 쓴다.
417
+ * 미지원 클라는 m.new_content.body(평문)를 보고, 우리 클라는 m.new_content[UI_CONTENT_KEY]를 렌더한다.
418
+ */
419
+ export function buildUiMessageEdit(originalEventId, card) {
420
+ const newContent = buildUiMessageContent(card);
421
+ return {
422
+ // 최상위는 편집 전 클라이언트용 fallback (관례상 "* " 접두사)
423
+ msgtype: "m.text",
424
+ body: `* ${newContent.body}`,
425
+ [UI_CONTENT_KEY]: newContent[UI_CONTENT_KEY],
426
+ "m.relates_to": { rel_type: "m.replace", event_id: originalEventId },
427
+ "m.new_content": newContent,
428
+ };
429
+ }
430
+ /**
431
+ * 기존 카드에 부분 갱신을 적용한 **새** 카드를 만든다(원본 불변). 첫 progress/steps 블록만 대상으로 하고,
432
+ * 결과는 buildUiCardContent 로 재검증한다(범위 밖 값은 거부). 라이브 스트리밍 진행의 표준 갱신 단위.
433
+ */
434
+ export function applyCardPatch(card, patch) {
435
+ let progressPatched = false;
436
+ let stepsPatched = false;
437
+ const blocks = card.blocks.map((b) => {
438
+ if (b.type === "progress" && patch.progress !== undefined && !progressPatched) {
439
+ progressPatched = true;
440
+ const pp = typeof patch.progress === "number" ? { value: patch.progress } : patch.progress;
441
+ return {
442
+ type: "progress",
443
+ // 와이어 canonical JSON 은 소수 금지 → 분수 퍼센트(예 100/3)가 들어와도 반올림해 int 로 보낸다(400 방지).
444
+ value: pp.value !== undefined ? Math.round(pp.value) : b.value,
445
+ label: pp.label !== undefined ? pp.label : b.label,
446
+ tone: pp.tone !== undefined ? pp.tone : b.tone,
447
+ };
448
+ }
449
+ if (b.type === "steps" && patch.steps?.length && !stepsPatched) {
450
+ stepsPatched = true;
451
+ const items = b.items.map((it, i) => {
452
+ const e = patch.steps?.find((s) => s.index === i);
453
+ if (!e)
454
+ return it;
455
+ return {
456
+ label: it.label,
457
+ status: e.status !== undefined ? e.status : it.status,
458
+ note: e.note !== undefined ? e.note : it.note,
459
+ };
460
+ });
461
+ return { type: "steps", items };
462
+ }
463
+ return b;
464
+ });
465
+ return buildUiCardContent({
466
+ ...card,
467
+ blocks,
468
+ ...(patch.state !== undefined ? { state: patch.state } : {}),
469
+ ...(patch.title !== undefined ? { title: patch.title } : {}),
470
+ ...(patch.fallback !== undefined ? { fallback: patch.fallback } : {}),
471
+ });
472
+ }
473
+ /**
474
+ * 라이브 카드 갱신 m.replace 메시지를 만든다 = applyCardPatch + buildUiMessageEdit.
475
+ * 에이전트가 "진행 60%·2번 단계 done" 처럼 부분 갱신만 넘기면 편집 이벤트가 완성된다.
476
+ */
477
+ export function buildCardEdit(originalEventId, card, patch) {
478
+ return buildUiMessageEdit(originalEventId, applyCardPatch(card, patch));
479
+ }
480
+ /** 룸↔도메인 바인딩 상태 이벤트 content를 만든다 (state_key = "" 로 발행). */
481
+ export function buildRoomBinding(binding) {
482
+ return RoomBindingContentSchema.parse({ ...binding, v: SCHEMA_VERSION });
483
+ }
484
+ /** 다단계 승인 요청 content를 만든다 (org.corp.approval.request). */
485
+ export function buildApprovalRequest(req) {
486
+ return ApprovalRequestContentSchema.parse({ ...req, v: SCHEMA_VERSION });
487
+ }
488
+ /** 승인 결정(승인/반려) content를 만든다 (org.corp.approval.decision, 요청을 m.reference). */
489
+ export function buildApprovalDecision(dec) {
490
+ return ApprovalDecisionContentSchema.parse({ ...dec, v: SCHEMA_VERSION });
491
+ }
492
+ /**
493
+ * approval.request + 그 request_id 의 decision 스트림에서 진행 상태를 파생한다(데이터 우선,
494
+ * summarizeTasks 동형). 트리아지 표면(모바일 홈 '승인 대기' 카드 등)이 "내가 결재할 것"을
495
+ * 골라내는 판정 — 표시용이며, 권한/유효성의 권위는 항상 서버(canPublish + appservice 재검증).
496
+ * decisions 는 다른 request_id 가 섞여 있어도 되고(여기서 거른다), 같은 승인자의 중복 결정은
497
+ * 첫 결정이 이긴다(결정 번복은 스코프 밖 — 스키마에 철회 이벤트가 없다).
498
+ */
499
+ export function approvalProgress(self, request, decisions) {
500
+ const required = request.min_approvals ?? request.approvers.length;
501
+ const seen = new Set();
502
+ let approvals = 0;
503
+ let rejected = false;
504
+ let selfDecided = false;
505
+ for (const d of decisions) {
506
+ if (d.request_id !== request.request_id)
507
+ continue;
508
+ if (seen.has(d.approver))
509
+ continue; // 같은 승인자 재결정 무시(첫 결정 유지).
510
+ seen.add(d.approver);
511
+ if (d.decision === "approve")
512
+ approvals += 1;
513
+ else
514
+ rejected = true;
515
+ if (d.approver === self)
516
+ selfDecided = true;
517
+ }
518
+ const resolved = rejected || approvals >= required;
519
+ return {
520
+ required,
521
+ approvals,
522
+ resolved,
523
+ pendingForSelf: !resolved && !selfDecided && request.approvers.includes(self),
524
+ };
525
+ }
526
+ /** 에이전트 런 계획 content를 만든다 (org.corp.agent.plan — 런의 단계 골격). */
527
+ export function buildAgentPlan(plan) {
528
+ return AgentPlanContentSchema.parse({ ...plan, v: SCHEMA_VERSION });
529
+ }
530
+ /** 에이전트 런 단계 갱신 content를 만든다 (org.corp.agent.step, 런/단계를 가리킨다). */
531
+ export function buildAgentStep(step) {
532
+ return AgentStepContentSchema.parse({ ...step, v: SCHEMA_VERSION });
533
+ }
534
+ /**
535
+ * 기존 agent.plan 이벤트를 m.replace 로 편집하는 content를 만든다 — 런이 진행되며 단계 상태/공정률을 갱신한다.
536
+ * 전용 이벤트 타입(org.corp.agent.plan)도 buildUiMessageEdit 와 같은 m.replace+m.new_content 형태로 흘려,
537
+ * 편집 인지 클라는 m.new_content 의 새 plan 을, 미인지 클라는 top-level content(=새 plan)를 본다.
538
+ */
539
+ export function buildAgentPlanEdit(originalEventId, plan) {
540
+ const content = buildAgentPlan(plan);
541
+ return {
542
+ ...content,
543
+ "m.relates_to": { rel_type: "m.replace", event_id: originalEventId },
544
+ "m.new_content": content,
545
+ };
546
+ }
547
+ /** 작업항목 생성 content를 만든다 (org.corp.task.create — 작업 라이프사이클의 루트).
548
+ * status 는 스키마 기본값(todo)이 있어 입력에서 생략 가능하다. */
549
+ export function buildTaskCreate(task) {
550
+ return TaskCreateContentSchema.parse({ ...task, v: SCHEMA_VERSION });
551
+ }
552
+ /** 작업항목 갱신 content를 만든다 (org.corp.task.update, 바뀐 필드만 — create 를 m.reference). */
553
+ export function buildTaskUpdate(update) {
554
+ return TaskUpdateContentSchema.parse({ ...update, v: SCHEMA_VERSION });
555
+ }
556
+ /** UI 액션 회신 content를 만든다. */
557
+ export function buildUiActionContent(action) {
558
+ return UiActionContentSchema.parse({ ...action, v: SCHEMA_VERSION });
559
+ }
560
+ /** m.room.message content 또는 임의 객체에서 끼워진 UI 카드를 추출한다(있으면). */
561
+ export function extractUiCard(content) {
562
+ if (content && typeof content === "object" && UI_CONTENT_KEY in content) {
563
+ // 인바운드(렌더) 경로 — 모르는/깨진 블록만 떨어내고 strict 검증(전방호환: 카드 전체 붕괴 방지).
564
+ const raw = dropUnknownBlocks(content[UI_CONTENT_KEY]);
565
+ const parsed = UiCardContentSchema.safeParse(raw);
566
+ return parsed.success ? parsed.data : null;
567
+ }
568
+ return null;
569
+ }
570
+ export { EventType, UI_CONTENT_KEY };
571
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}