@jahia/agentic 0.0.0

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 (307) hide show
  1. package/README.md +48 -0
  2. package/dist/claude/.claude/rules/jahia.md +76 -0
  3. package/dist/claude/.claude/skills/jahia/SKILL.md +136 -0
  4. package/dist/claude/.claude/skills/jahia-content/SKILL.md +139 -0
  5. package/dist/claude/.claude/skills/jahia-content-create-content/SKILL.md +384 -0
  6. package/dist/claude/.claude/skills/jahia-content-explore-structure/SKILL.md +164 -0
  7. package/dist/claude/.claude/skills/jahia-content-move-content/SKILL.md +236 -0
  8. package/dist/claude/.claude/skills/jahia-content-query-content/SKILL.md +144 -0
  9. package/dist/claude/.claude/skills/jahia-content-translate-content/SKILL.md +297 -0
  10. package/dist/claude/.claude/skills/jahia-dev/SKILL.md +124 -0
  11. package/dist/claude/.claude/skills/jahia-dev-accessibility/SKILL.md +271 -0
  12. package/dist/claude/.claude/skills/jahia-dev-apis/SKILL.md +52 -0
  13. package/dist/claude/.claude/skills/jahia-dev-apis/references/authentication.md +484 -0
  14. package/dist/claude/.claude/skills/jahia-dev-apis/references/graphql.md +657 -0
  15. package/dist/claude/.claude/skills/jahia-dev-apis/references/jcr-api.md +465 -0
  16. package/dist/claude/.claude/skills/jahia-dev-apis/references/security.md +541 -0
  17. package/dist/claude/.claude/skills/jahia-dev-build-component/SKILL.md +140 -0
  18. package/dist/claude/.claude/skills/jahia-dev-create-page-template/SKILL.md +303 -0
  19. package/dist/claude/.claude/skills/jahia-dev-create-template-set/SKILL.md +232 -0
  20. package/dist/claude/.claude/skills/jahia-dev-create-view/SKILL.md +838 -0
  21. package/dist/claude/.claude/skills/jahia-dev-cypress/SKILL.md +445 -0
  22. package/dist/claude/.claude/skills/jahia-dev-debug/SKILL.md +176 -0
  23. package/dist/claude/.claude/skills/jahia-dev-define-content-type/SKILL.md +536 -0
  24. package/dist/claude/.claude/skills/jahia-dev-import-from/SKILL.md +244 -0
  25. package/dist/claude/.claude/skills/jahia-dev-java/SKILL.md +105 -0
  26. package/dist/claude/.claude/skills/jahia-dev-java/references/backend.md +331 -0
  27. package/dist/claude/.claude/skills/jahia-dev-java/references/content-types.md +273 -0
  28. package/dist/claude/.claude/skills/jahia-dev-java/references/modules.md +218 -0
  29. package/dist/claude/.claude/skills/jahia-dev-java/references/osgi.md +208 -0
  30. package/dist/claude/.claude/skills/jahia-dev-java/references/rendering.md +191 -0
  31. package/dist/claude/.claude/skills/jahia-dev-java/references/ui-extensions.md +344 -0
  32. package/dist/claude/.claude/skills/jahia-dev-jexperience/SKILL.md +269 -0
  33. package/dist/claude/.claude/skills/jahia-dev-ops/SKILL.md +50 -0
  34. package/dist/claude/.claude/skills/jahia-dev-ops/references/docker.md +151 -0
  35. package/dist/claude/.claude/skills/jahia-dev-ops/references/monitoring.md +195 -0
  36. package/dist/claude/.claude/skills/jahia-dev-ops/references/provisioning.md +269 -0
  37. package/dist/claude/.claude/skills/jahia-dev-osgi-module/SKILL.md +297 -0
  38. package/dist/claude/.claude/skills/jahia-dev-properties/SKILL.md +147 -0
  39. package/dist/claude/.claude/skills/jahia-dev-properties/references/all-properties.md +231 -0
  40. package/dist/claude/.claude/skills/jahia-dev-query-content/SKILL.md +407 -0
  41. package/dist/claude/.claude/skills/jahia-dev-review/SKILL.md +228 -0
  42. package/dist/claude/.claude/skills/jahia-dev-screenshot/SKILL.md +177 -0
  43. package/dist/claude/.claude/skills/jahia-dev-start-local/SKILL.md +129 -0
  44. package/dist/claude/.claude/skills/jahia-dev-ui-extension/SKILL.md +559 -0
  45. package/dist/claude/CLAUDE.md +90 -0
  46. package/dist/codex/.agents/skills/jahia/SKILL.md +136 -0
  47. package/dist/codex/.agents/skills/jahia-content/SKILL.md +139 -0
  48. package/dist/codex/.agents/skills/jahia-content-create-content/SKILL.md +384 -0
  49. package/dist/codex/.agents/skills/jahia-content-explore-structure/SKILL.md +164 -0
  50. package/dist/codex/.agents/skills/jahia-content-move-content/SKILL.md +236 -0
  51. package/dist/codex/.agents/skills/jahia-content-query-content/SKILL.md +144 -0
  52. package/dist/codex/.agents/skills/jahia-content-translate-content/SKILL.md +297 -0
  53. package/dist/codex/.agents/skills/jahia-dev/SKILL.md +124 -0
  54. package/dist/codex/.agents/skills/jahia-dev-accessibility/SKILL.md +271 -0
  55. package/dist/codex/.agents/skills/jahia-dev-apis/SKILL.md +52 -0
  56. package/dist/codex/.agents/skills/jahia-dev-apis/references/authentication.md +484 -0
  57. package/dist/codex/.agents/skills/jahia-dev-apis/references/graphql.md +657 -0
  58. package/dist/codex/.agents/skills/jahia-dev-apis/references/jcr-api.md +465 -0
  59. package/dist/codex/.agents/skills/jahia-dev-apis/references/security.md +541 -0
  60. package/dist/codex/.agents/skills/jahia-dev-build-component/SKILL.md +140 -0
  61. package/dist/codex/.agents/skills/jahia-dev-create-page-template/SKILL.md +303 -0
  62. package/dist/codex/.agents/skills/jahia-dev-create-template-set/SKILL.md +232 -0
  63. package/dist/codex/.agents/skills/jahia-dev-create-view/SKILL.md +838 -0
  64. package/dist/codex/.agents/skills/jahia-dev-cypress/SKILL.md +445 -0
  65. package/dist/codex/.agents/skills/jahia-dev-debug/SKILL.md +176 -0
  66. package/dist/codex/.agents/skills/jahia-dev-define-content-type/SKILL.md +536 -0
  67. package/dist/codex/.agents/skills/jahia-dev-import-from/SKILL.md +244 -0
  68. package/dist/codex/.agents/skills/jahia-dev-java/SKILL.md +105 -0
  69. package/dist/codex/.agents/skills/jahia-dev-java/references/backend.md +331 -0
  70. package/dist/codex/.agents/skills/jahia-dev-java/references/content-types.md +273 -0
  71. package/dist/codex/.agents/skills/jahia-dev-java/references/modules.md +218 -0
  72. package/dist/codex/.agents/skills/jahia-dev-java/references/osgi.md +208 -0
  73. package/dist/codex/.agents/skills/jahia-dev-java/references/rendering.md +191 -0
  74. package/dist/codex/.agents/skills/jahia-dev-java/references/ui-extensions.md +344 -0
  75. package/dist/codex/.agents/skills/jahia-dev-jexperience/SKILL.md +269 -0
  76. package/dist/codex/.agents/skills/jahia-dev-ops/SKILL.md +50 -0
  77. package/dist/codex/.agents/skills/jahia-dev-ops/references/docker.md +151 -0
  78. package/dist/codex/.agents/skills/jahia-dev-ops/references/monitoring.md +195 -0
  79. package/dist/codex/.agents/skills/jahia-dev-ops/references/provisioning.md +269 -0
  80. package/dist/codex/.agents/skills/jahia-dev-osgi-module/SKILL.md +297 -0
  81. package/dist/codex/.agents/skills/jahia-dev-properties/SKILL.md +147 -0
  82. package/dist/codex/.agents/skills/jahia-dev-properties/references/all-properties.md +231 -0
  83. package/dist/codex/.agents/skills/jahia-dev-query-content/SKILL.md +407 -0
  84. package/dist/codex/.agents/skills/jahia-dev-review/SKILL.md +228 -0
  85. package/dist/codex/.agents/skills/jahia-dev-screenshot/SKILL.md +177 -0
  86. package/dist/codex/.agents/skills/jahia-dev-start-local/SKILL.md +129 -0
  87. package/dist/codex/.agents/skills/jahia-dev-ui-extension/SKILL.md +559 -0
  88. package/dist/codex/AGENTS.md +89 -0
  89. package/dist/copilot/.agents/skills/jahia/SKILL.md +136 -0
  90. package/dist/copilot/.agents/skills/jahia-content/SKILL.md +139 -0
  91. package/dist/copilot/.agents/skills/jahia-content-create-content/SKILL.md +384 -0
  92. package/dist/copilot/.agents/skills/jahia-content-explore-structure/SKILL.md +164 -0
  93. package/dist/copilot/.agents/skills/jahia-content-move-content/SKILL.md +236 -0
  94. package/dist/copilot/.agents/skills/jahia-content-query-content/SKILL.md +144 -0
  95. package/dist/copilot/.agents/skills/jahia-content-translate-content/SKILL.md +297 -0
  96. package/dist/copilot/.agents/skills/jahia-dev/SKILL.md +124 -0
  97. package/dist/copilot/.agents/skills/jahia-dev-accessibility/SKILL.md +271 -0
  98. package/dist/copilot/.agents/skills/jahia-dev-apis/SKILL.md +52 -0
  99. package/dist/copilot/.agents/skills/jahia-dev-apis/references/authentication.md +484 -0
  100. package/dist/copilot/.agents/skills/jahia-dev-apis/references/graphql.md +657 -0
  101. package/dist/copilot/.agents/skills/jahia-dev-apis/references/jcr-api.md +465 -0
  102. package/dist/copilot/.agents/skills/jahia-dev-apis/references/security.md +541 -0
  103. package/dist/copilot/.agents/skills/jahia-dev-build-component/SKILL.md +140 -0
  104. package/dist/copilot/.agents/skills/jahia-dev-create-page-template/SKILL.md +303 -0
  105. package/dist/copilot/.agents/skills/jahia-dev-create-template-set/SKILL.md +232 -0
  106. package/dist/copilot/.agents/skills/jahia-dev-create-view/SKILL.md +838 -0
  107. package/dist/copilot/.agents/skills/jahia-dev-cypress/SKILL.md +445 -0
  108. package/dist/copilot/.agents/skills/jahia-dev-debug/SKILL.md +176 -0
  109. package/dist/copilot/.agents/skills/jahia-dev-define-content-type/SKILL.md +536 -0
  110. package/dist/copilot/.agents/skills/jahia-dev-import-from/SKILL.md +244 -0
  111. package/dist/copilot/.agents/skills/jahia-dev-java/SKILL.md +105 -0
  112. package/dist/copilot/.agents/skills/jahia-dev-java/references/backend.md +331 -0
  113. package/dist/copilot/.agents/skills/jahia-dev-java/references/content-types.md +273 -0
  114. package/dist/copilot/.agents/skills/jahia-dev-java/references/modules.md +218 -0
  115. package/dist/copilot/.agents/skills/jahia-dev-java/references/osgi.md +208 -0
  116. package/dist/copilot/.agents/skills/jahia-dev-java/references/rendering.md +191 -0
  117. package/dist/copilot/.agents/skills/jahia-dev-java/references/ui-extensions.md +344 -0
  118. package/dist/copilot/.agents/skills/jahia-dev-jexperience/SKILL.md +269 -0
  119. package/dist/copilot/.agents/skills/jahia-dev-ops/SKILL.md +50 -0
  120. package/dist/copilot/.agents/skills/jahia-dev-ops/references/docker.md +151 -0
  121. package/dist/copilot/.agents/skills/jahia-dev-ops/references/monitoring.md +195 -0
  122. package/dist/copilot/.agents/skills/jahia-dev-ops/references/provisioning.md +269 -0
  123. package/dist/copilot/.agents/skills/jahia-dev-osgi-module/SKILL.md +297 -0
  124. package/dist/copilot/.agents/skills/jahia-dev-properties/SKILL.md +147 -0
  125. package/dist/copilot/.agents/skills/jahia-dev-properties/references/all-properties.md +231 -0
  126. package/dist/copilot/.agents/skills/jahia-dev-query-content/SKILL.md +407 -0
  127. package/dist/copilot/.agents/skills/jahia-dev-review/SKILL.md +228 -0
  128. package/dist/copilot/.agents/skills/jahia-dev-screenshot/SKILL.md +177 -0
  129. package/dist/copilot/.agents/skills/jahia-dev-start-local/SKILL.md +129 -0
  130. package/dist/copilot/.agents/skills/jahia-dev-ui-extension/SKILL.md +559 -0
  131. package/dist/copilot/AGENTS.md +89 -0
  132. package/dist/cursor/.agents/skills/jahia/SKILL.md +136 -0
  133. package/dist/cursor/.agents/skills/jahia-content/SKILL.md +139 -0
  134. package/dist/cursor/.agents/skills/jahia-content-create-content/SKILL.md +384 -0
  135. package/dist/cursor/.agents/skills/jahia-content-explore-structure/SKILL.md +164 -0
  136. package/dist/cursor/.agents/skills/jahia-content-move-content/SKILL.md +236 -0
  137. package/dist/cursor/.agents/skills/jahia-content-query-content/SKILL.md +144 -0
  138. package/dist/cursor/.agents/skills/jahia-content-translate-content/SKILL.md +297 -0
  139. package/dist/cursor/.agents/skills/jahia-dev/SKILL.md +124 -0
  140. package/dist/cursor/.agents/skills/jahia-dev-accessibility/SKILL.md +271 -0
  141. package/dist/cursor/.agents/skills/jahia-dev-apis/SKILL.md +52 -0
  142. package/dist/cursor/.agents/skills/jahia-dev-apis/references/authentication.md +484 -0
  143. package/dist/cursor/.agents/skills/jahia-dev-apis/references/graphql.md +657 -0
  144. package/dist/cursor/.agents/skills/jahia-dev-apis/references/jcr-api.md +465 -0
  145. package/dist/cursor/.agents/skills/jahia-dev-apis/references/security.md +541 -0
  146. package/dist/cursor/.agents/skills/jahia-dev-build-component/SKILL.md +140 -0
  147. package/dist/cursor/.agents/skills/jahia-dev-create-page-template/SKILL.md +303 -0
  148. package/dist/cursor/.agents/skills/jahia-dev-create-template-set/SKILL.md +232 -0
  149. package/dist/cursor/.agents/skills/jahia-dev-create-view/SKILL.md +838 -0
  150. package/dist/cursor/.agents/skills/jahia-dev-cypress/SKILL.md +445 -0
  151. package/dist/cursor/.agents/skills/jahia-dev-debug/SKILL.md +176 -0
  152. package/dist/cursor/.agents/skills/jahia-dev-define-content-type/SKILL.md +536 -0
  153. package/dist/cursor/.agents/skills/jahia-dev-import-from/SKILL.md +244 -0
  154. package/dist/cursor/.agents/skills/jahia-dev-java/SKILL.md +105 -0
  155. package/dist/cursor/.agents/skills/jahia-dev-java/references/backend.md +331 -0
  156. package/dist/cursor/.agents/skills/jahia-dev-java/references/content-types.md +273 -0
  157. package/dist/cursor/.agents/skills/jahia-dev-java/references/modules.md +218 -0
  158. package/dist/cursor/.agents/skills/jahia-dev-java/references/osgi.md +208 -0
  159. package/dist/cursor/.agents/skills/jahia-dev-java/references/rendering.md +191 -0
  160. package/dist/cursor/.agents/skills/jahia-dev-java/references/ui-extensions.md +344 -0
  161. package/dist/cursor/.agents/skills/jahia-dev-jexperience/SKILL.md +269 -0
  162. package/dist/cursor/.agents/skills/jahia-dev-ops/SKILL.md +50 -0
  163. package/dist/cursor/.agents/skills/jahia-dev-ops/references/docker.md +151 -0
  164. package/dist/cursor/.agents/skills/jahia-dev-ops/references/monitoring.md +195 -0
  165. package/dist/cursor/.agents/skills/jahia-dev-ops/references/provisioning.md +269 -0
  166. package/dist/cursor/.agents/skills/jahia-dev-osgi-module/SKILL.md +297 -0
  167. package/dist/cursor/.agents/skills/jahia-dev-properties/SKILL.md +147 -0
  168. package/dist/cursor/.agents/skills/jahia-dev-properties/references/all-properties.md +231 -0
  169. package/dist/cursor/.agents/skills/jahia-dev-query-content/SKILL.md +407 -0
  170. package/dist/cursor/.agents/skills/jahia-dev-review/SKILL.md +228 -0
  171. package/dist/cursor/.agents/skills/jahia-dev-screenshot/SKILL.md +177 -0
  172. package/dist/cursor/.agents/skills/jahia-dev-start-local/SKILL.md +129 -0
  173. package/dist/cursor/.agents/skills/jahia-dev-ui-extension/SKILL.md +559 -0
  174. package/dist/cursor/.cursor/rules/jahia.mdc +80 -0
  175. package/dist/gemini/.agents/skills/jahia/SKILL.md +136 -0
  176. package/dist/gemini/.agents/skills/jahia-content/SKILL.md +139 -0
  177. package/dist/gemini/.agents/skills/jahia-content-create-content/SKILL.md +384 -0
  178. package/dist/gemini/.agents/skills/jahia-content-explore-structure/SKILL.md +164 -0
  179. package/dist/gemini/.agents/skills/jahia-content-move-content/SKILL.md +236 -0
  180. package/dist/gemini/.agents/skills/jahia-content-query-content/SKILL.md +144 -0
  181. package/dist/gemini/.agents/skills/jahia-content-translate-content/SKILL.md +297 -0
  182. package/dist/gemini/.agents/skills/jahia-dev/SKILL.md +124 -0
  183. package/dist/gemini/.agents/skills/jahia-dev-accessibility/SKILL.md +271 -0
  184. package/dist/gemini/.agents/skills/jahia-dev-apis/SKILL.md +52 -0
  185. package/dist/gemini/.agents/skills/jahia-dev-apis/references/authentication.md +484 -0
  186. package/dist/gemini/.agents/skills/jahia-dev-apis/references/graphql.md +657 -0
  187. package/dist/gemini/.agents/skills/jahia-dev-apis/references/jcr-api.md +465 -0
  188. package/dist/gemini/.agents/skills/jahia-dev-apis/references/security.md +541 -0
  189. package/dist/gemini/.agents/skills/jahia-dev-build-component/SKILL.md +140 -0
  190. package/dist/gemini/.agents/skills/jahia-dev-create-page-template/SKILL.md +303 -0
  191. package/dist/gemini/.agents/skills/jahia-dev-create-template-set/SKILL.md +232 -0
  192. package/dist/gemini/.agents/skills/jahia-dev-create-view/SKILL.md +838 -0
  193. package/dist/gemini/.agents/skills/jahia-dev-cypress/SKILL.md +445 -0
  194. package/dist/gemini/.agents/skills/jahia-dev-debug/SKILL.md +176 -0
  195. package/dist/gemini/.agents/skills/jahia-dev-define-content-type/SKILL.md +536 -0
  196. package/dist/gemini/.agents/skills/jahia-dev-import-from/SKILL.md +244 -0
  197. package/dist/gemini/.agents/skills/jahia-dev-java/SKILL.md +105 -0
  198. package/dist/gemini/.agents/skills/jahia-dev-java/references/backend.md +331 -0
  199. package/dist/gemini/.agents/skills/jahia-dev-java/references/content-types.md +273 -0
  200. package/dist/gemini/.agents/skills/jahia-dev-java/references/modules.md +218 -0
  201. package/dist/gemini/.agents/skills/jahia-dev-java/references/osgi.md +208 -0
  202. package/dist/gemini/.agents/skills/jahia-dev-java/references/rendering.md +191 -0
  203. package/dist/gemini/.agents/skills/jahia-dev-java/references/ui-extensions.md +344 -0
  204. package/dist/gemini/.agents/skills/jahia-dev-jexperience/SKILL.md +269 -0
  205. package/dist/gemini/.agents/skills/jahia-dev-ops/SKILL.md +50 -0
  206. package/dist/gemini/.agents/skills/jahia-dev-ops/references/docker.md +151 -0
  207. package/dist/gemini/.agents/skills/jahia-dev-ops/references/monitoring.md +195 -0
  208. package/dist/gemini/.agents/skills/jahia-dev-ops/references/provisioning.md +269 -0
  209. package/dist/gemini/.agents/skills/jahia-dev-osgi-module/SKILL.md +297 -0
  210. package/dist/gemini/.agents/skills/jahia-dev-properties/SKILL.md +147 -0
  211. package/dist/gemini/.agents/skills/jahia-dev-properties/references/all-properties.md +231 -0
  212. package/dist/gemini/.agents/skills/jahia-dev-query-content/SKILL.md +407 -0
  213. package/dist/gemini/.agents/skills/jahia-dev-review/SKILL.md +228 -0
  214. package/dist/gemini/.agents/skills/jahia-dev-screenshot/SKILL.md +177 -0
  215. package/dist/gemini/.agents/skills/jahia-dev-start-local/SKILL.md +129 -0
  216. package/dist/gemini/.agents/skills/jahia-dev-ui-extension/SKILL.md +559 -0
  217. package/dist/gemini/AGENTS.md +89 -0
  218. package/dist/gemini/GEMINI.md +6 -0
  219. package/dist/index.js +975 -0
  220. package/dist/opencode/.agents/skills/jahia/SKILL.md +136 -0
  221. package/dist/opencode/.agents/skills/jahia-content/SKILL.md +139 -0
  222. package/dist/opencode/.agents/skills/jahia-content-create-content/SKILL.md +384 -0
  223. package/dist/opencode/.agents/skills/jahia-content-explore-structure/SKILL.md +164 -0
  224. package/dist/opencode/.agents/skills/jahia-content-move-content/SKILL.md +236 -0
  225. package/dist/opencode/.agents/skills/jahia-content-query-content/SKILL.md +144 -0
  226. package/dist/opencode/.agents/skills/jahia-content-translate-content/SKILL.md +297 -0
  227. package/dist/opencode/.agents/skills/jahia-dev/SKILL.md +124 -0
  228. package/dist/opencode/.agents/skills/jahia-dev-accessibility/SKILL.md +271 -0
  229. package/dist/opencode/.agents/skills/jahia-dev-apis/SKILL.md +52 -0
  230. package/dist/opencode/.agents/skills/jahia-dev-apis/references/authentication.md +484 -0
  231. package/dist/opencode/.agents/skills/jahia-dev-apis/references/graphql.md +657 -0
  232. package/dist/opencode/.agents/skills/jahia-dev-apis/references/jcr-api.md +465 -0
  233. package/dist/opencode/.agents/skills/jahia-dev-apis/references/security.md +541 -0
  234. package/dist/opencode/.agents/skills/jahia-dev-build-component/SKILL.md +140 -0
  235. package/dist/opencode/.agents/skills/jahia-dev-create-page-template/SKILL.md +303 -0
  236. package/dist/opencode/.agents/skills/jahia-dev-create-template-set/SKILL.md +232 -0
  237. package/dist/opencode/.agents/skills/jahia-dev-create-view/SKILL.md +838 -0
  238. package/dist/opencode/.agents/skills/jahia-dev-cypress/SKILL.md +445 -0
  239. package/dist/opencode/.agents/skills/jahia-dev-debug/SKILL.md +176 -0
  240. package/dist/opencode/.agents/skills/jahia-dev-define-content-type/SKILL.md +536 -0
  241. package/dist/opencode/.agents/skills/jahia-dev-import-from/SKILL.md +244 -0
  242. package/dist/opencode/.agents/skills/jahia-dev-java/SKILL.md +105 -0
  243. package/dist/opencode/.agents/skills/jahia-dev-java/references/backend.md +331 -0
  244. package/dist/opencode/.agents/skills/jahia-dev-java/references/content-types.md +273 -0
  245. package/dist/opencode/.agents/skills/jahia-dev-java/references/modules.md +218 -0
  246. package/dist/opencode/.agents/skills/jahia-dev-java/references/osgi.md +208 -0
  247. package/dist/opencode/.agents/skills/jahia-dev-java/references/rendering.md +191 -0
  248. package/dist/opencode/.agents/skills/jahia-dev-java/references/ui-extensions.md +344 -0
  249. package/dist/opencode/.agents/skills/jahia-dev-jexperience/SKILL.md +269 -0
  250. package/dist/opencode/.agents/skills/jahia-dev-ops/SKILL.md +50 -0
  251. package/dist/opencode/.agents/skills/jahia-dev-ops/references/docker.md +151 -0
  252. package/dist/opencode/.agents/skills/jahia-dev-ops/references/monitoring.md +195 -0
  253. package/dist/opencode/.agents/skills/jahia-dev-ops/references/provisioning.md +269 -0
  254. package/dist/opencode/.agents/skills/jahia-dev-osgi-module/SKILL.md +297 -0
  255. package/dist/opencode/.agents/skills/jahia-dev-properties/SKILL.md +147 -0
  256. package/dist/opencode/.agents/skills/jahia-dev-properties/references/all-properties.md +231 -0
  257. package/dist/opencode/.agents/skills/jahia-dev-query-content/SKILL.md +407 -0
  258. package/dist/opencode/.agents/skills/jahia-dev-review/SKILL.md +228 -0
  259. package/dist/opencode/.agents/skills/jahia-dev-screenshot/SKILL.md +177 -0
  260. package/dist/opencode/.agents/skills/jahia-dev-start-local/SKILL.md +129 -0
  261. package/dist/opencode/.agents/skills/jahia-dev-ui-extension/SKILL.md +559 -0
  262. package/dist/opencode/AGENTS.md +89 -0
  263. package/dist/windsurf/.windsurf/rules/jahia.md +80 -0
  264. package/dist/windsurf/.windsurf/skills/jahia/SKILL.md +136 -0
  265. package/dist/windsurf/.windsurf/skills/jahia-content/SKILL.md +139 -0
  266. package/dist/windsurf/.windsurf/skills/jahia-content-create-content/SKILL.md +384 -0
  267. package/dist/windsurf/.windsurf/skills/jahia-content-explore-structure/SKILL.md +164 -0
  268. package/dist/windsurf/.windsurf/skills/jahia-content-move-content/SKILL.md +236 -0
  269. package/dist/windsurf/.windsurf/skills/jahia-content-query-content/SKILL.md +144 -0
  270. package/dist/windsurf/.windsurf/skills/jahia-content-translate-content/SKILL.md +297 -0
  271. package/dist/windsurf/.windsurf/skills/jahia-dev/SKILL.md +124 -0
  272. package/dist/windsurf/.windsurf/skills/jahia-dev-accessibility/SKILL.md +271 -0
  273. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/SKILL.md +52 -0
  274. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/authentication.md +484 -0
  275. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/graphql.md +657 -0
  276. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/jcr-api.md +465 -0
  277. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/security.md +541 -0
  278. package/dist/windsurf/.windsurf/skills/jahia-dev-build-component/SKILL.md +140 -0
  279. package/dist/windsurf/.windsurf/skills/jahia-dev-create-page-template/SKILL.md +303 -0
  280. package/dist/windsurf/.windsurf/skills/jahia-dev-create-template-set/SKILL.md +232 -0
  281. package/dist/windsurf/.windsurf/skills/jahia-dev-create-view/SKILL.md +838 -0
  282. package/dist/windsurf/.windsurf/skills/jahia-dev-cypress/SKILL.md +445 -0
  283. package/dist/windsurf/.windsurf/skills/jahia-dev-debug/SKILL.md +176 -0
  284. package/dist/windsurf/.windsurf/skills/jahia-dev-define-content-type/SKILL.md +536 -0
  285. package/dist/windsurf/.windsurf/skills/jahia-dev-import-from/SKILL.md +244 -0
  286. package/dist/windsurf/.windsurf/skills/jahia-dev-java/SKILL.md +105 -0
  287. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/backend.md +331 -0
  288. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/content-types.md +273 -0
  289. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/modules.md +218 -0
  290. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/osgi.md +208 -0
  291. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/rendering.md +191 -0
  292. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/ui-extensions.md +344 -0
  293. package/dist/windsurf/.windsurf/skills/jahia-dev-jexperience/SKILL.md +269 -0
  294. package/dist/windsurf/.windsurf/skills/jahia-dev-ops/SKILL.md +50 -0
  295. package/dist/windsurf/.windsurf/skills/jahia-dev-ops/references/docker.md +151 -0
  296. package/dist/windsurf/.windsurf/skills/jahia-dev-ops/references/monitoring.md +195 -0
  297. package/dist/windsurf/.windsurf/skills/jahia-dev-ops/references/provisioning.md +269 -0
  298. package/dist/windsurf/.windsurf/skills/jahia-dev-osgi-module/SKILL.md +297 -0
  299. package/dist/windsurf/.windsurf/skills/jahia-dev-properties/SKILL.md +147 -0
  300. package/dist/windsurf/.windsurf/skills/jahia-dev-properties/references/all-properties.md +231 -0
  301. package/dist/windsurf/.windsurf/skills/jahia-dev-query-content/SKILL.md +407 -0
  302. package/dist/windsurf/.windsurf/skills/jahia-dev-review/SKILL.md +228 -0
  303. package/dist/windsurf/.windsurf/skills/jahia-dev-screenshot/SKILL.md +177 -0
  304. package/dist/windsurf/.windsurf/skills/jahia-dev-start-local/SKILL.md +129 -0
  305. package/dist/windsurf/.windsurf/skills/jahia-dev-ui-extension/SKILL.md +559 -0
  306. package/dist/windsurf/AGENTS.md +89 -0
  307. package/package.json +28 -0
@@ -0,0 +1,164 @@
1
+ ---
2
+ name: jahia-content-explore-structure
3
+ user-invocable: false
4
+ description: Efficiently maps an unknown Jahia website's content structure before creating or editing content. Discovers available content types, their properties (i18n vs non-i18n), valid enum values, mixin requirements, and image assets — in the minimum number of API calls. Works on any Jahia instance including fresh installs with no reference site.
5
+ ---
6
+
7
+ # Skill: jahia-content-explore-structure
8
+
9
+ Use this skill **before** creating content on an unfamiliar Jahia site. It produces a reusable property map so that `/jahia-content-create-content` can work without trial-and-error mutations.
10
+
11
+ **No reference site required.** All content type definitions, property names, i18n flags, and enum constraints are retrieved directly from the GraphQL API via the `nodeTypeByName` and `nodeTypes` queries.
12
+
13
+ ---
14
+
15
+ ## Prerequisites
16
+
17
+ - Jahia running at `http://localhost:8080`
18
+ - Credentials: `root` / `root1234`
19
+ - Always include `-H "Origin: http://localhost:8080"` — omitting it causes `Permission denied`
20
+
21
+ ---
22
+
23
+ ## Step 1 — Batch site exploration (ONE call)
24
+
25
+ Use GraphQL aliases to retrieve everything you need in a **single HTTP request**: site metadata, page structure, file assets, and available content types.
26
+
27
+ First, find the site key:
28
+ ```bash
29
+ curl -s -u root:root1234 -H "Content-Type: application/json" -H "Origin: http://localhost:8080" \
30
+ -X POST http://localhost:8080/modules/graphql \
31
+ -d '{"query":"{ jcr { nodeByPath(path: \"/sites\") { children { nodes { name } } } } }"}'
32
+ ```
33
+
34
+ Then run the full batch query (replace `SITE_KEY` and `TEMPLATE_MODULE`):
35
+ ```bash
36
+ curl -s -u root:root1234 \
37
+ -H "Content-Type: application/json" -H "Origin: http://localhost:8080" \
38
+ -X POST http://localhost:8080/modules/graphql \
39
+ -d '{"query":"{ jcr { site: nodeByPath(path: \"/sites/SITE_KEY\") { properties(names: [\"j:templatesSet\",\"j:defaultLanguage\"]) { name value } } home: nodeByPath(path: \"/sites/SITE_KEY/home\") { children { nodes { name primaryNodeType { name } children { nodes { name primaryNodeType { name } } } } } } files: nodeByPath(path: \"/sites/SITE_KEY/files\") { children { nodes { name uuid } } } contentTypes: nodeTypes(filter: {siteKey: \"SITE_KEY\", includeMixins: false, includeAbstract: false}) { nodes { name systemId } } } }"}'
40
+ ```
41
+
42
+ From the response:
43
+ - `site.properties` → `j:templatesSet` (the template module name) and `j:defaultLanguage`
44
+ - `home.children` → page area structure; look for area nodes and check their children to see which content types are in use
45
+ - `files.children` → existing file folders and UUIDs
46
+ - `contentTypes.nodes` → all deployed types; filter by `systemId` matching `j:templatesSet` to find the site's own types
47
+
48
+ ---
49
+
50
+ ## Step 2 — Get ALL type definitions for the template module (ONE call)
51
+
52
+ Once you know `j:templatesSet` (e.g. `mymodule`) from Step 1, fetch **every type with all its properties** in a single call:
53
+
54
+ ```bash
55
+ curl -s -u root:root1234 \
56
+ -H "Content-Type: application/json" -H "Origin: http://localhost:8080" \
57
+ -X POST http://localhost:8080/modules/graphql \
58
+ -d '{
59
+ "query": "{ jcr { nodeTypes(filter: {modules: [\"TEMPLATE_MODULE\"], includeMixins: false, includeAbstract: false}) { nodes { name mixin supertypes { name } properties { name requiredType internationalized mandatory multiple constraints } nodes { name mandatory requiredPrimaryType { name } } } } } }"
60
+ }'
61
+ ```
62
+
63
+ > ✅ **This is the only type-definition call you need.** The `properties` array already includes **all inherited properties from supertypes and mixins** — the Jahia GraphQL API resolves inheritance automatically. Do **NOT** query supertypes separately, do **NOT** call `nodeTypeByName` for individual types, do **NOT** query mixin definitions.
64
+
65
+ If you also need properties from standard Jahia types (e.g. `jnt:bigText`, `jnt:text`), add them with `nodeTypesByNames`:
66
+
67
+ ```bash
68
+ curl -s -u root:root1234 \
69
+ -H "Content-Type: application/json" -H "Origin: http://localhost:8080" \
70
+ -X POST http://localhost:8080/modules/graphql \
71
+ -d '{"query":"{ jcr { nodeTypesByNames(names: [\"jnt:bigText\", \"jnt:text\"]) { name properties { name requiredType internationalized mandatory constraints } } } }"}'
72
+ ```
73
+
74
+ ---
75
+
76
+ ## Step 3 — Identify image assets
77
+
78
+ File assets are already returned by the Step 1 batch query under `files.children`. No additional call needed unless you need UUIDs of files inside sub-folders:
79
+
80
+ ```bash
81
+ curl -s -u root:root1234 \
82
+ -H "Content-Type: application/json" -H "Origin: http://localhost:8080" \
83
+ -X POST http://localhost:8080/modules/graphql \
84
+ -d '{"query":"{ jcr { nodeByPath(path: \"/sites/SITE_KEY/files/SUBFOLDER\") { children { nodes { name uuid } } } } }"}'
85
+ ```
86
+
87
+ > `image` properties have `requiredType: WEAKREFERENCE`. Set them with `type: WEAKREFERENCE` and the file node UUID. The file must have `jmix:image` mixin — always include `mixins: [\"jmix:image\"]` when uploading (see `/jahia-content-create-content`).
88
+
89
+ ---
90
+
91
+ ## Step 4 — Build the property map
92
+
93
+ After Step 2, summarise the data before creating content:
94
+
95
+ ```
96
+ Content type: NAMESPACE:typeName
97
+ Supertypes: [from API response — no need to query separately]
98
+ Required mixins (must be in addNode mixins[]): jmix:renderable, jmix:internalLink, etc.
99
+
100
+ Mandatory non-i18n properties (set in addNode, no language needed):
101
+ image WEAKREF UUID of jmix:image file
102
+
103
+ i18n properties (set with language: "en" in mutation):
104
+ jcr:title STRING from mix:title
105
+ body STRING rich HTML text
106
+
107
+ Optional non-i18n:
108
+ [name] STRING value1 | value2 (from constraints array)
109
+
110
+ Mixin properties (set AFTER addNode in a separate mutation):
111
+ j:view STRING (from jmix:renderable)
112
+ j:linknode WEAKREF i18n (from jmix:internalLink)
113
+ j:url STRING i18n (from jmix:externalLink — set with language: "en")
114
+ ```
115
+
116
+ ---
117
+
118
+ ## Critical gotchas
119
+
120
+ ### 1. `j:view` cannot be set in `addNode` — set it after
121
+
122
+ ```graphql
123
+ # Step 1: create node with mixin declared
124
+ addNode(... mixins: ["jmix:renderable"] ...)
125
+
126
+ # Step 2: set j:view in a separate mutation
127
+ mutateNode(...) { mutateProperty(name: "j:view") { setValue(value: "cover") } }
128
+ ```
129
+
130
+ ### 2. `j:url` (from `jmix:externalLink`) requires `language: "en"` — it is an i18n property
131
+
132
+ ```graphql
133
+ addNode(
134
+ mixins: ["jmix:externalLink"]
135
+ properties: [
136
+ {name: "j:url", type: STRING, value: "https://example.com", language: "en"}
137
+ ]
138
+ )
139
+ ```
140
+
141
+ ### 3. GraphQL `properties()` without `language:` hides i18n property values at query time
142
+
143
+ When **reading** existing nodes: use `properties(language: "en")`. When **writing** i18n properties: add `language: "en"` to the `setValue` call.
144
+
145
+ ---
146
+
147
+ ## Next step — Create content with the property map
148
+
149
+ Once you have the property map from Step 4, hand it off to **`/jahia-content-create-content`**:
150
+
151
+ - Use the mandatory properties list to populate `addNode` / `addChild` mutations correctly the first time
152
+ - Use the i18n flags to know which properties need `language: "en"`
153
+ - Use the enum constraints to pass only valid values
154
+ - Use nested `addChild` calls to create an entire content tree in one mutation (see the `⚡ Minimum-call workflow` section in `/jahia-content-create-content`)
155
+
156
+ > Skipping this skill and guessing property names leads to `ConstraintViolationException` and `Couldn't find definition for property` errors. Always explore first.
157
+
158
+ ---
159
+
160
+ ## References
161
+
162
+ - GraphQL API playground: `http://localhost:8080/modules/graphql`
163
+ - GraphQL schema introspection for node type fields: `{ __type(name: "JCRNodeType") { fields { name } } }`
164
+ - GraphQL schema introspection for property definition fields: `{ __type(name: "JCRPropertyDefinition") { fields { name } } }`
@@ -0,0 +1,236 @@
1
+ ---
2
+ name: jahia-content-move-content
3
+ description: Moves and reorganizes JCR content nodes in Jahia. Use when asked to restructure content folders, nest flat content into sections, rename or move nodes, or tidy up a content tree.
4
+ ---
5
+
6
+ # Skill: jahia-content-move-content
7
+
8
+ Reorganizes the JCR content tree — moving nodes into sub-folders, renaming them, and reordering them — using the Jahia GraphQL API.
9
+
10
+ ---
11
+
12
+ ## Prerequisites
13
+
14
+ - Jahia running at `http://localhost:8080`
15
+ - Credentials: `root` / `root1234` (default)
16
+ - GraphQL endpoint: `http://localhost:8080/modules/graphql`
17
+
18
+ **Always include both auth flags:**
19
+ ```bash
20
+ curl -s -u root:root1234 \
21
+ -H "Content-Type: application/json" \
22
+ -H "Origin: http://localhost:8080" \
23
+ -X POST http://localhost:8080/modules/graphql \
24
+ -d '{"query": "..."}'
25
+ ```
26
+
27
+ > ⚠️ The `Origin` header is **required** — omitting it returns `Permission denied`.
28
+
29
+ ---
30
+
31
+ ## Step 1 — Audit the current content tree
32
+
33
+ Before moving anything, map out what exists and where:
34
+
35
+ ```bash
36
+ # List all content folders and their direct children
37
+ curl -s -u root:root1234 \
38
+ -H "Content-Type: application/json" \
39
+ -H "Origin: http://localhost:8080" \
40
+ -X POST http://localhost:8080/modules/graphql \
41
+ -d '{
42
+ "query": "{ jcr { nodeByPath(path: \"/sites/mySite/contents\") { descendants(fieldFilter: {filters: [{fieldName: \"primaryNodeType.name\", evaluation: EQUAL, value: \"jnt:contentFolder\"}]}) { nodes { path name } } } } }"
43
+ }'
44
+ ```
45
+
46
+ Or use a JCR-SQL2 query for a flat list of all content items:
47
+
48
+ ```bash
49
+ curl -s -u root:root1234 \
50
+ -H "Content-Type: application/json" \
51
+ -H "Origin: http://localhost:8080" \
52
+ -X POST http://localhost:8080/modules/graphql \
53
+ -d '{
54
+ "query": "{ jcr { nodesByQuery(query: \"SELECT * FROM [jnt:content] WHERE ISDESCENDANTNODE(\u0027/sites/mySite/contents\u0027) ORDER BY [jcr:path] ASC\", queryLanguage: SQL2) { nodes { path primaryNodeType { name } } } } }"
55
+ }'
56
+ ```
57
+
58
+ ---
59
+
60
+ ## Step 2 — Create target sub-folders
61
+
62
+ If destination folders don't exist yet, create them with `mix:title` for a proper display label:
63
+
64
+ ```bash
65
+ # Create a sub-folder
66
+ curl -s -u root:root1234 \
67
+ -H "Content-Type: application/json" \
68
+ -H "Origin: http://localhost:8080" \
69
+ -X POST http://localhost:8080/modules/graphql \
70
+ -d '{
71
+ "query": "mutation { jcr { addNode(parentPathOrId: \"/sites/mySite/contents/articles\", name: \"getting-started\", primaryNodeType: \"jnt:contentFolder\") { node { path } } } }"
72
+ }'
73
+
74
+ # Set a human-readable title on the folder
75
+ curl -s -u root:root1234 \
76
+ -H "Content-Type: application/json" \
77
+ -H "Origin: http://localhost:8080" \
78
+ -X POST http://localhost:8080/modules/graphql \
79
+ -d '{
80
+ "query": "mutation { jcr { mutateNode(pathOrId: \"/sites/mySite/contents/articles/getting-started\") { addMixins(mixins: [\"mix:title\"]) mutateProperty(name: \"jcr:title\") { setValue(language: \"en\", value: \"Getting Started\") } } } }"
81
+ }'
82
+ ```
83
+
84
+ ---
85
+
86
+ ## Step 3 — Move a node
87
+
88
+ Use `move` on a `mutateNode` to relocate a node to a new parent. The node keeps its name:
89
+
90
+ ```bash
91
+ curl -s -u root:root1234 \
92
+ -H "Content-Type: application/json" \
93
+ -H "Origin: http://localhost:8080" \
94
+ -X POST http://localhost:8080/modules/graphql \
95
+ -d '{
96
+ "query": "mutation { jcr { mutateNode(pathOrId: \"/sites/mySite/contents/articles/my-article\") { move(parentPathOrId: \"/sites/mySite/contents/articles/getting-started\") } } }"
97
+ }'
98
+ ```
99
+
100
+ > ⚠️ `move` does **not** support a `name` argument — use `rename` separately if needed.
101
+
102
+ ### Rename a node in place
103
+
104
+ ```bash
105
+ curl -s -u root:root1234 \
106
+ -H "Content-Type: application/json" \
107
+ -H "Origin: http://localhost:8080" \
108
+ -X POST http://localhost:8080/modules/graphql \
109
+ -d '{
110
+ "query": "mutation { jcr { mutateNode(pathOrId: \"/sites/mySite/contents/articles\") { rename(name: \"reference-pages\") } } }"
111
+ }'
112
+ ```
113
+
114
+ To move **and** rename, call `move` then `rename` in sequence, or combine in one mutation:
115
+
116
+ ```graphql
117
+ mutation {
118
+ jcr {
119
+ mutateNode(pathOrId: "/sites/mySite/contents/articles/old-name") {
120
+ move(parentPathOrId: "/sites/mySite/contents/articles/getting-started")
121
+ }
122
+ rename: mutateNode(pathOrId: "/sites/mySite/contents/articles/getting-started/old-name") {
123
+ rename(name: "new-name")
124
+ }
125
+ }
126
+ }
127
+ ```
128
+
129
+ ### Batch move with Python
130
+
131
+ ```python
132
+ import subprocess, json
133
+
134
+ def gql(q):
135
+ r = subprocess.run(["curl","-s","-u","root:root1234",
136
+ "-H","Origin: http://localhost:8080",
137
+ "-H","Content-Type: application/json",
138
+ "-X","POST","http://localhost:8080/modules/graphql",
139
+ "-d", json.dumps({"query": q})], capture_output=True, text=True)
140
+ d = json.loads(r.stdout)
141
+ if "errors" in d: print("ERR:", d["errors"][0]["message"][:80])
142
+ return d
143
+
144
+ moves = [
145
+ ("/sites/mySite/contents/articles/getting-started",
146
+ "/sites/mySite/contents/articles/core-concepts"),
147
+ ("/sites/mySite/contents/articles/graphql-api",
148
+ "/sites/mySite/contents/articles/api-reference"),
149
+ ]
150
+
151
+ for src, dest in moves:
152
+ r = gql(f'mutation {{ jcr {{ mutateNode(pathOrId: "{src}") {{ move(parentPathOrId: "{dest}") }} }} }}')
153
+ ok = "errors" not in r
154
+ print(f" {'✓' if ok else '✗'} {src.split('/')[-1]} → {dest.split('/')[-1]}")
155
+ ```
156
+
157
+ ---
158
+
159
+ ## Step 4 — Reorder siblings
160
+
161
+ To control the display order within a folder, use `reorder` after moving:
162
+
163
+ ```bash
164
+ curl -s -u root:root1234 \
165
+ -H "Content-Type: application/json" \
166
+ -H "Origin: http://localhost:8080" \
167
+ -X POST http://localhost:8080/modules/graphql \
168
+ -d '{
169
+ "query": "mutation { jcr { mutateNode(pathOrId: \"/sites/mySite/contents/articles/intro\") { reorder(reorderNodes: {moveBeforeOrAfter: BEFORE, target: \"advanced\"}) } } }"
170
+ }'
171
+ ```
172
+
173
+ ---
174
+
175
+ ## Step 5 — Publish after moving
176
+
177
+ Moving a node unpublishes it in the live workspace. Always republish after reorganizing:
178
+
179
+ ```bash
180
+ # Publish a single node
181
+ curl -s -u root:root1234 \
182
+ -H "Content-Type: application/json" \
183
+ -H "Origin: http://localhost:8080" \
184
+ -X POST http://localhost:8080/modules/graphql \
185
+ -d '{
186
+ "query": "mutation { jcr { mutateNode(pathOrId: \"/sites/mySite/contents/articles/getting-started/my-article\") { publish(languages: [\"en\"]) } } }"
187
+ }'
188
+
189
+ # Publish everything under a folder at once
190
+ curl -s -u root:root1234 \
191
+ -H "Content-Type: application/json" \
192
+ -H "Origin: http://localhost:8080" \
193
+ -X POST http://localhost:8080/modules/graphql \
194
+ -d '{
195
+ "query": "mutation { jcr { mutateNodesByQuery(query: \"SELECT * FROM [jnt:content] WHERE ISDESCENDANTNODE(\u0027/sites/mySite/contents\u0027)\", queryLanguage: SQL2) { publish(languages: [\"en\"]) } } }"
196
+ }'
197
+ ```
198
+
199
+ ---
200
+
201
+ ## Step 6 — Verify
202
+
203
+ ```bash
204
+ curl -s -u root:root1234 \
205
+ -H "Content-Type: application/json" \
206
+ -H "Origin: http://localhost:8080" \
207
+ -X POST http://localhost:8080/modules/graphql \
208
+ -d '{
209
+ "query": "{ jcr { nodesByQuery(query: \"SELECT * FROM [jnt:content] WHERE ISDESCENDANTNODE(\u0027/sites/mySite/contents\u0027)\", queryLanguage: SQL2) { nodes { path } } } }"
210
+ }'
211
+ ```
212
+
213
+ ---
214
+
215
+ ## Common errors
216
+
217
+ | Error | Cause | Fix |
218
+ |-------|-------|-----|
219
+ | `Permission denied` | Missing `Origin` header | Add `-H "Origin: http://localhost:8080"` |
220
+ | `ItemExistsException` | A node with that name already exists at the destination | Choose a different name or use `rename` after moving |
221
+ | `PathNotFoundException` | Source or destination path doesn't exist | Verify paths with `nodeByPath` first |
222
+ | `move` returns `null` | Node was already at that location | Verify the current path first |
223
+ | Content disappears from live after move | Move unpublishes — normal JCR behaviour | Run `publish` after every move |
224
+
225
+ ---
226
+
227
+ ## Workflow summary
228
+
229
+ ```
230
+ 1. Audit → list current paths and types
231
+ 2. Plan → map old paths to new paths/folders
232
+ 3. Create → addNode for any new folders needed
233
+ 4. Move → mutateNode { move(...) } for each item
234
+ 5. Publish → mutateNodesByQuery { publish(...) } for all affected content
235
+ 6. Verify → query back and confirm structure
236
+ ```
@@ -0,0 +1,144 @@
1
+ ---
2
+ name: jahia-content-query-content
3
+ description: Queries JCR content from a running Jahia instance via the GraphQL API. Use when asked to list, inspect, or retrieve content nodes, check what content exists, or audit a site's content.
4
+ ---
5
+
6
+ # Skill: jahia-content-query-content
7
+
8
+ Retrieves JCR content from a running Jahia instance using the GraphQL JCR query API.
9
+
10
+ ---
11
+
12
+ ## Prerequisites
13
+
14
+ - Jahia running at `http://localhost:8080`
15
+ - Credentials: `root` / `root1234` (default)
16
+ - GraphQL endpoint: `http://localhost:8080/modules/graphql`
17
+
18
+ **Auth pattern — always use both flags:**
19
+ ```bash
20
+ curl -u root:root1234 \
21
+ -H "Content-Type: application/json" \
22
+ -H "Origin: http://localhost:8080" \
23
+ ...
24
+ ```
25
+
26
+ > ⚠️ The `Origin: http://localhost:8080` header is **required**. Requests without it return `Permission denied` even with correct credentials.
27
+
28
+ ---
29
+
30
+ ## Query patterns
31
+
32
+ ### 1 — Get a node by path
33
+
34
+ ```bash
35
+ curl -s -u root:root1234 \
36
+ -H "Content-Type: application/json" \
37
+ -H "Origin: http://localhost:8080" \
38
+ -X POST http://localhost:8080/modules/graphql \
39
+ -d '{
40
+ "query": "{ jcr { nodeByPath(path: \"/sites/mySite/contents/articles\") { children { nodes { name path primaryNodeType { name } } } } } }"
41
+ }'
42
+ ```
43
+
44
+ ### 2 — Query by node type (JCR-SQL2)
45
+
46
+ ```bash
47
+ curl -s -u root:root1234 \
48
+ -H "Content-Type: application/json" \
49
+ -H "Origin: http://localhost:8080" \
50
+ -X POST http://localhost:8080/modules/graphql \
51
+ -d '{
52
+ "query": "{ jcr { nodesByQuery(query: \"SELECT * FROM [namespace:typeName] WHERE ISDESCENDANTNODE(\u0027/sites/mySite\u0027) ORDER BY [jcr:created] DESC\", queryLanguage: SQL2) { nodes { name path uuid } } } }"
53
+ }'
54
+ ```
55
+
56
+ ### 3 — Read node properties (including i18n)
57
+
58
+ ```bash
59
+ curl -s -u root:root1234 \
60
+ -H "Content-Type: application/json" \
61
+ -H "Origin: http://localhost:8080" \
62
+ -X POST http://localhost:8080/modules/graphql \
63
+ -d '{
64
+ "query": "{ jcr { nodeByPath(path: \"/sites/mySite/contents/articles/my-article\") { name uuid properties(language: \"en\") { name value } } } }"
65
+ }'
66
+ ```
67
+
68
+ > ⚠️ **i18n properties require `language:` in the `properties()` call.** Without it, i18n properties are returned empty.
69
+
70
+ ### 4 — Filter by property value
71
+
72
+ ```bash
73
+ curl -s -u root:root1234 \
74
+ -H "Content-Type: application/json" \
75
+ -H "Origin: http://localhost:8080" \
76
+ -X POST http://localhost:8080/modules/graphql \
77
+ -d '{
78
+ "query": "{ jcr { nodesByQuery(query: \"SELECT * FROM [namespace:article] WHERE [product] = \u0027jahia\u0027 AND ISDESCENDANTNODE(\u0027/sites/mySite\u0027)\", queryLanguage: SQL2) { nodes { name path } } } }"
79
+ }'
80
+ ```
81
+
82
+ ### 5 — List all sites
83
+
84
+ ```bash
85
+ curl -s -u root:root1234 \
86
+ -H "Content-Type: application/json" \
87
+ -H "Origin: http://localhost:8080" \
88
+ -X POST http://localhost:8080/modules/graphql \
89
+ -d '{
90
+ "query": "{ jcr { nodesByQuery(query: \"SELECT * FROM [jnt:virtualsite] WHERE ISCHILDNODE(\u0027/sites\u0027)\", queryLanguage: SQL2) { nodes { name path } } } }"
91
+ }'
92
+ ```
93
+
94
+ ### 6 — Check publication status
95
+
96
+ ```bash
97
+ curl -s -u root:root1234 \
98
+ -H "Content-Type: application/json" \
99
+ -H "Origin: http://localhost:8080" \
100
+ -X POST http://localhost:8080/modules/graphql \
101
+ -d '{
102
+ "query": "{ jcr { nodeByPath(path: \"/sites/mySite/contents/articles/my-article\") { name aggregatedPublicationInfo(language: \"en\") { publicationStatus } } } }"
103
+ }'
104
+ ```
105
+
106
+ Publication status values: `PUBLISHED`, `MODIFIED`, `NOT_PUBLISHED`, `UNPUBLISHED`, `MARKED_FOR_DELETION`
107
+
108
+ ---
109
+
110
+ ## JCR-SQL2 quick reference
111
+
112
+ ```sql
113
+ -- All nodes of a type under a path
114
+ SELECT * FROM [ns:typeName] WHERE ISDESCENDANTNODE('/sites/mySite')
115
+
116
+ -- Direct children only
117
+ SELECT * FROM [ns:typeName] WHERE ISCHILDNODE('/sites/mySite/contents/articles')
118
+
119
+ -- Filter by property
120
+ SELECT * FROM [ns:typeName] WHERE [propName] = 'value'
121
+
122
+ -- Order by date (newest first)
123
+ SELECT * FROM [ns:typeName] WHERE ISDESCENDANTNODE('/sites/mySite') ORDER BY [jcr:created] DESC
124
+
125
+ -- Limit results (pass limit/offset as query params)
126
+ -- nodesByQuery(query: "...", queryLanguage: SQL2, limit: 10, offset: 0)
127
+ ```
128
+
129
+ ---
130
+
131
+ ## Common errors
132
+
133
+ | Error | Cause | Fix |
134
+ |-------|-------|-----|
135
+ | `Permission denied` | Missing `Origin` header | Add `-H "Origin: http://localhost:8080"` |
136
+ | i18n properties returned empty | `language:` not specified | Add `language: "en"` to `properties()` call |
137
+ | Node not found | Wrong path or node doesn't exist | Verify path with `nodeByPath(path: "/sites")` first |
138
+
139
+ ---
140
+
141
+ ## References
142
+
143
+ - Jahia GraphQL API: `http://localhost:8080/modules/graphql` (open in browser for interactive playground)
144
+ - JCR-SQL2 language spec: https://docs.adobe.com/content/docs/en/spec/jcr/2.0/6_Query.html