@linkmind_claw/openclaw-faq-kb 1.0.5 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,11 +1,13 @@
1
1
  /**
2
2
  * OpenClaw Plugin entry — FAQ Knowledge Base
3
3
  *
4
- * 3 core tools + 3 slash commands:
4
+ * 5 tools + 5 slash commands:
5
5
  *
6
- * 1. faq_kb_create_and_train one-click: create KB + auto-pipeline
7
- * 2. faq_kb_query intelligent Q&A
8
- * 3. faq_kb_list list accessible knowledge bases
6
+ * 1. faq_account_register OAuth 用户注册/登录 (所有人)
7
+ * 2. faq_account_manage 权限管理 (admin)
8
+ * 3. faq_kb_create_and_train 一键建库训练 (editor+)
9
+ * 4. faq_kb_query — 知识库问答 (viewer+)
10
+ * 5. faq_kb_list — 查看知识库列表 (viewer+)
9
11
  */
10
12
  interface CommandContext {
11
13
  args?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA+BH,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,SAAS;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC9C,eAAe,EAAE,CAAC,OAAO,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,GAAG;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KAChF,KAAK,IAAI,CAAC;CACZ;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;CACpC;;AAQD,wBA6KG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAyCH,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,SAAS;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC9C,eAAe,EAAE,CAAC,OAAO,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,GAAG;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KAChF,KAAK,IAAI,CAAC;CACZ;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;CACpC;;AAQD,wBAiQG"}
package/dist/index.js CHANGED
@@ -1,14 +1,18 @@
1
1
  /**
2
2
  * OpenClaw Plugin entry — FAQ Knowledge Base
3
3
  *
4
- * 3 core tools + 3 slash commands:
4
+ * 5 tools + 5 slash commands:
5
5
  *
6
- * 1. faq_kb_create_and_train one-click: create KB + auto-pipeline
7
- * 2. faq_kb_query intelligent Q&A
8
- * 3. faq_kb_list list accessible knowledge bases
6
+ * 1. faq_account_register OAuth 用户注册/登录 (所有人)
7
+ * 2. faq_account_manage 权限管理 (admin)
8
+ * 3. faq_kb_create_and_train 一键建库训练 (editor+)
9
+ * 4. faq_kb_query — 知识库问答 (viewer+)
10
+ * 5. faq_kb_list — 查看知识库列表 (viewer+)
9
11
  */
10
12
  import { Type } from "@sinclair/typebox";
11
13
  import { FaqKbApiClient } from "./lib/api-client.js";
14
+ import { AccountRegisterParams, executeAccountRegister, } from "./tools/account-register.js";
15
+ import { AccountManageParams, executeAccountManage, } from "./tools/account-manage.js";
12
16
  import { CreateAndTrainParams, executeCreateAndTrain, } from "./tools/create-kb-and-train.js";
13
17
  import { QueryParams, executeQuery, } from "./tools/query-kb.js";
14
18
  function definePluginEntry(entry) {
@@ -18,7 +22,7 @@ function definePluginEntry(entry) {
18
22
  export default definePluginEntry({
19
23
  id: "faq-knowledge-base",
20
24
  name: "FAQ Knowledge Base",
21
- description: "FAQ 知识库插件:一键上传文档训练知识库,智能问答,查看知识库列表",
25
+ description: "FAQ 知识库插件:OAuth 用户管理、一键上传文档训练知识库、智能问答",
22
26
  register(api) {
23
27
  const cfg = (api.pluginConfig ?? {});
24
28
  const baseUrl = cfg.apiBaseUrl || "http://67.212.146.21:8999";
@@ -28,7 +32,33 @@ export default definePluginEntry({
28
32
  baseUrl,
29
33
  staticToken: cfg.apiToken || undefined,
30
34
  });
31
- // ── Tool 1: Create & Train ────────────────────────────────────────
35
+ // ── Tool 1: Account Register (OAuth) ──────────────────────────────
36
+ api.registerTool({
37
+ name: "faq_account_register",
38
+ label: "用户注册/登录",
39
+ description: [
40
+ "社媒用户 OAuth 注册或登录。",
41
+ "首次调用自动创建账号(默认 viewer 角色),后续调用等同登录。",
42
+ "成功后自动缓存 JWT,后续 API 调用自动携带用户身份。",
43
+ "支持 Telegram / Discord / Slack / Web 等渠道。",
44
+ ].join(" "),
45
+ parameters: AccountRegisterParams,
46
+ execute: (_id, params) => executeAccountRegister(client, params),
47
+ });
48
+ // ── Tool 2: Account Manage (admin) ────────────────────────────────
49
+ api.registerTool({
50
+ name: "faq_account_manage",
51
+ label: "权限管理",
52
+ description: [
53
+ "管理员权限操作工具。",
54
+ "grant_role: 给用户授予角色和知识库访问范围。",
55
+ "list_users: 列出所有渠道用户。",
56
+ "my_info: 查看自己的身份、角色和配额。",
57
+ ].join(" "),
58
+ parameters: AccountManageParams,
59
+ execute: (_id, params) => executeAccountManage(client, params),
60
+ });
61
+ // ── Tool 3: Create & Train ────────────────────────────────────────
32
62
  api.registerTool({
33
63
  name: "faq_kb_create_and_train",
34
64
  label: "创建知识库并训练",
@@ -92,7 +122,59 @@ export default definePluginEntry({
92
122
  return { content: [{ type: "text", text: lines.join("\n") }] };
93
123
  },
94
124
  });
95
- // ── 3 Slash Commands — 和 3 个 tools 一一对应 ──────────────────────
125
+ // ── 5 Slash Commands ────────────────────────────────────────────────
126
+ api.registerCommand({
127
+ name: "faq_register",
128
+ description: "注册/登录: /faq_register",
129
+ handler: async (ctx) => {
130
+ if (!ctx.senderId || !ctx.channel) {
131
+ return { text: "无法获取你的用户信息,请在社媒渠道中使用。" };
132
+ }
133
+ try {
134
+ client.setSender(ctx.senderId);
135
+ const result = await client.oauthLogin({
136
+ channel_type: ctx.channel,
137
+ channel_user_id: ctx.senderId,
138
+ display_name: "",
139
+ });
140
+ const status = result.is_new ? "注册成功" : "登录成功";
141
+ return {
142
+ text: `✅ ${status}!\n 角色: ${result.role}\n 用户 ID: ${result.user_id}`,
143
+ };
144
+ }
145
+ catch (e) {
146
+ return { text: `❌ 注册失败: ${e.message}` };
147
+ }
148
+ },
149
+ });
150
+ api.registerCommand({
151
+ name: "faq_grant",
152
+ description: "授权用户: /faq_grant <user_id> <role>",
153
+ acceptsArgs: true,
154
+ handler: async (ctx) => {
155
+ const args = (ctx.args ?? "").trim();
156
+ const parts = args.split(/\s+/);
157
+ if (parts.length < 2) {
158
+ return {
159
+ text: "用法: /faq_grant <channel_user_id> <role>\n角色可选: viewer / editor / reviewer / admin",
160
+ };
161
+ }
162
+ const [targetId, role] = parts;
163
+ try {
164
+ const res = await client.post("/auth/grant_role", {
165
+ target_channel_user_id: targetId,
166
+ target_channel_type: ctx.channel || "telegram",
167
+ channel_bot_id: "default",
168
+ role,
169
+ kb_scope: null,
170
+ });
171
+ return { text: `✅ ${res.message || "授权成功"}` };
172
+ }
173
+ catch (e) {
174
+ return { text: `❌ 授权失败: ${e.message}` };
175
+ }
176
+ },
177
+ });
96
178
  api.registerCommand({
97
179
  name: "faq_create",
98
180
  description: "创建知识库并训练: /faq_create <名称> <文档URL>",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  /**
2
2
  * HTTP client for the FAQ Knowledge Base API (port 8999).
3
3
  *
4
- * Handles automatic token acquisition and renewal so that every
5
- * outgoing request carries a valid `X-API-Token` header.
4
+ * Two-layer auth:
5
+ * 1. System-level token (shared, for legacy/anonymous access)
6
+ * 2. Per-user OAuth JWT (from /oauth/telegram or /oauth/token)
7
+ *
8
+ * resolveToken() prefers user JWT, falls back to system token.
6
9
  */
7
10
  export interface ApiClientConfig {
8
11
  baseUrl: string;
@@ -11,14 +14,41 @@ export interface ApiClientConfig {
11
14
  /** Request timeout in ms (default 30 000). */
12
15
  timeoutMs?: number;
13
16
  }
17
+ export interface OAuthTokenResult {
18
+ access_token: string;
19
+ token_type: string;
20
+ expires_in: number;
21
+ user_id: string;
22
+ role: string;
23
+ is_new: boolean;
24
+ }
14
25
  export declare class FaqKbApiClient {
15
26
  private readonly baseUrl;
16
27
  private readonly staticToken;
17
28
  private readonly timeoutMs;
18
- private tokenCache;
29
+ private systemTokenCache;
30
+ /** Per-user JWT cache, keyed by channel_user_id */
31
+ private userTokens;
32
+ /** Sender → channel_user_id mapping set by Plugin at call time */
33
+ private activeSenderId;
19
34
  constructor(cfg: ApiClientConfig);
20
- private acquireToken;
21
- private getToken;
35
+ setSender(senderId: string | null): void;
36
+ private acquireSystemToken;
37
+ private getSystemToken;
38
+ storeUserToken(senderId: string, token: string, expiresIn: number): void;
39
+ getUserToken(senderId: string): string | null;
40
+ hasUserToken(senderId?: string): boolean;
41
+ /**
42
+ * OAuth login — calls /oauth/telegram or /oauth/token and caches the JWT.
43
+ */
44
+ oauthLogin(params: {
45
+ channel_type: string;
46
+ channel_user_id: string;
47
+ channel_bot_id?: string;
48
+ display_name?: string;
49
+ telegram_data?: Record<string, unknown>;
50
+ }): Promise<OAuthTokenResult>;
51
+ private resolveToken;
22
52
  request<T = unknown>(method: string, path: string, body?: unknown): Promise<T>;
23
53
  get<T = unknown>(path: string): Promise<T>;
24
54
  post<T = unknown>(path: string, body?: unknown): Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../lib/api-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,UAAU,CAA2B;gBAEjC,GAAG,EAAE,eAAe;YAQlB,YAAY;YAqBZ,QAAQ;IAUhB,OAAO,CAAC,CAAC,GAAG,OAAO,EACvB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,CAAC,CAAC;IAqCb,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM;IAI7B,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAI9C,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAI7C,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAI7C,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;CAGhD;AAID,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,CAAC,CAAC;CACT"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../lib/api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAA2B;IAEnD,mDAAmD;IACnD,OAAO,CAAC,UAAU,CAAiC;IAEnD,kEAAkE;IAClE,OAAO,CAAC,cAAc,CAAuB;gBAEjC,GAAG,EAAE,eAAe;IAQhC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;YAMnB,kBAAkB;YAiBlB,cAAc;IAU5B,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAQjE,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAO7C,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IAKxC;;OAEG;IACG,UAAU,CACd,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACzC,GACA,OAAO,CAAC,gBAAgB,CAAC;YAgDd,YAAY;IAUpB,OAAO,CAAC,CAAC,GAAG,OAAO,EACvB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,CAAC,CAAC;IAqCb,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM;IAC7B,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAC9C,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAC7C,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAC7C,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;CAChD;AAID,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,CAAC,CAAC;CACT"}
@@ -1,21 +1,32 @@
1
1
  /**
2
2
  * HTTP client for the FAQ Knowledge Base API (port 8999).
3
3
  *
4
- * Handles automatic token acquisition and renewal so that every
5
- * outgoing request carries a valid `X-API-Token` header.
4
+ * Two-layer auth:
5
+ * 1. System-level token (shared, for legacy/anonymous access)
6
+ * 2. Per-user OAuth JWT (from /oauth/telegram or /oauth/token)
7
+ *
8
+ * resolveToken() prefers user JWT, falls back to system token.
6
9
  */
7
10
  export class FaqKbApiClient {
8
11
  baseUrl;
9
12
  staticToken;
10
13
  timeoutMs;
11
- tokenCache = null;
14
+ systemTokenCache = null;
15
+ /** Per-user JWT cache, keyed by channel_user_id */
16
+ userTokens = new Map();
17
+ /** Sender → channel_user_id mapping set by Plugin at call time */
18
+ activeSenderId = null;
12
19
  constructor(cfg) {
13
20
  this.baseUrl = cfg.baseUrl.replace(/\/+$/, "");
14
21
  this.staticToken = cfg.staticToken || undefined;
15
22
  this.timeoutMs = cfg.timeoutMs ?? 30_000;
16
23
  }
17
- // ── Token management ────────────────────────────────────────────────
18
- async acquireToken() {
24
+ // ── Sender context ──────────────────────────────────────────────────
25
+ setSender(senderId) {
26
+ this.activeSenderId = senderId;
27
+ }
28
+ // ── System token (legacy) ───────────────────────────────────────────
29
+ async acquireSystemToken() {
19
30
  const res = await fetch(`${this.baseUrl}/api/token`, {
20
31
  method: "POST",
21
32
  signal: AbortSignal.timeout(this.timeoutMs),
@@ -24,25 +35,98 @@ export class FaqKbApiClient {
24
35
  throw new Error(`Token acquisition failed: ${res.status} ${res.statusText}`);
25
36
  }
26
37
  const body = (await res.json());
27
- // Renew 5 min before actual expiry to avoid edge-case failures
28
38
  const safetyMarginMs = 5 * 60 * 1000;
29
- this.tokenCache = {
39
+ this.systemTokenCache = {
30
40
  token: body.token,
31
41
  expiresAt: Date.now() + body.expires_in * 1000 - safetyMarginMs,
32
42
  };
33
43
  return body.token;
34
44
  }
35
- async getToken() {
45
+ async getSystemToken() {
36
46
  if (this.staticToken)
37
47
  return this.staticToken;
38
- if (this.tokenCache && Date.now() < this.tokenCache.expiresAt) {
39
- return this.tokenCache.token;
48
+ if (this.systemTokenCache && Date.now() < this.systemTokenCache.expiresAt) {
49
+ return this.systemTokenCache.token;
50
+ }
51
+ return this.acquireSystemToken();
52
+ }
53
+ // ── User OAuth JWT ──────────────────────────────────────────────────
54
+ storeUserToken(senderId, token, expiresIn) {
55
+ const safetyMs = 10 * 60 * 1000;
56
+ this.userTokens.set(senderId, {
57
+ token,
58
+ expiresAt: Date.now() + expiresIn * 1000 - safetyMs,
59
+ });
60
+ }
61
+ getUserToken(senderId) {
62
+ const cached = this.userTokens.get(senderId);
63
+ if (cached && Date.now() < cached.expiresAt)
64
+ return cached.token;
65
+ if (cached)
66
+ this.userTokens.delete(senderId);
67
+ return null;
68
+ }
69
+ hasUserToken(senderId) {
70
+ const id = senderId ?? this.activeSenderId;
71
+ return id ? this.getUserToken(id) !== null : false;
72
+ }
73
+ /**
74
+ * OAuth login — calls /oauth/telegram or /oauth/token and caches the JWT.
75
+ */
76
+ async oauthLogin(params) {
77
+ const sysToken = await this.getSystemToken();
78
+ let endpoint;
79
+ let payload;
80
+ if (params.channel_type === "telegram" && params.telegram_data) {
81
+ endpoint = "/oauth/telegram";
82
+ payload = { ...params.telegram_data, bot_id: params.channel_bot_id ?? "default" };
83
+ }
84
+ else {
85
+ endpoint = "/oauth/token";
86
+ payload = {
87
+ channel_type: params.channel_type,
88
+ channel_user_id: params.channel_user_id,
89
+ channel_bot_id: params.channel_bot_id ?? "default",
90
+ display_name: params.display_name ?? "",
91
+ };
92
+ }
93
+ const res = await fetch(`${this.baseUrl}${endpoint}`, {
94
+ method: "POST",
95
+ headers: {
96
+ "X-API-Token": sysToken,
97
+ "Content-Type": "application/json",
98
+ Accept: "application/json",
99
+ },
100
+ body: JSON.stringify(payload),
101
+ signal: AbortSignal.timeout(this.timeoutMs),
102
+ });
103
+ if (!res.ok) {
104
+ let detail;
105
+ try {
106
+ const err = (await res.json());
107
+ detail = err.detail ?? JSON.stringify(err);
108
+ }
109
+ catch {
110
+ detail = await res.text();
111
+ }
112
+ throw new Error(`OAuth login failed: ${res.status}: ${detail}`);
40
113
  }
41
- return this.acquireToken();
114
+ const result = (await res.json());
115
+ this.storeUserToken(params.channel_user_id, result.access_token, result.expires_in);
116
+ return result;
117
+ }
118
+ // ── Token resolution ────────────────────────────────────────────────
119
+ async resolveToken() {
120
+ if (this.activeSenderId) {
121
+ const jwt = this.getUserToken(this.activeSenderId);
122
+ if (jwt)
123
+ return jwt;
124
+ }
125
+ return this.getSystemToken();
42
126
  }
43
127
  // ── Generic request ─────────────────────────────────────────────────
44
128
  async request(method, path, body) {
45
- const token = await this.getToken();
129
+ const token = await this.resolveToken();
46
130
  const url = `${this.baseUrl}${path}`;
47
131
  const headers = {
48
132
  "X-API-Token": token,
@@ -72,20 +156,10 @@ export class FaqKbApiClient {
72
156
  return res.json();
73
157
  }
74
158
  // ── Convenience wrappers ────────────────────────────────────────────
75
- get(path) {
76
- return this.request("GET", path);
77
- }
78
- post(path, body) {
79
- return this.request("POST", path, body);
80
- }
81
- put(path, body) {
82
- return this.request("PUT", path, body);
83
- }
84
- del(path, body) {
85
- return this.request("DELETE", path, body);
86
- }
87
- patch(path, body) {
88
- return this.request("PATCH", path, body);
89
- }
159
+ get(path) { return this.request("GET", path); }
160
+ post(path, body) { return this.request("POST", path, body); }
161
+ put(path, body) { return this.request("PUT", path, body); }
162
+ del(path, body) { return this.request("DELETE", path, body); }
163
+ patch(path, body) { return this.request("PATCH", path, body); }
90
164
  }
91
165
  //# sourceMappingURL=api-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../lib/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../lib/api-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * faq_account_manage — 权限管理 tool
3
+ *
4
+ * Admin 专用操作:
5
+ * - grant_role: 授权用户角色和知识库范围
6
+ * - list_users: 列出渠道用户
7
+ * - my_info: 查看自己的身份和配额
8
+ */
9
+ import { type Static } from "@sinclair/typebox";
10
+ import type { FaqKbApiClient } from "../lib/api-client.js";
11
+ export declare const AccountManageParams: import("@sinclair/typebox").TObject<{
12
+ action: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"grant_role">, import("@sinclair/typebox").TLiteral<"list_users">, import("@sinclair/typebox").TLiteral<"my_info">]>;
13
+ target_channel_user_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
14
+ target_channel_type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
15
+ channel_bot_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
16
+ role: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
17
+ kb_scope: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
18
+ }>;
19
+ export type AccountManageInput = Static<typeof AccountManageParams>;
20
+ export declare function executeAccountManage(client: FaqKbApiClient, params: AccountManageInput): Promise<{
21
+ content: Array<{
22
+ type: "text";
23
+ text: string;
24
+ }>;
25
+ }>;
26
+ //# sourceMappingURL=account-manage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-manage.d.ts","sourceRoot":"","sources":["../../tools/account-manage.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,sBAAsB,CAAC;AAExE,eAAO,MAAM,mBAAmB;;;;;;;EA0B9B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEpE,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAsE7D"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * faq_account_manage — 权限管理 tool
3
+ *
4
+ * Admin 专用操作:
5
+ * - grant_role: 授权用户角色和知识库范围
6
+ * - list_users: 列出渠道用户
7
+ * - my_info: 查看自己的身份和配额
8
+ */
9
+ import { Type } from "@sinclair/typebox";
10
+ export const AccountManageParams = Type.Object({
11
+ action: Type.Union([
12
+ Type.Literal("grant_role"),
13
+ Type.Literal("list_users"),
14
+ Type.Literal("my_info"),
15
+ ], { description: "操作类型: grant_role / list_users / my_info" }),
16
+ target_channel_user_id: Type.Optional(Type.String({ description: "目标用户渠道 ID(grant_role 必填)" })),
17
+ target_channel_type: Type.Optional(Type.String({ description: "目标用户渠道类型(默认 telegram)" })),
18
+ channel_bot_id: Type.Optional(Type.String({ description: "Bot 标识(默认 default)" })),
19
+ role: Type.Optional(Type.String({ description: "要授予的角色: viewer / editor / reviewer / admin" })),
20
+ kb_scope: Type.Optional(Type.Array(Type.String(), {
21
+ description: "可访问的知识库 ID 列表(null=全部)",
22
+ })),
23
+ });
24
+ export async function executeAccountManage(client, params) {
25
+ switch (params.action) {
26
+ case "grant_role": {
27
+ if (!params.target_channel_user_id || !params.role) {
28
+ return {
29
+ content: [
30
+ {
31
+ type: "text",
32
+ text: "grant_role 需要 target_channel_user_id 和 role 参数",
33
+ },
34
+ ],
35
+ };
36
+ }
37
+ const res = await client.post("/auth/grant_role", {
38
+ target_channel_user_id: params.target_channel_user_id,
39
+ target_channel_type: params.target_channel_type ?? "telegram",
40
+ channel_bot_id: params.channel_bot_id ?? "default",
41
+ role: params.role,
42
+ kb_scope: params.kb_scope ?? null,
43
+ });
44
+ return {
45
+ content: [{ type: "text", text: res.message || "授权成功" }],
46
+ };
47
+ }
48
+ case "list_users": {
49
+ const qp = new URLSearchParams();
50
+ if (params.target_channel_type)
51
+ qp.set("channel_type", params.target_channel_type);
52
+ if (params.channel_bot_id)
53
+ qp.set("channel_bot_id", params.channel_bot_id);
54
+ const res = await client.get(`/auth/channel_users?${qp.toString()}`);
55
+ const users = res.data?.users ?? [];
56
+ const lines = [`渠道用户列表(共 ${users.length} 人):`];
57
+ for (const u of users) {
58
+ const scope = u.kb_scope ? `[${u.kb_scope.length} 个 KB]` : "[全部]";
59
+ lines.push(` ${u.name} 角色=${u.role} 渠道=${u.channel_type} 范围=${scope}`);
60
+ }
61
+ if (users.length === 0)
62
+ lines.push(" (暂无用户)");
63
+ return { content: [{ type: "text", text: lines.join("\n") }] };
64
+ }
65
+ case "my_info": {
66
+ const res = await client.get("/oauth/me");
67
+ const d = res.data;
68
+ const lines = [
69
+ "当前用户信息:",
70
+ ` 用户 ID: ${d.user_id}`,
71
+ ` 名称: ${d.name}`,
72
+ ` 角色: ${d.role}`,
73
+ ` 渠道: ${d.channel_type}`,
74
+ ` 知识库范围: ${d.kb_scope ? JSON.stringify(d.kb_scope) : "全部"}`,
75
+ ];
76
+ return { content: [{ type: "text", text: lines.join("\n") }] };
77
+ }
78
+ default:
79
+ return {
80
+ content: [
81
+ {
82
+ type: "text",
83
+ text: "未知操作,可选: grant_role / list_users / my_info",
84
+ },
85
+ ],
86
+ };
87
+ }
88
+ }
89
+ //# sourceMappingURL=account-manage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-manage.js","sourceRoot":"","sources":["../../tools/account-manage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * faq_account_register — OAuth 用户注册/登录
3
+ *
4
+ * 社媒用户首次使用时自动调用,完成 OAuth 注册并缓存 JWT。
5
+ */
6
+ import { type Static } from "@sinclair/typebox";
7
+ import type { FaqKbApiClient } from "../lib/api-client.js";
8
+ export declare const AccountRegisterParams: import("@sinclair/typebox").TObject<{
9
+ channel_type: import("@sinclair/typebox").TString;
10
+ channel_user_id: import("@sinclair/typebox").TString;
11
+ display_name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
12
+ channel_bot_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
13
+ }>;
14
+ export type AccountRegisterInput = Static<typeof AccountRegisterParams>;
15
+ export declare function executeAccountRegister(client: FaqKbApiClient, params: AccountRegisterInput): Promise<{
16
+ content: Array<{
17
+ type: "text";
18
+ text: string;
19
+ }>;
20
+ }>;
21
+ //# sourceMappingURL=account-register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-register.d.ts","sourceRoot":"","sources":["../../tools/account-register.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAoB,MAAM,sBAAsB,CAAC;AAE7E,eAAO,MAAM,qBAAqB;;;;;EAahC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAExE,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAmB7D"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * faq_account_register — OAuth 用户注册/登录
3
+ *
4
+ * 社媒用户首次使用时自动调用,完成 OAuth 注册并缓存 JWT。
5
+ */
6
+ import { Type } from "@sinclair/typebox";
7
+ export const AccountRegisterParams = Type.Object({
8
+ channel_type: Type.String({
9
+ description: "渠道类型: telegram / discord / slack / web",
10
+ }),
11
+ channel_user_id: Type.String({
12
+ description: "渠道平台用户唯一标识(如 Telegram user ID)",
13
+ }),
14
+ display_name: Type.Optional(Type.String({ description: "用户显示名称(可选)" })),
15
+ channel_bot_id: Type.Optional(Type.String({ description: "Bot 标识,默认 default" })),
16
+ });
17
+ export async function executeAccountRegister(client, params) {
18
+ const result = await client.oauthLogin({
19
+ channel_type: params.channel_type,
20
+ channel_user_id: params.channel_user_id,
21
+ channel_bot_id: params.channel_bot_id ?? "default",
22
+ display_name: params.display_name ?? "",
23
+ });
24
+ const lines = [];
25
+ if (result.is_new) {
26
+ lines.push("注册成功!已为你创建账号。");
27
+ }
28
+ else {
29
+ lines.push("登录成功!欢迎回来。");
30
+ }
31
+ lines.push(` 用户 ID: ${result.user_id}`);
32
+ lines.push(` 角色: ${result.role}`);
33
+ lines.push(` Token 有效期: ${Math.round(result.expires_in / 3600)} 小时`);
34
+ return { content: [{ type: "text", text: lines.join("\n") }] };
35
+ }
36
+ //# sourceMappingURL=account-register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-register.js","sourceRoot":"","sources":["../../tools/account-register.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAe,MAAM,mBAAmB,CAAC;AAGtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC;IAC/C,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC;QACxB,WAAW,EAAE,wCAAwC;KACtD,CAAC;IACF,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC;QAC3B,WAAW,EAAE,gCAAgC;KAC9C,CAAC;IACF,YAAY,EAAE,IAAI,CAAC,QAAQ,CACzB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAC3C;IACD,cAAc,EAAE,IAAI,CAAC,QAAQ,CAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAClD;CACF,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAsB,EACtB,MAA4B;IAE5B,MAAM,MAAM,GAAqB,MAAM,MAAM,CAAC,UAAU,CAAC;QACvD,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,SAAS;QAClD,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;KACxC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAEtE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linkmind_claw/openclaw-faq-kb",
3
- "version": "1.0.5",
3
+ "version": "1.1.0",
4
4
  "description": "OpenClaw Plugin - FAQ Knowledge Base: one-click document training & intelligent Q&A",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -11,7 +11,9 @@
11
11
  "test": "node --loader ts-node/esm test/smoke.ts"
12
12
  },
13
13
  "openclaw": {
14
- "extensions": ["./dist/index.js"]
14
+ "extensions": [
15
+ "./dist/index.js"
16
+ ]
15
17
  },
16
18
  "keywords": [
17
19
  "openclaw",