stellavault 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 (400) hide show
  1. package/package.json +1 -1
  2. package/packages/core/dist/api/dashboard.d.ts +3 -0
  3. package/packages/core/{src/api/dashboard.ts → dist/api/dashboard.js} +8 -11
  4. package/packages/core/dist/api/graph-data.d.ts +11 -0
  5. package/packages/core/dist/api/graph-data.js +255 -0
  6. package/packages/core/dist/api/pwa.d.ts +3 -0
  7. package/packages/core/{src/api/pwa.ts → dist/api/pwa.js} +27 -32
  8. package/packages/core/dist/api/server.d.ts +16 -0
  9. package/packages/core/dist/api/server.js +718 -0
  10. package/packages/core/dist/capture/voice.d.ts +24 -0
  11. package/packages/core/dist/capture/voice.js +135 -0
  12. package/packages/core/{src/cloud/index.ts → dist/cloud/index.d.ts} +1 -0
  13. package/packages/core/dist/cloud/index.js +2 -0
  14. package/packages/core/dist/cloud/sync.d.ts +29 -0
  15. package/packages/core/dist/cloud/sync.js +137 -0
  16. package/packages/core/dist/config.d.ts +27 -0
  17. package/packages/core/dist/config.js +55 -0
  18. package/packages/core/dist/federation/credits.d.ts +26 -0
  19. package/packages/core/dist/federation/credits.js +56 -0
  20. package/packages/core/dist/federation/identity.d.ts +14 -0
  21. package/packages/core/dist/federation/identity.js +74 -0
  22. package/packages/core/{src/federation/index.ts → dist/federation/index.d.ts} +1 -2
  23. package/packages/core/dist/federation/index.js +5 -0
  24. package/packages/core/dist/federation/node.d.ts +31 -0
  25. package/packages/core/dist/federation/node.js +216 -0
  26. package/packages/core/dist/federation/privacy.d.ts +8 -0
  27. package/packages/core/dist/federation/privacy.js +40 -0
  28. package/packages/core/dist/federation/reputation.d.ts +37 -0
  29. package/packages/core/dist/federation/reputation.js +139 -0
  30. package/packages/core/dist/federation/search.d.ts +19 -0
  31. package/packages/core/dist/federation/search.js +101 -0
  32. package/packages/core/dist/federation/sharing.d.ts +72 -0
  33. package/packages/core/dist/federation/sharing.js +246 -0
  34. package/packages/core/dist/federation/trust.d.ts +15 -0
  35. package/packages/core/dist/federation/trust.js +60 -0
  36. package/packages/core/dist/federation/types.d.ts +40 -0
  37. package/packages/core/dist/federation/types.js +3 -0
  38. package/packages/core/dist/i18n/index.d.ts +6 -0
  39. package/packages/core/dist/i18n/index.js +81 -0
  40. package/packages/core/{src/index.ts → dist/index.d.ts} +46 -65
  41. package/packages/core/dist/index.js +69 -0
  42. package/packages/core/dist/indexer/chunker.d.ts +14 -0
  43. package/packages/core/dist/indexer/chunker.js +148 -0
  44. package/packages/core/dist/indexer/embedder.d.ts +8 -0
  45. package/packages/core/dist/indexer/embedder.js +3 -0
  46. package/packages/core/dist/indexer/index.d.ts +28 -0
  47. package/packages/core/dist/indexer/index.js +74 -0
  48. package/packages/core/dist/indexer/local-embedder.d.ts +3 -0
  49. package/packages/core/dist/indexer/local-embedder.js +29 -0
  50. package/packages/core/dist/indexer/scanner.d.ts +11 -0
  51. package/packages/core/dist/indexer/scanner.js +137 -0
  52. package/packages/core/dist/indexer/watcher.d.ts +19 -0
  53. package/packages/core/dist/indexer/watcher.js +49 -0
  54. package/packages/core/dist/intelligence/code-linker.d.ts +20 -0
  55. package/packages/core/dist/intelligence/code-linker.js +88 -0
  56. package/packages/core/dist/intelligence/contradiction-detector.d.ts +20 -0
  57. package/packages/core/dist/intelligence/contradiction-detector.js +115 -0
  58. package/packages/core/dist/intelligence/decay-engine.d.ts +27 -0
  59. package/packages/core/dist/intelligence/decay-engine.js +190 -0
  60. package/packages/core/dist/intelligence/duplicate-detector.d.ts +20 -0
  61. package/packages/core/dist/intelligence/duplicate-detector.js +55 -0
  62. package/packages/core/dist/intelligence/fsrs.d.ts +43 -0
  63. package/packages/core/dist/intelligence/fsrs.js +70 -0
  64. package/packages/core/dist/intelligence/gap-detector.d.ts +25 -0
  65. package/packages/core/dist/intelligence/gap-detector.js +78 -0
  66. package/packages/core/dist/intelligence/learning-path.d.ts +31 -0
  67. package/packages/core/dist/intelligence/learning-path.js +53 -0
  68. package/packages/core/dist/intelligence/notifications.d.ts +31 -0
  69. package/packages/core/dist/intelligence/notifications.js +65 -0
  70. package/packages/core/dist/intelligence/predictive-gaps.d.ts +14 -0
  71. package/packages/core/dist/intelligence/predictive-gaps.js +74 -0
  72. package/packages/core/dist/intelligence/semantic-versioning.d.ts +37 -0
  73. package/packages/core/dist/intelligence/semantic-versioning.js +68 -0
  74. package/packages/core/dist/intelligence/types.d.ts +28 -0
  75. package/packages/core/dist/intelligence/types.js +3 -0
  76. package/packages/core/dist/mcp/custom-tools.d.ts +29 -0
  77. package/packages/core/dist/mcp/custom-tools.js +70 -0
  78. package/packages/core/{src/mcp/index.ts → dist/mcp/index.d.ts} +1 -0
  79. package/packages/core/dist/mcp/index.js +2 -0
  80. package/packages/core/dist/mcp/server.d.ts +49 -0
  81. package/packages/core/dist/mcp/server.js +151 -0
  82. package/packages/core/dist/mcp/tools/agentic-graph.d.ts +87 -0
  83. package/packages/core/dist/mcp/tools/agentic-graph.js +88 -0
  84. package/packages/core/dist/mcp/tools/brief.d.ts +31 -0
  85. package/packages/core/dist/mcp/tools/brief.js +39 -0
  86. package/packages/core/dist/mcp/tools/decay.d.ts +33 -0
  87. package/packages/core/dist/mcp/tools/decay.js +32 -0
  88. package/packages/core/dist/mcp/tools/decision-journal.d.ts +78 -0
  89. package/packages/core/dist/mcp/tools/decision-journal.js +79 -0
  90. package/packages/core/dist/mcp/tools/detect-gaps.d.ts +24 -0
  91. package/packages/core/dist/mcp/tools/detect-gaps.js +47 -0
  92. package/packages/core/dist/mcp/tools/export.d.ts +29 -0
  93. package/packages/core/dist/mcp/tools/export.js +60 -0
  94. package/packages/core/dist/mcp/tools/federated-search.d.ts +29 -0
  95. package/packages/core/dist/mcp/tools/federated-search.js +36 -0
  96. package/packages/core/dist/mcp/tools/generate-claude-md.d.ts +35 -0
  97. package/packages/core/dist/mcp/tools/generate-claude-md.js +107 -0
  98. package/packages/core/dist/mcp/tools/get-document.d.ts +35 -0
  99. package/packages/core/dist/mcp/tools/get-document.js +25 -0
  100. package/packages/core/dist/mcp/tools/get-evolution.d.ts +28 -0
  101. package/packages/core/dist/mcp/tools/get-evolution.js +70 -0
  102. package/packages/core/dist/mcp/tools/get-related.d.ts +32 -0
  103. package/packages/core/dist/mcp/tools/get-related.js +33 -0
  104. package/packages/core/dist/mcp/tools/learning-path.d.ts +23 -0
  105. package/packages/core/dist/mcp/tools/learning-path.js +45 -0
  106. package/packages/core/dist/mcp/tools/link-code.d.ts +34 -0
  107. package/packages/core/dist/mcp/tools/link-code.js +44 -0
  108. package/packages/core/dist/mcp/tools/list-topics.d.ts +15 -0
  109. package/packages/core/dist/mcp/tools/list-topics.js +18 -0
  110. package/packages/core/dist/mcp/tools/search.d.ts +39 -0
  111. package/packages/core/dist/mcp/tools/search.js +29 -0
  112. package/packages/core/dist/mcp/tools/snapshot.d.ts +47 -0
  113. package/packages/core/dist/mcp/tools/snapshot.js +84 -0
  114. package/packages/core/dist/multi-vault/index.d.ts +26 -0
  115. package/packages/core/dist/multi-vault/index.js +80 -0
  116. package/packages/core/dist/pack/creator.d.ts +21 -0
  117. package/packages/core/dist/pack/creator.js +105 -0
  118. package/packages/core/dist/pack/exporter.d.ts +4 -0
  119. package/packages/core/dist/pack/exporter.js +18 -0
  120. package/packages/core/dist/pack/importer.d.ts +10 -0
  121. package/packages/core/dist/pack/importer.js +55 -0
  122. package/packages/core/{src/pack/index.ts → dist/pack/index.d.ts} +1 -0
  123. package/packages/core/dist/pack/index.js +5 -0
  124. package/packages/core/dist/pack/marketplace.d.ts +14 -0
  125. package/packages/core/dist/pack/marketplace.js +90 -0
  126. package/packages/core/dist/pack/pii-masker.d.ts +7 -0
  127. package/packages/core/dist/pack/pii-masker.js +29 -0
  128. package/packages/core/dist/pack/types.d.ts +36 -0
  129. package/packages/core/dist/pack/types.js +3 -0
  130. package/packages/core/dist/plugins/index.d.ts +35 -0
  131. package/packages/core/dist/plugins/index.js +57 -0
  132. package/packages/core/dist/plugins/webhooks.d.ts +30 -0
  133. package/packages/core/dist/plugins/webhooks.js +79 -0
  134. package/packages/core/dist/search/adaptive.d.ts +16 -0
  135. package/packages/core/dist/search/adaptive.js +67 -0
  136. package/packages/core/dist/search/bm25.d.ts +4 -0
  137. package/packages/core/dist/search/bm25.js +10 -0
  138. package/packages/core/dist/search/index.d.ts +15 -0
  139. package/packages/core/dist/search/index.js +64 -0
  140. package/packages/core/dist/search/rrf.d.ts +7 -0
  141. package/packages/core/dist/search/rrf.js +21 -0
  142. package/packages/core/dist/search/semantic.d.ts +5 -0
  143. package/packages/core/dist/search/semantic.js +6 -0
  144. package/packages/core/{src/store/index.ts → dist/store/index.d.ts} +1 -0
  145. package/packages/core/dist/store/index.js +2 -0
  146. package/packages/core/dist/store/sqlite-vec.d.ts +6 -0
  147. package/packages/core/dist/store/sqlite-vec.js +251 -0
  148. package/packages/core/dist/store/types.d.ts +20 -0
  149. package/packages/core/dist/store/types.js +3 -0
  150. package/packages/core/dist/team/index.d.ts +25 -0
  151. package/packages/core/dist/team/index.js +97 -0
  152. package/packages/core/dist/types/chunk.d.ts +23 -0
  153. package/packages/core/dist/types/chunk.js +3 -0
  154. package/packages/core/dist/types/document.d.ts +23 -0
  155. package/packages/core/dist/types/document.js +3 -0
  156. package/packages/core/dist/types/graph.d.ts +39 -0
  157. package/packages/core/dist/types/graph.js +3 -0
  158. package/packages/core/dist/types/index.d.ts +5 -0
  159. package/packages/core/dist/types/index.js +2 -0
  160. package/packages/core/dist/types/search.d.ts +39 -0
  161. package/packages/core/dist/types/search.js +3 -0
  162. package/packages/core/dist/utils/retry.d.ts +25 -0
  163. package/packages/core/dist/utils/retry.js +59 -0
  164. package/.github/workflows/pages.yml +0 -37
  165. package/memory/MEMORY.md +0 -25
  166. package/packages/cli/dist/commands/brief-cmd.d.ts.map +0 -1
  167. package/packages/cli/dist/commands/brief-cmd.js.map +0 -1
  168. package/packages/cli/dist/commands/capture-cmd.d.ts.map +0 -1
  169. package/packages/cli/dist/commands/capture-cmd.js.map +0 -1
  170. package/packages/cli/dist/commands/card-cmd.d.ts.map +0 -1
  171. package/packages/cli/dist/commands/card-cmd.js.map +0 -1
  172. package/packages/cli/dist/commands/clip-cmd.d.ts.map +0 -1
  173. package/packages/cli/dist/commands/clip-cmd.js.map +0 -1
  174. package/packages/cli/dist/commands/cloud-cmd.d.ts.map +0 -1
  175. package/packages/cli/dist/commands/cloud-cmd.js.map +0 -1
  176. package/packages/cli/dist/commands/contradictions-cmd.d.ts.map +0 -1
  177. package/packages/cli/dist/commands/contradictions-cmd.js.map +0 -1
  178. package/packages/cli/dist/commands/decay-cmd.d.ts.map +0 -1
  179. package/packages/cli/dist/commands/decay-cmd.js.map +0 -1
  180. package/packages/cli/dist/commands/digest-cmd.d.ts.map +0 -1
  181. package/packages/cli/dist/commands/digest-cmd.js.map +0 -1
  182. package/packages/cli/dist/commands/duplicates-cmd.d.ts.map +0 -1
  183. package/packages/cli/dist/commands/duplicates-cmd.js.map +0 -1
  184. package/packages/cli/dist/commands/federate-cmd.d.ts.map +0 -1
  185. package/packages/cli/dist/commands/federate-cmd.js.map +0 -1
  186. package/packages/cli/dist/commands/gaps-cmd.d.ts.map +0 -1
  187. package/packages/cli/dist/commands/gaps-cmd.js.map +0 -1
  188. package/packages/cli/dist/commands/graph-cmd.d.ts.map +0 -1
  189. package/packages/cli/dist/commands/graph-cmd.js.map +0 -1
  190. package/packages/cli/dist/commands/index-cmd.d.ts.map +0 -1
  191. package/packages/cli/dist/commands/index-cmd.js.map +0 -1
  192. package/packages/cli/dist/commands/init-cmd.d.ts.map +0 -1
  193. package/packages/cli/dist/commands/init-cmd.js.map +0 -1
  194. package/packages/cli/dist/commands/learn-cmd.d.ts.map +0 -1
  195. package/packages/cli/dist/commands/learn-cmd.js.map +0 -1
  196. package/packages/cli/dist/commands/pack-cmd.d.ts.map +0 -1
  197. package/packages/cli/dist/commands/pack-cmd.js.map +0 -1
  198. package/packages/cli/dist/commands/review-cmd.d.ts.map +0 -1
  199. package/packages/cli/dist/commands/review-cmd.js.map +0 -1
  200. package/packages/cli/dist/commands/search-cmd.d.ts.map +0 -1
  201. package/packages/cli/dist/commands/search-cmd.js.map +0 -1
  202. package/packages/cli/dist/commands/serve-cmd.d.ts.map +0 -1
  203. package/packages/cli/dist/commands/serve-cmd.js.map +0 -1
  204. package/packages/cli/dist/commands/status-cmd.d.ts.map +0 -1
  205. package/packages/cli/dist/commands/status-cmd.js.map +0 -1
  206. package/packages/cli/dist/commands/sync-cmd.d.ts.map +0 -1
  207. package/packages/cli/dist/commands/sync-cmd.js.map +0 -1
  208. package/packages/cli/dist/commands/vault-cmd.d.ts.map +0 -1
  209. package/packages/cli/dist/commands/vault-cmd.js.map +0 -1
  210. package/packages/cli/dist/index.d.ts.map +0 -1
  211. package/packages/cli/dist/index.js.map +0 -1
  212. package/packages/cli/src/commands/brief-cmd.ts +0 -87
  213. package/packages/cli/src/commands/capture-cmd.ts +0 -34
  214. package/packages/cli/src/commands/card-cmd.ts +0 -29
  215. package/packages/cli/src/commands/clip-cmd.ts +0 -172
  216. package/packages/cli/src/commands/cloud-cmd.ts +0 -75
  217. package/packages/cli/src/commands/contradictions-cmd.ts +0 -41
  218. package/packages/cli/src/commands/decay-cmd.ts +0 -57
  219. package/packages/cli/src/commands/digest-cmd.ts +0 -89
  220. package/packages/cli/src/commands/duplicates-cmd.ts +0 -38
  221. package/packages/cli/src/commands/federate-cmd.ts +0 -256
  222. package/packages/cli/src/commands/gaps-cmd.ts +0 -40
  223. package/packages/cli/src/commands/graph-cmd.ts +0 -88
  224. package/packages/cli/src/commands/index-cmd.ts +0 -65
  225. package/packages/cli/src/commands/init-cmd.ts +0 -145
  226. package/packages/cli/src/commands/learn-cmd.ts +0 -56
  227. package/packages/cli/src/commands/pack-cmd.ts +0 -121
  228. package/packages/cli/src/commands/review-cmd.ts +0 -125
  229. package/packages/cli/src/commands/search-cmd.ts +0 -45
  230. package/packages/cli/src/commands/serve-cmd.ts +0 -17
  231. package/packages/cli/src/commands/status-cmd.ts +0 -37
  232. package/packages/cli/src/commands/sync-cmd.ts +0 -68
  233. package/packages/cli/src/commands/vault-cmd.ts +0 -64
  234. package/packages/cli/src/index.ts +0 -187
  235. package/packages/core/src/api/graph-data.ts +0 -286
  236. package/packages/core/src/api/server.ts +0 -660
  237. package/packages/core/src/capture/voice.ts +0 -168
  238. package/packages/core/src/cloud/sync.ts +0 -167
  239. package/packages/core/src/config.ts +0 -82
  240. package/packages/core/src/federation/credits.ts +0 -80
  241. package/packages/core/src/federation/hyperswarm.d.ts +0 -19
  242. package/packages/core/src/federation/identity.ts +0 -90
  243. package/packages/core/src/federation/node.ts +0 -235
  244. package/packages/core/src/federation/privacy.ts +0 -52
  245. package/packages/core/src/federation/reputation.ts +0 -202
  246. package/packages/core/src/federation/search.ts +0 -129
  247. package/packages/core/src/federation/sharing.ts +0 -315
  248. package/packages/core/src/federation/trust.ts +0 -76
  249. package/packages/core/src/federation/types.ts +0 -25
  250. package/packages/core/src/i18n/index.ts +0 -85
  251. package/packages/core/src/indexer/chunker.ts +0 -180
  252. package/packages/core/src/indexer/embedder.ts +0 -9
  253. package/packages/core/src/indexer/index.ts +0 -113
  254. package/packages/core/src/indexer/local-embedder.ts +0 -35
  255. package/packages/core/src/indexer/scanner.ts +0 -142
  256. package/packages/core/src/indexer/watcher.ts +0 -62
  257. package/packages/core/src/intelligence/contradiction-detector.ts +0 -134
  258. package/packages/core/src/intelligence/decay-engine.ts +0 -229
  259. package/packages/core/src/intelligence/duplicate-detector.ts +0 -71
  260. package/packages/core/src/intelligence/fsrs.ts +0 -79
  261. package/packages/core/src/intelligence/gap-detector.ts +0 -109
  262. package/packages/core/src/intelligence/learning-path.ts +0 -86
  263. package/packages/core/src/intelligence/notifications.ts +0 -106
  264. package/packages/core/src/intelligence/predictive-gaps.ts +0 -94
  265. package/packages/core/src/intelligence/semantic-versioning.ts +0 -97
  266. package/packages/core/src/intelligence/types.ts +0 -28
  267. package/packages/core/src/mcp/custom-tools.ts +0 -97
  268. package/packages/core/src/mcp/server.ts +0 -142
  269. package/packages/core/src/mcp/tools/agentic-graph.ts +0 -96
  270. package/packages/core/src/mcp/tools/brief.ts +0 -49
  271. package/packages/core/src/mcp/tools/decay.ts +0 -40
  272. package/packages/core/src/mcp/tools/decision-journal.ts +0 -95
  273. package/packages/core/src/mcp/tools/export.ts +0 -72
  274. package/packages/core/src/mcp/tools/federated-search.ts +0 -43
  275. package/packages/core/src/mcp/tools/generate-claude-md.ts +0 -130
  276. package/packages/core/src/mcp/tools/get-document.ts +0 -26
  277. package/packages/core/src/mcp/tools/get-related.ts +0 -41
  278. package/packages/core/src/mcp/tools/learning-path.ts +0 -52
  279. package/packages/core/src/mcp/tools/list-topics.ts +0 -20
  280. package/packages/core/src/mcp/tools/search.ts +0 -35
  281. package/packages/core/src/mcp/tools/snapshot.ts +0 -98
  282. package/packages/core/src/multi-vault/index.ts +0 -118
  283. package/packages/core/src/pack/creator.ts +0 -127
  284. package/packages/core/src/pack/exporter.ts +0 -21
  285. package/packages/core/src/pack/importer.ts +0 -82
  286. package/packages/core/src/pack/marketplace.ts +0 -103
  287. package/packages/core/src/pack/pii-masker.ts +0 -38
  288. package/packages/core/src/pack/types.ts +0 -39
  289. package/packages/core/src/plugins/index.ts +0 -100
  290. package/packages/core/src/plugins/webhooks.ts +0 -110
  291. package/packages/core/src/search/bm25.ts +0 -16
  292. package/packages/core/src/search/index.ts +0 -83
  293. package/packages/core/src/search/rrf.ts +0 -31
  294. package/packages/core/src/search/semantic.ts +0 -15
  295. package/packages/core/src/store/sqlite-vec.ts +0 -290
  296. package/packages/core/src/store/types.ts +0 -22
  297. package/packages/core/src/team/index.ts +0 -126
  298. package/packages/core/src/types/chunk.ts +0 -25
  299. package/packages/core/src/types/document.ts +0 -24
  300. package/packages/core/src/types/graph.ts +0 -44
  301. package/packages/core/src/types/index.ts +0 -15
  302. package/packages/core/src/types/search.ts +0 -38
  303. package/packages/core/src/utils/retry.ts +0 -85
  304. package/packages/core/tests/api-card.test.ts +0 -60
  305. package/packages/core/tests/api-routes.test.ts +0 -98
  306. package/packages/core/tests/bm25.test.ts +0 -87
  307. package/packages/core/tests/chunker.test.ts +0 -48
  308. package/packages/core/tests/cluster.test.ts +0 -75
  309. package/packages/core/tests/constellation.test.ts +0 -77
  310. package/packages/core/tests/export-utils.test.ts +0 -97
  311. package/packages/core/tests/fsrs.test.ts +0 -96
  312. package/packages/core/tests/gesture-detector.test.ts +0 -45
  313. package/packages/core/tests/graph-data.test.ts +0 -87
  314. package/packages/core/tests/layout.test.ts +0 -83
  315. package/packages/core/tests/mcp.test.ts +0 -148
  316. package/packages/core/tests/pack.test.ts +0 -127
  317. package/packages/core/tests/pii-masker.test.ts +0 -42
  318. package/packages/core/tests/profile-card.test.ts +0 -62
  319. package/packages/core/tests/rrf.test.ts +0 -29
  320. package/packages/core/tests/search-integration.test.ts +0 -139
  321. package/packages/core/tests/store.test.ts +0 -80
  322. package/packages/graph/click-result.png +0 -0
  323. package/packages/graph/dist/assets/camera_utils-BMxqtvoZ.js +0 -1
  324. package/packages/graph/dist/assets/hands-DXA01_mx.js +0 -18
  325. package/packages/graph/dist/assets/index-DMEe2diW.js +0 -4192
  326. package/packages/graph/dist/assets/layout.worker-DbKCEFTz.js +0 -1
  327. package/packages/graph/dist/index.html +0 -17
  328. package/packages/graph/index.html +0 -17
  329. package/packages/graph/package.json +0 -32
  330. package/packages/graph/src/App.tsx +0 -7
  331. package/packages/graph/src/api/client.ts +0 -39
  332. package/packages/graph/src/components/ClusterFilter.tsx +0 -73
  333. package/packages/graph/src/components/ConstellationView.tsx +0 -232
  334. package/packages/graph/src/components/ExportPanel.tsx +0 -177
  335. package/packages/graph/src/components/Graph3D.tsx +0 -230
  336. package/packages/graph/src/components/GraphEdges.tsx +0 -100
  337. package/packages/graph/src/components/GraphNodes.tsx +0 -386
  338. package/packages/graph/src/components/HealthDashboard.tsx +0 -173
  339. package/packages/graph/src/components/Layout.tsx +0 -214
  340. package/packages/graph/src/components/MotionOverlay.tsx +0 -81
  341. package/packages/graph/src/components/MotionToggle.tsx +0 -33
  342. package/packages/graph/src/components/MultiverseView.tsx +0 -286
  343. package/packages/graph/src/components/NodeDetail.tsx +0 -232
  344. package/packages/graph/src/components/PulseParticle.tsx +0 -232
  345. package/packages/graph/src/components/SearchBar.tsx +0 -107
  346. package/packages/graph/src/components/StarField.tsx +0 -197
  347. package/packages/graph/src/components/StatusBar.tsx +0 -53
  348. package/packages/graph/src/components/Timeline.tsx +0 -148
  349. package/packages/graph/src/components/ToolsPanel.tsx +0 -512
  350. package/packages/graph/src/components/Tooltip.tsx +0 -100
  351. package/packages/graph/src/components/TypeFilter.tsx +0 -131
  352. package/packages/graph/src/embed/EmbedGraph.tsx +0 -144
  353. package/packages/graph/src/hooks/useConstellationLOD.ts +0 -76
  354. package/packages/graph/src/hooks/useDecay.ts +0 -37
  355. package/packages/graph/src/hooks/useExport.ts +0 -165
  356. package/packages/graph/src/hooks/useGraph.ts +0 -69
  357. package/packages/graph/src/hooks/useKeyboardNav.ts +0 -122
  358. package/packages/graph/src/hooks/useLayout.ts +0 -45
  359. package/packages/graph/src/hooks/useMotion.ts +0 -120
  360. package/packages/graph/src/hooks/usePulse.ts +0 -58
  361. package/packages/graph/src/hooks/useSearch.ts +0 -71
  362. package/packages/graph/src/lib/constellation.ts +0 -107
  363. package/packages/graph/src/lib/export-utils.ts +0 -48
  364. package/packages/graph/src/lib/gesture-detector.ts +0 -123
  365. package/packages/graph/src/lib/layout.worker.ts +0 -153
  366. package/packages/graph/src/lib/motion-controller.ts +0 -83
  367. package/packages/graph/src/lib/profile-card.ts +0 -122
  368. package/packages/graph/src/main.tsx +0 -4
  369. package/packages/graph/src/stores/graph-store.ts +0 -155
  370. package/packages/graph/success.png +0 -0
  371. package/packages/graph/test-click.mjs +0 -49
  372. package/packages/graph/test-explore.mjs +0 -102
  373. package/packages/graph/test-final.mjs +0 -61
  374. package/packages/graph/test-graph.mjs +0 -139
  375. package/packages/graph/test-hover.mjs +0 -48
  376. package/packages/graph/test-pulse.mjs +0 -68
  377. package/packages/graph/test-screenshot.mjs +0 -56
  378. package/packages/graph/test-v2.mjs +0 -97
  379. package/packages/graph/tsconfig.tsbuildinfo +0 -1
  380. package/packages/graph/vite.config.ts +0 -15
  381. package/packages/sync/.env.example +0 -11
  382. package/packages/sync/.sync-state.json +0 -317
  383. package/packages/sync/.upload-state.json +0 -1009
  384. package/packages/sync/create-stella-network-notion.mjs +0 -151
  385. package/packages/sync/create-stellavault-project-notion.mjs +0 -322
  386. package/packages/sync/logs/sync-2026-03-28.log +0 -6
  387. package/packages/sync/logs/sync-2026-03-29.log +0 -12
  388. package/packages/sync/logs/sync-2026-03-30.log +0 -6
  389. package/packages/sync/logs/sync-2026-03-31.log +0 -6
  390. package/packages/sync/logs/sync-2026-04-01.log +0 -6
  391. package/packages/sync/logs/sync-2026-04-02.log +0 -6
  392. package/packages/sync/package-lock.json +0 -373
  393. package/packages/sync/package.json +0 -16
  394. package/packages/sync/run-sync.bat +0 -18
  395. package/packages/sync/run-sync.mjs +0 -46
  396. package/packages/sync/setup-scheduler.mjs +0 -119
  397. package/packages/sync/structured-sync.mjs +0 -187
  398. package/packages/sync/sync-to-obsidian.mjs +0 -264
  399. package/packages/sync/upload-pdca-to-notion.mjs +0 -495
  400. package/tsconfig.base.json +0 -18
@@ -0,0 +1,246 @@
1
+ // Federation: Sharing Control v2 — Level-based sharing system
2
+ // Level 0: 차단 (검색 안 됨)
3
+ // Level 1: 제목 + 유사도만
4
+ // Level 2: Level 1 + 50자 스니펫
5
+ // Level 3: Level 2 + 요청 시 전문 (피어 승인)
6
+ // Level 4: Level 3 + 전문 자동 공개
7
+ //
8
+ // 상호 매칭: 내 공개 레벨이 높을수록 남의 것도 더 많이 볼 수 있음
9
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
10
+ import { join } from 'node:path';
11
+ import { homedir } from 'node:os';
12
+ export const LEVEL_LABELS = {
13
+ 0: 'Blocked (not searchable)',
14
+ 1: 'Title + similarity only',
15
+ 2: 'Title + snippet (50 chars)',
16
+ 3: 'Full text on request (approval needed)',
17
+ 4: 'Full text auto-shared',
18
+ };
19
+ export const LEVEL_ICONS = {
20
+ 0: '🚫', 1: '📌', 2: '📝', 3: '📖', 4: '🌐',
21
+ };
22
+ // 크레딧 보너스 (레벨별)
23
+ export const LEVEL_CREDIT_MULTIPLIER = {
24
+ 0: 0, 1: 1, 2: 2, 3: 5, 4: 10,
25
+ };
26
+ const SHARING_FILE = join(homedir(), '.stellavault', 'federation', 'sharing.json');
27
+ const SENSITIVE_PATTERNS = [
28
+ /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/,
29
+ /\b\d{3}[-.]?\d{4}[-.]?\d{4}\b/,
30
+ /\b(sk-|pk-|api[_-]?key|token|secret)[a-zA-Z0-9_-]{10,}\b/i,
31
+ /\bpassword\s*[:=]\s*\S+/i,
32
+ /\b\d{6}[-]\d{7}\b/,
33
+ ];
34
+ const DEFAULT_CONFIG = {
35
+ defaultLevel: 2, // 기본: 스니펫까지
36
+ myNodeLevel: 2, // 내 노드 기본: 스니펫까지
37
+ rules: [
38
+ // 기본 규칙
39
+ { pattern: 'public', type: 'tag', level: 4 },
40
+ { pattern: 'opensource', type: 'tag', level: 4 },
41
+ { pattern: 'personal', type: 'tag', level: 1 },
42
+ { pattern: 'private', type: 'tag', level: 0 },
43
+ { pattern: 'secret', type: 'tag', level: 0 },
44
+ { pattern: 'diary', type: 'tag', level: 0 },
45
+ { pattern: 'salary', type: 'tag', level: 0 },
46
+ { pattern: 'password', type: 'tag', level: 0 },
47
+ { pattern: 'credential', type: 'tag', level: 0 },
48
+ { pattern: '03_Daily', type: 'folder', level: 1 },
49
+ { pattern: '06_Archive', type: 'folder', level: 1 },
50
+ { pattern: '.obsidian', type: 'folder', level: 0 },
51
+ ],
52
+ blockedDocIds: [],
53
+ blockSensitivePatterns: true,
54
+ pendingRequests: [],
55
+ };
56
+ export function loadSharingConfig() {
57
+ if (existsSync(SHARING_FILE)) {
58
+ const raw = JSON.parse(readFileSync(SHARING_FILE, 'utf-8'));
59
+ return { ...DEFAULT_CONFIG, ...raw };
60
+ }
61
+ return { ...DEFAULT_CONFIG };
62
+ }
63
+ export function saveSharingConfig(config) {
64
+ mkdirSync(join(homedir(), '.stellavault', 'federation'), { recursive: true });
65
+ writeFileSync(SHARING_FILE, JSON.stringify(config, null, 2), 'utf-8');
66
+ }
67
+ // 문서의 공유 레벨 결정
68
+ export function getDocumentLevel(doc, config) {
69
+ const cfg = config ?? loadSharingConfig();
70
+ // 1. 개별 차단
71
+ if (cfg.blockedDocIds.includes(doc.id))
72
+ return 0;
73
+ // 2. 민감 패턴 감지 → Level 0
74
+ if (cfg.blockSensitivePatterns) {
75
+ for (const pattern of SENSITIVE_PATTERNS) {
76
+ if (pattern.test(doc.content))
77
+ return 0;
78
+ }
79
+ }
80
+ // 3. 규칙 매칭 (가장 구체적인 규칙 우선)
81
+ let matchedLevel = null;
82
+ // 문서ID 규칙 (가장 구체적)
83
+ for (const rule of cfg.rules) {
84
+ if (rule.type === 'doc' && rule.pattern === doc.id) {
85
+ return rule.level;
86
+ }
87
+ }
88
+ // 태그 규칙 (가장 제한적인 것 적용)
89
+ const docTags = doc.tags.map(t => t.toLowerCase());
90
+ for (const rule of cfg.rules) {
91
+ if (rule.type === 'tag' && docTags.includes(rule.pattern.toLowerCase())) {
92
+ if (matchedLevel === null || rule.level < matchedLevel) {
93
+ matchedLevel = rule.level;
94
+ }
95
+ }
96
+ }
97
+ // 폴더 규칙
98
+ for (const rule of cfg.rules) {
99
+ if (rule.type === 'folder' && doc.filePath.startsWith(rule.pattern)) {
100
+ if (matchedLevel === null || rule.level < matchedLevel) {
101
+ matchedLevel = rule.level;
102
+ }
103
+ }
104
+ }
105
+ return matchedLevel ?? cfg.defaultLevel;
106
+ }
107
+ // 이전 API 호환: isDocumentShareable = Level > 0
108
+ export function isDocumentShareable(doc, config) {
109
+ return getDocumentLevel(doc, config) > 0;
110
+ }
111
+ // 상호 매칭: 내 레벨에 따라 상대 문서를 어디까지 볼 수 있는가
112
+ export function getAccessibleLevel(myLevel, docLevel) {
113
+ // 내 공개 레벨이 상대 문서 레벨 이상이어야 열람 가능
114
+ // 단, 상대가 공개한 범위를 넘을 수는 없음
115
+ return Math.min(myLevel, docLevel);
116
+ }
117
+ export function buildLeveledResult(doc, similarity, requesterNodeLevel, config) {
118
+ const docLevel = getDocumentLevel(doc, config);
119
+ if (docLevel === 0)
120
+ return null; // 차단
121
+ const accessLevel = getAccessibleLevel(requesterNodeLevel, docLevel);
122
+ if (accessLevel === 0)
123
+ return null;
124
+ return {
125
+ title: accessLevel >= 1 ? doc.title : '[Hidden]',
126
+ similarity,
127
+ snippet: accessLevel >= 2 ? sanitizeSnippet(doc.content.slice(0, 50)) : undefined,
128
+ fullTextAvailable: docLevel >= 3,
129
+ autoShare: docLevel >= 4,
130
+ level: accessLevel,
131
+ };
132
+ }
133
+ // 전문 열람 요청
134
+ export function createFullTextRequest(fromPeerId, fromName, documentId, documentTitle) {
135
+ const cfg = loadSharingConfig();
136
+ const request = {
137
+ requestId: `req-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
138
+ fromPeerId, fromName, documentTitle, documentId,
139
+ requestedAt: new Date().toISOString(),
140
+ status: 'pending',
141
+ };
142
+ cfg.pendingRequests.push(request);
143
+ // 최근 50개만 유지
144
+ if (cfg.pendingRequests.length > 50)
145
+ cfg.pendingRequests = cfg.pendingRequests.slice(-50);
146
+ saveSharingConfig(cfg);
147
+ return request;
148
+ }
149
+ export function approveRequest(requestId) {
150
+ const cfg = loadSharingConfig();
151
+ const req = cfg.pendingRequests.find(r => r.requestId === requestId);
152
+ if (!req)
153
+ return false;
154
+ req.status = 'approved';
155
+ saveSharingConfig(cfg);
156
+ return true;
157
+ }
158
+ export function denyRequest(requestId) {
159
+ const cfg = loadSharingConfig();
160
+ const req = cfg.pendingRequests.find(r => r.requestId === requestId);
161
+ if (!req)
162
+ return false;
163
+ req.status = 'denied';
164
+ saveSharingConfig(cfg);
165
+ return true;
166
+ }
167
+ export function getPendingRequests() {
168
+ return loadSharingConfig().pendingRequests.filter(r => r.status === 'pending');
169
+ }
170
+ // 스니펫 민감 정보 제거
171
+ export function sanitizeSnippet(snippet) {
172
+ let safe = snippet;
173
+ for (const pattern of SENSITIVE_PATTERNS) {
174
+ safe = safe.replace(pattern, '[REDACTED]');
175
+ }
176
+ return safe;
177
+ }
178
+ // 규칙 관리 헬퍼
179
+ export function setTagLevel(tag, level) {
180
+ const cfg = loadSharingConfig();
181
+ const existing = cfg.rules.findIndex(r => r.type === 'tag' && r.pattern.toLowerCase() === tag.toLowerCase());
182
+ if (existing >= 0)
183
+ cfg.rules[existing].level = level;
184
+ else
185
+ cfg.rules.push({ pattern: tag.toLowerCase(), type: 'tag', level });
186
+ saveSharingConfig(cfg);
187
+ }
188
+ export function setFolderLevel(folder, level) {
189
+ const cfg = loadSharingConfig();
190
+ const existing = cfg.rules.findIndex(r => r.type === 'folder' && r.pattern === folder);
191
+ if (existing >= 0)
192
+ cfg.rules[existing].level = level;
193
+ else
194
+ cfg.rules.push({ pattern: folder, type: 'folder', level });
195
+ saveSharingConfig(cfg);
196
+ }
197
+ export function setNodeLevel(level) {
198
+ const cfg = loadSharingConfig();
199
+ cfg.myNodeLevel = level;
200
+ saveSharingConfig(cfg);
201
+ }
202
+ export function setDefaultLevel(level) {
203
+ const cfg = loadSharingConfig();
204
+ cfg.defaultLevel = level;
205
+ saveSharingConfig(cfg);
206
+ }
207
+ // CLI 요약
208
+ export function getSharingSummary(config) {
209
+ const cfg = config ?? loadSharingConfig();
210
+ const lines = [];
211
+ lines.push(`My Node Level: ${LEVEL_ICONS[cfg.myNodeLevel]} Level ${cfg.myNodeLevel} (${LEVEL_LABELS[cfg.myNodeLevel]})`);
212
+ lines.push(`Default Doc Level: ${LEVEL_ICONS[cfg.defaultLevel]} Level ${cfg.defaultLevel}`);
213
+ lines.push(`Credit Multiplier: ${LEVEL_CREDIT_MULTIPLIER[cfg.myNodeLevel]}x`);
214
+ lines.push('');
215
+ lines.push('Rules:');
216
+ for (const rule of cfg.rules) {
217
+ lines.push(` ${LEVEL_ICONS[rule.level]} [${rule.type}] ${rule.pattern} → Level ${rule.level}`);
218
+ }
219
+ if (cfg.blockedDocIds.length > 0) {
220
+ lines.push(` 🚫 ${cfg.blockedDocIds.length} docs individually blocked`);
221
+ }
222
+ lines.push('');
223
+ const pending = cfg.pendingRequests.filter(r => r.status === 'pending');
224
+ if (pending.length > 0) {
225
+ lines.push(`📬 ${pending.length} pending full-text requests`);
226
+ }
227
+ lines.push(`Sensitive pattern filter: ${cfg.blockSensitivePatterns ? 'ON' : 'OFF'}`);
228
+ return lines.join('\n');
229
+ }
230
+ // 레거시 호환
231
+ export function addBlockedTag(tag) { setTagLevel(tag, 0); }
232
+ export function removeBlockedTag(tag) { setTagLevel(tag, 2); }
233
+ export function addBlockedFolder(folder) { setFolderLevel(folder, 0); }
234
+ export function blockDocument(docId) {
235
+ const cfg = loadSharingConfig();
236
+ if (!cfg.blockedDocIds.includes(docId)) {
237
+ cfg.blockedDocIds.push(docId);
238
+ saveSharingConfig(cfg);
239
+ }
240
+ }
241
+ export function unblockDocument(docId) {
242
+ const cfg = loadSharingConfig();
243
+ cfg.blockedDocIds = cfg.blockedDocIds.filter(id => id !== docId);
244
+ saveSharingConfig(cfg);
245
+ }
246
+ //# sourceMappingURL=sharing.js.map
@@ -0,0 +1,15 @@
1
+ export interface TrustEntry {
2
+ peerId: string;
3
+ displayName: string;
4
+ level: 'vouched' | 'neutral' | 'blocked';
5
+ reason?: string;
6
+ updatedAt: string;
7
+ }
8
+ export declare function vouch(peerId: string, displayName: string, reason?: string): TrustEntry;
9
+ export declare function revoke(peerId: string): boolean;
10
+ export declare function block(peerId: string, displayName: string, reason?: string): TrustEntry;
11
+ export declare function getTrustLevel(peerId: string): TrustEntry['level'];
12
+ export declare function isBlocked(peerId: string): boolean;
13
+ export declare function listTrusted(): TrustEntry[];
14
+ export declare function computeTrustScore(peerId: string): number;
15
+ //# sourceMappingURL=trust.d.ts.map
@@ -0,0 +1,60 @@
1
+ // Federation Phase 2: Web of Trust
2
+ // vouch/revoke/block — 노드 간 상호 신뢰 관리
3
+ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
4
+ import { join } from 'node:path';
5
+ import { homedir } from 'node:os';
6
+ const TRUST_FILE = join(homedir(), '.stellavault', 'federation', 'trust.json');
7
+ function loadTrustDb() {
8
+ if (!existsSync(TRUST_FILE))
9
+ return new Map();
10
+ const raw = JSON.parse(readFileSync(TRUST_FILE, 'utf-8'));
11
+ return new Map(raw.map(e => [e.peerId, e]));
12
+ }
13
+ function saveTrustDb(db) {
14
+ mkdirSync(join(homedir(), '.stellavault', 'federation'), { recursive: true });
15
+ writeFileSync(TRUST_FILE, JSON.stringify([...db.values()], null, 2), 'utf-8');
16
+ }
17
+ export function vouch(peerId, displayName, reason) {
18
+ const db = loadTrustDb();
19
+ const entry = { peerId, displayName, level: 'vouched', reason, updatedAt: new Date().toISOString() };
20
+ db.set(peerId, entry);
21
+ saveTrustDb(db);
22
+ return entry;
23
+ }
24
+ export function revoke(peerId) {
25
+ const db = loadTrustDb();
26
+ const entry = db.get(peerId);
27
+ if (!entry)
28
+ return false;
29
+ entry.level = 'neutral';
30
+ entry.updatedAt = new Date().toISOString();
31
+ saveTrustDb(db);
32
+ return true;
33
+ }
34
+ export function block(peerId, displayName, reason) {
35
+ const db = loadTrustDb();
36
+ const entry = { peerId, displayName, level: 'blocked', reason, updatedAt: new Date().toISOString() };
37
+ db.set(peerId, entry);
38
+ saveTrustDb(db);
39
+ return entry;
40
+ }
41
+ export function getTrustLevel(peerId) {
42
+ const db = loadTrustDb();
43
+ return db.get(peerId)?.level ?? 'neutral';
44
+ }
45
+ export function isBlocked(peerId) {
46
+ return getTrustLevel(peerId) === 'blocked';
47
+ }
48
+ export function listTrusted() {
49
+ return [...loadTrustDb().values()];
50
+ }
51
+ // 신뢰 점수 계산 (0-100)
52
+ export function computeTrustScore(peerId) {
53
+ const level = getTrustLevel(peerId);
54
+ switch (level) {
55
+ case 'vouched': return 80;
56
+ case 'neutral': return 50;
57
+ case 'blocked': return 0;
58
+ }
59
+ }
60
+ //# sourceMappingURL=trust.js.map
@@ -0,0 +1,40 @@
1
+ export interface PeerInfo {
2
+ peerId: string;
3
+ displayName: string;
4
+ documentCount: number;
5
+ topTopics: string[];
6
+ joinedAt: string;
7
+ lastSeen: string;
8
+ }
9
+ export interface FederatedSearchResult {
10
+ title: string;
11
+ similarity: number;
12
+ snippet: string;
13
+ peerId: string;
14
+ peerName: string;
15
+ }
16
+ export type FederationMessage = {
17
+ type: 'handshake';
18
+ peerId: string;
19
+ displayName: string;
20
+ version: string;
21
+ documentCount: number;
22
+ topTopics: string[];
23
+ } | {
24
+ type: 'search_query';
25
+ queryId: string;
26
+ embedding: number[];
27
+ limit: number;
28
+ } | {
29
+ type: 'search_result';
30
+ queryId: string;
31
+ results: Array<{
32
+ title: string;
33
+ similarity: number;
34
+ snippet: string;
35
+ }>;
36
+ } | {
37
+ type: 'leave';
38
+ peerId: string;
39
+ };
40
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,3 @@
1
+ // Design Ref: §2.2 — Federation 공유 타입 정의
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,6 @@
1
+ export type Locale = 'en' | 'ko' | 'ja' | 'zh';
2
+ export declare function setLocale(locale: Locale): void;
3
+ export declare function getLocale(): Locale;
4
+ export declare function t(key: string, fallback?: string): string;
5
+ export declare function detectLocale(): Locale;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,81 @@
1
+ // i18n Foundation (F-A19)
2
+ // Simple string externalization for CLI and Graph UI
3
+ const strings = {
4
+ en: {
5
+ 'init.welcome': 'Stellavault Setup Wizard',
6
+ 'init.tagline': "Notes die in folders. Let's bring yours to life.",
7
+ 'init.step1': 'Where is your Obsidian vault?',
8
+ 'init.step2': 'Indexing your vault',
9
+ 'init.step3': 'Try your first search',
10
+ 'init.done': 'Setup complete!',
11
+ 'index.complete': 'Indexing complete',
12
+ 'search.no_results': 'No results found.',
13
+ 'decay.report_title': 'Knowledge Decay Report',
14
+ 'decay.tip': 'Search a topic to refresh decaying knowledge',
15
+ 'learn.title': 'Your Learning Path',
16
+ 'learn.all_clear': 'All clear! Your knowledge is in great shape.',
17
+ 'contradictions.title': 'potential contradictions found',
18
+ 'contradictions.none': 'No contradictions detected. Your knowledge is consistent!',
19
+ 'graph.title': 'Stellavault',
20
+ 'graph.subtitle': 'Neural Knowledge Graph',
21
+ 'error.vault_not_found': 'Vault not found',
22
+ 'error.db_init_failed': 'Database initialization failed',
23
+ 'error.embedder_failed': 'Embedding model failed to load',
24
+ },
25
+ ko: {
26
+ 'init.welcome': 'Stellavault 설정 마법사',
27
+ 'init.tagline': '노트는 폴더에서 죽습니다. 당신의 지식을 살려봅시다.',
28
+ 'init.step1': 'Obsidian vault 경로가 어디인가요?',
29
+ 'init.step2': 'vault 인덱싱 중',
30
+ 'init.step3': '첫 번째 검색을 해보세요',
31
+ 'init.done': '설정 완료!',
32
+ 'index.complete': '인덱싱 완료',
33
+ 'search.no_results': '검색 결과가 없습니다.',
34
+ 'decay.report_title': '지식 감쇠 리포트',
35
+ 'decay.tip': '검색하면 감쇠 중인 지식이 리프레시됩니다',
36
+ 'learn.title': '당신의 학습 경로',
37
+ 'learn.all_clear': '모든 지식이 건강합니다!',
38
+ 'contradictions.title': '개의 잠재적 모순 발견',
39
+ 'contradictions.none': '모순이 없습니다. 지식이 일관됩니다!',
40
+ 'graph.title': 'Stellavault',
41
+ 'graph.subtitle': '뉴럴 지식 그래프',
42
+ 'error.vault_not_found': 'vault를 찾을 수 없습니다',
43
+ 'error.db_init_failed': '데이터베이스 초기화 실패',
44
+ 'error.embedder_failed': '임베딩 모델 로딩 실패',
45
+ },
46
+ ja: {
47
+ 'init.welcome': 'Stellavault セットアップウィザード',
48
+ 'init.tagline': 'ノートはフォルダで死にます。あなたの知識を生かしましょう。',
49
+ 'graph.title': 'Stellavault',
50
+ 'graph.subtitle': 'ニューラルナレッジグラフ',
51
+ 'search.no_results': '検索結果がありません。',
52
+ },
53
+ zh: {
54
+ 'init.welcome': 'Stellavault 设置向导',
55
+ 'init.tagline': '笔记在文件夹中消亡。让你的知识活起来。',
56
+ 'graph.title': 'Stellavault',
57
+ 'graph.subtitle': '神经知识图谱',
58
+ 'search.no_results': '没有搜索结果。',
59
+ },
60
+ };
61
+ let currentLocale = 'en';
62
+ export function setLocale(locale) {
63
+ currentLocale = locale;
64
+ }
65
+ export function getLocale() {
66
+ return currentLocale;
67
+ }
68
+ export function t(key, fallback) {
69
+ return strings[currentLocale]?.[key] ?? strings.en[key] ?? fallback ?? key;
70
+ }
71
+ export function detectLocale() {
72
+ const env = process.env.LANG || process.env.LANGUAGE || process.env.LC_ALL || '';
73
+ if (env.startsWith('ko'))
74
+ return 'ko';
75
+ if (env.startsWith('ja'))
76
+ return 'ja';
77
+ if (env.startsWith('zh'))
78
+ return 'zh';
79
+ return 'en';
80
+ }
81
+ //# sourceMappingURL=index.js.map
@@ -1,47 +1,21 @@
1
- // Design Ref: §4.2 — Core Internal API (Facade)
2
- // Design Ref: §9.3 — Dependency Injection Pattern
3
-
4
1
  export { loadConfig } from './config.js';
5
2
  export type { StellavaultConfig } from './config.js';
6
-
7
- // Types
8
3
  export type { Document } from './types/document.js';
9
4
  export type { Chunk, ScoredChunk } from './types/chunk.js';
10
- export type {
11
- SearchResult,
12
- SearchOptions,
13
- TopicInfo,
14
- StoreStats,
15
- } from './types/search.js';
16
-
17
- // Interfaces
5
+ export type { SearchResult, SearchOptions, TopicInfo, StoreStats, } from './types/search.js';
18
6
  export type { VectorStore } from './store/types.js';
19
7
  export type { Embedder } from './indexer/embedder.js';
20
-
21
- // Store
22
8
  export { createSqliteVecStore } from './store/index.js';
23
-
24
- // Indexer
25
9
  export { indexVault, scanVault, chunkDocument, createLocalEmbedder } from './indexer/index.js';
26
10
  export type { IndexResult, IndexerOptions } from './indexer/index.js';
27
-
28
- // Search
29
11
  export { createSearchEngine } from './search/index.js';
30
12
  export type { SearchEngine } from './search/index.js';
31
-
32
- // MCP
33
13
  export { createMcpServer } from './mcp/index.js';
34
-
35
- // Pack (Phase 3)
36
14
  export { createPack, exportPack, importPack, packToSummary, maskPII } from './pack/index.js';
37
15
  export type { KnowledgePack, PackChunk, PackInfo, CreatePackOptions, ImportResult, MaskResult } from './pack/index.js';
38
-
39
- // API (Phase 2)
40
16
  export { createApiServer } from './api/server.js';
41
17
  export type { ApiServerOptions } from './api/server.js';
42
18
  export type { GraphNode, GraphEdge, Cluster, GraphData, GraphResponse } from './types/graph.js';
43
-
44
- // Intelligence (Phase 4b)
45
19
  export { DecayEngine } from './intelligence/decay-engine.js';
46
20
  export type { DecayState, AccessEvent, DecayReport } from './intelligence/types.js';
47
21
  export { computeRetrievability, updateStability, estimateInitialStability, elapsedDays } from './intelligence/fsrs.js';
@@ -58,35 +32,19 @@ export { generateLearningPath } from './intelligence/learning-path.js';
58
32
  export type { LearningPath, LearningItem, LearningPathInput } from './intelligence/learning-path.js';
59
33
  export { checkNotifications } from './intelligence/notifications.js';
60
34
  export type { Notification, NotificationConfig } from './intelligence/notifications.js';
61
-
62
- // Multi-Vault
63
35
  export { addVault, removeVault, listVaults, getVault, searchAllVaults } from './multi-vault/index.js';
64
36
  export type { VaultEntry, CrossVaultSearchResult } from './multi-vault/index.js';
65
-
66
- // Voice Capture
67
37
  export { captureVoice, transcribeAudio, isWhisperAvailable } from './capture/voice.js';
68
38
  export type { CaptureResult, CaptureOptions } from './capture/voice.js';
69
-
70
- // Dashboard + PWA
71
39
  export { mountDashboard } from './api/dashboard.js';
72
40
  export { mountPWA } from './api/pwa.js';
73
-
74
- // Agentic Graph
75
41
  export { createAgenticGraphTools } from './mcp/tools/agentic-graph.js';
76
-
77
- // Cloud
78
42
  export { syncToCloud, restoreFromCloud, getSyncState, encrypt, decrypt, getOrCreateEncryptionKey } from './cloud/index.js';
79
43
  export type { CloudConfig, SyncResult } from './cloud/index.js';
80
-
81
- // Team
82
44
  export { inviteMember, authenticateMember, hasPermission, listMembers, removeMember, createAuthMiddleware, loadTeamConfig, generateToken } from './team/index.js';
83
45
  export type { TeamMember, TeamRole, TeamConfig } from './team/index.js';
84
-
85
- // Pack Marketplace
86
46
  export { searchMarketplace, createPackageJson, getPublishInstructions } from './pack/marketplace.js';
87
47
  export type { PackListing } from './pack/marketplace.js';
88
-
89
- // Federation
90
48
  export { FederationNode, FederatedSearch, getOrCreateIdentity } from './federation/index.js';
91
49
  export type { PeerInfo, FederatedSearchResult, FederationMessage, NodeIdentity } from './federation/index.js';
92
50
  export { vouch, revoke, block, getTrustLevel, isBlocked, listTrusted, computeTrustScore } from './federation/trust.js';
@@ -99,35 +57,58 @@ export { addDPNoise, addDPNoiseNormalized, maskSnippet } from './federation/priv
99
57
  export type { DPConfig } from './federation/privacy.js';
100
58
  export { getBalance, getAccount, earn, spend, earnForSearchResponse, spendForSearch, getRecentTransactions } from './federation/credits.js';
101
59
  export type { CreditAccount, CreditTransaction } from './federation/credits.js';
102
-
103
- // Plugin SDK
104
60
  export { PluginManager } from './plugins/index.js';
105
61
  export type { StellavaultPlugin, PluginManifest, PluginEvent, PluginContext } from './plugins/index.js';
106
62
  export { WebhookManager } from './plugins/webhooks.js';
107
63
  export type { WebhookConfig, WebhookDelivery } from './plugins/webhooks.js';
108
64
  export { loadCustomTools } from './mcp/custom-tools.js';
109
65
  export type { CustomToolDef, LoadedCustomTool } from './mcp/custom-tools.js';
110
-
111
- // i18n
112
66
  export { t, setLocale, getLocale, detectLocale } from './i18n/index.js';
113
67
  export type { Locale } from './i18n/index.js';
114
-
115
- // Error Recovery
116
68
  export { withRetry, StellavaultError, wrapError, errors } from './utils/retry.js';
117
69
  export type { RetryOptions } from './utils/retry.js';
118
-
119
- // Factory — 전체 조립
120
- import { createSqliteVecStore as _createStore } from './store/index.js';
121
- import { createLocalEmbedder as _createEmbedder } from './indexer/index.js';
122
- import { createSearchEngine as _createSearch } from './search/index.js';
123
- import { createMcpServer as _createMcp } from './mcp/index.js';
124
-
125
- export function createKnowledgeHub(config: import('./config.js').StellavaultConfig) {
126
- const embedder = _createEmbedder(config.embedding.localModel);
127
- const dims = embedder.dimensions;
128
- const store = _createStore(config.dbPath, dims);
129
- const searchEngine = _createSearch({ store, embedder, rrfK: config.search.rrfK });
130
- const mcpServer = _createMcp({ store, searchEngine, vaultPath: config.vaultPath });
131
-
132
- return { store, embedder, searchEngine, mcpServer, config };
133
- }
70
+ export declare function createKnowledgeHub(config: import('./config.js').StellavaultConfig): {
71
+ store: import("./store/types.js").VectorStore;
72
+ embedder: import("./indexer/embedder.js").Embedder;
73
+ searchEngine: import("./search/index.js").SearchEngine;
74
+ mcpServer: {
75
+ startStdio(): Promise<void>;
76
+ startHttp(port?: number): Promise<void>;
77
+ server: import("@modelcontextprotocol/sdk/server").Server<{
78
+ method: string;
79
+ params?: {
80
+ [x: string]: unknown;
81
+ _meta?: {
82
+ [x: string]: unknown;
83
+ progressToken?: string | number | undefined;
84
+ "io.modelcontextprotocol/related-task"?: {
85
+ taskId: string;
86
+ } | undefined;
87
+ } | undefined;
88
+ } | undefined;
89
+ }, {
90
+ method: string;
91
+ params?: {
92
+ [x: string]: unknown;
93
+ _meta?: {
94
+ [x: string]: unknown;
95
+ progressToken?: string | number | undefined;
96
+ "io.modelcontextprotocol/related-task"?: {
97
+ taskId: string;
98
+ } | undefined;
99
+ } | undefined;
100
+ } | undefined;
101
+ }, {
102
+ [x: string]: unknown;
103
+ _meta?: {
104
+ [x: string]: unknown;
105
+ progressToken?: string | number | undefined;
106
+ "io.modelcontextprotocol/related-task"?: {
107
+ taskId: string;
108
+ } | undefined;
109
+ } | undefined;
110
+ }>;
111
+ };
112
+ config: import("./config.js").StellavaultConfig;
113
+ };
114
+ //# sourceMappingURL=index.d.ts.map