kevlar-4u 1.0.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.
Files changed (238) hide show
  1. package/README.md +357 -0
  2. package/config/mcp-config.json +9 -0
  3. package/dist/__tests__/configureWizard.test.d.ts +2 -0
  4. package/dist/__tests__/configureWizard.test.d.ts.map +1 -0
  5. package/dist/__tests__/configureWizard.test.js +89 -0
  6. package/dist/__tests__/configureWizard.test.js.map +1 -0
  7. package/dist/__tests__/createPersonaTool.test.d.ts +2 -0
  8. package/dist/__tests__/createPersonaTool.test.d.ts.map +1 -0
  9. package/dist/__tests__/createPersonaTool.test.js +292 -0
  10. package/dist/__tests__/createPersonaTool.test.js.map +1 -0
  11. package/dist/__tests__/createPersonaWizard.test.d.ts +2 -0
  12. package/dist/__tests__/createPersonaWizard.test.d.ts.map +1 -0
  13. package/dist/__tests__/createPersonaWizard.test.js +138 -0
  14. package/dist/__tests__/createPersonaWizard.test.js.map +1 -0
  15. package/dist/__tests__/deletePersonaWizard.test.d.ts +2 -0
  16. package/dist/__tests__/deletePersonaWizard.test.d.ts.map +1 -0
  17. package/dist/__tests__/deletePersonaWizard.test.js +78 -0
  18. package/dist/__tests__/deletePersonaWizard.test.js.map +1 -0
  19. package/dist/__tests__/e2e.test.d.ts +2 -0
  20. package/dist/__tests__/e2e.test.d.ts.map +1 -0
  21. package/dist/__tests__/e2e.test.js +121 -0
  22. package/dist/__tests__/e2e.test.js.map +1 -0
  23. package/dist/__tests__/errors.test.d.ts +2 -0
  24. package/dist/__tests__/errors.test.d.ts.map +1 -0
  25. package/dist/__tests__/errors.test.js +86 -0
  26. package/dist/__tests__/errors.test.js.map +1 -0
  27. package/dist/__tests__/execution.test.d.ts +2 -0
  28. package/dist/__tests__/execution.test.d.ts.map +1 -0
  29. package/dist/__tests__/execution.test.js +792 -0
  30. package/dist/__tests__/execution.test.js.map +1 -0
  31. package/dist/__tests__/getModesTool.test.d.ts +2 -0
  32. package/dist/__tests__/getModesTool.test.d.ts.map +1 -0
  33. package/dist/__tests__/getModesTool.test.js +47 -0
  34. package/dist/__tests__/getModesTool.test.js.map +1 -0
  35. package/dist/__tests__/helpTool.test.d.ts +2 -0
  36. package/dist/__tests__/helpTool.test.d.ts.map +1 -0
  37. package/dist/__tests__/helpTool.test.js +18 -0
  38. package/dist/__tests__/helpTool.test.js.map +1 -0
  39. package/dist/__tests__/listPersonasTool.test.d.ts +2 -0
  40. package/dist/__tests__/listPersonasTool.test.d.ts.map +1 -0
  41. package/dist/__tests__/listPersonasTool.test.js +110 -0
  42. package/dist/__tests__/listPersonasTool.test.js.map +1 -0
  43. package/dist/__tests__/logger.test.d.ts +2 -0
  44. package/dist/__tests__/logger.test.d.ts.map +1 -0
  45. package/dist/__tests__/logger.test.js +56 -0
  46. package/dist/__tests__/logger.test.js.map +1 -0
  47. package/dist/__tests__/observability.test.d.ts +2 -0
  48. package/dist/__tests__/observability.test.d.ts.map +1 -0
  49. package/dist/__tests__/observability.test.js +60 -0
  50. package/dist/__tests__/observability.test.js.map +1 -0
  51. package/dist/__tests__/parser.test.d.ts +2 -0
  52. package/dist/__tests__/parser.test.d.ts.map +1 -0
  53. package/dist/__tests__/parser.test.js +259 -0
  54. package/dist/__tests__/parser.test.js.map +1 -0
  55. package/dist/__tests__/persona_creation_debug.test.d.ts +2 -0
  56. package/dist/__tests__/persona_creation_debug.test.d.ts.map +1 -0
  57. package/dist/__tests__/persona_creation_debug.test.js +56 -0
  58. package/dist/__tests__/persona_creation_debug.test.js.map +1 -0
  59. package/dist/__tests__/resetPersonasWizard.test.d.ts +2 -0
  60. package/dist/__tests__/resetPersonasWizard.test.d.ts.map +1 -0
  61. package/dist/__tests__/resetPersonasWizard.test.js +74 -0
  62. package/dist/__tests__/resetPersonasWizard.test.js.map +1 -0
  63. package/dist/__tests__/reviewContentWizard.test.d.ts +2 -0
  64. package/dist/__tests__/reviewContentWizard.test.d.ts.map +1 -0
  65. package/dist/__tests__/reviewContentWizard.test.js +148 -0
  66. package/dist/__tests__/reviewContentWizard.test.js.map +1 -0
  67. package/dist/__tests__/sanitize.test.d.ts +2 -0
  68. package/dist/__tests__/sanitize.test.d.ts.map +1 -0
  69. package/dist/__tests__/sanitize.test.js +138 -0
  70. package/dist/__tests__/sanitize.test.js.map +1 -0
  71. package/dist/__tests__/server.test.d.ts +2 -0
  72. package/dist/__tests__/server.test.d.ts.map +1 -0
  73. package/dist/__tests__/server.test.js +49 -0
  74. package/dist/__tests__/server.test.js.map +1 -0
  75. package/dist/execution/aggregator.d.ts +43 -0
  76. package/dist/execution/aggregator.d.ts.map +1 -0
  77. package/dist/execution/aggregator.js +132 -0
  78. package/dist/execution/aggregator.js.map +1 -0
  79. package/dist/execution/base.d.ts +62 -0
  80. package/dist/execution/base.d.ts.map +1 -0
  81. package/dist/execution/base.js +5 -0
  82. package/dist/execution/base.js.map +1 -0
  83. package/dist/execution/client.d.ts +9 -0
  84. package/dist/execution/client.d.ts.map +1 -0
  85. package/dist/execution/client.js +30 -0
  86. package/dist/execution/client.js.map +1 -0
  87. package/dist/execution/config.d.ts +30 -0
  88. package/dist/execution/config.d.ts.map +1 -0
  89. package/dist/execution/config.js +95 -0
  90. package/dist/execution/config.js.map +1 -0
  91. package/dist/execution/index.d.ts +19 -0
  92. package/dist/execution/index.d.ts.map +1 -0
  93. package/dist/execution/index.js +151 -0
  94. package/dist/execution/index.js.map +1 -0
  95. package/dist/execution/limiter.d.ts +32 -0
  96. package/dist/execution/limiter.d.ts.map +1 -0
  97. package/dist/execution/limiter.js +147 -0
  98. package/dist/execution/limiter.js.map +1 -0
  99. package/dist/execution/lock.d.ts +17 -0
  100. package/dist/execution/lock.d.ts.map +1 -0
  101. package/dist/execution/lock.js +37 -0
  102. package/dist/execution/lock.js.map +1 -0
  103. package/dist/execution/modes/direct_api.d.ts +11 -0
  104. package/dist/execution/modes/direct_api.d.ts.map +1 -0
  105. package/dist/execution/modes/direct_api.js +213 -0
  106. package/dist/execution/modes/direct_api.js.map +1 -0
  107. package/dist/execution/modes/index.d.ts +7 -0
  108. package/dist/execution/modes/index.d.ts.map +1 -0
  109. package/dist/execution/modes/index.js +7 -0
  110. package/dist/execution/modes/index.js.map +1 -0
  111. package/dist/execution/modes/orchestration.d.ts +11 -0
  112. package/dist/execution/modes/orchestration.d.ts.map +1 -0
  113. package/dist/execution/modes/orchestration.js +110 -0
  114. package/dist/execution/modes/orchestration.js.map +1 -0
  115. package/dist/execution/modes/sampling.d.ts +9 -0
  116. package/dist/execution/modes/sampling.d.ts.map +1 -0
  117. package/dist/execution/modes/sampling.js +66 -0
  118. package/dist/execution/modes/sampling.js.map +1 -0
  119. package/dist/execution/parallel.d.ts +16 -0
  120. package/dist/execution/parallel.d.ts.map +1 -0
  121. package/dist/execution/parallel.js +90 -0
  122. package/dist/execution/parallel.js.map +1 -0
  123. package/dist/index.d.ts +3 -0
  124. package/dist/index.d.ts.map +1 -0
  125. package/dist/index.js +17 -0
  126. package/dist/index.js.map +1 -0
  127. package/dist/prompts/reviewDispatcherPrompt.d.ts +2 -0
  128. package/dist/prompts/reviewDispatcherPrompt.d.ts.map +1 -0
  129. package/dist/prompts/reviewDispatcherPrompt.js +67 -0
  130. package/dist/prompts/reviewDispatcherPrompt.js.map +1 -0
  131. package/dist/server.d.ts +3 -0
  132. package/dist/server.d.ts.map +1 -0
  133. package/dist/server.js +156 -0
  134. package/dist/server.js.map +1 -0
  135. package/dist/tools/configureTool.d.ts +17 -0
  136. package/dist/tools/configureTool.d.ts.map +1 -0
  137. package/dist/tools/configureTool.js +104 -0
  138. package/dist/tools/configureTool.js.map +1 -0
  139. package/dist/tools/configureWizardTool.d.ts +11 -0
  140. package/dist/tools/configureWizardTool.d.ts.map +1 -0
  141. package/dist/tools/configureWizardTool.js +205 -0
  142. package/dist/tools/configureWizardTool.js.map +1 -0
  143. package/dist/tools/createPersonaTool.d.ts +37 -0
  144. package/dist/tools/createPersonaTool.d.ts.map +1 -0
  145. package/dist/tools/createPersonaTool.js +353 -0
  146. package/dist/tools/createPersonaTool.js.map +1 -0
  147. package/dist/tools/createPersonaWizardTool.d.ts +13 -0
  148. package/dist/tools/createPersonaWizardTool.d.ts.map +1 -0
  149. package/dist/tools/createPersonaWizardTool.js +713 -0
  150. package/dist/tools/createPersonaWizardTool.js.map +1 -0
  151. package/dist/tools/deletePersonaTool.d.ts +10 -0
  152. package/dist/tools/deletePersonaTool.d.ts.map +1 -0
  153. package/dist/tools/deletePersonaTool.js +75 -0
  154. package/dist/tools/deletePersonaTool.js.map +1 -0
  155. package/dist/tools/deletePersonaWizardTool.d.ts +11 -0
  156. package/dist/tools/deletePersonaWizardTool.d.ts.map +1 -0
  157. package/dist/tools/deletePersonaWizardTool.js +184 -0
  158. package/dist/tools/deletePersonaWizardTool.js.map +1 -0
  159. package/dist/tools/getModesTool.d.ts +12 -0
  160. package/dist/tools/getModesTool.d.ts.map +1 -0
  161. package/dist/tools/getModesTool.js +78 -0
  162. package/dist/tools/getModesTool.js.map +1 -0
  163. package/dist/tools/helpTool.d.ts +7 -0
  164. package/dist/tools/helpTool.d.ts.map +1 -0
  165. package/dist/tools/helpTool.js +65 -0
  166. package/dist/tools/helpTool.js.map +1 -0
  167. package/dist/tools/index.d.ts +9 -0
  168. package/dist/tools/index.d.ts.map +1 -0
  169. package/dist/tools/index.js +30 -0
  170. package/dist/tools/index.js.map +1 -0
  171. package/dist/tools/listPersonasTool.d.ts +7 -0
  172. package/dist/tools/listPersonasTool.d.ts.map +1 -0
  173. package/dist/tools/listPersonasTool.js +118 -0
  174. package/dist/tools/listPersonasTool.js.map +1 -0
  175. package/dist/tools/resetPersonasTool.d.ts +7 -0
  176. package/dist/tools/resetPersonasTool.d.ts.map +1 -0
  177. package/dist/tools/resetPersonasTool.js +447 -0
  178. package/dist/tools/resetPersonasTool.js.map +1 -0
  179. package/dist/tools/resetPersonasWizardTool.d.ts +9 -0
  180. package/dist/tools/resetPersonasWizardTool.d.ts.map +1 -0
  181. package/dist/tools/resetPersonasWizardTool.js +125 -0
  182. package/dist/tools/resetPersonasWizardTool.js.map +1 -0
  183. package/dist/tools/reviewContentWizardTool.d.ts +13 -0
  184. package/dist/tools/reviewContentWizardTool.d.ts.map +1 -0
  185. package/dist/tools/reviewContentWizardTool.js +411 -0
  186. package/dist/tools/reviewContentWizardTool.js.map +1 -0
  187. package/dist/tools/reviewTool.d.ts +10 -0
  188. package/dist/tools/reviewTool.d.ts.map +1 -0
  189. package/dist/tools/reviewTool.js +133 -0
  190. package/dist/tools/reviewTool.js.map +1 -0
  191. package/dist/tools/types.d.ts +14 -0
  192. package/dist/tools/types.d.ts.map +1 -0
  193. package/dist/tools/types.js +2 -0
  194. package/dist/tools/types.js.map +1 -0
  195. package/dist/utils/errors.d.ts +30 -0
  196. package/dist/utils/errors.d.ts.map +1 -0
  197. package/dist/utils/errors.js +47 -0
  198. package/dist/utils/errors.js.map +1 -0
  199. package/dist/utils/logger.d.ts +18 -0
  200. package/dist/utils/logger.d.ts.map +1 -0
  201. package/dist/utils/logger.js +52 -0
  202. package/dist/utils/logger.js.map +1 -0
  203. package/dist/utils/observability.d.ts +61 -0
  204. package/dist/utils/observability.d.ts.map +1 -0
  205. package/dist/utils/observability.js +69 -0
  206. package/dist/utils/observability.js.map +1 -0
  207. package/dist/utils/parser.d.ts +27 -0
  208. package/dist/utils/parser.d.ts.map +1 -0
  209. package/dist/utils/parser.js +178 -0
  210. package/dist/utils/parser.js.map +1 -0
  211. package/dist/utils/personaIdMaps.d.ts +7 -0
  212. package/dist/utils/personaIdMaps.d.ts.map +1 -0
  213. package/dist/utils/personaIdMaps.js +51 -0
  214. package/dist/utils/personaIdMaps.js.map +1 -0
  215. package/dist/utils/sanitize.d.ts +4 -0
  216. package/dist/utils/sanitize.d.ts.map +1 -0
  217. package/dist/utils/sanitize.js +49 -0
  218. package/dist/utils/sanitize.js.map +1 -0
  219. package/dist/utils/types.d.ts +8 -0
  220. package/dist/utils/types.d.ts.map +1 -0
  221. package/dist/utils/types.js +2 -0
  222. package/dist/utils/types.js.map +1 -0
  223. package/package.json +42 -0
  224. package/skills/_template.md +66 -0
  225. package/skills/tmp/wizard-create-cwzrrpim_draft.json +26 -0
  226. package/skills/tmp/wizard-create-cwzrrpim_wizard.json +26 -0
  227. package/skills/tmp/wizard-create-d81intme_draft.json +26 -0
  228. package/skills/tmp/wizard-create-d81intme_wizard.json +26 -0
  229. package/skills/tmp/wizard-create-g50jqzmh_draft.json +8 -0
  230. package/skills/tmp/wizard-create-g50jqzmh_wizard.json +8 -0
  231. package/skills/tmp/wizard-create-onupu9wb_draft.json +8 -0
  232. package/skills/tmp/wizard-create-onupu9wb_wizard.json +8 -0
  233. package/skills/tmp/wizard-review-fwbxe3d2_review_wizard.json +9 -0
  234. package/skills/tmp/wizard-review-sypg5e9d_review_wizard.json +9 -0
  235. package/skills/wechat_official/wechat_official.md +26 -0
  236. package/skills/wechat_official/wechat_official_1.md +31 -0
  237. package/skills/xiaohongshu/xiaohongshu.md +26 -0
  238. package/skills/xiaohongshu/xiaohongshu_1.md +29 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.test.js","sourceRoot":"","sources":["../../src/__tests__/execution.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getModesTool.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getModesTool.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/getModesTool.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ import { describe, it, beforeEach, afterEach } from "node:test";
2
+ import assert from "node:assert/strict";
3
+ import * as path from "path";
4
+ import * as fs from "fs";
5
+ import * as os from "os";
6
+ let root;
7
+ beforeEach(() => {
8
+ root = fs.mkdtempSync(path.join(os.tmpdir(), "kevlar-modes-test-"));
9
+ });
10
+ afterEach(() => {
11
+ fs.rmSync(root, { recursive: true, force: true });
12
+ });
13
+ describe("handleGetModes", () => {
14
+ it("returns markdown table with mode info", async () => {
15
+ // Create a config so readConfigAsync returns real data
16
+ const config = {
17
+ mode: "auto",
18
+ maxConcurrency: 3,
19
+ };
20
+ fs.writeFileSync(path.join(root, "kevlar-config.json"), JSON.stringify(config), "utf-8");
21
+ process.env.KEVLAR_SKILLS_DIR = root;
22
+ process.env.KEVLAR_API_KEY = "sk-test-key";
23
+ const { handleGetModes } = await import("../tools/getModesTool.js");
24
+ const result = await handleGetModes();
25
+ const text = result.content[0].text;
26
+ assert.ok(text.includes("可用执行模式"));
27
+ assert.ok(text.includes("直接 API 模式"));
28
+ delete process.env.KEVLAR_SKILLS_DIR;
29
+ delete process.env.KEVLAR_API_KEY;
30
+ });
31
+ it("shows direct_api as unconfigured when no API key", async () => {
32
+ const config = { mode: "auto", maxConcurrency: 3 };
33
+ fs.writeFileSync(path.join(root, "kevlar-config.json"), JSON.stringify(config), "utf-8");
34
+ // Import fresh with new env
35
+ const freshRoot = fs.mkdtempSync(path.join(os.tmpdir(), "kevlar-modes-no-key-"));
36
+ fs.writeFileSync(path.join(freshRoot, "kevlar-config.json"), JSON.stringify(config), "utf-8");
37
+ process.env.KEVLAR_SKILLS_DIR = freshRoot;
38
+ delete process.env.KEVLAR_API_KEY;
39
+ // Need a fresh import - ESM cache may prevent this
40
+ const { handleGetModes } = await import("../tools/getModesTool.js");
41
+ const result = await handleGetModes();
42
+ const text = result.content[0].text;
43
+ assert.ok(text.includes("KEVLAR_API_KEY"));
44
+ delete process.env.KEVLAR_SKILLS_DIR;
45
+ });
46
+ });
47
+ //# sourceMappingURL=getModesTool.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getModesTool.test.js","sourceRoot":"","sources":["../../src/__tests__/getModesTool.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=helpTool.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpTool.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/helpTool.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { describe, it } from "node:test";
2
+ import assert from "node:assert/strict";
3
+ import { handleHelp } from "../tools/helpTool.js";
4
+ describe("handleHelp", () => {
5
+ it("returns HELP_TEXT as text content", async () => {
6
+ const result = await handleHelp();
7
+ const text = result.content[0].text;
8
+ assert.ok(text.includes("Kevlar 使用帮助"));
9
+ assert.ok(text.includes("开始一次评测"));
10
+ assert.ok(text.includes("创建自定义评论员"));
11
+ assert.ok(text.includes("常见问题"));
12
+ });
13
+ it("is not an error", async () => {
14
+ const result = await handleHelp();
15
+ assert.equal(result.isError, undefined);
16
+ });
17
+ });
18
+ //# sourceMappingURL=helpTool.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpTool.test.js","sourceRoot":"","sources":["../../src/__tests__/helpTool.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAElC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=listPersonasTool.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listPersonasTool.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/listPersonasTool.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,110 @@
1
+ import { describe, it, beforeEach, afterEach } from "node:test";
2
+ import assert from "node:assert/strict";
3
+ import * as fs from "fs";
4
+ import * as path from "path";
5
+ import * as os from "os";
6
+ import { handleListPersonas } from "../tools/listPersonasTool.js";
7
+ import { invalidatePersonasCache } from "../utils/parser.js";
8
+ let skillsDir;
9
+ beforeEach(() => {
10
+ skillsDir = fs.mkdtempSync(path.join(os.tmpdir(), "kevlar-list-test-"));
11
+ invalidatePersonasCache();
12
+ });
13
+ afterEach(() => {
14
+ fs.rmSync(skillsDir, { recursive: true, force: true });
15
+ invalidatePersonasCache();
16
+ });
17
+ function writePersona(id, name, tags, description = "测试描述") {
18
+ const content = [
19
+ "---",
20
+ `id: ${id}`,
21
+ `name: ${name}`,
22
+ "name_en: Test",
23
+ "version: 1.0.0",
24
+ "author: test",
25
+ "tags:",
26
+ ...tags.map(t => ` - ${t}`),
27
+ `description: ${description}`,
28
+ "blindSpot: none",
29
+ "---",
30
+ "性格特质:直接。",
31
+ ].join("\n");
32
+ fs.writeFileSync(path.join(skillsDir, `${id}.md`), content, "utf-8");
33
+ }
34
+ function textOf(result) {
35
+ return result.content.map(c => c.text).join("\n");
36
+ }
37
+ describe("handleListPersonas", () => {
38
+ it("returns empty message when no personas exist", async () => {
39
+ const result = await handleListPersonas(skillsDir);
40
+ const text = textOf(result);
41
+ assert.ok(text.includes("没有任何评论员"));
42
+ });
43
+ it("shows platform overview when no platform specified", async () => {
44
+ writePersona("visual_reader", "视觉读者", ["小红书"]);
45
+ writePersona("logic_reader", "逻辑读者", ["知乎"]);
46
+ const result = await handleListPersonas(skillsDir);
47
+ const text = textOf(result);
48
+ assert.ok(text.includes("2 位评论员"));
49
+ assert.ok(text.includes("小红书"));
50
+ assert.ok(text.includes("知乎"));
51
+ assert.ok(!text.includes("视觉读者"));
52
+ });
53
+ it("shows all personas when platform is 全部", async () => {
54
+ writePersona("p1", "人设A", ["小红书"]);
55
+ writePersona("p2", "人设B", ["知乎"]);
56
+ const result = await handleListPersonas(skillsDir, "全部");
57
+ const text = textOf(result);
58
+ assert.ok(text.includes("人设A"));
59
+ assert.ok(text.includes("人设B"));
60
+ assert.ok(text.includes("2 位"));
61
+ });
62
+ it("filters by specific platform", async () => {
63
+ writePersona("p1", "小红书写手", ["小红书", "视觉"]);
64
+ writePersona("p2", "知乎达人", ["知乎", "逻辑"]);
65
+ const result = await handleListPersonas(skillsDir, "小红书");
66
+ const text = textOf(result);
67
+ assert.ok(text.includes("小红书写手"));
68
+ assert.ok(!text.includes("知乎达人"));
69
+ });
70
+ it("shows unknown platform message", async () => {
71
+ writePersona("p1", "A", ["小红书"]);
72
+ const result = await handleListPersonas(skillsDir, "不存在的平台");
73
+ const text = textOf(result);
74
+ assert.ok(text.includes("不存在的平台"));
75
+ assert.ok(text.includes("没有评论员"));
76
+ });
77
+ it("detects platform from persona id when no tags match", async () => {
78
+ writePersona("xiaohongshu_critic", "平台推断", []);
79
+ const result = await handleListPersonas(skillsDir, "小红书");
80
+ const text = textOf(result);
81
+ assert.ok(text.includes("平台推断"));
82
+ });
83
+ it("falls back to 通用 when no platform is detected", async () => {
84
+ writePersona("general_persona", "通用角色", ["其他"]);
85
+ const overview = await handleListPersonas(skillsDir);
86
+ assert.ok(textOf(overview).includes("通用"));
87
+ const filtered = await handleListPersonas(skillsDir, "通用");
88
+ assert.ok(textOf(filtered).includes("通用角色"));
89
+ });
90
+ it("handles multiple personas on same platform", async () => {
91
+ writePersona("r1", "读者A", ["小红书"]);
92
+ writePersona("r2", "读者B", ["小红书"]);
93
+ writePersona("r3", "读者C", ["小红书"]);
94
+ const result = await handleListPersonas(skillsDir, "小红书");
95
+ const text = textOf(result);
96
+ assert.ok(text.includes("3 位"));
97
+ assert.ok(text.includes("读者A"));
98
+ assert.ok(text.includes("读者B"));
99
+ assert.ok(text.includes("读者C"));
100
+ });
101
+ it("shows tags in detailed view", async () => {
102
+ writePersona("p1", "标签人", ["小红书", "时尚", "美妆"]);
103
+ const result = await handleListPersonas(skillsDir, "全部");
104
+ const text = textOf(result);
105
+ assert.ok(text.includes("标签"));
106
+ assert.ok(text.includes("时尚"));
107
+ assert.ok(text.includes("美妆"));
108
+ });
109
+ });
110
+ //# sourceMappingURL=listPersonasTool.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listPersonasTool.test.js","sourceRoot":"","sources":["../../src/__tests__/listPersonasTool.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=logger.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/logger.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
1
+ import { describe, it, mock } from "node:test";
2
+ import assert from "node:assert/strict";
3
+ import { logger } from "../utils/logger.js";
4
+ describe("logger", () => {
5
+ it("exports expected methods", () => {
6
+ assert.equal(typeof logger.debug, "function");
7
+ assert.equal(typeof logger.info, "function");
8
+ assert.equal(typeof logger.warn, "function");
9
+ assert.equal(typeof logger.error, "function");
10
+ });
11
+ it("writes INFO to stderr with message and event", () => {
12
+ const lines = [];
13
+ mock.method(process.stderr, "write", (buf) => {
14
+ lines.push(String(buf));
15
+ return true;
16
+ });
17
+ logger.info("hello world", { event: "test_event" });
18
+ assert.equal(lines.length, 1);
19
+ const line = lines[0];
20
+ assert.ok(line.includes("INFO"));
21
+ assert.ok(line.includes("hello world"));
22
+ assert.ok(line.includes("test_event"));
23
+ });
24
+ it("includes extra context keys", () => {
25
+ const lines = [];
26
+ mock.method(process.stderr, "write", (buf) => {
27
+ lines.push(String(buf));
28
+ return true;
29
+ });
30
+ logger.info("ctx", { event: "ev", foo: "bar", num: 42 });
31
+ const line = lines[0];
32
+ assert.ok(line.includes("bar"));
33
+ assert.ok(line.includes("42"));
34
+ });
35
+ it("writes ERROR to stderr", () => {
36
+ const lines = [];
37
+ mock.method(process.stderr, "write", (buf) => {
38
+ lines.push(String(buf));
39
+ return true;
40
+ });
41
+ logger.error("fail");
42
+ assert.ok(lines[0].includes("ERROR"));
43
+ assert.ok(lines[0].includes("fail"));
44
+ });
45
+ it("writes WARN to stderr", () => {
46
+ const lines = [];
47
+ mock.method(process.stderr, "write", (buf) => {
48
+ lines.push(String(buf));
49
+ return true;
50
+ });
51
+ logger.warn("caution");
52
+ assert.ok(lines[0].includes("WARN"));
53
+ assert.ok(lines[0].includes("caution"));
54
+ });
55
+ });
56
+ //# sourceMappingURL=logger.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../../src/__tests__/logger.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=observability.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/observability.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ import { describe, it } from "node:test";
2
+ import assert from "node:assert/strict";
3
+ import { getErrorInfo, withDuration, logger } from "../utils/observability.js";
4
+ describe("getErrorInfo", () => {
5
+ it("extracts info from KevlarError-like objects", () => {
6
+ const err = new Error("not found");
7
+ err.code = "FILE_NOT_FOUND";
8
+ err.recoverable = false;
9
+ const info = getErrorInfo(err);
10
+ assert.equal(info.code, "FILE_NOT_FOUND");
11
+ assert.equal(info.message, "not found");
12
+ assert.equal(info.recoverable, false);
13
+ });
14
+ it("extracts details from KevlarError", () => {
15
+ const err = new Error("bad");
16
+ err.code = "VALIDATION_ERROR";
17
+ err.recoverable = true;
18
+ err.details = { field: "name" };
19
+ const info = getErrorInfo(err);
20
+ assert.deepEqual(info.details, { field: "name" });
21
+ });
22
+ it("defaults to INTERNAL_ERROR for plain Error", () => {
23
+ const info = getErrorInfo(new Error("oops"));
24
+ assert.equal(info.code, "INTERNAL_ERROR");
25
+ assert.equal(info.message, "oops");
26
+ assert.equal(info.recoverable, false);
27
+ });
28
+ it("handles string errors", () => {
29
+ const info = getErrorInfo("crash");
30
+ assert.equal(info.code, "INTERNAL_ERROR");
31
+ assert.equal(info.message, "crash");
32
+ assert.equal(info.recoverable, false);
33
+ });
34
+ it("handles null", () => {
35
+ const info = getErrorInfo(null);
36
+ assert.equal(info.code, "INTERNAL_ERROR");
37
+ assert.equal(info.message, "null");
38
+ assert.equal(info.recoverable, false);
39
+ });
40
+ });
41
+ describe("withDuration", () => {
42
+ it("returns result and durationMs", async () => {
43
+ const { result, durationMs } = await withDuration(async () => {
44
+ await new Promise((r) => setTimeout(r, 10));
45
+ return 42;
46
+ });
47
+ assert.equal(result, 42);
48
+ assert.ok(durationMs >= 5);
49
+ });
50
+ it("works with sync-like async functions", async () => {
51
+ const { result } = await withDuration(async () => "done");
52
+ assert.equal(result, "done");
53
+ });
54
+ });
55
+ describe("re-exports", () => {
56
+ it("re-exports logger from logger.ts", () => {
57
+ assert.equal(typeof logger.info, "function");
58
+ });
59
+ });
60
+ //# sourceMappingURL=observability.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.test.js","sourceRoot":"","sources":["../../src/__tests__/observability.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parser.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/parser.test.ts"],"names":[],"mappings":""}