@underdogai/mesh-app-sdk 0.4.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.
package/dist/app.d.ts CHANGED
@@ -124,11 +124,17 @@ export declare function attachHandlers(app: App, handlers: Record<string, Action
124
124
  *
125
125
  * 코어 변경 0: enabledPlugins 의 원소를 plain plugin → withActions(plugin, …) 로 바꾸면 그 도메인의 버튼이 살아난다.
126
126
  * 도메인 앱이므로 core=false(방의 room.binding 에 바인딩됐을 때만 동작) — 보안 게이트는 그대로 서버.
127
- * App.surface(서피스-as-데이터)는 발행하지 않는다(레거시는 AppPack 클라 평면으로 렌더) → surfaceState=null.
127
+ *
128
+ * **서피스는 선택이다**(`opts.surface`). 기본은 여전히 발행 없음(레거시는 AppPack = 클라 번들 평면으로
129
+ * 렌더한다) 이지만, 실 방에 셸 어휘를 심어야 하는 앱은 여기에 `buildAppSurface(...)` 산출물을 준다 —
130
+ * 그러면 호스트(serve/publishSurface)가 `org.corp.app.surface` 상태이벤트로 방에 올린다.
131
+ * 🔴 AppPack 과 **다른 물건**이다: 팩은 클라 빌드에 박혀 갤러리·데모를 그리고, 서피스는 와이어를 타고
132
+ * 실 방으로 간다. 한 앱이 둘 다 가질 수 있고(forgejo 가 그렇다) 내용이 달라도 된다.
128
133
  */
129
134
  export declare function withActions(plugin: Plugin, opts: {
130
135
  actions: AppAction[];
131
136
  handlers: Record<string, ActionHandler>;
137
+ surface?: AppSurfaceContent;
132
138
  }): App;
133
139
  /** Plugin 이 App(=defineApp 산출물)인지 판정 — 액션/핸들러/이벤트를 가진 상위집합. 라이브 AS 가 enabledPlugins 에서 App 만 추릴 때 쓴다. */
134
140
  export declare function isApp(p: Plugin): p is App;
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
package/dist/app.js CHANGED
@@ -170,7 +170,12 @@ export function attachHandlers(app, handlers) {
170
170
  *
171
171
  * 코어 변경 0: enabledPlugins 의 원소를 plain plugin → withActions(plugin, …) 로 바꾸면 그 도메인의 버튼이 살아난다.
172
172
  * 도메인 앱이므로 core=false(방의 room.binding 에 바인딩됐을 때만 동작) — 보안 게이트는 그대로 서버.
173
- * App.surface(서피스-as-데이터)는 발행하지 않는다(레거시는 AppPack 클라 평면으로 렌더) → surfaceState=null.
173
+ *
174
+ * **서피스는 선택이다**(`opts.surface`). 기본은 여전히 발행 없음(레거시는 AppPack = 클라 번들 평면으로
175
+ * 렌더한다) 이지만, 실 방에 셸 어휘를 심어야 하는 앱은 여기에 `buildAppSurface(...)` 산출물을 준다 —
176
+ * 그러면 호스트(serve/publishSurface)가 `org.corp.app.surface` 상태이벤트로 방에 올린다.
177
+ * 🔴 AppPack 과 **다른 물건**이다: 팩은 클라 빌드에 박혀 갤러리·데모를 그리고, 서피스는 와이어를 타고
178
+ * 실 방으로 간다. 한 앱이 둘 다 가질 수 있고(forgejo 가 그렇다) 내용이 달라도 된다.
174
179
  */
175
180
  export function withActions(plugin, opts) {
176
181
  const app = plugin.app ?? plugin.id;
@@ -192,10 +197,10 @@ export function withActions(plugin, opts) {
192
197
  handlers,
193
198
  events: {},
194
199
  on: new Map(),
195
- // 레거시 플러그인은 App.messageForEvent(이벤트→카드) 대신 자기 toCard/템플릿으로 렌더하고,
196
- // 서피스는 AppPack(클라 평면)으로 등록한다 → App 의 데이터 평면 두 메서드는 비활성(null).
200
+ // 레거시 플러그인은 App.messageForEvent(이벤트→카드) 대신 자기 toCard/템플릿으로 렌더한다.
197
201
  messageForEvent: () => null,
198
- surfaceState: () => null,
202
+ // 서피스는 준 경우에만. 안 주면 종전대로 발행 없음(AppPack 클라 평면으로만 렌더).
203
+ surfaceState: () => opts.surface ?? null,
199
204
  };
200
205
  }
201
206
  /** Plugin 이 App(=defineApp 산출물)인지 판정 — 액션/핸들러/이벤트를 가진 상위집합. 라이브 AS 가 enabledPlugins 에서 App 만 추릴 때 쓴다. */
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * 핵심: 새 블록을 만들지 않는다(코어 어휘만 조합). 그래서 결과가 "데이터"로 남고 — App Service 가
5
5
  * 그대로 와이어에 실어 보내면 클라가 가진 렌더러로 그린다(클라 무변경 = "AS만 추가해도 UI 등록").
6
6
  */
7
- import { type Block, type PanelSpec, type SurfaceSection, type Tone, type UiCardContent } from "@underdogai/mesh-event-schemas";
7
+ import { type ActivityBlock, type Block, type PanelSpec, type SurfaceSection, type Tone, type UiCardContent } from "@underdogai/mesh-event-schemas";
8
8
  import type { ButtonElement } from "./action.js";
9
9
  export interface CardOpts {
10
10
  title?: string;
@@ -96,12 +96,48 @@ export declare const card: {
96
96
  checkbox(name: string, label: string, opts?: {
97
97
  checked?: boolean;
98
98
  }): Block;
99
+ /**
100
+ * 위치 입력 — 버튼 한 번으로 OS 권한 수락 + 현재 위치를 받아 폼에 수집한다.
101
+ *
102
+ * 값은 `LocationValue`(`{ uri: "geo:37.5665,126.978;u=35", accuracy_m?, captured_at? }`) —
103
+ * 좌표가 **문자열 geo URI** 인 이유는 Matrix canonical JSON 이 부동소수를 허용하지 않기 때문이다
104
+ * (`m.location`/MSC3488 과 같은 형식). 핸들러는 `LocationValueSchema.parse(ctx.values.<name>)`
105
+ * 또는 `parseGeoUri(v.uri)` 로 위도·경도를 얻는다.
106
+ *
107
+ * `purpose` 는 **OS 권한창보다 먼저** 카드에 보이는 한 줄이다 — 시스템 권한 문구는 앱 전체에
108
+ * 하나뿐이라, "이 카드가 왜 위치를 묻는가"는 여기서만 말할 수 있다(그리고 그게 심사가 보는 것이다).
109
+ * 아직 위치를 못 쓰는 셸/브라우저에서는 클라가 버튼을 비활성 + 이유로 degrade 한다.
110
+ */
111
+ location(name: string, opts?: {
112
+ label?: string;
113
+ purpose?: string;
114
+ required?: boolean;
115
+ precise?: boolean;
116
+ buttonText?: string;
117
+ }): Block;
99
118
  /** 토글 스위치(불리언 수집, on/off 어포던스). */
100
119
  toggle(name: string, label: string, opts?: {
101
120
  checked?: boolean;
102
121
  onText?: string;
103
122
  offText?: string;
104
123
  }): Block;
124
+ /**
125
+ * 처리 이력(0.8.0) — 주어가 참조인 시간순 목록. **블록 하나가 아니라 배열을 돌려준다.**
126
+ *
127
+ * 🔴 **왜 배열인가**: `activity` 는 새 *블록 타입*이라 옛 클라의 `dropUnknownBlocks` 에서 **통째로
128
+ * 떨어진다**(키 추가와 달리 평문 사본이 곁에 설 자리가 없다). 그래서 전환기 동안 같은 내용을
129
+ * `collapsible`+`text` 사본으로 **같이** 낸다 — 옛 클라는 사본만, 새 클라는 원본만 그린다
130
+ * (새 렌더러가 `legacy_for: "activity"` 를 보고 사본을 건너뛴다).
131
+ *
132
+ * 클라 배포가 충분히 퍼지면 `{ legacy: false }` 로 끄고, 그다음 기본값을 바꾼다(이 시리즈 밖).
133
+ *
134
+ * @param items **최신순**(맨 앞이 가장 최근).
135
+ */
136
+ activity(items: ActivityBlock["items"], opts?: {
137
+ label?: string;
138
+ maxVisible?: number;
139
+ legacy?: boolean;
140
+ }): Block[];
105
141
  };
106
142
  /** 우측 셸 패널(PanelSpec) 빌더 — 닫힌 SurfaceBody 조합. value 문자열의 {{entity.path}} 는 클라가 바인딩. */
107
143
  export declare const panel: {
@@ -1 +1 @@
1
- {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"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"}
package/dist/builders.js CHANGED
@@ -79,11 +79,74 @@ export const card = {
79
79
  checkbox(name, label, opts = {}) {
80
80
  return { type: "checkbox", name, label, ...opts };
81
81
  },
82
+ /**
83
+ * 위치 입력 — 버튼 한 번으로 OS 권한 수락 + 현재 위치를 받아 폼에 수집한다.
84
+ *
85
+ * 값은 `LocationValue`(`{ uri: "geo:37.5665,126.978;u=35", accuracy_m?, captured_at? }`) —
86
+ * 좌표가 **문자열 geo URI** 인 이유는 Matrix canonical JSON 이 부동소수를 허용하지 않기 때문이다
87
+ * (`m.location`/MSC3488 과 같은 형식). 핸들러는 `LocationValueSchema.parse(ctx.values.<name>)`
88
+ * 또는 `parseGeoUri(v.uri)` 로 위도·경도를 얻는다.
89
+ *
90
+ * `purpose` 는 **OS 권한창보다 먼저** 카드에 보이는 한 줄이다 — 시스템 권한 문구는 앱 전체에
91
+ * 하나뿐이라, "이 카드가 왜 위치를 묻는가"는 여기서만 말할 수 있다(그리고 그게 심사가 보는 것이다).
92
+ * 아직 위치를 못 쓰는 셸/브라우저에서는 클라가 버튼을 비활성 + 이유로 degrade 한다.
93
+ */
94
+ location(name, opts = {}) {
95
+ return { type: "location", name, ...opts };
96
+ },
82
97
  /** 토글 스위치(불리언 수집, on/off 어포던스). */
83
98
  toggle(name, label, opts = {}) {
84
99
  return { type: "toggle", name, label, ...opts };
85
100
  },
101
+ /**
102
+ * 처리 이력(0.8.0) — 주어가 참조인 시간순 목록. **블록 하나가 아니라 배열을 돌려준다.**
103
+ *
104
+ * 🔴 **왜 배열인가**: `activity` 는 새 *블록 타입*이라 옛 클라의 `dropUnknownBlocks` 에서 **통째로
105
+ * 떨어진다**(키 추가와 달리 평문 사본이 곁에 설 자리가 없다). 그래서 전환기 동안 같은 내용을
106
+ * `collapsible`+`text` 사본으로 **같이** 낸다 — 옛 클라는 사본만, 새 클라는 원본만 그린다
107
+ * (새 렌더러가 `legacy_for: "activity"` 를 보고 사본을 건너뛴다).
108
+ *
109
+ * 클라 배포가 충분히 퍼지면 `{ legacy: false }` 로 끄고, 그다음 기본값을 바꾼다(이 시리즈 밖).
110
+ *
111
+ * @param items **최신순**(맨 앞이 가장 최근).
112
+ */
113
+ activity(items, opts = {}) {
114
+ const block = {
115
+ type: "activity",
116
+ items,
117
+ ...(opts.label ? { label: opts.label } : {}),
118
+ ...(opts.maxVisible ? { maxVisible: opts.maxVisible } : {}),
119
+ };
120
+ if (opts.legacy === false)
121
+ return [block];
122
+ return [block, legacyActivityCopy(items, opts.label)];
123
+ },
86
124
  };
125
+ /**
126
+ * 옛 클라용 `activity` 사본 — 접기 안의 평문 여러 줄("누가 · 무엇 · 언제").
127
+ *
128
+ * 마크다운을 켜지 않는다: `what` 은 인라인 마크다운이 허용되지만, 여기서 켜면 옛 클라가 굵게·링크를
129
+ * 그리면서 줄 구조를 잃는다. 사본의 목적은 **정보가 사라지지 않는 것**이지 예쁘게 보이는 게 아니다.
130
+ */
131
+ function legacyActivityCopy(items, label) {
132
+ const lines = items.map((it) => {
133
+ const who = refText(it.who);
134
+ const to = it.to ? ` → ${refText(it.to)}` : "";
135
+ return `${who} · ${it.what}${to} · ${it.at}`;
136
+ });
137
+ return {
138
+ type: "collapsible",
139
+ title: label ?? "Activity",
140
+ legacy_for: "activity",
141
+ blocks: [{ type: "text", text: lines.join("\n") }],
142
+ };
143
+ }
144
+ /** 참조를 사본용 문자열로 — 사람은 MXID, 엔티티는 `type · id`(해석기가 없는 쪽이 읽는 글이다). */
145
+ function refText(v) {
146
+ if (typeof v === "string")
147
+ return v;
148
+ return "user" in v ? v.user : `${v.entity.type} · ${v.entity.id}`;
149
+ }
87
150
  /** 우측 셸 패널(PanelSpec) 빌더 — 닫힌 SurfaceBody 조합. value 문자열의 {{entity.path}} 는 클라가 바인딩. */
88
151
  export const panel = {
89
152
  sections(sections) {
@@ -1 +1 @@
1
- {"version":3,"file":"builders.js","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builders.js","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,kBAAkB,GAOnB,MAAM,gCAAgC,CAAC;AAUxC,sDAAsD;AACtD,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,qDAAqD;IACrD,KAAK,CAAC,OAAe,EAAE,MAAe,EAAE,OAAiB,EAAE;QACzD,OAAO,kBAAkB,CAAC;YACxB,OAAO;YACP,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO;YAChD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IACD;;;OAGG;IACH,MAAM,CAAC,KAAkD;QACvD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,CAAC,IAAY;QACf,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,CAAC,QAAyB;QAC/B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACvC,CAAC;IACD,2CAA2C;IAC3C,qBAAqB;IACrB,KAAK,CAAC,IAAY,EAAE,IAAW;QAC7B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC5D,CAAC;IACD,0BAA0B;IAC1B,KAAK,CAAC,OAAiB,EAAE,IAAgB;QACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IACD,qCAAqC;IACrC,MAAM,CAAC,KAAa,EAAE,KAAa,EAAE,OAAyD,EAAE;QAC9F,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC;IACnD,CAAC;IACD,4CAA4C;IAC5C,KAAK,CAAC,KAAwF;QAC5F,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IACD,mEAAmE;IACnE,KAAK,CACH,OAA+C,EAC/C,IAAsD,EACtD,OAA0D,EAAE;QAE5D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;IACnD,CAAC;IACD,qDAAqD;IACrD,2EAA2E;IAC3E,8EAA8E;IAC9E;;;;OAIG;IACH,KAAK,CACH,IAAY,EACZ,OAQI,EAAE;QAEN,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;IAC1C,CAAC;IACD,0EAA0E;IAC1E,MAAM,CACJ,IAAY,EACZ,OAAqG,EAAE;QAEvG,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;IAC3C,CAAC;IACD,sBAAsB;IACtB,MAAM,CAAC,IAAY,EAAE,OAA2C,EAAE,OAAkF,EAAE;QACpJ,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IACpD,CAAC;IACD,iCAAiC;IACjC,KAAK,CAAC,IAAY,EAAE,OAA2C,EAAE,OAA2C,EAAE;QAC5G,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IACnD,CAAC;IACD,oBAAoB;IACpB,QAAQ,CAAC,IAAY,EAAE,KAAa,EAAE,OAA8B,EAAE;QACpE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC;IACpD,CAAC;IACD;;;;;;;;;;;OAWG;IACH,QAAQ,CACN,IAAY,EACZ,OAAyG,EAAE;QAE3G,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;IAC7C,CAAC;IACD,mCAAmC;IACnC,MAAM,CAAC,IAAY,EAAE,KAAa,EAAE,OAAiE,EAAE;QACrG,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC;IAClD,CAAC;IACD;;;;;;;;;;;OAWG;IACH,QAAQ,CACN,KAA6B,EAC7B,OAAkE,EAAE;QAEpE,MAAM,KAAK,GAAU;YACnB,IAAI,EAAE,UAAU;YAChB,KAAK;YACL,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,CAAC,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;CACF,CAAC;AAEF;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,KAA6B,EAAE,KAAc;IACvE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,OAAO,GAAG,GAAG,MAAM,EAAE,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,KAAK,IAAI,UAAU;QAC1B,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,SAAS,OAAO,CAAC,CAAwC;IACvD,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,OAAO,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;AACpE,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,QAAQ,CAAC,QAA0B;QACjC,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;IACD,MAAM,CAAC,EAAU,EAAE,KAAa,EAAE,KAAyC;QACzE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,CAAC,EAAU,EAAE,KAAa,EAAE,KAAgD;QAC9E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;IACtD,CAAC;IACD,IAAI,CAAC,EAAU,EAAE,KAAa,EAAE,OAAe,EAAE,OAAkB;QACjE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,EAAU,EAAE,KAAa,EAAE,QAAuB;QACrD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;IAC/D,CAAC;CACF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -5,7 +5,8 @@
5
5
  * 함께 선언한다. App = Plugin 상위집합 → enabledPlugins 한 줄로 클라/AS/브리지가 같은 스키마를 등록한다.
6
6
  * 보안(권한 게이트)은 호스트가 주입(의존성 역전) — SDK 는 scope/destructive 를 데이터로만 공급한다.
7
7
  *
8
- * 설계/로드맵: docs/sdk-plan.md, 필요성 기록: docs/sdk.md.
8
+ * 구조·레이어 규범: docs/architecture.md · 이벤트 계약: docs/event-model.md ·
9
+ * 새 통합을 붙이는 절차: docs/adding-an-integration.md · npm 게시: docs/publishing-sdk.md.
9
10
  */
10
11
  export * from "./action.js";
11
12
  export * from "./builders.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -5,7 +5,8 @@
5
5
  * 함께 선언한다. App = Plugin 상위집합 → enabledPlugins 한 줄로 클라/AS/브리지가 같은 스키마를 등록한다.
6
6
  * 보안(권한 게이트)은 호스트가 주입(의존성 역전) — SDK 는 scope/destructive 를 데이터로만 공급한다.
7
7
  *
8
- * 설계/로드맵: docs/sdk-plan.md, 필요성 기록: docs/sdk.md.
8
+ * 구조·레이어 규범: docs/architecture.md · 이벤트 계약: docs/event-model.md ·
9
+ * 새 통합을 붙이는 절차: docs/adding-an-integration.md · npm 게시: docs/publishing-sdk.md.
9
10
  */
10
11
  export * from "./action.js";
11
12
  export * from "./builders.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
package/dist/runtime.d.ts CHANGED
@@ -8,7 +8,7 @@
8
8
  * 핸들러는 부작용을 직접 실행하지 않고 "효과(Effect)"를 선언한다 → 실 AS 는 matrix client 로 적용,
9
9
  * 증명 스크립트는 효과 배열을 검사한다(같은 SDK 코드를 양쪽에서 검증 = 테스트성).
10
10
  */
11
- import { type UiCardContent } from "@underdogai/mesh-event-schemas";
11
+ import { type UiActionClient, type UiActionResultContent, type UiCardContent } from "@underdogai/mesh-event-schemas";
12
12
  import type { App } from "./app.js";
13
13
  /**
14
14
  * 발행 형태 — 같은 사실을 어떤 Matrix 형태로 보낼지(킥오프 §2.3).
@@ -47,7 +47,20 @@ export type Effect = {
47
47
  kind: "invoke";
48
48
  actionId: string;
49
49
  values: Record<string, unknown>;
50
+ label?: string;
51
+ }
52
+ /**
53
+ * 액션 한 건의 판정 결과를 **누른 사람에게** 되돌린다(0.7.0 — `org.corp.ui.action.result`).
54
+ *
55
+ * 선언은 "무엇을 말하는가"만 담는다: 수신자(`to`)·카드 이벤트·액션 참조는 **호스트가 채운다**
56
+ * (핸들러는 자기가 어떤 이벤트에 응답 중인지 알 필요가 없다 — `edit` 가 `cardEventId` 를 모르는 것과 같다).
57
+ */
58
+ | {
59
+ kind: "result";
60
+ result: ActionResult;
50
61
  };
62
+ /** `ctx.result(...)` 가 받는 것 — 와이어에서 호스트가 채우는 네 키를 뺀 나머지. */
63
+ export type ActionResult = Omit<UiActionResultContent, "v" | "to" | "card_event_id" | "m.relates_to">;
51
64
  /**
52
65
  * 호스트가 주입하는 백엔드 핸들 — 핸들러가 "권위 데이터를 읽고 → 판단 → 효과 선언"(read-then-decide)할 때 쓴다.
53
66
  * SDK 는 호출 형태(도구 이름 + 구조화 인자)만 정의하고, 구현(MCP 도구/HTTP)·권한 스코프는 호스트가 소유한다
@@ -84,6 +97,8 @@ export interface ActionCtx {
84
97
  cardId?: string;
85
98
  /** 폼 입력(원본). 핸들러는 action.values.parse(ctx.values) 로 타입 확보. */
86
99
  values: Record<string, unknown>;
100
+ /** 작성 클라이언트 환경(있으면, G6) — 클라의 자기 신고라 표시·진단용이지 권위 아님(권위는 sender). */
101
+ client?: UiActionClient;
87
102
  /** 편집 대상 원본 카드 event_id(있으면). */
88
103
  cardEventId?: string;
89
104
  /** 호스트 주입 백엔드(있으면) — 권위 데이터 read-then-decide. 없으면 write-only(증명/오프라인). */
@@ -117,10 +132,30 @@ export interface ActionCtx {
117
132
  emit(type: string, content: Record<string, unknown>, opts?: EmitOptions): void;
118
133
  /**
119
134
  * 효과 선언 헬퍼 — 다른 앱의 액션을 이름으로 호출한다(invoke = UI 없이 org.corp.ui.action 발행).
135
+ * `opts.label` 은 사람이 읽는 이름(액션 로그가 action_id 대신 보인다) — 카드 버튼의 글자에 해당하는 것을 앱이 준다.
120
136
  * 받는 쪽은 버튼에서 왔는지 봇이 보냈는지 구분하지 않는다. action_id 접두사(<app>.)가 라우팅 주소다.
121
137
  */
122
- invoke(actionId: string, values?: Record<string, unknown>): void;
138
+ invoke(actionId: string, values?: Record<string, unknown>, opts?: {
139
+ label?: string;
140
+ }): void;
141
+ /**
142
+ * 효과 선언 헬퍼 — 이 액션의 **판정 결과를 누른 사람에게** 되돌린다(0.7.0).
143
+ *
144
+ * ctx.result({ kind: "reject", errors: { due: "오늘 이후여야 해요" } })
145
+ * ctx.result({ kind: "denied", reason: "현재 수신자만 처리할 수 있어요" })
146
+ * ctx.result({ kind: "ok", message: "확인 처리됨" })
147
+ * ctx.result({ kind: "options", name: "to", options: [...] }) // 동적 후보(select source:query)
148
+ *
149
+ * 🔴 **`send` 로 오류 카드를 쌓던 자리를 대신한다** — 결과가 방이 아니라 누른 사람의 그 컨트롤로 간다.
150
+ * ⚠️ 한 핸들러가 `result` 를 여러 번 내면 **마지막 것만** 남는다(같은 액션에 대한 판정이 여럿일 수
151
+ * 없다 — 클라 인덱스도 같은 규칙으로 최신 하나만 그린다). 효과 배열에는 그대로 쌓이지만
152
+ * `applyEffects` 가 마지막 하나만 보낸다.
153
+ * ⚠️ `card_id`·`action_id` 는 안 줘도 된다 — 지금 처리 중인 액션의 것을 SDK 가 채운다.
154
+ */
155
+ result(r: PartialActionResult): void;
123
156
  }
157
+ /** `ctx.result(...)` 의 인자 — `card_id`/`action_id` 는 SDK 가 채우므로 생략할 수 있다. */
158
+ export type PartialActionResult = Omit<ActionResult, "card_id" | "action_id"> & Partial<Pick<ActionResult, "card_id" | "action_id">>;
124
159
  export type ActionHandler = (ctx: ActionCtx) => void | Promise<void>;
125
160
  /** 호스트가 주입하는 권한 게이트(= appservice-agent/policy.evaluateAction 의 얇은 래퍼). */
126
161
  export type GateFn = (input: {
@@ -157,6 +192,17 @@ export interface DispatchInput {
157
192
  stateReader?: (type: string, stateKey: string) => Promise<Record<string, unknown> | null>;
158
193
  /** 호스트 주입 앱 정책 설정(선택) — ctx.config 로 핸들러에 전달(예: { approvalThreshold }). */
159
194
  config?: Record<string, unknown>;
195
+ /**
196
+ * 값 검증 실패·권한 거절에 **결과 효과를 자동으로 붙일지**(기본 true, 0.7.0).
197
+ *
198
+ * 왜 기본이 켬인가: 이 두 경로는 지금까지 **핸들러에 도달조차 안 했다** — 앱 코드가 개입할 자리가
199
+ * 없어서 사용자는 아무 반응도 못 봤다(`ignored`) 또는 앱이 따로 오류 카드를 쌓았다. 자동으로 붙이면
200
+ * **앱을 한 줄도 안 고치고** 옛 앱의 거절·검증 실패가 누른 사람의 그 컨트롤로 인라인 회신된다.
201
+ *
202
+ * 끄는 경우: 결과 문구를 앱이 전부 소유하고 싶거나(전환기 중복 방지), 증명 스크립트가 효과 배열을
203
+ * 엄격히 재는 경우.
204
+ */
205
+ autoResult?: boolean;
160
206
  }
161
207
  export interface DispatchResult {
162
208
  status: "ran" | "denied" | "ignored";
@@ -183,7 +229,9 @@ export interface EventCtx {
183
229
  /** 효과 선언 헬퍼 — 자기 사실을 발행한다(규칙은 ActionCtx.emit 과 동일). */
184
230
  emit(type: string, content: Record<string, unknown>, opts?: EmitOptions): void;
185
231
  /** 효과 선언 헬퍼 — 다른 앱의 액션을 호출한다(규칙은 ActionCtx.invoke 와 동일). */
186
- invoke(actionId: string, values?: Record<string, unknown>): void;
232
+ invoke(actionId: string, values?: Record<string, unknown>, opts?: {
233
+ label?: string;
234
+ }): void;
187
235
  }
188
236
  export type EventHandler = (ctx: EventCtx) => void | Promise<void>;
189
237
  export interface DispatchEventInput {
@@ -237,6 +285,14 @@ export interface ApplyEffectsInput {
237
285
  };
238
286
  /** workflow.updated_by 로 기록할 주체(보통 액션 발신자). */
239
287
  sender?: string;
288
+ /**
289
+ * `result` 효과의 **수신자**(0.7.0) — 이 액션을 누른 사람의 MXID. 없으면 결과를 보낼 곳이 없으므로
290
+ * 경고 후 건너뛴다(throw 하지 않는다 — 결과 회신은 부가 기능이고, 그것 때문에 뒤따르는 카드 편집이
291
+ * 취소되면 더 나쁘다. `workflow` 가 로그 후 계속하는 것과 같은 판단).
292
+ */
293
+ actor?: string;
294
+ /** `result` 효과가 가리킬 **액션** 이벤트 id(0.7.0). 없으면 `m.relates_to` 없이 보낸다(card_id 로 붙는다). */
295
+ actionEventId?: string;
240
296
  /**
241
297
  * delegate 효과 콜백 — stateful·교차에이전트(A2A) 프로토콜은 호스트가 소유한다. 미주입 호스트(1회 발행·
242
298
  * 단순 봇)에서 delegate 가 나오면 경고 후 무시한다(조용한 유실 방지 로그).
@@ -250,8 +306,14 @@ export interface ApplyEffectsInput {
250
306
  }
251
307
  /**
252
308
  * 핸들러가 선언한 효과를 Matrix 로 적용한다 — 호스트 무관(AS 에이전트·봇 계정·증명 스크립트가 같은 코드 사용).
253
- * 배열 순서대로 적용한다. edit/send/emit/invoke 전송 실패는 throw(호스트가 회복 정책 소유),
254
- * workflow 는 상태 이벤트 특성상 로그 후 계속(agent 레거시 동작 보존 — 카드 갱신을 막지 않는다).
309
+ * 배열 순서대로 적용한다. edit/send/emit/invoke 전송 실패는 throw(호스트가 회복 정책 소유).
310
+ *
311
+ * `workflow` 만 예외로 **로그 후 계속**한다. 이건 관대함이 아니라 순서의 문제다: workflow 는 보통 카드
312
+ * 편집 **뒤에** 오는 부기(bookkeeping)라, 여기서 throw 하면 이미 사용자 화면에 반영된 작업의 나머지 효과가
313
+ * 취소된다 — 진짜 일(머지·승인)은 이미 끝났는데 후속 효과만 잃는 게 더 나쁘다.
314
+ *
315
+ * 대신 **조용하지는 않게** 한다: 403(봇 PL 부족)은 가장 흔한 원인이자 유일하게 사람이 고칠 수 있는
316
+ * 원인이라, 로그가 원인과 **조치 두 갈래**를 같이 적는다(로그만 보고 판단할 수 있게).
255
317
  */
256
318
  export declare function applyEffects(input: ApplyEffectsInput): Promise<void>;
257
319
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}