@knowledgine/cli 0.2.0 → 0.3.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 (265) hide show
  1. package/dist/commands/capture.d.ts +13 -0
  2. package/dist/commands/capture.d.ts.map +1 -1
  3. package/dist/commands/capture.js +113 -12
  4. package/dist/commands/capture.js.map +1 -1
  5. package/dist/commands/demo.d.ts.map +1 -1
  6. package/dist/commands/demo.js +23 -19
  7. package/dist/commands/demo.js.map +1 -1
  8. package/dist/commands/deprecation-check.d.ts +7 -0
  9. package/dist/commands/deprecation-check.d.ts.map +1 -0
  10. package/dist/commands/deprecation-check.js +75 -0
  11. package/dist/commands/deprecation-check.js.map +1 -0
  12. package/dist/commands/explain.d.ts +10 -0
  13. package/dist/commands/explain.d.ts.map +1 -0
  14. package/dist/commands/explain.js +252 -0
  15. package/dist/commands/explain.js.map +1 -0
  16. package/dist/commands/feedback-suggest.d.ts +8 -0
  17. package/dist/commands/feedback-suggest.d.ts.map +1 -0
  18. package/dist/commands/feedback-suggest.js +43 -0
  19. package/dist/commands/feedback-suggest.js.map +1 -0
  20. package/dist/commands/feedback.d.ts +9 -0
  21. package/dist/commands/feedback.d.ts.map +1 -1
  22. package/dist/commands/feedback.js +57 -21
  23. package/dist/commands/feedback.js.map +1 -1
  24. package/dist/commands/ingest.d.ts +1 -0
  25. package/dist/commands/ingest.d.ts.map +1 -1
  26. package/dist/commands/ingest.js +96 -19
  27. package/dist/commands/ingest.js.map +1 -1
  28. package/dist/commands/init.d.ts +2 -0
  29. package/dist/commands/init.d.ts.map +1 -1
  30. package/dist/commands/init.js +126 -61
  31. package/dist/commands/init.js.map +1 -1
  32. package/dist/commands/plugins.d.ts.map +1 -1
  33. package/dist/commands/plugins.js +14 -13
  34. package/dist/commands/plugins.js.map +1 -1
  35. package/dist/commands/recall.d.ts +10 -0
  36. package/dist/commands/recall.d.ts.map +1 -0
  37. package/dist/commands/recall.js +199 -0
  38. package/dist/commands/recall.js.map +1 -0
  39. package/dist/commands/search.d.ts +3 -0
  40. package/dist/commands/search.d.ts.map +1 -1
  41. package/dist/commands/search.js +55 -13
  42. package/dist/commands/search.js.map +1 -1
  43. package/dist/commands/serve.d.ts +8 -0
  44. package/dist/commands/serve.d.ts.map +1 -0
  45. package/dist/commands/serve.js +60 -0
  46. package/dist/commands/serve.js.map +1 -0
  47. package/dist/commands/setup-rules.d.ts +27 -0
  48. package/dist/commands/setup-rules.d.ts.map +1 -0
  49. package/dist/commands/setup-rules.js +309 -0
  50. package/dist/commands/setup-rules.js.map +1 -0
  51. package/dist/commands/setup-skills.d.ts +55 -0
  52. package/dist/commands/setup-skills.d.ts.map +1 -0
  53. package/dist/commands/setup-skills.js +356 -0
  54. package/dist/commands/setup-skills.js.map +1 -0
  55. package/dist/commands/setup.d.ts +62 -5
  56. package/dist/commands/setup.d.ts.map +1 -1
  57. package/dist/commands/setup.js +358 -104
  58. package/dist/commands/setup.js.map +1 -1
  59. package/dist/commands/start.d.ts.map +1 -1
  60. package/dist/commands/start.js +27 -20
  61. package/dist/commands/start.js.map +1 -1
  62. package/dist/commands/status.d.ts.map +1 -1
  63. package/dist/commands/status.js +81 -53
  64. package/dist/commands/status.js.map +1 -1
  65. package/dist/commands/suggest.d.ts +11 -0
  66. package/dist/commands/suggest.d.ts.map +1 -0
  67. package/dist/commands/suggest.js +255 -0
  68. package/dist/commands/suggest.js.map +1 -0
  69. package/dist/commands/tool.d.ts.map +1 -1
  70. package/dist/commands/tool.js +5 -5
  71. package/dist/commands/tool.js.map +1 -1
  72. package/dist/commands/undeprecate.d.ts +5 -0
  73. package/dist/commands/undeprecate.d.ts.map +1 -0
  74. package/dist/commands/undeprecate.js +27 -0
  75. package/dist/commands/undeprecate.js.map +1 -0
  76. package/dist/commands/upgrade.d.ts.map +1 -1
  77. package/dist/commands/upgrade.js +64 -18
  78. package/dist/commands/upgrade.js.map +1 -1
  79. package/dist/index.js +92 -20
  80. package/dist/index.js.map +1 -1
  81. package/dist/lib/content-extractor.d.ts +8 -0
  82. package/dist/lib/content-extractor.d.ts.map +1 -0
  83. package/dist/lib/content-extractor.js +50 -0
  84. package/dist/lib/content-extractor.js.map +1 -0
  85. package/dist/lib/diff-parser.d.ts +14 -0
  86. package/dist/lib/diff-parser.d.ts.map +1 -0
  87. package/dist/lib/diff-parser.js +108 -0
  88. package/dist/lib/diff-parser.js.map +1 -0
  89. package/dist/lib/entity-extractor.d.ts +17 -0
  90. package/dist/lib/entity-extractor.d.ts.map +1 -0
  91. package/dist/lib/entity-extractor.js +23 -0
  92. package/dist/lib/entity-extractor.js.map +1 -0
  93. package/dist/lib/formatter.d.ts.map +1 -1
  94. package/dist/lib/formatter.js +31 -32
  95. package/dist/lib/formatter.js.map +1 -1
  96. package/dist/lib/indexer.d.ts +2 -0
  97. package/dist/lib/indexer.d.ts.map +1 -1
  98. package/dist/lib/indexer.js +2 -0
  99. package/dist/lib/indexer.js.map +1 -1
  100. package/dist/lib/ingest-watcher.d.ts.map +1 -1
  101. package/dist/lib/ingest-watcher.js +2 -0
  102. package/dist/lib/ingest-watcher.js.map +1 -1
  103. package/dist/lib/plugin-loader.d.ts.map +1 -1
  104. package/dist/lib/plugin-loader.js +3 -1
  105. package/dist/lib/plugin-loader.js.map +1 -1
  106. package/dist/lib/progress.d.ts +8 -0
  107. package/dist/lib/progress.d.ts.map +1 -1
  108. package/dist/lib/progress.js +45 -6
  109. package/dist/lib/progress.js.map +1 -1
  110. package/dist/lib/ui/box.d.ts +7 -0
  111. package/dist/lib/ui/box.d.ts.map +1 -0
  112. package/dist/lib/ui/box.js +19 -0
  113. package/dist/lib/ui/box.js.map +1 -0
  114. package/dist/lib/ui/error-formatter.d.ts +8 -0
  115. package/dist/lib/ui/error-formatter.d.ts.map +1 -0
  116. package/dist/lib/ui/error-formatter.js +19 -0
  117. package/dist/lib/ui/error-formatter.js.map +1 -0
  118. package/dist/lib/ui/index.d.ts +7 -0
  119. package/dist/lib/ui/index.d.ts.map +1 -0
  120. package/dist/lib/ui/index.js +7 -0
  121. package/dist/lib/ui/index.js.map +1 -0
  122. package/dist/lib/ui/output.d.ts +2 -0
  123. package/dist/lib/ui/output.d.ts.map +1 -0
  124. package/dist/lib/ui/output.js +4 -0
  125. package/dist/lib/ui/output.js.map +1 -0
  126. package/dist/lib/ui/spinner.d.ts +4 -0
  127. package/dist/lib/ui/spinner.d.ts.map +1 -0
  128. package/dist/lib/ui/spinner.js +5 -0
  129. package/dist/lib/ui/spinner.js.map +1 -0
  130. package/dist/lib/ui/table.d.ts +9 -0
  131. package/dist/lib/ui/table.d.ts.map +1 -0
  132. package/dist/lib/ui/table.js +28 -0
  133. package/dist/lib/ui/table.js.map +1 -0
  134. package/dist/lib/ui/theme.d.ts +21 -0
  135. package/dist/lib/ui/theme.d.ts.map +1 -0
  136. package/dist/lib/ui/theme.js +29 -0
  137. package/dist/lib/ui/theme.js.map +1 -0
  138. package/dist/lib/unknown-command-handler.d.ts +14 -0
  139. package/dist/lib/unknown-command-handler.d.ts.map +1 -0
  140. package/dist/lib/unknown-command-handler.js +25 -0
  141. package/dist/lib/unknown-command-handler.js.map +1 -0
  142. package/dist/lib/url-validator.d.ts.map +1 -1
  143. package/dist/lib/url-validator.js +5 -1
  144. package/dist/lib/url-validator.js.map +1 -1
  145. package/dist/templates/rules/antigravity.d.ts +6 -0
  146. package/dist/templates/rules/antigravity.d.ts.map +1 -0
  147. package/dist/templates/rules/antigravity.js +30 -0
  148. package/dist/templates/rules/antigravity.js.map +1 -0
  149. package/dist/templates/rules/claude-code.d.ts +6 -0
  150. package/dist/templates/rules/claude-code.d.ts.map +1 -0
  151. package/dist/templates/rules/claude-code.js +32 -0
  152. package/dist/templates/rules/claude-code.js.map +1 -0
  153. package/dist/templates/rules/cline.d.ts +6 -0
  154. package/dist/templates/rules/cline.d.ts.map +1 -0
  155. package/dist/templates/rules/cline.js +35 -0
  156. package/dist/templates/rules/cline.js.map +1 -0
  157. package/dist/templates/rules/codex.d.ts +6 -0
  158. package/dist/templates/rules/codex.d.ts.map +1 -0
  159. package/dist/templates/rules/codex.js +37 -0
  160. package/dist/templates/rules/codex.js.map +1 -0
  161. package/dist/templates/rules/continue.d.ts +6 -0
  162. package/dist/templates/rules/continue.d.ts.map +1 -0
  163. package/dist/templates/rules/continue.js +31 -0
  164. package/dist/templates/rules/continue.js.map +1 -0
  165. package/dist/templates/rules/core-rules.d.ts +6 -0
  166. package/dist/templates/rules/core-rules.d.ts.map +1 -0
  167. package/dist/templates/rules/core-rules.js +33 -0
  168. package/dist/templates/rules/core-rules.js.map +1 -0
  169. package/dist/templates/rules/cursor.d.ts +6 -0
  170. package/dist/templates/rules/cursor.d.ts.map +1 -0
  171. package/dist/templates/rules/cursor.js +29 -0
  172. package/dist/templates/rules/cursor.js.map +1 -0
  173. package/dist/templates/rules/gemini.d.ts +6 -0
  174. package/dist/templates/rules/gemini.d.ts.map +1 -0
  175. package/dist/templates/rules/gemini.js +30 -0
  176. package/dist/templates/rules/gemini.js.map +1 -0
  177. package/dist/templates/rules/github-copilot.d.ts +6 -0
  178. package/dist/templates/rules/github-copilot.d.ts.map +1 -0
  179. package/dist/templates/rules/github-copilot.js +42 -0
  180. package/dist/templates/rules/github-copilot.js.map +1 -0
  181. package/dist/templates/rules/index.d.ts +13 -0
  182. package/dist/templates/rules/index.d.ts.map +1 -0
  183. package/dist/templates/rules/index.js +13 -0
  184. package/dist/templates/rules/index.js.map +1 -0
  185. package/dist/templates/rules/opencode.d.ts +6 -0
  186. package/dist/templates/rules/opencode.d.ts.map +1 -0
  187. package/dist/templates/rules/opencode.js +30 -0
  188. package/dist/templates/rules/opencode.js.map +1 -0
  189. package/dist/templates/rules/windsurf.d.ts +6 -0
  190. package/dist/templates/rules/windsurf.d.ts.map +1 -0
  191. package/dist/templates/rules/windsurf.js +24 -0
  192. package/dist/templates/rules/windsurf.js.map +1 -0
  193. package/dist/templates/rules/zed.d.ts +6 -0
  194. package/dist/templates/rules/zed.d.ts.map +1 -0
  195. package/dist/templates/rules/zed.js +34 -0
  196. package/dist/templates/rules/zed.js.map +1 -0
  197. package/dist/templates/skills/index.d.ts +26 -0
  198. package/dist/templates/skills/index.d.ts.map +1 -0
  199. package/dist/templates/skills/index.js +75 -0
  200. package/dist/templates/skills/index.js.map +1 -0
  201. package/dist/templates/skills/knowledgine-capture/references.d.ts +2 -0
  202. package/dist/templates/skills/knowledgine-capture/references.d.ts.map +1 -0
  203. package/dist/templates/skills/knowledgine-capture/references.js +414 -0
  204. package/dist/templates/skills/knowledgine-capture/references.js.map +1 -0
  205. package/dist/templates/skills/knowledgine-capture/skill-md.d.ts +2 -0
  206. package/dist/templates/skills/knowledgine-capture/skill-md.d.ts.map +1 -0
  207. package/dist/templates/skills/knowledgine-capture/skill-md.js +97 -0
  208. package/dist/templates/skills/knowledgine-capture/skill-md.js.map +1 -0
  209. package/dist/templates/skills/knowledgine-debrief/references.d.ts +2 -0
  210. package/dist/templates/skills/knowledgine-debrief/references.d.ts.map +1 -0
  211. package/dist/templates/skills/knowledgine-debrief/references.js +140 -0
  212. package/dist/templates/skills/knowledgine-debrief/references.js.map +1 -0
  213. package/dist/templates/skills/knowledgine-debrief/skill-md.d.ts +2 -0
  214. package/dist/templates/skills/knowledgine-debrief/skill-md.d.ts.map +1 -0
  215. package/dist/templates/skills/knowledgine-debrief/skill-md.js +74 -0
  216. package/dist/templates/skills/knowledgine-debrief/skill-md.js.map +1 -0
  217. package/dist/templates/skills/knowledgine-explain/references.d.ts +2 -0
  218. package/dist/templates/skills/knowledgine-explain/references.d.ts.map +1 -0
  219. package/dist/templates/skills/knowledgine-explain/references.js +183 -0
  220. package/dist/templates/skills/knowledgine-explain/references.js.map +1 -0
  221. package/dist/templates/skills/knowledgine-explain/skill-md.d.ts +2 -0
  222. package/dist/templates/skills/knowledgine-explain/skill-md.d.ts.map +1 -0
  223. package/dist/templates/skills/knowledgine-explain/skill-md.js +89 -0
  224. package/dist/templates/skills/knowledgine-explain/skill-md.js.map +1 -0
  225. package/dist/templates/skills/knowledgine-feedback/references.d.ts +2 -0
  226. package/dist/templates/skills/knowledgine-feedback/references.d.ts.map +1 -0
  227. package/dist/templates/skills/knowledgine-feedback/references.js +214 -0
  228. package/dist/templates/skills/knowledgine-feedback/references.js.map +1 -0
  229. package/dist/templates/skills/knowledgine-feedback/skill-md.d.ts +2 -0
  230. package/dist/templates/skills/knowledgine-feedback/skill-md.d.ts.map +1 -0
  231. package/dist/templates/skills/knowledgine-feedback/skill-md.js +107 -0
  232. package/dist/templates/skills/knowledgine-feedback/skill-md.js.map +1 -0
  233. package/dist/templates/skills/knowledgine-ingest/references.d.ts +2 -0
  234. package/dist/templates/skills/knowledgine-ingest/references.d.ts.map +1 -0
  235. package/dist/templates/skills/knowledgine-ingest/references.js +243 -0
  236. package/dist/templates/skills/knowledgine-ingest/references.js.map +1 -0
  237. package/dist/templates/skills/knowledgine-ingest/skill-md.d.ts +2 -0
  238. package/dist/templates/skills/knowledgine-ingest/skill-md.d.ts.map +1 -0
  239. package/dist/templates/skills/knowledgine-ingest/skill-md.js +80 -0
  240. package/dist/templates/skills/knowledgine-ingest/skill-md.js.map +1 -0
  241. package/dist/templates/skills/knowledgine-recall/references.d.ts +2 -0
  242. package/dist/templates/skills/knowledgine-recall/references.d.ts.map +1 -0
  243. package/dist/templates/skills/knowledgine-recall/references.js +207 -0
  244. package/dist/templates/skills/knowledgine-recall/references.js.map +1 -0
  245. package/dist/templates/skills/knowledgine-recall/skill-md.d.ts +2 -0
  246. package/dist/templates/skills/knowledgine-recall/skill-md.d.ts.map +1 -0
  247. package/dist/templates/skills/knowledgine-recall/skill-md.js +86 -0
  248. package/dist/templates/skills/knowledgine-recall/skill-md.js.map +1 -0
  249. package/dist/templates/skills/knowledgine-suggest/references.d.ts +2 -0
  250. package/dist/templates/skills/knowledgine-suggest/references.d.ts.map +1 -0
  251. package/dist/templates/skills/knowledgine-suggest/references.js +121 -0
  252. package/dist/templates/skills/knowledgine-suggest/references.js.map +1 -0
  253. package/dist/templates/skills/knowledgine-suggest/skill-md.d.ts +2 -0
  254. package/dist/templates/skills/knowledgine-suggest/skill-md.d.ts.map +1 -0
  255. package/dist/templates/skills/knowledgine-suggest/skill-md.js +94 -0
  256. package/dist/templates/skills/knowledgine-suggest/skill-md.js.map +1 -0
  257. package/fixtures/demo/notes/api-design-decisions.md +7 -2
  258. package/fixtures/demo/notes/auth-debugging.md +8 -0
  259. package/fixtures/demo/notes/ci-cd-pipeline.md +7 -0
  260. package/fixtures/demo/notes/code-review-notes.md +7 -0
  261. package/fixtures/demo/notes/database-optimization.md +8 -0
  262. package/fixtures/demo/notes/docker-troubleshooting.md +7 -1
  263. package/fixtures/demo/notes/react-performance.md +7 -6
  264. package/fixtures/demo/notes/typescript-migration.md +13 -4
  265. package/package.json +13 -4
@@ -6,5 +6,18 @@ export interface CaptureCommandOptions {
6
6
  path?: string;
7
7
  format?: string;
8
8
  }
9
+ /**
10
+ * @deprecated Use captureAddCommand instead
11
+ */
9
12
  export declare function captureCommand(text: string | undefined, options: CaptureCommandOptions): Promise<void>;
13
+ export declare function captureAddCommand(text: string | undefined, options: CaptureCommandOptions): Promise<void>;
14
+ export interface CaptureListOptions {
15
+ path?: string;
16
+ format?: string;
17
+ }
18
+ export declare function captureListCommand(options: CaptureListOptions): Promise<void>;
19
+ export interface CaptureDeleteOptions {
20
+ path?: string;
21
+ }
22
+ export declare function captureDeleteCommand(idStr: string, options: CaptureDeleteOptions): Promise<void>;
10
23
  //# sourceMappingURL=capture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../src/commands/capture.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAWD,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAqHf"}
1
+ {"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../src/commands/capture.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAoBD;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CA2Hf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCnF;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA8Cf"}
@@ -1,8 +1,9 @@
1
1
  import { resolve } from "path";
2
2
  import { existsSync, readFileSync } from "fs";
3
- import { loadConfig, createDatabase, Migrator, KnowledgeRepository, ALL_MIGRATIONS, } from "@knowledgine/core";
3
+ import { loadConfig, resolveDefaultPath, createDatabase, Migrator, KnowledgeRepository, GraphRepository, IncrementalExtractor, ALL_MIGRATIONS, } from "@knowledgine/core";
4
4
  import { EventWriter, sanitizeContent } from "@knowledgine/ingest";
5
5
  import { validateCaptureUrl } from "../lib/url-validator.js";
6
+ import { createBox, createTable, symbols } from "../lib/ui/index.js";
6
7
  async function readStdin() {
7
8
  return new Promise((resolve, reject) => {
8
9
  const chunks = [];
@@ -11,9 +12,23 @@ async function readStdin() {
11
12
  process.stdin.on("error", reject);
12
13
  });
13
14
  }
15
+ function initDb(rootPath) {
16
+ const config = loadConfig(rootPath);
17
+ const db = createDatabase(config.dbPath);
18
+ new Migrator(db, ALL_MIGRATIONS).migrate();
19
+ const repository = new KnowledgeRepository(db);
20
+ const graphRepository = new GraphRepository(db);
21
+ return { db, repository, graphRepository };
22
+ }
23
+ /**
24
+ * @deprecated Use captureAddCommand instead
25
+ */
14
26
  export async function captureCommand(text, options) {
27
+ return captureAddCommand(text, options);
28
+ }
29
+ export async function captureAddCommand(text, options) {
15
30
  // 1. DB初期化
16
- const rootPath = options.path ? resolve(options.path) : resolve(process.cwd());
31
+ const rootPath = resolveDefaultPath(options.path);
17
32
  const knowledgineDir = resolve(rootPath, ".knowledgine");
18
33
  if (!existsSync(knowledgineDir)) {
19
34
  console.error("Error: Knowledge base not initialized.\n Run: knowledgine init --path <dir>");
@@ -76,7 +91,12 @@ export async function captureCommand(text, options) {
76
91
  }
77
92
  // 3. タイトルとタグ
78
93
  const title = options.title || content.slice(0, 50).replace(/\n/g, " ").trim();
79
- const tags = options.tags ? options.tags.split(",").map((t) => t.trim()).filter(Boolean) : [];
94
+ const tags = options.tags
95
+ ? options.tags
96
+ .split(",")
97
+ .map((t) => t.trim())
98
+ .filter(Boolean)
99
+ : [];
80
100
  // 4. NormalizedEvent構築
81
101
  const event = {
82
102
  sourceUri,
@@ -91,14 +111,14 @@ export async function captureCommand(text, options) {
91
111
  },
92
112
  };
93
113
  // 5. DB書き込み
94
- const config = loadConfig(rootPath);
95
- const db = createDatabase(config.dbPath);
114
+ const { db, repository, graphRepository } = initDb(rootPath);
96
115
  try {
97
- new Migrator(db, ALL_MIGRATIONS).migrate();
98
- const repository = new KnowledgeRepository(db);
99
116
  const writer = new EventWriter(db, repository);
100
117
  const result = writer.writeEvent(event);
101
- // 6. 出力
118
+ // 6. 増分抽出(capture したノートのみ対象)
119
+ const extractor = new IncrementalExtractor(repository, graphRepository);
120
+ await extractor.process([result.noteId]);
121
+ // 7. 出力
102
122
  const format = options.format ?? "plain";
103
123
  if (format === "json") {
104
124
  console.log(JSON.stringify({
@@ -113,12 +133,93 @@ export async function captureCommand(text, options) {
113
133
  }));
114
134
  }
115
135
  else {
116
- console.error(`Captured (id: ${result.id})`);
117
- console.error(` Title: ${title}`);
136
+ const lines = [`${symbols.success} Captured (id: ${result.id})`, ` Title: ${title}`];
118
137
  if (tags.length > 0) {
119
- console.error(` Tags: ${tags.join(", ")}`);
138
+ lines.push(` Tags: ${tags.join(", ")}`);
120
139
  }
121
- console.error(` Source: ${sourceType} (manual)`);
140
+ lines.push(` Source: ${sourceType} (manual)`);
141
+ console.error(createBox(lines.join("\n"), { title: "Captured" }));
142
+ }
143
+ }
144
+ catch (error) {
145
+ console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
146
+ process.exitCode = 1;
147
+ }
148
+ finally {
149
+ db.close();
150
+ }
151
+ }
152
+ export async function captureListCommand(options) {
153
+ const rootPath = resolveDefaultPath(options.path);
154
+ const knowledgineDir = resolve(rootPath, ".knowledgine");
155
+ if (!existsSync(knowledgineDir)) {
156
+ console.error("Error: Knowledge base not initialized.\n Run: knowledgine init --path <dir>");
157
+ process.exitCode = 1;
158
+ return;
159
+ }
160
+ const { db, repository } = initDb(rootPath);
161
+ try {
162
+ const notes = repository.getNotesWithPrefix("capture://");
163
+ const format = options.format ?? "plain";
164
+ if (format === "json") {
165
+ console.log(JSON.stringify({
166
+ ok: true,
167
+ command: "capture list",
168
+ result: notes.map((n) => ({
169
+ id: n.id,
170
+ title: n.title,
171
+ filePath: n.file_path,
172
+ createdAt: n.created_at,
173
+ })),
174
+ }));
175
+ }
176
+ else {
177
+ if (notes.length === 0) {
178
+ console.error("No captured notes found.");
179
+ return;
180
+ }
181
+ const rows = notes.map((n) => [String(n.id), n.title, n.file_path, n.created_at]);
182
+ console.error(createTable({ head: ["ID", "Title", "Source", "Created"], rows }));
183
+ }
184
+ }
185
+ finally {
186
+ db.close();
187
+ }
188
+ }
189
+ export async function captureDeleteCommand(idStr, options) {
190
+ const rootPath = resolveDefaultPath(options.path);
191
+ const knowledgineDir = resolve(rootPath, ".knowledgine");
192
+ if (!existsSync(knowledgineDir)) {
193
+ console.error("Error: Knowledge base not initialized.\n Run: knowledgine init --path <dir>");
194
+ process.exitCode = 1;
195
+ return;
196
+ }
197
+ const id = parseInt(idStr, 10);
198
+ if (isNaN(id) || id <= 0) {
199
+ console.error(`Error: Invalid ID: ${idStr}`);
200
+ process.exitCode = 1;
201
+ return;
202
+ }
203
+ const { db, repository } = initDb(rootPath);
204
+ try {
205
+ const note = repository.getNoteById(id);
206
+ if (!note) {
207
+ console.error(`${symbols.error} Error: Note #${id} not found.`);
208
+ process.exitCode = 1;
209
+ return;
210
+ }
211
+ if (!note.file_path.startsWith("capture://")) {
212
+ console.error(`${symbols.error} Error: Note #${id} is not a captured note (file_path: ${note.file_path}). Only capture:// notes can be deleted with this command.`);
213
+ process.exitCode = 1;
214
+ return;
215
+ }
216
+ const deleted = repository.deleteNoteById(id);
217
+ if (deleted) {
218
+ console.error(`${symbols.success} Deleted captured note #${id}: ${note.title}`);
219
+ }
220
+ else {
221
+ console.error(`${symbols.error} Error: Failed to delete note #${id}.`);
222
+ process.exitCode = 1;
122
223
  }
123
224
  }
124
225
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/commands/capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/commands/capture.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../../src/commands/demo.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAID,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCrE"}
1
+ {"version":3,"file":"demo.d.ts","sourceRoot":"","sources":["../../src/commands/demo.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAID,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CrE"}
@@ -1,6 +1,7 @@
1
1
  import { resolve } from "path";
2
2
  import { existsSync } from "fs";
3
3
  import { cleanDemo, getDemoDir } from "../lib/demo-manager.js";
4
+ import { createBox, colors, symbols } from "../lib/ui/index.js";
4
5
  const DEMO_NOTES_DIR = "knowledgine-demo-notes";
5
6
  export function getDemoNotesPath(basePath) {
6
7
  return resolve(basePath ?? process.cwd(), DEMO_NOTES_DIR);
@@ -13,32 +14,35 @@ export async function demoCommand(options) {
13
14
  return;
14
15
  }
15
16
  cleanDemo(demoPath);
16
- console.error("Demo files cleaned successfully.");
17
+ console.error(`${symbols.success} Demo files cleaned successfully.`);
17
18
  return;
18
19
  }
19
20
  // Show demo usage information
20
21
  const demoDir = getDemoDir();
21
22
  const hasDemoFixtures = existsSync(demoDir);
22
- console.error("knowledgine demo mode");
23
- console.error("");
24
23
  if (!hasDemoFixtures) {
25
- console.error("Error: Demo fixtures not found. Reinstall the package.");
24
+ console.error(`${symbols.error} Error: Demo fixtures not found. Reinstall the package.`);
26
25
  return;
27
26
  }
28
- console.error("Try knowledgine with sample developer notes:");
29
- console.error("");
30
- console.error(" 1. knowledgine init --demo Set up demo environment");
31
- console.error(' 2. knowledgine search "auth" --demo Search demo notes');
32
- console.error(" 3. knowledgine demo --clean Remove demo files");
33
- console.error("");
34
- console.error("The demo includes 8 sample notes covering:");
35
- console.error(" - Authentication debugging (JWT)");
36
- console.error(" - React performance optimization");
37
- console.error(" - Docker networking troubleshooting");
38
- console.error(" - REST API design decisions");
39
- console.error(" - TypeScript migration learnings");
40
- console.error(" - Database query optimization");
41
- console.error(" - CI/CD pipeline setup");
42
- console.error(" - Code review guidelines");
27
+ const usageLines = [
28
+ colors.bold("knowledgine demo mode"),
29
+ "",
30
+ "Try knowledgine with sample developer notes:",
31
+ "",
32
+ ` 1. ${colors.accent("knowledgine init --demo")} Set up demo environment`,
33
+ ` 2. ${colors.accent('knowledgine search "auth" --demo')} Search demo notes`,
34
+ ` 3. ${colors.accent("knowledgine demo --clean")} Remove demo files`,
35
+ "",
36
+ "The demo includes 8 sample notes covering:",
37
+ ` ${symbols.bullet} Authentication debugging (JWT)`,
38
+ ` ${symbols.bullet} React performance optimization`,
39
+ ` ${symbols.bullet} Docker networking troubleshooting`,
40
+ ` ${symbols.bullet} REST API design decisions`,
41
+ ` ${symbols.bullet} TypeScript migration learnings`,
42
+ ` ${symbols.bullet} Database query optimization`,
43
+ ` ${symbols.bullet} CI/CD pipeline setup`,
44
+ ` ${symbols.bullet} Code review guidelines`,
45
+ ];
46
+ console.error(createBox(usageLines.join("\n")));
43
47
  }
44
48
  //# sourceMappingURL=demo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"demo.js","sourceRoot":"","sources":["../../src/commands/demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAM/D,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEhD,MAAM,UAAU,gBAAgB,CAAC,QAAiB;IAChD,OAAO,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,8BAA8B;IAC9B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAE5C,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACvC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC9D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC7E,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC1E,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;IACxE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC5D,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACpD,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACpD,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACvD,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC/C,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACpD,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACjD,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC1C,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"demo.js","sourceRoot":"","sources":["../../src/commands/demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAMhE,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEhD,MAAM,UAAU,gBAAgB,CAAC,QAAiB;IAChD,OAAO,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,mCAAmC,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IAED,8BAA8B;IAC9B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,yDAAyD,CAAC,CAAC;QACzF,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG;QACjB,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC;QACpC,EAAE;QACF,8CAA8C;QAC9C,EAAE;QACF,QAAQ,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,iCAAiC;QACjF,QAAQ,MAAM,CAAC,MAAM,CAAC,kCAAkC,CAAC,qBAAqB;QAC9E,QAAQ,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,2BAA2B;QAC5E,EAAE;QACF,4CAA4C;QAC5C,KAAK,OAAO,CAAC,MAAM,iCAAiC;QACpD,KAAK,OAAO,CAAC,MAAM,iCAAiC;QACpD,KAAK,OAAO,CAAC,MAAM,oCAAoC;QACvD,KAAK,OAAO,CAAC,MAAM,4BAA4B;QAC/C,KAAK,OAAO,CAAC,MAAM,iCAAiC;QACpD,KAAK,OAAO,CAAC,MAAM,8BAA8B;QACjD,KAAK,OAAO,CAAC,MAAM,uBAAuB;QAC1C,KAAK,OAAO,CAAC,MAAM,yBAAyB;KAC7C,CAAC;IAEF,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface DeprecationCheckOptions {
2
+ path?: string;
3
+ apply?: boolean;
4
+ threshold?: string;
5
+ }
6
+ export declare function deprecationCheckCommand(options: DeprecationCheckOptions): Promise<void>;
7
+ //# sourceMappingURL=deprecation-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deprecation-check.d.ts","sourceRoot":"","sources":["../../src/commands/deprecation-check.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8BD,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmE7F"}
@@ -0,0 +1,75 @@
1
+ import { loadConfig, resolveDefaultPath, createDatabase, Migrator, KnowledgeRepository, ALL_MIGRATIONS, } from "@knowledgine/core";
2
+ /**
3
+ * 簡易テキスト類似度(Jaccard係数)でdeprecation候補を検出する
4
+ */
5
+ function jaccardSimilarity(a, b) {
6
+ const tokenize = (text) => new Set(text
7
+ .toLowerCase()
8
+ .split(/\W+/)
9
+ .filter((t) => t.length > 2));
10
+ const setA = tokenize(a);
11
+ const setB = tokenize(b);
12
+ if (setA.size === 0 || setB.size === 0)
13
+ return 0;
14
+ let intersection = 0;
15
+ for (const token of setA) {
16
+ if (setB.has(token))
17
+ intersection++;
18
+ }
19
+ const union = setA.size + setB.size - intersection;
20
+ return union === 0 ? 0 : intersection / union;
21
+ }
22
+ export async function deprecationCheckCommand(options) {
23
+ const threshold = parseFloat(options.threshold ?? "0.8");
24
+ if (isNaN(threshold) || threshold < 0 || threshold > 1) {
25
+ console.error("Error: --threshold must be a number between 0 and 1");
26
+ process.exit(1);
27
+ }
28
+ const rootPath = resolveDefaultPath(options.path);
29
+ const config = loadConfig(rootPath);
30
+ const db = createDatabase(config.dbPath);
31
+ new Migrator(db, ALL_MIGRATIONS).migrate();
32
+ const repository = new KnowledgeRepository(db);
33
+ try {
34
+ const allNotes = repository.getAllNotes().filter((n) => !n.deprecated);
35
+ const candidates = [];
36
+ // O(n²) comparison — intended for small knowledge bases
37
+ // For large bases, use findNotesByTimeProximity() as pre-filter
38
+ for (let i = 0; i < allNotes.length; i++) {
39
+ for (let j = i + 1; j < allNotes.length; j++) {
40
+ const older = allNotes[i];
41
+ const newer = allNotes[j];
42
+ // newer note (higher id / later created_at) supersedes older
43
+ const newerNote = newer.created_at > older.created_at ? newer : older;
44
+ const olderNote = newer.created_at > older.created_at ? older : newer;
45
+ const sim = jaccardSimilarity(`${olderNote.title} ${olderNote.content}`, `${newerNote.title} ${newerNote.content}`);
46
+ if (sim >= threshold) {
47
+ candidates.push({ note: olderNote, supersededBy: newerNote, similarity: sim });
48
+ }
49
+ }
50
+ }
51
+ if (candidates.length === 0) {
52
+ console.log("No deprecation candidates found.");
53
+ return;
54
+ }
55
+ console.log(`Found ${candidates.length} deprecation candidate(s) (threshold: ${threshold}):\n`);
56
+ for (const c of candidates) {
57
+ console.log(` [${c.note.id}] "${c.note.title}" → superseded by [${c.supersededBy.id}] "${c.supersededBy.title}" (similarity: ${c.similarity.toFixed(3)})`);
58
+ }
59
+ if (options.apply) {
60
+ console.log("\nApplying deprecation...");
61
+ for (const c of candidates) {
62
+ db.prepare("UPDATE knowledge_notes SET deprecated = 1, deprecation_reason = ? WHERE id = ?").run(`Superseded by note ${c.supersededBy.id}: ${c.supersededBy.title}`, c.note.id);
63
+ console.log(` Deprecated note ${c.note.id}: "${c.note.title}"`);
64
+ }
65
+ console.log("Done.");
66
+ }
67
+ else {
68
+ console.log("\nRun with --apply to apply these changes.");
69
+ }
70
+ }
71
+ finally {
72
+ db.close();
73
+ }
74
+ }
75
+ //# sourceMappingURL=deprecation-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deprecation-check.js","sourceRoot":"","sources":["../../src/commands/deprecation-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Command } from "commander";
2
+ export interface ExplainCommandOptions {
3
+ entity?: string;
4
+ noteId?: string;
5
+ timeline?: boolean;
6
+ format?: string;
7
+ path?: string;
8
+ }
9
+ export declare function registerExplainCommand(program: Command): void;
10
+ //# sourceMappingURL=explain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explain.d.ts","sourceRoot":"","sources":["../../src/commands/explain.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAiTD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAU7D"}