@hasna/skills 0.1.62 → 0.1.64

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 (541) hide show
  1. package/README.md +38 -12
  2. package/bin/index.js +15743 -21709
  3. package/bin/mcp.js +3866 -11522
  4. package/bin/migrate.js +281 -35
  5. package/bin/server.js +5805 -2682
  6. package/bin/worker.js +5280 -2388
  7. package/dist/cli/commands/publish.d.ts +2 -0
  8. package/dist/cli/commands/registry-reconcile.d.ts +2 -0
  9. package/dist/cli/components/App.d.ts +2 -1
  10. package/dist/cli/components/CategorySelect.d.ts +2 -1
  11. package/dist/cli/components/Header.d.ts +2 -1
  12. package/dist/cli/components/InstallProgress.d.ts +2 -1
  13. package/dist/cli/components/SearchView.d.ts +2 -1
  14. package/dist/cli/components/SkillSelect.d.ts +2 -1
  15. package/dist/index.d.ts +5 -2
  16. package/dist/index.js +5386 -13739
  17. package/dist/lib/agent-sync.d.ts +61 -6
  18. package/dist/lib/auth-store.d.ts +37 -0
  19. package/dist/lib/config.d.ts +51 -0
  20. package/dist/lib/home-adoption.d.ts +91 -0
  21. package/dist/lib/home-census.d.ts +26 -0
  22. package/dist/lib/home-migration.d.ts +60 -0
  23. package/dist/lib/native-storage.d.ts +1 -1
  24. package/dist/lib/portable-skills-files.d.ts +21 -1
  25. package/dist/lib/portable-skills-types.d.ts +46 -0
  26. package/dist/lib/portable-skills.d.ts +35 -6
  27. package/dist/lib/pull.d.ts +97 -0
  28. package/dist/lib/registry-reconcile.d.ts +114 -0
  29. package/dist/lib/registry.d.ts +7 -4
  30. package/dist/lib/remote-client.d.ts +124 -1
  31. package/dist/lib/remote-registry.d.ts +26 -0
  32. package/dist/lib/revision.d.ts +29 -0
  33. package/dist/lib/run-state.d.ts +5 -0
  34. package/dist/lib/skill-bundles.d.ts +54 -0
  35. package/dist/lib/skill-contract.d.ts +35 -0
  36. package/dist/lib/skill-hash.d.ts +77 -0
  37. package/dist/sdk/cancel.d.ts +30 -0
  38. package/dist/sdk/dispatcher.d.ts +40 -0
  39. package/dist/sdk/event-sink.d.ts +2 -0
  40. package/dist/sdk/events.d.ts +79 -0
  41. package/dist/sdk/execution/admission.d.ts +44 -0
  42. package/dist/sdk/execution/dispatchers/e2b.d.ts +17 -0
  43. package/dist/sdk/execution/dispatchers/ecs.d.ts +151 -0
  44. package/dist/sdk/execution/image-profile.d.ts +73 -0
  45. package/dist/sdk/execution/index.d.ts +15 -0
  46. package/dist/sdk/execution/receipts.d.ts +44 -0
  47. package/dist/sdk/execution/state-machine.d.ts +38 -0
  48. package/dist/sdk/execution/storage.d.ts +158 -0
  49. package/dist/sdk/execution/types.d.ts +130 -0
  50. package/dist/sdk/executor.d.ts +17 -0
  51. package/dist/sdk/governance-store.d.ts +156 -0
  52. package/dist/sdk/governance.d.ts +92 -0
  53. package/dist/sdk/index.d.ts +26 -0
  54. package/dist/sdk/index.js +49728 -0
  55. package/dist/sdk/offline.d.ts +16 -0
  56. package/dist/sdk/outputs.d.ts +71 -0
  57. package/dist/sdk/registry.d.ts +28 -0
  58. package/dist/sdk/runs.d.ts +229 -0
  59. package/dist/sdk/server.d.ts +35 -0
  60. package/dist/sdk/spend.d.ts +36 -0
  61. package/dist/sdk/storage.d.ts +25 -0
  62. package/dist/server/app.d.ts +42 -0
  63. package/dist/server/artifact-storage.d.ts +102 -0
  64. package/dist/server/auth.d.ts +5 -0
  65. package/dist/server/config.d.ts +50 -0
  66. package/dist/server/database-url.d.ts +42 -0
  67. package/dist/server/handlers.d.ts +3 -0
  68. package/dist/server/index.d.ts +2 -0
  69. package/dist/server/migrate.d.ts +13 -0
  70. package/dist/server/migrations-dir.d.ts +18 -0
  71. package/dist/server/redaction.d.ts +1 -0
  72. package/dist/server/registry.d.ts +5 -0
  73. package/dist/server/rows.d.ts +24 -0
  74. package/dist/server/skills-api.d.ts +170 -0
  75. package/dist/server/sqlite-store.d.ts +131 -0
  76. package/dist/server/store-fixtures.d.ts +25 -0
  77. package/dist/server/store.d.ts +170 -0
  78. package/dist/server/types.d.ts +337 -0
  79. package/dist/server/worker.d.ts +4 -0
  80. package/dist/storage.js +39 -2
  81. package/docs/skill-standard.md +211 -39
  82. package/migrations/postgres/0003_run_outputs_governance.sql +83 -0
  83. package/migrations/postgres/0004_hosted_pins.sql +28 -0
  84. package/migrations/postgres/0005_revision_tombstone_registry.sql +37 -0
  85. package/migrations/postgres/0005_tag_projection.sql +36 -0
  86. package/migrations/sqlite/0003_run_outputs_governance.sql +58 -0
  87. package/migrations/sqlite/0004_hosted_pins.sql +21 -0
  88. package/migrations/sqlite/0005_revision_tombstone_registry.sql +18 -0
  89. package/migrations/sqlite/0005_tag_projection.sql +25 -0
  90. package/package.json +12 -8
  91. package/schemas/skill.schema.json +181 -0
  92. package/agent-skills/README.md +0 -41
  93. package/agent-skills/fleet-package-rollout/SKILL.md +0 -169
  94. package/agent-skills/inbox/SKILL.md +0 -25
  95. package/agent-skills/inbox/scripts/inbox +0 -109
  96. package/agent-skills/inbox/tests/test_registered_sender_id.sh +0 -92
  97. package/agent-skills/inbox-monitor/SKILL.md +0 -41
  98. package/agent-skills/inbox-monitor/scripts/inbox_monitor.sh +0 -91
  99. package/agent-skills/inbox-monitor/scripts/test_inbox_monitor.sh +0 -71
  100. package/agent-skills/merge-pr/SKILL.md +0 -85
  101. package/agent-skills/merge-pr/references/merge-safety.md +0 -82
  102. package/agent-skills/merge-pr/scripts/merge_pr_guard.py +0 -694
  103. package/agent-skills/merge-pr/scripts/test_merge_pr_guard.py +0 -647
  104. package/agent-skills/merge-pr/tests/fixtures/multi-commit-synthesized.json +0 -28
  105. package/agent-skills/merge-pr/tests/fixtures/trailer-free-provider.json +0 -28
  106. package/agent-skills/skill-goal-execute/SKILL.md +0 -115
  107. package/agent-skills/skill-login/SKILL.md +0 -109
  108. package/agent-skills/skill-project-create/SKILL.md +0 -91
  109. package/agent-skills/skill-publish/SKILL.md +0 -254
  110. package/agent-skills/skill-publish/scripts/capture_registry.js +0 -47
  111. package/agent-skills/skill-publish/scripts/publish_with_git_head.sh +0 -143
  112. package/agent-skills/skill-publish/scripts/test_publish_with_git_head.sh +0 -231
  113. package/skills/_common/auth.ts +0 -45
  114. package/skills/_common/http-client.ts +0 -143
  115. package/skills/_common/index.ts +0 -26
  116. package/skills/_common/install.sh +0 -7
  117. package/skills/_common/installer.ts +0 -72
  118. package/skills/_common/skill-install.ts +0 -37
  119. package/skills/_common/vision.ts +0 -374
  120. package/skills/ad-creative-pack/SKILL.md +0 -55
  121. package/skills/ad-creative-pack/package.json +0 -10
  122. package/skills/analyze-data/CLAUDE.md +0 -16
  123. package/skills/analyze-data/SKILL.md +0 -112
  124. package/skills/analyze-data/package.json +0 -23
  125. package/skills/analyze-data/src/analysis.ts +0 -401
  126. package/skills/analyze-data/src/cli.ts +0 -66
  127. package/skills/analyze-data/src/formatters.ts +0 -235
  128. package/skills/analyze-data/src/index.ts +0 -74
  129. package/skills/analyze-data/src/logger.ts +0 -36
  130. package/skills/analyze-data/src/parsers.ts +0 -57
  131. package/skills/analyze-data/src/stats.ts +0 -151
  132. package/skills/analyze-data/src/types.ts +0 -85
  133. package/skills/analyze-data/tsconfig.json +0 -19
  134. package/skills/api-docs-portal/SKILL.md +0 -84
  135. package/skills/api-docs-portal/package.json +0 -35
  136. package/skills/api-docs-portal/src/index.ts +0 -919
  137. package/skills/api-docs-portal/tsconfig.json +0 -17
  138. package/skills/api-test-suite/CLAUDE.md +0 -19
  139. package/skills/api-test-suite/package.json +0 -27
  140. package/skills/api-test-suite/src/index.ts +0 -381
  141. package/skills/api-test-suite/tsconfig.json +0 -10
  142. package/skills/audio-extract/CLAUDE.md +0 -9
  143. package/skills/audio-extract/SKILL.md +0 -73
  144. package/skills/audio-extract/package.json +0 -23
  145. package/skills/audio-extract/src/index.ts +0 -323
  146. package/skills/audio-extract/tsconfig.json +0 -11
  147. package/skills/bio-sequence-tool/CLAUDE.md +0 -19
  148. package/skills/bio-sequence-tool/package.json +0 -27
  149. package/skills/bio-sequence-tool/src/index.ts +0 -85
  150. package/skills/bio-sequence-tool/tsconfig.json +0 -10
  151. package/skills/blog-article/CLAUDE.md +0 -12
  152. package/skills/blog-article/SKILL.md +0 -55
  153. package/skills/blog-article/package.json +0 -10
  154. package/skills/blog-article/tsconfig.json +0 -10
  155. package/skills/brand-assets/SKILL.md +0 -118
  156. package/skills/brand-assets/package.json +0 -35
  157. package/skills/brand-assets/src/cli.ts +0 -155
  158. package/skills/brand-assets/src/constants.ts +0 -8
  159. package/skills/brand-assets/src/extract.ts +0 -236
  160. package/skills/brand-assets/src/index.ts +0 -668
  161. package/skills/brand-assets/src/types.ts +0 -59
  162. package/skills/brand-assets/tsconfig.json +0 -17
  163. package/skills/brand-kit/SKILL.md +0 -54
  164. package/skills/brand-kit/package.json +0 -10
  165. package/skills/businessactivity/CLAUDE.md +0 -176
  166. package/skills/businessactivity/LICENSE +0 -192
  167. package/skills/businessactivity/README.md +0 -287
  168. package/skills/businessactivity/package.json +0 -25
  169. package/skills/businessactivity/scripts/publish.ts +0 -210
  170. package/skills/businessactivity/src/commands/activity.ts +0 -211
  171. package/skills/businessactivity/src/commands/function.ts +0 -227
  172. package/skills/businessactivity/src/commands/owner.ts +0 -193
  173. package/skills/businessactivity/src/commands/profile.ts +0 -121
  174. package/skills/businessactivity/src/commands/responsibility.ts +0 -264
  175. package/skills/businessactivity/src/commands/team.ts +0 -244
  176. package/skills/businessactivity/src/commands/workflow.ts +0 -359
  177. package/skills/businessactivity/src/index.ts +0 -3
  178. package/skills/businessactivity/src/lib/config.ts +0 -167
  179. package/skills/businessactivity/src/lib/output.ts +0 -76
  180. package/skills/businessactivity/src/lib/paths.ts +0 -79
  181. package/skills/businessactivity/src/lib/storage.ts +0 -95
  182. package/skills/businessactivity/src/types/index.ts +0 -86
  183. package/skills/businessactivity/tsconfig.json +0 -29
  184. package/skills/codefix/LICENSE +0 -192
  185. package/skills/codefix/README.md +0 -232
  186. package/skills/codefix/SKILL.md +0 -94
  187. package/skills/codefix/package.json +0 -21
  188. package/skills/codefix/src/fixers/batch.ts +0 -213
  189. package/skills/codefix/src/fixers/detector.ts +0 -160
  190. package/skills/codefix/src/fixers/index.ts +0 -7
  191. package/skills/codefix/src/fixers/runner.ts +0 -522
  192. package/skills/codefix/src/index-local.ts +0 -431
  193. package/skills/codefix/src/index.ts +0 -4
  194. package/skills/codefix/src/types.ts +0 -211
  195. package/skills/codefix/tsconfig.json +0 -15
  196. package/skills/commitpush/SKILL.md +0 -57
  197. package/skills/commitpush/package.json +0 -33
  198. package/skills/commitpush/src/index.ts +0 -34
  199. package/skills/commitpush/tsconfig.json +0 -17
  200. package/skills/commitpushpr/SKILL.md +0 -55
  201. package/skills/commitpushpr/package.json +0 -33
  202. package/skills/commitpushpr/src/index.ts +0 -34
  203. package/skills/commitpushpr/tsconfig.json +0 -17
  204. package/skills/compress-video/CLAUDE.md +0 -9
  205. package/skills/compress-video/SKILL.md +0 -79
  206. package/skills/compress-video/package.json +0 -23
  207. package/skills/compress-video/src/index.ts +0 -473
  208. package/skills/compress-video/tsconfig.json +0 -11
  209. package/skills/contract-review-report/SKILL.md +0 -52
  210. package/skills/contract-review-report/package.json +0 -10
  211. package/skills/customer-feedback-report/SKILL.md +0 -52
  212. package/skills/customer-feedback-report/package.json +0 -10
  213. package/skills/dashboard-builder/CLAUDE.md +0 -19
  214. package/skills/dashboard-builder/package.json +0 -29
  215. package/skills/dashboard-builder/src/index.ts +0 -150
  216. package/skills/dashboard-builder/tsconfig.json +0 -10
  217. package/skills/data-anonymizer/CLAUDE.md +0 -19
  218. package/skills/data-anonymizer/package.json +0 -27
  219. package/skills/data-anonymizer/src/index.ts +0 -183
  220. package/skills/data-anonymizer/tsconfig.json +0 -10
  221. package/skills/database-explorer/CLAUDE.md +0 -19
  222. package/skills/database-explorer/package.json +0 -29
  223. package/skills/database-explorer/src/index.ts +0 -95
  224. package/skills/database-explorer/tsconfig.json +0 -10
  225. package/skills/diff-viewer/CLAUDE.md +0 -19
  226. package/skills/diff-viewer/package.json +0 -30
  227. package/skills/diff-viewer/src/index.ts +0 -164
  228. package/skills/diff-viewer/tsconfig.json +0 -10
  229. package/skills/doc-read/SKILL.md +0 -45
  230. package/skills/doc-read/package.json +0 -29
  231. package/skills/doc-read/src/index.ts +0 -324
  232. package/skills/doc-read/tsconfig.json +0 -8
  233. package/skills/domainpurchase/LICENSE +0 -192
  234. package/skills/domainpurchase/SKILL.md +0 -29
  235. package/skills/domainpurchase/package.json +0 -30
  236. package/skills/domainpurchase/src/index.ts +0 -3
  237. package/skills/domainpurchase/tsconfig.json +0 -21
  238. package/skills/email-sequence/SKILL.md +0 -53
  239. package/skills/email-sequence/package.json +0 -10
  240. package/skills/experiment-power-calculator/CLAUDE.md +0 -19
  241. package/skills/experiment-power-calculator/package.json +0 -29
  242. package/skills/experiment-power-calculator/src/index.ts +0 -86
  243. package/skills/experiment-power-calculator/tsconfig.json +0 -10
  244. package/skills/extract-frames/CLAUDE.md +0 -19
  245. package/skills/extract-frames/package.json +0 -27
  246. package/skills/extract-frames/src/index.ts +0 -616
  247. package/skills/extract-frames/tsconfig.json +0 -10
  248. package/skills/file-organizer/CLAUDE.md +0 -19
  249. package/skills/file-organizer/package.json +0 -27
  250. package/skills/file-organizer/src/index.ts +0 -91
  251. package/skills/file-organizer/tsconfig.json +0 -10
  252. package/skills/folder-tree/CLAUDE.md +0 -19
  253. package/skills/folder-tree/package.json +0 -29
  254. package/skills/folder-tree/src/index.ts +0 -568
  255. package/skills/folder-tree/tsconfig.json +0 -10
  256. package/skills/form-filler/CLAUDE.md +0 -19
  257. package/skills/form-filler/package.json +0 -29
  258. package/skills/form-filler/src/index.ts +0 -81
  259. package/skills/form-filler/tsconfig.json +0 -10
  260. package/skills/generate-api-client/CLAUDE.md +0 -19
  261. package/skills/generate-api-client/package.json +0 -29
  262. package/skills/generate-api-client/src/generator.ts +0 -47
  263. package/skills/generate-api-client/src/index.ts +0 -92
  264. package/skills/generate-api-client/src/logger.ts +0 -34
  265. package/skills/generate-api-client/src/python-generator.ts +0 -245
  266. package/skills/generate-api-client/src/spec-loader.ts +0 -48
  267. package/skills/generate-api-client/src/type-mappers.ts +0 -79
  268. package/skills/generate-api-client/src/types.ts +0 -76
  269. package/skills/generate-api-client/src/typescript-generator.ts +0 -247
  270. package/skills/generate-api-client/tsconfig.json +0 -10
  271. package/skills/generate-chart/CLAUDE.md +0 -19
  272. package/skills/generate-chart/package.json +0 -27
  273. package/skills/generate-chart/src/index.ts +0 -510
  274. package/skills/generate-chart/tsconfig.json +0 -10
  275. package/skills/generate-dockerfile/CLAUDE.md +0 -19
  276. package/skills/generate-dockerfile/package.json +0 -27
  277. package/skills/generate-dockerfile/src/cli.ts +0 -78
  278. package/skills/generate-dockerfile/src/dockerfile-templates.ts +0 -392
  279. package/skills/generate-dockerfile/src/index.ts +0 -81
  280. package/skills/generate-dockerfile/src/logger.ts +0 -30
  281. package/skills/generate-dockerfile/src/project-detection.ts +0 -68
  282. package/skills/generate-dockerfile/src/support-files.ts +0 -171
  283. package/skills/generate-dockerfile/src/types.ts +0 -29
  284. package/skills/generate-dockerfile/tsconfig.json +0 -10
  285. package/skills/generate-env/CLAUDE.md +0 -19
  286. package/skills/generate-env/package.json +0 -29
  287. package/skills/generate-env/src/cli.ts +0 -85
  288. package/skills/generate-env/src/detection.ts +0 -161
  289. package/skills/generate-env/src/env-data.ts +0 -66
  290. package/skills/generate-env/src/generators.ts +0 -240
  291. package/skills/generate-env/src/index.ts +0 -120
  292. package/skills/generate-env/src/runtime.ts +0 -30
  293. package/skills/generate-env/src/types.ts +0 -32
  294. package/skills/generate-env/tsconfig.json +0 -10
  295. package/skills/generate-favicon/CLAUDE.md +0 -19
  296. package/skills/generate-favicon/package.json +0 -29
  297. package/skills/generate-favicon/src/index.ts +0 -421
  298. package/skills/generate-favicon/tsconfig.json +0 -10
  299. package/skills/generate-qrcode/CLAUDE.md +0 -19
  300. package/skills/generate-qrcode/package.json +0 -30
  301. package/skills/generate-qrcode/src/index.ts +0 -584
  302. package/skills/generate-qrcode/tsconfig.json +0 -10
  303. package/skills/generate-resume/CLAUDE.md +0 -19
  304. package/skills/generate-resume/package.json +0 -27
  305. package/skills/generate-resume/src/cli.ts +0 -157
  306. package/skills/generate-resume/src/index.ts +0 -178
  307. package/skills/generate-resume/src/parsers.ts +0 -95
  308. package/skills/generate-resume/src/renderers.ts +0 -538
  309. package/skills/generate-resume/src/security.ts +0 -39
  310. package/skills/generate-resume/src/types.ts +0 -86
  311. package/skills/generate-resume/tsconfig.json +0 -10
  312. package/skills/generate-sitemap/CLAUDE.md +0 -19
  313. package/skills/generate-sitemap/package.json +0 -27
  314. package/skills/generate-sitemap/src/index.ts +0 -626
  315. package/skills/generate-sitemap/tsconfig.json +0 -10
  316. package/skills/gif-maker/CLAUDE.md +0 -19
  317. package/skills/gif-maker/package.json +0 -30
  318. package/skills/gif-maker/src/index.ts +0 -600
  319. package/skills/gif-maker/tsconfig.json +0 -10
  320. package/skills/hook/LICENSE +0 -192
  321. package/skills/hook/README.md +0 -74
  322. package/skills/hook/SKILL.md +0 -85
  323. package/skills/hook/bunfig.toml +0 -5
  324. package/skills/hook/package.json +0 -28
  325. package/skills/hook/src/commands/create.ts +0 -112
  326. package/skills/hook/src/commands/events.ts +0 -37
  327. package/skills/hook/src/commands/validate.ts +0 -117
  328. package/skills/hook/src/index.ts +0 -118
  329. package/skills/hook/src/templates/root.ts +0 -196
  330. package/skills/hook/src/templates/source.ts +0 -647
  331. package/skills/hook/tsconfig.json +0 -18
  332. package/skills/http-server/CLAUDE.md +0 -19
  333. package/skills/http-server/package.json +0 -29
  334. package/skills/http-server/src/index.ts +0 -51
  335. package/skills/http-server/tsconfig.json +0 -10
  336. package/skills/implementation/LICENSE +0 -192
  337. package/skills/implementation/README.md +0 -53
  338. package/skills/implementation/SKILL.md +0 -57
  339. package/skills/implementation/bunfig.toml +0 -5
  340. package/skills/implementation/package.json +0 -28
  341. package/skills/implementation/src/commands/create.ts +0 -187
  342. package/skills/implementation/src/index.ts +0 -62
  343. package/skills/implementation/tsconfig.json +0 -18
  344. package/skills/implementation-plan/CLAUDE.md +0 -19
  345. package/skills/implementation-plan/package.json +0 -29
  346. package/skills/implementation-plan/src/index.ts +0 -520
  347. package/skills/implementation-plan/tsconfig.json +0 -10
  348. package/skills/implementation-todo/CLAUDE.md +0 -19
  349. package/skills/implementation-todo/package.json +0 -29
  350. package/skills/implementation-todo/src/index.ts +0 -429
  351. package/skills/implementation-todo/tsconfig.json +0 -10
  352. package/skills/invoice/.env.example +0 -3
  353. package/skills/invoice/CLAUDE.md +0 -31
  354. package/skills/invoice/LICENSE +0 -192
  355. package/skills/invoice/README.md +0 -70
  356. package/skills/invoice/package.json +0 -26
  357. package/skills/invoice/src/commands/companies.ts +0 -202
  358. package/skills/invoice/src/commands/config.ts +0 -132
  359. package/skills/invoice/src/commands/generate.ts +0 -177
  360. package/skills/invoice/src/commands/invoices.ts +0 -218
  361. package/skills/invoice/src/index.ts +0 -3
  362. package/skills/invoice/src/lib/api.ts +0 -124
  363. package/skills/invoice/src/lib/storage.ts +0 -171
  364. package/skills/invoice/src/types/index.ts +0 -86
  365. package/skills/invoice/src/utils/logger.ts +0 -33
  366. package/skills/invoice/src/utils/paths.ts +0 -25
  367. package/skills/invoice/tsconfig.json +0 -23
  368. package/skills/invoice-reconciliation/SKILL.md +0 -98
  369. package/skills/invoice-reconciliation/package.json +0 -36
  370. package/skills/invoice-reconciliation/src/index.ts +0 -743
  371. package/skills/invoice-reconciliation/tsconfig.json +0 -17
  372. package/skills/landing-page-pack/SKILL.md +0 -55
  373. package/skills/landing-page-pack/package.json +0 -10
  374. package/skills/latex-table-generator/CLAUDE.md +0 -19
  375. package/skills/latex-table-generator/package.json +0 -29
  376. package/skills/latex-table-generator/src/index.ts +0 -113
  377. package/skills/latex-table-generator/tsconfig.json +0 -10
  378. package/skills/logo-design/SKILL.md +0 -94
  379. package/skills/logo-design/package.json +0 -35
  380. package/skills/logo-design/src/cli.ts +0 -132
  381. package/skills/logo-design/src/constants.ts +0 -5
  382. package/skills/logo-design/src/docs.ts +0 -102
  383. package/skills/logo-design/src/geometry.ts +0 -324
  384. package/skills/logo-design/src/index.ts +0 -212
  385. package/skills/logo-design/src/palette.ts +0 -258
  386. package/skills/logo-design/src/types.ts +0 -50
  387. package/skills/logo-design/tsconfig.json +0 -17
  388. package/skills/lorem-generator/CLAUDE.md +0 -19
  389. package/skills/lorem-generator/package.json +0 -29
  390. package/skills/lorem-generator/src/index.ts +0 -59
  391. package/skills/lorem-generator/tsconfig.json +0 -10
  392. package/skills/managemcp/CLAUDE.md +0 -14
  393. package/skills/managemcp/README.md +0 -24
  394. package/skills/managemcp/package.json +0 -16
  395. package/skills/managemcp/src/index.ts +0 -3
  396. package/skills/managemcp/tsconfig.json +0 -27
  397. package/skills/markdown-validator/CLAUDE.md +0 -19
  398. package/skills/markdown-validator/package.json +0 -29
  399. package/skills/markdown-validator/src/index.ts +0 -92
  400. package/skills/markdown-validator/tsconfig.json +0 -10
  401. package/skills/market-research-report/SKILL.md +0 -51
  402. package/skills/market-research-report/package.json +0 -10
  403. package/skills/meeting-pack/SKILL.md +0 -52
  404. package/skills/meeting-pack/package.json +0 -10
  405. package/skills/merge-pdfs/CLAUDE.md +0 -19
  406. package/skills/merge-pdfs/package.json +0 -31
  407. package/skills/merge-pdfs/src/index.ts +0 -427
  408. package/skills/merge-pdfs/tsconfig.json +0 -10
  409. package/skills/migration-plan-pack/SKILL.md +0 -56
  410. package/skills/migration-plan-pack/package.json +0 -10
  411. package/skills/monitor/SKILL.md +0 -69
  412. package/skills/monitor/package.json +0 -33
  413. package/skills/monitor/src/index.ts +0 -34
  414. package/skills/monitor/tsconfig.json +0 -17
  415. package/skills/one-page-website/SKILL.md +0 -128
  416. package/skills/one-page-website/package.json +0 -34
  417. package/skills/one-page-website/src/design.ts +0 -336
  418. package/skills/one-page-website/src/docs.ts +0 -159
  419. package/skills/one-page-website/src/index.ts +0 -357
  420. package/skills/one-page-website/src/page.ts +0 -340
  421. package/skills/one-page-website/src/styles.ts +0 -508
  422. package/skills/one-page-website/src/types.ts +0 -78
  423. package/skills/one-page-website/tsconfig.json +0 -17
  424. package/skills/pdf-generate/CLAUDE.md +0 -19
  425. package/skills/pdf-generate/SKILL.md +0 -86
  426. package/skills/pdf-generate/package.json +0 -21
  427. package/skills/pdf-generate/src/cli.ts +0 -162
  428. package/skills/pdf-generate/src/html.ts +0 -84
  429. package/skills/pdf-generate/src/index.ts +0 -62
  430. package/skills/pdf-generate/src/markdown.ts +0 -27
  431. package/skills/pdf-generate/src/pdf-writer.ts +0 -78
  432. package/skills/pdf-generate/src/runtime.ts +0 -34
  433. package/skills/pdf-generate/src/security.ts +0 -37
  434. package/skills/pdf-generate/src/templates.ts +0 -311
  435. package/skills/pdf-generate/src/types.ts +0 -28
  436. package/skills/pdf-generate/tsconfig.json +0 -16
  437. package/skills/pdf-to-dataset/SKILL.md +0 -88
  438. package/skills/pdf-to-dataset/package.json +0 -37
  439. package/skills/pdf-to-dataset/src/index.ts +0 -790
  440. package/skills/pdf-to-dataset/tsconfig.json +0 -17
  441. package/skills/pdf-to-markdown/SKILL.md +0 -81
  442. package/skills/pdf-to-markdown/package.json +0 -35
  443. package/skills/pdf-to-markdown/src/index.ts +0 -694
  444. package/skills/pdf-to-markdown/tsconfig.json +0 -17
  445. package/skills/performance-audit-report/SKILL.md +0 -49
  446. package/skills/performance-audit-report/package.json +0 -10
  447. package/skills/pitch-deck/SKILL.md +0 -51
  448. package/skills/pitch-deck/package.json +0 -10
  449. package/skills/product-mockup/SKILL.md +0 -107
  450. package/skills/product-mockup/package.json +0 -32
  451. package/skills/product-mockup/src/cli.ts +0 -150
  452. package/skills/product-mockup/src/design.ts +0 -151
  453. package/skills/product-mockup/src/docs.ts +0 -134
  454. package/skills/product-mockup/src/index.ts +0 -182
  455. package/skills/product-mockup/src/render.ts +0 -407
  456. package/skills/product-mockup/src/types.ts +0 -66
  457. package/skills/product-mockup/tsconfig.json +0 -17
  458. package/skills/proposal-pack/SKILL.md +0 -53
  459. package/skills/proposal-pack/package.json +0 -10
  460. package/skills/read-csv/SKILL.md +0 -62
  461. package/skills/read-csv/package.json +0 -37
  462. package/skills/read-csv/src/index.ts +0 -356
  463. package/skills/read-csv/tsconfig.json +0 -17
  464. package/skills/read-excel/SKILL.md +0 -64
  465. package/skills/read-excel/package.json +0 -36
  466. package/skills/read-excel/src/index.ts +0 -266
  467. package/skills/read-excel/tsconfig.json +0 -17
  468. package/skills/regex-tester/CLAUDE.md +0 -19
  469. package/skills/regex-tester/package.json +0 -27
  470. package/skills/regex-tester/src/index.ts +0 -183
  471. package/skills/regex-tester/tsconfig.json +0 -10
  472. package/skills/repo-onboarding-report/SKILL.md +0 -52
  473. package/skills/repo-onboarding-report/package.json +0 -10
  474. package/skills/scancommitpr/SKILL.md +0 -178
  475. package/skills/scancommitpr/package.json +0 -34
  476. package/skills/scancommitpr/src/index.ts +0 -44
  477. package/skills/scancommitpr/tsconfig.json +0 -13
  478. package/skills/scancommitpush/SKILL.md +0 -174
  479. package/skills/scancommitpush/package.json +0 -32
  480. package/skills/scancommitpush/src/index.ts +0 -44
  481. package/skills/scancommitpush/tsconfig.json +0 -13
  482. package/skills/scientific-figure-check/CLAUDE.md +0 -19
  483. package/skills/scientific-figure-check/package.json +0 -29
  484. package/skills/scientific-figure-check/src/index.ts +0 -83
  485. package/skills/scientific-figure-check/tsconfig.json +0 -10
  486. package/skills/security-audit/CLAUDE.md +0 -19
  487. package/skills/security-audit/package.json +0 -27
  488. package/skills/security-audit/src/index.ts +0 -145
  489. package/skills/security-audit/tsconfig.json +0 -10
  490. package/skills/security-audit-report/SKILL.md +0 -52
  491. package/skills/security-audit-report/package.json +0 -10
  492. package/skills/seo-content-pack/SKILL.md +0 -54
  493. package/skills/seo-content-pack/package.json +0 -10
  494. package/skills/siteanalyze/SKILL.md +0 -25
  495. package/skills/siteanalyze/package.json +0 -27
  496. package/skills/siteanalyze/src/index.ts +0 -592
  497. package/skills/slide-deck-generator/SKILL.md +0 -93
  498. package/skills/slide-deck-generator/package.json +0 -38
  499. package/skills/slide-deck-generator/src/cli.ts +0 -133
  500. package/skills/slide-deck-generator/src/index.ts +0 -148
  501. package/skills/slide-deck-generator/src/model.ts +0 -307
  502. package/skills/slide-deck-generator/src/pptx.ts +0 -143
  503. package/skills/slide-deck-generator/src/render.ts +0 -248
  504. package/skills/slide-deck-generator/src/types.ts +0 -114
  505. package/skills/slide-deck-generator/src/utils.ts +0 -53
  506. package/skills/slide-deck-generator/tsconfig.json +0 -17
  507. package/skills/social-content-calendar/SKILL.md +0 -54
  508. package/skills/social-content-calendar/package.json +0 -10
  509. package/skills/split-pdf/CLAUDE.md +0 -19
  510. package/skills/split-pdf/package.json +0 -30
  511. package/skills/split-pdf/src/index.ts +0 -301
  512. package/skills/split-pdf/tsconfig.json +0 -10
  513. package/skills/statistical-test-selector/CLAUDE.md +0 -19
  514. package/skills/statistical-test-selector/package.json +0 -27
  515. package/skills/statistical-test-selector/src/index.ts +0 -75
  516. package/skills/statistical-test-selector/tsconfig.json +0 -10
  517. package/skills/test-suite-generator/SKILL.md +0 -51
  518. package/skills/test-suite-generator/package.json +0 -10
  519. package/skills/tmux-session/SKILL.md +0 -109
  520. package/skills/tmux-session/package.json +0 -33
  521. package/skills/tmux-session/src/index.ts +0 -34
  522. package/skills/tmux-session/tsconfig.json +0 -17
  523. package/skills/todos-plan/SKILL.md +0 -363
  524. package/skills/todos-plan/agents/openai.yaml +0 -4
  525. package/skills/todos-plan/package.json +0 -9
  526. package/skills/todos-plan/src/index.ts +0 -68
  527. package/skills/tsconfig.base.json +0 -12
  528. package/skills/validate-config/CLAUDE.md +0 -19
  529. package/skills/validate-config/package.json +0 -29
  530. package/skills/validate-config/src/index.ts +0 -56
  531. package/skills/validate-config/tsconfig.json +0 -10
  532. package/skills/video-downloader/CLAUDE.md +0 -19
  533. package/skills/video-downloader/package.json +0 -29
  534. package/skills/video-downloader/src/index.ts +0 -561
  535. package/skills/video-downloader/tsconfig.json +0 -10
  536. package/skills/video-highlight-pack/SKILL.md +0 -54
  537. package/skills/video-highlight-pack/package.json +0 -10
  538. package/skills/watermark/CLAUDE.md +0 -19
  539. package/skills/watermark/package.json +0 -32
  540. package/skills/watermark/src/index.ts +0 -587
  541. package/skills/watermark/tsconfig.json +0 -10
@@ -1,49 +0,0 @@
1
- ---
2
- name: performance-audit-report
3
- description: Generate performance audit reports for web apps, APIs, or SaaS surfaces with metrics, findings, budgets, remediation plans, and manifest metadata.
4
- kind: instruction
5
- ---
6
-
7
- # Performance Audit Report
8
-
9
- Generate a performance audit package from a URL, repo notes, trace summary, or product brief. Hosted runs can gather richer measurements, while local direct execution produces deterministic artifacts for validation.
10
-
11
- ## Requirements
12
-
13
- None. This is an instruction skill: it is prose an agent follows, so it needs no
14
- credentials, no network access, and no local runtime.
15
-
16
- ## Usage
17
-
18
- Ask an agent for the deliverables below and give it the inputs. Reading this file
19
- IS the invocation; `skills run` refuses instruction skills on purpose.
20
-
21
- ## Inputs
22
-
23
- | Input | Description | Default |
24
- |--------|-------------|---------|
25
- | `target` | App URL, route, repo path, or service name. | optional |
26
- | `notes` | Performance notes, metrics, trace summary, or constraints. Positional text also works. | optional |
27
- | `app` | Application or product name. | Performance Target |
28
- | `surface` | `web`, `api`, `mobile`, or `worker`. | web |
29
- | `budget` | `strict`, `balanced`, or `growth`. | balanced |
30
-
31
- ## Deliverables
32
-
33
- - `performance-audit-report.md`
34
- - `findings.csv`
35
- - `performance-budget.json`
36
- - `remediation-plan.md`
37
- - `metrics.json`
38
- - `manifest.json`
39
-
40
- ## Method
41
-
42
- 1. State what evidence you actually have. If no measurements were supplied, say
43
- so — an audit that presents guesses as measurements is worse than none.
44
- 2. Establish the budget before the findings: target metrics and thresholds.
45
- 3. Order findings by user-perceived impact, not by how easy they are to describe.
46
- 4. For each finding, give the mechanism (why it is slow), not just the symptom.
47
- 5. Attach an estimated saving and a confidence level to each recommendation.
48
- 6. Separate quick wins from structural work, and say what must be measured again
49
- after each change to confirm it worked.
@@ -1,10 +0,0 @@
1
- {
2
- "name": "performance-audit-report",
3
- "version": "0.1.0",
4
- "private": true,
5
- "description": "Hosted premium performance audit report generator",
6
- "type": "module",
7
- "skills": {
8
- "kind": "instruction"
9
- }
10
- }
@@ -1,51 +0,0 @@
1
- ---
2
- name: pitch-deck
3
- description: Generate investor or sales pitch deck packages with PPTX, PDF, notes, and design direction.
4
- kind: instruction
5
- ---
6
-
7
- # Pitch Deck
8
-
9
- Generate investor or sales deck packages from a short brief.
10
-
11
- ## Requirements
12
-
13
- None. This is an instruction skill: it is prose an agent follows, so it needs no
14
- credentials, no network access, and no local runtime.
15
-
16
- ## Usage
17
-
18
- Ask an agent for the deliverables below and give it the inputs. Reading this file
19
- IS the invocation; `skills run` refuses instruction skills on purpose.
20
-
21
- ## Inputs
22
-
23
- | Input | Description | Default |
24
- |--------|-------------|---------|
25
- | `brief` | Company, product, offer, or campaign brief. Positional text also works. | required |
26
- | `company` | Company or product name. | Company |
27
- | `audience` | `investors`, `sales`, or `internal`. | investors |
28
- | `slides` | Number of slides, 5-15. | 10 |
29
- | `tone` | `concise`, `bold`, or `technical`. | concise |
30
-
31
- ## Deliverables
32
-
33
- - `deck.md`
34
- - `slides.json`
35
- - `speaker-notes.md`
36
- - `design-direction.md`
37
- - `manifest.json`
38
-
39
- ## Method
40
-
41
- 1. Fix the narrative before the slides: problem, why now, what changes, why you.
42
- A deck is an argument with pictures, not a list of topics.
43
- 2. One idea per slide, stated in the headline. If the headline is a noun phrase
44
- ("Market"), rewrite it as the claim ("The market reprices every 18 months").
45
- 3. Put the number that matters on the slide, with its source and period.
46
- 4. Order for a live read: the appendix carries the detail, the body carries the
47
- argument.
48
- 5. Write speaker notes as what to say, including the transition into the next slide.
49
- 6. Give design direction (hierarchy, palette, chart style) as instructions a
50
- designer can follow. For rendered .pdf/.pptx files, hand `slides.json` to the
51
- `slide-deck-generator` skill, which renders binaries locally.
@@ -1,10 +0,0 @@
1
- {
2
- "name": "pitch-deck",
3
- "version": "0.1.0",
4
- "private": true,
5
- "description": "Hosted skill metadata for pitch-deck",
6
- "type": "module",
7
- "skills": {
8
- "kind": "instruction"
9
- }
10
- }
@@ -1,107 +0,0 @@
1
- ---
2
- name: product-mockup
3
- description: Generate parametric SVG product mockup frames — browser chrome, phone and laptop devices, or an analytics dashboard — plus a scene plan, asset metadata, usage notes, and written image prompts.
4
- ---
5
-
6
- # Product Mockup
7
-
8
- Draw real product mockup frames locally as SVG geometry. Browser chrome with a
9
- tab bar and URL pill, a phone or laptop bezel, or a full dashboard layout with
10
- KPI cards, charts, and a table — all composed from parameters, not from an image
11
- model.
12
-
13
- The package also ships `image-prompts.md`: written prompts you can paste into
14
- whichever image tool you use. This skill deliberately does not call one, so it
15
- needs no keys and no network.
16
-
17
- ## Requirements
18
-
19
- - Bun (the skill runs as `bun run src/index.ts`).
20
- - No API keys, no network access, no environment variables.
21
- - No runtime dependencies. `bun install` in this directory only pulls dev types.
22
- - Optional for raster export: any SVG renderer on your machine
23
- (`rsvg-convert`, `inkscape`, or a browser's print-to-PNG).
24
-
25
- ## Usage
26
-
27
- ```bash
28
- # browser frame, three variants
29
- skills run product-mockup -- "Usage-based billing dashboard" --scene browser -n 3
30
-
31
- # dashboard scene with a locked brand accent
32
- skills run product-mockup -- --product "MeterKit" --scene dashboard --accent "#2E86C1"
33
-
34
- # phone and laptop from one run (device + auto alternates)
35
- skills run product-mockup -- -p "AI meeting assistant" --scene device -n 2
36
-
37
- # dark style, custom headline and address bar
38
- skills run product-mockup -- -p "Relay" --title "Ship faster with Relay" --style noir --url https://relay.dev
39
-
40
- # machine-readable summary
41
- skills run product-mockup -- -p "MeterKit" --scene dashboard --json
42
- ```
43
-
44
- Run it directly from the skill directory with `bun run src/index.ts --help`.
45
-
46
- ## Options
47
-
48
- | Option | Description | Default |
49
- |--------|-------------|---------|
50
- | `--product <text>`, `-p` | Product, feature, or campaign. A positional string also works. | required |
51
- | `--title <text>` | Headline rendered inside the frame. | the product text |
52
- | `--scene <name>`, `-s` | `browser`, `device`, or `dashboard`. | `browser` |
53
- | `--device <kind>` | `auto`, `phone`, or `laptop`. Only used when `--scene device`. `auto` alternates per variant. | `auto` |
54
- | `--variants <1-4>`, `-n` | Number of mockup variants. | `3` |
55
- | `--style <text>` | Style direction. Matched against keyword presets (below). | `polished SaaS, crisp product UI` |
56
- | `--audience <text>` | Target audience, recorded in the brief and the prompts. | `software buyers` |
57
- | `--accent <hex>` | Force the accent color instead of deriving it. | derived from style |
58
- | `--url <text>` | URL shown in the browser address pill. | `https://example.com` |
59
- | `--output <dir>`, `-o` | Output directory. | `./product-mockup` |
60
- | `--json` | Print the run summary as JSON on stdout. | off |
61
- | `--help` | Show help and exit 0. | |
62
- | `--version` | Print the version. | |
63
-
64
- ### Style presets
65
-
66
- `--style` is free text; the first matching keyword wins.
67
-
68
- | Preset | Triggers on | Look |
69
- |--------|-------------|------|
70
- | `polished` (default) | polished, quiet, refined, saas, crisp, restrained, clean | Light neutral, blue accent, 12px radii |
71
- | `noir` | dark, noir, midnight, night, black | Dark surfaces, violet accent |
72
- | `warm` | warm, sunset, amber, friendly, human | Light warm neutrals, amber accent, soft radii |
73
- | `editorial` | editorial, sharp, print, serif, magazine | Light, near-square corners, red accent |
74
- | `technical` | technical, terminal, developer, mono, engineering | Dark, tight radii, teal accent |
75
- | `vivid` | vivid, bold, playful, loud, energetic | Light, large radii, magenta accent |
76
-
77
- The accent hue rotates 26 degrees per variant so a set reads as a family. Pass
78
- `--accent` to lock it.
79
-
80
- ## Scenes
81
-
82
- | Scene | Canvas | What is drawn |
83
- |-------|--------|---------------|
84
- | `browser` | 1280x800 | Window with traffic lights, three-tab bar, URL pill with lock glyph and toolbar buttons, two-column page body with eyebrow, headline, CTA pair, and a side panel of cards. |
85
- | `device` + `phone` | 720x1000 | Rounded body with side buttons, notch, status bar, headline, primary button, three content cards, four-item tab bar and home indicator. |
86
- | `device` + `laptop` | 1280x840 | Bezelled lid with camera dot, in-screen app window with title bar, headline and CTA, bar-chart panel, tapered base with trackpad edge. |
87
- | `dashboard` | 1440x900 | Six-item sidebar, header with search and avatar, four KPI cards with deltas, bar chart, line chart, and a four-row account table. |
88
-
89
- ## Outputs
90
-
91
- | File | Contents |
92
- |------|----------|
93
- | `variants/variant-NN.svg` | The mockup frame. Named `<g>` layers, `<title>`/`<desc>` for accessibility. |
94
- | `scene-plan.json` | Scene, resolved design tokens, seed, and notes for every variant. |
95
- | `asset-metadata.json` | Per file: format, width, height, viewBox, aspect ratio, layer names, accent. |
96
- | `image-prompts.md` | Prompt plus negative prompt per variant, and a compositing recipe. |
97
- | `mockup-brief.md` | Product, audience, style interpretation, and what was generated. |
98
- | `usage-notes.md` | How to edit layers, drop in a real screenshot, and export to PNG. |
99
- | `manifest.json` | Every file written, with byte sizes and the run inputs. |
100
-
101
- ## Working with the output
102
-
103
- - Delete the `canvas` layer for a transparent-background export.
104
- - Replace `page-content` / `app-content` with a real screenshot clipped to the
105
- `screen` rect; keep the frame hardware on top.
106
- - Variant geometry is seeded from the product text, scene, style, and index, so
107
- re-running the same command reproduces the same files exactly.
@@ -1,32 +0,0 @@
1
- {
2
- "name": "product-mockup",
3
- "version": "0.1.0",
4
- "private": true,
5
- "description": "Generate parametric SVG product mockup frames with scene plans, asset metadata, and image prompts",
6
- "type": "module",
7
- "main": "src/index.ts",
8
- "bin": {
9
- "product-mockup": "src/index.ts"
10
- },
11
- "files": [
12
- "src",
13
- "SKILL.md",
14
- "tsconfig.json"
15
- ],
16
- "keywords": [
17
- "mockup",
18
- "svg",
19
- "product",
20
- "ui",
21
- "skill"
22
- ],
23
- "scripts": {
24
- "start": "bun run src/index.ts",
25
- "typecheck": "tsc --noEmit"
26
- },
27
- "dependencies": {},
28
- "devDependencies": {
29
- "@types/bun": "latest",
30
- "typescript": "^5.7.0"
31
- }
32
- }
@@ -1,150 +0,0 @@
1
- import { normalizeHex } from "./design.js";
2
- import type { CliOptions } from "./types.js";
3
-
4
- const VERSION = "0.1.0";
5
-
6
- function printHelp(): void {
7
- console.log(`product-mockup v${VERSION}
8
-
9
- Emit parametric SVG product mockup frames. Everything is drawn locally as real
10
- SVG geometry: no image model, no network access, no API keys. The package also
11
- includes written image prompts you can hand to an image model yourself.
12
-
13
- USAGE:
14
- product-mockup --product <text> [options]
15
- product-mockup "<product text>" [options]
16
-
17
- OPTIONS:
18
- -p, --product <text> Product, feature, or campaign (positional works) [required]
19
- --title <text> Headline rendered inside the frame [product text]
20
- -s, --scene <name> browser | device | dashboard [browser]
21
- --device <kind> auto | phone | laptop (scene=device) [auto]
22
- -n, --variants <1-4> Number of mockup variants [3]
23
- --style <text> Style direction keyword or phrase [polished SaaS, crisp product UI]
24
- --audience <text> Target audience, recorded in the brief [software buyers]
25
- --accent <hex> Force the accent color (#RRGGBB) [derived from style]
26
- --url <text> URL shown in the browser address pill [https://example.com]
27
- -o, --output <dir> Output directory [./product-mockup]
28
- --json Print the run summary as JSON
29
- --help Show this help message
30
- --version Show the current version
31
-
32
- STYLE KEYWORDS:
33
- polished (default) | noir/dark | warm | editorial | technical | vivid
34
-
35
- OUTPUTS:
36
- variants/variant-NN.svg Real SVG frames, one per variant
37
- scene-plan.json Scene, tokens, and seed for every variant
38
- asset-metadata.json Dimensions, viewBox, and layer names per file
39
- image-prompts.md Text prompts for your own image model
40
- mockup-brief.md Brief, audience, and style interpretation
41
- usage-notes.md How to edit, export, and place the frames
42
- manifest.json Every file written, with byte sizes
43
-
44
- EXAMPLES:
45
- product-mockup "Usage-based billing dashboard" --scene dashboard -n 3
46
- product-mockup --product "AI meeting assistant" --scene device --device phone
47
- product-mockup -p "MeterKit" --scene browser --style noir --url https://example.com
48
- `);
49
- }
50
-
51
- export function parseArgs(argv: string[]): CliOptions {
52
- const options: CliOptions = {
53
- scene: "browser",
54
- device: "auto",
55
- variants: 3,
56
- style: "polished SaaS, crisp product UI",
57
- audience: "software buyers",
58
- url: "https://example.com",
59
- output: "./product-mockup",
60
- json: false,
61
- };
62
-
63
- for (let i = 0; i < argv.length; i += 1) {
64
- const arg = argv[i];
65
- switch (arg) {
66
- case "--help":
67
- case "-h":
68
- printHelp();
69
- process.exit(0);
70
- case "--version":
71
- case "-v":
72
- console.log(VERSION);
73
- process.exit(0);
74
- case "--product":
75
- case "-p":
76
- options.product = argv[++i];
77
- break;
78
- case "--title":
79
- options.title = argv[++i];
80
- break;
81
- case "--scene":
82
- case "-s": {
83
- const value = (argv[++i] ?? "").toLowerCase();
84
- if (value !== "browser" && value !== "device" && value !== "dashboard") {
85
- throw new Error(`Invalid --scene value: ${value} (expected browser | device | dashboard)`);
86
- }
87
- options.scene = value;
88
- break;
89
- }
90
- case "--device": {
91
- const value = (argv[++i] ?? "").toLowerCase();
92
- if (value !== "auto" && value !== "phone" && value !== "laptop") {
93
- throw new Error(`Invalid --device value: ${value} (expected auto | phone | laptop)`);
94
- }
95
- options.device = value;
96
- break;
97
- }
98
- case "--variants":
99
- case "-n": {
100
- const value = Number.parseInt(argv[++i] ?? "", 10);
101
- if (!Number.isFinite(value) || value < 1 || value > 4) {
102
- throw new Error(`Invalid --variants value: ${argv[i]} (expected 1-4)`);
103
- }
104
- options.variants = value;
105
- break;
106
- }
107
- case "--style":
108
- options.style = argv[++i] ?? options.style;
109
- break;
110
- case "--audience":
111
- options.audience = argv[++i] ?? options.audience;
112
- break;
113
- case "--accent": {
114
- const value = normalizeHex(argv[++i] ?? "");
115
- if (!value) {
116
- throw new Error(`Invalid --accent value: ${argv[i]} (expected a hex color such as #2E86C1)`);
117
- }
118
- options.accent = value;
119
- break;
120
- }
121
- case "--url":
122
- options.url = argv[++i] ?? options.url;
123
- break;
124
- case "--output":
125
- case "-o":
126
- options.output = argv[++i] ?? options.output;
127
- break;
128
- case "--json":
129
- options.json = true;
130
- break;
131
- default:
132
- if (arg.startsWith("-")) {
133
- throw new Error(`Unknown option: ${arg}`);
134
- }
135
- if (!options.product) {
136
- options.product = arg;
137
- break;
138
- }
139
- throw new Error(`Unexpected argument: ${arg}`);
140
- }
141
- }
142
-
143
- if (!options.product || options.product.trim() === "") {
144
- throw new Error("Missing required --product <text> argument (a positional description also works)");
145
- }
146
-
147
- return options;
148
- }
149
-
150
-
@@ -1,151 +0,0 @@
1
- import type { Tokens } from "./types.js";
2
-
3
- export function fnv1a(input: string): number {
4
- let hash = 0x811c9dc5;
5
- for (let i = 0; i < input.length; i += 1) {
6
- hash ^= input.charCodeAt(i);
7
- hash = Math.imul(hash, 0x01000193) >>> 0;
8
- }
9
- return hash >>> 0;
10
- }
11
-
12
- export function mulberry32(seed: number): () => number {
13
- let a = seed >>> 0;
14
- return () => {
15
- a = (a + 0x6d2b79f5) >>> 0;
16
- let t = a;
17
- t = Math.imul(t ^ (t >>> 15), t | 1);
18
- t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
19
- return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
20
- };
21
- }
22
-
23
- /* ------------------------------------------------------------------ */
24
- /* color + style tokens */
25
- /* ------------------------------------------------------------------ */
26
-
27
- function clamp(value: number, min: number, max: number): number {
28
- return Math.min(max, Math.max(min, value));
29
- }
30
-
31
- function hslToHex(h: number, s: number, l: number): string {
32
- const hue = ((h % 360) + 360) % 360;
33
- const sat = clamp(s, 0, 1);
34
- const lit = clamp(l, 0, 1);
35
- const c = (1 - Math.abs(2 * lit - 1)) * sat;
36
- const x = c * (1 - Math.abs(((hue / 60) % 2) - 1));
37
- const m = lit - c / 2;
38
- let rgb: [number, number, number];
39
- if (hue < 60) rgb = [c, x, 0];
40
- else if (hue < 120) rgb = [x, c, 0];
41
- else if (hue < 180) rgb = [0, c, x];
42
- else if (hue < 240) rgb = [0, x, c];
43
- else if (hue < 300) rgb = [x, 0, c];
44
- else rgb = [c, 0, x];
45
- const toHex = (v: number) =>
46
- Math.round((v + m) * 255)
47
- .toString(16)
48
- .padStart(2, "0")
49
- .toUpperCase();
50
- return `#${toHex(rgb[0])}${toHex(rgb[1])}${toHex(rgb[2])}`;
51
- }
52
-
53
- export function normalizeHex(token: string): string | null {
54
- const match = /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(token.trim());
55
- if (!match) return null;
56
- const body = match[1];
57
- const full =
58
- body.length === 3
59
- ? body
60
- .split("")
61
- .map((c) => c + c)
62
- .join("")
63
- : body;
64
- return `#${full.toUpperCase()}`;
65
- }
66
-
67
- export interface StylePreset {
68
- name: string;
69
- dark: boolean;
70
- hue: number;
71
- radius: number;
72
- keywords: string[];
73
- }
74
-
75
- const STYLE_PRESETS: StylePreset[] = [
76
- { name: "noir", dark: true, hue: 258, radius: 14, keywords: ["dark", "noir", "midnight", "night", "black"] },
77
- { name: "warm", dark: false, hue: 24, radius: 18, keywords: ["warm", "sunset", "amber", "friendly", "human"] },
78
- { name: "editorial", dark: false, hue: 8, radius: 4, keywords: ["editorial", "sharp", "print", "serif", "magazine"] },
79
- { name: "technical", dark: true, hue: 168, radius: 6, keywords: ["technical", "terminal", "developer", "mono", "engineering"] },
80
- { name: "vivid", dark: false, hue: 292, radius: 22, keywords: ["vivid", "bold", "playful", "loud", "energetic"] },
81
- { name: "polished", dark: false, hue: 222, radius: 12, keywords: ["polished", "quiet", "refined", "saas", "crisp", "restrained", "clean"] },
82
- ];
83
-
84
- export function selectPreset(style: string): StylePreset {
85
- const lower = style.toLowerCase();
86
- for (const preset of STYLE_PRESETS) {
87
- if (preset.keywords.some((keyword) => lower.includes(keyword))) return preset;
88
- }
89
- return STYLE_PRESETS[STYLE_PRESETS.length - 1];
90
- }
91
-
92
- export function buildTokens(preset: StylePreset, variantIndex: number, accentOverride?: string): Tokens {
93
- const hue = (preset.hue + variantIndex * 26) % 360;
94
- const accent = accentOverride ?? hslToHex(hue, preset.dark ? 0.66 : 0.62, preset.dark ? 0.6 : 0.48);
95
- const accentSoft = hslToHex(hue, preset.dark ? 0.4 : 0.62, preset.dark ? 0.24 : 0.92);
96
-
97
- if (preset.dark) {
98
- return {
99
- name: preset.name,
100
- background: hslToHex(hue, 0.14, 0.09),
101
- surface: hslToHex(hue, 0.12, 0.14),
102
- surfaceAlt: hslToHex(hue, 0.11, 0.19),
103
- border: hslToHex(hue, 0.1, 0.27),
104
- text: "#F2F4F8",
105
- muted: hslToHex(hue, 0.08, 0.62),
106
- accent,
107
- accentSoft,
108
- radius: preset.radius,
109
- dark: true,
110
- };
111
- }
112
-
113
- return {
114
- name: preset.name,
115
- background: hslToHex(hue, 0.28, 0.965),
116
- surface: "#FFFFFF",
117
- surfaceAlt: hslToHex(hue, 0.3, 0.975),
118
- border: hslToHex(hue, 0.18, 0.87),
119
- text: hslToHex(hue, 0.24, 0.14),
120
- muted: hslToHex(hue, 0.1, 0.46),
121
- accent,
122
- accentSoft,
123
- radius: preset.radius,
124
- dark: false,
125
- };
126
- }
127
-
128
- /* ------------------------------------------------------------------ */
129
- /* svg helpers */
130
- /* ------------------------------------------------------------------ */
131
-
132
- export function xmlEscape(value: string): string {
133
- return value.replace(/[&<>"']/g, (char) => {
134
- switch (char) {
135
- case "&":
136
- return "&amp;";
137
- case "<":
138
- return "&lt;";
139
- case ">":
140
- return "&gt;";
141
- case '"':
142
- return "&quot;";
143
- default:
144
- return "&apos;";
145
- }
146
- });
147
- }
148
-
149
- export const FONT_STACK =
150
- "'Inter','Helvetica Neue',Helvetica,'Segoe UI',Arial,'DejaVu Sans',sans-serif";
151
- export const MONO_STACK = "'JetBrains Mono','SF Mono',Menlo,Consolas,'DejaVu Sans Mono',monospace";