@downcity/plugins 1.0.51 → 1.0.56

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 (162) hide show
  1. package/bin/BuiltinPlugins.d.ts +2 -3
  2. package/bin/BuiltinPlugins.d.ts.map +1 -1
  3. package/bin/BuiltinPlugins.js +2 -2
  4. package/bin/BuiltinPlugins.js.map +1 -1
  5. package/bin/asr/Plugin.d.ts +1 -2
  6. package/bin/asr/Plugin.d.ts.map +1 -1
  7. package/bin/asr/Plugin.js +2 -2
  8. package/bin/asr/Plugin.js.map +1 -1
  9. package/bin/auth/Plugin.d.ts +1 -2
  10. package/bin/auth/Plugin.d.ts.map +1 -1
  11. package/bin/auth/Plugin.js +2 -2
  12. package/bin/auth/Plugin.js.map +1 -1
  13. package/bin/chat/ChatPlugin.d.ts +1 -2
  14. package/bin/chat/ChatPlugin.d.ts.map +1 -1
  15. package/bin/chat/ChatPlugin.js +3 -12
  16. package/bin/chat/ChatPlugin.js.map +1 -1
  17. package/bin/chat/PROMPT.direct.d.ts +1 -1
  18. package/bin/chat/PROMPT.direct.d.ts.map +1 -1
  19. package/bin/chat/PROMPT.direct.js +1 -1
  20. package/bin/chat/PROMPT.direct.js.map +1 -1
  21. package/bin/chat/channels/qq/PROMPT.direct.d.ts +1 -1
  22. package/bin/chat/channels/qq/PROMPT.direct.d.ts.map +1 -1
  23. package/bin/chat/channels/qq/PROMPT.direct.js +1 -1
  24. package/bin/chat/channels/qq/PROMPT.direct.js.map +1 -1
  25. package/bin/chat/channels/telegram/Bot.d.ts +6 -0
  26. package/bin/chat/channels/telegram/Bot.d.ts.map +1 -1
  27. package/bin/chat/channels/telegram/Bot.js +24 -0
  28. package/bin/chat/channels/telegram/Bot.js.map +1 -1
  29. package/bin/chat/channels/telegram/TelegramPlatformClient.d.ts +14 -0
  30. package/bin/chat/channels/telegram/TelegramPlatformClient.d.ts.map +1 -1
  31. package/bin/chat/channels/telegram/TelegramPlatformClient.js +39 -5
  32. package/bin/chat/channels/telegram/TelegramPlatformClient.js.map +1 -1
  33. package/bin/contact/ContactPlugin.d.ts +1 -2
  34. package/bin/contact/ContactPlugin.d.ts.map +1 -1
  35. package/bin/contact/ContactPlugin.js +2 -2
  36. package/bin/contact/ContactPlugin.js.map +1 -1
  37. package/bin/contact/PROMPT.d.ts +1 -1
  38. package/bin/contact/PROMPT.d.ts.map +1 -1
  39. package/bin/contact/PROMPT.js +1 -1
  40. package/bin/contact/PROMPT.js.map +1 -1
  41. package/bin/image/ImagePlugin.d.ts +61 -0
  42. package/bin/image/ImagePlugin.d.ts.map +1 -0
  43. package/bin/image/ImagePlugin.js +189 -0
  44. package/bin/image/ImagePlugin.js.map +1 -0
  45. package/bin/image/types/ImagePlugin.d.ts +136 -0
  46. package/bin/image/types/ImagePlugin.d.ts.map +1 -0
  47. package/bin/image/types/ImagePlugin.js +10 -0
  48. package/bin/image/types/ImagePlugin.js.map +1 -0
  49. package/bin/index.d.ts +2 -0
  50. package/bin/index.d.ts.map +1 -1
  51. package/bin/index.js +1 -0
  52. package/bin/index.js.map +1 -1
  53. package/bin/shell/ShellPlugin.d.ts +1 -2
  54. package/bin/shell/ShellPlugin.d.ts.map +1 -1
  55. package/bin/shell/ShellPlugin.js +2 -2
  56. package/bin/shell/ShellPlugin.js.map +1 -1
  57. package/bin/skill/Action.d.ts +8 -3
  58. package/bin/skill/Action.d.ts.map +1 -1
  59. package/bin/skill/Action.js +9 -11
  60. package/bin/skill/Action.js.map +1 -1
  61. package/bin/skill/Command.d.ts +1 -1
  62. package/bin/skill/Command.d.ts.map +1 -1
  63. package/bin/skill/Command.js +3 -10
  64. package/bin/skill/Command.js.map +1 -1
  65. package/bin/skill/Config.d.ts +9 -9
  66. package/bin/skill/Config.d.ts.map +1 -1
  67. package/bin/skill/Config.js +36 -24
  68. package/bin/skill/Config.js.map +1 -1
  69. package/bin/skill/PROMPT.d.ts +1 -1
  70. package/bin/skill/PROMPT.d.ts.map +1 -1
  71. package/bin/skill/PROMPT.js +1 -1
  72. package/bin/skill/PROMPT.js.map +1 -1
  73. package/bin/skill/Plugin.d.ts +2 -2
  74. package/bin/skill/Plugin.d.ts.map +1 -1
  75. package/bin/skill/Plugin.js +20 -37
  76. package/bin/skill/Plugin.js.map +1 -1
  77. package/bin/skill/runtime/Discovery.d.ts +3 -3
  78. package/bin/skill/runtime/Discovery.d.ts.map +1 -1
  79. package/bin/skill/runtime/Discovery.js +37 -14
  80. package/bin/skill/runtime/Discovery.js.map +1 -1
  81. package/bin/skill/runtime/Paths.d.ts +5 -5
  82. package/bin/skill/runtime/Paths.d.ts.map +1 -1
  83. package/bin/skill/runtime/Paths.js +23 -33
  84. package/bin/skill/runtime/Paths.js.map +1 -1
  85. package/bin/skill/runtime/Prompt.d.ts +2 -2
  86. package/bin/skill/runtime/Prompt.d.ts.map +1 -1
  87. package/bin/skill/runtime/Prompt.js +3 -8
  88. package/bin/skill/runtime/Prompt.js.map +1 -1
  89. package/bin/skill/runtime/SystemProvider.d.ts +2 -2
  90. package/bin/skill/runtime/SystemProvider.d.ts.map +1 -1
  91. package/bin/skill/runtime/SystemProvider.js +2 -2
  92. package/bin/skill/runtime/SystemProvider.js.map +1 -1
  93. package/bin/skill/types/SkillPlugin.d.ts +34 -12
  94. package/bin/skill/types/SkillPlugin.d.ts.map +1 -1
  95. package/bin/skill/types/SkillPlugin.js +2 -1
  96. package/bin/skill/types/SkillPlugin.js.map +1 -1
  97. package/bin/skill/types/SkillRoot.d.ts +1 -1
  98. package/bin/task/Action.js +2 -2
  99. package/bin/task/Action.js.map +1 -1
  100. package/bin/task/PROMPT.d.ts +1 -1
  101. package/bin/task/PROMPT.d.ts.map +1 -1
  102. package/bin/task/PROMPT.js +1 -1
  103. package/bin/task/PROMPT.js.map +1 -1
  104. package/bin/task/TaskPlugin.d.ts +1 -2
  105. package/bin/task/TaskPlugin.d.ts.map +1 -1
  106. package/bin/task/TaskPlugin.js +2 -2
  107. package/bin/task/TaskPlugin.js.map +1 -1
  108. package/bin/tts/Plugin.d.ts +1 -2
  109. package/bin/tts/Plugin.d.ts.map +1 -1
  110. package/bin/tts/Plugin.js +6 -6
  111. package/bin/tts/Plugin.js.map +1 -1
  112. package/bin/web/PROMPT.agent-browser.d.ts +1 -1
  113. package/bin/web/PROMPT.agent-browser.d.ts.map +1 -1
  114. package/bin/web/PROMPT.agent-browser.js +1 -1
  115. package/bin/web/PROMPT.agent-browser.js.map +1 -1
  116. package/bin/web/Plugin.d.ts +1 -2
  117. package/bin/web/Plugin.d.ts.map +1 -1
  118. package/bin/web/Plugin.js +10 -3
  119. package/bin/web/Plugin.js.map +1 -1
  120. package/bin/workboard/Plugin.d.ts +1 -2
  121. package/bin/workboard/Plugin.d.ts.map +1 -1
  122. package/bin/workboard/Plugin.js +2 -2
  123. package/bin/workboard/Plugin.js.map +1 -1
  124. package/package.json +2 -2
  125. package/src/BuiltinPlugins.ts +3 -6
  126. package/src/asr/Plugin.ts +2 -3
  127. package/src/auth/Plugin.ts +2 -3
  128. package/src/chat/ChatPlugin.ts +3 -14
  129. package/src/chat/PROMPT.direct.ts +1 -1
  130. package/src/chat/PROMPT.direct.ts.txt +5 -7
  131. package/src/chat/channels/qq/PROMPT.direct.ts +1 -1
  132. package/src/chat/channels/qq/PROMPT.direct.ts.txt +1 -1
  133. package/src/chat/channels/telegram/Bot.ts +22 -0
  134. package/src/chat/channels/telegram/TelegramPlatformClient.ts +42 -6
  135. package/src/contact/ContactPlugin.ts +2 -3
  136. package/src/contact/PROMPT.ts +1 -1
  137. package/src/contact/PROMPT.ts.txt +12 -12
  138. package/src/image/ImagePlugin.ts +250 -0
  139. package/src/image/types/ImagePlugin.ts +157 -0
  140. package/src/index.ts +13 -0
  141. package/src/shell/ShellPlugin.ts +2 -3
  142. package/src/skill/Action.ts +20 -9
  143. package/src/skill/Command.ts +3 -13
  144. package/src/skill/Config.ts +41 -34
  145. package/src/skill/PROMPT.ts +1 -1
  146. package/src/skill/PROMPT.ts.txt +14 -2
  147. package/src/skill/Plugin.ts +205 -214
  148. package/src/skill/runtime/Discovery.ts +43 -17
  149. package/src/skill/runtime/Paths.ts +24 -35
  150. package/src/skill/runtime/Prompt.ts +4 -10
  151. package/src/skill/runtime/SystemProvider.ts +4 -4
  152. package/src/skill/types/SkillPlugin.ts +39 -12
  153. package/src/skill/types/SkillRoot.ts +1 -1
  154. package/src/task/Action.ts +2 -2
  155. package/src/task/PROMPT.ts +1 -1
  156. package/src/task/PROMPT.ts.txt +10 -10
  157. package/src/task/TaskPlugin.ts +2 -3
  158. package/src/tts/Plugin.ts +6 -7
  159. package/src/web/PROMPT.agent-browser.ts +1 -1
  160. package/src/web/PROMPT.agent-browser.ts.txt +1 -1
  161. package/src/web/Plugin.ts +3 -4
  162. package/src/workboard/Plugin.ts +2 -3
@@ -0,0 +1,136 @@
1
+ /**
2
+ * ImagePlugin 类型定义。
3
+ *
4
+ * 关键点(中文)
5
+ * - 这里仅定义图片 plugin 对图片能力的最低层协议,不绑定 city 或任意上游 provider。
6
+ * - 图片生成结果使用 AI SDK UIMessage,保证 session 落盘格式与现有消息系统一致。
7
+ * - 字段保持 JSON 可序列化,便于通过 plugin action 与 tool bridge 传递。
8
+ */
9
+ import type { UIMessage } from "ai";
10
+ import type { JsonObject, JsonValue } from "@downcity/agent/internal/types/common/Json.js";
11
+ /**
12
+ * 图片生成文本内容片段。
13
+ */
14
+ export interface ImagePluginTextContent {
15
+ /** 内容类型,固定为文本。 */
16
+ type: "text";
17
+ /** 生图提示词或上下文文本。 */
18
+ text: string;
19
+ }
20
+ /**
21
+ * 图片生成参考图片内容片段。
22
+ */
23
+ export interface ImagePluginFileContent {
24
+ /** 内容类型,固定为图片。 */
25
+ type: "image";
26
+ /** 远程图片 URL。 */
27
+ url?: string;
28
+ /** data URL 图片内容。 */
29
+ data_url?: string;
30
+ /** 图片 MIME 类型,例如 `image/png`。 */
31
+ media_type?: string;
32
+ }
33
+ /**
34
+ * 图片生成多模态内容片段。
35
+ */
36
+ export type ImagePluginContent = ImagePluginTextContent | ImagePluginFileContent;
37
+ /**
38
+ * 图片生成上下文消息。
39
+ */
40
+ export interface ImagePluginMessage {
41
+ /** 消息角色。 */
42
+ role: "system" | "user" | "assistant";
43
+ /** 该消息内的文本与图片内容。 */
44
+ content: ImagePluginContent[];
45
+ }
46
+ /**
47
+ * ImagePlugin 调用输入。
48
+ */
49
+ export interface ImagePluginInput {
50
+ /** 图片模型引用。 */
51
+ model?: string;
52
+ /** 单句快捷提示词。 */
53
+ prompt?: string;
54
+ /** 多轮或多模态图片生成上下文。 */
55
+ messages?: ImagePluginMessage[];
56
+ /** 生成图片数量。 */
57
+ n?: number;
58
+ /** 生成图片数量,兼容部分上游使用的 count 命名。 */
59
+ count?: number;
60
+ /** 图片尺寸,例如 `1024x1024`。 */
61
+ size?: string;
62
+ /** 图片宽高比,例如 `1:1`。 */
63
+ aspect_ratio?: string;
64
+ /** 图片宽高比,兼容部分上游使用的 ratio 命名。 */
65
+ ratio?: string;
66
+ /** 图片质量,例如 `standard`、`hd`、`ultra`、`4k`。 */
67
+ quality?: string;
68
+ /** 随机种子。 */
69
+ seed?: number;
70
+ /** 业务侧任务 ID,用于 provider 侧幂等、追踪和恢复。 */
71
+ client_job_id?: string;
72
+ /** Provider 私有参数,例如 `{ openai: {...}, gemini: {...}, luchi: {...} }`。 */
73
+ provider_options?: JsonObject;
74
+ /** 允许外部 image 函数接收其他 JSON 可序列化参数。 */
75
+ [key: string]: JsonValue | ImagePluginMessage[] | undefined;
76
+ }
77
+ /**
78
+ * ImagePlugin 生成结果。
79
+ */
80
+ export type ImagePluginResult = UIMessage;
81
+ /**
82
+ * 图片生成任务状态。
83
+ */
84
+ export type ImagePluginJobStatus = "queued" | "running" | "succeeded" | "failed";
85
+ /**
86
+ * 图片任务创建结果。
87
+ */
88
+ export interface ImagePluginJobCreateResult {
89
+ /** 图片任务 ID。 */
90
+ job_id: string;
91
+ /** 创建后的任务状态。 */
92
+ status: ImagePluginJobStatus;
93
+ /** 建议下一次轮询的间隔毫秒数。 */
94
+ poll_after_ms?: number;
95
+ }
96
+ /**
97
+ * 图片任务查询结果。
98
+ */
99
+ export interface ImagePluginJobResult {
100
+ /** 图片任务 ID。 */
101
+ job_id: string;
102
+ /** 当前任务状态。 */
103
+ status: ImagePluginJobStatus;
104
+ /** 成功时返回的 AI SDK UIMessage。 */
105
+ result?: ImagePluginResult;
106
+ /** 失败时返回的错误消息。 */
107
+ error?: string;
108
+ /** 当前任务状态说明。 */
109
+ message?: string;
110
+ /** 建议下一次轮询的间隔毫秒数。 */
111
+ poll_after_ms?: number;
112
+ }
113
+ /**
114
+ * ImagePlugin 构造参数。
115
+ */
116
+ export interface ImagePluginOptions {
117
+ /** Plugin 稳定名称,默认 `image`。 */
118
+ name?: string;
119
+ /** Plugin 展示标题,默认 `Image`。 */
120
+ title?: string;
121
+ /** Plugin 用途说明。 */
122
+ description?: string;
123
+ /** 创建图片生成任务,通常传入 `(input) => city.ai.image_create(input)`。 */
124
+ image_create?: (input: ImagePluginInput) => Promise<ImagePluginJobCreateResult> | ImagePluginJobCreateResult;
125
+ /** 查询图片生成任务,通常传入 `(input) => city.ai.image_result(input)`。 */
126
+ image_result?: (input: {
127
+ job_id: string;
128
+ }) => Promise<ImagePluginJobResult> | ImagePluginJobResult;
129
+ /** 图片任务最大等待时间,默认 300000ms。 */
130
+ timeout_ms?: number;
131
+ /** 轮询间隔下限,默认 100ms。 */
132
+ min_poll_interval_ms?: number;
133
+ /** 轮询间隔上限,默认 10000ms。 */
134
+ max_poll_interval_ms?: number;
135
+ }
136
+ //# sourceMappingURL=ImagePlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImagePlugin.d.ts","sourceRoot":"","sources":["../../../src/image/types/ImagePlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * ImagePlugin 类型定义。
3
+ *
4
+ * 关键点(中文)
5
+ * - 这里仅定义图片 plugin 对图片能力的最低层协议,不绑定 city 或任意上游 provider。
6
+ * - 图片生成结果使用 AI SDK UIMessage,保证 session 落盘格式与现有消息系统一致。
7
+ * - 字段保持 JSON 可序列化,便于通过 plugin action 与 tool bridge 传递。
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=ImagePlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImagePlugin.js","sourceRoot":"","sources":["../../../src/image/types/ImagePlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
package/bin/index.d.ts CHANGED
@@ -9,6 +9,7 @@
9
9
  export { BUILTIN_PLUGIN_CLASSES, createBuiltinPlugins, } from "./BuiltinPlugins.js";
10
10
  export type { BuiltinPluginClass } from "./BuiltinPlugins.js";
11
11
  export { ChatPlugin } from "./chat/ChatPlugin.js";
12
+ export { ImagePlugin } from "./image/ImagePlugin.js";
12
13
  export { ChatChannelAccountManager } from "./chat/accounts/ChannelAccountManager.js";
13
14
  export { ChatAuthorizationPlugin } from "./auth/Plugin.js";
14
15
  export { SkillPlugin } from "./skill/Plugin.js";
@@ -21,5 +22,6 @@ export { resolveAuthorizedUserRole } from "./auth/runtime/AuthorizationPolicy.js
21
22
  export { CHAT_AUTHORIZATION_CHANNELS, CHAT_AUTHORIZATION_PLUGIN_NAME, createDefaultChatAuthorizationRoles, isChatAuthorizationChannel, } from "./auth/types/AuthPlugin.js";
22
23
  export type { ChatChannelAccountListItem, } from "./chat/types/ChannelAccount.js";
23
24
  export type { ChatPluginFeishuOptions, ChatPluginOptions, ChatPluginQqOptions, ChatPluginTelegramOptions, } from "./chat/ChatPluginTypes.js";
25
+ export type { ImagePluginContent, ImagePluginFileContent, ImagePluginInput, ImagePluginJobCreateResult, ImagePluginJobResult, ImagePluginJobStatus, ImagePluginMessage, ImagePluginOptions, ImagePluginResult, ImagePluginTextContent, } from "./image/types/ImagePlugin.js";
24
26
  export type { ChatAuthorizationCatalog, ChatAuthorizationChannel, ChatAuthorizationConfig, ChatAuthorizationDecision, ChatAuthorizationEvaluateInput, ChatAuthorizationEvaluateResult, ChatAuthorizationObservePrincipalPayload, ChatAuthorizationObservedChat, ChatAuthorizationObservedUser, ChatAuthorizationPermission, ChatAuthorizationPermissionMeta, ChatAuthorizationResolveUserRolePayload, ChatAuthorizationRole, ChatAuthorizationSetUserRolePayload, ChatAuthorizationSnapshot, ChatAuthorizationStateFile, ChatAuthorizationWriteConfigPayload, ChatChannelAuthorizationConfig, } from "./auth/types/AuthPlugin.js";
25
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,mCAAmC,EACnC,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,0BAA0B,GAC3B,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,8BAA8B,EAC9B,+BAA+B,EAC/B,wCAAwC,EACxC,6BAA6B,EAC7B,6BAA6B,EAC7B,2BAA2B,EAC3B,+BAA+B,EAC/B,uCAAuC,EACvC,qBAAqB,EACrB,mCAAmC,EACnC,yBAAyB,EACzB,0BAA0B,EAC1B,mCAAmC,EACnC,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,mCAAmC,EACnC,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,0BAA0B,GAC3B,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,8BAA8B,EAC9B,+BAA+B,EAC/B,wCAAwC,EACxC,6BAA6B,EAC7B,6BAA6B,EAC7B,2BAA2B,EAC3B,+BAA+B,EAC/B,uCAAuC,EACvC,qBAAqB,EACrB,mCAAmC,EACnC,yBAAyB,EACzB,0BAA0B,EAC1B,mCAAmC,EACnC,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC"}
package/bin/index.js CHANGED
@@ -8,6 +8,7 @@
8
8
  */
9
9
  export { BUILTIN_PLUGIN_CLASSES, createBuiltinPlugins, } from "./BuiltinPlugins.js";
10
10
  export { ChatPlugin } from "./chat/ChatPlugin.js";
11
+ export { ImagePlugin } from "./image/ImagePlugin.js";
11
12
  export { ChatChannelAccountManager } from "./chat/accounts/ChannelAccountManager.js";
12
13
  export { ChatAuthorizationPlugin } from "./auth/Plugin.js";
13
14
  export { SkillPlugin } from "./skill/Plugin.js";
package/bin/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,mCAAmC,EACnC,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,mCAAmC,EACnC,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC"}
@@ -6,7 +6,6 @@
6
6
  * - agent 持有 ShellPlugin 实例,从而形成 per-agent shell 状态边界。
7
7
  * - ShellActionRuntime 只保留纯运行时流程,不再承载模块级单例状态。
8
8
  */
9
- import type { AgentRuntime } from "@downcity/agent/internal/types/runtime/agent/AgentRuntime.js";
10
9
  import { BasePlugin } from "@downcity/agent/internal/plugin/core/BasePlugin.js";
11
10
  import type { PluginActions } from "@downcity/agent/internal/plugin/types/Plugin.js";
12
11
  import type { AgentContext } from "@downcity/agent/internal/types/runtime/agent/AgentContext.js";
@@ -32,7 +31,7 @@ export declare class ShellPlugin extends BasePlugin {
32
31
  * 当前实例持有的 in-memory shell sessions。
33
32
  */
34
33
  readonly sessions: Map<string, ShellSessionRuntimeState>;
35
- constructor(agent: AgentRuntime | null);
34
+ constructor();
36
35
  /**
37
36
  * 启动一个 shell session。
38
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ShellPlugin.d.ts","sourceRoot":"","sources":["../../src/shell/ShellPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAEV,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,oEAAoE,CAAC;AAc5E;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACzC;;OAEG;IACH,QAAQ,CAAC,IAAI,WAAW;IAExB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IAEzC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAEhC;;OAEG;IACH,SAAgB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;gBAEpD,KAAK,EAAE,YAAY,GAAG,IAAI;IAkEtC;;OAEG;IACG,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB;IAK5B;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB;IAK5B;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,gBAAgB;IAK3B;;OAEG;IACG,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB;IAK5B;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,gBAAgB;IAK3B;;OAEG;IACG,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB;IAK5B;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,gBAAgB;CAI5B"}
1
+ {"version":3,"file":"ShellPlugin.d.ts","sourceRoot":"","sources":["../../src/shell/ShellPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAEV,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,oEAAoE,CAAC;AAc5E;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACzC;;OAEG;IACH,QAAQ,CAAC,IAAI,WAAW;IAExB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IAEzC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAEhC;;OAEG;IACH,SAAgB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;;IAoEhE;;OAEG;IACG,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB;IAK5B;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB;IAK5B;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,gBAAgB;IAK3B;;OAEG;IACG,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB;IAK5B;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,gBAAgB;IAK3B;;OAEG;IACG,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB;IAK5B;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,gBAAgB;CAI5B"}
@@ -28,8 +28,8 @@ export class ShellPlugin extends BasePlugin {
28
28
  * 当前实例持有的 in-memory shell sessions。
29
29
  */
30
30
  sessions;
31
- constructor(agent) {
32
- super(agent);
31
+ constructor() {
32
+ super();
33
33
  this.state = createShellPluginState();
34
34
  this.sessions = this.state.sessions;
35
35
  this.actions = {
@@ -1 +1 @@
1
- {"version":3,"file":"ShellPlugin.js","sourceRoot":"","sources":["../../src/shell/ShellPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShellPlugin.js","sourceRoot":"","sources":["../../src/shell/ShellPlugin.ts"],"names":[],"mappings":"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"}
@@ -6,18 +6,19 @@
6
6
  * - `lookup` 采用无状态实现:直接返回 `SKILL.md` 内容,不做 pin 持久化。
7
7
  */
8
8
  import type { SkillListResponse, SkillLookupRequest, SkillLookupResponse, SkillSummary } from "../skill/types/SkillCommand.js";
9
+ import type { SkillPluginOptions } from "../skill/types/SkillPlugin.js";
9
10
  /**
10
11
  * 在“已学会(本地可发现)”技能里做精确匹配。
11
12
  */
12
- export declare function findLearnedSkillExact(projectRoot: string, query: string): SkillSummary | null;
13
+ export declare function findLearnedSkillExact(projectRoot: string, query: string, options?: SkillPluginOptions | null): SkillSummary | null;
13
14
  /**
14
15
  * 在“已学会(本地可发现)”技能里做模糊搜索。
15
16
  */
16
- export declare function searchLearnedSkills(projectRoot: string, query: string, limit?: number): SkillSummary[];
17
+ export declare function searchLearnedSkills(projectRoot: string, query: string, limit?: number, options?: SkillPluginOptions | null): SkillSummary[];
17
18
  /**
18
19
  * 列出当前项目下可发现的全部 skill。
19
20
  */
20
- export declare function listSkills(projectRoot: string): SkillListResponse;
21
+ export declare function listSkills(projectRoot: string, options?: SkillPluginOptions | null): SkillListResponse;
21
22
  /**
22
23
  * 读取指定 skill 的正文内容。
23
24
  */
@@ -30,5 +31,9 @@ export declare function lookupSkill(params: {
30
31
  * skill lookup 请求。
31
32
  */
32
33
  request: SkillLookupRequest;
34
+ /**
35
+ * SkillPlugin 构造参数。
36
+ */
37
+ options?: SkillPluginOptions | null;
33
38
  }): Promise<SkillLookupResponse>;
34
39
  //# sourceMappingURL=Action.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Action.d.ts","sourceRoot":"","sources":["../../src/skill/Action.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACb,MAAM,+BAA+B,CAAC;AAqDvC;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,YAAY,GAAG,IAAI,CAIrB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAW,GACjB,YAAY,EAAE,CAahB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,CAMjE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE;IACxC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,OAAO,EAAE,kBAAkB,CAAC;CAC7B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA6B/B"}
1
+ {"version":3,"file":"Action.d.ts","sourceRoot":"","sources":["../../src/skill/Action.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAuDvE;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAClC,YAAY,GAAG,IAAI,CAIrB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAW,EAClB,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAClC,YAAY,EAAE,CAahB;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAClC,iBAAiB,CAMnB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE;IACxC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,OAAO,EAAE,kBAAkB,CAAC;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACrC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA6B/B"}
@@ -8,7 +8,6 @@
8
8
  import fs from "fs-extra";
9
9
  import path from "node:path";
10
10
  import { discoverClaudeSkillsSync } from "../skill/runtime/Discovery.js";
11
- import { loadDowncityConfig } from "@downcity/agent/internal/config/Config.js";
12
11
  function normalizeAllowedTools(input) {
13
12
  if (!Array.isArray(input))
14
13
  return [];
@@ -48,27 +47,26 @@ function findSkill(skills, name) {
48
47
  skills.find((item) => item.name.toLowerCase().includes(q)) ||
49
48
  null);
50
49
  }
51
- function getSkills(projectRoot) {
50
+ function getSkills(projectRoot, options) {
52
51
  const root = path.resolve(projectRoot);
53
- const config = loadDowncityConfig(root);
54
- return discoverClaudeSkillsSync(root, config);
52
+ return discoverClaudeSkillsSync(root, options);
55
53
  }
56
54
  /**
57
55
  * 在“已学会(本地可发现)”技能里做精确匹配。
58
56
  */
59
- export function findLearnedSkillExact(projectRoot, query) {
60
- const skills = getSkills(projectRoot);
57
+ export function findLearnedSkillExact(projectRoot, query, options) {
58
+ const skills = getSkills(projectRoot, options);
61
59
  const target = findSkillExact(skills, query);
62
60
  return target ? toSkillSummary(target) : null;
63
61
  }
64
62
  /**
65
63
  * 在“已学会(本地可发现)”技能里做模糊搜索。
66
64
  */
67
- export function searchLearnedSkills(projectRoot, query, limit = 10) {
65
+ export function searchLearnedSkills(projectRoot, query, limit = 10, options) {
68
66
  const q = String(query || "").trim().toLowerCase();
69
67
  if (!q)
70
68
  return [];
71
- const skills = getSkills(projectRoot);
69
+ const skills = getSkills(projectRoot, options);
72
70
  const matched = skills.filter((item) => {
73
71
  const id = item.id.toLowerCase();
74
72
  const name = item.name.toLowerCase();
@@ -80,8 +78,8 @@ export function searchLearnedSkills(projectRoot, query, limit = 10) {
80
78
  /**
81
79
  * 列出当前项目下可发现的全部 skill。
82
80
  */
83
- export function listSkills(projectRoot) {
84
- const skills = getSkills(projectRoot).map(toSkillSummary);
81
+ export function listSkills(projectRoot, options) {
82
+ const skills = getSkills(projectRoot, options).map(toSkillSummary);
85
83
  return {
86
84
  success: true,
87
85
  skills,
@@ -92,7 +90,7 @@ export function listSkills(projectRoot) {
92
90
  */
93
91
  export async function lookupSkill(params) {
94
92
  const root = path.resolve(params.projectRoot);
95
- const skills = getSkills(root);
93
+ const skills = getSkills(root, params.options);
96
94
  const target = findSkill(skills, params.request.name);
97
95
  if (!target) {
98
96
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"Action.js","sourceRoot":"","sources":["../../src/skill/Action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Action.js","sourceRoot":"","sources":["../../src/skill/Action.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAWxE,SAAS,qBAAqB,CAAC,KAA4B;IACzD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,KAAkB;IACxC,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;QACpC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,qBAAqB,CAAC,KAAK,CAAC,YAAY,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAAqB,EAAE,IAAY;IACzD,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpB,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACpD,IAAI,CACL,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,MAAqB,EAAE,IAAY;IACpD,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpB,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,CACL,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,WAAmB,EACnB,OAAmC;IAEnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,WAAmB,EACnB,KAAa,EACb,OAAmC;IAEnC,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,WAAmB,EACnB,KAAa,EACb,QAAgB,EAAE,EAClB,OAAmC;IAEnC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAElB,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACjE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,WAAmB,EACnB,OAAmC;IAEnC,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnE,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAajC;IACC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,oBAAoB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;SACjD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,2BAA2B,MAAM,CAAC,EAAE,EAAE;SAC9C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC;QAC7B,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * 设计目标(中文)
5
5
  * - 尽量不自建 registry:直接复用社区的 `npx skills` 生态(find/install)。
6
- * - 同时提供本地视角的 `list`:列出 Downcity 当前能发现的 skills(含 project/home)。
6
+ * - 同时提供本地视角的 `list`:按 SkillPlugin 默认构造参数列出当前项目 skills
7
7
  */
8
8
  /**
9
9
  * 执行远程 skill 查找。
@@ -1 +1 @@
1
- {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../src/skill/Command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiBH;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAInE;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,GAAE,MAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBvE"}
1
+ {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../src/skill/Command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAInE;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,GAAE,MAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAavE"}
@@ -3,14 +3,12 @@
3
3
  *
4
4
  * 设计目标(中文)
5
5
  * - 尽量不自建 registry:直接复用社区的 `npx skills` 生态(find/install)。
6
- * - 同时提供本地视角的 `list`:列出 Downcity 当前能发现的 skills(含 project/home)。
6
+ * - 同时提供本地视角的 `list`:按 SkillPlugin 默认构造参数列出当前项目 skills
7
7
  */
8
8
  import path from "node:path";
9
- import fs from "fs-extra";
10
9
  import { execa } from "execa";
11
10
  import { discoverClaudeSkillsSync } from "../skill/runtime/Discovery.js";
12
11
  import { getClaudeSkillSearchRoots } from "../skill/runtime/Paths.js";
13
- import { loadDowncityConfig } from "@downcity/agent/internal/config/Config.js";
14
12
  async function runNpxSkills(args, opts) {
15
13
  const yes = opts?.yes !== false;
16
14
  const result = await execa("npx", [yes ? "-y" : "", "skills", ...args].filter(Boolean), {
@@ -51,13 +49,8 @@ export async function skillInstallCommand(spec, options = {}) {
51
49
  */
52
50
  export async function skillListCommand(cwd = ".") {
53
51
  const projectRoot = path.resolve(String(cwd || "."));
54
- const shipJson = path.join(projectRoot, "downcity.json");
55
- if (!fs.existsSync(shipJson)) {
56
- throw new Error(`downcity.json not found at ${shipJson}. Run "town agent create" first or pass the correct path.`);
57
- }
58
- const config = loadDowncityConfig(projectRoot);
59
- const roots = getClaudeSkillSearchRoots(projectRoot, config);
60
- const skills = discoverClaudeSkillsSync(projectRoot, config);
52
+ const roots = getClaudeSkillSearchRoots(projectRoot);
53
+ const skills = discoverClaudeSkillsSync(projectRoot);
61
54
  console.log("Skill roots:");
62
55
  for (const root of roots)
63
56
  console.log(`- [${root.source}] ${root.display}`);
@@ -1 +1 @@
1
- {"version":3,"file":"Command.js","sourceRoot":"","sources":["../../src/skill/Command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Command.js","sourceRoot":"","sources":["../../src/skill/Command.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,18 @@
1
1
  /**
2
- * skill plugin 配置读取工具。
2
+ * SkillPlugin 构造参数归一化工具。
3
3
  *
4
4
  * 关键点(中文)
5
- * - skill 已迁到 plugin 体系,因此发现路径等配置统一从 `plugins.skill` 读取。
6
- * - 这里负责把原始 JSON 配置归一化成 runtime 可直接消费的稳定结构。
5
+ * - SkillPlugin 不再读取 `downcity.json.plugins.skill` 私有配置。
6
+ * - constructor options 是唯一行为配置入口,便于 SDK 用户直接理解。
7
+ * - 这里只做默认值与去重,不做文件系统扫描。
7
8
  */
8
- import type { DowncityConfig } from "@downcity/agent/internal/types/config/DowncityConfig.js";
9
- import type { ResolvedSkillPluginConfig } from "../skill/types/SkillPlugin.js";
9
+ import type { ResolvedSkillPluginOptions, SkillPluginOptions } from "../skill/types/SkillPlugin.js";
10
10
  /**
11
- * skill plugin 默认配置。
11
+ * skill plugin 默认构造参数。
12
12
  */
13
- export declare const DEFAULT_SKILL_PLUGIN_CONFIG: ResolvedSkillPluginConfig;
13
+ export declare const DEFAULT_SKILL_PLUGIN_OPTIONS: ResolvedSkillPluginOptions;
14
14
  /**
15
- * 读取并归一化 skill plugin 配置。
15
+ * 读取并归一化 SkillPlugin 构造参数。
16
16
  */
17
- export declare function readSkillPluginConfig(config?: DowncityConfig | null): ResolvedSkillPluginConfig;
17
+ export declare function resolveSkillPluginOptions(options?: SkillPluginOptions | null): ResolvedSkillPluginOptions;
18
18
  //# sourceMappingURL=Config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/skill/Config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yDAAyD,CAAC;AAC9F,OAAO,KAAK,EACV,yBAAyB,EAE1B,MAAM,8BAA8B,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,yBAGzC,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAC7B,yBAAyB,CAuB3B"}
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/skill/Config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,0BAA0B,EAC1B,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,0BAI1C,CAAC;AAyBF;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAClC,0BAA0B,CAM5B"}
@@ -1,37 +1,49 @@
1
1
  /**
2
- * skill plugin 配置读取工具。
2
+ * SkillPlugin 构造参数归一化工具。
3
3
  *
4
4
  * 关键点(中文)
5
- * - skill 已迁到 plugin 体系,因此发现路径等配置统一从 `plugins.skill` 读取。
6
- * - 这里负责把原始 JSON 配置归一化成 runtime 可直接消费的稳定结构。
5
+ * - SkillPlugin 不再读取 `downcity.json.plugins.skill` 私有配置。
6
+ * - constructor options 是唯一行为配置入口,便于 SDK 用户直接理解。
7
+ * - 这里只做默认值与去重,不做文件系统扫描。
7
8
  */
8
9
  /**
9
- * skill plugin 默认配置。
10
+ * skill plugin 默认构造参数。
10
11
  */
11
- export const DEFAULT_SKILL_PLUGIN_CONFIG = {
12
- paths: [".agents/skills"],
13
- allowExternalPaths: false,
12
+ export const DEFAULT_SKILL_PLUGIN_OPTIONS = {
13
+ use: ["project"],
14
+ paths: [],
15
+ ignore: [],
14
16
  };
17
+ function normalizeUse(input) {
18
+ if (!Array.isArray(input))
19
+ return [...DEFAULT_SKILL_PLUGIN_OPTIONS.use];
20
+ const values = [];
21
+ for (const item of input) {
22
+ if ((item === "project" || item === "home") && !values.includes(item)) {
23
+ values.push(item);
24
+ }
25
+ }
26
+ return values;
27
+ }
28
+ function normalizePaths(input) {
29
+ if (!Array.isArray(input))
30
+ return [...DEFAULT_SKILL_PLUGIN_OPTIONS.paths];
31
+ const values = [];
32
+ for (const item of input) {
33
+ const value = String(item || "").trim();
34
+ if (value && !values.includes(value))
35
+ values.push(value);
36
+ }
37
+ return values;
38
+ }
15
39
  /**
16
- * 读取并归一化 skill plugin 配置。
40
+ * 读取并归一化 SkillPlugin 构造参数。
17
41
  */
18
- export function readSkillPluginConfig(config) {
19
- const raw = config?.plugins?.skill;
20
- const skillConfig = raw && typeof raw === "object" && !Array.isArray(raw)
21
- ? raw
22
- : null;
23
- const normalizedPaths = Array.isArray(skillConfig?.paths)
24
- ? skillConfig.paths
25
- .map((item) => String(item || "").trim())
26
- .filter(Boolean)
27
- : [];
42
+ export function resolveSkillPluginOptions(options) {
28
43
  return {
29
- paths: normalizedPaths.length > 0
30
- ? normalizedPaths
31
- : [...DEFAULT_SKILL_PLUGIN_CONFIG.paths],
32
- allowExternalPaths: typeof skillConfig?.allowExternalPaths === "boolean"
33
- ? skillConfig.allowExternalPaths
34
- : DEFAULT_SKILL_PLUGIN_CONFIG.allowExternalPaths,
44
+ use: normalizeUse(options?.use),
45
+ paths: normalizePaths(options?.paths),
46
+ ignore: Array.isArray(options?.ignore) ? [...options.ignore] : [],
35
47
  };
36
48
  }
37
49
  //# sourceMappingURL=Config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/skill/Config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAA8B;IACpE,KAAK,EAAE,CAAC,gBAAgB,CAAC;IACzB,kBAAkB,EAAE,KAAK;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA8B;IAE9B,MAAM,GAAG,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;IACnC,MAAM,WAAW,GACf,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QACnD,CAAC,CAAE,GAAyB;QAC5B,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC;QACvD,CAAC,CAAC,WAAW,CAAC,KAAK;aACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;aACxC,MAAM,CAAC,OAAO,CAAC;QACpB,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;QACL,KAAK,EACH,eAAe,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,CAAC,GAAG,2BAA2B,CAAC,KAAK,CAAC;QAC5C,kBAAkB,EAChB,OAAO,WAAW,EAAE,kBAAkB,KAAK,SAAS;YAClD,CAAC,CAAC,WAAW,CAAC,kBAAkB;YAChC,CAAC,CAAC,2BAA2B,CAAC,kBAAkB;KACrD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../src/skill/Config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAA+B;IACtE,GAAG,EAAE,CAAC,SAAS,CAAC;IAChB,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;CACX,CAAC;AAEF,SAAS,YAAY,CACnB,KAAgC;IAEhC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC;IACxE,MAAM,MAAM,GAAsC,EAAE,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,KAAkC;IACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAmC;IAEnC,OAAO;QACL,GAAG,EAAE,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC;QAC/B,KAAK,EAAE,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC;QACrC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;KAClE,CAAC;AACJ,CAAC"}
@@ -2,6 +2,6 @@
2
2
  * 自动生成文件,请勿手改。
3
3
  * 源文件:由同路径 `*.ts.txt` 生成。
4
4
  */
5
- declare const TEXT_MODULE_CONTENT = "# Skill Plugin\n\nskill \u662F\u4F60\u62E5\u6709\u7684\u6280\u80FD\u3002\u7528\u6237\u7684\u63D0\u51FA\u7684\u9700\u6C42\u548C\u4EFB\u52A1\uFF0C\u4F60\u90FD\u9700\u8981\u5148\u8003\u8651\u5229\u7528\u76F8\u5173\u7684skill\u6765\u9AD8\u8D28\u91CF\u7684\u5B8C\u6210\u3002\n\n\n## \u4F7F\u7528\n\n\u4F7F\u7528\u6280\u80FD\u65F6\u9700\u8981\u9996\u5148\u901A\u8FC7 `town skill lookup <name>` \u547D\u4EE4\u8F7D\u5165\u5BF9\u5E94\u7684\u6280\u80FD\u5185\u5BB9\u3002\n\n\u4F60\u4E5F\u53EF\u4EE5\u4F7F\u7528 `town skill --help` \u547D\u4EE4\u5BF9skill\u8FDB\u884C\u5176\u4ED6\u64CD\u4F5C\u3002\u6BD4\u5982 `list`, `find`, `install`\u7B49\u7B49\u3002\n";
5
+ declare const TEXT_MODULE_CONTENT = "# Skill Plugin\n\nskill \u662F\u4F60\u62E5\u6709\u7684\u6280\u80FD\u3002\u7528\u6237\u7684\u63D0\u51FA\u7684\u9700\u6C42\u548C\u4EFB\u52A1\uFF0C\u4F60\u90FD\u9700\u8981\u5148\u8003\u8651\u5229\u7528\u76F8\u5173\u7684skill\u6765\u9AD8\u8D28\u91CF\u7684\u5B8C\u6210\u3002\n\n\n## \u4F7F\u7528\n\n\u4F7F\u7528\u6280\u80FD\u65F6\u9700\u8981\u9996\u5148\u901A\u8FC7 `skill` plugin \u7684 `lookup` action \u8F7D\u5165\u5BF9\u5E94\u7684\u6280\u80FD\u5185\u5BB9\u3002\n\n\u5982\u679C\u5F53\u524D\u5DE5\u5177\u96C6\u4E2D\u5B58\u5728 `plugin_call`\uFF0C\u4F7F\u7528\uFF1A\n\n```ts\nplugin_call({\n plugin: \"skill\",\n action: \"lookup\",\n payload: {\n name: \"<skill-name>\",\n },\n});\n```\n\n\u53EF\u7528 action \u5305\u62EC `list`\u3001`find`\u3001`install`\u3001`lookup`\u3002\n";
6
6
  export default TEXT_MODULE_CONTENT;
7
7
  //# sourceMappingURL=PROMPT.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PROMPT.d.ts","sourceRoot":"","sources":["../../src/skill/PROMPT.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,QAAA,MAAM,mBAAmB,yoBAA2N,CAAC;AAErP,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"PROMPT.d.ts","sourceRoot":"","sources":["../../src/skill/PROMPT.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,QAAA,MAAM,mBAAmB,kxBAAoW,CAAC;AAE9X,eAAe,mBAAmB,CAAC"}
@@ -3,6 +3,6 @@
3
3
  * 源文件:由同路径 `*.ts.txt` 生成。
4
4
  */
5
5
  // Source: src/skill/PROMPT.ts.txt
6
- const TEXT_MODULE_CONTENT = "# Skill Plugin\n\nskill 是你拥有的技能。用户的提出的需求和任务,你都需要先考虑利用相关的skill来高质量的完成。\n\n\n## 使用\n\n使用技能时需要首先通过 `town skill lookup <name>` 命令载入对应的技能内容。\n\n你也可以使用 `town skill --help` 命令对skill进行其他操作。比如 `list`, `find`, `install`等等。\n";
6
+ const TEXT_MODULE_CONTENT = "# Skill Plugin\n\nskill 是你拥有的技能。用户的提出的需求和任务,你都需要先考虑利用相关的skill来高质量的完成。\n\n\n## 使用\n\n使用技能时需要首先通过 `skill` plugin 的 `lookup` action 载入对应的技能内容。\n\n如果当前工具集中存在 `plugin_call`,使用:\n\n```ts\nplugin_call({\n plugin: \"skill\",\n action: \"lookup\",\n payload: {\n name: \"<skill-name>\",\n },\n});\n```\n\n可用 action 包括 `list`、`find`、`install`、`lookup`。\n";
7
7
  export default TEXT_MODULE_CONTENT;
8
8
  //# sourceMappingURL=PROMPT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PROMPT.js","sourceRoot":"","sources":["../../src/skill/PROMPT.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,kCAAkC;AAClC,MAAM,mBAAmB,GAAG,wNAAwN,CAAC;AAErP,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"PROMPT.js","sourceRoot":"","sources":["../../src/skill/PROMPT.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,kCAAkC;AAClC,MAAM,mBAAmB,GAAG,iWAAiW,CAAC;AAE9X,eAAe,mBAAmB,CAAC"}
@@ -6,13 +6,13 @@
6
6
  * - `find/install/list/lookup` 全部通过 plugin actions 暴露。
7
7
  * - skills overview 文本通过 `plugin.system` 注入,不再依赖 plugin.system。
8
8
  */
9
- import type { AgentRuntime } from "@downcity/agent/internal/types/runtime/agent/AgentRuntime.js";
10
9
  import { BasePlugin } from "@downcity/agent/internal/plugin/core/BasePlugin.js";
10
+ import type { SkillPluginOptions } from "../skill/types/SkillPlugin.js";
11
11
  /**
12
12
  * SkillPlugin:技能发现、安装、读取与 system 注入。
13
13
  */
14
14
  export declare class SkillPlugin extends BasePlugin {
15
15
  readonly name = "skill";
16
- constructor(agent?: AgentRuntime | null);
16
+ constructor(options?: SkillPluginOptions);
17
17
  }
18
18
  //# sourceMappingURL=Plugin.d.ts.map