@prismer/runtime 2.2.55 → 2.2.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. package/CHANGELOG.md +574 -0
  2. package/apc/skills/releasing-test/SKILL.md +9 -0
  3. package/built-in-skills/agent-coordination/SKILL.md +21 -4
  4. package/built-in-skills/agent-meta/SKILL.md +11 -0
  5. package/built-in-skills/assets/SKILL.md +1 -1
  6. package/built-in-skills/canvas-design/SKILL.md +3 -3
  7. package/built-in-skills/canvas-design/canvas-fonts/IBMPlexSerif-OFL.txt +93 -0
  8. package/built-in-skills/canvas-design/canvas-fonts/InstrumentSerif-OFL.txt +93 -0
  9. package/built-in-skills/canvas-design/canvas-fonts/LICENSE-SOURCES.md +16 -0
  10. package/built-in-skills/claim-agent-ownership/SKILL.md +7 -3
  11. package/built-in-skills/claude-api/SKILL.md +1 -1
  12. package/built-in-skills/claude-api/python/claude-api/README.md +2 -2
  13. package/built-in-skills/claude-api/python/claude-api/tool-use.md +9 -5
  14. package/built-in-skills/claude-api/python/managed-agents/README.md +11 -1
  15. package/built-in-skills/claude-api/shared/error-codes.md +4 -4
  16. package/built-in-skills/claude-api/shared/managed-agents-client-patterns.md +4 -2
  17. package/built-in-skills/claude-api/shared/managed-agents-core.md +1 -2
  18. package/built-in-skills/claude-api/shared/managed-agents-events.md +41 -22
  19. package/built-in-skills/claude-api/shared/managed-agents-multiagent.md +5 -3
  20. package/built-in-skills/claude-api/shared/managed-agents-self-hosted-sandboxes.md +1 -1
  21. package/built-in-skills/claude-api/shared/managed-agents-tools.md +2 -3
  22. package/built-in-skills/claude-api/shared/model-migration.md +3 -3
  23. package/built-in-skills/claude-api/shared/models.md +1 -1
  24. package/built-in-skills/claude-api/typescript/claude-api/batches.md +1 -1
  25. package/built-in-skills/claude-api/typescript/claude-api/files-api.md +3 -1
  26. package/built-in-skills/claude-api/typescript/claude-api/tool-use.md +8 -2
  27. package/built-in-skills/claude-api/typescript/managed-agents/README.md +8 -2
  28. package/built-in-skills/codebase-design/SKILL.md +15 -1
  29. package/built-in-skills/codebase-design/references/requesting-code-review/GUIDE.md +291 -0
  30. package/built-in-skills/codebase-design/references/requesting-code-review/LICENSE +21 -0
  31. package/built-in-skills/codebase-design/references/requesting-code-review/LICENSE.superpowers +21 -0
  32. package/built-in-skills/codebase-design/references/requesting-code-review/NOTICE.md +37 -0
  33. package/built-in-skills/codebase-design/references/sdlc-review/GUIDE.md +130 -0
  34. package/built-in-skills/codebase-design/references/sdlc-review/LICENSE +21 -0
  35. package/built-in-skills/codebase-design/references/sdlc-review/NOTICE.md +17 -0
  36. package/built-in-skills/codebase-design/references/simplify-code/GUIDE.md +269 -0
  37. package/built-in-skills/codebase-design/references/simplify-code/LICENSE +21 -0
  38. package/built-in-skills/codebase-design/references/simplify-code/NOTICE.md +37 -0
  39. package/built-in-skills/competitor-intelligence/LICENSE +21 -0
  40. package/built-in-skills/competitor-intelligence/NOTICE.md +6 -0
  41. package/built-in-skills/competitor-intelligence/SKILL.md +125 -0
  42. package/built-in-skills/competitor-intelligence/scripts/watch_state.py +160 -0
  43. package/built-in-skills/conversation-compaction/SKILL.md +3 -0
  44. package/built-in-skills/council-creator/SKILL.md +4 -3
  45. package/built-in-skills/diagnosing-bugs/SKILL.md +12 -0
  46. package/built-in-skills/diagnosing-bugs/references/desktop-dom/GUIDE.md +64 -0
  47. package/built-in-skills/diagnosing-bugs/references/desktop-dom/LICENSE +21 -0
  48. package/built-in-skills/diagnosing-bugs/references/desktop-dom/NOTICE.md +17 -0
  49. package/built-in-skills/diagnosing-bugs/references/systematic-debugging/GUIDE.md +410 -0
  50. package/built-in-skills/diagnosing-bugs/references/systematic-debugging/LICENSE +21 -0
  51. package/built-in-skills/diagnosing-bugs/references/systematic-debugging/LICENSE.superpowers +21 -0
  52. package/built-in-skills/diagnosing-bugs/references/systematic-debugging/NOTICE.md +37 -0
  53. package/built-in-skills/doc-coauthoring/SKILL.md +6 -0
  54. package/built-in-skills/doc-coauthoring/references/humanizer/GUIDE.md +647 -0
  55. package/built-in-skills/doc-coauthoring/references/humanizer/LICENSE +21 -0
  56. package/built-in-skills/doc-coauthoring/references/humanizer/LICENSE.hermes +21 -0
  57. package/built-in-skills/doc-coauthoring/references/humanizer/PROVENANCE.md +7 -0
  58. package/built-in-skills/document-actions/LICENSE +21 -0
  59. package/built-in-skills/document-actions/NOTICE.md +21 -0
  60. package/built-in-skills/document-actions/SKILL.md +46 -0
  61. package/built-in-skills/evidence-citations/LICENSE +21 -0
  62. package/built-in-skills/evidence-citations/NOTICE.md +21 -0
  63. package/built-in-skills/evidence-citations/SKILL.md +46 -0
  64. package/built-in-skills/evidence-citations/references/citation-formats.md +68 -0
  65. package/built-in-skills/evidence-citations/references/grounding-rationale.md +64 -0
  66. package/built-in-skills/evidence-citations/scripts/sources.py +720 -0
  67. package/built-in-skills/frontend-design/SKILL.md +6 -0
  68. package/built-in-skills/frontend-design/references/claude-design/GUIDE.md +650 -0
  69. package/built-in-skills/frontend-design/references/claude-design/LICENSE +21 -0
  70. package/built-in-skills/frontend-design/references/claude-design/LICENSE.hermes +21 -0
  71. package/built-in-skills/frontend-design/references/claude-design/PROVENANCE.md +7 -0
  72. package/built-in-skills/image-generate/SKILL.md +5 -0
  73. package/built-in-skills/image-generate/scripts/generate-and-deliver.mjs +24 -3
  74. package/built-in-skills/mcp-builder/reference/evaluation.md +11 -2
  75. package/built-in-skills/mcp-builder/reference/node_mcp_server.md +34 -5
  76. package/built-in-skills/mcp-builder/reference/python_mcp_server.md +6 -2
  77. package/built-in-skills/mcp-builder/scripts/connections.py +1 -1
  78. package/built-in-skills/mcp-builder/scripts/evaluation.py +52 -34
  79. package/built-in-skills/mcp-builder/scripts/requirements.txt +2 -2
  80. package/built-in-skills/meeting-actions/LICENSE +21 -0
  81. package/built-in-skills/meeting-actions/NOTICE.md +21 -0
  82. package/built-in-skills/meeting-actions/SKILL.md +48 -0
  83. package/built-in-skills/memory/SKILL.md +27 -3
  84. package/built-in-skills/memory/references/llm-wiki/GUIDE.md +468 -0
  85. package/built-in-skills/memory/references/llm-wiki/LICENSE +21 -0
  86. package/built-in-skills/memory/references/llm-wiki/NOTICE.md +4 -0
  87. package/built-in-skills/memory/references/llm-wiki/scripts/lint_wiki.py +84 -0
  88. package/built-in-skills/memory/references/llm-wiki/scripts/requirements.txt +1 -0
  89. package/built-in-skills/memory/references/llm-wiki/templates/SCHEMA.md +19 -0
  90. package/built-in-skills/memory/references/llm-wiki/templates/index.md +9 -0
  91. package/built-in-skills/memory/references/llm-wiki/templates/log.md +4 -0
  92. package/built-in-skills/memory-dream/SKILL.md +8 -15
  93. package/built-in-skills/memory-import/SKILL.md +51 -0
  94. package/built-in-skills/office-artifacts/NOTICE.md +15 -0
  95. package/built-in-skills/office-artifacts/SKILL.md +20 -0
  96. package/built-in-skills/office-artifacts/references/RESOURCE-LIMITS.md +44 -0
  97. package/built-in-skills/office-artifacts/references/docx/GUIDE.md +196 -0
  98. package/built-in-skills/office-artifacts/references/docx/LICENSE +21 -0
  99. package/built-in-skills/office-artifacts/references/docx/NOTICE.md +21 -0
  100. package/built-in-skills/office-artifacts/references/docx/references/revisions-and-comments.md +88 -0
  101. package/built-in-skills/office-artifacts/references/docx/scripts/docx_comments.py +292 -0
  102. package/built-in-skills/office-artifacts/references/docx/scripts/docx_common.py +93 -0
  103. package/built-in-skills/office-artifacts/references/docx/scripts/docx_create.py +177 -0
  104. package/built-in-skills/office-artifacts/references/docx/scripts/docx_edit.py +250 -0
  105. package/built-in-skills/office-artifacts/references/docx/scripts/docx_read.py +169 -0
  106. package/built-in-skills/office-artifacts/references/docx/scripts/docx_revisions.py +149 -0
  107. package/built-in-skills/office-artifacts/references/docx/scripts/docx_template.py +70 -0
  108. package/built-in-skills/office-artifacts/references/docx/scripts/docx_validate.py +155 -0
  109. package/built-in-skills/office-artifacts/references/docx/tests/test_docx_skill.py +525 -0
  110. package/built-in-skills/office-artifacts/references/pdf/GUIDE.md +125 -0
  111. package/built-in-skills/office-artifacts/references/pdf/LICENSE +21 -0
  112. package/built-in-skills/office-artifacts/references/pdf/NOTICE.md +21 -0
  113. package/built-in-skills/office-artifacts/references/pdf/references/forms.md +99 -0
  114. package/built-in-skills/office-artifacts/references/pdf/references/nano-pdf-editing.md +40 -0
  115. package/built-in-skills/office-artifacts/references/pdf/references/ocr-extraction.md +165 -0
  116. package/built-in-skills/office-artifacts/references/pdf/scripts/_raster.py +87 -0
  117. package/built-in-skills/office-artifacts/references/pdf/scripts/extract_marker.py +95 -0
  118. package/built-in-skills/office-artifacts/references/pdf/scripts/extract_pymupdf.py +107 -0
  119. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_create.py +153 -0
  120. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_fill_form.py +97 -0
  121. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_form_layout.py +168 -0
  122. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_make_form.py +145 -0
  123. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_merge.py +50 -0
  124. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_meta.py +123 -0
  125. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_page_image.py +101 -0
  126. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_read.py +153 -0
  127. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_secure.py +71 -0
  128. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_split.py +86 -0
  129. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_stamp.py +145 -0
  130. package/built-in-skills/office-artifacts/references/pdf/scripts/pdf_watermark.py +51 -0
  131. package/built-in-skills/office-artifacts/references/pdf/tests/test_pdf_skill.py +414 -0
  132. package/built-in-skills/office-artifacts/references/powerpoint/GUIDE.md +220 -0
  133. package/built-in-skills/office-artifacts/references/powerpoint/LICENSE +21 -0
  134. package/built-in-skills/office-artifacts/references/powerpoint/NOTICE.md +21 -0
  135. package/built-in-skills/office-artifacts/references/powerpoint/scripts/pptx_create.py +214 -0
  136. package/built-in-skills/office-artifacts/references/powerpoint/scripts/pptx_edit.py +442 -0
  137. package/built-in-skills/office-artifacts/references/powerpoint/scripts/pptx_from_template.py +88 -0
  138. package/built-in-skills/office-artifacts/references/powerpoint/scripts/pptx_read.py +131 -0
  139. package/built-in-skills/office-artifacts/references/powerpoint/scripts/pptx_render.py +104 -0
  140. package/built-in-skills/office-artifacts/references/powerpoint/tests/test_powerpoint_skill.py +478 -0
  141. package/built-in-skills/office-artifacts/references/xlsx/GUIDE.md +196 -0
  142. package/built-in-skills/office-artifacts/references/xlsx/LICENSE +21 -0
  143. package/built-in-skills/office-artifacts/references/xlsx/NOTICE.md +21 -0
  144. package/built-in-skills/office-artifacts/references/xlsx/references/restructuring.md +74 -0
  145. package/built-in-skills/office-artifacts/references/xlsx/scripts/csv_to_xlsx.py +108 -0
  146. package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_create.py +259 -0
  147. package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_edit.py +269 -0
  148. package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_read.py +160 -0
  149. package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_recalc.py +111 -0
  150. package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_restructure.py +418 -0
  151. package/built-in-skills/office-artifacts/references/xlsx/scripts/xlsx_to_csv.py +69 -0
  152. package/built-in-skills/office-artifacts/references/xlsx/tests/test_xlsx_skill.py +542 -0
  153. package/built-in-skills/office-artifacts/tests/test_resource_regressions.py +272 -0
  154. package/built-in-skills/persona-generator/SKILL.md +9 -9
  155. package/built-in-skills/pkf-svg/SKILL.md +5 -0
  156. package/built-in-skills/pkf-svg/references/architecture-diagram/GUIDE.md +148 -0
  157. package/built-in-skills/pkf-svg/references/architecture-diagram/LICENSE +21 -0
  158. package/built-in-skills/pkf-svg/references/architecture-diagram/LICENSE.hermes +21 -0
  159. package/built-in-skills/pkf-svg/references/architecture-diagram/PROVENANCE.md +7 -0
  160. package/built-in-skills/pkf-svg/references/architecture-diagram/templates/template.html +345 -0
  161. package/built-in-skills/pkf-writing/SKILL.md +36 -14
  162. package/built-in-skills/prismer-airtable/LICENSE +21 -0
  163. package/built-in-skills/prismer-airtable/NOTICE.md +11 -0
  164. package/built-in-skills/prismer-airtable/SKILL.md +248 -0
  165. package/built-in-skills/prismer-airtable/scripts/airtable_client.py +76 -0
  166. package/built-in-skills/prismer-apple-notes/LICENSE +21 -0
  167. package/built-in-skills/prismer-apple-notes/NOTICE.md +17 -0
  168. package/built-in-skills/prismer-apple-notes/SKILL.md +118 -0
  169. package/built-in-skills/prismer-apple-notes/scripts/readiness.py +47 -0
  170. package/built-in-skills/prismer-apple-reminders/LICENSE +21 -0
  171. package/built-in-skills/prismer-apple-reminders/NOTICE.md +17 -0
  172. package/built-in-skills/prismer-apple-reminders/SKILL.md +155 -0
  173. package/built-in-skills/prismer-apple-reminders/scripts/readiness.py +47 -0
  174. package/built-in-skills/prismer-ascii-video/LICENSE +21 -0
  175. package/built-in-skills/prismer-ascii-video/LICENSE.hermes +21 -0
  176. package/built-in-skills/prismer-ascii-video/PROVENANCE.md +7 -0
  177. package/built-in-skills/prismer-ascii-video/README.md +290 -0
  178. package/built-in-skills/prismer-ascii-video/SKILL.md +252 -0
  179. package/built-in-skills/prismer-ascii-video/provenance/category-DESCRIPTION.md +3 -0
  180. package/built-in-skills/prismer-ascii-video/references/architecture.md +807 -0
  181. package/built-in-skills/prismer-ascii-video/references/composition.md +900 -0
  182. package/built-in-skills/prismer-ascii-video/references/effects.md +1877 -0
  183. package/built-in-skills/prismer-ascii-video/references/inputs.md +693 -0
  184. package/built-in-skills/prismer-ascii-video/references/optimization.md +688 -0
  185. package/built-in-skills/prismer-ascii-video/references/scenes.md +1018 -0
  186. package/built-in-skills/prismer-ascii-video/references/shaders.md +1408 -0
  187. package/built-in-skills/prismer-ascii-video/references/troubleshooting.md +360 -0
  188. package/built-in-skills/prismer-baoyu-infographic/LICENSE +21 -0
  189. package/built-in-skills/prismer-baoyu-infographic/LICENSE.hermes +21 -0
  190. package/built-in-skills/prismer-baoyu-infographic/LICENSE.origin +21 -0
  191. package/built-in-skills/prismer-baoyu-infographic/PORT_NOTES.md +37 -0
  192. package/built-in-skills/prismer-baoyu-infographic/PROVENANCE.md +7 -0
  193. package/built-in-skills/prismer-baoyu-infographic/SKILL.md +240 -0
  194. package/built-in-skills/prismer-baoyu-infographic/references/analysis-framework.md +182 -0
  195. package/built-in-skills/prismer-baoyu-infographic/references/base-prompt.md +43 -0
  196. package/built-in-skills/prismer-baoyu-infographic/references/layouts/bento-grid.md +41 -0
  197. package/built-in-skills/prismer-baoyu-infographic/references/layouts/binary-comparison.md +48 -0
  198. package/built-in-skills/prismer-baoyu-infographic/references/layouts/bridge.md +41 -0
  199. package/built-in-skills/prismer-baoyu-infographic/references/layouts/circular-flow.md +41 -0
  200. package/built-in-skills/prismer-baoyu-infographic/references/layouts/comic-strip.md +41 -0
  201. package/built-in-skills/prismer-baoyu-infographic/references/layouts/comparison-matrix.md +41 -0
  202. package/built-in-skills/prismer-baoyu-infographic/references/layouts/dashboard.md +41 -0
  203. package/built-in-skills/prismer-baoyu-infographic/references/layouts/dense-modules.md +72 -0
  204. package/built-in-skills/prismer-baoyu-infographic/references/layouts/funnel.md +41 -0
  205. package/built-in-skills/prismer-baoyu-infographic/references/layouts/hierarchical-layers.md +48 -0
  206. package/built-in-skills/prismer-baoyu-infographic/references/layouts/hub-spoke.md +41 -0
  207. package/built-in-skills/prismer-baoyu-infographic/references/layouts/iceberg.md +41 -0
  208. package/built-in-skills/prismer-baoyu-infographic/references/layouts/isometric-map.md +41 -0
  209. package/built-in-skills/prismer-baoyu-infographic/references/layouts/jigsaw.md +41 -0
  210. package/built-in-skills/prismer-baoyu-infographic/references/layouts/linear-progression.md +48 -0
  211. package/built-in-skills/prismer-baoyu-infographic/references/layouts/periodic-table.md +41 -0
  212. package/built-in-skills/prismer-baoyu-infographic/references/layouts/story-mountain.md +41 -0
  213. package/built-in-skills/prismer-baoyu-infographic/references/layouts/structural-breakdown.md +48 -0
  214. package/built-in-skills/prismer-baoyu-infographic/references/layouts/tree-branching.md +41 -0
  215. package/built-in-skills/prismer-baoyu-infographic/references/layouts/venn-diagram.md +41 -0
  216. package/built-in-skills/prismer-baoyu-infographic/references/layouts/winding-roadmap.md +41 -0
  217. package/built-in-skills/prismer-baoyu-infographic/references/structured-content-template.md +244 -0
  218. package/built-in-skills/prismer-baoyu-infographic/references/styles/aged-academia.md +36 -0
  219. package/built-in-skills/prismer-baoyu-infographic/references/styles/bold-graphic.md +36 -0
  220. package/built-in-skills/prismer-baoyu-infographic/references/styles/chalkboard.md +61 -0
  221. package/built-in-skills/prismer-baoyu-infographic/references/styles/claymation.md +29 -0
  222. package/built-in-skills/prismer-baoyu-infographic/references/styles/corporate-memphis.md +29 -0
  223. package/built-in-skills/prismer-baoyu-infographic/references/styles/craft-handmade.md +44 -0
  224. package/built-in-skills/prismer-baoyu-infographic/references/styles/cyberpunk-neon.md +29 -0
  225. package/built-in-skills/prismer-baoyu-infographic/references/styles/hand-drawn-edu.md +63 -0
  226. package/built-in-skills/prismer-baoyu-infographic/references/styles/ikea-manual.md +29 -0
  227. package/built-in-skills/prismer-baoyu-infographic/references/styles/kawaii.md +29 -0
  228. package/built-in-skills/prismer-baoyu-infographic/references/styles/knolling.md +29 -0
  229. package/built-in-skills/prismer-baoyu-infographic/references/styles/lego-brick.md +29 -0
  230. package/built-in-skills/prismer-baoyu-infographic/references/styles/morandi-journal.md +60 -0
  231. package/built-in-skills/prismer-baoyu-infographic/references/styles/origami.md +29 -0
  232. package/built-in-skills/prismer-baoyu-infographic/references/styles/pixel-art.md +29 -0
  233. package/built-in-skills/prismer-baoyu-infographic/references/styles/pop-laboratory.md +48 -0
  234. package/built-in-skills/prismer-baoyu-infographic/references/styles/retro-pop-grid.md +47 -0
  235. package/built-in-skills/prismer-baoyu-infographic/references/styles/storybook-watercolor.md +29 -0
  236. package/built-in-skills/prismer-baoyu-infographic/references/styles/subway-map.md +29 -0
  237. package/built-in-skills/prismer-baoyu-infographic/references/styles/technical-schematic.md +36 -0
  238. package/built-in-skills/prismer-baoyu-infographic/references/styles/ui-wireframe.md +29 -0
  239. package/built-in-skills/prismer-blocked-page-recovery/LICENSE +21 -0
  240. package/built-in-skills/prismer-blocked-page-recovery/NOTICE.md +17 -0
  241. package/built-in-skills/prismer-blocked-page-recovery/SKILL.md +158 -0
  242. package/built-in-skills/prismer-blocked-page-recovery/scripts/recover_page.py +311 -0
  243. package/built-in-skills/prismer-box/LICENSE +21 -0
  244. package/built-in-skills/prismer-box/NOTICE.md +11 -0
  245. package/built-in-skills/prismer-box/SKILL.md +147 -0
  246. package/built-in-skills/prismer-box/references/bulk-operations.md +43 -0
  247. package/built-in-skills/prismer-box/references/cli-guide.md +133 -0
  248. package/built-in-skills/prismer-box/references/content-workflows.md +86 -0
  249. package/built-in-skills/prismer-box/references/hubs.md +77 -0
  250. package/built-in-skills/prismer-box/references/oauth-setup.md +92 -0
  251. package/built-in-skills/prismer-box/references/rest-api.md +37 -0
  252. package/built-in-skills/prismer-box/references/sdk-development.md +85 -0
  253. package/built-in-skills/prismer-box/references/search-and-ai.md +147 -0
  254. package/built-in-skills/prismer-box/references/troubleshooting.md +33 -0
  255. package/built-in-skills/prismer-box/references/webhooks-and-events.md +43 -0
  256. package/built-in-skills/prismer-codebase-inspection/LICENSE +21 -0
  257. package/built-in-skills/prismer-codebase-inspection/NOTICE.md +17 -0
  258. package/built-in-skills/prismer-codebase-inspection/SKILL.md +141 -0
  259. package/built-in-skills/prismer-computer-use/LICENSE +21 -0
  260. package/built-in-skills/prismer-computer-use/NOTICE.md +17 -0
  261. package/built-in-skills/prismer-computer-use/SKILL.md +372 -0
  262. package/built-in-skills/prismer-design-md/LICENSE +21 -0
  263. package/built-in-skills/prismer-design-md/LICENSE.hermes +21 -0
  264. package/built-in-skills/prismer-design-md/PROVENANCE.md +7 -0
  265. package/built-in-skills/prismer-design-md/SKILL.md +227 -0
  266. package/built-in-skills/prismer-design-md/templates/starter.md +99 -0
  267. package/built-in-skills/prismer-email-inbox-triage/LICENSE +21 -0
  268. package/built-in-skills/prismer-email-inbox-triage/NOTICE.md +11 -0
  269. package/built-in-skills/prismer-email-inbox-triage/SKILL.md +116 -0
  270. package/built-in-skills/prismer-findmy/LICENSE +21 -0
  271. package/built-in-skills/prismer-findmy/NOTICE.md +17 -0
  272. package/built-in-skills/prismer-findmy/SKILL.md +150 -0
  273. package/built-in-skills/prismer-findmy/scripts/readiness.py +47 -0
  274. package/built-in-skills/prismer-gif-search/LICENSE +21 -0
  275. package/built-in-skills/prismer-gif-search/LICENSE.hermes +21 -0
  276. package/built-in-skills/prismer-gif-search/PROVENANCE.md +7 -0
  277. package/built-in-skills/prismer-gif-search/SKILL.md +97 -0
  278. package/built-in-skills/prismer-gif-search/scripts/tenor.py +81 -0
  279. package/built-in-skills/prismer-github/LICENSE +21 -0
  280. package/built-in-skills/prismer-github/NOTICE.md +17 -0
  281. package/built-in-skills/prismer-github/SKILL.md +74 -0
  282. package/built-in-skills/prismer-github/references/auth.md +91 -0
  283. package/built-in-skills/prismer-github/references/ci-troubleshooting.md +193 -0
  284. package/built-in-skills/prismer-github/references/code-review.md +465 -0
  285. package/built-in-skills/prismer-github/references/conventional-commits.md +81 -0
  286. package/built-in-skills/prismer-github/references/github-api-cheatsheet.md +177 -0
  287. package/built-in-skills/prismer-github/references/issue-to-pr.md +74 -0
  288. package/built-in-skills/prismer-github/references/issues.md +336 -0
  289. package/built-in-skills/prismer-github/references/pr-workflow.md +346 -0
  290. package/built-in-skills/prismer-github/references/repo-management.md +484 -0
  291. package/built-in-skills/prismer-github/references/review-output-template.md +84 -0
  292. package/built-in-skills/prismer-github/scripts/ensure-gh.py +132 -0
  293. package/built-in-skills/prismer-github/scripts/gh-env.sh +25 -0
  294. package/built-in-skills/prismer-github/scripts/git-credential-token.py +68 -0
  295. package/built-in-skills/prismer-github/scripts/github-api.py +71 -0
  296. package/built-in-skills/prismer-github/scripts/github-context.py +28 -0
  297. package/built-in-skills/prismer-github/templates/bug-report.md +35 -0
  298. package/built-in-skills/prismer-github/templates/feature-request.md +31 -0
  299. package/built-in-skills/prismer-github/templates/pr-body-bugfix.md +35 -0
  300. package/built-in-skills/prismer-github/templates/pr-body-feature.md +33 -0
  301. package/built-in-skills/prismer-google-workspace/LICENSE +21 -0
  302. package/built-in-skills/prismer-google-workspace/NOTICE.md +11 -0
  303. package/built-in-skills/prismer-google-workspace/SKILL.md +369 -0
  304. package/built-in-skills/prismer-google-workspace/references/daily-brief.md +65 -0
  305. package/built-in-skills/prismer-google-workspace/references/gmail-search-syntax.md +63 -0
  306. package/built-in-skills/prismer-google-workspace/scripts/_hermes_home.py +17 -0
  307. package/built-in-skills/prismer-google-workspace/scripts/_private_state.py +39 -0
  308. package/built-in-skills/prismer-google-workspace/scripts/google_api.py +1339 -0
  309. package/built-in-skills/prismer-google-workspace/scripts/gws_bridge.py +121 -0
  310. package/built-in-skills/prismer-google-workspace/scripts/setup.py +563 -0
  311. package/built-in-skills/prismer-google-workspace/tests/test_productivity_regressions.py +214 -0
  312. package/built-in-skills/prismer-hermes-agent/LICENSE +21 -0
  313. package/built-in-skills/prismer-hermes-agent/NOTICE.md +17 -0
  314. package/built-in-skills/prismer-hermes-agent/SKILL.md +247 -0
  315. package/built-in-skills/prismer-hermes-agent/references/background-systems.md +108 -0
  316. package/built-in-skills/prismer-hermes-agent/references/cli-reference.md +158 -0
  317. package/built-in-skills/prismer-hermes-agent/references/configuration.md +96 -0
  318. package/built-in-skills/prismer-hermes-agent/references/contributor-guide.md +151 -0
  319. package/built-in-skills/prismer-hermes-agent/references/delegate-task-concurrency-diagnosis.md +47 -0
  320. package/built-in-skills/prismer-hermes-agent/references/desktop-plugins.md +215 -0
  321. package/built-in-skills/prismer-hermes-agent/references/native-mcp.md +351 -0
  322. package/built-in-skills/prismer-hermes-agent/references/petdex.md +82 -0
  323. package/built-in-skills/prismer-hermes-agent/references/portal-auth-for-third-party-apps.md +135 -0
  324. package/built-in-skills/prismer-hermes-agent/references/project-context-files.md +55 -0
  325. package/built-in-skills/prismer-hermes-agent/references/providers-and-models.md +81 -0
  326. package/built-in-skills/prismer-hermes-agent/references/security-privacy.md +73 -0
  327. package/built-in-skills/prismer-hermes-agent/references/slash-commands.md +119 -0
  328. package/built-in-skills/prismer-hermes-agent/references/themes.md +134 -0
  329. package/built-in-skills/prismer-hermes-agent/references/troubleshooting.md +87 -0
  330. package/built-in-skills/prismer-hermes-agent/references/tui-widgets.md +144 -0
  331. package/built-in-skills/prismer-hermes-agent/references/webhooks.md +219 -0
  332. package/built-in-skills/prismer-hermes-agent/references/windows-quirks.md +64 -0
  333. package/built-in-skills/prismer-hermes-agent/templates/clock.mjs +51 -0
  334. package/built-in-skills/prismer-hermes-agent/templates/plugin.js +97 -0
  335. package/built-in-skills/prismer-hermes-agent/templates/skin.yaml +49 -0
  336. package/built-in-skills/prismer-himalaya/LICENSE +21 -0
  337. package/built-in-skills/prismer-himalaya/NOTICE.md +11 -0
  338. package/built-in-skills/prismer-himalaya/SKILL.md +340 -0
  339. package/built-in-skills/prismer-himalaya/references/configuration.md +227 -0
  340. package/built-in-skills/prismer-himalaya/references/message-composition.md +206 -0
  341. package/built-in-skills/prismer-himalaya/scripts/compose_draft.py +48 -0
  342. package/built-in-skills/prismer-im-collab/SKILL.md +1 -1
  343. package/built-in-skills/prismer-imessage/LICENSE +21 -0
  344. package/built-in-skills/prismer-imessage/NOTICE.md +17 -0
  345. package/built-in-skills/prismer-imessage/SKILL.md +128 -0
  346. package/built-in-skills/prismer-imessage/scripts/readiness.py +47 -0
  347. package/built-in-skills/prismer-manim-video/LICENSE +21 -0
  348. package/built-in-skills/prismer-manim-video/LICENSE.hermes +21 -0
  349. package/built-in-skills/prismer-manim-video/PROVENANCE.md +7 -0
  350. package/built-in-skills/prismer-manim-video/README.md +23 -0
  351. package/built-in-skills/prismer-manim-video/SKILL.md +279 -0
  352. package/built-in-skills/prismer-manim-video/references/animation-design-thinking.md +161 -0
  353. package/built-in-skills/prismer-manim-video/references/animations.md +282 -0
  354. package/built-in-skills/prismer-manim-video/references/camera-and-3d.md +135 -0
  355. package/built-in-skills/prismer-manim-video/references/decorations.md +202 -0
  356. package/built-in-skills/prismer-manim-video/references/equations.md +216 -0
  357. package/built-in-skills/prismer-manim-video/references/graphs-and-data.md +163 -0
  358. package/built-in-skills/prismer-manim-video/references/mobjects.md +333 -0
  359. package/built-in-skills/prismer-manim-video/references/paper-explainer.md +255 -0
  360. package/built-in-skills/prismer-manim-video/references/production-quality.md +190 -0
  361. package/built-in-skills/prismer-manim-video/references/rendering.md +187 -0
  362. package/built-in-skills/prismer-manim-video/references/scene-planning.md +118 -0
  363. package/built-in-skills/prismer-manim-video/references/troubleshooting.md +135 -0
  364. package/built-in-skills/prismer-manim-video/references/updaters-and-trackers.md +260 -0
  365. package/built-in-skills/prismer-manim-video/references/visual-design.md +124 -0
  366. package/built-in-skills/prismer-manim-video/scripts/setup.sh +15 -0
  367. package/built-in-skills/prismer-maps/LICENSE +21 -0
  368. package/built-in-skills/prismer-maps/NOTICE.md +11 -0
  369. package/built-in-skills/prismer-maps/SKILL.md +240 -0
  370. package/built-in-skills/prismer-maps/scripts/maps_client.py +1324 -0
  371. package/built-in-skills/prismer-node-inspect-debugger/LICENSE +21 -0
  372. package/built-in-skills/prismer-node-inspect-debugger/NOTICE.md +17 -0
  373. package/built-in-skills/prismer-node-inspect-debugger/SKILL.md +347 -0
  374. package/built-in-skills/prismer-notion/LICENSE +21 -0
  375. package/built-in-skills/prismer-notion/NOTICE.md +11 -0
  376. package/built-in-skills/prismer-notion/SKILL.md +495 -0
  377. package/built-in-skills/prismer-notion/references/block-types.md +112 -0
  378. package/built-in-skills/prismer-obsidian/LICENSE +21 -0
  379. package/built-in-skills/prismer-obsidian/LICENSE.hermes +21 -0
  380. package/built-in-skills/prismer-obsidian/PROVENANCE.md +7 -0
  381. package/built-in-skills/prismer-obsidian/SKILL.md +80 -0
  382. package/built-in-skills/prismer-obsidian/provenance/category-DESCRIPTION.md +3 -0
  383. package/built-in-skills/prismer-obsidian/scripts/write_note.py +84 -0
  384. package/built-in-skills/prismer-p5js/LICENSE +21 -0
  385. package/built-in-skills/prismer-p5js/LICENSE.hermes +21 -0
  386. package/built-in-skills/prismer-p5js/PROVENANCE.md +7 -0
  387. package/built-in-skills/prismer-p5js/README.md +64 -0
  388. package/built-in-skills/prismer-p5js/SKILL.md +574 -0
  389. package/built-in-skills/prismer-p5js/references/animation.md +439 -0
  390. package/built-in-skills/prismer-p5js/references/color-systems.md +355 -0
  391. package/built-in-skills/prismer-p5js/references/core-api.md +410 -0
  392. package/built-in-skills/prismer-p5js/references/export-pipeline.md +534 -0
  393. package/built-in-skills/prismer-p5js/references/interaction.md +398 -0
  394. package/built-in-skills/prismer-p5js/references/shapes-and-geometry.md +300 -0
  395. package/built-in-skills/prismer-p5js/references/troubleshooting.md +532 -0
  396. package/built-in-skills/prismer-p5js/references/typography.md +302 -0
  397. package/built-in-skills/prismer-p5js/references/visual-effects.md +905 -0
  398. package/built-in-skills/prismer-p5js/references/webgl-and-3d.md +423 -0
  399. package/built-in-skills/prismer-p5js/scripts/export-frames.js +91 -0
  400. package/built-in-skills/prismer-p5js/scripts/render.sh +113 -0
  401. package/built-in-skills/prismer-p5js/scripts/serve.sh +25 -0
  402. package/built-in-skills/prismer-p5js/scripts/setup.sh +87 -0
  403. package/built-in-skills/prismer-p5js/templates/viewer.html +401 -0
  404. package/built-in-skills/prismer-popular-web-designs/LICENSE +21 -0
  405. package/built-in-skills/prismer-popular-web-designs/LICENSE.hermes +21 -0
  406. package/built-in-skills/prismer-popular-web-designs/LICENSE.origin +21 -0
  407. package/built-in-skills/prismer-popular-web-designs/PROVENANCE.md +7 -0
  408. package/built-in-skills/prismer-popular-web-designs/SKILL.md +218 -0
  409. package/built-in-skills/prismer-popular-web-designs/templates/airbnb.md +259 -0
  410. package/built-in-skills/prismer-popular-web-designs/templates/airtable.md +102 -0
  411. package/built-in-skills/prismer-popular-web-designs/templates/apple.md +326 -0
  412. package/built-in-skills/prismer-popular-web-designs/templates/bmw.md +193 -0
  413. package/built-in-skills/prismer-popular-web-designs/templates/cal.md +272 -0
  414. package/built-in-skills/prismer-popular-web-designs/templates/claude.md +325 -0
  415. package/built-in-skills/prismer-popular-web-designs/templates/clay.md +317 -0
  416. package/built-in-skills/prismer-popular-web-designs/templates/clickhouse.md +294 -0
  417. package/built-in-skills/prismer-popular-web-designs/templates/cohere.md +279 -0
  418. package/built-in-skills/prismer-popular-web-designs/templates/coinbase.md +142 -0
  419. package/built-in-skills/prismer-popular-web-designs/templates/composio.md +320 -0
  420. package/built-in-skills/prismer-popular-web-designs/templates/cursor.md +322 -0
  421. package/built-in-skills/prismer-popular-web-designs/templates/elevenlabs.md +278 -0
  422. package/built-in-skills/prismer-popular-web-designs/templates/expo.md +294 -0
  423. package/built-in-skills/prismer-popular-web-designs/templates/figma.md +233 -0
  424. package/built-in-skills/prismer-popular-web-designs/templates/framer.md +259 -0
  425. package/built-in-skills/prismer-popular-web-designs/templates/hashicorp.md +291 -0
  426. package/built-in-skills/prismer-popular-web-designs/templates/ibm.md +345 -0
  427. package/built-in-skills/prismer-popular-web-designs/templates/intercom.md +159 -0
  428. package/built-in-skills/prismer-popular-web-designs/templates/kraken.md +138 -0
  429. package/built-in-skills/prismer-popular-web-designs/templates/linear.app.md +380 -0
  430. package/built-in-skills/prismer-popular-web-designs/templates/lovable.md +311 -0
  431. package/built-in-skills/prismer-popular-web-designs/templates/minimax.md +270 -0
  432. package/built-in-skills/prismer-popular-web-designs/templates/mintlify.md +339 -0
  433. package/built-in-skills/prismer-popular-web-designs/templates/miro.md +121 -0
  434. package/built-in-skills/prismer-popular-web-designs/templates/mistral.ai.md +274 -0
  435. package/built-in-skills/prismer-popular-web-designs/templates/mongodb.md +279 -0
  436. package/built-in-skills/prismer-popular-web-designs/templates/notion.md +322 -0
  437. package/built-in-skills/prismer-popular-web-designs/templates/nvidia.md +306 -0
  438. package/built-in-skills/prismer-popular-web-designs/templates/ollama.md +280 -0
  439. package/built-in-skills/prismer-popular-web-designs/templates/opencode.ai.md +294 -0
  440. package/built-in-skills/prismer-popular-web-designs/templates/pinterest.md +243 -0
  441. package/built-in-skills/prismer-popular-web-designs/templates/posthog.md +269 -0
  442. package/built-in-skills/prismer-popular-web-designs/templates/raycast.md +281 -0
  443. package/built-in-skills/prismer-popular-web-designs/templates/replicate.md +274 -0
  444. package/built-in-skills/prismer-popular-web-designs/templates/resend.md +316 -0
  445. package/built-in-skills/prismer-popular-web-designs/templates/revolut.md +198 -0
  446. package/built-in-skills/prismer-popular-web-designs/templates/runwayml.md +257 -0
  447. package/built-in-skills/prismer-popular-web-designs/templates/sanity.md +370 -0
  448. package/built-in-skills/prismer-popular-web-designs/templates/sentry.md +275 -0
  449. package/built-in-skills/prismer-popular-web-designs/templates/spacex.md +207 -0
  450. package/built-in-skills/prismer-popular-web-designs/templates/spotify.md +259 -0
  451. package/built-in-skills/prismer-popular-web-designs/templates/stripe.md +335 -0
  452. package/built-in-skills/prismer-popular-web-designs/templates/supabase.md +268 -0
  453. package/built-in-skills/prismer-popular-web-designs/templates/superhuman.md +265 -0
  454. package/built-in-skills/prismer-popular-web-designs/templates/together.ai.md +276 -0
  455. package/built-in-skills/prismer-popular-web-designs/templates/uber.md +308 -0
  456. package/built-in-skills/prismer-popular-web-designs/templates/vercel.md +323 -0
  457. package/built-in-skills/prismer-popular-web-designs/templates/voltagent.md +336 -0
  458. package/built-in-skills/prismer-popular-web-designs/templates/warp.md +266 -0
  459. package/built-in-skills/prismer-popular-web-designs/templates/webflow.md +105 -0
  460. package/built-in-skills/prismer-popular-web-designs/templates/wise.md +186 -0
  461. package/built-in-skills/prismer-popular-web-designs/templates/x.ai.md +270 -0
  462. package/built-in-skills/prismer-popular-web-designs/templates/zapier.md +341 -0
  463. package/built-in-skills/prismer-product-price-monitor/LICENSE +21 -0
  464. package/built-in-skills/prismer-product-price-monitor/NOTICE.md +11 -0
  465. package/built-in-skills/prismer-product-price-monitor/SKILL.md +97 -0
  466. package/built-in-skills/prismer-product-price-monitor/scripts/watch_state.py +116 -0
  467. package/built-in-skills/prismer-python-debugpy/LICENSE +21 -0
  468. package/built-in-skills/prismer-python-debugpy/NOTICE.md +17 -0
  469. package/built-in-skills/prismer-python-debugpy/SKILL.md +377 -0
  470. package/built-in-skills/prismer-python-debugpy/scripts/dap_client.py +68 -0
  471. package/built-in-skills/prismer-songsee/LICENSE +21 -0
  472. package/built-in-skills/prismer-songsee/LICENSE.hermes +21 -0
  473. package/built-in-skills/prismer-songsee/PROVENANCE.md +7 -0
  474. package/built-in-skills/prismer-songsee/SKILL.md +91 -0
  475. package/built-in-skills/prismer-songwriting-and-ai-music/LICENSE +21 -0
  476. package/built-in-skills/prismer-songwriting-and-ai-music/LICENSE.hermes +21 -0
  477. package/built-in-skills/prismer-songwriting-and-ai-music/PROVENANCE.md +7 -0
  478. package/built-in-skills/prismer-songwriting-and-ai-music/SKILL.md +317 -0
  479. package/built-in-skills/prismer-spike/LICENSE +21 -0
  480. package/built-in-skills/prismer-spike/LICENSE.gsd +21 -0
  481. package/built-in-skills/prismer-spike/NOTICE.md +17 -0
  482. package/built-in-skills/prismer-spike/SKILL.md +212 -0
  483. package/built-in-skills/prismer-teams-meeting-pipeline/LICENSE +21 -0
  484. package/built-in-skills/prismer-teams-meeting-pipeline/NOTICE.md +11 -0
  485. package/built-in-skills/prismer-teams-meeting-pipeline/SKILL.md +156 -0
  486. package/built-in-skills/prismer-xurl/LICENSE +21 -0
  487. package/built-in-skills/prismer-xurl/LICENSE.hermes +21 -0
  488. package/built-in-skills/prismer-xurl/PROVENANCE.md +7 -0
  489. package/built-in-skills/prismer-xurl/SKILL.md +444 -0
  490. package/built-in-skills/prismer-xurl/provenance/category-DESCRIPTION.md +3 -0
  491. package/built-in-skills/prismer-youtube-content/LICENSE +21 -0
  492. package/built-in-skills/prismer-youtube-content/LICENSE.hermes +21 -0
  493. package/built-in-skills/prismer-youtube-content/PROVENANCE.md +7 -0
  494. package/built-in-skills/prismer-youtube-content/SKILL.md +86 -0
  495. package/built-in-skills/prismer-youtube-content/provenance/category-DESCRIPTION.md +3 -0
  496. package/built-in-skills/prismer-youtube-content/references/output-formats.md +56 -0
  497. package/built-in-skills/prismer-youtube-content/scripts/fetch_transcript.py +146 -0
  498. package/built-in-skills/research-arxiv/LICENSE +21 -0
  499. package/built-in-skills/research-arxiv/NOTICE.md +4 -0
  500. package/built-in-skills/research-arxiv/SKILL.md +263 -0
  501. package/built-in-skills/research-arxiv/scripts/search_arxiv.py +111 -0
  502. package/built-in-skills/role-builder/SKILL.md +7 -1
  503. package/built-in-skills/role-builder/scripts/author-role.mjs +23 -7
  504. package/built-in-skills/role-builder/scripts/ingest-role.mjs +15 -117
  505. package/built-in-skills/role-builder/scripts/instantiate-and-run.mjs +15 -1
  506. package/built-in-skills/role-builder/scripts/operation-harness.mjs +6 -4
  507. package/built-in-skills/skill-creator/LICENSE.prismer +21 -0
  508. package/built-in-skills/skill-creator/NOTICE.md +18 -0
  509. package/built-in-skills/skill-creator/SKILL.md +20 -1
  510. package/built-in-skills/skill-creator/eval-viewer/generate_review.py +20 -31
  511. package/built-in-skills/skill-creator/eval-viewer/viewer.html +35 -23
  512. package/built-in-skills/skill-creator/references/hermes-agent-skill-authoring/GUIDE.md +220 -0
  513. package/built-in-skills/skill-creator/references/hermes-agent-skill-authoring/LICENSE +21 -0
  514. package/built-in-skills/{skill-authoring/SKILL.md → skill-creator/references/skill-authoring/GUIDE.md} +1 -1
  515. package/built-in-skills/{skill-builder/SKILL.md → skill-creator/references/skill-builder/GUIDE.md} +8 -12
  516. package/built-in-skills/skill-creator/references/skill-builder/scripts/ingest.mjs +93 -0
  517. package/built-in-skills/skill-creator/scripts/aggregate_benchmark.py +3 -2
  518. package/built-in-skills/skill-creator/scripts/import-library.mjs +30 -7
  519. package/built-in-skills/skill-creator/scripts/improve_description.py +14 -16
  520. package/built-in-skills/skill-creator/scripts/package_skill.py +16 -9
  521. package/built-in-skills/skill-creator/scripts/quick_validate.py +22 -5
  522. package/built-in-skills/skill-creator/scripts/run_eval.py +63 -144
  523. package/built-in-skills/skill-creator/scripts/run_loop.py +24 -16
  524. package/built-in-skills/slack-gif-creator/core/gif_builder.py +13 -2
  525. package/built-in-skills/slack-gif-creator/core/validators.py +17 -7
  526. package/built-in-skills/tasks/SKILL.md +2 -2
  527. package/built-in-skills/tdd/SKILL.md +7 -0
  528. package/built-in-skills/tdd/references/test-driven-development/GUIDE.md +356 -0
  529. package/built-in-skills/tdd/references/test-driven-development/LICENSE +21 -0
  530. package/built-in-skills/tdd/references/test-driven-development/LICENSE.superpowers +21 -0
  531. package/built-in-skills/tdd/references/test-driven-development/NOTICE.md +37 -0
  532. package/built-in-skills/team/SKILL.md +1 -1
  533. package/built-in-skills/web-artifacts-builder/SKILL.md +3 -3
  534. package/built-in-skills/web-artifacts-builder/scripts/bundle-artifact.sh +9 -7
  535. package/built-in-skills/web-artifacts-builder/scripts/init-artifact.sh +28 -55
  536. package/built-in-skills/webapp-qa/LICENSE +21 -0
  537. package/built-in-skills/webapp-qa/NOTICE.md +37 -0
  538. package/built-in-skills/webapp-qa/SKILL.md +41 -0
  539. package/built-in-skills/webapp-qa/references/dogfood/GUIDE.md +161 -0
  540. package/built-in-skills/webapp-qa/references/issue-taxonomy.md +109 -0
  541. package/built-in-skills/webapp-qa/templates/dogfood-report-template.md +86 -0
  542. package/built-in-skills/webapp-testing/SKILL.md +9 -2
  543. package/built-in-skills/webapp-testing/examples/console_logging.py +10 -4
  544. package/built-in-skills/webapp-testing/examples/element_discovery.py +11 -4
  545. package/built-in-skills/webapp-testing/examples/static_html_automation.py +14 -9
  546. package/built-in-skills/webapp-testing/scripts/with_server.py +34 -10
  547. package/built-in-skills/weekly-review/LICENSE +21 -0
  548. package/built-in-skills/weekly-review/NOTICE.md +21 -0
  549. package/built-in-skills/weekly-review/SKILL.md +49 -0
  550. package/components/eaas-pi-components.manifest.json +37 -0
  551. package/dist/cli.cjs +7017 -3340
  552. package/dist/cli.js +6631 -2936
  553. package/dist/index.cjs +7863 -3830
  554. package/dist/index.d.cts +459 -5
  555. package/dist/index.d.ts +459 -5
  556. package/dist/index.js +7106 -3064
  557. package/package.json +7 -2
  558. package/plugins/memory/prismer/__init__.py +4 -0
  559. package/plugins/memory/prismer/tool-schemas.generated.json +8 -0
  560. package/built-in-skills/skill-builder/scripts/ingest.mjs +0 -265
  561. package/built-in-skills/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  562. /package/built-in-skills/{document-generation/SKILL.md → office-artifacts/references/document-generation/GUIDE.md} +0 -0
  563. /package/built-in-skills/{skill-authoring/skill.json → skill-creator/references/skill-authoring/draft-contract.json} +0 -0
@@ -0,0 +1,158 @@
1
+ # Hermes CLI Reference
2
+
3
+ > Maintainer reference only. Read-only diagnosis may use the deployed Hermes
4
+ > version; mutation, installation, provider credentials, cron, webhook, profile
5
+ > and lifecycle changes require a separate authorized Runtime maintenance task.
6
+ > These examples do not install tools or grant permissions in a tenant session.
7
+ > Do not copy literal secret placeholders into config; inject scoped credentials
8
+ > through the existing Runtime mechanism. Verify version-specific commands.
9
+
10
+ Live sources when anything looks stale: `hermes --help`, `hermes <command> --help`,
11
+ https://hermes-agent.nousresearch.com/docs/reference/cli-commands
12
+
13
+ ### Global Flags
14
+
15
+ ```
16
+ hermes [flags] [command] (no subcommand = interactive chat)
17
+
18
+ --version, -V Show version
19
+ -z, --oneshot PROMPT One-shot: print ONLY the final response (for scripts/pipes)
20
+ -m MODEL --provider P Model/provider override for this invocation
21
+ -t, --toolsets LIST Comma-separated toolsets for this invocation
22
+ --resume, -r SESSION Resume session by ID or title
23
+ --continue, -c [NAME] Resume by name, or most recent session
24
+ --worktree, -w Isolated git worktree mode (parallel agents)
25
+ --skills, -s SKILL Preload skills (comma-separate or repeat)
26
+ --profile, -p NAME Use a named profile
27
+ --yolo Skip dangerous command approval
28
+ --tui / --cli Force the Ink TUI / classic REPL
29
+ --ignore-rules Skip AGENTS.md/SOUL.md/memory/skill injection
30
+ --safe-mode Disable ALL customizations (troubleshooting)
31
+ --pass-session-id Include session ID in system prompt
32
+ ```
33
+
34
+ ### Chat
35
+
36
+ ```
37
+ hermes chat [flags]
38
+ -q, --query TEXT Single query, non-interactive
39
+ --image PATH Attach a local image to a single query
40
+ -Q, --quiet Suppress banner, spinner, tool previews
41
+ --checkpoints Enable filesystem checkpoints (/rollback)
42
+ --max-turns N Cap tool-calling iterations
43
+ --source TAG Session source tag (default: cli)
44
+ ```
45
+ (plus the global flags above)
46
+
47
+ ### Configuration
48
+
49
+ ```
50
+ hermes setup [section] Wizard (model|tts|terminal|gateway|tools|agent)
51
+ hermes model Interactive model/provider picker
52
+ hermes fallback [add|remove|list] Fallback provider chain
53
+ hermes config [show|edit|get|set|unset|path|env-path|check|migrate]
54
+ hermes login / logout OAuth sign-in / clear stored auth
55
+ hermes doctor [--fix] Check dependencies and config
56
+ hermes status [--all] Component status
57
+ ```
58
+
59
+ ### Tools & Skills
60
+
61
+ ```
62
+ hermes tools [list|enable NAME|disable NAME] Per-platform toolsets (curses UI with no args)
63
+
64
+ hermes skills list|browse|search QUERY|inspect ID
65
+ hermes skills install ID Hub identifier OR a direct https://…/SKILL.md URL
66
+ hermes skills config Enable/disable skills per platform
67
+ hermes skills check|update|uninstall|publish PATH
68
+ hermes skills tap add REPO Add a GitHub repo as a skill source
69
+ hermes bundles Skill bundles (one /<name> alias loads several skills)
70
+ ```
71
+
72
+ ### MCP Servers
73
+
74
+ ```
75
+ hermes mcp add NAME (--url or --command) | remove | list | test NAME
76
+ hermes mcp catalog | install NAME Curated catalog install
77
+ hermes mcp configure NAME Toggle tool selection
78
+ hermes mcp serve Run Hermes as an MCP server
79
+ ```
80
+ Details (transport, tool discovery, catalog): `references/native-mcp.md`.
81
+
82
+ ### Gateway (Messaging Platforms)
83
+
84
+ ```
85
+ hermes gateway run|install|start|stop|restart|status|setup
86
+ ```
87
+
88
+ 20+ platforms: Telegram, Discord, Slack, WhatsApp (Baileys + Business Cloud API), iMessage (Photon — `hermes photon setup`), Signal, Email, SMS, Matrix, Mattermost, Teams, LINE, SimpleX, ntfy, Google Chat, Home Assistant, DingTalk, Feishu, WeCom, Weixin, API Server, Webhooks. Open WebUI connects via the API Server adapter. Most adapters ship under `plugins/platforms/`.
89
+ Docs: https://hermes-agent.nousresearch.com/docs/user-guide/messaging/
90
+
91
+ ### Sessions
92
+
93
+ ```
94
+ hermes sessions list|browse|rename ID TITLE|delete ID|export OUT|prune|stats
95
+ ```
96
+
97
+ ### Cron / Webhooks
98
+
99
+ ```
100
+ hermes cron list|create SCHED|edit ID|pause|resume|run ID|remove|status
101
+ Schedules: '30m', 'every 2h', '0 9 * * *', ISO timestamp
102
+ hermes webhook subscribe NAME|list|remove NAME|test NAME
103
+ ```
104
+ Webhook payloads/routes: `references/webhooks.md`.
105
+
106
+ ### Profiles
107
+
108
+ ```
109
+ hermes profile list|create NAME (--clone|--clone-all|--clone-from)|use|show|delete
110
+ hermes profile rename A B | alias NAME | export NAME | import FILE
111
+ hermes profile migrate-identity A B Retry a completed rename's session/routing identity migration
112
+ ```
113
+
114
+ ### Credentials & Pools
115
+
116
+ ```
117
+ hermes auth Interactive credential manager
118
+ hermes auth add [PROVIDER] Add OAuth or API-key credential (nous, openai-codex, qwen-oauth, …)
119
+ hermes auth list|remove P IDX|reset PROVIDER|status
120
+ ```
121
+ Multiple credentials per provider form a pool that rotates automatically and skips exhausted keys.
122
+
123
+ ### Other
124
+
125
+ ```
126
+ hermes desktop / gui Native desktop app
127
+ hermes dashboard Web admin panel + embedded chat (--stop / --status)
128
+ hermes proxy OpenAI-compatible local proxy backed by an OAuth provider
129
+ hermes portal Quick setup / sign in via Nous Portal
130
+ hermes kanban <verb> Multi-agent work-queue board
131
+ hermes project Named multi-folder workspaces
132
+ hermes skin list|use|set Switch/tweak skins (see references/themes.md)
133
+ hermes pets <verb> Pet mascots (see references/petdex.md)
134
+ hermes memory setup|status|off|reset Memory provider
135
+ hermes secrets bitwarden|onepassword External secret stores
136
+ hermes moa Mixture-of-Agents slots
137
+ hermes hooks / security / backup / import / checkpoints / console
138
+ hermes logs [-f] [errors] View agent/error logs
139
+ hermes send One-off message through a gateway platform
140
+ hermes pairing / plugins / insights / journey / computer-use
141
+ hermes acp ACP server (IDE integration)
142
+ hermes completion bash|zsh|fish
143
+ hermes update / uninstall / claw migrate
144
+ ```
145
+
146
+ Plugin- and provider-supplied subcommands (e.g. `hermes photon setup`) only appear once their plugin is installed/active.
147
+
148
+ ### Where to Find Things
149
+
150
+ | Looking for... | Location |
151
+ |---|---|
152
+ | Config options | `hermes config edit` · [Configuration docs](https://hermes-agent.nousresearch.com/docs/user-guide/configuration) |
153
+ | Tools / toolsets | `hermes tools list` · [Tools reference](https://hermes-agent.nousresearch.com/docs/reference/tools-reference) |
154
+ | Skills catalog | `hermes skills browse` · [Skills catalog](https://hermes-agent.nousresearch.com/docs/reference/skills-catalog) |
155
+ | Provider setup | `hermes model` · [Providers guide](https://hermes-agent.nousresearch.com/docs/integrations/providers) |
156
+ | Env variables | `hermes config env-path` · [Env vars reference](https://hermes-agent.nousresearch.com/docs/reference/environment-variables) |
157
+ | Gateway logs | `~/.hermes/logs/gateway.log` (or `hermes logs`) |
158
+ | Sessions | `hermes sessions browse` (reads state.db) |
@@ -0,0 +1,96 @@
1
+ # Configuration, Toolsets & Voice
2
+
3
+ > Maintainer reference only. Read-only diagnosis may use the deployed Hermes
4
+ > version; mutation, installation, provider credentials, cron, webhook, profile
5
+ > and lifecycle changes require a separate authorized Runtime maintenance task.
6
+ > These examples do not install tools or grant permissions in a tenant session.
7
+ > Do not copy literal secret placeholders into config; inject scoped credentials
8
+ > through the existing Runtime mechanism. Verify version-specific commands.
9
+
10
+ Edit with `hermes config edit` or `hermes config set section.key value`.
11
+ Full reference: https://hermes-agent.nousresearch.com/docs/user-guide/configuration
12
+
13
+ ### Config Sections (most-used keys)
14
+
15
+ | Section | Key options |
16
+ |---------|-------------|
17
+ | `model` | `default`, `provider`, `base_url`, `api_key`, `context_length`, `aliases` |
18
+ | `agent` | `max_turns` (90), `tool_use_enforcement`, `service_tier`, `verify_on_stop` |
19
+ | `terminal` | `backend` (local/docker/ssh/modal/daytona/singularity), `cwd`, `timeout` (180) |
20
+ | `compression` | `enabled`, `threshold` (0.50), `target_ratio` (0.20) |
21
+ | `display` | `skin`, `interface` (cli/tui), `language`, `show_reasoning`, `show_cost`, `pet` |
22
+ | `approvals` | `mode` (smart/manual/off), `timeout`, `cron_mode` |
23
+ | `stt` | `enabled`, `provider` (local/groq/openai/mistral/elevenlabs/deepinfra) |
24
+ | `tts` | `provider` (edge/elevenlabs/openai/minimax/mistral/neutts/gemini/piper/kittentts/deepinfra/xai) |
25
+ | `memory` | `memory_enabled`, `user_profile_enabled`, `provider`, `write_approval` |
26
+ | `security` | `redact_secrets`, `tirith_enabled`, `website_blocklist` |
27
+ | `delegation` | `model`, `provider`, `max_concurrent_children`, `max_iterations` (50), `max_spawn_depth` |
28
+ | `checkpoints` | `enabled`, `max_snapshots` (50) |
29
+ | `curator` | `enabled`, `consolidate` (false, opt-in aux-model consolidation), `interval_hours`, `stale_after_days` |
30
+
31
+ `hermes config check` reports sections missing from an older config.
32
+
33
+ ### Toolsets
34
+
35
+ Enable/disable via `hermes tools` (interactive) or `hermes tools enable/disable NAME`.
36
+ Full enumeration: `TOOLSETS` dict in `toolsets.py` (`_HERMES_CORE_TOOLS` is the default bundle most platforms inherit).
37
+
38
+ | Toolset | What it provides |
39
+ |---------|-----------------|
40
+ | `web` / `search` | Web search + extraction / search-only subset |
41
+ | `browser` | Browser automation (Browserbase, Camofox, or local Chromium) |
42
+ | `terminal` | Shell commands and process management |
43
+ | `file` | File read/write/search/patch |
44
+ | `code_execution` | Sandboxed Python execution |
45
+ | `coding` | Code-editing helpers (LSP-backed) |
46
+ | `computer_use` | Desktop GUI control (cua-driver) |
47
+ | `vision` | Image analysis |
48
+ | `image_gen` | Image generation and image-to-image editing |
49
+ | `video` / `video_gen` | Video analysis / video generation |
50
+ | `x_search` | X (Twitter) search (X OAuth or API key) |
51
+ | `tts` | Text-to-speech |
52
+ | `skills` | Skill browsing and management |
53
+ | `memory` | Persistent cross-session memory |
54
+ | `session_search` | Search past conversations |
55
+ | `context_engine` | Pluggable context-engine hooks |
56
+ | `project` | Named multi-folder workspace tools |
57
+ | `delegation` | Subagent task delegation |
58
+ | `cronjob` | Scheduled task management |
59
+ | `clarify` | Ask user clarifying questions |
60
+ | `todo` | In-session task planning |
61
+ | `kanban` | Multi-agent work-queue tools (gated to workers) |
62
+ | `debugging` | Extra introspection tools (off by default) |
63
+ | `safe` | Minimal low-risk toolset for locked-down sessions |
64
+ | `spotify`, `homeassistant`, `discord`, `discord_admin`, `feishu_doc`, `feishu_drive`, `yuanbao` | Service integrations (gated on their credentials) |
65
+
66
+ Tool changes take effect on `/reset` (new session) — never mid-conversation, to preserve prompt caching.
67
+
68
+ ## Voice
69
+
70
+ ### STT (Voice → Text)
71
+
72
+ Voice messages from messaging platforms are auto-transcribed.
73
+
74
+ ```yaml
75
+ stt:
76
+ enabled: true
77
+ provider: local # local (faster-whisper, free) | groq | openai | mistral | elevenlabs | deepinfra
78
+ local:
79
+ model: base # tiny, base, small, medium, large-v3
80
+ ```
81
+
82
+ Auto-detect priority: local faster-whisper (`pip install faster-whisper`) → Groq (`GROQ_API_KEY`, free tier) → OpenAI (`VOICE_TOOLS_OPENAI_KEY`) → Mistral Voxtral (`MISTRAL_API_KEY`).
83
+
84
+ ### TTS (Text → Voice)
85
+
86
+ | Provider | Env var | Free? |
87
+ |----------|---------|-------|
88
+ | Edge TTS (default) | None | Yes |
89
+ | ElevenLabs | `ELEVENLABS_API_KEY` | Free tier |
90
+ | OpenAI | `VOICE_TOOLS_OPENAI_KEY` | Paid |
91
+ | MiniMax | `MINIMAX_API_KEY` | Paid |
92
+ | Mistral | `MISTRAL_API_KEY` | Paid |
93
+ | Gemini | `GOOGLE_API_KEY` | Free tier |
94
+ | NeuTTS / Piper / KittenTTS (local) | None | Free |
95
+
96
+ Voice commands: `/voice on` (voice-to-voice), `/voice tts` (always voice), `/voice off`.
@@ -0,0 +1,151 @@
1
+ # Contributor Quick Reference
2
+
3
+ > Maintainer reference only. Read-only diagnosis may use the deployed Hermes
4
+ > version; mutation, installation, provider credentials, cron, webhook, profile
5
+ > and lifecycle changes require a separate authorized Runtime maintenance task.
6
+ > These examples do not install tools or grant permissions in a tenant session.
7
+ > Do not copy literal secret placeholders into config; inject scoped credentials
8
+ > through the existing Runtime mechanism. Verify version-specific commands.
9
+
10
+ For occasional contributors and PR authors. Full developer docs: https://hermes-agent.nousresearch.com/docs/developer-guide/
11
+
12
+ ### Project Layout
13
+
14
+ ```
15
+ hermes-agent/
16
+ ├── run_agent.py # AIAgent — core conversation loop
17
+ ├── model_tools.py # Tool discovery and dispatch
18
+ ├── toolsets.py # Toolset definitions
19
+ ├── cli.py # Interactive CLI (HermesCLI)
20
+ ├── hermes_state.py # SQLite session store
21
+ ├── agent/ # Prompt builder, context compression, memory, model routing, credential pooling, skill dispatch
22
+ ├── hermes_cli/ # CLI subcommands, config, setup, commands
23
+ │ ├── commands.py # Slash command registry (CommandDef)
24
+ │ ├── config.py # DEFAULT_CONFIG, env var definitions
25
+ │ └── main.py # CLI entry point and argparse
26
+ ├── tools/ # One file per tool
27
+ │ └── registry.py # Central tool registry
28
+ ├── gateway/ # Messaging gateway
29
+ │ └── platforms/ # Platform adapters (telegram, discord, etc.)
30
+ ├── cron/ # Job scheduler
31
+ ├── tests/ # Extensive pytest suite (run via scripts/run_tests.sh)
32
+ └── website/ # Docusaurus docs site
33
+ ```
34
+
35
+ Config: `~/.hermes/config.yaml` (settings), `~/.hermes/.env` (API keys) — both under `$HERMES_HOME` when it is set.
36
+
37
+ ### Adding a Tool
38
+
39
+ Two files. Auto-discovery imports any `tools/*.py` with a top-level
40
+ `registry.register()` call, but a tool is only *exposed* to an agent once
41
+ its name appears in a toolset.
42
+
43
+ **1. Create `tools/your_tool.py`:**
44
+ ```python
45
+ import json, os
46
+ from tools.registry import registry
47
+
48
+ def check_requirements() -> bool:
49
+ return bool(os.getenv("EXAMPLE_API_KEY"))
50
+
51
+ def example_tool(param: str, task_id: str = None) -> str:
52
+ return json.dumps({"success": True, "data": "..."})
53
+
54
+ registry.register(
55
+ name="example_tool",
56
+ toolset="example",
57
+ schema={"name": "example_tool", "description": "...", "parameters": {...}},
58
+ handler=lambda args, **kw: example_tool(
59
+ param=args.get("param", ""), task_id=kw.get("task_id")),
60
+ check_fn=check_requirements,
61
+ requires_env=["EXAMPLE_API_KEY"],
62
+ )
63
+ ```
64
+
65
+ **2. Wire it into a toolset in `toolsets.py`** — add the name to
66
+ `_HERMES_CORE_TOOLS` (every platform) or to a specific toolset.
67
+
68
+ All handlers must return JSON strings. Use `get_hermes_home()` for paths,
69
+ never hardcode `~/.hermes`. For custom/local-only tools, write a plugin in
70
+ `~/.hermes/plugins/` instead of editing core — see the developer docs.
71
+
72
+ ### Adding a Slash Command
73
+
74
+ 1. Add `CommandDef` to `COMMAND_REGISTRY` in `hermes_cli/commands.py`
75
+ 2. Add handler in `cli.py` → `process_command()`
76
+ 3. (Optional) Add gateway handler in `gateway/run.py`
77
+
78
+ All consumers (help text, autocomplete, Telegram menu, Slack mapping) derive from the central registry automatically.
79
+
80
+ ### Agent Loop (High Level)
81
+
82
+ ```
83
+ run_conversation():
84
+ 1. Build system prompt
85
+ 2. Loop while iterations < max:
86
+ a. Call LLM (OpenAI-format messages + tool schemas)
87
+ b. If tool_calls → dispatch each via handle_function_call() → append results → continue
88
+ c. If text response → return
89
+ 3. Context compression triggers automatically near token limit
90
+ ```
91
+
92
+ ### Testing
93
+
94
+ Use the canonical runner — it enforces CI-parity (hermetic `env -i`, unset
95
+ credentials, TZ=UTC, per-file subprocess isolation via
96
+ `scripts/run_tests_parallel.py` — no xdist, worker count auto-scaled):
97
+
98
+ ```bash
99
+ scripts/run_tests.sh # full suite
100
+ scripts/run_tests.sh tests/tools/ # one directory
101
+ scripts/run_tests.sh tests/tools/test_x.py # one file
102
+ scripts/run_tests.sh -v --tb=long # pass-through pytest flags
103
+ ```
104
+
105
+ - Tests auto-redirect `HERMES_HOME` to temp dirs — never touch real `~/.hermes/`.
106
+ - The script probes `.venv`, then `venv`, then the shared worktree venv.
107
+ - **Windows:** the wrapper is POSIX-only; see `references/windows-quirks.md`
108
+ for the direct-pytest workaround.
109
+
110
+ **Cross-platform test guards:** tests using POSIX-only syscalls need a skip marker. Common ones already in the codebase:
111
+ - Symlink creation → `@pytest.mark.skipif(sys.platform == "win32", reason="Symlinks require elevated privileges on Windows")` (see `tests/cron/test_cron_script.py`)
112
+ - POSIX file modes (0o600, etc.) → `@pytest.mark.skipif(sys.platform.startswith("win"), reason="POSIX mode bits not enforced on Windows")` (see `tests/hermes_cli/test_auth_toctou_file_modes.py`)
113
+ - `signal.SIGALRM` → Unix-only (per-test timeouts no longer use it directly; see the win32 timeout-method shim in `tests/conftest.py::pytest_configure`)
114
+ - Live Winsock / Windows-specific regression tests → `@pytest.mark.skipif(sys.platform != "win32", reason="Windows-specific regression")`
115
+
116
+ **Monkeypatching `sys.platform` is not enough** when the code under test also calls `platform.system()` / `platform.release()` / `platform.mac_ver()`. Those functions re-read the real OS independently, so a test that sets `sys.platform = "linux"` on a Windows runner will still see `platform.system() == "Windows"` and route through the Windows branch. Patch all three together:
117
+
118
+ ```python
119
+ monkeypatch.setattr(sys, "platform", "linux")
120
+ monkeypatch.setattr(platform, "system", lambda: "Linux")
121
+ monkeypatch.setattr(platform, "release", lambda: "6.8.0-generic")
122
+ ```
123
+
124
+ See `tests/agent/test_prompt_builder.py::TestEnvironmentHints` for a worked example.
125
+
126
+ ### System prompt's execution-environment block
127
+
128
+ Factual host/backend guidance (OS, `$HOME`, cwd, terminal backend, shell)
129
+ is emitted by `agent/prompt_builder.py::build_environment_hints()`. The key
130
+ invariant for prompt authors: with a **remote** terminal backend
131
+ (`docker, singularity, modal, daytona, ssh, managed_modal`), host info is
132
+ suppressed and *every* file tool runs inside the backend container — the
133
+ prompt must never describe the host the agent can't touch.
134
+
135
+ ### Commit Conventions
136
+
137
+ ```
138
+ type: concise subject line
139
+
140
+ Optional body.
141
+ ```
142
+
143
+ Types: `fix:`, `feat:`, `refactor:`, `docs:`, `chore:`
144
+
145
+ ### Key Rules
146
+
147
+ - **Never break prompt caching** — don't change context, tools, or system prompt mid-conversation
148
+ - **Message role alternation** — never two assistant or two user messages in a row
149
+ - Use `get_hermes_home()` from `hermes_constants` for all paths (profile-safe)
150
+ - Config values go in `config.yaml`, secrets go in `.env`
151
+ - New tools need a `check_fn` so they only appear when requirements are met
@@ -0,0 +1,47 @@
1
+ # Diagnosing delegation concurrency and total budgets
2
+
3
+ Use this as a maintainer diagnostic, not permission to spawn more workers or
4
+ edit a tenant's Runtime configuration. First identify the deployed Hermes
5
+ version and exact resolved settings. Defaults below describe the audited source
6
+ 1a1f4a59e252e1dc0137e7b2e7bcc8b0381d19c4, not every installation.
7
+
8
+ ## Distinct constraints
9
+
10
+ - delegation.max_concurrent_children: default 10 in tools/delegate_tool_config.py.
11
+ Configuration/env overrides and a floor of 1 apply.
12
+ - A batch larger than the allowed concurrent children can be rejected.
13
+ - Multiple delegate_task calls in one turn can be truncated by the parent.
14
+ - One-shot execution also has a TOTAL subagent budget (default 2 in the audited
15
+ code). A later call can exhaust that budget despite free concurrent slots.
16
+ - Nesting depth, leaf role, approval, provider failures and tool availability
17
+ can prevent delegation independently of these counts.
18
+ - A high-cost warning above 10 is emitted once; it is not itself a throttle.
19
+
20
+ ## Diagnostic sequence
21
+
22
+ 1. Read the task's actual model tool calls, returned errors and parent/child
23
+ lifecycle records. Redact prompts, credentials and tenant data.
24
+ 2. Inspect effective config using the deployed version's read-only config
25
+ command; do not assume a value typed in a source file was loaded.
26
+ 3. Compare batch length, current active workers, total children already spawned,
27
+ one-shot mode/budget, nesting role/depth and approvals.
28
+ 4. Trace tools/delegate_tool_config.py, tools/delegate_tool.py and the parent
29
+ call limiter in the exact deployed checkout if necessary.
30
+ 5. Search bounded logs for rejection/truncation AND one-shot budget errors.
31
+ Absence of a log line does not prove absence of a limiter or prove model
32
+ self-restraint; logging may differ by version or context.
33
+ 6. Only attribute model-side under-dispatch when the actual emitted tool call
34
+ requests fewer tasks and the other constraints are verified, not from prose.
35
+
36
+ ## Running the requested work
37
+
38
+ Use the exposed delegate_task tool directly when available and within all
39
+ budgets. It is not in the audited execute_code web/file/terminal allowlist;
40
+ never attempt to route it through code execution to evade a limit.
41
+ Queue bounded batches or perform lenses sequentially when workers are limited.
42
+ Do not increase concurrency, disable approval or change model automatically.
43
+
44
+ Concurrency is per-parent in the inspected code; account/provider/host-wide
45
+ limits can still apply. A background child is not evidence of a durable task.
46
+ If durable execution is required, use Prismer's task ownership and scheduler
47
+ contract, not a second Hermes control plane.
@@ -0,0 +1,215 @@
1
+ # Desktop App Plugins — UI Panes, Commands, Widgets
2
+
3
+ > Maintainer reference only. Read-only diagnosis may use the deployed Hermes
4
+ > version; mutation, installation, provider credentials, cron, webhook, profile
5
+ > and lifecycle changes require a separate authorized Runtime maintenance task.
6
+ > These examples do not install tools or grant permissions in a tenant session.
7
+ > Do not copy literal secret placeholders into config; inject scoped credentials
8
+ > through the existing Runtime mechanism. Verify version-specific commands.
9
+
10
+ Write plugins for the Hermes desktop app: statusbar items, layout panes,
11
+ command-palette commands, keybinds, routes, and themes. A plugin is a single
12
+ plain-JavaScript ESM file the app loads at runtime — no build step, no repo
13
+ changes. A plugin can also talk to its own Python backend namespace
14
+ (`ctx.rest`/`ctx.socket` → `/api/plugins/<id>`); the general Python plugin
15
+ system (`~/.hermes/plugins/`) is otherwise documented separately.
16
+
17
+ There are TWO on-disk doors, same contract and hot reload:
18
+
19
+ - `$HERMES_HOME/desktop-plugins/<id>/plugin.js` — standalone desktop plugin.
20
+ Loads enabled by default.
21
+ - `$HERMES_HOME/plugins/<id>/desktop/plugin.js` — the desktop HALF of a
22
+ unified agent-plugin package: the same folder that carries the Python
23
+ plugin (`plugin.yaml`) and its `dashboard/plugin_api.py` backend ships its
24
+ desktop UI beside them, so one feature installs/uninstalls as one folder.
25
+ The Electron shell copies that half into `desktop-plugins/<id>/` (with a
26
+ `.hermes-package.json` marker) — the ONLY root the renderer loads from — so
27
+ the pane is app-level and does not come and go with the selected profile.
28
+ This half is OPT-IN: it inventories in Capabilities → Plugins but stays off
29
+ until the user toggles it (matching the Python half's `plugins.enabled`
30
+ gate). Tell the user to flip it on after installing — don't debug a
31
+ "plugin not appearing" report before checking that toggle.
32
+
33
+ Full human reference (every export, area payloads, backend, security):
34
+ `website/docs/developer-guide/desktop-plugin-sdk.md`.
35
+
36
+ ## When to Use
37
+
38
+ - The user asks for a new desktop UI element (a pane, a statusbar widget, a
39
+ dashboard, a command) without modifying the app itself.
40
+ - You want to surface data you compute (via gateway RPC) inside the app.
41
+
42
+ ## Prerequisites
43
+
44
+ - The Hermes desktop app (it loads plugins; the CLI/gateway alone does not).
45
+ - Write access to `$HERMES_HOME/desktop-plugins/` (usually
46
+ `~/.hermes/desktop-plugins/`).
47
+
48
+ ## How to Run
49
+
50
+ 1. Create `$HERMES_HOME/desktop-plugins/<name>/plugin.js` from
51
+ `templates/plugin.js` (in this skill directory) — that's
52
+ `~/.hermes/...` by default, or `~/.hermes/profiles/<profile>/...` under a
53
+ named profile. Keep `<name>` equal to the plugin `id`.
54
+ 2. The desktop app watches that directory: the plugin loads within a few
55
+ seconds of the file landing, and every later save hot-reloads it in
56
+ place. No reload step. (Fallback if it doesn't appear: ⌘K →
57
+ **Reload desktop plugins**.)
58
+ 3. If loading fails the app shows a toast naming the error — fix the file
59
+ and save again.
60
+
61
+ ## Quick Reference
62
+
63
+ The ONLY import surface is `@hermes/plugin-sdk` (plus `react` /
64
+ `react/jsx-runtime`, which resolve to the app's own React — write UI with
65
+ `jsx()` calls, not JSX syntax; the file is not compiled).
66
+
67
+ - `host.state.*` — readonly reactive atoms: `activeSessionId`, `busy`,
68
+ `awaitingResponse`, `busyBySession`, `cwd`, `gateway` (socket state, not
69
+ turn-busy), `model`, `profile`, `viewport`, plus the tile-aware focused
70
+ session atoms: `focusedSessionId` (runtime id — key for `session.*` RPC),
71
+ `focusedStoredSessionId` (durable id — navigation / list matching),
72
+ `focusedSessionProfile` (owner profile of the focused chat — prefer over
73
+ `profile` for per-bot/profile readouts; `profile` is the gateway socket's
74
+ home, which does not move with tab focus), and
75
+ `focusedUsage` (live streamed `UsageStats` of the focused session, no RPC
76
+ needed). `busy` is true while the focused chat is working after a send
77
+ (thinking and streaming). `awaitingResponse` is true until the first
78
+ assistant payload. `busyBySession` maps runtime session id → mid-turn,
79
+ for rosters that watch every session. Prefer the focused atoms for any
80
+ readout that should follow the user between tiles. Read with `.get()`
81
+ in handlers,
82
+ `useValue(atom)` in components.
83
+ - `host.request(method, params)` — gateway JSON-RPC (sessions, config,
84
+ skills, cron — everything the app uses).
85
+ - `host.onEvent(type, fn)` — live gateway events (`'*'` for all). Returns a
86
+ disposer.
87
+ - `host.notify({ kind, message })`, `host.navigate(path)`, `host.logs(...)`,
88
+ `host.status()`, `haptic('tap')`.
89
+ - `ctx.register({ id, area, order?, render?, data? })` — contribute UI.
90
+ Key areas: `'statusBar.right'`/`'statusBar.left'` (chips),
91
+ `'panes'` (layout zones — set `title` and
92
+ `data: { placement, dock?, width?, height? }`; the pane auto-joins a
93
+ matching zone), `PALETTE_AREA` (⌘K commands), `KEYBINDS_AREA` (rebindable
94
+ actions), `THEMES_AREA` (`data` is a full `DesktopTheme`).
95
+ - THEMES: registering one only lists it in the picker. Select it with
96
+ `useTheme().setTheme(name)` from a component, or `requestTheme(name)` from a
97
+ callback with no component around it (a gateway event, a socket handler).
98
+ `requestTheme` returns `false` for a name that doesn't resolve and leaves the
99
+ appearance alone, so use it as the availability check instead of coercing the
100
+ user back to the default skin.
101
+ - Pane placement: `placement: 'left'|'right'|'bottom'|'main'` is the
102
+ semantic role — the pane stacks (tabs) with existing panes of that role.
103
+ To land on a specific EDGE instead, add `dock: { pane, pos }` — the same
104
+ gesture as dragging onto a pane's drop chip. `pane` is any pane id
105
+ (`workspace` is the main thread; also `sessions`, `terminal`, `files`,
106
+ `review`, `logs`), `pos` is `'top'|'bottom'|'left'|'right'|'center'`.
107
+ E.g. "below the conversation" = `dock: { pane: 'workspace', pos: 'bottom' }`
108
+ — declare a `height` (e.g. `'200px'`) so it doesn't take half the zone.
109
+ - Full PAGES: register `area: ROUTES_AREA` with `data: { path: '/my-page' }`
110
+ and a `render` — the page mounts in the workspace (main) pane like any
111
+ built-in view. Make it reachable with a sidebar nav row:
112
+ `ctx.register({ id: 'nav', area: SIDEBAR_NAV_AREA, data: { path: '/my-page', label: 'My Page', codicon: 'project' } })`
113
+ (renders below Artifacts, lights up at the route) — and/or a
114
+ `PALETTE_AREA` command calling `host.navigate('/my-page')`.
115
+ - TRANSCRIPT directives: register `area: TRANSCRIPT_DIRECTIVE_AREA` with
116
+ `data: { name: 'task', render: ({ attrs, streaming }) => jsx(...) }` and
117
+ the assistant can render your component inline in a chat message by
118
+ emitting `::task{id="BB-12"}` alone on its own line. Attrs are untrusted
119
+ `key="value"` strings — validate them. Unclaimed/malformed directives fall
120
+ back to plain text; core's own `::preview{file="…"}` is the reference.
121
+ After registering one, TELL the model it exists (a bundled skill or the
122
+ user's instructions) — it won't discover the name on its own.
123
+ - `ctx.storage.get/set/remove` — persistence namespaced to your plugin.
124
+ - `ctx.os` — the curated OS door, attributed to your plugin:
125
+ `ctx.os.notify({ title, body?, silent?, icon?, activate?, onActivate?, actions? })`
126
+ posts a native OS notification. Fires only while the user is away from Hermes
127
+ (use `host.notify` for the in-app toast); gated by Settings ▸ Notifications ▸
128
+ "Plugin notifications" and throttled per plugin — reserve it for genuinely
129
+ notable events. `activate` accepts a plugin deep link
130
+ (`hermes://index-network/intent/1`), a hash path (`/index-network/intent/1`),
131
+ or `{ path, params }` — same resolver as OS deep links. Action buttons may
132
+ set their own `activate` or an `onAction`
133
+ callback (renderer-only; only the action id crosses IPC).
134
+ `ctx.os.openExternal(url)`, `ctx.os.revealPath(path)`, and
135
+ `ctx.os.writeClipboard(text)` resolve `false` (never throw) when the
136
+ capability isn't available.
137
+ - `ctx.i18n.register({ en, ja, ... })` — ship your OWN locale bundles, scoped
138
+ to your plugin (never edit core `en.ts`). Values are literal strings or
139
+ interpolator functions; nested trees are addressed by dot-path. Read them
140
+ reactively in components with `usePluginI18n(id)` returning `t('key', ...args)`
141
+ (re-renders on a locale switch), or via `ctx.i18n.t` in handlers/stores.
142
+ Resolution follows the app's active locale, then your `en`, then the raw key.
143
+ - Data: `useQuery`/`useMutation`/`useQueryClient`/`queryClient` (the app's ONE
144
+ React Query client — cache, dedupe, `refetchInterval`, invalidate like core;
145
+ never hand-roll a poll loop), plus `atom`/`computed` for plugin-local state.
146
+ - Backend: if the plugin ships a Python `plugin_api.py` (under
147
+ `~/.hermes/plugins/<id>/dashboard/`, manifest `"api": "plugin_api.py"`), reach
148
+ it with `ctx.rest('/path', { method?, body?, timeoutMs? })` and its live twin
149
+ `ctx.socket('/events', onMessage)` — both scoped to `/api/plugins/<id>` by
150
+ construction (traversal rejected). `ctx.socket` is a **no-op on OAuth
151
+ remotes**, so always keep a polling fallback. The Python backend is imported
152
+ only when the plugin is in `plugins.enabled` in `config.yaml` (separate from
153
+ the in-app enable toggle). For gateway-wide data use `host.request` /
154
+ `host.onEvent` instead.
155
+ - `Contribute` (mount-scoped): render `jsx(Contribute, { area, id, children })`
156
+ inside a component so page-owned chrome (e.g. a titlebar control in
157
+ `TITLEBAR_AREAS.center`) leaves when the page unmounts — `ctx.register` is for
158
+ permanent contributions.
159
+ - `defaultEnabled: false` on the default export ships an opt-in plugin: it
160
+ inventories in Settings → Plugins, off until the user flips it on.
161
+ - Users manage plugins in Settings → Plugins (enable/disable live, reveal
162
+ folder). A disabled plugin stays disabled across restarts — don't fight
163
+ it; the user turned you off.
164
+ - UI: the app's design language, importable directly — `Button`, `Input`,
165
+ `Textarea`, `Select*`, `Switch`, `Checkbox`, `SegmentedControl`, `Tabs*`,
166
+ `Dialog*`, `ConfirmDialog`, `DropdownMenu*`, `ContextMenu*`, `Popover*`,
167
+ `Tip`/`Tooltip*`, `Badge`, `Kbd`/`KbdGroup`, `SearchField`, `ScrollArea`,
168
+ `Separator`, `Skeleton`, `GlyphSpinner`, `EmptyState`, `ErrorState`,
169
+ `CopyButton`, `StatusDot`, `LogView`, `Codicon`, `DecodeText`, plus `cn`
170
+ and `icons.*`. Prefer these over hand-rolled elements so the plugin looks
171
+ native; style with theme vars, never hardcoded colors.
172
+
173
+ ## Procedure
174
+
175
+ 1. Pick a short kebab-case `id`; the folder name must match.
176
+ 2. Start from `templates/plugin.js`; keep the default export shape
177
+ (`{ id, name, register(ctx) }`).
178
+ 3. For a pane, register `area: 'panes'` with a `placement` hint and a
179
+ `render` returning your component — the app places it into a sensible
180
+ zone automatically; the user can drag it anywhere afterwards.
181
+ 4. Fetch data with `host.request` and/or subscribe with `host.onEvent`;
182
+ never poll faster than a few seconds.
183
+ 5. Write the file with your file tools, then ask the user to run
184
+ **Reload desktop plugins** from ⌘K.
185
+
186
+ ## Pitfalls
187
+
188
+ - NEVER hardcode colors or backgrounds (`#000`, `black`, `rgb(...)`). Panes
189
+ already sit on the app's editor background — leave the background alone
190
+ and use theme variables for everything else: `var(--ui-text-secondary)`,
191
+ `var(--ui-text-quaternary)`, `var(--ui-stroke-secondary)`,
192
+ `var(--ui-accent)`. For canvas drawing, resolve them once with
193
+ `getComputedStyle(canvas).getPropertyValue('--ui-accent')`.
194
+ - Reference only what you imported — a component you forgot to import
195
+ (e.g. `StatusDot`) is a ReferenceError at render. Double-check every
196
+ identifier in your `jsx()` calls appears in the import line.
197
+ - Canvas panes MUST track their container with a `ResizeObserver` and
198
+ re-size the canvas (width/height attributes, not just CSS) — panes resize
199
+ constantly (sash drags, layout switches); a mount-time-only size leaves
200
+ blank space or blurry scaling.
201
+ - JSX syntax will not parse — the file loads uncompiled. Use
202
+ `jsx('div', { children: ... })` from `react/jsx-runtime`.
203
+ - Do not import anything except `@hermes/plugin-sdk`, `react`, and
204
+ `react/jsx-runtime`; other specifiers fail to resolve.
205
+ - Handlers must read state imperatively (`$atom.get()`), never from render
206
+ closures — rapid events will otherwise see stale values.
207
+ - Keep components small; subscribe (`useValue`) only in the leaf that
208
+ renders the value.
209
+
210
+ ## Verification
211
+
212
+ - The plugin's UI appears after **Reload desktop plugins**.
213
+ - No error toast ("Plugin <name> failed to load") appears; if it does, the
214
+ message names the failure — fix and reload.
215
+ - For panes: the new zone is visible and draggable like any core pane.