xtctx 0.3.2

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 (217) hide show
  1. package/CHANGELOG.md +122 -0
  2. package/LICENSE +21 -0
  3. package/README.md +149 -0
  4. package/dist/src/api/routes/config.d.ts +4 -0
  5. package/dist/src/api/routes/config.d.ts.map +1 -0
  6. package/dist/src/api/routes/config.js +61 -0
  7. package/dist/src/api/routes/config.js.map +1 -0
  8. package/dist/src/api/routes/knowledge.d.ts +4 -0
  9. package/dist/src/api/routes/knowledge.d.ts.map +1 -0
  10. package/dist/src/api/routes/knowledge.js +40 -0
  11. package/dist/src/api/routes/knowledge.js.map +1 -0
  12. package/dist/src/api/routes/search.d.ts +7 -0
  13. package/dist/src/api/routes/search.d.ts.map +1 -0
  14. package/dist/src/api/routes/search.js +108 -0
  15. package/dist/src/api/routes/search.js.map +1 -0
  16. package/dist/src/api/routes/sources.d.ts +12 -0
  17. package/dist/src/api/routes/sources.d.ts.map +1 -0
  18. package/dist/src/api/routes/sources.js +70 -0
  19. package/dist/src/api/routes/sources.js.map +1 -0
  20. package/dist/src/api/server.d.ts +26 -0
  21. package/dist/src/api/server.d.ts.map +1 -0
  22. package/dist/src/api/server.js +312 -0
  23. package/dist/src/api/server.js.map +1 -0
  24. package/dist/src/cli/index.d.ts +3 -0
  25. package/dist/src/cli/index.d.ts.map +1 -0
  26. package/dist/src/cli/index.js +58 -0
  27. package/dist/src/cli/index.js.map +1 -0
  28. package/dist/src/cli/ingest.d.ts +6 -0
  29. package/dist/src/cli/ingest.d.ts.map +1 -0
  30. package/dist/src/cli/ingest.js +11 -0
  31. package/dist/src/cli/ingest.js.map +1 -0
  32. package/dist/src/cli/init.d.ts +6 -0
  33. package/dist/src/cli/init.d.ts.map +1 -0
  34. package/dist/src/cli/init.js +105 -0
  35. package/dist/src/cli/init.js.map +1 -0
  36. package/dist/src/cli/serve.d.ts +7 -0
  37. package/dist/src/cli/serve.d.ts.map +1 -0
  38. package/dist/src/cli/serve.js +100 -0
  39. package/dist/src/cli/serve.js.map +1 -0
  40. package/dist/src/cli/sync.d.ts +5 -0
  41. package/dist/src/cli/sync.d.ts.map +1 -0
  42. package/dist/src/cli/sync.js +13 -0
  43. package/dist/src/cli/sync.js.map +1 -0
  44. package/dist/src/compaction/pipeline.d.ts +19 -0
  45. package/dist/src/compaction/pipeline.d.ts.map +1 -0
  46. package/dist/src/compaction/pipeline.js +37 -0
  47. package/dist/src/compaction/pipeline.js.map +1 -0
  48. package/dist/src/compaction/providers/cli.d.ts +13 -0
  49. package/dist/src/compaction/providers/cli.d.ts.map +1 -0
  50. package/dist/src/compaction/providers/cli.js +60 -0
  51. package/dist/src/compaction/providers/cli.js.map +1 -0
  52. package/dist/src/compaction/rule-based.d.ts +8 -0
  53. package/dist/src/compaction/rule-based.d.ts.map +1 -0
  54. package/dist/src/compaction/rule-based.js +120 -0
  55. package/dist/src/compaction/rule-based.js.map +1 -0
  56. package/dist/src/config/loader.d.ts +12 -0
  57. package/dist/src/config/loader.d.ts.map +1 -0
  58. package/dist/src/config/loader.js +76 -0
  59. package/dist/src/config/loader.js.map +1 -0
  60. package/dist/src/config/mappings/claude-code.d.ts +3 -0
  61. package/dist/src/config/mappings/claude-code.d.ts.map +1 -0
  62. package/dist/src/config/mappings/claude-code.js +31 -0
  63. package/dist/src/config/mappings/claude-code.js.map +1 -0
  64. package/dist/src/config/mappings/codex.d.ts +3 -0
  65. package/dist/src/config/mappings/codex.d.ts.map +1 -0
  66. package/dist/src/config/mappings/codex.js +31 -0
  67. package/dist/src/config/mappings/codex.js.map +1 -0
  68. package/dist/src/config/mappings/copilot.d.ts +3 -0
  69. package/dist/src/config/mappings/copilot.d.ts.map +1 -0
  70. package/dist/src/config/mappings/copilot.js +33 -0
  71. package/dist/src/config/mappings/copilot.js.map +1 -0
  72. package/dist/src/config/mappings/cursor.d.ts +3 -0
  73. package/dist/src/config/mappings/cursor.d.ts.map +1 -0
  74. package/dist/src/config/mappings/cursor.js +29 -0
  75. package/dist/src/config/mappings/cursor.js.map +1 -0
  76. package/dist/src/config/sync.d.ts +13 -0
  77. package/dist/src/config/sync.d.ts.map +1 -0
  78. package/dist/src/config/sync.js +96 -0
  79. package/dist/src/config/sync.js.map +1 -0
  80. package/dist/src/ingestion/coordinator.d.ts +37 -0
  81. package/dist/src/ingestion/coordinator.d.ts.map +1 -0
  82. package/dist/src/ingestion/coordinator.js +127 -0
  83. package/dist/src/ingestion/coordinator.js.map +1 -0
  84. package/dist/src/ingestion/daemon.d.ts +17 -0
  85. package/dist/src/ingestion/daemon.d.ts.map +1 -0
  86. package/dist/src/ingestion/daemon.js +35 -0
  87. package/dist/src/ingestion/daemon.js.map +1 -0
  88. package/dist/src/ingestion/watcher.d.ts +19 -0
  89. package/dist/src/ingestion/watcher.d.ts.map +1 -0
  90. package/dist/src/ingestion/watcher.js +70 -0
  91. package/dist/src/ingestion/watcher.js.map +1 -0
  92. package/dist/src/knowledge/autotag.d.ts +3 -0
  93. package/dist/src/knowledge/autotag.d.ts.map +1 -0
  94. package/dist/src/knowledge/autotag.js +24 -0
  95. package/dist/src/knowledge/autotag.js.map +1 -0
  96. package/dist/src/knowledge/dedup.d.ts +7 -0
  97. package/dist/src/knowledge/dedup.d.ts.map +1 -0
  98. package/dist/src/knowledge/dedup.js +15 -0
  99. package/dist/src/knowledge/dedup.js.map +1 -0
  100. package/dist/src/knowledge/repository.d.ts +12 -0
  101. package/dist/src/knowledge/repository.d.ts.map +1 -0
  102. package/dist/src/knowledge/repository.js +74 -0
  103. package/dist/src/knowledge/repository.js.map +1 -0
  104. package/dist/src/mcp/server.d.ts +31 -0
  105. package/dist/src/mcp/server.d.ts.map +1 -0
  106. package/dist/src/mcp/server.js +323 -0
  107. package/dist/src/mcp/server.js.map +1 -0
  108. package/dist/src/mcp/tools/config.d.ts +36 -0
  109. package/dist/src/mcp/tools/config.d.ts.map +1 -0
  110. package/dist/src/mcp/tools/config.js +54 -0
  111. package/dist/src/mcp/tools/config.js.map +1 -0
  112. package/dist/src/mcp/tools/knowledge.d.ts +17 -0
  113. package/dist/src/mcp/tools/knowledge.d.ts.map +1 -0
  114. package/dist/src/mcp/tools/knowledge.js +46 -0
  115. package/dist/src/mcp/tools/knowledge.js.map +1 -0
  116. package/dist/src/mcp/tools/search.d.ts +22 -0
  117. package/dist/src/mcp/tools/search.d.ts.map +1 -0
  118. package/dist/src/mcp/tools/search.js +30 -0
  119. package/dist/src/mcp/tools/search.js.map +1 -0
  120. package/dist/src/mcp/tools/sessions.d.ts +38 -0
  121. package/dist/src/mcp/tools/sessions.d.ts.map +1 -0
  122. package/dist/src/mcp/tools/sessions.js +55 -0
  123. package/dist/src/mcp/tools/sessions.js.map +1 -0
  124. package/dist/src/mcp/tools/write.d.ts +38 -0
  125. package/dist/src/mcp/tools/write.d.ts.map +1 -0
  126. package/dist/src/mcp/tools/write.js +97 -0
  127. package/dist/src/mcp/tools/write.js.map +1 -0
  128. package/dist/src/runtime/ingestion.d.ts +17 -0
  129. package/dist/src/runtime/ingestion.d.ts.map +1 -0
  130. package/dist/src/runtime/ingestion.js +106 -0
  131. package/dist/src/runtime/ingestion.js.map +1 -0
  132. package/dist/src/runtime/services.d.ts +46 -0
  133. package/dist/src/runtime/services.d.ts.map +1 -0
  134. package/dist/src/runtime/services.js +227 -0
  135. package/dist/src/runtime/services.js.map +1 -0
  136. package/dist/src/scrapers/base.d.ts +10 -0
  137. package/dist/src/scrapers/base.d.ts.map +1 -0
  138. package/dist/src/scrapers/base.js +34 -0
  139. package/dist/src/scrapers/base.js.map +1 -0
  140. package/dist/src/scrapers/claude-code.d.ts +16 -0
  141. package/dist/src/scrapers/claude-code.d.ts.map +1 -0
  142. package/dist/src/scrapers/claude-code.js +120 -0
  143. package/dist/src/scrapers/claude-code.js.map +1 -0
  144. package/dist/src/scrapers/codex.d.ts +17 -0
  145. package/dist/src/scrapers/codex.d.ts.map +1 -0
  146. package/dist/src/scrapers/codex.js +179 -0
  147. package/dist/src/scrapers/codex.js.map +1 -0
  148. package/dist/src/scrapers/copilot.d.ts +17 -0
  149. package/dist/src/scrapers/copilot.d.ts.map +1 -0
  150. package/dist/src/scrapers/copilot.js +198 -0
  151. package/dist/src/scrapers/copilot.js.map +1 -0
  152. package/dist/src/scrapers/cursor.d.ts +18 -0
  153. package/dist/src/scrapers/cursor.d.ts.map +1 -0
  154. package/dist/src/scrapers/cursor.js +218 -0
  155. package/dist/src/scrapers/cursor.js.map +1 -0
  156. package/dist/src/scrapers/gemini.d.ts +17 -0
  157. package/dist/src/scrapers/gemini.d.ts.map +1 -0
  158. package/dist/src/scrapers/gemini.js +245 -0
  159. package/dist/src/scrapers/gemini.js.map +1 -0
  160. package/dist/src/scrapers/registry.d.ts +9 -0
  161. package/dist/src/scrapers/registry.d.ts.map +1 -0
  162. package/dist/src/scrapers/registry.js +22 -0
  163. package/dist/src/scrapers/registry.js.map +1 -0
  164. package/dist/src/store/embeddings.d.ts +9 -0
  165. package/dist/src/store/embeddings.d.ts.map +1 -0
  166. package/dist/src/store/embeddings.js +28 -0
  167. package/dist/src/store/embeddings.js.map +1 -0
  168. package/dist/src/store/lance.d.ts +25 -0
  169. package/dist/src/store/lance.d.ts.map +1 -0
  170. package/dist/src/store/lance.js +74 -0
  171. package/dist/src/store/lance.js.map +1 -0
  172. package/dist/src/store/search.d.ts +18 -0
  173. package/dist/src/store/search.d.ts.map +1 -0
  174. package/dist/src/store/search.js +55 -0
  175. package/dist/src/store/search.js.map +1 -0
  176. package/dist/src/types/compaction.d.ts +29 -0
  177. package/dist/src/types/compaction.d.ts.map +1 -0
  178. package/dist/src/types/compaction.js +2 -0
  179. package/dist/src/types/compaction.js.map +1 -0
  180. package/dist/src/types/config.d.ts +45 -0
  181. package/dist/src/types/config.d.ts.map +1 -0
  182. package/dist/src/types/config.js +2 -0
  183. package/dist/src/types/config.js.map +1 -0
  184. package/dist/src/types/context.d.ts +33 -0
  185. package/dist/src/types/context.d.ts.map +1 -0
  186. package/dist/src/types/context.js +18 -0
  187. package/dist/src/types/context.js.map +1 -0
  188. package/dist/src/types/index.d.ts +5 -0
  189. package/dist/src/types/index.d.ts.map +1 -0
  190. package/dist/src/types/index.js +5 -0
  191. package/dist/src/types/index.js.map +1 -0
  192. package/dist/src/types/scraper.d.ts +70 -0
  193. package/dist/src/types/scraper.d.ts.map +1 -0
  194. package/dist/src/types/scraper.js +2 -0
  195. package/dist/src/types/scraper.js.map +1 -0
  196. package/dist/src/utils/retry.d.ts +11 -0
  197. package/dist/src/utils/retry.d.ts.map +1 -0
  198. package/dist/src/utils/retry.js +46 -0
  199. package/dist/src/utils/retry.js.map +1 -0
  200. package/dist/src/utils/shutdown.d.ts +25 -0
  201. package/dist/src/utils/shutdown.d.ts.map +1 -0
  202. package/dist/src/utils/shutdown.js +56 -0
  203. package/dist/src/utils/shutdown.js.map +1 -0
  204. package/dist/web/apple-touch-icon.png +0 -0
  205. package/dist/web/assets/index-Nuadr5ox.css +1 -0
  206. package/dist/web/assets/index-aA0u8eXA.js +3504 -0
  207. package/dist/web/assets/primeicons-C6QP2o4f.woff2 +0 -0
  208. package/dist/web/assets/primeicons-DMOk5skT.eot +0 -0
  209. package/dist/web/assets/primeicons-Dr5RGzOO.svg +345 -0
  210. package/dist/web/assets/primeicons-MpK4pl85.ttf +0 -0
  211. package/dist/web/assets/primeicons-WjwUDZjB.woff +0 -0
  212. package/dist/web/favicon.ico +0 -0
  213. package/dist/web/favicon.svg +21 -0
  214. package/dist/web/index.html +21 -0
  215. package/dist/web/site.webmanifest +19 -0
  216. package/dist/web/vite.svg +1 -0
  217. package/package.json +69 -0
Binary file
@@ -0,0 +1,21 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
2
+ <defs>
3
+ <linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
4
+ <stop offset="0%" stop-color="#0f172a" />
5
+ <stop offset="100%" stop-color="#1d4ed8" />
6
+ </linearGradient>
7
+ <linearGradient id="stroke" x1="0" y1="0" x2="1" y2="1">
8
+ <stop offset="0%" stop-color="#22d3ee" />
9
+ <stop offset="100%" stop-color="#f59e0b" />
10
+ </linearGradient>
11
+ </defs>
12
+ <rect width="64" height="64" rx="14" fill="url(#bg)" />
13
+ <path
14
+ d="M18 18 L28 18 L32 26 L36 18 L46 18 L36 32 L46 46 L36 46 L32 38 L28 46 L18 46 L28 32 Z"
15
+ fill="none"
16
+ stroke="url(#stroke)"
17
+ stroke-width="4"
18
+ stroke-linecap="round"
19
+ stroke-linejoin="round"
20
+ />
21
+ </svg>
@@ -0,0 +1,21 @@
1
+ <!doctype html>
2
+ <html lang="en" class="app-dark">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/x-icon" href="/favicon.ico" />
6
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
7
+ <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
8
+ <link rel="manifest" href="/site.webmanifest" />
9
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
10
+ <meta
11
+ name="description"
12
+ content="xtctx web UI for cross-tool search, knowledge, sources, and configuration."
13
+ />
14
+ <title>xtctx Web</title>
15
+ <script type="module" crossorigin src="/assets/index-aA0u8eXA.js"></script>
16
+ <link rel="stylesheet" crossorigin href="/assets/index-Nuadr5ox.css">
17
+ </head>
18
+ <body>
19
+ <div id="app"></div>
20
+ </body>
21
+ </html>
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "xtctx",
3
+ "short_name": "xtctx",
4
+ "icons": [
5
+ {
6
+ "src": "/favicon.svg",
7
+ "sizes": "any",
8
+ "type": "image/svg+xml"
9
+ },
10
+ {
11
+ "src": "/apple-touch-icon.png",
12
+ "sizes": "180x180",
13
+ "type": "image/png"
14
+ }
15
+ ],
16
+ "theme_color": "#0b1020",
17
+ "background_color": "#0b1020",
18
+ "display": "standalone"
19
+ }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
package/package.json ADDED
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "xtctx",
3
+ "version": "0.3.2",
4
+ "description": "Cross-tool context for AI coding agents",
5
+ "type": "module",
6
+ "bin": {
7
+ "xtctx": "dist/src/cli/index.js"
8
+ },
9
+ "scripts": {
10
+ "build": "tsc",
11
+ "build:bundle-web": "npm run web:build && npm run web:copy-dist",
12
+ "dev": "tsx watch src/cli/index.ts",
13
+ "test": "vitest run",
14
+ "test:security": "vitest run tests/api/security.test.ts",
15
+ "test:integration": "vitest run tests/integration",
16
+ "test:watch": "vitest",
17
+ "security:checklist": "node scripts/verify-security-checklist.mjs",
18
+ "lint": "eslint src/ tests/",
19
+ "mcp": "tsx src/mcp/server.ts",
20
+ "api": "tsx src/api/server.ts",
21
+ "web:dev": "npm --prefix web run dev",
22
+ "web:build": "npm --prefix web run build",
23
+ "web:preview": "npm --prefix web run preview",
24
+ "web:copy-dist": "node scripts/copy-web-dist.mjs",
25
+ "landing:dev": "npm --prefix landing run dev",
26
+ "landing:build": "npm --prefix landing run build",
27
+ "landing:preview": "npm --prefix landing run preview",
28
+ "prepack": "npm run build && npm run build:bundle-web",
29
+ "smoke:cli": "node dist/src/cli/index.js --help",
30
+ "verify:release": "npm test && npm run test:security && npm run security:checklist && npm run build && npm run build:bundle-web && npm run landing:build && npm run smoke:cli"
31
+ },
32
+ "dependencies": {
33
+ "@lancedb/lancedb": "^0.13.0",
34
+ "@modelcontextprotocol/sdk": "^1.12.0",
35
+ "@xenova/transformers": "^2.17.2",
36
+ "apache-arrow": "^17.0.0",
37
+ "better-sqlite3": "^11.0.0",
38
+ "chokidar": "^4.0.0",
39
+ "commander": "^13.0.0",
40
+ "express-rate-limit": "^7.5.0",
41
+ "express": "^5.0.0",
42
+ "glob": "^11.0.0",
43
+ "helmet": "^8.1.0",
44
+ "yaml": "^2.7.0"
45
+ },
46
+ "devDependencies": {
47
+ "@types/better-sqlite3": "^7.6.0",
48
+ "@types/express": "^5.0.0",
49
+ "@types/node": "^22.0.0",
50
+ "tsx": "^4.19.0",
51
+ "typescript": "^5.7.0",
52
+ "vitest": "^3.0.0"
53
+ },
54
+ "engines": {
55
+ "node": ">=20.0.0"
56
+ },
57
+ "repository": {
58
+ "type": "git",
59
+ "url": "git+https://github.com/fstubner/xtctx.git"
60
+ },
61
+ "files": [
62
+ "dist",
63
+ "README.md",
64
+ "LICENSE",
65
+ "CHANGELOG.md"
66
+ ],
67
+ "license": "MIT",
68
+ "homepage": "https://xtctx.com"
69
+ }