@hasna/skills 0.1.62 → 0.1.63

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 (526) hide show
  1. package/README.md +10 -6
  2. package/bin/index.js +14271 -21602
  3. package/bin/mcp.js +3527 -11449
  4. package/bin/migrate.js +53 -3
  5. package/bin/server.js +5140 -2675
  6. package/bin/worker.js +4542 -2129
  7. package/dist/cli/commands/publish.d.ts +2 -0
  8. package/dist/cli/components/App.d.ts +2 -1
  9. package/dist/cli/components/CategorySelect.d.ts +2 -1
  10. package/dist/cli/components/Header.d.ts +2 -1
  11. package/dist/cli/components/InstallProgress.d.ts +2 -1
  12. package/dist/cli/components/SearchView.d.ts +2 -1
  13. package/dist/cli/components/SkillSelect.d.ts +2 -1
  14. package/dist/index.d.ts +4 -1
  15. package/dist/index.js +5094 -13755
  16. package/dist/lib/agent-sync.d.ts +38 -3
  17. package/dist/lib/home-adoption.d.ts +91 -0
  18. package/dist/lib/home-census.d.ts +22 -0
  19. package/dist/lib/home-migration.d.ts +61 -0
  20. package/dist/lib/portable-skills-files.d.ts +21 -1
  21. package/dist/lib/portable-skills-types.d.ts +46 -0
  22. package/dist/lib/pull.d.ts +66 -0
  23. package/dist/lib/remote-client.d.ts +6 -0
  24. package/dist/lib/run-state.d.ts +5 -0
  25. package/dist/lib/skill-bundles.d.ts +54 -0
  26. package/dist/lib/skill-contract.d.ts +35 -0
  27. package/dist/lib/skill-hash.d.ts +77 -0
  28. package/dist/sdk/cancel.d.ts +30 -0
  29. package/dist/sdk/dispatcher.d.ts +40 -0
  30. package/dist/sdk/event-sink.d.ts +2 -0
  31. package/dist/sdk/events.d.ts +79 -0
  32. package/dist/sdk/execution/admission.d.ts +44 -0
  33. package/dist/sdk/execution/dispatchers/e2b.d.ts +17 -0
  34. package/dist/sdk/execution/dispatchers/ecs.d.ts +151 -0
  35. package/dist/sdk/execution/image-profile.d.ts +73 -0
  36. package/dist/sdk/execution/index.d.ts +15 -0
  37. package/dist/sdk/execution/receipts.d.ts +44 -0
  38. package/dist/sdk/execution/state-machine.d.ts +38 -0
  39. package/dist/sdk/execution/storage.d.ts +158 -0
  40. package/dist/sdk/execution/types.d.ts +130 -0
  41. package/dist/sdk/executor.d.ts +17 -0
  42. package/dist/sdk/governance-store.d.ts +156 -0
  43. package/dist/sdk/governance.d.ts +92 -0
  44. package/dist/sdk/index.d.ts +26 -0
  45. package/dist/sdk/index.js +48730 -0
  46. package/dist/sdk/offline.d.ts +16 -0
  47. package/dist/sdk/outputs.d.ts +71 -0
  48. package/dist/sdk/registry.d.ts +28 -0
  49. package/dist/sdk/runs.d.ts +229 -0
  50. package/dist/sdk/server.d.ts +35 -0
  51. package/dist/sdk/spend.d.ts +36 -0
  52. package/dist/sdk/storage.d.ts +25 -0
  53. package/dist/server/app.d.ts +42 -0
  54. package/dist/server/artifact-storage.d.ts +102 -0
  55. package/dist/server/auth.d.ts +5 -0
  56. package/dist/server/config.d.ts +40 -0
  57. package/dist/server/database-url.d.ts +42 -0
  58. package/dist/server/handlers.d.ts +3 -0
  59. package/dist/server/index.d.ts +2 -0
  60. package/dist/server/migrate.d.ts +13 -0
  61. package/dist/server/migrations-dir.d.ts +18 -0
  62. package/dist/server/redaction.d.ts +1 -0
  63. package/dist/server/registry.d.ts +5 -0
  64. package/dist/server/rows.d.ts +23 -0
  65. package/dist/server/skills-api.d.ts +68 -0
  66. package/dist/server/sqlite-store.d.ts +114 -0
  67. package/dist/server/store-fixtures.d.ts +25 -0
  68. package/dist/server/store.d.ts +144 -0
  69. package/dist/server/types.d.ts +242 -0
  70. package/dist/server/worker.d.ts +4 -0
  71. package/dist/storage.js +32 -0
  72. package/docs/skill-standard.md +211 -39
  73. package/migrations/postgres/0003_run_outputs_governance.sql +83 -0
  74. package/migrations/sqlite/0003_run_outputs_governance.sql +58 -0
  75. package/package.json +11 -8
  76. package/schemas/skill.schema.json +181 -0
  77. package/agent-skills/README.md +0 -41
  78. package/agent-skills/fleet-package-rollout/SKILL.md +0 -169
  79. package/agent-skills/inbox/SKILL.md +0 -25
  80. package/agent-skills/inbox/scripts/inbox +0 -109
  81. package/agent-skills/inbox/tests/test_registered_sender_id.sh +0 -92
  82. package/agent-skills/inbox-monitor/SKILL.md +0 -41
  83. package/agent-skills/inbox-monitor/scripts/inbox_monitor.sh +0 -91
  84. package/agent-skills/inbox-monitor/scripts/test_inbox_monitor.sh +0 -71
  85. package/agent-skills/merge-pr/SKILL.md +0 -85
  86. package/agent-skills/merge-pr/references/merge-safety.md +0 -82
  87. package/agent-skills/merge-pr/scripts/merge_pr_guard.py +0 -694
  88. package/agent-skills/merge-pr/scripts/test_merge_pr_guard.py +0 -647
  89. package/agent-skills/merge-pr/tests/fixtures/multi-commit-synthesized.json +0 -28
  90. package/agent-skills/merge-pr/tests/fixtures/trailer-free-provider.json +0 -28
  91. package/agent-skills/skill-goal-execute/SKILL.md +0 -115
  92. package/agent-skills/skill-login/SKILL.md +0 -109
  93. package/agent-skills/skill-project-create/SKILL.md +0 -91
  94. package/agent-skills/skill-publish/SKILL.md +0 -254
  95. package/agent-skills/skill-publish/scripts/capture_registry.js +0 -47
  96. package/agent-skills/skill-publish/scripts/publish_with_git_head.sh +0 -143
  97. package/agent-skills/skill-publish/scripts/test_publish_with_git_head.sh +0 -231
  98. package/skills/_common/auth.ts +0 -45
  99. package/skills/_common/http-client.ts +0 -143
  100. package/skills/_common/index.ts +0 -26
  101. package/skills/_common/install.sh +0 -7
  102. package/skills/_common/installer.ts +0 -72
  103. package/skills/_common/skill-install.ts +0 -37
  104. package/skills/_common/vision.ts +0 -374
  105. package/skills/ad-creative-pack/SKILL.md +0 -55
  106. package/skills/ad-creative-pack/package.json +0 -10
  107. package/skills/analyze-data/CLAUDE.md +0 -16
  108. package/skills/analyze-data/SKILL.md +0 -112
  109. package/skills/analyze-data/package.json +0 -23
  110. package/skills/analyze-data/src/analysis.ts +0 -401
  111. package/skills/analyze-data/src/cli.ts +0 -66
  112. package/skills/analyze-data/src/formatters.ts +0 -235
  113. package/skills/analyze-data/src/index.ts +0 -74
  114. package/skills/analyze-data/src/logger.ts +0 -36
  115. package/skills/analyze-data/src/parsers.ts +0 -57
  116. package/skills/analyze-data/src/stats.ts +0 -151
  117. package/skills/analyze-data/src/types.ts +0 -85
  118. package/skills/analyze-data/tsconfig.json +0 -19
  119. package/skills/api-docs-portal/SKILL.md +0 -84
  120. package/skills/api-docs-portal/package.json +0 -35
  121. package/skills/api-docs-portal/src/index.ts +0 -919
  122. package/skills/api-docs-portal/tsconfig.json +0 -17
  123. package/skills/api-test-suite/CLAUDE.md +0 -19
  124. package/skills/api-test-suite/package.json +0 -27
  125. package/skills/api-test-suite/src/index.ts +0 -381
  126. package/skills/api-test-suite/tsconfig.json +0 -10
  127. package/skills/audio-extract/CLAUDE.md +0 -9
  128. package/skills/audio-extract/SKILL.md +0 -73
  129. package/skills/audio-extract/package.json +0 -23
  130. package/skills/audio-extract/src/index.ts +0 -323
  131. package/skills/audio-extract/tsconfig.json +0 -11
  132. package/skills/bio-sequence-tool/CLAUDE.md +0 -19
  133. package/skills/bio-sequence-tool/package.json +0 -27
  134. package/skills/bio-sequence-tool/src/index.ts +0 -85
  135. package/skills/bio-sequence-tool/tsconfig.json +0 -10
  136. package/skills/blog-article/CLAUDE.md +0 -12
  137. package/skills/blog-article/SKILL.md +0 -55
  138. package/skills/blog-article/package.json +0 -10
  139. package/skills/blog-article/tsconfig.json +0 -10
  140. package/skills/brand-assets/SKILL.md +0 -118
  141. package/skills/brand-assets/package.json +0 -35
  142. package/skills/brand-assets/src/cli.ts +0 -155
  143. package/skills/brand-assets/src/constants.ts +0 -8
  144. package/skills/brand-assets/src/extract.ts +0 -236
  145. package/skills/brand-assets/src/index.ts +0 -668
  146. package/skills/brand-assets/src/types.ts +0 -59
  147. package/skills/brand-assets/tsconfig.json +0 -17
  148. package/skills/brand-kit/SKILL.md +0 -54
  149. package/skills/brand-kit/package.json +0 -10
  150. package/skills/businessactivity/CLAUDE.md +0 -176
  151. package/skills/businessactivity/LICENSE +0 -192
  152. package/skills/businessactivity/README.md +0 -287
  153. package/skills/businessactivity/package.json +0 -25
  154. package/skills/businessactivity/scripts/publish.ts +0 -210
  155. package/skills/businessactivity/src/commands/activity.ts +0 -211
  156. package/skills/businessactivity/src/commands/function.ts +0 -227
  157. package/skills/businessactivity/src/commands/owner.ts +0 -193
  158. package/skills/businessactivity/src/commands/profile.ts +0 -121
  159. package/skills/businessactivity/src/commands/responsibility.ts +0 -264
  160. package/skills/businessactivity/src/commands/team.ts +0 -244
  161. package/skills/businessactivity/src/commands/workflow.ts +0 -359
  162. package/skills/businessactivity/src/index.ts +0 -3
  163. package/skills/businessactivity/src/lib/config.ts +0 -167
  164. package/skills/businessactivity/src/lib/output.ts +0 -76
  165. package/skills/businessactivity/src/lib/paths.ts +0 -79
  166. package/skills/businessactivity/src/lib/storage.ts +0 -95
  167. package/skills/businessactivity/src/types/index.ts +0 -86
  168. package/skills/businessactivity/tsconfig.json +0 -29
  169. package/skills/codefix/LICENSE +0 -192
  170. package/skills/codefix/README.md +0 -232
  171. package/skills/codefix/SKILL.md +0 -94
  172. package/skills/codefix/package.json +0 -21
  173. package/skills/codefix/src/fixers/batch.ts +0 -213
  174. package/skills/codefix/src/fixers/detector.ts +0 -160
  175. package/skills/codefix/src/fixers/index.ts +0 -7
  176. package/skills/codefix/src/fixers/runner.ts +0 -522
  177. package/skills/codefix/src/index-local.ts +0 -431
  178. package/skills/codefix/src/index.ts +0 -4
  179. package/skills/codefix/src/types.ts +0 -211
  180. package/skills/codefix/tsconfig.json +0 -15
  181. package/skills/commitpush/SKILL.md +0 -57
  182. package/skills/commitpush/package.json +0 -33
  183. package/skills/commitpush/src/index.ts +0 -34
  184. package/skills/commitpush/tsconfig.json +0 -17
  185. package/skills/commitpushpr/SKILL.md +0 -55
  186. package/skills/commitpushpr/package.json +0 -33
  187. package/skills/commitpushpr/src/index.ts +0 -34
  188. package/skills/commitpushpr/tsconfig.json +0 -17
  189. package/skills/compress-video/CLAUDE.md +0 -9
  190. package/skills/compress-video/SKILL.md +0 -79
  191. package/skills/compress-video/package.json +0 -23
  192. package/skills/compress-video/src/index.ts +0 -473
  193. package/skills/compress-video/tsconfig.json +0 -11
  194. package/skills/contract-review-report/SKILL.md +0 -52
  195. package/skills/contract-review-report/package.json +0 -10
  196. package/skills/customer-feedback-report/SKILL.md +0 -52
  197. package/skills/customer-feedback-report/package.json +0 -10
  198. package/skills/dashboard-builder/CLAUDE.md +0 -19
  199. package/skills/dashboard-builder/package.json +0 -29
  200. package/skills/dashboard-builder/src/index.ts +0 -150
  201. package/skills/dashboard-builder/tsconfig.json +0 -10
  202. package/skills/data-anonymizer/CLAUDE.md +0 -19
  203. package/skills/data-anonymizer/package.json +0 -27
  204. package/skills/data-anonymizer/src/index.ts +0 -183
  205. package/skills/data-anonymizer/tsconfig.json +0 -10
  206. package/skills/database-explorer/CLAUDE.md +0 -19
  207. package/skills/database-explorer/package.json +0 -29
  208. package/skills/database-explorer/src/index.ts +0 -95
  209. package/skills/database-explorer/tsconfig.json +0 -10
  210. package/skills/diff-viewer/CLAUDE.md +0 -19
  211. package/skills/diff-viewer/package.json +0 -30
  212. package/skills/diff-viewer/src/index.ts +0 -164
  213. package/skills/diff-viewer/tsconfig.json +0 -10
  214. package/skills/doc-read/SKILL.md +0 -45
  215. package/skills/doc-read/package.json +0 -29
  216. package/skills/doc-read/src/index.ts +0 -324
  217. package/skills/doc-read/tsconfig.json +0 -8
  218. package/skills/domainpurchase/LICENSE +0 -192
  219. package/skills/domainpurchase/SKILL.md +0 -29
  220. package/skills/domainpurchase/package.json +0 -30
  221. package/skills/domainpurchase/src/index.ts +0 -3
  222. package/skills/domainpurchase/tsconfig.json +0 -21
  223. package/skills/email-sequence/SKILL.md +0 -53
  224. package/skills/email-sequence/package.json +0 -10
  225. package/skills/experiment-power-calculator/CLAUDE.md +0 -19
  226. package/skills/experiment-power-calculator/package.json +0 -29
  227. package/skills/experiment-power-calculator/src/index.ts +0 -86
  228. package/skills/experiment-power-calculator/tsconfig.json +0 -10
  229. package/skills/extract-frames/CLAUDE.md +0 -19
  230. package/skills/extract-frames/package.json +0 -27
  231. package/skills/extract-frames/src/index.ts +0 -616
  232. package/skills/extract-frames/tsconfig.json +0 -10
  233. package/skills/file-organizer/CLAUDE.md +0 -19
  234. package/skills/file-organizer/package.json +0 -27
  235. package/skills/file-organizer/src/index.ts +0 -91
  236. package/skills/file-organizer/tsconfig.json +0 -10
  237. package/skills/folder-tree/CLAUDE.md +0 -19
  238. package/skills/folder-tree/package.json +0 -29
  239. package/skills/folder-tree/src/index.ts +0 -568
  240. package/skills/folder-tree/tsconfig.json +0 -10
  241. package/skills/form-filler/CLAUDE.md +0 -19
  242. package/skills/form-filler/package.json +0 -29
  243. package/skills/form-filler/src/index.ts +0 -81
  244. package/skills/form-filler/tsconfig.json +0 -10
  245. package/skills/generate-api-client/CLAUDE.md +0 -19
  246. package/skills/generate-api-client/package.json +0 -29
  247. package/skills/generate-api-client/src/generator.ts +0 -47
  248. package/skills/generate-api-client/src/index.ts +0 -92
  249. package/skills/generate-api-client/src/logger.ts +0 -34
  250. package/skills/generate-api-client/src/python-generator.ts +0 -245
  251. package/skills/generate-api-client/src/spec-loader.ts +0 -48
  252. package/skills/generate-api-client/src/type-mappers.ts +0 -79
  253. package/skills/generate-api-client/src/types.ts +0 -76
  254. package/skills/generate-api-client/src/typescript-generator.ts +0 -247
  255. package/skills/generate-api-client/tsconfig.json +0 -10
  256. package/skills/generate-chart/CLAUDE.md +0 -19
  257. package/skills/generate-chart/package.json +0 -27
  258. package/skills/generate-chart/src/index.ts +0 -510
  259. package/skills/generate-chart/tsconfig.json +0 -10
  260. package/skills/generate-dockerfile/CLAUDE.md +0 -19
  261. package/skills/generate-dockerfile/package.json +0 -27
  262. package/skills/generate-dockerfile/src/cli.ts +0 -78
  263. package/skills/generate-dockerfile/src/dockerfile-templates.ts +0 -392
  264. package/skills/generate-dockerfile/src/index.ts +0 -81
  265. package/skills/generate-dockerfile/src/logger.ts +0 -30
  266. package/skills/generate-dockerfile/src/project-detection.ts +0 -68
  267. package/skills/generate-dockerfile/src/support-files.ts +0 -171
  268. package/skills/generate-dockerfile/src/types.ts +0 -29
  269. package/skills/generate-dockerfile/tsconfig.json +0 -10
  270. package/skills/generate-env/CLAUDE.md +0 -19
  271. package/skills/generate-env/package.json +0 -29
  272. package/skills/generate-env/src/cli.ts +0 -85
  273. package/skills/generate-env/src/detection.ts +0 -161
  274. package/skills/generate-env/src/env-data.ts +0 -66
  275. package/skills/generate-env/src/generators.ts +0 -240
  276. package/skills/generate-env/src/index.ts +0 -120
  277. package/skills/generate-env/src/runtime.ts +0 -30
  278. package/skills/generate-env/src/types.ts +0 -32
  279. package/skills/generate-env/tsconfig.json +0 -10
  280. package/skills/generate-favicon/CLAUDE.md +0 -19
  281. package/skills/generate-favicon/package.json +0 -29
  282. package/skills/generate-favicon/src/index.ts +0 -421
  283. package/skills/generate-favicon/tsconfig.json +0 -10
  284. package/skills/generate-qrcode/CLAUDE.md +0 -19
  285. package/skills/generate-qrcode/package.json +0 -30
  286. package/skills/generate-qrcode/src/index.ts +0 -584
  287. package/skills/generate-qrcode/tsconfig.json +0 -10
  288. package/skills/generate-resume/CLAUDE.md +0 -19
  289. package/skills/generate-resume/package.json +0 -27
  290. package/skills/generate-resume/src/cli.ts +0 -157
  291. package/skills/generate-resume/src/index.ts +0 -178
  292. package/skills/generate-resume/src/parsers.ts +0 -95
  293. package/skills/generate-resume/src/renderers.ts +0 -538
  294. package/skills/generate-resume/src/security.ts +0 -39
  295. package/skills/generate-resume/src/types.ts +0 -86
  296. package/skills/generate-resume/tsconfig.json +0 -10
  297. package/skills/generate-sitemap/CLAUDE.md +0 -19
  298. package/skills/generate-sitemap/package.json +0 -27
  299. package/skills/generate-sitemap/src/index.ts +0 -626
  300. package/skills/generate-sitemap/tsconfig.json +0 -10
  301. package/skills/gif-maker/CLAUDE.md +0 -19
  302. package/skills/gif-maker/package.json +0 -30
  303. package/skills/gif-maker/src/index.ts +0 -600
  304. package/skills/gif-maker/tsconfig.json +0 -10
  305. package/skills/hook/LICENSE +0 -192
  306. package/skills/hook/README.md +0 -74
  307. package/skills/hook/SKILL.md +0 -85
  308. package/skills/hook/bunfig.toml +0 -5
  309. package/skills/hook/package.json +0 -28
  310. package/skills/hook/src/commands/create.ts +0 -112
  311. package/skills/hook/src/commands/events.ts +0 -37
  312. package/skills/hook/src/commands/validate.ts +0 -117
  313. package/skills/hook/src/index.ts +0 -118
  314. package/skills/hook/src/templates/root.ts +0 -196
  315. package/skills/hook/src/templates/source.ts +0 -647
  316. package/skills/hook/tsconfig.json +0 -18
  317. package/skills/http-server/CLAUDE.md +0 -19
  318. package/skills/http-server/package.json +0 -29
  319. package/skills/http-server/src/index.ts +0 -51
  320. package/skills/http-server/tsconfig.json +0 -10
  321. package/skills/implementation/LICENSE +0 -192
  322. package/skills/implementation/README.md +0 -53
  323. package/skills/implementation/SKILL.md +0 -57
  324. package/skills/implementation/bunfig.toml +0 -5
  325. package/skills/implementation/package.json +0 -28
  326. package/skills/implementation/src/commands/create.ts +0 -187
  327. package/skills/implementation/src/index.ts +0 -62
  328. package/skills/implementation/tsconfig.json +0 -18
  329. package/skills/implementation-plan/CLAUDE.md +0 -19
  330. package/skills/implementation-plan/package.json +0 -29
  331. package/skills/implementation-plan/src/index.ts +0 -520
  332. package/skills/implementation-plan/tsconfig.json +0 -10
  333. package/skills/implementation-todo/CLAUDE.md +0 -19
  334. package/skills/implementation-todo/package.json +0 -29
  335. package/skills/implementation-todo/src/index.ts +0 -429
  336. package/skills/implementation-todo/tsconfig.json +0 -10
  337. package/skills/invoice/.env.example +0 -3
  338. package/skills/invoice/CLAUDE.md +0 -31
  339. package/skills/invoice/LICENSE +0 -192
  340. package/skills/invoice/README.md +0 -70
  341. package/skills/invoice/package.json +0 -26
  342. package/skills/invoice/src/commands/companies.ts +0 -202
  343. package/skills/invoice/src/commands/config.ts +0 -132
  344. package/skills/invoice/src/commands/generate.ts +0 -177
  345. package/skills/invoice/src/commands/invoices.ts +0 -218
  346. package/skills/invoice/src/index.ts +0 -3
  347. package/skills/invoice/src/lib/api.ts +0 -124
  348. package/skills/invoice/src/lib/storage.ts +0 -171
  349. package/skills/invoice/src/types/index.ts +0 -86
  350. package/skills/invoice/src/utils/logger.ts +0 -33
  351. package/skills/invoice/src/utils/paths.ts +0 -25
  352. package/skills/invoice/tsconfig.json +0 -23
  353. package/skills/invoice-reconciliation/SKILL.md +0 -98
  354. package/skills/invoice-reconciliation/package.json +0 -36
  355. package/skills/invoice-reconciliation/src/index.ts +0 -743
  356. package/skills/invoice-reconciliation/tsconfig.json +0 -17
  357. package/skills/landing-page-pack/SKILL.md +0 -55
  358. package/skills/landing-page-pack/package.json +0 -10
  359. package/skills/latex-table-generator/CLAUDE.md +0 -19
  360. package/skills/latex-table-generator/package.json +0 -29
  361. package/skills/latex-table-generator/src/index.ts +0 -113
  362. package/skills/latex-table-generator/tsconfig.json +0 -10
  363. package/skills/logo-design/SKILL.md +0 -94
  364. package/skills/logo-design/package.json +0 -35
  365. package/skills/logo-design/src/cli.ts +0 -132
  366. package/skills/logo-design/src/constants.ts +0 -5
  367. package/skills/logo-design/src/docs.ts +0 -102
  368. package/skills/logo-design/src/geometry.ts +0 -324
  369. package/skills/logo-design/src/index.ts +0 -212
  370. package/skills/logo-design/src/palette.ts +0 -258
  371. package/skills/logo-design/src/types.ts +0 -50
  372. package/skills/logo-design/tsconfig.json +0 -17
  373. package/skills/lorem-generator/CLAUDE.md +0 -19
  374. package/skills/lorem-generator/package.json +0 -29
  375. package/skills/lorem-generator/src/index.ts +0 -59
  376. package/skills/lorem-generator/tsconfig.json +0 -10
  377. package/skills/managemcp/CLAUDE.md +0 -14
  378. package/skills/managemcp/README.md +0 -24
  379. package/skills/managemcp/package.json +0 -16
  380. package/skills/managemcp/src/index.ts +0 -3
  381. package/skills/managemcp/tsconfig.json +0 -27
  382. package/skills/markdown-validator/CLAUDE.md +0 -19
  383. package/skills/markdown-validator/package.json +0 -29
  384. package/skills/markdown-validator/src/index.ts +0 -92
  385. package/skills/markdown-validator/tsconfig.json +0 -10
  386. package/skills/market-research-report/SKILL.md +0 -51
  387. package/skills/market-research-report/package.json +0 -10
  388. package/skills/meeting-pack/SKILL.md +0 -52
  389. package/skills/meeting-pack/package.json +0 -10
  390. package/skills/merge-pdfs/CLAUDE.md +0 -19
  391. package/skills/merge-pdfs/package.json +0 -31
  392. package/skills/merge-pdfs/src/index.ts +0 -427
  393. package/skills/merge-pdfs/tsconfig.json +0 -10
  394. package/skills/migration-plan-pack/SKILL.md +0 -56
  395. package/skills/migration-plan-pack/package.json +0 -10
  396. package/skills/monitor/SKILL.md +0 -69
  397. package/skills/monitor/package.json +0 -33
  398. package/skills/monitor/src/index.ts +0 -34
  399. package/skills/monitor/tsconfig.json +0 -17
  400. package/skills/one-page-website/SKILL.md +0 -128
  401. package/skills/one-page-website/package.json +0 -34
  402. package/skills/one-page-website/src/design.ts +0 -336
  403. package/skills/one-page-website/src/docs.ts +0 -159
  404. package/skills/one-page-website/src/index.ts +0 -357
  405. package/skills/one-page-website/src/page.ts +0 -340
  406. package/skills/one-page-website/src/styles.ts +0 -508
  407. package/skills/one-page-website/src/types.ts +0 -78
  408. package/skills/one-page-website/tsconfig.json +0 -17
  409. package/skills/pdf-generate/CLAUDE.md +0 -19
  410. package/skills/pdf-generate/SKILL.md +0 -86
  411. package/skills/pdf-generate/package.json +0 -21
  412. package/skills/pdf-generate/src/cli.ts +0 -162
  413. package/skills/pdf-generate/src/html.ts +0 -84
  414. package/skills/pdf-generate/src/index.ts +0 -62
  415. package/skills/pdf-generate/src/markdown.ts +0 -27
  416. package/skills/pdf-generate/src/pdf-writer.ts +0 -78
  417. package/skills/pdf-generate/src/runtime.ts +0 -34
  418. package/skills/pdf-generate/src/security.ts +0 -37
  419. package/skills/pdf-generate/src/templates.ts +0 -311
  420. package/skills/pdf-generate/src/types.ts +0 -28
  421. package/skills/pdf-generate/tsconfig.json +0 -16
  422. package/skills/pdf-to-dataset/SKILL.md +0 -88
  423. package/skills/pdf-to-dataset/package.json +0 -37
  424. package/skills/pdf-to-dataset/src/index.ts +0 -790
  425. package/skills/pdf-to-dataset/tsconfig.json +0 -17
  426. package/skills/pdf-to-markdown/SKILL.md +0 -81
  427. package/skills/pdf-to-markdown/package.json +0 -35
  428. package/skills/pdf-to-markdown/src/index.ts +0 -694
  429. package/skills/pdf-to-markdown/tsconfig.json +0 -17
  430. package/skills/performance-audit-report/SKILL.md +0 -49
  431. package/skills/performance-audit-report/package.json +0 -10
  432. package/skills/pitch-deck/SKILL.md +0 -51
  433. package/skills/pitch-deck/package.json +0 -10
  434. package/skills/product-mockup/SKILL.md +0 -107
  435. package/skills/product-mockup/package.json +0 -32
  436. package/skills/product-mockup/src/cli.ts +0 -150
  437. package/skills/product-mockup/src/design.ts +0 -151
  438. package/skills/product-mockup/src/docs.ts +0 -134
  439. package/skills/product-mockup/src/index.ts +0 -182
  440. package/skills/product-mockup/src/render.ts +0 -407
  441. package/skills/product-mockup/src/types.ts +0 -66
  442. package/skills/product-mockup/tsconfig.json +0 -17
  443. package/skills/proposal-pack/SKILL.md +0 -53
  444. package/skills/proposal-pack/package.json +0 -10
  445. package/skills/read-csv/SKILL.md +0 -62
  446. package/skills/read-csv/package.json +0 -37
  447. package/skills/read-csv/src/index.ts +0 -356
  448. package/skills/read-csv/tsconfig.json +0 -17
  449. package/skills/read-excel/SKILL.md +0 -64
  450. package/skills/read-excel/package.json +0 -36
  451. package/skills/read-excel/src/index.ts +0 -266
  452. package/skills/read-excel/tsconfig.json +0 -17
  453. package/skills/regex-tester/CLAUDE.md +0 -19
  454. package/skills/regex-tester/package.json +0 -27
  455. package/skills/regex-tester/src/index.ts +0 -183
  456. package/skills/regex-tester/tsconfig.json +0 -10
  457. package/skills/repo-onboarding-report/SKILL.md +0 -52
  458. package/skills/repo-onboarding-report/package.json +0 -10
  459. package/skills/scancommitpr/SKILL.md +0 -178
  460. package/skills/scancommitpr/package.json +0 -34
  461. package/skills/scancommitpr/src/index.ts +0 -44
  462. package/skills/scancommitpr/tsconfig.json +0 -13
  463. package/skills/scancommitpush/SKILL.md +0 -174
  464. package/skills/scancommitpush/package.json +0 -32
  465. package/skills/scancommitpush/src/index.ts +0 -44
  466. package/skills/scancommitpush/tsconfig.json +0 -13
  467. package/skills/scientific-figure-check/CLAUDE.md +0 -19
  468. package/skills/scientific-figure-check/package.json +0 -29
  469. package/skills/scientific-figure-check/src/index.ts +0 -83
  470. package/skills/scientific-figure-check/tsconfig.json +0 -10
  471. package/skills/security-audit/CLAUDE.md +0 -19
  472. package/skills/security-audit/package.json +0 -27
  473. package/skills/security-audit/src/index.ts +0 -145
  474. package/skills/security-audit/tsconfig.json +0 -10
  475. package/skills/security-audit-report/SKILL.md +0 -52
  476. package/skills/security-audit-report/package.json +0 -10
  477. package/skills/seo-content-pack/SKILL.md +0 -54
  478. package/skills/seo-content-pack/package.json +0 -10
  479. package/skills/siteanalyze/SKILL.md +0 -25
  480. package/skills/siteanalyze/package.json +0 -27
  481. package/skills/siteanalyze/src/index.ts +0 -592
  482. package/skills/slide-deck-generator/SKILL.md +0 -93
  483. package/skills/slide-deck-generator/package.json +0 -38
  484. package/skills/slide-deck-generator/src/cli.ts +0 -133
  485. package/skills/slide-deck-generator/src/index.ts +0 -148
  486. package/skills/slide-deck-generator/src/model.ts +0 -307
  487. package/skills/slide-deck-generator/src/pptx.ts +0 -143
  488. package/skills/slide-deck-generator/src/render.ts +0 -248
  489. package/skills/slide-deck-generator/src/types.ts +0 -114
  490. package/skills/slide-deck-generator/src/utils.ts +0 -53
  491. package/skills/slide-deck-generator/tsconfig.json +0 -17
  492. package/skills/social-content-calendar/SKILL.md +0 -54
  493. package/skills/social-content-calendar/package.json +0 -10
  494. package/skills/split-pdf/CLAUDE.md +0 -19
  495. package/skills/split-pdf/package.json +0 -30
  496. package/skills/split-pdf/src/index.ts +0 -301
  497. package/skills/split-pdf/tsconfig.json +0 -10
  498. package/skills/statistical-test-selector/CLAUDE.md +0 -19
  499. package/skills/statistical-test-selector/package.json +0 -27
  500. package/skills/statistical-test-selector/src/index.ts +0 -75
  501. package/skills/statistical-test-selector/tsconfig.json +0 -10
  502. package/skills/test-suite-generator/SKILL.md +0 -51
  503. package/skills/test-suite-generator/package.json +0 -10
  504. package/skills/tmux-session/SKILL.md +0 -109
  505. package/skills/tmux-session/package.json +0 -33
  506. package/skills/tmux-session/src/index.ts +0 -34
  507. package/skills/tmux-session/tsconfig.json +0 -17
  508. package/skills/todos-plan/SKILL.md +0 -363
  509. package/skills/todos-plan/agents/openai.yaml +0 -4
  510. package/skills/todos-plan/package.json +0 -9
  511. package/skills/todos-plan/src/index.ts +0 -68
  512. package/skills/tsconfig.base.json +0 -12
  513. package/skills/validate-config/CLAUDE.md +0 -19
  514. package/skills/validate-config/package.json +0 -29
  515. package/skills/validate-config/src/index.ts +0 -56
  516. package/skills/validate-config/tsconfig.json +0 -10
  517. package/skills/video-downloader/CLAUDE.md +0 -19
  518. package/skills/video-downloader/package.json +0 -29
  519. package/skills/video-downloader/src/index.ts +0 -561
  520. package/skills/video-downloader/tsconfig.json +0 -10
  521. package/skills/video-highlight-pack/SKILL.md +0 -54
  522. package/skills/video-highlight-pack/package.json +0 -10
  523. package/skills/watermark/CLAUDE.md +0 -19
  524. package/skills/watermark/package.json +0 -32
  525. package/skills/watermark/src/index.ts +0 -587
  526. package/skills/watermark/tsconfig.json +0 -10
@@ -1,143 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- for required_command in git node npm tar; do
5
- if ! command -v "$required_command" >/dev/null 2>&1; then
6
- printf 'publish_with_git_head: %s is required\n' "$required_command" >&2
7
- exit 127
8
- fi
9
- done
10
-
11
- package_dir=$(pwd -P)
12
- if [ ! -f "$package_dir/package.json" ]; then
13
- printf 'publish_with_git_head: no package.json in %s\n' "$package_dir" >&2
14
- exit 2
15
- fi
16
-
17
- repo_root=$(git -C "$package_dir" rev-parse --show-toplevel)
18
- head_sha=$(git -C "$repo_root" rev-parse HEAD)
19
- source_tree=$(git -C "$repo_root" rev-parse "$head_sha^{tree}")
20
- package_prefix=$(git -C "$package_dir" rev-parse --show-prefix)
21
- package_relative=${package_prefix%/}
22
- source_status=$(git -C "$repo_root" status --porcelain --untracked-files=no)
23
-
24
- if [ -n "$source_status" ]; then
25
- printf 'publish_with_git_head: tracked source changes must be committed before publish\n' >&2
26
- exit 2
27
- fi
28
-
29
- temp_root=$(mktemp -d "${TMPDIR:-/tmp}/hasna-publish-githead.XXXXXX")
30
- clone_root="$temp_root/repo"
31
- pack_dir="$temp_root/pack"
32
- unpack_dir="$temp_root/unpack"
33
- pack_json="$temp_root/pack.json"
34
-
35
- cleanup() {
36
- local temp_name
37
- temp_name=$(basename "$temp_root")
38
- case "$temp_name" in
39
- hasna-publish-githead.*)
40
- rm -rf -- "$temp_root"
41
- ;;
42
- *)
43
- printf 'publish_with_git_head: refusing to remove unexpected temp path %s\n' \
44
- "$temp_root" >&2
45
- return 1
46
- ;;
47
- esac
48
- }
49
-
50
- handle_exit() {
51
- local command_rc=$?
52
- trap - EXIT INT TERM
53
- if ! cleanup; then
54
- exit 70
55
- fi
56
- exit "$command_rc"
57
- }
58
-
59
- trap handle_exit EXIT
60
- trap 'exit 130' INT
61
- trap 'exit 143' TERM
62
-
63
- mkdir -p "$pack_dir" "$unpack_dir"
64
- (
65
- cd "$package_dir"
66
- npm pack --ignore-scripts --json --pack-destination "$pack_dir"
67
- ) > "$pack_json"
68
-
69
- tarball_name=$(
70
- node -e '
71
- const fs = require("node:fs");
72
- const result = JSON.parse(fs.readFileSync(process.argv[1], "utf8"));
73
- if (!Array.isArray(result) || result.length !== 1 || !result[0]?.filename) {
74
- process.exit(2);
75
- }
76
- process.stdout.write(result[0].filename);
77
- ' "$pack_json"
78
- )
79
- tarball="$pack_dir/$tarball_name"
80
- if [ ! -f "$tarball" ]; then
81
- printf 'publish_with_git_head: npm pack did not create %s\n' "$tarball" >&2
82
- exit 2
83
- fi
84
-
85
- git clone --quiet --no-hardlinks --no-checkout "$repo_root" "$clone_root"
86
- git -C "$clone_root" checkout --quiet --detach "$head_sha"
87
-
88
- clone_head=$(git -C "$clone_root" rev-parse HEAD)
89
- clone_tree=$(git -C "$clone_root" rev-parse "HEAD^{tree}")
90
- clone_status=$(git -C "$clone_root" status --porcelain)
91
- if [ "$clone_head" != "$head_sha" ] || [ "$clone_tree" != "$source_tree" ]; then
92
- printf 'publish_with_git_head: disposable clone does not match source HEAD/tree\n' >&2
93
- exit 2
94
- fi
95
- if [ -n "$clone_status" ]; then
96
- printf 'publish_with_git_head: disposable clone is not clean before staging package files\n' >&2
97
- exit 2
98
- fi
99
-
100
- if [ -n "$package_relative" ]; then
101
- clone_package_dir="$clone_root/$package_relative"
102
- else
103
- clone_package_dir="$clone_root"
104
- fi
105
- if [ ! -d "$clone_package_dir" ]; then
106
- printf 'publish_with_git_head: package subdirectory missing in clone: %s\n' \
107
- "$package_relative" >&2
108
- exit 2
109
- fi
110
-
111
- tar -xzf "$tarball" -C "$unpack_dir"
112
- cp -a "$unpack_dir/package/." "$clone_package_dir/"
113
-
114
- if [ -d "$repo_root/node_modules" ] && [ ! -e "$clone_root/node_modules" ]; then
115
- ln -s "$repo_root/node_modules" "$clone_root/node_modules"
116
- fi
117
- if [ "$package_dir" != "$repo_root" ] &&
118
- [ -d "$package_dir/node_modules" ] &&
119
- [ ! -e "$clone_package_dir/node_modules" ]; then
120
- ln -s "$package_dir/node_modules" "$clone_package_dir/node_modules"
121
- fi
122
-
123
- node -e '
124
- const fs = require("node:fs");
125
- const source = JSON.parse(fs.readFileSync(process.argv[1], "utf8"));
126
- const staged = JSON.parse(fs.readFileSync(process.argv[2], "utf8"));
127
- if (source.name !== staged.name || source.version !== staged.version) {
128
- process.exit(2);
129
- }
130
- ' "$package_dir/package.json" "$clone_package_dir/package.json"
131
-
132
- if [ "$(git -C "$repo_root" rev-parse HEAD)" != "$head_sha" ] ||
133
- [ "$(git -C "$repo_root" rev-parse "HEAD^{tree}")" != "$source_tree" ]; then
134
- printf 'publish_with_git_head: source HEAD/tree changed while preparing publish\n' >&2
135
- exit 2
136
- fi
137
-
138
- printf 'publish_with_git_head: publishing %s from disposable clone at HEAD %s\n' \
139
- "${package_relative:-.}" "$head_sha" >&2
140
- (
141
- cd "$clone_package_dir"
142
- npm publish "$@"
143
- )
@@ -1,231 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
5
- helper="$script_dir/publish_with_git_head.sh"
6
- temp_root=$(mktemp -d)
7
- source_repo="$temp_root/source"
8
- source_package="$source_repo/packages/npm-githead-regression"
9
- linked_worktree="$temp_root/linked-worktree"
10
- linked_package="$linked_worktree/packages/npm-githead-regression"
11
-
12
- cleanup() {
13
- rm -rf "$temp_root"
14
- }
15
- trap cleanup EXIT INT TERM
16
-
17
- if [ ! -f "$helper" ]; then
18
- printf 'MISSING_HELPER: %s\n' "$helper"
19
- exit 1
20
- fi
21
-
22
- mkdir -p "$source_package"
23
- git init -q -b main "$source_repo"
24
- (
25
- cd "$source_package"
26
- npm init -y > "$temp_root/npm-init.out" 2> "$temp_root/npm-init.err"
27
- npm pkg set \
28
- name=npm-githead-regression \
29
- version=1.0.0 \
30
- description="Local npm gitHead regression" \
31
- license=MIT \
32
- repository.type=git \
33
- repository.url=git+https://example.invalid/npm-githead-regression.git \
34
- scripts.prepublishOnly="node prepublish-probe.cjs" \
35
- > "$temp_root/npm-pkg-set.out" \
36
- 2> "$temp_root/npm-pkg-set.err"
37
- )
38
- node -e '
39
- require("node:fs").writeFileSync(
40
- process.argv[1],
41
- [
42
- "const fs = require(\"node:fs\");",
43
- "const marker = process.env.PROBE_KILL_MARKER;",
44
- "if (marker) {",
45
- " fs.writeFileSync(marker, \"ready\\n\");",
46
- " setInterval(() => {}, 1000);",
47
- "}",
48
- "",
49
- ].join("\n"),
50
- );
51
- ' "$source_package/prepublish-probe.cjs"
52
- git -C "$source_repo" config user.name "Provenance Regression"
53
- git -C "$source_repo" config user.email "provenance-regression@example.invalid"
54
- git -C "$source_repo" add packages/npm-githead-regression/package.json \
55
- packages/npm-githead-regression/prepublish-probe.cjs
56
- git -C "$source_repo" commit --no-verify -q -m "test: seed provenance package"
57
- git -C "$source_repo" worktree add -q -b publish-regression "$linked_worktree" HEAD
58
-
59
- expected_head=$(git -C "$linked_worktree" rev-parse HEAD)
60
- cp "$linked_worktree/.git" "$temp_root/original-gitfile"
61
-
62
- start_registry() {
63
- local label=$1
64
- local status=$2
65
- capture_prefix="$temp_root/$label"
66
- port_file="$capture_prefix.port"
67
-
68
- CAPTURE_PUT_STATUS="$status" \
69
- node "$script_dir/capture_registry.js" "$capture_prefix" "$port_file" \
70
- > "$capture_prefix.server.out" \
71
- 2> "$capture_prefix.server.err" &
72
- registry_pid=$!
73
-
74
- for _ in $(seq 1 100); do
75
- if [ -s "$port_file" ]; then
76
- break
77
- fi
78
- sleep 0.05
79
- done
80
- if [ ! -s "$port_file" ]; then
81
- printf 'REGISTRY_START: FAILED\n'
82
- return 1
83
- fi
84
- registry_port=$(<"$port_file")
85
- }
86
-
87
- read_git_head() {
88
- node -e '
89
- const body = JSON.parse(require("node:fs").readFileSync(process.argv[1], "utf8"));
90
- const version = Object.values(body.versions)[0];
91
- process.stdout.write(version.gitHead ?? "");
92
- ' "$1"
93
- }
94
-
95
- assert_source_unchanged() {
96
- test -f "$linked_worktree/.git"
97
- cmp -s "$linked_worktree/.git" "$temp_root/original-gitfile"
98
- test -z "$(git -C "$linked_worktree" status --porcelain)"
99
- }
100
-
101
- assert_no_helper_temp() {
102
- local temp_parent=$1
103
- if compgen -G "$temp_parent/hasna-publish-githead.*" >/dev/null; then
104
- printf 'HELPER_TEMP_REMAINS: %s\n' "$temp_parent"
105
- return 1
106
- fi
107
- }
108
-
109
- publish_args=(
110
- --access public
111
- --json
112
- --fetch-retries=0
113
- --fetch-retry-mintimeout=1
114
- --fetch-retry-maxtimeout=1
115
- )
116
-
117
- start_registry plain 201
118
- (
119
- cd "$linked_package"
120
- npm publish \
121
- --registry "http://127.0.0.1:$registry_port" \
122
- "${publish_args[@]}" \
123
- "--//127.0.0.1:$registry_port/:_authToken=fake-probe-token"
124
- ) > "$capture_prefix.publish.out" 2> "$capture_prefix.publish.err"
125
- wait "$registry_pid" 2>/dev/null || true
126
- plain_head=$(read_git_head "$capture_prefix.put.json")
127
- if [ -n "$plain_head" ]; then
128
- printf 'PLAIN_GITHEAD: %s\n' "$plain_head"
129
- else
130
- printf 'PLAIN_GITHEAD: ABSENT\n'
131
- fi
132
-
133
- success_tmp="$temp_root/success-tmp"
134
- mkdir "$success_tmp"
135
- start_registry helper-success 201
136
- (
137
- cd "$linked_package"
138
- TMPDIR="$success_tmp" bash "$helper" \
139
- --registry "http://127.0.0.1:$registry_port" \
140
- "${publish_args[@]}" \
141
- "--//127.0.0.1:$registry_port/:_authToken=fake-probe-token"
142
- ) > "$capture_prefix.publish.out" 2> "$capture_prefix.publish.err"
143
- wait "$registry_pid" 2>/dev/null || true
144
- helper_head=$(read_git_head "$capture_prefix.put.json")
145
- printf 'EXPECTED_HEAD: %s\n' "$expected_head"
146
- printf 'HELPER_GITHEAD: %s\n' "${helper_head:-ABSENT}"
147
- test "$helper_head" = "$expected_head"
148
- assert_source_unchanged
149
- assert_no_helper_temp "$success_tmp"
150
- printf 'SUCCESS_SOURCE: unchanged\n'
151
-
152
- dirty_tmp="$temp_root/dirty-tmp"
153
- mkdir "$dirty_tmp"
154
- (
155
- cd "$linked_package"
156
- npm pkg set description="dirty source must be refused"
157
- )
158
- set +e
159
- (
160
- cd "$linked_package"
161
- TMPDIR="$dirty_tmp" bash "$helper" --dry-run
162
- ) > "$temp_root/dirty-source.out" 2> "$temp_root/dirty-source.err"
163
- dirty_rc=$?
164
- set -e
165
- test "$dirty_rc" -ne 0
166
- grep -q 'tracked source changes must be committed' "$temp_root/dirty-source.err"
167
- assert_no_helper_temp "$dirty_tmp"
168
- git -C "$linked_worktree" restore packages/npm-githead-regression/package.json
169
- assert_source_unchanged
170
- printf 'DIRTY_SOURCE: refused (helper rc=%s)\n' "$dirty_rc"
171
-
172
- failure_tmp="$temp_root/failure-tmp"
173
- mkdir "$failure_tmp"
174
- start_registry helper-failure 500
175
- set +e
176
- (
177
- cd "$linked_package"
178
- TMPDIR="$failure_tmp" bash "$helper" \
179
- --registry "http://127.0.0.1:$registry_port" \
180
- "${publish_args[@]}" \
181
- "--//127.0.0.1:$registry_port/:_authToken=fake-probe-token"
182
- ) > "$capture_prefix.publish.out" 2> "$capture_prefix.publish.err"
183
- failure_rc=$?
184
- set -e
185
- wait "$registry_pid" 2>/dev/null || true
186
- test "$failure_rc" -ne 0
187
- assert_source_unchanged
188
- assert_no_helper_temp "$failure_tmp"
189
- printf 'FAILURE_SOURCE: unchanged (publish rc=%s)\n' "$failure_rc"
190
-
191
- kill_tmp="$temp_root/kill-tmp"
192
- mkdir "$kill_tmp"
193
- kill_marker="$temp_root/kill-ready"
194
- start_registry helper-kill 201
195
- (
196
- cd "$linked_package"
197
- exec setsid env TMPDIR="$kill_tmp" PROBE_KILL_MARKER="$kill_marker" \
198
- bash "$helper" \
199
- --registry "http://127.0.0.1:$registry_port" \
200
- "${publish_args[@]}" \
201
- "--//127.0.0.1:$registry_port/:_authToken=fake-probe-token"
202
- ) > "$capture_prefix.publish.out" 2> "$capture_prefix.publish.err" &
203
- helper_pid=$!
204
-
205
- for _ in $(seq 1 400); do
206
- if [ -s "$kill_marker" ]; then
207
- break
208
- fi
209
- sleep 0.05
210
- done
211
- if [ ! -s "$kill_marker" ]; then
212
- printf 'FORCED_TERMINATION_MARKER: ABSENT\n'
213
- kill -KILL -- "-$helper_pid" 2>/dev/null || true
214
- kill "$registry_pid" 2>/dev/null || true
215
- wait "$helper_pid" 2>/dev/null || true
216
- wait "$registry_pid" 2>/dev/null || true
217
- exit 1
218
- fi
219
-
220
- kill -KILL -- "-$helper_pid" 2>/dev/null || true
221
- set +e
222
- wait "$helper_pid" 2>/dev/null
223
- kill_rc=$?
224
- set -e
225
- kill "$registry_pid" 2>/dev/null || true
226
- wait "$registry_pid" 2>/dev/null || true
227
- test "$kill_rc" -ne 0
228
- assert_source_unchanged
229
- compgen -G "$kill_tmp/hasna-publish-githead.*" >/dev/null
230
- printf 'FORCED_TERMINATION_SOURCE: unchanged (process rc=%s; disposable clone orphaned)\n' \
231
- "$kill_rc"
@@ -1,45 +0,0 @@
1
- /**
2
- * Skill Authentication Check
3
- * Add this to the top of any skill's main function
4
- */
5
-
6
- export function checkSkillAuth(): void {
7
- const skillsApiKey = process.env.SKILLS_API_KEY || process.env.SKILL_API_KEY;
8
-
9
- if (!skillsApiKey) {
10
- console.error('Error: SKILLS_API_KEY environment variable not set');
11
- console.error('');
12
- console.error('To use hosted execution, set your SKILLS_API_KEY:');
13
- console.error('');
14
- console.error(' export SKILLS_API_KEY=your-api-key-here');
15
- console.error('');
16
- console.error('You can also use the root `skills auth login` command.');
17
- process.exit(1);
18
- }
19
-
20
- if (!skillsApiKey.startsWith('sk-skill-')) {
21
- console.error('Error: Invalid SKILLS_API_KEY format');
22
- console.error('Expected format: sk-skill-xxxxxxxxxxxx');
23
- process.exit(1);
24
- }
25
- }
26
-
27
- /**
28
- * Check if running remotely (via SSH or network)
29
- */
30
- export function isRemoteExecution(): boolean {
31
- return !!(
32
- process.env.SSH_CONNECTION ||
33
- process.env.SSH_CLIENT ||
34
- process.env.SSH_TTY
35
- );
36
- }
37
-
38
- /**
39
- * Require auth only if remote execution
40
- */
41
- export function requireAuthIfRemote(): void {
42
- if (isRemoteExecution()) {
43
- checkSkillAuth();
44
- }
45
- }
@@ -1,143 +0,0 @@
1
- /**
2
- * Skill HTTP Client
3
- *
4
- * Generic HTTP client for calling the remote skill API server
5
- * Usage: import and call executeSkill() from your skill CLI
6
- */
7
-
8
- // No default endpoint. An unconfigured install has no instance to talk to, and
9
- // guessing one would send this skill's payload and API key to a host the
10
- // operator never chose.
11
- const SKILL_API_URL = process.env.SKILLS_API_URL || process.env.SKILL_API_URL || "";
12
-
13
- const MISSING_API_URL_MESSAGE =
14
- "Set SKILLS_API_URL to the origin of the Skills instance you run, " +
15
- "or run `skills setup --api-url <origin>`";
16
-
17
- export interface SkillRequest {
18
- skill: string;
19
- command?: string;
20
- provider?: string;
21
- prompt?: string;
22
- text?: string;
23
- output?: string;
24
- [key: string]: unknown;
25
- }
26
-
27
- export interface SkillResponse {
28
- success: boolean;
29
- output?: string;
30
- error?: string;
31
- details?: string;
32
- }
33
-
34
- /**
35
- * Execute a skill on the remote server
36
- */
37
- export async function executeSkill(request: SkillRequest): Promise<SkillResponse | Blob> {
38
- const { skill, ...params } = request;
39
-
40
- if (!SKILL_API_URL) {
41
- return {
42
- success: false,
43
- error: "Missing SKILLS_API_URL",
44
- details: MISSING_API_URL_MESSAGE,
45
- };
46
- }
47
-
48
- const url = `${SKILL_API_URL}/${skill}/`;
49
-
50
- // Get API key from environment
51
- const apiKey = process.env.SKILLS_API_KEY || process.env.SKILL_API_KEY;
52
- if (!apiKey) {
53
- return {
54
- success: false,
55
- error: "Missing SKILLS_API_KEY",
56
- details: "Set SKILLS_API_KEY environment variable or run `skills auth login`"
57
- };
58
- }
59
-
60
- try {
61
- const response = await fetch(url, {
62
- method: "POST",
63
- headers: {
64
- "Content-Type": "application/json",
65
- "User-Agent": `skill-${skill}-cli/1.0`,
66
- "X-API-Key": apiKey
67
- },
68
- body: JSON.stringify(params)
69
- });
70
-
71
- if (!response.ok) {
72
- const error = await response.json();
73
- return {
74
- success: false,
75
- error: error.error || `HTTP ${response.status}`,
76
- details: error.details || error.message
77
- };
78
- }
79
-
80
- // Check if response is a file (binary)
81
- const contentType = response.headers.get("Content-Type") || "";
82
- if (contentType.includes("image/") ||
83
- contentType.includes("audio/") ||
84
- contentType.includes("video/") ||
85
- contentType.includes("application/")) {
86
- return await response.blob();
87
- }
88
-
89
- // Otherwise JSON
90
- return await response.json();
91
-
92
- } catch (error) {
93
- return {
94
- success: false,
95
- error: "Network error",
96
- details: error instanceof Error ? error.message : String(error)
97
- };
98
- }
99
- }
100
-
101
- /**
102
- * Save a blob to a file
103
- */
104
- export async function saveBlob(blob: Blob, outputPath: string): Promise<void> {
105
- const buffer = await blob.arrayBuffer();
106
- await Bun.write(outputPath, buffer);
107
- }
108
-
109
- /**
110
- * Helper to execute a skill and save file if needed
111
- */
112
- export async function executeAndSave(request: SkillRequest): Promise<boolean> {
113
- if (SKILL_API_URL) console.log(`🔗 Connecting to ${SKILL_API_URL}...`);
114
-
115
- const result = await executeSkill(request);
116
-
117
- if (result instanceof Blob) {
118
- // File response
119
- if (!request.output) {
120
- console.error("❌ Error: No output path specified");
121
- return false;
122
- }
123
-
124
- await saveBlob(result, request.output);
125
- console.log(`✅ Saved to: ${request.output}`);
126
- return true;
127
- }
128
-
129
- // JSON response
130
- if (!result.success) {
131
- console.error(`❌ Error: ${result.error}`);
132
- if (result.details) {
133
- console.error(` ${result.details}`);
134
- }
135
- return false;
136
- }
137
-
138
- if (result.output) {
139
- console.log(result.output);
140
- }
141
-
142
- return true;
143
- }
@@ -1,26 +0,0 @@
1
- /**
2
- * Shared SDK for skills
3
- *
4
- * Common utilities used across audio, browse, codefix, convert, deploy,
5
- * extract, image, transcript, video, and write.
6
- */
7
-
8
- export { checkSkillAuth, isRemoteExecution, requireAuthIfRemote } from './auth';
9
- export {
10
- executeSkill,
11
- saveBlob,
12
- executeAndSave,
13
- type SkillRequest,
14
- type SkillResponse,
15
- } from './http-client';
16
- export {
17
- SkillInstaller,
18
- runInstaller,
19
- type SkillConfig,
20
- type AssistantType,
21
- } from './installer';
22
- export { handleInstallCommand } from './skill-install';
23
-
24
- // Vision client — multi-provider (anthropic/openai/xai/gemini)
25
- // import { analyzeImage, detectProvider } from './vision.js'
26
- export * from './vision.js';
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- echo "Direct per-skill installers are disabled."
5
- echo "Render skills into native agent folders instead:"
6
- echo " skills render"
7
- exit 1
@@ -1,72 +0,0 @@
1
- #!/usr/bin/env bun
2
-
3
- /**
4
- * Legacy per-skill installer boundary.
5
- *
6
- * Agent-native skill folders are intentionally unmanaged by legacy installers.
7
- * The root Skills CLI renders skills into those folders instead.
8
- */
9
-
10
- export interface SkillConfig {
11
- name: string;
12
- description: string;
13
- version: string;
14
- commands: Array<{
15
- name: string;
16
- description: string;
17
- usage: string;
18
- examples: string[];
19
- }>;
20
- requiredEnvVars?: string[];
21
- optionalEnvVars?: string[];
22
- }
23
-
24
- export type AssistantType = "claude" | "codex" | "windsurf" | "cursor";
25
-
26
- export class SkillInstaller {
27
- private config: SkillConfig;
28
-
29
- constructor(config: SkillConfig, _currentFilePath: string) {
30
- this.config = config;
31
- }
32
-
33
- async install(assistant: AssistantType): Promise<void> {
34
- throw new Error(registrationMessage(this.config.name, assistant));
35
- }
36
-
37
- async uninstall(assistant: AssistantType): Promise<void> {
38
- throw new Error(
39
- `Direct agent skill-folder uninstalls are disabled for ${this.config.name}. ` +
40
- "Render skills into native agent folders instead: skills render",
41
- );
42
- }
43
- }
44
-
45
- export async function runInstaller(
46
- config: SkillConfig,
47
- currentFilePath: string,
48
- args: string[] = process.argv.slice(2),
49
- ): Promise<boolean> {
50
- const command = args[0];
51
- if (command !== "install" && command !== "uninstall") {
52
- return false;
53
- }
54
-
55
- const assistant = args.find((arg): arg is AssistantType =>
56
- ["claude", "codex", "windsurf", "cursor"].includes(arg),
57
- );
58
- const installer = new SkillInstaller(config, currentFilePath);
59
- if (command === "install") {
60
- await installer.install(assistant ?? "claude");
61
- } else {
62
- await installer.uninstall(assistant ?? "claude");
63
- }
64
- return true;
65
- }
66
-
67
- function registrationMessage(skillName: string, assistant: AssistantType): string {
68
- return (
69
- `Direct agent skill-folder installs are disabled for ${skillName}. ` +
70
- "Render skills into native agent folders instead: skills render"
71
- );
72
- }