@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,445 @@
1
+ ---
2
+ name: jahia-dev-cypress
3
+ description: Write and scaffold Cypress e2e tests for a Jahia JS template set. Covers directory setup, cypress.config.ts, @jahia/cypress commands, site creation/teardown, content seeding via addNode, component rendering assertions, CSS Module class selectors, and the three mandatory spec files per component.
4
+ ---
5
+
6
+ # SKILL — Jahia Cypress E2E Tests
7
+
8
+ ## When this skill applies
9
+
10
+ A new component, content type, or page template has been built in a JS template set and needs Cypress coverage. Per the CTO guidelines, tests ship alongside the component — not retroactively.
11
+
12
+ ---
13
+
14
+ ## Test directory layout
15
+
16
+ Tests live in a **separate `tests/` directory** at the module root — never inside `src/`.
17
+
18
+ ```
19
+ <module>/
20
+ ├── src/ ← component code
21
+ ├── settings/
22
+ ├── tests/ ← Cypress project (separate package)
23
+ │ ├── package.json
24
+ │ ├── cypress.config.ts
25
+ │ ├── .env.example
26
+ │ ├── cypress/
27
+ │ │ ├── e2e/
28
+ │ │ │ └── <component-name>/
29
+ │ │ │ ├── happy-path.cy.ts
30
+ │ │ │ ├── authorization.cy.ts
31
+ │ │ │ └── edge-cases.cy.ts
32
+ │ │ ├── fixtures/
33
+ │ │ │ └── graphql/
34
+ │ │ │ └── mutation/
35
+ │ │ │ └── *.graphql
36
+ │ │ ├── plugins/
37
+ │ │ │ └── index.js
38
+ │ │ └── support/
39
+ │ │ ├── commands.ts
40
+ │ │ └── constants.ts
41
+ │ └── results/
42
+ │ └── .gitignore
43
+ └── package.json
44
+ ```
45
+
46
+ ---
47
+
48
+ ## Step 1 — Scaffold the test package
49
+
50
+ Create `tests/package.json`:
51
+
52
+ ```json
53
+ {
54
+ "name": "<module-name>-cypress",
55
+ "private": true,
56
+ "scripts": {
57
+ "e2e:ci": "cypress run",
58
+ "e2e:debug": "cypress open"
59
+ },
60
+ "devDependencies": {
61
+ "@jahia/cypress": "^7.1.0",
62
+ "cypress": "^14.0.0",
63
+ "cypress-terminal-report": "^5.3.12",
64
+ "typescript": "^5.0.0"
65
+ },
66
+ "packageManager": "yarn@4.12.0"
67
+ }
68
+ ```
69
+
70
+ Install:
71
+
72
+ ```bash
73
+ cd tests && yarn install
74
+ ```
75
+
76
+ ---
77
+
78
+ ## Step 2 — cypress.config.ts
79
+
80
+ ```typescript
81
+ // tests/cypress.config.ts
82
+ import { defineConfig } from 'cypress'
83
+ import * as fs from 'node:fs'
84
+
85
+ export default defineConfig({
86
+ chromeWebSecurity: false,
87
+ defaultCommandTimeout: 10000,
88
+ requestTimeout: 300000, // 5 min — site provisioning is slow
89
+ responseTimeout: 300000,
90
+ viewportWidth: 1366,
91
+ viewportHeight: 768,
92
+ watchForFileChanges: false,
93
+ screenshotsFolder: './results/screenshots',
94
+ videosFolder: './results/videos',
95
+ e2e: {
96
+ baseUrl: 'http://localhost:8080',
97
+ specPattern: ['**/**.cy.ts'],
98
+ setupNodeEvents(on, config) {
99
+ require('@jahia/cypress/dist/plugins/registerPlugins').registerPlugins(on, config)
100
+ require('cypress-terminal-report/src/installLogsPrinter')(on, {
101
+ printLogsToConsole: 'onFail',
102
+ outputRoot: config.projectRoot + '/results/',
103
+ })
104
+ on('task', {
105
+ readFileMaybe(filename) {
106
+ if (fs.existsSync(filename)) return fs.readFileSync(filename, 'utf8')
107
+ return null
108
+ },
109
+ })
110
+ return config
111
+ },
112
+ },
113
+ })
114
+ ```
115
+
116
+ ---
117
+
118
+ ## Step 3 — constants.ts
119
+
120
+ ```typescript
121
+ // tests/cypress/support/constants.ts
122
+ export const SITE_KEY = '<module-name>-tests'
123
+ export const TEMPLATE_SET = '<module-name>' // matches module name in package.json
124
+ ```
125
+
126
+ ---
127
+
128
+ ## Step 4 — The three mandatory spec files
129
+
130
+ Every component ships exactly these three files. Adapt to the component under test.
131
+
132
+ ### `happy-path.cy.ts` — component renders correctly with valid content
133
+
134
+ ```typescript
135
+ import { addNode, createSite, deleteSite, publishAndWaitJobEnding } from '@jahia/cypress'
136
+ import { SITE_KEY, TEMPLATE_SET } from '../../support/constants'
137
+
138
+ describe('<ComponentName> — happy path', () => {
139
+ before(() => {
140
+ cy.login()
141
+ createSite(SITE_KEY, {
142
+ templateSet: TEMPLATE_SET,
143
+ locale: 'en',
144
+ languages: 'en,fr',
145
+ serverName: 'localhost',
146
+ })
147
+
148
+ // Seed a page with a test component
149
+ addNode({
150
+ parentPathOrId: `/sites/${SITE_KEY}/home`,
151
+ name: 'testPage',
152
+ primaryNodeType: 'jnt:page',
153
+ properties: [
154
+ { name: 'jcr:title', value: 'Test Page', language: 'en' },
155
+ { name: 'j:templateName', value: 'simple' },
156
+ ],
157
+ }).then(() => {
158
+ addNode({
159
+ parentPathOrId: `/sites/${SITE_KEY}/home/testPage/pagecontent`,
160
+ name: 'myComponent',
161
+ primaryNodeType: 'ns:myComponentType',
162
+ properties: [
163
+ { name: 'title', value: 'Hello World', language: 'en' },
164
+ { name: 'subtitle', value: 'A subtitle', language: 'en' },
165
+ ],
166
+ })
167
+ })
168
+
169
+ publishAndWaitJobEnding(`/sites/${SITE_KEY}`, ['en', 'fr'])
170
+ cy.logout()
171
+ })
172
+
173
+ after(() => {
174
+ cy.login()
175
+ deleteSite(SITE_KEY)
176
+ cy.logout()
177
+ })
178
+
179
+ beforeEach(() => cy.login())
180
+ afterEach(() => cy.logout())
181
+
182
+ it('renders the component in live mode', () => {
183
+ cy.visit(`/sites/${SITE_KEY}/home/testPage.html`)
184
+ cy.get('[data-testid="my-component"]').should('be.visible')
185
+ cy.contains('Hello World')
186
+ })
187
+
188
+ it('renders the component in FR locale', () => {
189
+ cy.visit(`/fr/sites/${SITE_KEY}/home/testPage.html`)
190
+ cy.get('[data-testid="my-component"]').should('be.visible')
191
+ })
192
+
193
+ it('renders the component in preview mode', () => {
194
+ cy.visit(`/cms/render/default/en/sites/${SITE_KEY}/home/testPage.html`)
195
+ cy.get('[data-testid="my-component"]').should('be.visible')
196
+ })
197
+ })
198
+ ```
199
+
200
+ ### `authorization.cy.ts` — access control
201
+
202
+ ```typescript
203
+ import { addNode, createSite, deleteSite, publishAndWaitJobEnding } from '@jahia/cypress'
204
+ import { SITE_KEY, TEMPLATE_SET } from '../../support/constants'
205
+
206
+ describe('<ComponentName> — authorization', () => {
207
+ before(() => {
208
+ cy.login()
209
+ createSite(SITE_KEY, {
210
+ templateSet: TEMPLATE_SET,
211
+ locale: 'en',
212
+ serverName: 'localhost',
213
+ })
214
+ publishAndWaitJobEnding(`/sites/${SITE_KEY}`, ['en'])
215
+ cy.logout()
216
+ })
217
+
218
+ after(() => {
219
+ cy.login()
220
+ deleteSite(SITE_KEY)
221
+ cy.logout()
222
+ })
223
+
224
+ it('live page is publicly accessible without login', () => {
225
+ // No cy.login() — verify anonymous access
226
+ cy.visit(`/sites/${SITE_KEY}/home.html`)
227
+ cy.get('body').should('be.visible')
228
+ // Should NOT redirect to login
229
+ cy.url().should('not.include', '/login')
230
+ })
231
+
232
+ it('default workspace requires authentication', () => {
233
+ cy.visit(`/cms/render/default/en/sites/${SITE_KEY}/home.html`)
234
+ // Unauthenticated → redirected to login or 401
235
+ cy.url().should('satisfy', (url: string) =>
236
+ url.includes('/login') || url.includes('/logout')
237
+ )
238
+ })
239
+
240
+ it('admin can access jcontent for the site', () => {
241
+ cy.login()
242
+ cy.visit(`/jahia/jcontent/${SITE_KEY}/en/pages`)
243
+ cy.get('body').should('be.visible')
244
+ cy.url().should('not.include', '/login')
245
+ cy.logout()
246
+ })
247
+ })
248
+ ```
249
+
250
+ ### `edge-cases.cy.ts` — empty values, missing optional fields, boundary conditions
251
+
252
+ ```typescript
253
+ import { addNode, createSite, deleteSite, publishAndWaitJobEnding } from '@jahia/cypress'
254
+ import { SITE_KEY, TEMPLATE_SET } from '../../support/constants'
255
+
256
+ describe('<ComponentName> — edge cases', () => {
257
+ before(() => {
258
+ cy.login()
259
+ createSite(SITE_KEY, {
260
+ templateSet: TEMPLATE_SET,
261
+ locale: 'en',
262
+ serverName: 'localhost',
263
+ })
264
+
265
+ // Seed a component with only mandatory fields — all optionals missing
266
+ addNode({
267
+ parentPathOrId: `/sites/${SITE_KEY}/home`,
268
+ name: 'testPage',
269
+ primaryNodeType: 'jnt:page',
270
+ properties: [
271
+ { name: 'jcr:title', value: 'Edge Case Page', language: 'en' },
272
+ { name: 'j:templateName', value: 'simple' },
273
+ ],
274
+ }).then(() => {
275
+ addNode({
276
+ parentPathOrId: `/sites/${SITE_KEY}/home/testPage/pagecontent`,
277
+ name: 'emptyComponent',
278
+ primaryNodeType: 'ns:myComponentType',
279
+ // Only mandatory properties — no optional ones
280
+ properties: [
281
+ { name: 'title', value: 'Minimal', language: 'en' },
282
+ ],
283
+ })
284
+ })
285
+
286
+ publishAndWaitJobEnding(`/sites/${SITE_KEY}`, ['en'])
287
+ cy.logout()
288
+ })
289
+
290
+ after(() => {
291
+ cy.login()
292
+ deleteSite(SITE_KEY)
293
+ cy.logout()
294
+ })
295
+
296
+ it('renders without errors when optional fields are empty', () => {
297
+ cy.visit(`/sites/${SITE_KEY}/home/testPage.html`)
298
+ // No JS errors
299
+ cy.on('uncaught:exception', () => false) // log but don't fail on known framework noise
300
+ cy.get('[data-testid="my-component"]').should('exist')
301
+ // Optional subtitle should not render a broken element
302
+ cy.get('[data-testid="subtitle"]').should('not.exist')
303
+ })
304
+
305
+ it('page does not return 500 for any seeded content', () => {
306
+ cy.request(`/sites/${SITE_KEY}/home/testPage.html`).its('status').should('eq', 200)
307
+ })
308
+ })
309
+ ```
310
+
311
+ ---
312
+
313
+ ## Step 5 — Seeding content via GraphQL (alternative to `addNode`)
314
+
315
+ For complex mutations (adding mixins, setting weakreference properties, bulk batches), use `.graphql` fixture files:
316
+
317
+ ```graphql
318
+ # tests/cypress/fixtures/graphql/mutation/seedMyComponent.graphql
319
+ mutation seedMyComponent($parentPath: String!, $imageUuid: String!) {
320
+ jcr {
321
+ mutateNode(pathOrId: $parentPath) {
322
+ addChild(
323
+ name: "myComponent"
324
+ primaryNodeType: "ns:myComponentType"
325
+ properties: [
326
+ { name: "title", value: "Test Title", language: "en" }
327
+ { name: "image", type: WEAKREFERENCE, value: $imageUuid }
328
+ ]
329
+ ) { uuid }
330
+ }
331
+ }
332
+ }
333
+ ```
334
+
335
+ Call from a test:
336
+
337
+ ```typescript
338
+ cy.apollo({
339
+ mutationFile: 'graphql/mutation/seedMyComponent.graphql',
340
+ variables: { parentPath: `/sites/${SITE_KEY}/home/testPage/pagecontent`, imageUuid },
341
+ })
342
+ ```
343
+
344
+ ---
345
+
346
+ ## Step 6 — Targeting CSS Module classes
347
+
348
+ CSS Modules hash class names at build time. Never target `.myClass` directly — use the `[class*=]` attribute selector to match the unhashed portion:
349
+
350
+ ```typescript
351
+ // ❌ Fragile — class name is hashed
352
+ cy.get('.card_abc123').should('exist')
353
+
354
+ // ✅ Stable — matches the un-hashed segment
355
+ cy.get('[class*="_card_"]').should('exist')
356
+ cy.get('[class*="_card_"]').first().click()
357
+
358
+ // ✅ Better — add data-testid to the component and target that
359
+ cy.get('[data-testid="hero-banner"]').should('be.visible')
360
+ ```
361
+
362
+ **Preferred approach**: add `data-testid` attributes to component root elements in production views. They survive CSS Module renaming and minification:
363
+
364
+ ```tsx
365
+ // In default.server.tsx
366
+ <section data-testid="hero-banner" className={styles.hero}>
367
+ ```
368
+
369
+ ---
370
+
371
+ ## Step 7 — Locale assertions
372
+
373
+ Always test at least EN and FR. Use `cy.visit` with the locale prefix for FR:
374
+
375
+ ```typescript
376
+ // EN (default)
377
+ cy.visit(`/sites/${SITE_KEY}/home/testPage.html`)
378
+
379
+ // FR
380
+ cy.visit(`/fr/sites/${SITE_KEY}/home/testPage.html`)
381
+
382
+ // Assert locale-specific content
383
+ cy.contains('Découvrir plus') // FR CTA label
384
+ ```
385
+
386
+ ---
387
+
388
+ ## `@jahia/cypress` API reference
389
+
390
+ | Function | Import | Purpose |
391
+ |---|---|---|
392
+ | `cy.login()` | built-in command | Log in as root (uses `SUPER_USER_PASSWORD` env var, default `root1234`) |
393
+ | `cy.logout()` | built-in command | Log out |
394
+ | `cy.apollo({ mutationFile, variables })` | built-in command | Execute a GraphQL mutation from a fixture file |
395
+ | `cy.runProvisioningScript({ script })` | built-in command | Run a Jahia provisioning YAML |
396
+ | `createSite(siteKey, options)` | `@jahia/cypress` | Create a site programmatically |
397
+ | `deleteSite(siteKey)` | `@jahia/cypress` | Delete a site (use in `after`) |
398
+ | `addNode(variables)` | `@jahia/cypress` | Create a JCR node via GraphQL |
399
+ | `publishAndWaitJobEnding(path, locales?)` | `@jahia/cypress` | Publish content and block until the job completes |
400
+ | `uploadFile(path, target, name, mimeType)` | `@jahia/cypress` | Upload a file to the JCR |
401
+
402
+ `createSite` options:
403
+
404
+ ```typescript
405
+ createSite(SITE_KEY, {
406
+ templateSet: 'my-module', // module name
407
+ locale: 'en', // default locale
408
+ languages: 'en,fr', // all activated locales (comma-separated)
409
+ serverName: 'localhost',
410
+ })
411
+ ```
412
+
413
+ ---
414
+
415
+ ## Common pitfalls
416
+
417
+ | Pitfall | Consequence |
418
+ |---|---|
419
+ | Missing `publishAndWaitJobEnding` after seeding | Tests run against unpublished content; live page returns stale or empty render |
420
+ | Targeting hashed CSS Module class names directly | Tests break on every rebuild |
421
+ | Skipping FR assertions | i18n regressions go undetected |
422
+ | No `after` hook to delete the site | Test sites accumulate on the Jahia instance and pollute subsequent runs |
423
+ | Running `createSite` without first deleting — no teardown in prior run | Site creation fails because the key already exists |
424
+ | Relying on a pre-existing site instead of seeding | Tests are not self-contained and fail on a clean Jahia instance |
425
+ | Not wrapping login/logout in `beforeEach`/`afterEach` | Session bleeds across tests; order-dependent failures |
426
+
427
+ ---
428
+
429
+ ## Running tests
430
+
431
+ ```bash
432
+ # Against local Jahia (http://localhost:8080)
433
+ cd tests
434
+ yarn e2e:debug # opens Cypress UI
435
+ yarn e2e:ci # headless, for CI
436
+ ```
437
+
438
+ Jahia must be running and the module deployed before running tests. Deploy first:
439
+
440
+ ```bash
441
+ # From module root
442
+ yarn build && yarn jahia-deploy
443
+ # Then run tests
444
+ cd tests && yarn e2e:ci
445
+ ```
@@ -0,0 +1,176 @@
1
+ ---
2
+ name: jahia-dev-debug
3
+ description: Debugs a Jahia JavaScript module end-to-end — build, deploy, and runtime errors. Finds the first error after deployment using live Docker logs.
4
+ ---
5
+
6
+ # Skill: jahia-dev-debug
7
+
8
+ Diagnoses why a Jahia JavaScript module fails to load. Follows the deployment pipeline from source to runtime.
9
+
10
+ ---
11
+
12
+ ## Step 1 — Build
13
+
14
+ From the module directory (where `package.json` is):
15
+
16
+ ```bash
17
+ yarn build
18
+ ```
19
+
20
+ - **Build fails** → fix the TypeScript / bundling error shown and stop here. Do not proceed to deploy until the build is clean.
21
+ - **Build succeeds** → proceed to Step 2.
22
+
23
+ ---
24
+
25
+ ## Step 2 — Deploy
26
+
27
+ ```bash
28
+ yarn jahia-deploy
29
+ ```
30
+
31
+ Interpret the output:
32
+ - `"Operation successful"` in the response → deployment was accepted. Proceed to Step 3 — the module may still fail at runtime.
33
+ - `"{}"` or empty JSON → deployment was **rejected** (usually a CND parse error or missing dependency). Proceed to Step 3 to find the cause in the logs.
34
+ - Any other error → fix the connection issue (is Docker running?) then retry.
35
+
36
+ ---
37
+
38
+ ## Step 3 — Watch live Docker logs
39
+
40
+ > Do NOT analyse logs that already exist — an old error is not necessarily the cause of the current issue. Start a fresh log stream, then deploy again to capture only what happens as a result of this deployment.
41
+
42
+ ### 3a — Start watching logs in the background
43
+
44
+ Find the Jahia container name:
45
+
46
+ ```bash
47
+ docker ps --format '{{.Names}}' | grep -i jahia | head -1
48
+ ```
49
+
50
+ Then start tailing:
51
+
52
+ ```bash
53
+ docker logs -f <container-name> 2>&1 | grep -v "^\s*$" &
54
+ LOG_PID=$!
55
+ ```
56
+
57
+ ### 3b — Deploy again while logs are streaming
58
+
59
+ ```bash
60
+ yarn jahia-deploy
61
+ ```
62
+
63
+ ### 3c — Wait ~15 seconds, then stop the log stream
64
+
65
+ ```bash
66
+ sleep 15 && kill $LOG_PID 2>/dev/null
67
+ ```
68
+
69
+ ### 3d — Verify component registration
70
+
71
+ ```bash
72
+ docker logs <container-name> 2>&1 | grep "Registered Jahia component"
73
+ ```
74
+
75
+ Expected: one line per view registered, e.g.:
76
+ ```
77
+ Registered Jahia component: mymodule_view_ns:hero_default
78
+ Registered Jahia component: mymodule_view_ns:hero_small
79
+ ```
80
+
81
+ If a component you just deployed is **absent** from this list, its `jahiaComponent` call was never reached — usually a syntax/import error in the view file that prevented the module from fully loading.
82
+
83
+ ---
84
+
85
+ ## Step 4 — Find the first error
86
+
87
+ Scan the captured log output for the **first** error that appears **after** the deploy timestamp. Common patterns to look for:
88
+
89
+ | Pattern | Likely cause |
90
+ |---|---|
91
+ | `CND parse error` / `invalid node type` | CND syntax error or illegal field declaration |
92
+ | `NoSuchNodeTypeException` | A referenced type doesn't exist (wrong namespace, typo, missing dependency) |
93
+ | `ClassNotFoundException` / `NoClassDefFoundError` | Java dependency missing |
94
+ | `Cannot set property` / `TypeError` in JS stack | View runtime error |
95
+ | `Module ... failed to start` | Any of the above |
96
+ | `Unresolved requirement` | OSGi dependency not satisfied |
97
+ | Missing `Registered Jahia component` for a specific type | View file has a syntax/import error, or `jahiaComponent` not reached |
98
+
99
+ **Focus on the first error, not the last.** Later errors are often cascading failures caused by the first one.
100
+
101
+ ---
102
+
103
+ ## Step 5 — Fix and retry
104
+
105
+ Once the root cause is identified:
106
+
107
+ 1. Fix the issue in the source files
108
+ 2. Run `yarn build` again
109
+ 3. Go back to Step 2
110
+
111
+ Repeat until `yarn jahia-deploy` succeeds and the module loads cleanly (no errors in the 15-second window after deploy).
112
+
113
+ ---
114
+
115
+ ## Common fixes by error type
116
+
117
+ ### CND: `j:linknode` or `j:url` declared explicitly
118
+ These fields are injected by Jahia's `linkTypeInitializer` mixin. Remove them from the CND.
119
+
120
+ ### CND: unknown mixin or type
121
+ Check that the namespace is declared at the top of `settings/definitions.cnd` and that all referenced types exist.
122
+
123
+ ### import.xml: reference to a non-existent type
124
+ Any `jcr:primaryType` or `jcr:mixinTypes` value in `import.xml` must exist in the deployed CND. Check for typos.
125
+
126
+ ### import.xml: `jmix:nolive` used as `jcr:primaryType`
127
+ `jmix:nolive` is a mixin — it goes in `jcr:mixinTypes`, not `jcr:primaryType`.
128
+
129
+ ### import.xml: OSGi fails with `missing requirement … (nodetypes=jmix:nolive)`
130
+ Every `jcr:mixinTypes` value in `import.xml` is scanned by the OSGi bundle resolver. If the mixin is not declared in the module's own CND and is not provided by a resolvable dependency, the bundle will not start. Correct spelling is `jmix:nolive` (all lowercase). Verify the mixin exists in your Jahia instance before using it in `import.xml`.
131
+
132
+ ### View: module loads but page is blank
133
+ Run `yarn dev` and check the Vite / SSR console for a React render error.
134
+
135
+ ---
136
+
137
+ ## GraalJS (server-side JS) debugging with Chrome DevTools
138
+
139
+ Use this when you need to step through server-side view code running inside GraalVM.
140
+
141
+ ### Step 1 — Enable the inspector via GraphQL
142
+
143
+ In Jahia's Developer Tools > GraphQL editor, run:
144
+
145
+ ```graphql
146
+ mutation {
147
+ admin {
148
+ jahia {
149
+ configuration(pid: "org.jahia.modules.javascript.modules.engine.jsengine.GraalVMEngine") {
150
+ polyGlotInspect: value(name: "polyglot.inspect", value: "0.0.0.0:9229")
151
+ polyGlotInspectSuspend: value(name: "polyglot.inspect.Suspend", value: "false")
152
+ polyGlotInspectSecure: value(name: "polyglot.inspect.Secure", value: "false")
153
+ }
154
+ }
155
+ }
156
+ }
157
+ ```
158
+
159
+ ### Step 2 — Map the port
160
+
161
+ If running in Docker, ensure port `9229` is mapped in `docker-compose.yml`:
162
+
163
+ ```yaml
164
+ ports:
165
+ - "9229:9229"
166
+ ```
167
+
168
+ ### Step 3 — Connect Chrome
169
+
170
+ After the mutation, Jahia logs a `devtools://...` URL. Open it in Chrome (use latest; Chrome 117–118 had known debugger bugs).
171
+
172
+ ### Step 4 — Set a breakpoint and debug
173
+
174
+ In Chrome DevTools Sources tab, open `<module>/dist/main.js`, set a breakpoint, then reload the page. The server-side render pauses at the breakpoint. Full scope inspection, step-over, and continue are supported.
175
+
176
+ The config file `org.jahia.modules.javascript.modules.engine.jsengine.GraalVMEngine.cfg` accepts any `polyglot.*` key as an engine option — you can persist these settings there instead of using the GraphQL mutation.