@givolt/i3-composer-agent 3.2.1 → 4.0.1

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 (611) hide show
  1. package/.agents/plugins/marketplace.json +1 -1
  2. package/.claude/commands/i3-build.md +1 -0
  3. package/.claude/commands/i3-code-simplify.md +1 -0
  4. package/.claude/commands/i3-constraints.md +1 -0
  5. package/.claude/commands/i3-plan.md +1 -0
  6. package/.claude/commands/i3-review.md +1 -0
  7. package/.claude/commands/i3-ship.md +1 -0
  8. package/.claude/commands/i3-spec.md +1 -0
  9. package/.claude/commands/i3-test.md +1 -0
  10. package/.claude/commands/i3-webperf.md +1 -0
  11. package/.claude-plugin/marketplace.json +1 -1
  12. package/.claude-plugin/plugin.json +1 -1
  13. package/.codex-plugin/plugin.json +2 -2
  14. package/README.md +31 -25
  15. package/bin/i3-composer-agent.cjs +4 -59
  16. package/bin/install.cjs +6 -14
  17. package/bin/native-layout.cjs +11 -2
  18. package/bin/native-migration.cjs +68 -28
  19. package/bin/retired-custom-fingerprints.json +1597 -0
  20. package/bin/wizard.cjs +2 -13
  21. package/docs/antigravity-setup.md +3 -1
  22. package/docs/codebuddy-setup.md +19 -76
  23. package/docs/codex-setup.md +10 -4
  24. package/docs/comparison.md +1 -1
  25. package/docs/copilot-cli-setup.md +4 -4
  26. package/docs/cursor-setup.md +1 -1
  27. package/docs/gemini-cli-setup.md +1 -1
  28. package/docs/other-hosts.md +2 -2
  29. package/docs/windsurf-setup.md +2 -2
  30. package/docs/workbuddy-setup.md +9 -16
  31. package/evals/README.md +10 -0
  32. package/evals/cases/i3-code-simplification.json +8 -0
  33. package/evals/cases/i3-documentation-and-adrs.json +4 -0
  34. package/evals/cases/i3-enterprise-sop.json +1 -1
  35. package/evals/cases/i3-frontend-ui-engineering.json +1 -1
  36. package/evals/cases/i3-security-and-hardening.json +4 -0
  37. package/evals/cases/i3-ui-demo.json +2 -2
  38. package/evals/cases/i3-using-agent-skills.json +5 -5
  39. package/evals/plugin/simplify-fires-on-pasted-function/graders/behavior-kept-and-explained.md +7 -0
  40. package/evals/plugin/simplify-fires-on-pasted-function/graders/skill-fired.md +5 -0
  41. package/evals/plugin/simplify-fires-on-pasted-function/prompt.md +30 -0
  42. package/evals/plugin/simplify-stays-quiet-on-make-it-fast/graders/not-fired.md +8 -0
  43. package/evals/plugin/simplify-stays-quiet-on-make-it-fast/prompt.md +20 -0
  44. package/evals/zh-CN/cases/i3-code-simplification.json +8 -0
  45. package/evals/zh-CN/cases/i3-documentation-and-adrs.json +4 -0
  46. package/evals/zh-CN/cases/i3-enterprise-sop.json +1 -1
  47. package/evals/zh-CN/cases/i3-frontend-ui-engineering.json +2 -2
  48. package/evals/zh-CN/cases/i3-security-and-hardening.json +4 -0
  49. package/evals/zh-CN/cases/i3-ui-demo.json +2 -2
  50. package/evals/zh-CN/cases/i3-using-agent-skills.json +6 -6
  51. package/hooks/SDD-CACHE.md +1 -1
  52. package/package.json +13 -80
  53. package/plugin.json +15 -2
  54. package/references/accessibility-checklist.md +4 -4
  55. package/references/performance-checklist.md +5 -4
  56. package/references/testing-patterns.md +2 -1
  57. package/scripts/floor-guard-reference-test.js +32 -0
  58. package/scripts/lib/execution-status.js +44 -0
  59. package/scripts/run-evals-test.js +157 -7
  60. package/scripts/run-evals.js +59 -12
  61. package/scripts/ui-demo-test.js +2 -2
  62. package/scripts/validate-artifact-paths-test.js +14 -0
  63. package/scripts/validate-artifact-paths.js +4 -2
  64. package/skills/i3-api-and-interface-design/SKILL.md +3 -1
  65. package/skills/i3-ci-cd-and-automation/SKILL.md +7 -4
  66. package/skills/i3-code-simplification/SKILL.md +3 -3
  67. package/skills/i3-constraint-driven-development/SKILL.md +4 -4
  68. package/skills/i3-constraint-driven-development/references/floor-guard.md +2 -2
  69. package/skills/i3-context-engineering/SKILL.md +1 -1
  70. package/skills/i3-debugging-and-error-recovery/SKILL.md +1 -1
  71. package/skills/i3-deprecation-and-migration/SKILL.md +6 -1
  72. package/skills/i3-documentation-and-adrs/SKILL.md +3 -2
  73. package/skills/i3-enterprise-sop/SKILL.md +38 -71
  74. package/skills/i3-enterprise-sop/references/engineering-skeleton/directory-standard.md +7 -7
  75. package/skills/i3-enterprise-sop/references/handoff.py +149 -120
  76. package/skills/i3-enterprise-sop/references/technical-baseline/baselines/enterprise-application-technical-baseline-v0-0-4.md +24 -24
  77. package/skills/i3-enterprise-sop/references/technical-baseline/templates/technical-baseline.md +8 -8
  78. package/skills/i3-enterprise-sop/references/templates/ad.md +31 -31
  79. package/skills/i3-enterprise-sop/references/templates/brd.md +6 -6
  80. package/skills/i3-enterprise-sop/references/templates/prd.md +37 -37
  81. package/skills/i3-enterprise-sop/references/templates/testcase.md +25 -25
  82. package/skills/i3-frontend-ui-engineering/SKILL.md +6 -10
  83. package/skills/i3-idea-refine/SKILL.md +4 -2
  84. package/skills/i3-incremental-implementation/SKILL.md +0 -4
  85. package/skills/i3-performance-optimization/SKILL.md +2 -2
  86. package/skills/i3-security-and-hardening/references/hardening-patterns.md +5 -0
  87. package/skills/i3-source-driven-development/SKILL.md +3 -2
  88. package/skills/i3-spec-driven-development/SKILL.md +1 -1
  89. package/skills/i3-ui-demo/SKILL.md +3 -1
  90. package/skills/i3-ui-demo/references/dependencies.md +1 -1
  91. package/skills/i3-ui-demo/references/resources.md +1 -1
  92. package/skills/i3-ui-demo/scripts/dependencies.cjs +0 -3
  93. package/skills/i3-using-agent-skills/SKILL.md +2 -2
  94. package/.claude/commands/i3-prototype.md +0 -23
  95. package/.gemini/commands/i3-prototype.toml +0 -23
  96. package/commands/i3-prototype.toml +0 -23
  97. package/evals/cases/i3-ui-prototype.json +0 -158
  98. package/evals/fixtures/i3-ui-prototype/admin-list/assets/reference.css +0 -3
  99. package/evals/fixtures/i3-ui-prototype/admin-list/assets/reference.js +0 -8
  100. package/evals/fixtures/i3-ui-prototype/admin-list/capability-definition.json +0 -67
  101. package/evals/fixtures/i3-ui-prototype/admin-list/index.html +0 -89
  102. package/evals/fixtures/i3-ui-prototype/admin-list/readme.md +0 -52
  103. package/evals/fixtures/i3-ui-prototype/admin-list/template.json +0 -8
  104. package/evals/fixtures/i3-ui-prototype/business-brief.md +0 -7
  105. package/evals/zh-CN/cases/i3-ui-prototype.json +0 -165
  106. package/hooks/PROTOTYPE.md +0 -31
  107. package/hooks/codebuddy-upstream.cjs +0 -93
  108. package/hooks/i3-prototype.cjs +0 -7
  109. package/hooks/manage.cjs +0 -169
  110. package/scripts/design-provider-discovery-test.js +0 -190
  111. package/scripts/design-provider-test.js +0 -75
  112. package/scripts/enterprise-template-test.js +0 -205
  113. package/scripts/lib/prototype-fixture.cjs +0 -17
  114. package/scripts/prototype-cache-test.js +0 -55
  115. package/scripts/prototype-generation-entry-test.js +0 -6
  116. package/scripts/prototype-generation-evidence-test.js +0 -10
  117. package/scripts/prototype-generation-native-test.js +0 -78
  118. package/scripts/prototype-generation-test.js +0 -99
  119. package/scripts/prototype-inventory-test.js +0 -43
  120. package/scripts/prototype-locations-test.js +0 -79
  121. package/scripts/prototype-project-test.js +0 -183
  122. package/scripts/template-adapter-test.js +0 -155
  123. package/scripts/ui-prototype-binding-recovery-test.js +0 -84
  124. package/scripts/ui-prototype-buddy-lifecycle-test.js +0 -102
  125. package/scripts/ui-prototype-codebuddy-hook-test.js +0 -112
  126. package/scripts/ui-prototype-content-test.js +0 -123
  127. package/scripts/ui-prototype-dependencies-test.js +0 -226
  128. package/scripts/ui-prototype-devtools-test.js +0 -53
  129. package/scripts/ui-prototype-execution-evidence-test.js +0 -62
  130. package/scripts/ui-prototype-execution-gates-test.js +0 -91
  131. package/scripts/ui-prototype-execution-policy-test.js +0 -53
  132. package/scripts/ui-prototype-execution-runtime-test.js +0 -27
  133. package/scripts/ui-prototype-ide-source-test.js +0 -73
  134. package/scripts/ui-prototype-native-test.js +0 -526
  135. package/scripts/ui-prototype-recovery-test.js +0 -81
  136. package/scripts/ui-prototype-registration-test.js +0 -53
  137. package/scripts/ui-prototype-template-test.js +0 -261
  138. package/scripts/ui-prototype-test.js +0 -124
  139. package/scripts/ui-prototype-transcript-auto-test.js +0 -67
  140. package/skills/i3-ui-prototype/SKILL.md +0 -256
  141. package/skills/i3-ui-prototype/assets/capabilities/generation.json +0 -833
  142. package/skills/i3-ui-prototype/assets/capabilities/management.json +0 -294
  143. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/acceptance.json +0 -51
  144. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/component-map.json +0 -13
  145. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/generation-component-map.json +0 -300
  146. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/index.html +0 -11
  147. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/package-lock.json +0 -2298
  148. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/package.json +0 -22
  149. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/public/prototype-config.json +0 -6
  150. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/App.vue +0 -136
  151. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/components/DeviceEditor.vue +0 -111
  152. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/config.ts +0 -19
  153. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/content.ts +0 -28
  154. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/domain/devices.ts +0 -50
  155. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/domain/theme.ts +0 -25
  156. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/main.ts +0 -18
  157. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/style.css +0 -50
  158. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/useDevices.ts +0 -66
  159. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/tests/devices.test.ts +0 -44
  160. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/tests/theme.test.ts +0 -26
  161. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/tsconfig.json +0 -15
  162. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/vite.config.ts +0 -4
  163. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/profile.json +0 -174
  164. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/readme.md +0 -61
  165. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/index.html +0 -11
  166. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/package-lock.json +0 -2298
  167. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/package.json +0 -22
  168. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/public/prototype-config.json +0 -21
  169. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/App.vue +0 -62
  170. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/PrototypeShell.vue +0 -59
  171. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/config.ts +0 -23
  172. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/domain/presentation.ts +0 -29
  173. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/domain/theme.ts +0 -25
  174. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/main.ts +0 -18
  175. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/style.css +0 -26
  176. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/tests/presentation.test.ts +0 -23
  177. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/tests/theme.test.ts +0 -26
  178. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/tsconfig.json +0 -15
  179. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/vite.config.ts +0 -4
  180. package/skills/i3-ui-prototype/assets/hosts/codebuddy/profile.json +0 -17
  181. package/skills/i3-ui-prototype/assets/optional-skills/host-targets.json +0 -739
  182. package/skills/i3-ui-prototype/assets/optional-skills/sources.json +0 -27
  183. package/skills/i3-ui-prototype/assets/templates/catalog.js +0 -149
  184. package/skills/i3-ui-prototype/assets/templates/catalog.json +0 -149
  185. package/skills/i3-ui-prototype/assets/templates/classic-admin/manifest.json +0 -9
  186. package/skills/i3-ui-prototype/assets/templates/classic-admin/preset.json +0 -6
  187. package/skills/i3-ui-prototype/assets/templates/common/app/app.mjs +0 -89
  188. package/skills/i3-ui-prototype/assets/templates/common/app/config.json +0 -1
  189. package/skills/i3-ui-prototype/assets/templates/common/app/domain.mjs +0 -20
  190. package/skills/i3-ui-prototype/assets/templates/common/app/index.html +0 -17
  191. package/skills/i3-ui-prototype/assets/templates/common/app/serve.cjs +0 -16
  192. package/skills/i3-ui-prototype/assets/templates/common/app/styles.css +0 -670
  193. package/skills/i3-ui-prototype/assets/templates/common/app/tokens.css +0 -19
  194. package/skills/i3-ui-prototype/assets/templates/common/design-system/master.md +0 -20
  195. package/skills/i3-ui-prototype/assets/templates/common/gallery.html +0 -2
  196. package/skills/i3-ui-prototype/assets/templates/common/mocks/applications.json +0 -5
  197. package/skills/i3-ui-prototype/assets/templates/common/requirements-map.json +0 -8
  198. package/skills/i3-ui-prototype/assets/templates/common/serve-gallery.cjs +0 -16
  199. package/skills/i3-ui-prototype/assets/templates/credits.md +0 -17
  200. package/skills/i3-ui-prototype/assets/templates/data-operations/manifest.json +0 -9
  201. package/skills/i3-ui-prototype/assets/templates/data-operations/preset.json +0 -6
  202. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/capability-definition.json +0 -294
  203. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/component-inventory.json +0 -707
  204. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/design-system.md +0 -32
  205. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/generation.json +0 -49
  206. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/index.html +0 -534
  207. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/manifest.json +0 -9
  208. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/offline-build.json +0 -265
  209. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/offline.js +0 -8888
  210. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/origin.json +0 -344
  211. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/preset.json +0 -928
  212. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/app.js +0 -22
  213. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/empty.svg +0 -1
  214. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/reference-styles.json +0 -1
  215. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/result-403.svg +0 -1
  216. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/result-404.svg +0 -1
  217. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets-manifest.json +0 -334
  218. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/baseline.json +0 -173
  219. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/conversion.md +0 -30
  220. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/credits.md +0 -17
  221. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/design-tokens.json +0 -881
  222. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/index.html +0 -28
  223. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/licenses/@qin-ui-antdv-next-pro.txt +0 -9
  224. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/licenses/ant-design-icons.txt +0 -22
  225. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/licenses/antdv-next.txt +0 -21
  226. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/package.json +0 -12
  227. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/browser-routes.json +0 -298
  228. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/coverage.json +0 -180
  229. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/integrity.json +0 -13
  230. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/keyboard.json +0 -11
  231. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/responsive.json +0 -125
  232. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/review.md +0 -51
  233. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/rules.log +0 -150
  234. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/flow-editor-html.png +0 -0
  235. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/flow-editor-original.png +0 -0
  236. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/intent-create-html.png +0 -0
  237. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/intent-create-original.png +0 -0
  238. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/models-html.png +0 -0
  239. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/models-original.png +0 -0
  240. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/workbench-html.png +0 -0
  241. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/workbench-original.png +0 -0
  242. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/selection.json +0 -9
  243. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/visual-comparison.json +0 -342
  244. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/readme.md +0 -73
  245. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/reference.md +0 -59
  246. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/routes.json +0 -178
  247. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/controls.js +0 -99
  248. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/dialogs.js +0 -54
  249. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/dom.js +0 -264
  250. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/forms.js +0 -47
  251. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/icons.js +0 -41
  252. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/layout.js +0 -47
  253. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/router.js +0 -63
  254. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/state.js +0 -90
  255. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/table.js +0 -41
  256. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/widgets.js +0 -8
  257. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentDetail.html +0 -3
  258. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentDetail.js +0 -36
  259. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentEditor.html +0 -2
  260. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentEditor.js +0 -51
  261. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentsPage.html +0 -3
  262. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentsPage.js +0 -48
  263. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/CheckResults.html +0 -2
  264. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/CheckResults.js +0 -6
  265. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/ResourcePicker.html +0 -2
  266. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/ResourcePicker.js +0 -13
  267. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/data.js +0 -24
  268. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/domain.js +0 -32
  269. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/registry.js +0 -25
  270. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/store.js +0 -85
  271. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentClose.html +0 -2
  272. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentClose.js +0 -17
  273. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentCreate.html +0 -2
  274. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentCreate.js +0 -66
  275. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDecisions.html +0 -3
  276. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDecisions.js +0 -38
  277. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDetail.html +0 -2
  278. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDetail.js +0 -66
  279. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDocument.html +0 -2
  280. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDocument.js +0 -5
  281. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHeader.html +0 -2
  282. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHeader.js +0 -12
  283. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHistory.html +0 -2
  284. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHistory.js +0 -11
  285. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentList.html +0 -2
  286. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentList.js +0 -116
  287. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentReplan.html +0 -2
  288. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentReplan.js +0 -32
  289. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentRevision.html +0 -2
  290. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentRevision.js +0 -49
  291. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentSummary.html +0 -2
  292. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentSummary.js +0 -10
  293. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentWorkspace.html +0 -2
  294. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentWorkspace.js +0 -77
  295. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/data.js +0 -60
  296. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/domain.js +0 -105
  297. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/store.js +0 -212
  298. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/AuditPanel.html +0 -2
  299. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/AuditPanel.js +0 -18
  300. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelDetail.html +0 -2
  301. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelDetail.js +0 -23
  302. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelEditor.html +0 -2
  303. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelEditor.js +0 -78
  304. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelGrant.html +0 -2
  305. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelGrant.js +0 -55
  306. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelReferences.html +0 -2
  307. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelReferences.js +0 -26
  308. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelRelease.html +0 -2
  309. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelRelease.js +0 -38
  310. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelStatus.html +0 -2
  311. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelStatus.js +0 -7
  312. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTable.html +0 -2
  313. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTable.js +0 -72
  314. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTester.html +0 -2
  315. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTester.js +0 -46
  316. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelsPage.html +0 -2
  317. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelsPage.js +0 -52
  318. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/RowActions.html +0 -2
  319. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/RowActions.js +0 -19
  320. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/UsagePanel.html +0 -2
  321. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/UsagePanel.js +0 -30
  322. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/data.js +0 -48
  323. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/domain.js +0 -39
  324. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/store.js +0 -129
  325. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IncidentDetail.html +0 -4
  326. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IncidentDetail.js +0 -21
  327. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IntentSource.html +0 -2
  328. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IntentSource.js +0 -8
  329. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationActionDialog.html +0 -2
  330. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationActionDialog.js +0 -37
  331. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationEntry.html +0 -2
  332. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationEntry.js +0 -10
  333. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationsPage.html +0 -2
  334. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationsPage.js +0 -37
  335. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RepairTrack.html +0 -2
  336. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RepairTrack.js +0 -49
  337. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RunDetail.html +0 -4
  338. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RunDetail.js +0 -22
  339. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/SourceSummary.html +0 -2
  340. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/SourceSummary.js +0 -9
  341. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/commands.js +0 -82
  342. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/examples.js +0 -47
  343. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/model.js +0 -61
  344. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/repair.js +0 -68
  345. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/store.js +0 -55
  346. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/types.js +0 -1
  347. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/workbench.js +0 -18
  348. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ManagementTable.html +0 -3
  349. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ManagementTable.js +0 -28
  350. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcCreateEntry.html +0 -2
  351. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcCreateEntry.js +0 -18
  352. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcDetail.html +0 -2
  353. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcDetail.js +0 -31
  354. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcEditor.html +0 -2
  355. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcEditor.js +0 -27
  356. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcLifecycle.html +0 -2
  357. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcLifecycle.js +0 -16
  358. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPage.html +0 -2
  359. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPage.js +0 -43
  360. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPicker.html +0 -4
  361. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPicker.js +0 -34
  362. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcProgress.html +0 -2
  363. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcProgress.js +0 -30
  364. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWizard.html +0 -3
  365. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWizard.js +0 -67
  366. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWorkspace.html +0 -2
  367. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWorkspace.js +0 -41
  368. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcsPage.html +0 -2
  369. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcsPage.js +0 -31
  370. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceEditor.html +0 -2
  371. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceEditor.js +0 -26
  372. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceList.html +0 -2
  373. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceList.js +0 -70
  374. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/data.js +0 -8
  375. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/domain.js +0 -62
  376. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/management.js +0 -36
  377. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/managementStore.js +0 -49
  378. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/store.js +0 -132
  379. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/AdminList.html +0 -2
  380. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/AdminList.js +0 -38
  381. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/EffectiveGrants.html +0 -2
  382. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/EffectiveGrants.js +0 -11
  383. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/GrantEditor.html +0 -2
  384. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/GrantEditor.js +0 -45
  385. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MemberEditor.html +0 -2
  386. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MemberEditor.js +0 -54
  387. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MembersPage.html +0 -3
  388. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MembersPage.js +0 -27
  389. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RecordsPage.html +0 -2
  390. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RecordsPage.js +0 -12
  391. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RoleEditor.html +0 -2
  392. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RoleEditor.js +0 -45
  393. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RolesPage.html +0 -3
  394. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RolesPage.js +0 -38
  395. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/domain.js +0 -61
  396. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/state.js +0 -51
  397. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/store.js +0 -116
  398. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseActionDialog.html +0 -2
  399. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseActionDialog.js +0 -45
  400. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseDetail.html +0 -4
  401. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseDetail.js +0 -30
  402. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseEditor.html +0 -2
  403. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseEditor.js +0 -67
  404. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseExecution.html +0 -2
  405. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseExecution.js +0 -5
  406. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleasesPage.html +0 -4
  407. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleasesPage.js +0 -60
  408. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/commands.js +0 -157
  409. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/model.js +0 -136
  410. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/store.js +0 -76
  411. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewDetail.html +0 -3
  412. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewDetail.js +0 -26
  413. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewEvidence.html +0 -2
  414. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewEvidence.js +0 -14
  415. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewProcess.html +0 -2
  416. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewProcess.js +0 -113
  417. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewsPage.html +0 -3
  418. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewsPage.js +0 -62
  419. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/commands.js +0 -97
  420. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/model.js +0 -147
  421. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/store.js +0 -13
  422. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ColumnSettings.html +0 -2
  423. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ColumnSettings.js +0 -9
  424. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListBatchBar.html +0 -2
  425. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListBatchBar.js +0 -8
  426. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListDeleteDialog.html +0 -2
  427. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListDeleteDialog.js +0 -37
  428. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListMore.html +0 -2
  429. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListMore.js +0 -8
  430. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/RecordMetadata.html +0 -2
  431. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/RecordMetadata.js +0 -17
  432. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/columns.js +0 -32
  433. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/deliveryGuide.js +0 -49
  434. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/deliveryView.js +0 -12
  435. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/listBatch.js +0 -15
  436. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/listSelection.js +0 -37
  437. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/policy.js +0 -68
  438. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/session.js +0 -44
  439. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConfirmationDialog.html +0 -2
  440. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConfirmationDialog.js +0 -25
  441. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConsoleShell.html +0 -2
  442. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConsoleShell.js +0 -53
  443. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/PrototypeGuide.html +0 -10
  444. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/PrototypeGuide.js +0 -30
  445. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ScopePage.html +0 -2
  446. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ScopePage.js +0 -10
  447. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/SessionDialog.html +0 -2
  448. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/SessionDialog.js +0 -9
  449. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/confirmation.js +0 -3
  450. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/navigation.js +0 -19
  451. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecDocument.html +0 -2
  452. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecDocument.js +0 -8
  453. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecEdit.html +0 -2
  454. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecEdit.js +0 -32
  455. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHeader.html +0 -2
  456. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHeader.js +0 -15
  457. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHistory.html +0 -2
  458. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHistory.js +0 -11
  459. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecReview.html +0 -2
  460. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecReview.js +0 -57
  461. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecWorkspace.html +0 -2
  462. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecWorkspace.js +0 -37
  463. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/data.js +0 -20
  464. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/domain.js +0 -55
  465. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/store.js +0 -151
  466. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/ArtifactDetail.html +0 -3
  467. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/ArtifactDetail.js +0 -18
  468. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskCreate.html +0 -2
  469. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskCreate.js +0 -40
  470. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskDetail.html +0 -2
  471. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskDetail.js +0 -51
  472. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskLaunch.html +0 -2
  473. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskLaunch.js +0 -9
  474. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TasksPage.html +0 -5
  475. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TasksPage.js +0 -48
  476. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/domain.js +0 -204
  477. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/exampleSource.js +0 -22
  478. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/registry.js +0 -135
  479. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/store.js +0 -137
  480. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/WorkbenchPage.html +0 -3
  481. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/WorkbenchPage.js +0 -36
  482. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/model.js +0 -56
  483. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/store.js +0 -15
  484. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowCanvas.html +0 -2
  485. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowCanvas.js +0 -27
  486. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowDetail.html +0 -4
  487. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowDetail.js +0 -31
  488. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowEditor.html +0 -2
  489. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowEditor.js +0 -68
  490. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/WorkflowsPage.html +0 -5
  491. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/WorkflowsPage.js +0 -55
  492. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/data.js +0 -16
  493. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/domain.js +0 -83
  494. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/registry.js +0 -18
  495. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/store.js +0 -61
  496. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/admin.css +0 -60
  497. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/agents.css +0 -46
  498. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/antdv.css +0 -295
  499. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/app.css +0 -102
  500. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/delivery.css +0 -4
  501. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/intents.css +0 -37
  502. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/native.css +0 -22
  503. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/operations.css +0 -2
  504. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/pbc.css +0 -3
  505. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/permissions.css +0 -22
  506. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/pro.css +0 -1
  507. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/releases.css +0 -4
  508. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/reset.css +0 -246
  509. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/reviews.css +0 -8
  510. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/tasks.css +0 -6
  511. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/tokens.css +0 -15
  512. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/workbench.css +0 -61
  513. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/workflows.css +0 -1
  514. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/admin-rules.test.js +0 -96
  515. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/agents.test.js +0 -14
  516. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/intent-state.test.js +0 -37
  517. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/list-batch.test.js +0 -44
  518. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/operation-fixtures.js +0 -19
  519. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/operation-repair.test.js +0 -14
  520. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/operations.test.js +0 -25
  521. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/pbc-management.test.js +0 -17
  522. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/pbc-state.test.js +0 -24
  523. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/permission-config.test.js +0 -23
  524. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/permissions.test.js +0 -24
  525. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/releases.test.js +0 -50
  526. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/reviews.test.js +0 -36
  527. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/runtime-forms-router.test.js +0 -28
  528. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/runtime-state.test.js +0 -42
  529. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/runtime-stores.test.js +0 -16
  530. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/spec-state.test.js +0 -11
  531. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/tasks.test.js +0 -27
  532. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/workbench.test.js +0 -34
  533. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/workflows.test.js +0 -16
  534. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/convert.mjs +0 -168
  535. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/serve.mjs +0 -7
  536. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/styles.mjs +0 -11
  537. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/verify.mjs +0 -24
  538. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/serve.cjs +0 -16
  539. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/template-inventory.json +0 -28791
  540. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/template.json +0 -9
  541. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/usability.css +0 -44
  542. package/skills/i3-ui-prototype/assets/templates/gallery/index.html +0 -40
  543. package/skills/i3-ui-prototype/assets/templates/generation-options.js +0 -42
  544. package/skills/i3-ui-prototype/assets/templates/index.html +0 -3
  545. package/skills/i3-ui-prototype/assets/templates/modern-workspace/manifest.json +0 -9
  546. package/skills/i3-ui-prototype/assets/templates/modern-workspace/preset.json +0 -6
  547. package/skills/i3-ui-prototype/assets/templates/presentation.html +0 -17
  548. package/skills/i3-ui-prototype/assets/templates/serve-gallery.cjs +0 -23
  549. package/skills/i3-ui-prototype/references/artifact-contract.md +0 -66
  550. package/skills/i3-ui-prototype/references/content-template.md +0 -81
  551. package/skills/i3-ui-prototype/references/enterprise-admin.md +0 -44
  552. package/skills/i3-ui-prototype/references/entry-contract.md +0 -71
  553. package/skills/i3-ui-prototype/references/execution-evidence.md +0 -51
  554. package/skills/i3-ui-prototype/references/expert-adapter.md +0 -76
  555. package/skills/i3-ui-prototype/references/framework-contract.md +0 -76
  556. package/skills/i3-ui-prototype/references/generation-contract.md +0 -122
  557. package/skills/i3-ui-prototype/references/interaction-acceptance.md +0 -169
  558. package/skills/i3-ui-prototype/references/legacy-native.md +0 -58
  559. package/skills/i3-ui-prototype/references/optional-skills.md +0 -63
  560. package/skills/i3-ui-prototype/references/project-layout.md +0 -92
  561. package/skills/i3-ui-prototype/references/template-adapters.md +0 -63
  562. package/skills/i3-ui-prototype/references/workflow-contract.md +0 -77
  563. package/skills/i3-ui-prototype/scripts/adapters/easel-html.cjs +0 -30
  564. package/skills/i3-ui-prototype/scripts/adapters/legacy-html.cjs +0 -28
  565. package/skills/i3-ui-prototype/scripts/browser-workspace.cjs +0 -72
  566. package/skills/i3-ui-prototype/scripts/buddy-host.cjs +0 -40
  567. package/skills/i3-ui-prototype/scripts/check-design-provider.cjs +0 -9
  568. package/skills/i3-ui-prototype/scripts/check-prototype.cjs +0 -14
  569. package/skills/i3-ui-prototype/scripts/codebuddy-context.cjs +0 -92
  570. package/skills/i3-ui-prototype/scripts/codebuddy-hook.cjs +0 -298
  571. package/skills/i3-ui-prototype/scripts/codebuddy-ide-source.cjs +0 -69
  572. package/skills/i3-ui-prototype/scripts/codebuddy-registration.cjs +0 -125
  573. package/skills/i3-ui-prototype/scripts/content-template.cjs +0 -98
  574. package/skills/i3-ui-prototype/scripts/design-provider-discovery.cjs +0 -128
  575. package/skills/i3-ui-prototype/scripts/enterprise-template.cjs +0 -104
  576. package/skills/i3-ui-prototype/scripts/execution-assertions.cjs +0 -43
  577. package/skills/i3-ui-prototype/scripts/execution-diagnostics.cjs +0 -91
  578. package/skills/i3-ui-prototype/scripts/execution-evidence.cjs +0 -177
  579. package/skills/i3-ui-prototype/scripts/execution-gates.cjs +0 -216
  580. package/skills/i3-ui-prototype/scripts/execution-policy.cjs +0 -62
  581. package/skills/i3-ui-prototype/scripts/execution-recovery.cjs +0 -58
  582. package/skills/i3-ui-prototype/scripts/execution-runtime.cjs +0 -69
  583. package/skills/i3-ui-prototype/scripts/generation-assets.cjs +0 -18
  584. package/skills/i3-ui-prototype/scripts/generation-contract.cjs +0 -214
  585. package/skills/i3-ui-prototype/scripts/generation-evidence.cjs +0 -50
  586. package/skills/i3-ui-prototype/scripts/generation-replan.cjs +0 -34
  587. package/skills/i3-ui-prototype/scripts/hosts/codebuddy.cjs +0 -21
  588. package/skills/i3-ui-prototype/scripts/init-prototype.cjs +0 -8
  589. package/skills/i3-ui-prototype/scripts/manage-baseline.cjs +0 -11
  590. package/skills/i3-ui-prototype/scripts/native-browser.cjs +0 -785
  591. package/skills/i3-ui-prototype/scripts/native-build.cjs +0 -91
  592. package/skills/i3-ui-prototype/scripts/native-command.cjs +0 -35
  593. package/skills/i3-ui-prototype/scripts/native-delivery.cjs +0 -104
  594. package/skills/i3-ui-prototype/scripts/native-devtools.cjs +0 -92
  595. package/skills/i3-ui-prototype/scripts/native-files.cjs +0 -44
  596. package/skills/i3-ui-prototype/scripts/native-pilot-lib.cjs +0 -290
  597. package/skills/i3-ui-prototype/scripts/native-pilot.cjs +0 -59
  598. package/skills/i3-ui-prototype/scripts/native-tool-name.cjs +0 -5
  599. package/skills/i3-ui-prototype/scripts/native-tool-result.cjs +0 -14
  600. package/skills/i3-ui-prototype/scripts/optional-skill-install.cjs +0 -203
  601. package/skills/i3-ui-prototype/scripts/project-registry.cjs +0 -126
  602. package/skills/i3-ui-prototype/scripts/prototype-dependencies.cjs +0 -103
  603. package/skills/i3-ui-prototype/scripts/prototype-hooks.cjs +0 -94
  604. package/skills/i3-ui-prototype/scripts/prototype-lib.cjs +0 -277
  605. package/skills/i3-ui-prototype/scripts/prototype-locations.cjs +0 -69
  606. package/skills/i3-ui-prototype/scripts/ptc-callbacks.cjs +0 -131
  607. package/skills/i3-ui-prototype/scripts/sync-template.cjs +0 -19
  608. package/skills/i3-ui-prototype/scripts/template-adapters.cjs +0 -89
  609. package/skills/i3-ui-prototype/scripts/template-contract.cjs +0 -407
  610. package/skills/i3-ui-prototype/scripts/template-inventory.cjs +0 -78
  611. package/skills/i3-ui-prototype/scripts/validate-result.cjs +0 -117
@@ -1,214 +0,0 @@
1
- 'use strict';
2
- const fs = require('node:fs'), path = require('node:path'), crypto = require('node:crypto'), assert = require('node:assert/strict');
3
- const hash = value => crypto.createHash('sha256').update(JSON.stringify(value)).digest('hex');
4
- const copy = value => JSON.parse(JSON.stringify(value));
5
- function resource(snapshot, name) {
6
- const file = snapshot.files.find(item => item.path === name);
7
- assert.ok(file, `Template generation resource is missing: ${name}`);
8
- return JSON.parse(Buffer.from(file.content, 'base64').toString('utf8'));
9
- }
10
- function definition() { return JSON.parse(fs.readFileSync(path.join(__dirname, '../assets/capabilities/generation.json'), 'utf8')); }
11
- function source(requirement) {
12
- return requirement?.source && ['type', 'reference', 'statement'].every(key => typeof requirement.source[key] === 'string' && requirement.source[key].trim());
13
- }
14
- function validateParameters(capability, value) {
15
- assert.ok(value && typeof value === 'object' && !Array.isArray(value), 'Capability parameters must be an object');
16
- for (const [key, item] of Object.entries(value)) {
17
- const rule = capability.parameters[key]; assert.ok(rule, `Unsupported ${capability.id} parameter: ${key}`);
18
- if (rule.enum) assert.ok(rule.enum.includes(item), `Invalid ${capability.id} parameter: ${key}`);
19
- if (rule.boolean) assert.equal(typeof item, 'boolean');
20
- if (rule.string) assert.ok(typeof item === 'string' && item.trim(), `Invalid string parameter: ${key}`);
21
- if (rule.integer) assert.ok(Number.isInteger(item) && item >= rule.integer, `Invalid integer parameter: ${key}`);
22
- if (rule.strings) assert.ok(Array.isArray(item) && item.every(value => typeof value === 'string' && value.trim()), `Invalid list parameter: ${key}`);
23
- if (rule.positiveIntegers) assert.ok(Array.isArray(item) && item.length >= 2 && new Set(item).size === item.length && item.every(value => Number.isInteger(value) && value > 0), `Invalid page-size parameter: ${key}`);
24
- }
25
- if (capability.id === 'pagination' && Object.keys(value).length) require('./template-contract.cjs').resolvePaginationParameters(value);
26
- return copy(value);
27
- }
28
- function reference(inventory, start) {
29
- const fragments = new Map(inventory.fragments.map(fragment => [fragment.file, fragment])), visited = new Set(), nodes = [], events = [], elements = [], capabilities = new Set();
30
- function visit(file) {
31
- if (visited.has(file)) return; visited.add(file);
32
- const fragment = fragments.get(file); assert.ok(fragment, `Reference fragment is missing: ${file}`);
33
- for (const node of fragment.nodes) {
34
- nodes.push(node.id);
35
- for (const [event, expression] of Object.entries(node.attributes)) if (event.startsWith('data-on-')) events.push({ nodeId: node.id, event, expression });
36
- const componentName = node.attributes['data-component'], component = inventory.components[componentName];
37
- const nodeEvents = Object.entries(node.attributes).filter(([key]) => key.startsWith('data-on-')).map(([event, expression]) => ({ event, expression }));
38
- if (nodeEvents.length || (component && component.classification.kind !== 'icon' && component.classification.capabilities.some(id => id !== 'review-tools'))) elements.push({ nodeId: node.id, fragment: file, component: componentName || null, capabilities: (component?.classification.capabilities || []).filter(id => id !== 'review-tools'), events: nodeEvents });
39
- if (component) {
40
- for (const capability of component.classification.capabilities) capabilities.add(capability);
41
- if (component.classification.source) visit(component.classification.source);
42
- }
43
- }
44
- }
45
- visit(start);
46
- return { fragments: [...visited], nodes, events, elements, capabilities: [...capabilities].sort() };
47
- }
48
- function navigation(items, pages) {
49
- if (items === undefined) return pages.map(page => ({ key: page.id, label: page.title }));
50
- const seen = new Set(), groups = new Set();
51
- function walk(values) {
52
- assert.ok(Array.isArray(values) && values.length, 'Navigation entries must be a nonempty array');
53
- return values.map(item => {
54
- if (item.children) {
55
- assert.ok(!item.pageId && /^[a-z][a-z0-9-]{0,63}$/.test(item.id || '') && item.title?.trim() && !groups.has(item.id), 'Invalid or duplicate navigation group'); groups.add(item.id);
56
- return { key: `@${item.id}`, label: item.title, children: walk(item.children) };
57
- }
58
- const page = pages.find(page => page.id === item.pageId);
59
- assert.ok(page && !seen.has(page.id), 'Duplicate or unknown navigation page'); seen.add(page.id);
60
- return { key: page.id, label: item.title || page.title };
61
- });
62
- }
63
- const result = walk(items); assert.equal(seen.size, pages.length, 'Navigation omits a declared page'); return result;
64
- }
65
- function compile(snapshot, scope, options = {}) {
66
- assert.equal(scope.schemaVersion, 3, 'Generation contracts require sourced scope schemaVersion=3');
67
- const meta = resource(snapshot, 'generation.json'), rules = copy(options.definition || definition());
68
- assert.equal(meta.schemaVersion, 1, 'Unsupported template generation version'); assert.equal(rules.schemaVersion, 1);
69
- assert.equal(meta.templateId, snapshot.id, 'Generation metadata belongs to a different template');
70
- assert.equal(hash(rules), meta.definitionDigest, 'Generation catalog differs from the frozen template rule identity');
71
- assert.ok(meta.frameworks.includes(options.framework || 'vue-antdv-next'), 'Unsupported template/framework choice');
72
- const presentation = { ...meta.defaults, ...scope.generation?.presentation };
73
- for (const key of Object.keys(presentation)) assert.ok(Object.hasOwn(meta.choices[key] || {}, presentation[key]), `Unsupported presentation choice: ${key}=${presentation[key]}`);
74
- const requirements = new Map((scope.requirements || []).map(item => [item.id, item]));
75
- assert.ok(requirements.size === scope.requirements.length && requirements.size && [...requirements.values()].every(item => typeof item.id === 'string' && item.id.trim() && source(item)), 'Every generation requirement needs a unique identity and source');
76
- const inventory = require('./template-inventory.cjs').verifySnapshot(snapshot), bindings = [], pages = [], coverage = [], decisions = scope.generation?.decisions || [];
77
- assert.ok(Array.isArray(decisions), 'Generation applicability decisions must be an array');
78
- const keys = new Set();
79
- for (const decision of decisions) {
80
- const key = `${decision.pageId}/${decision.regionId || "*"}/${decision.capabilityId}`; assert.ok(!keys.has(key), 'Duplicate generation applicability decision'); keys.add(key);
81
- assert.ok(rules.capabilities[decision.capabilityId], 'Unknown generation capability decision');
82
- assert.ok(['adopted', 'not-applicable'].includes(decision.decision), 'Unsupported generation decision');
83
- if (decision.decision === 'not-applicable') { assert.ok(!decision.regionId && !Object.keys(decision.parameters || {}).length, 'Capability exclusion applies to the page and has no ignored parameters'); assert.ok(!decisions.some(item => item !== decision && item.pageId === decision.pageId && item.capabilityId === decision.capabilityId), 'Conflicting capability applicability decisions'); }
84
- const requirement = requirements.get(decision.requirementId);
85
- assert.ok(decision.reason?.trim() && source(requirement) && (decision.pageId === 'app-shell' || requirement.pages?.includes(decision.pageId)), 'Generation decision requires a reason and matching requirement source');
86
- }
87
- function bind(pageId, regionId, capabilityId, parameters = {}) {
88
- assert.ok(rules.capabilities[capabilityId], `Unknown pattern capability: ${capabilityId}`);
89
- const id = `${pageId}/${regionId}/${capabilityId}`;
90
- const defaults = parameters.mode === 'fixed' ? { minimumTestPages: 3 } : rules.capabilities[capabilityId].defaults;
91
- if (!bindings.some(item => item.id === id)) bindings.push({ id, pageId, regionId, capabilityId, parameters: validateParameters(rules.capabilities[capabilityId], { ...defaults, ...parameters }) });
92
- }
93
- for (const capability of rules.core) bind('app-shell', 'shell', capability);
94
- if (meta.shell) coverage.push({ pageId: 'app-shell', ...reference(inventory, meta.shell) });
95
- assert.ok(scope.pages?.length, 'Generation pages are required');
96
- for (const page of scope.pages) {
97
- assert.match(page.id || '', /^[a-z][a-z0-9-]{0,63}$/); assert.ok(page.id !== 'app-shell' && page.title?.trim(), 'Business page identity/title required');
98
- assert.ok(!pages.some(item => item.id === page.id), 'Duplicate generation page');
99
- const selected = snapshot.index.pages.find(item => item.id === page.referencePage); assert.ok(selected, `Unknown reference page: ${page.referencePage}`);
100
- assert.ok(page.regions?.length, 'Generation regions are required');
101
- const regionIds = new Set();
102
- for (const region of page.regions) {
103
- assert.match(region.id || '', /^[a-z][a-z0-9-]{0,63}$/);
104
- assert.ok(!regionIds.has(region.id), 'Duplicate generation region'); regionIds.add(region.id);
105
- const pattern = region.pattern || region.mode;
106
- assert.ok(meta.patterns.includes(pattern) && rules.patterns[pattern], `Unsupported page pattern: ${pattern}`);
107
- const selectedCapabilities = new Set(rules.patterns[pattern].required);
108
- const editPresentation = region.parameters?.edit?.presentation || (['form-page','wizard','permissions'].includes(pattern) ? 'page' : region.parameters?.dialog?.presentation || 'drawer');
109
- if (selectedCapabilities.has('edit')) {
110
- if (pattern === 'form-page') assert.equal(editPresentation, 'page', 'A form-page requires page presentation');
111
- if (pattern === 'edit-form') assert.ok(['drawer','modal'].includes(editPresentation), 'An edit-form requires dialog presentation');
112
- if (editPresentation !== 'page') selectedCapabilities.add('dialog');
113
- if (region.parameters?.dialog?.presentation) assert.equal(region.parameters.dialog.presentation, editPresentation, 'Edit and dialog presentation must agree');
114
- }
115
- for (const key of Object.keys(region.parameters || {})) {
116
- assert.ok(rules.capabilities[key], `Unsupported capability parameter group: ${key}`);
117
- assert.ok(selectedCapabilities.has(key) || decisions.some(item => item.pageId === page.id && item.regionId === region.id && item.capabilityId === key && item.decision === 'adopted'), `Unused capability parameter group: ${key}`);
118
- }
119
- for (const capability of selectedCapabilities) {
120
- const selectedDefaults = capability === 'hierarchy' ? { kind: pattern === 'tree-table' ? 'tree-table' : pattern === 'permissions' ? 'permission-tree' : 'filter-tree', selectionPolicy: pattern === 'permissions' ? 'cascade' : pattern === 'tree-table' ? 'independent' : 'single' } : capability === 'edit' ? { presentation: editPresentation } : capability === 'dialog' && selectedCapabilities.has('edit') ? { presentation: editPresentation } : {};
121
- bind(page.id, region.id, capability, { ...selectedDefaults, ...region.parameters?.[capability] });
122
- }
123
- for (const [kind, items] of Object.entries({ field: region.fields || [], action: region.actions || [] })) {
124
- assert.ok(Array.isArray(items), 'Declare sourced field/action arrays'); const elementIds = new Set();
125
- for (const item of items) {
126
- assert.ok(/^[a-z][a-z0-9-]{0,63}$/.test(item.id || '') && !elementIds.has(item.id), 'Invalid or duplicate field/action identity'); elementIds.add(item.id);
127
- assert.ok(item.label?.trim() && source(requirements.get(item.requirementId)) && requirements.get(item.requirementId).pages?.includes(page.id), 'Business field/action requires a label and matching requirement source');
128
- if (kind === 'field') assert.ok(['text','textarea','select','number','checkbox','radio','date','time','tree-select','read-only'].includes(item.kind), 'Unsupported business field kind');
129
- else assert.ok(['create','read','update','delete','submit','state-change','other'].includes(item.kind) && ['page','row','selected','node'].includes(item.target) && item.outcome?.trim(), 'Business action needs kind, target and expected outcome');
130
- bindings.push({ id: `${page.id}/${region.id}/${kind}/${item.id}`, pageId: page.id, regionId: region.id, capabilityId: 'interaction', kind, parameters: copy(item) });
131
- }
132
- }
133
- }
134
- pages.push({ id: page.id, title: page.title, referencePage: page.referencePage, regions: page.regions.map(region => ({ id: region.id, pattern: region.pattern || region.mode, fields: copy(region.fields || []), actions: copy(region.actions || []) })) });
135
- coverage.push({ pageId: page.id, ...reference(inventory, selected.fragment) });
136
- }
137
- for (const decision of decisions) {
138
- assert.ok(decision.pageId === 'app-shell' || pages.some(page => page.id === decision.pageId), 'Decision page is not declared');
139
- const alreadyRequired = bindings.some(item => (item.pageId === decision.pageId || item.pageId === 'app-shell') && item.capabilityId === decision.capabilityId);
140
- assert.ok(!(alreadyRequired && decision.decision === 'not-applicable'), 'Cannot exempt a required selected-pattern capability');
141
- if (decision.decision !== 'adopted') continue;
142
- if (!decision.regionId) {
143
- assert.ok(alreadyRequired, 'An adopted capability needs a declared region');
144
- assert.ok(!Object.keys(decision.parameters || {}).length, 'Required capability parameters belong on the selected region');
145
- continue;
146
- }
147
- const page = scope.pages.find(item => item.id === decision.pageId);
148
- const region = decision.pageId === 'app-shell' && decision.regionId === 'shell' ? { id: 'shell' } : page?.regions.find(item => item.id === decision.regionId);
149
- assert.ok(region, 'An adopted capability needs a declared region');
150
- if (bindings.some(item => item.pageId === decision.pageId && item.regionId === region.id && item.capabilityId === decision.capabilityId)) assert.ok(!Object.keys(decision.parameters || {}).length, 'Required capability parameters belong on the selected region');
151
- else bind(decision.pageId, region.id, decision.capabilityId, { ...region.parameters?.[decision.capabilityId], ...decision.parameters });
152
- }
153
- const pendingDecisions = [];
154
- for (const item of coverage) for (const capabilityId of item.capabilities) {
155
- if (capabilityId === 'review-tools') continue;
156
- assert.ok(rules.capabilities[capabilityId], `Unmapped reference capability: ${capabilityId}`);
157
- if (!bindings.some(binding => (binding.pageId === item.pageId || binding.pageId === 'app-shell') && binding.capabilityId === capabilityId) && !decisions.some(decision => decision.pageId === item.pageId && decision.capabilityId === capabilityId)) pendingDecisions.push({ pageId: item.pageId, capabilityId });
158
- }
159
- // Each functional reference element is accounted for, including elements whose
160
- // capability is already core. Adopting a generic capability never accounts for
161
- // every example button, field or event implicitly.
162
- const referenceDecisions = scope.generation?.referenceDecisions || [], accounted = new Set();
163
- assert.ok(Array.isArray(referenceDecisions), 'Reference element decisions must be an array');
164
- for (const decision of referenceDecisions) {
165
- const requirement = requirements.get(decision.requirementId), selected = coverage.find(item => item.pageId === decision.pageId);
166
- assert.ok(selected && source(requirement) && (decision.pageId === 'app-shell' || requirement.pages?.includes(decision.pageId)) && decision.reason?.trim(), 'Reference element decision requires matching requirement source and reason');
167
- assert.ok(['mapped','not-applicable'].includes(decision.decision) && Array.isArray(decision.nodeIds) && decision.nodeIds.length, 'Explicit reference node IDs and disposition required');
168
- for (const nodeId of decision.nodeIds) {
169
- const key = `${decision.pageId}/${nodeId}`, element = selected.elements.find(item => item.nodeId === nodeId);
170
- assert.ok(element && !accounted.has(key), 'Unknown or duplicate reference element disposition'); accounted.add(key);
171
- if (decision.decision === 'mapped') {
172
- assert.ok(Array.isArray(decision.bindingIds) && decision.bindingIds.length, 'Mapped reference elements need actual binding IDs');
173
- for (const bindingId of decision.bindingIds) assert.ok(bindings.some(binding => binding.id === bindingId && (binding.pageId === decision.pageId || binding.pageId === 'app-shell')), 'Reference element binding belongs to another page or is absent');
174
- const relevant = element.capabilities.length ? element.capabilities : ['interaction'];
175
- assert.ok(bindings.some(binding => decision.bindingIds.includes(binding.id) && relevant.includes(binding.capabilityId)), 'Reference element mapping needs a matching semantic capability');
176
- } else assert.ok(!decision.bindingIds?.length, 'Excluded reference elements cannot claim implementation');
177
- }
178
- }
179
- const pendingReferenceElements = coverage.flatMap(item => item.elements.filter(element => !accounted.has(`${item.pageId}/${element.nodeId}`)).map(element => ({ pageId: item.pageId, ...element })));
180
- function scenarioExpectation(binding, scenario) {
181
- if (binding.capabilityId === 'pagination' && scenario.id === 'page-size' && binding.parameters.mode === 'fixed') return `固定容量 ${binding.parameters.fixedPageSize} 不可更改,界面说明正确;翻页、总数和选择符合固定容量约定。`;
182
- if (binding.capabilityId === 'columns' && scenario.id === 'persistence-scroll' && !binding.parameters.persist) return '列配置按声明仅在本轮生效,刷新恢复默认;宽表可滚动且操作列可达。';
183
- if (binding.capabilityId === 'dialog' && scenario.id === 'lifetime' && binding.parameters.presentation === 'modal') return '弹窗打开、关闭和进出动效生命周期完整,未提前卸载,符合固定弹窗呈现。';
184
- return scenario.expected;
185
- }
186
- const scenarios = bindings.flatMap(binding => binding.kind ? [{ id: `generation/${binding.id}`, bindingId: binding.id, pageId: binding.pageId, regionId: binding.regionId, capabilityId: binding.capabilityId, steps: [`在当前构建中操作 ${binding.parameters.label},核对身份、状态和需求来源。`], expected: binding.kind === 'action' ? binding.parameters.outcome : `字段 ${binding.parameters.label} 的类型、必填、只读、校验与联动符合固定字段声明。`, parameters: copy(binding.parameters) }] : rules.capabilities[binding.capabilityId].scenarios.map(scenario => ({ ...copy(scenario), expected: scenarioExpectation(binding, scenario), id: `generation/${binding.id}/${scenario.id}`, bindingId: binding.id, pageId: binding.pageId, regionId: binding.regionId, capabilityId: binding.capabilityId, parameters: copy(binding.parameters) })));
187
- for (const decision of referenceDecisions.filter(item => item.decision === 'mapped')) for (const nodeId of decision.nodeIds) {
188
- const element = coverage.find(item => item.pageId === decision.pageId).elements.find(item => item.nodeId === nodeId);
189
- const relevant = element.capabilities.length ? element.capabilities : ['interaction'];
190
- const binding = bindings.find(item => decision.bindingIds.includes(item.id) && relevant.includes(item.capabilityId));
191
- scenarios.push({ id: `generation/reference/${decision.pageId}/${hash(nodeId).slice(0,16)}`, bindingId: binding.id, pageId: decision.pageId, regionId: binding.regionId, capabilityId: binding.capabilityId, referenceNodeId: nodeId, referenceEvents: copy(element.events), requirementId: decision.requirementId, steps: ['在对应实际页面操作或检查本参考节点映射的控件,覆盖其采用的交互和状态。'], expected: `核对实际控件、对象、交互结果和状态符合需求与本次取舍:${decision.reason};不能用同能力下的另一个控件代替。`, parameters: { bindingIds: copy(decision.bindingIds) } });
192
- }
193
- return { schemaVersion: 1, definition: rules, template: { id: snapshot.id, version: snapshot.version, digest: snapshot.digest }, presentation, navigation: navigation(scope.generation?.navigation, pages), pages, bindings, decisions: copy(decisions), referenceCoverage: coverage, pendingDecisions, referenceDecisions: copy(referenceDecisions), pendingReferenceElements, scenarios };
194
- }
195
- function verify(snapshot, scope, fixed) {
196
- assert.deepEqual(fixed, compile(snapshot, scope, { definition: fixed.definition }), 'Fixed generation contract differs from selected patterns, sourced decisions or customer choices');
197
- return { status: 'passed', bindings: fixed.bindings.length, scenarios: fixed.scenarios.length, pendingDecisions: fixed.pendingDecisions.length, pendingReferenceElements: fixed.pendingReferenceElements.length };
198
- }
199
- function view(contract, options = {}) {
200
- if (options.details) return contract;
201
- if (options.page) assert.ok(options.page === 'app-shell' || contract.pages.some(page => page.id === options.page), 'Unknown generation page');
202
- const coverage = contract.referenceCoverage.filter(item => !options.page || item.pageId === options.page);
203
- if (options.fragment) assert.ok(coverage.some(item => item.fragments.includes(options.fragment)), 'Unknown reference fragment for selected page');
204
- const pending = contract.pendingReferenceElements.filter(item => !options.page || item.pageId === options.page), groups = new Map();
205
- for (const item of pending) { const key = `${item.pageId}/${item.fragment}`; if (!groups.has(key)) groups.set(key, { pageId: item.pageId, fragment: item.fragment, pending: 0 }); groups.get(key).pending++; }
206
- const scenarios = contract.scenarios.filter(item => !options.page || item.pageId === options.page);
207
- return { status: 'planned', readOnly: true, template: contract.template, presentation: contract.presentation,
208
- pages: contract.pages.filter(item => !options.page || item.id === options.page), bindings: contract.bindings.filter(item => !options.page || item.pageId === options.page),
209
- pendingDecisions: contract.pendingDecisions.filter(item => !options.page || item.pageId === options.page),
210
- referenceReview: { pendingCount: pending.length, fragments: [...groups.values()], ...(options.fragment ? { elements: pending.filter(item => item.fragment === options.fragment) } : {}) },
211
- acceptance: { scenarios: scenarios.length, ...(options.page ? { scenarioIds: scenarios.map(item => item.id) } : {}) },
212
- next: 'Use --page <business-page-id|app-shell> --fragment <reference-path> for nodes; --details returns the full fixed contract.' };
213
- }
214
- module.exports = { compile, verify, definition, resource, view };
@@ -1,50 +0,0 @@
1
- 'use strict';
2
- // Structural evidence validation cannot prove an actual host/MCP invocation or UI outcome.
3
- const {fs,path,assert,json,inside,hash}=require('./native-files.cjs');
4
- const nonempty=(value,label)=>assert.ok(typeof value==='string'&&value.trim(),`${label} required`);
5
- const exact=(actual,expected,label)=>assert.deepEqual([...actual].sort(),[...expected].sort(),`${label} differs from fixed generation bindings/scenarios`);
6
- function framework(){return json(path.join(__dirname,'../assets/frameworks/vue-antdv-next/generation-component-map.json'));}
7
- function initialize(generation){return {schemaVersion:1,bindings:generation.bindings.map(binding=>({bindingId:binding.id,status:'pending',components:[],files:[],scenarioIds:generation.scenarios.filter(s=>s.bindingId===binding.id).map(s=>s.id)}))};}
8
- function validateImplementation(directory,generation,implementation,options={}){
9
- assert.equal(implementation.schemaVersion,1,'Unsupported implementation mapping');assert.ok(Array.isArray(implementation.bindings),'Implementation bindings required');
10
- exact(implementation.bindings.map(item=>item.bindingId),generation.bindings.map(item=>item.id),'Implementation binding coverage');
11
- const map=options.frameworkMap||framework();let pending=0;
12
- for(const binding of generation.bindings){
13
- const item=implementation.bindings.find(item=>item.bindingId===binding.id);
14
- assert.ok(map.capabilities[binding.capabilityId]?.components?.length,`Framework capability mapping missing: ${binding.capabilityId}`);
15
- assert.ok(['pending','implemented'].includes(item.status),'Unknown implementation status');
16
- assert.ok(Array.isArray(item.scenarioIds),'Implementation scenario IDs required');exact(item.scenarioIds,generation.scenarios.filter(s=>s.bindingId===binding.id).map(s=>s.id),'Implementation scenario coverage');
17
- if(item.status==='pending'){pending++;continue;}
18
- assert.ok(Array.isArray(item.components)&&item.components.length,'Implemented binding needs components');
19
- for(const component of item.components)assert.ok(map.capabilities[binding.capabilityId].components.includes(component)||/^application:[A-Za-z][\w.-]*$/.test(component),`Undeclared framework component: ${component}`);
20
- assert.ok(Array.isArray(item.files)&&item.files.length,'Implemented binding needs source files');
21
- for(const source of item.files){
22
- assert.ok(typeof source.path==='string'&&/^(?:app\/src\/|app\/public\/|mocks\/)/.test(source.path),'Implementation must reference actual application source');
23
- nonempty(source.locator,'Implementation source locator');const file=inside(directory,source.path);assert.ok(fs.statSync(file).isFile(),'Implementation source must be a file');
24
- assert.ok(fs.readFileSync(file,'utf8').includes(source.locator),`Implementation locator absent from source: ${source.path}`);
25
- }
26
- }
27
- if(options.complete)assert.equal(pending,0,'Implementation pending; status alone cannot pass acceptance');
28
- return {status:pending?'pending':'implemented',bindings:implementation.bindings.length,pending,invocationVerified:false};
29
- }
30
- function validateObservations(directory,generation,report){
31
- const observations=report.generationObservations;assert.ok(Array.isArray(observations),'Generation observations required');
32
- exact(observations.map(item=>item.scenarioId),generation.scenarios.map(item=>item.id),'Generation observation scenario coverage');
33
- for(const scenario of generation.scenarios){
34
- const item=observations.find(item=>item.scenarioId===scenario.id);assert.equal(item.bindingId,scenario.bindingId,'Observation binding differs');assert.equal(item.status,'passed','Generation observation must pass');
35
- assert.ok(Array.isArray(item.steps)&&item.steps.length,'Actual generation observation steps required');
36
- for(const step of item.steps)for(const key of ['action','target','observed'])nonempty(step[key],`Observation step ${key}`);
37
- assert.ok(Array.isArray(item.toolCallIds)&&item.toolCallIds.length,'Observation needs actual host tool call locators');for(const call of item.toolCallIds)nonempty(call,'Tool call ID');
38
- assert.ok(Array.isArray(item.evidence)&&item.evidence.length,'Observation evidence files required');
39
- for(const evidence of item.evidence){assert.ok(typeof evidence.path==='string'&&evidence.path.startsWith('qa/'),'Observation evidence must be inside QA');const bytes=fs.readFileSync(inside(directory,evidence.path));assert.ok(bytes.length,'Observation evidence is empty');assert.equal(hash(bytes),evidence.sha256,'Observation evidence bytes changed');}
40
- }
41
- return {status:'passed',scenarios:observations.length,invocationVerified:false};
42
- }
43
- function designSummary(generation,previous=''){
44
- const start='<!-- generation-choices:start -->',end='<!-- generation-choices:end -->';
45
- const block=`${start}\n客户固定选择:布局 ${generation.presentation.layout};风格 ${generation.presentation.style};密度 ${generation.presentation.density}。四主题默认明亮;覆盖外壳、组件与浮层。未决能力 ${generation.pendingDecisions.length} 项;未决参考功能节点 ${generation.pendingReferenceElements.length} 项。当前依据为 inputs/generation.json。\n${end}`;
46
- const first=previous.indexOf(start),last=previous.indexOf(end);
47
- assert.ok((first===-1&&last===-1)||(first>=0&&last>first&&previous.indexOf(start,first+1)===-1&&previous.indexOf(end,last+1)===-1),'Ambiguous generation design markers; preserve the existing design');
48
- return first===-1?`${previous.trimEnd()}\n\n${block}\n`:`${previous.slice(0,first)}${block}${previous.slice(last+end.length)}`;
49
- }
50
- module.exports={framework,initialize,validateImplementation,validateObservations,designSummary};
@@ -1,34 +0,0 @@
1
- 'use strict';
2
- const {fs,path,assert,json,inside,write}=require('./native-files.cjs');
3
- function run(directory,options,lib){
4
- const meta=json(inside(directory,'prototype.json')),old=json(inside(directory,'inputs/scope.json'));
5
- assert.equal(meta.runtime.generationContract,1,'Replan requires an existing generation contract; legacy inputs are not implicitly upgraded');assert.equal(old.schemaVersion,3);
6
- const scope=json(path.resolve(options.scope));assert.equal(scope.schemaVersion,3,'Replan cannot downgrade the fixed generation contract');
7
- const template=json(inside(directory,'inputs/template-snapshot.json')),fixed=json(inside(directory,'inputs/generation.json'));
8
- const generation=require('./generation-contract.cjs').compile(template,scope,{definition:fixed.definition}),templates=require('./template-contract.cjs');
9
- const selection=require('./content-template.cjs').scopeInputs(template,scope,templates);
10
- const checked=templates.checkCapabilities({...selection.fixed,scope});assert.equal(checked.status,'passed',checked.errors?.join('; '));
11
- const scenarioDetails=[...checked.requiredScenarios,...generation.scenarios];const previous=json(inside(directory,'inputs/acceptance.json'));
12
- const drawer=generation.bindings.some(binding=>binding.capabilityId==='dialog'&&binding.parameters.presentation==='drawer');
13
- const acceptance={...previous,requiredScenarios:scenarioDetails.map(item=>typeof item==='string'?item:item.id),scenarioDetails,frameworkScenarios:['framework-responsive','framework-instance-isolation','template-content-projection',...(drawer?['framework-drawer-motion','framework-mask-blur','framework-focus-scroll']:[])]};
14
- const config=json(inside(directory,'app/public/prototype-config.json')),theme=selection.fixed.bindings.find(item=>item.capabilityId==='theme');
15
- const changes={
16
- 'inputs/scope.json':scope,'inputs/generation.json':generation,'inputs/capabilities.json':selection.fixed,'inputs/acceptance.json':acceptance,
17
- 'requirements-map.json':{schemaVersion:2,requirements:scope.requirements.map(r=>({...r,scenarios:scenarioDetails.filter(s=>s.bindingId.startsWith('app-shell/')||r.pages.some(page=>s.bindingId.startsWith(page+'/'))).map(s=>s.id)})),bindings:[...selection.fixed.bindings,...generation.bindings]},
18
- 'app/public/prototype-config.json':{...config,pages:scope.pages.map(page=>({id:page.id,title:page.title})),presentation:generation.presentation,navigation:generation.navigation,generation:{pages:generation.pages},theme:templates.resolveThemeParameters(theme.parameters)},
19
- 'design-system/implementation.json':require('./generation-evidence.cjs').initialize(generation),
20
- 'design-system/MASTER.md':require('./generation-evidence.cjs').designSummary(generation,fs.readFileSync(inside(directory,'design-system/MASTER.md'),'utf8')),
21
- 'mocks/contract.json':{...json(inside(directory,'mocks/contract.json')),status:'needs-business-data',requirements:scope.requirements.map(item=>item.id)},
22
- 'prototype.json':{...meta,business:{...meta.business,status:'needs-adaptation'}}
23
- };
24
- // Retain implementation locations for review, but require re-attestation after input changes.
25
- const implemented=json(inside(directory,'design-system/implementation.json'));
26
- for(const item of changes['design-system/implementation.json'].bindings){const prior=implemented.bindings.find(entry=>entry.bindingId===item.bindingId);if(prior){item.components=prior.components;item.files=prior.files;}}
27
- const backup=new Map(Object.keys(changes).map(file=>[file,fs.readFileSync(inside(directory,file))]));
28
- try{
29
- for(const [file,value]of Object.entries(changes))write(directory,file,value);
30
- const current=lib.manifest(directory);
31
- return lib.revise(directory,{owner:options.owner,revision:options.revision,expectedRevision:current.revision,expectedDigest:current.digest,acceptInputs:true});
32
- }catch(error){for(const [file,bytes]of backup)fs.writeFileSync(inside(directory,file),bytes);throw error;}
33
- }
34
- module.exports={run};
@@ -1,21 +0,0 @@
1
- #!/usr/bin/env node
2
- 'use strict';
3
- const fs=require('node:fs'),path=require('node:path');
4
- function format(result,event){
5
- if(result.deny)return {code:0,output:{hookSpecificOutput:{hookEventName:'PreToolUse',permissionDecision:'deny',permissionDecisionReason:result.reason}}};
6
- if(result.feedback)return {code:0,output:event==='Stop'?{continue:false,reason:result.reason}:{continue:true,hookSpecificOutput:{hookEventName:event,additionalContext:result.reason}}};
7
- if(result.context)return {code:0,output:{continue:true,...(result.recovery?.status==='blocked'?{systemMessage:result.context}:{}),...(['SessionStart','UserPromptSubmit','PostToolUse'].includes(event)?{hookSpecificOutput:{hookEventName:event,additionalContext:result.context}}:{})}};
8
- return {code:0,output:{continue:true}};
9
- }
10
- function main(argv=process.argv.slice(2),raw=fs.readFileSync(0,'utf8')) {
11
- if(Buffer.byteLength(raw)>4*1024*1024)throw new Error('Hook input too large');
12
- const options={};while(argv.length){const key=argv.shift();if(!key.startsWith('--')||!argv.length)throw new Error('Invalid Hook arguments');options[key.slice(2)]=argv.shift();}
13
- const {OWNER,EVENTS}=require('../codebuddy-registration.cjs');
14
- if(options.registration!==OWNER||!path.isAbsolute(options.base||'')||!EVENTS.includes(options.event)||!['auto','ide','cli'].includes(options.product))throw new Error('Invalid Hook registration');
15
- const result=require('../codebuddy-hook.cjs').handle(JSON.parse(raw),options);
16
- return format(result,options.event);
17
- }
18
- // Historical replay helpers above remain available to explicit audit tooling.
19
- // The old executable callback is retired, including registrations before the wrapper.
20
- if(require.main===module)process.stdout.write('{}\n');
21
- module.exports={main,format};
@@ -1,8 +0,0 @@
1
- 'use strict';
2
- const lib = require('./prototype-lib.cjs');
3
- try {
4
- const { options, positional } = lib.parseArgs(process.argv.slice(2));
5
- const result = positional[0] === 'templates' ? { templates: lib.listTemplates() } : lib.initPrototype(options);
6
- process.stdout.write(JSON.stringify(result, null, 2) + '\n');
7
- if (result.status === 'needs-design-provider') process.exitCode = 2;
8
- } catch (error) { process.stderr.write(error.message + '\n'); process.exitCode = 1; }
@@ -1,11 +0,0 @@
1
- 'use strict';
2
- const fs = require('node:fs');
3
- const lib = require('./prototype-lib.cjs');
4
- try {
5
- const { options, positional } = lib.parseArgs(process.argv.slice(2));
6
- const [operation, directory] = positional;
7
- if (!directory || !['inspect', 'manifest', 'revise', 'confirm-baseline'].includes(operation)) throw new Error('Usage: manage-baseline.cjs <inspect|manifest|revise|confirm-baseline> <directory> [--revision r002] [--confirmation file.json]');
8
- const result = operation === 'manifest' ? lib.contentManifest(directory) : operation === 'inspect' ? lib.compareBaseline(directory) : operation === 'revise' ? lib.revisePrototype(directory, options.revision, options) : lib.freezeBaseline(directory, JSON.parse(fs.readFileSync(options.confirmation, 'utf8')));
9
- process.stdout.write(JSON.stringify(result, null, 2) + '\n');
10
- if (result.status === 'corrupt-baseline') process.exitCode = 1;
11
- } catch (error) { process.stderr.write(error.message + '\n'); process.exitCode = 1; }