kynjal-cli 4.0.0 → 4.0.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 (502) hide show
  1. package/dist/src/appliance/gguf-engine.d.ts +91 -0
  2. package/dist/src/appliance/gguf-engine.d.ts.map +1 -0
  3. package/dist/src/appliance/gguf-engine.js +286 -525
  4. package/dist/src/appliance/gguf-engine.js.map +1 -1
  5. package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
  6. package/dist/src/appliance/ruvllm-bridge.d.ts.map +1 -0
  7. package/dist/src/appliance/ruvllm-bridge.js +203 -403
  8. package/dist/src/appliance/ruvllm-bridge.js.map +1 -1
  9. package/dist/src/appliance/rvfa-builder.d.ts +44 -0
  10. package/dist/src/appliance/rvfa-builder.d.ts.map +1 -0
  11. package/dist/src/appliance/rvfa-builder.js +154 -208
  12. package/dist/src/appliance/rvfa-builder.js.map +1 -1
  13. package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
  14. package/dist/src/appliance/rvfa-distribution.d.ts.map +1 -0
  15. package/dist/src/appliance/rvfa-distribution.js +260 -423
  16. package/dist/src/appliance/rvfa-distribution.js.map +1 -1
  17. package/dist/src/appliance/rvfa-format.d.ts +111 -0
  18. package/dist/src/appliance/rvfa-format.d.ts.map +1 -0
  19. package/dist/src/appliance/rvfa-format.js +128 -200
  20. package/dist/src/appliance/rvfa-format.js.map +1 -1
  21. package/dist/src/appliance/rvfa-runner.d.ts +69 -0
  22. package/dist/src/appliance/rvfa-runner.d.ts.map +1 -0
  23. package/dist/src/appliance/rvfa-runner.js +168 -304
  24. package/dist/src/appliance/rvfa-runner.js.map +1 -1
  25. package/dist/src/appliance/rvfa-signing.d.ts +123 -0
  26. package/dist/src/appliance/rvfa-signing.d.ts.map +1 -0
  27. package/dist/src/appliance/rvfa-signing.js +173 -295
  28. package/dist/src/appliance/rvfa-signing.js.map +1 -1
  29. package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
  30. package/dist/src/benchmarks/pretrain/index.d.ts.map +1 -0
  31. package/dist/src/benchmarks/pretrain/index.js +331 -542
  32. package/dist/src/benchmarks/pretrain/index.js.map +1 -1
  33. package/dist/src/commands/agent.js +574 -697
  34. package/dist/src/commands/agent.js.map +1 -1
  35. package/dist/src/commands/analyze.js +1218 -1548
  36. package/dist/src/commands/analyze.js.map +1 -1
  37. package/dist/src/commands/appliance-advanced.js +158 -267
  38. package/dist/src/commands/appliance-advanced.js.map +1 -1
  39. package/dist/src/commands/appliance.js +318 -493
  40. package/dist/src/commands/appliance.js.map +1 -1
  41. package/dist/src/commands/benchmark.js +372 -523
  42. package/dist/src/commands/benchmark.js.map +1 -1
  43. package/dist/src/commands/claims.js +274 -364
  44. package/dist/src/commands/claims.js.map +1 -1
  45. package/dist/src/commands/cleanup.js +113 -157
  46. package/dist/src/commands/cleanup.js.map +1 -1
  47. package/dist/src/commands/completions.js +477 -118
  48. package/dist/src/commands/completions.js.map +1 -1
  49. package/dist/src/commands/config.js +237 -303
  50. package/dist/src/commands/config.js.map +1 -1
  51. package/dist/src/commands/daemon.js +487 -596
  52. package/dist/src/commands/daemon.js.map +1 -1
  53. package/dist/src/commands/deployment.js +194 -275
  54. package/dist/src/commands/deployment.js.map +1 -1
  55. package/dist/src/commands/doctor.js +504 -686
  56. package/dist/src/commands/doctor.js.map +1 -1
  57. package/dist/src/commands/embeddings.js +1293 -1543
  58. package/dist/src/commands/embeddings.js.map +1 -1
  59. package/dist/src/commands/guidance.js +449 -596
  60. package/dist/src/commands/guidance.js.map +1 -1
  61. package/dist/src/commands/hive-mind.js +854 -938
  62. package/dist/src/commands/hive-mind.js.map +1 -1
  63. package/dist/src/commands/hooks.js +3112 -3519
  64. package/dist/src/commands/hooks.js.map +1 -1
  65. package/dist/src/commands/index.d.ts +115 -0
  66. package/dist/src/commands/index.d.ts.map +1 -0
  67. package/dist/src/commands/index.js +126 -308
  68. package/dist/src/commands/index.js.map +1 -1
  69. package/dist/src/commands/init.js +788 -940
  70. package/dist/src/commands/init.js.map +1 -1
  71. package/dist/src/commands/issues.js +383 -558
  72. package/dist/src/commands/issues.js.map +1 -1
  73. package/dist/src/commands/mcp.js +493 -605
  74. package/dist/src/commands/mcp.js.map +1 -1
  75. package/dist/src/commands/memory.js +833 -1026
  76. package/dist/src/commands/memory.js.map +1 -1
  77. package/dist/src/commands/migrate.js +282 -347
  78. package/dist/src/commands/migrate.js.map +1 -1
  79. package/dist/src/commands/neural.js +1289 -1563
  80. package/dist/src/commands/neural.js.map +1 -1
  81. package/dist/src/commands/performance.js +497 -643
  82. package/dist/src/commands/performance.js.map +1 -1
  83. package/dist/src/commands/plugins.js +668 -841
  84. package/dist/src/commands/plugins.js.map +1 -1
  85. package/dist/src/commands/process.js +392 -447
  86. package/dist/src/commands/process.js.map +1 -1
  87. package/dist/src/commands/progress.js +162 -256
  88. package/dist/src/commands/progress.js.map +1 -1
  89. package/dist/src/commands/providers.js +150 -220
  90. package/dist/src/commands/providers.js.map +1 -1
  91. package/dist/src/commands/route.js +520 -665
  92. package/dist/src/commands/route.js.map +1 -1
  93. package/dist/src/commands/ruvector/backup.js +505 -651
  94. package/dist/src/commands/ruvector/backup.js.map +1 -1
  95. package/dist/src/commands/ruvector/benchmark.js +349 -401
  96. package/dist/src/commands/ruvector/benchmark.js.map +1 -1
  97. package/dist/src/commands/ruvector/import.js +224 -266
  98. package/dist/src/commands/ruvector/import.js.map +1 -1
  99. package/dist/src/commands/ruvector/index.js +37 -75
  100. package/dist/src/commands/ruvector/index.js.map +1 -1
  101. package/dist/src/commands/ruvector/init.js +336 -359
  102. package/dist/src/commands/ruvector/init.js.map +1 -1
  103. package/dist/src/commands/ruvector/migrate.js +335 -322
  104. package/dist/src/commands/ruvector/migrate.js.map +1 -1
  105. package/dist/src/commands/ruvector/optimize.js +375 -431
  106. package/dist/src/commands/ruvector/optimize.js.map +1 -1
  107. package/dist/src/commands/ruvector/setup.js +703 -117
  108. package/dist/src/commands/ruvector/setup.js.map +1 -1
  109. package/dist/src/commands/ruvector/status.js +364 -419
  110. package/dist/src/commands/ruvector/status.js.map +1 -1
  111. package/dist/src/commands/security.js +485 -608
  112. package/dist/src/commands/security.js.map +1 -1
  113. package/dist/src/commands/session.js +504 -626
  114. package/dist/src/commands/session.js.map +1 -1
  115. package/dist/src/commands/start.js +267 -364
  116. package/dist/src/commands/start.js.map +1 -1
  117. package/dist/src/commands/status.js +380 -486
  118. package/dist/src/commands/status.js.map +1 -1
  119. package/dist/src/commands/swarm.js +408 -488
  120. package/dist/src/commands/swarm.js.map +1 -1
  121. package/dist/src/commands/task.js +423 -538
  122. package/dist/src/commands/task.js.map +1 -1
  123. package/dist/src/commands/transfer-store.js +322 -412
  124. package/dist/src/commands/transfer-store.js.map +1 -1
  125. package/dist/src/commands/update.js +196 -291
  126. package/dist/src/commands/update.js.map +1 -1
  127. package/dist/src/commands/workflow.js +386 -486
  128. package/dist/src/commands/workflow.js.map +1 -1
  129. package/dist/src/config-adapter.d.ts +15 -0
  130. package/dist/src/config-adapter.d.ts.map +1 -0
  131. package/dist/src/config-adapter.js +38 -39
  132. package/dist/src/config-adapter.js.map +1 -1
  133. package/dist/src/index.d.ts +77 -0
  134. package/dist/src/index.d.ts.map +1 -0
  135. package/dist/src/index.js +309 -411
  136. package/dist/src/index.js.map +1 -1
  137. package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  138. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +1 -0
  139. package/dist/src/infrastructure/in-memory-repositories.js +246 -507
  140. package/dist/src/infrastructure/in-memory-repositories.js.map +1 -1
  141. package/dist/src/init/claudemd-generator.d.ts +25 -0
  142. package/dist/src/init/claudemd-generator.d.ts.map +1 -0
  143. package/dist/src/init/claudemd-generator.js +368 -78
  144. package/dist/src/init/claudemd-generator.js.map +1 -1
  145. package/dist/src/init/executor.d.ts +41 -0
  146. package/dist/src/init/executor.d.ts.map +1 -0
  147. package/dist/src/init/executor.js +1307 -996
  148. package/dist/src/init/executor.js.map +1 -1
  149. package/dist/src/init/helpers-generator.d.ts +60 -0
  150. package/dist/src/init/helpers-generator.d.ts.map +1 -0
  151. package/dist/src/init/helpers-generator.js +657 -12
  152. package/dist/src/init/helpers-generator.js.map +1 -1
  153. package/dist/src/init/index.d.ts +1 -1
  154. package/dist/src/init/index.d.ts.map +1 -1
  155. package/dist/src/init/index.js +1 -1
  156. package/dist/src/init/index.js.map +1 -1
  157. package/dist/src/init/mcp-generator.js +33 -37
  158. package/dist/src/init/mcp-generator.js.map +1 -1
  159. package/dist/src/init/settings-generator.js +76 -77
  160. package/dist/src/init/settings-generator.js.map +1 -1
  161. package/dist/src/init/statusline-generator.js +801 -3
  162. package/dist/src/init/statusline-generator.js.map +1 -1
  163. package/dist/src/init/types.d.ts +1 -1
  164. package/dist/src/init/types.d.ts.map +1 -1
  165. package/dist/src/init/types.js +76 -59
  166. package/dist/src/init/types.js.map +1 -1
  167. package/dist/src/mcp-client.d.ts +92 -0
  168. package/dist/src/mcp-client.d.ts.map +1 -0
  169. package/dist/src/mcp-client.js +81 -125
  170. package/dist/src/mcp-client.js.map +1 -1
  171. package/dist/src/mcp-server.d.ts +161 -0
  172. package/dist/src/mcp-server.d.ts.map +1 -0
  173. package/dist/src/mcp-server.js +470 -757
  174. package/dist/src/mcp-server.js.map +1 -1
  175. package/dist/src/mcp-tools/agent-tools.js +391 -492
  176. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  177. package/dist/src/mcp-tools/agentdb-tools.js +332 -533
  178. package/dist/src/mcp-tools/agentdb-tools.js.map +1 -1
  179. package/dist/src/mcp-tools/analyze-tools.js +172 -236
  180. package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
  181. package/dist/src/mcp-tools/auto-install.d.ts +83 -0
  182. package/dist/src/mcp-tools/auto-install.d.ts.map +1 -0
  183. package/dist/src/mcp-tools/auto-install.js +80 -142
  184. package/dist/src/mcp-tools/auto-install.js.map +1 -1
  185. package/dist/src/mcp-tools/browser-tools.js +252 -375
  186. package/dist/src/mcp-tools/browser-tools.js.map +1 -1
  187. package/dist/src/mcp-tools/claims-tools.js +473 -565
  188. package/dist/src/mcp-tools/claims-tools.js.map +1 -1
  189. package/dist/src/mcp-tools/config-tools.js +197 -272
  190. package/dist/src/mcp-tools/config-tools.js.map +1 -1
  191. package/dist/src/mcp-tools/coordination-tools.js +500 -572
  192. package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
  193. package/dist/src/mcp-tools/daa-tools.js +286 -364
  194. package/dist/src/mcp-tools/daa-tools.js.map +1 -1
  195. package/dist/src/mcp-tools/embeddings-tools.js +582 -693
  196. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
  197. package/dist/src/mcp-tools/github-tools.js +260 -311
  198. package/dist/src/mcp-tools/github-tools.js.map +1 -1
  199. package/dist/src/mcp-tools/hive-mind-tools.js +573 -640
  200. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  201. package/dist/src/mcp-tools/hooks-tools.js +2215 -2648
  202. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  203. package/dist/src/mcp-tools/memory-tools.js +350 -505
  204. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  205. package/dist/src/mcp-tools/neural-tools.js +315 -412
  206. package/dist/src/mcp-tools/neural-tools.js.map +1 -1
  207. package/dist/src/mcp-tools/performance-tools.js +420 -480
  208. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  209. package/dist/src/mcp-tools/progress-tools.js +204 -278
  210. package/dist/src/mcp-tools/progress-tools.js.map +1 -1
  211. package/dist/src/mcp-tools/ruvllm-tools.js +163 -279
  212. package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -1
  213. package/dist/src/mcp-tools/security-tools.js +297 -429
  214. package/dist/src/mcp-tools/security-tools.js.map +1 -1
  215. package/dist/src/mcp-tools/session-tools.js +185 -234
  216. package/dist/src/mcp-tools/session-tools.js.map +1 -1
  217. package/dist/src/mcp-tools/swarm-tools.js +207 -260
  218. package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
  219. package/dist/src/mcp-tools/system-tools.js +276 -325
  220. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  221. package/dist/src/mcp-tools/task-tools.js +270 -336
  222. package/dist/src/mcp-tools/task-tools.js.map +1 -1
  223. package/dist/src/mcp-tools/terminal-tools.js +148 -196
  224. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  225. package/dist/src/mcp-tools/transfer-tools.js +186 -333
  226. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  227. package/dist/src/mcp-tools/types.d.ts +31 -0
  228. package/dist/src/mcp-tools/types.d.ts.map +1 -0
  229. package/dist/src/mcp-tools/wasm-agent-tools.js +133 -280
  230. package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -1
  231. package/dist/src/mcp-tools/workflow-tools.js +405 -450
  232. package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
  233. package/dist/src/memory/ewc-consolidation.d.ts +295 -0
  234. package/dist/src/memory/ewc-consolidation.d.ts.map +1 -0
  235. package/dist/src/memory/ewc-consolidation.js +190 -303
  236. package/dist/src/memory/ewc-consolidation.js.map +1 -1
  237. package/dist/src/memory/intelligence.d.ts +338 -0
  238. package/dist/src/memory/intelligence.d.ts.map +1 -0
  239. package/dist/src/memory/intelligence.js +569 -794
  240. package/dist/src/memory/intelligence.js.map +1 -1
  241. package/dist/src/memory/memory-bridge.d.ts +407 -0
  242. package/dist/src/memory/memory-bridge.d.ts.map +1 -0
  243. package/dist/src/memory/memory-bridge.js +1170 -1640
  244. package/dist/src/memory/memory-bridge.js.map +1 -1
  245. package/dist/src/memory/memory-initializer.d.ts +412 -0
  246. package/dist/src/memory/memory-initializer.d.ts.map +1 -0
  247. package/dist/src/memory/memory-initializer.js +1836 -1851
  248. package/dist/src/memory/memory-initializer.js.map +1 -1
  249. package/dist/src/memory/sona-optimizer.d.ts +227 -0
  250. package/dist/src/memory/sona-optimizer.d.ts.map +1 -0
  251. package/dist/src/memory/sona-optimizer.js +199 -329
  252. package/dist/src/memory/sona-optimizer.js.map +1 -1
  253. package/dist/src/output.d.ts +2 -2
  254. package/dist/src/output.d.ts.map +1 -1
  255. package/dist/src/output.js +242 -272
  256. package/dist/src/output.js.map +1 -1
  257. package/dist/src/parser.d.ts +51 -0
  258. package/dist/src/parser.d.ts.map +1 -0
  259. package/dist/src/parser.js +140 -187
  260. package/dist/src/parser.js.map +1 -1
  261. package/dist/src/plugins/manager.d.ts +133 -0
  262. package/dist/src/plugins/manager.d.ts.map +1 -0
  263. package/dist/src/plugins/manager.js +285 -521
  264. package/dist/src/plugins/manager.js.map +1 -1
  265. package/dist/src/plugins/store/discovery.d.ts +88 -0
  266. package/dist/src/plugins/store/discovery.d.ts.map +1 -0
  267. package/dist/src/plugins/store/discovery.js +271 -358
  268. package/dist/src/plugins/store/discovery.js.map +1 -1
  269. package/dist/src/plugins/store/index.d.ts +76 -0
  270. package/dist/src/plugins/store/index.d.ts.map +1 -0
  271. package/dist/src/plugins/store/index.js +48 -105
  272. package/dist/src/plugins/store/index.js.map +1 -1
  273. package/dist/src/plugins/store/search.d.ts +46 -0
  274. package/dist/src/plugins/store/search.d.ts.map +1 -0
  275. package/dist/src/plugins/store/search.js +69 -107
  276. package/dist/src/plugins/store/search.js.map +1 -1
  277. package/dist/src/plugins/store/types.d.ts +274 -0
  278. package/dist/src/plugins/store/types.d.ts.map +1 -0
  279. package/dist/src/plugins/tests/demo-plugin-store.js +113 -160
  280. package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -1
  281. package/dist/src/plugins/tests/standalone-test.js +172 -223
  282. package/dist/src/plugins/tests/standalone-test.js.map +1 -1
  283. package/dist/src/plugins/tests/test-plugin-store.js +190 -228
  284. package/dist/src/plugins/tests/test-plugin-store.js.map +1 -1
  285. package/dist/src/production/circuit-breaker.d.ts +101 -0
  286. package/dist/src/production/circuit-breaker.d.ts.map +1 -0
  287. package/dist/src/production/circuit-breaker.js +62 -126
  288. package/dist/src/production/circuit-breaker.js.map +1 -1
  289. package/dist/src/production/error-handler.d.ts +92 -0
  290. package/dist/src/production/error-handler.d.ts.map +1 -0
  291. package/dist/src/production/error-handler.js +86 -156
  292. package/dist/src/production/error-handler.js.map +1 -1
  293. package/dist/src/production/monitoring.d.ts +161 -0
  294. package/dist/src/production/monitoring.d.ts.map +1 -0
  295. package/dist/src/production/monitoring.js +139 -220
  296. package/dist/src/production/monitoring.js.map +1 -1
  297. package/dist/src/production/rate-limiter.d.ts +80 -0
  298. package/dist/src/production/rate-limiter.d.ts.map +1 -0
  299. package/dist/src/production/rate-limiter.js +74 -93
  300. package/dist/src/production/rate-limiter.js.map +1 -1
  301. package/dist/src/production/retry.d.ts +48 -0
  302. package/dist/src/production/retry.d.ts.map +1 -0
  303. package/dist/src/production/retry.js +75 -167
  304. package/dist/src/production/retry.js.map +1 -1
  305. package/dist/src/prompt.d.ts +44 -0
  306. package/dist/src/prompt.d.ts.map +1 -0
  307. package/dist/src/prompt.js +436 -560
  308. package/dist/src/prompt.js.map +1 -1
  309. package/dist/src/runtime/headless.d.ts +60 -0
  310. package/dist/src/runtime/headless.d.ts.map +1 -0
  311. package/dist/src/runtime/headless.js +197 -286
  312. package/dist/src/runtime/headless.js.map +1 -1
  313. package/dist/src/ruvector/agent-wasm.d.ts +182 -0
  314. package/dist/src/ruvector/agent-wasm.d.ts.map +1 -0
  315. package/dist/src/ruvector/agent-wasm.js +156 -351
  316. package/dist/src/ruvector/agent-wasm.js.map +1 -1
  317. package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  318. package/dist/src/ruvector/ast-analyzer.d.ts.map +1 -0
  319. package/dist/src/ruvector/ast-analyzer.js +145 -232
  320. package/dist/src/ruvector/ast-analyzer.js.map +1 -1
  321. package/dist/src/ruvector/coverage-router.d.ts +160 -0
  322. package/dist/src/ruvector/coverage-router.d.ts.map +1 -0
  323. package/dist/src/ruvector/coverage-router.js +287 -419
  324. package/dist/src/ruvector/coverage-router.js.map +1 -1
  325. package/dist/src/ruvector/coverage-tools.js +56 -101
  326. package/dist/src/ruvector/coverage-tools.js.map +1 -1
  327. package/dist/src/ruvector/diff-classifier.d.ts +175 -0
  328. package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
  329. package/dist/src/ruvector/diff-classifier.js +324 -451
  330. package/dist/src/ruvector/diff-classifier.js.map +1 -1
  331. package/dist/src/ruvector/enhanced-model-router.d.ts +146 -0
  332. package/dist/src/ruvector/enhanced-model-router.d.ts.map +1 -0
  333. package/dist/src/ruvector/enhanced-model-router.js +260 -336
  334. package/dist/src/ruvector/enhanced-model-router.js.map +1 -1
  335. package/dist/src/ruvector/flash-attention.d.ts +195 -0
  336. package/dist/src/ruvector/flash-attention.d.ts.map +1 -0
  337. package/dist/src/ruvector/flash-attention.js +223 -254
  338. package/dist/src/ruvector/flash-attention.js.map +1 -1
  339. package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  340. package/dist/src/ruvector/graph-analyzer.d.ts.map +1 -0
  341. package/dist/src/ruvector/graph-analyzer.js +486 -680
  342. package/dist/src/ruvector/graph-analyzer.js.map +1 -1
  343. package/dist/src/ruvector/index.d.ts +40 -0
  344. package/dist/src/ruvector/index.d.ts.map +1 -0
  345. package/dist/src/ruvector/index.js +36 -106
  346. package/dist/src/ruvector/index.js.map +1 -1
  347. package/dist/src/ruvector/lora-adapter.d.ts +218 -0
  348. package/dist/src/ruvector/lora-adapter.d.ts.map +1 -0
  349. package/dist/src/ruvector/lora-adapter.js +155 -248
  350. package/dist/src/ruvector/lora-adapter.js.map +1 -1
  351. package/dist/src/ruvector/model-router.d.ts +220 -0
  352. package/dist/src/ruvector/model-router.d.ts.map +1 -0
  353. package/dist/src/ruvector/model-router.js +175 -248
  354. package/dist/src/ruvector/model-router.js.map +1 -1
  355. package/dist/src/ruvector/moe-router.d.ts +206 -0
  356. package/dist/src/ruvector/moe-router.d.ts.map +1 -0
  357. package/dist/src/ruvector/moe-router.js +228 -286
  358. package/dist/src/ruvector/moe-router.js.map +1 -1
  359. package/dist/src/ruvector/q-learning-router.d.ts +211 -0
  360. package/dist/src/ruvector/q-learning-router.d.ts.map +1 -0
  361. package/dist/src/ruvector/q-learning-router.js +257 -338
  362. package/dist/src/ruvector/q-learning-router.js.map +1 -1
  363. package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
  364. package/dist/src/ruvector/ruvllm-wasm.d.ts.map +1 -0
  365. package/dist/src/ruvector/ruvllm-wasm.js +270 -434
  366. package/dist/src/ruvector/ruvllm-wasm.js.map +1 -1
  367. package/dist/src/ruvector/semantic-router.d.ts +77 -0
  368. package/dist/src/ruvector/semantic-router.d.ts.map +1 -0
  369. package/dist/src/ruvector/semantic-router.js +60 -67
  370. package/dist/src/ruvector/semantic-router.js.map +1 -1
  371. package/dist/src/ruvector/vector-db.d.ts +69 -0
  372. package/dist/src/ruvector/vector-db.d.ts.map +1 -0
  373. package/dist/src/ruvector/vector-db.js +119 -205
  374. package/dist/src/ruvector/vector-db.js.map +1 -1
  375. package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  376. package/dist/src/services/agentic-flow-bridge.d.ts.map +1 -0
  377. package/dist/src/services/agentic-flow-bridge.js +32 -105
  378. package/dist/src/services/agentic-flow-bridge.js.map +1 -1
  379. package/dist/src/services/claim-service.d.ts +204 -0
  380. package/dist/src/services/claim-service.d.ts.map +1 -0
  381. package/dist/src/services/claim-service.js +615 -940
  382. package/dist/src/services/claim-service.js.map +1 -1
  383. package/dist/src/services/container-worker-pool.d.ts +197 -0
  384. package/dist/src/services/container-worker-pool.d.ts.map +1 -0
  385. package/dist/src/services/container-worker-pool.js +398 -666
  386. package/dist/src/services/container-worker-pool.js.map +1 -1
  387. package/dist/src/services/headless-worker-executor.d.ts +304 -0
  388. package/dist/src/services/headless-worker-executor.d.ts.map +1 -0
  389. package/dist/src/services/headless-worker-executor.js +441 -467
  390. package/dist/src/services/headless-worker-executor.js.map +1 -1
  391. package/dist/src/services/index.d.ts +4 -4
  392. package/dist/src/services/index.d.ts.map +1 -1
  393. package/dist/src/services/index.js +4 -4
  394. package/dist/src/services/index.js.map +1 -1
  395. package/dist/src/services/registry-api.d.ts +58 -0
  396. package/dist/src/services/registry-api.d.ts.map +1 -0
  397. package/dist/src/services/registry-api.js +92 -200
  398. package/dist/src/services/registry-api.js.map +1 -1
  399. package/dist/src/services/ruvector-training.d.ts +222 -0
  400. package/dist/src/services/ruvector-training.d.ts.map +1 -0
  401. package/dist/src/services/ruvector-training.js +257 -337
  402. package/dist/src/services/ruvector-training.js.map +1 -1
  403. package/dist/src/services/worker-daemon.d.ts +228 -0
  404. package/dist/src/services/worker-daemon.d.ts.map +1 -0
  405. package/dist/src/services/worker-daemon.js +591 -849
  406. package/dist/src/services/worker-daemon.js.map +1 -1
  407. package/dist/src/services/worker-queue.d.ts +194 -0
  408. package/dist/src/services/worker-queue.d.ts.map +1 -0
  409. package/dist/src/services/worker-queue.js +331 -548
  410. package/dist/src/services/worker-queue.js.map +1 -1
  411. package/dist/src/suggest.d.ts +53 -0
  412. package/dist/src/suggest.d.ts.map +1 -0
  413. package/dist/src/suggest.js +45 -55
  414. package/dist/src/suggest.js.map +1 -1
  415. package/dist/src/transfer/anonymization/index.js +29 -37
  416. package/dist/src/transfer/anonymization/index.js.map +1 -1
  417. package/dist/src/transfer/deploy-seraphine.js +128 -155
  418. package/dist/src/transfer/deploy-seraphine.js.map +1 -1
  419. package/dist/src/transfer/export.d.ts +25 -0
  420. package/dist/src/transfer/export.d.ts.map +1 -0
  421. package/dist/src/transfer/export.js +84 -142
  422. package/dist/src/transfer/export.js.map +1 -1
  423. package/dist/src/transfer/index.d.ts +1 -1
  424. package/dist/src/transfer/index.d.ts.map +1 -1
  425. package/dist/src/transfer/index.js +0 -2
  426. package/dist/src/transfer/index.js.map +1 -1
  427. package/dist/src/transfer/ipfs/client.d.ts +109 -0
  428. package/dist/src/transfer/ipfs/client.d.ts.map +1 -0
  429. package/dist/src/transfer/ipfs/client.js +187 -337
  430. package/dist/src/transfer/ipfs/client.js.map +1 -1
  431. package/dist/src/transfer/ipfs/upload.d.ts +95 -0
  432. package/dist/src/transfer/ipfs/upload.d.ts.map +1 -0
  433. package/dist/src/transfer/ipfs/upload.js +288 -434
  434. package/dist/src/transfer/ipfs/upload.js.map +1 -1
  435. package/dist/src/transfer/models/seraphine.d.ts +72 -0
  436. package/dist/src/transfer/models/seraphine.d.ts.map +1 -0
  437. package/dist/src/transfer/models/seraphine.js +55 -55
  438. package/dist/src/transfer/models/seraphine.js.map +1 -1
  439. package/dist/src/transfer/serialization/cfp.d.ts +49 -0
  440. package/dist/src/transfer/serialization/cfp.d.ts.map +1 -0
  441. package/dist/src/transfer/serialization/cfp.js +30 -31
  442. package/dist/src/transfer/serialization/cfp.js.map +1 -1
  443. package/dist/src/transfer/storage/gcs.d.ts +82 -0
  444. package/dist/src/transfer/storage/gcs.d.ts.map +1 -0
  445. package/dist/src/transfer/storage/gcs.js +165 -232
  446. package/dist/src/transfer/storage/gcs.js.map +1 -1
  447. package/dist/src/transfer/store/discovery.d.ts +84 -0
  448. package/dist/src/transfer/store/discovery.d.ts.map +1 -0
  449. package/dist/src/transfer/store/discovery.js +239 -349
  450. package/dist/src/transfer/store/discovery.js.map +1 -1
  451. package/dist/src/transfer/store/download.d.ts +70 -0
  452. package/dist/src/transfer/store/download.d.ts.map +1 -0
  453. package/dist/src/transfer/store/download.js +243 -365
  454. package/dist/src/transfer/store/download.js.map +1 -1
  455. package/dist/src/transfer/store/index.d.ts +84 -0
  456. package/dist/src/transfer/store/index.d.ts.map +1 -0
  457. package/dist/src/transfer/store/index.js +63 -130
  458. package/dist/src/transfer/store/index.js.map +1 -1
  459. package/dist/src/transfer/store/publish.d.ts +76 -0
  460. package/dist/src/transfer/store/publish.d.ts.map +1 -0
  461. package/dist/src/transfer/store/publish.js +184 -258
  462. package/dist/src/transfer/store/publish.js.map +1 -1
  463. package/dist/src/transfer/store/registry.js +50 -72
  464. package/dist/src/transfer/store/registry.js.map +1 -1
  465. package/dist/src/transfer/store/search.d.ts +54 -0
  466. package/dist/src/transfer/store/search.d.ts.map +1 -0
  467. package/dist/src/transfer/store/search.js +64 -96
  468. package/dist/src/transfer/store/search.js.map +1 -1
  469. package/dist/src/transfer/store/tests/standalone-test.js +174 -231
  470. package/dist/src/transfer/store/tests/standalone-test.js.map +1 -1
  471. package/dist/src/transfer/test-seraphine.js +95 -130
  472. package/dist/src/transfer/test-seraphine.js.map +1 -1
  473. package/dist/src/transfer/tests/test-store.js +194 -239
  474. package/dist/src/transfer/tests/test-store.js.map +1 -1
  475. package/dist/src/transfer/types.d.ts +245 -0
  476. package/dist/src/transfer/types.d.ts.map +1 -0
  477. package/dist/src/types.d.ts +198 -0
  478. package/dist/src/types.d.ts.map +1 -0
  479. package/dist/src/types.js +26 -55
  480. package/dist/src/types.js.map +1 -1
  481. package/dist/src/update/checker.d.ts +34 -0
  482. package/dist/src/update/checker.d.ts.map +1 -0
  483. package/dist/src/update/checker.js +106 -183
  484. package/dist/src/update/checker.js.map +1 -1
  485. package/dist/src/update/executor.d.ts +32 -0
  486. package/dist/src/update/executor.d.ts.map +1 -0
  487. package/dist/src/update/executor.js +135 -198
  488. package/dist/src/update/executor.js.map +1 -1
  489. package/dist/src/update/index.d.ts +33 -0
  490. package/dist/src/update/index.d.ts.map +1 -0
  491. package/dist/src/update/index.js +38 -85
  492. package/dist/src/update/index.js.map +1 -1
  493. package/dist/src/update/rate-limiter.d.ts +20 -0
  494. package/dist/src/update/rate-limiter.d.ts.map +1 -0
  495. package/dist/src/update/rate-limiter.js +19 -31
  496. package/dist/src/update/rate-limiter.js.map +1 -1
  497. package/dist/src/update/validator.d.ts +17 -0
  498. package/dist/src/update/validator.d.ts.map +1 -0
  499. package/dist/src/update/validator.js +38 -64
  500. package/dist/src/update/validator.js.map +1 -1
  501. package/dist/tsconfig.tsbuildinfo +1 -1
  502. package/package.json +1 -1
@@ -2,55 +2,18 @@
2
2
  * V3 CLI Interactive Prompt System
3
3
  * Modern interactive prompts for user input
4
4
  */
5
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
6
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7
- return new (P || (P = Promise))(function (resolve, reject) {
8
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
9
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
10
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
11
- step((generator = generator.apply(thisArg, _arguments || [])).next());
12
- });
13
- };
14
- var __generator = (this && this.__generator) || function (thisArg, body) {
15
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
16
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
17
- function verb(n) { return function (v) { return step([n, v]); }; }
18
- function step(op) {
19
- if (f) throw new TypeError("Generator is already executing.");
20
- while (_) try {
21
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
22
- if (y = 0, t) op = [op[0] & 2, t.value];
23
- switch (op[0]) {
24
- case 0: case 1: t = op; break;
25
- case 4: _.label++; return { value: op[1], done: false };
26
- case 5: _.label++; y = op[1]; op = [0]; continue;
27
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
28
- default:
29
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
30
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
31
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
32
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
33
- if (t[2]) _.ops.pop();
34
- _.trys.pop(); continue;
35
- }
36
- op = body.call(thisArg, _);
37
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
38
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
39
- }
40
- };
41
5
  import * as readline from 'readline';
42
6
  import { output } from './output.js';
43
7
  // ============================================
44
8
  // Core Prompt Infrastructure
45
9
  // ============================================
46
- var PromptManager = /** @class */ (function () {
47
- function PromptManager(formatter) {
48
- if (formatter === void 0) { formatter = output; }
49
- this.rl = null;
10
+ class PromptManager {
11
+ rl = null;
12
+ formatter;
13
+ constructor(formatter = output) {
50
14
  this.formatter = formatter;
51
15
  }
52
- PromptManager.prototype.createInterface = function () {
53
- var _this = this;
16
+ createInterface() {
54
17
  if (!this.rl) {
55
18
  this.rl = readline.createInterface({
56
19
  input: process.stdin,
@@ -58,568 +21,481 @@ var PromptManager = /** @class */ (function () {
58
21
  terminal: true
59
22
  });
60
23
  // Handle cleanup on exit
61
- this.rl.on('close', function () {
62
- _this.rl = null;
24
+ this.rl.on('close', () => {
25
+ this.rl = null;
63
26
  });
64
27
  }
65
28
  return this.rl;
66
- };
67
- PromptManager.prototype.close = function () {
29
+ }
30
+ close() {
68
31
  if (this.rl) {
69
32
  this.rl.close();
70
33
  this.rl = null;
71
34
  }
72
- };
73
- PromptManager.prototype.question = function (prompt) {
74
- return __awaiter(this, void 0, Promise, function () {
75
- var _this = this;
76
- return __generator(this, function (_a) {
77
- return [2 /*return*/, new Promise(function (resolve) {
78
- var rl = _this.createInterface();
79
- rl.question(prompt, function (answer) {
80
- resolve(answer);
81
- });
82
- })];
35
+ }
36
+ async question(prompt) {
37
+ return new Promise((resolve) => {
38
+ const rl = this.createInterface();
39
+ rl.question(prompt, (answer) => {
40
+ resolve(answer);
83
41
  });
84
42
  });
85
- };
43
+ }
86
44
  // ============================================
87
45
  // Select Prompt
88
46
  // ============================================
89
- PromptManager.prototype.select = function (options) {
90
- return __awaiter(this, void 0, Promise, function () {
91
- var message, choices, defaultValue, _a, pageSize, selectedIndex, idx, displayChoices;
92
- var _this = this;
93
- return __generator(this, function (_b) {
94
- message = options.message, choices = options.options, defaultValue = options["default"], _a = options.pageSize, pageSize = _a === void 0 ? 10 : _a;
95
- this.formatter.writeln();
96
- this.formatter.writeln(this.formatter.bold("? " + message));
97
- this.formatter.writeln(this.formatter.dim(' (Use arrow keys to navigate, enter to select)'));
98
- this.formatter.writeln();
99
- selectedIndex = 0;
100
- if (defaultValue !== undefined) {
101
- idx = choices.findIndex(function (c) { return c.value === defaultValue; });
102
- if (idx !== -1)
103
- selectedIndex = idx;
47
+ async select(options) {
48
+ const { message, options: choices, default: defaultValue, pageSize = 10 } = options;
49
+ this.formatter.writeln();
50
+ this.formatter.writeln(this.formatter.bold(`? ${message}`));
51
+ this.formatter.writeln(this.formatter.dim(' (Use arrow keys to navigate, enter to select)'));
52
+ this.formatter.writeln();
53
+ // Find default index
54
+ let selectedIndex = 0;
55
+ if (defaultValue !== undefined) {
56
+ const idx = choices.findIndex(c => c.value === defaultValue);
57
+ if (idx !== -1)
58
+ selectedIndex = idx;
59
+ }
60
+ // Display options
61
+ const displayChoices = (currentIndex, startIndex = 0) => {
62
+ // Move cursor up to overwrite
63
+ if (startIndex > 0 || currentIndex > 0) {
64
+ process.stdout.write(`\x1b[${Math.min(choices.length, pageSize)}A`);
65
+ }
66
+ const endIndex = Math.min(startIndex + pageSize, choices.length);
67
+ for (let i = startIndex; i < endIndex; i++) {
68
+ const choice = choices[i];
69
+ const isSelected = i === currentIndex;
70
+ const prefix = isSelected ? this.formatter.info('>') : ' ';
71
+ const label = isSelected
72
+ ? this.formatter.highlight(choice.label)
73
+ : choice.label;
74
+ const hint = choice.hint ? this.formatter.dim(` - ${choice.hint}`) : '';
75
+ const disabled = choice.disabled ? this.formatter.dim(' (disabled)') : '';
76
+ this.formatter.writeln(` ${prefix} ${label}${hint}${disabled}`);
77
+ }
78
+ };
79
+ // Initial display
80
+ displayChoices(selectedIndex);
81
+ return new Promise((resolve, reject) => {
82
+ const rl = this.createInterface();
83
+ // Enable raw mode for arrow key detection
84
+ if (process.stdin.isTTY) {
85
+ process.stdin.setRawMode(true);
86
+ }
87
+ process.stdin.resume();
88
+ const handleKeypress = (key) => {
89
+ const keyStr = key.toString();
90
+ // Arrow keys
91
+ if (keyStr === '\x1b[A') { // Up
92
+ do {
93
+ selectedIndex = (selectedIndex - 1 + choices.length) % choices.length;
94
+ } while (choices[selectedIndex].disabled && selectedIndex !== 0);
95
+ displayChoices(selectedIndex);
104
96
  }
105
- displayChoices = function (currentIndex, startIndex) {
106
- if (startIndex === void 0) { startIndex = 0; }
107
- // Move cursor up to overwrite
108
- if (startIndex > 0 || currentIndex > 0) {
109
- process.stdout.write("\u001B[" + Math.min(choices.length, pageSize) + "A");
110
- }
111
- var endIndex = Math.min(startIndex + pageSize, choices.length);
112
- for (var i = startIndex; i < endIndex; i++) {
113
- var choice = choices[i];
114
- var isSelected = i === currentIndex;
115
- var prefix = isSelected ? _this.formatter.info('>') : ' ';
116
- var label = isSelected
117
- ? _this.formatter.highlight(choice.label)
118
- : choice.label;
119
- var hint = choice.hint ? _this.formatter.dim(" - " + choice.hint) : '';
120
- var disabled = choice.disabled ? _this.formatter.dim(' (disabled)') : '';
121
- _this.formatter.writeln(" " + prefix + " " + label + hint + disabled);
97
+ else if (keyStr === '\x1b[B') { // Down
98
+ do {
99
+ selectedIndex = (selectedIndex + 1) % choices.length;
100
+ } while (choices[selectedIndex].disabled && selectedIndex !== choices.length - 1);
101
+ displayChoices(selectedIndex);
102
+ }
103
+ else if (keyStr === '\r' || keyStr === '\n') { // Enter
104
+ cleanup();
105
+ const selected = choices[selectedIndex];
106
+ if (!selected.disabled) {
107
+ this.formatter.writeln();
108
+ this.formatter.writeln(this.formatter.success(`Selected: ${selected.label}`));
109
+ resolve(selected.value);
122
110
  }
123
- };
124
- // Initial display
125
- displayChoices(selectedIndex);
126
- return [2 /*return*/, new Promise(function (resolve, reject) {
127
- var rl = _this.createInterface();
128
- // Enable raw mode for arrow key detection
129
- if (process.stdin.isTTY) {
130
- process.stdin.setRawMode(true);
131
- }
132
- process.stdin.resume();
133
- var handleKeypress = function (key) {
134
- var keyStr = key.toString();
135
- // Arrow keys
136
- if (keyStr === '\x1b[A') { // Up
137
- do {
138
- selectedIndex = (selectedIndex - 1 + choices.length) % choices.length;
139
- } while (choices[selectedIndex].disabled && selectedIndex !== 0);
140
- displayChoices(selectedIndex);
141
- }
142
- else if (keyStr === '\x1b[B') { // Down
143
- do {
144
- selectedIndex = (selectedIndex + 1) % choices.length;
145
- } while (choices[selectedIndex].disabled && selectedIndex !== choices.length - 1);
146
- displayChoices(selectedIndex);
147
- }
148
- else if (keyStr === '\r' || keyStr === '\n') { // Enter
149
- cleanup();
150
- var selected = choices[selectedIndex];
151
- if (!selected.disabled) {
152
- _this.formatter.writeln();
153
- _this.formatter.writeln(_this.formatter.success("Selected: " + selected.label));
154
- resolve(selected.value);
155
- }
156
- }
157
- else if (keyStr === '\x03') { // Ctrl+C
158
- cleanup();
159
- reject(new Error('User cancelled'));
160
- }
161
- };
162
- var cleanup = function () {
163
- process.stdin.removeListener('data', handleKeypress);
164
- if (process.stdin.isTTY) {
165
- process.stdin.setRawMode(false);
166
- }
167
- _this.close();
168
- };
169
- process.stdin.on('data', handleKeypress);
170
- })];
171
- });
111
+ }
112
+ else if (keyStr === '\x03') { // Ctrl+C
113
+ cleanup();
114
+ reject(new Error('User cancelled'));
115
+ }
116
+ };
117
+ const cleanup = () => {
118
+ process.stdin.removeListener('data', handleKeypress);
119
+ if (process.stdin.isTTY) {
120
+ process.stdin.setRawMode(false);
121
+ }
122
+ this.close();
123
+ };
124
+ process.stdin.on('data', handleKeypress);
172
125
  });
173
- };
126
+ }
174
127
  // ============================================
175
128
  // Confirm Prompt
176
129
  // ============================================
177
- PromptManager.prototype.confirm = function (options) {
178
- return __awaiter(this, void 0, Promise, function () {
179
- var message, _a, defaultValue, _b, active, _c, inactive, defaultText, hint, prompt, answer, normalized;
180
- return __generator(this, function (_d) {
181
- switch (_d.label) {
182
- case 0:
183
- message = options.message, _a = options["default"], defaultValue = _a === void 0 ? false : _a, _b = options.active, active = _b === void 0 ? 'Yes' : _b, _c = options.inactive, inactive = _c === void 0 ? 'No' : _c;
184
- defaultText = defaultValue ? active + "/" + inactive : active + "/" + inactive;
185
- hint = defaultValue ? "[" + active + "]" : "[" + inactive + "]";
186
- prompt = this.formatter.bold('?') + " " + message + " " + this.formatter.dim(hint) + " ";
187
- return [4 /*yield*/, this.question(prompt)];
188
- case 1:
189
- answer = _d.sent();
190
- this.close();
191
- if (answer === '') {
192
- return [2 /*return*/, defaultValue];
193
- }
194
- normalized = answer.toLowerCase().trim();
195
- if (['y', 'yes', 'true', '1'].includes(normalized)) {
196
- return [2 /*return*/, true];
197
- }
198
- if (['n', 'no', 'false', '0'].includes(normalized)) {
199
- return [2 /*return*/, false];
200
- }
201
- return [2 /*return*/, defaultValue];
202
- }
203
- });
204
- });
205
- };
130
+ async confirm(options) {
131
+ const { message, default: defaultValue = false, active = 'Yes', inactive = 'No' } = options;
132
+ const defaultText = defaultValue ? `${active}/${inactive}` : `${active}/${inactive}`;
133
+ const hint = defaultValue ? `[${active}]` : `[${inactive}]`;
134
+ const prompt = `${this.formatter.bold('?')} ${message} ${this.formatter.dim(hint)} `;
135
+ const answer = await this.question(prompt);
136
+ this.close();
137
+ if (answer === '') {
138
+ return defaultValue;
139
+ }
140
+ const normalized = answer.toLowerCase().trim();
141
+ if (['y', 'yes', 'true', '1'].includes(normalized)) {
142
+ return true;
143
+ }
144
+ if (['n', 'no', 'false', '0'].includes(normalized)) {
145
+ return false;
146
+ }
147
+ return defaultValue;
148
+ }
206
149
  // ============================================
207
150
  // Input Prompt
208
151
  // ============================================
209
- PromptManager.prototype.input = function (options) {
210
- return __awaiter(this, void 0, Promise, function () {
211
- var message, defaultValue, placeholder, validate, mask, prompt, answer, result, errorMsg;
212
- return __generator(this, function (_a) {
213
- switch (_a.label) {
214
- case 0:
215
- message = options.message, defaultValue = options["default"], placeholder = options.placeholder, validate = options.validate, mask = options.mask;
216
- prompt = this.formatter.bold('?') + " " + message;
217
- if (defaultValue) {
218
- prompt += " " + this.formatter.dim("(" + defaultValue + ")");
219
- }
220
- else if (placeholder) {
221
- prompt += " " + this.formatter.dim(placeholder);
222
- }
223
- prompt += ': ';
224
- _a.label = 1;
225
- case 1:
226
- if (!true) return [3 /*break*/, 6];
227
- answer = void 0;
228
- if (!mask) return [3 /*break*/, 3];
229
- return [4 /*yield*/, this.inputMasked(prompt)];
230
- case 2:
231
- answer = _a.sent();
232
- return [3 /*break*/, 5];
233
- case 3: return [4 /*yield*/, this.question(prompt)];
234
- case 4:
235
- answer = _a.sent();
236
- _a.label = 5;
237
- case 5:
238
- // Use default if empty
239
- if (answer === '' && defaultValue !== undefined) {
240
- answer = defaultValue;
241
- }
242
- // Validate
243
- if (validate) {
244
- result = validate(answer);
245
- if (result !== true) {
246
- errorMsg = typeof result === 'string' ? result : 'Invalid input';
247
- this.formatter.writeln(this.formatter.error(" " + errorMsg));
248
- return [3 /*break*/, 1];
249
- }
250
- }
251
- this.close();
252
- return [2 /*return*/, answer];
253
- case 6: return [2 /*return*/];
152
+ async input(options) {
153
+ const { message, default: defaultValue, placeholder, validate, mask } = options;
154
+ let prompt = `${this.formatter.bold('?')} ${message}`;
155
+ if (defaultValue) {
156
+ prompt += ` ${this.formatter.dim(`(${defaultValue})`)}`;
157
+ }
158
+ else if (placeholder) {
159
+ prompt += ` ${this.formatter.dim(placeholder)}`;
160
+ }
161
+ prompt += ': ';
162
+ while (true) {
163
+ let answer;
164
+ if (mask) {
165
+ answer = await this.inputMasked(prompt);
166
+ }
167
+ else {
168
+ answer = await this.question(prompt);
169
+ }
170
+ // Use default if empty
171
+ if (answer === '' && defaultValue !== undefined) {
172
+ answer = defaultValue;
173
+ }
174
+ // Validate
175
+ if (validate) {
176
+ const result = validate(answer);
177
+ if (result !== true) {
178
+ const errorMsg = typeof result === 'string' ? result : 'Invalid input';
179
+ this.formatter.writeln(this.formatter.error(` ${errorMsg}`));
180
+ continue;
254
181
  }
255
- });
256
- });
257
- };
258
- PromptManager.prototype.inputMasked = function (prompt) {
259
- return __awaiter(this, void 0, Promise, function () {
260
- var _this = this;
261
- return __generator(this, function (_a) {
262
- return [2 /*return*/, new Promise(function (resolve) {
263
- var rl = _this.createInterface();
264
- var password = '';
265
- // Don't echo characters
266
- process.stdout.write(prompt);
267
- if (process.stdin.isTTY) {
268
- process.stdin.setRawMode(true);
269
- }
270
- process.stdin.resume();
271
- var handleData = function (chunk) {
272
- var char = chunk.toString();
273
- if (char === '\n' || char === '\r') {
274
- // Enter pressed
275
- process.stdin.removeListener('data', handleData);
276
- if (process.stdin.isTTY) {
277
- process.stdin.setRawMode(false);
278
- }
279
- process.stdout.write('\n');
280
- resolve(password);
281
- }
282
- else if (char === '\x7f' || char === '\x08') {
283
- // Backspace
284
- if (password.length > 0) {
285
- password = password.slice(0, -1);
286
- process.stdout.write('\b \b');
287
- }
288
- }
289
- else if (char === '\x03') {
290
- // Ctrl+C
291
- process.stdin.removeListener('data', handleData);
292
- if (process.stdin.isTTY) {
293
- process.stdin.setRawMode(false);
294
- }
295
- resolve('');
296
- }
297
- else if (char.charCodeAt(0) >= 32) {
298
- // Printable character
299
- password += char;
300
- process.stdout.write('*');
301
- }
302
- };
303
- process.stdin.on('data', handleData);
304
- })];
305
- });
182
+ }
183
+ this.close();
184
+ return answer;
185
+ }
186
+ }
187
+ async inputMasked(prompt) {
188
+ return new Promise((resolve) => {
189
+ const rl = this.createInterface();
190
+ let password = '';
191
+ // Don't echo characters
192
+ process.stdout.write(prompt);
193
+ if (process.stdin.isTTY) {
194
+ process.stdin.setRawMode(true);
195
+ }
196
+ process.stdin.resume();
197
+ const handleData = (chunk) => {
198
+ const char = chunk.toString();
199
+ if (char === '\n' || char === '\r') {
200
+ // Enter pressed
201
+ process.stdin.removeListener('data', handleData);
202
+ if (process.stdin.isTTY) {
203
+ process.stdin.setRawMode(false);
204
+ }
205
+ process.stdout.write('\n');
206
+ resolve(password);
207
+ }
208
+ else if (char === '\x7f' || char === '\x08') {
209
+ // Backspace
210
+ if (password.length > 0) {
211
+ password = password.slice(0, -1);
212
+ process.stdout.write('\b \b');
213
+ }
214
+ }
215
+ else if (char === '\x03') {
216
+ // Ctrl+C
217
+ process.stdin.removeListener('data', handleData);
218
+ if (process.stdin.isTTY) {
219
+ process.stdin.setRawMode(false);
220
+ }
221
+ resolve('');
222
+ }
223
+ else if (char.charCodeAt(0) >= 32) {
224
+ // Printable character
225
+ password += char;
226
+ process.stdout.write('*');
227
+ }
228
+ };
229
+ process.stdin.on('data', handleData);
306
230
  });
307
- };
231
+ }
308
232
  // ============================================
309
233
  // Multi-Select Prompt
310
234
  // ============================================
311
- PromptManager.prototype.multiSelect = function (options) {
312
- return __awaiter(this, void 0, Promise, function () {
313
- var message, choices, _a, defaultValues, _b, required, min, max, selected, i, currentIndex, displayChoices, i;
314
- var _this = this;
315
- return __generator(this, function (_c) {
316
- message = options.message, choices = options.options, _a = options["default"], defaultValues = _a === void 0 ? [] : _a, _b = options.required, required = _b === void 0 ? false : _b, min = options.min, max = options.max;
317
- this.formatter.writeln();
318
- this.formatter.writeln(this.formatter.bold("? " + message));
319
- this.formatter.writeln(this.formatter.dim(' (Use arrow keys to navigate, space to select, enter to confirm)'));
320
- this.formatter.writeln();
321
- selected = new Set();
322
- for (i = 0; i < choices.length; i++) {
323
- // Check both default array and individual selected property
324
- if (defaultValues.includes(choices[i].value) || choices[i].selected) {
325
- selected.add(i);
326
- }
235
+ async multiSelect(options) {
236
+ const { message, options: choices, default: defaultValues = [], required = false, min, max } = options;
237
+ this.formatter.writeln();
238
+ this.formatter.writeln(this.formatter.bold(`? ${message}`));
239
+ this.formatter.writeln(this.formatter.dim(' (Use arrow keys to navigate, space to select, enter to confirm)'));
240
+ this.formatter.writeln();
241
+ // Initialize selection state
242
+ const selected = new Set();
243
+ for (let i = 0; i < choices.length; i++) {
244
+ // Check both default array and individual selected property
245
+ if (defaultValues.includes(choices[i].value) || choices[i].selected) {
246
+ selected.add(i);
247
+ }
248
+ }
249
+ let currentIndex = 0;
250
+ // Display options
251
+ const displayChoices = () => {
252
+ // Move cursor up to overwrite
253
+ process.stdout.write(`\x1b[${choices.length}A`);
254
+ for (let i = 0; i < choices.length; i++) {
255
+ const choice = choices[i];
256
+ const isCurrentRow = i === currentIndex;
257
+ const isSelected = selected.has(i);
258
+ const cursor = isCurrentRow ? this.formatter.info('>') : ' ';
259
+ const checkbox = isSelected
260
+ ? this.formatter.success('[x]')
261
+ : this.formatter.dim('[ ]');
262
+ const label = isCurrentRow
263
+ ? this.formatter.highlight(choice.label)
264
+ : choice.label;
265
+ const hint = choice.hint ? this.formatter.dim(` - ${choice.hint}`) : '';
266
+ const disabled = choice.disabled ? this.formatter.dim(' (disabled)') : '';
267
+ this.formatter.writeln(` ${cursor} ${checkbox} ${label}${hint}${disabled}`);
268
+ }
269
+ };
270
+ // Initial display
271
+ for (let i = 0; i < choices.length; i++) {
272
+ this.formatter.writeln('');
273
+ }
274
+ displayChoices();
275
+ return new Promise((resolve, reject) => {
276
+ const rl = this.createInterface();
277
+ if (process.stdin.isTTY) {
278
+ process.stdin.setRawMode(true);
279
+ }
280
+ process.stdin.resume();
281
+ const handleKeypress = (key) => {
282
+ const keyStr = key.toString();
283
+ if (keyStr === '\x1b[A') { // Up
284
+ currentIndex = (currentIndex - 1 + choices.length) % choices.length;
285
+ displayChoices();
327
286
  }
328
- currentIndex = 0;
329
- displayChoices = function () {
330
- // Move cursor up to overwrite
331
- process.stdout.write("\u001B[" + choices.length + "A");
332
- for (var i = 0; i < choices.length; i++) {
333
- var choice = choices[i];
334
- var isCurrentRow = i === currentIndex;
335
- var isSelected = selected.has(i);
336
- var cursor = isCurrentRow ? _this.formatter.info('>') : ' ';
337
- var checkbox = isSelected
338
- ? _this.formatter.success('[x]')
339
- : _this.formatter.dim('[ ]');
340
- var label = isCurrentRow
341
- ? _this.formatter.highlight(choice.label)
342
- : choice.label;
343
- var hint = choice.hint ? _this.formatter.dim(" - " + choice.hint) : '';
344
- var disabled = choice.disabled ? _this.formatter.dim(' (disabled)') : '';
345
- _this.formatter.writeln(" " + cursor + " " + checkbox + " " + label + hint + disabled);
346
- }
347
- };
348
- // Initial display
349
- for (i = 0; i < choices.length; i++) {
350
- this.formatter.writeln('');
287
+ else if (keyStr === '\x1b[B') { // Down
288
+ currentIndex = (currentIndex + 1) % choices.length;
289
+ displayChoices();
351
290
  }
352
- displayChoices();
353
- return [2 /*return*/, new Promise(function (resolve, reject) {
354
- var rl = _this.createInterface();
355
- if (process.stdin.isTTY) {
356
- process.stdin.setRawMode(true);
291
+ else if (keyStr === ' ') { // Space
292
+ if (!choices[currentIndex].disabled) {
293
+ if (selected.has(currentIndex)) {
294
+ selected.delete(currentIndex);
357
295
  }
358
- process.stdin.resume();
359
- var handleKeypress = function (key) {
360
- var keyStr = key.toString();
361
- if (keyStr === '\x1b[A') { // Up
362
- currentIndex = (currentIndex - 1 + choices.length) % choices.length;
363
- displayChoices();
364
- }
365
- else if (keyStr === '\x1b[B') { // Down
366
- currentIndex = (currentIndex + 1) % choices.length;
367
- displayChoices();
368
- }
369
- else if (keyStr === ' ') { // Space
370
- if (!choices[currentIndex].disabled) {
371
- if (selected.has(currentIndex)) {
372
- selected["delete"](currentIndex);
373
- }
374
- else {
375
- // Check max limit
376
- if (!max || selected.size < max) {
377
- selected.add(currentIndex);
378
- }
379
- }
380
- displayChoices();
381
- }
382
- }
383
- else if (keyStr === '\r' || keyStr === '\n') { // Enter
384
- // Validate selection
385
- if (required && selected.size === 0) {
386
- _this.formatter.writeln(_this.formatter.error(' At least one option must be selected'));
387
- return;
388
- }
389
- if (min && selected.size < min) {
390
- _this.formatter.writeln(_this.formatter.error(" At least " + min + " options must be selected"));
391
- return;
392
- }
393
- cleanup();
394
- var selectedValues = Array.from(selected).map(function (i) { return choices[i].value; });
395
- var selectedLabels = Array.from(selected).map(function (i) { return choices[i].label; });
396
- _this.formatter.writeln();
397
- _this.formatter.writeln(_this.formatter.success("Selected: " + selectedLabels.join(', ')));
398
- resolve(selectedValues);
399
- }
400
- else if (keyStr === '\x03') { // Ctrl+C
401
- cleanup();
402
- reject(new Error('User cancelled'));
296
+ else {
297
+ // Check max limit
298
+ if (!max || selected.size < max) {
299
+ selected.add(currentIndex);
403
300
  }
404
- else if (keyStr === 'a') { // Select all
405
- if (!max || choices.length <= max) {
406
- for (var i = 0; i < choices.length; i++) {
407
- if (!choices[i].disabled) {
408
- selected.add(i);
409
- }
410
- }
411
- displayChoices();
412
- }
413
- }
414
- else if (keyStr === 'n') { // Select none
415
- selected.clear();
416
- displayChoices();
417
- }
418
- };
419
- var cleanup = function () {
420
- process.stdin.removeListener('data', handleKeypress);
421
- if (process.stdin.isTTY) {
422
- process.stdin.setRawMode(false);
301
+ }
302
+ displayChoices();
303
+ }
304
+ }
305
+ else if (keyStr === '\r' || keyStr === '\n') { // Enter
306
+ // Validate selection
307
+ if (required && selected.size === 0) {
308
+ this.formatter.writeln(this.formatter.error(' At least one option must be selected'));
309
+ return;
310
+ }
311
+ if (min && selected.size < min) {
312
+ this.formatter.writeln(this.formatter.error(` At least ${min} options must be selected`));
313
+ return;
314
+ }
315
+ cleanup();
316
+ const selectedValues = Array.from(selected).map(i => choices[i].value);
317
+ const selectedLabels = Array.from(selected).map(i => choices[i].label);
318
+ this.formatter.writeln();
319
+ this.formatter.writeln(this.formatter.success(`Selected: ${selectedLabels.join(', ')}`));
320
+ resolve(selectedValues);
321
+ }
322
+ else if (keyStr === '\x03') { // Ctrl+C
323
+ cleanup();
324
+ reject(new Error('User cancelled'));
325
+ }
326
+ else if (keyStr === 'a') { // Select all
327
+ if (!max || choices.length <= max) {
328
+ for (let i = 0; i < choices.length; i++) {
329
+ if (!choices[i].disabled) {
330
+ selected.add(i);
423
331
  }
424
- _this.close();
425
- };
426
- process.stdin.on('data', handleKeypress);
427
- })];
428
- });
332
+ }
333
+ displayChoices();
334
+ }
335
+ }
336
+ else if (keyStr === 'n') { // Select none
337
+ selected.clear();
338
+ displayChoices();
339
+ }
340
+ };
341
+ const cleanup = () => {
342
+ process.stdin.removeListener('data', handleKeypress);
343
+ if (process.stdin.isTTY) {
344
+ process.stdin.setRawMode(false);
345
+ }
346
+ this.close();
347
+ };
348
+ process.stdin.on('data', handleKeypress);
429
349
  });
430
- };
350
+ }
431
351
  // ============================================
432
352
  // Text Prompt (Multi-line)
433
353
  // ============================================
434
- PromptManager.prototype.text = function (message, placeholder) {
435
- return __awaiter(this, void 0, Promise, function () {
436
- var lines, line;
437
- return __generator(this, function (_a) {
438
- switch (_a.label) {
439
- case 0:
440
- this.formatter.writeln();
441
- this.formatter.writeln(this.formatter.bold("? " + message));
442
- if (placeholder) {
443
- this.formatter.writeln(this.formatter.dim(" " + placeholder));
444
- }
445
- this.formatter.writeln(this.formatter.dim(' (Enter an empty line to finish)'));
446
- this.formatter.writeln();
447
- lines = [];
448
- _a.label = 1;
449
- case 1:
450
- if (!true) return [3 /*break*/, 3];
451
- return [4 /*yield*/, this.question(' > ')];
452
- case 2:
453
- line = _a.sent();
454
- if (line === '') {
455
- return [3 /*break*/, 3];
456
- }
457
- lines.push(line);
458
- return [3 /*break*/, 1];
459
- case 3:
460
- this.close();
461
- return [2 /*return*/, lines.join('\n')];
462
- }
463
- });
464
- });
465
- };
354
+ async text(message, placeholder) {
355
+ this.formatter.writeln();
356
+ this.formatter.writeln(this.formatter.bold(`? ${message}`));
357
+ if (placeholder) {
358
+ this.formatter.writeln(this.formatter.dim(` ${placeholder}`));
359
+ }
360
+ this.formatter.writeln(this.formatter.dim(' (Enter an empty line to finish)'));
361
+ this.formatter.writeln();
362
+ const lines = [];
363
+ while (true) {
364
+ const line = await this.question(' > ');
365
+ if (line === '') {
366
+ break;
367
+ }
368
+ lines.push(line);
369
+ }
370
+ this.close();
371
+ return lines.join('\n');
372
+ }
466
373
  // ============================================
467
374
  // Number Prompt
468
375
  // ============================================
469
- PromptManager.prototype.number = function (message, options) {
470
- if (options === void 0) { options = {}; }
471
- return __awaiter(this, void 0, Promise, function () {
472
- var defaultValue, min, max, validate, result;
473
- return __generator(this, function (_a) {
474
- switch (_a.label) {
475
- case 0:
476
- defaultValue = options["default"], min = options.min, max = options.max;
477
- validate = function (value) {
478
- var num = Number(value);
479
- if (isNaN(num)) {
480
- return 'Please enter a valid number';
481
- }
482
- if (min !== undefined && num < min) {
483
- return "Value must be at least " + min;
484
- }
485
- if (max !== undefined && num > max) {
486
- return "Value must be at most " + max;
487
- }
488
- return true;
489
- };
490
- return [4 /*yield*/, this.input({
491
- message: message,
492
- "default": defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.toString(),
493
- validate: validate
494
- })];
495
- case 1:
496
- result = _a.sent();
497
- return [2 /*return*/, Number(result)];
498
- }
499
- });
376
+ async number(message, options = {}) {
377
+ const { default: defaultValue, min, max } = options;
378
+ const validate = (value) => {
379
+ const num = Number(value);
380
+ if (isNaN(num)) {
381
+ return 'Please enter a valid number';
382
+ }
383
+ if (min !== undefined && num < min) {
384
+ return `Value must be at least ${min}`;
385
+ }
386
+ if (max !== undefined && num > max) {
387
+ return `Value must be at most ${max}`;
388
+ }
389
+ return true;
390
+ };
391
+ const result = await this.input({
392
+ message,
393
+ default: defaultValue?.toString(),
394
+ validate
500
395
  });
501
- };
396
+ return Number(result);
397
+ }
502
398
  // ============================================
503
399
  // Autocomplete Prompt
504
400
  // ============================================
505
- PromptManager.prototype.autocomplete = function (message, choices, options) {
506
- if (options === void 0) { options = {}; }
507
- return __awaiter(this, void 0, Promise, function () {
508
- var _a, limit, query, selectedIndex, filteredChoices, filterChoices, displayChoices, i;
509
- var _this = this;
510
- return __generator(this, function (_b) {
511
- _a = options.limit, limit = _a === void 0 ? 10 : _a;
512
- this.formatter.writeln();
513
- this.formatter.writeln(this.formatter.bold("? " + message));
514
- this.formatter.writeln(this.formatter.dim(' (Type to filter, arrow keys to navigate)'));
515
- query = '';
516
- selectedIndex = 0;
517
- filteredChoices = choices.slice(0, limit);
518
- filterChoices = function (q) {
519
- if (q === '')
520
- return choices.slice(0, limit);
521
- var normalized = q.toLowerCase();
522
- return choices
523
- .filter(function (c) { return c.label.toLowerCase().includes(normalized); })
524
- .slice(0, limit);
525
- };
526
- displayChoices = function () {
527
- // Clear previous output
528
- process.stdout.write("\u001B[" + (filteredChoices.length + 1) + "A");
529
- process.stdout.write('\x1b[J');
530
- // Show input
531
- _this.formatter.writeln(" " + _this.formatter.dim('>') + " " + query);
532
- // Show filtered options
533
- for (var i = 0; i < filteredChoices.length; i++) {
534
- var choice = filteredChoices[i];
535
- var isSelected = i === selectedIndex;
536
- var prefix = isSelected ? _this.formatter.info('>') : ' ';
537
- var label = isSelected ? _this.formatter.highlight(choice.label) : choice.label;
538
- _this.formatter.writeln(" " + prefix + " " + label);
401
+ async autocomplete(message, choices, options = {}) {
402
+ const { limit = 10 } = options;
403
+ this.formatter.writeln();
404
+ this.formatter.writeln(this.formatter.bold(`? ${message}`));
405
+ this.formatter.writeln(this.formatter.dim(' (Type to filter, arrow keys to navigate)'));
406
+ let query = '';
407
+ let selectedIndex = 0;
408
+ let filteredChoices = choices.slice(0, limit);
409
+ const filterChoices = (q) => {
410
+ if (q === '')
411
+ return choices.slice(0, limit);
412
+ const normalized = q.toLowerCase();
413
+ return choices
414
+ .filter(c => c.label.toLowerCase().includes(normalized))
415
+ .slice(0, limit);
416
+ };
417
+ const displayChoices = () => {
418
+ // Clear previous output
419
+ process.stdout.write(`\x1b[${filteredChoices.length + 1}A`);
420
+ process.stdout.write('\x1b[J');
421
+ // Show input
422
+ this.formatter.writeln(` ${this.formatter.dim('>')} ${query}`);
423
+ // Show filtered options
424
+ for (let i = 0; i < filteredChoices.length; i++) {
425
+ const choice = filteredChoices[i];
426
+ const isSelected = i === selectedIndex;
427
+ const prefix = isSelected ? this.formatter.info('>') : ' ';
428
+ const label = isSelected ? this.formatter.highlight(choice.label) : choice.label;
429
+ this.formatter.writeln(` ${prefix} ${label}`);
430
+ }
431
+ };
432
+ // Initial display
433
+ this.formatter.writeln('');
434
+ for (let i = 0; i < limit; i++) {
435
+ this.formatter.writeln('');
436
+ }
437
+ displayChoices();
438
+ return new Promise((resolve, reject) => {
439
+ const rl = this.createInterface();
440
+ if (process.stdin.isTTY) {
441
+ process.stdin.setRawMode(true);
442
+ }
443
+ process.stdin.resume();
444
+ const handleKeypress = (key) => {
445
+ const keyStr = key.toString();
446
+ if (keyStr === '\x1b[A') { // Up
447
+ selectedIndex = Math.max(0, selectedIndex - 1);
448
+ displayChoices();
449
+ }
450
+ else if (keyStr === '\x1b[B') { // Down
451
+ selectedIndex = Math.min(filteredChoices.length - 1, selectedIndex + 1);
452
+ displayChoices();
453
+ }
454
+ else if (keyStr === '\r' || keyStr === '\n') { // Enter
455
+ if (filteredChoices.length > 0) {
456
+ cleanup();
457
+ const selected = filteredChoices[selectedIndex];
458
+ this.formatter.writeln();
459
+ this.formatter.writeln(this.formatter.success(`Selected: ${selected.label}`));
460
+ resolve(selected.value);
539
461
  }
540
- };
541
- // Initial display
542
- this.formatter.writeln('');
543
- for (i = 0; i < limit; i++) {
544
- this.formatter.writeln('');
545
462
  }
546
- displayChoices();
547
- return [2 /*return*/, new Promise(function (resolve, reject) {
548
- var rl = _this.createInterface();
549
- if (process.stdin.isTTY) {
550
- process.stdin.setRawMode(true);
551
- }
552
- process.stdin.resume();
553
- var handleKeypress = function (key) {
554
- var keyStr = key.toString();
555
- if (keyStr === '\x1b[A') { // Up
556
- selectedIndex = Math.max(0, selectedIndex - 1);
557
- displayChoices();
558
- }
559
- else if (keyStr === '\x1b[B') { // Down
560
- selectedIndex = Math.min(filteredChoices.length - 1, selectedIndex + 1);
561
- displayChoices();
562
- }
563
- else if (keyStr === '\r' || keyStr === '\n') { // Enter
564
- if (filteredChoices.length > 0) {
565
- cleanup();
566
- var selected = filteredChoices[selectedIndex];
567
- _this.formatter.writeln();
568
- _this.formatter.writeln(_this.formatter.success("Selected: " + selected.label));
569
- resolve(selected.value);
570
- }
571
- }
572
- else if (keyStr === '\x7f' || keyStr === '\x08') { // Backspace
573
- query = query.slice(0, -1);
574
- filteredChoices = filterChoices(query);
575
- selectedIndex = 0;
576
- displayChoices();
577
- }
578
- else if (keyStr === '\x03') { // Ctrl+C
579
- cleanup();
580
- reject(new Error('User cancelled'));
581
- }
582
- else if (keyStr.charCodeAt(0) >= 32 && keyStr.charCodeAt(0) < 127) {
583
- // Printable character
584
- query += keyStr;
585
- filteredChoices = filterChoices(query);
586
- selectedIndex = 0;
587
- displayChoices();
588
- }
589
- };
590
- var cleanup = function () {
591
- process.stdin.removeListener('data', handleKeypress);
592
- if (process.stdin.isTTY) {
593
- process.stdin.setRawMode(false);
594
- }
595
- _this.close();
596
- };
597
- process.stdin.on('data', handleKeypress);
598
- })];
599
- });
463
+ else if (keyStr === '\x7f' || keyStr === '\x08') { // Backspace
464
+ query = query.slice(0, -1);
465
+ filteredChoices = filterChoices(query);
466
+ selectedIndex = 0;
467
+ displayChoices();
468
+ }
469
+ else if (keyStr === '\x03') { // Ctrl+C
470
+ cleanup();
471
+ reject(new Error('User cancelled'));
472
+ }
473
+ else if (keyStr.charCodeAt(0) >= 32 && keyStr.charCodeAt(0) < 127) {
474
+ // Printable character
475
+ query += keyStr;
476
+ filteredChoices = filterChoices(query);
477
+ selectedIndex = 0;
478
+ displayChoices();
479
+ }
480
+ };
481
+ const cleanup = () => {
482
+ process.stdin.removeListener('data', handleKeypress);
483
+ if (process.stdin.isTTY) {
484
+ process.stdin.setRawMode(false);
485
+ }
486
+ this.close();
487
+ };
488
+ process.stdin.on('data', handleKeypress);
600
489
  });
601
- };
602
- return PromptManager;
603
- }());
490
+ }
491
+ }
604
492
  // Export singleton and convenience functions
605
- export var promptManager = new PromptManager();
606
- export var select = function (options) {
607
- return promptManager.select(options);
608
- };
609
- export var confirm = function (options) {
610
- return promptManager.confirm(options);
611
- };
612
- export var input = function (options) {
613
- return promptManager.input(options);
614
- };
615
- export var multiSelect = function (options) {
616
- return promptManager.multiSelect(options);
617
- };
618
- export var text = function (message, placeholder) {
619
- return promptManager.text(message, placeholder);
620
- };
621
- export var number = function (message, options) {
622
- return promptManager.number(message, options);
623
- };
624
- export var autocomplete = function (message, choices, options) { return promptManager.autocomplete(message, choices, options); };
493
+ export const promptManager = new PromptManager();
494
+ export const select = (options) => promptManager.select(options);
495
+ export const confirm = (options) => promptManager.confirm(options);
496
+ export const input = (options) => promptManager.input(options);
497
+ export const multiSelect = (options) => promptManager.multiSelect(options);
498
+ export const text = (message, placeholder) => promptManager.text(message, placeholder);
499
+ export const number = (message, options) => promptManager.number(message, options);
500
+ export const autocomplete = (message, choices, options) => promptManager.autocomplete(message, choices, options);
625
501
  //# sourceMappingURL=prompt.js.map