@my-life-buddies/buddy-runtime 0.8.0 → 0.10.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 (67) hide show
  1. package/README.md +242 -111
  2. package/dist/conversation/agent.d.ts +14 -6
  3. package/dist/conversation/agent.d.ts.map +1 -1
  4. package/dist/conversation/agent.js +121 -64
  5. package/dist/conversation/agent.js.map +1 -1
  6. package/dist/conversation/compaction.d.ts +2 -2
  7. package/dist/conversation/compaction.d.ts.map +1 -1
  8. package/dist/conversation/compaction.js +1 -1
  9. package/dist/conversation/compaction.js.map +1 -1
  10. package/dist/conversation/index.d.ts +14 -12
  11. package/dist/conversation/index.d.ts.map +1 -1
  12. package/dist/conversation/index.js +23 -22
  13. package/dist/conversation/index.js.map +1 -1
  14. package/dist/conversation/mlbMessageAgentMessageConverter.d.ts +1 -1
  15. package/dist/conversation/mlbMessageAgentMessageConverter.d.ts.map +1 -1
  16. package/dist/conversation/mlbMessageAgentMessageConverter.js +3 -2
  17. package/dist/conversation/mlbMessageAgentMessageConverter.js.map +1 -1
  18. package/dist/dataAccessCatalog.d.ts +56 -0
  19. package/dist/dataAccessCatalog.d.ts.map +1 -0
  20. package/dist/dataAccessCatalog.js +18 -0
  21. package/dist/dataAccessCatalog.js.map +1 -0
  22. package/dist/index.d.ts +5 -2
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +1 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/mlbClient.d.ts +6 -6
  27. package/dist/mlbClient.d.ts.map +1 -1
  28. package/dist/mlbClient.js +11 -16
  29. package/dist/mlbClient.js.map +1 -1
  30. package/dist/model.d.ts +8 -1
  31. package/dist/model.d.ts.map +1 -1
  32. package/dist/model.js +12 -6
  33. package/dist/model.js.map +1 -1
  34. package/dist/server.d.ts.map +1 -1
  35. package/dist/server.js +36 -24
  36. package/dist/server.js.map +1 -1
  37. package/dist/tools/askQuestion.d.ts +15 -0
  38. package/dist/tools/askQuestion.d.ts.map +1 -0
  39. package/dist/tools/askQuestion.js +47 -0
  40. package/dist/tools/askQuestion.js.map +1 -0
  41. package/dist/tools/dataAccess.d.ts +3 -2
  42. package/dist/tools/dataAccess.d.ts.map +1 -1
  43. package/dist/tools/dataAccess.js +7 -4
  44. package/dist/tools/dataAccess.js.map +1 -1
  45. package/dist/tools/dataAccessRequest.d.ts +7 -0
  46. package/dist/tools/dataAccessRequest.d.ts.map +1 -0
  47. package/dist/tools/dataAccessRequest.js +67 -0
  48. package/dist/tools/dataAccessRequest.js.map +1 -0
  49. package/dist/tools/registry.d.ts +1 -4
  50. package/dist/tools/registry.d.ts.map +1 -1
  51. package/dist/tools/registry.js +1 -15
  52. package/dist/tools/registry.js.map +1 -1
  53. package/dist/tools/resource.d.ts +4 -3
  54. package/dist/tools/resource.d.ts.map +1 -1
  55. package/dist/tools/resource.js +18 -13
  56. package/dist/tools/resource.js.map +1 -1
  57. package/dist/tools/{widgets.d.ts → widget.d.ts} +6 -4
  58. package/dist/tools/widget.d.ts.map +1 -0
  59. package/dist/tools/{widgets.js → widget.js} +13 -9
  60. package/dist/tools/widget.js.map +1 -0
  61. package/dist/types.d.ts +79 -23
  62. package/dist/types.d.ts.map +1 -1
  63. package/dist/types.js +5 -3
  64. package/dist/types.js.map +1 -1
  65. package/package.json +2 -2
  66. package/dist/tools/widgets.d.ts.map +0 -1
  67. package/dist/tools/widgets.js.map +0 -1
@@ -0,0 +1,67 @@
1
+ import { Type } from "typebox";
2
+ const requestParams = Type.Object({
3
+ kind: Type.Union([Type.Literal("location"), Type.Literal("calendar"), Type.Literal("healthkit")]),
4
+ reason: Type.String({ minLength: 1, maxLength: 300, description: "为什么当前任务需要这项权限" }),
5
+ datasets: Type.Optional(Type.Array(Type.String(), { minItems: 1, maxItems: 8, uniqueItems: true })),
6
+ calendarDays: Type.Optional(Type.Integer({ minimum: 1, maximum: 31, description: "仅日历使用,读取未来天数" })),
7
+ });
8
+ const readParams = Type.Object({ requestId: Type.String({ minLength: 1 }) });
9
+ export function validateDataAccessRequest(input, convoKey, requirements) {
10
+ if (!convoKey.startsWith("p_"))
11
+ throw new Error("权限请求卡第一期只支持私聊;请引导群成员到私聊中授权");
12
+ const reason = input.reason.trim();
13
+ if (!reason || reason.length > 300)
14
+ throw new Error("权限用途需要 1~300 字");
15
+ if (input.kind === "healthkit") {
16
+ if (input.calendarDays !== undefined)
17
+ throw new Error("healthkit 权限请求不接受 calendarDays");
18
+ const datasets = [...new Set(input.datasets ?? [])];
19
+ if (datasets.length === 0 || datasets.length > 8)
20
+ throw new Error("HealthKit 权限请求需要 1~8 个 Dataset");
21
+ const declared = new Map(requirements.map((item) => [item.id, item]));
22
+ if (datasets.some((id) => declared.get(id)?.source !== "healthkit"))
23
+ throw new Error("HealthKit 权限请求只能包含已声明的 HealthKit Dataset");
24
+ return { kind: input.kind, reason, datasets };
25
+ }
26
+ if (input.datasets !== undefined)
27
+ throw new Error(`${input.kind} 权限请求不接受 datasets`);
28
+ if (input.kind === "location" && input.calendarDays !== undefined)
29
+ throw new Error("location 权限请求不接受 calendarDays");
30
+ if (input.kind === "calendar") {
31
+ const calendarDays = input.calendarDays ?? 7;
32
+ if (!Number.isInteger(calendarDays) || calendarDays < 1 || calendarDays > 31)
33
+ throw new Error("calendarDays 只能是 1~31");
34
+ return { kind: input.kind, reason, calendarDays };
35
+ }
36
+ return { kind: input.kind, reason };
37
+ }
38
+ export function dataAccessRequestTools(client, convoKey, enqueue, tracker, requirements, onRequested) {
39
+ const request = {
40
+ name: "data_access_request",
41
+ label: "正在请求授权",
42
+ description: "在私聊中向用户展示统一权限卡。HealthKit 的 datasets 必须来自已声明清单;位置和日历不要传 datasets。发卡后结束本轮并等待用户操作。",
43
+ parameters: requestParams,
44
+ execute: async (callId, params) => {
45
+ tracker.assertWritable();
46
+ const input = validateDataAccessRequest(params, convoKey, requirements);
47
+ enqueue({ type: "permissionRequest", text: input.reason, permissionRequest: input, dataRequirements: requirements.map(({ id, purpose }) => ({ id, purpose })), idempotencyKey: `permission:${callId}` });
48
+ onRequested?.();
49
+ return { content: [{ type: "text", text: "权限请求卡已发送,请等待用户处理。" }], details: undefined, terminate: true };
50
+ },
51
+ };
52
+ const read = {
53
+ name: "data_access_read_result",
54
+ label: "正在读取授权结果",
55
+ description: "收到 permissionResult 后读取该 requestId 的一次性位置或日历结果。HealthKit 请使用 data_access_query。",
56
+ parameters: readParams,
57
+ replay: "safe",
58
+ execute: async (_callId, { requestId }, signal) => {
59
+ tracker.assertWritable();
60
+ const result = await client.readPermissionResult(convoKey, requestId, signal);
61
+ tracker.markSensitive();
62
+ return { content: [{ type: "text", text: JSON.stringify(result) }], details: undefined };
63
+ },
64
+ };
65
+ return [request, read];
66
+ }
67
+ //# sourceMappingURL=dataAccessRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataAccessRequest.js","sourceRoot":"","sources":["../../src/tools/dataAccessRequest.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,3 @@
1
1
  import type { AgentTool } from "@earendil-works/pi-agent-core";
2
- export declare const PLATFORM_TOOL_NAMES: readonly ["widget_create", "widget_write", "widget_read", "widget_delete", "widget_send", "data_access_query", "resource_read"];
3
- export type PlatformToolName = typeof PLATFORM_TOOL_NAMES[number];
4
- export declare function validatePlatformTools(names?: readonly PlatformToolName[]): Set<PlatformToolName>;
5
- export declare function registerTools(selected: ReadonlySet<PlatformToolName>, available: AgentTool[], business: AgentTool[]): AgentTool[];
2
+ export declare function assertUniqueToolNames(tools: readonly AgentTool[]): void;
6
3
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D,eAAO,MAAM,mBAAmB,iIAAkI,CAAC;AACnK,MAAM,MAAM,gBAAgB,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAElE,wBAAgB,qBAAqB,CAAC,KAAK,GAAE,SAAS,gBAAgB,EAAO,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAQpG;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAQjI"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAMvE"}
@@ -1,23 +1,9 @@
1
- export const PLATFORM_TOOL_NAMES = ["widget_create", "widget_write", "widget_read", "widget_delete", "widget_send", "data_access_query", "resource_read"];
2
- export function validatePlatformTools(names = []) {
3
- const selected = new Set();
4
- for (const name of names) {
5
- if (!PLATFORM_TOOL_NAMES.includes(name))
6
- throw new Error(`未知平台工具:${name}`);
7
- if (selected.has(name))
8
- throw new Error(`工具重复注册:${name}`);
9
- selected.add(name);
10
- }
11
- return selected;
12
- }
13
- export function registerTools(selected, available, business) {
14
- const tools = [...available.filter(tool => selected.has(tool.name)), ...business];
1
+ export function assertUniqueToolNames(tools) {
15
2
  const names = new Set();
16
3
  for (const tool of tools) {
17
4
  if (names.has(tool.name))
18
5
  throw new Error(`工具重名:${tool.name}`);
19
6
  names.add(tool.name);
20
7
  }
21
- return tools;
22
8
  }
23
9
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,CAAU,CAAC;AAGnK,MAAM,UAAU,qBAAqB,CAAC,QAAqC,EAAE;IACzE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,CAAE,mBAAyC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAClG,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAC1D,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAuC,EAAE,SAAsB,EAAE,QAAqB;IAChH,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAwB,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;IACtG,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,qBAAqB,CAAC,KAA2B;IAChE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;AACF,CAAC"}
@@ -7,12 +7,13 @@ export interface Resource {
7
7
  }
8
8
  /** 读一个目录下的全部 .md,按路径排序。非 .md 一律忽略。 */
9
9
  export declare function loadResources(dir: string): Resource[];
10
- /** 写给模型看的资料清单,接在 systemPrompt 后面。没资料就是空串。 */
11
- export declare function resourceCatalog(resources: Resource[]): string;
10
+ declare const RESOURCE_LIST_PARAMS: Type.TObject<{}>;
11
+ /** resource_list:列出全部资料的路径,每行一个,按路径排序,跟 conversation.resource.list 给的一样;没有资料时回「没有资料。」 */
12
+ export declare function resourceListTool(resources: Resource[]): AgentTool<typeof RESOURCE_LIST_PARAMS, undefined>;
12
13
  declare const RESOURCE_READ_PARAMS: Type.TObject<{
13
14
  file: Type.TString;
14
15
  }>;
15
- /** resource_read:读清单里的一篇。没有这篇就抛——pi 会把错误如实交给模型,让它换一篇。 */
16
+ /** resource_read:读一篇资料的正文。没有这篇就抛——pi 会把错误如实交给模型,让它换一篇。 */
16
17
  export declare function resourceReadTool(resources: Resource[]): AgentTool<typeof RESOURCE_READ_PARAMS>;
17
18
  export {};
18
19
  //# sourceMappingURL=resource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/tools/resource.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,MAAM,WAAW,QAAQ;IACxB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CAChB;AAID,sCAAsC;AACtC,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAKrD;AAeD,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAI7D;AAED,QAAA,MAAM,oBAAoB;;EAExB,CAAC;AAEH,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,OAAO,oBAAoB,CAAC,CAa9F"}
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/tools/resource.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,MAAM,WAAW,QAAQ;IACxB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CAChB;AAID,sCAAsC;AACtC,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAKrD;AAeD,QAAA,MAAM,oBAAoB,kBAAkB,CAAC;AAE7C,yFAAyF;AACzF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,OAAO,oBAAoB,EAAE,SAAS,CAAC,CASzG;AAED,QAAA,MAAM,oBAAoB;;EAExB,CAAC;AAEH,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,OAAO,oBAAoB,CAAC,CAa9F"}
@@ -1,8 +1,8 @@
1
- // resource_read:让模型按需读一篇 markdown 资料。
1
+ // resource_list / resource_read:让模型先看有哪些 markdown 资料,再按需读一篇。
2
2
  //
3
3
  // 资料 = 搭子目录下 resources/ 里的 .md 文件(递归,跳过 node_modules 与点目录),路径相对 resources/。
4
- // 这里只管资料本身:把目录读成清单、把清单渲染成给模型看的一段话、造读工具。
5
- // 不管:什么时候读目录(server.ts 启动时读一次)、清单接到哪、工具怎么装(agent.ts:清单接在开发者 systemPrompt 末尾,工具排在开发者工具前面)。
4
+ // 这里只管资料本身:把目录读成清单、造列清单和读一篇两个工具。
5
+ // 不管:什么时候读目录(server.ts 启动时读一次)、工具怎么交给开发者(conversation/agent.ts 挂在 conversation.tools 上,开发者放进 initialState.tools)。
6
6
  import { readdirSync, readFileSync, statSync } from "node:fs";
7
7
  import { join, relative } from "node:path";
8
8
  import { Type } from "typebox";
@@ -28,28 +28,33 @@ function walk(root, dir, out) {
28
28
  out.push({ file: relative(root, full), content: readFileSync(full, "utf8") });
29
29
  }
30
30
  }
31
- /** 写给模型看的资料清单,接在 systemPrompt 后面。没资料就是空串。 */
32
- export function resourceCatalog(resources) {
33
- if (resources.length === 0)
34
- return "";
35
- const list = resources.map((r) => `- ${r.file}`).join("\n");
36
- return `===== 资料清单 =====\n详细资料按需用 resource_read 读,用到哪篇读哪篇,别一次全读:\n${list}`;
31
+ const RESOURCE_LIST_PARAMS = Type.Object({});
32
+ /** resource_list:列出全部资料的路径,每行一个,按路径排序,跟 conversation.resource.list 给的一样;没有资料时回「没有资料。」 */
33
+ export function resourceListTool(resources) {
34
+ const list = resources.length === 0 ? "没有资料。" : resources.map((r) => r.file).join("\n");
35
+ return {
36
+ name: "resource_list",
37
+ label: "正在翻资料清单",
38
+ description: "列出能读的资料,每行一个路径。要读哪篇,照路径用 resource_read 读。",
39
+ parameters: RESOURCE_LIST_PARAMS,
40
+ execute: async () => ({ content: [{ type: "text", text: list }], details: undefined }),
41
+ };
37
42
  }
38
43
  const RESOURCE_READ_PARAMS = Type.Object({
39
- file: Type.String({ description: "资料清单里的文件路径,照清单原样填" }),
44
+ file: Type.String({ description: "资料路径,照 resource_list 列出的原样填" }),
40
45
  });
41
- /** resource_read:读清单里的一篇。没有这篇就抛——pi 会把错误如实交给模型,让它换一篇。 */
46
+ /** resource_read:读一篇资料的正文。没有这篇就抛——pi 会把错误如实交给模型,让它换一篇。 */
42
47
  export function resourceReadTool(resources) {
43
48
  const byFile = new Map(resources.map((r) => [r.file, r.content]));
44
49
  return {
45
50
  name: "resource_read",
46
51
  label: "正在读资料",
47
- description: "读一篇资料。用到哪篇读哪篇,别一次全读。可用的资料见系统提示的资料清单。",
52
+ description: "读一篇资料的正文。用到哪篇读哪篇,别一次全读;有哪些资料用 resource_list 查。",
48
53
  parameters: RESOURCE_READ_PARAMS,
49
54
  execute: async (_id, params) => {
50
55
  const content = byFile.get(params.file);
51
56
  if (content === undefined)
52
- throw new Error(`没有这篇资料:${params.file}(可用的见系统提示的资料清单)`);
57
+ throw new Error(`没有这篇资料:${params.file}(有哪些资料用 resource_list 查)`);
53
58
  return { content: [{ type: "text", text: content }], details: undefined };
54
59
  },
55
60
  };
@@ -1 +1 @@
1
- {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/tools/resource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/tools/resource.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { AgentTool } from "@earendil-works/pi-agent-core";
2
2
  import type { MLBClient, WidgetType } from "../mlbClient.ts";
3
3
  import type { MLBMessageToWrite } from "../types.ts";
4
+ import type { DataAccessUsageTracker } from "./dataAccess.ts";
4
5
  /** widgets/ 下的一个小挂件:目录名是类型 id;schema.json 解析出的对象与 index.html 的原文原样交给平台 */
5
6
  export interface WidgetSource {
6
7
  id: string;
@@ -21,8 +22,9 @@ export declare function loadWidgets(dir: string): WidgetSource[];
21
22
  */
22
23
  export declare function renderCatalog(types: WidgetType[]): string;
23
24
  /**
24
- * 给一场会话造五个小挂件工具。types 为空说明平台没开放任何小挂件类型,回 [],模型就见不到这些工具。
25
- * 五个工具都绑死在这场会话的 convoKey 上,跨会话看不见对方的小挂件;enqueueMessage 是这场会话的发送队列。
25
+ * 给一场会话造五个小挂件工具。types 为空(widgets/ 里没有小挂件)时照样造,说明里的类型目录写「(没有)」,模型硬要建时平台回错误。
26
+ * 五个工具都绑死在这场会话的 convoKey 上,跨会话看不见对方的小挂件;enqueueMessage 是这场会话的发送队列;
27
+ * tracker 是这场会话的授权数据记账,建、写、删、发四个工具靠它的 assertWritable 在主动服务回合里抛错。
26
28
  */
27
- export declare function widgetTools(client: MLBClient, convoKey: string, types: WidgetType[], enqueueMessage: (message: MLBMessageToWrite) => void): AgentTool[];
28
- //# sourceMappingURL=widgets.d.ts.map
29
+ export declare function widgetTools(client: MLBClient, convoKey: string, types: WidgetType[], enqueueMessage: (message: MLBMessageToWrite) => void, tracker: DataAccessUsageTracker): AgentTool[];
30
+ //# sourceMappingURL=widget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../src/tools/widget.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,+BAA+B,CAAC;AAGhF,OAAO,KAAK,EAAE,SAAS,EAAoB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE9D,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAmBvD;AAYD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAWzD;AAwFD;;;;GAIG;AACH,wBAAgB,WAAW,CAC1B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,UAAU,EAAE,EACnB,cAAc,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,EACpD,OAAO,EAAE,sBAAsB,GAC7B,SAAS,EAAE,CAsEb"}
@@ -1,8 +1,9 @@
1
1
  // 小挂件:读工程 widgets/ 目录;把平台的小挂件接口包成五个 pi AgentTool,交给模型在会话里建面板、写记录、读记录、删记录、把小挂件发进聊天流。
2
2
  // 管:widgets/ 下每个子目录读成一个小挂件(目录名是类型 id,schema.json 是 schema,index.html 是页面);
3
3
  // 五个工具的名字与 label(固定,人设按名字叫它们)、参数 schema(typebox)、description 里把小挂件类型目录渲染成人话;
4
- // 前四个调 MLBClient 的小挂件接口,widget_send 把小挂件引用放进这场会话的发送队列;失败抛给 pi 标为错误,不能伪报成功。
5
- // 不管:HTTP 请求本身(mlbClient.ts)、什么时候读目录与上传平台(server.ts 启动时)、什么时候把工具装进 Agent(conversation/agent.ts)。
4
+ // 前四个调 MLBClient 的小挂件接口,widget_send 把小挂件引用放进这场会话的发送队列;失败抛给 pi 标为错误,不能伪报成功;
5
+ // widget_create / widget_write / widget_delete / widget_send 在主动服务回合里 assertWritable 抛错,widget_read 照常能用。
6
+ // 不管:HTTP 请求本身(mlbClient.ts)、什么时候读目录与上传平台(server.ts 启动时)、工具怎么交给开发者(conversation/agent.ts 挂在 conversation.tools 上)。
6
7
  import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
7
8
  import { join } from "node:path";
8
9
  import { Type } from "typebox";
@@ -140,13 +141,12 @@ const sendParams = Type.Object({
140
141
  widgetId: Type.String({ description: "要发的小挂件的 id" }),
141
142
  });
142
143
  /**
143
- * 给一场会话造五个小挂件工具。types 为空说明平台没开放任何小挂件类型,回 [],模型就见不到这些工具。
144
- * 五个工具都绑死在这场会话的 convoKey 上,跨会话看不见对方的小挂件;enqueueMessage 是这场会话的发送队列。
144
+ * 给一场会话造五个小挂件工具。types 为空(widgets/ 里没有小挂件)时照样造,说明里的类型目录写「(没有)」,模型硬要建时平台回错误。
145
+ * 五个工具都绑死在这场会话的 convoKey 上,跨会话看不见对方的小挂件;enqueueMessage 是这场会话的发送队列;
146
+ * tracker 是这场会话的授权数据记账,建、写、删、发四个工具靠它的 assertWritable 在主动服务回合里抛错。
145
147
  */
146
- export function widgetTools(client, convoKey, types, enqueueMessage) {
147
- if (types.length === 0)
148
- return [];
149
- const catalog = renderCatalog(types);
148
+ export function widgetTools(client, convoKey, types, enqueueMessage, tracker) {
149
+ const catalog = types.length === 0 ? "(没有)" : renderCatalog(types);
150
150
  const create = {
151
151
  name: "widget_create",
152
152
  label: "正在建 widget",
@@ -154,6 +154,7 @@ export function widgetTools(client, convoKey, types, enqueueMessage) {
154
154
  `你能建的类型:\n${catalog}`,
155
155
  parameters: createParams,
156
156
  execute: async (callId, params, signal) => {
157
+ tracker.assertWritable();
157
158
  const { id } = await client.widgetCreate(convoKey, { ...params, idempotencyKey: `widget-create:${callId}` }, signal);
158
159
  return text(`建好了,小挂件 id 是 ${id}。后续使用当前可用的工具写入内容并发送引用;这里只确认创建。`);
159
160
  },
@@ -165,6 +166,7 @@ export function widgetTools(client, convoKey, types, enqueueMessage) {
165
166
  `各类型的模块与字段:\n${catalog}`,
166
167
  parameters: writeParams,
167
168
  execute: async (_id, params, signal) => {
169
+ tracker.assertWritable();
168
170
  const { widgetId, module, recordId, expectedRevision } = params;
169
171
  const { revision } = await client.widgetWrite(convoKey, widgetId, { module, recordId, data: params.data, expectedRevision }, signal);
170
172
  return text(`写好了:${params.module}/${params.recordId}${revision === undefined ? "" : `(revision ${String(revision)})`}`);
@@ -188,6 +190,7 @@ export function widgetTools(client, convoKey, types, enqueueMessage) {
188
190
  description: "删掉小挂件某个模块里的一条记录。删的是记录,不是整个小挂件。",
189
191
  parameters: deleteParams,
190
192
  execute: async (_id, params, signal) => {
193
+ tracker.assertWritable();
191
194
  await client.widgetDeleteRecord(convoKey, params.widgetId, params.module, params.recordId, signal);
192
195
  return text(`删掉了:${params.module}/${params.recordId}`);
193
196
  },
@@ -199,10 +202,11 @@ export function widgetTools(client, convoKey, types, enqueueMessage) {
199
202
  parameters: sendParams,
200
203
  execute: async (callId, params, signal) => {
201
204
  signal?.throwIfAborted();
205
+ tracker.assertWritable();
202
206
  enqueueMessage({ type: "widget", widget: { id: params.widgetId }, idempotencyKey: `widget-send:${callId}` });
203
207
  return text("小挂件引用已加入发送队列,尚不代表平台确认送达。");
204
208
  },
205
209
  };
206
210
  return [create, write, read, remove, send];
207
211
  }
208
- //# sourceMappingURL=widgets.js.map
212
+ //# sourceMappingURL=widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.js","sourceRoot":"","sources":["../../src/tools/widget.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,18 +1,17 @@
1
- import type { PlatformToolName } from "./tools/registry.ts";
2
- import type { AgentMessage, AgentOptions, AgentState } from "@earendil-works/pi-agent-core";
1
+ import type { DataAccessDatasetId } from "./dataAccessCatalog.ts";
2
+ import type { ModelId } from "./model.ts";
3
+ import type { AgentMessage, AgentOptions, AgentState, AgentTool } from "@earendil-works/pi-agent-core";
3
4
  /** 一个搭子在一场会话里的配置。形状照 pi 的 Agent 来。 */
4
- export type BuddyOptions = Pick<AgentOptions, "beforeToolCall" | "afterToolCall" | "shouldStopAfterTurn" | "prepareNextTurnWithContext" | "thinkingBudgets" | "toolExecution"> & {
5
- /** 显式选择给模型开放的平台工具;默认 []。不影响开发者在代码里调用 conversation.resources / conversation.memory / conversation.dataAccess / conversation.proactive / conversation.widgets。 */
6
- platformTools?: readonly PlatformToolName[];
5
+ export type BuddyOptions = Pick<AgentOptions, "beforeToolCall" | "afterToolCall" | "shouldStopAfterTurn"> & {
7
6
  /**
8
- * 主动服务回合里还能用哪些工具;默认 [](一个都不给)。取值是这场会话真注册上的工具名——
9
- * platformTools 选中的那些 + initialState.tools 里开发者自己的;写了没注册的名字直接 throw。
10
- * 主动回合用户不在场,所以默认不信任任何工具,要用就显式点名。
11
- * 实现上不换 Agent 的工具清单(换它会让整条请求前缀的缓存失效),是在工具执行前拦掉没点名的。
7
+ * model、systemPrompt 必填;tools / thinkingLevel 可选。平台工具从 conversation.tools 里取来放进 tools。
8
+ * model 填运行时支持的模型 id,建 Agent 时换成网关的模型条目;messages 不露,历史从平台灌
12
9
  */
13
- proactiveTools?: readonly string[];
14
- /** systemPrompt 必填;tools / thinkingLevel 可选。model / messages 不露——模型在 BuddyServer.start 的 model 里按 id 选、历史从平台灌 */
15
- initialState: Pick<AgentState, "systemPrompt"> & Partial<Pick<AgentState, "tools" | "thinkingLevel">>;
10
+ initialState: Pick<AgentState, "systemPrompt"> & Partial<Pick<AgentState, "tools" | "thinkingLevel">> & {
11
+ model: ModelId;
12
+ };
13
+ /** 普通回合里模型出错或一句话没说时,替搭子发的兜底话;不配就不发。主动服务回合不发 */
14
+ errorReply?: string;
16
15
  };
17
16
  /** 工厂:每场会话第一条消息到达时调一次。 */
18
17
  export type BuddyFactory = (conversation: Conversation) => BuddyOptions | Promise<BuddyOptions>;
@@ -22,11 +21,17 @@ export interface Conversation {
22
21
  readonly key: string;
23
22
  /** 行首带搭子 id */
24
23
  readonly log: BuddyLogger;
24
+ /**
25
+ * 平台工具:运行时造好、绑好这场会话,属性名就是工具名。挑要用的放进 initialState.tools,没放进去的模型看不到。
26
+ * 放进去就一定注册;背后没数据时照常注册、调用时回空结果或报错:没资料时 resource_list 回「没有资料」,没声明 Dataset 时查询逐项回 notDeclared,
27
+ * 没有小挂件类型时类型目录为空,群聊里 data_access_request 报错说只支持私聊。
28
+ */
29
+ readonly tools: PlatformTools;
25
30
  /**
26
31
  * 搭子目录下 resources/ 里的 .md 资料:进程启动时读一次,所有会话共用,资料改了要重启进程。
27
32
  * 只读,主动服务回合里也能调。
28
33
  */
29
- readonly resources: {
34
+ readonly resource: {
30
35
  /** 全部资料的路径,相对 resources/,按路径排序,如 research/01-writings.md */
31
36
  list(): string[];
32
37
  /** 读一篇的正文,file 照 list 给的路径原样填;没有这篇直接 throw */
@@ -50,6 +55,11 @@ export interface Conversation {
50
55
  */
51
56
  readonly dataAccess: {
52
57
  query(request: DataAccessQuery): Promise<DatasetAccessResult[]>;
58
+ /** 会话内数据授权请求:卡片发进聊天;HealthKit 授权后重新 query,位置和日历按 requestId 读取一次性结果。 */
59
+ request(input: DataAccessRequestInput & {
60
+ idempotencyKey: string;
61
+ }): Promise<void>;
62
+ readResult(requestId: string): Promise<DataAccessReadResult>;
53
63
  };
54
64
  /**
55
65
  * 向平台提一条主动服务订阅建议:POST /internal/v1/proactive/subscriptions。平台回的订阅一律是 pending,用户在 App 里确认后才会触发。
@@ -60,12 +70,17 @@ export interface Conversation {
60
70
  id: string;
61
71
  status: "pending";
62
72
  }>;
73
+ /**
74
+ * 现在是不是主动服务回合。主动回合里用户不在场,运行时不按工具名拦(会发卡、写平台的平台工具自己会 throw),
75
+ * 开发者要限制自己的工具,在 beforeToolCall 里按它挡掉。
76
+ */
77
+ isRunning(): boolean;
63
78
  };
64
79
  /**
65
80
  * 这场会话的小挂件,会话键已经绑好。平台回非 2xx、网络错误、超时、响应超过 4 MiB 都 throw,异常的 status 是 HTTP 状态码,不带平台原文;写操作不重试。
66
81
  * 主动服务回合里调 create / rename / write / deleteRecord / delete / setPresentation / send 直接 throw。
67
82
  */
68
- readonly widgets: {
83
+ readonly widget: {
69
84
  /** 这场会话里的小挂件,不带记录。GET /internal/v1/widgets */
70
85
  list(): Promise<WidgetSummary[]>;
71
86
  /** 新建一个,回平台给的 id;同一个 idempotencyKey 重复建回同一个 id。POST /internal/v1/widgets */
@@ -108,6 +123,20 @@ export interface Conversation {
108
123
  }): void;
109
124
  };
110
125
  }
126
+ /** 运行时造好的平台工具,属性名就是工具名,每个都是 pi 的 AgentTool。说明见 Conversation.tools */
127
+ export interface PlatformTools {
128
+ readonly resource_list: AgentTool;
129
+ readonly resource_read: AgentTool;
130
+ readonly ask_question: AgentTool;
131
+ readonly data_access_query: AgentTool;
132
+ readonly data_access_request: AgentTool;
133
+ readonly data_access_read_result: AgentTool;
134
+ readonly widget_create: AgentTool;
135
+ readonly widget_write: AgentTool;
136
+ readonly widget_read: AgentTool;
137
+ readonly widget_delete: AgentTool;
138
+ readonly widget_send: AgentTool;
139
+ }
111
140
  /** 小挂件列表里的一项:GET /internal/v1/widgets 响应体的 widgets[] */
112
141
  export interface WidgetSummary {
113
142
  id: string;
@@ -170,13 +199,33 @@ export type DatasetAccessResult = {
170
199
  };
171
200
  /** 搭子向平台声明的一项用户数据需求。 */
172
201
  export interface DataRequirement {
173
- id: string;
202
+ id: DataAccessDatasetId;
174
203
  title: string;
175
- source: string;
204
+ source: "healthkit" | "xhs";
176
205
  purpose: string;
177
- revision: number;
178
206
  schemaVersion: number;
179
207
  }
208
+ /** 搭子随 Runtime 启动声明的一项用户数据需求。平台补齐标题、来源和版本。 */
209
+ export interface DataRequirementDeclaration {
210
+ id: DataAccessDatasetId;
211
+ purpose: string;
212
+ }
213
+ export type DataAccessRequestKind = "location" | "calendar" | "healthkit";
214
+ export interface DataAccessRequestInput {
215
+ kind: DataAccessRequestKind;
216
+ reason: string;
217
+ /** 仅 HealthKit 使用,且只能申请搭子已声明的 Dataset。 */
218
+ datasets?: string[];
219
+ /** 仅日历使用,读取未来多少天,默认 7 天。 */
220
+ calendarDays?: number;
221
+ }
222
+ export type DataAccessReadResult = {
223
+ status: "available";
224
+ kind: "location" | "calendar";
225
+ data: Record<string, unknown>;
226
+ } | {
227
+ status: "unavailable";
228
+ };
180
229
  export interface ProactiveTrigger {
181
230
  eventId: string;
182
231
  source: string;
@@ -222,10 +271,8 @@ export interface BuddyLogger {
222
271
  }
223
272
  export interface StartOptions {
224
273
  buddy: BuddyFactory;
225
- /** 模型 id,必填,取值照平台 GET /cli/models 报的。整个进程的会话共用这一个 */
226
- model: string;
227
- /** 模型失败、空回复时的明确兜底;不在会话已删除时发送。 */
228
- errorReply?: string;
274
+ /** 这只搭子需要的用户数据。Runtime 本地校验,并在实际查询或请求授权时随请求携带。 */
275
+ dataRequirements: readonly DataRequirementDeclaration[];
229
276
  }
230
277
  export interface BuddyServerHandle {
231
278
  stop(): Promise<void>;
@@ -262,6 +309,8 @@ export interface MLBMessage {
262
309
  /** 旧 Server 字段名;兼容过渡期读取,不应作为新协议继续扩散 */
263
310
  reply?: boolean;
264
311
  question?: unknown;
312
+ permissionRequest?: unknown;
313
+ permissionResult?: unknown;
265
314
  widget?: {
266
315
  id: string;
267
316
  };
@@ -301,9 +350,9 @@ export interface MLBToolCall {
301
350
  arguments?: unknown;
302
351
  result?: string;
303
352
  }
304
- /** 写口每条:运行时只写 message / tool / widget / compaction;checkin 只能经 POST /internal/v1/proactive/runs/:id/result 由平台落,proactive 是平台自己落的,搭子写不了 */
353
+ /** 写口每条:运行时只写 message / tool / widget / permissionRequest / question / compaction;checkin 只能经 Proactive 结果接口由平台落。 */
305
354
  export interface MLBMessageToWrite {
306
- type: "message" | "tool" | "widget" | "compaction";
355
+ type: "message" | "tool" | "widget" | "permissionRequest" | "question" | "compaction";
307
356
  text?: string;
308
357
  /** type compaction:这份摘要盖到哪一刻(被摘掉的最后一条记录的平台时间) */
309
358
  coversUntil?: number;
@@ -312,6 +361,13 @@ export interface MLBMessageToWrite {
312
361
  widget?: {
313
362
  id: string;
314
363
  };
364
+ permissionRequest?: DataAccessRequestInput;
365
+ /** type question(ask_question 发的题卡):text 是题目,这里是 2 到 4 个选项 */
366
+ question?: {
367
+ options: string[];
368
+ };
369
+ /** HealthKit 权限卡附带当前 Runtime 初始化声明,供平台绑定用途版本;不存入客户端消息。 */
370
+ dataRequirements?: readonly DataRequirementDeclaration[];
315
371
  idempotencyKey?: string;
316
372
  /** 这条产生于主动服务回合:平台 ② 出口整条不下发,用户看不见。
317
373
  * type "proactive" 的两条记录本身整类不下发,这个标记是给同一轮里的 tool 记录用的 */
@@ -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/dist/types.js CHANGED
@@ -1,8 +1,10 @@
1
1
  // 开发者契约 + 模块间共享的类型。设计正本:REDoc《【技术设计】搭子 runtime 基座》。
2
2
  //
3
- // 开发者交一个工厂:buddy: (conversation) => BuddyOptions。模型钩子取自 pi,
4
- // 平台工具按名单显式注册,默认不暴露给模型。
5
- // 藏掉运行时独占的字段(streamFn / getApiKey / model / messages / transformContext / convertToLlm / steeringMode …),
3
+ // 开发者交一个工厂:buddy: (conversation) => BuddyOptions。模型钩子取自 pi;
4
+ // 平台工具由运行时造好挂在 conversation.tools 上,开发者放进 initialState.tools 模型才看得到。
5
+ // 藏掉运行时独占的字段(streamFn / getApiKey / messages / transformContext / convertToLlm / steeringMode …);
6
+ // model 不收 pi 的 Model 对象,只收运行时支持的模型 id(同一个 id 各家目录 compat 不同;baseUrl 让开发者填会把搭子令牌发到别处),运行时换成网关的模型条目;
7
+ // 也不给 prepareNextTurn / prepareNextTurnWithContext:它们能在回合中途换模型、系统提示、工具与历史,换了的不写回会话历史与平台,模型看到的就跟记录对不上;
6
8
  // 把 systemPrompt 设成必填(没人设的搭子是 bug,类型上就拦)。
7
9
  export {};
8
10
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,4DAA4D;AAC5D,wBAAwB;AACxB,0GAA0G;AAC1G,0CAA0C"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,EAAE;AACF,4DAA4D;AAC5D,qEAAqE;AACrE,kGAAkG;AAClG,oGAAoG;AACpG,sGAAsG;AACtG,0CAA0C"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@my-life-buddies/buddy-runtime",
3
- "version": "0.8.0",
3
+ "version": "0.10.0",
4
4
  "type": "module",
5
- "description": "MLB 搭子运行时,基于 pi-agent-core:订阅平台事件流、拉取消息、驱动模型、写回回复。开发者调用 BuddyServer.start 交一份配置即可跑起一只搭子",
5
+ "description": "搭搭开发者工具:基于 pi-agent-core 的 搭子运行时",
6
6
  "exports": {
7
7
  ".": {
8
8
  "buddy-runtime-source": "./src/index.ts",
@@ -1 +0,0 @@
1
- {"version":3,"file":"widgets.d.ts","sourceRoot":"","sources":["../../src/tools/widgets.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,+BAA+B,CAAC;AAGhF,OAAO,KAAK,EAAE,SAAS,EAAoB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAmBvD;AAYD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAWzD;AAwFD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,cAAc,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAAG,SAAS,EAAE,CAmEvJ"}