@downcity/plugins 1.0.57 → 1.0.59

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 (134) hide show
  1. package/bin/BuiltinPlugins.d.ts.map +1 -1
  2. package/bin/BuiltinPlugins.js +0 -2
  3. package/bin/BuiltinPlugins.js.map +1 -1
  4. package/bin/auth/types/AuthPlugin.d.ts +12 -16
  5. package/bin/auth/types/AuthPlugin.d.ts.map +1 -1
  6. package/bin/auth/types/AuthPlugin.js +9 -13
  7. package/bin/auth/types/AuthPlugin.js.map +1 -1
  8. package/bin/chat/ChatPlugin.d.ts +37 -6
  9. package/bin/chat/ChatPlugin.d.ts.map +1 -1
  10. package/bin/chat/ChatPlugin.js +58 -80
  11. package/bin/chat/ChatPlugin.js.map +1 -1
  12. package/bin/chat/Index.d.ts +4 -1
  13. package/bin/chat/Index.d.ts.map +1 -1
  14. package/bin/chat/Index.js +2 -1
  15. package/bin/chat/Index.js.map +1 -1
  16. package/bin/chat/channels/Configuration.d.ts +1 -1
  17. package/bin/chat/channels/Configuration.js +1 -1
  18. package/bin/chat/channels/RuntimeChannel.d.ts +145 -0
  19. package/bin/chat/channels/RuntimeChannel.d.ts.map +1 -0
  20. package/bin/chat/channels/RuntimeChannel.js +148 -0
  21. package/bin/chat/channels/RuntimeChannel.js.map +1 -0
  22. package/bin/chat/runtime/ChatAuthorizationRuntime.d.ts +22 -0
  23. package/bin/chat/runtime/ChatAuthorizationRuntime.d.ts.map +1 -0
  24. package/bin/chat/runtime/ChatAuthorizationRuntime.js +189 -0
  25. package/bin/chat/runtime/ChatAuthorizationRuntime.js.map +1 -0
  26. package/bin/chat/runtime/ChatChannelActions.d.ts.map +1 -1
  27. package/bin/chat/runtime/ChatChannelActions.js +19 -9
  28. package/bin/chat/runtime/ChatChannelActions.js.map +1 -1
  29. package/bin/chat/runtime/ChatChannelConfig.d.ts +2 -18
  30. package/bin/chat/runtime/ChatChannelConfig.d.ts.map +1 -1
  31. package/bin/chat/runtime/ChatChannelConfig.js +2 -73
  32. package/bin/chat/runtime/ChatChannelConfig.js.map +1 -1
  33. package/bin/chat/runtime/ChatChannelCore.d.ts +22 -1
  34. package/bin/chat/runtime/ChatChannelCore.d.ts.map +1 -1
  35. package/bin/chat/runtime/ChatChannelCore.js +5 -5
  36. package/bin/chat/runtime/ChatChannelCore.js.map +1 -1
  37. package/bin/chat/runtime/ChatPluginActionRegistry.js +1 -1
  38. package/bin/chat/runtime/ChatPluginActionRegistry.js.map +1 -1
  39. package/bin/chat/runtime/PluginPoints.d.ts +3 -3
  40. package/bin/chat/runtime/PluginPoints.js +3 -3
  41. package/bin/chat/types/ChannelStatus.d.ts +1 -1
  42. package/bin/chat/types/ChatPluginOptions.d.ts +76 -0
  43. package/bin/chat/types/ChatPluginOptions.d.ts.map +1 -0
  44. package/bin/chat/types/ChatPluginOptions.js +10 -0
  45. package/bin/chat/types/ChatPluginOptions.js.map +1 -0
  46. package/bin/index.d.ts +4 -3
  47. package/bin/index.d.ts.map +1 -1
  48. package/bin/index.js +2 -2
  49. package/bin/index.js.map +1 -1
  50. package/bin/skill/Action.d.ts.map +1 -1
  51. package/bin/skill/Action.js +2 -2
  52. package/bin/skill/Action.js.map +1 -1
  53. package/bin/skill/Command.js +5 -5
  54. package/bin/skill/Command.js.map +1 -1
  55. package/bin/skill/Plugin.js +1 -1
  56. package/bin/skill/Plugin.js.map +1 -1
  57. package/bin/skill/runtime/Discovery.d.ts +4 -4
  58. package/bin/skill/runtime/Discovery.d.ts.map +1 -1
  59. package/bin/skill/runtime/Discovery.js +5 -5
  60. package/bin/skill/runtime/Discovery.js.map +1 -1
  61. package/bin/skill/runtime/Paths.d.ts +1 -5
  62. package/bin/skill/runtime/Paths.d.ts.map +1 -1
  63. package/bin/skill/runtime/Paths.js +1 -9
  64. package/bin/skill/runtime/Paths.js.map +1 -1
  65. package/bin/skill/runtime/Prompt.d.ts +2 -2
  66. package/bin/skill/runtime/Prompt.d.ts.map +1 -1
  67. package/bin/skill/runtime/Prompt.js +3 -3
  68. package/bin/skill/runtime/Prompt.js.map +1 -1
  69. package/bin/skill/runtime/Store.d.ts +2 -2
  70. package/bin/skill/runtime/Store.d.ts.map +1 -1
  71. package/bin/skill/runtime/Store.js.map +1 -1
  72. package/bin/skill/runtime/SystemProvider.js +4 -4
  73. package/bin/skill/runtime/SystemProvider.js.map +1 -1
  74. package/bin/skill/runtime/Types.d.ts +3 -3
  75. package/bin/skill/runtime/Types.d.ts.map +1 -1
  76. package/bin/skill/types/{ClaudeSkill.d.ts → SkillDefinition.d.ts} +4 -4
  77. package/bin/skill/types/SkillDefinition.d.ts.map +1 -0
  78. package/bin/skill/types/{ClaudeSkill.js → SkillDefinition.js} +2 -2
  79. package/bin/skill/types/SkillDefinition.js.map +1 -0
  80. package/bin/skill/types/SkillPlugin.d.ts +2 -2
  81. package/bin/skill/types/SkillPlugin.d.ts.map +1 -1
  82. package/bin/web/Plugin.js +1 -1
  83. package/bin/web/Plugin.js.map +1 -1
  84. package/bin/web/runtime/Install.js +2 -2
  85. package/bin/web/runtime/Install.js.map +1 -1
  86. package/bin/web/types/WebPlugin.d.ts +2 -1
  87. package/bin/web/types/WebPlugin.d.ts.map +1 -1
  88. package/bin/workboard/Plugin.d.ts +23 -3
  89. package/bin/workboard/Plugin.d.ts.map +1 -1
  90. package/bin/workboard/Plugin.js +66 -85
  91. package/bin/workboard/Plugin.js.map +1 -1
  92. package/package.json +1 -1
  93. package/src/BuiltinPlugins.ts +0 -2
  94. package/src/auth/types/AuthPlugin.ts +12 -17
  95. package/src/chat/ChatPlugin.ts +92 -89
  96. package/src/chat/Index.ts +18 -1
  97. package/src/chat/channels/Configuration.ts +1 -1
  98. package/src/chat/channels/RuntimeChannel.ts +264 -0
  99. package/src/chat/runtime/ChatAuthorizationRuntime.ts +229 -0
  100. package/src/chat/runtime/ChatChannelActions.ts +24 -9
  101. package/src/chat/runtime/ChatChannelConfig.ts +2 -100
  102. package/src/chat/runtime/ChatChannelCore.ts +20 -8
  103. package/src/chat/runtime/ChatPluginActionRegistry.ts +1 -1
  104. package/src/chat/runtime/PluginPoints.ts +3 -3
  105. package/src/chat/types/ChannelStatus.ts +1 -1
  106. package/src/chat/types/ChatPluginOptions.ts +79 -0
  107. package/src/index.ts +17 -6
  108. package/src/skill/Action.ts +10 -7
  109. package/src/skill/Command.ts +5 -5
  110. package/src/skill/Plugin.ts +1 -1
  111. package/src/skill/runtime/Discovery.ts +14 -11
  112. package/src/skill/runtime/Paths.ts +1 -13
  113. package/src/skill/runtime/Prompt.ts +5 -5
  114. package/src/skill/runtime/Store.ts +6 -3
  115. package/src/skill/runtime/SystemProvider.ts +4 -4
  116. package/src/skill/runtime/Types.ts +3 -3
  117. package/src/skill/types/{ClaudeSkill.ts → SkillDefinition.ts} +3 -3
  118. package/src/skill/types/SkillPlugin.ts +2 -2
  119. package/src/web/Plugin.ts +1 -1
  120. package/src/web/runtime/Install.ts +3 -3
  121. package/src/web/types/WebPlugin.ts +2 -2
  122. package/src/workboard/Plugin.ts +80 -95
  123. package/bin/auth/Plugin.d.ts +0 -17
  124. package/bin/auth/Plugin.d.ts.map +0 -1
  125. package/bin/auth/Plugin.js +0 -199
  126. package/bin/auth/Plugin.js.map +0 -1
  127. package/bin/chat/ChatPluginTypes.d.ts +0 -122
  128. package/bin/chat/ChatPluginTypes.d.ts.map +0 -1
  129. package/bin/chat/ChatPluginTypes.js +0 -10
  130. package/bin/chat/ChatPluginTypes.js.map +0 -1
  131. package/bin/skill/types/ClaudeSkill.d.ts.map +0 -1
  132. package/bin/skill/types/ClaudeSkill.js.map +0 -1
  133. package/src/auth/Plugin.ts +0 -237
  134. package/src/chat/ChatPluginTypes.ts +0 -126
@@ -2,105 +2,33 @@
2
2
  * Workboard Plugin。
3
3
  *
4
4
  * 关键点(中文)
5
- * - workboard 是一个 runtime 观测面板插件,负责提供结构化工作快照。
6
- * - 当前同时通过 plugin action 与 HTTP 注入提供快照,供 Town RPC 与 Town HTTP gateway 复用。
5
+ * - workboard runtime 观测面板插件,负责提供结构化工作快照。
6
+ * - plugin action 与 HTTP route 共享同一份快照读取逻辑。
7
+ * - 是否启用由是否注册该 plugin 决定,不再读取项目配置做二次开关。
7
8
  */
8
9
 
9
10
  import { BasePlugin } from "@downcity/agent/internal/plugin/core/BasePlugin.js";
10
- import type { Plugin } from "@downcity/agent/internal/plugin/types/Plugin.js";
11
+ import type {
12
+ PluginActions,
13
+ PluginHttpDefinition,
14
+ } from "@downcity/agent/internal/plugin/types/Plugin.js";
15
+ import type { AgentContext } from "@downcity/agent/internal/types/runtime/agent/AgentContext.js";
11
16
  import type { JsonValue } from "@downcity/agent/internal/types/common/Json.js";
12
- import { isPluginEnabled } from "@downcity/agent/internal/plugin/core/Activation.js";
13
17
  import { getWorkboardSnapshotStore } from "@/workboard/runtime/Store.js";
14
18
  import type { WorkboardSnapshotResponse } from "@/workboard/types/Workboard.js";
15
19
 
16
- function createWorkboardPluginDefinition(plugin: Plugin): Plugin {
20
+ /**
21
+ * 读取 workboard 快照。
22
+ */
23
+ async function readWorkboardSnapshot(
24
+ context: AgentContext,
25
+ ): Promise<WorkboardSnapshotResponse> {
26
+ const snapshot = await getWorkboardSnapshotStore({
27
+ contextResolver: () => context,
28
+ }).readSnapshot();
17
29
  return {
18
- name: "workboard",
19
- title: "Workboard Snapshot",
20
- description:
21
- "Collects structured runtime activity snapshots so console surfaces can show what the current agent is doing now and what it recently worked on.",
22
- availability(context) {
23
- if (!isPluginEnabled({ plugin, context })) {
24
- return {
25
- enabled: false,
26
- available: false,
27
- reasons: ["workboard plugin disabled in project config"],
28
- };
29
- }
30
- return {
31
- enabled: true,
32
- available: true,
33
- reasons: [],
34
- };
35
- },
36
- actions: {
37
- snapshot: {
38
- execute: async ({ context }) => {
39
- const availability = await plugin.availability?.(context);
40
- if (availability && availability.available !== true) {
41
- return {
42
- success: false,
43
- error: availability.reasons.join("; ") || "workboard unavailable",
44
- };
45
- }
46
-
47
- const snapshot = await getWorkboardSnapshotStore({
48
- contextResolver: () => context,
49
- }).readSnapshot();
50
- return {
51
- success: true,
52
- data: {
53
- snapshot,
54
- } as unknown as JsonValue,
55
- };
56
- },
57
- },
58
- },
59
- http: {
60
- server: {
61
- authPolicies: [
62
- {
63
- path: "/api/workboard/*",
64
- method: "GET",
65
- requireAuth: true,
66
- anyPermissions: ["agent.read"],
67
- },
68
- ],
69
- register({ app, getContext }) {
70
- app.get("/api/workboard/snapshot", async (c) => {
71
- try {
72
- const availability = await plugin.availability?.(getContext());
73
- if (availability && availability.available !== true) {
74
- return c.json(
75
- {
76
- success: false,
77
- error: availability.reasons.join("; ") || "workboard unavailable",
78
- },
79
- 503,
80
- );
81
- }
82
-
83
- const snapshot = await getWorkboardSnapshotStore({
84
- contextResolver: getContext,
85
- }).readSnapshot();
86
- const payload: WorkboardSnapshotResponse = {
87
- success: true,
88
- snapshot,
89
- };
90
- return c.json(payload);
91
- } catch (error) {
92
- return c.json(
93
- {
94
- success: false,
95
- error: error instanceof Error ? error.message : String(error),
96
- },
97
- 500,
98
- );
99
- }
100
- });
101
- },
102
- },
103
- },
30
+ success: true,
31
+ snapshot,
104
32
  };
105
33
  }
106
34
 
@@ -108,10 +36,67 @@ function createWorkboardPluginDefinition(plugin: Plugin): Plugin {
108
36
  * WorkboardPlugin:运行态观测面板插件。
109
37
  */
110
38
  export class WorkboardPlugin extends BasePlugin {
39
+ /**
40
+ * 当前 plugin 稳定名称。
41
+ */
111
42
  readonly name = "workboard";
112
43
 
113
- constructor() {
114
- super();
115
- Object.assign(this, createWorkboardPluginDefinition(this));
116
- }
44
+ /**
45
+ * 插件标题。
46
+ */
47
+ readonly title = "Workboard Snapshot";
48
+
49
+ /**
50
+ * 插件说明。
51
+ */
52
+ readonly description =
53
+ "Collects structured runtime activity snapshots so console surfaces can show what the current agent is doing now and what it recently worked on.";
54
+
55
+ /**
56
+ * Workboard 对外 action。
57
+ */
58
+ readonly actions: PluginActions = {
59
+ snapshot: {
60
+ execute: async ({ context }) => {
61
+ const response = await readWorkboardSnapshot(context);
62
+ return {
63
+ success: true,
64
+ data: {
65
+ snapshot: response.snapshot,
66
+ } as unknown as JsonValue,
67
+ };
68
+ },
69
+ },
70
+ };
71
+
72
+ /**
73
+ * Workboard HTTP route。
74
+ */
75
+ readonly http: PluginHttpDefinition = {
76
+ server: {
77
+ authPolicies: [
78
+ {
79
+ path: "/api/workboard/*",
80
+ method: "GET",
81
+ requireAuth: true,
82
+ anyPermissions: ["agent.read"],
83
+ },
84
+ ],
85
+ register({ app, getContext }) {
86
+ app.get("/api/workboard/snapshot", async (c) => {
87
+ try {
88
+ return c.json(await readWorkboardSnapshot(getContext()));
89
+ } catch (error) {
90
+ return c.json(
91
+ {
92
+ success: false,
93
+ error: error instanceof Error ? error.message : String(error),
94
+ },
95
+ 500,
96
+ );
97
+ }
98
+ });
99
+ },
100
+ },
101
+ };
117
102
  }
@@ -1,17 +0,0 @@
1
- /**
2
- * ChatAuthorizationPlugin。
3
- *
4
- * 关键点(中文)
5
- * - chat-authorization 是内建且必需的 plugin,不走可选启停语义。
6
- * - 静态授权配置与动态观测态都收敛在项目 `.downcity/chat/authorization/`。
7
- * - 它只负责聊天主体授权,不负责 Town HTTP Bearer token 或路由访问鉴权。
8
- */
9
- import { BasePlugin } from "@downcity/agent/internal/plugin/core/BasePlugin.js";
10
- /**
11
- * ChatAuthorizationPlugin:统一承载聊天用户授权能力。
12
- */
13
- export declare class ChatAuthorizationPlugin extends BasePlugin {
14
- readonly name = "chat-authorization";
15
- constructor();
16
- }
17
- //# sourceMappingURL=Plugin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/auth/Plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAyNhF;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,UAAU;IACrD,QAAQ,CAAC,IAAI,wBAAkC;;CAMhD"}
@@ -1,199 +0,0 @@
1
- /**
2
- * ChatAuthorizationPlugin。
3
- *
4
- * 关键点(中文)
5
- * - chat-authorization 是内建且必需的 plugin,不走可选启停语义。
6
- * - 静态授权配置与动态观测态都收敛在项目 `.downcity/chat/authorization/`。
7
- * - 它只负责聊天主体授权,不负责 Town HTTP Bearer token 或路由访问鉴权。
8
- */
9
- import { BasePlugin } from "@downcity/agent/internal/plugin/core/BasePlugin.js";
10
- import { CHAT_PLUGIN_POINTS } from "../chat/runtime/PluginPoints.js";
11
- import { CHAT_AUTHORIZATION_ACTIONS, CHAT_AUTHORIZATION_CATALOG, CHAT_AUTHORIZATION_PLUGIN_NAME, } from "../auth/types/AuthPlugin.js";
12
- import { readChatAuthorizationConfig, setChatAuthorizationUserRole, writeChatAuthorizationConfig, } from "../auth/runtime/AuthorizationConfig.js";
13
- import { evaluateIncomingChatAuthorization, resolveAuthorizedUserRole, } from "../auth/runtime/AuthorizationPolicy.js";
14
- import { readAuthorizationSnapshot, recordObservedAuthorizationPrincipal, } from "../auth/runtime/AuthorizationStore.js";
15
- function toChannel(value) {
16
- const text = String(value || "").trim().toLowerCase();
17
- if (text === "telegram" || text === "feishu" || text === "qq")
18
- return text;
19
- return null;
20
- }
21
- function toRecord(value) {
22
- if (!value || typeof value !== "object" || Array.isArray(value))
23
- return {};
24
- return value;
25
- }
26
- function toEvaluateInput(payload) {
27
- const channel = toChannel(payload.channel);
28
- if (!channel) {
29
- throw new Error("chat-authorization.authorize_incoming requires a valid channel");
30
- }
31
- return {
32
- channel,
33
- chatId: String(payload.chatId || "").trim(),
34
- ...(typeof payload.chatType === "string" ? { chatType: payload.chatType.trim() } : {}),
35
- ...(typeof payload.userId === "string" ? { userId: payload.userId.trim() } : {}),
36
- ...(typeof payload.username === "string" ? { username: payload.username.trim() } : {}),
37
- ...(typeof payload.chatTitle === "string" ? { chatTitle: payload.chatTitle.trim() } : {}),
38
- };
39
- }
40
- function toSnapshotData(snapshot) {
41
- return {
42
- catalog: CHAT_AUTHORIZATION_CATALOG,
43
- config: snapshot.config,
44
- users: snapshot.users,
45
- chats: snapshot.chats,
46
- };
47
- }
48
- function createChatAuthorizationPluginDefinition() {
49
- return {
50
- name: CHAT_AUTHORIZATION_PLUGIN_NAME,
51
- title: "Chat Access",
52
- description: "Controls who can talk to the agent through chat platforms, records observed users and chats, and resolves each user's effective role for downstream service decisions.",
53
- availability() {
54
- return {
55
- enabled: true,
56
- available: true,
57
- reasons: [],
58
- };
59
- },
60
- hooks: {
61
- guard: {
62
- [CHAT_PLUGIN_POINTS.authorizeIncoming]: [
63
- async ({ context, value }) => {
64
- const input = value && typeof value === "object" && !Array.isArray(value)
65
- ? value
66
- : {};
67
- const evaluateInput = toEvaluateInput(input);
68
- const authorizationConfig = readChatAuthorizationConfig(context);
69
- const result = evaluateIncomingChatAuthorization({
70
- config: context.config,
71
- channel: evaluateInput.channel,
72
- input: evaluateInput,
73
- authorizationConfig,
74
- });
75
- if (result.decision !== "allow") {
76
- throw new Error(result.reason || "chat authorization blocked");
77
- }
78
- },
79
- ],
80
- },
81
- effect: {
82
- [CHAT_PLUGIN_POINTS.observePrincipal]: [
83
- async ({ context, value }) => {
84
- const input = toRecord(value);
85
- const channel = toChannel(input.channel);
86
- if (!channel) {
87
- throw new Error("chat.observePrincipal requires a valid channel");
88
- }
89
- await recordObservedAuthorizationPrincipal({
90
- context,
91
- channel,
92
- chatId: String(input.chatId || "").trim(),
93
- ...(typeof input.chatType === "string"
94
- ? { chatType: input.chatType.trim() }
95
- : {}),
96
- ...(typeof input.chatTitle === "string"
97
- ? { chatTitle: input.chatTitle.trim() }
98
- : {}),
99
- ...(typeof input.userId === "string"
100
- ? { userId: input.userId.trim() }
101
- : {}),
102
- ...(typeof input.username === "string"
103
- ? { username: input.username.trim() }
104
- : {}),
105
- });
106
- },
107
- ],
108
- },
109
- },
110
- resolves: {
111
- [CHAT_PLUGIN_POINTS.resolveUserRole]: async ({ context, value }) => {
112
- const input = value && typeof value === "object" && !Array.isArray(value)
113
- ? value
114
- : {};
115
- const channel = toChannel(input.channel);
116
- if (!channel) {
117
- throw new Error("chat.resolveUserRole requires a valid channel");
118
- }
119
- const role = resolveAuthorizedUserRole({
120
- channel,
121
- userId: String(input.userId || "").trim(),
122
- rootPath: context.rootPath,
123
- });
124
- return (role || null);
125
- },
126
- },
127
- actions: {
128
- [CHAT_AUTHORIZATION_ACTIONS.snapshot]: {
129
- execute: async ({ context }) => {
130
- const snapshot = await readAuthorizationSnapshot({
131
- context,
132
- });
133
- return {
134
- success: true,
135
- data: toSnapshotData(snapshot),
136
- };
137
- },
138
- },
139
- [CHAT_AUTHORIZATION_ACTIONS.readConfig]: {
140
- execute: async ({ context }) => {
141
- return {
142
- success: true,
143
- data: readChatAuthorizationConfig(context),
144
- };
145
- },
146
- },
147
- [CHAT_AUTHORIZATION_ACTIONS.writeConfig]: {
148
- execute: async ({ context, payload }) => {
149
- const body = toRecord(payload);
150
- const nextConfig = body.config && typeof body.config === "object" && !Array.isArray(body.config)
151
- ? body.config
152
- : {};
153
- await writeChatAuthorizationConfig({
154
- context,
155
- nextConfig,
156
- });
157
- return {
158
- success: true,
159
- data: readChatAuthorizationConfig(context),
160
- };
161
- },
162
- },
163
- [CHAT_AUTHORIZATION_ACTIONS.setUserRole]: {
164
- execute: async ({ context, payload }) => {
165
- const body = toRecord(payload);
166
- const channel = toChannel(body.channel);
167
- if (!channel) {
168
- return {
169
- success: false,
170
- error: "set-user-role requires a valid channel",
171
- message: "set-user-role requires a valid channel",
172
- };
173
- }
174
- await setChatAuthorizationUserRole({
175
- context,
176
- channel,
177
- userId: String(body.userId || "").trim(),
178
- roleId: String(body.roleId || "").trim(),
179
- });
180
- return {
181
- success: true,
182
- data: readChatAuthorizationConfig(context),
183
- };
184
- },
185
- },
186
- },
187
- };
188
- }
189
- /**
190
- * ChatAuthorizationPlugin:统一承载聊天用户授权能力。
191
- */
192
- export class ChatAuthorizationPlugin extends BasePlugin {
193
- name = CHAT_AUTHORIZATION_PLUGIN_NAME;
194
- constructor() {
195
- super();
196
- Object.assign(this, createChatAuthorizationPluginDefinition());
197
- }
198
- }
199
- //# sourceMappingURL=Plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/auth/Plugin.ts"],"names":[],"mappings":"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"}
@@ -1,122 +0,0 @@
1
- /**
2
- * ChatPlugin SDK / runtime 配置类型。
3
- *
4
- * 关键点(中文)
5
- * - 这里定义 `new ChatPlugin({...})` 的显式注入接口。
6
- * - 构造参数只承载显式渠道配置与 queue 行为,不再承载自定义存储/解析器注入。
7
- * - 若未显式提供渠道凭据,ChatPlugin 会直接回退到默认全局账号池 `~/.downcity/downcity.db`。
8
- */
9
- import type { ChatQueueWorkerConfig } from "../chat/types/ChatQueueWorker.js";
10
- /**
11
- * Telegram 显式渠道配置。
12
- */
13
- export interface ChatPluginTelegramOptions {
14
- /**
15
- * 是否启用当前渠道。
16
- *
17
- * 说明(中文)
18
- * - 省略时,若显式提供了 `botToken`,默认视为启用。
19
- * - 传入 `false` 时会强制关闭,即使提供了凭据也不会启动。
20
- */
21
- enabled?: boolean;
22
- /**
23
- * Telegram Bot Token。
24
- */
25
- botToken: string;
26
- /**
27
- * 可选的显式账户 ID。
28
- *
29
- * 说明(中文)
30
- * - 主要用于让上层产品把 runtime 渠道与自己的 account 池关联起来。
31
- * - 省略时会使用 runtime 合成的临时 ID。
32
- */
33
- channelAccountId?: string;
34
- /**
35
- * 渠道展示名。
36
- */
37
- name?: string;
38
- }
39
- /**
40
- * Feishu 显式渠道配置。
41
- */
42
- export interface ChatPluginFeishuOptions {
43
- /**
44
- * 是否启用当前渠道。
45
- */
46
- enabled?: boolean;
47
- /**
48
- * Feishu / Lark App ID。
49
- */
50
- appId: string;
51
- /**
52
- * Feishu / Lark App Secret。
53
- */
54
- appSecret: string;
55
- /**
56
- * 可选的 Open API 域名。
57
- */
58
- domain?: string;
59
- /**
60
- * 可选的显式账户 ID。
61
- */
62
- channelAccountId?: string;
63
- /**
64
- * 渠道展示名。
65
- */
66
- name?: string;
67
- }
68
- /**
69
- * QQ 显式渠道配置。
70
- */
71
- export interface ChatPluginQqOptions {
72
- /**
73
- * 是否启用当前渠道。
74
- */
75
- enabled?: boolean;
76
- /**
77
- * QQ Bot App ID。
78
- */
79
- appId: string;
80
- /**
81
- * QQ Bot App Secret。
82
- */
83
- appSecret: string;
84
- /**
85
- * 是否使用 QQ 沙箱模式。
86
- */
87
- sandbox?: boolean;
88
- /**
89
- * 可选的显式账户 ID。
90
- */
91
- channelAccountId?: string;
92
- /**
93
- * 渠道展示名。
94
- */
95
- name?: string;
96
- }
97
- /**
98
- * ChatPlugin 显式构造参数。
99
- */
100
- export interface ChatPluginOptions {
101
- /**
102
- * Chat queue worker 运行配置。
103
- *
104
- * 说明(中文)
105
- * - 显式传入时优先级高于 `downcity.json.plugins.chat.queue`。
106
- * - 可用于不同 client 定制并发、突发合并等行为。
107
- */
108
- queue?: Partial<ChatQueueWorkerConfig>;
109
- /**
110
- * Telegram 渠道显式配置。
111
- */
112
- telegram?: ChatPluginTelegramOptions;
113
- /**
114
- * Feishu 渠道显式配置。
115
- */
116
- feishu?: ChatPluginFeishuOptions;
117
- /**
118
- * QQ 渠道显式配置。
119
- */
120
- qq?: ChatPluginQqOptions;
121
- }
122
- //# sourceMappingURL=ChatPluginTypes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatPluginTypes.d.ts","sourceRoot":"","sources":["../../src/chat/ChatPluginTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACvC;;OAEG;IACH,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC;;OAEG;IACH,EAAE,CAAC,EAAE,mBAAmB,CAAC;CAC1B"}
@@ -1,10 +0,0 @@
1
- /**
2
- * ChatPlugin SDK / runtime 配置类型。
3
- *
4
- * 关键点(中文)
5
- * - 这里定义 `new ChatPlugin({...})` 的显式注入接口。
6
- * - 构造参数只承载显式渠道配置与 queue 行为,不再承载自定义存储/解析器注入。
7
- * - 若未显式提供渠道凭据,ChatPlugin 会直接回退到默认全局账号池 `~/.downcity/downcity.db`。
8
- */
9
- export {};
10
- //# sourceMappingURL=ChatPluginTypes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatPluginTypes.js","sourceRoot":"","sources":["../../src/chat/ChatPluginTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClaudeSkill.d.ts","sourceRoot":"","sources":["../../../src/skill/types/ClaudeSkill.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;OAMG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,EAAE,eAAe,CAAC;IACxB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClaudeSkill.js","sourceRoot":"","sources":["../../../src/skill/types/ClaudeSkill.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}