@xihe-lab/tapd-core 2.0.0-rc.5 → 2.0.0-rc.7

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 (61) hide show
  1. package/LICENSE +16 -4
  2. package/README.md +6 -1
  3. package/dist/registry/mention-guard.d.ts +10 -0
  4. package/dist/registry/mention-guard.d.ts.map +1 -0
  5. package/dist/registry/mention-guard.js +66 -0
  6. package/dist/registry/mention-guard.js.map +1 -0
  7. package/dist/registry/registry.d.ts.map +1 -1
  8. package/dist/registry/registry.js +4 -1
  9. package/dist/registry/registry.js.map +1 -1
  10. package/dist/registry/richtext.d.ts +10 -1
  11. package/dist/registry/richtext.d.ts.map +1 -1
  12. package/dist/registry/richtext.js +23 -7
  13. package/dist/registry/richtext.js.map +1 -1
  14. package/dist/richtext/pipeline.d.ts +2 -1
  15. package/dist/richtext/pipeline.d.ts.map +1 -1
  16. package/dist/richtext/pipeline.js +2 -2
  17. package/dist/richtext/pipeline.js.map +1 -1
  18. package/dist/tools/utility.d.ts.map +1 -1
  19. package/dist/tools/utility.js +13 -22
  20. package/dist/tools/utility.js.map +1 -1
  21. package/package.json +8 -5
  22. package/dist/advisor/advisor.test.d.ts +0 -2
  23. package/dist/advisor/advisor.test.d.ts.map +0 -1
  24. package/dist/advisor/advisor.test.js +0 -102
  25. package/dist/advisor/advisor.test.js.map +0 -1
  26. package/dist/cache/read-cache.test.d.ts +0 -2
  27. package/dist/cache/read-cache.test.d.ts.map +0 -1
  28. package/dist/cache/read-cache.test.js +0 -429
  29. package/dist/cache/read-cache.test.js.map +0 -1
  30. package/dist/config/config.test.d.ts +0 -2
  31. package/dist/config/config.test.d.ts.map +0 -1
  32. package/dist/config/config.test.js +0 -229
  33. package/dist/config/config.test.js.map +0 -1
  34. package/dist/registry/long-id-guard.test.d.ts +0 -2
  35. package/dist/registry/long-id-guard.test.d.ts.map +0 -1
  36. package/dist/registry/long-id-guard.test.js +0 -224
  37. package/dist/registry/long-id-guard.test.js.map +0 -1
  38. package/dist/registry/registry.test.d.ts +0 -2
  39. package/dist/registry/registry.test.d.ts.map +0 -1
  40. package/dist/registry/registry.test.js +0 -511
  41. package/dist/registry/registry.test.js.map +0 -1
  42. package/dist/registry/richtext.test.d.ts +0 -2
  43. package/dist/registry/richtext.test.d.ts.map +0 -1
  44. package/dist/registry/richtext.test.js +0 -273
  45. package/dist/registry/richtext.test.js.map +0 -1
  46. package/dist/schema/export.test.d.ts +0 -2
  47. package/dist/schema/export.test.d.ts.map +0 -1
  48. package/dist/schema/export.test.js +0 -68
  49. package/dist/schema/export.test.js.map +0 -1
  50. package/dist/tools/attachment.test.d.ts +0 -2
  51. package/dist/tools/attachment.test.d.ts.map +0 -1
  52. package/dist/tools/attachment.test.js +0 -432
  53. package/dist/tools/attachment.test.js.map +0 -1
  54. package/dist/tools/md-to-html.test.d.ts +0 -2
  55. package/dist/tools/md-to-html.test.d.ts.map +0 -1
  56. package/dist/tools/md-to-html.test.js +0 -125
  57. package/dist/tools/md-to-html.test.js.map +0 -1
  58. package/dist/tools/richtext-wiring.test.d.ts +0 -2
  59. package/dist/tools/richtext-wiring.test.d.ts.map +0 -1
  60. package/dist/tools/richtext-wiring.test.js +0 -302
  61. package/dist/tools/richtext-wiring.test.js.map +0 -1
package/LICENSE CHANGED
@@ -1,3 +1,4 @@
1
+
1
2
  Apache License
2
3
  Version 2.0, January 2004
3
4
  http://www.apache.org/licenses/
@@ -48,7 +49,7 @@
48
49
  "Contribution" shall mean any work of authorship, including
49
50
  the original version of the Work and any modifications or additions
50
51
  to that Work or Derivative Works thereof, that is intentionally
51
- submitted to the Licensor for inclusion in the Work by the copyright owner
52
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
53
  or by an individual or Legal Entity authorized to submit on behalf of
53
54
  the copyright owner. For the purposes of this definition, "submitted"
54
55
  means any form of electronic, verbal, or written communication sent
@@ -60,7 +61,7 @@
60
61
  designated in writing by the copyright owner as "Not a Contribution."
61
62
 
62
63
  "Contributor" shall mean Licensor and any individual or Legal Entity
63
- on behalf of whom a Contribution has been received by the Licensor and
64
+ on behalf of whom a Contribution has been received by Licensor and
64
65
  subsequently incorporated within the Work.
65
66
 
66
67
  2. Grant of Copyright License. Subject to the terms and conditions of
@@ -106,7 +107,7 @@
106
107
  (d) If the Work includes a "NOTICE" text file as part of its
107
108
  distribution, then any Derivative Works that You distribute must
108
109
  include a readable copy of the attribution notices contained
109
- within such NOTICE file, excluding any notices that do not
110
+ within such NOTICE file, excluding those notices that do not
110
111
  pertain to any part of the Derivative Works, in at least one
111
112
  of the following places: within a NOTICE text file distributed
112
113
  as part of the Derivative Works; within the Source form or
@@ -175,7 +176,18 @@
175
176
 
176
177
  END OF TERMS AND CONDITIONS
177
178
 
178
- Copyright 2025 xihe-lab
179
+ APPENDIX: How to apply the Apache License to your work.
180
+
181
+ To apply the Apache License to your work, attach the following
182
+ boilerplate notice, with the fields enclosed by brackets "[]"
183
+ replaced with your own identifying information. (Don't include
184
+ the brackets!) The text should be enclosed in the appropriate
185
+ comment syntax for the file format. We also recommend that a
186
+ file or class name and description of purpose be included on the
187
+ same "printed page" as the copyright notice for easier
188
+ identification within third-party archives.
189
+
190
+ Copyright [yyyy] [name of copyright owner]
179
191
 
180
192
  Licensed under the Apache License, Version 2.0 (the "License");
181
193
  you may not use this file except in compliance with the License.
package/README.md CHANGED
@@ -18,6 +18,11 @@ npm install @xihe-lab/tapd-core
18
18
  - **富文本**:`richtext/` 语义库,md ↔ html 双向转换与 `@`/附件锚点处理
19
19
  - **Schema 导出**:`exportSchemas` 导出工具 JSON Schema
20
20
 
21
+ ## 仓库与镜像
22
+
23
+ - GitHub(主):<https://github.com/xihe-lab/tapd-core>
24
+ - Gitee 镜像:<https://gitee.com/xihe-lab/tapd-core>
25
+
21
26
  ## License
22
27
 
23
- Apache-2.0
28
+ [Apache-2.0](./LICENSE)
@@ -0,0 +1,10 @@
1
+ import { TapdClient } from '../tapd-client.js';
2
+ import type { MdToHtmlOptions } from '../richtext/index.js';
3
+ /** /users 响应 → 昵称集合(User.user 字符串或裸字符串数组两种形态;tools/utility.ts 复用)。 */
4
+ export declare function extractNicknames(payload: unknown): Set<string>;
5
+ /**
6
+ * 写路径 mention 守卫预热:取项目成员昵称集合并组装 mdToHtml 谓词选项。
7
+ * 返回 undefined = 不过滤(非富文本写工具 / 无 mention 候选 / raw_html 直发 / 成员列表不可用)。
8
+ */
9
+ export declare function primeMentionFilter(client: TapdClient, toolName: string, args: unknown): Promise<MdToHtmlOptions | undefined>;
10
+ //# sourceMappingURL=mention-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mention-guard.d.ts","sourceRoot":"","sources":["../../src/registry/mention-guard.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAY9D;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAwBtC"}
@@ -0,0 +1,66 @@
1
+ // bug 0103(mention 误报)写路径守卫:@昵称 候选先校验项目成员,未命中保持字面 @。
2
+ //
3
+ // 边界与降级:
4
+ // - 纯库零 IO 边界保持——谓词在 tapd-markdown 管道内消费(mdToHtml options 注入),
5
+ // 成员集合的获取在这里完成(client /users,读侧 TTL 缓存 30min 自动加速,失败不缓存)
6
+ // - 降级哲学(与 FSD §3.6 一致):成员列表不可取(403/网络失败/空列表/无 workspace)→
7
+ // 不过滤、维持全转换。欠标记无害(服务端对纯文本 @ 仍智能识别,R4 实证);
8
+ // 过标记(at-who 指向不存在用户——回归三次 + 存储级实锤)才是本 bug 的害
9
+ // - 廉价预检:富文本字段无任何 mention 命中时零网络请求(写操作多数不含 @)
10
+ import { TapdClient } from '../tapd-client.js';
11
+ import { findMentions } from '../richtext/index.js';
12
+ import { isRichtextAutoEnabled } from './richtext.js';
13
+ import { WRITE_RICHTEXT_FIELDS_BY_TOOL } from './richtext-manifests.generated.js';
14
+ /** /users 响应 → 昵称集合(User.user 字符串或裸字符串数组两种形态;tools/utility.ts 复用)。 */
15
+ export function extractNicknames(payload) {
16
+ const names = new Set();
17
+ for (const item of Array.isArray(payload) ? payload : []) {
18
+ if (typeof item === 'string' && item !== '') {
19
+ names.add(item);
20
+ }
21
+ else if (item && typeof item === 'object') {
22
+ const rec = item;
23
+ const user = rec.User?.user ?? rec.user;
24
+ if (typeof user === 'string' && user !== '')
25
+ names.add(user);
26
+ }
27
+ }
28
+ return names;
29
+ }
30
+ /**
31
+ * 写路径 mention 守卫预热:取项目成员昵称集合并组装 mdToHtml 谓词选项。
32
+ * 返回 undefined = 不过滤(非富文本写工具 / 无 mention 候选 / raw_html 直发 / 成员列表不可用)。
33
+ */
34
+ export async function primeMentionFilter(client, toolName, args) {
35
+ if (!isRichtextAutoEnabled())
36
+ return undefined;
37
+ const record = (args ?? {});
38
+ const fields = WRITE_RICHTEXT_FIELDS_BY_TOOL[toolName];
39
+ if (!fields)
40
+ return undefined;
41
+ if (record.raw_html === true)
42
+ return undefined; // 直发旁路不做 md 转换,守卫无意义
43
+ const hasCandidate = fields.some((field) => {
44
+ const value = record[field];
45
+ return typeof value === 'string' && findMentions(value).length > 0;
46
+ });
47
+ if (!hasCandidate)
48
+ return undefined;
49
+ const workspaceId = record.workspace_id ?? TapdClient.getDefaultWorkspaceId();
50
+ if (workspaceId === undefined || workspaceId === null || workspaceId === '')
51
+ return undefined;
52
+ try {
53
+ const payload = await client.get('/users', {
54
+ workspace_id: workspaceId,
55
+ fields: 'user',
56
+ });
57
+ const known = extractNicknames(payload);
58
+ if (known.size === 0)
59
+ return undefined; // 空列表多为无权限读取,视为不可用降级
60
+ return { isKnownMention: (name) => known.has(name) };
61
+ }
62
+ catch {
63
+ return undefined; // 403/网络失败:降级全转换(欠标记无害哲学,见文件头)
64
+ }
65
+ }
66
+ //# sourceMappingURL=mention-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mention-guard.js","sourceRoot":"","sources":["../../src/registry/mention-guard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQ1D,MAAM,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAElC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,cAAc,GACd,mBAAmB,GACnB,cAAc,GACd,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,YAAY,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB;;;;WAIG;QACH,MAAM,CAAC,EAAE,eAAe,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAiCD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA8B;IAE3C,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI;IAchC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAItC,IAAI,IAAI,OAAO,EAAE;IAIjB,QAAQ,IAAI,cAAc,EAAE;IAatB,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,WAAW,EAChB,aAAa,CAAC,EAAE,MAAM,UAAU,GAC/B,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CAwE1B"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAS1D,MAAM,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAElC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,cAAc,GACd,mBAAmB,GACnB,cAAc,GACd,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,YAAY,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB;;;;WAIG;QACH,MAAM,CAAC,EAAE,eAAe,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAiCD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA8B;IAE3C,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI;IAchC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAItC,IAAI,IAAI,OAAO,EAAE;IAIjB,QAAQ,IAAI,cAAc,EAAE;IAatB,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,WAAW,EAChB,aAAa,CAAC,EAAE,MAAM,UAAU,GAC/B,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CA0E1B"}
@@ -3,6 +3,7 @@ import { resolveWrite } from './write-policy.js';
3
3
  import { deriveCommand } from './derive-command.js';
4
4
  import { MANUAL_CLI_META, EXPLICIT_WRITE } from './cli-meta.js';
5
5
  import { transformWriteArgs, transformReadData } from './richtext.js';
6
+ import { primeMentionFilter } from './mention-guard.js';
6
7
  import { guardLongIdSchema } from './long-id-guard.js';
7
8
  const DEFAULT_TIMEOUT_MS = 60_000;
8
9
  const SENSITIVE_KEY = /password|token|secret|credential/i;
@@ -114,7 +115,9 @@ export class ToolRegistry {
114
115
  return { ok: false, error: { code: 'AUTH_MISSING', message } };
115
116
  }
116
117
  try {
117
- const data = await withTimeout(tool.handler(client, transformWriteArgs(name, parsed.data)), ctx.timeoutMs ?? DEFAULT_TIMEOUT_MS);
118
+ // bug 0103 写路径 mention 守卫:成员集合预热(/users 走只读 TTL 缓存),不可用降级全转换
119
+ const mentionOptions = await primeMentionFilter(client, name, parsed.data);
120
+ const data = await withTimeout(tool.handler(client, transformWriteArgs(name, parsed.data, mentionOptions)), ctx.timeoutMs ?? DEFAULT_TIMEOUT_MS);
118
121
  finish(true);
119
122
  return { ok: true, data: transformReadData(data) };
120
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/registry/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/registry/registry.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import type { MdToHtmlOptions } from '../richtext/index.js';
2
3
  /**
3
4
  * raw_html 直发通道(P3,FSD §3.5,需求 1139814312001001548)。
4
5
  * 富文本写工具(comment/story/task/bug/wiki 的 create/update)共享的 schema 字段:
@@ -9,7 +10,15 @@ import { z } from 'zod';
9
10
  export declare const RAW_HTML_FIELD: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
10
11
  export declare const READ_RICHTEXT_FIELDS: ReadonlySet<string>;
11
12
  export declare function isRichtextAutoEnabled(): boolean;
13
+ /** 读侧无损投影开关(Wave 3):默认开;TAPD_RICHTEXT_LOSSLESS=0 回退有损(向后兼容)。 */
14
+ export declare function isLosslessReadEnabled(): boolean;
15
+ /**
16
+ * HTML 旁路启发式(bug 0111 修正):判定前先剥除 fence/行内代码与白名单冻结标签对——
17
+ * 前者是 md 语法本体(反引号内的标签示例),后者是 htmlToMdLossless 读投影的合法回放
18
+ * 单元;二者都不应令整篇跳过 md→html 转换(曾致含标签示例的 md 裸文本落库)。
19
+ * 其余 HTML 标签(真块级/粘贴的富文本)仍触发旁路原样透传。
20
+ */
12
21
  export declare function looksLikeHtml(value: string): boolean;
13
- export declare function transformWriteArgs(toolName: string, args: Record<string, unknown>): Record<string, unknown>;
22
+ export declare function transformWriteArgs(toolName: string, args: Record<string, unknown>, mdOptions?: MdToHtmlOptions): Record<string, unknown>;
14
23
  export declare function transformReadData(data: unknown): unknown;
15
24
  //# sourceMappingURL=richtext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"richtext.d.ts","sourceRoot":"","sources":["../../src/registry/richtext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,2CAE1B,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAA4B,CAAC;AAElF,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAGD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwB3G;AAGD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAGxD"}
1
+ {"version":3,"file":"richtext.d.ts","sourceRoot":"","sources":["../../src/registry/richtext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,2CAE1B,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAA4B,CAAC;AAElF,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED,gEAAgE;AAChE,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAKD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGpD;AAID,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,CAAC,EAAE,eAAe,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwBzB;AAKD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAGxD"}
@@ -2,7 +2,7 @@ import { z } from 'zod';
2
2
  import { DUAL_WRITE_TOOLS, WRITE_RICHTEXT_FIELDS_BY_TOOL } from './richtext-manifests.generated.js';
3
3
  // rc.2 P3 接线(1139814312001001548):写/读管道与 md_to_html/html_to_md 工具共用同一条
4
4
  // 保真转换管道(richtext/pipeline.ts,token/规则级 @ + 附件锚点接线)——FSD §3.7。
5
- import { htmlToMd, mdToHtml } from '../richtext/pipeline.js';
5
+ import { htmlToMd, htmlToMdLossless, mdToHtml, stripKeepInlineHtml } from '../richtext/pipeline.js';
6
6
  const BLOCK_HTML_RE = /<(p|div|ul|ol|li|table|thead|tbody|tr|td|th|strong|em|h[1-6]|blockquote|pre|br|a|span|code|img|hr|s|del|u|font|b|i)\b[^>]*>/i;
7
7
  /**
8
8
  * raw_html 直发通道(P3,FSD §3.5,需求 1139814312001001548)。
@@ -17,11 +17,25 @@ export const READ_RICHTEXT_FIELDS = new Set(['description']);
17
17
  export function isRichtextAutoEnabled() {
18
18
  return process.env.TAPD_RICHTEXT_AUTO !== '0';
19
19
  }
20
+ /** 读侧无损投影开关(Wave 3):默认开;TAPD_RICHTEXT_LOSSLESS=0 回退有损(向后兼容)。 */
21
+ export function isLosslessReadEnabled() {
22
+ return process.env.TAPD_RICHTEXT_LOSSLESS !== '0';
23
+ }
24
+ const FENCE_RE = /```[\s\S]*?```/g;
25
+ const CODE_SPAN_RE = /`[^`\n]*`/g;
26
+ /**
27
+ * HTML 旁路启发式(bug 0111 修正):判定前先剥除 fence/行内代码与白名单冻结标签对——
28
+ * 前者是 md 语法本体(反引号内的标签示例),后者是 htmlToMdLossless 读投影的合法回放
29
+ * 单元;二者都不应令整篇跳过 md→html 转换(曾致含标签示例的 md 裸文本落库)。
30
+ * 其余 HTML 标签(真块级/粘贴的富文本)仍触发旁路原样透传。
31
+ */
20
32
  export function looksLikeHtml(value) {
21
- return BLOCK_HTML_RE.test(value);
33
+ const stripped = stripKeepInlineHtml(value.replace(FENCE_RE, '').replace(CODE_SPAN_RE, ''));
34
+ return BLOCK_HTML_RE.test(stripped);
22
35
  }
23
36
  // 写侧三层路由:raw_html 旁路 -> wiki 双写 -> 启发式双模 -> 关闭时全原样
24
- export function transformWriteArgs(toolName, args) {
37
+ // mdOptions:mention 守卫谓词(bug 0103,registry 执行期经 primeMentionFilter 预热注入)
38
+ export function transformWriteArgs(toolName, args, mdOptions) {
25
39
  const out = { ...args };
26
40
  // raw_html 旁路(P3,R7 服务端保真):先摘除,避免作为未知参数透传给 TAPD API
27
41
  const rawHtml = out.raw_html === true;
@@ -43,15 +57,17 @@ export function transformWriteArgs(toolName, args) {
43
57
  if (field === 'description') {
44
58
  if (out.markdown_description === undefined)
45
59
  out.markdown_description = value;
46
- out[field] = mdToHtml(value);
60
+ out[field] = mdToHtml(value, mdOptions);
47
61
  }
48
62
  continue;
49
63
  }
50
- out[field] = mdToHtml(value);
64
+ out[field] = mdToHtml(value, mdOptions);
51
65
  }
52
66
  return out;
53
67
  }
54
- // 读侧:递归扫描富文本字段,HTML 转 md;无标签特征的值原样
68
+ // 读侧:递归扫描富文本字段,HTML 转 md;无标签特征的值原样。
69
+ // Wave 3 起默认无损投影(GFM 不可表达标签行内 HTML 保留,读→改→写闭环无损),
70
+ // TAPD_RICHTEXT_LOSSLESS=0 回退有损。
55
71
  export function transformReadData(data) {
56
72
  if (!isRichtextAutoEnabled())
57
73
  return data;
@@ -64,7 +80,7 @@ function walk(node) {
64
80
  const out = {};
65
81
  for (const [key, value] of Object.entries(node)) {
66
82
  if (READ_RICHTEXT_FIELDS.has(key) && typeof value === 'string' && looksLikeHtml(value)) {
67
- out[key] = htmlToMd(value);
83
+ out[key] = isLosslessReadEnabled() ? htmlToMdLossless(value) : htmlToMd(value);
68
84
  }
69
85
  else {
70
86
  out[key] = walk(value);
@@ -1 +1 @@
1
- {"version":3,"file":"richtext.js","sourceRoot":"","sources":["../../src/registry/richtext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"richtext.js","sourceRoot":"","sources":["../../src/registry/richtext.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export { mdToHtml, htmlToMd } from '@xihe-lab/tapd-markdown';
1
+ export { mdToHtml, htmlToMd, htmlToMdLossless, sanitizeTapdHtml, stripKeepInlineHtml, } from '@xihe-lab/tapd-markdown';
2
+ export type { MdToHtmlOptions } from '@xihe-lab/tapd-markdown';
2
3
  //# sourceMappingURL=pipeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/richtext/pipeline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/richtext/pipeline.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,3 +1,3 @@
1
- // 兼容垫片:转换引擎(mdToHtml/htmlToMd)已迁出为 @xihe-lab/tapd-markdown。
2
- export { mdToHtml, htmlToMd } from '@xihe-lab/tapd-markdown';
1
+ // 兼容垫片:转换引擎已迁出为 @xihe-lab/tapd-markdown(Wave 3 起含无损读与冻结回放)。
2
+ export { mdToHtml, htmlToMd, htmlToMdLossless, sanitizeTapdHtml, stripKeepInlineHtml, } from '@xihe-lab/tapd-markdown';
3
3
  //# sourceMappingURL=pipeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/richtext/pipeline.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/richtext/pipeline.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../src/tools/utility.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA0M1E,6CAA6C;AAC7C,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC3C,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,eAAe,CAAA;KAAE,EAAE,CAAC;CAClD;AA2ED,eAAO,MAAM,YAAY,EAAE,OAAO,EAyCjC,CAAC"}
1
+ {"version":3,"file":"utility.d.ts","sourceRoot":"","sources":["../../src/tools/utility.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAkM1E,6CAA6C;AAC7C,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAC3C,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,eAAe,CAAA;KAAE,EAAE,CAAC;CAClD;AA2ED,eAAO,MAAM,YAAY,EAAE,OAAO,EAyCjC,CAAC"}
@@ -4,11 +4,12 @@ import { TapdClient } from '../tapd-client.js';
4
4
  import { TapdError } from '../errors/index.js';
5
5
  import { findMentions } from '../richtext/index.js';
6
6
  import { htmlToMd, mdToHtml } from '../richtext/pipeline.js';
7
+ import { extractNicknames } from '../registry/mention-guard.js';
7
8
  import { mediaTools } from './media.js';
8
9
  const mdToHtmlSchema = z.object({
9
10
  content: z.string().describe('Markdown 内容'),
10
11
  upload_images: z.boolean().optional().default(false).describe('显式副作用(默认 false):扫描 md 中 `![]()` 的本地存在图片路径并逐个上传 TAPD 图床,替换为 /tfl/ 远端路径;返回 uploaded_images 清单(失败项列入 failed_images,不影响其余内容)。上传语义为图片资源创建,不计入实体写闸门(FSD §3.4,side_effect: upload)'),
11
- workspace_id: z.number().optional().describe('项目ID:提供时对 `@昵称` 做成员校验(调 tapd_get_workspace_users;接口 403/失败自动降级跳过并在 warnings 说明),未命中昵称列入 warnings;同时作为 upload_images 的上传项目(省略时取默认项目配置)'),
12
+ workspace_id: z.number().optional().describe('项目ID:提供时对 `@昵称` 做成员校验(调 tapd_get_workspace_users;接口 403/失败自动降级跳过并在 warnings 说明),未命中昵称保持字面 @(不转 at-who)并列入 warnings;同时作为 upload_images 的上传项目(省略时取默认项目配置)'),
12
13
  });
13
14
  const htmlToMdSchema = z.object({
14
15
  html: z.string().describe('TAPD 富文本 HTML(description/comment 等)'),
@@ -83,22 +84,8 @@ async function uploadLocalImages(client, content, workspaceId) {
83
84
  }
84
85
  return { content, uploaded, failed };
85
86
  }
86
- function extractNicknames(payload) {
87
- const names = new Set();
88
- for (const item of Array.isArray(payload) ? payload : []) {
89
- if (typeof item === 'string' && item !== '') {
90
- names.add(item);
91
- }
92
- else if (item && typeof item === 'object') {
93
- const rec = item;
94
- const user = rec.User?.user ?? rec.user;
95
- if (typeof user === 'string' && user !== '')
96
- names.add(user);
97
- }
98
- }
99
- return names;
100
- }
101
- /** FSD §3.6:昵称成员校验(尽力而为;403/失败降级跳过——R4 服务端仍智能识别,欠标记无害)。 */
87
+ /** FSD §3.6:昵称成员校验(尽力而为;403/失败降级跳过——R4 服务端仍智能识别,欠标记无害)。
88
+ * 成功时返回已知集合供 mention 守卫注入(未命中候选保持字面 @,bug 0103)。 */
102
89
  async function validateMentionNicknames(client, workspaceId, content) {
103
90
  let known;
104
91
  try {
@@ -107,13 +94,16 @@ async function validateMentionNicknames(client, workspaceId, content) {
107
94
  }
108
95
  catch (error) {
109
96
  const reason = error instanceof Error ? error.message : String(error);
110
- return [`成员校验已跳过(tapd_get_workspace_users 不可用:${reason.slice(0, 120)});@昵称 仍由服务端智能识别`];
97
+ return { known: null, warnings: [`成员校验已跳过(tapd_get_workspace_users 不可用:${reason.slice(0, 120)});@昵称 仍由服务端智能识别`] };
111
98
  }
112
99
  if (known.size === 0) {
113
- return ['成员校验已跳过(成员列表为空或无权限读取);@昵称 仍由服务端智能识别'];
100
+ return { known: null, warnings: ['成员校验已跳过(成员列表为空或无权限读取);@昵称 仍由服务端智能识别'] };
114
101
  }
115
102
  const misses = [...new Set(findMentions(content).map(m => m.name))].filter(name => !known.has(name));
116
- return misses.map(name => `@${name} 未命中项目成员昵称(请核对昵称拼写;关键通知场景建议同时填 cc)`);
103
+ return {
104
+ known,
105
+ warnings: misses.map(name => `@${name} 未命中项目成员昵称,已保持字面 @(不转 at-who);请核对昵称拼写,关键通知场景建议同时填 cc`),
106
+ };
117
107
  }
118
108
  const mdToHtmlHandler = async (client, params) => {
119
109
  let content = params.content;
@@ -127,11 +117,12 @@ const mdToHtmlHandler = async (client, params) => {
127
117
  ({ content, uploaded, failed } = await uploadLocalImages(client, content, workspaceId));
128
118
  }
129
119
  let warnings = [];
120
+ let known = null;
130
121
  if (params.workspace_id !== undefined) {
131
- warnings = await validateMentionNicknames(client, params.workspace_id, content);
122
+ ({ known, warnings } = await validateMentionNicknames(client, params.workspace_id, content));
132
123
  }
133
124
  return {
134
- html: mdToHtml(content),
125
+ html: mdToHtml(content, known ? { isKnownMention: (name) => known.has(name) } : undefined),
135
126
  ...(uploaded.length > 0 ? { uploaded_images: uploaded } : {}),
136
127
  ...(failed.length > 0 ? { failed_images: failed } : {}),
137
128
  ...(warnings.length > 0 ? { warnings } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"utility.js","sourceRoot":"","sources":["../../src/tools/utility.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC3C,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,6KAA6K,CAAC;IAC5O,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uIAAuI,CAAC;CACtL,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CAClE,CAAC,CAAC;AAEH;;;GAGG;AACH,SAAS,SAAS;IAChB,OAAO,kEAAkE,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,6BAA6B;IACzE,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/E,CAAC;AAKD,2EAA2E;AAC3E,KAAK,UAAU,iBAAiB,CAC9B,MAAkB,EAClB,OAAe,EACf,WAAmB;IAEnB,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC;IACzE,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/F,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,oBAAoB;IAErE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,oBAAoB,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,MAAM,EAAE,CAAC;YACX,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,CAA0B,CAAC;YAC3H,IAAI,OAAO,MAAM,EAAE,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC;gBACrE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBACtC,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,GAAW,EAAE,IAAY,EAAE,EAAE;YAC1E,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACjD,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACxC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACzD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAC5C,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,IAA+B,CAAC;YAC5C,MAAM,IAAI,GAAI,GAAG,CAAC,IAA4C,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC;YACjF,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE;gBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2DAA2D;AAC3D,KAAK,UAAU,wBAAwB,CACrC,MAAkB,EAClB,WAAmB,EACnB,OAAe;IAEf,IAAI,KAAkB,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,GAAG,CAAU,QAAQ,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACnG,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,CAAC,wCAAwC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,qCAAqC,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACrG,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,oCAAoC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,eAAe,GAAG,KAAK,EAAE,MAAkB,EAAE,MAAsC,EAAE,EAAE;IAC3F,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC7B,IAAI,QAAQ,GAAoB,EAAE,CAAC;IACnC,IAAI,MAAM,GAAkB,EAAE,CAAC;IAC/B,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,IAAI,UAAU,CAAC,qBAAqB,EAAE,CAAC;QAC9E,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,qGAAqG,CAAC,CAAC;QACzH,CAAC;QACD,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,QAAQ,GAAa,EAAE,CAAC;IAC5B,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,QAAQ,GAAG,MAAM,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IACD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;QACvB,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7C,CAAC;AACJ,CAAC,CAAC;AAEF,4DAA4D;AAC5D,MAAM,eAAe,GAAG,KAAK,EAAE,OAAmB,EAAE,MAAsC,EAAE,EAAE;IAC5F,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;IAC5F,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;IACjE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;CAC1E,CAAC,CAAC;AAEH,4DAA4D;AAC5D,MAAM,oBAAoB,GAAG,KAAK,EAAE,OAAmB,EAAE,MAA2C,EAAE,EAAE;IACtG,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1F,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC,QAAQ;KACzC,CAAC;AACJ,CAAC,CAAC;AAUF,KAAK,UAAU,QAAQ,CACrB,KAA8C,EAC9C,cAAsB;IAEtB,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAsB,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9D,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,KAAK,IAAI,EAAE;QAC7D,OAAO,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,CAAC;YACrB,MAAM,EAAE,CAAC;YACT,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC;gBACH,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC5D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACvG,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,QAAQ,CAAC;AAClB,CAAC;AASD;;;;;;GAMG;AACH,KAAK,UAAU,eAAe,CAC5B,MAAkB,EAClB,IAAqC,EACrC,MAAuF;IAEvF,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,IAAI,UAAU,CAAC,qBAAqB,EAAE,CAAC;IAC9E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;IACvG,CAAC;IAED,MAAM,cAAc,GAAmB,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,CAAC;IACtG,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAClC,EAAE;QACF,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAU,IAAI,EAAE;YACnC,YAAY,EAAE,WAAW;YACzB,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;YACxC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpD,CAAC;KACH,CAAC,CAAC,CAAC;IACJ,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAoC,EAAE,CAAC;IACtD,MAAM,MAAM,GAAuC,EAAE,CAAC;IACtD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,QAAQ,GAAwB;QACpC,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QACvF,SAAS;QACT,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;KAC1E,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC3D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC5F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;CACtE,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC3D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC5F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;CACtE,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC3D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC5F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;CACtE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAc;IACrC;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,oVAAoV;QACjW,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,eAAe;QACxB,WAAW,EAAE,QAAQ;KACtB;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,yLAAyL;QACtM,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,eAAe;KACzB;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,4JAA4J;QACzK,WAAW,EAAE,mBAAmB;QAChC,OAAO,EAAE,oBAAoB;KAC9B;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,qLAAqL;QAClM,WAAW,EAAE,uBAAuB;QACpC,OAAO,EAAE,CAAC,MAAkB,EAAE,MAA+C,EAAE,EAAE,CAC/E,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;KAC9C;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,qLAAqL;QAClM,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,CAAC,MAAkB,EAAE,MAA4C,EAAE,EAAE,CAC5E,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;KAC3C;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,qLAAqL;QAClM,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,CAAC,MAAkB,EAAE,MAA6C,EAAE,EAAE,CAC7E,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;KAC5C;CACF,CAAC"}
1
+ {"version":3,"file":"utility.js","sourceRoot":"","sources":["../../src/tools/utility.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@xihe-lab/tapd-core",
3
- "version": "2.0.0-rc.5",
3
+ "version": "2.0.0-rc.7",
4
4
  "description": "Shared kernel for TAPD tools: tool definitions, TapdClient and registry, shared by CLI and MCP entries",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "scripts": {
9
- "build": "tsc",
9
+ "build": "tsc -p tsconfig.build.json",
10
10
  "type-check": "tsc --noEmit",
11
- "test": "tsx src/registry/long-id-guard.test.ts && tsx src/registry/registry.test.ts && tsx src/config/config.test.ts && tsx src/schema/export.test.ts && tsx src/advisor/advisor.test.ts && tsx src/tools/md-to-html.test.ts && tsx src/registry/richtext.test.ts && tsx src/tools/attachment.test.ts && tsx src/tools/richtext-wiring.test.ts",
11
+ "test": "tsx src/registry/long-id-guard.test.ts && tsx src/registry/registry.test.ts && tsx src/registry/mention-guard.test.ts && tsx src/config/config.test.ts && tsx src/schema/export.test.ts && tsx src/advisor/advisor.test.ts && tsx src/tools/md-to-html.test.ts && tsx src/registry/richtext.test.ts && tsx src/tools/attachment.test.ts && tsx src/tools/richtext-wiring.test.ts",
12
12
  "debug:commands": "tsx src/registry/debug-commands.ts"
13
13
  },
14
14
  "keywords": [
@@ -39,10 +39,13 @@
39
39
  ],
40
40
  "dependencies": {
41
41
  "@opentapd/tapd-node-sdk": "^1.67.0",
42
- "@xihe-lab/tapd-markdown": "1.0.0-rc.1",
42
+ "@xihe-lab/tapd-markdown": "1.0.0-rc.4",
43
43
  "zod": "^3.25.76",
44
44
  "zod-to-json-schema": "^3.25.2"
45
45
  },
46
46
  "homepage": "https://xihe-lab.com",
47
- "packageManager": "pnpm@12.3.4"
47
+ "packageManager": "pnpm@12.3.4",
48
+ "mirrors": {
49
+ "gitee": "git+https://gitee.com/xihe-lab/tapd-core.git"
50
+ }
48
51
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=advisor.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"advisor.test.d.ts","sourceRoot":"","sources":["../../src/advisor/advisor.test.ts"],"names":[],"mappings":""}