@tjdals12/agent-bolt 1.0.0-next.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 (385) hide show
  1. package/LICENSE +21 -0
  2. package/README.ko.md +605 -0
  3. package/README.md +605 -0
  4. package/bin/agent-bolt.js +1 -0
  5. package/dist/catalog/commands/add-item.d.ts +25 -0
  6. package/dist/catalog/commands/add-item.d.ts.map +1 -0
  7. package/dist/catalog/commands/add-item.js +143 -0
  8. package/dist/catalog/commands/add-item.js.map +1 -0
  9. package/dist/catalog/commands/add-pack.d.ts +23 -0
  10. package/dist/catalog/commands/add-pack.d.ts.map +1 -0
  11. package/dist/catalog/commands/add-pack.js +89 -0
  12. package/dist/catalog/commands/add-pack.js.map +1 -0
  13. package/dist/catalog/commands/catalog/init-catalog.d.ts +16 -0
  14. package/dist/catalog/commands/catalog/init-catalog.d.ts.map +1 -0
  15. package/dist/catalog/commands/catalog/init-catalog.js +41 -0
  16. package/dist/catalog/commands/catalog/init-catalog.js.map +1 -0
  17. package/dist/catalog/commands/catalog/new/new-agent.d.ts +5 -0
  18. package/dist/catalog/commands/catalog/new/new-agent.d.ts.map +1 -0
  19. package/dist/catalog/commands/catalog/new/new-agent.js +18 -0
  20. package/dist/catalog/commands/catalog/new/new-agent.js.map +1 -0
  21. package/dist/catalog/commands/catalog/new/new-guideline.d.ts +5 -0
  22. package/dist/catalog/commands/catalog/new/new-guideline.d.ts.map +1 -0
  23. package/dist/catalog/commands/catalog/new/new-guideline.js +19 -0
  24. package/dist/catalog/commands/catalog/new/new-guideline.js.map +1 -0
  25. package/dist/catalog/commands/catalog/new/new-item.d.ts +36 -0
  26. package/dist/catalog/commands/catalog/new/new-item.d.ts.map +1 -0
  27. package/dist/catalog/commands/catalog/new/new-item.js +74 -0
  28. package/dist/catalog/commands/catalog/new/new-item.js.map +1 -0
  29. package/dist/catalog/commands/catalog/new/new-skill.d.ts +5 -0
  30. package/dist/catalog/commands/catalog/new/new-skill.d.ts.map +1 -0
  31. package/dist/catalog/commands/catalog/new/new-skill.js +18 -0
  32. package/dist/catalog/commands/catalog/new/new-skill.js.map +1 -0
  33. package/dist/catalog/commands/catalog/new-pack.d.ts +16 -0
  34. package/dist/catalog/commands/catalog/new-pack.d.ts.map +1 -0
  35. package/dist/catalog/commands/catalog/new-pack.js +49 -0
  36. package/dist/catalog/commands/catalog/new-pack.js.map +1 -0
  37. package/dist/catalog/commands/catalog/validate-catalog.d.ts +25 -0
  38. package/dist/catalog/commands/catalog/validate-catalog.d.ts.map +1 -0
  39. package/dist/catalog/commands/catalog/validate-catalog.js +168 -0
  40. package/dist/catalog/commands/catalog/validate-catalog.js.map +1 -0
  41. package/dist/catalog/commands/check.d.ts +20 -0
  42. package/dist/catalog/commands/check.d.ts.map +1 -0
  43. package/dist/catalog/commands/check.js +32 -0
  44. package/dist/catalog/commands/check.js.map +1 -0
  45. package/dist/catalog/commands/init.d.ts +34 -0
  46. package/dist/catalog/commands/init.d.ts.map +1 -0
  47. package/dist/catalog/commands/init.js +252 -0
  48. package/dist/catalog/commands/init.js.map +1 -0
  49. package/dist/catalog/commands/list-items.d.ts +17 -0
  50. package/dist/catalog/commands/list-items.d.ts.map +1 -0
  51. package/dist/catalog/commands/list-items.js +72 -0
  52. package/dist/catalog/commands/list-items.js.map +1 -0
  53. package/dist/catalog/commands/list-packs.d.ts +14 -0
  54. package/dist/catalog/commands/list-packs.d.ts.map +1 -0
  55. package/dist/catalog/commands/list-packs.js +52 -0
  56. package/dist/catalog/commands/list-packs.js.map +1 -0
  57. package/dist/catalog/commands/remove-item.d.ts +25 -0
  58. package/dist/catalog/commands/remove-item.d.ts.map +1 -0
  59. package/dist/catalog/commands/remove-item.js +122 -0
  60. package/dist/catalog/commands/remove-item.js.map +1 -0
  61. package/dist/catalog/commands/remove-pack.d.ts +22 -0
  62. package/dist/catalog/commands/remove-pack.d.ts.map +1 -0
  63. package/dist/catalog/commands/remove-pack.js +69 -0
  64. package/dist/catalog/commands/remove-pack.js.map +1 -0
  65. package/dist/catalog/commands/show-item.d.ts +27 -0
  66. package/dist/catalog/commands/show-item.d.ts.map +1 -0
  67. package/dist/catalog/commands/show-item.js +63 -0
  68. package/dist/catalog/commands/show-item.js.map +1 -0
  69. package/dist/catalog/commands/sync.d.ts +17 -0
  70. package/dist/catalog/commands/sync.d.ts.map +1 -0
  71. package/dist/catalog/commands/sync.js +31 -0
  72. package/dist/catalog/commands/sync.js.map +1 -0
  73. package/dist/catalog/config/load.d.ts +3 -0
  74. package/dist/catalog/config/load.d.ts.map +1 -0
  75. package/dist/catalog/config/load.js +18 -0
  76. package/dist/catalog/config/load.js.map +1 -0
  77. package/dist/catalog/config/normalize.d.ts +6 -0
  78. package/dist/catalog/config/normalize.d.ts.map +1 -0
  79. package/dist/catalog/config/normalize.js +30 -0
  80. package/dist/catalog/config/normalize.js.map +1 -0
  81. package/dist/catalog/config/reference.d.ts +2 -0
  82. package/dist/catalog/config/reference.d.ts.map +1 -0
  83. package/dist/catalog/config/reference.js +52 -0
  84. package/dist/catalog/config/reference.js.map +1 -0
  85. package/dist/catalog/config/schema.d.ts +80 -0
  86. package/dist/catalog/config/schema.d.ts.map +1 -0
  87. package/dist/catalog/config/schema.js +29 -0
  88. package/dist/catalog/config/schema.js.map +1 -0
  89. package/dist/catalog/config/write.d.ts +3 -0
  90. package/dist/catalog/config/write.d.ts.map +1 -0
  91. package/dist/catalog/config/write.js +28 -0
  92. package/dist/catalog/config/write.js.map +1 -0
  93. package/dist/catalog/content/item/find-detail.d.ts +5 -0
  94. package/dist/catalog/content/item/find-detail.d.ts.map +1 -0
  95. package/dist/catalog/content/item/find-detail.js +90 -0
  96. package/dist/catalog/content/item/find-detail.js.map +1 -0
  97. package/dist/catalog/content/item/list-assets.d.ts +2 -0
  98. package/dist/catalog/content/item/list-assets.d.ts.map +1 -0
  99. package/dist/catalog/content/item/list-assets.js +38 -0
  100. package/dist/catalog/content/item/list-assets.js.map +1 -0
  101. package/dist/catalog/content/item/model.d.ts +24 -0
  102. package/dist/catalog/content/item/model.d.ts.map +1 -0
  103. package/dist/catalog/content/item/model.js +2 -0
  104. package/dist/catalog/content/item/model.js.map +1 -0
  105. package/dist/catalog/content/item/parse-detail.d.ts +5 -0
  106. package/dist/catalog/content/item/parse-detail.d.ts.map +1 -0
  107. package/dist/catalog/content/item/parse-detail.js +32 -0
  108. package/dist/catalog/content/item/parse-detail.js.map +1 -0
  109. package/dist/catalog/content/item/parse-summary.d.ts +6 -0
  110. package/dist/catalog/content/item/parse-summary.d.ts.map +1 -0
  111. package/dist/catalog/content/item/parse-summary.js +58 -0
  112. package/dist/catalog/content/item/parse-summary.js.map +1 -0
  113. package/dist/catalog/content/item/schema.d.ts +49 -0
  114. package/dist/catalog/content/item/schema.d.ts.map +1 -0
  115. package/dist/catalog/content/item/schema.js +32 -0
  116. package/dist/catalog/content/item/schema.js.map +1 -0
  117. package/dist/catalog/content/load.d.ts +3 -0
  118. package/dist/catalog/content/load.d.ts.map +1 -0
  119. package/dist/catalog/content/load.js +19 -0
  120. package/dist/catalog/content/load.js.map +1 -0
  121. package/dist/catalog/content/model.d.ts +12 -0
  122. package/dist/catalog/content/model.d.ts.map +1 -0
  123. package/dist/catalog/content/model.js +2 -0
  124. package/dist/catalog/content/model.js.map +1 -0
  125. package/dist/catalog/content/pack/model.d.ts +20 -0
  126. package/dist/catalog/content/pack/model.d.ts.map +1 -0
  127. package/dist/catalog/content/pack/model.js +2 -0
  128. package/dist/catalog/content/pack/model.js.map +1 -0
  129. package/dist/catalog/content/pack/parse.d.ts +5 -0
  130. package/dist/catalog/content/pack/parse.d.ts.map +1 -0
  131. package/dist/catalog/content/pack/parse.js +68 -0
  132. package/dist/catalog/content/pack/parse.js.map +1 -0
  133. package/dist/catalog/content/pack/schema.d.ts +8 -0
  134. package/dist/catalog/content/pack/schema.d.ts.map +1 -0
  135. package/dist/catalog/content/pack/schema.js +9 -0
  136. package/dist/catalog/content/pack/schema.js.map +1 -0
  137. package/dist/catalog/content/parse.d.ts +4 -0
  138. package/dist/catalog/content/parse.d.ts.map +1 -0
  139. package/dist/catalog/content/parse.js +30 -0
  140. package/dist/catalog/content/parse.js.map +1 -0
  141. package/dist/catalog/content/schema.d.ts +14 -0
  142. package/dist/catalog/content/schema.d.ts.map +1 -0
  143. package/dist/catalog/content/schema.js +13 -0
  144. package/dist/catalog/content/schema.js.map +1 -0
  145. package/dist/catalog/install/adapters/adapter.d.ts +27 -0
  146. package/dist/catalog/install/adapters/adapter.d.ts.map +1 -0
  147. package/dist/catalog/install/adapters/adapter.js +30 -0
  148. package/dist/catalog/install/adapters/adapter.js.map +1 -0
  149. package/dist/catalog/install/adapters/claude.adapter.d.ts +14 -0
  150. package/dist/catalog/install/adapters/claude.adapter.d.ts.map +1 -0
  151. package/dist/catalog/install/adapters/claude.adapter.js +60 -0
  152. package/dist/catalog/install/adapters/claude.adapter.js.map +1 -0
  153. package/dist/catalog/install/adapters/codex.adapter.d.ts +13 -0
  154. package/dist/catalog/install/adapters/codex.adapter.d.ts.map +1 -0
  155. package/dist/catalog/install/adapters/codex.adapter.js +68 -0
  156. package/dist/catalog/install/adapters/codex.adapter.js.map +1 -0
  157. package/dist/catalog/install/adapters/registry.d.ts +4 -0
  158. package/dist/catalog/install/adapters/registry.d.ts.map +1 -0
  159. package/dist/catalog/install/adapters/registry.js +10 -0
  160. package/dist/catalog/install/adapters/registry.js.map +1 -0
  161. package/dist/catalog/install/apply.d.ts +3 -0
  162. package/dist/catalog/install/apply.d.ts.map +1 -0
  163. package/dist/catalog/install/apply.js +105 -0
  164. package/dist/catalog/install/apply.js.map +1 -0
  165. package/dist/catalog/install/classify.d.ts +4 -0
  166. package/dist/catalog/install/classify.d.ts.map +1 -0
  167. package/dist/catalog/install/classify.js +78 -0
  168. package/dist/catalog/install/classify.js.map +1 -0
  169. package/dist/catalog/install/diff.d.ts +3 -0
  170. package/dist/catalog/install/diff.d.ts.map +1 -0
  171. package/dist/catalog/install/diff.js +88 -0
  172. package/dist/catalog/install/diff.js.map +1 -0
  173. package/dist/catalog/install/lockfile/items.d.ts +5 -0
  174. package/dist/catalog/install/lockfile/items.d.ts.map +1 -0
  175. package/dist/catalog/install/lockfile/items.js +37 -0
  176. package/dist/catalog/install/lockfile/items.js.map +1 -0
  177. package/dist/catalog/install/lockfile/load.d.ts +3 -0
  178. package/dist/catalog/install/lockfile/load.d.ts.map +1 -0
  179. package/dist/catalog/install/lockfile/load.js +42 -0
  180. package/dist/catalog/install/lockfile/load.js.map +1 -0
  181. package/dist/catalog/install/lockfile/model.d.ts +6 -0
  182. package/dist/catalog/install/lockfile/model.d.ts.map +1 -0
  183. package/dist/catalog/install/lockfile/model.js +2 -0
  184. package/dist/catalog/install/lockfile/model.js.map +1 -0
  185. package/dist/catalog/install/lockfile/schema.d.ts +13 -0
  186. package/dist/catalog/install/lockfile/schema.d.ts.map +1 -0
  187. package/dist/catalog/install/lockfile/schema.js +9 -0
  188. package/dist/catalog/install/lockfile/schema.js.map +1 -0
  189. package/dist/catalog/install/lockfile/write.d.ts +5 -0
  190. package/dist/catalog/install/lockfile/write.d.ts.map +1 -0
  191. package/dist/catalog/install/lockfile/write.js +13 -0
  192. package/dist/catalog/install/lockfile/write.js.map +1 -0
  193. package/dist/catalog/install/managed-block.d.ts +4 -0
  194. package/dist/catalog/install/managed-block.d.ts.map +1 -0
  195. package/dist/catalog/install/managed-block.js +40 -0
  196. package/dist/catalog/install/managed-block.js.map +1 -0
  197. package/dist/catalog/install/model.d.ts +46 -0
  198. package/dist/catalog/install/model.d.ts.map +1 -0
  199. package/dist/catalog/install/model.js +2 -0
  200. package/dist/catalog/install/model.js.map +1 -0
  201. package/dist/catalog/install/plan.d.ts +4 -0
  202. package/dist/catalog/install/plan.d.ts.map +1 -0
  203. package/dist/catalog/install/plan.js +71 -0
  204. package/dist/catalog/install/plan.js.map +1 -0
  205. package/dist/catalog/source/resolve-git.d.ts +7 -0
  206. package/dist/catalog/source/resolve-git.d.ts.map +1 -0
  207. package/dist/catalog/source/resolve-git.js +65 -0
  208. package/dist/catalog/source/resolve-git.js.map +1 -0
  209. package/dist/catalog/source/resolve-local.d.ts +7 -0
  210. package/dist/catalog/source/resolve-local.d.ts.map +1 -0
  211. package/dist/catalog/source/resolve-local.js +13 -0
  212. package/dist/catalog/source/resolve-local.js.map +1 -0
  213. package/dist/catalog/source/resolve.d.ts +3 -0
  214. package/dist/catalog/source/resolve.d.ts.map +1 -0
  215. package/dist/catalog/source/resolve.js +12 -0
  216. package/dist/catalog/source/resolve.js.map +1 -0
  217. package/dist/catalog/source/schema.d.ts +13 -0
  218. package/dist/catalog/source/schema.d.ts.map +1 -0
  219. package/dist/catalog/source/schema.js +29 -0
  220. package/dist/catalog/source/schema.js.map +1 -0
  221. package/dist/catalog/source/validation.d.ts +14 -0
  222. package/dist/catalog/source/validation.d.ts.map +1 -0
  223. package/dist/catalog/source/validation.js +42 -0
  224. package/dist/catalog/source/validation.js.map +1 -0
  225. package/dist/catalog/tool/catalog.d.ts +12 -0
  226. package/dist/catalog/tool/catalog.d.ts.map +1 -0
  227. package/dist/catalog/tool/catalog.js +23 -0
  228. package/dist/catalog/tool/catalog.js.map +1 -0
  229. package/dist/catalog/tool/model.d.ts +8 -0
  230. package/dist/catalog/tool/model.d.ts.map +1 -0
  231. package/dist/catalog/tool/model.js +2 -0
  232. package/dist/catalog/tool/model.js.map +1 -0
  233. package/dist/cli/format.d.ts +28 -0
  234. package/dist/cli/format.d.ts.map +1 -0
  235. package/dist/cli/format.js +62 -0
  236. package/dist/cli/format.js.map +1 -0
  237. package/dist/cli/helpers.d.ts +2 -0
  238. package/dist/cli/helpers.d.ts.map +1 -0
  239. package/dist/cli/helpers.js +4 -0
  240. package/dist/cli/helpers.js.map +1 -0
  241. package/dist/cli/index.d.ts +2 -0
  242. package/dist/cli/index.d.ts.map +1 -0
  243. package/dist/cli/index.js +465 -0
  244. package/dist/cli/index.js.map +1 -0
  245. package/dist/cli/pager.d.ts +2 -0
  246. package/dist/cli/pager.d.ts.map +1 -0
  247. package/dist/cli/pager.js +35 -0
  248. package/dist/cli/pager.js.map +1 -0
  249. package/dist/cli/views/add-item.d.ts +3 -0
  250. package/dist/cli/views/add-item.d.ts.map +1 -0
  251. package/dist/cli/views/add-item.js +36 -0
  252. package/dist/cli/views/add-item.js.map +1 -0
  253. package/dist/cli/views/add-pack.d.ts +3 -0
  254. package/dist/cli/views/add-pack.d.ts.map +1 -0
  255. package/dist/cli/views/add-pack.js +35 -0
  256. package/dist/cli/views/add-pack.js.map +1 -0
  257. package/dist/cli/views/catalog/init-catalog.d.ts +3 -0
  258. package/dist/cli/views/catalog/init-catalog.d.ts.map +1 -0
  259. package/dist/cli/views/catalog/init-catalog.js +21 -0
  260. package/dist/cli/views/catalog/init-catalog.js.map +1 -0
  261. package/dist/cli/views/catalog/new/new-agent.d.ts +3 -0
  262. package/dist/cli/views/catalog/new/new-agent.d.ts.map +1 -0
  263. package/dist/cli/views/catalog/new/new-agent.js +30 -0
  264. package/dist/cli/views/catalog/new/new-agent.js.map +1 -0
  265. package/dist/cli/views/catalog/new/new-guideline.d.ts +3 -0
  266. package/dist/cli/views/catalog/new/new-guideline.d.ts.map +1 -0
  267. package/dist/cli/views/catalog/new/new-guideline.js +26 -0
  268. package/dist/cli/views/catalog/new/new-guideline.js.map +1 -0
  269. package/dist/cli/views/catalog/new/new-skill.d.ts +3 -0
  270. package/dist/cli/views/catalog/new/new-skill.d.ts.map +1 -0
  271. package/dist/cli/views/catalog/new/new-skill.js +31 -0
  272. package/dist/cli/views/catalog/new/new-skill.js.map +1 -0
  273. package/dist/cli/views/catalog/new-pack.d.ts +3 -0
  274. package/dist/cli/views/catalog/new-pack.d.ts.map +1 -0
  275. package/dist/cli/views/catalog/new-pack.js +23 -0
  276. package/dist/cli/views/catalog/new-pack.js.map +1 -0
  277. package/dist/cli/views/catalog/validate-catalog.d.ts +3 -0
  278. package/dist/cli/views/catalog/validate-catalog.d.ts.map +1 -0
  279. package/dist/cli/views/catalog/validate-catalog.js +57 -0
  280. package/dist/cli/views/catalog/validate-catalog.js.map +1 -0
  281. package/dist/cli/views/check.d.ts +3 -0
  282. package/dist/cli/views/check.d.ts.map +1 -0
  283. package/dist/cli/views/check.js +23 -0
  284. package/dist/cli/views/check.js.map +1 -0
  285. package/dist/cli/views/init.d.ts +3 -0
  286. package/dist/cli/views/init.d.ts.map +1 -0
  287. package/dist/cli/views/init.js +29 -0
  288. package/dist/cli/views/init.js.map +1 -0
  289. package/dist/cli/views/list-items.d.ts +3 -0
  290. package/dist/cli/views/list-items.d.ts.map +1 -0
  291. package/dist/cli/views/list-items.js +65 -0
  292. package/dist/cli/views/list-items.js.map +1 -0
  293. package/dist/cli/views/list-packs.d.ts +3 -0
  294. package/dist/cli/views/list-packs.d.ts.map +1 -0
  295. package/dist/cli/views/list-packs.js +50 -0
  296. package/dist/cli/views/list-packs.js.map +1 -0
  297. package/dist/cli/views/remove-item.d.ts +3 -0
  298. package/dist/cli/views/remove-item.d.ts.map +1 -0
  299. package/dist/cli/views/remove-item.js +35 -0
  300. package/dist/cli/views/remove-item.js.map +1 -0
  301. package/dist/cli/views/remove-pack.d.ts +3 -0
  302. package/dist/cli/views/remove-pack.d.ts.map +1 -0
  303. package/dist/cli/views/remove-pack.js +34 -0
  304. package/dist/cli/views/remove-pack.js.map +1 -0
  305. package/dist/cli/views/shared/banner.d.ts +21 -0
  306. package/dist/cli/views/shared/banner.d.ts.map +1 -0
  307. package/dist/cli/views/shared/banner.js +73 -0
  308. package/dist/cli/views/shared/banner.js.map +1 -0
  309. package/dist/cli/views/shared/report.d.ts +28 -0
  310. package/dist/cli/views/shared/report.d.ts.map +1 -0
  311. package/dist/cli/views/shared/report.js +63 -0
  312. package/dist/cli/views/shared/report.js.map +1 -0
  313. package/dist/cli/views/shared/sync-hint.d.ts +2 -0
  314. package/dist/cli/views/shared/sync-hint.d.ts.map +1 -0
  315. package/dist/cli/views/shared/sync-hint.js +7 -0
  316. package/dist/cli/views/shared/sync-hint.js.map +1 -0
  317. package/dist/cli/views/show-item.d.ts +3 -0
  318. package/dist/cli/views/show-item.d.ts.map +1 -0
  319. package/dist/cli/views/show-item.js +107 -0
  320. package/dist/cli/views/show-item.js.map +1 -0
  321. package/dist/cli/views/sync.d.ts +3 -0
  322. package/dist/cli/views/sync.d.ts.map +1 -0
  323. package/dist/cli/views/sync.js +21 -0
  324. package/dist/cli/views/sync.js.map +1 -0
  325. package/dist/core/intro/engine.d.ts +9 -0
  326. package/dist/core/intro/engine.d.ts.map +1 -0
  327. package/dist/core/intro/engine.js +98 -0
  328. package/dist/core/intro/engine.js.map +1 -0
  329. package/dist/core/intro/index.d.ts +6 -0
  330. package/dist/core/intro/index.d.ts.map +1 -0
  331. package/dist/core/intro/index.js +10 -0
  332. package/dist/core/intro/index.js.map +1 -0
  333. package/dist/core/intro/paint.d.ts +52 -0
  334. package/dist/core/intro/paint.d.ts.map +1 -0
  335. package/dist/core/intro/paint.js +89 -0
  336. package/dist/core/intro/paint.js.map +1 -0
  337. package/dist/core/intro/registry.d.ts +21 -0
  338. package/dist/core/intro/registry.d.ts.map +1 -0
  339. package/dist/core/intro/registry.js +31 -0
  340. package/dist/core/intro/registry.js.map +1 -0
  341. package/dist/core/intro/text.d.ts +9 -0
  342. package/dist/core/intro/text.d.ts.map +1 -0
  343. package/dist/core/intro/text.js +33 -0
  344. package/dist/core/intro/text.js.map +1 -0
  345. package/dist/core/intro/types.d.ts +33 -0
  346. package/dist/core/intro/types.d.ts.map +1 -0
  347. package/dist/core/intro/types.js +2 -0
  348. package/dist/core/intro/types.js.map +1 -0
  349. package/dist/core/intro/variants/bolt.d.ts +3 -0
  350. package/dist/core/intro/variants/bolt.d.ts.map +1 -0
  351. package/dist/core/intro/variants/bolt.js +62 -0
  352. package/dist/core/intro/variants/bolt.js.map +1 -0
  353. package/dist/core/intro/variants/fanout.d.ts +3 -0
  354. package/dist/core/intro/variants/fanout.d.ts.map +1 -0
  355. package/dist/core/intro/variants/fanout.js +90 -0
  356. package/dist/core/intro/variants/fanout.js.map +1 -0
  357. package/dist/core/intro/variants/tide.d.ts +3 -0
  358. package/dist/core/intro/variants/tide.d.ts.map +1 -0
  359. package/dist/core/intro/variants/tide.js +64 -0
  360. package/dist/core/intro/variants/tide.js.map +1 -0
  361. package/dist/core/intro/variants/wordmark-wave.d.ts +3 -0
  362. package/dist/core/intro/variants/wordmark-wave.d.ts.map +1 -0
  363. package/dist/core/intro/variants/wordmark-wave.js +49 -0
  364. package/dist/core/intro/variants/wordmark-wave.js.map +1 -0
  365. package/dist/core/intro/variants/wordmark.d.ts +3 -0
  366. package/dist/core/intro/variants/wordmark.d.ts.map +1 -0
  367. package/dist/core/intro/variants/wordmark.js +35 -0
  368. package/dist/core/intro/variants/wordmark.js.map +1 -0
  369. package/dist/core/json.d.ts +2 -0
  370. package/dist/core/json.d.ts.map +1 -0
  371. package/dist/core/json.js +12 -0
  372. package/dist/core/json.js.map +1 -0
  373. package/dist/core/output.d.ts +5 -0
  374. package/dist/core/output.d.ts.map +1 -0
  375. package/dist/core/output.js +18 -0
  376. package/dist/core/output.js.map +1 -0
  377. package/dist/core/paths.d.ts +8 -0
  378. package/dist/core/paths.d.ts.map +1 -0
  379. package/dist/core/paths.js +17 -0
  380. package/dist/core/paths.js.map +1 -0
  381. package/dist/core/progress.d.ts +8 -0
  382. package/dist/core/progress.d.ts.map +1 -0
  383. package/dist/core/progress.js +44 -0
  384. package/dist/core/progress.js.map +1 -0
  385. package/package.json +91 -0
@@ -0,0 +1,10 @@
1
+ import { runIntro } from './engine.js';
2
+ import { resolveIntro } from './registry.js';
3
+ /**
4
+ * Shows the welcome screen for the interactive `init` flow. Picks the active
5
+ * intro variant (see `registry.ts`) and runs it.
6
+ */
7
+ export async function showWelcomeScreen() {
8
+ await runIntro(resolveIntro());
9
+ }
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/intro/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { type ChalkInstance } from 'chalk';
2
+ import type { PaintArt, RGB } from './types.js';
3
+ export declare function mix(from: number, to: number, t: number): number;
4
+ /** Right-pads `text` to `width` columns (code-unit length). */
5
+ export declare function padTo(text: string, width: number): string;
6
+ /**
7
+ * Display width counting emoji / wide code points as two columns, so logos
8
+ * containing characters like ⚡ stay aligned.
9
+ */
10
+ export declare function displayWidth(text: string): number;
11
+ /** Right-pads `text` to `width` columns by display width (wide-char aware). */
12
+ export declare function padToDisplay(text: string, width: number): string;
13
+ /** Per-frame brightness scalar, fed to the gradient painters. */
14
+ export type Charge = (frameIndex: number) => number;
15
+ /** A charge that breathes on a sine curve once per `frameCount`-frame loop. */
16
+ export declare function sineCharge(base: number, amplitude: number, frameCount: number): Charge;
17
+ /** A charge read from a fixed per-frame schedule (defaults to full when off-end). */
18
+ export declare function scheduledCharge(values: readonly number[]): Charge;
19
+ /**
20
+ * Colors each art line by its row along a top→foot gradient, scaled by the
21
+ * per-frame charge. Used by the bolt, wordmark, and wave variants.
22
+ */
23
+ export declare function verticalGradient(opts: {
24
+ top: RGB;
25
+ foot: RGB;
26
+ charge: Charge;
27
+ width: number;
28
+ wide?: boolean;
29
+ }): PaintArt;
30
+ /**
31
+ * Colors each art line column-by-column along a left→right gradient, scaled by
32
+ * the per-frame charge. Used by the tide variant, where the gradient lights up
33
+ * the surging waterline.
34
+ */
35
+ export declare function horizontalGradient(opts: {
36
+ left: RGB;
37
+ right: RGB;
38
+ charge: Charge;
39
+ width: number;
40
+ }): PaintArt;
41
+ /**
42
+ * Colors a whole frame with a single chalk style picked from a per-frame ramp.
43
+ * Used by the fan-out variant, whose box-drawing logo reads as one color that
44
+ * brightens as it builds.
45
+ */
46
+ export declare function brightnessRamp(opts: {
47
+ ramp: readonly ChalkInstance[];
48
+ fallback: ChalkInstance;
49
+ width: number;
50
+ wide?: boolean;
51
+ }): PaintArt;
52
+ //# sourceMappingURL=paint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../../src/core/intro/paint.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEhD,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/D;AAcD,+DAA+D;AAC/D,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQjD;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,iEAAiE;AACjE,MAAM,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;AAEpD,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAEjE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,GAAG,EAAE,GAAG,CAAC;IACT,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,QAAQ,CAUX;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,QAAQ,CAYX;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,IAAI,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/B,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,QAAQ,CAMX"}
@@ -0,0 +1,89 @@
1
+ import chalk, {} from 'chalk';
2
+ export function mix(from, to, t) {
3
+ return from + (to - from) * t;
4
+ }
5
+ function mixRgb(from, to, t) {
6
+ return [mix(from[0], to[0], t), mix(from[1], to[1], t), mix(from[2], to[2], t)];
7
+ }
8
+ // Scales each channel by `charge` and clamps to 255, so charges above 1 drive
9
+ // the color toward white.
10
+ function shade(rgb, charge) {
11
+ const channels = rgb.map((c) => Math.min(255, Math.round(c * charge)));
12
+ const hex = channels.map((c) => c.toString(16).padStart(2, '0')).join('');
13
+ return chalk.hex(`#${hex}`);
14
+ }
15
+ /** Right-pads `text` to `width` columns (code-unit length). */
16
+ export function padTo(text, width) {
17
+ return text + ' '.repeat(Math.max(0, width - text.length));
18
+ }
19
+ /**
20
+ * Display width counting emoji / wide code points as two columns, so logos
21
+ * containing characters like ⚡ stay aligned.
22
+ */
23
+ export function displayWidth(text) {
24
+ let width = 0;
25
+ for (const ch of text) {
26
+ const codePoint = ch.codePointAt(0) ?? 0;
27
+ const isWide = codePoint === 0x26a1 || (codePoint >= 0x1f300 && codePoint <= 0x1faff);
28
+ width += isWide ? 2 : 1;
29
+ }
30
+ return width;
31
+ }
32
+ /** Right-pads `text` to `width` columns by display width (wide-char aware). */
33
+ export function padToDisplay(text, width) {
34
+ return text + ' '.repeat(Math.max(0, width - displayWidth(text)));
35
+ }
36
+ /** A charge that breathes on a sine curve once per `frameCount`-frame loop. */
37
+ export function sineCharge(base, amplitude, frameCount) {
38
+ return (frameIndex) => base + amplitude * Math.sin((2 * Math.PI * frameIndex) / frameCount);
39
+ }
40
+ /** A charge read from a fixed per-frame schedule (defaults to full when off-end). */
41
+ export function scheduledCharge(values) {
42
+ return (frameIndex) => values[frameIndex] ?? 1;
43
+ }
44
+ /**
45
+ * Colors each art line by its row along a top→foot gradient, scaled by the
46
+ * per-frame charge. Used by the bolt, wordmark, and wave variants.
47
+ */
48
+ export function verticalGradient(opts) {
49
+ const pad = opts.wide ? padToDisplay : padTo;
50
+ return (frameLines, frameIndex) => {
51
+ const charge = opts.charge(frameIndex);
52
+ const height = frameLines.length;
53
+ return frameLines.map((line, row) => {
54
+ const t = height <= 1 ? 0 : Math.min(1, row / (height - 1));
55
+ return shade(mixRgb(opts.top, opts.foot, t), charge)(pad(line, opts.width));
56
+ });
57
+ };
58
+ }
59
+ /**
60
+ * Colors each art line column-by-column along a left→right gradient, scaled by
61
+ * the per-frame charge. Used by the tide variant, where the gradient lights up
62
+ * the surging waterline.
63
+ */
64
+ export function horizontalGradient(opts) {
65
+ return (frameLines, frameIndex) => {
66
+ const charge = opts.charge(frameIndex);
67
+ return frameLines.map((line) => {
68
+ let painted = '';
69
+ for (let column = 0; column < line.length; column++) {
70
+ const t = line.length <= 1 ? 0 : Math.min(1, column / (line.length - 1));
71
+ painted += shade(mixRgb(opts.left, opts.right, t), charge)(line[column]);
72
+ }
73
+ return painted + ' '.repeat(Math.max(0, opts.width - line.length));
74
+ });
75
+ };
76
+ }
77
+ /**
78
+ * Colors a whole frame with a single chalk style picked from a per-frame ramp.
79
+ * Used by the fan-out variant, whose box-drawing logo reads as one color that
80
+ * brightens as it builds.
81
+ */
82
+ export function brightnessRamp(opts) {
83
+ const pad = opts.wide ? padToDisplay : padTo;
84
+ return (frameLines, frameIndex) => {
85
+ const color = opts.ramp[frameIndex] ?? opts.fallback;
86
+ return frameLines.map((line) => color(pad(line, opts.width)));
87
+ };
88
+ }
89
+ //# sourceMappingURL=paint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paint.js","sourceRoot":"","sources":["../../../src/core/intro/paint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { Intro } from './types.js';
2
+ /**
3
+ * Every intro variant, keyed by id. To drop one, delete its `variants/<id>.ts`
4
+ * file and remove its line here.
5
+ */
6
+ export declare const INTROS: {
7
+ readonly tide: Intro;
8
+ readonly bolt: Intro;
9
+ readonly fanout: Intro;
10
+ readonly wordmark: Intro;
11
+ readonly 'wordmark-wave': Intro;
12
+ };
13
+ export type IntroId = keyof typeof INTROS;
14
+ /** The intro that ships. Change this one line to switch the default. */
15
+ export declare const DEFAULT_INTRO_ID: IntroId;
16
+ /**
17
+ * Resolves which intro to show. `AGENT_BOLT_INTRO=<id>` overrides the default at
18
+ * runtime — handy for previewing each variant without a code change.
19
+ */
20
+ export declare function resolveIntro(): Intro;
21
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/core/intro/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAOxC;;;GAGG;AACH,eAAO,MAAM,MAAM;;;;;;CAMuB,CAAC;AAE3C,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,MAAM,CAAC;AAE1C,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,OAAgB,CAAC;AAMhD;;;GAGG;AACH,wBAAgB,YAAY,IAAI,KAAK,CAIpC"}
@@ -0,0 +1,31 @@
1
+ import { tide } from './variants/tide.js';
2
+ import { bolt } from './variants/bolt.js';
3
+ import { fanout } from './variants/fanout.js';
4
+ import { wordmark } from './variants/wordmark.js';
5
+ import { wordmarkWave } from './variants/wordmark-wave.js';
6
+ /**
7
+ * Every intro variant, keyed by id. To drop one, delete its `variants/<id>.ts`
8
+ * file and remove its line here.
9
+ */
10
+ export const INTROS = {
11
+ tide,
12
+ bolt,
13
+ fanout,
14
+ wordmark,
15
+ 'wordmark-wave': wordmarkWave,
16
+ };
17
+ /** The intro that ships. Change this one line to switch the default. */
18
+ export const DEFAULT_INTRO_ID = 'bolt';
19
+ function isIntroId(value) {
20
+ return value !== undefined && value in INTROS;
21
+ }
22
+ /**
23
+ * Resolves which intro to show. `AGENT_BOLT_INTRO=<id>` overrides the default at
24
+ * runtime — handy for previewing each variant without a code change.
25
+ */
26
+ export function resolveIntro() {
27
+ const requested = process.env.AGENT_BOLT_INTRO;
28
+ const id = isIntroId(requested) ? requested : DEFAULT_INTRO_ID;
29
+ return INTROS[id];
30
+ }
31
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/intro/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,QAAQ;IACR,eAAe,EAAE,YAAY;CACW,CAAC;AAI3C,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAY,MAAM,CAAC;AAEhD,SAAS,SAAS,CAAC,KAAyB;IAC1C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,MAAM,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC/C,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAC/D,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /** Default wordmark line. Variants may override via `Intro.title`. */
2
+ export declare const DEFAULT_TITLE: string;
3
+ /**
4
+ * Welcome text shown in the right column, identical across every intro variant.
5
+ * Agents are omitted on purpose — the next screen is the tool picker, so listing
6
+ * them here would just repeat it.
7
+ */
8
+ export declare function buildWelcomeLines(title?: string): string[];
9
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/core/intro/text.ts"],"names":[],"mappings":"AAEA,sEAAsE;AACtE,eAAO,MAAM,aAAa,QAAoD,CAAC;AAQ/E;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,MAAsB,GAAG,MAAM,EAAE,CAmBzE"}
@@ -0,0 +1,33 @@
1
+ import chalk from 'chalk';
2
+ /** Default wordmark line. Variants may override via `Intro.title`. */
3
+ export const DEFAULT_TITLE = `${chalk.yellow('⚡')} ${chalk.bold('AgentBolt')}`;
4
+ const QUICK_START = [
5
+ { command: 'list-packs', description: 'Browse the catalog' },
6
+ { command: 'add-pack', description: 'Pick what to install' },
7
+ { command: 'sync', description: 'Install into your agents' },
8
+ ];
9
+ /**
10
+ * Welcome text shown in the right column, identical across every intro variant.
11
+ * Agents are omitted on purpose — the next screen is the tool picker, so listing
12
+ * them here would just repeat it.
13
+ */
14
+ export function buildWelcomeLines(title = DEFAULT_TITLE) {
15
+ const commandWidth = Math.max(...QUICK_START.map(({ command }) => command.length));
16
+ return [
17
+ title,
18
+ chalk.dim('One catalog, every agent'),
19
+ '',
20
+ chalk.bold('init will:'),
21
+ chalk.dim(' • Create the .agent-bolt/ workspace'),
22
+ chalk.dim(' • Set up your tools and catalog sources'),
23
+ '',
24
+ chalk.bold('Quick start after setup:'),
25
+ ...QUICK_START.map(({ command, description }) => {
26
+ const paddedCommand = chalk.yellow(command.padEnd(commandWidth));
27
+ return ` ${paddedCommand} ${chalk.dim(description)}`;
28
+ }),
29
+ '',
30
+ chalk.cyan('Press Enter to continue… '),
31
+ ];
32
+ }
33
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/core/intro/text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,sEAAsE;AACtE,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;AAE/E,MAAM,WAAW,GAAoD;IACnE,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE;IAC5D,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,sBAAsB,EAAE;IAC5D,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,0BAA0B,EAAE;CAC7D,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,aAAa;IAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnF,OAAO;QACL,KAAK;QACL,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC;QACrC,EAAE;QACF,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;QACxB,KAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC;QAClD,KAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC;QACtD,EAAE;QACF,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC;QACtC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;YAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YACjE,OAAO,KAAK,aAAa,KAAK,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACzD,CAAC,CAAC;QACF,EAAE;QACF,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC;KACxC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * One intro variant: the animated logo shown beside the welcome text at the
3
+ * start of interactive `init`. Each variant lives in its own file under
4
+ * `variants/`, exposing this shape so the engine can drive any of them and the
5
+ * registry can swap between them. See `registry.ts` for selection.
6
+ */
7
+ export interface Intro {
8
+ /** Stable identifier, also the registry key and `AGENT_BOLT_INTRO` value. */
9
+ readonly id: string;
10
+ readonly label: string;
11
+ /** Below this terminal width the animation is skipped for a static frame. */
12
+ readonly minWidth: number;
13
+ /** Width reserved for the logo column; art lines are padded to it. */
14
+ readonly artColumnWidth: number;
15
+ /** Milliseconds between animation frames. */
16
+ readonly interval: number;
17
+ /** Each frame is an array of art lines, one per row. */
18
+ readonly frames: readonly string[][];
19
+ /** Frame used as the static fallback when the terminal can't animate. */
20
+ readonly peakFrameIndex: number;
21
+ /** Wordmark line for the welcome text; falls back to the shared default. */
22
+ readonly title?: string;
23
+ /**
24
+ * Colors one frame's art lines and pads each to `artColumnWidth`. The engine
25
+ * places the returned lines beside the welcome text. Built from a `paint.ts`
26
+ * helper (vertical/horizontal gradient or brightness ramp).
27
+ */
28
+ readonly paintArt: PaintArt;
29
+ }
30
+ export type PaintArt = (frameLines: readonly string[], frameIndex: number) => string[];
31
+ /** An RGB triple, channels 0–255. */
32
+ export type RGB = readonly [number, number, number];
33
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/intro/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,KAAK;IACpB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,CAAC;IACrC,yEAAyE;IACzE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;AAEvF,qCAAqC;AACrC,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/intro/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { Intro } from '../types.js';
2
+ export declare const bolt: Intro;
3
+ //# sourceMappingURL=bolt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bolt.d.ts","sourceRoot":"","sources":["../../../../src/core/intro/variants/bolt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAoDzC,eAAO,MAAM,IAAI,EAAE,KAelB,CAAC"}
@@ -0,0 +1,62 @@
1
+ import chalk from 'chalk';
2
+ import { scheduledCharge, verticalGradient } from '../paint.js';
3
+ // A stylized ASCII lightning bolt: a hash-filled stroke steps down-left, juts
4
+ // out sideways at a flat-cut jog, then continues down-left to a point. Plain
5
+ // ASCII (# " /), so it renders anywhere. A vertical white→amber gradient cools
6
+ // from the white-hot strike to the amber tip.
7
+ const BOLT = [
8
+ ' ###-',
9
+ ' ####"',
10
+ ' ####"',
11
+ ' ####"',
12
+ ' #########"',
13
+ ' """""####"',
14
+ ' ####"',
15
+ ' ####"',
16
+ ' ####',
17
+ ' ###"',
18
+ ' ##"',
19
+ ' /"',
20
+ ];
21
+ const ART_WIDTH = 14;
22
+ const ART_COLUMN_WIDTH = 17;
23
+ const blank = ' '.repeat(ART_WIDTH);
24
+ const ROWS = BOLT.length;
25
+ const blanks = (count) => Array.from({ length: count }, () => blank);
26
+ const reveal = (count) => [...BOLT.slice(0, count), ...blanks(ROWS - count)];
27
+ const peak = reveal(ROWS);
28
+ // The strike reveals top-to-bottom (frames 0–6), then the full bolt holds and
29
+ // flickers (frames 6–10) before the loop restarts. The per-frame charge dips
30
+ // and flashes while the hold frames stay full — a lightning blink. Values above
31
+ // 1 push the gradient toward white-hot (channels clamp at 255).
32
+ const CHARGE = [0.45, 0.6, 0.75, 0.85, 0.95, 1, 1, 1.35, 0.35, 1.35, 0.4];
33
+ const frames = [
34
+ reveal(0),
35
+ reveal(3),
36
+ reveal(5),
37
+ reveal(6),
38
+ reveal(8),
39
+ reveal(10),
40
+ peak,
41
+ peak,
42
+ peak,
43
+ peak,
44
+ peak,
45
+ ];
46
+ export const bolt = {
47
+ id: 'bolt',
48
+ label: 'Lightning bolt — strikes top-down, then flickers (white→amber)',
49
+ minWidth: 62,
50
+ artColumnWidth: ART_COLUMN_WIDTH,
51
+ interval: 110,
52
+ frames,
53
+ peakFrameIndex: 6,
54
+ title: chalk.bold('AgentBolt'),
55
+ paintArt: verticalGradient({
56
+ top: [255, 250, 214],
57
+ foot: [255, 150, 20],
58
+ charge: scheduledCharge(CHARGE),
59
+ width: ART_COLUMN_WIDTH,
60
+ }),
61
+ };
62
+ //# sourceMappingURL=bolt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bolt.js","sourceRoot":"","sources":["../../../../src/core/intro/variants/bolt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEhE,8EAA8E;AAC9E,6EAA6E;AAC7E,+EAA+E;AAC/E,8CAA8C;AAC9C,MAAM,IAAI,GAAG;IACX,aAAa;IACb,aAAa;IACb,YAAY;IACZ,WAAW;IACX,eAAe;IACf,eAAe;IACf,cAAc;IACd,aAAa;IACb,WAAW;IACX,UAAU;IACV,QAAQ;IACR,MAAM;CACP,CAAC;AAEF,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAEpC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;AACzB,MAAM,MAAM,GAAG,CAAC,KAAa,EAAY,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AACvF,MAAM,MAAM,GAAG,CAAC,KAAa,EAAY,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AAE/F,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAE1B,8EAA8E;AAC9E,6EAA6E;AAC7E,gFAAgF;AAChF,gEAAgE;AAChE,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAE1E,MAAM,MAAM,GAAG;IACb,MAAM,CAAC,CAAC,CAAC;IACT,MAAM,CAAC,CAAC,CAAC;IACT,MAAM,CAAC,CAAC,CAAC;IACT,MAAM,CAAC,CAAC,CAAC;IACT,MAAM,CAAC,CAAC,CAAC;IACT,MAAM,CAAC,EAAE,CAAC;IACV,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;CACL,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAU;IACzB,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,gEAAgE;IACvE,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,gBAAgB;IAChC,QAAQ,EAAE,GAAG;IACb,MAAM;IACN,cAAc,EAAE,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;IAC9B,QAAQ,EAAE,gBAAgB,CAAC;QACzB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACpB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACpB,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;QAC/B,KAAK,EAAE,gBAAgB;KACxB,CAAC;CACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Intro } from '../types.js';
2
+ export declare const fanout: Intro;
3
+ //# sourceMappingURL=fanout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fanout.d.ts","sourceRoot":"","sources":["../../../../src/core/intro/variants/fanout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAgGzC,eAAO,MAAM,MAAM,EAAE,KAgBpB,CAAC"}
@@ -0,0 +1,90 @@
1
+ import chalk from 'chalk';
2
+ import { brightnessRamp } from '../paint.js';
3
+ // A source box draws itself in, charges with a bolt, then fans out to a row of
4
+ // agent nodes — the "one catalog, every agent" idea. A per-frame cyan ramp
5
+ // brightens the whole logo as it builds.
6
+ // Full Unicode (box-drawing) is safe on macOS/Linux and modern Windows
7
+ // terminals; fall back to ASCII elsewhere.
8
+ const supportsUnicode = process.platform !== 'win32' ||
9
+ Boolean(process.env.WT_SESSION) ||
10
+ Boolean(process.env.TERM_PROGRAM);
11
+ const CHARS = supportsUnicode
12
+ ? {
13
+ topLeft: '┌',
14
+ topRight: '┐',
15
+ bottomLeft: '└',
16
+ bottomRight: '┘',
17
+ horizontal: '─',
18
+ vertical: '│',
19
+ trunk: '┬',
20
+ branch: '├',
21
+ arrow: '▸',
22
+ node: '○',
23
+ }
24
+ : {
25
+ topLeft: '+',
26
+ topRight: '+',
27
+ bottomLeft: '+',
28
+ bottomRight: '+',
29
+ horizontal: '-',
30
+ vertical: '|',
31
+ trunk: '+',
32
+ branch: '+',
33
+ arrow: '>',
34
+ node: 'o',
35
+ };
36
+ const { topLeft: TL, topRight: TR, bottomLeft: BL, bottomRight: BR, horizontal: H, vertical: V, trunk: TRUNK, branch: BRANCH, arrow: ARROW, node: NODE, } = CHARS;
37
+ const INNER_WIDTH = 6;
38
+ const ART_WIDTH = 13;
39
+ const ART_COLUMN_WIDTH = 17;
40
+ const blank = ' '.repeat(ART_WIDTH);
41
+ const boltContent = supportsUnicode ? ' ⚡ ' : ' /\\ ';
42
+ const cornersTop = `${TL}${' '.repeat(INNER_WIDTH)}${TR}`;
43
+ const cornersBottom = `${BL}${' '.repeat(INNER_WIDTH)}${BR}`;
44
+ const boxTop = `${TL}${H.repeat(INNER_WIDTH)}${TR}`;
45
+ const boxEmpty = `${V}${' '.repeat(INNER_WIDTH)}${V}`;
46
+ const boxBolt = `${V}${boltContent}${V}`;
47
+ const boxBottom = `${BL}${H.repeat(INNER_WIDTH)}${BR}`;
48
+ const boxTrunk = `${BL}${H.repeat(2)}${TRUNK}${H.repeat(3)}${BR}`;
49
+ const trunkDrop = `${' '.repeat(3)}${V}`;
50
+ const branchMid = `${' '.repeat(3)}${BRANCH}${H.repeat(6)}${ARROW} ${NODE}`;
51
+ const branchLast = `${' '.repeat(3)}${BL}${H.repeat(6)}${ARROW} ${NODE}`;
52
+ const emptyContent = [boxEmpty, boxEmpty, boxEmpty];
53
+ const fan = [trunkDrop, branchMid, trunkDrop, branchMid, trunkDrop, branchLast];
54
+ const pad = (count) => Array.from({ length: count }, () => blank);
55
+ const frames = [
56
+ pad(11),
57
+ [cornersTop, blank, blank, blank, cornersBottom, ...pad(6)],
58
+ [boxTop, ...emptyContent, boxBottom, ...pad(6)],
59
+ [boxTop, boxEmpty, boxBolt, boxEmpty, boxBottom, ...pad(6)],
60
+ [boxTop, boxEmpty, boxBolt, boxEmpty, boxTrunk, trunkDrop, branchMid, ...pad(4)],
61
+ [boxTop, boxEmpty, boxBolt, boxEmpty, boxTrunk, ...fan],
62
+ [boxTop, boxEmpty, boxBolt, boxEmpty, boxTrunk, ...fan],
63
+ ];
64
+ const BRIGHTNESS = [
65
+ chalk.dim.cyan,
66
+ chalk.dim.cyan,
67
+ chalk.cyan,
68
+ chalk.cyan,
69
+ chalk.cyanBright,
70
+ chalk.bold.cyanBright,
71
+ chalk.bold.cyanBright,
72
+ ];
73
+ export const fanout = {
74
+ id: 'fanout',
75
+ label: 'Fan-out — one catalog box fans out to agent nodes (cyan ramp)',
76
+ minWidth: 62,
77
+ artColumnWidth: ART_COLUMN_WIDTH,
78
+ interval: 130,
79
+ frames,
80
+ peakFrameIndex: 5,
81
+ title: chalk.bold('⚡ AgentBolt'),
82
+ // ⚡ is two columns wide, so pad the art column by display width.
83
+ paintArt: brightnessRamp({
84
+ ramp: BRIGHTNESS,
85
+ fallback: chalk.bold.cyanBright,
86
+ width: ART_COLUMN_WIDTH,
87
+ wide: true,
88
+ }),
89
+ };
90
+ //# sourceMappingURL=fanout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fanout.js","sourceRoot":"","sources":["../../../../src/core/intro/variants/fanout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Intro } from '../types.js';
2
+ export declare const tide: Intro;
3
+ //# sourceMappingURL=tide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tide.d.ts","sourceRoot":"","sources":["../../../../src/core/intro/variants/tide.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAsDzC,eAAO,MAAM,IAAI,EAAE,KAiBlB,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { horizontalGradient, sineCharge } from '../paint.js';
2
+ // A tide seen from above: water fills the field from the left, and its edge —
3
+ // the foam line — surges right then drains back left, over and over. The edge
4
+ // is rendered with left-eighth block characters so the waterline stays smooth
5
+ // rather than stair-stepped, and two long vertical sine waves are layered so it
6
+ // undulates organically down the column. One phase loop = one full surge+drain,
7
+ // so the animation repeats seamlessly. A horizontal violet→blue gradient lights
8
+ // up the surge as it crashes in.
9
+ const ROWS = 13; // matches the welcome text height
10
+ const COLUMNS = 16; // width of the water field
11
+ const FRAMES = 20; // phase steps for one seamless surge+drain
12
+ const TIDE_BASE = 8.2; // mid waterline position (columns from the left)
13
+ const TIDE_AMP = 6.4; // how far the tide surges right / drains left
14
+ const FOAM_AMP = 1.9; // depth of the wavy foam edge
15
+ const WAVES_A = 1; // long crest running the full height
16
+ const WAVES_B = 2; // shorter ripple layered on top
17
+ // Left-eighth blocks: a cell that is 0..1 full of water maps onto these so the
18
+ // waterline can land between columns.
19
+ const SHADES = [' ', '▏', '▎', '▍', '▌', '▋', '▊', '▉', '█'];
20
+ const ART_COLUMN_WIDTH = 20;
21
+ function waterlineAt(row, phase) {
22
+ const tide = TIDE_BASE + TIDE_AMP * Math.sin(phase);
23
+ const foam = FOAM_AMP *
24
+ (0.62 * Math.sin((2 * Math.PI * WAVES_A * row) / ROWS + phase) +
25
+ 0.38 * Math.sin((2 * Math.PI * WAVES_B * row) / ROWS - phase));
26
+ return tide + foam;
27
+ }
28
+ function cell(fill) {
29
+ if (fill >= 1)
30
+ return '█';
31
+ if (fill <= 0)
32
+ return ' ';
33
+ return SHADES[Math.round(fill * 8)];
34
+ }
35
+ function buildFrame(phase) {
36
+ return Array.from({ length: ROWS }, (_, row) => {
37
+ const edge = waterlineAt(row, phase);
38
+ let line = '';
39
+ for (let column = 0; column < COLUMNS; column++) {
40
+ line += cell(edge - column);
41
+ }
42
+ return line;
43
+ });
44
+ }
45
+ const frames = Array.from({ length: FRAMES }, (_, i) => buildFrame((2 * Math.PI * i) / FRAMES));
46
+ export const tide = {
47
+ id: 'tide',
48
+ label: 'Tide — water surges in from the left and drains back (violet→blue)',
49
+ minWidth: 66,
50
+ artColumnWidth: ART_COLUMN_WIDTH,
51
+ interval: 70,
52
+ frames,
53
+ // High tide (phase ≈ π/2) is the fullest frame — the static fallback.
54
+ peakFrameIndex: Math.round(FRAMES / 4),
55
+ paintArt: horizontalGradient({
56
+ left: [99, 64, 210],
57
+ right: [96, 205, 252],
58
+ // A gentle global breath layered on the tide's motion, so the water feels
59
+ // alive rather than flat.
60
+ charge: sineCharge(0.84, 0.16, FRAMES),
61
+ width: ART_COLUMN_WIDTH,
62
+ }),
63
+ };
64
+ //# sourceMappingURL=tide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tide.js","sourceRoot":"","sources":["../../../../src/core/intro/variants/tide.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7D,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,iCAAiC;AACjC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,kCAAkC;AACnD,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,2BAA2B;AAC/C,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,2CAA2C;AAE9D,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,iDAAiD;AACxE,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,8CAA8C;AACpE,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,8BAA8B;AACpD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,qCAAqC;AACxD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,gCAAgC;AAEnD,+EAA+E;AAC/E,sCAAsC;AACtC,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE7D,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B,SAAS,WAAW,CAAC,GAAW,EAAE,KAAa;IAC7C,MAAM,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,IAAI,GACR,QAAQ;QACR,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,OAAO,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;YAC5D,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,OAAO,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;IACnE,OAAO,IAAI,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,SAAS,IAAI,CAAC,IAAY;IACxB,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAC1B,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAE,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;YAChD,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AAEhG,MAAM,CAAC,MAAM,IAAI,GAAU;IACzB,EAAE,EAAE,MAAM;IACV,KAAK,EAAE,oEAAoE;IAC3E,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,gBAAgB;IAChC,QAAQ,EAAE,EAAE;IACZ,MAAM;IACN,sEAAsE;IACtE,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACtC,QAAQ,EAAE,kBAAkB,CAAC;QAC3B,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;QACnB,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;QACrB,0EAA0E;QAC1E,0BAA0B;QAC1B,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;QACtC,KAAK,EAAE,gBAAgB;KACxB,CAAC;CACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Intro } from '../types.js';
2
+ export declare const wordmarkWave: Intro;
3
+ //# sourceMappingURL=wordmark-wave.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wordmark-wave.d.ts","sourceRoot":"","sources":["../../../../src/core/intro/variants/wordmark-wave.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAqCzC,eAAO,MAAM,YAAY,EAAE,KAiB1B,CAAC"}