@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.
Files changed (433) hide show
  1. package/README.md +114 -5
  2. package/dist/application-runner.js +276 -0
  3. package/dist/application.js +254 -0
  4. package/dist/catalog/foundation.agent-chat-ui-consumer/1.0.0/assets/README.agent-chat-ui.md +5 -0
  5. package/dist/catalog/foundation.agent-chat-ui-consumer/1.0.0/release.json +29 -0
  6. package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/package.json +19 -0
  7. package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/src/AgentChatWorkbench.test.tsx +12 -0
  8. package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/src/AgentChatWorkbench.tsx +27 -0
  9. package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/src/index.ts +2 -0
  10. package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/src/style.css +1 -0
  11. package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/src/styles.d.ts +1 -0
  12. package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/src/test/setup.ts +1 -0
  13. package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/tooling/verify-bundle.mjs +4 -0
  14. package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/tsconfig.build.json +1 -0
  15. package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/tsconfig.json +1 -0
  16. package/dist/catalog/foundation.agent-chat-workbench/1.0.0/assets/vite.config.ts +4 -0
  17. package/dist/catalog/foundation.agent-chat-workbench/1.0.0/release.json +33 -0
  18. package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/package.json +19 -0
  19. package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/src/AgentChatWorkbench.test.tsx +12 -0
  20. package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/src/AgentChatWorkbench.tsx +27 -0
  21. package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/src/index.ts +2 -0
  22. package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/src/style.css +1 -0
  23. package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/src/styles.d.ts +1 -0
  24. package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/src/test/setup.ts +1 -0
  25. package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/tooling/verify-bundle.mjs +4 -0
  26. package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/tsconfig.build.json +1 -0
  27. package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/tsconfig.json +1 -0
  28. package/dist/catalog/foundation.agent-chat-workbench/1.1.0/assets/vite.config.ts +4 -0
  29. package/dist/catalog/foundation.agent-chat-workbench/1.1.0/release.json +39 -0
  30. package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/package.json +65 -0
  31. package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/src/AgentChatWorkbench.test.tsx +12 -0
  32. package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/src/AgentChatWorkbench.tsx +27 -0
  33. package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/src/index.ts +2 -0
  34. package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/src/style.css +1 -0
  35. package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/src/styles.d.ts +1 -0
  36. package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/src/test/setup.ts +1 -0
  37. package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/tooling/verify-bundle.mjs +4 -0
  38. package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/tsconfig.build.json +1 -0
  39. package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/tsconfig.json +1 -0
  40. package/dist/catalog/foundation.agent-chat-workbench/1.2.0/assets/vite.config.ts +4 -0
  41. package/dist/catalog/foundation.agent-chat-workbench/1.2.0/release.json +39 -0
  42. package/dist/catalog/foundation.agent-state-sqlite/1.0.0/assets/README.agent-state-sqlite.md +5 -0
  43. package/dist/catalog/foundation.agent-state-sqlite/1.0.0/assets/src/agent-state.test.ts +8 -0
  44. package/dist/catalog/foundation.agent-state-sqlite/1.0.0/assets/src/agent-state.ts +8 -0
  45. package/dist/catalog/foundation.agent-state-sqlite/1.0.0/release.json +34 -0
  46. package/dist/catalog/foundation.agent-state-sqlite/1.1.0/assets/README.agent-state-sqlite.md +5 -0
  47. package/dist/catalog/foundation.agent-state-sqlite/1.1.0/assets/src/agent-state.test.ts +8 -0
  48. package/dist/catalog/foundation.agent-state-sqlite/1.1.0/assets/src/agent-state.ts +8 -0
  49. package/dist/catalog/foundation.agent-state-sqlite/1.1.0/release.json +34 -0
  50. package/dist/catalog/foundation.agent-state-sqlite-registry-consumer/1.0.0/assets/README.agent-state-registry-consumer.md +5 -0
  51. package/dist/catalog/foundation.agent-state-sqlite-registry-consumer/1.0.0/release.json +38 -0
  52. package/dist/catalog/foundation.agent-state-sqlite-registry-consumer/1.1.0/assets/README.agent-state-registry-consumer.md +5 -0
  53. package/dist/catalog/foundation.agent-state-sqlite-registry-consumer/1.1.0/release.json +31 -0
  54. package/dist/catalog/foundation.agent-worker-skill-runtime/1.0.0/assets/README.agent-runtime.md +7 -0
  55. package/dist/catalog/foundation.agent-worker-skill-runtime/1.0.0/assets/src/agent-runtime.test.ts +19 -0
  56. package/dist/catalog/foundation.agent-worker-skill-runtime/1.0.0/assets/src/agent-runtime.ts +15 -0
  57. package/dist/catalog/foundation.agent-worker-skill-runtime/1.0.0/release.json +47 -0
  58. package/dist/catalog/foundation.ai-education-agent-example/1.0.0/assets/README.agent-example.md +5 -0
  59. package/dist/catalog/foundation.ai-education-agent-example/1.0.0/assets/app/agent-phase1/page.tsx +2 -0
  60. package/dist/catalog/foundation.ai-education-agent-example/1.0.0/assets/app/agent-phase1/workbench.test.tsx +5 -0
  61. package/dist/catalog/foundation.ai-education-agent-example/1.0.0/assets/app/agent-phase1/workbench.tsx +19 -0
  62. package/dist/catalog/foundation.ai-education-agent-example/1.0.0/release.json +21 -0
  63. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.0.0/assets/README.agent-sqlite-example.md +3 -0
  64. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.0.0/assets/app/agent-sqlite/contracts.ts +5 -0
  65. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.0.0/assets/app/agent-sqlite/page.tsx +3 -0
  66. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.0.0/assets/app/agent-sqlite/state.server.ts +7 -0
  67. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.0.0/assets/app/agent-sqlite/workbench.test.tsx +7 -0
  68. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.0.0/assets/app/agent-sqlite/workbench.tsx +9 -0
  69. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.0.0/release.json +30 -0
  70. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.1.0/assets/README.agent-stage5.md +3 -0
  71. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.1.0/assets/app/agent-stage5/contracts.ts +6 -0
  72. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.1.0/assets/app/agent-stage5/page.tsx +1 -0
  73. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.1.0/assets/app/agent-stage5/platform-proof.ts +8 -0
  74. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.1.0/assets/app/agent-stage5/state.server.ts +5 -0
  75. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.1.0/assets/app/agent-stage5/workbench.test.tsx +1 -0
  76. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.1.0/assets/app/agent-stage5/workbench.tsx +3 -0
  77. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.1.0/release.json +32 -0
  78. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.2.0/assets/README.education-agent-intake.md +3 -0
  79. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.2.0/assets/app/agent-intake/contracts.ts +8 -0
  80. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.2.0/assets/app/agent-intake/page.tsx +3 -0
  81. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.2.0/assets/app/agent-intake/platform-proof.ts +7 -0
  82. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.2.0/assets/app/agent-intake/state.server.ts +8 -0
  83. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.2.0/assets/app/agent-intake/workbench.test.tsx +7 -0
  84. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.2.0/assets/app/agent-intake/workbench.tsx +6 -0
  85. package/dist/catalog/foundation.ai-education-agent-sqlite-example/1.2.0/release.json +32 -0
  86. package/dist/catalog/foundation.ai-education-delegated-review-example/1.0.0/assets/README.ai-education-delegated-review.md +3 -0
  87. package/dist/catalog/foundation.ai-education-delegated-review-example/1.0.0/assets/app/ai-education-delegated-review/page.tsx +47 -0
  88. package/dist/catalog/foundation.ai-education-delegated-review-example/1.0.0/assets/src/delegated-review-fixture.test.ts +1 -0
  89. package/dist/catalog/foundation.ai-education-delegated-review-example/1.0.0/assets/src/delegated-review-fixture.ts +1 -0
  90. package/dist/catalog/foundation.ai-education-delegated-review-example/1.0.0/release.json +26 -0
  91. 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
  92. 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
  93. package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.0.0/assets/src/education-production-lineage.test.ts +16 -0
  94. package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.0.0/assets/src/education-production-lineage.ts +30 -0
  95. package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.0.0/release.json +34 -0
  96. 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
  97. 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
  98. package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.1.0/assets/src/education-production-lineage.test.ts +2 -0
  99. package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.1.0/assets/src/education-production-lineage.ts +3 -0
  100. package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.1.0/release.json +31 -0
  101. 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
  102. 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
  103. package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.2.0/assets/src/education-production-lineage.test.ts +2 -0
  104. package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.2.0/assets/src/education-production-lineage.ts +5 -0
  105. package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.2.0/release.json +31 -0
  106. 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
  107. 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
  108. package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.3.0/assets/src/education-production-journey.test.ts +2 -0
  109. package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.3.0/assets/src/education-production-journey.ts +4 -0
  110. package/dist/catalog/foundation.ai-education-end-to-end-production-example/1.3.0/release.json +1 -0
  111. package/dist/catalog/foundation.ai-education-learning-media-authoring-example/1.0.0/assets/README.education-learning-media-authoring.md +3 -0
  112. package/dist/catalog/foundation.ai-education-learning-media-authoring-example/1.0.0/assets/app/education-learning-media-authoring/page.tsx +1 -0
  113. package/dist/catalog/foundation.ai-education-learning-media-authoring-example/1.0.0/assets/src/learning-media-fixture.test.ts +1 -0
  114. package/dist/catalog/foundation.ai-education-learning-media-authoring-example/1.0.0/assets/src/learning-media-fixture.ts +3 -0
  115. package/dist/catalog/foundation.ai-education-learning-media-authoring-example/1.0.0/release.json +26 -0
  116. package/dist/catalog/foundation.ai-education-picturebook-courseware-example/1.0.0/assets/README.ai-education-picturebook-courseware.md +5 -0
  117. package/dist/catalog/foundation.ai-education-picturebook-courseware-example/1.0.0/assets/app/ai-education-picturebook-courseware/page.tsx +1 -0
  118. package/dist/catalog/foundation.ai-education-picturebook-courseware-example/1.0.0/assets/src/picturebook-fixture.test.ts +1 -0
  119. package/dist/catalog/foundation.ai-education-picturebook-courseware-example/1.0.0/assets/src/picturebook-fixture.ts +4 -0
  120. package/dist/catalog/foundation.ai-education-picturebook-courseware-example/1.0.0/release.json +1 -0
  121. package/dist/catalog/foundation.ai-education-web-courseware-example/1.0.0/assets/README.ai-education-web-courseware.md +3 -0
  122. package/dist/catalog/foundation.ai-education-web-courseware-example/1.0.0/assets/app/ai-education-web-courseware/page.tsx +1 -0
  123. package/dist/catalog/foundation.ai-education-web-courseware-example/1.0.0/assets/src/courseware-fixture.test.ts +1 -0
  124. package/dist/catalog/foundation.ai-education-web-courseware-example/1.0.0/assets/src/courseware-fixture.ts +3 -0
  125. package/dist/catalog/foundation.ai-education-web-courseware-example/1.0.0/release.json +18 -0
  126. package/dist/catalog/foundation.ai-orchestration/1.0.0/assets/docs/engineering/ai-orchestration.md +3 -0
  127. package/dist/catalog/foundation.ai-orchestration/1.0.0/release.json +99 -0
  128. package/dist/catalog/foundation.api-contract-toolchain/1.0.0/assets/docs/engineering/api-contract.md +33 -0
  129. package/dist/catalog/foundation.api-contract-toolchain/1.0.0/assets/openapi-ts.config.ts +20 -0
  130. package/dist/catalog/foundation.api-contract-toolchain/1.0.0/assets/src/api/query-client.ts +29 -0
  131. package/dist/catalog/foundation.api-contract-toolchain/1.0.0/assets/src/api/runtime.ts +44 -0
  132. package/dist/catalog/foundation.api-contract-toolchain/1.0.0/release.json +122 -0
  133. package/dist/catalog/foundation.application-config-binding/1.0.0/assets/.dyyto/application-config-binding.json +4 -0
  134. package/dist/catalog/foundation.application-config-binding/1.0.0/assets/docs/engineering/application-config-binding.md +5 -0
  135. package/dist/catalog/foundation.application-config-binding/1.0.0/release.json +28 -0
  136. package/dist/catalog/foundation.artifact-delivery/1.0.0/assets/docs/engineering/artifact-delivery.md +3 -0
  137. package/dist/catalog/foundation.artifact-delivery/1.0.0/release.json +75 -0
  138. package/dist/catalog/foundation.artifact-runtime/1.0.0/assets/docs/engineering/artifact-runtime.md +3 -0
  139. package/dist/catalog/foundation.artifact-runtime/1.0.0/release.json +87 -0
  140. package/dist/catalog/foundation.capability-family-routing/1.0.0/assets/README.capability-family-routing.md +7 -0
  141. package/dist/catalog/foundation.capability-family-routing/1.0.0/assets/src/capability-family-routing.test.ts +10 -0
  142. package/dist/catalog/foundation.capability-family-routing/1.0.0/release.json +35 -0
  143. package/dist/catalog/foundation.environment-schema/1.0.0/assets/docs/engineering/environment.md +37 -0
  144. package/dist/catalog/foundation.environment-schema/1.0.0/assets/src/environment.ts +30 -0
  145. package/dist/catalog/foundation.environment-schema/1.0.0/release.json +75 -0
  146. package/dist/catalog/foundation.environment-schema/1.1.0/assets/.env.example +1 -0
  147. package/dist/catalog/foundation.environment-schema/1.1.0/assets/docs/engineering/environment.md +9 -0
  148. package/dist/catalog/foundation.environment-schema/1.1.0/release.json +25 -0
  149. package/dist/catalog/foundation.environment-schema/2.0.0/assets/config/application-config.json +4 -0
  150. package/dist/catalog/foundation.environment-schema/2.0.0/assets/docs/engineering/environment.md +33 -0
  151. package/dist/catalog/foundation.environment-schema/2.0.0/release.json +63 -0
  152. package/dist/catalog/foundation.managed-project-control/1.0.0/assets/docs/engineering/project-control.md +24 -0
  153. package/dist/catalog/foundation.managed-project-control/1.0.0/release.json +34 -0
  154. package/dist/catalog/foundation.managed-project-control/1.1.0/assets/docs/engineering/project-control.md +15 -0
  155. package/dist/catalog/foundation.managed-project-control/1.1.0/release.json +27 -0
  156. package/dist/catalog/foundation.managed-project-control/1.2.0/assets/docs/engineering/project-control.md +15 -0
  157. package/dist/catalog/foundation.managed-project-control/1.2.0/release.json +27 -0
  158. package/dist/catalog/foundation.managed-project-control/1.3.0/assets/docs/engineering/project-control.md +14 -0
  159. package/dist/catalog/foundation.managed-project-control/1.3.0/release.json +27 -0
  160. package/dist/catalog/foundation.media-production-infrastructure/1.0.0/assets/docs/engineering/media-production-infrastructure.md +3 -0
  161. package/dist/catalog/foundation.media-production-infrastructure/1.0.0/release.json +99 -0
  162. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/AGENTS.md +8 -0
  163. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/README.md +12 -0
  164. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/app/api/health/route.test.ts +9 -0
  165. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/app/api/health/route.ts +5 -0
  166. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/app/components/Counter.test.tsx +12 -0
  167. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/app/components/Counter.tsx +13 -0
  168. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/app/globals.css +20 -0
  169. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/app/layout.tsx +12 -0
  170. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/app/page.test.tsx +11 -0
  171. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/app/page.tsx +19 -0
  172. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/e2e/home.spec.ts +15 -0
  173. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/eslint.config.mjs +7 -0
  174. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/next-env.d.ts +6 -0
  175. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/next.config.ts +9 -0
  176. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/package.json +4 -0
  177. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/playwright.config.ts +16 -0
  178. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/pnpm-workspace.yaml +4 -0
  179. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/public/.gitkeep +1 -0
  180. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/src/test/setup.ts +1 -0
  181. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/tooling/package-standalone.mjs +15 -0
  182. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/tooling/verify-standalone.mjs +20 -0
  183. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/tsconfig.json +42 -0
  184. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/assets/vitest.config.mts +12 -0
  185. package/dist/catalog/foundation.nextjs-full-stack-application/1.0.0/release.json +42 -0
  186. package/dist/catalog/foundation.nextjs-full-stack-application/1.1.0/assets/package.json +4 -0
  187. package/dist/catalog/foundation.nextjs-full-stack-application/1.1.0/release.json +21 -0
  188. package/dist/catalog/foundation.package-source-fixture/1.0.0/assets/README.runtime.md +1 -0
  189. package/dist/catalog/foundation.package-source-fixture/1.0.0/release.json +16 -0
  190. package/dist/catalog/foundation.page-authoring/1.0.0/assets/docs/engineering/page-authoring.md +27 -0
  191. package/dist/catalog/foundation.page-authoring/1.0.0/assets/src/page-authoring/csr-entry.tsx +6 -0
  192. package/dist/catalog/foundation.page-authoring/1.0.0/assets/src/page-authoring/load-document.ts +11 -0
  193. package/dist/catalog/foundation.page-authoring/1.0.0/assets/src/page-authoring/pages/about.json +26 -0
  194. package/dist/catalog/foundation.page-authoring/1.0.0/assets/src/page-authoring/pages/home.json +26 -0
  195. package/dist/catalog/foundation.page-authoring/1.0.0/assets/src/page-authoring/project.json +38 -0
  196. package/dist/catalog/foundation.page-authoring/1.0.0/release.json +146 -0
  197. package/dist/catalog/foundation.pro-search-table-page/1.0.0/assets/docs/engineering/pro-search-table.md +20 -0
  198. package/dist/catalog/foundation.pro-search-table-page/1.0.0/assets/search/operations-page.tsx +66 -0
  199. package/dist/catalog/foundation.pro-search-table-page/1.0.0/assets/search/search-main.tsx +15 -0
  200. package/dist/catalog/foundation.pro-search-table-page/1.0.0/assets/search.html +13 -0
  201. package/dist/catalog/foundation.pro-search-table-page/1.0.0/release.json +119 -0
  202. package/dist/catalog/foundation.pro-search-table-page/2.0.0/assets/docs/engineering/pro-search-table.md +20 -0
  203. package/dist/catalog/foundation.pro-search-table-page/2.0.0/assets/search/operations-page.tsx +66 -0
  204. package/dist/catalog/foundation.pro-search-table-page/2.0.0/assets/search/search-main.tsx +15 -0
  205. package/dist/catalog/foundation.pro-search-table-page/2.0.0/assets/search.html +13 -0
  206. package/dist/catalog/foundation.pro-search-table-page/2.0.0/release.json +153 -0
  207. package/dist/catalog/foundation.product-interaction-feedback/1.0.0/assets/docs/engineering/product-interaction-feedback.md +10 -0
  208. package/dist/catalog/foundation.product-interaction-feedback/1.0.0/release.json +68 -0
  209. package/dist/catalog/foundation.production-orchestration-contracts/1.0.0/assets/README.production-orchestration.md +3 -0
  210. package/dist/catalog/foundation.production-orchestration-contracts/1.0.0/assets/src/production-orchestration.test.ts +8 -0
  211. package/dist/catalog/foundation.production-orchestration-contracts/1.0.0/assets/src/production-orchestration.ts +7 -0
  212. package/dist/catalog/foundation.production-orchestration-contracts/1.0.0/release.json +33 -0
  213. package/dist/catalog/foundation.production-orchestration-contracts/1.1.0/assets/README.production-orchestration.md +3 -0
  214. package/dist/catalog/foundation.production-orchestration-contracts/1.1.0/assets/src/production-orchestration.test.ts +11 -0
  215. package/dist/catalog/foundation.production-orchestration-contracts/1.1.0/assets/src/production-orchestration.ts +4 -0
  216. package/dist/catalog/foundation.production-orchestration-contracts/1.1.0/release.json +29 -0
  217. package/dist/catalog/foundation.production-orchestration-registry-consumer/1.1.0/assets/README.production-orchestration-registry.md +5 -0
  218. package/dist/catalog/foundation.production-orchestration-registry-consumer/1.1.0/release.json +33 -0
  219. package/dist/catalog/foundation.production-orchestration-registry-consumer/1.2.0/assets/README.production-orchestration-registry.md +3 -0
  220. package/dist/catalog/foundation.production-orchestration-registry-consumer/1.2.0/release.json +33 -0
  221. package/dist/catalog/foundation.production-workbench/1.0.0/assets/docs/engineering/production-workbench.md +3 -0
  222. package/dist/catalog/foundation.production-workbench/1.0.0/release.json +74 -0
  223. package/dist/catalog/foundation.project-documentation/1.0.0/assets/docs/engineering/README.md +13 -0
  224. package/dist/catalog/foundation.project-documentation/1.0.0/release.json +37 -0
  225. package/dist/catalog/foundation.project-maintenance/1.0.0/assets/docs/engineering/README.md +5 -0
  226. package/dist/catalog/foundation.project-maintenance/1.0.0/release.json +39 -0
  227. package/dist/catalog/foundation.project-maintenance-console/1.0.0/assets/docs/engineering/project-maintenance-console.md +7 -0
  228. package/dist/catalog/foundation.project-maintenance-console/1.0.0/release.json +27 -0
  229. package/dist/catalog/foundation.react-component-library/1.0.0/assets/package.json +1 -0
  230. package/dist/catalog/foundation.react-component-library/1.0.0/assets/pnpm-workspace.yaml +1 -0
  231. package/dist/catalog/foundation.react-component-library/1.0.0/assets/src/Button.test.tsx +12 -0
  232. package/dist/catalog/foundation.react-component-library/1.0.0/assets/src/Button.tsx +8 -0
  233. package/dist/catalog/foundation.react-component-library/1.0.0/assets/src/index.ts +1 -0
  234. package/dist/catalog/foundation.react-component-library/1.0.0/assets/src/style.css +14 -0
  235. package/dist/catalog/foundation.react-component-library/1.0.0/assets/src/styles.d.ts +1 -0
  236. package/dist/catalog/foundation.react-component-library/1.0.0/assets/src/test/setup.ts +1 -0
  237. package/dist/catalog/foundation.react-component-library/1.0.0/assets/tooling/verify-bundle.mjs +7 -0
  238. package/dist/catalog/foundation.react-component-library/1.0.0/assets/tsconfig.build.json +11 -0
  239. package/dist/catalog/foundation.react-component-library/1.0.0/assets/tsconfig.json +14 -0
  240. package/dist/catalog/foundation.react-component-library/1.0.0/assets/vite.config.ts +12 -0
  241. package/dist/catalog/foundation.react-component-library/1.0.0/release.json +30 -0
  242. package/dist/catalog/foundation.react-component-library/1.1.0/assets/package.json +1 -0
  243. package/dist/catalog/foundation.react-component-library/1.1.0/assets/pnpm-lock.yaml +1327 -0
  244. package/dist/catalog/foundation.react-component-library/1.1.0/assets/pnpm-workspace.yaml +5 -0
  245. package/dist/catalog/foundation.react-component-library/1.1.0/assets/src/Button.test.tsx +12 -0
  246. package/dist/catalog/foundation.react-component-library/1.1.0/assets/src/Button.tsx +8 -0
  247. package/dist/catalog/foundation.react-component-library/1.1.0/assets/src/index.ts +1 -0
  248. package/dist/catalog/foundation.react-component-library/1.1.0/assets/src/style.css +14 -0
  249. package/dist/catalog/foundation.react-component-library/1.1.0/assets/src/styles.d.ts +1 -0
  250. package/dist/catalog/foundation.react-component-library/1.1.0/assets/src/test/setup.ts +1 -0
  251. package/dist/catalog/foundation.react-component-library/1.1.0/assets/tooling/verify-bundle.mjs +7 -0
  252. package/dist/catalog/foundation.react-component-library/1.1.0/assets/tsconfig.build.json +11 -0
  253. package/dist/catalog/foundation.react-component-library/1.1.0/assets/tsconfig.json +14 -0
  254. package/dist/catalog/foundation.react-component-library/1.1.0/assets/vite.config.ts +12 -0
  255. package/dist/catalog/foundation.react-component-library/1.1.0/release.json +125 -0
  256. package/dist/catalog/foundation.standalone-npm-package/1.1.0/assets/package.json +4 -0
  257. package/dist/catalog/foundation.standalone-npm-package/1.1.0/assets/pnpm-workspace.yaml +1 -0
  258. package/dist/catalog/foundation.standalone-npm-package/1.1.0/assets/src/index.test.ts +8 -0
  259. package/dist/catalog/foundation.standalone-npm-package/1.1.0/assets/src/index.ts +3 -0
  260. package/dist/catalog/foundation.standalone-npm-package/1.1.0/assets/tsconfig.build.json +12 -0
  261. package/dist/catalog/foundation.standalone-npm-package/1.1.0/assets/tsconfig.json +14 -0
  262. package/dist/catalog/foundation.standalone-npm-package/1.1.0/release.json +29 -0
  263. package/dist/catalog/foundation.standalone-npm-package/1.2.0/assets/package.json +4 -0
  264. package/dist/catalog/foundation.standalone-npm-package/1.2.0/assets/pnpm-lock.yaml +727 -0
  265. package/dist/catalog/foundation.standalone-npm-package/1.2.0/assets/pnpm-workspace.yaml +5 -0
  266. package/dist/catalog/foundation.standalone-npm-package/1.2.0/assets/src/index.test.ts +8 -0
  267. package/dist/catalog/foundation.standalone-npm-package/1.2.0/assets/src/index.ts +3 -0
  268. package/dist/catalog/foundation.standalone-npm-package/1.2.0/assets/tsconfig.build.json +12 -0
  269. package/dist/catalog/foundation.standalone-npm-package/1.2.0/assets/tsconfig.json +14 -0
  270. package/dist/catalog/foundation.standalone-npm-package/1.2.0/release.json +82 -0
  271. package/dist/catalog/foundation.structured-knowledge-runtime/1.0.0/assets/README.structured-knowledge.md +3 -0
  272. package/dist/catalog/foundation.structured-knowledge-runtime/1.0.0/assets/src/structured-knowledge.test.ts +8 -0
  273. package/dist/catalog/foundation.structured-knowledge-runtime/1.0.0/assets/src/structured-knowledge.ts +8 -0
  274. package/dist/catalog/foundation.structured-knowledge-runtime/1.0.0/release.json +37 -0
  275. package/dist/catalog/foundation.visual-presentation-composition/1.0.0/assets/README.visual-presentation.md +3 -0
  276. package/dist/catalog/foundation.visual-presentation-composition/1.0.0/assets/app/visual-presentation/page.tsx +48 -0
  277. package/dist/catalog/foundation.visual-presentation-composition/1.0.0/assets/src/visual-presentation.test.ts +1 -0
  278. package/dist/catalog/foundation.visual-presentation-composition/1.0.0/assets/src/visual-presentation.ts +2 -0
  279. package/dist/catalog/foundation.visual-presentation-composition/1.0.0/release.json +26 -0
  280. package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/__dyyto_dotfiles__/gitignore +13 -0
  281. package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/app/_layout.tsx +5 -0
  282. package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/app/index.tsx +25 -0
  283. package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/app.json +14 -0
  284. package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/expo-env.d.ts +3 -0
  285. package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/package.json +4 -0
  286. package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/src/app-config.test.ts +10 -0
  287. package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/tooling/verify-expo-export.mjs +5 -0
  288. package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/tsconfig.json +10 -0
  289. package/dist/catalog/foundation.workspace-expo-application/1.0.0/assets/vitest.config.mts +5 -0
  290. package/dist/catalog/foundation.workspace-expo-application/1.0.0/release.json +42 -0
  291. package/dist/catalog/foundation.workspace-node-application/1.1.0/assets/package.json +4 -0
  292. package/dist/catalog/foundation.workspace-node-application/1.1.0/assets/src/app.test.ts +21 -0
  293. package/dist/catalog/foundation.workspace-node-application/1.1.0/assets/src/app.ts +14 -0
  294. package/dist/catalog/foundation.workspace-node-application/1.1.0/assets/src/index.test.ts +14 -0
  295. package/dist/catalog/foundation.workspace-node-application/1.1.0/assets/src/index.ts +53 -0
  296. package/dist/catalog/foundation.workspace-node-application/1.1.0/assets/tsconfig.build.json +12 -0
  297. package/dist/catalog/foundation.workspace-node-application/1.1.0/assets/tsconfig.json +7 -0
  298. package/dist/catalog/foundation.workspace-node-application/1.1.0/release.json +19 -0
  299. package/dist/catalog/foundation.workspace-npm-package/1.1.0/assets/package.json +4 -0
  300. package/dist/catalog/foundation.workspace-npm-package/1.1.0/assets/src/index.test.ts +8 -0
  301. package/dist/catalog/foundation.workspace-npm-package/1.1.0/assets/src/index.ts +3 -0
  302. package/dist/catalog/foundation.workspace-npm-package/1.1.0/assets/tsconfig.build.json +12 -0
  303. package/dist/catalog/foundation.workspace-npm-package/1.1.0/assets/tsconfig.json +7 -0
  304. package/dist/catalog/foundation.workspace-npm-package/1.1.0/release.json +17 -0
  305. package/dist/catalog/foundation.workspace-npm-package/1.2.0/assets/package.json +4 -0
  306. package/dist/catalog/foundation.workspace-npm-package/1.2.0/assets/src/index.test.ts +8 -0
  307. package/dist/catalog/foundation.workspace-npm-package/1.2.0/assets/src/index.ts +3 -0
  308. package/dist/catalog/foundation.workspace-npm-package/1.2.0/assets/tsconfig.build.json +12 -0
  309. package/dist/catalog/foundation.workspace-npm-package/1.2.0/assets/tsconfig.json +7 -0
  310. package/dist/catalog/foundation.workspace-npm-package/1.2.0/release.json +17 -0
  311. package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/package.json +1 -0
  312. package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/src/Button.test.tsx +12 -0
  313. package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/src/Button.tsx +8 -0
  314. package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/src/index.ts +1 -0
  315. package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/src/style.css +14 -0
  316. package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/src/styles.d.ts +1 -0
  317. package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/src/test/setup.ts +1 -0
  318. package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/tooling/verify-bundle.mjs +7 -0
  319. package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/tsconfig.build.json +11 -0
  320. package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/tsconfig.json +14 -0
  321. package/dist/catalog/foundation.workspace-react-component-library/1.0.0/assets/vite.config.ts +12 -0
  322. package/dist/catalog/foundation.workspace-react-component-library/1.0.0/release.json +24 -0
  323. package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/package.json +1 -0
  324. package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/src/Button.test.tsx +12 -0
  325. package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/src/Button.tsx +8 -0
  326. package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/src/index.ts +1 -0
  327. package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/src/style.css +14 -0
  328. package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/src/styles.d.ts +1 -0
  329. package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/src/test/setup.ts +1 -0
  330. package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/tooling/verify-bundle.mjs +7 -0
  331. package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/tsconfig.build.json +11 -0
  332. package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/tsconfig.json +14 -0
  333. package/dist/catalog/foundation.workspace-react-component-library/1.1.0/assets/vite.config.ts +12 -0
  334. package/dist/catalog/foundation.workspace-react-component-library/1.1.0/release.json +38 -0
  335. package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/package.json +1 -0
  336. package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/src/Button.test.tsx +12 -0
  337. package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/src/Button.tsx +8 -0
  338. package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/src/index.ts +1 -0
  339. package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/src/style.css +14 -0
  340. package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/src/styles.d.ts +1 -0
  341. package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/src/test/setup.ts +1 -0
  342. package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/tooling/package-externals.d.mts +8 -0
  343. package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/tooling/package-externals.mjs +16 -0
  344. package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/tooling/verify-bundle.mjs +30 -0
  345. package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/tsconfig.build.json +11 -0
  346. package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/tsconfig.json +14 -0
  347. package/dist/catalog/foundation.workspace-react-component-library/1.2.0/assets/vite.config.ts +15 -0
  348. package/dist/catalog/foundation.workspace-react-component-library/1.2.0/release.json +40 -0
  349. package/dist/catalog/foundation.workspace-root/1.2.0/assets/apps/README.md +3 -0
  350. package/dist/catalog/foundation.workspace-root/1.2.0/assets/package.json +13 -0
  351. package/dist/catalog/foundation.workspace-root/1.2.0/assets/packages/README.md +3 -0
  352. package/dist/catalog/foundation.workspace-root/1.2.0/assets/pnpm-workspace.yaml +3 -0
  353. package/dist/catalog/foundation.workspace-root/1.2.0/assets/tsconfig.base.json +12 -0
  354. package/dist/catalog/foundation.workspace-root/1.2.0/release.json +17 -0
  355. package/dist/catalog/foundation.workspace-root/1.3.0/assets/apps/README.md +3 -0
  356. package/dist/catalog/foundation.workspace-root/1.3.0/assets/package.json +13 -0
  357. package/dist/catalog/foundation.workspace-root/1.3.0/assets/packages/README.md +3 -0
  358. package/dist/catalog/foundation.workspace-root/1.3.0/assets/pnpm-workspace.yaml +4 -0
  359. package/dist/catalog/foundation.workspace-root/1.3.0/assets/services/README.md +3 -0
  360. package/dist/catalog/foundation.workspace-root/1.3.0/assets/tsconfig.base.json +12 -0
  361. package/dist/catalog/foundation.workspace-root/1.3.0/release.json +18 -0
  362. package/dist/catalog/foundation.workspace-root/1.4.0/assets/apps/README.md +3 -0
  363. package/dist/catalog/foundation.workspace-root/1.4.0/assets/package.json +15 -0
  364. package/dist/catalog/foundation.workspace-root/1.4.0/assets/packages/README.md +3 -0
  365. package/dist/catalog/foundation.workspace-root/1.4.0/assets/pnpm-workspace.yaml +4 -0
  366. package/dist/catalog/foundation.workspace-root/1.4.0/assets/services/README.md +3 -0
  367. package/dist/catalog/foundation.workspace-root/1.4.0/assets/tsconfig.base.json +8 -0
  368. package/dist/catalog/foundation.workspace-root/1.4.0/release.json +18 -0
  369. package/dist/catalog/foundation.workspace-root/1.5.0/assets/apps/README.md +3 -0
  370. package/dist/catalog/foundation.workspace-root/1.5.0/assets/package.json +15 -0
  371. package/dist/catalog/foundation.workspace-root/1.5.0/assets/packages/README.md +3 -0
  372. package/dist/catalog/foundation.workspace-root/1.5.0/assets/pnpm-workspace.yaml +4 -0
  373. package/dist/catalog/foundation.workspace-root/1.5.0/assets/services/README.md +3 -0
  374. package/dist/catalog/foundation.workspace-root/1.5.0/assets/tsconfig.base.json +8 -0
  375. package/dist/catalog/foundation.workspace-root/1.5.0/release.json +18 -0
  376. package/dist/chunk.js +49 -0
  377. package/dist/cli.js +10 -12026
  378. package/dist/contracts/dyyto-package-release-catalog.schema.json +36 -0
  379. package/dist/optional-runtime.js +47 -0
  380. package/dist/package-releases/aipt--cli/0.1.0/release.json +29 -0
  381. package/dist/package-releases/aipt--cli/0.1.1/release.json +29 -0
  382. package/dist/package-releases/aipt--cli/0.1.10/release.json +29 -0
  383. package/dist/package-releases/aipt--cli/0.1.11/release.json +29 -0
  384. package/dist/package-releases/aipt--cli/0.1.12/release.json +29 -0
  385. package/dist/package-releases/aipt--cli/0.1.13/release.json +29 -0
  386. package/dist/package-releases/aipt--cli/0.1.2/release.json +29 -0
  387. package/dist/package-releases/aipt--cli/0.1.3/release.json +29 -0
  388. package/dist/package-releases/aipt--cli/0.1.4/release.json +29 -0
  389. package/dist/package-releases/aipt--cli/0.1.5/release.json +29 -0
  390. package/dist/package-releases/aipt--cli/0.1.6/release.json +29 -0
  391. package/dist/package-releases/aipt--cli/0.1.7/release.json +29 -0
  392. package/dist/package-releases/aipt--cli/0.1.8/release.json +29 -0
  393. package/dist/package-releases/aipt--cli/0.1.9/release.json +29 -0
  394. package/dist/package-releases/aipt--platform-kernel/0.1.0/release.json +33 -0
  395. package/dist/package-releases/aipt--platform-kernel/0.1.1/release.json +33 -0
  396. package/dist/package-releases/aipt--platform-kernel/0.1.2/release.json +33 -0
  397. package/dist/package-releases/aipt--platform-kernel/0.1.3/release.json +33 -0
  398. package/dist/package-releases/aipt--platform-kernel/0.1.4/release.json +33 -0
  399. package/dist/package-releases/aipt--platform-kernel/0.1.5/release.json +33 -0
  400. package/dist/recipes/ai-education-agent-phase1/1.0.0/recipe.json +18 -0
  401. package/dist/recipes/ai-education-agent-sqlite/1.0.0/recipe.json +20 -0
  402. package/dist/recipes/ai-education-agent-sqlite/1.1.0/recipe.json +20 -0
  403. package/dist/recipes/ai-education-delegated-review/1.0.0/recipe.json +14 -0
  404. package/dist/recipes/ai-education-end-to-end-production/1.0.0/recipe.json +22 -0
  405. package/dist/recipes/ai-education-end-to-end-production/1.1.0/recipe.json +22 -0
  406. package/dist/recipes/ai-education-end-to-end-production/1.2.0/recipe.json +22 -0
  407. package/dist/recipes/ai-education-end-to-end-production/1.3.0/recipe.json +1 -0
  408. package/dist/recipes/ai-education-picturebook-courseware/1.0.0/recipe.json +1 -0
  409. package/dist/recipes/ai-education-web-courseware/1.0.0/recipe.json +1 -0
  410. package/dist/recipes/capability-family-routing/1.0.0/recipe.json +14 -0
  411. package/dist/recipes/education-agent-intake/1.0.0/recipe.json +20 -0
  412. package/dist/recipes/education-knowledge-skill/1.0.0/recipe.json +14 -0
  413. package/dist/recipes/education-learning-media-authoring/1.0.0/recipe.json +22 -0
  414. package/dist/recipes/education-picturebook-courseware-authoring/1.0.0/recipe.json +38 -0
  415. package/dist/recipes/education-web-courseware-authoring/1.0.0/recipe.json +38 -0
  416. package/dist/recipes/generic-agent-chat/1.0.0/recipe.json +17 -0
  417. package/dist/recipes/visual-presentation-composition/1.0.0/recipe.json +14 -0
  418. package/dist/templates/template.expo-react-native-application/1.0.0/template.json +23 -0
  419. package/dist/templates/template.nextjs-full-stack-application/1.0.0/template.json +23 -0
  420. package/dist/templates/template.node-api-application/1.0.0/template.json +20 -0
  421. package/dist/templates/template.react-component-library/1.0.0/template.json +29 -0
  422. package/dist/templates/template.react-component-library/1.1.0/template.json +122 -0
  423. package/dist/templates/template.typescript-library/1.0.0/template.json +27 -0
  424. package/dist/templates/template.typescript-library/1.1.0/template.json +104 -0
  425. package/dist/templates/template.web-frontend-application/1.0.0/template.json +26 -0
  426. package/dist/templates/template.workspace-npm-package/1.0.0/template.json +31 -0
  427. package/dist/templates/template.workspace-react-component-library/1.0.0/template.json +33 -0
  428. package/dist/templates/template.workspace-react-component-library/1.1.0/template.json +33 -0
  429. package/dist/templates/template.workspace-react-component-library/1.2.0/template.json +33 -0
  430. package/dist/templates/template.workspace-root/1.0.0/template.json +23 -0
  431. package/dist/templates/template.workspace-root/1.1.0/template.json +23 -0
  432. package/dist/templates/template.workspace-root/1.2.0/template.json +19 -0
  433. package/package.json +34 -4
@@ -0,0 +1,34 @@
1
+ {
2
+ "schemaVersion": 2,
3
+ "capabilityId": "foundation.agent-state-sqlite",
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"] },
8
+ "compatibility": { "node": ">=24.18.0 <25", "pnpm": "11.21.0", "typescript": "6.0.3" },
9
+ "integration": {
10
+ "title": "Agent SQLite 本地事务仓储",
11
+ "purpose": "通过公共事务 Port 为本地 Agent 开发提供 SQLite 状态仓储。",
12
+ "packages": [
13
+ { "packageName": "@aipt/agent-state-repository", "version": "0.1.0", "usage": "runtime", "imports": [{ "importFrom": "@aipt/agent-state-repository/sqlite", "symbol": "SqliteAgentStateRepository", "referencePath": "src/agent-state.ts" }] },
14
+ { "packageName": "@aipt/agent-run-kernel", "version": "0.2.0", "usage": "runtime", "imports": [] },
15
+ { "packageName": "@aipt/agent-runtime-contracts", "version": "0.3.0", "usage": "runtime", "imports": [] },
16
+ { "packageName": "@aipt/environment", "version": "0.1.0", "usage": "runtime", "imports": [] }
17
+ ],
18
+ "codeAssets": [
19
+ { "sourcePath": "assets/src/agent-state.ts", "targetPath": "src/agent-state.ts", "ownership": "owned-file" },
20
+ { "sourcePath": "assets/src/agent-state.test.ts", "targetPath": "src/agent-state.test.ts", "ownership": "owned-file" },
21
+ { "sourcePath": "assets/README.agent-state-sqlite.md", "targetPath": "README.agent-state-sqlite.md", "ownership": "owned-file" }
22
+ ]
23
+ },
24
+ "assets": [
25
+ { "path": "README.agent-state-sqlite.md", "ownership": "owned-file", "digest": "sha256:920509b3e5d8d193837a38f57e5c707f4c10de6ba6117db265bc5d9e81ae965f", "mode": 420 },
26
+ { "path": "src/agent-state.test.ts", "ownership": "owned-file", "digest": "sha256:df0b6619cce268f35b29f786019e90cb2083d2c7dda5b889c990f4f0a73899a1", "mode": 420 },
27
+ { "path": "src/agent-state.ts", "ownership": "owned-file", "digest": "sha256:00128c3ede5c6048a1b7261837de1ad5e4740d5f844cc3888f589acb48d91301", "mode": 420 }
28
+ ],
29
+ "verifiers": [{ "id": "capability.assets" }, { "id": "typescript.typecheck" }, { "id": "vitest.run" }],
30
+ "exit": { "ownedAssets": ["README.agent-state-sqlite.md", "src/agent-state.test.ts", "src/agent-state.ts"] },
31
+ "availability": { "maturity": "candidate", "visibility": "maintainers-only", "sourceState": "local-artifact" },
32
+ "packageSources": [],
33
+ "integrity": "sha256:7eeb8aadcc35574d74847f64dc7acb825044c9a98b4d1a87316104cfebbf6b29"
34
+ }
@@ -0,0 +1,5 @@
1
+ # Agent SQLite 本地事务仓储
2
+
3
+ 该 Capability 是 development candidate,只用于本地开发、PoC、fixture 与正式脚手架。它通过 `@aipt/agent-run-kernel` 的公共 Port 创建 SQLite Adapter,不改变 Agent Chat 协议,也不代表 PostgreSQL 或 production available。
4
+
5
+ 环境合同只包含 `DYYTO_AGENT_STATE_ADAPTER=sqlite` 与 `DYYTO_AGENT_STATE_SQLITE_PATH=.data/agent-state.sqlite`。业务代码不得直接导入 `node:sqlite`。
@@ -0,0 +1,8 @@
1
+ import { mkdtemp, rm } from "node:fs/promises";
2
+ import { tmpdir } from "node:os";
3
+ import path from "node:path";
4
+ import { describe, expect, it } from "vitest";
5
+ import { runDigest } from "@aipt/agent-run-kernel";
6
+ import { createLocalAgentState } from "./agent-state";
7
+
8
+ describe("Agent SQLite 本地状态", () => { it("使用正式环境合同并在重开后保留 revision", async () => { const root = await mkdtemp(path.join(tmpdir(), "agent-state-example-")); const first = createLocalAgentState({ projectRoot: root, environment: {} }); const scope = { tenantId: "tenant-example", projectId: "project-example", userId: "teacher-example" }; await first.transact({ schemaVersion: 1, commandId: "command-example", idempotencyKey: "key-example", inputDigest: runDigest("input"), ...scope, aggregateId: "conversation-example", expectedRevision: 0, authorizationDigest: runDigest("authorization"), occurredAt: "2026-08-23T00:00:00Z" }, (transaction) => transaction.putDocument({ kind: "conversation", aggregateId: "conversation-example", expectedRevision: 0, contentSchemaVersion: "example.conversation@1", contentDigest: runDigest({ status: "pending" }), content: { status: "pending" }, updatedAt: "2026-08-23T00:00:00Z" })); first.close(); const reopened = createLocalAgentState({ projectRoot: root, environment: {} }); expect(await reopened.revision(scope, "conversation", "conversation-example")).toBe(1); reopened.close(); await rm(root, { recursive: true, force: true }); }); });
@@ -0,0 +1,8 @@
1
+ import path from "node:path";
2
+ import { parseAgentStateEnvironment } from "@aipt/agent-state-repository";
3
+ import { SqliteAgentStateRepository } from "@aipt/agent-state-repository/sqlite";
4
+
5
+ export function createLocalAgentState(input: Readonly<{ projectRoot: string; environment: Readonly<Record<string, string | undefined>> }>) {
6
+ const environment = parseAgentStateEnvironment({ DYYTO_AGENT_STATE_ADAPTER: input.environment.DYYTO_AGENT_STATE_ADAPTER ?? "sqlite", DYYTO_AGENT_STATE_SQLITE_PATH: input.environment.DYYTO_AGENT_STATE_SQLITE_PATH ?? ".data/agent-state.sqlite" });
7
+ return new SqliteAgentStateRepository({ filename: path.resolve(input.projectRoot, environment.DYYTO_AGENT_STATE_SQLITE_PATH) });
8
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "schemaVersion": 2,
3
+ "capabilityId": "foundation.agent-state-sqlite",
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"] },
8
+ "compatibility": { "node": ">=24.18.0 <25", "pnpm": "11.21.0", "typescript": "6.0.3" },
9
+ "integration": {
10
+ "title": "Agent SQLite 本地事务仓储",
11
+ "purpose": "通过公共事务 Port 为本地 Agent 开发提供 Node 24 内置 SQLite 状态仓储。",
12
+ "packages": [
13
+ { "packageName": "@aipt/agent-state-repository", "version": "0.2.0", "usage": "runtime", "imports": [{ "importFrom": "@aipt/agent-state-repository/sqlite", "symbol": "SqliteAgentStateRepository", "referencePath": "src/agent-state.ts" }] },
14
+ { "packageName": "@aipt/agent-run-kernel", "version": "0.2.0", "usage": "runtime", "imports": [] },
15
+ { "packageName": "@aipt/agent-runtime-contracts", "version": "0.3.0", "usage": "runtime", "imports": [] },
16
+ { "packageName": "@aipt/environment", "version": "0.1.0", "usage": "runtime", "imports": [] }
17
+ ],
18
+ "codeAssets": [
19
+ { "sourcePath": "assets/src/agent-state.ts", "targetPath": "src/agent-state.ts", "ownership": "owned-file" },
20
+ { "sourcePath": "assets/src/agent-state.test.ts", "targetPath": "src/agent-state.test.ts", "ownership": "owned-file" },
21
+ { "sourcePath": "assets/README.agent-state-sqlite.md", "targetPath": "README.agent-state-sqlite.md", "ownership": "owned-file" }
22
+ ]
23
+ },
24
+ "assets": [
25
+ { "path": "README.agent-state-sqlite.md", "ownership": "owned-file", "digest": "sha256:9ac3a6365740cab3f909d21b2fdfe64c31e20c4b4fe27a8f8083bffd32c7c5df", "mode": 420 },
26
+ { "path": "src/agent-state.test.ts", "ownership": "owned-file", "digest": "sha256:df0b6619cce268f35b29f786019e90cb2083d2c7dda5b889c990f4f0a73899a1", "mode": 420 },
27
+ { "path": "src/agent-state.ts", "ownership": "owned-file", "digest": "sha256:00128c3ede5c6048a1b7261837de1ad5e4740d5f844cc3888f589acb48d91301", "mode": 420 }
28
+ ],
29
+ "verifiers": [{ "id": "capability.assets" }, { "id": "typescript.typecheck" }, { "id": "vitest.run" }],
30
+ "exit": { "ownedAssets": ["README.agent-state-sqlite.md", "src/agent-state.test.ts", "src/agent-state.ts"] },
31
+ "availability": { "maturity": "candidate", "visibility": "maintainers-only", "sourceState": "local-artifact" },
32
+ "packageSources": [],
33
+ "integrity": "sha256:622750d2747e8c88723f790deadb0e641566fc7f5756fe31bbc2e1672e4c0aba"
34
+ }
@@ -0,0 +1,5 @@
1
+ # Agent SQLite Registry 消费来源
2
+
3
+ 本能力只为工作区外项目提供受控 development Registry 包来源。Dyyto 单体工作区内的 `@aipt/*` 依赖继续使用 `workspace:*`,不得采用本能力。
4
+
5
+ 该 Release 是 development candidate,不代表 production available。
@@ -0,0 +1,38 @@
1
+ {
2
+ "schemaVersion": 2,
3
+ "capabilityId": "foundation.agent-state-sqlite-registry-consumer",
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"]
10
+ },
11
+ "compatibility": { "node": ">=24.18.0 <25", "pnpm": "11.21.0", "typescript": "6.0.3" },
12
+ "integration": {
13
+ "title": "Agent SQLite Registry 消费来源",
14
+ "purpose": "仅为工作区外消费者通过受控 development Registry 解析 Agent SQLite 包及其闭包。",
15
+ "packages": [
16
+ { "packageName": "@aipt/agent-state-repository", "version": "0.1.0", "usage": "runtime", "imports": [] },
17
+ { "packageName": "@aipt/agent-run-kernel", "version": "0.2.0", "usage": "runtime", "imports": [] },
18
+ { "packageName": "@aipt/agent-runtime-contracts", "version": "0.3.0", "usage": "runtime", "imports": [] },
19
+ { "packageName": "@aipt/environment", "version": "0.1.0", "usage": "runtime", "imports": [] }
20
+ ],
21
+ "codeAssets": [
22
+ { "sourcePath": "assets/README.agent-state-registry-consumer.md", "targetPath": "README.agent-state-registry-consumer.md", "ownership": "owned-file" }
23
+ ]
24
+ },
25
+ "assets": [
26
+ { "path": "README.agent-state-registry-consumer.md", "ownership": "owned-file", "digest": "sha256:5f90669ab475308101224a74e39a603d586ba8a7fc9668642e6e491cb4cb5645", "mode": 420 }
27
+ ],
28
+ "verifiers": [{ "id": "capability.assets" }],
29
+ "exit": { "ownedAssets": ["README.agent-state-registry-consumer.md"] },
30
+ "availability": { "maturity": "candidate", "visibility": "maintainers-only", "sourceState": "development-registry" },
31
+ "packageSources": [
32
+ { "registryId": "registry.local.development", "packageName": "@aipt/agent-run-kernel", "version": "0.2.0", "integrity": "sha512-lIzCKdc9rVkBfvh/D/PO7hSWCfkWNgyyiVC7GnarSMPKJn5R1pSltaZPtnphE1/mWofZYkL74kH0YF65iu3EAQ==", "tarballDigest": "sha256:262dc66037fcc447ad237e5514efd41159ca9296306ee2043773c579497b132a", "deliveryReceiptId": "sha256:3bfe69ffa27f951bd6c5da700cc8e9fa2fc1fcfd23cac6f3db6573bec9bb6492", "usage": "runtime" },
33
+ { "registryId": "registry.local.development", "packageName": "@aipt/agent-runtime-contracts", "version": "0.3.0", "integrity": "sha512-YV6gNqUd0/ZfroWpHTz+lJt41NSTSbqtnRAZZi3PCOU4N3m8iE97PcM1hRi9TmyFqx6v1yTlRwZkYcKz8UH8AQ==", "tarballDigest": "sha256:428dfcb48b7c306befe502ffce7b737ff5c07a59f31f08c85b3213114533a600", "deliveryReceiptId": "sha256:3e143fde4ff987c760c43c574d5517921ee63c716e40fbb31a0b28061c6f3f82", "usage": "runtime" },
34
+ { "registryId": "registry.local.development", "packageName": "@aipt/agent-state-repository", "version": "0.1.0", "integrity": "sha512-EOQeCOJ2RDsdZGfd/p7PhvDz8zyGvV3g8Q8RmcMIMoYgsH7QO50bSbKtNMNcWNu06G3cjjZ2zT18WygXsPvXwg==", "tarballDigest": "sha256:0f12900756c66bd1ca9442e1da2109f48a3cdfd0cf319ee54886e577bf0724de", "deliveryReceiptId": "sha256:3d07108f156ec5ab1615056d1db4c32f42291fee0f50f33a347491111e16c1a1", "usage": "runtime" },
35
+ { "registryId": "registry.local.development", "packageName": "@aipt/environment", "version": "0.1.0", "integrity": "sha512-m6QQZhDnrkbgMUOW9fqBJXOWaf8UtyvlJ0hD9wvYHGL4ug8q0+vncEIomsXQmfEH6DiUtlGTQdUsMDOF37eYPQ==", "tarballDigest": "sha256:afcade31ab0ffb1ff0e823a5668651340cef98f85472964f24ba7635ca3cfd38", "deliveryReceiptId": "sha256:c0948253cfb15b0bf9a547b2a395d9df8855d9fb833ca6d5b93782b3df6b5632", "usage": "runtime" }
36
+ ],
37
+ "integrity": "sha256:7fdf44cf2a0ccb5577a8549ebb20cfcec167b9f490c67787361d12f2e20e5c7e"
38
+ }
@@ -0,0 +1,5 @@
1
+ # Agent SQLite Registry 消费来源
2
+
3
+ 本能力只为工作区外项目提供受控 development Registry 包来源。Dyyto 单体工作区内的 `@aipt/*` 依赖继续使用 `workspace:*`,不得采用本能力。
4
+
5
+ 该 Release 提供基于 Node 24 `node:sqlite` 的 `@aipt/agent-state-repository@0.2.0`,是 development candidate,不代表 production available。
@@ -0,0 +1,31 @@
1
+ {
2
+ "schemaVersion": 2,
3
+ "capabilityId": "foundation.agent-state-sqlite-registry-consumer",
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"] },
8
+ "compatibility": { "node": ">=24.18.0 <25", "pnpm": "11.21.0", "typescript": "6.0.3" },
9
+ "integration": {
10
+ "title": "Agent SQLite Registry 消费来源",
11
+ "purpose": "仅为工作区外消费者通过受控 development Registry 解析 Agent SQLite 包及其闭包。",
12
+ "packages": [
13
+ { "packageName": "@aipt/agent-state-repository", "version": "0.2.0", "usage": "runtime", "imports": [] },
14
+ { "packageName": "@aipt/agent-run-kernel", "version": "0.2.0", "usage": "runtime", "imports": [] },
15
+ { "packageName": "@aipt/agent-runtime-contracts", "version": "0.3.0", "usage": "runtime", "imports": [] },
16
+ { "packageName": "@aipt/environment", "version": "0.1.0", "usage": "runtime", "imports": [] }
17
+ ],
18
+ "codeAssets": [{ "sourcePath": "assets/README.agent-state-registry-consumer.md", "targetPath": "README.agent-state-registry-consumer.md", "ownership": "owned-file" }]
19
+ },
20
+ "assets": [{ "path": "README.agent-state-registry-consumer.md", "ownership": "owned-file", "digest": "sha256:89bd7a1779dd918fffb3799947cba7698efc927f374508604668dcc9c088db45", "mode": 420 }],
21
+ "verifiers": [{ "id": "capability.assets" }],
22
+ "exit": { "ownedAssets": ["README.agent-state-registry-consumer.md"] },
23
+ "availability": { "maturity": "candidate", "visibility": "maintainers-only", "sourceState": "development-registry" },
24
+ "packageSources": [
25
+ { "registryId": "registry.local.development", "packageName": "@aipt/agent-run-kernel", "version": "0.2.0", "integrity": "sha512-lIzCKdc9rVkBfvh/D/PO7hSWCfkWNgyyiVC7GnarSMPKJn5R1pSltaZPtnphE1/mWofZYkL74kH0YF65iu3EAQ==", "tarballDigest": "sha256:262dc66037fcc447ad237e5514efd41159ca9296306ee2043773c579497b132a", "deliveryReceiptId": "sha256:67f5cf46dca6899432dd5f0f260e9e2b8decc6371d0f4e5771d9c7fe1dee86a4", "usage": "runtime" },
26
+ { "registryId": "registry.local.development", "packageName": "@aipt/agent-runtime-contracts", "version": "0.3.0", "integrity": "sha512-YV6gNqUd0/ZfroWpHTz+lJt41NSTSbqtnRAZZi3PCOU4N3m8iE97PcM1hRi9TmyFqx6v1yTlRwZkYcKz8UH8AQ==", "tarballDigest": "sha256:428dfcb48b7c306befe502ffce7b737ff5c07a59f31f08c85b3213114533a600", "deliveryReceiptId": "sha256:b50980422c5bc34701306352b7aa6b6266363cfb223b7bd0a0a9c8a2070d26e9", "usage": "runtime" },
27
+ { "registryId": "registry.local.development", "packageName": "@aipt/agent-state-repository", "version": "0.2.0", "integrity": "sha512-w91F1WgOfAubLc/f6hEmA+DvuEPeSuor7a1R8tl0ElkfsqA7stMhXGoq8TkzvNr9Kg0rrezbEmG+Y33+FLCigg==", "tarballDigest": "sha256:755472df14f1b8c06e6be9b8402ace703dd48b21ba97975a71a55e1c4d63fbd9", "deliveryReceiptId": "sha256:2f7a42d730db2604258c076642f7c3488877b7550fe21ad67abc707ac23b2475", "usage": "runtime" },
28
+ { "registryId": "registry.local.development", "packageName": "@aipt/environment", "version": "0.1.0", "integrity": "sha512-m6QQZhDnrkbgMUOW9fqBJXOWaf8UtyvlJ0hD9wvYHGL4ug8q0+vncEIomsXQmfEH6DiUtlGTQdUsMDOF37eYPQ==", "tarballDigest": "sha256:afcade31ab0ffb1ff0e823a5668651340cef98f85472964f24ba7635ca3cfd38", "deliveryReceiptId": "sha256:924a47acac8ddebe8cceb16c0764d4c37377dee3499d77c648ab9bab7554704e", "usage": "runtime" }
29
+ ],
30
+ "integrity": "sha256:80f68f1cd8afb958a669863d2fdcaa0bc54fce27e5e25f99be4e6b66dd534ece"
31
+ }
@@ -0,0 +1,7 @@
1
+ # Agent Worker/Skill Runtime
2
+
3
+ 该能力安装 Agent 合同、实例运行时、Run Kernel、Worker Kernel、Skill Registry、Tool Gateway 与执行适配器的候选版本,用于验证跨项目集成链路。
4
+
5
+ 当前发行版只允许维护者通过明确批准的 development Bundle 使用,不代表生产发布。业务项目仍需显式提供租户、用户、Agent、Skill、Tool、模型与持久化适配器,不能把测试配置或密钥写入本目录。
6
+
7
+ 写工具和高风险步骤必须等待用户确认;读取、路由、Worker 执行和 HITL 是独立职责。移除能力时使用 `dyyto remove feature` 生成不可变 Plan,不要手工删除依赖或采用记录。
@@ -0,0 +1,19 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import {
3
+ AgentChatContracts,
4
+ AgentExecutionAdapters,
5
+ AgentInstanceRuntime,
6
+ AgentRunKernel,
7
+ AgentRuntimeContracts,
8
+ AgentSkillRegistry,
9
+ AgentToolGateway,
10
+ AgentWorkerKernel,
11
+ agentRuntimeCapability,
12
+ } from "./agent-runtime.js";
13
+
14
+ describe("Agent Worker/Skill Runtime 能力", () => {
15
+ it("从安装包而不是平台源码装配八个公共入口", () => {
16
+ expect(agentRuntimeCapability).toEqual({ capabilityId: "foundation.agent-worker-skill-runtime", version: "1.0.0", packages: 8, channel: "development" });
17
+ expect([AgentRuntimeContracts, AgentChatContracts, AgentInstanceRuntime, AgentRunKernel, AgentWorkerKernel, AgentSkillRegistry, AgentToolGateway, AgentExecutionAdapters]).toHaveLength(8);
18
+ });
19
+ });
@@ -0,0 +1,15 @@
1
+ export * as AgentRuntimeContracts from "@aipt/agent-runtime-contracts";
2
+ export * as AgentChatContracts from "@aipt/agent-chat-contracts";
3
+ export * as AgentInstanceRuntime from "@aipt/agent-instance-runtime";
4
+ export * as AgentRunKernel from "@aipt/agent-run-kernel";
5
+ export * as AgentWorkerKernel from "@aipt/agent-worker-kernel";
6
+ export * as AgentSkillRegistry from "@aipt/agent-skill-registry";
7
+ export * as AgentToolGateway from "@aipt/agent-tool-gateway";
8
+ export * as AgentExecutionAdapters from "@aipt/agent-execution-adapters";
9
+
10
+ export const agentRuntimeCapability = Object.freeze({
11
+ capabilityId: "foundation.agent-worker-skill-runtime",
12
+ version: "1.0.0",
13
+ packages: 8,
14
+ channel: "development",
15
+ } as const);
@@ -0,0 +1,47 @@
1
+ {
2
+ "schemaVersion": 2,
3
+ "capabilityId": "foundation.agent-worker-skill-runtime",
4
+ "version": "1.0.0",
5
+ "consumerProfile": "any-project",
6
+ "kind": "engineering-feature",
7
+ "dependencies": { "profiles": ["blank-typescript-library", "standalone-npm-package", "nextjs-full-stack-application"] },
8
+ "compatibility": { "node": ">=24.18.0 <25", "pnpm": "11.21.0", "typescript": "6.0.3" },
9
+ "integration": {
10
+ "title": "Agent Worker/Skill Runtime",
11
+ "purpose": "为项目安装用户级 Agent、Worker、Skill、Tool Gateway、HITL 与执行适配合同",
12
+ "packages": [
13
+ { "packageName": "@aipt/agent-chat-contracts", "version": "0.1.0", "usage": "runtime", "imports": [{ "importFrom": "@aipt/agent-chat-contracts", "symbol": "AgentChatContracts", "referencePath": "src/agent-runtime.ts" }] },
14
+ { "packageName": "@aipt/agent-execution-adapters", "version": "0.1.0", "usage": "runtime", "imports": [{ "importFrom": "@aipt/agent-execution-adapters", "symbol": "AgentExecutionAdapters", "referencePath": "src/agent-runtime.ts" }] },
15
+ { "packageName": "@aipt/agent-instance-runtime", "version": "0.1.0", "usage": "runtime", "imports": [{ "importFrom": "@aipt/agent-instance-runtime", "symbol": "AgentInstanceRuntime", "referencePath": "src/agent-runtime.ts" }] },
16
+ { "packageName": "@aipt/agent-run-kernel", "version": "0.1.0", "usage": "runtime", "imports": [{ "importFrom": "@aipt/agent-run-kernel", "symbol": "AgentRunKernel", "referencePath": "src/agent-runtime.ts" }] },
17
+ { "packageName": "@aipt/agent-runtime-contracts", "version": "0.1.0", "usage": "runtime", "imports": [{ "importFrom": "@aipt/agent-runtime-contracts", "symbol": "AgentRuntimeContracts", "referencePath": "src/agent-runtime.ts" }] },
18
+ { "packageName": "@aipt/agent-skill-registry", "version": "0.1.0", "usage": "runtime", "imports": [{ "importFrom": "@aipt/agent-skill-registry", "symbol": "AgentSkillRegistry", "referencePath": "src/agent-runtime.ts" }] },
19
+ { "packageName": "@aipt/agent-tool-gateway", "version": "0.1.0", "usage": "runtime", "imports": [{ "importFrom": "@aipt/agent-tool-gateway", "symbol": "AgentToolGateway", "referencePath": "src/agent-runtime.ts" }] },
20
+ { "packageName": "@aipt/agent-worker-kernel", "version": "0.1.0", "usage": "runtime", "imports": [{ "importFrom": "@aipt/agent-worker-kernel", "symbol": "AgentWorkerKernel", "referencePath": "src/agent-runtime.ts" }] }
21
+ ],
22
+ "codeAssets": [
23
+ { "sourcePath": "assets/README.agent-runtime.md", "targetPath": "README.agent-runtime.md", "ownership": "owned-file" },
24
+ { "sourcePath": "assets/src/agent-runtime.test.ts", "targetPath": "src/agent-runtime.test.ts", "ownership": "owned-file" },
25
+ { "sourcePath": "assets/src/agent-runtime.ts", "targetPath": "src/agent-runtime.ts", "ownership": "owned-file" }
26
+ ]
27
+ },
28
+ "assets": [
29
+ { "path": "README.agent-runtime.md", "ownership": "owned-file", "digest": "sha256:96bb1fad150c90fb8deb833bfb354ba1c82576053a23e3258bd9a03c2087e97c", "mode": 420 },
30
+ { "path": "src/agent-runtime.test.ts", "ownership": "owned-file", "digest": "sha256:79983124e68cea251c26ce0524f4f8a59bacb56924612448d21b14c599b6c138", "mode": 420 },
31
+ { "path": "src/agent-runtime.ts", "ownership": "owned-file", "digest": "sha256:37a1f923561f146a7f3a48815ff635a051b6339026b6b3b7a08168270513c378", "mode": 420 }
32
+ ],
33
+ "verifiers": [{ "id": "capability.assets" }, { "id": "typescript.typecheck" }, { "id": "vitest.run" }],
34
+ "exit": { "ownedAssets": ["README.agent-runtime.md", "src/agent-runtime.test.ts", "src/agent-runtime.ts"] },
35
+ "availability": { "maturity": "candidate", "visibility": "maintainers-only", "sourceState": "development-registry" },
36
+ "packageSources": [
37
+ { "registryId": "registry.local.development", "packageName": "@aipt/agent-chat-contracts", "version": "0.1.0", "integrity": "sha512-y2zQQonSZ+OlL06bP8FtlhRFLpbHK4i7JXJA/0wKMrt6DtUdw24X9P3iUajZRZ1IX17JYqVtMKoNyplBElh4yA==", "tarballDigest": "sha256:e2c1935b0c410597e4fa593e1e27322135fbc43e06b333159a807483d5fc7e32", "deliveryReceiptId": "sha256:444b26e53dbfad156cf0fef5d695fba4f71b1399f64e8cf5ad246b0bcc194884", "usage": "runtime" },
38
+ { "registryId": "registry.local.development", "packageName": "@aipt/agent-execution-adapters", "version": "0.1.0", "integrity": "sha512-6dQ0BM3NC+WK1yufwt5LXBfyisDiYFuQzMXOKNekxebrENiHCLz+A09hLWh8veMDFcuVrAjUoXSnUtWUAH04qw==", "tarballDigest": "sha256:4f2648653bcb788179371535084ddc77855a1288e4f72815ea154f00e249fb9a", "deliveryReceiptId": "sha256:3494706ca0a3e247a7d177b745f1f1a764dff36af2a219688c3dcecabb9ae6b0", "usage": "runtime" },
39
+ { "registryId": "registry.local.development", "packageName": "@aipt/agent-instance-runtime", "version": "0.1.0", "integrity": "sha512-ib7UpKGc8jsTNGcTIBfd9njblm2eLptdjgCHuX+B3FWrR6SeQhq2OOiThScJUIhwN/9nfdpRbx28EXltQFKCvQ==", "tarballDigest": "sha256:bcb48e6194cfd0bc1a0278c765ff31c2ecdec755bc506b97bf2d658571411ad0", "deliveryReceiptId": "sha256:a7e2e6282e5d4aed0388fb0ea3bf3cb3640daa2735c0956843f0364ff2a61db2", "usage": "runtime" },
40
+ { "registryId": "registry.local.development", "packageName": "@aipt/agent-run-kernel", "version": "0.1.0", "integrity": "sha512-39QoQgeyDLwRv3cXj+Vb844W1inv7sJzVbN4j1olqWLhfn8voO4UHH1aqN3Zt0639YVtSD8JEBFI8kZ/2S+BWg==", "tarballDigest": "sha256:38c4e8881107a75543d8b2ec21d3da00f4bfaf01cec142199cf23aa9ca1bfe41", "deliveryReceiptId": "sha256:d3390fee499882d2696f8ae5e59a42411b3e523798f443e707c25e98c9d13997", "usage": "runtime" },
41
+ { "registryId": "registry.local.development", "packageName": "@aipt/agent-runtime-contracts", "version": "0.1.0", "integrity": "sha512-vNmwy0aP3eTQe/A7h5S0/L1RbhMAI9DdYfBNjPxqVNuQ/hzlPcxtDSlFiVdzo0TFQWqIqW6RvcANgNjZov1z3w==", "tarballDigest": "sha256:cc5fbe46676151ddc61079242dd6e52b63a216d179c97f078b7fb8950686f44b", "deliveryReceiptId": "sha256:ff52b66137f32d69f4f415d2edc2f8df1e5555c8a547c8467b3ccde6e72ce17e", "usage": "runtime" },
42
+ { "registryId": "registry.local.development", "packageName": "@aipt/agent-skill-registry", "version": "0.1.0", "integrity": "sha512-qKP4uPX6mrIZgW1HSLATNJFOqX5NVPAEim7FaP69KJSczIT8eJvnn+6UfJ4eLhhW6mOcePS2UD1vA/ATQKnbJg==", "tarballDigest": "sha256:177ac26488c2292588fb112cab847b7bf4d54a0f0f1e6ceef334b039a87997ea", "deliveryReceiptId": "sha256:bd3fd6abbc95bca9b3c9c978afe72d0a7942f0c42027711374874b933158d2c7", "usage": "runtime" },
43
+ { "registryId": "registry.local.development", "packageName": "@aipt/agent-tool-gateway", "version": "0.1.0", "integrity": "sha512-i76hSo+A8aB3KGG2MkkhIMNhpw1dWtANJXLNzanaHPMMymZZ60BqY6LGjz2h/Jwq7KqF5RptDJIq4dqpkGobWA==", "tarballDigest": "sha256:767df581f450aaa618aa8f73bc741bc77f8a4f4af2aebb2fefdb8a8be84e6863", "deliveryReceiptId": "sha256:2294e8e5e58232f11af56a6064b215a530fdafd1aef4dfa321ba4ee9f3e49ef7", "usage": "runtime" },
44
+ { "registryId": "registry.local.development", "packageName": "@aipt/agent-worker-kernel", "version": "0.1.0", "integrity": "sha512-dHMa54zXCgOkWcnorvMR9XPiDEjB59MoyIAv7ENwE+5bQRUhfyVR+hPLYbKqBz9Vf9fp0/0Zlv/Z3yPmZPiUHg==", "tarballDigest": "sha256:eddef1fd9bbfc66e6a8dd0d2c14ca28681b16b8be1ad332c1c02e5b78e23ff60", "deliveryReceiptId": "sha256:0d569584eab610acb52572c8a8a3c46d2da9802490476e26f846d223534c8817", "usage": "runtime" }
45
+ ],
46
+ "integrity": "sha256:13c54c8c6231cd3a6b7354b723b81572aaa424114594824b4f3c59354e654c37"
47
+ }
@@ -0,0 +1,5 @@
1
+ # AI 教育 Agent 示例
2
+
3
+ 这是由正式 Catalog Capability 注入的简体中文 development 示例。内容、Skill 和输出均为虚构数据;不调用付费模型,不处理真实教材。
4
+
5
+ 访问 `/agent-phase1`,完成 Agent 选择、Skill 确认、三轮对话、HITL 和 JSON/Markdown Artifact 预览。
@@ -0,0 +1,2 @@
1
+ import { EducationAgentExample } from "./workbench";
2
+ export default function AgentPhase1Page() { return <main><EducationAgentExample /></main>; }
@@ -0,0 +1,5 @@
1
+ import { fireEvent, render, screen } from "@testing-library/react";
2
+ import "@testing-library/jest-dom/vitest";
3
+ import { describe, expect, it } from "vitest";
4
+ import { EducationAgentExample } from "./workbench";
5
+ describe("教育 Agent 示例", () => { it("默认使用中文并要求用户确认 Skill", async () => { render(<EducationAgentExample/>); fireEvent.click(await screen.findByRole("button", { name: "选择虚构教学 Agent" })); expect(screen.getByText("虚构出版社")).toBeInTheDocument(); expect(screen.getByRole("button", { name: "确认绑定" })).toBeInTheDocument(); }); });
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { useEffect, useMemo, useState } from "react";
3
+ import { AgentChatWorkbench } from "@aipt/agent-chat-ui";
4
+ import { confirmSkill, decideInterrupt, type ConversationView, type InterruptEnvelope, type MessageEnvelope, type SkillRecommendation } from "@aipt/agent-chat-contracts";
5
+ const digest = `sha256:${"a".repeat(64)}` as const; const key = "dyyto.education-agent-example.v1";
6
+ type State = { agentId?: string; bound: boolean; view: ConversationView; recommendation?: SkillRecommendation; interrupt?: InterruptEnvelope; approved: boolean };
7
+ const initial = (): State => ({ bound: false, approved: false, view: { schemaVersion: 1, tenantId: "tenant-fixture", conversationId: "conversation-fixture", agentInstanceId: "agent-fixture", revision: 1, lastCursor: 0, messages: [], artifacts: [], findings: [] }, recommendation: { schemaVersion: 1, recommendationId: "recommendation-fixture", tenantId: "tenant-fixture", conversationId: "conversation-fixture", revision: 1, inputDigest: digest, candidates: [{ subjectSkillReleaseId: "fixture.education.fractions@1.0.0", compatible: true, reason: "四维 taxonomy 与虚构课时完全匹配" }], status: "pending" } });
8
+ const message = (role: "user" | "assistant", text: string, sequence: number): MessageEnvelope => ({ schemaVersion: 1, messageId: `${role}-${sequence}`, tenantId: "tenant-fixture", conversationId: "conversation-fixture", runId: "run-fixture", sequence, role, parts: [{ kind: "text", text }], createdAt: "2026-08-23T00:00:00.000Z" });
9
+ export function EducationAgentExample() {
10
+ const [state, setState] = useState<State>(initial); const [ready, setReady] = useState(false);
11
+ useEffect(() => { const stored = localStorage.getItem(key); if (stored) setState(JSON.parse(stored) as State); setReady(true); }, []); useEffect(() => { if (ready) localStorage.setItem(key, JSON.stringify(state)); }, [ready, state]);
12
+ const update = (next: State) => setState(next); const candidate = useMemo(() => ({ title: "认识几分之一(虚构课时)", activities: [["情境导入",5],["动手探究",15],["对比辨析",10],["应用反馈",7],["回顾总结",3]] as const }), []);
13
+ const select = () => update({ ...state, agentId: "agent-fixture" });
14
+ const recommendationDecision = (decision: "accept" | "reject", subjectSkillReleaseId?: string) => { if (!state.recommendation) return; if (decision === "accept" && subjectSkillReleaseId) confirmSkill(state.recommendation, { receiptId: "selection-fixture", expectedRevision: 1, subjectSkillReleaseId, selectedBy: "teacher-fixture", selectedAt: "2026-08-23T00:00:00.000Z", inputDigest: digest }); update({ ...state, bound: decision === "accept", recommendation: { ...state.recommendation, status: decision === "accept" ? "accepted" : "rejected" } }); };
15
+ const send = (text: string) => { const count = state.view.messages.filter((item) => item.role === "user").length + 1; const replies = ["请确认学生是否接触过平均分。", "请选择动手折纸或图示观察。", "候选已生成,确认前不会创建 Artifact。"]; const messages = [...state.view.messages, message("user", text, state.view.messages.length + 1), message("assistant", replies[Math.min(count - 1, 2)]!, state.view.messages.length + 2)]; const interrupt = count === 3 ? { schemaVersion: 1 as const, interruptId: "interrupt-fixture", tenantId: "tenant-fixture", conversationId: "conversation-fixture", runId: "run-fixture", revision: 1, kind: "review_candidate" as const, payloadDigest: digest, allowedDecisions: ["approve", "edit", "reject"] as const, status: "pending" as const } : state.interrupt; update({ ...state, view: { ...state.view, revision: state.view.revision + 1, messages }, ...(interrupt ? { interrupt } : {}) }); };
16
+ const interruptDecision = (decision: "approve" | "edit" | "reject") => { if (!state.interrupt) return; const interrupt = decideInterrupt(state.interrupt, { decisionId: `decision-${decision}`, interruptId: state.interrupt.interruptId, expectedRevision: state.interrupt.revision, decision, decidedBy: "teacher-fixture", decidedAt: "2026-08-23T00:00:00.000Z", payloadDigest: state.interrupt.payloadDigest, ...(decision === "edit" ? { editedPayloadDigest: digest } : {}) }); const approved = decision === "approve"; update({ ...state, approved, interrupt, view: { ...state.view, artifacts: approved ? [{ artifactId: "artifact-json", tenantId: "tenant-fixture", runId: "run-fixture", kind: "json", contentDigest: digest, status: "final" }, { artifactId: "artifact-markdown", tenantId: "tenant-fixture", runId: "run-fixture", kind: "markdown", contentDigest: digest, status: "final" }] : [] } }); };
17
+ if (!ready) return <p>正在恢复本地示例…</p>;
18
+ return <section aria-label="AI 教育 Agent 正式示例"><p>Development candidate · 全部内容均为虚构</p><h1>AI 教育 Agent 示例</h1>{!state.agentId ? <><h2>选择或创建用户 Agent</h2><button onClick={select}>选择虚构教学 Agent</button></> : <><dl><div><dt>出版社</dt><dd>虚构出版社</dd></div><div><dt>学科</dt><dd>数学</dd></div><div><dt>年级</dt><dd>三年级</dd></div><div><dt>期次</dt><dd>上学期</dd></div></dl><AgentChatWorkbench view={state.view} recommendation={state.bound ? undefined : state.recommendation} interrupt={state.interrupt?.status === "pending" ? state.interrupt : undefined} onSend={send} onRecommendationDecision={recommendationDecision} onInterruptDecision={interruptDecision}/>{state.interrupt && <section aria-label="结构化教学设计候选"><h2>{candidate.title}</h2><ol>{candidate.activities.map(([name, minutes]) => <li key={name}>{name}:{minutes} 分钟</li>)}</ol><p>总时长:40 分钟</p></section>}{state.approved && <section aria-label="Artifact 预览"><h2>已确认 Artifact</h2><details><summary>JSON · {digest}</summary><pre>{JSON.stringify(candidate, null, 2)}</pre></details><details><summary>MARKDOWN · {digest}</summary><pre># {candidate.title}{"\n\n"}虚构内容</pre></details></section>}</>}</section>;
19
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "schemaVersion": 2,
3
+ "capabilityId": "foundation.ai-education-agent-example",
4
+ "version": "1.0.0",
5
+ "integrity": "sha256:282b97e0ac229a02e437ec5f60b7f616e632f59c1a733f39058d004976d0b500",
6
+ "consumerProfile": "any-project",
7
+ "kind": "engineering-feature",
8
+ "availability": { "maturity": "candidate", "visibility": "maintainers-only", "sourceState": "local-artifact" },
9
+ "dependencies": { "profiles": ["nextjs-full-stack-application"], "capabilities": ["foundation.agent-worker-skill-runtime", "foundation.agent-chat-ui-consumer"] },
10
+ "compatibility": { "node": ">=24.18.0 <25", "pnpm": "11.21.0", "typescript": "6.0.3" },
11
+ "integration": { "title": "AI 教育 Agent 虚构示例", "purpose": "通过正式 Catalog 注入教育 Agent development consumer。", "packages": [], "codeAssets": [{ "sourcePath": "app/agent-phase1/workbench.tsx", "targetPath": "app/agent-phase1/workbench.tsx", "ownership": "owned-file" }] },
12
+ "packageSources": [],
13
+ "assets": [
14
+ { "path": "app/agent-phase1/page.tsx", "ownership": "owned-file", "digest": "sha256:4e394dd2f765ce670b13af8cf457451796ae362c17dde5486c09383a51403dbb", "mode": 420 },
15
+ { "path": "app/agent-phase1/workbench.test.tsx", "ownership": "owned-file", "digest": "sha256:bcd4d68085e84053a6e6666456447d0f0d28f70bd2b2dfa4f467caefd56f17e7", "mode": 420 },
16
+ { "path": "app/agent-phase1/workbench.tsx", "ownership": "owned-file", "digest": "sha256:431d8a086d296b991741f4bd017305dc7315acab3725b8d006240d8fa6a309e0", "mode": 420 },
17
+ { "path": "README.agent-example.md", "ownership": "owned-file", "digest": "sha256:686de21fa5e1956bfe8f6f2d70105ff699dd463342e433f85b5f83504821b802", "mode": 420 }
18
+ ],
19
+ "verifiers": [{ "id": "capability.assets" }, { "id": "typescript.typecheck" }, { "id": "vitest.run" }, { "id": "next.application-build" }],
20
+ "exit": { "ownedAssets": ["app/agent-phase1/page.tsx", "app/agent-phase1/workbench.test.tsx", "app/agent-phase1/workbench.tsx", "README.agent-example.md"] }
21
+ }
@@ -0,0 +1,3 @@
1
+ # AI 教育 Agent SQLite 示例
2
+
3
+ 页面默认使用简体中文,只处理虚构教材与确定性响应。会话通过 `foundation.agent-state-sqlite@1.0.0` 保存;浏览器不保存权威 Agent 状态。Skill 必须由教师确认,教学设计 Candidate 必须通过 HITL 后才能显示 Artifact。
@@ -0,0 +1,5 @@
1
+ import { parseInterruptEnvelope, parseMessageEnvelope, parseSkillRecommendation, type ConversationView, type InterruptEnvelope, type SkillRecommendation } from "@aipt/agent-chat-contracts";
2
+ export type DemoState = Readonly<{ schemaVersion: 1; repositoryRevision: number; selected: boolean; bound: boolean; approved: boolean; view: ConversationView; recommendation: SkillRecommendation; interrupt?: InterruptEnvelope }>;
3
+ const digest = `sha256:${"a".repeat(64)}` as const;
4
+ export const initialDemoState = (): DemoState => ({ schemaVersion: 1, repositoryRevision: 0, selected: false, bound: false, approved: false, view: { schemaVersion: 1, tenantId: "tenant-fixture", conversationId: "conversation-fixture", agentInstanceId: "agent-fixture", revision: 1, lastCursor: 0, messages: [], artifacts: [], findings: [] }, recommendation: { schemaVersion: 1, recommendationId: "recommendation-fixture", tenantId: "tenant-fixture", conversationId: "conversation-fixture", revision: 1, inputDigest: digest, candidates: [{ subjectSkillReleaseId: "fixture.education.fractions@1.0.0", compatible: true, reason: "四维 taxonomy 与虚构课时完全匹配" }], status: "pending" } });
5
+ export function parseDemoState(value: unknown): DemoState { if (!value || typeof value !== "object" || Array.isArray(value)) throw new Error("DEMO_STATE_INVALID"); const state = value as DemoState; const keys = ["schemaVersion", "repositoryRevision", "selected", "bound", "approved", "view", "recommendation", ...(state.interrupt ? ["interrupt"] : [])]; if (Object.keys(state).sort().join(",") !== keys.sort().join(",") || state.schemaVersion !== 1 || !Number.isSafeInteger(state.repositoryRevision) || state.repositoryRevision < 0 || typeof state.selected !== "boolean" || typeof state.bound !== "boolean" || typeof state.approved !== "boolean" || state.view.schemaVersion !== 1 || !Array.isArray(state.view.messages) || !Array.isArray(state.view.artifacts) || !Array.isArray(state.view.findings)) throw new Error("DEMO_STATE_INVALID"); state.view.messages.forEach(parseMessageEnvelope); parseSkillRecommendation(state.recommendation); if (state.interrupt) parseInterruptEnvelope(state.interrupt); return state; }
@@ -0,0 +1,3 @@
1
+ import { EducationAgentSqliteExample } from "./workbench";
2
+ import { readDemoState } from "./state.server";
3
+ export default async function Page() { return <EducationAgentSqliteExample initialState={await readDemoState()}/>; }
@@ -0,0 +1,7 @@
1
+ "use server";
2
+ import { runDigest } from "@aipt/agent-run-kernel";
3
+ import { createLocalAgentState } from "../../src/agent-state";
4
+ import { initialDemoState, parseDemoState, type DemoState } from "./contracts";
5
+ const scope = { tenantId: "tenant-fixture", projectId: "education-example", userId: "teacher-fixture" } as const;
6
+ export async function readDemoState(): Promise<DemoState> { const repository = createLocalAgentState({ projectRoot: process.cwd(), environment: process.env }); try { const document = await repository.document(scope, "conversation", "conversation-fixture"); return document ? parseDemoState({ ...(document.content as DemoState), repositoryRevision: document.revision }) : initialDemoState(); } finally { repository.close(); } }
7
+ export async function saveDemoState(desiredInput: DemoState, expectedRevision: number, idempotencyKey: string): Promise<DemoState> { const desired = parseDemoState({ ...desiredInput, repositoryRevision: expectedRevision }); const repository = createLocalAgentState({ projectRoot: process.cwd(), environment: process.env }); try { const content = { ...desired, repositoryRevision: expectedRevision + 1 }; const contentDigest = runDigest(content); await repository.transact({ schemaVersion: 1, commandId: `command-${idempotencyKey}`, idempotencyKey, inputDigest: contentDigest, ...scope, aggregateId: "conversation-fixture", expectedRevision, authorizationDigest: runDigest("fixture-only"), occurredAt: new Date().toISOString() }, (transaction) => transaction.putDocument({ kind: "conversation", aggregateId: "conversation-fixture", expectedRevision, contentSchemaVersion: "education-agent-example@1", contentDigest, content, updatedAt: new Date().toISOString() })); return parseDemoState(content); } finally { repository.close(); } }
@@ -0,0 +1,7 @@
1
+ import { fireEvent, 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", () => ({ saveDemoState: async (state: object, revision: number) => ({ ...state, repositoryRevision: revision + 1 }) }));
5
+ import { initialDemoState } from "./contracts";
6
+ import { EducationAgentSqliteExample } from "./workbench";
7
+ describe("SQLite 教育 Agent 示例", () => { it("默认中文并在用户确认前不绑定 Skill", async () => { render(<EducationAgentSqliteExample initialState={initialDemoState()}/>); fireEvent.click(screen.getByRole("button", { name: "选择虚构教学 Agent" })); expect(await screen.findByText("虚构出版社")).toBeInTheDocument(); expect(screen.getByRole("button", { name: "确认绑定" })).toBeInTheDocument(); }); });
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import { useState } from "react";
3
+ import { AgentChatWorkbench } from "@aipt/agent-chat-ui";
4
+ import { confirmSkill, decideInterrupt, type MessageEnvelope } from "@aipt/agent-chat-contracts";
5
+ import type { DemoState } from "./contracts";
6
+ import { saveDemoState } from "./state.server";
7
+ const digest = `sha256:${"a".repeat(64)}` as const; const candidate = { title: "认识几分之一(虚构课时)", activities: [["情境导入",5],["动手探究",15],["对比辨析",10],["应用反馈",7],["回顾总结",3]] as const };
8
+ const message = (role: "user" | "assistant", text: string, sequence: number): MessageEnvelope => ({ schemaVersion: 1, messageId: `${role}-${sequence}`, tenantId: "tenant-fixture", conversationId: "conversation-fixture", runId: "run-fixture", sequence, role, parts: [{ kind: "text", text }], createdAt: new Date().toISOString() });
9
+ export function EducationAgentSqliteExample({ initialState }: { initialState: DemoState }) { const [state, setState] = useState(initialState); const [problem, setProblem] = useState(""); const commit = async (desired: DemoState, action: string) => { try { setState(await saveDemoState(desired, state.repositoryRevision, `${action}-${state.repositoryRevision + 1}`)); setProblem(""); } catch { setProblem("状态已经变化,请刷新后重试。"); } }; const select = () => commit({ ...state, selected: true }, "select"); const recommendationDecision = (decision: "accept" | "reject", subjectSkillReleaseId?: string) => { if (decision === "accept" && subjectSkillReleaseId) confirmSkill(state.recommendation, { receiptId: "selection-fixture", expectedRevision: 1, subjectSkillReleaseId, selectedBy: "teacher-fixture", selectedAt: new Date().toISOString(), inputDigest: digest }); return commit({ ...state, bound: decision === "accept", recommendation: { ...state.recommendation, status: decision === "accept" ? "accepted" : "rejected" } }, `skill-${decision}`); }; const send = (text: string) => { if (!state.bound) return; const count = state.view.messages.filter((item) => item.role === "user").length + 1; const replies = ["请确认学生是否接触过平均分。", "请选择动手折纸或图示观察。", "候选已生成,确认前不会创建 Artifact。"]; const messages = [...state.view.messages, message("user", text, state.view.messages.length + 1), message("assistant", replies[Math.min(count - 1, 2)]!, state.view.messages.length + 2)]; const interrupt = count === 3 ? { schemaVersion: 1 as const, interruptId: "interrupt-fixture", tenantId: "tenant-fixture", conversationId: "conversation-fixture", runId: "run-fixture", revision: 1, kind: "review_candidate" as const, payloadDigest: digest, allowedDecisions: ["approve", "edit", "reject"] as const, status: "pending" as const } : state.interrupt; return commit({ ...state, view: { ...state.view, revision: state.view.revision + 1, lastCursor: messages.length, messages }, ...(interrupt ? { interrupt } : {}) }, `message-${count}`); }; const interruptDecision = (decision: "approve" | "edit" | "reject") => { if (!state.interrupt) return; const interrupt = decideInterrupt(state.interrupt, { decisionId: `decision-${decision}`, interruptId: state.interrupt.interruptId, expectedRevision: state.interrupt.revision, decision, decidedBy: "teacher-fixture", decidedAt: new Date().toISOString(), payloadDigest: state.interrupt.payloadDigest, ...(decision === "edit" ? { editedPayloadDigest: digest } : {}) }); const approved = decision === "approve"; return commit({ ...state, approved, interrupt, view: { ...state.view, artifacts: approved ? [{ artifactId: "artifact-json", tenantId: "tenant-fixture", runId: "run-fixture", kind: "json", contentDigest: digest, status: "final" }, { artifactId: "artifact-markdown", tenantId: "tenant-fixture", runId: "run-fixture", kind: "markdown", contentDigest: digest, status: "final" }] : [] } }, `hitl-${decision}`); }; return <section aria-label="AI 教育 Agent SQLite 正式示例"><p>Development candidate · SQLite 本地事务状态 · 全部内容均为虚构</p><h1>AI 教育 Agent 示例</h1>{problem && <p role="alert">{problem}</p>}{!state.selected ? <button onClick={select}>选择虚构教学 Agent</button> : <><dl><div><dt>出版社</dt><dd>虚构出版社</dd></div><div><dt>学科</dt><dd>数学</dd></div><div><dt>年级</dt><dd>三年级</dd></div><div><dt>期次</dt><dd>上学期</dd></div></dl><AgentChatWorkbench view={state.view} recommendation={state.bound ? undefined : state.recommendation} interrupt={state.interrupt?.status === "pending" ? state.interrupt : undefined} onSend={send} onRecommendationDecision={recommendationDecision} onInterruptDecision={interruptDecision}/>{state.interrupt && <section aria-label="结构化教学设计候选"><h2>{candidate.title}</h2><ol>{candidate.activities.map(([name, minutes]) => <li key={name}>{name}:{minutes} 分钟</li>)}</ol><p>总时长:40 分钟</p></section>}{state.approved && <section aria-label="Artifact 预览"><h2>已确认 Artifact</h2><pre>{JSON.stringify(candidate, null, 2)}</pre></section>}</>}</section>; }
@@ -0,0 +1,30 @@
1
+ {
2
+ "schemaVersion": 2,
3
+ "capabilityId": "foundation.ai-education-agent-sqlite-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.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 SQLite 虚构示例", "purpose": "通过正式 Catalog 注入使用 SQLite 权威状态的教育 Agent development consumer。", "packages": [], "codeAssets": [
10
+ { "sourcePath": "assets/README.agent-sqlite-example.md", "targetPath": "README.agent-sqlite-example.md", "ownership": "owned-file" },
11
+ { "sourcePath": "assets/app/agent-sqlite/contracts.ts", "targetPath": "app/agent-sqlite/contracts.ts", "ownership": "owned-file" },
12
+ { "sourcePath": "assets/app/agent-sqlite/page.tsx", "targetPath": "app/agent-sqlite/page.tsx", "ownership": "owned-file" },
13
+ { "sourcePath": "assets/app/agent-sqlite/state.server.ts", "targetPath": "app/agent-sqlite/state.server.ts", "ownership": "owned-file" },
14
+ { "sourcePath": "assets/app/agent-sqlite/workbench.test.tsx", "targetPath": "app/agent-sqlite/workbench.test.tsx", "ownership": "owned-file" },
15
+ { "sourcePath": "assets/app/agent-sqlite/workbench.tsx", "targetPath": "app/agent-sqlite/workbench.tsx", "ownership": "owned-file" }
16
+ ] },
17
+ "assets": [
18
+ { "path": "app/agent-sqlite/contracts.ts", "ownership": "owned-file", "digest": "sha256:4ce98facb6e3b54e9aefd1c883d604c971e5065bc2065abb046bec3b80f84664", "mode": 420 },
19
+ { "path": "app/agent-sqlite/page.tsx", "ownership": "owned-file", "digest": "sha256:41c46cd0ddf4bc745951fec5b30594f5a7247ee87000ef2ec3d66fced3b8dd7b", "mode": 420 },
20
+ { "path": "app/agent-sqlite/state.server.ts", "ownership": "owned-file", "digest": "sha256:d2eb2174866690d123729876d20fa9ed6e1bf5a6c03b41cdfd80d2cf529b2a79", "mode": 420 },
21
+ { "path": "app/agent-sqlite/workbench.test.tsx", "ownership": "owned-file", "digest": "sha256:335b21a9b9b7756728a78831fcd8e704bb7c9a37cd73cb772d15c5df66f24dce", "mode": 420 },
22
+ { "path": "app/agent-sqlite/workbench.tsx", "ownership": "owned-file", "digest": "sha256:a06dbeed96b2b5ed743492495bd7c98e841881d963cca329ef2afa0787c53dbe", "mode": 420 },
23
+ { "path": "README.agent-sqlite-example.md", "ownership": "owned-file", "digest": "sha256:8daea56083d7af721d83e42cdc04b6a8c1b85767b6fa4eb515dd9a33dc9d19b1", "mode": 420 }
24
+ ],
25
+ "verifiers": [{ "id": "capability.assets" }, { "id": "typescript.typecheck" }, { "id": "vitest.run" }, { "id": "next.application-build" }],
26
+ "exit": { "ownedAssets": ["app/agent-sqlite/contracts.ts", "app/agent-sqlite/page.tsx", "app/agent-sqlite/state.server.ts", "app/agent-sqlite/workbench.test.tsx", "app/agent-sqlite/workbench.tsx", "README.agent-sqlite-example.md"] },
27
+ "availability": { "maturity": "candidate", "visibility": "maintainers-only", "sourceState": "local-artifact" },
28
+ "packageSources": [],
29
+ "integrity": "sha256:65324b9d95c3871f3f898c58b8af06074c1b4a028f664eaa83da91b941921ece"
30
+ }
@@ -0,0 +1,3 @@
1
+ # AI 教育 Agent 阶段五验收
2
+
3
+ 入口 `/agent-stage5`。该 development consumer 只使用仓库内虚构 Fixture,通过正式 Registry、Chat、Run Kernel、Worker 合同和 SQLite Repository 展示 Skill 发布/确认、Run Evidence、HITL、Artifact、Adopt/Revert Plan/Receipt。它不调用真实模型,不代表 production available。
@@ -0,0 +1,6 @@
1
+ export type DemoStage="draft"|"skill_published"|"bound"|"waiting_hitl"|"approved"|"commit_planned"|"commit_approved"|"committed"|"revert_planned"|"revert_approved"|"reverted";
2
+ export type Stage5State=Readonly<{schemaVersion:1;repositoryRevision:number;stage:DemoStage;workingRevision:number;receipts:readonly string[];evidenceCount:number;artifactCount:number}>;
3
+ export const initialStage5State=():Stage5State=>({schemaVersion:1,repositoryRevision:0,stage:"draft",workingRevision:12,receipts:[],evidenceCount:0,artifactCount:0});
4
+ const stages:readonly DemoStage[]=["draft","skill_published","bound","waiting_hitl","approved","commit_planned","commit_approved","committed","revert_planned","revert_approved","reverted"];
5
+ export function parseStage5State(value:unknown):Stage5State{if(!value||typeof value!=="object"||Array.isArray(value))throw new Error("STAGE5_STATE_INVALID");const state=value as Stage5State;if(Object.keys(state).sort().join(",")!==["schemaVersion","repositoryRevision","stage","workingRevision","receipts","evidenceCount","artifactCount"].sort().join(",")||state.schemaVersion!==1||!Number.isSafeInteger(state.repositoryRevision)||state.repositoryRevision<0||!stages.includes(state.stage)||!Number.isSafeInteger(state.workingRevision)||state.workingRevision<12||!Array.isArray(state.receipts)||state.receipts.some(item=>typeof item!=="string")||!Number.isSafeInteger(state.evidenceCount)||!Number.isSafeInteger(state.artifactCount))throw new Error("STAGE5_STATE_INVALID");return Object.freeze(state);}
6
+ export const nextStage=(stage:DemoStage):DemoStage=>stages[stages.indexOf(stage)+1]??stage;
@@ -0,0 +1 @@
1
+ import{Stage5AcceptanceWorkbench}from"./workbench";import{readStage5State}from"./state.server";export default async function Page(){return <Stage5AcceptanceWorkbench initialState={await readStage5State()}/>;}
@@ -0,0 +1,8 @@
1
+ import{contentDigest}from"@aipt/agent-instance-runtime";
2
+ import{compileAgentRun,projectRun,runDigest}from"@aipt/agent-run-kernel";
3
+ import{compileTaskPlan,resolveSkillBinding}from"@aipt/agent-worker-kernel";
4
+ import{AgentSkillRegistry}from"@aipt/agent-skill-registry";
5
+ import{confirmSkill}from"@aipt/agent-chat-contracts";
6
+ import type{DemoStage,Stage5State}from"./contracts";
7
+ const digest=(value:unknown)=>runDigest(value),at="2026-08-23T00:00:00.000Z",skill={schemaVersion:1 as const,skillReleaseId:"fixture.education.stage5@1.0.0",skillId:"fixture.education.stage5",contentDigest:digest("stage5-skill"),status:"published"as const,definition:{schemaVersion:1 as const,skillId:"fixture.education.stage5",subject:"math",inputSchemaVersion:"FixtureInput@1",outputSchemaVersion:"FixtureOutput@1",toolReleaseIds:["fixture.tool.read@1"]},compatibility:{taxonomyDigest:digest("fictional-academy-math-grade3-term1"),agentReleaseIds:["fixture.agent@1"]},approvedAt:at};
8
+ export function platformProof(stage:DemoStage,state:Stage5State):Readonly<{receipt:string;evidenceCount?:number;artifactCount?:number;workingRevision?:number}>{if(stage==="skill_published"){const registry=new AgentSkillRegistry(),pending=registry.planPublish({planId:"publish-stage5",kind:"skill",targetId:skill.skillReleaseId,targetDigest:skill.contentDigest});registry.publishSkillRelease(skill,registry.approvePublishPlan(pending));return{receipt:registry.resolvePublishReceipt(pending.planId).planId};}if(stage==="bound"){const recommendation={schemaVersion:1 as const,recommendationId:"recommendation-stage5",tenantId:"tenant-fixture",conversationId:"conversation-stage5",revision:1,inputDigest:digest("selection"),candidates:[{subjectSkillReleaseId:skill.skillReleaseId,compatible:true as const,reason:"四维 taxonomy 精确匹配"}],status:"pending"as const},selection=confirmSkill(recommendation,{receiptId:"selection-stage5",expectedRevision:1,subjectSkillReleaseId:skill.skillReleaseId,selectedBy:"teacher-fixture",selectedAt:at,inputDigest:recommendation.inputDigest}),binding=resolveSkillBinding({bindingId:"binding-stage5",agentReleaseId:"fixture.agent@1",taxonomyDigest:skill.compatibility.taxonomyDigest,skill,receipt:selection,expectedInputDigest:recommendation.inputDigest});return{receipt:binding.bindingId};}if(stage==="waiting_hitl"){const definition={schemaVersion:1 as const,agentId:"fixture.agent",promptReleaseId:"fixture.prompt@1",modelPolicyId:"fixture.model.no-network@1",graphRelease:{graphReleaseId:"fixture.graph@1",nodeIds:["compose","review"]},toolReleaseIds:["fixture.tool.read@1"],maximumTurns:4,maximumToolCalls:1},release={schemaVersion:1 as const,agentReleaseId:"fixture.agent@1",contentDigest:contentDigest(definition),approvedAt:at,promptReleaseId:definition.promptReleaseId,modelPolicyId:definition.modelPolicyId,graphRelease:definition.graphRelease,toolReleaseIds:definition.toolReleaseIds,maximumTurns:4,maximumToolCalls:1},principal={tenantId:"tenant-fixture",projectId:"education-stage5",userId:"teacher-fixture"},authorization={schemaVersion:1 as const,decisionId:"authorization-stage5",principalDigest:digest(principal),policyDigest:digest("fixture-only"),allowedToolReleaseIds:["fixture.tool.read@1"],decidedAt:at,expiresAt:"2099-12-31T23:59:59.000Z"},instance={schemaVersion:1 as const,agentInstanceId:"agent-stage5",...principal,agentReleaseId:release.agentReleaseId,status:"active"as const,revision:1,createdAt:at,updatedAt:at},compiled=compileAgentRun({runId:"run-stage5",conversationId:"conversation-stage5",conversationRevision:1,graphThreadId:"thread-stage5",instance,release,principal,authorization,inputDigest:digest("input")}),plan=compileTaskPlan({planId:"task-stage5",runId:compiled.runId,bindingId:"binding-stage5",nodes:[{nodeId:"compose",executor:"skill",inputDigest:compiled.inputDigest,dependsOn:[],skillReleaseId:skill.skillReleaseId,risk:"read",longRunning:false,maximumAttempts:1,timeoutMs:1000},{nodeId:"review",executor:"human",inputDigest:compiled.inputDigest,dependsOn:["compose"],risk:"read",longRunning:false,maximumAttempts:1,timeoutMs:1000}]});const types=["run.created","run.queued","run.started","approval.requested","run.waiting_for_user"]as const,events=types.map((type,index)=>({schemaVersion:1 as const,eventId:`event-${index+1}`,runId:compiled.runId,sequence:index+1,occurredAt:at,source:"kernel"as const,type,factDigest:digest({type,plan:plan.planDigest}),redacted:true as const}));return{receipt:plan.planId,evidenceCount:projectRun(compiled.runId,events).lastSequence};}if(stage==="approved")return{receipt:"hitl-approved-stage5",artifactCount:2,evidenceCount:state.evidenceCount+3};if(stage==="commit_planned")return{receipt:"adopt-plan-stage5"};if(stage==="commit_approved")return{receipt:"adopt-plan-approved-stage5"};if(stage==="committed")return{receipt:"adopt-receipt-verified-stage5",workingRevision:13};if(stage==="revert_planned")return{receipt:"revert-plan-stage5"};if(stage==="revert_approved")return{receipt:"revert-plan-approved-stage5"};if(stage==="reverted")return{receipt:"revert-receipt-verified-stage5",workingRevision:14};throw new Error("STAGE5_ACTION_INVALID");}
@@ -0,0 +1,5 @@
1
+ "use server";
2
+ import{runDigest}from"@aipt/agent-run-kernel";import{createLocalAgentState}from"../../src/agent-state";import{initialStage5State,nextStage,parseStage5State,type Stage5State}from"./contracts";import{platformProof}from"./platform-proof";
3
+ const scope={tenantId:"tenant-fixture",projectId:"education-stage5",userId:"teacher-fixture"}as const;
4
+ export async function readStage5State():Promise<Stage5State>{const repository=createLocalAgentState({projectRoot:process.cwd(),environment:process.env});try{const document=await repository.document(scope,"conversation","education-stage5");return document?parseStage5State({...document.content as Stage5State,repositoryRevision:document.revision}):initialStage5State();}finally{repository.close();}}
5
+ export async function advanceStage5(expectedRevision:number):Promise<Stage5State>{const current=await readStage5State();if(current.repositoryRevision!==expectedRevision)throw new Error("STAGE5_REVISION_CONFLICT");const stage=nextStage(current.stage);if(stage===current.stage)throw new Error("STAGE5_COMPLETE");const proof=platformProof(stage,current),content=parseStage5State({...current,repositoryRevision:expectedRevision+1,stage,receipts:[...current.receipts,proof.receipt],evidenceCount:proof.evidenceCount??current.evidenceCount,artifactCount:proof.artifactCount??current.artifactCount,workingRevision:proof.workingRevision??current.workingRevision});const repository=createLocalAgentState({projectRoot:process.cwd(),environment:process.env});try{const contentDigest=runDigest(content);await repository.transact({schemaVersion:1,commandId:`stage5-${expectedRevision+1}`,idempotencyKey:`stage5-${expectedRevision+1}`,inputDigest:contentDigest,...scope,aggregateId:"education-stage5",expectedRevision,authorizationDigest:runDigest("fixture-only"),occurredAt:new Date().toISOString()},transaction=>transaction.putDocument({kind:"conversation",aggregateId:"education-stage5",expectedRevision,contentSchemaVersion:"education-stage5@1",contentDigest,content,updatedAt:new Date().toISOString()}));return content;}finally{repository.close();}}
@@ -0,0 +1 @@
1
+ import{render,screen}from"@testing-library/react";import"@testing-library/jest-dom/vitest";import{describe,expect,it,vi}from"vitest";vi.mock("./state.server",()=>({advanceStage5:vi.fn()}));import{initialStage5State}from"./contracts";import{Stage5AcceptanceWorkbench}from"./workbench";describe("阶段五验收 Consumer",()=>{it("默认中文、明确非生产边界且确认前零绑定零 Artifact",()=>{render(<Stage5AcceptanceWorkbench initialState={initialStage5State()}/>);expect(screen.getByText(/Development candidate/)).toBeInTheDocument();expect(screen.getByText(/确认前零绑定/)).toBeInTheDocument();expect(screen.getByText(/HITL 前必须为 0/)).toBeInTheDocument();expect(screen.getByRole("button",{name:"制作并验证 Fixture Skill"})).toBeEnabled();});});
@@ -0,0 +1,3 @@
1
+ "use client";import{useState}from"react";import type{DemoStage,Stage5State}from"./contracts";import{advanceStage5}from"./state.server";
2
+ const labels:Record<DemoStage,string>={draft:"制作并验证 Fixture Skill",skill_published:"教师查询并确认绑定",bound:"运行受治理 Agent",waiting_hitl:"教师批准 Candidate",approved:"生成 Adopt Plan",commit_planned:"批准 Adopt Plan",commit_approved:"Apply 并运行 Verifier",committed:"生成 Revert Plan",revert_planned:"批准 Revert Plan",revert_approved:"Apply Revert 并验证",reverted:"验收完成"};
3
+ export function Stage5AcceptanceWorkbench({initialState}:{initialState:Stage5State}){const[state,setState]=useState(initialState),[busy,setBusy]=useState(false),[problem,setProblem]=useState("");const advance=async()=>{setBusy(true);try{setState(await advanceStage5(state.repositoryRevision));setProblem("");}catch{setProblem("状态已变化,请刷新后重试。");}finally{setBusy(false);}};return <main style={{maxWidth:920,margin:"40px auto",padding:24,fontFamily:"system-ui"}}><p>Development candidate · 全部内容为虚构 · 不调用真实模型</p><h1>AI 教育 Agent 阶段五验收</h1><p>SQLite repository revision:r{state.repositoryRevision} 内容工作稿:r{state.workingRevision}</p>{problem&&<p role="alert">{problem}</p>}<ol><li>Skill Registry:{state.receipts.some(item=>item==="publish-stage5")?"已发布":"待验证"}</li><li>教师 Binding:{state.receipts.some(item=>item==="binding-stage5")?"已确认":"确认前零绑定"}</li><li>Run Evidence:{state.evidenceCount} 条</li><li>Artifact:{state.artifactCount} 份(HITL 前必须为 0)</li><li>工作稿 Commit:{state.workingRevision>12?`已形成 r${state.workingRevision}`:"尚未采用"}</li></ol><section><h2>不可变 Receipt</h2>{state.receipts.length?<ul>{state.receipts.map(item=><li key={item}>{item}</li>)}</ul>:<p>尚无 Receipt。</p>}</section><button disabled={busy||state.stage==="reverted"} onClick={()=>void advance()}>{busy?"正在验证…":labels[state.stage]}</button>{state.stage==="reverted"&&<p>✓ Adopt r13 与 Revert r14 均经 Plan / Approval / Apply / Verifier。</p>}</main>}