stellavault 0.2.0 → 0.2.1

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 (390) 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 +647 -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/contradiction-detector.d.ts +20 -0
  55. package/packages/core/dist/intelligence/contradiction-detector.js +115 -0
  56. package/packages/core/dist/intelligence/decay-engine.d.ts +27 -0
  57. package/packages/core/dist/intelligence/decay-engine.js +190 -0
  58. package/packages/core/dist/intelligence/duplicate-detector.d.ts +20 -0
  59. package/packages/core/dist/intelligence/duplicate-detector.js +55 -0
  60. package/packages/core/dist/intelligence/fsrs.d.ts +43 -0
  61. package/packages/core/dist/intelligence/fsrs.js +70 -0
  62. package/packages/core/dist/intelligence/gap-detector.d.ts +25 -0
  63. package/packages/core/dist/intelligence/gap-detector.js +78 -0
  64. package/packages/core/dist/intelligence/learning-path.d.ts +31 -0
  65. package/packages/core/dist/intelligence/learning-path.js +53 -0
  66. package/packages/core/dist/intelligence/notifications.d.ts +31 -0
  67. package/packages/core/dist/intelligence/notifications.js +65 -0
  68. package/packages/core/dist/intelligence/predictive-gaps.d.ts +14 -0
  69. package/packages/core/dist/intelligence/predictive-gaps.js +74 -0
  70. package/packages/core/dist/intelligence/semantic-versioning.d.ts +37 -0
  71. package/packages/core/dist/intelligence/semantic-versioning.js +68 -0
  72. package/packages/core/dist/intelligence/types.d.ts +28 -0
  73. package/packages/core/dist/intelligence/types.js +3 -0
  74. package/packages/core/dist/mcp/custom-tools.d.ts +29 -0
  75. package/packages/core/dist/mcp/custom-tools.js +70 -0
  76. package/packages/core/{src/mcp/index.ts → dist/mcp/index.d.ts} +1 -0
  77. package/packages/core/dist/mcp/index.js +2 -0
  78. package/packages/core/dist/mcp/server.d.ts +49 -0
  79. package/packages/core/dist/mcp/server.js +133 -0
  80. package/packages/core/dist/mcp/tools/agentic-graph.d.ts +87 -0
  81. package/packages/core/dist/mcp/tools/agentic-graph.js +88 -0
  82. package/packages/core/dist/mcp/tools/brief.d.ts +31 -0
  83. package/packages/core/dist/mcp/tools/brief.js +39 -0
  84. package/packages/core/dist/mcp/tools/decay.d.ts +33 -0
  85. package/packages/core/dist/mcp/tools/decay.js +32 -0
  86. package/packages/core/dist/mcp/tools/decision-journal.d.ts +78 -0
  87. package/packages/core/dist/mcp/tools/decision-journal.js +79 -0
  88. package/packages/core/dist/mcp/tools/export.d.ts +29 -0
  89. package/packages/core/dist/mcp/tools/export.js +60 -0
  90. package/packages/core/dist/mcp/tools/federated-search.d.ts +29 -0
  91. package/packages/core/dist/mcp/tools/federated-search.js +36 -0
  92. package/packages/core/dist/mcp/tools/generate-claude-md.d.ts +35 -0
  93. package/packages/core/dist/mcp/tools/generate-claude-md.js +107 -0
  94. package/packages/core/dist/mcp/tools/get-document.d.ts +35 -0
  95. package/packages/core/dist/mcp/tools/get-document.js +25 -0
  96. package/packages/core/dist/mcp/tools/get-related.d.ts +32 -0
  97. package/packages/core/dist/mcp/tools/get-related.js +33 -0
  98. package/packages/core/dist/mcp/tools/learning-path.d.ts +23 -0
  99. package/packages/core/dist/mcp/tools/learning-path.js +45 -0
  100. package/packages/core/dist/mcp/tools/list-topics.d.ts +15 -0
  101. package/packages/core/dist/mcp/tools/list-topics.js +18 -0
  102. package/packages/core/dist/mcp/tools/search.d.ts +39 -0
  103. package/packages/core/dist/mcp/tools/search.js +29 -0
  104. package/packages/core/dist/mcp/tools/snapshot.d.ts +47 -0
  105. package/packages/core/dist/mcp/tools/snapshot.js +84 -0
  106. package/packages/core/dist/multi-vault/index.d.ts +26 -0
  107. package/packages/core/dist/multi-vault/index.js +80 -0
  108. package/packages/core/dist/pack/creator.d.ts +21 -0
  109. package/packages/core/dist/pack/creator.js +105 -0
  110. package/packages/core/dist/pack/exporter.d.ts +4 -0
  111. package/packages/core/dist/pack/exporter.js +18 -0
  112. package/packages/core/dist/pack/importer.d.ts +10 -0
  113. package/packages/core/dist/pack/importer.js +55 -0
  114. package/packages/core/{src/pack/index.ts → dist/pack/index.d.ts} +1 -0
  115. package/packages/core/dist/pack/index.js +5 -0
  116. package/packages/core/dist/pack/marketplace.d.ts +14 -0
  117. package/packages/core/dist/pack/marketplace.js +90 -0
  118. package/packages/core/dist/pack/pii-masker.d.ts +7 -0
  119. package/packages/core/dist/pack/pii-masker.js +29 -0
  120. package/packages/core/dist/pack/types.d.ts +36 -0
  121. package/packages/core/dist/pack/types.js +3 -0
  122. package/packages/core/dist/plugins/index.d.ts +35 -0
  123. package/packages/core/dist/plugins/index.js +57 -0
  124. package/packages/core/dist/plugins/webhooks.d.ts +30 -0
  125. package/packages/core/dist/plugins/webhooks.js +79 -0
  126. package/packages/core/dist/search/bm25.d.ts +4 -0
  127. package/packages/core/dist/search/bm25.js +10 -0
  128. package/packages/core/dist/search/index.d.ts +13 -0
  129. package/packages/core/dist/search/index.js +63 -0
  130. package/packages/core/dist/search/rrf.d.ts +7 -0
  131. package/packages/core/dist/search/rrf.js +21 -0
  132. package/packages/core/dist/search/semantic.d.ts +5 -0
  133. package/packages/core/dist/search/semantic.js +6 -0
  134. package/packages/core/{src/store/index.ts → dist/store/index.d.ts} +1 -0
  135. package/packages/core/dist/store/index.js +2 -0
  136. package/packages/core/dist/store/sqlite-vec.d.ts +6 -0
  137. package/packages/core/dist/store/sqlite-vec.js +251 -0
  138. package/packages/core/dist/store/types.d.ts +20 -0
  139. package/packages/core/dist/store/types.js +3 -0
  140. package/packages/core/dist/team/index.d.ts +25 -0
  141. package/packages/core/dist/team/index.js +97 -0
  142. package/packages/core/dist/types/chunk.d.ts +23 -0
  143. package/packages/core/dist/types/chunk.js +3 -0
  144. package/packages/core/dist/types/document.d.ts +23 -0
  145. package/packages/core/dist/types/document.js +3 -0
  146. package/packages/core/dist/types/graph.d.ts +39 -0
  147. package/packages/core/dist/types/graph.js +3 -0
  148. package/packages/core/dist/types/index.d.ts +5 -0
  149. package/packages/core/dist/types/index.js +2 -0
  150. package/packages/core/dist/types/search.d.ts +39 -0
  151. package/packages/core/dist/types/search.js +3 -0
  152. package/packages/core/dist/utils/retry.d.ts +25 -0
  153. package/packages/core/dist/utils/retry.js +59 -0
  154. package/.github/workflows/pages.yml +0 -37
  155. package/memory/MEMORY.md +0 -25
  156. package/packages/cli/dist/commands/brief-cmd.d.ts.map +0 -1
  157. package/packages/cli/dist/commands/brief-cmd.js.map +0 -1
  158. package/packages/cli/dist/commands/capture-cmd.d.ts.map +0 -1
  159. package/packages/cli/dist/commands/capture-cmd.js.map +0 -1
  160. package/packages/cli/dist/commands/card-cmd.d.ts.map +0 -1
  161. package/packages/cli/dist/commands/card-cmd.js.map +0 -1
  162. package/packages/cli/dist/commands/clip-cmd.d.ts.map +0 -1
  163. package/packages/cli/dist/commands/clip-cmd.js.map +0 -1
  164. package/packages/cli/dist/commands/cloud-cmd.d.ts.map +0 -1
  165. package/packages/cli/dist/commands/cloud-cmd.js.map +0 -1
  166. package/packages/cli/dist/commands/contradictions-cmd.d.ts.map +0 -1
  167. package/packages/cli/dist/commands/contradictions-cmd.js.map +0 -1
  168. package/packages/cli/dist/commands/decay-cmd.d.ts.map +0 -1
  169. package/packages/cli/dist/commands/decay-cmd.js.map +0 -1
  170. package/packages/cli/dist/commands/digest-cmd.d.ts.map +0 -1
  171. package/packages/cli/dist/commands/digest-cmd.js.map +0 -1
  172. package/packages/cli/dist/commands/duplicates-cmd.d.ts.map +0 -1
  173. package/packages/cli/dist/commands/duplicates-cmd.js.map +0 -1
  174. package/packages/cli/dist/commands/federate-cmd.d.ts.map +0 -1
  175. package/packages/cli/dist/commands/federate-cmd.js.map +0 -1
  176. package/packages/cli/dist/commands/gaps-cmd.d.ts.map +0 -1
  177. package/packages/cli/dist/commands/gaps-cmd.js.map +0 -1
  178. package/packages/cli/dist/commands/graph-cmd.d.ts.map +0 -1
  179. package/packages/cli/dist/commands/graph-cmd.js.map +0 -1
  180. package/packages/cli/dist/commands/index-cmd.d.ts.map +0 -1
  181. package/packages/cli/dist/commands/index-cmd.js.map +0 -1
  182. package/packages/cli/dist/commands/init-cmd.d.ts.map +0 -1
  183. package/packages/cli/dist/commands/init-cmd.js.map +0 -1
  184. package/packages/cli/dist/commands/learn-cmd.d.ts.map +0 -1
  185. package/packages/cli/dist/commands/learn-cmd.js.map +0 -1
  186. package/packages/cli/dist/commands/pack-cmd.d.ts.map +0 -1
  187. package/packages/cli/dist/commands/pack-cmd.js.map +0 -1
  188. package/packages/cli/dist/commands/review-cmd.d.ts.map +0 -1
  189. package/packages/cli/dist/commands/review-cmd.js.map +0 -1
  190. package/packages/cli/dist/commands/search-cmd.d.ts.map +0 -1
  191. package/packages/cli/dist/commands/search-cmd.js.map +0 -1
  192. package/packages/cli/dist/commands/serve-cmd.d.ts.map +0 -1
  193. package/packages/cli/dist/commands/serve-cmd.js.map +0 -1
  194. package/packages/cli/dist/commands/status-cmd.d.ts.map +0 -1
  195. package/packages/cli/dist/commands/status-cmd.js.map +0 -1
  196. package/packages/cli/dist/commands/sync-cmd.d.ts.map +0 -1
  197. package/packages/cli/dist/commands/sync-cmd.js.map +0 -1
  198. package/packages/cli/dist/commands/vault-cmd.d.ts.map +0 -1
  199. package/packages/cli/dist/commands/vault-cmd.js.map +0 -1
  200. package/packages/cli/dist/index.d.ts.map +0 -1
  201. package/packages/cli/dist/index.js.map +0 -1
  202. package/packages/cli/src/commands/brief-cmd.ts +0 -87
  203. package/packages/cli/src/commands/capture-cmd.ts +0 -34
  204. package/packages/cli/src/commands/card-cmd.ts +0 -29
  205. package/packages/cli/src/commands/clip-cmd.ts +0 -172
  206. package/packages/cli/src/commands/cloud-cmd.ts +0 -75
  207. package/packages/cli/src/commands/contradictions-cmd.ts +0 -41
  208. package/packages/cli/src/commands/decay-cmd.ts +0 -57
  209. package/packages/cli/src/commands/digest-cmd.ts +0 -89
  210. package/packages/cli/src/commands/duplicates-cmd.ts +0 -38
  211. package/packages/cli/src/commands/federate-cmd.ts +0 -256
  212. package/packages/cli/src/commands/gaps-cmd.ts +0 -40
  213. package/packages/cli/src/commands/graph-cmd.ts +0 -88
  214. package/packages/cli/src/commands/index-cmd.ts +0 -65
  215. package/packages/cli/src/commands/init-cmd.ts +0 -145
  216. package/packages/cli/src/commands/learn-cmd.ts +0 -56
  217. package/packages/cli/src/commands/pack-cmd.ts +0 -121
  218. package/packages/cli/src/commands/review-cmd.ts +0 -125
  219. package/packages/cli/src/commands/search-cmd.ts +0 -45
  220. package/packages/cli/src/commands/serve-cmd.ts +0 -17
  221. package/packages/cli/src/commands/status-cmd.ts +0 -37
  222. package/packages/cli/src/commands/sync-cmd.ts +0 -68
  223. package/packages/cli/src/commands/vault-cmd.ts +0 -64
  224. package/packages/cli/src/index.ts +0 -187
  225. package/packages/core/src/api/graph-data.ts +0 -286
  226. package/packages/core/src/api/server.ts +0 -660
  227. package/packages/core/src/capture/voice.ts +0 -168
  228. package/packages/core/src/cloud/sync.ts +0 -167
  229. package/packages/core/src/config.ts +0 -82
  230. package/packages/core/src/federation/credits.ts +0 -80
  231. package/packages/core/src/federation/hyperswarm.d.ts +0 -19
  232. package/packages/core/src/federation/identity.ts +0 -90
  233. package/packages/core/src/federation/node.ts +0 -235
  234. package/packages/core/src/federation/privacy.ts +0 -52
  235. package/packages/core/src/federation/reputation.ts +0 -202
  236. package/packages/core/src/federation/search.ts +0 -129
  237. package/packages/core/src/federation/sharing.ts +0 -315
  238. package/packages/core/src/federation/trust.ts +0 -76
  239. package/packages/core/src/federation/types.ts +0 -25
  240. package/packages/core/src/i18n/index.ts +0 -85
  241. package/packages/core/src/indexer/chunker.ts +0 -180
  242. package/packages/core/src/indexer/embedder.ts +0 -9
  243. package/packages/core/src/indexer/index.ts +0 -113
  244. package/packages/core/src/indexer/local-embedder.ts +0 -35
  245. package/packages/core/src/indexer/scanner.ts +0 -142
  246. package/packages/core/src/indexer/watcher.ts +0 -62
  247. package/packages/core/src/intelligence/contradiction-detector.ts +0 -134
  248. package/packages/core/src/intelligence/decay-engine.ts +0 -229
  249. package/packages/core/src/intelligence/duplicate-detector.ts +0 -71
  250. package/packages/core/src/intelligence/fsrs.ts +0 -79
  251. package/packages/core/src/intelligence/gap-detector.ts +0 -109
  252. package/packages/core/src/intelligence/learning-path.ts +0 -86
  253. package/packages/core/src/intelligence/notifications.ts +0 -106
  254. package/packages/core/src/intelligence/predictive-gaps.ts +0 -94
  255. package/packages/core/src/intelligence/semantic-versioning.ts +0 -97
  256. package/packages/core/src/intelligence/types.ts +0 -28
  257. package/packages/core/src/mcp/custom-tools.ts +0 -97
  258. package/packages/core/src/mcp/server.ts +0 -142
  259. package/packages/core/src/mcp/tools/agentic-graph.ts +0 -96
  260. package/packages/core/src/mcp/tools/brief.ts +0 -49
  261. package/packages/core/src/mcp/tools/decay.ts +0 -40
  262. package/packages/core/src/mcp/tools/decision-journal.ts +0 -95
  263. package/packages/core/src/mcp/tools/export.ts +0 -72
  264. package/packages/core/src/mcp/tools/federated-search.ts +0 -43
  265. package/packages/core/src/mcp/tools/generate-claude-md.ts +0 -130
  266. package/packages/core/src/mcp/tools/get-document.ts +0 -26
  267. package/packages/core/src/mcp/tools/get-related.ts +0 -41
  268. package/packages/core/src/mcp/tools/learning-path.ts +0 -52
  269. package/packages/core/src/mcp/tools/list-topics.ts +0 -20
  270. package/packages/core/src/mcp/tools/search.ts +0 -35
  271. package/packages/core/src/mcp/tools/snapshot.ts +0 -98
  272. package/packages/core/src/multi-vault/index.ts +0 -118
  273. package/packages/core/src/pack/creator.ts +0 -127
  274. package/packages/core/src/pack/exporter.ts +0 -21
  275. package/packages/core/src/pack/importer.ts +0 -82
  276. package/packages/core/src/pack/marketplace.ts +0 -103
  277. package/packages/core/src/pack/pii-masker.ts +0 -38
  278. package/packages/core/src/pack/types.ts +0 -39
  279. package/packages/core/src/plugins/index.ts +0 -100
  280. package/packages/core/src/plugins/webhooks.ts +0 -110
  281. package/packages/core/src/search/bm25.ts +0 -16
  282. package/packages/core/src/search/index.ts +0 -83
  283. package/packages/core/src/search/rrf.ts +0 -31
  284. package/packages/core/src/search/semantic.ts +0 -15
  285. package/packages/core/src/store/sqlite-vec.ts +0 -290
  286. package/packages/core/src/store/types.ts +0 -22
  287. package/packages/core/src/team/index.ts +0 -126
  288. package/packages/core/src/types/chunk.ts +0 -25
  289. package/packages/core/src/types/document.ts +0 -24
  290. package/packages/core/src/types/graph.ts +0 -44
  291. package/packages/core/src/types/index.ts +0 -15
  292. package/packages/core/src/types/search.ts +0 -38
  293. package/packages/core/src/utils/retry.ts +0 -85
  294. package/packages/core/tests/api-card.test.ts +0 -60
  295. package/packages/core/tests/api-routes.test.ts +0 -98
  296. package/packages/core/tests/bm25.test.ts +0 -87
  297. package/packages/core/tests/chunker.test.ts +0 -48
  298. package/packages/core/tests/cluster.test.ts +0 -75
  299. package/packages/core/tests/constellation.test.ts +0 -77
  300. package/packages/core/tests/export-utils.test.ts +0 -97
  301. package/packages/core/tests/fsrs.test.ts +0 -96
  302. package/packages/core/tests/gesture-detector.test.ts +0 -45
  303. package/packages/core/tests/graph-data.test.ts +0 -87
  304. package/packages/core/tests/layout.test.ts +0 -83
  305. package/packages/core/tests/mcp.test.ts +0 -148
  306. package/packages/core/tests/pack.test.ts +0 -127
  307. package/packages/core/tests/pii-masker.test.ts +0 -42
  308. package/packages/core/tests/profile-card.test.ts +0 -62
  309. package/packages/core/tests/rrf.test.ts +0 -29
  310. package/packages/core/tests/search-integration.test.ts +0 -139
  311. package/packages/core/tests/store.test.ts +0 -80
  312. package/packages/graph/click-result.png +0 -0
  313. package/packages/graph/dist/assets/camera_utils-BMxqtvoZ.js +0 -1
  314. package/packages/graph/dist/assets/hands-DXA01_mx.js +0 -18
  315. package/packages/graph/dist/assets/index-DMEe2diW.js +0 -4192
  316. package/packages/graph/dist/assets/layout.worker-DbKCEFTz.js +0 -1
  317. package/packages/graph/dist/index.html +0 -17
  318. package/packages/graph/index.html +0 -17
  319. package/packages/graph/package.json +0 -32
  320. package/packages/graph/src/App.tsx +0 -7
  321. package/packages/graph/src/api/client.ts +0 -39
  322. package/packages/graph/src/components/ClusterFilter.tsx +0 -73
  323. package/packages/graph/src/components/ConstellationView.tsx +0 -232
  324. package/packages/graph/src/components/ExportPanel.tsx +0 -177
  325. package/packages/graph/src/components/Graph3D.tsx +0 -230
  326. package/packages/graph/src/components/GraphEdges.tsx +0 -100
  327. package/packages/graph/src/components/GraphNodes.tsx +0 -386
  328. package/packages/graph/src/components/HealthDashboard.tsx +0 -173
  329. package/packages/graph/src/components/Layout.tsx +0 -214
  330. package/packages/graph/src/components/MotionOverlay.tsx +0 -81
  331. package/packages/graph/src/components/MotionToggle.tsx +0 -33
  332. package/packages/graph/src/components/MultiverseView.tsx +0 -286
  333. package/packages/graph/src/components/NodeDetail.tsx +0 -232
  334. package/packages/graph/src/components/PulseParticle.tsx +0 -232
  335. package/packages/graph/src/components/SearchBar.tsx +0 -107
  336. package/packages/graph/src/components/StarField.tsx +0 -197
  337. package/packages/graph/src/components/StatusBar.tsx +0 -53
  338. package/packages/graph/src/components/Timeline.tsx +0 -148
  339. package/packages/graph/src/components/ToolsPanel.tsx +0 -512
  340. package/packages/graph/src/components/Tooltip.tsx +0 -100
  341. package/packages/graph/src/components/TypeFilter.tsx +0 -131
  342. package/packages/graph/src/embed/EmbedGraph.tsx +0 -144
  343. package/packages/graph/src/hooks/useConstellationLOD.ts +0 -76
  344. package/packages/graph/src/hooks/useDecay.ts +0 -37
  345. package/packages/graph/src/hooks/useExport.ts +0 -165
  346. package/packages/graph/src/hooks/useGraph.ts +0 -69
  347. package/packages/graph/src/hooks/useKeyboardNav.ts +0 -122
  348. package/packages/graph/src/hooks/useLayout.ts +0 -45
  349. package/packages/graph/src/hooks/useMotion.ts +0 -120
  350. package/packages/graph/src/hooks/usePulse.ts +0 -58
  351. package/packages/graph/src/hooks/useSearch.ts +0 -71
  352. package/packages/graph/src/lib/constellation.ts +0 -107
  353. package/packages/graph/src/lib/export-utils.ts +0 -48
  354. package/packages/graph/src/lib/gesture-detector.ts +0 -123
  355. package/packages/graph/src/lib/layout.worker.ts +0 -153
  356. package/packages/graph/src/lib/motion-controller.ts +0 -83
  357. package/packages/graph/src/lib/profile-card.ts +0 -122
  358. package/packages/graph/src/main.tsx +0 -4
  359. package/packages/graph/src/stores/graph-store.ts +0 -155
  360. package/packages/graph/success.png +0 -0
  361. package/packages/graph/test-click.mjs +0 -49
  362. package/packages/graph/test-explore.mjs +0 -102
  363. package/packages/graph/test-final.mjs +0 -61
  364. package/packages/graph/test-graph.mjs +0 -139
  365. package/packages/graph/test-hover.mjs +0 -48
  366. package/packages/graph/test-pulse.mjs +0 -68
  367. package/packages/graph/test-screenshot.mjs +0 -56
  368. package/packages/graph/test-v2.mjs +0 -97
  369. package/packages/graph/tsconfig.tsbuildinfo +0 -1
  370. package/packages/graph/vite.config.ts +0 -15
  371. package/packages/sync/.env.example +0 -11
  372. package/packages/sync/.sync-state.json +0 -317
  373. package/packages/sync/.upload-state.json +0 -1009
  374. package/packages/sync/create-stella-network-notion.mjs +0 -151
  375. package/packages/sync/create-stellavault-project-notion.mjs +0 -322
  376. package/packages/sync/logs/sync-2026-03-28.log +0 -6
  377. package/packages/sync/logs/sync-2026-03-29.log +0 -12
  378. package/packages/sync/logs/sync-2026-03-30.log +0 -6
  379. package/packages/sync/logs/sync-2026-03-31.log +0 -6
  380. package/packages/sync/logs/sync-2026-04-01.log +0 -6
  381. package/packages/sync/logs/sync-2026-04-02.log +0 -6
  382. package/packages/sync/package-lock.json +0 -373
  383. package/packages/sync/package.json +0 -16
  384. package/packages/sync/run-sync.bat +0 -18
  385. package/packages/sync/run-sync.mjs +0 -46
  386. package/packages/sync/setup-scheduler.mjs +0 -119
  387. package/packages/sync/structured-sync.mjs +0 -187
  388. package/packages/sync/sync-to-obsidian.mjs +0 -264
  389. package/packages/sync/upload-pdca-to-notion.mjs +0 -495
  390. 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