@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,32 +0,0 @@
1
- import { Alert, Modal, message } from "../../runtime/widgets.js";
2
- import { ProForm, useForm } from "../../runtime/widgets.js";
3
- import { useIntents } from "./store.js";
4
- import { questions } from "./data.js";
5
- import { createComponent } from '../../runtime/dom.js';
6
- export default createComponent({ name: 'IntentReplan', propKeys: ["intent"], template: new URL('./IntentReplan.html', import.meta.url).href, setup(__props, __emit) {
7
- const props = __props, emit = __emit, store = useIntents();
8
- const expected = props.intent.recordVersion;
9
- const form = useForm({ keys: ['boundary'], note: '' }, [
10
- { path: 'keys', label: '重新澄清的部分', component: 'select', mode: 'multiple', span: 24, options: questions.map(q => ({ label: q.label, value: q.key })), rules: [{ required: true, type: 'array', min: 1, message: '请选择至少一项' }] },
11
- { path: 'note', label: '调整原因', component: 'textarea', placeholder: '说明哪些方向需要调整,后续澄清将保留这条意见。', span: 24, autoSize: { minRows: 4, maxRows: 8 }, maxlength: 500, rules: [{ required: true, whitespace: true, message: '请填写调整原因' }] },
12
- ]);
13
- async function save() {
14
- if (!store.canEdit)
15
- return;
16
- try {
17
- await form.formRef.value?.validate();
18
- }
19
- catch {
20
- return;
21
- }
22
- try {
23
- store.replan(props.intent.id, form.formData.keys, form.formData.note, expected);
24
- message.success('已保留当前版本,返回澄清工作区');
25
- emit('close');
26
- }
27
- catch (e) {
28
- message.error(e.message);
29
- }
30
- }
31
- return { Alert, Modal, message, ProForm, useForm, useIntents, questions, props, emit, store, expected, form, save };
32
- } });
@@ -1,2 +0,0 @@
1
- <!-- 来源:src/intents/IntentRevision.vue;HTML / 原生 DOM 绑定,不含 Vue 运行时。 -->
2
- <template data-component="Drawer" data-bind-open="(true)" title="修改意图" data-bind-size="(720)" data-bind-mask="({ closable: false })" data-on-close="(close)"><template data-component="Alert" class="form-intro" type="info" show-icon="" data-bind-title="('保存后形成 v' + ((lastVersion(intent)?.number || 0) + 1) + ',需要重新确认。旧版本继续保留。')"></template><template data-component="Alert" data-if="(error)" class="form-intro" type="error" show-icon="" data-bind-title="(error)"></template><template data-component="ProForm" name="intent-revision" data-bind-form="(form)" layout="vertical" data-bind-disabled="(!store.canEdit)" class="intent-form"></template><template data-component="IntentDecisions" data-bind-decisions="(decisions)" data-bind-editable="(store.canEdit)" data-on-change="(decisions = $event)"></template><template data-slot="footer"><div class="drawer-footer"><span class="muted">修改仅保存在演示数据中</span><template data-component="Space"><template data-component="Button" data-on-click="(close)">取消</template><template data-component="Button" type="primary" data-bind-disabled="(!store.canEdit || !dirty)" data-on-click="(save)">保存新版本</template></template></div></template></template>
@@ -1,49 +0,0 @@
1
- import { confirmAction } from "../shell/confirmation.js";
2
- import { computed, ref } from '../../runtime/state.js';
3
- import { Alert, Button, Drawer, Space, message } from "../../runtime/widgets.js";
4
- import { ProForm, useForm } from "../../runtime/widgets.js";
5
- import { contexts, questions } from "./data.js";
6
- import { lastVersion, questionKeys } from "./domain.js";
7
- import { useIntents } from "./store.js";
8
- import IntentDecisions from "./IntentDecisions.js";
9
- import { createComponent } from '../../runtime/dom.js';
10
- export default createComponent({ name: 'IntentRevision', propKeys: ["intent"], template: new URL('./IntentRevision.html', import.meta.url).href, setup(__props, __emit) {
11
- const props = __props, emit = __emit, store = useIntents();
12
- const expected = props.intent.recordVersion, error = ref(''), decisions = ref(props.intent.decisions.map(d => ({ ...d })));
13
- const initial = { title: props.intent.title, request: props.intent.request, outcome: props.intent.outcome || '', context: props.intent.context, ...props.intent.answers };
14
- const form = useForm({ ...initial });
15
- const required = (label) => [{ required: true, whitespace: true, message: '请补充' + label }];
16
- form.fields.value = [
17
- { path: 'title', label: '意图名称', component: 'input', span: 24, maxlength: 80, rules: required('意图名称') },
18
- { path: 'request', label: '要解决的问题', component: 'textarea', span: 24, autoSize: { minRows: 3, maxRows: 8 }, maxlength: 2000, rules: required('问题描述') },
19
- { path: 'outcome', label: '预期结果', component: 'textarea', span: 24, autoSize: { minRows: 3, maxRows: 6 }, maxlength: 1000, rules: required('预期结果') },
20
- { path: 'context', label: '拟归属', component: 'select', span: 24, options: contexts.map(value => ({ label: value, value })), allowClear: false },
21
- ...questions.map(q => ({ path: q.key, label: q.label, component: 'textarea', span: 24, autoSize: { minRows: 3, maxRows: 8 }, maxlength: 2000, rules: required(q.label) })),
22
- ];
23
- const dirty = computed(() => JSON.stringify(form.formData) !== JSON.stringify(initial) || JSON.stringify(decisions.value) !== JSON.stringify(props.intent.decisions));
24
- function close() { if (dirty.value)
25
- confirmAction({ title: '放弃本次修改?', content: '已保存的意图版本不会受影响。', okText: '放弃修改', cancelText: '继续编辑', onOk: () => emit('close') });
26
- else
27
- emit('close'); }
28
- async function save() {
29
- if (!store.canEdit || !dirty.value)
30
- return;
31
- try {
32
- await form.formRef.value?.validate();
33
- }
34
- catch {
35
- return;
36
- }
37
- const { title, request, outcome, context } = form.formData;
38
- const answers = Object.fromEntries(questionKeys.map(q => [q, form.formData[q]]));
39
- try {
40
- store.revise(props.intent.id, { title, request, outcome, context }, answers, decisions.value, expected);
41
- message.success('已保存新版本,请重新确认');
42
- emit('close');
43
- }
44
- catch (e) {
45
- error.value = e.message;
46
- }
47
- }
48
- return { confirmAction, computed, ref, Alert, Button, Drawer, Space, message, ProForm, useForm, contexts, questions, lastVersion, questionKeys, useIntents, IntentDecisions, props, emit, store, expected, error, decisions, initial, form, required, dirty, close, save };
49
- } });
@@ -1,2 +0,0 @@
1
- <!-- 来源:src/intents/IntentSummary.vue;HTML / 原生 DOM 绑定,不含 Vue 运行时。 -->
2
- <aside class="panel intent-summary" aria-label="意图摘要"><h2>意图摘要</h2><ol class="intent-outline"><li data-each="(q, index) in (questions)" data-bind-key="(q.key)" data-bind-class="({ active: selectable &amp;&amp; intent?.activeQuestion === index })"><button data-if="(selectable &amp;&amp; intent)" data-bind-disabled="(intent.generating)" class="outline-item" data-bind-aria-current="(intent.activeQuestion === index ? 'step' : undefined)" data-on-click="(emit('select', index))"><span class="outline-number">{{ (index + 1) }}</span><span><strong>{{ (q.label) }}</strong><small data-bind-class="({ answered: !!intent.answers[q.key].trim() })"><template data-component="CheckCircleFilled" data-if="(intent.answers[q.key].trim())"></template>{{ (intent.answers[q.key].trim() ? '已回答' : '待补充') }}</small></span></button><div data-else="" class="outline-item"><span class="outline-number">{{ (index + 1) }}</span><span><strong>{{ (q.label) }}</strong><small data-bind-class="({ answered: !!intent?.answers[q.key].trim() })"><template data-component="CheckCircleFilled" data-if="(intent?.answers[q.key].trim())"></template>{{ (intent?.answers[q.key].trim() ? '已回答' : '待补充') }}</small></span></div></li></ol><div class="summary-context"><h3>PBC 归属</h3><p>{{ (intent ? affiliationOf(intent).label : '尚未归属 PBC') }}</p><p class="muted">归属完成后显示当前 PBC;意图历史内容保留。</p></div><div data-if="(intent?.versions.length)" class="summary-context"><h3>已保留版本</h3><p>{{ (intent.versions.length) }} 个意图版本</p><p class="muted">修改和重新规划会保留历史记录。</p></div></aside>
@@ -1,10 +0,0 @@
1
- import { useDeliveryView } from "../shared/deliveryView.js";
2
- import { CheckCircleFilled } from "../../runtime/icons.js";
3
- import { questions, contexts } from "./data.js";
4
- import { createComponent } from '../../runtime/dom.js';
5
- export default createComponent({ name: 'IntentSummary', propKeys: ["intent", "selectable"], template: new URL('./IntentSummary.html', import.meta.url).href, setup(__props, __emit) {
6
- const { affiliationOf } = useDeliveryView();
7
- __props;
8
- const emit = __emit;
9
- return { useDeliveryView, affiliationOf, CheckCircleFilled, questions, contexts, emit };
10
- } });
@@ -1,2 +0,0 @@
1
- <!-- 来源:src/intents/IntentWorkspace.vue;HTML / 原生 DOM 绑定,不含 Vue 运行时。 -->
2
- <template data-component="Result" data-if="(!intent)" status="403" title="记录不存在或当前身份无权访问"><template data-slot="extra"><template data-component="RouterLink" to="/intents"><template data-component="Button" type="primary">返回意图池</template></template></template></template><template data-else=""><template data-component="IntentSource" data-bind-intent="(intent)"></template><template data-component="IntentHeader" data-bind-intent="(intent)" data-bind-step="(1)"><template data-component="Button" data-if="(store.canClose)" danger="" data-bind-disabled="(intent.generating)" data-on-click="(closing = true)">关闭意图</template><template data-component="Button" data-on-click="(preview = true)">预览意图</template><template data-component="Button" data-on-click="(router.push('/intents'))">返回列表</template></template><template data-component="Alert" data-if="(store.notice)" class="page-alert" type="warning" show-icon="" data-bind-title="(store.notice)"></template><template data-component="Alert" data-if="(!store.canEdit)" class="page-alert" type="info" show-icon="" title="只读查看:当前不能补充、整理或确认意图。"></template><template data-component="Alert" data-if="(intent.replanNote)" class="page-alert" type="info" show-icon="" title="正在重新澄清" data-bind-description="(intent.replanNote)"></template><div class="intent-grid"><section class="panel intent-main"><h2>需求澄清</h2><p class="muted intent-subtitle">按问题补充信息,形成可确认的意图。</p><div class="request-brief"><h3>要解决的问题</h3><p>{{ (intent.request) }}</p><h3 class="brief-outcome">预期结果</h3><p>{{ (intent.outcome) }}</p></div><div data-if="(intent.generating)" class="intent-generating" role="status" aria-live="polite"><h3>正在整理意图…</h3><p class="muted">根据已补充的四项内容生成演示意图。</p><template data-component="Skeleton" active="" data-bind-paragraph="({ rows: 4 })"></template></div><div data-else="" class="clarification-block"><div class="assistant-label"><template data-component="CommentOutlined"></template><span>需求规划助手 · 演示</span><small>第 {{ (intent.activeQuestion + 1) }} 项,共 4 项</small></div><h3 class="question-title">{{ (question.title) }}</h3><p class="muted question-hint">{{ (question.hint) }}</p><template data-component="Button" class="example-answer" data-bind-disabled="(!store.canEdit)" data-on-click="(example)"><template data-component="EditOutlined"></template>{{ (/供热|报修|派单/.test(intent.request) ? '填入供热示例' : '填入回答示例') }}</template><label for="clarification-answer" class="answer-label">我的补充</label><template data-component="Input.TextArea" id="clarification-answer" data-model-value="(answer)" data-bind-rows="(5)" data-bind-maxlength="(2000)" show-count="" data-bind-disabled="(!store.canEdit)" data-bind-placeholder="(question.placeholder)" data-bind-aria-invalid="(!!validation)" data-bind-aria-describedby="(validation ? 'answer-error' : undefined)"></template><p data-if="(validation)" id="answer-error" class="input-error" role="alert">{{ (validation) }}</p></div><template data-component="Alert" data-if="(intent.error)" class="intent-error" type="error" show-icon="" title="意图整理失败" data-bind-description="(intent.error)"><template data-slot="action"><template data-component="Button" data-bind-disabled="(!store.canEdit)" data-on-click="(generate)">重试生成</template></template></template><div class="intent-actions"><span class="muted" role="status"><template data-component="InfoCircleOutlined"></template> 回答保存在当前浏览器</span><template data-component="Button" type="primary" data-bind-loading="(intent.generating)" data-bind-disabled="(!store.canEdit)" data-on-click="(next)">{{ (allDone ? '生成意图' : '保存并继续') }}</template></div><template data-component="IntentDecisions" data-bind-decisions="(intent.decisions)" data-bind-editable="(store.canEdit &amp;&amp; !intent.generating)" data-bind-commit="(saveDecisions)"></template></section><div class="intent-side-stack"><template data-component="IntentSummary" data-bind-intent="(intent)" selectable="" data-on-select="(select)"></template><div class="panel intent-summary"><template data-component="RecordMetadata" data-bind-record="(intent)" compact=""></template></div></div></div><template data-component="IntentClose" data-if="(closing)" data-bind-intent="(intent)" data-on-close="(closing = false)"></template><template data-component="Drawer" data-bind-open="(preview)" title="意图草稿预览" data-bind-size="(720)" data-on-close="(preview = false)"><template data-component="Alert" type="info" show-icon="" title="根据当前已保存的输入展示,未填写的内容保持待补充。"></template><template data-component="IntentDocument" data-bind-value="(intent)"></template></template></template>
@@ -1,77 +0,0 @@
1
- import IntentSource from "../operations/IntentSource.js";
2
- import { confirmAction } from "../shell/confirmation.js";
3
- import { computed, ref, watch, nextTick } from '../../runtime/state.js';
4
- import { useRoute, useRouter } from "../../runtime/router.js";
5
- import { Alert, Button, Drawer, Input, Result, Skeleton, message } from "../../runtime/widgets.js";
6
- import { CommentOutlined, EditOutlined, InfoCircleOutlined } from "../../runtime/icons.js";
7
- import { useIntents } from "./store.js";
8
- import { questions, exampleFor } from "./data.js";
9
- import { completeAnswers } from "./domain.js";
10
- import IntentHeader from "./IntentHeader.js";
11
- import IntentSummary from "./IntentSummary.js";
12
- import IntentDecisions from "./IntentDecisions.js";
13
- import IntentClose from "./IntentClose.js";
14
- import RecordMetadata from "../shared/RecordMetadata.js";
15
- import IntentDocument from "./IntentDocument.js";
16
- import { createComponent } from '../../runtime/dom.js';
17
- export default createComponent({ name: 'IntentWorkspace', propKeys: [], template: new URL('./IntentWorkspace.html', import.meta.url).href, setup(__props, __emit) {
18
- const route = useRoute(), router = useRouter(), store = useIntents(), validation = ref('');
19
- const closing = ref(false), preview = ref(false);
20
- const id = computed(() => String(route.params.id)), intent = computed(() => store.get(id.value));
21
- const question = computed(() => questions[intent.value?.activeQuestion || 0]);
22
- const answer = computed({ get: () => intent.value?.answers[question.value.key] || '', set: value => { validation.value = ''; try {
23
- store.answer(id.value, question.value.key, value);
24
- }
25
- catch (e) {
26
- validation.value = e.message;
27
- } } });
28
- const allDone = computed(() => !!intent.value && completeAnswers(intent.value.answers));
29
- watch([id, () => store.canEdit], () => { if (intent.value?.status === 'draft' && store.canEdit) {
30
- try {
31
- store.start(id.value);
32
- }
33
- catch (e) {
34
- validation.value = e.message;
35
- }
36
- } }, { immediate: true });
37
- watch(() => intent.value?.status, value => { if (value === 'ready' || value === 'confirmed' || value === 'closed')
38
- router.replace('/intents/' + id.value); }, { immediate: true });
39
- function saveDecisions(decisions) { try {
40
- store.setDecisions(id.value, decisions, intent.value.recordVersion);
41
- return true;
42
- }
43
- catch (e) {
44
- message.error(e.message);
45
- return false;
46
- } }
47
- function select(index) { validation.value = ''; store.selectQuestion(id.value, index); nextTick(() => document.getElementById('clarification-answer')?.focus()); }
48
- function example() {
49
- const fill = () => { answer.value = exampleFor(question.value.key, intent.value?.request || ''); };
50
- if (answer.value.trim())
51
- confirmAction({ title: '替换当前回答为示例?', content: '其他澄清回答不受影响。', okText: '填入示例', cancelText: '保留回答', onOk: fill });
52
- else
53
- fill();
54
- }
55
- async function next() {
56
- if (!store.canEdit || !intent.value)
57
- return;
58
- if (!answer.value.trim()) {
59
- validation.value = '请先补充当前问题,再继续。';
60
- document.getElementById('clarification-answer')?.focus();
61
- return;
62
- }
63
- if (allDone.value) {
64
- await generate();
65
- return;
66
- }
67
- const after = questions.findIndex((q, index) => index > intent.value.activeQuestion && !intent.value.answers[q.key].trim());
68
- select(after >= 0 ? after : questions.findIndex(q => !intent.value.answers[q.key].trim()));
69
- }
70
- async function generate() { try {
71
- await store.generate(id.value);
72
- }
73
- catch (e) {
74
- message.error(e.message);
75
- } }
76
- return { IntentSource, confirmAction, computed, ref, watch, nextTick, useRoute, useRouter, Alert, Button, Drawer, Input, Result, Skeleton, message, CommentOutlined, EditOutlined, InfoCircleOutlined, useIntents, questions, exampleFor, completeAnswers, IntentHeader, IntentSummary, IntentDecisions, IntentClose, RecordMetadata, IntentDocument, route, router, store, validation, closing, preview, id, intent, question, answer, allDone, saveDecisions, select, example, next, generate };
77
- } });
@@ -1,60 +0,0 @@
1
- import { newIntent, publishVersion, confirmVersion } from "./domain.js";
2
- import { actors, formatDate } from "../shared/policy.js";
3
- export const statusMeta = {
4
- draft: { label: '草稿', color: 'default' }, clarifying: { label: '待补充', color: 'orange' },
5
- ready: { label: '待确认', color: 'blue' }, confirmed: { label: '已确认', color: 'green' },
6
- closed: { label: '已关闭', color: 'default' },
7
- };
8
- export const contexts = ['集团意图池 · 尚未立项', '拟归属:供热工单 PBC', '拟归属:知识助手 PBC', '拟归属:EASEL 研发平台'];
9
- export const heatingExample = {
10
- title: '供热报修智能分诊与主管确认派单',
11
- request: '居民报修后,结合设备台账和历史工单给出故障分类与班组建议,由主管确认后派单。', context: contexts[0],
12
- outcome: '主管能查看有依据的分类与班组建议,确认后完成派单;不确定的报修可以转人工。',
13
- };
14
- export const heatingAnswers = {
15
- audience: '居民或客服提交报修,主管在工作台查看分诊建议并确认,处理班组查看工单进度。',
16
- process: '系统查询授权资料并形成分类和班组建议;主管确认或调整后派单。信息不足或建议不可靠时转人工处理。',
17
- boundary: '使用授权的设备台账、历史工单和班组资料;不执行设备控制或参数调整。派单和通知先在测试环境验证。',
18
- acceptance: '每条建议可查看依据;必须经主管确认后派单;重复操作不重复派单;异常可转人工并记录原因。',
19
- };
20
- export const questions = [
21
- { key: 'audience', label: '使用者与入口', title: '哪些人使用?从哪里发起?', hint: '说明参与的人、使用入口,以及各自需要完成的动作。', placeholder: '例如:居民或客服提交报修,主管在工作台确认建议。' },
22
- { key: 'process', label: '处理流程', title: '系统给出结果后,谁决定下一步?', hint: '说明主要步骤、人工确认点,以及不确定时如何处理。', placeholder: '从输入到结果,按先后写出处理步骤。' },
23
- { key: 'boundary', label: '数据与边界', title: '可以使用哪些资料?有哪些限制?', hint: '把可用数据、权限范围、暂不涉及的能力写清楚。', placeholder: '填写数据来源、允许的操作和需要遵守的限制。' },
24
- { key: 'acceptance', label: '验收标准', title: '怎样判断这项需求已经做好?', hint: '描述能观察、能验证的结果。暂时不确定的指标可以注明待业务方提供。', placeholder: '例如:哪些结果必须可查询,哪些异常必须可恢复。' },
25
- ];
26
- export function exampleFor(key, request) {
27
- if (/供热|报修|派单/.test(request))
28
- return heatingAnswers[key];
29
- return { audience: '业务人员从工作台发起,负责人查看和确认结果。', process: '提交信息后整理建议,由负责人确认;信息不足时补充,处理失败时可重试或转人工。',
30
- boundary: '只读取本项目已授权的数据,不自动修改生产业务记录;具体数据接口由业务方提供。', acceptance: '输入、处理结果和确认记录可以追溯;错误原因明确,重新打开页面可继续未完成的工作。' }[key];
31
- }
32
- export function seedIntents() {
33
- const at = '2026-09-08T10:20:00.000Z';
34
- const first = newIntent(heatingExample, 'seed-heating', 'INT-20260909-001', at);
35
- first.status = 'clarifying';
36
- first.decisions = [{ id: 'decision-1', question: '低置信度建议由谁复核,超时后如何处理?', answer: '' }];
37
- let knowledge = newIntent({ title: '知识助手增加回答来源引用', request: '员工查询制度时,答案应同时展示原文来源,资料不足时明确提示。', context: contexts[2] }, 'seed-knowledge', 'INT-20260909-002', at);
38
- knowledge.answers = { audience: '员工在知识助手入口提问,知识管理员维护制度资料。', process: '查询授权资料并返回答案与原文引用;没有可靠依据时提示无法回答。', boundary: '仅查询当前账号有权访问的制度资料,不读取未授权文件。', acceptance: '每个答案可打开来源;过期资料有提示;找不到依据时不编造答案。' };
39
- Object.assign(knowledge, { tenantId: 'north', owner: actors[5].name, createdById: actors[5].id, createdBy: actors[5].name, createdDept: actors[5].department, updatedBy: actors[5].name });
40
- knowledge = publishVersion(knowledge, at);
41
- const inspection = newIntent({ title: '巡检异常上报与转派', request: '巡检人员可以提交异常和照片,由值班负责人判断是否转为维修工单。', context: contexts[0] }, 'seed-inspection', 'INT-20260909-003', at);
42
- let confirmed = newIntent({ title: '工单处理进度通知', request: '工单状态变化后,为相关业务人员提供可查询的处理进度。', context: contexts[1] }, 'seed-notice', 'INT-20260909-004', at);
43
- confirmed.answers = { audience: '客服与处理班组在工单工作台查看。', process: '工单状态更新后生成进度记录,业务人员可查询处理过程。', boundary: '先验证测试环境记录,不发送真实居民通知。', acceptance: '状态与工单一致,重复事件不生成重复记录,错误原因可查。' };
44
- confirmed = confirmVersion(publishVersion(confirmed, at), 1, at);
45
- const report = newIntent({ title: '班组日报自动汇总', request: '将每天班组处理的工单汇总为日报,班组长补充说明后确认。', context: contexts[1] }, 'seed-report', 'INT-20260909-005', at);
46
- report.status = 'clarifying';
47
- report.answers.audience = '班组长每天在工作台查看汇总并补充说明。';
48
- report.activeQuestion = 1;
49
- Object.assign(report, { owner: actors[3].name, createdById: actors[3].id, createdBy: actors[3].name, createdDept: actors[3].department, updatedBy: actors[3].name });
50
- let delivery = newIntent({ ...heatingExample, title: heatingExample.title + ' · 规格演示' }, 'seed-spec-heating', 'INT-20260910-006', at);
51
- delivery.answers = { ...heatingAnswers };
52
- delivery = confirmVersion(publishVersion(delivery, at), 1, at);
53
- const factory = JSON.parse(JSON.stringify(delivery));
54
- factory.id = 'seed-pbc-create';
55
- factory.code = 'INT-20260911-PBC';
56
- factory.title = '供热智能分诊 · 新建系统样例';
57
- factory.versions.forEach(v => v.title = factory.title);
58
- return [factory, delivery, first, knowledge, inspection, confirmed, report];
59
- }
60
- export const dateText = formatDate;
@@ -1,105 +0,0 @@
1
- import { actors, metadata, can } from "../shared/policy.js";
2
- export const questionKeys = ['audience', 'process', 'boundary', 'acceptance'];
3
- export const emptyAnswers = () => ({ audience: '', process: '', boundary: '', acceptance: '' });
4
- export const completeAnswers = (answers) => questionKeys.every(key => !!answers[key]?.trim());
5
- export const lastVersion = (intent) => intent.versions.at(-1);
6
- export const unresolved = (decisions) => decisions.filter(d => !d.answer.trim());
7
- export const confirmationBusy = (intent) => ['pending', 'unknown'].includes(intent.confirmation);
8
- export function assertIntentAccess(intent, actor, action, expected) {
9
- if (!can(actor, action, intent.tenantId) || intent.isDeleted)
10
- throw new Error('当前身份没有此操作权限,或记录不在可见范围内。');
11
- if (expected !== undefined && expected !== intent.recordVersion)
12
- throw new Error('记录已被更新,请重新打开并核对最新内容。');
13
- }
14
- export function assertMutable(intent) {
15
- if (intent.status === 'closed')
16
- throw new Error('意图已关闭,保留内容与历史供查阅。');
17
- if (confirmationBusy(intent))
18
- throw new Error('确认结果尚未明确,请先核实结果再修改。');
19
- }
20
- export function newIntent(input, id, code, at, actor = actors[2]) {
21
- if (!input.title.trim() || !input.request.trim())
22
- throw new Error('请填写意图名称和需求描述。');
23
- return { ...input, outcome: input.outcome || input.request, title: input.title.trim(), request: input.request.trim(), id, code,
24
- ...metadata(actor, at), owner: actor.name, status: 'draft', answers: emptyAnswers(), decisions: [], activeQuestion: 0,
25
- versions: [], events: [{ label: '保存意图草稿', at, actor: actor.name }], replanNote: '', generating: false, error: '', confirmation: 'idle' };
26
- }
27
- export function publishVersion(intent, at, reason = '根据澄清回答整理') {
28
- assertMutable(intent);
29
- if (!completeAnswers(intent.answers) || !intent.outcome?.trim())
30
- throw new Error('请先补充预期结果与全部澄清事项。');
31
- if (intent.status === 'confirmed')
32
- throw new Error('请先通过修改或重新规划创建新的意图版本。');
33
- const number = (lastVersion(intent)?.number || 0) + 1;
34
- const version = { title: intent.title, request: intent.request, outcome: intent.outcome, context: intent.context,
35
- answers: { ...intent.answers }, decisions: intent.decisions.map(d => ({ ...d })), number, createdAt: at, reason };
36
- return { ...intent, status: 'ready', generating: false, error: '', confirmation: 'idle', pendingConfirmation: undefined, updatedAt: at,
37
- versions: [...intent.versions, version], events: [...intent.events, { label: '形成意图 v' + number + ',等待确认', at }] };
38
- }
39
- export function reviseVersion(intent, input, answers, at, decisions = intent.decisions) {
40
- assertMutable(intent);
41
- if (!lastVersion(intent))
42
- throw new Error('当前还没有可修改的意图版本。');
43
- if (!input.title.trim() || !input.request.trim())
44
- throw new Error('意图名称与目标不能为空。');
45
- return publishVersion({ ...intent, ...input, answers: { ...answers }, decisions: decisions.map(d => ({ ...d })), status: 'clarifying' }, at, '人工修改意图内容或决策登记');
46
- }
47
- function checkCandidate(intent, expected) {
48
- const current = lastVersion(intent);
49
- if (intent.status !== 'ready' || !current || current.number !== expected)
50
- throw new Error('当前版本已变化,请重新查看后确认。');
51
- if (!completeAnswers(intent.answers) || JSON.stringify(intent.answers) !== JSON.stringify(current.answers) ||
52
- JSON.stringify(intent.decisions) !== JSON.stringify(current.decisions) || intent.outcome !== current.outcome ||
53
- intent.request !== current.request || intent.title !== current.title || intent.context !== current.context)
54
- throw new Error('内容已经变化,请先重新整理意图。');
55
- if (unresolved(current.decisions).length)
56
- throw new Error('仍有未决问题,请登记结论并形成新版本后确认。');
57
- return current;
58
- }
59
- export function confirmVersion(intent, expected, at, actor = actors[2]) {
60
- assertIntentAccess(intent, actor, 'intent:confirm');
61
- const current = checkCandidate(intent, expected);
62
- const confirmed = { ...current, answers: { ...current.answers }, decisions: current.decisions.map(d => ({ ...d })), confirmedAt: at, confirmedBy: actor.name };
63
- return { ...intent, status: 'confirmed', confirmation: 'idle', error: '', pendingConfirmation: undefined, updatedAt: at,
64
- versions: [...intent.versions.slice(0, -1), confirmed], events: [...intent.events, { label: '确认意图 v' + expected, at, actor: actor.name }] };
65
- }
66
- export function beginConfirmation(intent, expected, at, actor, requestId) {
67
- assertIntentAccess(intent, actor, 'intent:confirm');
68
- assertMutable(intent);
69
- checkCandidate(intent, expected);
70
- return { ...intent, confirmation: 'pending', error: '', pendingConfirmation: { requestId, version: expected, actorId: actor.id, actor: actor.name, at } };
71
- }
72
- export function closeIntent(intent, reason, at, actor) {
73
- assertIntentAccess(intent, actor, 'intent:close');
74
- assertMutable(intent);
75
- if (intent.status === 'confirmed')
76
- throw new Error('已确认意图需保留确认基线;归档策略另行确认。');
77
- if (intent.generating)
78
- throw new Error('正在整理意图,请等待完成后再关闭。');
79
- if (!reason.trim())
80
- throw new Error('请填写关闭原因。');
81
- return { ...intent, status: 'closed', closedReason: reason.trim(), closedBy: actor.name, closedAt: at,
82
- events: [...intent.events, { label: '关闭意图:' + reason.trim(), actor: actor.name, at }] };
83
- }
84
- export function replanIntent(intent, keys, note, at) {
85
- assertMutable(intent);
86
- if (!['ready', 'confirmed'].includes(intent.status))
87
- throw new Error('请先完成当前澄清。');
88
- if (!keys.length || keys.some(key => !questionKeys.includes(key)) || !note.trim())
89
- throw new Error('请选择重新澄清的部分并填写原因。');
90
- const answers = { ...intent.answers };
91
- keys.forEach(key => { answers[key] = ''; });
92
- return { ...intent, answers, status: 'clarifying', activeQuestion: questionKeys.indexOf(keys[0]), error: '', generating: false,
93
- confirmation: 'idle', pendingConfirmation: undefined, replanNote: note.trim(), updatedAt: at,
94
- events: [...intent.events, { label: '重新规划:' + note.trim(), at }] };
95
- }
96
- export function assertIntentDelete(intent) {
97
- if (intent.operationLinks?.length)
98
- throw new Error('意图关联运行异常,必须保留来源与处理记录,不能删除。');
99
- if (intent.status === 'confirmed' || intent.versions.some(v => v.confirmedAt))
100
- throw new Error('存在已确认版本,须保留意图与历史,不能删除。');
101
- if (confirmationBusy(intent) || intent.pendingConfirmation)
102
- throw new Error('确认处理中或结果待核实,请先核实结果。');
103
- if (intent.generating)
104
- throw new Error('正在整理意图,请等待完成后再操作。');
105
- }
@@ -1,212 +0,0 @@
1
- import { computed, ref } from '../../runtime/state.js';
2
- import { defineStore } from "../../runtime/state.js";
3
- import { useSession } from "../shared/session.js";
4
- import { seedIntents } from "./data.js";
5
- import { newIntent, publishVersion, reviseVersion, confirmVersion, beginConfirmation, closeIntent, replanIntent, completeAnswers, questionKeys, assertIntentAccess, assertMutable, assertIntentDelete } from "./domain.js";
6
- import { assertBatch } from "../shared/listBatch.js";
7
- const key = 'i3-prototype-antdv-console-intents-prototype-v010';
8
- const copy = (value) => JSON.parse(JSON.stringify(value));
9
- export const useIntents = defineStore('intents', () => {
10
- const session = useSession(), records = ref(seedIntents()), notice = ref(''), scene = ref('normal'), resultMode = ref('success'), resetTick = ref(0);
11
- const canEdit = computed(() => session.can('intent:edit')), canConfirm = computed(() => session.can('intent:confirm')), canClose = computed(() => session.can('intent:close'));
12
- let epoch = 0;
13
- try {
14
- const raw = localStorage.getItem(key);
15
- if (raw) {
16
- const saved = JSON.parse(raw);
17
- if (saved.schema !== 3 || !Array.isArray(saved.items) || !saved.items.every((i) => i.id && i.tenantId && i.recordVersion &&
18
- ['draft', 'clarifying', 'ready', 'confirmed', 'closed'].includes(i.status) && Array.isArray(i.versions) && Array.isArray(i.decisions) &&
19
- i.answers && questionKeys.every(q => typeof i.answers[q] === 'string')))
20
- throw new Error('Invalid saved data');
21
- records.value = saved.items.map((i) => ({ ...i, generating: false, confirmation: i.confirmation === 'pending' ? 'unknown' : i.confirmation,
22
- error: i.generating ? '上次整理被中断,回答已保留。请重试生成。' : i.error }));
23
- }
24
- }
25
- catch {
26
- notice.value = '本地演示数据无法读取,已加载初始示例。';
27
- }
28
- function commit(next) {
29
- try {
30
- localStorage.setItem(key, JSON.stringify({ schema: 3, items: next }));
31
- }
32
- catch {
33
- throw new Error('浏览器无法保存演示数据,本次操作未提交。请保留输入后重试。');
34
- }
35
- records.value = next;
36
- notice.value = '';
37
- }
38
- function freshRecords() {
39
- try {
40
- const raw = localStorage.getItem(key);
41
- if (!raw)
42
- return records.value;
43
- const saved = JSON.parse(raw);
44
- if (saved.schema !== 3 || !Array.isArray(saved.items))
45
- throw Error();
46
- return saved.items;
47
- }
48
- catch {
49
- throw Error('意图数据无法读取,本次未提交。请重新加载核对。');
50
- }
51
- }
52
- function operationCommit(transform) {
53
- const fresh = freshRecords(), next = transform(copy(fresh));
54
- commit([next, ...fresh.filter(i => i.id !== next.id)]);
55
- return next;
56
- }
57
- if (typeof window !== 'undefined')
58
- window.addEventListener('storage', e => { if (e.key === key) {
59
- try {
60
- records.value = freshRecords();
61
- notice.value = '';
62
- }
63
- catch {
64
- notice.value = '其他页面写入的意图无法读取,请刷新核对。';
65
- }
66
- } });
67
- const items = computed(() => records.value.filter(i => !i.isDeleted && session.readable('intent:view', i.tenantId)));
68
- const get = (id) => items.value.find(i => i.id === id);
69
- function requireRecord(id, action, expected) {
70
- session.require(action);
71
- const i = get(id);
72
- if (!i)
73
- throw new Error('记录不存在或当前身份无权访问。');
74
- assertIntentAccess(i, session.actor, action, expected);
75
- return i;
76
- }
77
- function update(record, actor = session.actor, touch = true) {
78
- const known = records.value.find(i => i.id === record.id), fresh = freshRecords(), current = fresh.find(i => i.id === record.id);
79
- if (known && current && known.recordVersion !== current.recordVersion) {
80
- records.value = fresh;
81
- throw Error('意图已在其他页面更新,请核对当前版本;输入保留。');
82
- }
83
- if (!current)
84
- throw new Error('记录已不存在。');
85
- const next = copy(record);
86
- if (touch) {
87
- next.recordVersion = current.recordVersion + 1;
88
- next.updatedAt = new Date().toISOString();
89
- next.updatedBy = actor.name;
90
- }
91
- next.events = next.events.map((e, n) => n >= current.events.length ? { ...e, actor: e.actor || actor.name } : e);
92
- commit(fresh.map(i => i.id === next.id ? next : i));
93
- }
94
- function create(input) {
95
- session.require('intent:edit', session.actor.tenantId);
96
- session.writeCheck();
97
- records.value = freshRecords();
98
- const at = new Date().toISOString(), id = crypto.randomUUID();
99
- const max = Math.max(0, ...records.value.map(i => Number(i.code.split('-').at(-1)) || 0)) + 1;
100
- const code = 'INT-' + at.slice(0, 10).replaceAll('-', '') + '-' + String(max).padStart(3, '0');
101
- const item = newIntent(input, id, code, at, session.actor);
102
- commit([item, ...records.value]);
103
- return item.id;
104
- }
105
- function start(id) { const i = requireRecord(id, 'intent:edit'); if (i.status === 'draft')
106
- update({ ...i, status: 'clarifying' }); }
107
- function answer(id, q, value) {
108
- const i = requireRecord(id, 'intent:edit');
109
- assertMutable(i);
110
- if (i.generating || i.status !== 'clarifying')
111
- throw new Error('当前状态不能修改澄清回答。');
112
- update({ ...i, answers: { ...i.answers, [q]: value }, error: '' });
113
- }
114
- function selectQuestion(id, index) { const i = get(id); if (i)
115
- update({ ...i, activeQuestion: Math.max(0, Math.min(index, 3)) }, session.actor, false); }
116
- async function generate(id) {
117
- const i = requireRecord(id, 'intent:edit');
118
- assertMutable(i);
119
- if (i.generating || !completeAnswers(i.answers) || !['draft', 'clarifying'].includes(i.status))
120
- return false;
121
- session.writeCheck();
122
- const run = epoch, mode = resultMode.value, actor = copy(session.actor);
123
- update({ ...i, status: 'clarifying', generating: true, error: '' });
124
- await new Promise(resolve => setTimeout(resolve, 850));
125
- if (run !== epoch)
126
- return false;
127
- const current = records.value.find(r => r.id === id);
128
- if (!current)
129
- return false;
130
- if (actor.id !== session.actor.id || !session.can('intent:edit', current.tenantId) || mode === 'failure') {
131
- update({ ...current, generating: false, error: mode === 'failure' ? '整理暂未完成(模拟超时)。回答已保留,可重试。' : '身份或登录状态已变化,整理已中止。重新登录后可重试。' }, actor);
132
- return false;
133
- }
134
- update(publishVersion(current, new Date().toISOString(), current.replanNote ? '重新规划:' + current.replanNote : undefined), actor);
135
- return true;
136
- }
137
- function revise(id, input, answers, decisions, expected) {
138
- const i = requireRecord(id, 'intent:edit', expected);
139
- session.writeCheck();
140
- update(reviseVersion(i, input, answers, new Date().toISOString(), decisions));
141
- }
142
- function setDecisions(id, decisions, expected) {
143
- const i = requireRecord(id, 'intent:edit', expected);
144
- assertMutable(i);
145
- session.writeCheck();
146
- if (i.status === 'confirmed')
147
- throw new Error('请通过修改意图形成新版本。');
148
- if (i.generating)
149
- throw new Error('正在整理,请稍后修改决策登记。');
150
- if (i.status === 'ready')
151
- update(reviseVersion(i, i, i.answers, new Date().toISOString(), decisions));
152
- else
153
- update({ ...i, decisions: copy(decisions) });
154
- }
155
- async function confirm(id, expected, expectedRecord) {
156
- const i = requireRecord(id, 'intent:confirm', expectedRecord);
157
- session.writeCheck();
158
- const actor = copy(session.actor), requestId = crypto.randomUUID(), run = epoch, mode = session.confirmResult;
159
- update(beginConfirmation(i, expected, new Date().toISOString(), actor, requestId), actor);
160
- await new Promise(resolve => setTimeout(resolve, 800));
161
- if (run !== epoch)
162
- return 'cancelled';
163
- const current = records.value.find(r => r.id === id);
164
- if (!current || current.pendingConfirmation?.requestId !== requestId)
165
- return 'cancelled';
166
- if (mode === 'failure' || session.actor.id !== actor.id || !session.can('intent:confirm', current.tenantId)) {
167
- update({ ...current, confirmation: 'failed', pendingConfirmation: undefined, error: mode === 'failure' ? '确认未被接受(模拟服务错误),当前版本仍未确认,可重试。' : '身份、权限或登录状态已变化,本次确认未被接受。' }, actor);
168
- return 'failed';
169
- }
170
- if (mode === 'unknown') {
171
- update({ ...current, confirmation: 'unknown', pendingConfirmation: { ...current.pendingConfirmation, acceptedAt: new Date().toISOString(), acceptedActor: actor }, error: '' }, actor);
172
- return 'unknown';
173
- }
174
- update(confirmVersion(current, expected, new Date().toISOString(), actor), actor);
175
- return 'confirmed';
176
- }
177
- function reconcile(id) {
178
- const i = get(id);
179
- if (!i)
180
- throw Error('记录不存在或没有查看权限。');
181
- session.require('intent:view', i.tenantId);
182
- const pending = i.pendingConfirmation;
183
- if (i.confirmation !== 'unknown' || !pending)
184
- throw new Error('当前没有待核实的确认请求。');
185
- if (!pending.acceptedAt || !pending.acceptedActor) {
186
- update({ ...i, confirmation: 'failed', pendingConfirmation: undefined, error: '本地模拟服务尚未接受原请求,请核对后重新提交。' });
187
- return;
188
- }
189
- const original = pending.acceptedActor;
190
- update(confirmVersion(i, pending.version, pending.acceptedAt, original), original);
191
- }
192
- function close(id, reason, expected) { const i = requireRecord(id, 'intent:close', expected); session.writeCheck(); update(closeIntent(i, reason, new Date().toISOString(), session.actor)); }
193
- function replan(id, keys, note, expected) { const i = requireRecord(id, 'intent:edit', expected); session.writeCheck(); update(replanIntent(i, keys, note, new Date().toISOString())); }
194
- function deletionCheck(i) { assertIntentAccess(i, session.actor, 'intent:delete'); assertIntentDelete(i); }
195
- function checkRemove(target) {
196
- session.require('intent:delete');
197
- assertBatch(items.value, [target], deletionCheck);
198
- }
199
- function removeMany(targets) {
200
- records.value = freshRecords();
201
- session.require('intent:delete');
202
- const selected = assertBatch(items.value, targets, deletionCheck);
203
- session.writeCheck();
204
- const ids = new Set(selected.map(i => i.id)), at = new Date().toISOString(), batchId = crypto.randomUUID();
205
- commit(records.value.map(i => ids.has(i.id) ? { ...i, isDeleted: true, recordVersion: i.recordVersion + 1,
206
- updatedAt: at, updatedBy: session.actor.name,
207
- events: [...i.events, { label: '逻辑删除意图;批次 ' + batchId + '(' + selected.length + ' 项)', at, actor: session.actor.name }],
208
- } : i));
209
- }
210
- function reset() { epoch++; resetTick.value++; commit(seedIntents()); scene.value = 'normal'; resultMode.value = 'success'; }
211
- return { operationRecords: freshRecords, operationCommit, items, notice, scene, resultMode, resetTick, canEdit, canConfirm, canClose, get, create, start, answer, selectQuestion, generate, revise, setDecisions, confirm, reconcile, close, replan, checkRemove, removeMany, reset };
212
- });
@@ -1,2 +0,0 @@
1
- <!-- 来源:src/models/AuditPanel.vue;HTML / 原生 DOM 绑定,不含 Vue 运行时。 -->
2
- <section class="panel audit-panel"><h2>模型操作记录</h2><template data-component="Alert" class="form-intro" type="info" show-icon="" title="本地演示记录,不构成正式审计或审批证据。"></template><template data-component="ProTable" data-bind-table="(table)" data-bind-table-container="(false)" data-bind-control="(false)" row-key="id" data-bind-scroll="({ x: 1020 })" data-bind-search="(async () =&gt; { })" data-bind-pagination="({ showTotal: (t) =&gt; `共 ${t} 条`, showSizeChanger: true, pageSizeOptions: [10, 20, 50, 100], hideOnSinglePage: false })"></template></section>
@@ -1,18 +0,0 @@
1
- import { computed, watch } from '../../runtime/state.js';
2
- import { Alert } from "../../runtime/widgets.js";
3
- import { ProTable, useTable } from "../../runtime/widgets.js";
4
- import { useModels } from "./store.js";
5
- import { createComponent } from '../../runtime/dom.js';
6
- export default createComponent({ name: 'AuditPanel', propKeys: [], template: new URL('./AuditPanel.html', import.meta.url).href, setup(__props, __emit) {
7
- const store = useModels();
8
- const table = useTable({ pageParam: { current: 1, pageSize: 10, total: store.audit.length }, columns: [
9
- { title: '操作时间', dataIndex: 'time', width: 166 },
10
- { title: '操作者', dataIndex: 'actor', width: 170 },
11
- { title: '模型', dataIndex: 'model', width: 164 },
12
- { title: '操作', dataIndex: 'action', width: 110 },
13
- { title: '变更说明', dataIndex: 'detail', width: 410 },
14
- ] });
15
- const records = computed(() => store.audit.slice(((table.pageParam.current || 1) - 1) * (table.pageParam.pageSize || 10), (table.pageParam.current || 1) * (table.pageParam.pageSize || 10)));
16
- watch(records, () => { table.dataSource.value = records.value; table.setPageParam({ total: store.audit.length }); }, { immediate: true });
17
- return { computed, watch, Alert, ProTable, useTable, useModels, store, table, records };
18
- } });