@givolt/i3-composer-agent 3.2.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +37 -70
  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,216 +0,0 @@
1
- 'use strict';
2
- // A: deterministic predicates shared by command gates, receipts, and Hook feedback.
3
- // A successful predicate correlates native source and current bytes; it is not a signature.
4
- const assert=require('node:assert/strict'),path=require('node:path');
5
- const P=require('./execution-policy.cjs'),E=require('./execution-evidence.cjs');
6
- const A=require('./execution-assertions.cjs');
7
- const command=require('./native-command.cjs');
8
- const same=(a,b,label)=>assert.deepEqual(a,b,label);
9
- const exact=(a,b,label)=>same([...new Set(a)].sort(),[...new Set(b)].sort(),label);
10
- function uiWrite(call,directory) {
11
- if(!['Write','Edit','MultiEdit','write_to_file','replace_in_file'].includes(call.name))return false;
12
- const file=call.input.file_path||call.input.filePath||call.input.path||call.input.TargetFile;
13
- if(typeof file!=='string')return false;
14
- const rel=path.relative(directory,path.resolve(call.cwd||directory,file));
15
- return /^(?:app[\\/](?:src|public)[\\/]|mocks[\\/]|design-system[\\/])/.test(rel);
16
- }
17
- function nativeRef(data,ref) {
18
- const call=E.reference(data.source.calls,ref);
19
- if(data.source.stableThroughLine!==undefined)assert.ok(call.resultLine<=data.source.stableThroughLine,'Native result is outside the completed evidence prefix');
20
- same(call.sessionId,data.binding.sessionId,'Native call belongs to another or unknown session');
21
- assert.ok(call.requestLine>=data.binding.entryLine,'Native call predates this task');return call;
22
- }
23
- function skill(data,ref,key,before=Infinity) {
24
- // Loading may be reused within this session/context, including before task binding.
25
- const call=E.reference(data.source.calls,ref);
26
- if(data.source.stableThroughLine!==undefined)assert.ok(call.resultLine<=data.source.stableThroughLine,'Skill result is outside the completed evidence prefix');
27
- same(call.sessionId,data.binding.sessionId,'Skill session differs or is unknown');same(call.skill,key,`Actual ${key} Skill load required`);
28
- assert.ok(call.requestLine>(data.source.contextLine||0),'Skill must be reloaded in the current context');
29
- assert.ok(call.resultLine<before,'Skill must load before implementation or execution');return call;
30
- }
31
- function quote(data,ref) {
32
- const call=nativeRef(data,ref);assert.ok(typeof ref.quote==='string'&&ref.quote.trim(),'Actual native result quote required');
33
- assert.ok(E.resultText(call.result).includes(ref.quote),'Quoted finding absent from native result');return call;
34
- }
35
- function identity(d) {
36
- P.validate(d.policy);assert.equal(d.binding?.schemaVersion,1,'Hook task binding required');assert.equal(d.proof?.schemaVersion,1,'Execution evidence required');
37
- for(const key of ['runId','sessionId','projectKey','policyDigest'])same(d.proof[key],d.binding[key],`Execution ${key} differs`);
38
- same(d.binding.policyDigest,d.policy.digest,'Execution policy differs');same(d.binding.inputDigest,d.current.inputDigest,'Inputs changed; begin a new execution run');
39
- for(const key of ['inputDigest','candidateDigest','revision'])same(d.proof[key],key==='candidateDigest'?d.current.digest:d.current[key],`Current ${key} differs`);
40
- assert.ok(d.source.prompts.some(p=>p.line===d.binding.entryLine),'Native user task source missing');
41
- if(d.binding.association==='automatic'){
42
- const prompt=d.source.prompts.find(p=>p.line===d.binding.entryLine);
43
- same(prompt?.digest,d.binding.promptDigest,'Automatic execution context belongs to a different native task');
44
- same(d.binding.contextLine,d.source.contextLine,'Automatic execution context changed');
45
- }else assert.ok(command.completedBegin(d.source,d.binding),'Successful execution-begin for the current native task/context is required');
46
- if(d.policy.id===P.AUTO_ID){same(d.binding.host,d.policy.host,'Actual native host differs from the fixed policy');assert.ok(d.binding.identitySource&&d.binding.identitySource!=='legacy-profile','Automatic policy requires actual native host identity');}
47
- if(d.binding.recovery){
48
- const recovery=d.binding.recovery;
49
- for(const ref of recovery.invocations||[]){const call=nativeRef(d,ref);same(call.skill,ref.skill,'Recovery Skill differs');same(call.requestLine,ref.requestLine,'Recovery request cursor differs');same(call.resultLine,ref.resultLine,'Recovery result cursor differs');assert.ok(call.requestLine>ref.feedbackLine,'Recovery invocation must follow its feedback');}
50
- if(recovery.status==='recovered'){
51
- const retry=nativeRef(d,recovery.retry);
52
- if(recovery.expectedRetry)for(const [key,value] of Object.entries(recovery.expectedRetry))same(recovery.retry[key],value,'Recovery retry differs from the denied operation');
53
- if(recovery.retry.kind!==undefined)assert.ok(Number.isFinite(recovery.retry.feedbackLine)&&recovery.retry.feedbackLine>=d.binding.entryLine&&retry.requestLine>recovery.retry.feedbackLine,'Recovery retry must follow its feedback');
54
- if(recovery.retry.kind==='stage'){
55
- const parsed=command.nativeCommand(retry.name,retry.input,retry.cwd||d.binding.project||d.binding.directory);
56
- assert.ok(parsed&&command.stageFor[parsed.operation],'Recovery retry is not a supported native stage command');
57
- same(parsed.root,d.binding.directory,'Recovery stage belongs to another prototype');
58
- same(parsed.operation,recovery.retry.operation,'Recovery stage operation differs');
59
- same(command.stageFor[parsed.operation],recovery.retry.stage,'Recovery stage differs');
60
- }else {
61
- assert.ok(recovery.retry.kind===undefined||recovery.retry.kind==='ui-write','Unknown recovery retry kind');
62
- assert.ok(uiWrite({...retry,cwd:retry.cwd||d.binding.project},d.binding.directory),'Recovery retry is not a native UI write');
63
- if(recovery.expectedRetry?.file){const input=retry.input,file=input.file_path||input.filePath||input.path||input.TargetFile;same(path.resolve(retry.cwd||d.binding.project,file),recovery.expectedRetry.file,'Recovery wrote a different UI file');}
64
- }
65
- for(const ref of recovery.invocations||[])assert.ok(retry.requestLine>ref.resultLine,'Retry must follow successful Skill results');
66
- }
67
- }
68
- }
69
- function frontend(d,complete) {
70
- const writes=d.source.calls.filter(c=>c.success&&c.requestLine>=d.binding.entryLine&&c.requestLine>(d.binding.contextLine||0)&&uiWrite({...c,cwd:c.cwd||(d.source.format==='codebuddy-ide-index-v1'?d.binding.project:undefined)},d.binding.directory));
71
- skill(d,d.proof.frontend,'frontend',writes.length?Math.min(...writes.map(c=>c.requestLine)):Infinity);
72
- if(!complete)return;
73
- assert.ok(writes.length,'Actual implementation write missing; metadata is not implementation');
74
- const required=Object.keys(d.files||{}).filter(file=>/^(?:app\/src\/|mocks\/)/.test(file));
75
- for(const binding of d.implementation?.bindings||[])for(const file of binding.files||[])required.push(file.path);
76
- assert.ok(required.length,'Actual UI source review required');
77
- exact((d.proof.frontend.files||[]).map(f=>f.path),required,'Frontend review file coverage differs');
78
- for(const file of d.proof.frontend.files)same(file.sha256,E.sha(d.files[file.path]),'Frontend reviewed source bytes changed');
79
- exact(d.proof.frontend.requirementIds||[],(d.scope?.requirements||[]).map(r=>r.id),'Frontend requirement review coverage differs');
80
- }
81
- function design(d) {
82
- const queries=d.proof.official?.queries;assert.ok(Array.isArray(queries)&&queries.length,'Business framework queries required');
83
- if(d.policy.officialCallable)skill(d,d.proof.official.skill,'antdv',Math.min(...queries.map(q=>nativeRef(d,q).requestLine)));
84
- else {
85
- assert.equal(d.proof.official.channel,'official-source','Disclose the equivalent official source channel');
86
- const failed=d.source.calls.find(c=>c.toolCallId===d.proof.official.unavailable?.toolCallId);
87
- assert.ok(failed?.skill==='antdv'&&!failed.success&&failed.resultLine&&failed.sessionId===d.binding.sessionId&&failed.requestLine>=d.binding.entryLine&&failed.requestLine>(d.source.contextLine||0)&&/not found|unavailable|not available|unknown skill|not in.*list|未找到|不可用/i.test(E.contentText(failed.result)),'Actual unavailable official Skill result required for fallback');
88
- }
89
- const version=quote(d,d.proof.official.version);
90
- assert.ok(/(?:Read|read_file|Bash|WebFetch|mcp__)/.test(version.name),'Version must come from an actual source tool');
91
- assert.ok(JSON.stringify(version.input).includes('antdv-next'),'Target package version source required');
92
- assert.ok(d.frameworkVersion&&d.proof.official.version.quote.includes(d.frameworkVersion),'Target framework version was not verified');
93
- const components=[...new Set((d.implementation?.bindings||[]).flatMap(b=>b.components||[]).filter(c=>!c.startsWith('application:')))];
94
- for(const component of components)assert.ok(queries.some(q=>q.component===component),`Actual API query missing: ${component}`);
95
- for(const query of queries) {
96
- assert.ok(query.component&&(!components.length||components.includes(query.component)),'Unrelated framework query');
97
- const call=quote(d,query),input=JSON.stringify(call.input);
98
- assert.ok(!call.skill&&input.includes(query.component),'Probe or Skill load is not a business API query');
99
- if(!d.policy.officialCallable)assert.ok(/https:\/\/(?:www\.)?(?:antdv-next\.com|github\.com\/antdv-next)|node_modules[\\/]antdv-next/.test(input),'Fallback must use official docs, types, or source');
100
- }
101
- if(d.policy.mode==='template') {
102
- const chosen=d.proof.templateChoice?.quote;
103
- const explicit=typeof chosen==='string'&&/template\s*(?:mode|模式)|模板模式|基础(?:生成|模式)|(?:选择|使用|采用)\s*template/i.test(chosen);
104
- const promptChoice=typeof chosen==='string'&&d.source.prompts.some(p=>p.line<=d.binding.entryLine&&p.text.includes(chosen)&&(explicit||p.text.trim()==='template'&&chosen==='template'));
105
- let answerChoice=false;
106
- if(d.proof.templateChoice?.toolCallId){const answer=nativeRef(d,d.proof.templateChoice);assert.ok(/^(?:AskUserQuestion|ask_followup_question)$/.test(answer.name),'Actual native user question result required');const selected=A.extract(A.resultData(answer.result),d.proof.templateChoice.answerPointer);answerChoice=['template','模板模式','基础生成','基础模式'].includes(selected);}
107
- assert.ok(promptChoice||answerChoice,'Explicit native user template choice required');return;
108
- }
109
- assert.ok(d.proof.uiux?.queries?.length,'Actual UIUX queries required in professional mode');
110
- skill(d,d.proof.uiux.skill,'uiux',Math.min(...d.proof.uiux.queries.map(q=>nativeRef(d,q).requestLine)));
111
- for(const query of d.proof.uiux.queries) {
112
- const call=quote(d,query);assert.ok(!call.skill&&query.query&&JSON.stringify(call.input).includes(query.query),'UIUX probe is not a task query');
113
- assert.ok(query.decisions?.length,'UIUX result decisions required');
114
- for(const decision of query.decisions) {
115
- assert.ok(['adopted','adjusted','rejected','no-match'].includes(decision.decision)&&decision.rationale&&decision.identity,'UIUX decision identity and rationale required');
116
- assert.ok(E.resultText(call.result).includes(decision.identity),'UIUX identity absent from actual result');
117
- if(['adopted','adjusted'].includes(decision.decision))assert.ok(Object.hasOwn(d.files||{},decision.implementation)&&decision.scenarioId,'Adopted UIUX result needs source and verification scenario');
118
- }
119
- }
120
- assert.ok(d.designReview?.records?.length,'Current design review required');
121
- for(const record of d.designReview.records)assert.ok(d.proof.uiux.queries.some(q=>q.query===record.query&&q.decisions.some(r=>r.identity===record.resultIdentity&&r.decision===record.decision&&r.rationale===record.rationale)),'Design review differs from actual UIUX query decisions');
122
- }
123
- function build(d) {
124
- assert.ok(d.build?.buildId&&d.build?.buildDigest,'Current checked build required');
125
- const call=nativeRef(d,d.proof.build),input=JSON.stringify(call.input),output=E.resultText(call.result);
126
- assert.ok(['Bash','execute_command','run_terminal_command'].includes(call.name)&&input.includes('native-pilot.cjs')&&/\bbuild\b/.test(input)&&input.includes(d.binding.directory),'Actual current build command required');
127
- assert.ok(output.includes(d.build.buildId)&&output.includes(d.build.buildDigest),'Native build result differs from current build');
128
- same(d.build.candidateDigest,d.current.digest,'Build candidate is stale');return call;
129
- }
130
- function browser(d) {
131
- const built=build(d);assert.ok(d.business&&d.devtools,'Actual business and DevTools reports required');
132
- const loaded=skill(d,d.devtools.skill,'browser');
133
- const calls=d.devtools.mcp?.calls;assert.ok(calls?.length,'Actual DevTools calls required');
134
- for(const ref of calls) {
135
- const call=nativeRef(d,ref);same(call.name,ref.tool,'DevTools native tool name differs');
136
- assert.ok(/^mcp__.*chrome.*devtools.*__/.test(call.name),'CodeBuddy requires Chrome DevTools MCP');
137
- assert.ok(call.requestLine>loaded.resultLine&&call.requestLine>built.resultLine,'Browser calls must follow Skill loading and the current build');
138
- }
139
- const preview=nativeRef(d,d.proof.browser?.preview);
140
- assert.ok(/^mcp__.*chrome.*devtools.*__(?:navigate_page|new_page)$/.test(preview.name)&&JSON.stringify(preview.input).includes(d.business.previewBaseURL),'Actual current preview navigation required');
141
- assert.ok(preview.requestLine>built.resultLine&&preview.requestLine>loaded.resultLine,'Preview must follow the current build and browser Skill');
142
- const identityCall=quote(d,d.proof.browser?.identity);
143
- assert.ok(calls.some(c=>c.toolCallId===identityCall.toolCallId)&&d.proof.browser.identity.quote.includes(d.current.digest),'Actual browser candidate identity missing');
144
- for(const kind of ['dom','screenshot','console','network','accessibility','performance']) {
145
- const fact=d.proof.browser.observations?.[kind],call=quote(d,fact);
146
- assert.ok(calls.some(c=>c.toolCallId===call.toolCallId),`${kind} observation is not from reviewed MCP calls`);
147
- assert.ok(({dom:['evaluate_script'],screenshot:['take_screenshot'],console:['list_console_messages'],network:['list_network_requests'],accessibility:['take_snapshot'],performance:['performance_stop_trace']})[kind].some(method=>call.name.endsWith(`__${method}`)),`${kind} fact uses the wrong native method`);
148
- }
149
- for(const journey of d.business.journeys||[]) {
150
- const facts=(d.proof.browser.facts||[]).filter(f=>f.scenarioId===journey.id);assert.ok(facts.length,`Native scenario facts missing: ${journey.id}`);
151
- const observation=d.business.generationObservations?.find(o=>o.scenarioId===journey.id);
152
- for(const fact of facts) {
153
- const call=quote(d,fact);assert.ok(/^mcp__.*chrome.*devtools.*__/.test(call.name)&&call.requestLine>preview.resultLine,'Scenario facts must follow actual preview navigation');
154
- if(observation)assert.ok(observation.toolCallIds.includes(call.toolCallId)&&observation.steps.some(s=>s.observed.includes(fact.quote)),'Scenario fact differs from actual observation');
155
- }
156
- }
157
- const fixed=A.validate(d.assertions,d.business.journeys.map(j=>j.id));
158
- for(const scenario of fixed.scenarios)for(const [checkIndex,check] of scenario.checks.entries()) {
159
- const fact=d.proof.browser.facts.find(f=>f.scenarioId===scenario.scenarioId&&f.checkIndex===checkIndex);assert.ok(fact,'Fixed scenario assertion has no actual native fact');
160
- const call=nativeRef(d,fact);assert.ok(call.name.endsWith(`__${check.method}`),'Native fact method differs from fixed check');
161
- A.compare(A.extract(A.resultData(call.result),check.pointer),check);
162
- }
163
- }
164
- function automatic(d,stage){
165
- P.validate(d.policy);
166
- const prompt=d.source.prompts.find(item=>item.line===d.binding.entryLine);
167
- assert.ok(prompt,'Original prototype request is missing');same(d.binding.promptDigest,prompt.digest,'Original prototype request changed');
168
- same(d.binding.inputDigest,d.current.inputDigest,'Prototype inputs changed');same(d.binding.contextLine,d.source.contextLine,'Native context changed');
169
- const needs=P.requirements(d.policy,stage),calls=d.source.calls.filter(c=>c.sessionId===d.binding.sessionId&&c.success&&c.resultLine&&c.requestLine>d.source.contextLine);
170
- const refs={},required=needs.filter(k=>['frontend','antdv','uiux','browser'].includes(k));
171
- if(needs.includes('implementation'))required.push('frontend',...(d.policy.officialCallable?['antdv']:[]),...(d.policy.mode==='professional'?['uiux']:[]));
172
- const writes=calls.filter(c=>c.requestLine>=d.binding.entryLine&&uiWrite({...c,cwd:c.cwd||d.binding.project},d.binding.directory));
173
- for(const key of [...new Set(required)]){
174
- const loaded=calls.filter(c=>c.skill===key),firstWrite=writes.length?Math.min(...writes.map(c=>c.requestLine)):Infinity;
175
- const call=['frontend','antdv','uiux'].includes(key)?loaded.find(c=>c.resultLine<firstWrite):loaded.at(-1);
176
- assert.ok(call,`Actual ${key} Skill invocation required before UI implementation; invoke it and retry this operation`);
177
- if(['frontend','antdv','uiux'].includes(key)&&writes.length)assert.ok(call.resultLine<Math.min(...writes.map(c=>c.requestLine)),`${key} Skill must precede business UI writes`);
178
- refs[key]={toolCallId:call.toolCallId,resultDigest:call.resultDigest};
179
- }
180
- if(needs.includes('implementation'))assert.ok(writes.length,'Actual business UI implementation write required');
181
- if(needs.includes('build')){
182
- assert.ok(d.build&&d.build.candidateDigest===d.current.digest,'Current prototype build required');
183
- const built=calls.find(c=>{const commandInfo=command.nativeCommand(c.name,c.input,c.cwd||d.binding.project);const result=E.resultValue(c.result);return commandInfo?.operation==='build'&&commandInfo.root===d.binding.directory&&result?.buildId===d.build.buildId&&result?.buildDigest===d.build.buildDigest;});
184
- assert.ok(built,'Actual current build result required');refs.build={toolCallId:built.toolCallId,resultDigest:built.resultDigest};
185
- }
186
- if(needs.includes('browser-results')){
187
- const loaded=calls.filter(c=>c.skill==='browser').at(-1),built=calls.find(c=>c.toolCallId===refs.build?.toolCallId);
188
- const observed=calls.filter(c=>/^mcp__.*chrome.*devtools.*__/.test(c.name)&&c.requestLine>Math.max(loaded.resultLine,built.resultLine));
189
- assert.ok(observed.some(c=>/__(?:new_page|navigate_page)$/.test(c.name)),'Actual browser navigation required');
190
- assert.ok(observed.some(c=>c.name.endsWith('__evaluate_script')&&E.resultText(c.result).includes(d.current.digest)),'Actual browser candidate identity required');
191
- for(const method of ['take_screenshot','list_console_messages','list_network_requests','take_snapshot','performance_stop_trace'])assert.ok(observed.some(c=>c.name.endsWith('__'+method)),`Actual browser ${method} required`);
192
- assert.ok(d.business&&d.business.candidateDigest===d.current.digest&&d.business.buildId===d.build.buildId,'Current business browser report required');
193
- const fixed=A.validate(d.assertions,d.business.journeys.map(j=>j.id));
194
- for(const scenario of fixed.scenarios)for(const check of scenario.checks){
195
- const observation=d.business.generationObservations?.find(o=>o.scenarioId===scenario.scenarioId);
196
- const results=observed.filter(c=>c.name.endsWith('__'+check.method)&&(!observation||observation.toolCallIds.includes(c.toolCallId)));
197
- assert.ok(results.some(c=>{try{A.compare(A.extract(A.resultData(c.result),check.pointer),check);return true;}catch{return false;}}),`Actual browser assertion missing: ${scenario.scenarioId} ${check.pointer}`);
198
- }
199
- }
200
- return {status:'passed',stage,policyDigest:d.policy.digest,runId:d.binding.runId,sessionId:d.binding.sessionId,projectKey:d.binding.projectKey,host:d.policy.host,productForm:d.binding.product,productVersion:d.binding.productVersion,installationScope:d.binding.scope,
201
- operation:d.binding.operation,mode:d.policy.mode,inputDigest:d.current.inputDigest,candidateDigest:d.current.digest,revision:d.current.revision,association:'automatic',skills:refs,source:{path:d.source.path,bytes:d.source.bytes,digest:d.source.digest},
202
- ...(d.source.callbackJournal?{callbackJournal:d.source.callbackJournal}:{}),...(d.binding.recovery?{recovery:d.binding.recovery}:{}),invocationVerification:'native-source-correlated',tamperProof:false};
203
- }
204
- function evaluate(data,stage) {
205
- try {
206
- if(data.binding?.association==='automatic')return automatic(data,stage);
207
- identity(data);const needs=P.requirements(data.policy,stage);
208
- if(needs.includes('frontend')||needs.includes('implementation'))frontend(data,needs.includes('implementation'));
209
- if(needs.some(n=>['antdv','official-source','uiux'].includes(n)))design(data);
210
- if(needs.includes('build'))build(data);
211
- if(needs.includes('browser'))skill(data,data.proof.browser?.skill||data.devtools?.skill,'browser');
212
- if(needs.includes('browser-results'))browser(data);
213
- return {status:'passed',stage,policyDigest:data.policy.digest,runId:data.binding.runId,sessionId:data.binding.sessionId,projectKey:data.binding.projectKey,host:data.policy.host,productForm:data.binding.product||'unreported',productVersion:data.binding.productVersion||'unreported',installationScope:data.binding.scope||'unreported',operation:data.binding.operation||data.policy.operation,mode:data.policy.mode,inputDigest:data.current.inputDigest,candidateDigest:data.current.digest,revision:data.current.revision,source:data.source.path?{path:data.source.path,bytes:data.source.bytes,digest:data.source.digest}:undefined,...(data.binding.recovery?{recovery:data.binding.recovery}:{}),invocationVerification:'native-source-correlated',tamperProof:false};
214
- } catch(error){return {status:'failed',stage,errors:[error.message],invocationVerification:'unverified'};}
215
- }
216
- module.exports={evaluate,uiWrite};
@@ -1,62 +0,0 @@
1
- 'use strict';
2
- const assert = require('node:assert/strict');
3
- const crypto = require('node:crypto');
4
- const ID = 'codebuddy-ab-v1';
5
- const AUTO_ID = 'buddy-ab-v2';
6
- const SKILLS = Object.freeze({
7
- frontend: [['frontend','ui','engineering'].join('-'), 'i3-frontend-ui-engineering'],
8
- browser: [['browser','testing','with','devtools'].join('-'), 'i3-browser-testing-with-devtools'],
9
- prototype: [['ui','prototype'].join('-'), 'i3-ui-prototype'],
10
- antdv: ['antdv'], uiux: ['ui-ux-pro-max'],
11
- });
12
- const STAGES = ['design', 'implementation-entry', 'implementation', 'build', 'browser-entry', 'browser', 'delivery'];
13
- function digest(value) { return crypto.createHash('sha256').update(JSON.stringify(value)).digest('hex'); }
14
- function create(options = {}) {
15
- const { host = 'codebuddy', operation = 'create', mode = 'professional', officialCallable = true } = options;
16
- const policyId=options.id||(host==='workbuddy'?AUTO_ID:ID);
17
- assert.ok([ID,AUTO_ID].includes(policyId),'Unsupported execution policy');
18
- assert.ok(['codebuddy','workbuddy'].includes(host),'This execution policy supports CodeBuddy and WorkBuddy only');
19
- if(policyId===ID)assert.equal(host,'codebuddy','The legacy policy is CodeBuddy only');
20
- assert.ok(['analyze', 'create', 'revise', 'inspect', 'confirm-baseline'].includes(operation), 'Invalid execution operation');
21
- assert.ok(['professional', 'template'].includes(mode), 'Invalid execution mode');
22
- assert.equal(typeof officialCallable, 'boolean');
23
- const value = { schemaVersion: policyId===AUTO_ID?2:1, id: policyId, host, operation, mode, officialCallable,
24
- ...(policyId===AUTO_ID?{recovery:{perMissing:2,total:6}}:{}),
25
- readOnly: !['create', 'revise'].includes(operation), skills: SKILLS, stages: STAGES };
26
- return { ...value, digest: digest(value) };
27
- }
28
- function validate(policy) {
29
- assert.ok(policy && [ID,AUTO_ID].includes(policy.id), 'Unsupported execution policy');
30
- const expected = create(policy);
31
- assert.deepEqual(policy, expected, 'Execution policy was changed or is invalid');
32
- return policy;
33
- }
34
- function requirements(policy, stage) {
35
- validate(policy); assert.ok(STAGES.includes(stage), 'Unknown execution stage');
36
- if (policy.readOnly) return [];
37
- const design = [policy.officialCallable ? 'antdv' : 'official-source', ...(policy.mode === 'professional' ? ['uiux'] : [])];
38
- return ({ design, 'implementation-entry': ['frontend'], implementation: ['frontend', 'implementation',...(policy.id===AUTO_ID?design:[])],
39
- build: ['implementation', 'build'], 'browser-entry': ['browser', 'build'],
40
- browser: ['browser', 'build', 'browser-results'], delivery: [...design, 'frontend', 'implementation', 'build', 'browser', 'browser-results'] })[stage];
41
- }
42
- function skillKey(name) {
43
- if(typeof name!=='string')return null;
44
- const [namespace,leaf,...rest]=name.split(':');
45
- if(leaf!==undefined){
46
- if(rest.length)return null;
47
- const allowed={'i3-composer-agent':['frontend','browser','prototype'],'i3-composer-agent':['frontend','browser'],'ui-ux-pro-max':['uiux'],'antdv':['antdv'],'antdv-next':['antdv']};
48
- return (allowed[namespace]||[]).find(key=>SKILLS[key].includes(leaf))||null;
49
- }
50
- return Object.keys(SKILLS).find(key => SKILLS[key].includes(name)) || null;
51
- }
52
- function creationOptions(options,installed) {
53
- if(installed?.name!=='i3-composer-agent')return options;
54
- let host=options.host;
55
- if(!host&&installed.agents?.length){
56
- const hosts=installed.agents.filter(value=>['codebuddy','workbuddy'].includes(value));
57
- assert.ok(hosts.length<2,'Shared Buddy installation requires the actual --host');
58
- if(hosts.length===1)host=hosts[0];
59
- }
60
- return ['codebuddy','workbuddy'].includes(host)?{...options,host,executionPolicy:options.executionPolicy||AUTO_ID}:options;
61
- }
62
- module.exports = { ID, AUTO_ID, SKILLS, STAGES, digest, create, validate, requirements, skillKey, creationOptions };
@@ -1,58 +0,0 @@
1
- 'use strict';
2
- // Reminder/audit records do not authorize operations. The current native Skill
3
- // results and stage predicates decide whether an operation can proceed.
4
- const E=require('./execution-evidence.cjs'),P=require('./execution-policy.cjs');
5
- const N=require('./native-command.cjs');
6
- const names={frontend:'i3-frontend-ui-engineering',antdv:'antdv',uiux:'ui-ux-pro-max',browser:'i3-browser-testing-with-devtools'};
7
- const blockedReason='必要调用或验收仍缺失,已停止重复催调。请报告具体缺项;取得真实成功结果后可重试原操作,不能宣称原型已通过验收。';
8
- function missing({source,binding,policy,stage}){
9
- const unbound=binding?.association!=='automatic'&&!N.completedBegin(source,binding);
10
- const required=stage&&policy?P.requirements(policy,stage).filter(key=>Object.hasOwn(names,key)):['frontend',...(policy?.id===P.AUTO_ID?[...(policy.officialCallable?['antdv']:[]),...(policy.mode==='professional'?['uiux']:[])]:[])];
11
- const sessionId=binding?.sessionId||source.calls.find(call=>call.sessionId)?.sessionId;
12
- return [...(unbound?['execution-begin']:[]),...required.filter(key=>!E.loaded(source.calls,key).some(call=>call.sessionId===sessionId&&call.requestLine>source.contextLine&&(source.stableThroughLine===undefined||call.resultLine<=source.stableThroughLine)))];
13
- }
14
- function instruction(keys,{directory,automatic=false}={}){
15
- const skills=keys.filter(key=>names[key]).map(key=>names[key]);
16
- const begin=keys.includes('execution-begin')?`先为当前任务独立执行 execution-begin${directory?':\n'+N.beginCommand(directory)+'\n':'。'}不得拼接 cd &&、管道、重定向或 head;等待 status=bound 且退出码为 0,再重试原操作。`:'';
17
- return `${begin}${skills.length?'请立即通过当前宿主的 Skill 工具调用 '+skills.join('、')+'(插件安装使用宿主显示的完整名称),等待成功返回后重试原操作。':''}${keys.includes('execution-evidence')?(automatic?'按本次构建或交互验收返回的具体缺项修正原型后重试;调用记录由 Hooks 自动采集,不检查或修复 Hooks。':'执行 execution-check,按实际原生请求和结果补齐当前阶段证据后重试。'):''}读取 SKILL.md、自动补全提示、手填调用记录不能代替实际调用。外层工具 success 不代表原型阶段成功;内层 status=failed 或非零退出必须保持阻塞。失败时报告具体原因,不得自动安装依赖或宣称完成。`;
18
- }
19
- function record(index,context,answer){
20
- const {source,sessionId,directory,eventKey,event}=context,prompt=source.prompts.at(-1);
21
- const taskKey=E.sha(JSON.stringify([sessionId,source.contextLine,directory,index.bindings?.[directory]?.runId||null]));
22
- if(!answer.deny&&!answer.feedback&&!index.recoveries?.[taskKey])return answer;
23
- index.recoveries||={};
24
- const state=index.recoveries[taskKey]||={schemaVersion:1,total:0,counts:{},events:{},pending:{},invocations:[],status:'required'};
25
- state.feedbackLine??=Math.max(prompt.line,...Object.values(state.pending).map(item=>item.line));
26
- const summary=()=>({taskKey,status:state.status,total:state.total,counts:state.counts,invocations:state.invocations,...(state.expectedRetry?{expectedRetry:state.expectedRetry}:{}),...(state.retry?{retry:state.retry}:{})});
27
- const remember=result=>{state.events[eventKey]=result;for(const key of Object.keys(state.events).slice(0,-128))delete state.events[key];return {...result,recovery:summary()};};
28
- if(state.events[eventKey]&&(answer.deny||answer.feedback))return remember({...answer});
29
- if(answer.deny||answer.feedback){
30
- if(context.expectedRetry&&(!state.expectedRetry||state.status==='recovered'))state.expectedRetry=context.expectedRetry;
31
- const keys=[...new Set(answer.missing?.length?answer.missing:['execution-evidence'])];
32
- const limits=context.policy?.recovery||{perMissing:2,total:6};
33
- if(state.total>=limits.total||keys.some(key=>(state.counts[key]||0)>=limits.perMissing)){
34
- state.status='blocked';
35
- const result=answer.deny?{deny:true,reason:blockedReason,missing:keys}:{continue:true,context:blockedReason};return remember(result);
36
- }
37
- state.total++;for(const key of keys)state.counts[key]=(state.counts[key]||0)+1;state.status='required';
38
- const line=Math.max(prompt.line,...source.calls.map(call=>call.resultLine||call.requestLine));
39
- state.feedbackLine=Math.max(state.feedbackLine,line);
40
- for(const item of keys)state.pending[item]||={line,eventKey,...(item==='execution-evidence'&&context.stage?{stage:context.stage}:{})};
41
- }else{
42
- for(const [key,pending] of Object.entries(state.pending)){
43
- if(names[key]){
44
- const call=E.loaded(source.calls,key).find(call=>call.sessionId===sessionId&&call.requestLine>Math.max(pending.line,source.contextLine)&&(source.stableThroughLine===undefined||call.resultLine<=source.stableThroughLine));
45
- if(!call)continue;
46
- if(!state.invocations.some(item=>item.toolCallId===call.toolCallId))state.invocations.push({skill:key,toolCallId:call.toolCallId,resultDigest:call.resultDigest,requestLine:call.requestLine,resultLine:call.resultLine,feedbackLine:pending.line,afterFeedback:pending.eventKey});
47
- }else if(!(context.resolved||[]).includes(key)||pending.stage&&pending.stage!==context.stage)continue;
48
- delete state.pending[key];
49
- }
50
- if(!Object.keys(state.pending).length&&state.status!=='recovered'){
51
- const matchingRetry=!state.expectedRetry||Object.entries(state.expectedRetry).every(([key,value])=>context.retry?.[key]===value);
52
- const afterSkills=state.invocations.every(call=>context.retry?.requestLine>call.resultLine);
53
- state.status=context.retrySucceeded&&matchingRetry&&afterSkills&&event==='PostToolUse'&&context.retry?.requestLine>state.feedbackLine?'recovered':'ready-to-retry';if(state.status==='recovered')state.retry={...context.retry,feedbackLine:state.feedbackLine};
54
- }
55
- }
56
- return remember({...answer});
57
- }
58
- module.exports={missing,instruction,record};
@@ -1,69 +0,0 @@
1
- 'use strict';
2
- const F=require('./native-files.cjs'),{fs,path,assert,json,inside}=F;
3
- const P=require('./execution-policy.cjs'),E=require('./execution-evidence.cjs'),G=require('./execution-gates.cjs'),C=require('./codebuddy-context.cjs');
4
- const Recovery=require('./execution-recovery.cjs');
5
- const optional=(root,file)=>fs.existsSync(inside(root,file))?json(inside(root,file)):null;
6
- function policy(directory) {
7
- const value=optional(directory,'inputs/execution-policy.json'),metaFile=inside(directory,'prototype.json');
8
- if(!value&&!fs.existsSync(metaFile))return null; // Standalone legacy evidence validators have no artifact metadata.
9
- const meta=json(metaFile);
10
- if(!value){assert.ok(!meta.runtime.executionPolicy&&!fs.existsSync(inside(directory,'qa/execution-context.json')),'Fixed execution policy was removed');return null;}
11
- P.validate(value);assert.equal(meta.runtime.executionPolicy,value.id,'Execution runtime identity differs');assert.equal(meta.expertMode,value.mode,'Execution mode changed');
12
- const acceptance=json(inside(directory,'inputs/acceptance.json'));require('./execution-assertions.cjs').validate(json(inside(directory,'inputs/execution-assertions.json')),[...acceptance.requiredScenarios,...acceptance.frameworkScenarios]);return value;
13
- }
14
- function binding(directory) {
15
- const metadata=inside(directory,'prototype.json');
16
- const automaticExpected=fs.existsSync(metadata)&&json(metadata).runtime?.executionPolicy===P.AUTO_ID;
17
- const recover=automaticExpected?'Prototype audit Hooks are retired. Normal prototype commands no longer require this historical audit binding.':Recovery.instruction(['execution-begin'],{directory});
18
- const pointer=optional(directory,'qa/execution-context.json');assert.ok(pointer?.schemaVersion===1,'No native Hook task binding; '+recover);
19
- const project=fs.realpathSync(pointer.project),selected=C.select({project,product:pointer.product,host:pointer.host||'codebuddy'});assert.ok(selected,'Hooks are not enabled or are shadowed');
20
- assert.equal(selected.base,pointer.base,'Effective Hook scope changed');
21
- const stateDirectory=C.sessionDirectory(selected,project,pointer.sessionId),indexFile=path.join(stateDirectory,'session.json');
22
- const index=JSON.parse(C.read(indexFile)||'null'),entry=index?.bindings?.[directory];assert.ok(entry,'Native Hook run is missing');
23
- assert.equal(entry.runId,pointer.runId,'Native run pointer differs');assert.equal(entry.directory,directory);assert.equal(entry.project,project);
24
- assert.equal(entry.instanceId,json(inside(directory,'prototype.json')).instanceId,'Prototype instance differs');
25
- assert.equal(entry.registrationDigest,selected.registrationDigest,'Hook registration changed');assert.equal(entry.settingsDigest,selected.settingsDigest,'Hook settings changed');
26
- C.prefix(entry.source.path,entry.source.bytes,entry.source.digest);
27
- const source=C.source({session_id:entry.sessionId,transcript_path:entry.source.path},selected,project);
28
- const prompt=source.prompts.find(p=>p.line===entry.entryLine);assert.equal(prompt?.digest,entry.promptDigest,'Original user task changed');
29
- assert.ok(!C.restriction(source.prompts).blocked,'The user requested read-only work or stopped implementation');
30
- assert.equal(entry.contextLine,source.contextLine,'Native context changed; '+recover);
31
- return {entry,source,selected};
32
- }
33
- function data(directory,lib,options={}) {
34
- directory=fs.realpathSync(directory);const fixed=policy(directory);if(!fixed)return null;
35
- const {entry,source,selected}=binding(directory),current=lib.manifest(directory);
36
- const proof=options.proof||optional(directory,'qa/execution-evidence.json');
37
- const files={};for(const file of Object.keys(current.files))if(/^(?:app\/src\/|app\/public\/|mocks\/|design-system\/)/.test(file))files[file]=fs.readFileSync(inside(directory,file));
38
- const pointer=optional(directory,'last-build.json');let build=null;
39
- if(pointer)try{build=lib.verifyBuild(directory,pointer.buildId);}catch{/* A changed candidate must be allowed to rebuild; build/browser gates reject null. */}
40
- const latest=optional(directory,'qa/latest.json');
41
- const business=options.businessReport||(latest?json(inside(directory,latest.report)):proof?.browser?.report?optional(directory,proof.browser.report):null);
42
- const framework=json(inside(directory,'inputs/framework.json'));
43
- return {policy:fixed,current,binding:entry,source,proof,assertions:json(inside(directory,'inputs/execution-assertions.json')),designReview:optional(directory,'qa/design-advice.json'),scope:json(inside(directory,'inputs/scope.json')),implementation:optional(directory,'design-system/implementation.json'),files,frameworkVersion:framework.profile?.versions?.['antdv-next']||json(inside(directory,'app/package.json')).dependencies['antdv-next'].replace(/^[~^]/,''),build,business,devtools:options.devtoolsReport||optional(directory,'qa/devtools-review.json'),selected};
44
- }
45
- function check(directory,stage,lib,options={}) {
46
- try {const value=data(directory,lib,options);if(!value)return {status:'not-required',policy:'legacy',invocationVerification:'unverified',tamperProof:false};return G.evaluate(value,stage);}
47
- catch(error){return {status:'failed',stage,errors:[error.message],invocationVerification:'unverified'};}
48
- }
49
- function requireStage(directory,stage,lib,options={}) {
50
- assert.ok(P.STAGES.includes(stage),'Unknown execution stage');
51
- // Only the automatic callback audit is retired. Existing fixed inputs,
52
- // framework/build checks and business/DevTools evidence are checked by their owners.
53
- return {status:'not-required',stage,auditHook:'retired',invocationVerification:'unverified',tamperProof:false};
54
- }
55
- function template(directory,lib) {
56
- const fixed=policy(directory);assert.ok(fixed,'This existing prototype retains its original execution contract');
57
- const {entry,source}=binding(fs.realpathSync(directory)),current=lib.manifest(directory);
58
- const ref=key=>{const call=E.loaded(source.calls,key).filter(c=>c.requestLine>source.contextLine).at(-1);return call?{toolCallId:call.toolCallId,resultDigest:call.resultDigest}:null;};
59
- return {schemaVersion:1,runId:entry.runId,sessionId:entry.sessionId,projectKey:entry.projectKey,policyDigest:fixed.digest,inputDigest:current.inputDigest,candidateDigest:current.digest,revision:current.revision,
60
- frontend:{...ref('frontend'),files:[],requirementIds:[]},official:{skill:ref('antdv'),channel:fixed.officialCallable?'native-skill':'official-source',version:null,queries:[]},
61
- ...(fixed.mode==='professional'?{uiux:{skill:ref('uiux'),queries:[]}}:{templateChoice:{quote:null}}),build:null,browser:{skill:ref('browser'),report:'qa/business-browser-input.json',preview:null,identity:null,observations:{},facts:[]}};
62
- }
63
- function begin(directory,lib) {
64
- directory=fs.realpathSync(directory);const {entry}=binding(directory);
65
- assert.equal(entry.inputDigest,lib.manifest(directory).inputDigest,'Inputs changed; '+Recovery.instruction(['execution-begin'],{directory}));
66
- return {status:'bound',operation:'execution-begin',directory,runId:entry.runId,sessionId:entry.sessionId,policyDigest:entry.policyDigest,evidenceTemplate:template(directory,lib),
67
- next:'Load applicable Skills through CodeBuddy, implement the current scope, and bind actual native result IDs in qa/execution-evidence.json. Binding is not completion.'};
68
- }
69
- module.exports={policy,binding,data,check,requireStage,template,begin};
@@ -1,18 +0,0 @@
1
- 'use strict';
2
- // Maintainer-only derived assets. Runtime analysis never invokes write mode.
3
- const {fs,path,assert,json,write,inside}=require('./native-files.cjs');
4
- function refresh(skillRoot,options={}){
5
- const templates=path.join(skillRoot,'assets/templates'),catalog=json(path.join(templates,'catalog.json')),inventory=require('./template-inventory.cjs');const choices=[];const summaries=[];
6
- for(const entry of catalog.templates.filter(item=>item.availability==='available'&&item.contentRoot)){
7
- assert.ok(/^[a-z][a-z0-9-]{0,63}$/.test(entry.contentRoot),'Unsafe template content root');const root=inside(templates,entry.contentRoot),meta=json(path.join(root,'generation.json'));
8
- assert.equal(meta.templateId,entry.id,'Generation template identity differs');
9
- const current=inventory.scan(root),file=path.join(root,'template-inventory.json');
10
- if(options.check)inventory.verify(root,json(file));else write(root,'template-inventory.json',current);
11
- choices.push({id:entry.id,name:entry.name,defaults:meta.defaults,choices:meta.choices,patterns:meta.patterns});
12
- summaries.push({id:entry.id,files:Object.keys(current.files).length,pages:current.pages.length,components:Object.keys(current.components).length,events:current.eventCount});
13
- }
14
- const script=`// Generated from registered template metadata; refresh with sync-generation-assets.\nglobalThis.I3_GENERATION_OPTIONS = ${JSON.stringify(choices,null,2)};\n`,file=path.join(templates,'generation-options.js');
15
- if(options.check)assert.equal(fs.readFileSync(file,'utf8'),script,'Offline customer choices differ from registered template metadata');else write(templates,'generation-options.js',script);
16
- return {status:'passed',readOnly:!!options.check,templates:summaries};
17
- }
18
- module.exports={refresh};