@aipt/cli 0.1.0 → 0.1.13
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/README.md +114 -5
- package/dist/application-runner.js +276 -0
- package/dist/application.js +254 -0
- package/dist/catalog/foundation.agent-chat-ui-consumer/1.0.0/assets/README.agent-chat-ui.md +5 -0
- package/dist/catalog/foundation.agent-chat-ui-consumer/1.0.0/release.json +29 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/package.json +19 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/src/AgentChatWorkbench.test.tsx +12 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/src/AgentChatWorkbench.tsx +27 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/src/index.ts +2 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/src/style.css +1 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/src/styles.d.ts +1 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/src/test/setup.ts +1 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/tooling/verify-bundle.mjs +4 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/tsconfig.build.json +1 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/tsconfig.json +1 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/vite.config.ts +4 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.0.0/release.json +33 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/package.json +19 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/src/AgentChatWorkbench.test.tsx +12 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/src/AgentChatWorkbench.tsx +27 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/src/index.ts +2 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/src/style.css +1 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/src/styles.d.ts +1 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/src/test/setup.ts +1 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/tooling/verify-bundle.mjs +4 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/tsconfig.build.json +1 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/tsconfig.json +1 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/vite.config.ts +4 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.1.0/release.json +39 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/package.json +65 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/src/AgentChatWorkbench.test.tsx +12 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/src/AgentChatWorkbench.tsx +27 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/src/index.ts +2 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/src/style.css +1 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/src/styles.d.ts +1 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/src/test/setup.ts +1 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/tooling/verify-bundle.mjs +4 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/tsconfig.build.json +1 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/tsconfig.json +1 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/vite.config.ts +4 -0
- package/dist/catalog/foundation.agent-chat-workbench/1.2.0/release.json +39 -0
- package/dist/catalog/foundation.agent-state-sqlite/1.0.0/assets/README.agent-state-sqlite.md +5 -0
- package/dist/catalog/foundation.agent-state-sqlite/1.0.0/assets/src/agent-state.test.ts +8 -0
- package/dist/catalog/foundation.agent-state-sqlite/1.0.0/assets/src/agent-state.ts +8 -0
- package/dist/catalog/foundation.agent-state-sqlite/1.0.0/release.json +34 -0
- package/dist/catalog/foundation.agent-state-sqlite/1.1.0/assets/README.agent-state-sqlite.md +5 -0
- package/dist/catalog/foundation.agent-state-sqlite/1.1.0/assets/src/agent-state.test.ts +8 -0
- package/dist/catalog/foundation.agent-state-sqlite/1.1.0/assets/src/agent-state.ts +8 -0
- package/dist/catalog/foundation.agent-state-sqlite/1.1.0/release.json +34 -0
- package/dist/catalog/foundation.agent-state-sqlite-registry-consumer/1.0.0/assets/README.agent-state-registry-consumer.md +5 -0
- package/dist/catalog/foundation.agent-state-sqlite-registry-consumer/1.0.0/release.json +38 -0
- package/dist/catalog/foundation.agent-state-sqlite-registry-consumer/1.1.0/assets/README.agent-state-registry-consumer.md +5 -0
- package/dist/catalog/foundation.agent-state-sqlite-registry-consumer/1.1.0/release.json +31 -0
- package/dist/catalog/foundation.agent-worker-skill-runtime/1.0.0/assets/README.agent-runtime.md +7 -0
- package/dist/catalog/foundation.agent-worker-skill-runtime/1.0.0/assets/src/agent-runtime.test.ts +19 -0
- package/dist/catalog/foundation.agent-worker-skill-runtime/1.0.0/assets/src/agent-runtime.ts +15 -0
- package/dist/catalog/foundation.agent-worker-skill-runtime/1.0.0/release.json +47 -0
- package/dist/catalog/foundation.ai-education-agent-example/1.0.0/assets/README.agent-example.md +5 -0
- package/dist/catalog/foundation.ai-education-agent-example/1.0.0/assets/app/agent-phase1/page.tsx +2 -0
- package/dist/catalog/foundation.ai-education-agent-example/1.0.0/assets/app/agent-phase1/workbench.test.tsx +5 -0
- package/dist/catalog/foundation.ai-education-agent-example/1.0.0/assets/app/agent-phase1/workbench.tsx +19 -0
- package/dist/catalog/foundation.ai-education-agent-example/1.0.0/release.json +21 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.0.0/assets/README.agent-sqlite-example.md +3 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.0.0/assets/app/agent-sqlite/contracts.ts +5 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.0.0/assets/app/agent-sqlite/page.tsx +3 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.0.0/assets/app/agent-sqlite/state.server.ts +7 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.0.0/assets/app/agent-sqlite/workbench.test.tsx +7 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.0.0/assets/app/agent-sqlite/workbench.tsx +9 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.0.0/release.json +30 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.1.0/assets/README.agent-stage5.md +3 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.1.0/assets/app/agent-stage5/contracts.ts +6 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.1.0/assets/app/agent-stage5/page.tsx +1 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.1.0/assets/app/agent-stage5/platform-proof.ts +8 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.1.0/assets/app/agent-stage5/state.server.ts +5 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.1.0/assets/app/agent-stage5/workbench.test.tsx +1 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.1.0/assets/app/agent-stage5/workbench.tsx +3 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.1.0/release.json +32 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.2.0/assets/README.education-agent-intake.md +3 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.2.0/assets/app/agent-intake/contracts.ts +8 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.2.0/assets/app/agent-intake/page.tsx +3 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.2.0/assets/app/agent-intake/platform-proof.ts +7 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.2.0/assets/app/agent-intake/state.server.ts +8 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.2.0/assets/app/agent-intake/workbench.test.tsx +7 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.2.0/assets/app/agent-intake/workbench.tsx +6 -0
- package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.2.0/release.json +32 -0
- package/dist/catalog/foundation.ai-education-delegated-review-example/1.0.0/assets/README.ai-education-delegated-review.md +3 -0
- package/dist/catalog/foundation.ai-education-delegated-review-example/1.0.0/assets/app/ai-education-delegated-review/page.tsx +47 -0
- package/dist/catalog/foundation.ai-education-delegated-review-example/1.0.0/assets/src/delegated-review-fixture.test.ts +1 -0
- package/dist/catalog/foundation.ai-education-delegated-review-example/1.0.0/assets/src/delegated-review-fixture.ts +1 -0
- package/dist/catalog/foundation.ai-education-delegated-review-example/1.0.0/release.json +26 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.0.0/assets/README.ai-education-end-to-end-production.md +7 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.0.0/assets/app/ai-education-end-to-end-production/page.tsx +13 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.0.0/assets/src/education-production-lineage.test.ts +16 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.0.0/assets/src/education-production-lineage.ts +30 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.0.0/release.json +34 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.1.0/assets/README.ai-education-end-to-end-production.md +3 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.1.0/assets/app/ai-education-end-to-end-production/page.tsx +3 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.1.0/assets/src/education-production-lineage.test.ts +2 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.1.0/assets/src/education-production-lineage.ts +3 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.1.0/release.json +31 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.2.0/assets/README.ai-education-end-to-end-production.md +5 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.2.0/assets/app/ai-education-end-to-end-production/page.tsx +3 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.2.0/assets/src/education-production-lineage.test.ts +2 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.2.0/assets/src/education-production-lineage.ts +5 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.2.0/release.json +31 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.3.0/assets/README.ai-education-end-to-end-production.md +5 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.3.0/assets/app/ai-education-end-to-end-production/page.tsx +2 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.3.0/assets/src/education-production-journey.test.ts +2 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.3.0/assets/src/education-production-journey.ts +4 -0
- package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.3.0/release.json +1 -0
- package/dist/catalog/foundation.ai-education-learning-media-authoring-example/1.0.0/assets/README.education-learning-media-authoring.md +3 -0
- package/dist/catalog/foundation.ai-education-learning-media-authoring-example/1.0.0/assets/app/education-learning-media-authoring/page.tsx +1 -0
- package/dist/catalog/foundation.ai-education-learning-media-authoring-example/1.0.0/assets/src/learning-media-fixture.test.ts +1 -0
- package/dist/catalog/foundation.ai-education-learning-media-authoring-example/1.0.0/assets/src/learning-media-fixture.ts +3 -0
- package/dist/catalog/foundation.ai-education-learning-media-authoring-example/1.0.0/release.json +26 -0
- package/dist/catalog/foundation.ai-education-picturebook-courseware-example/1.0.0/assets/README.ai-education-picturebook-courseware.md +5 -0
- package/dist/catalog/foundation.ai-education-picturebook-courseware-example/1.0.0/assets/app/ai-education-picturebook-courseware/page.tsx +1 -0
- package/dist/catalog/foundation.ai-education-picturebook-courseware-example/1.0.0/assets/src/picturebook-fixture.test.ts +1 -0
- package/dist/catalog/foundation.ai-education-picturebook-courseware-example/1.0.0/assets/src/picturebook-fixture.ts +4 -0
- package/dist/catalog/foundation.ai-education-picturebook-courseware-example/1.0.0/release.json +1 -0
- package/dist/catalog/foundation.ai-education-web-courseware-example/1.0.0/assets/README.ai-education-web-courseware.md +3 -0
- package/dist/catalog/foundation.ai-education-web-courseware-example/1.0.0/assets/app/ai-education-web-courseware/page.tsx +1 -0
- package/dist/catalog/foundation.ai-education-web-courseware-example/1.0.0/assets/src/courseware-fixture.test.ts +1 -0
- package/dist/catalog/foundation.ai-education-web-courseware-example/1.0.0/assets/src/courseware-fixture.ts +3 -0
- package/dist/catalog/foundation.ai-education-web-courseware-example/1.0.0/release.json +18 -0
- package/dist/catalog/foundation.ai-orchestration/1.0.0/assets/docs/engineering/ai-orchestration.md +3 -0
- package/dist/catalog/foundation.ai-orchestration/1.0.0/release.json +99 -0
- package/dist/catalog/foundation.api-contract-toolchain/1.0.0/assets/docs/engineering/api-contract.md +33 -0
- package/dist/catalog/foundation.api-contract-toolchain/1.0.0/assets/openapi-ts.config.ts +20 -0
- package/dist/catalog/foundation.api-contract-toolchain/1.0.0/assets/src/api/query-client.ts +29 -0
- package/dist/catalog/foundation.api-contract-toolchain/1.0.0/assets/src/api/runtime.ts +44 -0
- package/dist/catalog/foundation.api-contract-toolchain/1.0.0/release.json +122 -0
- package/dist/catalog/foundation.application-config-binding/1.0.0/assets/.dyyto/application-config-binding.json +4 -0
- package/dist/catalog/foundation.application-config-binding/1.0.0/assets/docs/engineering/application-config-binding.md +5 -0
- package/dist/catalog/foundation.application-config-binding/1.0.0/release.json +28 -0
- package/dist/catalog/foundation.artifact-delivery/1.0.0/assets/docs/engineering/artifact-delivery.md +3 -0
- package/dist/catalog/foundation.artifact-delivery/1.0.0/release.json +75 -0
- package/dist/catalog/foundation.artifact-runtime/1.0.0/assets/docs/engineering/artifact-runtime.md +3 -0
- package/dist/catalog/foundation.artifact-runtime/1.0.0/release.json +87 -0
- package/dist/catalog/foundation.capability-family-routing/1.0.0/assets/README.capability-family-routing.md +7 -0
- package/dist/catalog/foundation.capability-family-routing/1.0.0/assets/src/capability-family-routing.test.ts +10 -0
- package/dist/catalog/foundation.capability-family-routing/1.0.0/release.json +35 -0
- package/dist/catalog/foundation.environment-schema/1.0.0/assets/docs/engineering/environment.md +37 -0
- package/dist/catalog/foundation.environment-schema/1.0.0/assets/src/environment.ts +30 -0
- package/dist/catalog/foundation.environment-schema/1.0.0/release.json +75 -0
- package/dist/catalog/foundation.environment-schema/1.1.0/assets/.env.example +1 -0
- package/dist/catalog/foundation.environment-schema/1.1.0/assets/docs/engineering/environment.md +9 -0
- package/dist/catalog/foundation.environment-schema/1.1.0/release.json +25 -0
- package/dist/catalog/foundation.environment-schema/2.0.0/assets/config/application-config.json +4 -0
- package/dist/catalog/foundation.environment-schema/2.0.0/assets/docs/engineering/environment.md +33 -0
- package/dist/catalog/foundation.environment-schema/2.0.0/release.json +63 -0
- package/dist/catalog/foundation.managed-project-control/1.0.0/assets/docs/engineering/project-control.md +24 -0
- package/dist/catalog/foundation.managed-project-control/1.0.0/release.json +34 -0
- package/dist/catalog/foundation.managed-project-control/1.1.0/assets/docs/engineering/project-control.md +15 -0
- package/dist/catalog/foundation.managed-project-control/1.1.0/release.json +27 -0
- package/dist/catalog/foundation.managed-project-control/1.2.0/assets/docs/engineering/project-control.md +15 -0
- package/dist/catalog/foundation.managed-project-control/1.2.0/release.json +27 -0
- package/dist/catalog/foundation.managed-project-control/1.3.0/assets/docs/engineering/project-control.md +14 -0
- package/dist/catalog/foundation.managed-project-control/1.3.0/release.json +27 -0
- package/dist/catalog/foundation.media-production-infrastructure/1.0.0/assets/docs/engineering/media-production-infrastructure.md +3 -0
- package/dist/catalog/foundation.media-production-infrastructure/1.0.0/release.json +99 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/AGENTS.md +8 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/README.md +12 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/app/api/health/route.test.ts +9 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/app/api/health/route.ts +5 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/app/components/Counter.test.tsx +12 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/app/components/Counter.tsx +13 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/app/globals.css +20 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/app/layout.tsx +12 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/app/page.test.tsx +11 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/app/page.tsx +19 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/e2e/home.spec.ts +15 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/eslint.config.mjs +7 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/next-env.d.ts +6 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/next.config.ts +9 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/package.json +4 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/playwright.config.ts +16 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/pnpm-workspace.yaml +4 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/public/.gitkeep +1 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/src/test/setup.ts +1 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/tooling/package-standalone.mjs +15 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/tooling/verify-standalone.mjs +20 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/tsconfig.json +42 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/vitest.config.mts +12 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/release.json +42 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.1.0/assets/package.json +4 -0
- package/dist/catalog/foundation.nextjs-full-stack-application/1.1.0/release.json +21 -0
- package/dist/catalog/foundation.package-source-fixture/1.0.0/assets/README.runtime.md +1 -0
- package/dist/catalog/foundation.package-source-fixture/1.0.0/release.json +16 -0
- package/dist/catalog/foundation.page-authoring/1.0.0/assets/docs/engineering/page-authoring.md +27 -0
- package/dist/catalog/foundation.page-authoring/1.0.0/assets/src/page-authoring/csr-entry.tsx +6 -0
- package/dist/catalog/foundation.page-authoring/1.0.0/assets/src/page-authoring/load-document.ts +11 -0
- package/dist/catalog/foundation.page-authoring/1.0.0/assets/src/page-authoring/pages/about.json +26 -0
- package/dist/catalog/foundation.page-authoring/1.0.0/assets/src/page-authoring/pages/home.json +26 -0
- package/dist/catalog/foundation.page-authoring/1.0.0/assets/src/page-authoring/project.json +38 -0
- package/dist/catalog/foundation.page-authoring/1.0.0/release.json +146 -0
- package/dist/catalog/foundation.pro-search-table-page/1.0.0/assets/docs/engineering/pro-search-table.md +20 -0
- package/dist/catalog/foundation.pro-search-table-page/1.0.0/assets/search/operations-page.tsx +66 -0
- package/dist/catalog/foundation.pro-search-table-page/1.0.0/assets/search/search-main.tsx +15 -0
- package/dist/catalog/foundation.pro-search-table-page/1.0.0/assets/search.html +13 -0
- package/dist/catalog/foundation.pro-search-table-page/1.0.0/release.json +119 -0
- package/dist/catalog/foundation.pro-search-table-page/2.0.0/assets/docs/engineering/pro-search-table.md +20 -0
- package/dist/catalog/foundation.pro-search-table-page/2.0.0/assets/search/operations-page.tsx +66 -0
- package/dist/catalog/foundation.pro-search-table-page/2.0.0/assets/search/search-main.tsx +15 -0
- package/dist/catalog/foundation.pro-search-table-page/2.0.0/assets/search.html +13 -0
- package/dist/catalog/foundation.pro-search-table-page/2.0.0/release.json +153 -0
- package/dist/catalog/foundation.product-interaction-feedback/1.0.0/assets/docs/engineering/product-interaction-feedback.md +10 -0
- package/dist/catalog/foundation.product-interaction-feedback/1.0.0/release.json +68 -0
- package/dist/catalog/foundation.production-orchestration-contracts/1.0.0/assets/README.production-orchestration.md +3 -0
- package/dist/catalog/foundation.production-orchestration-contracts/1.0.0/assets/src/production-orchestration.test.ts +8 -0
- package/dist/catalog/foundation.production-orchestration-contracts/1.0.0/assets/src/production-orchestration.ts +7 -0
- package/dist/catalog/foundation.production-orchestration-contracts/1.0.0/release.json +33 -0
- package/dist/catalog/foundation.production-orchestration-contracts/1.1.0/assets/README.production-orchestration.md +3 -0
- package/dist/catalog/foundation.production-orchestration-contracts/1.1.0/assets/src/production-orchestration.test.ts +11 -0
- package/dist/catalog/foundation.production-orchestration-contracts/1.1.0/assets/src/production-orchestration.ts +4 -0
- package/dist/catalog/foundation.production-orchestration-contracts/1.1.0/release.json +29 -0
- package/dist/catalog/foundation.production-orchestration-registry-consumer/1.1.0/assets/README.production-orchestration-registry.md +5 -0
- package/dist/catalog/foundation.production-orchestration-registry-consumer/1.1.0/release.json +33 -0
- package/dist/catalog/foundation.production-orchestration-registry-consumer/1.2.0/assets/README.production-orchestration-registry.md +3 -0
- package/dist/catalog/foundation.production-orchestration-registry-consumer/1.2.0/release.json +33 -0
- package/dist/catalog/foundation.production-workbench/1.0.0/assets/docs/engineering/production-workbench.md +3 -0
- package/dist/catalog/foundation.production-workbench/1.0.0/release.json +74 -0
- package/dist/catalog/foundation.project-documentation/1.0.0/assets/docs/engineering/README.md +13 -0
- package/dist/catalog/foundation.project-documentation/1.0.0/release.json +37 -0
- package/dist/catalog/foundation.project-maintenance/1.0.0/assets/docs/engineering/README.md +5 -0
- package/dist/catalog/foundation.project-maintenance/1.0.0/release.json +39 -0
- package/dist/catalog/foundation.project-maintenance-console/1.0.0/assets/docs/engineering/project-maintenance-console.md +7 -0
- package/dist/catalog/foundation.project-maintenance-console/1.0.0/release.json +27 -0
- package/dist/catalog/foundation.react-component-library/1.0.0/assets/package.json +1 -0
- package/dist/catalog/foundation.react-component-library/1.0.0/assets/pnpm-workspace.yaml +1 -0
- package/dist/catalog/foundation.react-component-library/1.0.0/assets/src/Button.test.tsx +12 -0
- package/dist/catalog/foundation.react-component-library/1.0.0/assets/src/Button.tsx +8 -0
- package/dist/catalog/foundation.react-component-library/1.0.0/assets/src/index.ts +1 -0
- package/dist/catalog/foundation.react-component-library/1.0.0/assets/src/style.css +14 -0
- package/dist/catalog/foundation.react-component-library/1.0.0/assets/src/styles.d.ts +1 -0
- package/dist/catalog/foundation.react-component-library/1.0.0/assets/src/test/setup.ts +1 -0
- package/dist/catalog/foundation.react-component-library/1.0.0/assets/tooling/verify-bundle.mjs +7 -0
- package/dist/catalog/foundation.react-component-library/1.0.0/assets/tsconfig.build.json +11 -0
- package/dist/catalog/foundation.react-component-library/1.0.0/assets/tsconfig.json +14 -0
- package/dist/catalog/foundation.react-component-library/1.0.0/assets/vite.config.ts +12 -0
- package/dist/catalog/foundation.react-component-library/1.0.0/release.json +30 -0
- package/dist/catalog/foundation.react-component-library/1.1.0/assets/package.json +1 -0
- package/dist/catalog/foundation.react-component-library/1.1.0/assets/pnpm-lock.yaml +1327 -0
- package/dist/catalog/foundation.react-component-library/1.1.0/assets/pnpm-workspace.yaml +5 -0
- package/dist/catalog/foundation.react-component-library/1.1.0/assets/src/Button.test.tsx +12 -0
- package/dist/catalog/foundation.react-component-library/1.1.0/assets/src/Button.tsx +8 -0
- package/dist/catalog/foundation.react-component-library/1.1.0/assets/src/index.ts +1 -0
- package/dist/catalog/foundation.react-component-library/1.1.0/assets/src/style.css +14 -0
- package/dist/catalog/foundation.react-component-library/1.1.0/assets/src/styles.d.ts +1 -0
- package/dist/catalog/foundation.react-component-library/1.1.0/assets/src/test/setup.ts +1 -0
- package/dist/catalog/foundation.react-component-library/1.1.0/assets/tooling/verify-bundle.mjs +7 -0
- package/dist/catalog/foundation.react-component-library/1.1.0/assets/tsconfig.build.json +11 -0
- package/dist/catalog/foundation.react-component-library/1.1.0/assets/tsconfig.json +14 -0
- package/dist/catalog/foundation.react-component-library/1.1.0/assets/vite.config.ts +12 -0
- package/dist/catalog/foundation.react-component-library/1.1.0/release.json +125 -0
- package/dist/catalog/foundation.standalone-npm-package/1.1.0/assets/package.json +4 -0
- package/dist/catalog/foundation.standalone-npm-package/1.1.0/assets/pnpm-workspace.yaml +1 -0
- package/dist/catalog/foundation.standalone-npm-package/1.1.0/assets/src/index.test.ts +8 -0
- package/dist/catalog/foundation.standalone-npm-package/1.1.0/assets/src/index.ts +3 -0
- package/dist/catalog/foundation.standalone-npm-package/1.1.0/assets/tsconfig.build.json +12 -0
- package/dist/catalog/foundation.standalone-npm-package/1.1.0/assets/tsconfig.json +14 -0
- package/dist/catalog/foundation.standalone-npm-package/1.1.0/release.json +29 -0
- package/dist/catalog/foundation.standalone-npm-package/1.2.0/assets/package.json +4 -0
- package/dist/catalog/foundation.standalone-npm-package/1.2.0/assets/pnpm-lock.yaml +727 -0
- package/dist/catalog/foundation.standalone-npm-package/1.2.0/assets/pnpm-workspace.yaml +5 -0
- package/dist/catalog/foundation.standalone-npm-package/1.2.0/assets/src/index.test.ts +8 -0
- package/dist/catalog/foundation.standalone-npm-package/1.2.0/assets/src/index.ts +3 -0
- package/dist/catalog/foundation.standalone-npm-package/1.2.0/assets/tsconfig.build.json +12 -0
- package/dist/catalog/foundation.standalone-npm-package/1.2.0/assets/tsconfig.json +14 -0
- package/dist/catalog/foundation.standalone-npm-package/1.2.0/release.json +82 -0
- package/dist/catalog/foundation.structured-knowledge-runtime/1.0.0/assets/README.structured-knowledge.md +3 -0
- package/dist/catalog/foundation.structured-knowledge-runtime/1.0.0/assets/src/structured-knowledge.test.ts +8 -0
- package/dist/catalog/foundation.structured-knowledge-runtime/1.0.0/assets/src/structured-knowledge.ts +8 -0
- package/dist/catalog/foundation.structured-knowledge-runtime/1.0.0/release.json +37 -0
- package/dist/catalog/foundation.visual-presentation-composition/1.0.0/assets/README.visual-presentation.md +3 -0
- package/dist/catalog/foundation.visual-presentation-composition/1.0.0/assets/app/visual-presentation/page.tsx +48 -0
- package/dist/catalog/foundation.visual-presentation-composition/1.0.0/assets/src/visual-presentation.test.ts +1 -0
- package/dist/catalog/foundation.visual-presentation-composition/1.0.0/assets/src/visual-presentation.ts +2 -0
- package/dist/catalog/foundation.visual-presentation-composition/1.0.0/release.json +26 -0
- package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/__dyyto_dotfiles__/gitignore +13 -0
- package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/app/_layout.tsx +5 -0
- package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/app/index.tsx +25 -0
- package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/app.json +14 -0
- package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/expo-env.d.ts +3 -0
- package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/package.json +4 -0
- package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/src/app-config.test.ts +10 -0
- package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/tooling/verify-expo-export.mjs +5 -0
- package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/tsconfig.json +10 -0
- package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/vitest.config.mts +5 -0
- package/dist/catalog/foundation.workspace-expo-application/1.0.0/release.json +42 -0
- package/dist/catalog/foundation.workspace-node-application/1.1.0/assets/package.json +4 -0
- package/dist/catalog/foundation.workspace-node-application/1.1.0/assets/src/app.test.ts +21 -0
- package/dist/catalog/foundation.workspace-node-application/1.1.0/assets/src/app.ts +14 -0
- package/dist/catalog/foundation.workspace-node-application/1.1.0/assets/src/index.test.ts +14 -0
- package/dist/catalog/foundation.workspace-node-application/1.1.0/assets/src/index.ts +53 -0
- package/dist/catalog/foundation.workspace-node-application/1.1.0/assets/tsconfig.build.json +12 -0
- package/dist/catalog/foundation.workspace-node-application/1.1.0/assets/tsconfig.json +7 -0
- package/dist/catalog/foundation.workspace-node-application/1.1.0/release.json +19 -0
- package/dist/catalog/foundation.workspace-npm-package/1.1.0/assets/package.json +4 -0
- package/dist/catalog/foundation.workspace-npm-package/1.1.0/assets/src/index.test.ts +8 -0
- package/dist/catalog/foundation.workspace-npm-package/1.1.0/assets/src/index.ts +3 -0
- package/dist/catalog/foundation.workspace-npm-package/1.1.0/assets/tsconfig.build.json +12 -0
- package/dist/catalog/foundation.workspace-npm-package/1.1.0/assets/tsconfig.json +7 -0
- package/dist/catalog/foundation.workspace-npm-package/1.1.0/release.json +17 -0
- package/dist/catalog/foundation.workspace-npm-package/1.2.0/assets/package.json +4 -0
- package/dist/catalog/foundation.workspace-npm-package/1.2.0/assets/src/index.test.ts +8 -0
- package/dist/catalog/foundation.workspace-npm-package/1.2.0/assets/src/index.ts +3 -0
- package/dist/catalog/foundation.workspace-npm-package/1.2.0/assets/tsconfig.build.json +12 -0
- package/dist/catalog/foundation.workspace-npm-package/1.2.0/assets/tsconfig.json +7 -0
- package/dist/catalog/foundation.workspace-npm-package/1.2.0/release.json +17 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/package.json +1 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/src/Button.test.tsx +12 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/src/Button.tsx +8 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/src/index.ts +1 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/src/style.css +14 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/src/styles.d.ts +1 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/src/test/setup.ts +1 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/tooling/verify-bundle.mjs +7 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/tsconfig.build.json +11 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/tsconfig.json +14 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/vite.config.ts +12 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.0.0/release.json +24 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/package.json +1 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/src/Button.test.tsx +12 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/src/Button.tsx +8 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/src/index.ts +1 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/src/style.css +14 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/src/styles.d.ts +1 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/src/test/setup.ts +1 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/tooling/verify-bundle.mjs +7 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/tsconfig.build.json +11 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/tsconfig.json +14 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/vite.config.ts +12 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.1.0/release.json +38 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/package.json +1 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/src/Button.test.tsx +12 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/src/Button.tsx +8 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/src/index.ts +1 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/src/style.css +14 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/src/styles.d.ts +1 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/src/test/setup.ts +1 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/tooling/package-externals.d.mts +8 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/tooling/package-externals.mjs +16 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/tooling/verify-bundle.mjs +30 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/tsconfig.build.json +11 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/tsconfig.json +14 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/vite.config.ts +15 -0
- package/dist/catalog/foundation.workspace-react-component-library/1.2.0/release.json +40 -0
- package/dist/catalog/foundation.workspace-root/1.2.0/assets/apps/README.md +3 -0
- package/dist/catalog/foundation.workspace-root/1.2.0/assets/package.json +13 -0
- package/dist/catalog/foundation.workspace-root/1.2.0/assets/packages/README.md +3 -0
- package/dist/catalog/foundation.workspace-root/1.2.0/assets/pnpm-workspace.yaml +3 -0
- package/dist/catalog/foundation.workspace-root/1.2.0/assets/tsconfig.base.json +12 -0
- package/dist/catalog/foundation.workspace-root/1.2.0/release.json +17 -0
- package/dist/catalog/foundation.workspace-root/1.3.0/assets/apps/README.md +3 -0
- package/dist/catalog/foundation.workspace-root/1.3.0/assets/package.json +13 -0
- package/dist/catalog/foundation.workspace-root/1.3.0/assets/packages/README.md +3 -0
- package/dist/catalog/foundation.workspace-root/1.3.0/assets/pnpm-workspace.yaml +4 -0
- package/dist/catalog/foundation.workspace-root/1.3.0/assets/services/README.md +3 -0
- package/dist/catalog/foundation.workspace-root/1.3.0/assets/tsconfig.base.json +12 -0
- package/dist/catalog/foundation.workspace-root/1.3.0/release.json +18 -0
- package/dist/catalog/foundation.workspace-root/1.4.0/assets/apps/README.md +3 -0
- package/dist/catalog/foundation.workspace-root/1.4.0/assets/package.json +15 -0
- package/dist/catalog/foundation.workspace-root/1.4.0/assets/packages/README.md +3 -0
- package/dist/catalog/foundation.workspace-root/1.4.0/assets/pnpm-workspace.yaml +4 -0
- package/dist/catalog/foundation.workspace-root/1.4.0/assets/services/README.md +3 -0
- package/dist/catalog/foundation.workspace-root/1.4.0/assets/tsconfig.base.json +8 -0
- package/dist/catalog/foundation.workspace-root/1.4.0/release.json +18 -0
- package/dist/catalog/foundation.workspace-root/1.5.0/assets/apps/README.md +3 -0
- package/dist/catalog/foundation.workspace-root/1.5.0/assets/package.json +15 -0
- package/dist/catalog/foundation.workspace-root/1.5.0/assets/packages/README.md +3 -0
- package/dist/catalog/foundation.workspace-root/1.5.0/assets/pnpm-workspace.yaml +4 -0
- package/dist/catalog/foundation.workspace-root/1.5.0/assets/services/README.md +3 -0
- package/dist/catalog/foundation.workspace-root/1.5.0/assets/tsconfig.base.json +8 -0
- package/dist/catalog/foundation.workspace-root/1.5.0/release.json +18 -0
- package/dist/chunk.js +49 -0
- package/dist/cli.js +10 -12026
- package/dist/contracts/dyyto-package-release-catalog.schema.json +36 -0
- package/dist/optional-runtime.js +47 -0
- package/dist/package-releases/aipt--cli/0.1.0/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.1/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.10/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.11/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.12/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.13/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.2/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.3/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.4/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.5/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.6/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.7/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.8/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.9/release.json +29 -0
- package/dist/package-releases/aipt--platform-kernel/0.1.0/release.json +33 -0
- package/dist/package-releases/aipt--platform-kernel/0.1.1/release.json +33 -0
- package/dist/package-releases/aipt--platform-kernel/0.1.2/release.json +33 -0
- package/dist/package-releases/aipt--platform-kernel/0.1.3/release.json +33 -0
- package/dist/package-releases/aipt--platform-kernel/0.1.4/release.json +33 -0
- package/dist/package-releases/aipt--platform-kernel/0.1.5/release.json +33 -0
- package/dist/recipes/ai-education-agent-phase1/1.0.0/recipe.json +18 -0
- package/dist/recipes/ai-education-agent-sqlite/1.0.0/recipe.json +20 -0
- package/dist/recipes/ai-education-agent-sqlite/1.1.0/recipe.json +20 -0
- package/dist/recipes/ai-education-delegated-review/1.0.0/recipe.json +14 -0
- package/dist/recipes/ai-education-end-to-end-production/1.0.0/recipe.json +22 -0
- package/dist/recipes/ai-education-end-to-end-production/1.1.0/recipe.json +22 -0
- package/dist/recipes/ai-education-end-to-end-production/1.2.0/recipe.json +22 -0
- package/dist/recipes/ai-education-end-to-end-production/1.3.0/recipe.json +1 -0
- package/dist/recipes/ai-education-picturebook-courseware/1.0.0/recipe.json +1 -0
- package/dist/recipes/ai-education-web-courseware/1.0.0/recipe.json +1 -0
- package/dist/recipes/capability-family-routing/1.0.0/recipe.json +14 -0
- package/dist/recipes/education-agent-intake/1.0.0/recipe.json +20 -0
- package/dist/recipes/education-knowledge-skill/1.0.0/recipe.json +14 -0
- package/dist/recipes/education-learning-media-authoring/1.0.0/recipe.json +22 -0
- package/dist/recipes/education-picturebook-courseware-authoring/1.0.0/recipe.json +38 -0
- package/dist/recipes/education-web-courseware-authoring/1.0.0/recipe.json +38 -0
- package/dist/recipes/generic-agent-chat/1.0.0/recipe.json +17 -0
- package/dist/recipes/visual-presentation-composition/1.0.0/recipe.json +14 -0
- package/dist/templates/template.expo-react-native-application/1.0.0/template.json +23 -0
- package/dist/templates/template.nextjs-full-stack-application/1.0.0/template.json +23 -0
- package/dist/templates/template.node-api-application/1.0.0/template.json +20 -0
- package/dist/templates/template.react-component-library/1.0.0/template.json +29 -0
- package/dist/templates/template.react-component-library/1.1.0/template.json +122 -0
- package/dist/templates/template.typescript-library/1.0.0/template.json +27 -0
- package/dist/templates/template.typescript-library/1.1.0/template.json +104 -0
- package/dist/templates/template.web-frontend-application/1.0.0/template.json +26 -0
- package/dist/templates/template.workspace-npm-package/1.0.0/template.json +31 -0
- package/dist/templates/template.workspace-react-component-library/1.0.0/template.json +33 -0
- package/dist/templates/template.workspace-react-component-library/1.1.0/template.json +33 -0
- package/dist/templates/template.workspace-react-component-library/1.2.0/template.json +33 -0
- package/dist/templates/template.workspace-root/1.0.0/template.json +23 -0
- package/dist/templates/template.workspace-root/1.1.0/template.json +23 -0
- package/dist/templates/template.workspace-root/1.2.0/template.json +19 -0
- package/package.json +34 -4
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"capabilityId": "foundation.ai-education-agent-sqlite-example",
|
|
4
|
+
"version": "1.1.0",
|
|
5
|
+
"consumerProfile": "any-project",
|
|
6
|
+
"kind": "engineering-feature",
|
|
7
|
+
"dependencies": { "profiles": ["nextjs-full-stack-application"], "capabilities": ["foundation.agent-worker-skill-runtime", "foundation.agent-chat-ui-consumer", "foundation.agent-state-sqlite"] },
|
|
8
|
+
"compatibility": { "node": ">=24.18.0 <25", "pnpm": "11.21.0", "typescript": "6.0.3" },
|
|
9
|
+
"integration": { "title": "AI 教育 Agent 阶段五验收示例", "purpose": "通过正式 Catalog 注入使用平台 Registry、Binding、Run/HITL 与 SQLite 状态的 development consumer。", "packages": [], "codeAssets": [
|
|
10
|
+
{ "sourcePath": "assets/README.agent-stage5.md", "targetPath": "README.agent-stage5.md", "ownership": "owned-file" },
|
|
11
|
+
{ "sourcePath": "assets/app/agent-stage5/contracts.ts", "targetPath": "app/agent-stage5/contracts.ts", "ownership": "owned-file" },
|
|
12
|
+
{ "sourcePath": "assets/app/agent-stage5/page.tsx", "targetPath": "app/agent-stage5/page.tsx", "ownership": "owned-file" },
|
|
13
|
+
{ "sourcePath": "assets/app/agent-stage5/platform-proof.ts", "targetPath": "app/agent-stage5/platform-proof.ts", "ownership": "owned-file" },
|
|
14
|
+
{ "sourcePath": "assets/app/agent-stage5/state.server.ts", "targetPath": "app/agent-stage5/state.server.ts", "ownership": "owned-file" },
|
|
15
|
+
{ "sourcePath": "assets/app/agent-stage5/workbench.test.tsx", "targetPath": "app/agent-stage5/workbench.test.tsx", "ownership": "owned-file" },
|
|
16
|
+
{ "sourcePath": "assets/app/agent-stage5/workbench.tsx", "targetPath": "app/agent-stage5/workbench.tsx", "ownership": "owned-file" }
|
|
17
|
+
] },
|
|
18
|
+
"assets": [
|
|
19
|
+
{ "path": "app/agent-stage5/contracts.ts", "ownership": "owned-file", "digest": "sha256:8666b431e1efbfa95a860d9c7397c714116fa0e35b7000fecf5f1bbafe49a4e8", "mode": 420 },
|
|
20
|
+
{ "path": "app/agent-stage5/page.tsx", "ownership": "owned-file", "digest": "sha256:431eeb78a64139ec627b8c1df7a829ebce0572bb0c0b652fedb2262342c899ec", "mode": 420 },
|
|
21
|
+
{ "path": "app/agent-stage5/platform-proof.ts", "ownership": "owned-file", "digest": "sha256:c81cbeb77e769159f234a03292ea8e3b03f14aa9997f8545b9e88160260e1f72", "mode": 420 },
|
|
22
|
+
{ "path": "app/agent-stage5/state.server.ts", "ownership": "owned-file", "digest": "sha256:3a3e77c7f6c725c20b8f579d71d3e6fc94724e186642168030d49749af7638ad", "mode": 420 },
|
|
23
|
+
{ "path": "app/agent-stage5/workbench.test.tsx", "ownership": "owned-file", "digest": "sha256:9121a6feb5a9de1de1d5d83c041409ef133e31529c2b191cf206215f7a37f157", "mode": 420 },
|
|
24
|
+
{ "path": "app/agent-stage5/workbench.tsx", "ownership": "owned-file", "digest": "sha256:64d36fc64eb2da1d1ca7051bb083dbb2596079f6d0d03f55eccaf26132e56ec9", "mode": 420 },
|
|
25
|
+
{ "path": "README.agent-stage5.md", "ownership": "owned-file", "digest": "sha256:2fbf2b7a54520669ca5e1606962c421792822801eda33eb43a425357804fafae", "mode": 420 }
|
|
26
|
+
],
|
|
27
|
+
"verifiers": [{ "id": "capability.assets" }, { "id": "typescript.typecheck" }, { "id": "vitest.run" }, { "id": "next.application-build" }],
|
|
28
|
+
"exit": { "ownedAssets": ["app/agent-stage5/contracts.ts", "app/agent-stage5/page.tsx", "app/agent-stage5/platform-proof.ts", "app/agent-stage5/state.server.ts", "app/agent-stage5/workbench.test.tsx", "app/agent-stage5/workbench.tsx", "README.agent-stage5.md"] },
|
|
29
|
+
"availability": { "maturity": "candidate", "visibility": "maintainers-only", "sourceState": "local-artifact" },
|
|
30
|
+
"packageSources": [],
|
|
31
|
+
"integrity": "sha256:76f2280440d88e04fd2b3697320123465c344c7aebdfbe1d50223214dae63464"
|
|
32
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { runDigest } from "@aipt/agent-run-kernel";
|
|
2
|
+
|
|
3
|
+
export type IntakeStage = "collecting" | "summary_pending" | "confirmed" | "waiting_hitl" | "approved";
|
|
4
|
+
export type IntakeState = Readonly<{ schemaVersion: 1; repositoryRevision: number; stage: IntakeStage; intakeRevision: number; receipts: readonly string[]; bindingCount: number; artifactCount: number; productionLock?: string; digest: `sha256:${string}` }>;
|
|
5
|
+
const stages: readonly IntakeStage[] = ["collecting", "summary_pending", "confirmed", "waiting_hitl", "approved"];
|
|
6
|
+
export function initialIntakeState(): IntakeState { const raw = { schemaVersion: 1 as const, repositoryRevision: 0, stage: "collecting" as const, intakeRevision: 0, receipts: [] as string[], bindingCount: 0, artifactCount: 0 }; return Object.freeze({ ...raw, digest: runDigest(raw) }); }
|
|
7
|
+
export function parseIntakeState(value: unknown): IntakeState { if (!value || typeof value !== "object" || Array.isArray(value)) throw new Error("INTAKE_STATE_INVALID"); const state = value as IntakeState; const { digest, ...raw } = state; if (state.schemaVersion !== 1 || !Number.isSafeInteger(state.repositoryRevision) || !Number.isSafeInteger(state.intakeRevision) || !stages.includes(state.stage) || !Array.isArray(state.receipts) || state.bindingCount < 0 || state.artifactCount < 0 || runDigest(raw) !== digest) throw new Error("INTAKE_STATE_INVALID"); return Object.freeze(state); }
|
|
8
|
+
export function nextIntakeStage(stage: IntakeStage): IntakeStage { return stages[stages.indexOf(stage) + 1] ?? stage; }
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AgentSkillRegistry } from "@aipt/agent-skill-registry";
|
|
2
|
+
import { runDigest } from "@aipt/agent-run-kernel";
|
|
3
|
+
import type { IntakeStage } from "./contracts";
|
|
4
|
+
|
|
5
|
+
const at = "2026-08-24T00:00:00.000Z";
|
|
6
|
+
const skill = { schemaVersion: 1 as const, skillReleaseId: "fixture.education.intake@1.0.0", skillId: "fixture.education.intake", contentDigest: runDigest("intake-skill"), status: "published" as const, definition: { schemaVersion: 1 as const, skillId: "fixture.education.intake", subject: "math", inputSchemaVersion: "CreationIntake@1", outputSchemaVersion: "TeachingDesignCandidate@1", toolReleaseIds: ["fixture.tool.read@1"] }, compatibility: { taxonomyDigest: runDigest("beijing-normal-math-grade3-term1"), agentReleaseIds: ["fixture.agent@1"] }, approvedAt: at };
|
|
7
|
+
export function proveStage(stage: IntakeStage) { if (stage === "summary_pending") return { receipt: "creation-summary-r1", bindingCount: 0, artifactCount: 0 }; if (stage === "confirmed") { const registry = new AgentSkillRegistry(), plan = registry.planPublish({ planId: "publish-intake-skill", kind: "skill", targetId: skill.skillReleaseId, targetDigest: skill.contentDigest }); registry.publishSkillRelease(skill, registry.approvePublishPlan(plan)); return { receipt: `production-lock-${registry.resolvePublishReceipt(plan.planId).planId}`, bindingCount: 1, artifactCount: 0 }; } if (stage === "waiting_hitl") return { receipt: "hitl-request-teaching-design", bindingCount: 1, artifactCount: 0 }; if (stage === "approved") return { receipt: "artifact-renderer-receipt", bindingCount: 1, artifactCount: 2 }; throw new Error("INTAKE_STAGE_INVALID"); }
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use server";
|
|
2
|
+
import { runDigest } from "@aipt/agent-run-kernel";
|
|
3
|
+
import { createLocalAgentState } from "../../src/agent-state";
|
|
4
|
+
import { initialIntakeState, nextIntakeStage, parseIntakeState, type IntakeState } from "./contracts";
|
|
5
|
+
import { proveStage } from "./platform-proof";
|
|
6
|
+
const scope = { tenantId: "tenant-fixture", projectId: "education-intake", userId: "teacher-fixture" } as const;
|
|
7
|
+
export async function readIntakeState(): Promise<IntakeState> { const repository = createLocalAgentState({ projectRoot: process.cwd(), environment: process.env }); try { const document = await repository.document(scope, "conversation", "education-intake"); return document ? parseIntakeState({ ...document.content as IntakeState, repositoryRevision: document.revision }) : initialIntakeState(); } finally { repository.close(); } }
|
|
8
|
+
export async function advanceIntake(expectedRevision: number): Promise<IntakeState> { const current = await readIntakeState(); if (current.repositoryRevision !== expectedRevision) throw new Error("INTAKE_REVISION_CONFLICT"); const stage = nextIntakeStage(current.stage); if (stage === current.stage) throw new Error("INTAKE_COMPLETE"); const proof = proveStage(stage), raw = { schemaVersion: 1 as const, repositoryRevision: expectedRevision + 1, stage, intakeRevision: current.intakeRevision + 1, receipts: [...current.receipts, proof.receipt], bindingCount: proof.bindingCount, artifactCount: proof.artifactCount, ...(stage === "confirmed" || stage === "waiting_hitl" || stage === "approved" ? { productionLock: current.productionLock ?? proof.receipt } : {}) }, content = parseIntakeState({ ...raw, digest: runDigest(raw) }), repository = createLocalAgentState({ projectRoot: process.cwd(), environment: process.env }); try { await repository.transact({ schemaVersion: 1, commandId: `intake-${content.repositoryRevision}`, idempotencyKey: `intake-${content.repositoryRevision}`, inputDigest: content.digest, ...scope, aggregateId: "education-intake", expectedRevision, authorizationDigest: runDigest("fixture-only"), occurredAt: new Date().toISOString() }, transaction => transaction.putDocument({ kind: "conversation", aggregateId: "education-intake", expectedRevision, contentSchemaVersion: "education-intake@1", contentDigest: content.digest, content, updatedAt: new Date().toISOString() })); return content; } finally { repository.close(); } }
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { render, screen } from "@testing-library/react";
|
|
2
|
+
import "@testing-library/jest-dom/vitest";
|
|
3
|
+
import { describe, expect, it, vi } from "vitest";
|
|
4
|
+
vi.mock("./state.server", () => ({ advanceIntake: vi.fn() }));
|
|
5
|
+
import { initialIntakeState } from "./contracts";
|
|
6
|
+
import { EducationIntakeWorkbench } from "./workbench";
|
|
7
|
+
describe("Creation Intake 验收页面", () => { it("不暴露 Skill 选择且 HITL 前没有 Artifact", () => { render(<EducationIntakeWorkbench initialState={initialIntakeState()} />); expect(screen.getByRole("heading", { name: "AI 教育 Creation Intake 验收" })).toBeInTheDocument(); expect(screen.queryByRole("combobox")).not.toBeInTheDocument(); expect(screen.getByText(/Artifact:0/)).toBeInTheDocument(); }); });
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import type { IntakeState } from "./contracts";
|
|
4
|
+
import { advanceIntake } from "./state.server";
|
|
5
|
+
const labels = { collecting: "形成创作摘要", summary_pending: "确认摘要并自动路由", confirmed: "生成候选教学设计", waiting_hitl: "教师批准候选", approved: "验收完成" } as const;
|
|
6
|
+
export function EducationIntakeWorkbench({ initialState }: { initialState: IntakeState }) { const [state, setState] = useState(initialState), [problem, setProblem] = useState(""); const advance = async () => { try { setState(await advanceIntake(state.repositoryRevision)); setProblem(""); } catch { setProblem("状态已变化,请刷新后恢复。"); } }; return <main lang="zh-CN" style={{ maxWidth: 860, margin: "40px auto", padding: 24, fontFamily: "system-ui" }}><p>Development candidate · Fixture only · 不调用真实模型</p><h1>AI 教育 Creation Intake 验收</h1><p>教师只确认创作摘要;Registry 自动选择内置 Skill,不提供 Skill 选择控件。</p>{problem && <p role="alert">{problem}</p>}<ol><li>Intake:{state.stage} · r{state.intakeRevision}</li><li>Binding:{state.bindingCount}(摘要确认前必须为 0)</li><li>Production Lock:{state.productionLock ?? "尚未生成"}</li><li>Artifact:{state.artifactCount}(HITL 前必须为 0)</li></ol><details><summary>高级执行证据</summary><ul>{state.receipts.map(receipt => <li key={receipt}>{receipt}</li>)}</ul><code>{state.digest}</code></details><button disabled={state.stage === "approved"} onClick={() => void advance()}>{labels[state.stage]}</button></main>; }
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"capabilityId": "foundation.ai-education-agent-sqlite-example",
|
|
4
|
+
"version": "1.2.0",
|
|
5
|
+
"consumerProfile": "any-project",
|
|
6
|
+
"kind": "engineering-feature",
|
|
7
|
+
"dependencies": { "profiles": ["nextjs-full-stack-application"], "capabilities": ["foundation.agent-worker-skill-runtime", "foundation.agent-chat-ui-consumer", "foundation.agent-state-sqlite"] },
|
|
8
|
+
"compatibility": { "node": ">=24.18.0 <25", "pnpm": "11.21.0", "typescript": "6.0.3" },
|
|
9
|
+
"integration": { "title": "AI 教育 Creation Intake 验收示例", "purpose": "验证教师确认创作摘要、Registry 隐式路由、Production Lock、HITL 与 Artifact 门禁。", "packages": [], "codeAssets": [
|
|
10
|
+
{ "sourcePath": "assets/README.education-agent-intake.md", "targetPath": "README.education-agent-intake.md", "ownership": "owned-file" },
|
|
11
|
+
{ "sourcePath": "assets/app/agent-intake/contracts.ts", "targetPath": "app/agent-intake/contracts.ts", "ownership": "owned-file" },
|
|
12
|
+
{ "sourcePath": "assets/app/agent-intake/page.tsx", "targetPath": "app/agent-intake/page.tsx", "ownership": "owned-file" },
|
|
13
|
+
{ "sourcePath": "assets/app/agent-intake/platform-proof.ts", "targetPath": "app/agent-intake/platform-proof.ts", "ownership": "owned-file" },
|
|
14
|
+
{ "sourcePath": "assets/app/agent-intake/state.server.ts", "targetPath": "app/agent-intake/state.server.ts", "ownership": "owned-file" },
|
|
15
|
+
{ "sourcePath": "assets/app/agent-intake/workbench.test.tsx", "targetPath": "app/agent-intake/workbench.test.tsx", "ownership": "owned-file" },
|
|
16
|
+
{ "sourcePath": "assets/app/agent-intake/workbench.tsx", "targetPath": "app/agent-intake/workbench.tsx", "ownership": "owned-file" }
|
|
17
|
+
] },
|
|
18
|
+
"assets": [
|
|
19
|
+
{ "path": "app/agent-intake/contracts.ts", "ownership": "owned-file", "digest": "sha256:1639c30e9f681f23ce016aae860753b2de2e5788d7952d91e297e27c2166f7d6", "mode": 420 },
|
|
20
|
+
{ "path": "app/agent-intake/page.tsx", "ownership": "owned-file", "digest": "sha256:6cdfaaf805b0cf8c032e40c5dc5000d25d91dd35e98d48b3e28f8ab48b4d7943", "mode": 420 },
|
|
21
|
+
{ "path": "app/agent-intake/platform-proof.ts", "ownership": "owned-file", "digest": "sha256:ebada66291369c53f7d95c69b6a8863f38e1766c02b442e627d76b9855966b8d", "mode": 420 },
|
|
22
|
+
{ "path": "app/agent-intake/state.server.ts", "ownership": "owned-file", "digest": "sha256:657082db3082b98055140b55fc808d0ff2a08d9f7672f9cd245008eca6379ccd", "mode": 420 },
|
|
23
|
+
{ "path": "app/agent-intake/workbench.test.tsx", "ownership": "owned-file", "digest": "sha256:32569222687b78d91dcdb1e3621d33be6c4308f0a8a12606b320e89bec995d66", "mode": 420 },
|
|
24
|
+
{ "path": "app/agent-intake/workbench.tsx", "ownership": "owned-file", "digest": "sha256:8f573c9b4c5324e7506cead06d26e555ced915d9b30592a317e0a5ae462d42fc", "mode": 420 },
|
|
25
|
+
{ "path": "README.education-agent-intake.md", "ownership": "owned-file", "digest": "sha256:d98f3f7deeabfe06ccfab7a9e130216894667ea6669c40b37a7d9a7f26447510", "mode": 420 }
|
|
26
|
+
],
|
|
27
|
+
"verifiers": [{ "id": "capability.assets" }, { "id": "typescript.typecheck" }, { "id": "vitest.run" }, { "id": "next.application-build" }],
|
|
28
|
+
"exit": { "ownedAssets": ["app/agent-intake/contracts.ts", "app/agent-intake/page.tsx", "app/agent-intake/platform-proof.ts", "app/agent-intake/state.server.ts", "app/agent-intake/workbench.test.tsx", "app/agent-intake/workbench.tsx", "README.education-agent-intake.md"] },
|
|
29
|
+
"availability": { "maturity": "candidate", "visibility": "maintainers-only", "sourceState": "local-artifact" },
|
|
30
|
+
"packageSources": [],
|
|
31
|
+
"integrity": "sha256:08798e4cbccf6a7004696396aefd7b9586508806d689ce47fd7ef59e187ddc00"
|
|
32
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import {
|
|
2
|
+
baseline,
|
|
3
|
+
checks,
|
|
4
|
+
decision,
|
|
5
|
+
delegated,
|
|
6
|
+
} from "../../src/delegated-review-fixture";
|
|
7
|
+
export default function Page() {
|
|
8
|
+
return (
|
|
9
|
+
<main lang="zh-CN">
|
|
10
|
+
<p>Fixture only · Fake evaluation · development candidate</p>
|
|
11
|
+
<h1>单 Agent 与委派审查收益对照</h1>
|
|
12
|
+
<p>同一虚构课时;规划与审查候选无状态、不可通信、不可写 Tool。</p>
|
|
13
|
+
<table>
|
|
14
|
+
<thead>
|
|
15
|
+
<tr>
|
|
16
|
+
<th>路径</th>
|
|
17
|
+
<th>质量</th>
|
|
18
|
+
<th>事实</th>
|
|
19
|
+
<th>成本</th>
|
|
20
|
+
<th>延迟</th>
|
|
21
|
+
</tr>
|
|
22
|
+
</thead>
|
|
23
|
+
<tbody>
|
|
24
|
+
{[baseline, delegated].map((item) => (
|
|
25
|
+
<tr key={item.level}>
|
|
26
|
+
<td>{item.level}</td>
|
|
27
|
+
<td>{item.quality}</td>
|
|
28
|
+
<td>{item.facts * 100}%</td>
|
|
29
|
+
<td>{item.cost}</td>
|
|
30
|
+
<td>{item.latency}</td>
|
|
31
|
+
</tr>
|
|
32
|
+
))}
|
|
33
|
+
</tbody>
|
|
34
|
+
</table>
|
|
35
|
+
<ul>
|
|
36
|
+
{checks.map((item) => (
|
|
37
|
+
<li key={item.id}>
|
|
38
|
+
{item.passed ? "通过" : "未通过"} · {item.id}
|
|
39
|
+
</li>
|
|
40
|
+
))}
|
|
41
|
+
</ul>
|
|
42
|
+
<strong>
|
|
43
|
+
{decision === "keep-L1" ? "结论:保持单 Agent" : "结论:允许受控委派"}
|
|
44
|
+
</strong>
|
|
45
|
+
</main>
|
|
46
|
+
);
|
|
47
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{describe,expect,it}from"vitest";import{checks,decision}from"./delegated-review-fixture";describe("委派审查收益门禁",()=>{it("成本越界时保持 L1",()=>{expect(decision).toBe("keep-L1");expect(checks.find(item=>item.id==="cost")?.passed).toBe(false)})});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const gate=Object.freeze({minimumQualityGain:5,maximumCostRatio:1.8,maximumLatencyRatio:2,requireSafety:true});export const baseline=Object.freeze({level:"L1",quality:82,facts:.75,cost:1,latency:1,safety:true,humanEdits:3});export const delegated=Object.freeze({level:"L2",quality:89,facts:1,cost:2.25,latency:1.7,safety:true,humanEdits:1});export const checks=Object.freeze([{id:"quality",passed:delegated.quality-baseline.quality>=gate.minimumQualityGain},{id:"facts",passed:delegated.facts>=baseline.facts},{id:"safety",passed:baseline.safety&&delegated.safety},{id:"cost",passed:delegated.cost/baseline.cost<=gate.maximumCostRatio},{id:"latency",passed:delegated.latency/baseline.latency<=gate.maximumLatencyRatio},{id:"human-edits",passed:baseline.humanEdits-delegated.humanEdits>=1}]);export const decision=checks.every(item=>item.passed)?"enable-L2":"keep-L1";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"capabilityId": "foundation.ai-education-delegated-review-example",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"consumerProfile": "any-project",
|
|
6
|
+
"kind": "engineering-feature",
|
|
7
|
+
"dependencies": { "profiles": ["nextjs-full-stack-application"] },
|
|
8
|
+
"compatibility": { "node": ">=24.18.0 <25", "pnpm": "11.21.0", "typescript": "6.0.3" },
|
|
9
|
+
"integration": { "title": "教育内容委派审查收益评测示例", "purpose": "用固定虚构课时验证 L1/L2 收益门禁和否定 Evidence。", "packages": [], "codeAssets": [
|
|
10
|
+
{ "sourcePath": "assets/app/ai-education-delegated-review/page.tsx", "targetPath": "app/ai-education-delegated-review/page.tsx", "ownership": "owned-file" },
|
|
11
|
+
{ "sourcePath": "assets/README.ai-education-delegated-review.md", "targetPath": "README.ai-education-delegated-review.md", "ownership": "owned-file" },
|
|
12
|
+
{ "sourcePath": "assets/src/delegated-review-fixture.test.ts", "targetPath": "src/delegated-review-fixture.test.ts", "ownership": "owned-file" },
|
|
13
|
+
{ "sourcePath": "assets/src/delegated-review-fixture.ts", "targetPath": "src/delegated-review-fixture.ts", "ownership": "owned-file" }
|
|
14
|
+
] },
|
|
15
|
+
"assets": [
|
|
16
|
+
{ "path": "app/ai-education-delegated-review/page.tsx", "ownership": "owned-file", "digest": "sha256:dd60373c199121d85351725c91a993605318b7852acab0c72810f6434d61dba2", "mode": 420 },
|
|
17
|
+
{ "path": "README.ai-education-delegated-review.md", "ownership": "owned-file", "digest": "sha256:aafd267142ee0c68eb0767a0cbbde5da5c2994f94c5fe5632a6c584fcc0b3a3b", "mode": 420 },
|
|
18
|
+
{ "path": "src/delegated-review-fixture.test.ts", "ownership": "owned-file", "digest": "sha256:1c9974e1a6514567c9ca534c7ec69d2440fbbe7efe39a077e17b116f6efccff0", "mode": 420 },
|
|
19
|
+
{ "path": "src/delegated-review-fixture.ts", "ownership": "owned-file", "digest": "sha256:4f0d733fb0390399ce87733daa2c7026046fc771d8da4bb2956b1148f7ece72f", "mode": 420 }
|
|
20
|
+
],
|
|
21
|
+
"verifiers": [{ "id": "capability.assets" }, { "id": "typescript.typecheck" }, { "id": "vitest.run" }, { "id": "next.application-build" }],
|
|
22
|
+
"exit": { "ownedAssets": ["app/ai-education-delegated-review/page.tsx", "README.ai-education-delegated-review.md", "src/delegated-review-fixture.test.ts", "src/delegated-review-fixture.ts"] },
|
|
23
|
+
"availability": { "maturity": "candidate", "visibility": "maintainers-only", "sourceState": "local-artifact" },
|
|
24
|
+
"packageSources": [],
|
|
25
|
+
"integrity": "sha256:c5c473909bf1451870ed1648b0401bd1f054a1160479a9e3db12ac23d0f17ffa"
|
|
26
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# AI 教育端到端生产验收示例
|
|
2
|
+
|
|
3
|
+
这是 development candidate 的虚构、Fake、本地只读验收示例,不处理真实教材、不调用付费模型,也不表示 production available。
|
|
4
|
+
|
|
5
|
+
示例只提供消费侧验收代码。运行时能力必须由 Recipe 显式采用:Agent Runtime、Production Orchestration、Structured Knowledge、Visual Presentation,以及本示例 Capability。
|
|
6
|
+
|
|
7
|
+
验收重点是同一条不可变 lineage:Creation Intake → Knowledge Bundle → Skill Release → Teaching Design working revision → Production Lock → Standard/PictureBook Package。任一上游事实替换后,旧 Job 必须进入 stale/blocked 投影,已发布 Release 保持不可变。
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { fixtureLineage, lineageDigest } from "../../src/education-production-lineage";
|
|
2
|
+
|
|
3
|
+
export default function EducationProductionExamplePage() {
|
|
4
|
+
const standard = fixtureLineage("standard-web-courseware");
|
|
5
|
+
const picturebook = fixtureLineage("picturebook-courseware");
|
|
6
|
+
return <main lang="zh-CN" style={{ maxWidth: 880, margin: "48px auto", fontFamily: "system-ui" }}>
|
|
7
|
+
<p>本地研发示例 · Fixture/Fake · 非生产可用</p>
|
|
8
|
+
<h1>AI 教育端到端生产来源验收</h1>
|
|
9
|
+
<p>Creation Intake、知识 Bundle、教学设计 revision、Skill Release 与 Production Lock 必须共同锁定后,才允许创建课件工作项。</p>
|
|
10
|
+
{[['标准网页课件', standard], ['绘本课件', picturebook]].map(([title, lineage]) =>
|
|
11
|
+
<section key={title as string}><h2>{title as string}</h2><code>{lineageDigest(lineage as typeof standard)}</code></section>)}
|
|
12
|
+
</main>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { fixtureLineage, lineageDigest } from "./education-production-lineage";
|
|
3
|
+
|
|
4
|
+
describe("AI 教育端到端来源锁", () => {
|
|
5
|
+
it.each(["standard-web-courseware", "picturebook-courseware"] as const)("为 %s 绑定全部上游事实", (target) => {
|
|
6
|
+
const lineage = fixtureLineage(target);
|
|
7
|
+
expect(Object.keys(lineage)).toHaveLength(6);
|
|
8
|
+
expect(lineageDigest(lineage)).toMatch(/^sha256:[a-f0-9]{64}$/u);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
it("任一上游事实变化都会产生新来源摘要", () => {
|
|
12
|
+
const current = fixtureLineage("standard-web-courseware");
|
|
13
|
+
expect(lineageDigest({ ...current, conversationId: `${current.conversationId}-superseded` }))
|
|
14
|
+
.not.toBe(lineageDigest(current));
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
|
|
3
|
+
export type ProductionTarget = "standard-web-courseware" | "picturebook-courseware";
|
|
4
|
+
export type EducationLineage = Readonly<{
|
|
5
|
+
conversationId: string;
|
|
6
|
+
intakeDigest: `sha256:${string}`;
|
|
7
|
+
knowledgeBundleDigest: `sha256:${string}`;
|
|
8
|
+
teachingDesignDigest: `sha256:${string}`;
|
|
9
|
+
skillReleaseDigest: `sha256:${string}`;
|
|
10
|
+
productionLockDigest: `sha256:${string}`;
|
|
11
|
+
}>;
|
|
12
|
+
|
|
13
|
+
const digest = (value: string): `sha256:${string}` =>
|
|
14
|
+
`sha256:${createHash("sha256").update(value).digest("hex")}`;
|
|
15
|
+
|
|
16
|
+
export function fixtureLineage(target: ProductionTarget): EducationLineage {
|
|
17
|
+
const fact = (name: string) => digest(`fictional:${target}:${name}`);
|
|
18
|
+
return Object.freeze({
|
|
19
|
+
conversationId: `fixture-conversation-${target}`,
|
|
20
|
+
intakeDigest: fact("intake"),
|
|
21
|
+
knowledgeBundleDigest: fact("knowledge"),
|
|
22
|
+
teachingDesignDigest: fact("teaching-design"),
|
|
23
|
+
skillReleaseDigest: fact("skill-release"),
|
|
24
|
+
productionLockDigest: fact("production-lock"),
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function lineageDigest(lineage: EducationLineage): `sha256:${string}` {
|
|
29
|
+
return digest(JSON.stringify(lineage));
|
|
30
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"capabilityId": "foundation.ai-education-end-to-end-production-example",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"consumerProfile": "any-project",
|
|
6
|
+
"kind": "engineering-feature",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"profiles": ["nextjs-full-stack-application"],
|
|
9
|
+
"capabilities": ["foundation.agent-worker-skill-runtime", "foundation.production-orchestration-contracts", "foundation.structured-knowledge-runtime", "foundation.visual-presentation-composition"]
|
|
10
|
+
},
|
|
11
|
+
"compatibility": { "node": ">=24.18.0 <25", "pnpm": "11.21.0", "typescript": "6.0.3" },
|
|
12
|
+
"integration": {
|
|
13
|
+
"title": "AI 教育端到端生产验收示例",
|
|
14
|
+
"purpose": "验证 Skill、Agent、知识、教学设计与两类课件共享同一不可变来源链。",
|
|
15
|
+
"packages": [],
|
|
16
|
+
"codeAssets": [
|
|
17
|
+
{ "sourcePath": "assets/README.ai-education-end-to-end-production.md", "targetPath": "README.ai-education-end-to-end-production.md", "ownership": "owned-file" },
|
|
18
|
+
{ "sourcePath": "assets/app/ai-education-end-to-end-production/page.tsx", "targetPath": "app/ai-education-end-to-end-production/page.tsx", "ownership": "owned-file" },
|
|
19
|
+
{ "sourcePath": "assets/src/education-production-lineage.test.ts", "targetPath": "src/education-production-lineage.test.ts", "ownership": "owned-file" },
|
|
20
|
+
{ "sourcePath": "assets/src/education-production-lineage.ts", "targetPath": "src/education-production-lineage.ts", "ownership": "owned-file" }
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"assets": [
|
|
24
|
+
{ "path": "app/ai-education-end-to-end-production/page.tsx", "ownership": "owned-file", "digest": "sha256:bba5cbe9bded2fc0705e0aba67a9169be33901298d484ef0ffe676a0f87ee9a0", "mode": 420 },
|
|
25
|
+
{ "path": "README.ai-education-end-to-end-production.md", "ownership": "owned-file", "digest": "sha256:e84b73a04e0c0159d24495bc50af324d693de0714f13b19889d418578787cc8a", "mode": 420 },
|
|
26
|
+
{ "path": "src/education-production-lineage.test.ts", "ownership": "owned-file", "digest": "sha256:6c70f15df1e7ac458847ca198d1e28316e79131a38db8c47d1a28b388336d9d6", "mode": 420 },
|
|
27
|
+
{ "path": "src/education-production-lineage.ts", "ownership": "owned-file", "digest": "sha256:9553c867d33765df5f48bb2428f1b329f742f0b0aea38709beef1a58a9e7819b", "mode": 420 }
|
|
28
|
+
],
|
|
29
|
+
"verifiers": [{ "id": "capability.assets" }, { "id": "typescript.typecheck" }, { "id": "vitest.run" }, { "id": "next.application-build" }],
|
|
30
|
+
"exit": { "ownedAssets": ["app/ai-education-end-to-end-production/page.tsx", "README.ai-education-end-to-end-production.md", "src/education-production-lineage.test.ts", "src/education-production-lineage.ts"] },
|
|
31
|
+
"availability": { "maturity": "candidate", "visibility": "maintainers-only", "sourceState": "local-artifact" },
|
|
32
|
+
"packageSources": [],
|
|
33
|
+
"integrity": "sha256:d259411a658e9874546a44b3ba6a735e294d1557a6c4aca5120670dfe1b1a933"
|
|
34
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{fixtureInspection}from"../../src/education-production-lineage";
|
|
2
|
+
const labels={current:"来源有效",stale:"来源已更新",unavailable:"来源不可用",unchecked:"等待检查"}as const;
|
|
3
|
+
export default function Page(){const current=fixtureInspection(),stale=fixtureInspection(2);return <main lang="zh-CN" style={{maxWidth:880,margin:"48px auto",fontFamily:"system-ui"}}><p>本地研发示例 · Fixture/Fake · 非生产可用</p><h1>AI 教育生产来源检查与恢复</h1><p>Agent 默认使用平台内置能力;教师确认创作范围,不需要选择 Skill。</p>{[["当前工作项",current],["来源变化后的旧工作项",stale]].map(([title,value])=><section key={title as string}><h2>{title as string}</h2><b>{labels[(value as typeof current).freshness]}</b><ul>{(value as typeof current).facts.map(f=><li key={f.factKey}>{f.factKey}:{f.status}</li>)}</ul></section>)}<button>基于最新事实重新规划</button><p>旧产物和批准记录保持不变。</p></main>}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{describe,expect,it}from"vitest";import{fixtureInspection}from"./education-production-lineage";
|
|
2
|
+
describe("AI 教育来源检查与恢复",()=>{it("来源不变时保持 current",()=>expect(fixtureInspection()).toMatchObject({freshness:"current"}));it("Intake 更新时指出具体变化",()=>expect(fixtureInspection(2)).toMatchObject({freshness:"stale",facts:[{factKey:"creation-intake",status:"changed"}]}))});
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { createProductionLineageInspection, runDigest } from "@aipt/production-orchestration-contracts";
|
|
2
|
+
export const fixtureFacts=(revision=1)=>Object.freeze([{factKey:"creation-intake",releaseId:`intake-r${revision}`,digest:runDigest(`intake-r${revision}`)},{factKey:"knowledge-bundle",releaseId:"knowledge-r1",digest:runDigest("knowledge-r1")},{factKey:"built-in-capability",releaseId:"fixture.courseware-authoring@1",digest:runDigest("skill-r1")}]);
|
|
3
|
+
export function fixtureInspection(currentRevision=1){return createProductionLineageInspection({inspectedAt:"2026-08-24T08:00:00Z",lockedLineageDigest:runDigest("lineage-r1"),currentLineageDigest:runDigest(`lineage-r${currentRevision}`),lockedFacts:fixtureFacts(1),currentFacts:fixtureFacts(currentRevision)})}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"capabilityId": "foundation.ai-education-end-to-end-production-example",
|
|
4
|
+
"version": "1.1.0",
|
|
5
|
+
"consumerProfile": "any-project",
|
|
6
|
+
"kind": "engineering-feature",
|
|
7
|
+
"dependencies": { "profiles": ["nextjs-full-stack-application"], "capabilities": ["foundation.agent-worker-skill-runtime", "foundation.production-orchestration-contracts", "foundation.structured-knowledge-runtime", "foundation.visual-presentation-composition"] },
|
|
8
|
+
"compatibility": { "node": ">=24.18.0 <25", "pnpm": "11.21.0", "typescript": "6.0.3" },
|
|
9
|
+
"integration": {
|
|
10
|
+
"title": "AI 教育生产来源检查与恢复验收示例",
|
|
11
|
+
"purpose": "验证内置 Skill、逐事实来源检查、过期提示与确认后重新规划。",
|
|
12
|
+
"packages": [],
|
|
13
|
+
"codeAssets": [
|
|
14
|
+
{ "sourcePath": "assets/README.ai-education-end-to-end-production.md", "targetPath": "README.ai-education-end-to-end-production.md", "ownership": "owned-file" },
|
|
15
|
+
{ "sourcePath": "assets/app/ai-education-end-to-end-production/page.tsx", "targetPath": "app/ai-education-end-to-end-production/page.tsx", "ownership": "owned-file" },
|
|
16
|
+
{ "sourcePath": "assets/src/education-production-lineage.test.ts", "targetPath": "src/education-production-lineage.test.ts", "ownership": "owned-file" },
|
|
17
|
+
{ "sourcePath": "assets/src/education-production-lineage.ts", "targetPath": "src/education-production-lineage.ts", "ownership": "owned-file" }
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"assets": [
|
|
21
|
+
{ "path": "app/ai-education-end-to-end-production/page.tsx", "ownership": "owned-file", "digest": "sha256:46630bfb4a04c80e16b645dc5c77110c4da4ac0204d7cff74cd986a746029168", "mode": 420 },
|
|
22
|
+
{ "path": "README.ai-education-end-to-end-production.md", "ownership": "owned-file", "digest": "sha256:6a7be08746ba73394b69c5488334a396088ccb1e3a1e84ecda01c5ea3442ed73", "mode": 420 },
|
|
23
|
+
{ "path": "src/education-production-lineage.test.ts", "ownership": "owned-file", "digest": "sha256:840c9cb75799742331d52eae9722c90487eb986faec4f180665ac588d04b5e60", "mode": 420 },
|
|
24
|
+
{ "path": "src/education-production-lineage.ts", "ownership": "owned-file", "digest": "sha256:f324853240e1232a82c14f295b25ae72f705b8f6780cb65be388ee0e2bfc34f5", "mode": 420 }
|
|
25
|
+
],
|
|
26
|
+
"verifiers": [{ "id": "capability.assets" }, { "id": "typescript.typecheck" }, { "id": "vitest.run" }, { "id": "next.application-build" }],
|
|
27
|
+
"exit": { "ownedAssets": ["app/ai-education-end-to-end-production/page.tsx", "README.ai-education-end-to-end-production.md", "src/education-production-lineage.test.ts", "src/education-production-lineage.ts"] },
|
|
28
|
+
"availability": { "maturity": "candidate", "visibility": "maintainers-only", "sourceState": "local-artifact" },
|
|
29
|
+
"packageSources": [],
|
|
30
|
+
"integrity": "sha256:877360215ce934180553aa228516826927971e62568e8094a2d5f20cc3e4752a"
|
|
31
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# AI 教育课时事实与教案验收示例
|
|
2
|
+
|
|
3
|
+
该示例验证完全虚构的 Creation Intake、课时证据、教材原始媒体、教学设计、教案与 Source Fact Lock 如何进入同一条生产 lineage。全部使用 Fixture/Fake,只是 development candidate,不处理真实版权材料、不调用付费模型,也不表示 production available。
|
|
4
|
+
|
|
5
|
+
教师只感知一个教育内容 Agent。Skill、Capability Release 和摘要仅用于研发 Inspect;来源变化不会改写旧产物,必须由用户确认后重新规划。
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{fixtureFacts,fixtureInspection}from"../../src/education-production-lineage";
|
|
2
|
+
const labels={current:"来源有效",stale:"来源已更新"}as const;
|
|
3
|
+
export default function Page(){const inspections=[{title:"当前工作项",value:fixtureInspection()},{title:"来源变化后的旧工作项",value:fixtureInspection(2)}];return <main lang="zh-CN" style={{maxWidth:920,margin:"48px auto",fontFamily:"system-ui"}}><p>本地研发示例 · Fixture/Fake · development candidate · 非生产可用</p><h1>课时事实、教案与内容生产来源锁</h1><p>教师只与一个教育内容 Agent 协作。平台自动使用内置能力,不要求选择 Skill。</p><section><h2>锁定的生产依据</h2><ol>{fixtureFacts().map(item=><li key={item.factKey}><b>{item.factKey}</b> · {item.releaseId}</li>)}</ol></section>{inspections.map(({title,value})=><section key={title}><h2>{title}</h2><b>{labels[value.freshness]}</b><ul>{value.facts.map(fact=><li key={fact.factKey}>{fact.factKey}:{fact.status}</li>)}</ul></section>)}<button>确认后基于最新事实重新规划</button><p>旧产物、Receipt 和发布记录保持不变。</p></main>}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{describe,expect,it}from"vitest";import{fixtureFacts,fixtureInspection}from"./education-production-lineage";
|
|
2
|
+
describe("AI 教育课时事实锁",()=>{it("固定证据、原始媒体、教案和来源锁",()=>expect(fixtureFacts().map(item=>item.factKey)).toEqual(["creation-intake","knowledge-bundle","lesson-media-source","lesson-plan","source-fact-lock","built-in-capability"]));it("来源不变保持 current",()=>expect(fixtureInspection()).toMatchObject({freshness:"current"}));it("媒体与证据变化使旧工作项 stale",()=>{const result=fixtureInspection(2);expect(result.freshness).toBe("stale");expect(result.facts.filter(item=>item.status==="changed").map(item=>item.factKey)).toEqual(["knowledge-bundle","lesson-media-source","source-fact-lock"])});});
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{runDigest}from"@aipt/production-orchestration-contracts";
|
|
2
|
+
export type FixtureLineageFact=Readonly<{factKey:string;releaseId:string;digest:ReturnType<typeof runDigest>}>;
|
|
3
|
+
export type FixtureLineageInspection=Readonly<{freshness:"current"|"stale";facts:readonly Readonly<{factKey:string;status:"current"|"changed"}>[]}>;
|
|
4
|
+
export const fixtureFacts=(sourceRevision=1):readonly FixtureLineageFact[]=>Object.freeze([{factKey:"creation-intake",releaseId:"intake-r1",digest:runDigest("intake-r1")},{factKey:"knowledge-bundle",releaseId:`lesson-evidence-r${sourceRevision}`,digest:runDigest(`lesson-evidence-r${sourceRevision}`)},{factKey:"lesson-media-source",releaseId:`lesson-media-r${sourceRevision}`,digest:runDigest(`lesson-media-r${sourceRevision}`)},{factKey:"lesson-plan",releaseId:"lesson-plan-r1",digest:runDigest("lesson-plan-r1")},{factKey:"source-fact-lock",releaseId:`source-lock-r${sourceRevision}`,digest:runDigest(`source-lock-r${sourceRevision}`)},{factKey:"built-in-capability",releaseId:"fixture.courseware-authoring@1",digest:runDigest("capability-r1")}]);
|
|
5
|
+
export function fixtureInspection(currentSourceRevision=1):FixtureLineageInspection{const locked=fixtureFacts(1),current=new Map(fixtureFacts(currentSourceRevision).map(item=>[item.factKey,item]));const facts=locked.map(item=>({factKey:item.factKey,status:current.get(item.factKey)?.digest===item.digest?"current" as const:"changed" as const}));return Object.freeze({freshness:facts.some(item=>item.status==="changed")?"stale":"current",facts:Object.freeze(facts)})}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"capabilityId": "foundation.ai-education-end-to-end-production-example",
|
|
4
|
+
"version": "1.2.0",
|
|
5
|
+
"consumerProfile": "any-project",
|
|
6
|
+
"kind": "engineering-feature",
|
|
7
|
+
"dependencies": { "profiles": ["nextjs-full-stack-application"], "capabilities": ["foundation.agent-worker-skill-runtime", "foundation.production-orchestration-contracts", "foundation.structured-knowledge-runtime", "foundation.visual-presentation-composition"] },
|
|
8
|
+
"compatibility": { "node": ">=24.18.0 <25", "pnpm": "11.21.0", "typescript": "6.0.3" },
|
|
9
|
+
"integration": {
|
|
10
|
+
"title": "AI 教育课时事实、教案与来源锁验收示例",
|
|
11
|
+
"purpose": "验证课时证据、教材原始媒体、教学设计、教案与 Source Fact Lock 进入同一生产 lineage。",
|
|
12
|
+
"packages": [],
|
|
13
|
+
"codeAssets": [
|
|
14
|
+
{ "sourcePath": "assets/README.ai-education-end-to-end-production.md", "targetPath": "README.ai-education-end-to-end-production.md", "ownership": "owned-file" },
|
|
15
|
+
{ "sourcePath": "assets/app/ai-education-end-to-end-production/page.tsx", "targetPath": "app/ai-education-end-to-end-production/page.tsx", "ownership": "owned-file" },
|
|
16
|
+
{ "sourcePath": "assets/src/education-production-lineage.test.ts", "targetPath": "src/education-production-lineage.test.ts", "ownership": "owned-file" },
|
|
17
|
+
{ "sourcePath": "assets/src/education-production-lineage.ts", "targetPath": "src/education-production-lineage.ts", "ownership": "owned-file" }
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"assets": [
|
|
21
|
+
{ "path": "app/ai-education-end-to-end-production/page.tsx", "ownership": "owned-file", "digest": "sha256:7c59052f734807cc82be5bcd9d6cad7a49298008bf269550a65de42efaf5edfd", "mode": 420 },
|
|
22
|
+
{ "path": "README.ai-education-end-to-end-production.md", "ownership": "owned-file", "digest": "sha256:7602762993ea8506a437a853ed5d043dd4bc2183c53b8f93465c144486b0f635", "mode": 420 },
|
|
23
|
+
{ "path": "src/education-production-lineage.test.ts", "ownership": "owned-file", "digest": "sha256:a3dfbff15e6afa89f388a613e22fa334cf086cbaa9c14aff4977528cda203cd9", "mode": 420 },
|
|
24
|
+
{ "path": "src/education-production-lineage.ts", "ownership": "owned-file", "digest": "sha256:4fa04bd4649e45e7ca1eb0652339c877ea438256a6f8a2eaf2faaa4ae1870a5c", "mode": 420 }
|
|
25
|
+
],
|
|
26
|
+
"verifiers": [{ "id": "capability.assets" }, { "id": "typescript.typecheck" }, { "id": "vitest.run" }, { "id": "next.application-build" }],
|
|
27
|
+
"exit": { "ownedAssets": ["app/ai-education-end-to-end-production/page.tsx", "README.ai-education-end-to-end-production.md", "src/education-production-lineage.test.ts", "src/education-production-lineage.ts"] },
|
|
28
|
+
"availability": { "maturity": "candidate", "visibility": "maintainers-only", "sourceState": "local-artifact" },
|
|
29
|
+
"packageSources": [],
|
|
30
|
+
"integrity": "sha256:07f1eb11abf9235e670b6b46905528eaf5beaa0844c4e98a5d1b8fc7622248a4"
|
|
31
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{families,fixtureJourney,targets}from"../../src/education-production-journey";
|
|
2
|
+
export default function Page(){const journeys=[fixtureJourney("北师大版"),fixtureJourney("人教版")];return <main lang="zh-CN" style={{maxWidth:960,margin:"48px auto",fontFamily:"system-ui"}}><p>本地研发示例 · Fixture/Fake · development candidate · 非生产可用</p><h1>一个教育内容 Agent,一条完整创作链</h1><p>教师不选择 Skill,也不感知 Subagent、LangGraph 或 Temporal。平台按教研范围自动路由四个内置能力族。</p><section><h2>四个能力族</h2><ol>{families.map(item=><li key={item}>{item}</li>)}</ol></section><section><h2>可验收产物</h2><p>{targets.join(" · ")}</p></section>{journeys.map(value=><section key={value.publisher}><h2>{value.publisher}</h2><b>{value.executionLevel}</b><ol>{value.stages.map(item=><li key={item.id}>{item.id}:{item.status}</li>)}</ol><details><summary>高级执行详情</summary><code>{value.sourceFactLockId}</code><code>{value.digest}</code></details></section>)}</main>}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{describe,expect,it}from"vitest";import{families,fixtureJourney,targets}from"./education-production-journey";
|
|
2
|
+
describe("单一教育内容 Agent 端到端旅程",()=>{it.each(["北师大版","人教版"]as const)("%s 使用同一 L1 能力族路由",publisher=>{const value=fixtureJourney(publisher);expect(value.executionLevel).toBe("L1-single-agent");expect(value.stages.at(-1)?.status).toBe("ready");expect(families).toHaveLength(4);expect(targets).toHaveLength(5)});it("来源变化使生产阶段 stale 且不伪造交付",()=>expect(fixtureJourney("北师大版",2).stages.slice(-2).map(item=>item.status)).toEqual(["stale","waiting"]));});
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{runDigest}from"@aipt/production-orchestration-contracts";
|
|
2
|
+
export const families=Object.freeze(["lesson-grounding","lesson-planning","learning-media-authoring","courseware-authoring"]as const);
|
|
3
|
+
export const targets=Object.freeze(["learning-game","interactive-animation","explainer-video","standard-web-courseware","picturebook-courseware"]as const);
|
|
4
|
+
export function fixtureJourney(publisher:"北师大版"|"人教版",sourceRevision=1){const stages=Object.freeze([{id:"intake",status:"confirmed"},{id:"grounding",status:"confirmed"},{id:"lesson-plan",status:"confirmed"},{id:"teaching-design",status:"confirmed"},{id:"production",status:sourceRevision===1?"confirmed":"stale"},{id:"delivery",status:sourceRevision===1?"ready":"waiting"}]as const),raw={publisher,executionLevel:"L1-single-agent"as const,families,targets,stages,sourceFactLockId:`fixture.source-lock.${publisher=== "北师大版"?"bnu":"pep"}@${sourceRevision}`};return Object.freeze({...raw,digest:runDigest(JSON.stringify(raw))});}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"schemaVersion":2,"capabilityId":"foundation.ai-education-end-to-end-production-example","version":"1.3.0","consumerProfile":"any-project","kind":"engineering-feature","dependencies":{"profiles":["nextjs-full-stack-application"],"capabilities":["foundation.agent-worker-skill-runtime","foundation.production-orchestration-contracts","foundation.structured-knowledge-runtime","foundation.visual-presentation-composition"]},"compatibility":{"node":">=24.18.0 <25","pnpm":"11.21.0","typescript":"6.0.3"},"integration":{"title":"AI 教育单一产品 Agent 端到端验收示例","purpose":"验证两个出版社 Profile 通过 L1 单一产品 Agent 自动路由四个能力族,覆盖三类素材与两类课件。","packages":[],"codeAssets":[{"sourcePath":"assets/README.ai-education-end-to-end-production.md","targetPath":"README.ai-education-end-to-end-production.md","ownership":"owned-file"},{"sourcePath":"assets/app/ai-education-end-to-end-production/page.tsx","targetPath":"app/ai-education-end-to-end-production/page.tsx","ownership":"owned-file"},{"sourcePath":"assets/src/education-production-journey.test.ts","targetPath":"src/education-production-journey.test.ts","ownership":"owned-file"},{"sourcePath":"assets/src/education-production-journey.ts","targetPath":"src/education-production-journey.ts","ownership":"owned-file"}]},"assets":[{"path":"app/ai-education-end-to-end-production/page.tsx","ownership":"owned-file","digest":"sha256:6a912f86d6f9fb514d3665ff9e028a7dead8b856550602ee89e7a84167733795","mode":420},{"path":"README.ai-education-end-to-end-production.md","ownership":"owned-file","digest":"sha256:1d7a892e86b62d31d96a8b5a8867d02e57618bca5137727a958769cb2bdbaf04","mode":420},{"path":"src/education-production-journey.test.ts","ownership":"owned-file","digest":"sha256:630d9074011f883448a44173952b615213955cb2d4159042ba6ada99e36f8137","mode":420},{"path":"src/education-production-journey.ts","ownership":"owned-file","digest":"sha256:44528b435ab3854eddf07000d016157146ccc12e02fc130717e880d7c4b82e43","mode":420}],"verifiers":[{"id":"capability.assets"},{"id":"typescript.typecheck"},{"id":"vitest.run"},{"id":"next.application-build"}],"exit":{"ownedAssets":["app/ai-education-end-to-end-production/page.tsx","README.ai-education-end-to-end-production.md","src/education-production-journey.test.ts","src/education-production-journey.ts"]},"availability":{"maturity":"candidate","visibility":"maintainers-only","sourceState":"local-artifact"},"packageSources":[],"integrity":"sha256:e8812947b13065bc171e86eca3f6893df8bfbd27bac9967ed122ae4da5f790b3"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createLearningMediaFixture,learningMediaTargets}from"../../src/learning-media-fixture";const labels={"learning-game":"互动游戏","interactive-animation":"交互动画","explainer-video":"讲解视频"}as const;export default function Page(){return <main lang="zh-CN" style={{maxWidth:960,margin:"48px auto",fontFamily:"system-ui"}}><p>Fixture/Fake · development candidate · 非生产可用</p><h1>统一教育素材创作能力族</h1><p>教师只与一个教育内容 Agent 协作;平台自动使用内置能力,不要求选择 Skill。</p>{learningMediaTargets.map(target=>{const value=createLearningMediaFixture(target);return <section key={target}><h2>{labels[target]}</h2><p>Source Fact Lock:{value.sourceFactLock.lockId}</p><ol><li>确认生产需要</li><li>确认媒体对象计划</li><li>生成并比较 Fake 候选</li><li>完成五维验证</li><li>形成 Asset Release 与 Production Asset Lock</li></ol><b>{value.releases.length} 个对象已锁定</b></section>})}</main>}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{describe,expect,it}from"vitest";import{createLearningMediaFixture,learningMediaTargets}from"./learning-media-fixture";describe("统一教育素材创作示例",()=>{it.each(learningMediaTargets)("%s 形成五维验证后的资产锁",target=>{const value=createLearningMediaFixture(target);expect(value.provider).toBe("fake");expect(value.releases).toHaveLength(2);expect(value.releases.every(item=>Object.values(item.report).every(status=>status==="passed"))).toBe(true);expect(value.assetLock.lockDigest).toMatch(/^sha256:/)})});
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{runDigest}from"@aipt/production-orchestration-contracts";
|
|
2
|
+
export const learningMediaTargets=["learning-game","interactive-animation","explainer-video"]as const;
|
|
3
|
+
export function createLearningMediaFixture(targetKind:typeof learningMediaTargets[number]){const sourceFactLock={lockId:"fixture.source-lock@1",digest:runDigest("fictional-source")},objects=targetKind==="learning-game"?["problem-scene","learner-feedback"]:targetKind==="interactive-animation"?["evidence-scene","narration"]:["storyboard","narration"],releases=objects.map((objectId,index)=>({objectId,assetReleaseId:`fixture.${targetKind}.${objectId}@1`,candidateId:`candidate-${index+1}`,report:{pedagogy:"passed",factConsistency:"passed",mediaQuality:"passed",renderability:"passed",safety:"passed"}})),body={targetKind,sourceFactLock,bindings:releases.map(item=>({objectId:item.objectId,assetReleaseId:item.assetReleaseId}))};return Object.freeze({provider:"fake"as const,sourceFactLock,releases:Object.freeze(releases),assetLock:Object.freeze({...body,lockDigest:runDigest(body)})})}
|
package/dist/catalog/foundation.ai-education-learning-media-authoring-example/1.0.0/release.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"capabilityId": "foundation.ai-education-learning-media-authoring-example",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"consumerProfile": "any-project",
|
|
6
|
+
"kind": "engineering-feature",
|
|
7
|
+
"dependencies": { "profiles": ["nextjs-full-stack-application"], "capabilities": ["foundation.agent-worker-skill-runtime", "foundation.production-orchestration-contracts", "foundation.structured-knowledge-runtime", "foundation.visual-presentation-composition"] },
|
|
8
|
+
"compatibility": { "node": ">=24.18.0 <25", "pnpm": "11.21.0", "typescript": "6.0.3" },
|
|
9
|
+
"integration": { "title": "统一教育素材创作验收示例", "purpose": "验证三类教育素材共享 Need、Plan、Candidate、Evaluation、Release 与 Asset Lock。", "packages": [], "codeAssets": [
|
|
10
|
+
{ "sourcePath": "assets/README.education-learning-media-authoring.md", "targetPath": "README.education-learning-media-authoring.md", "ownership": "owned-file" },
|
|
11
|
+
{ "sourcePath": "assets/app/education-learning-media-authoring/page.tsx", "targetPath": "app/education-learning-media-authoring/page.tsx", "ownership": "owned-file" },
|
|
12
|
+
{ "sourcePath": "assets/src/learning-media-fixture.test.ts", "targetPath": "src/learning-media-fixture.test.ts", "ownership": "owned-file" },
|
|
13
|
+
{ "sourcePath": "assets/src/learning-media-fixture.ts", "targetPath": "src/learning-media-fixture.ts", "ownership": "owned-file" }
|
|
14
|
+
] },
|
|
15
|
+
"assets": [
|
|
16
|
+
{ "path": "app/education-learning-media-authoring/page.tsx", "ownership": "owned-file", "digest": "sha256:be753f4a53c498f1645d840b430dbd375aa7ffa1c2ab12fdb4b05ee149ce2c81", "mode": 420 },
|
|
17
|
+
{ "path": "README.education-learning-media-authoring.md", "ownership": "owned-file", "digest": "sha256:b6c9bef36e72d6a814f4b69a4275300eee569bee1ce525856f83243f4faa791b", "mode": 420 },
|
|
18
|
+
{ "path": "src/learning-media-fixture.test.ts", "ownership": "owned-file", "digest": "sha256:2e76b56368ccf29f085bbe0ee0aef9124aca8496122c6aed8c2c0d91d7ed285a", "mode": 420 },
|
|
19
|
+
{ "path": "src/learning-media-fixture.ts", "ownership": "owned-file", "digest": "sha256:b6472eeb846f7a68eb0e013d5927a29304d253a03bb12214e9b78e87196bad54", "mode": 420 }
|
|
20
|
+
],
|
|
21
|
+
"verifiers": [{"id":"capability.assets"},{"id":"typescript.typecheck"},{"id":"vitest.run"},{"id":"next.application-build"}],
|
|
22
|
+
"exit": { "ownedAssets": ["app/education-learning-media-authoring/page.tsx", "README.education-learning-media-authoring.md", "src/learning-media-fixture.test.ts", "src/learning-media-fixture.ts"] },
|
|
23
|
+
"availability": { "maturity": "candidate", "visibility": "maintainers-only", "sourceState": "local-artifact" },
|
|
24
|
+
"packageSources": [],
|
|
25
|
+
"integrity": "sha256:9e74eaedc00067b42dc958d9501dc6f3011e3c9b4dc6630e1ee7dd6fe03aaf75"
|
|
26
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# AI 教育绘本课件验收示例
|
|
2
|
+
|
|
3
|
+
本示例只使用虚构教学事实、fixture 媒体与 fake provider。它验证两个出版社教研 Profile 复用同一绘本创作入口,并以 Story Bible 固定跨页角色、场景、道具,最终交给 Visual Compile/Lock/Renderer/Verifier。
|
|
4
|
+
|
|
5
|
+
运行 `pnpm test`、`pnpm typecheck`、`pnpm build` 后打开 `/ai-education-picturebook-courseware`。确认页面为简体中文,并显示 development candidate;不得据此宣称 production available。
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{fixtures}from"../../src/picturebook-fixture";export default function Page(){return <main lang="zh-CN" style={{maxWidth:1100,margin:"40px auto",padding:24,fontFamily:"system-ui"}}><p>Fixture only · Fake provider · development candidate</p><h1>AI 教育绘本课件验收</h1><p>Story Bible 锁定角色、场景和道具;文字由 DOM Overlay 渲染,不写入图片。</p><section style={{display:"grid",gridTemplateColumns:"repeat(auto-fit,minmax(320px,1fr))",gap:16}}>{fixtures.map(item=><article key={item.profile.profileReleaseId} style={{padding:20,border:"1px solid #ddd",borderRadius:14}}><h2>{item.profile.method}</h2><div dangerouslySetInnerHTML={{__html:item.artifacts[0]!.html}}/><dl><dt>角色资产</dt><dd>{item.storyBible.character.assetReleaseId}</dd><dt>Compile Lock</dt><dd style={{overflowWrap:"anywhere"}}>{item.lock.lockDigest}</dd><dt>连续性 Verifier</dt><dd>通过,无阻断项</dd></dl></article>)}</section></main>}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{describe,expect,it}from"vitest";import{fixtures,storyBible}from"./picturebook-fixture";describe("虚构教学绘本",()=>{it("同一 Skill 通过两个 Profile 生成差异内容并锁定跨页资产",()=>{expect(fixtures).toHaveLength(2);expect(fixtures.every(x=>x.findings.length===0&&x.lock.state==="active"&&x.beats.every(beat=>beat.characterAssetReleaseId===storyBible.character.assetReleaseId&&beat.sceneAssetReleaseId===storyBible.scene.assetReleaseId&&beat.propAssetReleaseId===storyBible.prop.assetReleaseId))).toBe(true);expect(fixtures[0].artifacts[0]!.contentDigest).not.toBe(fixtures[1].artifacts[0]!.contentDigest)})});
|