@dommaker/harness 0.8.1 → 0.9.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 (339) hide show
  1. package/README.md +126 -183
  2. package/bin/harness.js +29 -12
  3. package/dist/agents/index.d.ts +3 -0
  4. package/dist/agents/index.d.ts.map +1 -0
  5. package/dist/agents/index.js +19 -0
  6. package/dist/agents/index.js.map +1 -0
  7. package/dist/agents/lifecycle.d.ts +68 -0
  8. package/dist/agents/lifecycle.d.ts.map +1 -0
  9. package/dist/agents/lifecycle.js +181 -0
  10. package/dist/agents/lifecycle.js.map +1 -0
  11. package/dist/agents/types.d.ts +42 -0
  12. package/dist/agents/types.d.ts.map +1 -0
  13. package/dist/agents/types.js +6 -0
  14. package/dist/agents/types.js.map +1 -0
  15. package/dist/architecture/cross-project-checker.d.ts +19 -1
  16. package/dist/architecture/cross-project-checker.d.ts.map +1 -1
  17. package/dist/architecture/cross-project-checker.js +72 -60
  18. package/dist/architecture/cross-project-checker.js.map +1 -1
  19. package/dist/cli/commands/acceptance.d.ts.map +1 -1
  20. package/dist/cli/commands/acceptance.js +1 -0
  21. package/dist/cli/commands/acceptance.js.map +1 -1
  22. package/dist/cli/commands/check.d.ts.map +1 -1
  23. package/dist/cli/commands/check.js +2 -4
  24. package/dist/cli/commands/check.js.map +1 -1
  25. package/dist/cli/commands/command.d.ts +19 -0
  26. package/dist/cli/commands/command.d.ts.map +1 -0
  27. package/dist/cli/commands/command.js +81 -0
  28. package/dist/cli/commands/command.js.map +1 -0
  29. package/dist/cli/commands/index.d.ts +1 -0
  30. package/dist/cli/commands/index.d.ts.map +1 -1
  31. package/dist/cli/commands/index.js +3 -1
  32. package/dist/cli/commands/index.js.map +1 -1
  33. package/dist/cli/commands/passes-gate.d.ts.map +1 -1
  34. package/dist/cli/commands/passes-gate.js +2 -4
  35. package/dist/cli/commands/passes-gate.js.map +1 -1
  36. package/dist/cli/commands/review.d.ts.map +1 -1
  37. package/dist/cli/commands/review.js +27 -63
  38. package/dist/cli/commands/review.js.map +1 -1
  39. package/dist/cli/commands/security.d.ts +1 -1
  40. package/dist/cli/commands/security.d.ts.map +1 -1
  41. package/dist/cli/commands/security.js +40 -94
  42. package/dist/cli/commands/security.js.map +1 -1
  43. package/dist/cli/commands/status.d.ts.map +1 -1
  44. package/dist/cli/commands/status.js +2 -2
  45. package/dist/cli/commands/status.js.map +1 -1
  46. package/dist/constraints/definitions.d.ts +39 -0
  47. package/dist/constraints/definitions.d.ts.map +1 -0
  48. package/dist/constraints/definitions.js +71 -0
  49. package/dist/constraints/definitions.js.map +1 -0
  50. package/dist/constraints/index.d.ts +5 -0
  51. package/dist/constraints/index.d.ts.map +1 -0
  52. package/dist/constraints/index.js +21 -0
  53. package/dist/constraints/index.js.map +1 -0
  54. package/dist/constraints/quality.d.ts +11 -0
  55. package/dist/constraints/quality.d.ts.map +1 -0
  56. package/dist/constraints/quality.js +257 -0
  57. package/dist/constraints/quality.js.map +1 -0
  58. package/dist/constraints/registry.d.ts +64 -0
  59. package/dist/constraints/registry.d.ts.map +1 -0
  60. package/dist/constraints/registry.js +167 -0
  61. package/dist/constraints/registry.js.map +1 -0
  62. package/dist/constraints/safety.d.ts +13 -0
  63. package/dist/constraints/safety.d.ts.map +1 -0
  64. package/dist/constraints/safety.js +103 -0
  65. package/dist/constraints/safety.js.map +1 -0
  66. package/dist/constraints/types.d.ts +53 -0
  67. package/dist/constraints/types.d.ts.map +1 -0
  68. package/dist/constraints/types.js +8 -0
  69. package/dist/constraints/types.js.map +1 -0
  70. package/dist/context/compaction.d.ts +57 -0
  71. package/dist/context/compaction.d.ts.map +1 -0
  72. package/dist/context/compaction.js +166 -0
  73. package/dist/context/compaction.js.map +1 -0
  74. package/dist/context/file-budget.d.ts +40 -0
  75. package/dist/context/file-budget.d.ts.map +1 -0
  76. package/dist/context/file-budget.js +147 -0
  77. package/dist/context/file-budget.js.map +1 -0
  78. package/dist/context/index.d.ts +15 -0
  79. package/dist/context/index.d.ts.map +1 -0
  80. package/dist/context/index.js +31 -0
  81. package/dist/context/index.js.map +1 -0
  82. package/dist/context/knowledge-injector.d.ts +49 -0
  83. package/dist/context/knowledge-injector.d.ts.map +1 -0
  84. package/dist/context/knowledge-injector.js +122 -0
  85. package/dist/context/knowledge-injector.js.map +1 -0
  86. package/dist/context/progressive-loader.d.ts +0 -1
  87. package/dist/context/progressive-loader.d.ts.map +1 -1
  88. package/dist/context/progressive-loader.js +15 -32
  89. package/dist/context/progressive-loader.js.map +1 -1
  90. package/dist/context/session-manager.d.ts +67 -0
  91. package/dist/context/session-manager.d.ts.map +1 -0
  92. package/dist/context/session-manager.js +275 -0
  93. package/dist/context/session-manager.js.map +1 -0
  94. package/dist/context/token-pipeline.d.ts +55 -0
  95. package/dist/context/token-pipeline.d.ts.map +1 -0
  96. package/dist/context/token-pipeline.js +220 -0
  97. package/dist/context/token-pipeline.js.map +1 -0
  98. package/dist/context/tool-output-budget.d.ts +59 -0
  99. package/dist/context/tool-output-budget.d.ts.map +1 -0
  100. package/dist/context/tool-output-budget.js +177 -0
  101. package/dist/context/tool-output-budget.js.map +1 -0
  102. package/dist/context/types.d.ts +113 -0
  103. package/dist/context/types.d.ts.map +1 -0
  104. package/dist/context/types.js +30 -0
  105. package/dist/context/types.js.map +1 -0
  106. package/dist/core/constraints/checker.d.ts +9 -1
  107. package/dist/core/constraints/checker.d.ts.map +1 -1
  108. package/dist/core/constraints/checker.js +72 -155
  109. package/dist/core/constraints/checker.js.map +1 -1
  110. package/dist/core/constraints/definitions.d.ts.map +1 -1
  111. package/dist/core/constraints/definitions.js +8 -10
  112. package/dist/core/constraints/definitions.js.map +1 -1
  113. package/dist/core/constraints/interceptor.d.ts.map +1 -1
  114. package/dist/core/constraints/interceptor.js +2 -6
  115. package/dist/core/constraints/interceptor.js.map +1 -1
  116. package/dist/core/project-config-loader.d.ts.map +1 -1
  117. package/dist/core/project-config-loader.js +12 -30
  118. package/dist/core/project-config-loader.js.map +1 -1
  119. package/dist/core/session/clean-state.d.ts.map +1 -1
  120. package/dist/core/session/clean-state.js +6 -8
  121. package/dist/core/session/clean-state.js.map +1 -1
  122. package/dist/core/session/startup.d.ts.map +1 -1
  123. package/dist/core/session/startup.js +3 -5
  124. package/dist/core/session/startup.js.map +1 -1
  125. package/dist/core/spec/validator.d.ts.map +1 -1
  126. package/dist/core/spec/validator.js +2 -4
  127. package/dist/core/spec/validator.js.map +1 -1
  128. package/dist/core/validators/checkpoint.d.ts.map +1 -1
  129. package/dist/core/validators/checkpoint.js +3 -5
  130. package/dist/core/validators/checkpoint.js.map +1 -1
  131. package/dist/core/validators/passes-gate.d.ts +0 -4
  132. package/dist/core/validators/passes-gate.d.ts.map +1 -1
  133. package/dist/core/validators/passes-gate.js +5 -13
  134. package/dist/core/validators/passes-gate.js.map +1 -1
  135. package/dist/dashboard/data.d.ts +39 -0
  136. package/dist/dashboard/data.d.ts.map +1 -0
  137. package/dist/dashboard/data.js +89 -0
  138. package/dist/dashboard/data.js.map +1 -0
  139. package/dist/dashboard/index.d.ts +4 -0
  140. package/dist/dashboard/index.d.ts.map +1 -0
  141. package/dist/dashboard/index.js +20 -0
  142. package/dist/dashboard/index.js.map +1 -0
  143. package/dist/dashboard/stats.d.ts +20 -0
  144. package/dist/dashboard/stats.d.ts.map +1 -0
  145. package/dist/dashboard/stats.js +115 -0
  146. package/dist/dashboard/stats.js.map +1 -0
  147. package/dist/dashboard/types.d.ts +98 -0
  148. package/dist/dashboard/types.d.ts.map +1 -0
  149. package/dist/dashboard/types.js +8 -0
  150. package/dist/dashboard/types.js.map +1 -0
  151. package/dist/failure/recorder.d.ts +4 -0
  152. package/dist/failure/recorder.d.ts.map +1 -1
  153. package/dist/failure/recorder.js +9 -11
  154. package/dist/failure/recorder.js.map +1 -1
  155. package/dist/gates/acceptance.d.ts.map +1 -1
  156. package/dist/gates/acceptance.js +2 -4
  157. package/dist/gates/acceptance.js.map +1 -1
  158. package/dist/gates/contract.d.ts.map +1 -1
  159. package/dist/gates/contract.js +0 -3
  160. package/dist/gates/contract.js.map +1 -1
  161. package/dist/gates/performance.d.ts.map +1 -1
  162. package/dist/gates/performance.js +3 -5
  163. package/dist/gates/performance.js.map +1 -1
  164. package/dist/gates/review.d.ts.map +1 -1
  165. package/dist/gates/review.js +4 -6
  166. package/dist/gates/review.js.map +1 -1
  167. package/dist/gates/security.d.ts.map +1 -1
  168. package/dist/gates/security.js +2 -4
  169. package/dist/gates/security.js.map +1 -1
  170. package/dist/index.d.ts +9 -2
  171. package/dist/index.d.ts.map +1 -1
  172. package/dist/index.js +34 -3
  173. package/dist/index.js.map +1 -1
  174. package/dist/knowledge/import.d.ts +95 -0
  175. package/dist/knowledge/import.d.ts.map +1 -0
  176. package/dist/knowledge/import.js +429 -0
  177. package/dist/knowledge/import.js.map +1 -0
  178. package/dist/knowledge/index.d.ts +15 -0
  179. package/dist/knowledge/index.d.ts.map +1 -0
  180. package/dist/knowledge/index.js +40 -0
  181. package/dist/knowledge/index.js.map +1 -0
  182. package/dist/knowledge/ingest.d.ts +30 -0
  183. package/dist/knowledge/ingest.d.ts.map +1 -0
  184. package/dist/knowledge/ingest.js +94 -0
  185. package/dist/knowledge/ingest.js.map +1 -0
  186. package/dist/knowledge/lifecycle-hooks.d.ts +62 -0
  187. package/dist/knowledge/lifecycle-hooks.d.ts.map +1 -0
  188. package/dist/knowledge/lifecycle-hooks.js +140 -0
  189. package/dist/knowledge/lifecycle-hooks.js.map +1 -0
  190. package/dist/knowledge/lifecycle.d.ts +43 -0
  191. package/dist/knowledge/lifecycle.d.ts.map +1 -0
  192. package/dist/knowledge/lifecycle.js +141 -0
  193. package/dist/knowledge/lifecycle.js.map +1 -0
  194. package/dist/knowledge/lint.d.ts +57 -0
  195. package/dist/knowledge/lint.d.ts.map +1 -0
  196. package/dist/knowledge/lint.js +235 -0
  197. package/dist/knowledge/lint.js.map +1 -0
  198. package/dist/knowledge/query.d.ts +33 -0
  199. package/dist/knowledge/query.d.ts.map +1 -0
  200. package/dist/knowledge/query.js +107 -0
  201. package/dist/knowledge/query.js.map +1 -0
  202. package/dist/knowledge/reference-tracker.d.ts +31 -0
  203. package/dist/knowledge/reference-tracker.d.ts.map +1 -0
  204. package/dist/knowledge/reference-tracker.js +124 -0
  205. package/dist/knowledge/reference-tracker.js.map +1 -0
  206. package/dist/knowledge/store.d.ts +42 -0
  207. package/dist/knowledge/store.d.ts.map +1 -0
  208. package/dist/knowledge/store.js +278 -0
  209. package/dist/knowledge/store.js.map +1 -0
  210. package/dist/knowledge/types.d.ts +103 -0
  211. package/dist/knowledge/types.d.ts.map +1 -0
  212. package/dist/knowledge/types.js +17 -0
  213. package/dist/knowledge/types.js.map +1 -0
  214. package/dist/llm/adapter.d.ts +36 -0
  215. package/dist/llm/adapter.d.ts.map +1 -0
  216. package/dist/llm/adapter.js +118 -0
  217. package/dist/llm/adapter.js.map +1 -0
  218. package/dist/llm/index.d.ts +3 -0
  219. package/dist/llm/index.d.ts.map +1 -0
  220. package/dist/llm/index.js +19 -0
  221. package/dist/llm/index.js.map +1 -0
  222. package/dist/llm/types.d.ts +62 -0
  223. package/dist/llm/types.d.ts.map +1 -0
  224. package/dist/llm/types.js +8 -0
  225. package/dist/llm/types.js.map +1 -0
  226. package/dist/monitoring/context-tracker.d.ts +38 -0
  227. package/dist/monitoring/context-tracker.d.ts.map +1 -0
  228. package/dist/monitoring/context-tracker.js +162 -0
  229. package/dist/monitoring/context-tracker.js.map +1 -0
  230. package/dist/monitoring/index.d.ts +3 -0
  231. package/dist/monitoring/index.d.ts.map +1 -1
  232. package/dist/monitoring/index.js +6 -0
  233. package/dist/monitoring/index.js.map +1 -1
  234. package/dist/monitoring/knowledge-doctor.d.ts +78 -0
  235. package/dist/monitoring/knowledge-doctor.d.ts.map +1 -0
  236. package/dist/monitoring/knowledge-doctor.js +266 -0
  237. package/dist/monitoring/knowledge-doctor.js.map +1 -0
  238. package/dist/monitoring/knowledge-evolver.d.ts +72 -0
  239. package/dist/monitoring/knowledge-evolver.d.ts.map +1 -0
  240. package/dist/monitoring/knowledge-evolver.js +205 -0
  241. package/dist/monitoring/knowledge-evolver.js.map +1 -0
  242. package/dist/monitoring/performance-analyzer.d.ts.map +1 -1
  243. package/dist/monitoring/performance-analyzer.js +10 -4
  244. package/dist/monitoring/performance-analyzer.js.map +1 -1
  245. package/dist/monitoring/trace-analyzer.d.ts.map +1 -1
  246. package/dist/monitoring/trace-analyzer.js +12 -5
  247. package/dist/monitoring/trace-analyzer.js.map +1 -1
  248. package/dist/safety/index.d.ts +6 -0
  249. package/dist/safety/index.d.ts.map +1 -0
  250. package/dist/safety/index.js +22 -0
  251. package/dist/safety/index.js.map +1 -0
  252. package/dist/safety/input-guardrail.d.ts +36 -0
  253. package/dist/safety/input-guardrail.d.ts.map +1 -0
  254. package/dist/safety/input-guardrail.js +118 -0
  255. package/dist/safety/input-guardrail.js.map +1 -0
  256. package/dist/safety/output-guardrail.d.ts +40 -0
  257. package/dist/safety/output-guardrail.d.ts.map +1 -0
  258. package/dist/safety/output-guardrail.js +150 -0
  259. package/dist/safety/output-guardrail.js.map +1 -0
  260. package/dist/safety/sandbox.d.ts +45 -0
  261. package/dist/safety/sandbox.d.ts.map +1 -0
  262. package/dist/safety/sandbox.js +134 -0
  263. package/dist/safety/sandbox.js.map +1 -0
  264. package/dist/safety/tool-guardrail.d.ts +51 -0
  265. package/dist/safety/tool-guardrail.d.ts.map +1 -0
  266. package/dist/safety/tool-guardrail.js +147 -0
  267. package/dist/safety/tool-guardrail.js.map +1 -0
  268. package/dist/safety/types.d.ts +104 -0
  269. package/dist/safety/types.d.ts.map +1 -0
  270. package/dist/safety/types.js +6 -0
  271. package/dist/safety/types.js.map +1 -0
  272. package/dist/tools/core/index.d.ts +13 -0
  273. package/dist/tools/core/index.d.ts.map +1 -0
  274. package/dist/tools/core/index.js +198 -0
  275. package/dist/tools/core/index.js.map +1 -0
  276. package/dist/tools/index.d.ts +4 -0
  277. package/dist/tools/index.d.ts.map +1 -0
  278. package/dist/tools/index.js +20 -0
  279. package/dist/tools/index.js.map +1 -0
  280. package/dist/tools/registry.d.ts +59 -0
  281. package/dist/tools/registry.d.ts.map +1 -0
  282. package/dist/tools/registry.js +115 -0
  283. package/dist/tools/registry.js.map +1 -0
  284. package/dist/tools/types.d.ts +38 -0
  285. package/dist/tools/types.d.ts.map +1 -0
  286. package/dist/tools/types.js +6 -0
  287. package/dist/tools/types.js.map +1 -0
  288. package/dist/types/constraint.d.ts +4 -0
  289. package/dist/types/constraint.d.ts.map +1 -1
  290. package/dist/types/constraint.js.map +1 -1
  291. package/dist/utils/exec.d.ts +11 -1
  292. package/dist/utils/exec.d.ts.map +1 -1
  293. package/dist/utils/exec.js +19 -1
  294. package/dist/utils/exec.js.map +1 -1
  295. package/dist/verification/index.d.ts +4 -0
  296. package/dist/verification/index.d.ts.map +1 -0
  297. package/dist/verification/index.js +20 -0
  298. package/dist/verification/index.js.map +1 -0
  299. package/dist/verification/loop.d.ts +30 -0
  300. package/dist/verification/loop.d.ts.map +1 -0
  301. package/dist/verification/loop.js +114 -0
  302. package/dist/verification/loop.js.map +1 -0
  303. package/dist/verification/rules-based.d.ts +40 -0
  304. package/dist/verification/rules-based.d.ts.map +1 -0
  305. package/dist/verification/rules-based.js +130 -0
  306. package/dist/verification/rules-based.js.map +1 -0
  307. package/dist/verification/types.d.ts +69 -0
  308. package/dist/verification/types.d.ts.map +1 -0
  309. package/dist/verification/types.js +6 -0
  310. package/dist/verification/types.js.map +1 -0
  311. package/package.json +1 -1
  312. package/dist/cli/commands/diagnose.d.ts +0 -16
  313. package/dist/cli/commands/diagnose.d.ts.map +0 -1
  314. package/dist/cli/commands/diagnose.js +0 -195
  315. package/dist/cli/commands/diagnose.js.map +0 -1
  316. package/dist/cli/commands/propose.d.ts +0 -18
  317. package/dist/cli/commands/propose.d.ts.map +0 -1
  318. package/dist/cli/commands/propose.js +0 -331
  319. package/dist/cli/commands/propose.js.map +0 -1
  320. package/dist/cli/commands/traces.d.ts +0 -15
  321. package/dist/cli/commands/traces.d.ts.map +0 -1
  322. package/dist/cli/commands/traces.js +0 -167
  323. package/dist/cli/commands/traces.js.map +0 -1
  324. package/dist/extensions/long-running/constraints.d.ts +0 -38
  325. package/dist/extensions/long-running/constraints.d.ts.map +0 -1
  326. package/dist/extensions/long-running/constraints.js +0 -153
  327. package/dist/extensions/long-running/constraints.js.map +0 -1
  328. package/dist/extensions/long-running/index.d.ts +0 -30
  329. package/dist/extensions/long-running/index.d.ts.map +0 -1
  330. package/dist/extensions/long-running/index.js +0 -50
  331. package/dist/extensions/long-running/index.js.map +0 -1
  332. package/dist/extensions/long-running/types.d.ts +0 -154
  333. package/dist/extensions/long-running/types.d.ts.map +0 -1
  334. package/dist/extensions/long-running/types.js +0 -9
  335. package/dist/extensions/long-running/types.js.map +0 -1
  336. package/dist/presets/long-running.d.ts +0 -33
  337. package/dist/presets/long-running.d.ts.map +0 -1
  338. package/dist/presets/long-running.js +0 -52
  339. package/dist/presets/long-running.js.map +0 -1
@@ -0,0 +1,429 @@
1
+ "use strict";
2
+ /**
3
+ * 冷启动导入
4
+ *
5
+ * 从已有项目中批量提取知识:
6
+ * - 代码仓库扫描(技术栈、模块、依赖、模式)
7
+ * - Git 历史分析(架构决策、重构记录、hotfix 原因)
8
+ * - 文档导入(README、设计文档)
9
+ * - 口述录入(结构化模板)
10
+ *
11
+ * 所有导入知识初始 maturity: draft
12
+ * 通过 .harness/import-state.json 持久化进度,支持中断后继续
13
+ */
14
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ var desc = Object.getOwnPropertyDescriptor(m, k);
17
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
18
+ desc = { enumerable: true, get: function() { return m[k]; } };
19
+ }
20
+ Object.defineProperty(o, k2, desc);
21
+ }) : (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ }));
25
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
26
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
27
+ }) : function(o, v) {
28
+ o["default"] = v;
29
+ });
30
+ var __importStar = (this && this.__importStar) || (function () {
31
+ var ownKeys = function(o) {
32
+ ownKeys = Object.getOwnPropertyNames || function (o) {
33
+ var ar = [];
34
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
35
+ return ar;
36
+ };
37
+ return ownKeys(o);
38
+ };
39
+ return function (mod) {
40
+ if (mod && mod.__esModule) return mod;
41
+ var result = {};
42
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ })();
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.ColdStartImporter = void 0;
49
+ const fs = __importStar(require("fs"));
50
+ const path = __importStar(require("path"));
51
+ const STATE_FILE = '.harness/import-state.json';
52
+ // ── 冷启动导入器 ─────────────────────────────────────────
53
+ class ColdStartImporter {
54
+ config;
55
+ state;
56
+ constructor(config) {
57
+ this.config = config;
58
+ this.state = this.loadState();
59
+ }
60
+ /**
61
+ * 执行完整导入
62
+ */
63
+ async importAll() {
64
+ const results = [];
65
+ for (const sourceType of this.config.sources) {
66
+ if (this.state.completedSources.includes(sourceType)) {
67
+ continue;
68
+ }
69
+ let result;
70
+ switch (sourceType) {
71
+ case 'code':
72
+ result = await this.importFromCode();
73
+ break;
74
+ case 'git':
75
+ result = await this.importFromGit();
76
+ break;
77
+ case 'docs':
78
+ result = await this.importFromDocs();
79
+ break;
80
+ case 'manual':
81
+ result = await this.importManual();
82
+ break;
83
+ default:
84
+ result = {
85
+ source: { type: sourceType },
86
+ entries: [],
87
+ errors: [{ source: { type: sourceType }, message: `未知源类型: ${sourceType}`, recoverable: false }],
88
+ };
89
+ }
90
+ results.push(result);
91
+ // 持久化进度
92
+ this.state.completedSources.push(sourceType);
93
+ this.state.totalImported += result.entries.length;
94
+ this.state.totalErrors += result.errors.length;
95
+ this.state.lastUpdated = new Date().toISOString();
96
+ this.saveState();
97
+ }
98
+ return results;
99
+ }
100
+ /**
101
+ * 从代码仓库扫描提取知识
102
+ */
103
+ async importFromCode() {
104
+ const entries = [];
105
+ const errors = [];
106
+ const source = { type: 'code', path: this.config.projectRoot };
107
+ try {
108
+ // 扫描 package.json 获取技术栈
109
+ const pkgPath = path.join(this.config.projectRoot, 'package.json');
110
+ if (fs.existsSync(pkgPath)) {
111
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
112
+ entries.push(this.createEntry({
113
+ title: `技术栈: ${pkg.name || 'unknown'}`,
114
+ content: this.formatPackageInfo(pkg),
115
+ type: 'model',
116
+ tags: ['tech-stack', 'auto-import'],
117
+ layer: 'project',
118
+ }));
119
+ }
120
+ // 扫描 tsconfig.json
121
+ const tsconfigPath = path.join(this.config.projectRoot, 'tsconfig.json');
122
+ if (fs.existsSync(tsconfigPath)) {
123
+ entries.push(this.createEntry({
124
+ title: 'TypeScript 配置',
125
+ content: fs.readFileSync(tsconfigPath, 'utf-8'),
126
+ type: 'model',
127
+ tags: ['typescript', 'config', 'auto-import'],
128
+ layer: 'project',
129
+ }));
130
+ }
131
+ // 扫描目录结构
132
+ const dirs = this.scanDirectoryStructure(this.config.projectRoot);
133
+ if (dirs.length > 0) {
134
+ entries.push(this.createEntry({
135
+ title: '项目目录结构',
136
+ content: dirs.join('\n'),
137
+ type: 'model',
138
+ tags: ['architecture', 'auto-import'],
139
+ layer: 'project',
140
+ }));
141
+ }
142
+ }
143
+ catch (error) {
144
+ errors.push({
145
+ source,
146
+ message: `代码扫描失败: ${error instanceof Error ? error.message : String(error)}`,
147
+ recoverable: true,
148
+ });
149
+ }
150
+ // 写入知识库
151
+ for (const entry of entries) {
152
+ this.config.store.save(entry);
153
+ }
154
+ return { source, entries, errors };
155
+ }
156
+ /**
157
+ * 从 Git 历史分析提取知识
158
+ */
159
+ async importFromGit() {
160
+ const entries = [];
161
+ const errors = [];
162
+ const source = { type: 'git', path: this.config.projectRoot };
163
+ try {
164
+ const { execSync } = require('child_process');
165
+ const cwd = this.config.projectRoot;
166
+ // 分析大型重构提交
167
+ const bigCommits = execSync('git log --oneline --diff-filter=M --numstat --since="6 months ago" | head -100', { cwd, encoding: 'utf-8', timeout: 10000 });
168
+ // 查找 fix/hotfix 相关提交
169
+ const fixCommits = execSync('git log --oneline --grep="fix\\|hotfix\\|bug" --since="6 months ago" | head -20', { cwd, encoding: 'utf-8', timeout: 10000 });
170
+ if (fixCommits.trim()) {
171
+ entries.push(this.createEntry({
172
+ title: '近期 Bug 修复记录',
173
+ content: fixCommits.trim(),
174
+ type: 'pitfall',
175
+ tags: ['git-history', 'bug-fix', 'auto-import'],
176
+ layer: 'project',
177
+ }));
178
+ }
179
+ // 查找 refactor 相关提交
180
+ const refactorCommits = execSync('git log --oneline --grep="refactor\\|重构" --since="6 months ago" | head -20', { cwd, encoding: 'utf-8', timeout: 10000 });
181
+ if (refactorCommits.trim()) {
182
+ entries.push(this.createEntry({
183
+ title: '近期重构记录',
184
+ content: refactorCommits.trim(),
185
+ type: 'decision',
186
+ tags: ['git-history', 'refactor', 'auto-import'],
187
+ layer: 'project',
188
+ }));
189
+ }
190
+ }
191
+ catch (error) {
192
+ errors.push({
193
+ source,
194
+ message: `Git 分析失败: ${error instanceof Error ? error.message : String(error)}`,
195
+ recoverable: true,
196
+ });
197
+ }
198
+ for (const entry of entries) {
199
+ this.config.store.save(entry);
200
+ }
201
+ return { source, entries, errors };
202
+ }
203
+ /**
204
+ * 从文档导入
205
+ */
206
+ async importFromDocs() {
207
+ const entries = [];
208
+ const errors = [];
209
+ const source = { type: 'docs' };
210
+ const docPaths = this.config.docPaths ?? [
211
+ 'README.md',
212
+ 'ARCHITECTURE.md',
213
+ 'CONTRIBUTING.md',
214
+ 'docs/',
215
+ ];
216
+ for (const docPath of docPaths) {
217
+ const fullPath = path.join(this.config.projectRoot, docPath);
218
+ try {
219
+ if (!fs.existsSync(fullPath))
220
+ continue;
221
+ const stat = fs.statSync(fullPath);
222
+ if (stat.isDirectory()) {
223
+ // 扫描目录下的 markdown 文件
224
+ const files = fs.readdirSync(fullPath)
225
+ .filter(f => f.endsWith('.md'))
226
+ .slice(0, 10); // 最多 10 个
227
+ for (const file of files) {
228
+ const filePath = path.join(fullPath, file);
229
+ const content = fs.readFileSync(filePath, 'utf-8');
230
+ if (content.length > 0) {
231
+ entries.push(this.createEntry({
232
+ title: `文档: ${docPath}${file}`,
233
+ content: content.slice(0, 5000), // 限制大小
234
+ type: 'guideline',
235
+ tags: ['docs', 'auto-import'],
236
+ layer: 'project',
237
+ }));
238
+ }
239
+ }
240
+ }
241
+ else {
242
+ const content = fs.readFileSync(fullPath, 'utf-8');
243
+ if (content.length > 0) {
244
+ entries.push(this.createEntry({
245
+ title: `文档: ${docPath}`,
246
+ content: content.slice(0, 5000),
247
+ type: 'guideline',
248
+ tags: ['docs', 'auto-import'],
249
+ layer: 'project',
250
+ }));
251
+ }
252
+ }
253
+ }
254
+ catch (error) {
255
+ errors.push({
256
+ source: { type: 'docs', path: docPath },
257
+ message: `文档导入失败 ${docPath}: ${error instanceof Error ? error.message : String(error)}`,
258
+ recoverable: true,
259
+ });
260
+ }
261
+ }
262
+ for (const entry of entries) {
263
+ this.config.store.save(entry);
264
+ }
265
+ return { source, entries, errors };
266
+ }
267
+ /**
268
+ * 口述录入
269
+ */
270
+ async importManual() {
271
+ const entries = [];
272
+ const errors = [];
273
+ const source = { type: 'manual' };
274
+ if (!this.config.manualEntries || this.config.manualEntries.length === 0) {
275
+ return { source, entries, errors };
276
+ }
277
+ for (const item of this.config.manualEntries) {
278
+ try {
279
+ entries.push(this.createEntry({
280
+ title: item.title,
281
+ content: item.content,
282
+ type: item.type,
283
+ tags: [...(item.tags ?? []), 'manual-import'],
284
+ layer: 'project',
285
+ }));
286
+ }
287
+ catch (error) {
288
+ errors.push({
289
+ source,
290
+ message: `口述录入失败: ${error instanceof Error ? error.message : String(error)}`,
291
+ recoverable: true,
292
+ });
293
+ }
294
+ }
295
+ for (const entry of entries) {
296
+ this.config.store.save(entry);
297
+ }
298
+ return { source, entries, errors };
299
+ }
300
+ // ── 辅助方法 ───────────────────────────────────────────
301
+ createEntry(params) {
302
+ return {
303
+ id: `import-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`,
304
+ type: params.type,
305
+ title: params.title,
306
+ content: params.content,
307
+ maturity: 'draft',
308
+ layer: params.layer,
309
+ created: new Date().toISOString(),
310
+ lastReferenced: '',
311
+ contributors: [],
312
+ projects: [],
313
+ tags: params.tags,
314
+ applicablePhases: [],
315
+ sourceReferences: [{
316
+ workflow: 'cold-start-import',
317
+ timestamp: new Date().toISOString(),
318
+ }],
319
+ referencedBy: [],
320
+ };
321
+ }
322
+ formatPackageInfo(pkg) {
323
+ const parts = [];
324
+ if (pkg.name)
325
+ parts.push(`名称: ${pkg.name}`);
326
+ if (pkg.version)
327
+ parts.push(`版本: ${pkg.version}`);
328
+ if (pkg.description)
329
+ parts.push(`描述: ${pkg.description}`);
330
+ const deps = pkg.dependencies;
331
+ if (deps) {
332
+ parts.push(`\n依赖 (${Object.keys(deps).length}):`);
333
+ for (const [name, version] of Object.entries(deps).slice(0, 20)) {
334
+ parts.push(` - ${name}: ${version}`);
335
+ }
336
+ }
337
+ const devDeps = pkg.devDependencies;
338
+ if (devDeps) {
339
+ parts.push(`\n开发依赖 (${Object.keys(devDeps).length}):`);
340
+ for (const [name, version] of Object.entries(devDeps).slice(0, 10)) {
341
+ parts.push(` - ${name}: ${version}`);
342
+ }
343
+ }
344
+ const scripts = pkg.scripts;
345
+ if (scripts) {
346
+ parts.push(`\n脚本:`);
347
+ for (const [name, cmd] of Object.entries(scripts).slice(0, 10)) {
348
+ parts.push(` - ${name}: ${cmd}`);
349
+ }
350
+ }
351
+ return parts.join('\n');
352
+ }
353
+ scanDirectoryStructure(root, maxDepth = 2) {
354
+ const dirs = [];
355
+ const ignore = new Set(['node_modules', '.git', '.harness', 'dist', 'coverage', '.next']);
356
+ const scan = (dir, depth) => {
357
+ if (depth > maxDepth)
358
+ return;
359
+ try {
360
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
361
+ for (const entry of entries) {
362
+ if (ignore.has(entry.name))
363
+ continue;
364
+ if (!entry.isDirectory())
365
+ continue;
366
+ const relative = path.relative(root, path.join(dir, entry.name));
367
+ dirs.push(relative || entry.name);
368
+ scan(path.join(dir, entry.name), depth + 1);
369
+ }
370
+ }
371
+ catch {
372
+ // skip unreadable directories
373
+ }
374
+ };
375
+ scan(root, 0);
376
+ return dirs;
377
+ }
378
+ loadState() {
379
+ const statePath = path.join(this.config.projectRoot, STATE_FILE);
380
+ if (fs.existsSync(statePath)) {
381
+ try {
382
+ return JSON.parse(fs.readFileSync(statePath, 'utf-8'));
383
+ }
384
+ catch {
385
+ // corrupt state, start fresh
386
+ }
387
+ }
388
+ return {
389
+ projectRoot: this.config.projectRoot,
390
+ startedAt: new Date().toISOString(),
391
+ lastUpdated: new Date().toISOString(),
392
+ completedSources: [],
393
+ pendingSources: [...this.config.sources],
394
+ totalImported: 0,
395
+ totalErrors: 0,
396
+ };
397
+ }
398
+ saveState() {
399
+ const statePath = path.join(this.config.projectRoot, STATE_FILE);
400
+ const dir = path.dirname(statePath);
401
+ if (!fs.existsSync(dir)) {
402
+ fs.mkdirSync(dir, { recursive: true });
403
+ }
404
+ fs.writeFileSync(statePath, JSON.stringify(this.state, null, 2), 'utf-8');
405
+ }
406
+ /**
407
+ * 获取当前导入状态
408
+ */
409
+ getState() {
410
+ return { ...this.state };
411
+ }
412
+ /**
413
+ * 重置导入状态
414
+ */
415
+ resetState() {
416
+ this.state = {
417
+ projectRoot: this.config.projectRoot,
418
+ startedAt: new Date().toISOString(),
419
+ lastUpdated: new Date().toISOString(),
420
+ completedSources: [],
421
+ pendingSources: [...this.config.sources],
422
+ totalImported: 0,
423
+ totalErrors: 0,
424
+ };
425
+ this.saveState();
426
+ }
427
+ }
428
+ exports.ColdStartImporter = ColdStartImporter;
429
+ //# sourceMappingURL=import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/knowledge/import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Knowledge Engine
3
+ *
4
+ * Re-exports all knowledge module components.
5
+ */
6
+ export * from './types';
7
+ export { KnowledgeStore } from './store';
8
+ export { KnowledgeQuery } from './query';
9
+ export { KnowledgeLifecycle } from './lifecycle';
10
+ export { KnowledgeIngest } from './ingest';
11
+ export { ReferenceTracker } from './reference-tracker';
12
+ export { KnowledgeLinter } from './lint';
13
+ export { ColdStartImporter } from './import';
14
+ export { KnowledgeLifecycleHooks } from './lifecycle-hooks';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/knowledge/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ /**
3
+ * Knowledge Engine
4
+ *
5
+ * Re-exports all knowledge module components.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.KnowledgeLifecycleHooks = exports.ColdStartImporter = exports.KnowledgeLinter = exports.ReferenceTracker = exports.KnowledgeIngest = exports.KnowledgeLifecycle = exports.KnowledgeQuery = exports.KnowledgeStore = void 0;
23
+ __exportStar(require("./types"), exports);
24
+ var store_1 = require("./store");
25
+ Object.defineProperty(exports, "KnowledgeStore", { enumerable: true, get: function () { return store_1.KnowledgeStore; } });
26
+ var query_1 = require("./query");
27
+ Object.defineProperty(exports, "KnowledgeQuery", { enumerable: true, get: function () { return query_1.KnowledgeQuery; } });
28
+ var lifecycle_1 = require("./lifecycle");
29
+ Object.defineProperty(exports, "KnowledgeLifecycle", { enumerable: true, get: function () { return lifecycle_1.KnowledgeLifecycle; } });
30
+ var ingest_1 = require("./ingest");
31
+ Object.defineProperty(exports, "KnowledgeIngest", { enumerable: true, get: function () { return ingest_1.KnowledgeIngest; } });
32
+ var reference_tracker_1 = require("./reference-tracker");
33
+ Object.defineProperty(exports, "ReferenceTracker", { enumerable: true, get: function () { return reference_tracker_1.ReferenceTracker; } });
34
+ var lint_1 = require("./lint");
35
+ Object.defineProperty(exports, "KnowledgeLinter", { enumerable: true, get: function () { return lint_1.KnowledgeLinter; } });
36
+ var import_1 = require("./import");
37
+ Object.defineProperty(exports, "ColdStartImporter", { enumerable: true, get: function () { return import_1.ColdStartImporter; } });
38
+ var lifecycle_hooks_1 = require("./lifecycle-hooks");
39
+ Object.defineProperty(exports, "KnowledgeLifecycleHooks", { enumerable: true, get: function () { return lifecycle_hooks_1.KnowledgeLifecycleHooks; } });
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/knowledge/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,iCAAyC;AAAhC,uGAAA,cAAc,OAAA;AACvB,iCAAyC;AAAhC,uGAAA,cAAc,OAAA;AACvB,yCAAiD;AAAxC,+GAAA,kBAAkB,OAAA;AAC3B,mCAA2C;AAAlC,yGAAA,eAAe,OAAA;AACxB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,+BAAyC;AAAhC,uGAAA,eAAe,OAAA;AACxB,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA;AAC1B,qDAA4D;AAAnD,0HAAA,uBAAuB,OAAA"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Knowledge Ingest Pipeline
3
+ *
4
+ * Handles ingesting new knowledge entries into the store
5
+ * with auto-fill, dedup detection, and batch support.
6
+ */
7
+ import type { KnowledgeEntry, IngestOptions } from './types';
8
+ import { KnowledgeStore } from './store';
9
+ export declare class KnowledgeIngest {
10
+ private store;
11
+ constructor(store: KnowledgeStore);
12
+ /**
13
+ * Ingest a single knowledge entry.
14
+ * Auto-fills id, created, maturity, and other defaults.
15
+ * Returns the fully-formed entry that was saved.
16
+ */
17
+ ingestEntry(partial: Partial<KnowledgeEntry>, options: IngestOptions): KnowledgeEntry;
18
+ /**
19
+ * Ingest multiple entries in batch.
20
+ * Returns all ingested entries.
21
+ */
22
+ ingestBatch(partials: Partial<KnowledgeEntry>[], options: IngestOptions): KnowledgeEntry[];
23
+ private buildEntry;
24
+ private generateId;
25
+ private inferType;
26
+ private findDuplicate;
27
+ private mergeEntries;
28
+ private defaultSourceRef;
29
+ }
30
+ //# sourceMappingURL=ingest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../src/knowledge/ingest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,cAAc,EAGd,aAAa,EAEd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIzC,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAiB;gBAElB,KAAK,EAAE,cAAc;IAIjC;;;;OAIG;IACH,WAAW,CACT,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,EAChC,OAAO,EAAE,aAAa,GACrB,cAAc;IAcjB;;;OAGG;IACH,WAAW,CACT,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,EACnC,OAAO,EAAE,aAAa,GACrB,cAAc,EAAE;IAMnB,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,gBAAgB;CAMzB"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ /**
3
+ * Knowledge Ingest Pipeline
4
+ *
5
+ * Handles ingesting new knowledge entries into the store
6
+ * with auto-fill, dedup detection, and batch support.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.KnowledgeIngest = void 0;
10
+ // ── Ingest ─────────────────────────────────────────────────
11
+ class KnowledgeIngest {
12
+ store;
13
+ constructor(store) {
14
+ this.store = store;
15
+ }
16
+ /**
17
+ * Ingest a single knowledge entry.
18
+ * Auto-fills id, created, maturity, and other defaults.
19
+ * Returns the fully-formed entry that was saved.
20
+ */
21
+ ingestEntry(partial, options) {
22
+ const entry = this.buildEntry(partial, options);
23
+ // Dedup check: same title + same type
24
+ const existing = this.findDuplicate(entry.title, entry.type);
25
+ if (existing) {
26
+ // Merge: update existing entry with new content and metadata
27
+ return this.mergeEntries(existing, entry, options);
28
+ }
29
+ this.store.save(entry);
30
+ return entry;
31
+ }
32
+ /**
33
+ * Ingest multiple entries in batch.
34
+ * Returns all ingested entries.
35
+ */
36
+ ingestBatch(partials, options) {
37
+ return partials.map(p => this.ingestEntry(p, options));
38
+ }
39
+ // ── Internal ───────────────────────────────────────────────
40
+ buildEntry(partial, options) {
41
+ const now = new Date().toISOString();
42
+ const type = partial.type || this.inferType(options);
43
+ const id = partial.id || this.generateId(type);
44
+ return {
45
+ id,
46
+ type,
47
+ title: partial.title || 'Untitled',
48
+ content: partial.content || '',
49
+ maturity: options.maturity || partial.maturity || 'draft',
50
+ layer: options.layer,
51
+ created: partial.created || now,
52
+ lastReferenced: partial.lastReferenced || '',
53
+ contributors: partial.contributors || [],
54
+ projects: partial.projects || options.projects || [],
55
+ tags: [...new Set([...(partial.tags || []), ...(options.tags || [])])],
56
+ applicablePhases: partial.applicablePhases || [],
57
+ sourceReferences: partial.sourceReferences || this.defaultSourceRef(options.source),
58
+ referencedBy: partial.referencedBy || [],
59
+ };
60
+ }
61
+ generateId(type) {
62
+ const prefix = type.toUpperCase().slice(0, 3);
63
+ const existing = this.store.list({ types: [type] });
64
+ const seq = String(existing.length + 1).padStart(3, '0');
65
+ return `${prefix}-${seq}`;
66
+ }
67
+ inferType(options) {
68
+ // Default to 'guideline' if type can't be inferred
69
+ return 'guideline';
70
+ }
71
+ findDuplicate(title, type) {
72
+ const all = this.store.list({ types: [type] });
73
+ return all.find(e => e.title.toLowerCase() === title.toLowerCase());
74
+ }
75
+ mergeEntries(existing, incoming, options) {
76
+ const merged = {
77
+ content: incoming.content || existing.content,
78
+ lastReferenced: new Date().toISOString(),
79
+ contributors: [...new Set([...existing.contributors, ...incoming.contributors])],
80
+ projects: [...new Set([...existing.projects, ...incoming.projects])],
81
+ tags: [...new Set([...existing.tags, ...incoming.tags])],
82
+ sourceReferences: [...existing.sourceReferences, ...incoming.sourceReferences],
83
+ };
84
+ return this.store.update(existing.id, merged);
85
+ }
86
+ defaultSourceRef(source) {
87
+ return [{
88
+ workflow: source,
89
+ timestamp: new Date().toISOString(),
90
+ }];
91
+ }
92
+ }
93
+ exports.KnowledgeIngest = KnowledgeIngest;
94
+ //# sourceMappingURL=ingest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest.js","sourceRoot":"","sources":["../../src/knowledge/ingest.ts"],"names":[],"mappings":"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"}