@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
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Chat channel SDK 基类与内置 channel 实现。
3
+ *
4
+ * 关键点(中文)
5
+ * - channel 对象是 ChatPlugin 的运行态配置单元。
6
+ * - env 由 channel 自己读取,ChatPlugin 不理解平台字段。
7
+ * - channelAccountId 仅作为账号池绑定能力保留,不再是 ChatPlugin 顶层配置。
8
+ */
9
+ import type { AgentContext } from "@downcity/agent/internal/types/runtime/agent/AgentContext.js";
10
+ import type { StoredChannelAccount } from "@downcity/agent/internal/types/platform/Store.js";
11
+ import type { ChatChannelName } from "../../chat/types/ChannelStatus.js";
12
+ import type { ChatChannel, ChatChannelRuntimePatch } from "../../chat/types/ChatPluginOptions.js";
13
+ /**
14
+ * env 字典。
15
+ */
16
+ export type ChatChannelEnv = Record<string, string | undefined>;
17
+ /**
18
+ * Chat channel 基础配置。
19
+ */
20
+ export interface BaseChatChannelOptions {
21
+ /**
22
+ * 是否启用该 channel。
23
+ *
24
+ * 说明(中文)
25
+ * - 默认值为 `true`,因为传入 channel 对象通常表示希望启用它。
26
+ * - 可通过 chat.open / chat.close 在运行态修改。
27
+ */
28
+ enabled?: boolean;
29
+ /**
30
+ * channel 专属 env。
31
+ *
32
+ * 说明(中文)
33
+ * - 这里面放面向人类可读的环境变量名,例如 `TELEGRAM_BOT_TOKEN`。
34
+ * - channel 会自行读取所需字段。
35
+ */
36
+ env?: ChatChannelEnv;
37
+ /**
38
+ * 可选账号池绑定 ID。
39
+ *
40
+ * 说明(中文)
41
+ * - 仅在需要复用全局账号池时使用。
42
+ * - SDK 主路径推荐直接通过 `env` 传入凭据。
43
+ */
44
+ channelAccountId?: string;
45
+ /**
46
+ * 运行态展示名称。
47
+ */
48
+ name?: string;
49
+ }
50
+ declare abstract class BaseRuntimeChatChannel implements ChatChannel {
51
+ /**
52
+ * channel 名称。
53
+ */
54
+ abstract readonly name: ChatChannelName;
55
+ protected enabled: boolean;
56
+ protected env: ChatChannelEnv;
57
+ protected channelAccountId: string;
58
+ protected displayName: string;
59
+ protected constructor(options?: BaseChatChannelOptions);
60
+ isEnabled(_context: AgentContext): boolean;
61
+ getChannelAccountId(_context: AgentContext): string;
62
+ applyRuntimePatch(patch: ChatChannelRuntimePatch): void;
63
+ protected getStoredAccount(): StoredChannelAccount | null;
64
+ protected nowIso(): string;
65
+ abstract getAccount(context: AgentContext): StoredChannelAccount | null;
66
+ }
67
+ /**
68
+ * Telegram channel 配置。
69
+ */
70
+ export interface TelegramChannelOptions extends BaseChatChannelOptions {
71
+ /**
72
+ * Telegram bot token。
73
+ *
74
+ * 说明(中文)
75
+ * - 优先级高于 `env.TELEGRAM_BOT_TOKEN`。
76
+ */
77
+ botToken?: string;
78
+ }
79
+ /**
80
+ * Telegram channel。
81
+ */
82
+ export declare class TelegramChannel extends BaseRuntimeChatChannel {
83
+ readonly name: "telegram";
84
+ private readonly botToken?;
85
+ constructor(options?: TelegramChannelOptions);
86
+ getAccount(_context: AgentContext): StoredChannelAccount | null;
87
+ }
88
+ /**
89
+ * Feishu channel 配置。
90
+ */
91
+ export interface FeishuChannelOptions extends BaseChatChannelOptions {
92
+ /**
93
+ * Feishu / Lark App ID。
94
+ */
95
+ appId?: string;
96
+ /**
97
+ * Feishu / Lark App Secret。
98
+ */
99
+ appSecret?: string;
100
+ /**
101
+ * Feishu / Lark Open API 域名。
102
+ */
103
+ domain?: string;
104
+ }
105
+ /**
106
+ * Feishu channel。
107
+ */
108
+ export declare class FeishuChannel extends BaseRuntimeChatChannel {
109
+ readonly name: "feishu";
110
+ private readonly appId?;
111
+ private readonly appSecret?;
112
+ private readonly domain?;
113
+ constructor(options?: FeishuChannelOptions);
114
+ getAccount(_context: AgentContext): StoredChannelAccount | null;
115
+ }
116
+ /**
117
+ * QQ channel 配置。
118
+ */
119
+ export interface QqChannelOptions extends BaseChatChannelOptions {
120
+ /**
121
+ * QQ Bot App ID。
122
+ */
123
+ appId?: string;
124
+ /**
125
+ * QQ Bot App Secret。
126
+ */
127
+ appSecret?: string;
128
+ /**
129
+ * 是否使用 QQ 沙箱模式。
130
+ */
131
+ sandbox?: boolean;
132
+ }
133
+ /**
134
+ * QQ channel。
135
+ */
136
+ export declare class QqChannel extends BaseRuntimeChatChannel {
137
+ readonly name: "qq";
138
+ private readonly appId?;
139
+ private readonly appSecret?;
140
+ private readonly sandbox?;
141
+ constructor(options?: QqChannelOptions);
142
+ getAccount(_context: AgentContext): StoredChannelAccount | null;
143
+ }
144
+ export {};
145
+ //# sourceMappingURL=RuntimeChannel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeChannel.d.ts","sourceRoot":"","sources":["../../../src/chat/channels/RuntimeChannel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Chat channel SDK 基类与内置 channel 实现。
3
+ *
4
+ * 关键点(中文)
5
+ * - channel 对象是 ChatPlugin 的运行态配置单元。
6
+ * - env 由 channel 自己读取,ChatPlugin 不理解平台字段。
7
+ * - channelAccountId 仅作为账号池绑定能力保留,不再是 ChatPlugin 顶层配置。
8
+ */
9
+ import { getStoredChannelAccountSync } from "../../chat/accounts/Store.js";
10
+ class BaseRuntimeChatChannel {
11
+ enabled;
12
+ env;
13
+ channelAccountId;
14
+ displayName;
15
+ constructor(options = {}) {
16
+ this.enabled = options.enabled !== false;
17
+ this.env = options.env || {};
18
+ this.channelAccountId = String(options.channelAccountId || "").trim();
19
+ this.displayName = String(options.name || "").trim();
20
+ }
21
+ isEnabled(_context) {
22
+ return this.enabled;
23
+ }
24
+ getChannelAccountId(_context) {
25
+ return this.channelAccountId;
26
+ }
27
+ applyRuntimePatch(patch) {
28
+ if (typeof patch.enabled === "boolean") {
29
+ this.enabled = patch.enabled;
30
+ }
31
+ if (Object.prototype.hasOwnProperty.call(patch, "channelAccountId")) {
32
+ this.channelAccountId = String(patch.channelAccountId || "").trim();
33
+ }
34
+ }
35
+ getStoredAccount() {
36
+ if (!this.channelAccountId)
37
+ return null;
38
+ const account = getStoredChannelAccountSync(this.channelAccountId);
39
+ if (!account || account.channel !== this.name)
40
+ return null;
41
+ return account;
42
+ }
43
+ nowIso() {
44
+ return new Date().toISOString();
45
+ }
46
+ }
47
+ /**
48
+ * Telegram channel。
49
+ */
50
+ export class TelegramChannel extends BaseRuntimeChatChannel {
51
+ name = "telegram";
52
+ botToken;
53
+ constructor(options = {}) {
54
+ super(options);
55
+ this.botToken = String(options.botToken || "").trim() || undefined;
56
+ }
57
+ getAccount(_context) {
58
+ const storedAccount = this.getStoredAccount();
59
+ if (storedAccount)
60
+ return storedAccount;
61
+ const token = String(this.botToken || this.env.TELEGRAM_BOT_TOKEN || "").trim();
62
+ if (!token)
63
+ return null;
64
+ const now = this.nowIso();
65
+ return {
66
+ id: this.channelAccountId || "chat-sdk-telegram",
67
+ channel: "telegram",
68
+ name: this.displayName || "telegram",
69
+ botToken: token,
70
+ createdAt: now,
71
+ updatedAt: now,
72
+ };
73
+ }
74
+ }
75
+ /**
76
+ * Feishu channel。
77
+ */
78
+ export class FeishuChannel extends BaseRuntimeChatChannel {
79
+ name = "feishu";
80
+ appId;
81
+ appSecret;
82
+ domain;
83
+ constructor(options = {}) {
84
+ super(options);
85
+ this.appId = String(options.appId || "").trim() || undefined;
86
+ this.appSecret = String(options.appSecret || "").trim() || undefined;
87
+ this.domain = String(options.domain || "").trim() || undefined;
88
+ }
89
+ getAccount(_context) {
90
+ const storedAccount = this.getStoredAccount();
91
+ if (storedAccount)
92
+ return storedAccount;
93
+ const appId = String(this.appId || this.env.FEISHU_APP_ID || "").trim();
94
+ const appSecret = String(this.appSecret || this.env.FEISHU_APP_SECRET || "").trim();
95
+ const domain = String(this.domain || this.env.FEISHU_DOMAIN || "").trim();
96
+ if (!appId || !appSecret)
97
+ return null;
98
+ const now = this.nowIso();
99
+ return {
100
+ id: this.channelAccountId || "chat-sdk-feishu",
101
+ channel: "feishu",
102
+ name: this.displayName || "feishu",
103
+ appId,
104
+ appSecret,
105
+ ...(domain ? { domain } : {}),
106
+ createdAt: now,
107
+ updatedAt: now,
108
+ };
109
+ }
110
+ }
111
+ /**
112
+ * QQ channel。
113
+ */
114
+ export class QqChannel extends BaseRuntimeChatChannel {
115
+ name = "qq";
116
+ appId;
117
+ appSecret;
118
+ sandbox;
119
+ constructor(options = {}) {
120
+ super(options);
121
+ this.appId = String(options.appId || "").trim() || undefined;
122
+ this.appSecret = String(options.appSecret || "").trim() || undefined;
123
+ this.sandbox = options.sandbox === true;
124
+ }
125
+ getAccount(_context) {
126
+ const storedAccount = this.getStoredAccount();
127
+ if (storedAccount)
128
+ return storedAccount;
129
+ const appId = String(this.appId || this.env.QQ_APP_ID || "").trim();
130
+ const appSecret = String(this.appSecret || this.env.QQ_APP_SECRET || "").trim();
131
+ const sandbox = this.sandbox === true ||
132
+ String(this.env.QQ_SANDBOX || "").trim().toLowerCase() === "true";
133
+ if (!appId || !appSecret)
134
+ return null;
135
+ const now = this.nowIso();
136
+ return {
137
+ id: this.channelAccountId || "chat-sdk-qq",
138
+ channel: "qq",
139
+ name: this.displayName || "qq",
140
+ appId,
141
+ appSecret,
142
+ ...(sandbox ? { sandbox: true } : {}),
143
+ createdAt: now,
144
+ updatedAt: now,
145
+ };
146
+ }
147
+ }
148
+ //# sourceMappingURL=RuntimeChannel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeChannel.js","sourceRoot":"","sources":["../../../src/chat/channels/RuntimeChannel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * ChatAuthorizationRuntime:ChatPlugin 内置授权能力。
3
+ *
4
+ * 关键点(中文)
5
+ * - 授权能力归属于 ChatPlugin,不再作为独立 plugin 注册。
6
+ * - chat runtime 仍通过通用 plugin hook / resolve 点调用,保持执行链路统一。
7
+ * - action 名称统一带 `authorization-` 前缀,避免和 chat 会话动作混淆。
8
+ */
9
+ import type { PluginActions, PluginHooks, PluginResolves } from "@downcity/agent/internal/plugin/types/Plugin.js";
10
+ /**
11
+ * 创建 ChatPlugin 内置授权 hooks。
12
+ */
13
+ export declare function createChatAuthorizationHooks(): PluginHooks;
14
+ /**
15
+ * 创建 ChatPlugin 内置授权 resolve 点。
16
+ */
17
+ export declare function createChatAuthorizationResolves(): PluginResolves;
18
+ /**
19
+ * 创建 ChatPlugin 内置授权 actions。
20
+ */
21
+ export declare function createChatAuthorizationActions(): PluginActions;
22
+ //# sourceMappingURL=ChatAuthorizationRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatAuthorizationRuntime.d.ts","sourceRoot":"","sources":["../../../src/chat/runtime/ChatAuthorizationRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,cAAc,EACf,MAAM,iDAAiD,CAAC;AA+DzD;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,WAAW,CAsD1D;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,cAAc,CAmBhE;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,aAAa,CAkE9D"}
@@ -0,0 +1,189 @@
1
+ /**
2
+ * ChatAuthorizationRuntime:ChatPlugin 内置授权能力。
3
+ *
4
+ * 关键点(中文)
5
+ * - 授权能力归属于 ChatPlugin,不再作为独立 plugin 注册。
6
+ * - chat runtime 仍通过通用 plugin hook / resolve 点调用,保持执行链路统一。
7
+ * - action 名称统一带 `authorization-` 前缀,避免和 chat 会话动作混淆。
8
+ */
9
+ import { CHAT_PLUGIN_POINTS } from "../../chat/runtime/PluginPoints.js";
10
+ import { CHAT_AUTHORIZATION_ACTIONS, CHAT_AUTHORIZATION_CATALOG, } from "../../auth/types/AuthPlugin.js";
11
+ import { readChatAuthorizationConfig, setChatAuthorizationUserRole, writeChatAuthorizationConfig, } from "../../auth/runtime/AuthorizationConfig.js";
12
+ import { evaluateIncomingChatAuthorization, resolveAuthorizedUserRole, } from "../../auth/runtime/AuthorizationPolicy.js";
13
+ import { readAuthorizationSnapshot, recordObservedAuthorizationPrincipal, } from "../../auth/runtime/AuthorizationStore.js";
14
+ function toChannel(value) {
15
+ const text = String(value || "").trim().toLowerCase();
16
+ if (text === "telegram" || text === "feishu" || text === "qq")
17
+ return text;
18
+ return null;
19
+ }
20
+ function toRecord(value) {
21
+ if (!value || typeof value !== "object" || Array.isArray(value))
22
+ return {};
23
+ return value;
24
+ }
25
+ function toEvaluateInput(payload) {
26
+ const channel = toChannel(payload.channel);
27
+ if (!channel) {
28
+ throw new Error("chat.authorizeIncoming requires a valid channel");
29
+ }
30
+ return {
31
+ channel,
32
+ chatId: String(payload.chatId || "").trim(),
33
+ ...(typeof payload.chatType === "string" ? { chatType: payload.chatType.trim() } : {}),
34
+ ...(typeof payload.userId === "string" ? { userId: payload.userId.trim() } : {}),
35
+ ...(typeof payload.username === "string" ? { username: payload.username.trim() } : {}),
36
+ ...(typeof payload.chatTitle === "string" ? { chatTitle: payload.chatTitle.trim() } : {}),
37
+ };
38
+ }
39
+ function toSnapshotData(snapshot) {
40
+ return {
41
+ catalog: CHAT_AUTHORIZATION_CATALOG,
42
+ config: snapshot.config,
43
+ users: snapshot.users,
44
+ chats: snapshot.chats,
45
+ };
46
+ }
47
+ /**
48
+ * 创建 ChatPlugin 内置授权 hooks。
49
+ */
50
+ export function createChatAuthorizationHooks() {
51
+ return {
52
+ guard: {
53
+ [CHAT_PLUGIN_POINTS.authorizeIncoming]: [
54
+ async ({ context, value }) => {
55
+ const input = value && typeof value === "object" && !Array.isArray(value)
56
+ ? value
57
+ : {};
58
+ const evaluateInput = toEvaluateInput(input);
59
+ const authorizationConfig = readChatAuthorizationConfig(context);
60
+ const result = evaluateIncomingChatAuthorization({
61
+ config: context.config,
62
+ channel: evaluateInput.channel,
63
+ input: evaluateInput,
64
+ authorizationConfig,
65
+ });
66
+ if (result.decision !== "allow") {
67
+ throw new Error(result.reason || "chat authorization blocked");
68
+ }
69
+ },
70
+ ],
71
+ },
72
+ effect: {
73
+ [CHAT_PLUGIN_POINTS.observePrincipal]: [
74
+ async ({ context, value }) => {
75
+ const input = toRecord(value);
76
+ const channel = toChannel(input.channel);
77
+ if (!channel) {
78
+ throw new Error("chat.observePrincipal requires a valid channel");
79
+ }
80
+ await recordObservedAuthorizationPrincipal({
81
+ context,
82
+ channel,
83
+ chatId: String(input.chatId || "").trim(),
84
+ ...(typeof input.chatType === "string"
85
+ ? { chatType: input.chatType.trim() }
86
+ : {}),
87
+ ...(typeof input.chatTitle === "string"
88
+ ? { chatTitle: input.chatTitle.trim() }
89
+ : {}),
90
+ ...(typeof input.userId === "string"
91
+ ? { userId: input.userId.trim() }
92
+ : {}),
93
+ ...(typeof input.username === "string"
94
+ ? { username: input.username.trim() }
95
+ : {}),
96
+ });
97
+ },
98
+ ],
99
+ },
100
+ };
101
+ }
102
+ /**
103
+ * 创建 ChatPlugin 内置授权 resolve 点。
104
+ */
105
+ export function createChatAuthorizationResolves() {
106
+ return {
107
+ [CHAT_PLUGIN_POINTS.resolveUserRole]: async ({ context, value }) => {
108
+ const input = value && typeof value === "object" && !Array.isArray(value)
109
+ ? value
110
+ : {};
111
+ const channel = toChannel(input.channel);
112
+ if (!channel) {
113
+ throw new Error("chat.resolveUserRole requires a valid channel");
114
+ }
115
+ const role = resolveAuthorizedUserRole({
116
+ channel,
117
+ userId: String(input.userId || "").trim(),
118
+ rootPath: context.rootPath,
119
+ });
120
+ return (role || null);
121
+ },
122
+ };
123
+ }
124
+ /**
125
+ * 创建 ChatPlugin 内置授权 actions。
126
+ */
127
+ export function createChatAuthorizationActions() {
128
+ return {
129
+ [CHAT_AUTHORIZATION_ACTIONS.snapshot]: {
130
+ execute: async ({ context }) => {
131
+ const snapshot = await readAuthorizationSnapshot({
132
+ context,
133
+ });
134
+ return {
135
+ success: true,
136
+ data: toSnapshotData(snapshot),
137
+ };
138
+ },
139
+ },
140
+ [CHAT_AUTHORIZATION_ACTIONS.readConfig]: {
141
+ execute: async ({ context }) => {
142
+ return {
143
+ success: true,
144
+ data: readChatAuthorizationConfig(context),
145
+ };
146
+ },
147
+ },
148
+ [CHAT_AUTHORIZATION_ACTIONS.writeConfig]: {
149
+ execute: async ({ context, payload }) => {
150
+ const body = toRecord(payload);
151
+ const nextConfig = body.config && typeof body.config === "object" && !Array.isArray(body.config)
152
+ ? body.config
153
+ : {};
154
+ await writeChatAuthorizationConfig({
155
+ context,
156
+ nextConfig,
157
+ });
158
+ return {
159
+ success: true,
160
+ data: readChatAuthorizationConfig(context),
161
+ };
162
+ },
163
+ },
164
+ [CHAT_AUTHORIZATION_ACTIONS.setUserRole]: {
165
+ execute: async ({ context, payload }) => {
166
+ const body = toRecord(payload);
167
+ const channel = toChannel(body.channel);
168
+ if (!channel) {
169
+ return {
170
+ success: false,
171
+ error: "authorization-set-user-role requires a valid channel",
172
+ message: "authorization-set-user-role requires a valid channel",
173
+ };
174
+ }
175
+ await setChatAuthorizationUserRole({
176
+ context,
177
+ channel,
178
+ userId: String(body.userId || "").trim(),
179
+ roleId: String(body.roleId || "").trim(),
180
+ });
181
+ return {
182
+ success: true,
183
+ data: readChatAuthorizationConfig(context),
184
+ };
185
+ },
186
+ },
187
+ };
188
+ }
189
+ //# sourceMappingURL=ChatAuthorizationRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatAuthorizationRuntime.js","sourceRoot":"","sources":["../../../src/chat/runtime/ChatAuthorizationRuntime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatChannelActions.d.ts","sourceRoot":"","sources":["../../../src/chat/runtime/ChatChannelActions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,KAAK,EACV,sBAAsB,EACtB,8BAA8B,EAC9B,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAkB3E;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE;IACpD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,uBAAuB,CAAC;CAClC;;;;;GAWA;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,qBAAqB,CAAC;CAChC;;;;;;;GA6CA;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,0BAA0B,CAAC;CACrC;;;;;;;;;;GAkCA;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,qBAAqB,CAAC;CAChC;;;;;GA0BA;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,sBAAsB,CAAC;CACjC;;;;;GAoBA;AAED;;GAEG;AACH,wBAAsB,8BAA8B,CAAC,MAAM,EAAE;IAC3D,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,8BAA8B,CAAC;CACzC;;;;;;;;;GAcA;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,0BAA0B,CAAC;CACrC;;;;;;;;;;;;;GA0DA"}
1
+ {"version":3,"file":"ChatChannelActions.d.ts","sourceRoot":"","sources":["../../../src/chat/runtime/ChatChannelActions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,KAAK,EACV,sBAAsB,EACtB,8BAA8B,EAC9B,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AA8B3E;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE;IACpD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,uBAAuB,CAAC;CAClC;;;;;GAWA;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,qBAAqB,CAAC;CAChC;;;;;;;GA6CA;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,0BAA0B,CAAC;CACrC;;;;;;;;;;GAkCA;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,qBAAqB,CAAC;CAChC;;;;;GA0BA;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,sBAAsB,CAAC;CACjC;;;;;GAoBA;AAED;;GAEG;AACH,wBAAsB,8BAA8B,CAAC,MAAM,EAAE;IAC3D,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,8BAA8B,CAAC;CACzC;;;;;;;;;GAcA;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,0BAA0B,CAAC;CACrC;;;;;;;;;;;;;GA6DA"}
@@ -7,9 +7,16 @@
7
7
  * - 对外只暴露 action 级入口,供 ChatPluginActions 装配使用。
8
8
  */
9
9
  import { getStoredChannelAccountSync } from "../../chat/accounts/Store.js";
10
- import { describeChatChannelConfiguration, getChatChannelStatus, listChatChannelConfigurationDescriptions, normalizeChatChannelConfigPatch, setChatChannelConfig, setChatChannelEnabled, } from "./ChatChannelConfig.js";
11
- import { getChatChannelBot, resolveTargetChannels, } from "./ChatChannelCore.js";
10
+ import { describeChatChannelConfiguration, getChatChannelStatus, listChatChannelConfigurationDescriptions, normalizeChatChannelConfigPatch, } from "./ChatChannelConfig.js";
11
+ import { getChatChannelBot, resolveChatPluginBindings, resolveTargetChannels, } from "./ChatChannelCore.js";
12
12
  import { startSingleChatChannel, stopSingleChatChannel, } from "./ChatChannelLifecycle.js";
13
+ function getChatRuntimeBindings(context) {
14
+ const plugin = resolveChatPluginBindings(context);
15
+ if (!plugin?.applyChannelRuntimePatch) {
16
+ throw new Error("ChatPlugin runtime instance is not available");
17
+ }
18
+ return plugin;
19
+ }
13
20
  /**
14
21
  * 执行 `chat.status` action。
15
22
  */
@@ -109,9 +116,9 @@ export async function executeChatReconnectAction(params) {
109
116
  */
110
117
  export async function executeChatOpenAction(params) {
111
118
  const targets = resolveTargetChannels(params.payload.channel);
119
+ const plugin = getChatRuntimeBindings(params.context);
112
120
  for (const channel of targets) {
113
- await setChatChannelEnabled({
114
- context: params.context,
121
+ plugin.applyChannelRuntimePatch({
115
122
  channel,
116
123
  enabled: true,
117
124
  });
@@ -137,10 +144,10 @@ export async function executeChatOpenAction(params) {
137
144
  */
138
145
  export async function executeChatCloseAction(params) {
139
146
  const targets = resolveTargetChannels(params.payload.channel);
147
+ const plugin = getChatRuntimeBindings(params.context);
140
148
  for (const channel of targets) {
141
149
  await stopSingleChatChannel(params.state, channel);
142
- await setChatChannelEnabled({
143
- context: params.context,
150
+ plugin.applyChannelRuntimePatch({
144
151
  channel,
145
152
  enabled: false,
146
153
  });
@@ -204,10 +211,13 @@ export async function executeChatConfigureAction(params) {
204
211
  }
205
212
  }
206
213
  }
207
- await setChatChannelConfig({
208
- context: params.context,
214
+ const plugin = getChatRuntimeBindings(params.context);
215
+ plugin.applyChannelRuntimePatch({
209
216
  channel,
210
- patch,
217
+ ...(typeof patch.enabled === "boolean" ? { enabled: patch.enabled } : {}),
218
+ ...(Object.prototype.hasOwnProperty.call(patch, "channelAccountId")
219
+ ? { channelAccountId: String(patch.channelAccountId || "").trim() || null }
220
+ : {}),
211
221
  });
212
222
  // 关键点(中文):默认重载一次目标渠道,让新配置立刻生效。
213
223
  const restart = params.payload.restart !== false;
@@ -1 +1 @@
1
- {"version":3,"file":"ChatChannelActions.js","sourceRoot":"","sources":["../../../src/chat/runtime/ChatChannelActions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatChannelActions.js","sourceRoot":"","sources":["../../../src/chat/runtime/ChatChannelActions.ts"],"names":[],"mappings":"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"}