@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.
- package/.agents/plugins/marketplace.json +1 -1
- package/.claude/commands/i3-build.md +1 -0
- package/.claude/commands/i3-code-simplify.md +1 -0
- package/.claude/commands/i3-constraints.md +1 -0
- package/.claude/commands/i3-plan.md +1 -0
- package/.claude/commands/i3-review.md +1 -0
- package/.claude/commands/i3-ship.md +1 -0
- package/.claude/commands/i3-spec.md +1 -0
- package/.claude/commands/i3-test.md +1 -0
- package/.claude/commands/i3-webperf.md +1 -0
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +2 -2
- package/README.md +31 -25
- package/bin/i3-composer-agent.cjs +4 -59
- package/bin/install.cjs +6 -14
- package/bin/native-layout.cjs +11 -2
- package/bin/native-migration.cjs +68 -28
- package/bin/retired-custom-fingerprints.json +1597 -0
- package/bin/wizard.cjs +2 -13
- package/docs/antigravity-setup.md +3 -1
- package/docs/codebuddy-setup.md +19 -76
- package/docs/codex-setup.md +10 -4
- package/docs/comparison.md +1 -1
- package/docs/copilot-cli-setup.md +4 -4
- package/docs/cursor-setup.md +1 -1
- package/docs/gemini-cli-setup.md +1 -1
- package/docs/other-hosts.md +2 -2
- package/docs/windsurf-setup.md +2 -2
- package/docs/workbuddy-setup.md +9 -16
- package/evals/README.md +10 -0
- package/evals/cases/i3-code-simplification.json +8 -0
- package/evals/cases/i3-documentation-and-adrs.json +4 -0
- package/evals/cases/i3-enterprise-sop.json +1 -1
- package/evals/cases/i3-frontend-ui-engineering.json +1 -1
- package/evals/cases/i3-security-and-hardening.json +4 -0
- package/evals/cases/i3-ui-demo.json +2 -2
- package/evals/cases/i3-using-agent-skills.json +5 -5
- package/evals/plugin/simplify-fires-on-pasted-function/graders/behavior-kept-and-explained.md +7 -0
- package/evals/plugin/simplify-fires-on-pasted-function/graders/skill-fired.md +5 -0
- package/evals/plugin/simplify-fires-on-pasted-function/prompt.md +30 -0
- package/evals/plugin/simplify-stays-quiet-on-make-it-fast/graders/not-fired.md +8 -0
- package/evals/plugin/simplify-stays-quiet-on-make-it-fast/prompt.md +20 -0
- package/evals/zh-CN/cases/i3-code-simplification.json +8 -0
- package/evals/zh-CN/cases/i3-documentation-and-adrs.json +4 -0
- package/evals/zh-CN/cases/i3-enterprise-sop.json +1 -1
- package/evals/zh-CN/cases/i3-frontend-ui-engineering.json +2 -2
- package/evals/zh-CN/cases/i3-security-and-hardening.json +4 -0
- package/evals/zh-CN/cases/i3-ui-demo.json +2 -2
- package/evals/zh-CN/cases/i3-using-agent-skills.json +6 -6
- package/hooks/SDD-CACHE.md +1 -1
- package/package.json +13 -80
- package/plugin.json +15 -2
- package/references/accessibility-checklist.md +4 -4
- package/references/performance-checklist.md +5 -4
- package/references/testing-patterns.md +2 -1
- package/scripts/floor-guard-reference-test.js +32 -0
- package/scripts/lib/execution-status.js +44 -0
- package/scripts/run-evals-test.js +157 -7
- package/scripts/run-evals.js +59 -12
- package/scripts/ui-demo-test.js +2 -2
- package/scripts/validate-artifact-paths-test.js +14 -0
- package/scripts/validate-artifact-paths.js +4 -2
- package/skills/i3-api-and-interface-design/SKILL.md +3 -1
- package/skills/i3-ci-cd-and-automation/SKILL.md +7 -4
- package/skills/i3-code-simplification/SKILL.md +3 -3
- package/skills/i3-constraint-driven-development/SKILL.md +4 -4
- package/skills/i3-constraint-driven-development/references/floor-guard.md +2 -2
- package/skills/i3-context-engineering/SKILL.md +1 -1
- package/skills/i3-debugging-and-error-recovery/SKILL.md +1 -1
- package/skills/i3-deprecation-and-migration/SKILL.md +6 -1
- package/skills/i3-documentation-and-adrs/SKILL.md +3 -2
- package/skills/i3-enterprise-sop/SKILL.md +37 -70
- package/skills/i3-enterprise-sop/references/engineering-skeleton/directory-standard.md +7 -7
- package/skills/i3-enterprise-sop/references/handoff.py +149 -120
- package/skills/i3-enterprise-sop/references/technical-baseline/baselines/enterprise-application-technical-baseline-v0-0-4.md +24 -24
- package/skills/i3-enterprise-sop/references/technical-baseline/templates/technical-baseline.md +8 -8
- package/skills/i3-enterprise-sop/references/templates/ad.md +31 -31
- package/skills/i3-enterprise-sop/references/templates/brd.md +6 -6
- package/skills/i3-enterprise-sop/references/templates/prd.md +37 -37
- package/skills/i3-enterprise-sop/references/templates/testcase.md +25 -25
- package/skills/i3-frontend-ui-engineering/SKILL.md +6 -10
- package/skills/i3-idea-refine/SKILL.md +4 -2
- package/skills/i3-incremental-implementation/SKILL.md +0 -4
- package/skills/i3-performance-optimization/SKILL.md +2 -2
- package/skills/i3-security-and-hardening/references/hardening-patterns.md +5 -0
- package/skills/i3-source-driven-development/SKILL.md +3 -2
- package/skills/i3-spec-driven-development/SKILL.md +1 -1
- package/skills/i3-ui-demo/SKILL.md +3 -1
- package/skills/i3-ui-demo/references/dependencies.md +1 -1
- package/skills/i3-ui-demo/references/resources.md +1 -1
- package/skills/i3-ui-demo/scripts/dependencies.cjs +0 -3
- package/skills/i3-using-agent-skills/SKILL.md +2 -2
- package/.claude/commands/i3-prototype.md +0 -23
- package/.gemini/commands/i3-prototype.toml +0 -23
- package/commands/i3-prototype.toml +0 -23
- package/evals/cases/i3-ui-prototype.json +0 -158
- package/evals/fixtures/i3-ui-prototype/admin-list/assets/reference.css +0 -3
- package/evals/fixtures/i3-ui-prototype/admin-list/assets/reference.js +0 -8
- package/evals/fixtures/i3-ui-prototype/admin-list/capability-definition.json +0 -67
- package/evals/fixtures/i3-ui-prototype/admin-list/index.html +0 -89
- package/evals/fixtures/i3-ui-prototype/admin-list/readme.md +0 -52
- package/evals/fixtures/i3-ui-prototype/admin-list/template.json +0 -8
- package/evals/fixtures/i3-ui-prototype/business-brief.md +0 -7
- package/evals/zh-CN/cases/i3-ui-prototype.json +0 -165
- package/hooks/PROTOTYPE.md +0 -31
- package/hooks/codebuddy-upstream.cjs +0 -93
- package/hooks/i3-prototype.cjs +0 -7
- package/hooks/manage.cjs +0 -169
- package/scripts/design-provider-discovery-test.js +0 -190
- package/scripts/design-provider-test.js +0 -75
- package/scripts/enterprise-template-test.js +0 -205
- package/scripts/lib/prototype-fixture.cjs +0 -17
- package/scripts/prototype-cache-test.js +0 -55
- package/scripts/prototype-generation-entry-test.js +0 -6
- package/scripts/prototype-generation-evidence-test.js +0 -10
- package/scripts/prototype-generation-native-test.js +0 -78
- package/scripts/prototype-generation-test.js +0 -99
- package/scripts/prototype-inventory-test.js +0 -43
- package/scripts/prototype-locations-test.js +0 -79
- package/scripts/prototype-project-test.js +0 -183
- package/scripts/template-adapter-test.js +0 -155
- package/scripts/ui-prototype-binding-recovery-test.js +0 -84
- package/scripts/ui-prototype-buddy-lifecycle-test.js +0 -102
- package/scripts/ui-prototype-codebuddy-hook-test.js +0 -112
- package/scripts/ui-prototype-content-test.js +0 -123
- package/scripts/ui-prototype-dependencies-test.js +0 -226
- package/scripts/ui-prototype-devtools-test.js +0 -53
- package/scripts/ui-prototype-execution-evidence-test.js +0 -62
- package/scripts/ui-prototype-execution-gates-test.js +0 -91
- package/scripts/ui-prototype-execution-policy-test.js +0 -53
- package/scripts/ui-prototype-execution-runtime-test.js +0 -27
- package/scripts/ui-prototype-ide-source-test.js +0 -73
- package/scripts/ui-prototype-native-test.js +0 -526
- package/scripts/ui-prototype-recovery-test.js +0 -81
- package/scripts/ui-prototype-registration-test.js +0 -53
- package/scripts/ui-prototype-template-test.js +0 -261
- package/scripts/ui-prototype-test.js +0 -124
- package/scripts/ui-prototype-transcript-auto-test.js +0 -67
- package/skills/i3-ui-prototype/SKILL.md +0 -256
- package/skills/i3-ui-prototype/assets/capabilities/generation.json +0 -833
- package/skills/i3-ui-prototype/assets/capabilities/management.json +0 -294
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/acceptance.json +0 -51
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/component-map.json +0 -13
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/generation-component-map.json +0 -300
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/index.html +0 -11
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/package-lock.json +0 -2298
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/package.json +0 -22
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/public/prototype-config.json +0 -6
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/App.vue +0 -136
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/components/DeviceEditor.vue +0 -111
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/config.ts +0 -19
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/content.ts +0 -28
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/domain/devices.ts +0 -50
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/domain/theme.ts +0 -25
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/main.ts +0 -18
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/style.css +0 -50
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/useDevices.ts +0 -66
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/tests/devices.test.ts +0 -44
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/tests/theme.test.ts +0 -26
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/tsconfig.json +0 -15
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/vite.config.ts +0 -4
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/profile.json +0 -174
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/readme.md +0 -61
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/index.html +0 -11
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/package-lock.json +0 -2298
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/package.json +0 -22
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/public/prototype-config.json +0 -21
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/App.vue +0 -62
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/PrototypeShell.vue +0 -59
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/config.ts +0 -23
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/domain/presentation.ts +0 -29
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/domain/theme.ts +0 -25
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/main.ts +0 -18
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/style.css +0 -26
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/tests/presentation.test.ts +0 -23
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/tests/theme.test.ts +0 -26
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/tsconfig.json +0 -15
- package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/vite.config.ts +0 -4
- package/skills/i3-ui-prototype/assets/hosts/codebuddy/profile.json +0 -17
- package/skills/i3-ui-prototype/assets/optional-skills/host-targets.json +0 -739
- package/skills/i3-ui-prototype/assets/optional-skills/sources.json +0 -27
- package/skills/i3-ui-prototype/assets/templates/catalog.js +0 -149
- package/skills/i3-ui-prototype/assets/templates/catalog.json +0 -149
- package/skills/i3-ui-prototype/assets/templates/classic-admin/manifest.json +0 -9
- package/skills/i3-ui-prototype/assets/templates/classic-admin/preset.json +0 -6
- package/skills/i3-ui-prototype/assets/templates/common/app/app.mjs +0 -89
- package/skills/i3-ui-prototype/assets/templates/common/app/config.json +0 -1
- package/skills/i3-ui-prototype/assets/templates/common/app/domain.mjs +0 -20
- package/skills/i3-ui-prototype/assets/templates/common/app/index.html +0 -17
- package/skills/i3-ui-prototype/assets/templates/common/app/serve.cjs +0 -16
- package/skills/i3-ui-prototype/assets/templates/common/app/styles.css +0 -670
- package/skills/i3-ui-prototype/assets/templates/common/app/tokens.css +0 -19
- package/skills/i3-ui-prototype/assets/templates/common/design-system/master.md +0 -20
- package/skills/i3-ui-prototype/assets/templates/common/gallery.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/common/mocks/applications.json +0 -5
- package/skills/i3-ui-prototype/assets/templates/common/requirements-map.json +0 -8
- package/skills/i3-ui-prototype/assets/templates/common/serve-gallery.cjs +0 -16
- package/skills/i3-ui-prototype/assets/templates/credits.md +0 -17
- package/skills/i3-ui-prototype/assets/templates/data-operations/manifest.json +0 -9
- package/skills/i3-ui-prototype/assets/templates/data-operations/preset.json +0 -6
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/capability-definition.json +0 -294
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/component-inventory.json +0 -707
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/design-system.md +0 -32
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/generation.json +0 -49
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/index.html +0 -534
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/manifest.json +0 -9
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/offline-build.json +0 -265
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/offline.js +0 -8888
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/origin.json +0 -344
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/preset.json +0 -928
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/app.js +0 -22
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/empty.svg +0 -1
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/reference-styles.json +0 -1
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/result-403.svg +0 -1
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/result-404.svg +0 -1
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets-manifest.json +0 -334
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/baseline.json +0 -173
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/conversion.md +0 -30
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/credits.md +0 -17
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/design-tokens.json +0 -881
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/index.html +0 -28
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/licenses/@qin-ui-antdv-next-pro.txt +0 -9
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/licenses/ant-design-icons.txt +0 -22
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/licenses/antdv-next.txt +0 -21
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/package.json +0 -12
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/browser-routes.json +0 -298
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/coverage.json +0 -180
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/integrity.json +0 -13
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/keyboard.json +0 -11
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/responsive.json +0 -125
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/review.md +0 -51
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/rules.log +0 -150
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/flow-editor-html.png +0 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/flow-editor-original.png +0 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/intent-create-html.png +0 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/intent-create-original.png +0 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/models-html.png +0 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/models-original.png +0 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/workbench-html.png +0 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/workbench-original.png +0 -0
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/selection.json +0 -9
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/visual-comparison.json +0 -342
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/readme.md +0 -73
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/reference.md +0 -59
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/routes.json +0 -178
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/controls.js +0 -99
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/dialogs.js +0 -54
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/dom.js +0 -264
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/forms.js +0 -47
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/icons.js +0 -41
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/layout.js +0 -47
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/router.js +0 -63
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/state.js +0 -90
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/table.js +0 -41
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/widgets.js +0 -8
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentDetail.html +0 -3
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentDetail.js +0 -36
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentEditor.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentEditor.js +0 -51
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentsPage.html +0 -3
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentsPage.js +0 -48
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/CheckResults.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/CheckResults.js +0 -6
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/ResourcePicker.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/ResourcePicker.js +0 -13
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/data.js +0 -24
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/domain.js +0 -32
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/registry.js +0 -25
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/store.js +0 -85
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentClose.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentClose.js +0 -17
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentCreate.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentCreate.js +0 -66
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDecisions.html +0 -3
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDecisions.js +0 -38
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDetail.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDetail.js +0 -66
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDocument.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDocument.js +0 -5
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHeader.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHeader.js +0 -12
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHistory.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHistory.js +0 -11
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentList.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentList.js +0 -116
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentReplan.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentReplan.js +0 -32
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentRevision.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentRevision.js +0 -49
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentSummary.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentSummary.js +0 -10
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentWorkspace.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentWorkspace.js +0 -77
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/data.js +0 -60
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/domain.js +0 -105
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/store.js +0 -212
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/AuditPanel.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/AuditPanel.js +0 -18
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelDetail.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelDetail.js +0 -23
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelEditor.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelEditor.js +0 -78
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelGrant.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelGrant.js +0 -55
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelReferences.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelReferences.js +0 -26
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelRelease.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelRelease.js +0 -38
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelStatus.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelStatus.js +0 -7
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTable.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTable.js +0 -72
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTester.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTester.js +0 -46
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelsPage.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelsPage.js +0 -52
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/RowActions.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/RowActions.js +0 -19
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/UsagePanel.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/UsagePanel.js +0 -30
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/data.js +0 -48
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/domain.js +0 -39
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/store.js +0 -129
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IncidentDetail.html +0 -4
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IncidentDetail.js +0 -21
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IntentSource.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IntentSource.js +0 -8
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationActionDialog.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationActionDialog.js +0 -37
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationEntry.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationEntry.js +0 -10
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationsPage.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationsPage.js +0 -37
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RepairTrack.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RepairTrack.js +0 -49
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RunDetail.html +0 -4
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RunDetail.js +0 -22
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/SourceSummary.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/SourceSummary.js +0 -9
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/commands.js +0 -82
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/examples.js +0 -47
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/model.js +0 -61
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/repair.js +0 -68
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/store.js +0 -55
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/types.js +0 -1
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/workbench.js +0 -18
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ManagementTable.html +0 -3
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ManagementTable.js +0 -28
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcCreateEntry.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcCreateEntry.js +0 -18
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcDetail.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcDetail.js +0 -31
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcEditor.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcEditor.js +0 -27
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcLifecycle.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcLifecycle.js +0 -16
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPage.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPage.js +0 -43
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPicker.html +0 -4
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPicker.js +0 -34
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcProgress.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcProgress.js +0 -30
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWizard.html +0 -3
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWizard.js +0 -67
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWorkspace.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWorkspace.js +0 -41
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcsPage.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcsPage.js +0 -31
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceEditor.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceEditor.js +0 -26
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceList.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceList.js +0 -70
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/data.js +0 -8
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/domain.js +0 -62
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/management.js +0 -36
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/managementStore.js +0 -49
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/store.js +0 -132
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/AdminList.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/AdminList.js +0 -38
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/EffectiveGrants.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/EffectiveGrants.js +0 -11
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/GrantEditor.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/GrantEditor.js +0 -45
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MemberEditor.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MemberEditor.js +0 -54
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MembersPage.html +0 -3
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MembersPage.js +0 -27
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RecordsPage.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RecordsPage.js +0 -12
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RoleEditor.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RoleEditor.js +0 -45
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RolesPage.html +0 -3
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RolesPage.js +0 -38
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/domain.js +0 -61
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/state.js +0 -51
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/store.js +0 -116
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseActionDialog.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseActionDialog.js +0 -45
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseDetail.html +0 -4
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseDetail.js +0 -30
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseEditor.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseEditor.js +0 -67
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseExecution.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseExecution.js +0 -5
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleasesPage.html +0 -4
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleasesPage.js +0 -60
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/commands.js +0 -157
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/model.js +0 -136
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/store.js +0 -76
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewDetail.html +0 -3
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewDetail.js +0 -26
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewEvidence.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewEvidence.js +0 -14
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewProcess.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewProcess.js +0 -113
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewsPage.html +0 -3
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewsPage.js +0 -62
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/commands.js +0 -97
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/model.js +0 -147
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/store.js +0 -13
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ColumnSettings.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ColumnSettings.js +0 -9
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListBatchBar.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListBatchBar.js +0 -8
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListDeleteDialog.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListDeleteDialog.js +0 -37
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListMore.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListMore.js +0 -8
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/RecordMetadata.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/RecordMetadata.js +0 -17
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/columns.js +0 -32
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/deliveryGuide.js +0 -49
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/deliveryView.js +0 -12
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/listBatch.js +0 -15
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/listSelection.js +0 -37
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/policy.js +0 -68
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/session.js +0 -44
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConfirmationDialog.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConfirmationDialog.js +0 -25
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConsoleShell.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConsoleShell.js +0 -53
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/PrototypeGuide.html +0 -10
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/PrototypeGuide.js +0 -30
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ScopePage.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ScopePage.js +0 -10
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/SessionDialog.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/SessionDialog.js +0 -9
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/confirmation.js +0 -3
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/navigation.js +0 -19
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecDocument.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecDocument.js +0 -8
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecEdit.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecEdit.js +0 -32
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHeader.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHeader.js +0 -15
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHistory.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHistory.js +0 -11
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecReview.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecReview.js +0 -57
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecWorkspace.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecWorkspace.js +0 -37
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/data.js +0 -20
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/domain.js +0 -55
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/store.js +0 -151
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/ArtifactDetail.html +0 -3
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/ArtifactDetail.js +0 -18
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskCreate.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskCreate.js +0 -40
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskDetail.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskDetail.js +0 -51
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskLaunch.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskLaunch.js +0 -9
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TasksPage.html +0 -5
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TasksPage.js +0 -48
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/domain.js +0 -204
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/exampleSource.js +0 -22
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/registry.js +0 -135
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/store.js +0 -137
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/WorkbenchPage.html +0 -3
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/WorkbenchPage.js +0 -36
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/model.js +0 -56
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/store.js +0 -15
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowCanvas.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowCanvas.js +0 -27
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowDetail.html +0 -4
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowDetail.js +0 -31
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowEditor.html +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowEditor.js +0 -68
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/WorkflowsPage.html +0 -5
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/WorkflowsPage.js +0 -55
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/data.js +0 -16
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/domain.js +0 -83
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/registry.js +0 -18
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/store.js +0 -61
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/admin.css +0 -60
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/agents.css +0 -46
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/antdv.css +0 -295
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/app.css +0 -102
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/delivery.css +0 -4
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/intents.css +0 -37
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/native.css +0 -22
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/operations.css +0 -2
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/pbc.css +0 -3
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/permissions.css +0 -22
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/pro.css +0 -1
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/releases.css +0 -4
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/reset.css +0 -246
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/reviews.css +0 -8
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/tasks.css +0 -6
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/tokens.css +0 -15
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/workbench.css +0 -61
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/workflows.css +0 -1
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/admin-rules.test.js +0 -96
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/agents.test.js +0 -14
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/intent-state.test.js +0 -37
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/list-batch.test.js +0 -44
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/operation-fixtures.js +0 -19
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/operation-repair.test.js +0 -14
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/operations.test.js +0 -25
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/pbc-management.test.js +0 -17
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/pbc-state.test.js +0 -24
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/permission-config.test.js +0 -23
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/permissions.test.js +0 -24
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/releases.test.js +0 -50
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/reviews.test.js +0 -36
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/runtime-forms-router.test.js +0 -28
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/runtime-state.test.js +0 -42
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/runtime-stores.test.js +0 -16
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/spec-state.test.js +0 -11
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/tasks.test.js +0 -27
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/workbench.test.js +0 -34
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/workflows.test.js +0 -16
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/convert.mjs +0 -168
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/serve.mjs +0 -7
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/styles.mjs +0 -11
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/verify.mjs +0 -24
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/serve.cjs +0 -16
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/template-inventory.json +0 -28791
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/template.json +0 -9
- package/skills/i3-ui-prototype/assets/templates/enterprise-admin/usability.css +0 -44
- package/skills/i3-ui-prototype/assets/templates/gallery/index.html +0 -40
- package/skills/i3-ui-prototype/assets/templates/generation-options.js +0 -42
- package/skills/i3-ui-prototype/assets/templates/index.html +0 -3
- package/skills/i3-ui-prototype/assets/templates/modern-workspace/manifest.json +0 -9
- package/skills/i3-ui-prototype/assets/templates/modern-workspace/preset.json +0 -6
- package/skills/i3-ui-prototype/assets/templates/presentation.html +0 -17
- package/skills/i3-ui-prototype/assets/templates/serve-gallery.cjs +0 -23
- package/skills/i3-ui-prototype/references/artifact-contract.md +0 -66
- package/skills/i3-ui-prototype/references/content-template.md +0 -81
- package/skills/i3-ui-prototype/references/enterprise-admin.md +0 -44
- package/skills/i3-ui-prototype/references/entry-contract.md +0 -71
- package/skills/i3-ui-prototype/references/execution-evidence.md +0 -51
- package/skills/i3-ui-prototype/references/expert-adapter.md +0 -76
- package/skills/i3-ui-prototype/references/framework-contract.md +0 -76
- package/skills/i3-ui-prototype/references/generation-contract.md +0 -122
- package/skills/i3-ui-prototype/references/interaction-acceptance.md +0 -169
- package/skills/i3-ui-prototype/references/legacy-native.md +0 -58
- package/skills/i3-ui-prototype/references/optional-skills.md +0 -63
- package/skills/i3-ui-prototype/references/project-layout.md +0 -92
- package/skills/i3-ui-prototype/references/template-adapters.md +0 -63
- package/skills/i3-ui-prototype/references/workflow-contract.md +0 -77
- package/skills/i3-ui-prototype/scripts/adapters/easel-html.cjs +0 -30
- package/skills/i3-ui-prototype/scripts/adapters/legacy-html.cjs +0 -28
- package/skills/i3-ui-prototype/scripts/browser-workspace.cjs +0 -72
- package/skills/i3-ui-prototype/scripts/buddy-host.cjs +0 -40
- package/skills/i3-ui-prototype/scripts/check-design-provider.cjs +0 -9
- package/skills/i3-ui-prototype/scripts/check-prototype.cjs +0 -14
- package/skills/i3-ui-prototype/scripts/codebuddy-context.cjs +0 -92
- package/skills/i3-ui-prototype/scripts/codebuddy-hook.cjs +0 -298
- package/skills/i3-ui-prototype/scripts/codebuddy-ide-source.cjs +0 -69
- package/skills/i3-ui-prototype/scripts/codebuddy-registration.cjs +0 -125
- package/skills/i3-ui-prototype/scripts/content-template.cjs +0 -98
- package/skills/i3-ui-prototype/scripts/design-provider-discovery.cjs +0 -128
- package/skills/i3-ui-prototype/scripts/enterprise-template.cjs +0 -104
- package/skills/i3-ui-prototype/scripts/execution-assertions.cjs +0 -43
- package/skills/i3-ui-prototype/scripts/execution-diagnostics.cjs +0 -91
- package/skills/i3-ui-prototype/scripts/execution-evidence.cjs +0 -177
- package/skills/i3-ui-prototype/scripts/execution-gates.cjs +0 -216
- package/skills/i3-ui-prototype/scripts/execution-policy.cjs +0 -62
- package/skills/i3-ui-prototype/scripts/execution-recovery.cjs +0 -58
- package/skills/i3-ui-prototype/scripts/execution-runtime.cjs +0 -69
- package/skills/i3-ui-prototype/scripts/generation-assets.cjs +0 -18
- package/skills/i3-ui-prototype/scripts/generation-contract.cjs +0 -214
- package/skills/i3-ui-prototype/scripts/generation-evidence.cjs +0 -50
- package/skills/i3-ui-prototype/scripts/generation-replan.cjs +0 -34
- package/skills/i3-ui-prototype/scripts/hosts/codebuddy.cjs +0 -21
- package/skills/i3-ui-prototype/scripts/init-prototype.cjs +0 -8
- package/skills/i3-ui-prototype/scripts/manage-baseline.cjs +0 -11
- package/skills/i3-ui-prototype/scripts/native-browser.cjs +0 -785
- package/skills/i3-ui-prototype/scripts/native-build.cjs +0 -91
- package/skills/i3-ui-prototype/scripts/native-command.cjs +0 -35
- package/skills/i3-ui-prototype/scripts/native-delivery.cjs +0 -104
- package/skills/i3-ui-prototype/scripts/native-devtools.cjs +0 -92
- package/skills/i3-ui-prototype/scripts/native-files.cjs +0 -44
- package/skills/i3-ui-prototype/scripts/native-pilot-lib.cjs +0 -290
- package/skills/i3-ui-prototype/scripts/native-pilot.cjs +0 -59
- package/skills/i3-ui-prototype/scripts/native-tool-name.cjs +0 -5
- package/skills/i3-ui-prototype/scripts/native-tool-result.cjs +0 -14
- package/skills/i3-ui-prototype/scripts/optional-skill-install.cjs +0 -203
- package/skills/i3-ui-prototype/scripts/project-registry.cjs +0 -126
- package/skills/i3-ui-prototype/scripts/prototype-dependencies.cjs +0 -103
- package/skills/i3-ui-prototype/scripts/prototype-hooks.cjs +0 -94
- package/skills/i3-ui-prototype/scripts/prototype-lib.cjs +0 -277
- package/skills/i3-ui-prototype/scripts/prototype-locations.cjs +0 -69
- package/skills/i3-ui-prototype/scripts/ptc-callbacks.cjs +0 -131
- package/skills/i3-ui-prototype/scripts/sync-template.cjs +0 -19
- package/skills/i3-ui-prototype/scripts/template-adapters.cjs +0 -89
- package/skills/i3-ui-prototype/scripts/template-contract.cjs +0 -407
- package/skills/i3-ui-prototype/scripts/template-inventory.cjs +0 -78
- 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 && intent?.activeQuestion === index })"><button data-if="(selectable && 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 && !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
|
-
} });
|
package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/data.js
DELETED
|
@@ -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;
|
package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/domain.js
DELETED
|
@@ -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
|
-
}
|
package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/store.js
DELETED
|
@@ -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 () => { })" data-bind-pagination="({ showTotal: (t) => `共 ${t} 条`, showSizeChanger: true, pageSizeOptions: [10, 20, 50, 100], hideOnSinglePage: false })"></template></section>
|
package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/AuditPanel.js
DELETED
|
@@ -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
|
-
} });
|