@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,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
- }