@zvec/zvec-grep 0.2.1 → 0.3.0-rc.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 (406) hide show
  1. package/README.md +87 -238
  2. package/bin/zg.exe +3 -0
  3. package/install.cjs +510 -0
  4. package/package.json +22 -72
  5. package/platforms.json +92 -0
  6. package/plugins.cjs +183 -0
  7. package/README_CN.md +0 -230
  8. package/dist/authorization/index.d.ts +0 -7
  9. package/dist/authorization/index.js +0 -7
  10. package/dist/authorization/index.js.map +0 -1
  11. package/dist/authorization/manager.d.ts +0 -8
  12. package/dist/authorization/manager.js +0 -19
  13. package/dist/authorization/manager.js.map +0 -1
  14. package/dist/authorization/operation.d.ts +0 -7
  15. package/dist/authorization/operation.js +0 -50
  16. package/dist/authorization/operation.js.map +0 -1
  17. package/dist/authorization/planner.d.ts +0 -21
  18. package/dist/authorization/planner.js +0 -97
  19. package/dist/authorization/planner.js.map +0 -1
  20. package/dist/authorization/prompt.d.ts +0 -12
  21. package/dist/authorization/prompt.js +0 -63
  22. package/dist/authorization/prompt.js.map +0 -1
  23. package/dist/authorization/store.d.ts +0 -20
  24. package/dist/authorization/store.js +0 -251
  25. package/dist/authorization/store.js.map +0 -1
  26. package/dist/authorization/target.d.ts +0 -15
  27. package/dist/authorization/target.js +0 -49
  28. package/dist/authorization/target.js.map +0 -1
  29. package/dist/authorization/types.d.ts +0 -61
  30. package/dist/authorization/types.js +0 -2
  31. package/dist/authorization/types.js.map +0 -1
  32. package/dist/cli/args.d.ts +0 -5
  33. package/dist/cli/args.js +0 -1207
  34. package/dist/cli/args.js.map +0 -1
  35. package/dist/cli/auth.d.ts +0 -21
  36. package/dist/cli/auth.js +0 -209
  37. package/dist/cli/auth.js.map +0 -1
  38. package/dist/cli/commands.d.ts +0 -4
  39. package/dist/cli/commands.js +0 -697
  40. package/dist/cli/commands.js.map +0 -1
  41. package/dist/cli/errors.d.ts +0 -6
  42. package/dist/cli/errors.js +0 -98
  43. package/dist/cli/errors.js.map +0 -1
  44. package/dist/cli/format/context.d.ts +0 -9
  45. package/dist/cli/format/context.js +0 -786
  46. package/dist/cli/format/context.js.map +0 -1
  47. package/dist/cli/format/debug.d.ts +0 -4
  48. package/dist/cli/format/debug.js +0 -60
  49. package/dist/cli/format/debug.js.map +0 -1
  50. package/dist/cli/format/highlight.d.ts +0 -3
  51. package/dist/cli/format/highlight.js +0 -106
  52. package/dist/cli/format/highlight.js.map +0 -1
  53. package/dist/cli/format/progress.d.ts +0 -13
  54. package/dist/cli/format/progress.js +0 -290
  55. package/dist/cli/format/progress.js.map +0 -1
  56. package/dist/cli/format/range.d.ts +0 -3
  57. package/dist/cli/format/range.js +0 -24
  58. package/dist/cli/format/range.js.map +0 -1
  59. package/dist/cli/format/status.d.ts +0 -81
  60. package/dist/cli/format/status.js +0 -512
  61. package/dist/cli/format/status.js.map +0 -1
  62. package/dist/cli/help.d.ts +0 -1
  63. package/dist/cli/help.js +0 -524
  64. package/dist/cli/help.js.map +0 -1
  65. package/dist/cli/index.d.ts +0 -2
  66. package/dist/cli/index.js +0 -32
  67. package/dist/cli/index.js.map +0 -1
  68. package/dist/cli/install.d.ts +0 -4
  69. package/dist/cli/install.js +0 -1661
  70. package/dist/cli/install.js.map +0 -1
  71. package/dist/cli/managed-rg.d.ts +0 -10
  72. package/dist/cli/managed-rg.js +0 -329
  73. package/dist/cli/managed-rg.js.map +0 -1
  74. package/dist/cli/server-search.d.ts +0 -3
  75. package/dist/cli/server-search.js +0 -12
  76. package/dist/cli/server-search.js.map +0 -1
  77. package/dist/cli/types.d.ts +0 -87
  78. package/dist/cli/types.js +0 -10
  79. package/dist/cli/types.js.map +0 -1
  80. package/dist/cli/version.d.ts +0 -1
  81. package/dist/cli/version.js +0 -13
  82. package/dist/cli/version.js.map +0 -1
  83. package/dist/client/daemon-client.d.ts +0 -31
  84. package/dist/client/daemon-client.js +0 -203
  85. package/dist/client/daemon-client.js.map +0 -1
  86. package/dist/client/mode-router.d.ts +0 -9
  87. package/dist/client/mode-router.js +0 -28
  88. package/dist/client/mode-router.js.map +0 -1
  89. package/dist/client/search-policy.d.ts +0 -11
  90. package/dist/client/search-policy.js +0 -15
  91. package/dist/client/search-policy.js.map +0 -1
  92. package/dist/daemon/backend.d.ts +0 -78
  93. package/dist/daemon/backend.js +0 -1085
  94. package/dist/daemon/backend.js.map +0 -1
  95. package/dist/daemon/change-set.d.ts +0 -30
  96. package/dist/daemon/change-set.js +0 -163
  97. package/dist/daemon/change-set.js.map +0 -1
  98. package/dist/daemon/config.d.ts +0 -24
  99. package/dist/daemon/config.js +0 -88
  100. package/dist/daemon/config.js.map +0 -1
  101. package/dist/daemon/errors.d.ts +0 -5
  102. package/dist/daemon/errors.js +0 -11
  103. package/dist/daemon/errors.js.map +0 -1
  104. package/dist/daemon/http-server.d.ts +0 -30
  105. package/dist/daemon/http-server.js +0 -288
  106. package/dist/daemon/http-server.js.map +0 -1
  107. package/dist/daemon/index-coordinator.d.ts +0 -22
  108. package/dist/daemon/index-coordinator.js +0 -55
  109. package/dist/daemon/index-coordinator.js.map +0 -1
  110. package/dist/daemon/job-scheduler.d.ts +0 -70
  111. package/dist/daemon/job-scheduler.js +0 -366
  112. package/dist/daemon/job-scheduler.js.map +0 -1
  113. package/dist/daemon/logger.d.ts +0 -9
  114. package/dist/daemon/logger.js +0 -53
  115. package/dist/daemon/logger.js.map +0 -1
  116. package/dist/daemon/model-pool.d.ts +0 -45
  117. package/dist/daemon/model-pool.js +0 -187
  118. package/dist/daemon/model-pool.js.map +0 -1
  119. package/dist/daemon/root-lease.d.ts +0 -14
  120. package/dist/daemon/root-lease.js +0 -188
  121. package/dist/daemon/root-lease.js.map +0 -1
  122. package/dist/daemon/root-runtime.d.ts +0 -79
  123. package/dist/daemon/root-runtime.js +0 -337
  124. package/dist/daemon/root-runtime.js.map +0 -1
  125. package/dist/daemon/runtime-manager.d.ts +0 -46
  126. package/dist/daemon/runtime-manager.js +0 -246
  127. package/dist/daemon/runtime-manager.js.map +0 -1
  128. package/dist/daemon/runtime.d.ts +0 -12
  129. package/dist/daemon/runtime.js +0 -102
  130. package/dist/daemon/runtime.js.map +0 -1
  131. package/dist/daemon/server-controller.d.ts +0 -39
  132. package/dist/daemon/server-controller.js +0 -327
  133. package/dist/daemon/server-controller.js.map +0 -1
  134. package/dist/daemon/watch-manager.d.ts +0 -55
  135. package/dist/daemon/watch-manager.js +0 -340
  136. package/dist/daemon/watch-manager.js.map +0 -1
  137. package/dist/daemon/workspace-read-session-cache.d.ts +0 -31
  138. package/dist/daemon/workspace-read-session-cache.js +0 -115
  139. package/dist/daemon/workspace-read-session-cache.js.map +0 -1
  140. package/dist/engine/code-formats.d.ts +0 -3
  141. package/dist/engine/code-formats.js +0 -14
  142. package/dist/engine/code-formats.js.map +0 -1
  143. package/dist/engine/config.d.ts +0 -50
  144. package/dist/engine/config.js +0 -321
  145. package/dist/engine/config.js.map +0 -1
  146. package/dist/engine/errors.d.ts +0 -19
  147. package/dist/engine/errors.js +0 -40
  148. package/dist/engine/errors.js.map +0 -1
  149. package/dist/engine/extraction/code/adapter.d.ts +0 -19
  150. package/dist/engine/extraction/code/adapter.js +0 -24
  151. package/dist/engine/extraction/code/adapter.js.map +0 -1
  152. package/dist/engine/extraction/code/extractor.d.ts +0 -13
  153. package/dist/engine/extraction/code/extractor.js +0 -696
  154. package/dist/engine/extraction/code/extractor.js.map +0 -1
  155. package/dist/engine/extraction/code/families/c-family.d.ts +0 -2
  156. package/dist/engine/extraction/code/families/c-family.js +0 -122
  157. package/dist/engine/extraction/code/families/c-family.js.map +0 -1
  158. package/dist/engine/extraction/code/families/js-ts.d.ts +0 -12
  159. package/dist/engine/extraction/code/families/js-ts.js +0 -118
  160. package/dist/engine/extraction/code/families/js-ts.js.map +0 -1
  161. package/dist/engine/extraction/code/families/metadata.d.ts +0 -8
  162. package/dist/engine/extraction/code/families/metadata.js +0 -86
  163. package/dist/engine/extraction/code/families/metadata.js.map +0 -1
  164. package/dist/engine/extraction/code/families/name-field.d.ts +0 -3
  165. package/dist/engine/extraction/code/families/name-field.js +0 -22
  166. package/dist/engine/extraction/code/families/name-field.js.map +0 -1
  167. package/dist/engine/extraction/code/languages/c.d.ts +0 -1
  168. package/dist/engine/extraction/code/languages/c.js +0 -12
  169. package/dist/engine/extraction/code/languages/c.js.map +0 -1
  170. package/dist/engine/extraction/code/languages/cpp.d.ts +0 -1
  171. package/dist/engine/extraction/code/languages/cpp.js +0 -18
  172. package/dist/engine/extraction/code/languages/cpp.js.map +0 -1
  173. package/dist/engine/extraction/code/languages/go.d.ts +0 -2
  174. package/dist/engine/extraction/code/languages/go.js +0 -70
  175. package/dist/engine/extraction/code/languages/go.js.map +0 -1
  176. package/dist/engine/extraction/code/languages/java.d.ts +0 -1
  177. package/dist/engine/extraction/code/languages/java.js +0 -17
  178. package/dist/engine/extraction/code/languages/java.js.map +0 -1
  179. package/dist/engine/extraction/code/languages/javascript.d.ts +0 -2
  180. package/dist/engine/extraction/code/languages/javascript.js +0 -23
  181. package/dist/engine/extraction/code/languages/javascript.js.map +0 -1
  182. package/dist/engine/extraction/code/languages/python.d.ts +0 -2
  183. package/dist/engine/extraction/code/languages/python.js +0 -52
  184. package/dist/engine/extraction/code/languages/python.js.map +0 -1
  185. package/dist/engine/extraction/code/languages/rust.d.ts +0 -2
  186. package/dist/engine/extraction/code/languages/rust.js +0 -25
  187. package/dist/engine/extraction/code/languages/rust.js.map +0 -1
  188. package/dist/engine/extraction/code/languages/typescript.d.ts +0 -2
  189. package/dist/engine/extraction/code/languages/typescript.js +0 -37
  190. package/dist/engine/extraction/code/languages/typescript.js.map +0 -1
  191. package/dist/engine/extraction/code/tree-sitter/grammar.d.ts +0 -4
  192. package/dist/engine/extraction/code/tree-sitter/grammar.js +0 -49
  193. package/dist/engine/extraction/code/tree-sitter/grammar.js.map +0 -1
  194. package/dist/engine/extraction/code/tree-sitter/nodes.d.ts +0 -3
  195. package/dist/engine/extraction/code/tree-sitter/nodes.js +0 -27
  196. package/dist/engine/extraction/code/tree-sitter/nodes.js.map +0 -1
  197. package/dist/engine/extraction/code/tree-sitter/parser.d.ts +0 -2
  198. package/dist/engine/extraction/code/tree-sitter/parser.js +0 -31
  199. package/dist/engine/extraction/code/tree-sitter/parser.js.map +0 -1
  200. package/dist/engine/extraction/ids.d.ts +0 -1
  201. package/dist/engine/extraction/ids.js +0 -5
  202. package/dist/engine/extraction/ids.js.map +0 -1
  203. package/dist/engine/extraction/image/extractor.d.ts +0 -5
  204. package/dist/engine/extraction/image/extractor.js +0 -35
  205. package/dist/engine/extraction/image/extractor.js.map +0 -1
  206. package/dist/engine/extraction/index.d.ts +0 -4
  207. package/dist/engine/extraction/index.js +0 -3
  208. package/dist/engine/extraction/index.js.map +0 -1
  209. package/dist/engine/extraction/markdown/extractor.d.ts +0 -7
  210. package/dist/engine/extraction/markdown/extractor.js +0 -362
  211. package/dist/engine/extraction/markdown/extractor.js.map +0 -1
  212. package/dist/engine/extraction/runtime.d.ts +0 -9
  213. package/dist/engine/extraction/runtime.js +0 -37
  214. package/dist/engine/extraction/runtime.js.map +0 -1
  215. package/dist/engine/extraction/source.d.ts +0 -18
  216. package/dist/engine/extraction/source.js +0 -22
  217. package/dist/engine/extraction/source.js.map +0 -1
  218. package/dist/engine/extraction/text/extractor.d.ts +0 -7
  219. package/dist/engine/extraction/text/extractor.js +0 -168
  220. package/dist/engine/extraction/text/extractor.js.map +0 -1
  221. package/dist/engine/extraction/types.d.ts +0 -4
  222. package/dist/engine/extraction/types.js +0 -2
  223. package/dist/engine/extraction/types.js.map +0 -1
  224. package/dist/engine/extraction/vector-content.d.ts +0 -5
  225. package/dist/engine/extraction/vector-content.js +0 -83
  226. package/dist/engine/extraction/vector-content.js.map +0 -1
  227. package/dist/engine/file-size-policy.d.ts +0 -6
  228. package/dist/engine/file-size-policy.js +0 -20
  229. package/dist/engine/file-size-policy.js.map +0 -1
  230. package/dist/engine/file-type.d.ts +0 -15
  231. package/dist/engine/file-type.js +0 -152
  232. package/dist/engine/file-type.js.map +0 -1
  233. package/dist/engine/index-status.d.ts +0 -9
  234. package/dist/engine/index-status.js +0 -38
  235. package/dist/engine/index-status.js.map +0 -1
  236. package/dist/engine/manifest.d.ts +0 -13
  237. package/dist/engine/manifest.js +0 -124
  238. package/dist/engine/manifest.js.map +0 -1
  239. package/dist/engine/models/backends/llama-cpp.d.ts +0 -99
  240. package/dist/engine/models/backends/llama-cpp.js +0 -511
  241. package/dist/engine/models/backends/llama-cpp.js.map +0 -1
  242. package/dist/engine/models/backends/model2vec-runtime.d.ts +0 -63
  243. package/dist/engine/models/backends/model2vec-runtime.js +0 -112
  244. package/dist/engine/models/backends/model2vec-runtime.js.map +0 -1
  245. package/dist/engine/models/backends/model2vec-tokenizer.d.ts +0 -2
  246. package/dist/engine/models/backends/model2vec-tokenizer.js +0 -42
  247. package/dist/engine/models/backends/model2vec-tokenizer.js.map +0 -1
  248. package/dist/engine/models/backends/model2vec-worker-pool.d.ts +0 -25
  249. package/dist/engine/models/backends/model2vec-worker-pool.js +0 -264
  250. package/dist/engine/models/backends/model2vec-worker-pool.js.map +0 -1
  251. package/dist/engine/models/backends/model2vec-worker.d.ts +0 -1
  252. package/dist/engine/models/backends/model2vec-worker.js +0 -41
  253. package/dist/engine/models/backends/model2vec-worker.js.map +0 -1
  254. package/dist/engine/models/backends/model2vec.d.ts +0 -40
  255. package/dist/engine/models/backends/model2vec.js +0 -311
  256. package/dist/engine/models/backends/model2vec.js.map +0 -1
  257. package/dist/engine/models/backends/qwen.d.ts +0 -44
  258. package/dist/engine/models/backends/qwen.js +0 -411
  259. package/dist/engine/models/backends/qwen.js.map +0 -1
  260. package/dist/engine/models/backends/transformers-js.d.ts +0 -87
  261. package/dist/engine/models/backends/transformers-js.js +0 -316
  262. package/dist/engine/models/backends/transformers-js.js.map +0 -1
  263. package/dist/engine/models/catalog.d.ts +0 -231
  264. package/dist/engine/models/catalog.js +0 -218
  265. package/dist/engine/models/catalog.js.map +0 -1
  266. package/dist/engine/models/download-progress.d.ts +0 -15
  267. package/dist/engine/models/download-progress.js +0 -48
  268. package/dist/engine/models/download-progress.js.map +0 -1
  269. package/dist/engine/models/embeddings.d.ts +0 -67
  270. package/dist/engine/models/embeddings.js +0 -125
  271. package/dist/engine/models/embeddings.js.map +0 -1
  272. package/dist/engine/models/factory.d.ts +0 -2
  273. package/dist/engine/models/factory.js +0 -51
  274. package/dist/engine/models/factory.js.map +0 -1
  275. package/dist/engine/models/index.d.ts +0 -4
  276. package/dist/engine/models/index.js +0 -5
  277. package/dist/engine/models/index.js.map +0 -1
  278. package/dist/engine/models/ranking.d.ts +0 -19
  279. package/dist/engine/models/ranking.js +0 -2
  280. package/dist/engine/models/ranking.js.map +0 -1
  281. package/dist/engine/models/resolution.d.ts +0 -8
  282. package/dist/engine/models/resolution.js +0 -22
  283. package/dist/engine/models/resolution.js.map +0 -1
  284. package/dist/engine/pipeline/indexing/index.d.ts +0 -14
  285. package/dist/engine/pipeline/indexing/index.js +0 -1061
  286. package/dist/engine/pipeline/indexing/index.js.map +0 -1
  287. package/dist/engine/pipeline/indexing/input-budget.d.ts +0 -2
  288. package/dist/engine/pipeline/indexing/input-budget.js +0 -51
  289. package/dist/engine/pipeline/indexing/input-budget.js.map +0 -1
  290. package/dist/engine/pipeline/indexing/root-paths.d.ts +0 -7
  291. package/dist/engine/pipeline/indexing/root-paths.js +0 -148
  292. package/dist/engine/pipeline/indexing/root-paths.js.map +0 -1
  293. package/dist/engine/pipeline/indexing/scanner/index.d.ts +0 -14
  294. package/dist/engine/pipeline/indexing/scanner/index.js +0 -776
  295. package/dist/engine/pipeline/indexing/scanner/index.js.map +0 -1
  296. package/dist/engine/pipeline/search/index.d.ts +0 -12
  297. package/dist/engine/pipeline/search/index.js +0 -811
  298. package/dist/engine/pipeline/search/index.js.map +0 -1
  299. package/dist/engine/service/index.d.ts +0 -3
  300. package/dist/engine/service/index.js +0 -2
  301. package/dist/engine/service/index.js.map +0 -1
  302. package/dist/engine/service/lexical.d.ts +0 -28
  303. package/dist/engine/service/lexical.js +0 -446
  304. package/dist/engine/service/lexical.js.map +0 -1
  305. package/dist/engine/service/root.d.ts +0 -15
  306. package/dist/engine/service/root.js +0 -57
  307. package/dist/engine/service/root.js.map +0 -1
  308. package/dist/engine/service/structure-enrichment.d.ts +0 -8
  309. package/dist/engine/service/structure-enrichment.js +0 -178
  310. package/dist/engine/service/structure-enrichment.js.map +0 -1
  311. package/dist/engine/service/types.d.ts +0 -210
  312. package/dist/engine/service/types.js +0 -2
  313. package/dist/engine/service/types.js.map +0 -1
  314. package/dist/engine/service/workspace-index.d.ts +0 -26
  315. package/dist/engine/service/workspace-index.js +0 -157
  316. package/dist/engine/service/workspace-index.js.map +0 -1
  317. package/dist/engine/service/zvec-grep.d.ts +0 -13
  318. package/dist/engine/service/zvec-grep.js +0 -1393
  319. package/dist/engine/service/zvec-grep.js.map +0 -1
  320. package/dist/engine/storage/index.d.ts +0 -53
  321. package/dist/engine/storage/index.js +0 -3
  322. package/dist/engine/storage/index.js.map +0 -1
  323. package/dist/engine/storage/layout.d.ts +0 -10
  324. package/dist/engine/storage/layout.js +0 -29
  325. package/dist/engine/storage/layout.js.map +0 -1
  326. package/dist/engine/storage/zvec.d.ts +0 -4
  327. package/dist/engine/storage/zvec.js +0 -976
  328. package/dist/engine/storage/zvec.js.map +0 -1
  329. package/dist/engine/types.d.ts +0 -303
  330. package/dist/engine/types.js +0 -14
  331. package/dist/engine/types.js.map +0 -1
  332. package/dist/engine/utils/daemon-lease.d.ts +0 -17
  333. package/dist/engine/utils/daemon-lease.js +0 -175
  334. package/dist/engine/utils/daemon-lease.js.map +0 -1
  335. package/dist/engine/utils/file-selection.d.ts +0 -10
  336. package/dist/engine/utils/file-selection.js +0 -157
  337. package/dist/engine/utils/file-selection.js.map +0 -1
  338. package/dist/engine/utils/glob.d.ts +0 -9
  339. package/dist/engine/utils/glob.js +0 -208
  340. package/dist/engine/utils/glob.js.map +0 -1
  341. package/dist/engine/utils/hash.d.ts +0 -2
  342. package/dist/engine/utils/hash.js +0 -8
  343. package/dist/engine/utils/hash.js.map +0 -1
  344. package/dist/engine/utils/json.d.ts +0 -8
  345. package/dist/engine/utils/json.js +0 -83
  346. package/dist/engine/utils/json.js.map +0 -1
  347. package/dist/engine/utils/lock.d.ts +0 -19
  348. package/dist/engine/utils/lock.js +0 -254
  349. package/dist/engine/utils/lock.js.map +0 -1
  350. package/dist/engine/utils/path.d.ts +0 -4
  351. package/dist/engine/utils/path.js +0 -18
  352. package/dist/engine/utils/path.js.map +0 -1
  353. package/dist/engine/utils/timing.d.ts +0 -19
  354. package/dist/engine/utils/timing.js +0 -87
  355. package/dist/engine/utils/timing.js.map +0 -1
  356. package/dist/index-progress.d.ts +0 -10
  357. package/dist/index-progress.js +0 -159
  358. package/dist/index-progress.js.map +0 -1
  359. package/dist/index.d.ts +0 -6
  360. package/dist/index.js +0 -4
  361. package/dist/index.js.map +0 -1
  362. package/dist/mcp/http-transport.d.ts +0 -27
  363. package/dist/mcp/http-transport.js +0 -182
  364. package/dist/mcp/http-transport.js.map +0 -1
  365. package/dist/mcp/input-normalization.d.ts +0 -38
  366. package/dist/mcp/input-normalization.js +0 -104
  367. package/dist/mcp/input-normalization.js.map +0 -1
  368. package/dist/mcp/progress-heartbeat.d.ts +0 -17
  369. package/dist/mcp/progress-heartbeat.js +0 -46
  370. package/dist/mcp/progress-heartbeat.js.map +0 -1
  371. package/dist/mcp/request-metadata.d.ts +0 -2
  372. package/dist/mcp/request-metadata.js +0 -11
  373. package/dist/mcp/request-metadata.js.map +0 -1
  374. package/dist/mcp/request-state.d.ts +0 -40
  375. package/dist/mcp/request-state.js +0 -210
  376. package/dist/mcp/request-state.js.map +0 -1
  377. package/dist/mcp/result-format.d.ts +0 -13
  378. package/dist/mcp/result-format.js +0 -75
  379. package/dist/mcp/result-format.js.map +0 -1
  380. package/dist/mcp/schemas.d.ts +0 -664
  381. package/dist/mcp/schemas.js +0 -510
  382. package/dist/mcp/schemas.js.map +0 -1
  383. package/dist/mcp/stdio-bridge.d.ts +0 -14
  384. package/dist/mcp/stdio-bridge.js +0 -178
  385. package/dist/mcp/stdio-bridge.js.map +0 -1
  386. package/dist/mcp/tools.d.ts +0 -153
  387. package/dist/mcp/tools.js +0 -482
  388. package/dist/mcp/tools.js.map +0 -1
  389. package/dist/mcp/toolset.d.ts +0 -5
  390. package/dist/mcp/toolset.js +0 -12
  391. package/dist/mcp/toolset.js.map +0 -1
  392. package/dist/observability/trace-context.d.ts +0 -11
  393. package/dist/observability/trace-context.js +0 -138
  394. package/dist/observability/trace-context.js.map +0 -1
  395. package/dist/prompts/zvec-grep-guidance.d.ts +0 -2
  396. package/dist/prompts/zvec-grep-guidance.js +0 -9
  397. package/dist/prompts/zvec-grep-guidance.js.map +0 -1
  398. package/docs/01-agents.md +0 -209
  399. package/docs/02-cli.md +0 -246
  400. package/docs/03-mcp.md +0 -185
  401. package/docs/04-pipeline.md +0 -226
  402. package/docs/05-architecture.md +0 -86
  403. package/docs/06-server.md +0 -220
  404. package/docs/07-embedding.md +0 -203
  405. package/docs/08-roadmap.md +0 -85
  406. package/docs/README.md +0 -53
@@ -1,97 +0,0 @@
1
- import { createRemoteEmbeddingTarget } from "./target.js";
2
- import { RemoteEmbeddingAuthorizationStore } from "./store.js";
3
- export async function planRemoteIndexAuthorization(input) {
4
- if (input.model.provider !== "qwen")
5
- return undefined;
6
- const needsEmbedding = input.rebuild === true ||
7
- input.needsUpdate === true ||
8
- !input.info.indexed ||
9
- !indexStatusIsFresh(input.info);
10
- if (!needsEmbedding)
11
- return undefined;
12
- const endpoint = input.model.endpoint;
13
- if (endpoint === undefined) {
14
- throw new Error(`Embedding model ${input.model.reference} did not provide a remote endpoint.`);
15
- }
16
- const target = await createRemoteEmbeddingTarget({
17
- roots: workspaceRoots(input.info),
18
- provider: input.model.provider,
19
- model: input.model.name,
20
- endpoint,
21
- });
22
- const store = input.store ?? new RemoteEmbeddingAuthorizationStore();
23
- return {
24
- operation: "index",
25
- target,
26
- disclosure: {
27
- queryText: false,
28
- workspaceContent: !input.info.indexed || input.rebuild ? "full" : "changed",
29
- },
30
- reason: input.rebuild
31
- ? "index_rebuild"
32
- : input.info.indexed
33
- ? "index_update"
34
- : "index_create",
35
- grantPath: store.grantPath(target),
36
- };
37
- }
38
- export async function planRemoteSearchAuthorization(input) {
39
- const schema = input.info.workspaceIndex?.embedding;
40
- if (!input.info.indexed || !schema || schema.provider !== "qwen") {
41
- return undefined;
42
- }
43
- if (input.model.provider !== schema.provider ||
44
- input.model.name !== schema.model) {
45
- throw new Error(`Embedding model ${input.model.reference} does not match indexed model ${schema.provider}/${schema.model}.`);
46
- }
47
- const usesVector = searchUsesVector(input.search);
48
- const needsUpdate = input.runtimeNeedsReconciliation === true ||
49
- !indexStatusIsFresh(input.info);
50
- const updatesIndex = needsUpdate &&
51
- (input.search.autoUpdate || input.search.freshness === "wait_for_fresh");
52
- if (!usesVector && !updatesIndex)
53
- return undefined;
54
- const endpoint = input.model.endpoint;
55
- if (endpoint === undefined) {
56
- throw new Error(`Embedding model ${input.model.reference} did not provide a remote endpoint.`);
57
- }
58
- const target = await createRemoteEmbeddingTarget({
59
- roots: workspaceRoots(input.info),
60
- provider: input.model.provider,
61
- model: input.model.name,
62
- endpoint,
63
- });
64
- const store = input.store ?? new RemoteEmbeddingAuthorizationStore();
65
- return {
66
- operation: usesVector
67
- ? updatesIndex
68
- ? "query_and_index"
69
- : "query"
70
- : "index",
71
- target,
72
- disclosure: {
73
- queryText: usesVector,
74
- workspaceContent: updatesIndex ? "changed" : "none",
75
- },
76
- reason: "query",
77
- grantPath: store.grantPath(target),
78
- };
79
- }
80
- export function searchUsesVector(input) {
81
- return ((input.queries?.length ?? 0) > 0 ||
82
- input.routes.some((route) => route.mode === "vector"));
83
- }
84
- export function indexStatusIsFresh(info) {
85
- const status = info.status;
86
- return Boolean(status &&
87
- status.filesAdded === 0 &&
88
- status.filesModified === 0 &&
89
- status.filesDeleted === 0 &&
90
- status.filesPending === 0 &&
91
- status.filesFailed === 0);
92
- }
93
- function workspaceRoots(info) {
94
- const roots = info.workspaceIndex?.rootPaths.map((root) => root.absolutePath) ?? [];
95
- return roots.length > 0 ? roots : [info.root];
96
- }
97
- //# sourceMappingURL=planner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/authorization/planner.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { RemoteEmbeddingDataDisclosure } from "./types.js";
2
- export type RemoteEmbeddingAuthorizationPromptInput = {
3
- workspaceRoots: readonly string[];
4
- provider: string;
5
- model: string;
6
- endpoint?: string;
7
- data: readonly string[];
8
- note?: string;
9
- };
10
- export declare const REMOTE_EMBEDDING_ELICITATION_UNSUPPORTED_MESSAGE = "The connected MCP host does not support the Remote Embedding authorization interaction required by elicitation/create. The agent should use the current host's built-in user-question tool; for Qoder, the exact name is ask_user_question in Qoder IDE or AskUserQuestion in Qoder CLI/SDK. Ask the user to choose: allow Remote Embedding for this workspace, use local FTS only, or cancel. No user decision was received, and no remote data was sent.";
11
- export declare function remoteEmbeddingDisclosureData(disclosure: RemoteEmbeddingDataDisclosure): string[];
12
- export declare function formatRemoteEmbeddingAuthorizationPrompt(input: RemoteEmbeddingAuthorizationPromptInput): string;
@@ -1,63 +0,0 @@
1
- import { basename } from "node:path";
2
- export const REMOTE_EMBEDDING_ELICITATION_UNSUPPORTED_MESSAGE = "The connected MCP host does not support the Remote Embedding authorization interaction required by elicitation/create. The agent should use the current host's built-in user-question tool; for Qoder, the exact name is ask_user_question in Qoder IDE or AskUserQuestion in Qoder CLI/SDK. Ask the user to choose: allow Remote Embedding for this workspace, use local FTS only, or cancel. No user decision was received, and no remote data was sent.";
3
- export function remoteEmbeddingDisclosureData(disclosure) {
4
- return [
5
- ...(disclosure.queryText ? ["query text"] : []),
6
- ...(disclosure.workspaceContent === "selected"
7
- ? ["selected workspace files"]
8
- : disclosure.workspaceContent === "changed"
9
- ? ["changed workspace files"]
10
- : disclosure.workspaceContent === "full"
11
- ? ["selected workspace files"]
12
- : []),
13
- ];
14
- }
15
- export function formatRemoteEmbeddingAuthorizationPrompt(input) {
16
- const data = naturalList(input.data.length > 0 ? input.data : ["data required by this operation"]);
17
- const lines = [
18
- "Remote Embedding authorization",
19
- "",
20
- `Send ${data}?`,
21
- "",
22
- ` From ${workspaceLabel(input.workspaceRoots)}`,
23
- ` To ${clip(`${input.provider}/${input.model}`, 72)}`,
24
- ];
25
- const host = endpointHost(input.endpoint);
26
- if (host)
27
- lines.push(` ${clip(host, 72)}`);
28
- if (input.note)
29
- lines.push("", input.note);
30
- lines.push("", "API charges may apply.");
31
- return lines.join("\n");
32
- }
33
- function workspaceLabel(roots) {
34
- const names = roots.map((root) => clip(basename(root) || root || "workspace", 32));
35
- if (names.length === 0)
36
- return "workspace";
37
- if (names.length <= 2)
38
- return names.join(", ");
39
- return `${names.slice(0, 2).join(", ")} +${names.length - 2}`;
40
- }
41
- function endpointHost(endpoint) {
42
- if (!endpoint)
43
- return undefined;
44
- try {
45
- return new URL(endpoint).host;
46
- }
47
- catch {
48
- return endpoint.replace(/^https?:\/\//, "").split("/")[0] || undefined;
49
- }
50
- }
51
- function naturalList(items) {
52
- if (items.length <= 1)
53
- return items[0] ?? "data";
54
- if (items.length === 2)
55
- return `${items[0]} and ${items[1]}`;
56
- return `${items.slice(0, -1).join(", ")}, and ${items.at(-1)}`;
57
- }
58
- function clip(value, maxLength) {
59
- if (value.length <= maxLength)
60
- return value;
61
- return `${value.slice(0, Math.max(1, maxLength - 1))}…`;
62
- }
63
- //# sourceMappingURL=prompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/authorization/prompt.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { type RemoteEmbeddingAuthorizationStatus, type RemoteEmbeddingTarget, type RemoteEmbeddingWorkspaceGrant } from "./types.js";
2
- export type RemoteEmbeddingAuthorizationStoreOptions = {
3
- signingKeyPath?: string;
4
- };
5
- export declare class RemoteEmbeddingAuthorizationStore {
6
- private readonly signingKeyPath;
7
- constructor(options?: RemoteEmbeddingAuthorizationStoreOptions);
8
- grantPath(target: Pick<RemoteEmbeddingTarget, "workspaceRoots">): string;
9
- hasGrant(target: RemoteEmbeddingTarget): Promise<boolean>;
10
- grant(target: RemoteEmbeddingTarget): Promise<RemoteEmbeddingWorkspaceGrant>;
11
- revoke(target: RemoteEmbeddingTarget): Promise<boolean>;
12
- revokeAll(root: string): Promise<number>;
13
- status(root: string): Promise<RemoteEmbeddingAuthorizationStatus>;
14
- private readDocument;
15
- private writeDocument;
16
- private withDocumentWrite;
17
- private verifyGrant;
18
- private readSigningKey;
19
- private getOrCreateSigningKey;
20
- }
@@ -1,251 +0,0 @@
1
- import { createHmac, randomBytes, randomUUID, timingSafeEqual, } from "node:crypto";
2
- import { chmod, mkdir, readFile, writeFile } from "node:fs/promises";
3
- import { homedir } from "node:os";
4
- import { dirname, join, resolve } from "node:path";
5
- import { readJsonFile, writeJsonFile } from "../engine/utils/json.js";
6
- import { acquireReadWriteLock } from "../engine/utils/lock.js";
7
- import { REMOTE_EMBEDDING_CAPABILITY, } from "./types.js";
8
- const DOCUMENT_VERSION = 1;
9
- const GRANT_FILE = "authorization.json";
10
- export class RemoteEmbeddingAuthorizationStore {
11
- signingKeyPath;
12
- constructor(options = {}) {
13
- this.signingKeyPath = resolve(options.signingKeyPath ??
14
- process.env.ZVEC_GREP_AUTHORIZATION_KEY_FILE ??
15
- join(homedir(), ".zvec-grep", "authorization-signing.key"));
16
- }
17
- grantPath(target) {
18
- const root = target.workspaceRoots[0];
19
- if (!root) {
20
- throw new Error("Remote Embedding target has no workspace roots.");
21
- }
22
- return join(root, ".zvec-grep", GRANT_FILE);
23
- }
24
- async hasGrant(target) {
25
- const key = await this.readSigningKey();
26
- if (!key)
27
- return false;
28
- const document = await this.readDocument(this.grantPath(target));
29
- return document.grants.some((grant) => grant.targetFingerprint === target.targetFingerprint &&
30
- this.verifyGrant(grant, key));
31
- }
32
- async grant(target) {
33
- const key = await this.getOrCreateSigningKey();
34
- const unsigned = {
35
- version: DOCUMENT_VERSION,
36
- id: randomUUID(),
37
- capability: REMOTE_EMBEDDING_CAPABILITY,
38
- scope: "workspace",
39
- workspaceRoots: [...target.workspaceRoots],
40
- workspaceFingerprint: target.workspaceFingerprint,
41
- provider: target.provider,
42
- model: target.model,
43
- endpoint: target.endpoint,
44
- targetFingerprint: target.targetFingerprint,
45
- grantedAt: Date.now(),
46
- };
47
- const grant = {
48
- ...unsigned,
49
- signature: sign(unsigned, key),
50
- };
51
- for (const root of target.workspaceRoots) {
52
- const path = join(root, ".zvec-grep", GRANT_FILE);
53
- await this.withDocumentWrite(path, async (document) => {
54
- const next = {
55
- version: DOCUMENT_VERSION,
56
- grants: [
57
- ...document.grants.filter((candidate) => candidate.targetFingerprint !== target.targetFingerprint),
58
- grant,
59
- ],
60
- };
61
- await this.writeDocument(path, next);
62
- });
63
- }
64
- return grant;
65
- }
66
- async revoke(target) {
67
- let revoked = false;
68
- for (const root of target.workspaceRoots) {
69
- const path = join(root, ".zvec-grep", GRANT_FILE);
70
- await this.withDocumentWrite(path, async (document) => {
71
- const grants = document.grants.filter((grant) => grant.targetFingerprint !== target.targetFingerprint);
72
- if (grants.length === document.grants.length)
73
- return;
74
- revoked = true;
75
- await this.writeDocument(path, {
76
- version: DOCUMENT_VERSION,
77
- grants,
78
- });
79
- });
80
- }
81
- return revoked;
82
- }
83
- async revokeAll(root) {
84
- const path = join(resolve(root), ".zvec-grep", GRANT_FILE);
85
- let revoked = 0;
86
- let validGrants = [];
87
- const key = await this.readSigningKey();
88
- await this.withDocumentWrite(path, async (document) => {
89
- revoked = document.grants.length;
90
- if (revoked === 0)
91
- return;
92
- validGrants = key
93
- ? document.grants.filter((grant) => this.verifyGrant(grant, key))
94
- : [];
95
- await this.writeDocument(path, {
96
- version: DOCUMENT_VERSION,
97
- grants: [],
98
- });
99
- });
100
- const fingerprintsByPath = new Map();
101
- for (const grant of validGrants) {
102
- for (const workspaceRoot of grant.workspaceRoots) {
103
- const grantPath = join(workspaceRoot, ".zvec-grep", GRANT_FILE);
104
- if (resolve(grantPath) === resolve(path))
105
- continue;
106
- const fingerprints = fingerprintsByPath.get(grantPath) ?? new Set();
107
- fingerprints.add(grant.targetFingerprint);
108
- fingerprintsByPath.set(grantPath, fingerprints);
109
- }
110
- }
111
- for (const [grantPath, fingerprints] of fingerprintsByPath) {
112
- await this.withDocumentWrite(grantPath, async (document) => {
113
- const grants = document.grants.filter((grant) => !fingerprints.has(grant.targetFingerprint));
114
- if (grants.length === document.grants.length)
115
- return;
116
- await this.writeDocument(grantPath, {
117
- version: DOCUMENT_VERSION,
118
- grants,
119
- });
120
- });
121
- }
122
- return revoked;
123
- }
124
- async status(root) {
125
- const path = join(resolve(root), ".zvec-grep", GRANT_FILE);
126
- const document = await this.readDocument(path);
127
- const key = await this.readSigningKey();
128
- return {
129
- path,
130
- grants: document.grants.map(({ signature, ...grant }) => ({
131
- ...grant,
132
- valid: key ? this.verifyGrant({ ...grant, signature }, key) : false,
133
- })),
134
- };
135
- }
136
- async readDocument(path) {
137
- const value = await readJsonFile(path, {
138
- version: DOCUMENT_VERSION,
139
- grants: [],
140
- });
141
- if (!isAuthorizationDocument(value)) {
142
- return { version: DOCUMENT_VERSION, grants: [] };
143
- }
144
- return value;
145
- }
146
- async writeDocument(path, document) {
147
- await writeJsonFile(path, document, {
148
- directoryMode: 0o700,
149
- fileMode: 0o600,
150
- });
151
- }
152
- async withDocumentWrite(path, operation) {
153
- const lock = acquireReadWriteLock(join(dirname(path), "authorization-store"), "write", { operation: "remote-embedding-authorization" });
154
- try {
155
- return await operation(await this.readDocument(path));
156
- }
157
- finally {
158
- lock.release();
159
- }
160
- }
161
- verifyGrant(grant, key) {
162
- const { signature, ...unsigned } = grant;
163
- const expected = sign(unsigned, key);
164
- const actualBytes = Buffer.from(signature, "hex");
165
- const expectedBytes = Buffer.from(expected, "hex");
166
- return (actualBytes.length === expectedBytes.length &&
167
- timingSafeEqual(actualBytes, expectedBytes));
168
- }
169
- async readSigningKey() {
170
- try {
171
- const value = (await readFile(this.signingKeyPath, "utf8")).trim();
172
- return value ? Buffer.from(value, "hex") : undefined;
173
- }
174
- catch (error) {
175
- if (error.code === "ENOENT")
176
- return undefined;
177
- throw error;
178
- }
179
- }
180
- async getOrCreateSigningKey() {
181
- const existing = await this.readSigningKey();
182
- if (existing)
183
- return existing;
184
- await mkdir(dirname(this.signingKeyPath), { recursive: true, mode: 0o700 });
185
- await chmod(dirname(this.signingKeyPath), 0o700);
186
- const key = randomBytes(32);
187
- try {
188
- await writeFile(this.signingKeyPath, key.toString("hex"), {
189
- encoding: "utf8",
190
- mode: 0o600,
191
- flag: "wx",
192
- });
193
- return key;
194
- }
195
- catch (error) {
196
- if (error.code !== "EEXIST")
197
- throw error;
198
- const concurrent = await this.readSigningKey();
199
- if (!concurrent)
200
- throw error;
201
- return concurrent;
202
- }
203
- }
204
- }
205
- function sign(value, key) {
206
- return createHmac("sha256", key).update(stableStringify(value)).digest("hex");
207
- }
208
- function stableStringify(value) {
209
- if (Array.isArray(value)) {
210
- return `[${value.map(stableStringify).join(",")}]`;
211
- }
212
- if (value && typeof value === "object") {
213
- const record = value;
214
- return `{${Object.keys(record)
215
- .sort()
216
- .map((key) => `${JSON.stringify(key)}:${stableStringify(record[key])}`)
217
- .join(",")}}`;
218
- }
219
- return JSON.stringify(value);
220
- }
221
- function isAuthorizationDocument(value) {
222
- if (!value || typeof value !== "object")
223
- return false;
224
- const document = value;
225
- if (document.version !== DOCUMENT_VERSION ||
226
- !Array.isArray(document.grants)) {
227
- return false;
228
- }
229
- return document.grants.every(isWorkspaceGrant);
230
- }
231
- function isWorkspaceGrant(value) {
232
- if (!value || typeof value !== "object")
233
- return false;
234
- const grant = value;
235
- return (grant.version === DOCUMENT_VERSION &&
236
- grant.capability === REMOTE_EMBEDDING_CAPABILITY &&
237
- grant.scope === "workspace" &&
238
- Array.isArray(grant.workspaceRoots) &&
239
- grant.workspaceRoots.every((root) => typeof root === "string") &&
240
- [
241
- "id",
242
- "workspaceFingerprint",
243
- "provider",
244
- "model",
245
- "endpoint",
246
- "targetFingerprint",
247
- "signature",
248
- ].every((key) => typeof grant[key] === "string") &&
249
- typeof grant.grantedAt === "number");
250
- }
251
- //# sourceMappingURL=store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/authorization/store.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { RemoteEmbeddingTarget } from "./types.js";
2
- export declare function canonicalizeWorkspaceRoots(roots: readonly string[]): Promise<string[]>;
3
- export declare function workspaceFingerprint(roots: readonly string[]): string;
4
- export declare function remoteEmbeddingTargetFingerprint(input: {
5
- workspaceFingerprint: string;
6
- provider: string;
7
- model: string;
8
- endpoint: string;
9
- }): string;
10
- export declare function createRemoteEmbeddingTarget(input: {
11
- roots: readonly string[];
12
- provider: string;
13
- model: string;
14
- endpoint: string;
15
- }): Promise<RemoteEmbeddingTarget>;
@@ -1,49 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- import { realpath } from "node:fs/promises";
3
- import { resolve } from "node:path";
4
- export async function canonicalizeWorkspaceRoots(roots) {
5
- const canonical = await Promise.all(roots.map(async (root) => {
6
- const absolute = resolve(root);
7
- return await realpath(absolute).catch(() => absolute);
8
- }));
9
- return [...new Set(canonical)].sort();
10
- }
11
- export function workspaceFingerprint(roots) {
12
- return sha256(JSON.stringify([...roots]));
13
- }
14
- export function remoteEmbeddingTargetFingerprint(input) {
15
- return sha256(JSON.stringify([
16
- input.workspaceFingerprint,
17
- input.provider,
18
- input.model,
19
- input.endpoint,
20
- ]));
21
- }
22
- export async function createRemoteEmbeddingTarget(input) {
23
- const workspaceRoots = await canonicalizeWorkspaceRoots(input.roots);
24
- if (workspaceRoots.length === 0) {
25
- throw new Error("Remote Embedding authorization requires a workspace root.");
26
- }
27
- const endpoint = input.endpoint.trim();
28
- if (endpoint.length === 0) {
29
- throw new Error("Remote Embedding authorization requires an endpoint.");
30
- }
31
- const rootFingerprint = workspaceFingerprint(workspaceRoots);
32
- return {
33
- workspaceRoots,
34
- workspaceFingerprint: rootFingerprint,
35
- provider: input.provider,
36
- model: input.model,
37
- endpoint,
38
- targetFingerprint: remoteEmbeddingTargetFingerprint({
39
- workspaceFingerprint: rootFingerprint,
40
- provider: input.provider,
41
- model: input.model,
42
- endpoint,
43
- }),
44
- };
45
- }
46
- function sha256(value) {
47
- return createHash("sha256").update(value).digest("hex");
48
- }
49
- //# sourceMappingURL=target.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/authorization/target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,KAAwB;IAExB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC,CAAC,CACH,CAAC;IACF,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAwB;IAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,KAKhD;IACC,OAAO,MAAM,CACX,IAAI,CAAC,SAAS,CAAC;QACb,KAAK,CAAC,oBAAoB;QAC1B,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,KAAK;QACX,KAAK,CAAC,QAAQ;KACf,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,KAKjD;IACC,MAAM,cAAc,GAAG,MAAM,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrE,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,eAAe,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAC7D,OAAO;QACL,cAAc;QACd,oBAAoB,EAAE,eAAe;QACrC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ;QACR,iBAAiB,EAAE,gCAAgC,CAAC;YAClD,oBAAoB,EAAE,eAAe;YACrC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ;SACT,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC"}
@@ -1,61 +0,0 @@
1
- export declare const REMOTE_EMBEDDING_CAPABILITY: "remote_embedding";
2
- export type RemoteEmbeddingAuthorizationScope = "once" | "workspace";
3
- export type RemoteEmbeddingOperation = "query" | "index" | "query_and_index";
4
- export type RemoteEmbeddingDataDisclosure = {
5
- queryText: boolean;
6
- workspaceContent: "none" | "selected" | "changed" | "full";
7
- };
8
- export type RemoteEmbeddingTarget = {
9
- workspaceRoots: readonly string[];
10
- workspaceFingerprint: string;
11
- provider: string;
12
- model: string;
13
- endpoint: string;
14
- targetFingerprint: string;
15
- };
16
- export type RemoteEmbeddingRequest = {
17
- provider: string;
18
- model: string;
19
- endpoint: string;
20
- purpose: "document" | "query";
21
- contentKinds: readonly ("text" | "image")[];
22
- contentCount: number;
23
- };
24
- export type RemoteEmbeddingAuthorizationPlan = {
25
- operation: RemoteEmbeddingOperation;
26
- target: RemoteEmbeddingTarget;
27
- disclosure: RemoteEmbeddingDataDisclosure;
28
- reason: "query" | "index_create" | "index_update" | "index_rebuild";
29
- grantPath: string;
30
- };
31
- export type RemoteEmbeddingOperationPermit = {
32
- capability: typeof REMOTE_EMBEDDING_CAPABILITY;
33
- scope: RemoteEmbeddingAuthorizationScope;
34
- target: RemoteEmbeddingTarget;
35
- issuedAt: number;
36
- operationId: string;
37
- };
38
- export type RemoteEmbeddingWorkspaceGrant = {
39
- version: 1;
40
- id: string;
41
- capability: typeof REMOTE_EMBEDDING_CAPABILITY;
42
- scope: "workspace";
43
- workspaceRoots: string[];
44
- workspaceFingerprint: string;
45
- provider: string;
46
- model: string;
47
- endpoint: string;
48
- targetFingerprint: string;
49
- grantedAt: number;
50
- signature: string;
51
- };
52
- export type RemoteEmbeddingAuthorizationDocument = {
53
- version: 1;
54
- grants: RemoteEmbeddingWorkspaceGrant[];
55
- };
56
- export type RemoteEmbeddingAuthorizationStatus = {
57
- path: string;
58
- grants: Array<Omit<RemoteEmbeddingWorkspaceGrant, "signature"> & {
59
- valid: boolean;
60
- }>;
61
- };
@@ -1,2 +0,0 @@
1
- export const REMOTE_EMBEDDING_CAPABILITY = "remote_embedding";
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/authorization/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG,kBAA2B,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { ParsedArgs } from "./types.js";
2
- export declare function parseArgs(args: readonly string[]): ParsedArgs;
3
- export declare function parseDevice(value: string): "auto" | "cpu" | "metal" | "vulkan" | "cuda";
4
- export declare function splitPathFilters(value: string): string[];
5
- export declare function parseModifiedTime(value: string, option: string): number;