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