@nac3/forge-cli 0.2.0-alpha.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 (561) hide show
  1. package/LICENSE +45 -0
  2. package/README.md +371 -0
  3. package/dist/bin/yf.d.ts +5 -0
  4. package/dist/bin/yf.d.ts.map +1 -0
  5. package/dist/bin/yf.js +86 -0
  6. package/dist/bin/yf.js.map +1 -0
  7. package/dist/chat/claude.d.ts +100 -0
  8. package/dist/chat/claude.d.ts.map +1 -0
  9. package/dist/chat/claude.js +228 -0
  10. package/dist/chat/claude.js.map +1 -0
  11. package/dist/chat/ingest_session.d.ts +97 -0
  12. package/dist/chat/ingest_session.d.ts.map +1 -0
  13. package/dist/chat/ingest_session.js +99 -0
  14. package/dist/chat/ingest_session.js.map +1 -0
  15. package/dist/chat/panel.d.ts +15 -0
  16. package/dist/chat/panel.d.ts.map +1 -0
  17. package/dist/chat/panel.js +1526 -0
  18. package/dist/chat/panel.js.map +1 -0
  19. package/dist/chat/persistence.d.ts +37 -0
  20. package/dist/chat/persistence.d.ts.map +1 -0
  21. package/dist/chat/persistence.js +91 -0
  22. package/dist/chat/persistence.js.map +1 -0
  23. package/dist/chat/server.d.ts +34 -0
  24. package/dist/chat/server.d.ts.map +1 -0
  25. package/dist/chat/server.js +1540 -0
  26. package/dist/chat/server.js.map +1 -0
  27. package/dist/chat/spec_extract.d.ts +35 -0
  28. package/dist/chat/spec_extract.d.ts.map +1 -0
  29. package/dist/chat/spec_extract.js +152 -0
  30. package/dist/chat/spec_extract.js.map +1 -0
  31. package/dist/chat/spec_plan.d.ts +65 -0
  32. package/dist/chat/spec_plan.d.ts.map +1 -0
  33. package/dist/chat/spec_plan.js +160 -0
  34. package/dist/chat/spec_plan.js.map +1 -0
  35. package/dist/chat/spec_scaffold.d.ts +95 -0
  36. package/dist/chat/spec_scaffold.d.ts.map +1 -0
  37. package/dist/chat/spec_scaffold.js +220 -0
  38. package/dist/chat/spec_scaffold.js.map +1 -0
  39. package/dist/chat/tools/git.d.ts +59 -0
  40. package/dist/chat/tools/git.d.ts.map +1 -0
  41. package/dist/chat/tools/git.js +313 -0
  42. package/dist/chat/tools/git.js.map +1 -0
  43. package/dist/chat/tools/github.d.ts +59 -0
  44. package/dist/chat/tools/github.d.ts.map +1 -0
  45. package/dist/chat/tools/github.js +310 -0
  46. package/dist/chat/tools/github.js.map +1 -0
  47. package/dist/chat/tools/lifecycle.d.ts +82 -0
  48. package/dist/chat/tools/lifecycle.d.ts.map +1 -0
  49. package/dist/chat/tools/lifecycle.js +295 -0
  50. package/dist/chat/tools/lifecycle.js.map +1 -0
  51. package/dist/chat/tools/manual.d.ts +26 -0
  52. package/dist/chat/tools/manual.d.ts.map +1 -0
  53. package/dist/chat/tools/manual.js +164 -0
  54. package/dist/chat/tools/manual.js.map +1 -0
  55. package/dist/chat/tools/reader.d.ts +80 -0
  56. package/dist/chat/tools/reader.d.ts.map +1 -0
  57. package/dist/chat/tools/reader.js +471 -0
  58. package/dist/chat/tools/reader.js.map +1 -0
  59. package/dist/chat/tools.d.ts +106 -0
  60. package/dist/chat/tools.d.ts.map +1 -0
  61. package/dist/chat/tools.js +587 -0
  62. package/dist/chat/tools.js.map +1 -0
  63. package/dist/codegen/e2e.d.ts +106 -0
  64. package/dist/codegen/e2e.d.ts.map +1 -0
  65. package/dist/codegen/e2e.js +931 -0
  66. package/dist/codegen/e2e.js.map +1 -0
  67. package/dist/codegen/v3_flow_emit.d.ts +70 -0
  68. package/dist/codegen/v3_flow_emit.d.ts.map +1 -0
  69. package/dist/codegen/v3_flow_emit.js +225 -0
  70. package/dist/codegen/v3_flow_emit.js.map +1 -0
  71. package/dist/commands/_stub.d.ts +2 -0
  72. package/dist/commands/_stub.d.ts.map +1 -0
  73. package/dist/commands/_stub.js +21 -0
  74. package/dist/commands/_stub.js.map +1 -0
  75. package/dist/commands/app.d.ts +31 -0
  76. package/dist/commands/app.d.ts.map +1 -0
  77. package/dist/commands/app.js +331 -0
  78. package/dist/commands/app.js.map +1 -0
  79. package/dist/commands/chat.d.ts +18 -0
  80. package/dist/commands/chat.d.ts.map +1 -0
  81. package/dist/commands/chat.js +76 -0
  82. package/dist/commands/chat.js.map +1 -0
  83. package/dist/commands/deploy.d.ts +21 -0
  84. package/dist/commands/deploy.d.ts.map +1 -0
  85. package/dist/commands/deploy.js +121 -0
  86. package/dist/commands/deploy.js.map +1 -0
  87. package/dist/commands/doctor.d.ts +14 -0
  88. package/dist/commands/doctor.d.ts.map +1 -0
  89. package/dist/commands/doctor.js +280 -0
  90. package/dist/commands/doctor.js.map +1 -0
  91. package/dist/commands/figma.d.ts +32 -0
  92. package/dist/commands/figma.d.ts.map +1 -0
  93. package/dist/commands/figma.js +141 -0
  94. package/dist/commands/figma.js.map +1 -0
  95. package/dist/commands/gen-flow-tests.d.ts +8 -0
  96. package/dist/commands/gen-flow-tests.d.ts.map +1 -0
  97. package/dist/commands/gen-flow-tests.js +78 -0
  98. package/dist/commands/gen-flow-tests.js.map +1 -0
  99. package/dist/commands/gen-tests.d.ts +9 -0
  100. package/dist/commands/gen-tests.d.ts.map +1 -0
  101. package/dist/commands/gen-tests.js +118 -0
  102. package/dist/commands/gen-tests.js.map +1 -0
  103. package/dist/commands/license.d.ts +14 -0
  104. package/dist/commands/license.d.ts.map +1 -0
  105. package/dist/commands/license.js +182 -0
  106. package/dist/commands/license.js.map +1 -0
  107. package/dist/commands/log.d.ts +19 -0
  108. package/dist/commands/log.d.ts.map +1 -0
  109. package/dist/commands/log.js +101 -0
  110. package/dist/commands/log.js.map +1 -0
  111. package/dist/commands/migrate.d.ts +118 -0
  112. package/dist/commands/migrate.d.ts.map +1 -0
  113. package/dist/commands/migrate.js +1410 -0
  114. package/dist/commands/migrate.js.map +1 -0
  115. package/dist/commands/mobile.d.ts +27 -0
  116. package/dist/commands/mobile.d.ts.map +1 -0
  117. package/dist/commands/mobile.js +90 -0
  118. package/dist/commands/mobile.js.map +1 -0
  119. package/dist/commands/new.d.ts +32 -0
  120. package/dist/commands/new.d.ts.map +1 -0
  121. package/dist/commands/new.js +107 -0
  122. package/dist/commands/new.js.map +1 -0
  123. package/dist/commands/pilot.d.ts +8 -0
  124. package/dist/commands/pilot.d.ts.map +1 -0
  125. package/dist/commands/pilot.js +104 -0
  126. package/dist/commands/pilot.js.map +1 -0
  127. package/dist/commands/projects.d.ts +21 -0
  128. package/dist/commands/projects.d.ts.map +1 -0
  129. package/dist/commands/projects.js +238 -0
  130. package/dist/commands/projects.js.map +1 -0
  131. package/dist/commands/publish.d.ts +35 -0
  132. package/dist/commands/publish.d.ts.map +1 -0
  133. package/dist/commands/publish.js +194 -0
  134. package/dist/commands/publish.js.map +1 -0
  135. package/dist/commands/repo.d.ts +59 -0
  136. package/dist/commands/repo.d.ts.map +1 -0
  137. package/dist/commands/repo.js +178 -0
  138. package/dist/commands/repo.js.map +1 -0
  139. package/dist/commands/review-screens.d.ts +28 -0
  140. package/dist/commands/review-screens.d.ts.map +1 -0
  141. package/dist/commands/review-screens.js +345 -0
  142. package/dist/commands/review-screens.js.map +1 -0
  143. package/dist/commands/scenarios.d.ts +23 -0
  144. package/dist/commands/scenarios.d.ts.map +1 -0
  145. package/dist/commands/scenarios.js +304 -0
  146. package/dist/commands/scenarios.js.map +1 -0
  147. package/dist/commands/ship.d.ts +18 -0
  148. package/dist/commands/ship.d.ts.map +1 -0
  149. package/dist/commands/ship.js +41 -0
  150. package/dist/commands/ship.js.map +1 -0
  151. package/dist/commands/test.d.ts +29 -0
  152. package/dist/commands/test.d.ts.map +1 -0
  153. package/dist/commands/test.js +62 -0
  154. package/dist/commands/test.js.map +1 -0
  155. package/dist/commands/tunnel.d.ts +22 -0
  156. package/dist/commands/tunnel.d.ts.map +1 -0
  157. package/dist/commands/tunnel.js +77 -0
  158. package/dist/commands/tunnel.js.map +1 -0
  159. package/dist/commands/validate.d.ts +14 -0
  160. package/dist/commands/validate.d.ts.map +1 -0
  161. package/dist/commands/validate.js +51 -0
  162. package/dist/commands/validate.js.map +1 -0
  163. package/dist/commands/vault.d.ts +32 -0
  164. package/dist/commands/vault.d.ts.map +1 -0
  165. package/dist/commands/vault.js +489 -0
  166. package/dist/commands/vault.js.map +1 -0
  167. package/dist/commands/voice.d.ts +16 -0
  168. package/dist/commands/voice.d.ts.map +1 -0
  169. package/dist/commands/voice.js +69 -0
  170. package/dist/commands/voice.js.map +1 -0
  171. package/dist/core/cascade_router.d.ts +90 -0
  172. package/dist/core/cascade_router.d.ts.map +1 -0
  173. package/dist/core/cascade_router.js +131 -0
  174. package/dist/core/cascade_router.js.map +1 -0
  175. package/dist/core/cf_tunnel.d.ts +52 -0
  176. package/dist/core/cf_tunnel.d.ts.map +1 -0
  177. package/dist/core/cf_tunnel.js +134 -0
  178. package/dist/core/cf_tunnel.js.map +1 -0
  179. package/dist/core/gha_dispatcher.d.ts +48 -0
  180. package/dist/core/gha_dispatcher.d.ts.map +1 -0
  181. package/dist/core/gha_dispatcher.js +198 -0
  182. package/dist/core/gha_dispatcher.js.map +1 -0
  183. package/dist/core/logger.d.ts +89 -0
  184. package/dist/core/logger.d.ts.map +1 -0
  185. package/dist/core/logger.js +245 -0
  186. package/dist/core/logger.js.map +1 -0
  187. package/dist/core/mode.d.ts +26 -0
  188. package/dist/core/mode.d.ts.map +1 -0
  189. package/dist/core/mode.js +122 -0
  190. package/dist/core/mode.js.map +1 -0
  191. package/dist/core/pairing.d.ts +40 -0
  192. package/dist/core/pairing.d.ts.map +1 -0
  193. package/dist/core/pairing.js +145 -0
  194. package/dist/core/pairing.js.map +1 -0
  195. package/dist/core/pilot_setup.d.ts +29 -0
  196. package/dist/core/pilot_setup.d.ts.map +1 -0
  197. package/dist/core/pilot_setup.js +119 -0
  198. package/dist/core/pilot_setup.js.map +1 -0
  199. package/dist/core/polar.d.ts +81 -0
  200. package/dist/core/polar.d.ts.map +1 -0
  201. package/dist/core/polar.js +175 -0
  202. package/dist/core/polar.js.map +1 -0
  203. package/dist/core/project_picker.d.ts +56 -0
  204. package/dist/core/project_picker.d.ts.map +1 -0
  205. package/dist/core/project_picker.js +86 -0
  206. package/dist/core/project_picker.js.map +1 -0
  207. package/dist/core/projects.d.ts +58 -0
  208. package/dist/core/projects.d.ts.map +1 -0
  209. package/dist/core/projects.js +146 -0
  210. package/dist/core/projects.js.map +1 -0
  211. package/dist/core/projects_sync.d.ts +80 -0
  212. package/dist/core/projects_sync.d.ts.map +1 -0
  213. package/dist/core/projects_sync.js +278 -0
  214. package/dist/core/projects_sync.js.map +1 -0
  215. package/dist/core/remote_runner.d.ts +70 -0
  216. package/dist/core/remote_runner.d.ts.map +1 -0
  217. package/dist/core/remote_runner.js +133 -0
  218. package/dist/core/remote_runner.js.map +1 -0
  219. package/dist/core/repo_state.d.ts +24 -0
  220. package/dist/core/repo_state.d.ts.map +1 -0
  221. package/dist/core/repo_state.js +109 -0
  222. package/dist/core/repo_state.js.map +1 -0
  223. package/dist/core/target.d.ts +31 -0
  224. package/dist/core/target.d.ts.map +1 -0
  225. package/dist/core/target.js +121 -0
  226. package/dist/core/target.js.map +1 -0
  227. package/dist/deploy/aws.d.ts +43 -0
  228. package/dist/deploy/aws.d.ts.map +1 -0
  229. package/dist/deploy/aws.js +173 -0
  230. package/dist/deploy/aws.js.map +1 -0
  231. package/dist/figma/api.d.ts +35 -0
  232. package/dist/figma/api.d.ts.map +1 -0
  233. package/dist/figma/api.js +40 -0
  234. package/dist/figma/api.js.map +1 -0
  235. package/dist/figma/decorator.d.ts +74 -0
  236. package/dist/figma/decorator.d.ts.map +1 -0
  237. package/dist/figma/decorator.js +210 -0
  238. package/dist/figma/decorator.js.map +1 -0
  239. package/dist/figma/heuristics.d.ts +29 -0
  240. package/dist/figma/heuristics.d.ts.map +1 -0
  241. package/dist/figma/heuristics.js +110 -0
  242. package/dist/figma/heuristics.js.map +1 -0
  243. package/dist/figma/normalize.d.ts +33 -0
  244. package/dist/figma/normalize.d.ts.map +1 -0
  245. package/dist/figma/normalize.js +101 -0
  246. package/dist/figma/normalize.js.map +1 -0
  247. package/dist/figma/tokens.d.ts +23 -0
  248. package/dist/figma/tokens.d.ts.map +1 -0
  249. package/dist/figma/tokens.js +111 -0
  250. package/dist/figma/tokens.js.map +1 -0
  251. package/dist/figma/types.d.ts +118 -0
  252. package/dist/figma/types.d.ts.map +1 -0
  253. package/dist/figma/types.js +12 -0
  254. package/dist/figma/types.js.map +1 -0
  255. package/dist/i18n/index.d.ts +48 -0
  256. package/dist/i18n/index.d.ts.map +1 -0
  257. package/dist/i18n/index.js +135 -0
  258. package/dist/i18n/index.js.map +1 -0
  259. package/dist/i18n/types.d.ts +52 -0
  260. package/dist/i18n/types.d.ts.map +1 -0
  261. package/dist/i18n/types.js +85 -0
  262. package/dist/i18n/types.js.map +1 -0
  263. package/dist/index.d.ts +12 -0
  264. package/dist/index.d.ts.map +1 -0
  265. package/dist/index.js +11 -0
  266. package/dist/index.js.map +1 -0
  267. package/dist/lan/mdns_packet.d.ts +74 -0
  268. package/dist/lan/mdns_packet.d.ts.map +1 -0
  269. package/dist/lan/mdns_packet.js +247 -0
  270. package/dist/lan/mdns_packet.js.map +1 -0
  271. package/dist/lan/mdns_service.d.ts +102 -0
  272. package/dist/lan/mdns_service.d.ts.map +1 -0
  273. package/dist/lan/mdns_service.js +206 -0
  274. package/dist/lan/mdns_service.js.map +1 -0
  275. package/dist/license/activate.d.ts +33 -0
  276. package/dist/license/activate.d.ts.map +1 -0
  277. package/dist/license/activate.js +135 -0
  278. package/dist/license/activate.js.map +1 -0
  279. package/dist/license/fingerprint.d.ts +2 -0
  280. package/dist/license/fingerprint.d.ts.map +1 -0
  281. package/dist/license/fingerprint.js +29 -0
  282. package/dist/license/fingerprint.js.map +1 -0
  283. package/dist/license/hito4_client.d.ts +24 -0
  284. package/dist/license/hito4_client.d.ts.map +1 -0
  285. package/dist/license/hito4_client.js +103 -0
  286. package/dist/license/hito4_client.js.map +1 -0
  287. package/dist/license/index.d.ts +22 -0
  288. package/dist/license/index.d.ts.map +1 -0
  289. package/dist/license/index.js +125 -0
  290. package/dist/license/index.js.map +1 -0
  291. package/dist/license/types.d.ts +38 -0
  292. package/dist/license/types.d.ts.map +1 -0
  293. package/dist/license/types.js +9 -0
  294. package/dist/license/types.js.map +1 -0
  295. package/dist/migrate/ai-apply.d.ts +198 -0
  296. package/dist/migrate/ai-apply.d.ts.map +1 -0
  297. package/dist/migrate/ai-apply.js +833 -0
  298. package/dist/migrate/ai-apply.js.map +1 -0
  299. package/dist/migrate/ai-decorator.d.ts +87 -0
  300. package/dist/migrate/ai-decorator.d.ts.map +1 -0
  301. package/dist/migrate/ai-decorator.js +203 -0
  302. package/dist/migrate/ai-decorator.js.map +1 -0
  303. package/dist/migrate/apply.d.ts +28 -0
  304. package/dist/migrate/apply.d.ts.map +1 -0
  305. package/dist/migrate/apply.js +119 -0
  306. package/dist/migrate/apply.js.map +1 -0
  307. package/dist/migrate/audit.d.ts +9 -0
  308. package/dist/migrate/audit.d.ts.map +1 -0
  309. package/dist/migrate/audit.js +197 -0
  310. package/dist/migrate/audit.js.map +1 -0
  311. package/dist/migrate/diff.d.ts +28 -0
  312. package/dist/migrate/diff.d.ts.map +1 -0
  313. package/dist/migrate/diff.js +154 -0
  314. package/dist/migrate/diff.js.map +1 -0
  315. package/dist/migrate/html-orchestrator.d.ts +81 -0
  316. package/dist/migrate/html-orchestrator.d.ts.map +1 -0
  317. package/dist/migrate/html-orchestrator.js +233 -0
  318. package/dist/migrate/html-orchestrator.js.map +1 -0
  319. package/dist/migrate/html-walker.d.ts +93 -0
  320. package/dist/migrate/html-walker.d.ts.map +1 -0
  321. package/dist/migrate/html-walker.js +288 -0
  322. package/dist/migrate/html-walker.js.map +1 -0
  323. package/dist/migrate/js-template-walker.d.ts +118 -0
  324. package/dist/migrate/js-template-walker.d.ts.map +1 -0
  325. package/dist/migrate/js-template-walker.js +644 -0
  326. package/dist/migrate/js-template-walker.js.map +1 -0
  327. package/dist/migrate/manifest-validator.d.ts +30 -0
  328. package/dist/migrate/manifest-validator.d.ts.map +1 -0
  329. package/dist/migrate/manifest-validator.js +261 -0
  330. package/dist/migrate/manifest-validator.js.map +1 -0
  331. package/dist/migrate/overrides.d.ts +58 -0
  332. package/dist/migrate/overrides.d.ts.map +1 -0
  333. package/dist/migrate/overrides.js +193 -0
  334. package/dist/migrate/overrides.js.map +1 -0
  335. package/dist/migrate/plugin-scope.d.ts +42 -0
  336. package/dist/migrate/plugin-scope.d.ts.map +1 -0
  337. package/dist/migrate/plugin-scope.js +94 -0
  338. package/dist/migrate/plugin-scope.js.map +1 -0
  339. package/dist/migrate/types.d.ts +45 -0
  340. package/dist/migrate/types.d.ts.map +1 -0
  341. package/dist/migrate/types.js +9 -0
  342. package/dist/migrate/types.js.map +1 -0
  343. package/dist/migrate/verb-inference.d.ts +37 -0
  344. package/dist/migrate/verb-inference.d.ts.map +1 -0
  345. package/dist/migrate/verb-inference.js +274 -0
  346. package/dist/migrate/verb-inference.js.map +1 -0
  347. package/dist/nac3/attrs.d.ts +87 -0
  348. package/dist/nac3/attrs.d.ts.map +1 -0
  349. package/dist/nac3/attrs.js +134 -0
  350. package/dist/nac3/attrs.js.map +1 -0
  351. package/dist/nac3/scenario_dsl.d.ts +71 -0
  352. package/dist/nac3/scenario_dsl.d.ts.map +1 -0
  353. package/dist/nac3/scenario_dsl.js +191 -0
  354. package/dist/nac3/scenario_dsl.js.map +1 -0
  355. package/dist/nac3/tokens.d.ts +126 -0
  356. package/dist/nac3/tokens.d.ts.map +1 -0
  357. package/dist/nac3/tokens.js +138 -0
  358. package/dist/nac3/tokens.js.map +1 -0
  359. package/dist/reader/parsers/csv.d.ts +42 -0
  360. package/dist/reader/parsers/csv.d.ts.map +1 -0
  361. package/dist/reader/parsers/csv.js +221 -0
  362. package/dist/reader/parsers/csv.js.map +1 -0
  363. package/dist/reader/parsers/docx.d.ts +31 -0
  364. package/dist/reader/parsers/docx.d.ts.map +1 -0
  365. package/dist/reader/parsers/docx.js +51 -0
  366. package/dist/reader/parsers/docx.js.map +1 -0
  367. package/dist/reader/parsers/epub.d.ts +39 -0
  368. package/dist/reader/parsers/epub.d.ts.map +1 -0
  369. package/dist/reader/parsers/epub.js +265 -0
  370. package/dist/reader/parsers/epub.js.map +1 -0
  371. package/dist/reader/parsers/html.d.ts +40 -0
  372. package/dist/reader/parsers/html.d.ts.map +1 -0
  373. package/dist/reader/parsers/html.js +386 -0
  374. package/dist/reader/parsers/html.js.map +1 -0
  375. package/dist/reader/parsers/md.d.ts +30 -0
  376. package/dist/reader/parsers/md.d.ts.map +1 -0
  377. package/dist/reader/parsers/md.js +199 -0
  378. package/dist/reader/parsers/md.js.map +1 -0
  379. package/dist/reader/parsers/pdf.d.ts +39 -0
  380. package/dist/reader/parsers/pdf.d.ts.map +1 -0
  381. package/dist/reader/parsers/pdf.js +220 -0
  382. package/dist/reader/parsers/pdf.js.map +1 -0
  383. package/dist/reader/parsers/rtf.d.ts +37 -0
  384. package/dist/reader/parsers/rtf.d.ts.map +1 -0
  385. package/dist/reader/parsers/rtf.js +347 -0
  386. package/dist/reader/parsers/rtf.js.map +1 -0
  387. package/dist/reader/parsers/source.d.ts +32 -0
  388. package/dist/reader/parsers/source.d.ts.map +1 -0
  389. package/dist/reader/parsers/source.js +122 -0
  390. package/dist/reader/parsers/source.js.map +1 -0
  391. package/dist/reader/parsers/txt.d.ts +25 -0
  392. package/dist/reader/parsers/txt.d.ts.map +1 -0
  393. package/dist/reader/parsers/txt.js +56 -0
  394. package/dist/reader/parsers/txt.js.map +1 -0
  395. package/dist/reader/parsers/xlsx.d.ts +33 -0
  396. package/dist/reader/parsers/xlsx.d.ts.map +1 -0
  397. package/dist/reader/parsers/xlsx.js +143 -0
  398. package/dist/reader/parsers/xlsx.js.map +1 -0
  399. package/dist/reader/registry.d.ts +39 -0
  400. package/dist/reader/registry.d.ts.map +1 -0
  401. package/dist/reader/registry.js +172 -0
  402. package/dist/reader/registry.js.map +1 -0
  403. package/dist/reader/search.d.ts +27 -0
  404. package/dist/reader/search.d.ts.map +1 -0
  405. package/dist/reader/search.js +77 -0
  406. package/dist/reader/search.js.map +1 -0
  407. package/dist/reader/state.d.ts +56 -0
  408. package/dist/reader/state.d.ts.map +1 -0
  409. package/dist/reader/state.js +179 -0
  410. package/dist/reader/state.js.map +1 -0
  411. package/dist/reader/types.d.ts +119 -0
  412. package/dist/reader/types.d.ts.map +1 -0
  413. package/dist/reader/types.js +23 -0
  414. package/dist/reader/types.js.map +1 -0
  415. package/dist/ship/run.d.ts +26 -0
  416. package/dist/ship/run.d.ts.map +1 -0
  417. package/dist/ship/run.js +123 -0
  418. package/dist/ship/run.js.map +1 -0
  419. package/dist/template/index.d.ts +50 -0
  420. package/dist/template/index.d.ts.map +1 -0
  421. package/dist/template/index.js +140 -0
  422. package/dist/template/index.js.map +1 -0
  423. package/dist/ui/colors.d.ts +13 -0
  424. package/dist/ui/colors.d.ts.map +1 -0
  425. package/dist/ui/colors.js +26 -0
  426. package/dist/ui/colors.js.map +1 -0
  427. package/dist/validate/index.d.ts +19 -0
  428. package/dist/validate/index.d.ts.map +1 -0
  429. package/dist/validate/index.js +181 -0
  430. package/dist/validate/index.js.map +1 -0
  431. package/dist/vault/catalog.d.ts +55 -0
  432. package/dist/vault/catalog.d.ts.map +1 -0
  433. package/dist/vault/catalog.js +424 -0
  434. package/dist/vault/catalog.js.map +1 -0
  435. package/dist/vault/crypto.d.ts +82 -0
  436. package/dist/vault/crypto.d.ts.map +1 -0
  437. package/dist/vault/crypto.js +173 -0
  438. package/dist/vault/crypto.js.map +1 -0
  439. package/dist/vault/git_askpass.d.ts +26 -0
  440. package/dist/vault/git_askpass.d.ts.map +1 -0
  441. package/dist/vault/git_askpass.js +104 -0
  442. package/dist/vault/git_askpass.js.map +1 -0
  443. package/dist/vault/migrator.d.ts +57 -0
  444. package/dist/vault/migrator.d.ts.map +1 -0
  445. package/dist/vault/migrator.js +204 -0
  446. package/dist/vault/migrator.js.map +1 -0
  447. package/dist/vault/redactor.d.ts +73 -0
  448. package/dist/vault/redactor.d.ts.map +1 -0
  449. package/dist/vault/redactor.js +182 -0
  450. package/dist/vault/redactor.js.map +1 -0
  451. package/dist/vault/store.d.ts +132 -0
  452. package/dist/vault/store.d.ts.map +1 -0
  453. package/dist/vault/store.js +335 -0
  454. package/dist/vault/store.js.map +1 -0
  455. package/dist/version.d.ts +8 -0
  456. package/dist/version.d.ts.map +1 -0
  457. package/dist/version.js +8 -0
  458. package/dist/version.js.map +1 -0
  459. package/dist/voice/chunker.d.ts +43 -0
  460. package/dist/voice/chunker.d.ts.map +1 -0
  461. package/dist/voice/chunker.js +133 -0
  462. package/dist/voice/chunker.js.map +1 -0
  463. package/dist/voice/config.d.ts +14 -0
  464. package/dist/voice/config.d.ts.map +1 -0
  465. package/dist/voice/config.js +51 -0
  466. package/dist/voice/config.js.map +1 -0
  467. package/dist/voice/intents.d.ts +71 -0
  468. package/dist/voice/intents.d.ts.map +1 -0
  469. package/dist/voice/intents.js +0 -0
  470. package/dist/voice/intents.js.map +1 -0
  471. package/dist/voice/providers/elevenlabs.d.ts +53 -0
  472. package/dist/voice/providers/elevenlabs.d.ts.map +1 -0
  473. package/dist/voice/providers/elevenlabs.js +159 -0
  474. package/dist/voice/providers/elevenlabs.js.map +1 -0
  475. package/dist/voice/providers/google.d.ts +56 -0
  476. package/dist/voice/providers/google.d.ts.map +1 -0
  477. package/dist/voice/providers/google.js +253 -0
  478. package/dist/voice/providers/google.js.map +1 -0
  479. package/dist/voice/providers/whisper.d.ts +44 -0
  480. package/dist/voice/providers/whisper.d.ts.map +1 -0
  481. package/dist/voice/providers/whisper.js +179 -0
  482. package/dist/voice/providers/whisper.js.map +1 -0
  483. package/dist/voice/registry.d.ts +35 -0
  484. package/dist/voice/registry.d.ts.map +1 -0
  485. package/dist/voice/registry.js +48 -0
  486. package/dist/voice/registry.js.map +1 -0
  487. package/dist/voice/router.d.ts +62 -0
  488. package/dist/voice/router.d.ts.map +1 -0
  489. package/dist/voice/router.js +175 -0
  490. package/dist/voice/router.js.map +1 -0
  491. package/dist/voice/types.d.ts +116 -0
  492. package/dist/voice/types.d.ts.map +1 -0
  493. package/dist/voice/types.js +22 -0
  494. package/dist/voice/types.js.map +1 -0
  495. package/dist/voice/voiceprint/enrollment.d.ts +36 -0
  496. package/dist/voice/voiceprint/enrollment.d.ts.map +1 -0
  497. package/dist/voice/voiceprint/enrollment.js +71 -0
  498. package/dist/voice/voiceprint/enrollment.js.map +1 -0
  499. package/dist/voice/voiceprint/identify.d.ts +16 -0
  500. package/dist/voice/voiceprint/identify.d.ts.map +1 -0
  501. package/dist/voice/voiceprint/identify.js +20 -0
  502. package/dist/voice/voiceprint/identify.js.map +1 -0
  503. package/dist/voice/voiceprint/liveness.d.ts +90 -0
  504. package/dist/voice/voiceprint/liveness.d.ts.map +1 -0
  505. package/dist/voice/voiceprint/liveness.js +251 -0
  506. package/dist/voice/voiceprint/liveness.js.map +1 -0
  507. package/dist/voice/voiceprint/match.d.ts +54 -0
  508. package/dist/voice/voiceprint/match.d.ts.map +1 -0
  509. package/dist/voice/voiceprint/match.js +88 -0
  510. package/dist/voice/voiceprint/match.js.map +1 -0
  511. package/dist/voice/voiceprint/providers/local-mfcc-stub.d.ts +44 -0
  512. package/dist/voice/voiceprint/providers/local-mfcc-stub.d.ts.map +1 -0
  513. package/dist/voice/voiceprint/providers/local-mfcc-stub.js +92 -0
  514. package/dist/voice/voiceprint/providers/local-mfcc-stub.js.map +1 -0
  515. package/dist/voice/voiceprint/store.d.ts +60 -0
  516. package/dist/voice/voiceprint/store.d.ts.map +1 -0
  517. package/dist/voice/voiceprint/store.js +155 -0
  518. package/dist/voice/voiceprint/store.js.map +1 -0
  519. package/dist/voice/voiceprint/trust.d.ts +90 -0
  520. package/dist/voice/voiceprint/trust.d.ts.map +1 -0
  521. package/dist/voice/voiceprint/trust.js +150 -0
  522. package/dist/voice/voiceprint/trust.js.map +1 -0
  523. package/dist/voice/voiceprint/types.d.ts +100 -0
  524. package/dist/voice/voiceprint/types.d.ts.map +1 -0
  525. package/dist/voice/voiceprint/types.js +23 -0
  526. package/dist/voice/voiceprint/types.js.map +1 -0
  527. package/dist/voice/wake.d.ts +64 -0
  528. package/dist/voice/wake.d.ts.map +1 -0
  529. package/dist/voice/wake.js +143 -0
  530. package/dist/voice/wake.js.map +1 -0
  531. package/docs/manuals/manual.ar.html +91 -0
  532. package/docs/manuals/manual.de.html +100 -0
  533. package/docs/manuals/manual.en.html +118 -0
  534. package/docs/manuals/manual.es.html +120 -0
  535. package/docs/manuals/manual.fr.html +102 -0
  536. package/docs/manuals/manual.hi.html +93 -0
  537. package/docs/manuals/manual.it.html +93 -0
  538. package/docs/manuals/manual.ja.html +97 -0
  539. package/docs/manuals/manual.pt.html +103 -0
  540. package/docs/manuals/manual.zh.html +89 -0
  541. package/package.json +94 -0
  542. package/src/i18n/catalogs/ar.json +86 -0
  543. package/src/i18n/catalogs/de.json +86 -0
  544. package/src/i18n/catalogs/en.json +86 -0
  545. package/src/i18n/catalogs/es.json +86 -0
  546. package/src/i18n/catalogs/fr.json +86 -0
  547. package/src/i18n/catalogs/hi.json +86 -0
  548. package/src/i18n/catalogs/it.json +86 -0
  549. package/src/i18n/catalogs/ja.json +86 -0
  550. package/src/i18n/catalogs/pt.json +86 -0
  551. package/src/i18n/catalogs/zh.json +86 -0
  552. package/templates/react-app/README.md +43 -0
  553. package/templates/react-app/index.html +12 -0
  554. package/templates/react-app/package.json +35 -0
  555. package/templates/react-app/src/App.tsx +106 -0
  556. package/templates/react-app/src/main.tsx +21 -0
  557. package/templates/react-app/src/nac/manifest.ts +46 -0
  558. package/templates/react-app/src/styles.css +68 -0
  559. package/templates/react-app/tsconfig.json +19 -0
  560. package/templates/react-app/vite.config.ts +12 -0
  561. package/templates/react-app/yujin.forge.json +15 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/vault/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Vault cryptographic primitives.
3
+ *
4
+ * The vault encrypts user-provided credentials (Anthropic API key,
5
+ * Whisper key, ElevenLabs key, GitHub token, npm token, voiceprint
6
+ * embedding, etc) under a master key derived from a stable machine
7
+ * fingerprint + a per-install random salt.
8
+ *
9
+ * Threat model addressed:
10
+ * - Casual reads of the vault file from disk by other processes
11
+ * or accidental sync to cloud storage. The encrypted blob is
12
+ * useless without the master key.
13
+ * - Tampering: AES-256-GCM auth tag catches any modification.
14
+ *
15
+ * NOT addressed (intentional, per ROADMAP_VOICE_FORGE_2026_05_23.md
16
+ * sec 2.1):
17
+ * - Theft of the entire machine. Anyone with root + the disk +
18
+ * the same hostname/MAC/etc CAN re-derive the key. The vault is
19
+ * not a defense against a compromised host. It is a defense
20
+ * against accidental exposure (chat logs, cloud sync, etc).
21
+ *
22
+ * Loud failures per ROADMAP sec 12.2: tampered ciphertext throws,
23
+ * wrong-key decryption throws, short blobs throw, key length
24
+ * mismatches throw.
25
+ *
26
+ * ASCII-only.
27
+ */
28
+ /**
29
+ * Stable per-machine identity. Used as the entropy source for the
30
+ * vault master key, combined with a per-install random salt.
31
+ *
32
+ * Fields chosen to survive reboot but change when the user changes
33
+ * machine. None of them are secrets -- the secret is the SALT (and
34
+ * the scrypt work factor).
35
+ */
36
+ export interface MachineFingerprint {
37
+ hostname: string;
38
+ primaryMacAddress: string;
39
+ platform: string;
40
+ arch: string;
41
+ username: string;
42
+ }
43
+ /**
44
+ * Compute the current machine's fingerprint. Optional override lets
45
+ * tests inject deterministic values.
46
+ */
47
+ export declare function computeMachineFingerprint(override?: Partial<MachineFingerprint>): MachineFingerprint;
48
+ /**
49
+ * Derive a 32-byte AES key from the fingerprint + per-install salt.
50
+ * Deterministic for the same inputs -- the vault file is openable
51
+ * across processes on the same machine without persisting the key
52
+ * anywhere.
53
+ */
54
+ export declare function deriveVaultKey(fingerprint: MachineFingerprint, salt: Buffer): Buffer;
55
+ /**
56
+ * Encrypt a UTF-8 plaintext under the given key. Returns a single
57
+ * buffer with the layout:
58
+ *
59
+ * [12 bytes IV][N bytes ciphertext][16 bytes auth tag]
60
+ *
61
+ * The IV is fresh on every call so encrypting the same plaintext
62
+ * twice produces different blobs.
63
+ */
64
+ export declare function encrypt(plaintext: string, key: Buffer): Buffer;
65
+ /**
66
+ * Decrypt a blob produced by encrypt(). Throws loudly on:
67
+ * - key length mismatch
68
+ * - blob too short
69
+ * - auth tag mismatch (tampered ciphertext or wrong key)
70
+ *
71
+ * Never returns a partial / placeholder string.
72
+ */
73
+ export declare function decrypt(blob: Buffer, key: Buffer): string;
74
+ /**
75
+ * Generate a fresh 16-byte salt for a new vault install. Caller
76
+ * is responsible for persisting it to ~/.yujin-forge/vault.salt
77
+ * (or wherever the vault store decides).
78
+ */
79
+ export declare function generateSalt(): Buffer;
80
+ /** Exported as a constant for tests + future migrations. */
81
+ export declare const VAULT_CRYPTO_VERSION = 1;
82
+ //# sourceMappingURL=crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/vault/crypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAgCH;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACrC,kBAAkB,CA0BpB;AAiBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,kBAAkB,EAC/B,IAAI,EAAE,MAAM,GACX,MAAM,CAaR;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAY9D;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CA0BzD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,4DAA4D;AAC5D,eAAO,MAAM,oBAAoB,IAAI,CAAC"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Vault cryptographic primitives.
3
+ *
4
+ * The vault encrypts user-provided credentials (Anthropic API key,
5
+ * Whisper key, ElevenLabs key, GitHub token, npm token, voiceprint
6
+ * embedding, etc) under a master key derived from a stable machine
7
+ * fingerprint + a per-install random salt.
8
+ *
9
+ * Threat model addressed:
10
+ * - Casual reads of the vault file from disk by other processes
11
+ * or accidental sync to cloud storage. The encrypted blob is
12
+ * useless without the master key.
13
+ * - Tampering: AES-256-GCM auth tag catches any modification.
14
+ *
15
+ * NOT addressed (intentional, per ROADMAP_VOICE_FORGE_2026_05_23.md
16
+ * sec 2.1):
17
+ * - Theft of the entire machine. Anyone with root + the disk +
18
+ * the same hostname/MAC/etc CAN re-derive the key. The vault is
19
+ * not a defense against a compromised host. It is a defense
20
+ * against accidental exposure (chat logs, cloud sync, etc).
21
+ *
22
+ * Loud failures per ROADMAP sec 12.2: tampered ciphertext throws,
23
+ * wrong-key decryption throws, short blobs throw, key length
24
+ * mismatches throw.
25
+ *
26
+ * ASCII-only.
27
+ */
28
+ import { createCipheriv, createDecipheriv, randomBytes, scryptSync, } from 'node:crypto';
29
+ import { arch as osArch, hostname as osHostname, networkInterfaces, platform as osPlatform, userInfo, } from 'node:os';
30
+ /** AES-256-GCM. */
31
+ const ALGORITHM = 'aes-256-gcm';
32
+ const KEY_LENGTH = 32;
33
+ const IV_LENGTH = 12;
34
+ const AUTH_TAG_LENGTH = 16;
35
+ /** scrypt params: 2^14 ops, r=8, p=1. Cost ~60ms on typical
36
+ * developer hardware -- enough to slow down brute-force without
37
+ * hurting interactive UX. */
38
+ const SCRYPT_COST = 16384;
39
+ const SCRYPT_BLOCK = 8;
40
+ const SCRYPT_PARALLEL = 1;
41
+ const SCRYPT_MAXMEM = 64 * 1024 * 1024;
42
+ /** Salt minimum size. Anything below is rejected loudly. */
43
+ const MIN_SALT_BYTES = 16;
44
+ /**
45
+ * Compute the current machine's fingerprint. Optional override lets
46
+ * tests inject deterministic values.
47
+ */
48
+ export function computeMachineFingerprint(override) {
49
+ const ifaces = networkInterfaces();
50
+ let mac = '';
51
+ /* First non-internal, non-zero MAC wins. Stable across reboots
52
+ on the same hardware; changes when the user swaps to a new
53
+ laptop, which is exactly what we want for the vault contract
54
+ ("works on this machine; reinstall on a fresh machine =
55
+ re-enter credentials"). */
56
+ for (const name of Object.keys(ifaces).sort()) {
57
+ const entries = ifaces[name];
58
+ if (!entries)
59
+ continue;
60
+ for (const entry of entries) {
61
+ if (!entry.internal && entry.mac && entry.mac !== '00:00:00:00:00:00') {
62
+ mac = entry.mac;
63
+ break;
64
+ }
65
+ }
66
+ if (mac)
67
+ break;
68
+ }
69
+ return {
70
+ hostname: override?.hostname ?? osHostname(),
71
+ primaryMacAddress: override?.primaryMacAddress ?? mac,
72
+ platform: override?.platform ?? osPlatform(),
73
+ arch: override?.arch ?? osArch(),
74
+ username: override?.username ?? userInfo().username,
75
+ };
76
+ }
77
+ /**
78
+ * Stable string serialisation of a fingerprint. Used as the
79
+ * scrypt passphrase. The order matters: re-orders would produce
80
+ * different keys, breaking existing vaults.
81
+ */
82
+ function fingerprintToString(fp) {
83
+ return [
84
+ fp.hostname,
85
+ fp.primaryMacAddress,
86
+ fp.platform,
87
+ fp.arch,
88
+ fp.username,
89
+ ].join('|');
90
+ }
91
+ /**
92
+ * Derive a 32-byte AES key from the fingerprint + per-install salt.
93
+ * Deterministic for the same inputs -- the vault file is openable
94
+ * across processes on the same machine without persisting the key
95
+ * anywhere.
96
+ */
97
+ export function deriveVaultKey(fingerprint, salt) {
98
+ if (salt.length < MIN_SALT_BYTES) {
99
+ throw new Error('vault salt must be at least ' + MIN_SALT_BYTES + ' bytes (got ' + salt.length + ')');
100
+ }
101
+ const passphrase = fingerprintToString(fingerprint);
102
+ return scryptSync(passphrase, salt, KEY_LENGTH, {
103
+ N: SCRYPT_COST,
104
+ r: SCRYPT_BLOCK,
105
+ p: SCRYPT_PARALLEL,
106
+ maxmem: SCRYPT_MAXMEM,
107
+ });
108
+ }
109
+ /**
110
+ * Encrypt a UTF-8 plaintext under the given key. Returns a single
111
+ * buffer with the layout:
112
+ *
113
+ * [12 bytes IV][N bytes ciphertext][16 bytes auth tag]
114
+ *
115
+ * The IV is fresh on every call so encrypting the same plaintext
116
+ * twice produces different blobs.
117
+ */
118
+ export function encrypt(plaintext, key) {
119
+ if (key.length !== KEY_LENGTH) {
120
+ throw new Error('vault key must be exactly ' + KEY_LENGTH + ' bytes (got ' + key.length + ')');
121
+ }
122
+ const iv = randomBytes(IV_LENGTH);
123
+ const cipher = createCipheriv(ALGORITHM, key, iv);
124
+ const ciphertext = Buffer.concat([
125
+ cipher.update(plaintext, 'utf-8'),
126
+ cipher.final(),
127
+ ]);
128
+ const authTag = cipher.getAuthTag();
129
+ return Buffer.concat([iv, ciphertext, authTag]);
130
+ }
131
+ /**
132
+ * Decrypt a blob produced by encrypt(). Throws loudly on:
133
+ * - key length mismatch
134
+ * - blob too short
135
+ * - auth tag mismatch (tampered ciphertext or wrong key)
136
+ *
137
+ * Never returns a partial / placeholder string.
138
+ */
139
+ export function decrypt(blob, key) {
140
+ if (key.length !== KEY_LENGTH) {
141
+ throw new Error('vault key must be exactly ' + KEY_LENGTH + ' bytes (got ' + key.length + ')');
142
+ }
143
+ if (blob.length < IV_LENGTH + AUTH_TAG_LENGTH) {
144
+ throw new Error('vault blob too short to be a valid AES-GCM payload (got ' + blob.length
145
+ + ' bytes, need at least ' + (IV_LENGTH + AUTH_TAG_LENGTH) + ')');
146
+ }
147
+ const iv = blob.subarray(0, IV_LENGTH);
148
+ const authTag = blob.subarray(blob.length - AUTH_TAG_LENGTH);
149
+ const ciphertext = blob.subarray(IV_LENGTH, blob.length - AUTH_TAG_LENGTH);
150
+ const decipher = createDecipheriv(ALGORITHM, key, iv);
151
+ decipher.setAuthTag(authTag);
152
+ try {
153
+ return Buffer.concat([
154
+ decipher.update(ciphertext),
155
+ decipher.final(),
156
+ ]).toString('utf-8');
157
+ }
158
+ catch (err) {
159
+ throw new Error('vault decryption failed (auth tag mismatch -- ciphertext tampered or wrong key): '
160
+ + (err instanceof Error ? err.message : String(err)));
161
+ }
162
+ }
163
+ /**
164
+ * Generate a fresh 16-byte salt for a new vault install. Caller
165
+ * is responsible for persisting it to ~/.yujin-forge/vault.salt
166
+ * (or wherever the vault store decides).
167
+ */
168
+ export function generateSalt() {
169
+ return randomBytes(MIN_SALT_BYTES);
170
+ }
171
+ /** Exported as a constant for tests + future migrations. */
172
+ export const VAULT_CRYPTO_VERSION = 1;
173
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/vault/crypto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export interface AskPassHandle {
2
+ /** Path to the temporary askpass script. */
3
+ scriptPath: string;
4
+ /** Env vars to merge into the child's environment. */
5
+ env: Record<string, string>;
6
+ /** Delete the temp script. Safe to call multiple times. */
7
+ cleanup: () => Promise<void>;
8
+ }
9
+ /**
10
+ * Prepare a GIT_ASKPASS script + env that injects `token` as
11
+ * the password for `username` (default 'x-access-token').
12
+ *
13
+ * Caller pattern:
14
+ *
15
+ * const ap = await prepareGitAskpass(token);
16
+ * try {
17
+ * await exec('git', ['push', ...], {
18
+ * cwd: dir,
19
+ * env: { ...process.env, ...ap.env },
20
+ * });
21
+ * } finally {
22
+ * await ap.cleanup();
23
+ * }
24
+ */
25
+ export declare function prepareGitAskpass(token: string, username?: string): Promise<AskPassHandle>;
26
+ //# sourceMappingURL=git_askpass.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git_askpass.d.ts","sourceRoot":"","sources":["../../src/vault/git_askpass.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,2DAA2D;IAC3D,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,MAAyB,GAClC,OAAO,CAAC,aAAa,CAAC,CAkDxB"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * GIT_ASKPASS helper (SQ 0.11).
3
+ *
4
+ * Lets `git push` / `git pull` / `git clone` authenticate
5
+ * with a token from the vault **without** putting that token
6
+ * in argv, in the remote URL, or in any persistent on-disk
7
+ * config. The flow:
8
+ *
9
+ * 1. We write a tiny script to a temp file with mode 0o700.
10
+ * 2. The script prints either the username or the token
11
+ * depending on the prompt git asks (parsed from argv[1]).
12
+ * 3. We spawn git with GIT_ASKPASS set to that script's path
13
+ * and GIT_TERMINAL_PROMPT=0 so git refuses to fall back to
14
+ * stdin (which would otherwise hang in the panel).
15
+ * 4. The token is passed to the script via the env var
16
+ * YF_GIT_TOKEN -- visible only inside the child process
17
+ * tree, never in our own argv.
18
+ * 5. On exit (success or failure), we delete the script file.
19
+ *
20
+ * Compared with the old "URL with x-access-token:TOKEN@"
21
+ * approach this:
22
+ * - keeps the token out of process argv (where `ps -ef`
23
+ * could see it before),
24
+ * - keeps the token out of the remote URL (where a stray
25
+ * `git remote -v` would leak it),
26
+ * - lets the redactor in the SAME process clean any token
27
+ * that leaks into stderr (git error messages with URLs).
28
+ *
29
+ * ASCII-only.
30
+ */
31
+ import { promises as fs } from 'node:fs';
32
+ import os from 'node:os';
33
+ import path from 'node:path';
34
+ import { randomBytes } from 'node:crypto';
35
+ /**
36
+ * Prepare a GIT_ASKPASS script + env that injects `token` as
37
+ * the password for `username` (default 'x-access-token').
38
+ *
39
+ * Caller pattern:
40
+ *
41
+ * const ap = await prepareGitAskpass(token);
42
+ * try {
43
+ * await exec('git', ['push', ...], {
44
+ * cwd: dir,
45
+ * env: { ...process.env, ...ap.env },
46
+ * });
47
+ * } finally {
48
+ * await ap.cleanup();
49
+ * }
50
+ */
51
+ export async function prepareGitAskpass(token, username = 'x-access-token') {
52
+ if (typeof token !== 'string' || token.length === 0) {
53
+ throw new Error('prepareGitAskpass: token must be a non-empty string');
54
+ }
55
+ const suffix = randomBytes(6).toString('hex');
56
+ const isWindows = process.platform === 'win32';
57
+ const scriptName = 'yf-askpass-' + suffix + (isWindows ? '.cmd' : '.sh');
58
+ const scriptPath = path.join(os.tmpdir(), scriptName);
59
+ /* The askpass protocol: git calls the script with the
60
+ * prompt as argv[1]. Examples:
61
+ * "Username for 'https://github.com': "
62
+ * "Password for 'https://x-access-token@github.com': "
63
+ * We print the token for anything that looks like a
64
+ * password prompt; otherwise we print the username. */
65
+ let body;
66
+ if (isWindows) {
67
+ body =
68
+ '@echo off\r\n'
69
+ + 'echo %1 | findstr /I "password" >nul\r\n'
70
+ + 'if %errorlevel%==0 (echo %YF_GIT_TOKEN%) else (echo %YF_GIT_USERNAME%)\r\n';
71
+ }
72
+ else {
73
+ body =
74
+ '#!/bin/sh\n'
75
+ + 'case "$1" in\n'
76
+ + ' *[Pp]assword*) printf "%s" "$YF_GIT_TOKEN" ;;\n'
77
+ + ' *) printf "%s" "$YF_GIT_USERNAME" ;;\n'
78
+ + 'esac\n';
79
+ }
80
+ await fs.writeFile(scriptPath, body, { mode: 0o700 });
81
+ /* On POSIX, mode at write time is enough. On Windows, .cmd
82
+ * is executable by virtue of the extension. */
83
+ let cleaned = false;
84
+ const cleanup = async () => {
85
+ if (cleaned)
86
+ return;
87
+ cleaned = true;
88
+ try {
89
+ await fs.unlink(scriptPath);
90
+ }
91
+ catch { /* best effort */ }
92
+ };
93
+ return {
94
+ scriptPath,
95
+ env: {
96
+ GIT_ASKPASS: scriptPath,
97
+ GIT_TERMINAL_PROMPT: '0',
98
+ YF_GIT_TOKEN: token,
99
+ YF_GIT_USERNAME: username,
100
+ },
101
+ cleanup,
102
+ };
103
+ }
104
+ //# sourceMappingURL=git_askpass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git_askpass.js","sourceRoot":"","sources":["../../src/vault/git_askpass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW1C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,WAAmB,gBAAgB;IAEnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;IAC/C,MAAM,UAAU,GAAG,aAAa,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;IAEtD;;;;;2DAKuD;IACvD,IAAI,IAAY,CAAC;IACjB,IAAI,SAAS,EAAE,CAAC;QACd,IAAI;YACF,eAAe;kBACb,0CAA0C;kBAC1C,4EAA4E,CAAC;IACnF,CAAC;SAAM,CAAC;QACN,IAAI;YACF,aAAa;kBACX,gBAAgB;kBAChB,mDAAmD;kBACnD,sDAAsD;kBACtD,QAAQ,CAAC;IACf,CAAC;IACD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD;mDAC+C;IAE/C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACxC,IAAI,OAAO;YAAE,OAAO;QACpB,OAAO,GAAG,IAAI,CAAC;QACf,IAAI,CAAC;YAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF,OAAO;QACL,UAAU;QACV,GAAG,EAAE;YACH,WAAW,EAAE,UAAU;YACvB,mBAAmB,EAAE,GAAG;YACxB,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,QAAQ;SAC1B;QACD,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { type SlotKind } from './catalog.js';
2
+ export interface LegacyFinding {
3
+ /** Suggested slot name (vault-compatible). */
4
+ suggested_slot: string;
5
+ /** Kind inferred from the slot name (or 'custom'). */
6
+ kind: SlotKind;
7
+ /** Where the value came from. */
8
+ file: string;
9
+ line_number: number;
10
+ /** Original KEY=value line (before redaction). */
11
+ original_line: string;
12
+ /** Why we flagged this -- one of:
13
+ * 'pattern' (value matched a redactor regex)
14
+ * 'key_heuristic' (env key name looks credential-shaped)
15
+ * 'both' */
16
+ reason: 'pattern' | 'key_heuristic' | 'both';
17
+ /** Patterns that hit (when reason includes 'pattern'). */
18
+ pattern_hits?: string[];
19
+ }
20
+ /** Suggested vault slot name from an env-style key.
21
+ * Lowercase, snake_case, dropping the "AWS_" / "STRIPE_"
22
+ * prefix when it duplicates the catalog name. */
23
+ export declare function envKeyToSlot(envKey: string): string;
24
+ /** Parse a single env-style line `KEY=VALUE` (with optional
25
+ * comments + quoted values). Returns null when the line is
26
+ * blank, comment-only, or not key=value. */
27
+ export declare function parseEnvLine(line: string): {
28
+ key: string;
29
+ value: string;
30
+ } | null;
31
+ /** Classify a parsed env line. Returns null when not
32
+ * credential-shaped.
33
+ *
34
+ * IMPORTANT: `original_line` on the returned finding is
35
+ * ALWAYS REDACTED. Safe to log, emit as JSON, surface in
36
+ * chat. The raw value never leaves the source file -- the
37
+ * applier reads it back from disk by file + line_number
38
+ * when migration is committed. */
39
+ export declare function classifyEnvEntry(parsed: {
40
+ key: string;
41
+ value: string;
42
+ }, file: string, lineNumber: number, originalLine: string): LegacyFinding | null;
43
+ /** Scan a single text file for legacy credentials. Returns
44
+ * findings + the raw file content (so the caller can apply
45
+ * in-place replacement). */
46
+ export declare function scanLegacyFile(abs: string, rel: string): Promise<{
47
+ findings: LegacyFinding[];
48
+ content: string;
49
+ }>;
50
+ /** Walk a project for legacy credential files. */
51
+ export declare function scanLegacyProject(projectRoot: string, extraTargets?: string[]): Promise<LegacyFinding[]>;
52
+ /** Build a redacted copy of `content` -- replaces each
53
+ * flagged value with a placeholder pointing back to the
54
+ * vault slot. Idempotent (running twice does not double-
55
+ * replace). */
56
+ export declare function applyMigrationToContent(content: string, findings: LegacyFinding[]): string;
57
+ //# sourceMappingURL=migrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../src/vault/migrator.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,IAAI,EAAY,QAAQ,CAAC;IACzB,iCAAiC;IACjC,IAAI,EAAY,MAAM,CAAC;IACvB,WAAW,EAAK,MAAM,CAAC;IACvB,kDAAkD;IAClD,aAAa,EAAG,MAAM,CAAC;IACvB;;;0BAGsB;IACtB,MAAM,EAAU,SAAS,GAAG,eAAe,GAAG,MAAM,CAAC;IACrD,0DAA0D;IAC1D,YAAY,CAAC,EAAG,MAAM,EAAE,CAAC;CAC1B;AAkBD;;kDAEkD;AAClD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWnD;AAED;;6CAE6C;AAC7C,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAkBhF;AAED;;;;;;;mCAOmC;AACnC,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACtC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,aAAa,GAAG,IAAI,CA0BtB;AAED;;6BAE6B;AAC7B,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAoCzD;AAED,kDAAkD;AAClD,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,MAAM,EAAO,GAC1B,OAAO,CAAC,aAAa,EAAE,CAAC,CAW1B;AAED;;;gBAGgB;AAChB,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,aAAa,EAAE,GACxB,MAAM,CAkBR"}