@elizaos/skills 2.0.0-alpha.53 → 2.0.0-alpha.533

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 (380) hide show
  1. package/README.md +4 -0
  2. package/dist/formatter.d.ts.map +1 -1
  3. package/dist/formatter.js +2 -1
  4. package/dist/frontmatter.d.ts +13 -1
  5. package/dist/frontmatter.d.ts.map +1 -1
  6. package/dist/frontmatter.js +51 -1
  7. package/dist/index.d.ts +3 -3
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +2 -2
  10. package/dist/loader.d.ts.map +1 -1
  11. package/dist/loader.js +10 -3
  12. package/dist/resolver.d.ts +17 -0
  13. package/dist/resolver.d.ts.map +1 -1
  14. package/dist/resolver.js +54 -1
  15. package/dist/types.d.ts +38 -1
  16. package/dist/types.d.ts.map +1 -1
  17. package/package.json +57 -53
  18. package/skills/build-monetized-app/SKILL.md +67 -0
  19. package/skills/build-monetized-app/references/failure-modes.md +69 -0
  20. package/skills/build-monetized-app/references/sdk-flow.md +159 -0
  21. package/skills/build-monetized-app/references/survival-economics.md +64 -0
  22. package/skills/claude-subagent-eliza-bridge/SKILL.md +34 -0
  23. package/skills/eliza-app-development/SKILL.md +62 -0
  24. package/skills/eliza-app-development/references/repo-map.md +70 -0
  25. package/skills/eliza-app-development/references/runtime-and-cloud.md +61 -0
  26. package/skills/eliza-cloud/SKILL.md +39 -0
  27. package/skills/eliza-cloud/references/apps-and-containers.md +73 -0
  28. package/skills/eliza-cloud/references/cloud-backend-and-monetization.md +99 -0
  29. package/skills/elizaos/SKILL.md +27 -0
  30. package/skills/elizaos/references/core-abstractions.md +101 -0
  31. package/skills/elizaos/references/plugin-development.md +74 -0
  32. package/skills/yara-authoring/SKILL.md +111 -0
  33. package/skills/bear-notes/SKILL.md +0 -107
  34. package/skills/bird/SKILL.md +0 -224
  35. package/skills/blogwatcher/SKILL.md +0 -69
  36. package/skills/clawhub/SKILL.md +0 -77
  37. package/skills/crow/SKILL.md +0 -261
  38. package/skills/crow/references/api-reference.md +0 -370
  39. package/skills/crow/references/card-payments.md +0 -124
  40. package/skills/crow/references/error-handling.md +0 -154
  41. package/skills/crow/references/x402-flow.md +0 -170
  42. package/skills/eightctl/SKILL.md +0 -50
  43. package/skills/food-order/SKILL.md +0 -48
  44. package/skills/gemini/SKILL.md +0 -43
  45. package/skills/gifgrep/SKILL.md +0 -79
  46. package/skills/gog/SKILL.md +0 -116
  47. package/skills/goplaces/SKILL.md +0 -52
  48. package/skills/himalaya/SKILL.md +0 -257
  49. package/skills/himalaya/references/configuration.md +0 -184
  50. package/skills/himalaya/references/message-composition.md +0 -199
  51. package/skills/local-places/SERVER_README.md +0 -101
  52. package/skills/local-places/SKILL.md +0 -102
  53. package/skills/local-places/pyproject.toml +0 -21
  54. package/skills/local-places/src/local_places/__init__.py +0 -2
  55. package/skills/local-places/src/local_places/google_places.py +0 -314
  56. package/skills/local-places/src/local_places/main.py +0 -65
  57. package/skills/local-places/src/local_places/schemas.py +0 -107
  58. package/skills/mcporter/SKILL.md +0 -61
  59. package/skills/model-usage/SKILL.md +0 -69
  60. package/skills/model-usage/references/codexbar-cli.md +0 -33
  61. package/skills/model-usage/scripts/model_usage.py +0 -310
  62. package/skills/nightmarket/SKILL.md +0 -145
  63. package/skills/nightmarket/references/api.md +0 -176
  64. package/skills/nightmarket/references/crow-payments.md +0 -67
  65. package/skills/nightmarket/references/mcp.md +0 -53
  66. package/skills/openai-image-gen/SKILL.md +0 -89
  67. package/skills/openai-image-gen/scripts/gen.py +0 -240
  68. package/skills/openai-whisper/SKILL.md +0 -38
  69. package/skills/openai-whisper-api/SKILL.md +0 -52
  70. package/skills/openai-whisper-api/scripts/transcribe.sh +0 -85
  71. package/skills/openhue/SKILL.md +0 -51
  72. package/skills/oracle/SKILL.md +0 -125
  73. package/skills/peekaboo/SKILL.md +0 -190
  74. package/skills/sag/SKILL.md +0 -87
  75. package/skills/security-ask-questions-if-underspecified/.claude-plugin/plugin.json +0 -10
  76. package/skills/security-ask-questions-if-underspecified/README.md +0 -24
  77. package/skills/security-ask-questions-if-underspecified/skills/ask-questions-if-underspecified/SKILL.md +0 -85
  78. package/skills/security-audit-context-building/.claude-plugin/plugin.json +0 -10
  79. package/skills/security-audit-context-building/README.md +0 -58
  80. package/skills/security-audit-context-building/commands/audit-context.md +0 -21
  81. package/skills/security-audit-context-building/skills/audit-context-building/SKILL.md +0 -297
  82. package/skills/security-audit-context-building/skills/audit-context-building/resources/COMPLETENESS_CHECKLIST.md +0 -47
  83. package/skills/security-audit-context-building/skills/audit-context-building/resources/FUNCTION_MICRO_ANALYSIS_EXAMPLE.md +0 -355
  84. package/skills/security-audit-context-building/skills/audit-context-building/resources/OUTPUT_REQUIREMENTS.md +0 -71
  85. package/skills/security-building-secure-contracts/.claude-plugin/plugin.json +0 -10
  86. package/skills/security-building-secure-contracts/README.md +0 -241
  87. package/skills/security-building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md +0 -284
  88. package/skills/security-building-secure-contracts/skills/algorand-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +0 -405
  89. package/skills/security-building-secure-contracts/skills/audit-prep-assistant/SKILL.md +0 -409
  90. package/skills/security-building-secure-contracts/skills/cairo-vulnerability-scanner/SKILL.md +0 -329
  91. package/skills/security-building-secure-contracts/skills/cairo-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +0 -722
  92. package/skills/security-building-secure-contracts/skills/code-maturity-assessor/SKILL.md +0 -218
  93. package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/ASSESSMENT_CRITERIA.md +0 -355
  94. package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/EXAMPLE_REPORT.md +0 -248
  95. package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/REPORT_FORMAT.md +0 -33
  96. package/skills/security-building-secure-contracts/skills/cosmos-vulnerability-scanner/SKILL.md +0 -334
  97. package/skills/security-building-secure-contracts/skills/cosmos-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +0 -740
  98. package/skills/security-building-secure-contracts/skills/guidelines-advisor/SKILL.md +0 -252
  99. package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/ASSESSMENT_AREAS.md +0 -329
  100. package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/DELIVERABLES.md +0 -118
  101. package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/EXAMPLE_REPORT.md +0 -298
  102. package/skills/security-building-secure-contracts/skills/secure-workflow-guide/SKILL.md +0 -161
  103. package/skills/security-building-secure-contracts/skills/secure-workflow-guide/resources/EXAMPLE_REPORT.md +0 -279
  104. package/skills/security-building-secure-contracts/skills/secure-workflow-guide/resources/WORKFLOW_STEPS.md +0 -132
  105. package/skills/security-building-secure-contracts/skills/solana-vulnerability-scanner/SKILL.md +0 -389
  106. package/skills/security-building-secure-contracts/skills/solana-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +0 -669
  107. package/skills/security-building-secure-contracts/skills/substrate-vulnerability-scanner/SKILL.md +0 -298
  108. package/skills/security-building-secure-contracts/skills/substrate-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +0 -791
  109. package/skills/security-building-secure-contracts/skills/token-integration-analyzer/SKILL.md +0 -362
  110. package/skills/security-building-secure-contracts/skills/token-integration-analyzer/resources/ASSESSMENT_CATEGORIES.md +0 -571
  111. package/skills/security-building-secure-contracts/skills/token-integration-analyzer/resources/REPORT_TEMPLATES.md +0 -141
  112. package/skills/security-building-secure-contracts/skills/ton-vulnerability-scanner/SKILL.md +0 -388
  113. package/skills/security-building-secure-contracts/skills/ton-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +0 -595
  114. package/skills/security-burpsuite-project-parser/.claude-plugin/plugin.json +0 -10
  115. package/skills/security-burpsuite-project-parser/README.md +0 -103
  116. package/skills/security-burpsuite-project-parser/commands/burp-search.md +0 -18
  117. package/skills/security-burpsuite-project-parser/skills/SKILL.md +0 -358
  118. package/skills/security-burpsuite-project-parser/skills/scripts/burp-search.sh +0 -99
  119. package/skills/security-claude-in-chrome-troubleshooting/.claude-plugin/plugin.json +0 -8
  120. package/skills/security-claude-in-chrome-troubleshooting/README.md +0 -31
  121. package/skills/security-claude-in-chrome-troubleshooting/skills/claude-in-chrome-troubleshooting/SKILL.md +0 -251
  122. package/skills/security-constant-time-analysis/.claude-plugin/plugin.json +0 -9
  123. package/skills/security-constant-time-analysis/README.md +0 -381
  124. package/skills/security-constant-time-analysis/commands/ct-check.md +0 -20
  125. package/skills/security-constant-time-analysis/ct_analyzer/__init__.py +0 -49
  126. package/skills/security-constant-time-analysis/ct_analyzer/analyzer.py +0 -1284
  127. package/skills/security-constant-time-analysis/ct_analyzer/script_analyzers.py +0 -3081
  128. package/skills/security-constant-time-analysis/ct_analyzer/tests/__init__.py +0 -1
  129. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_analyzer.py +0 -1397
  130. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/bn_excerpt.js +0 -205
  131. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_constant_time.c +0 -181
  132. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_vulnerable.c +0 -74
  133. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_vulnerable.go +0 -78
  134. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_vulnerable.rs +0 -92
  135. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.cs +0 -174
  136. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.java +0 -161
  137. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.kt +0 -181
  138. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.php +0 -140
  139. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.py +0 -252
  140. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.rb +0 -188
  141. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.swift +0 -199
  142. package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.ts +0 -154
  143. package/skills/security-constant-time-analysis/pyproject.toml +0 -52
  144. package/skills/security-constant-time-analysis/skills/constant-time-analysis/README.md +0 -90
  145. package/skills/security-constant-time-analysis/skills/constant-time-analysis/SKILL.md +0 -219
  146. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/compiled.md +0 -129
  147. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/javascript.md +0 -136
  148. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/kotlin.md +0 -252
  149. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/php.md +0 -172
  150. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/python.md +0 -179
  151. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/ruby.md +0 -198
  152. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/swift.md +0 -288
  153. package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/vm-compiled.md +0 -354
  154. package/skills/security-constant-time-analysis/uv.lock +0 -8
  155. package/skills/security-culture-index/.claude-plugin/plugin.json +0 -8
  156. package/skills/security-culture-index/README.md +0 -79
  157. package/skills/security-culture-index/skills/interpreting-culture-index/SKILL.md +0 -293
  158. package/skills/security-culture-index/skills/interpreting-culture-index/references/anti-patterns.md +0 -255
  159. package/skills/security-culture-index/skills/interpreting-culture-index/references/conversation-starters.md +0 -408
  160. package/skills/security-culture-index/skills/interpreting-culture-index/references/interview-trait-signals.md +0 -253
  161. package/skills/security-culture-index/skills/interpreting-culture-index/references/motivators.md +0 -158
  162. package/skills/security-culture-index/skills/interpreting-culture-index/references/patterns-archetypes.md +0 -147
  163. package/skills/security-culture-index/skills/interpreting-culture-index/references/primary-traits.md +0 -307
  164. package/skills/security-culture-index/skills/interpreting-culture-index/references/secondary-traits.md +0 -228
  165. package/skills/security-culture-index/skills/interpreting-culture-index/references/team-composition.md +0 -148
  166. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/check_deps.py +0 -108
  167. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/__init__.py +0 -20
  168. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/constants.py +0 -122
  169. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/extract.py +0 -187
  170. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/models.py +0 -16
  171. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/opencv_extractor.py +0 -520
  172. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/extract_pdf.py +0 -237
  173. package/skills/security-culture-index/skills/interpreting-culture-index/scripts/pyproject.toml +0 -18
  174. package/skills/security-culture-index/skills/interpreting-culture-index/templates/burnout-report.md +0 -113
  175. package/skills/security-culture-index/skills/interpreting-culture-index/templates/comparison-report.md +0 -103
  176. package/skills/security-culture-index/skills/interpreting-culture-index/templates/hiring-profile.md +0 -127
  177. package/skills/security-culture-index/skills/interpreting-culture-index/templates/individual-report.md +0 -85
  178. package/skills/security-culture-index/skills/interpreting-culture-index/templates/predicted-profile.md +0 -165
  179. package/skills/security-culture-index/skills/interpreting-culture-index/templates/team-report.md +0 -109
  180. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/analyze-team.md +0 -188
  181. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/coach-manager.md +0 -267
  182. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/compare-profiles.md +0 -188
  183. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/define-hiring-profile.md +0 -220
  184. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/detect-burnout.md +0 -206
  185. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/extract-from-pdf.md +0 -121
  186. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/interpret-individual.md +0 -183
  187. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/interview-debrief.md +0 -234
  188. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/mediate-conflict.md +0 -306
  189. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/plan-onboarding.md +0 -322
  190. package/skills/security-culture-index/skills/interpreting-culture-index/workflows/predict-from-interview.md +0 -250
  191. package/skills/security-differential-review/.claude-plugin/plugin.json +0 -10
  192. package/skills/security-differential-review/README.md +0 -109
  193. package/skills/security-differential-review/commands/diff-review.md +0 -21
  194. package/skills/security-differential-review/skills/differential-review/SKILL.md +0 -220
  195. package/skills/security-differential-review/skills/differential-review/adversarial.md +0 -203
  196. package/skills/security-differential-review/skills/differential-review/methodology.md +0 -234
  197. package/skills/security-differential-review/skills/differential-review/patterns.md +0 -300
  198. package/skills/security-differential-review/skills/differential-review/reporting.md +0 -369
  199. package/skills/security-dwarf-expert/.claude-plugin/plugin.json +0 -10
  200. package/skills/security-dwarf-expert/README.md +0 -38
  201. package/skills/security-dwarf-expert/skills/dwarf-expert/SKILL.md +0 -93
  202. package/skills/security-dwarf-expert/skills/dwarf-expert/reference/coding.md +0 -31
  203. package/skills/security-dwarf-expert/skills/dwarf-expert/reference/dwarfdump.md +0 -50
  204. package/skills/security-dwarf-expert/skills/dwarf-expert/reference/readelf.md +0 -8
  205. package/skills/security-entry-point-analyzer/.claude-plugin/plugin.json +0 -10
  206. package/skills/security-entry-point-analyzer/README.md +0 -74
  207. package/skills/security-entry-point-analyzer/commands/entry-points.md +0 -18
  208. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/SKILL.md +0 -251
  209. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/cosmwasm.md +0 -182
  210. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/move-aptos.md +0 -107
  211. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/move-sui.md +0 -87
  212. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/solana.md +0 -155
  213. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/solidity.md +0 -135
  214. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/ton.md +0 -185
  215. package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/vyper.md +0 -141
  216. package/skills/security-firebase-apk-scanner/.claude-plugin/plugin.json +0 -10
  217. package/skills/security-firebase-apk-scanner/README.md +0 -85
  218. package/skills/security-firebase-apk-scanner/commands/scan-apk.md +0 -18
  219. package/skills/security-firebase-apk-scanner/scanner.sh +0 -1408
  220. package/skills/security-firebase-apk-scanner/skills/firebase-apk-scanner/SKILL.md +0 -197
  221. package/skills/security-firebase-apk-scanner/skills/firebase-apk-scanner/references/vulnerabilities.md +0 -803
  222. package/skills/security-fix-review/.claude-plugin/plugin.json +0 -13
  223. package/skills/security-fix-review/README.md +0 -118
  224. package/skills/security-fix-review/commands/fix-review.md +0 -24
  225. package/skills/security-fix-review/skills/fix-review/SKILL.md +0 -264
  226. package/skills/security-fix-review/skills/fix-review/references/bug-detection.md +0 -408
  227. package/skills/security-fix-review/skills/fix-review/references/finding-matching.md +0 -298
  228. package/skills/security-fix-review/skills/fix-review/references/report-parsing.md +0 -398
  229. package/skills/security-insecure-defaults/.claude-plugin/plugin.json +0 -10
  230. package/skills/security-insecure-defaults/README.md +0 -45
  231. package/skills/security-insecure-defaults/skills/insecure-defaults/SKILL.md +0 -117
  232. package/skills/security-insecure-defaults/skills/insecure-defaults/references/examples.md +0 -409
  233. package/skills/security-modern-python/.claude-plugin/plugin.json +0 -10
  234. package/skills/security-modern-python/README.md +0 -58
  235. package/skills/security-modern-python/hooks/hooks.json +0 -16
  236. package/skills/security-modern-python/hooks/intercept-legacy-python.bats +0 -388
  237. package/skills/security-modern-python/hooks/intercept-legacy-python.sh +0 -109
  238. package/skills/security-modern-python/hooks/test_helper.bash +0 -75
  239. package/skills/security-modern-python/skills/modern-python/SKILL.md +0 -333
  240. package/skills/security-modern-python/skills/modern-python/references/dependabot.md +0 -43
  241. package/skills/security-modern-python/skills/modern-python/references/migration-checklist.md +0 -141
  242. package/skills/security-modern-python/skills/modern-python/references/pep723-scripts.md +0 -259
  243. package/skills/security-modern-python/skills/modern-python/references/prek.md +0 -211
  244. package/skills/security-modern-python/skills/modern-python/references/pyproject.md +0 -254
  245. package/skills/security-modern-python/skills/modern-python/references/ruff-config.md +0 -240
  246. package/skills/security-modern-python/skills/modern-python/references/security-setup.md +0 -255
  247. package/skills/security-modern-python/skills/modern-python/references/testing.md +0 -284
  248. package/skills/security-modern-python/skills/modern-python/references/uv-commands.md +0 -200
  249. package/skills/security-modern-python/skills/modern-python/templates/dependabot.yml +0 -36
  250. package/skills/security-modern-python/skills/modern-python/templates/pre-commit-config.yaml +0 -66
  251. package/skills/security-property-based-testing/.claude-plugin/plugin.json +0 -9
  252. package/skills/security-property-based-testing/README.md +0 -47
  253. package/skills/security-property-based-testing/skills/property-based-testing/README.md +0 -88
  254. package/skills/security-property-based-testing/skills/property-based-testing/SKILL.md +0 -109
  255. package/skills/security-property-based-testing/skills/property-based-testing/references/design.md +0 -191
  256. package/skills/security-property-based-testing/skills/property-based-testing/references/generating.md +0 -200
  257. package/skills/security-property-based-testing/skills/property-based-testing/references/libraries.md +0 -130
  258. package/skills/security-property-based-testing/skills/property-based-testing/references/refactoring.md +0 -181
  259. package/skills/security-property-based-testing/skills/property-based-testing/references/reviewing.md +0 -209
  260. package/skills/security-property-based-testing/skills/property-based-testing/references/strategies.md +0 -124
  261. package/skills/semgrep-rule-creator/.claude-plugin/plugin.json +0 -8
  262. package/skills/semgrep-rule-creator/README.md +0 -43
  263. package/skills/semgrep-rule-creator/commands/semgrep-rule.md +0 -26
  264. package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/SKILL.md +0 -168
  265. package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/references/quick-reference.md +0 -203
  266. package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/references/workflow.md +0 -240
  267. package/skills/semgrep-rule-variant-creator/.claude-plugin/plugin.json +0 -9
  268. package/skills/semgrep-rule-variant-creator/README.md +0 -86
  269. package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/SKILL.md +0 -205
  270. package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/references/applicability-analysis.md +0 -250
  271. package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/references/language-syntax-guide.md +0 -324
  272. package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/references/workflow.md +0 -518
  273. package/skills/session-logs/SKILL.md +0 -115
  274. package/skills/sharp-edges/.claude-plugin/plugin.json +0 -10
  275. package/skills/sharp-edges/README.md +0 -48
  276. package/skills/sharp-edges/SKILL.md +0 -292
  277. package/skills/sharp-edges/skills/sharp-edges/SKILL.md +0 -292
  278. package/skills/sharp-edges/skills/sharp-edges/references/auth-patterns.md +0 -252
  279. package/skills/sharp-edges/skills/sharp-edges/references/case-studies.md +0 -274
  280. package/skills/sharp-edges/skills/sharp-edges/references/config-patterns.md +0 -333
  281. package/skills/sharp-edges/skills/sharp-edges/references/crypto-apis.md +0 -190
  282. package/skills/sharp-edges/skills/sharp-edges/references/lang-c.md +0 -205
  283. package/skills/sharp-edges/skills/sharp-edges/references/lang-csharp.md +0 -285
  284. package/skills/sharp-edges/skills/sharp-edges/references/lang-go.md +0 -270
  285. package/skills/sharp-edges/skills/sharp-edges/references/lang-java.md +0 -263
  286. package/skills/sharp-edges/skills/sharp-edges/references/lang-javascript.md +0 -269
  287. package/skills/sharp-edges/skills/sharp-edges/references/lang-kotlin.md +0 -265
  288. package/skills/sharp-edges/skills/sharp-edges/references/lang-php.md +0 -245
  289. package/skills/sharp-edges/skills/sharp-edges/references/lang-python.md +0 -274
  290. package/skills/sharp-edges/skills/sharp-edges/references/lang-ruby.md +0 -273
  291. package/skills/sharp-edges/skills/sharp-edges/references/lang-rust.md +0 -272
  292. package/skills/sharp-edges/skills/sharp-edges/references/lang-swift.md +0 -287
  293. package/skills/sharp-edges/skills/sharp-edges/references/language-specific.md +0 -588
  294. package/skills/sherpa-onnx-tts/SKILL.md +0 -103
  295. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
  296. package/skills/songsee/SKILL.md +0 -49
  297. package/skills/sonoscli/SKILL.md +0 -46
  298. package/skills/spec-to-code-compliance/.claude-plugin/plugin.json +0 -10
  299. package/skills/spec-to-code-compliance/README.md +0 -67
  300. package/skills/spec-to-code-compliance/SKILL.md +0 -349
  301. package/skills/spec-to-code-compliance/commands/spec-compliance.md +0 -22
  302. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/SKILL.md +0 -349
  303. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/COMPLETENESS_CHECKLIST.md +0 -69
  304. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/IR_EXAMPLES.md +0 -417
  305. package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/OUTPUT_REQUIREMENTS.md +0 -105
  306. package/skills/static-analysis/.claude-plugin/plugin.json +0 -8
  307. package/skills/static-analysis/README.md +0 -59
  308. package/skills/static-analysis/SKILL.md +0 -91
  309. package/skills/static-analysis/skills/codeql/SKILL.md +0 -315
  310. package/skills/static-analysis/skills/sarif-parsing/SKILL.md +0 -479
  311. package/skills/static-analysis/skills/sarif-parsing/resources/jq-queries.md +0 -162
  312. package/skills/static-analysis/skills/sarif-parsing/resources/sarif_helpers.py +0 -331
  313. package/skills/static-analysis/skills/semgrep/SKILL.md +0 -337
  314. package/skills/summarize/SKILL.md +0 -87
  315. package/skills/testing-handbook-skills/.claude-plugin/plugin.json +0 -8
  316. package/skills/testing-handbook-skills/README.md +0 -241
  317. package/skills/testing-handbook-skills/SKILL.md +0 -104
  318. package/skills/testing-handbook-skills/scripts/pyproject.toml +0 -8
  319. package/skills/testing-handbook-skills/scripts/validate-skills.py +0 -657
  320. package/skills/testing-handbook-skills/skills/address-sanitizer/SKILL.md +0 -341
  321. package/skills/testing-handbook-skills/skills/aflpp/SKILL.md +0 -640
  322. package/skills/testing-handbook-skills/skills/atheris/SKILL.md +0 -522
  323. package/skills/testing-handbook-skills/skills/cargo-fuzz/SKILL.md +0 -460
  324. package/skills/testing-handbook-skills/skills/codeql/SKILL.md +0 -552
  325. package/skills/testing-handbook-skills/skills/constant-time-testing/SKILL.md +0 -512
  326. package/skills/testing-handbook-skills/skills/coverage-analysis/SKILL.md +0 -612
  327. package/skills/testing-handbook-skills/skills/fuzzing-dictionary/SKILL.md +0 -303
  328. package/skills/testing-handbook-skills/skills/fuzzing-obstacles/SKILL.md +0 -433
  329. package/skills/testing-handbook-skills/skills/harness-writing/SKILL.md +0 -621
  330. package/skills/testing-handbook-skills/skills/libafl/SKILL.md +0 -632
  331. package/skills/testing-handbook-skills/skills/libfuzzer/SKILL.md +0 -795
  332. package/skills/testing-handbook-skills/skills/ossfuzz/SKILL.md +0 -434
  333. package/skills/testing-handbook-skills/skills/ruzzy/SKILL.md +0 -443
  334. package/skills/testing-handbook-skills/skills/semgrep/SKILL.md +0 -605
  335. package/skills/testing-handbook-skills/skills/testing-handbook-generator/SKILL.md +0 -372
  336. package/skills/testing-handbook-skills/skills/testing-handbook-generator/agent-prompt.md +0 -280
  337. package/skills/testing-handbook-skills/skills/testing-handbook-generator/discovery.md +0 -452
  338. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/domain-skill.md +0 -504
  339. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/fuzzer-skill.md +0 -454
  340. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/technique-skill.md +0 -527
  341. package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/tool-skill.md +0 -366
  342. package/skills/testing-handbook-skills/skills/testing-handbook-generator/testing.md +0 -482
  343. package/skills/testing-handbook-skills/skills/wycheproof/SKILL.md +0 -539
  344. package/skills/variant-analysis/.claude-plugin/plugin.json +0 -8
  345. package/skills/variant-analysis/README.md +0 -41
  346. package/skills/variant-analysis/commands/variants.md +0 -23
  347. package/skills/variant-analysis/skills/variant-analysis/METHODOLOGY.md +0 -327
  348. package/skills/variant-analysis/skills/variant-analysis/SKILL.md +0 -142
  349. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/cpp.ql +0 -119
  350. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/go.ql +0 -69
  351. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/java.ql +0 -71
  352. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/javascript.ql +0 -63
  353. package/skills/variant-analysis/skills/variant-analysis/resources/codeql/python.ql +0 -80
  354. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/cpp.yaml +0 -98
  355. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/go.yaml +0 -63
  356. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/java.yaml +0 -61
  357. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/javascript.yaml +0 -60
  358. package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/python.yaml +0 -72
  359. package/skills/variant-analysis/skills/variant-analysis/resources/variant-report-template.md +0 -75
  360. package/skills/video-frames/SKILL.md +0 -46
  361. package/skills/video-frames/scripts/frame.sh +0 -81
  362. package/skills/voice-call/SKILL.md +0 -45
  363. package/skills/yara-authoring/.claude-plugin/plugin.json +0 -9
  364. package/skills/yara-authoring/README.md +0 -131
  365. package/skills/yara-authoring/skills/yara-rule-authoring/SKILL.md +0 -645
  366. package/skills/yara-authoring/skills/yara-rule-authoring/examples/MAL_Mac_ProtonRAT_Jan25.yar +0 -99
  367. package/skills/yara-authoring/skills/yara-rule-authoring/examples/MAL_NPM_SupplyChain_Jan25.yar +0 -170
  368. package/skills/yara-authoring/skills/yara-rule-authoring/examples/MAL_Win_Remcos_Jan25.yar +0 -103
  369. package/skills/yara-authoring/skills/yara-rule-authoring/examples/SUSP_CRX_SuspiciousPermissions.yar +0 -134
  370. package/skills/yara-authoring/skills/yara-rule-authoring/examples/SUSP_JS_Obfuscation_Jan25.yar +0 -185
  371. package/skills/yara-authoring/skills/yara-rule-authoring/references/crx-module.md +0 -214
  372. package/skills/yara-authoring/skills/yara-rule-authoring/references/dex-module.md +0 -383
  373. package/skills/yara-authoring/skills/yara-rule-authoring/references/performance.md +0 -333
  374. package/skills/yara-authoring/skills/yara-rule-authoring/references/strings.md +0 -433
  375. package/skills/yara-authoring/skills/yara-rule-authoring/references/style-guide.md +0 -257
  376. package/skills/yara-authoring/skills/yara-rule-authoring/references/testing.md +0 -399
  377. package/skills/yara-authoring/skills/yara-rule-authoring/scripts/atom_analyzer.py +0 -526
  378. package/skills/yara-authoring/skills/yara-rule-authoring/scripts/pyproject.toml +0 -25
  379. package/skills/yara-authoring/skills/yara-rule-authoring/scripts/yara_lint.py +0 -631
  380. package/skills/yara-authoring/skills/yara-rule-authoring/workflows/rule-development.md +0 -493
package/README.md CHANGED
@@ -62,6 +62,10 @@ const commands = buildSkillCommandSpecs(entries);
62
62
  // Returns array of command specs for chat interfaces
63
63
  ```
64
64
 
65
+ ## Bundled documentation skills
66
+
67
+ Alongside community-oriented skills, this package ships **`elizaos`**, **`eliza-cloud`**, and **`eliza-app-development`** — concise references for elizaOS runtime concepts, Eliza Cloud as a backend, and building elizaOS-based applications (including the Eliza app repository layout).
68
+
65
69
  ## Skill Discovery
66
70
 
67
71
  Skills are loaded from multiple locations in precedence order (later overrides earlier):
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAiBtE;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CA8B7D;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAMzE;AAyDD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,UAAU,EAAE,EACrB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,gBAAgB,EAAE,CAgEpB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAExD"}
1
+ {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../src/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAiBtE;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CA8B7D;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAMzE;AA0DD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,UAAU,EAAE,EACrB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,gBAAgB,EAAE,CAgEpB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAExD"}
package/dist/formatter.js CHANGED
@@ -73,7 +73,8 @@ const SKILL_COMMAND_DESCRIPTION_MAX_LENGTH = 100;
73
73
  * @returns Sanitized command name
74
74
  */
75
75
  function sanitizeSkillCommandName(raw) {
76
- const normalized = raw
76
+ const clamped = raw.length > 1024 ? raw.slice(0, 1024) : raw;
77
+ const normalized = clamped
77
78
  .toLowerCase()
78
79
  .replace(/[^a-z0-9_]+/g, "_")
79
80
  .replace(/_+/g, "_")
@@ -1,4 +1,4 @@
1
- import type { SkillFrontmatter, SkillInvocationPolicy, SkillMetadata } from "./types.js";
1
+ import type { SkillFrontmatter, SkillInvocationPolicy, SkillMetadata, SkillProvenance } from "./types.js";
2
2
  /**
3
3
  * Result of parsing frontmatter from a file
4
4
  */
@@ -36,4 +36,16 @@ export declare function resolveSkillMetadata(frontmatter: SkillFrontmatter): Ski
36
36
  * @returns Invocation policy
37
37
  */
38
38
  export declare function resolveSkillInvocationPolicy(frontmatter: SkillFrontmatter): SkillInvocationPolicy;
39
+ /**
40
+ * Best-effort provenance parsing from a frontmatter block. Returns `undefined`
41
+ * when the block is missing or malformed (we do not fail loading on bad
42
+ * provenance — it is informational metadata).
43
+ */
44
+ export declare function resolveSkillProvenance(frontmatter: SkillFrontmatter): SkillProvenance | undefined;
45
+ /**
46
+ * Serialize a SKILL.md file with updated frontmatter, preserving body content.
47
+ * Used by the closed learning loop to rewrite provenance after refinement and
48
+ * scoring.
49
+ */
50
+ export declare function serializeSkillFile(frontmatter: SkillFrontmatter, body: string): string;
39
51
  //# sourceMappingURL=frontmatter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,gCAAgC;IAChC,WAAW,EAAE,CAAC,CAAC;IACf,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;CACd;AAkCD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAOvC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,gBAAgB,GAC5B,aAAa,CAmCf;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,gBAAgB,GAC5B,qBAAqB,CAmBvB"}
1
+ {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,gCAAgC;IAChC,WAAW,EAAE,CAAC,CAAC;IACf,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;CACd;AAkCD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAOvC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,gBAAgB,GAC5B,aAAa,CAmCf;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,gBAAgB,GAC5B,qBAAqB,CAmBvB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,gBAAgB,GAC5B,eAAe,GAAG,SAAS,CAwC7B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,gBAAgB,EAC7B,IAAI,EAAE,MAAM,GACX,MAAM,CAIR"}
@@ -1,4 +1,4 @@
1
- import { parse } from "yaml";
1
+ import { parse, stringify } from "yaml";
2
2
  /**
3
3
  * Normalize line endings to Unix-style LF
4
4
  */
@@ -103,3 +103,53 @@ export function resolveSkillInvocationPolicy(frontmatter) {
103
103
  }
104
104
  return policy;
105
105
  }
106
+ /**
107
+ * Best-effort provenance parsing from a frontmatter block. Returns `undefined`
108
+ * when the block is missing or malformed (we do not fail loading on bad
109
+ * provenance — it is informational metadata).
110
+ */
111
+ export function resolveSkillProvenance(frontmatter) {
112
+ const raw = frontmatter.provenance;
113
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
114
+ return undefined;
115
+ }
116
+ const record = raw;
117
+ const source = record.source;
118
+ if (source !== "human" &&
119
+ source !== "agent-generated" &&
120
+ source !== "agent-refined") {
121
+ return undefined;
122
+ }
123
+ const createdAt = typeof record.createdAt === "string" ? record.createdAt : undefined;
124
+ if (!createdAt) {
125
+ return undefined;
126
+ }
127
+ const refinedCountRaw = record.refinedCount;
128
+ const refinedCount = typeof refinedCountRaw === "number" && Number.isFinite(refinedCountRaw)
129
+ ? Math.max(0, Math.floor(refinedCountRaw))
130
+ : 0;
131
+ const provenance = {
132
+ source,
133
+ createdAt,
134
+ refinedCount,
135
+ };
136
+ if (typeof record.derivedFromTrajectory === "string") {
137
+ provenance.derivedFromTrajectory = record.derivedFromTrajectory;
138
+ }
139
+ if (typeof record.lastEvalScore === "number" &&
140
+ Number.isFinite(record.lastEvalScore)) {
141
+ const score = record.lastEvalScore;
142
+ provenance.lastEvalScore = Math.max(0, Math.min(1, score));
143
+ }
144
+ return provenance;
145
+ }
146
+ /**
147
+ * Serialize a SKILL.md file with updated frontmatter, preserving body content.
148
+ * Used by the closed learning loop to rewrite provenance after refinement and
149
+ * scoring.
150
+ */
151
+ export function serializeSkillFile(frontmatter, body) {
152
+ const yaml = stringify(frontmatter).trimEnd();
153
+ const trimmedBody = body.replace(/^\n+/, "");
154
+ return `---\n${yaml}\n---\n\n${trimmedBody}`;
155
+ }
package/dist/index.d.ts CHANGED
@@ -22,8 +22,8 @@
22
22
  * ```
23
23
  */
24
24
  export { buildSkillCommandSpecs, formatSkillEntriesForPrompt, formatSkillSummary, formatSkillsForPrompt, formatSkillsList, } from "./formatter.js";
25
- export { type ParsedFrontmatter, parseFrontmatter, resolveSkillInvocationPolicy, resolveSkillMetadata, stripFrontmatter, } from "./frontmatter.js";
25
+ export { type ParsedFrontmatter, parseFrontmatter, resolveSkillInvocationPolicy, resolveSkillMetadata, resolveSkillProvenance, serializeSkillFile, stripFrontmatter, } from "./frontmatter.js";
26
26
  export { loadSkillEntries, loadSkills, loadSkillsFromDir } from "./loader.js";
27
- export { clearSkillsDirCache, getSkillsDir } from "./resolver.js";
28
- export type { LoadSkillsFromDirOptions, LoadSkillsOptions, LoadSkillsResult, Skill, SkillActionDefinition, SkillCommandSpec, SkillDiagnostic, SkillEntry, SkillFrontmatter, SkillInvocationPolicy, SkillMetadata, SkillProviderDefinition, SkillToolDefinition, } from "./types.js";
27
+ export { clearSkillsDirCache, getCuratedActiveDir, getProposedSkillsDir, getSkillsDir, promoteSkill, } from "./resolver.js";
28
+ export type { LoadSkillsFromDirOptions, LoadSkillsOptions, LoadSkillsResult, Skill, SkillActionDefinition, SkillCommandSpec, SkillDiagnostic, SkillEntry, SkillFrontmatter, SkillInvocationPolicy, SkillMetadata, SkillProvenance, SkillProviderDefinition, SkillToolDefinition, } from "./types.js";
29
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,4BAA4B,EAC5B,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9E,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElE,YAAY,EACV,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,EACL,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE9E,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,EACL,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -24,8 +24,8 @@
24
24
  // Prompt formatting
25
25
  export { buildSkillCommandSpecs, formatSkillEntriesForPrompt, formatSkillSummary, formatSkillsForPrompt, formatSkillsList, } from "./formatter.js";
26
26
  // Frontmatter parsing
27
- export { parseFrontmatter, resolveSkillInvocationPolicy, resolveSkillMetadata, stripFrontmatter, } from "./frontmatter.js";
27
+ export { parseFrontmatter, resolveSkillInvocationPolicy, resolveSkillMetadata, resolveSkillProvenance, serializeSkillFile, stripFrontmatter, } from "./frontmatter.js";
28
28
  // Skill loading
29
29
  export { loadSkillEntries, loadSkills, loadSkillsFromDir } from "./loader.js";
30
30
  // Path resolution
31
- export { clearSkillsDirCache, getSkillsDir } from "./resolver.js";
31
+ export { clearSkillsDirCache, getCuratedActiveDir, getProposedSkillsDir, getSkillsDir, promoteSkill, } from "./resolver.js";
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAGhB,UAAU,EAEX,MAAM,YAAY,CAAC;AAkMpB;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,GAChC,gBAAgB,CAGlB;AA8CD;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CA0H5E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,GAAE,iBAAsB,GAC9B,UAAU,EAAE,CAuBd"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAGhB,UAAU,EAEX,MAAM,YAAY,CAAC;AAqMpB;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,GAChC,gBAAgB,CAGlB;AA8CD;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CAiI5E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,GAAE,iBAAsB,GAC9B,UAAU,EAAE,CAuBd"}
package/dist/loader.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { existsSync, readdirSync, readFileSync, realpathSync, statSync, } from "node:fs";
2
2
  import { homedir } from "node:os";
3
3
  import { basename, dirname, isAbsolute, join, resolve, sep } from "node:path";
4
- import { parseFrontmatter, resolveSkillInvocationPolicy, resolveSkillMetadata, } from "./frontmatter.js";
5
- import { getSkillsDir } from "./resolver.js";
4
+ import { parseFrontmatter, resolveSkillInvocationPolicy, resolveSkillMetadata, resolveSkillProvenance, } from "./frontmatter.js";
5
+ import { getCuratedActiveDir, getSkillsDir } from "./resolver.js";
6
6
  /** Maximum skill name length per Agent Skills spec */
7
7
  const MAX_NAME_LENGTH = 64;
8
8
  /** Maximum description length per Agent Skills spec */
@@ -83,6 +83,7 @@ function loadSkillFromFile(filePath, source) {
83
83
  if (!frontmatter.description || frontmatter.description.trim() === "") {
84
84
  return { skill: null, diagnostics };
85
85
  }
86
+ const provenance = resolveSkillProvenance(frontmatter);
86
87
  return {
87
88
  skill: {
88
89
  name,
@@ -91,6 +92,7 @@ function loadSkillFromFile(filePath, source) {
91
92
  baseDir: skillDir,
92
93
  source,
93
94
  disableModelInvocation: frontmatter["disable-model-invocation"] === true,
95
+ ...(provenance ? { provenance } : {}),
94
96
  },
95
97
  diagnostics,
96
98
  };
@@ -276,11 +278,16 @@ export function loadSkills(options = {}) {
276
278
  }
277
279
  }
278
280
  if (includeDefaults) {
279
- // Load in precedence order: bundled < managed < project
281
+ // Load in precedence order: bundled < managed < curated < project.
282
+ // The curated namespace holds agent-derived skills that were promoted to
283
+ // "active" by the closed learning loop or the user. Skills under the
284
+ // sibling "proposed" directory are intentionally NOT scanned here — they
285
+ // are pending human review and only surfaced via the curated-skills API.
280
286
  if (resolvedBundledDir) {
281
287
  addSkills(loadSkillsFromDirInternal(resolvedBundledDir, "bundled", true));
282
288
  }
283
289
  addSkills(loadSkillsFromDirInternal(resolvedManagedDir, "managed", true));
290
+ addSkills(loadSkillsFromDirInternal(getCuratedActiveDir(), "curated", true));
284
291
  addSkills(loadSkillsFromDirInternal(projectSkillsDir, "project", true));
285
292
  }
286
293
  // Determine source for explicit paths
@@ -15,4 +15,21 @@ export declare function getSkillsDir(): string;
15
15
  * Useful for testing or when the directory may have changed.
16
16
  */
17
17
  export declare function clearSkillsDirCache(): void;
18
+ /**
19
+ * Absolute path to the curated **active** skills directory. Skills here are
20
+ * loaded into the runtime alongside bundled and managed skills.
21
+ */
22
+ export declare function getCuratedActiveDir(): string;
23
+ /**
24
+ * Absolute path to the curated **proposed** skills directory. Skills here are
25
+ * NEVER loaded into the runtime — they are staged for human review via the
26
+ * Settings → Learned Skills UI.
27
+ */
28
+ export declare function getProposedSkillsDir(): string;
29
+ /**
30
+ * Promote a proposed skill to active by moving its directory atomically.
31
+ * Returns the destination path. Throws if the source does not exist or the
32
+ * destination already exists.
33
+ */
34
+ export declare function promoteSkill(name: string): string;
18
35
  //# sourceMappingURL=resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAwCA;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,IAAI,MAAM,CA6CrC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AA+CA;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,IAAI,MAAM,CA6CrC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAgBD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoBjD"}
package/dist/resolver.js CHANGED
@@ -1,6 +1,7 @@
1
- import { existsSync, readdirSync } from "node:fs";
1
+ import { existsSync, mkdirSync, readdirSync, renameSync, statSync, } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
+ import { resolveStateDir } from "@elizaos/core";
4
5
  /**
5
6
  * Cached skills directory path
6
7
  */
@@ -88,3 +89,55 @@ export function getSkillsDir() {
88
89
  export function clearSkillsDirCache() {
89
90
  cachedSkillsDir = undefined;
90
91
  }
92
+ /**
93
+ * Default base directory for the curated learning loop. Lives alongside the
94
+ * Eliza state dir (`~/.eliza/`) and holds two sibling namespaces:
95
+ *
96
+ * curated/active/ — auto-promoted or human-promoted skills (loaded)
97
+ * curated/proposed/ — staged drafts awaiting human review (NOT loaded)
98
+ *
99
+ * Honors `ELIZA_STATE_DIR` and `ELIZA_STATE_DIR` (in that order); falls back
100
+ * to `~/.eliza`.
101
+ */
102
+ function resolveCuratedBaseDir() {
103
+ return join(resolveStateDir(), "skills", "curated");
104
+ }
105
+ /**
106
+ * Absolute path to the curated **active** skills directory. Skills here are
107
+ * loaded into the runtime alongside bundled and managed skills.
108
+ */
109
+ export function getCuratedActiveDir() {
110
+ return join(resolveCuratedBaseDir(), "active");
111
+ }
112
+ /**
113
+ * Absolute path to the curated **proposed** skills directory. Skills here are
114
+ * NEVER loaded into the runtime — they are staged for human review via the
115
+ * Settings → Learned Skills UI.
116
+ */
117
+ export function getProposedSkillsDir() {
118
+ return join(resolveCuratedBaseDir(), "proposed");
119
+ }
120
+ /**
121
+ * Promote a proposed skill to active by moving its directory atomically.
122
+ * Returns the destination path. Throws if the source does not exist or the
123
+ * destination already exists.
124
+ */
125
+ export function promoteSkill(name) {
126
+ if (!/^[a-z0-9-]+$/.test(name)) {
127
+ throw new Error(`Invalid skill name "${name}" — must be lowercase a-z, 0-9, hyphens only`);
128
+ }
129
+ const proposedDir = join(getProposedSkillsDir(), name);
130
+ if (!existsSync(proposedDir) || !statSync(proposedDir).isDirectory()) {
131
+ throw new Error(`Proposed skill "${name}" not found at ${proposedDir}`);
132
+ }
133
+ const activeRoot = getCuratedActiveDir();
134
+ if (!existsSync(activeRoot)) {
135
+ mkdirSync(activeRoot, { recursive: true });
136
+ }
137
+ const activeDir = join(activeRoot, name);
138
+ if (existsSync(activeDir)) {
139
+ throw new Error(`Active skill "${name}" already exists at ${activeDir}`);
140
+ }
141
+ renameSync(proposedDir, activeDir);
142
+ return activeDir;
143
+ }
package/dist/types.d.ts CHANGED
@@ -1,3 +1,32 @@
1
+ /**
2
+ * Provenance of a skill — distinguishes human-authored from agent-derived
3
+ * skills, and tracks self-improvement signal across the closed learning loop.
4
+ */
5
+ export interface SkillProvenance {
6
+ /** Whether the skill was authored by a human or derived by the agent. */
7
+ source: "human" | "agent-generated" | "agent-refined";
8
+ /** Trajectory that produced or last refined the skill, if any. */
9
+ derivedFromTrajectory?: string;
10
+ /** ISO8601 timestamp when this provenance entry was recorded. */
11
+ createdAt: string;
12
+ /** Number of times the agent has automatically refined this skill. */
13
+ refinedCount: number;
14
+ /** Most recent eval score from the scoring cron, in [0, 1]. */
15
+ lastEvalScore?: number;
16
+ /**
17
+ * Audit trail for native-optimizer-driven skill refinements.
18
+ *
19
+ * Populated by the gradient-mode branch of `skillRefinementEvaluator` —
20
+ * after the LLM-diff auto-budget is exhausted, the evaluator switches to
21
+ * the native `prompt-evolution` optimizer and appends one entry per run.
22
+ */
23
+ optimizationLineage?: Array<{
24
+ optimizer: "instruction-search" | "prompt-evolution" | "bootstrap-fewshot";
25
+ score: number;
26
+ datasetSize: number;
27
+ generatedAt: string;
28
+ }>;
29
+ }
1
30
  /**
2
31
  * Skill frontmatter parsed from SKILL.md YAML header
3
32
  */
@@ -28,6 +57,8 @@ export interface SkillFrontmatter {
28
57
  "command-arg-mode"?: string;
29
58
  /** Whether skill can be invoked by users via commands */
30
59
  "user-invocable"?: boolean;
60
+ /** Provenance metadata — present on agent-derived/curated skills. */
61
+ provenance?: SkillProvenance;
31
62
  /** Additional arbitrary metadata */
32
63
  [key: string]: unknown;
33
64
  }
@@ -46,10 +77,16 @@ export interface Skill {
46
77
  filePath?: string;
47
78
  /** Absolute path to the skill's base directory (optional for inline skills) */
48
79
  baseDir?: string;
49
- /** Source identifier (e.g., "bundled", "workspace", "managed", "inline") */
80
+ /** Source identifier (e.g., "bundled", "workspace", "managed", "inline", "curated") */
50
81
  source?: string;
51
82
  /** If true, skill won't be included in model prompts */
52
83
  disableModelInvocation?: boolean;
84
+ /**
85
+ * Provenance metadata when the skill was derived from a trajectory or
86
+ * user-authored as a "curated" skill. Optional for backward compatibility:
87
+ * existing on-disk skills with no provenance block are treated as `human`.
88
+ */
89
+ provenance?: SkillProvenance;
53
90
  /** Unique slug identifier for the skill */
54
91
  slug?: string;
55
92
  /** Skill version */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4BAA4B;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oCAAoC;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,KAAK;IACpB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAGjC,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iCAAiC;IACjC,OAAO,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAClC,mCAAmC;IACnC,SAAS,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACtC,mCAAmC;IACnC,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;IACxC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,SAAS,CAAC,EAAE;QACV,YAAY,EAAE,OAAO,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,uCAAuC;IACvC,WAAW,EAAE,eAAe,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,wDAAwD;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uBAAuB;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,6BAA6B;IAC7B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,sCAAsC;IACtC,QAAQ,EAAE,aAAa,CAAC;IACxB,wBAAwB;IACxB,UAAU,EAAE,qBAAqB,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,wBAAwB;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,0DAA0D;IAC1D,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC;KAChB,CAAC;CACH"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,55 +1,59 @@
1
1
  {
2
- "name": "@elizaos/skills",
3
- "version": "2.0.0-alpha.53",
4
- "description": "Bundled skills and skill loading utilities for elizaOS agents",
5
- "type": "module",
6
- "main": "dist/index.js",
7
- "types": "dist/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js"
12
- },
13
- "./skills": "./skills/",
14
- "./package.json": "./package.json"
15
- },
16
- "scripts": {
17
- "clean": "rm -rf dist",
18
- "build": "tsc -p tsconfig.build.json",
19
- "dev": "tsgo -p tsconfig.build.json --watch --preserveWatchOutput",
20
- "test": "node --test --import tsx test/*.test.ts",
21
- "prepublishOnly": "npm run clean && npm run build",
22
- "lint": "bunx @biomejs/biome check --write ./src",
23
- "lint:check": "bunx @biomejs/biome check ./src"
24
- },
25
- "files": [
26
- "dist/**/*",
27
- "skills/**/*",
28
- "README.md"
29
- ],
30
- "keywords": [
31
- "elizaos",
32
- "skills",
33
- "agent",
34
- "ai",
35
- "llm",
36
- "automation"
37
- ],
38
- "author": "elizaOS",
39
- "license": "MIT",
40
- "repository": {
41
- "type": "git",
42
- "url": "git+https://github.com/elizaos/eliza.git",
43
- "directory": "packages/skills"
44
- },
45
- "engines": {
46
- "node": ">=22.0.0"
47
- },
48
- "dependencies": {
49
- "yaml": "^2.8.2"
50
- },
51
- "publishConfig": {
52
- "access": "public"
53
- },
54
- "gitHead": "8402160dd2dfee0e3cdbd9dc6fb40408f995b094"
2
+ "name": "@elizaos/skills",
3
+ "version": "2.0.0-alpha.533",
4
+ "description": "Bundled skills and skill loading utilities for elizaOS agents",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./skills": "./skills/",
14
+ "./package.json": "./package.json"
15
+ },
16
+ "scripts": {
17
+ "clean": "rm -rf dist",
18
+ "build": "tsc -p tsconfig.build.json",
19
+ "dev": "tsgo -p tsconfig.build.json --watch --preserveWatchOutput",
20
+ "test": "bun test ./test",
21
+ "prepublishOnly": "bun run clean && bun run build",
22
+ "lint": "bunx @biomejs/biome check --write ./src",
23
+ "lint:check": "bunx @biomejs/biome check ./src"
24
+ },
25
+ "files": [
26
+ "dist/**/*",
27
+ "skills/**/*",
28
+ "README.md"
29
+ ],
30
+ "keywords": [
31
+ "elizaos",
32
+ "skills",
33
+ "agent",
34
+ "ai",
35
+ "llm",
36
+ "automation"
37
+ ],
38
+ "author": "elizaOS",
39
+ "license": "MIT",
40
+ "repository": {
41
+ "type": "git",
42
+ "url": "git+https://github.com/elizaos/eliza.git",
43
+ "directory": "packages/skills"
44
+ },
45
+ "engines": {
46
+ "node": ">=22.0.0"
47
+ },
48
+ "dependencies": {
49
+ "@elizaos/core": "2.0.0-alpha.533",
50
+ "yaml": "^2.8.2"
51
+ },
52
+ "devDependencies": {
53
+ "tsx": "^4.19.2"
54
+ },
55
+ "publishConfig": {
56
+ "access": "public"
57
+ },
58
+ "gitHead": "05dabeb45ed8d069d15ca63082c42c315d1540e7"
55
59
  }
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: build-monetized-app
3
+ description: "Use when the task is building a new app on Eliza Cloud that earns money — chat apps, agent apps, MCP-backed tools, anything that calls the cloud's chat/messages/inference endpoints on behalf of users. Covers app registration, container deploy, markup configuration, affiliate header, and the survival-economics loop where earnings auto-fund the agent's own hosting. Pairs with the `eliza-cloud` skill (which covers Cloud as a backend in general) by focusing specifically on the build-and-monetize flow."
4
+ ---
5
+
6
+ # Build a monetized app on Eliza Cloud
7
+
8
+ Use this skill when you need to build an app that takes a markup on every chat or inference call and credits the earnings back to your owner. Eliza Cloud already supports app registration, per-app API keys, container deploys, the `appId`-based auth and redirect flow, the affiliate-header revenue path, and creator-monetization plumbing — you do not need to invent any of these.
9
+
10
+ Read `references/sdk-flow.md` for the 6-step build flow with a self-contained code example. External references (all public):
11
+
12
+ - **Working chat-app**: [`elizaOS/cloud-mini-apps/apps/edad-chat`](https://github.com/elizaOS/cloud-mini-apps/tree/main/apps/edad-chat) — copyable end-to-end implementation. Read its `server.ts` and `api/proxy.ts` for the canonical chat-forwarder shape using `@elizaos/cloud-sdk`.
13
+ - **SDK reference**: [`@elizaos/cloud-sdk` README](https://github.com/elizaOS/cloud/tree/develop/packages/sdk) — typed methods + helpers + auth.
14
+ - **Human-readable recipe**: [`docs/building-a-monetized-app.md`](https://github.com/elizaOS/cloud/blob/develop/docs/building-a-monetized-app.md) — same loop, narrative form, with the schema fields explained.
15
+
16
+ ## The survival-economics loop
17
+
18
+ A Eliza-style agent running in an Eliza Cloud container costs ~$0.67/day at the default tier (256 MB CPU + 512 MB RAM). When the org's credit balance and the owner's redeemable earnings both hit zero, the container is stopped after a 48-hour grace window. The container-billing cron pulls earnings before credits, so an app that earns more than its hosting costs keeps the agent alive indefinitely. See `references/survival-economics.md` for the exact accounting (`redeemable_earnings_ledger`, `credit_transactions`, the cron at `app/api/cron/container-billing/route.ts`).
19
+
20
+ This is why the skill exists: making money is how the agent stays online.
21
+
22
+ ## Default flow
23
+
24
+ ```ts
25
+ import { ElizaCloudClient } from "@elizaos/cloud-sdk";
26
+
27
+ const cloud = new ElizaCloudClient({ apiKey: process.env.ELIZAOS_CLOUD_API_KEY });
28
+
29
+ // 1. register the app
30
+ const { app, apiKey } = await cloud.routes.postApiV1Apps({
31
+ json: { name, app_url: "https://placeholder.invalid", skipGitHubRepo: true },
32
+ });
33
+
34
+ // 2. build + push container image
35
+ // 3. deploy container
36
+ // 4. set markup %
37
+ // 5. patch app_url + allowed_origins to the container URL
38
+ // 6. report URLs to the human
39
+ ```
40
+
41
+ Full code in `references/sdk-flow.md`. The skill assumes you have:
42
+
43
+ - `ELIZAOS_CLOUD_API_KEY` in env (Eliza packages this for you)
44
+ - `@elizaos/cloud-sdk` available (already a runtime dependency)
45
+ - A goal and a name (make the name up if not given; collisions retry once with a 6-char suffix)
46
+
47
+ ## Auth + monetization headers
48
+
49
+ Every cloud-SDK call your deployed app makes on behalf of a user MUST carry:
50
+
51
+ - `Authorization: Bearer <user_jwt>` — the JWT from the app-auth OAuth redirect
52
+ - `x-affiliate-code: <your_affiliate_code>` — the owner's affiliate code; this is what credits earnings
53
+
54
+ This pattern is shared with the [`eliza-cloud`](../eliza-cloud/SKILL.md) skill; see that skill for the auth flow itself. This skill assumes you've already read it.
55
+
56
+ ## Read these references in order
57
+
58
+ 1. `references/sdk-flow.md` — the 6-step deploy + monetize flow with full code
59
+ 2. `references/survival-economics.md` — why this matters; how earnings flow into hosting
60
+ 3. `references/failure-modes.md` — recovery table for the failures you'll actually hit (name collision, container deploy failure, auth blocker, etc.)
61
+
62
+ ## What this skill is NOT
63
+
64
+ - **It is not the app's product code.** The skill is the deploy + monetize + survive surface. What the app DOES is up to you given the task.
65
+ - **It is not a retry loop.** Each SDK call is idempotent; if step 5 fails, restart from there.
66
+ - **It does not configure affiliate codes.** Affiliate codes belong to the owner, not the app, and live across all of an owner's apps. The skill inherits whatever is configured.
67
+ - **It does not assume always-on billing.** The org may have set `pay_as_you_go_from_earnings = false`, in which case hosting comes purely from credits and earnings stay on the redemption ledger. The skill works either way; the org's owner controls the toggle.
@@ -0,0 +1,69 @@
1
+ # Failure modes and recovery
2
+
3
+ The recovery table for the failures you'll actually encounter when running the SDK flow. Each row is a real failure shape, what causes it, and what you do.
4
+
5
+ ## Registration failures (step 1)
6
+
7
+ | Symptom | Cause | Recovery |
8
+ |---|---|---|
9
+ | `409 name_collision` from `postApiV1Apps` | Another app on the org or globally already uses this name | Append a 6-char random base36 suffix (`Math.random().toString(36).slice(2, 8)`) and retry once. If the retry also collides, surface to the human — that's a naming conflict the agent shouldn't auto-resolve a second time. |
10
+ | `400 invalid_app_url` | The placeholder URL doesn't match the cloud's URL-format check | Use `https://placeholder.invalid` (the canonical placeholder); RFC-2606 reserves `.invalid` so it always parses but never resolves. |
11
+ | `403 quota_exceeded` on app creation | Org has hit its `apps_per_org` limit | Tell the human; they need to retire an old app or upgrade the tier. Do not silently delete an existing app. |
12
+
13
+ ## Image build / push failures (step 2)
14
+
15
+ The agent's job, not the SDK's. Common shapes:
16
+
17
+ | Symptom | Cause | Recovery |
18
+ |---|---|---|
19
+ | `denied: requested access to the resource is denied` on push | Registry credentials missing or wrong scope | Ask the human to fix registry creds; pause until resolved. |
20
+ | `manifest unknown` / `403` from registry | The image tag doesn't exist (build silently failed) | Re-run the build with `--quiet=false` to see the actual error; surface that to the human if it's a Dockerfile issue. |
21
+ | Image pushes fine but container deploy fails health-check | Image's server doesn't bind to `$PORT`, or binds to `127.0.0.1` instead of `0.0.0.0` | Read `cloud.routes.getApiV1ContainersByIdLogs(id)`, find the bind line, fix the Dockerfile or server.ts. |
22
+
23
+ ## Container deploy failures (step 3)
24
+
25
+ | Symptom | Cause | Recovery |
26
+ |---|---|---|
27
+ | `402 insufficient_balance` from `postApiV1Containers` | Org has zero credits AND zero earnings | Tell the human to top up at `/dashboard/billing`. There's no auto-recovery here — an agent that can't pay can't deploy. |
28
+ | Container starts but `status` stays `pending` for >5 min | Image pull is slow (large image) or scheduler is congested | Wait up to 10 min before declaring failure. Past that, pull container logs and surface. |
29
+ | Container hits `crash_loop` immediately | Image runs but exits non-zero on startup | Pull `getApiV1ContainersByIdLogs(id)`, surface the stderr to the human, pause. Common causes: missing env var, server bind issue, missing dependency in the image. |
30
+ | `403 quota_exceeded` on container deploy | Org has hit `containers_per_org` | Tell the human; they need to remove a container or upgrade. |
31
+
32
+ ## Markup configuration (step 4)
33
+
34
+ Generally bulletproof since `inference_markup_percentage` is just a number on the apps table. Rare:
35
+
36
+ | Symptom | Cause | Recovery |
37
+ |---|---|---|
38
+ | `400 markup_out_of_range` | Markup outside the allowed bound (typically 0–50%) | Cap your value at the bound and retry. |
39
+
40
+ ## Patch app_url + origins (step 5)
41
+
42
+ | Symptom | Cause | Recovery |
43
+ |---|---|---|
44
+ | `400 invalid_origin` | Container's `load_balancer_url` is nil because container isn't ready yet | Re-poll `getApiV1ContainersById` until `status === "running"` and `load_balancer_url` is populated, then patch. |
45
+
46
+ ## Custom domain (post-skill, optional)
47
+
48
+ If the human asks for a custom domain after deploy:
49
+
50
+ | Symptom | Cause | Recovery |
51
+ |---|---|---|
52
+ | `verified: false` on the domain after add | DNS hasn't propagated | Tell the human; verification is async and depends on their DNS provider. The skill's job is done after step 6 — domain verification is not part of the skill. |
53
+
54
+ ## Auth flow failures (during user signup)
55
+
56
+ These hit AFTER the skill is complete, when users actually try to sign in to the deployed app. Not the skill's responsibility, but worth knowing:
57
+
58
+ | Symptom | Cause | Recovery |
59
+ |---|---|---|
60
+ | OAuth redirect lands on `404` at `/api/v1/app-auth/connect` | Cloud hasn't deployed the steward-sync path yet | Out of scope for this skill — it's an upstream cloud deploy issue. |
61
+ | User completes OAuth but chat returns `401 invalid_jwt` | The user's JWT shape changed between signup and request | Have the user re-sign-in. If it persists, the issue is upstream. |
62
+
63
+ ## What you don't recover from
64
+
65
+ If the agent can't deploy at all (zero credits AND zero earnings) the loop has bottomed out. There's no programmatic recovery — only the human can top up. Tell them clearly:
66
+
67
+ > "I can't deploy a new app — both org credits and your redeemable earnings are zero. Top up at https://www.elizacloud.ai/dashboard/billing or earn enough on existing apps to cover the next deploy."
68
+
69
+ This is a survival-economics terminal state, not a code bug.