@my-life-buddies/buddy-runtime 0.3.0 → 0.4.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 +181 -181
  2. package/dist/conversation/agent.d.ts +3 -4
  3. package/dist/conversation/agent.d.ts.map +1 -1
  4. package/dist/conversation/agent.js +36 -20
  5. package/dist/conversation/agent.js.map +1 -1
  6. package/dist/conversation/agentMessageLLMMessageConverter.d.ts +3 -2
  7. package/dist/conversation/agentMessageLLMMessageConverter.d.ts.map +1 -1
  8. package/dist/conversation/agentMessageLLMMessageConverter.js +5 -14
  9. package/dist/conversation/agentMessageLLMMessageConverter.js.map +1 -1
  10. package/dist/conversation/index.d.ts +0 -2
  11. package/dist/conversation/index.d.ts.map +1 -1
  12. package/dist/conversation/index.js +13 -36
  13. package/dist/conversation/index.js.map +1 -1
  14. package/dist/conversation/mlbMessageAgentMessageConverter.d.ts +3 -2
  15. package/dist/conversation/mlbMessageAgentMessageConverter.d.ts.map +1 -1
  16. package/dist/conversation/mlbMessageAgentMessageConverter.js +13 -9
  17. package/dist/conversation/mlbMessageAgentMessageConverter.js.map +1 -1
  18. package/dist/conversation/writeMLBMessage.d.ts +1 -1
  19. package/dist/conversation/writeMLBMessage.d.ts.map +1 -1
  20. package/dist/conversation/writeMLBMessage.js +2 -2
  21. package/dist/conversation/writeMLBMessage.js.map +1 -1
  22. package/dist/index.d.ts +0 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +0 -2
  25. package/dist/index.js.map +1 -1
  26. package/dist/platform/mlbClient.d.ts +33 -18
  27. package/dist/platform/mlbClient.d.ts.map +1 -1
  28. package/dist/platform/mlbClient.js +60 -32
  29. package/dist/platform/mlbClient.js.map +1 -1
  30. package/dist/tools/dataAccess.d.ts +1 -1
  31. package/dist/tools/dataAccess.d.ts.map +1 -1
  32. package/dist/tools/dataAccess.js +2 -2
  33. package/dist/tools/dataAccess.js.map +1 -1
  34. package/dist/tools/widgets.d.ts +4 -4
  35. package/dist/tools/widgets.d.ts.map +1 -1
  36. package/dist/tools/widgets.js +13 -11
  37. package/dist/tools/widgets.js.map +1 -1
  38. package/dist/types.d.ts +39 -9
  39. package/dist/types.d.ts.map +1 -1
  40. package/package.json +1 -1
  41. package/dist/platform/client.d.ts +0 -48
  42. package/dist/platform/client.d.ts.map +0 -1
  43. package/dist/platform/client.js +0 -24
  44. package/dist/platform/client.js.map +0 -1
  45. package/dist/platform/widgets.d.ts +0 -75
  46. package/dist/platform/widgets.d.ts.map +0 -1
  47. package/dist/platform/widgets.js +0 -88
  48. package/dist/platform/widgets.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  // 小挂件工具:把平台的小挂件接口包成五个 pi AgentTool,交给模型在会话里建面板、写记录、读记录、删记录、把小挂件发进聊天流。
2
- // 管:五个工具的名字与 label(固定,人设按名字叫它们)、参数 schema(typebox)、description 里把小挂件类型目录渲染成人话、
3
- // 调用共享 Client;失败抛给 pi 标为错误,不能伪报成功。
4
- // 不管:HTTP 请求本身(platform/)、类型目录从哪拉(server.ts 懒拉一次)、什么时候把工具装进 Agent(conversation/agent.ts)。
2
+ // 管:五个工具的名字与 label(固定,人设按名字叫它们)、参数 schema(typebox)、description 里把小挂件类型目录渲染成人话;
3
+ // 前四个调 MLBClient 的小挂件接口,widget_send 把小挂件引用放进这场会话的发送队列;失败抛给 pi 标为错误,不能伪报成功。
4
+ // 不管:HTTP 请求本身(platform/mlbClient.ts)、类型目录从哪拉(server.ts 懒拉一次)、什么时候把工具装进 Agent(conversation/agent.ts)。
5
5
  import { Type } from "typebox";
6
6
  /** JSON Schema 的 type 值 → 目录里给模型看的中文类型词 */
7
7
  const TYPE_WORDS = {
@@ -109,9 +109,9 @@ const sendParams = Type.Object({
109
109
  });
110
110
  /**
111
111
  * 给一场会话造五个小挂件工具。types 为空说明平台没开放任何小挂件类型,回 [],模型就见不到这些工具。
112
- * 五个工具都绑死在这场会话的 convoKey 上,跨会话看不见对方的小挂件。
112
+ * 五个工具都绑死在这场会话的 convoKey 上,跨会话看不见对方的小挂件;enqueueMessage 是这场会话的发送队列。
113
113
  */
114
- export function widgetTools(client, types) {
114
+ export function widgetTools(client, convoKey, types, enqueueMessage) {
115
115
  if (types.length === 0)
116
116
  return [];
117
117
  const catalog = renderCatalog(types);
@@ -122,7 +122,7 @@ export function widgetTools(client, types) {
122
122
  `你能建的类型:\n${catalog}`,
123
123
  parameters: createParams,
124
124
  execute: async (callId, params, signal) => {
125
- const { id } = await client.create({ ...params, idempotencyKey: `widget-create:${callId}` }, { signal });
125
+ const { id } = await client.widgetCreate(convoKey, { ...params, idempotencyKey: `widget-create:${callId}` }, signal);
126
126
  return text(`建好了,小挂件 id 是 ${id}。后续使用当前可用的工具写入内容并发送引用;这里只确认创建。`);
127
127
  },
128
128
  };
@@ -133,7 +133,8 @@ export function widgetTools(client, types) {
133
133
  `各类型的模块与字段:\n${catalog}`,
134
134
  parameters: writeParams,
135
135
  execute: async (_id, params, signal) => {
136
- const { revision } = await client.write(params.widgetId, { ...params, data: params.data }, { signal });
136
+ const { widgetId, module, recordId, expectedRevision } = params;
137
+ const { revision } = await client.widgetWrite(convoKey, widgetId, { module, recordId, data: params.data, expectedRevision }, signal);
137
138
  return text(`写好了:${params.module}/${params.recordId}${revision === undefined ? "" : `(revision ${String(revision)})`}`);
138
139
  },
139
140
  };
@@ -144,8 +145,8 @@ export function widgetTools(client, types) {
144
145
  parameters: readParams,
145
146
  execute: async (_id, params, signal) => {
146
147
  if (params.module === undefined)
147
- return text(renderWidget(await client.read(params.widgetId, { signal })));
148
- const body = await client.readModule(params.widgetId, params.module, { signal });
148
+ return text(renderWidget(await client.widgetRead(convoKey, params.widgetId, signal)));
149
+ const body = await client.widgetReadModule(convoKey, params.widgetId, params.module, signal);
149
150
  return text(renderRecords(params.module, body.records).join("\n"));
150
151
  },
151
152
  };
@@ -155,7 +156,7 @@ export function widgetTools(client, types) {
155
156
  description: "删掉小挂件某个模块里的一条记录。删的是记录,不是整个小挂件。",
156
157
  parameters: deleteParams,
157
158
  execute: async (_id, params, signal) => {
158
- await client.deleteRecord(params.widgetId, params.module, params.recordId, { signal });
159
+ await client.widgetDeleteRecord(convoKey, params.widgetId, params.module, params.recordId, signal);
159
160
  return text(`删掉了:${params.module}/${params.recordId}`);
160
161
  },
161
162
  };
@@ -165,7 +166,8 @@ export function widgetTools(client, types) {
165
166
  description: "把一个建好的小挂件发进聊天流,用户点开就能看。内容改了不用重发,用户点开看到的就是最新的;同一个小挂件也可以再发一次。",
166
167
  parameters: sendParams,
167
168
  execute: async (callId, params, signal) => {
168
- client.send(params.widgetId, { idempotencyKey: `widget-send:${callId}`, signal });
169
+ signal?.throwIfAborted();
170
+ enqueueMessage({ type: "widget", widget: { id: params.widgetId }, idempotencyKey: `widget-send:${callId}` });
169
171
  return text("小挂件引用已加入发送队列,尚不代表平台确认送达。");
170
172
  },
171
173
  };
@@ -1 +1 @@
1
- {"version":3,"file":"widgets.js","sourceRoot":"","sources":["../../src/tools/widgets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widgets.js","sourceRoot":"","sources":["../../src/tools/widgets.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,10 +1,16 @@
1
- import type { PlatformClient } from "./platform/client.ts";
2
1
  import type { PlatformToolName } from "./tools/registry.ts";
3
2
  import type { AgentMessage, AgentOptions, AgentState } from "@earendil-works/pi-agent-core";
4
3
  /** 一个搭子在一场会话里的配置。形状照 pi 的 Agent 来。 */
5
4
  export type BuddyOptions = Pick<AgentOptions, "beforeToolCall" | "afterToolCall" | "shouldStopAfterTurn" | "prepareNextTurnWithContext" | "thinkingBudgets" | "toolExecution"> & {
6
- /** 显式选择给模型开放的平台工具;默认 []。不影响业务工具调用 platform Clients。 */
5
+ /** 显式选择给模型开放的平台工具;默认 []。不影响开发者在代码里调用 conversation.memory / conversation.dataAccess / conversation.proactive。 */
7
6
  platformTools?: readonly PlatformToolName[];
7
+ /**
8
+ * 主动服务回合里还能用哪些工具;默认 [](一个都不给)。取值是这场会话真注册上的工具名——
9
+ * platformTools 选中的那些 + initialState.tools 里开发者自己的;写了没注册的名字直接 throw。
10
+ * 主动回合用户不在场,所以默认不信任任何工具,要用就显式点名。
11
+ * 实现上不换 Agent 的工具清单(换它会让整条请求前缀的缓存失效),是在工具执行前拦掉没点名的。
12
+ */
13
+ proactiveTools?: readonly string[];
8
14
  /** systemPrompt 必填;tools / thinkingLevel 可选。model / messages 不露——模型在 BuddyServer.start 的 model 里按 id 选、历史从平台灌 */
9
15
  initialState: Pick<AgentState, "systemPrompt"> & Partial<Pick<AgentState, "tools" | "thinkingLevel">>;
10
16
  };
@@ -12,15 +18,33 @@ export type BuddyOptions = Pick<AgentOptions, "beforeToolCall" | "afterToolCall"
12
18
  export type BuddyFactory = (conversation: Conversation) => BuddyOptions | Promise<BuddyOptions>;
13
19
  /** 一场会话。工厂和工具闭包都拿得到。 */
14
20
  export interface Conversation {
15
- /** 会话退役时取消工具中尚未完成的请求。 */
16
- readonly signal: AbortSignal;
17
- /** 当前会话绑定的平台能力;Client 不包含任何应用领域规则。 */
18
- readonly platform: PlatformClient;
19
21
  /** 平台的会话键:私聊 p_ 前缀、群 g_ 前缀。两场会话之间不该看得见对方 */
20
22
  readonly key: string;
21
23
  /** 行首带搭子 id */
22
24
  readonly log: BuddyLogger;
23
- /** Propose only; the user must confirm in App settings before it can run. */
25
+ /**
26
+ * 这场会话的记忆:搭子写给自己的长期印象,平台只存不读,按会话隔离,会话删除后读写不到。会话键已经绑好,调的时候不用传。
27
+ * 失败(超配额、key 不合法、网络错误)直接 throw,文案是平台给的原因。主动服务回合里调 write / delete 直接 throw。
28
+ */
29
+ readonly memory: {
30
+ /** 全量列出,按 key 字典序。GET /internal/v1/memory */
31
+ list(): Promise<MemoryEntry[]>;
32
+ /** 覆盖写一条。key 是主题名:非空、不含空白与 /、≤64 字;text 单条 ≤16KB;每会话 ≤64 条、合计 ≤256KB。PUT /internal/v1/memory/:key */
33
+ write(key: string, text: string): Promise<void>;
34
+ /** 删一条,删不存在的也算成功。DELETE /internal/v1/memory/:key */
35
+ delete(key: string): Promise<void>;
36
+ };
37
+ /**
38
+ * 用户授权数据。会话键已经绑好:私聊只传 datasets,群聊还要传消息前缀里的稳定 memberId。
39
+ * 平台按搭子声明、用户 Grant、群开关和 Snapshot 有效期逐项判定;搭子拿不到真实用户 ID。POST /internal/v1/data-access/query
40
+ */
41
+ readonly dataAccess: {
42
+ query(request: DataAccessQuery): Promise<DatasetAccessResult[]>;
43
+ };
44
+ /**
45
+ * 向平台提一条主动服务订阅建议:POST /internal/v1/proactive/subscriptions。平台回的订阅一律是 pending,用户在 App 里确认后才会触发。
46
+ * 主动服务回合里调直接 throw。
47
+ */
24
48
  readonly proactive: {
25
49
  propose(request: ProactiveSubscriptionRequest): Promise<{
26
50
  id: string;
@@ -154,7 +178,7 @@ export interface MLBImage {
154
178
  export interface MLBMessage {
155
179
  /** 平台消息的稳定 ID。换算图片记录时给图片打标记,引用靠它对上是历史里哪一张;不用时间戳代替 */
156
180
  id: string;
157
- /** message / checkin / image / tool / question / note / widget / messagesCard / system / context */
181
+ /** message / checkin / image / tool / question / note / proactive / widget / messagesCard / system / context */
158
182
  type: string;
159
183
  /** user / buddy / platform */
160
184
  author: string;
@@ -182,6 +206,9 @@ export interface MLBMessage {
182
206
  thinking?: string;
183
207
  /** 半截话,重建跳过 */
184
208
  interrupted?: boolean;
209
+ /** 这条产生于主动服务回合(type "proactive" 的两条本身整类如此,这个标记是给同一轮的 tool 记录用的):
210
+ * 平台 ② 出口整条不下发,用户看不见 */
211
+ proactive?: boolean;
185
212
  /** 引用块:被引消息的 id、发言人名、原文前 120 字;引用的是图片消息时带 image(不带图片内容) */
186
213
  quote?: {
187
214
  id?: string;
@@ -208,7 +235,7 @@ export interface MLBToolCall {
208
235
  arguments?: unknown;
209
236
  result?: string;
210
237
  }
211
- /** 写口每条:type 只能是 message / checkin / tool / question / widget / note */
238
+ /** 写口每条:type 只能是 message / checkin / tool / question / widget / note;proactive 是平台自己落的,搭子写不了 */
212
239
  export interface MLBMessageToWrite {
213
240
  type: "message" | "tool" | "note" | "widget";
214
241
  text?: string;
@@ -219,6 +246,9 @@ export interface MLBMessageToWrite {
219
246
  id: string;
220
247
  };
221
248
  idempotencyKey?: string;
249
+ /** 这条产生于主动服务回合:平台 ② 出口整条不下发,用户看不见。
250
+ * type "proactive" 的两条记录本身整类不下发,这个标记是给同一轮里的 tool 记录用的 */
251
+ proactive?: boolean;
222
252
  }
223
253
  /** 读口响应。平台的场合交代是其中 type 为 context 的记录,不单独成字段 */
224
254
  export interface PullResponse {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@my-life-buddies/buddy-runtime",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "description": "MLB 搭子运行时,基于 pi-agent-core:订阅平台事件流、拉取消息、驱动模型、写回回复。开发者调用 BuddyServer.start 交一份配置即可跑起一只搭子",
6
6
  "exports": {
@@ -1,48 +0,0 @@
1
- import type { DataAccessQuery, DatasetAccessResult, MemoryEntry, MLBMessageToWrite, ProactiveSubscriptionRequest } from "../types.ts";
2
- import type { MLBClient } from "./mlbClient.ts";
3
- import { WidgetClient } from "./widgets.ts";
4
- /** 应用拿到的是已绑定当前会话的能力,不接触平台 Token,也不重复实现 HTTP。 */
5
- export interface PlatformClient {
6
- readonly widgets: WidgetClient;
7
- readonly messages: {
8
- send(message: MLBMessageToWrite & {
9
- idempotencyKey: string;
10
- }): void;
11
- };
12
- /**
13
- * 这场会话的记忆:搭子写给自己的长期印象,平台只存不读,按会话隔离,会话删除后读写不到。
14
- * 失败(超配额、key 不合法、网络错误)直接 throw,文案是平台给的原因。
15
- */
16
- readonly memory: {
17
- /** 全量列出,按 key 字典序。GET /internal/v1/memory */
18
- list(): Promise<MemoryEntry[]>;
19
- /** 覆盖写一条。key 是主题名:非空、不含空白与 /、≤64 字;text 单条 ≤16KB;每会话 ≤64 条、合计 ≤256KB。PUT /internal/v1/memory/:key */
20
- write(key: string, text: string): Promise<void>;
21
- /** 删一条,删不存在的也算成功。DELETE /internal/v1/memory/:key */
22
- delete(key: string): Promise<void>;
23
- };
24
- /**
25
- * 用户授权数据:私聊只传 datasets,群聊还要传消息前缀里的稳定 memberId。
26
- * 平台按搭子声明、用户 Grant、群开关和 Snapshot 有效期逐项判定;搭子拿不到真实用户 ID。
27
- */
28
- readonly dataAccess: {
29
- query(request: DataAccessQuery): Promise<DatasetAccessResult[]>;
30
- };
31
- readonly proactive: {
32
- propose(request: ProactiveSubscriptionRequest): Promise<{
33
- id: string;
34
- status: "pending";
35
- }>;
36
- };
37
- }
38
- export declare function createPlatformClient(options: {
39
- client: MLBClient;
40
- key: string;
41
- signal: AbortSignal;
42
- enqueueMessage: (message: MLBMessageToWrite) => void;
43
- /** 注入敏感数据使用追踪;不是绕过 DataAccess 校验的另一条读口。 */
44
- queryDataAccess: (request: DataAccessQuery) => Promise<DatasetAccessResult[]>;
45
- /** 主动执行作用域不允许复用普通 Client 发起写操作。 */
46
- assertWritable?: () => void;
47
- }): PlatformClient;
48
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/platform/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,WAAW,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AACtI,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,gDAAgD;AAChD,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE;QAAE,IAAI,CAAC,OAAO,EAAE,iBAAiB,GAAG;YAAE,cAAc,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAA;KAAE,CAAC;IAC3F;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE;QAChB,6CAA6C;QAC7C,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/B,qGAAqG;QACrG,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,oDAAoD;QACpD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACnC,CAAC;IACF;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE;QAAE,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAA;KAAE,CAAC;IACzF,QAAQ,CAAC,SAAS,EAAE;QAAE,OAAO,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,SAAS,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;CACnH;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC7C,MAAM,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IACpD,cAAc,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACrD,2CAA2C;IAC3C,eAAe,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC9E,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B,GAAG,cAAc,CAoBjB"}
@@ -1,24 +0,0 @@
1
- import { WidgetClient } from "./widgets.js";
2
- export function createPlatformClient(options) {
3
- const { client, key, signal } = options;
4
- const send = (message) => {
5
- signal.throwIfAborted();
6
- options.assertWritable?.();
7
- if (!message.idempotencyKey)
8
- throw new Error("消息幂等键不能为空");
9
- options.enqueueMessage(message);
10
- };
11
- let widgets;
12
- return {
13
- get widgets() { return widgets ??= client.widgets(key, { signal, enqueueMessage: send, assertWritable: options.assertWritable }); },
14
- messages: { send },
15
- memory: {
16
- list: () => client.memoryList(key, signal),
17
- write: (name, text) => { options.assertWritable?.(); return client.memoryWrite(key, name, text, signal); },
18
- delete: name => { options.assertWritable?.(); return client.memoryDelete(key, name, signal); },
19
- },
20
- dataAccess: { query: async (request) => { signal.throwIfAborted(); const result = await options.queryDataAccess(request); signal.throwIfAborted(); return result; } },
21
- proactive: { propose: request => { signal.throwIfAborted(); options.assertWritable?.(); return client.proposeProactiveSubscription(key, request, signal); } },
22
- };
23
- }
24
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/platform/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AA0B5C,MAAM,UAAU,oBAAoB,CAAC,OAOpC;IACA,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACxC,MAAM,IAAI,GAAG,CAAC,OAAuD,EAAQ,EAAE;QAC9E,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1D,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC;IACF,IAAI,OAAiC,CAAC;IACtC,OAAO;QACN,IAAI,OAAO,KAAK,OAAO,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QACnI,QAAQ,EAAE,EAAE,IAAI,EAAE;QAClB,MAAM,EAAE;YACP,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;YAC1C,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1G,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;SAC9F;QACD,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAC,OAAO,EAAC,EAAE,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE;QACnK,SAAS,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,MAAM,CAAC,4BAA4B,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;KAC7J,CAAC;AACH,CAAC"}
@@ -1,75 +0,0 @@
1
- import type { MLBMessageToWrite } from "../types.ts";
2
- export interface RequestOptions {
3
- signal?: AbortSignal;
4
- }
5
- export type PlatformRequest = <T>(method: string, path: string, body?: unknown, options?: RequestOptions) => Promise<T>;
6
- export interface WidgetSummary {
7
- id: string;
8
- type: string;
9
- title: string;
10
- updatedAt?: number;
11
- }
12
- export interface WidgetRecord<T = Record<string, unknown>> {
13
- id: string;
14
- data: T;
15
- revision: number;
16
- }
17
- export interface Widget<T = Record<string, unknown>> extends WidgetSummary {
18
- modules: Record<string, WidgetRecord<T>[]>;
19
- }
20
- export interface WidgetWriteResult {
21
- ok: boolean;
22
- revision?: number;
23
- }
24
- export interface WidgetCreateInput {
25
- type: string;
26
- title: string;
27
- idempotencyKey?: string;
28
- }
29
- export interface WidgetWriteInput {
30
- module: string;
31
- recordId: string;
32
- data: Record<string, unknown>;
33
- expectedRevision?: number;
34
- }
35
- export interface WidgetPresentation {
36
- summary: string;
37
- imageMediaId: string;
38
- }
39
- export interface WidgetClientOptions {
40
- convoKey: string;
41
- request: PlatformRequest;
42
- signal?: AbortSignal;
43
- /** 注入 Runtime 的可靠消息队列;Client 不自行另开消息发送通道。 */
44
- enqueueMessage?: (message: MLBMessageToWrite & {
45
- idempotencyKey: string;
46
- }) => void;
47
- assertWritable?: () => void;
48
- }
49
- export declare class WidgetClient {
50
- private readonly options;
51
- constructor(options: WidgetClientOptions);
52
- /** 派生本次操作的取消范围,保留原会话取消信号。 */
53
- withSignal(signal?: AbortSignal): WidgetClient;
54
- private signal;
55
- private call;
56
- list(options?: RequestOptions): Promise<WidgetSummary[]>;
57
- create(input: WidgetCreateInput, options?: RequestOptions): Promise<{
58
- id: string;
59
- }>;
60
- read<T = Record<string, unknown>>(id: string, options?: RequestOptions): Promise<Widget<T>>;
61
- readModule<T = Record<string, unknown>>(id: string, module: string, options?: RequestOptions): Promise<{
62
- records: WidgetRecord<T>[];
63
- }>;
64
- private mutation;
65
- rename(id: string, title: string, options?: RequestOptions): Promise<WidgetWriteResult>;
66
- write(id: string, input: WidgetWriteInput, options?: RequestOptions): Promise<WidgetWriteResult>;
67
- deleteRecord(id: string, module: string, recordId: string, options?: RequestOptions): Promise<WidgetWriteResult>;
68
- setPresentation(id: string, input: WidgetPresentation, options?: RequestOptions): Promise<WidgetWriteResult>;
69
- /** 入队,不等同于平台已确认送达;复用 Runtime 的幂等/重试/恢复机制。 */
70
- send(id: string, options: {
71
- idempotencyKey: string;
72
- signal?: AbortSignal;
73
- }): void;
74
- }
75
- //# sourceMappingURL=widgets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"widgets.d.ts","sourceRoot":"","sources":["../../src/platform/widgets.ts"],"names":[],"mappings":"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"}
@@ -1,88 +0,0 @@
1
- function segment(value) {
2
- if (typeof value !== "string" || !value || value === "." || value === "..")
3
- throw new Error("Widget 标识无效");
4
- return encodeURIComponent(value);
5
- }
6
- export class WidgetClient {
7
- options;
8
- constructor(options) {
9
- if (!/^[pg]_[0-9a-f]{24}$/.test(options.convoKey))
10
- throw new Error("会话键无效");
11
- this.options = { ...options };
12
- }
13
- /** 派生本次操作的取消范围,保留原会话取消信号。 */
14
- withSignal(signal) {
15
- return new WidgetClient({ ...this.options, signal: this.signal(signal) });
16
- }
17
- signal(signal) {
18
- return AbortSignal.any([...(this.options.signal ? [this.options.signal] : []), ...(signal ? [signal] : [])]);
19
- }
20
- async call(method, path, body, options) {
21
- const signal = this.signal(options?.signal);
22
- signal.throwIfAborted();
23
- if (method !== "GET")
24
- this.options.assertWritable?.();
25
- const scope = { convoKey: this.options.convoKey };
26
- const result = await this.options.request(method, body === undefined ? `${path}?${new URLSearchParams(scope)}` : path, body === undefined ? undefined : { ...body, ...scope }, { signal });
27
- signal.throwIfAborted();
28
- return result;
29
- }
30
- async list(options) {
31
- const body = await this.call("GET", "/widgets", undefined, options);
32
- if (!Array.isArray(body?.widgets))
33
- throw new Error("Widget 列表响应无效");
34
- return body.widgets;
35
- }
36
- async create(input, options) {
37
- const result = await this.call("POST", "/widgets", {
38
- type: input.type, title: input.title, ...(input.idempotencyKey ? { idempotencyKey: input.idempotencyKey } : {}),
39
- }, options);
40
- if (typeof result?.id !== "string" || !result.id)
41
- throw new Error("Widget 未创建:会话无效或响应缺少 id");
42
- return result;
43
- }
44
- read(id, options) {
45
- return this.call("GET", `/widgets/${segment(id)}`, undefined, options).then(widget => {
46
- if (!widget || widget.id !== id || typeof widget.type !== "string" || !widget.modules || typeof widget.modules !== "object" || Array.isArray(widget.modules))
47
- throw new Error("Widget 读取响应无效");
48
- return widget;
49
- });
50
- }
51
- readModule(id, module, options) {
52
- return this.call("GET", `/widgets/${segment(id)}/${segment(module)}`, undefined, options).then(body => {
53
- if (!Array.isArray(body?.records))
54
- throw new Error("Widget 模块响应无效");
55
- return body;
56
- });
57
- }
58
- async mutation(method, path, body, options) {
59
- const result = await this.call(method, path, body, options);
60
- if (result?.ok !== true)
61
- throw new Error("Widget 操作未被平台确认");
62
- return result;
63
- }
64
- rename(id, title, options) {
65
- return this.mutation("PUT", `/widgets/${segment(id)}`, { title }, options);
66
- }
67
- write(id, input, options) {
68
- return this.mutation("PUT", `/widgets/${segment(id)}/${segment(input.module)}/${segment(input.recordId)}`, {
69
- data: input.data, ...(input.expectedRevision === undefined ? {} : { expectedRevision: input.expectedRevision }),
70
- }, options);
71
- }
72
- deleteRecord(id, module, recordId, options) {
73
- return this.mutation("DELETE", `/widgets/${segment(id)}/${segment(module)}/${segment(recordId)}`, undefined, options);
74
- }
75
- setPresentation(id, input, options) {
76
- return this.mutation("PUT", `/widgets/${segment(id)}/presentation`, { summary: input.summary, imageMediaId: input.imageMediaId }, options);
77
- }
78
- /** 入队,不等同于平台已确认送达;复用 Runtime 的幂等/重试/恢复机制。 */
79
- send(id, options) {
80
- this.signal(options.signal).throwIfAborted();
81
- this.options.assertWritable?.();
82
- segment(id);
83
- if (!options.idempotencyKey || !this.options.enqueueMessage)
84
- throw new Error("缺少 Widget 发送队列或幂等键");
85
- this.options.enqueueMessage({ type: "widget", widget: { id }, idempotencyKey: options.idempotencyKey });
86
- }
87
- }
88
- //# sourceMappingURL=widgets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"widgets.js","sourceRoot":"","sources":["../../src/platform/widgets.ts"],"names":[],"mappings":"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"}