create-windy 0.6.12 → 0.6.15

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 (654) hide show
  1. package/dist/cli.js +785 -291
  2. package/package.json +1 -1
  3. package/template/.agents/skills/windy-business-module/SKILL.md +148 -70
  4. package/template/.windy-template.json +3 -3
  5. package/template/AGENTS.md +3 -6
  6. package/template/apps/agent-server/Dockerfile +2 -3
  7. package/template/apps/agent-server/README.md +38 -54
  8. package/template/apps/agent-server/pyproject.toml +0 -1
  9. package/template/apps/agent-server/src/southwind_agent_server/app.py +4 -2
  10. package/template/apps/agent-server/src/southwind_agent_server/attempt_context.py +191 -0
  11. package/template/apps/agent-server/src/southwind_agent_server/attempt_context_projection.py +203 -0
  12. package/template/apps/agent-server/src/southwind_agent_server/client_completion_contracts.py +61 -0
  13. package/template/apps/agent-server/src/southwind_agent_server/client_completion_governance.py +82 -0
  14. package/template/apps/agent-server/src/southwind_agent_server/client_completion_routes.py +121 -0
  15. package/template/apps/agent-server/src/southwind_agent_server/client_completion_runtime.py +158 -0
  16. package/template/apps/agent-server/src/southwind_agent_server/context_message_digest.py +24 -0
  17. package/template/apps/agent-server/src/southwind_agent_server/context_version_contracts.py +71 -0
  18. package/template/apps/agent-server/src/southwind_agent_server/context_version_port.py +307 -0
  19. package/template/apps/agent-server/src/southwind_agent_server/contracts.py +39 -0
  20. package/template/apps/agent-server/src/southwind_agent_server/deterministic.py +2 -0
  21. package/template/apps/agent-server/src/southwind_agent_server/engine.py +9 -1
  22. package/template/apps/agent-server/src/southwind_agent_server/engine_identity.py +2 -0
  23. package/template/apps/agent-server/src/southwind_agent_server/fingerprint.py +15 -0
  24. package/template/apps/agent-server/src/southwind_agent_server/health_routes.py +37 -3
  25. package/template/apps/agent-server/src/southwind_agent_server/openai_engine.py +46 -26
  26. package/template/apps/agent-server/src/southwind_agent_server/openai_engine_validation.py +32 -0
  27. package/template/apps/agent-server/src/southwind_agent_server/openai_provider.py +7 -0
  28. package/template/apps/agent-server/src/southwind_agent_server/postgres_report_insert.py +5 -2
  29. package/template/apps/agent-server/src/southwind_agent_server/postgres_report_queries.py +1 -0
  30. package/template/apps/agent-server/src/southwind_agent_server/postgres_report_store.py +6 -1
  31. package/template/apps/agent-server/src/southwind_agent_server/postgres_store.py +3 -2
  32. package/template/apps/agent-server/src/southwind_agent_server/postgres_store_backend.py +1 -0
  33. package/template/apps/agent-server/src/southwind_agent_server/provider_governance.py +21 -0
  34. package/template/apps/agent-server/src/southwind_agent_server/report_lifecycle.py +2 -1
  35. package/template/apps/agent-server/src/southwind_agent_server/report_presenter.py +1 -0
  36. package/template/apps/agent-server/src/southwind_agent_server/report_routes.py +7 -1
  37. package/template/apps/agent-server/src/southwind_agent_server/report_store.py +10 -56
  38. package/template/apps/agent-server/src/southwind_agent_server/report_store_protocol.py +75 -0
  39. package/template/apps/agent-server/src/southwind_agent_server/report_types.py +9 -2
  40. package/template/apps/agent-server/src/southwind_agent_server/runtime_budget.py +74 -0
  41. package/template/apps/agent-server/src/southwind_agent_server/runtime_factory.py +11 -3
  42. package/template/apps/agent-server/src/southwind_agent_server/service.py +41 -65
  43. package/template/apps/agent-server/src/southwind_agent_server/service_control.py +64 -0
  44. package/template/apps/agent-server/src/southwind_agent_server/service_execution.py +3 -0
  45. package/template/apps/agent-server/src/southwind_agent_server/sqlite_errors.py +2 -0
  46. package/template/apps/agent-server/src/southwind_agent_server/sqlite_schema.py +9 -1
  47. package/template/apps/agent-server/src/southwind_agent_server/sqlite_store.py +6 -5
  48. package/template/apps/agent-server/src/southwind_agent_server/store.py +2 -0
  49. package/template/apps/agent-server/src/southwind_agent_server/trajectory.py +137 -0
  50. package/template/apps/agent-server/src/southwind_agent_server/unavailable_engine.py +58 -0
  51. package/template/apps/agent-server/tests/test_api.py +30 -11
  52. package/template/apps/agent-server/tests/test_client_completion.py +230 -0
  53. package/template/apps/agent-server/tests/test_provider_attempt_reporting.py +12 -24
  54. package/template/apps/agent-server/tests/test_report_resilience.py +2 -0
  55. package/template/apps/agent-server/tests/test_report_routes.py +58 -1
  56. package/template/apps/agent-server/tests/test_report_summary_parity.py +1 -0
  57. package/template/apps/agent-server/tests/test_run_capacity.py +2 -0
  58. package/template/apps/agent-server/tests/test_runtime_factory_readiness.py +18 -3
  59. package/template/apps/agent-server/tests/test_trajectory.py +91 -0
  60. package/template/apps/agent-server/uv.lock +0 -259
  61. package/template/apps/server/Dockerfile +9 -4
  62. package/template/apps/server/src/agent/actor-projection-audit.ts +6 -0
  63. package/template/apps/server/src/agent/agent-run-delegation-policy.ts +115 -0
  64. package/template/apps/server/src/agent/agent-session-bootstrap.ts +23 -0
  65. package/template/apps/server/src/agent/{debug-session-facade-provider-failure.test.ts → agent-session-facade-provider-failure.test.ts} +24 -33
  66. package/template/apps/server/src/agent/{debug-session-facade.test.ts → agent-session-facade.test.ts} +34 -45
  67. package/template/apps/server/src/agent/{debug-session-facade.ts → agent-session-facade.ts} +50 -57
  68. package/template/apps/server/src/agent/{debug-session-id.test.ts → agent-session-id.test.ts} +5 -5
  69. package/template/apps/server/src/agent/{debug-session-id.ts → agent-session-id.ts} +7 -7
  70. package/template/apps/server/src/agent/{debug-session-provider-reader.ts → agent-session-provider-reader.ts} +18 -15
  71. package/template/apps/server/src/agent/{debug-session-routes.test.ts → agent-session-routes.test.ts} +16 -16
  72. package/template/apps/server/src/agent/{debug-session-routes.ts → agent-session-routes.ts} +12 -12
  73. package/template/apps/server/src/agent/{debug-session-validation.ts → agent-session-validation.ts} +13 -11
  74. package/template/apps/server/src/agent/client-session/attempt-authority.test.ts +162 -0
  75. package/template/apps/server/src/agent/client-session/attempt-authority.ts +191 -0
  76. package/template/apps/server/src/agent/client-session/authorization.ts +47 -0
  77. package/template/apps/server/src/agent/client-session/bootstrap.ts +112 -0
  78. package/template/apps/server/src/agent/client-session/capabilities.ts +19 -0
  79. package/template/apps/server/src/agent/client-session/completion.ts +350 -0
  80. package/template/apps/server/src/agent/client-session/contracts.ts +159 -0
  81. package/template/apps/server/src/agent/client-session/creation.ts +103 -0
  82. package/template/apps/server/src/agent/client-session/digest.ts +49 -0
  83. package/template/apps/server/src/agent/client-session/drizzle-records.ts +150 -0
  84. package/template/apps/server/src/agent/client-session/drizzle-repository.integration.test.ts +197 -0
  85. package/template/apps/server/src/agent/client-session/drizzle-repository.ts +236 -0
  86. package/template/apps/server/src/agent/client-session/errors.ts +28 -0
  87. package/template/apps/server/src/agent/client-session/finalization.ts +99 -0
  88. package/template/apps/server/src/agent/client-session/fixtures/page-agent-1.12.2-request.json +52 -0
  89. package/template/apps/server/src/agent/client-session/host-auth.test.ts +144 -0
  90. package/template/apps/server/src/agent/client-session/host-auth.ts +122 -0
  91. package/template/apps/server/src/agent/client-session/host-revocation-composition.test.ts +77 -0
  92. package/template/apps/server/src/agent/client-session/host-revocation-composition.ts +28 -0
  93. package/template/apps/server/src/agent/client-session/launch-authority.contract.test.ts +21 -0
  94. package/template/apps/server/src/agent/client-session/manifest-admission.ts +251 -0
  95. package/template/apps/server/src/agent/client-session/openai-stream.ts +123 -0
  96. package/template/apps/server/src/agent/client-session/presentation.ts +46 -0
  97. package/template/apps/server/src/agent/client-session/remote-provider.test.ts +144 -0
  98. package/template/apps/server/src/agent/client-session/remote-provider.ts +216 -0
  99. package/template/apps/server/src/agent/client-session/repository.ts +225 -0
  100. package/template/apps/server/src/agent/client-session/request.test.ts +69 -0
  101. package/template/apps/server/src/agent/client-session/request.ts +289 -0
  102. package/template/apps/server/src/agent/client-session/revocation.ts +23 -0
  103. package/template/apps/server/src/agent/client-session/routes.ts +315 -0
  104. package/template/apps/server/src/agent/client-session/runtime-audit.ts +42 -0
  105. package/template/apps/server/src/agent/client-session/service.test-support.ts +248 -0
  106. package/template/apps/server/src/agent/client-session/service.test.ts +268 -0
  107. package/template/apps/server/src/agent/client-session/service.ts +316 -0
  108. package/template/apps/server/src/agent/client-session/terminal-digest.test.ts +23 -0
  109. package/template/apps/server/src/agent/client-workflow-artifact/active-blob-references.ts +8 -0
  110. package/template/apps/server/src/agent/client-workflow-artifact/artifact-builder.ts +60 -0
  111. package/template/apps/server/src/agent/client-workflow-artifact/authority-current.ts +59 -0
  112. package/template/apps/server/src/agent/client-workflow-artifact/binding-registry.test.ts +189 -0
  113. package/template/apps/server/src/agent/client-workflow-artifact/binding-registry.ts +153 -0
  114. package/template/apps/server/src/agent/client-workflow-artifact/bootstrap.ts +77 -0
  115. package/template/apps/server/src/agent/client-workflow-artifact/cancellation.ts +47 -0
  116. package/template/apps/server/src/agent/client-workflow-artifact/completed-recovery.ts +31 -0
  117. package/template/apps/server/src/agent/client-workflow-artifact/contracts.ts +104 -0
  118. package/template/apps/server/src/agent/client-workflow-artifact/drizzle-locks.ts +30 -0
  119. package/template/apps/server/src/agent/client-workflow-artifact/drizzle-mapper.ts +138 -0
  120. package/template/apps/server/src/agent/client-workflow-artifact/drizzle-repository.ts +346 -0
  121. package/template/apps/server/src/agent/client-workflow-artifact/error.ts +21 -0
  122. package/template/apps/server/src/agent/client-workflow-artifact/handler.ts +167 -0
  123. package/template/apps/server/src/agent/client-workflow-artifact/host-revocation.ts +29 -0
  124. package/template/apps/server/src/agent/client-workflow-artifact/in-memory-repository.ts +232 -0
  125. package/template/apps/server/src/agent/client-workflow-artifact/job-port.ts +101 -0
  126. package/template/apps/server/src/agent/client-workflow-artifact/presentation.ts +41 -0
  127. package/template/apps/server/src/agent/client-workflow-artifact/recovery.contract.test.ts +253 -0
  128. package/template/apps/server/src/agent/client-workflow-artifact/release-binding.ts +85 -0
  129. package/template/apps/server/src/agent/client-workflow-artifact/repository.test.ts +204 -0
  130. package/template/apps/server/src/agent/client-workflow-artifact/repository.ts +97 -0
  131. package/template/apps/server/src/agent/client-workflow-artifact/routes-handler.contract.test.ts +201 -0
  132. package/template/apps/server/src/agent/client-workflow-artifact/routes.ts +161 -0
  133. package/template/apps/server/src/agent/client-workflow-artifact/runtime-composition.ts +101 -0
  134. package/template/apps/server/src/agent/client-workflow-artifact/scope-authority.ts +39 -0
  135. package/template/apps/server/src/agent/client-workflow-artifact/service-authorization.ts +117 -0
  136. package/template/apps/server/src/agent/client-workflow-artifact/service-support.ts +28 -0
  137. package/template/apps/server/src/agent/client-workflow-artifact/service.contract.test.ts +345 -0
  138. package/template/apps/server/src/agent/client-workflow-artifact/service.ts +350 -0
  139. package/template/apps/server/src/agent/client-workflow-artifact/session-boundary.ts +39 -0
  140. package/template/apps/server/src/agent/client-workflow-artifact/source-access.contract.test.ts +98 -0
  141. package/template/apps/server/src/agent/client-workflow-artifact/source-access.ts +80 -0
  142. package/template/apps/server/src/agent/client-workflow-artifact/takeover.ts +122 -0
  143. package/template/apps/server/src/agent/client-workflow-artifact/task-authority.contract.test.ts +97 -0
  144. package/template/apps/server/src/agent/client-workflow-artifact/task-authority.ts +147 -0
  145. package/template/apps/server/src/agent/client-workflow-artifact/terminal-authority.contract.test.ts +100 -0
  146. package/template/apps/server/src/agent/client-workflow-artifact/terminal-replay.ts +31 -0
  147. package/template/apps/server/src/agent/client-workflow-artifact/terminal-seal.ts +211 -0
  148. package/template/apps/server/src/agent/client-workflow-artifact/workflow-artifact.test-support.ts +173 -0
  149. package/template/apps/server/src/agent/client-workflow-artifact/workflow-loader.contract.test.ts +254 -0
  150. package/template/apps/server/src/agent/client-workflow-artifact/workflow-loader.ts +285 -0
  151. package/template/apps/server/src/agent/context-memory/attempt-context-contracts.ts +60 -0
  152. package/template/apps/server/src/agent/context-memory/authoritative-source-registry.ts +127 -0
  153. package/template/apps/server/src/agent/context-memory/context-builder.test.ts +160 -0
  154. package/template/apps/server/src/agent/context-memory/context-builder.ts +184 -0
  155. package/template/apps/server/src/agent/context-memory/contracts.ts +284 -0
  156. package/template/apps/server/src/agent/context-memory/digest.ts +22 -0
  157. package/template/apps/server/src/agent/context-memory/memory-authorization.ts +82 -0
  158. package/template/apps/server/src/agent/context-memory/memory-content.ts +69 -0
  159. package/template/apps/server/src/agent/context-memory/memory-object-registry.ts +87 -0
  160. package/template/apps/server/src/agent/context-memory/memory-projector-contracts.ts +121 -0
  161. package/template/apps/server/src/agent/context-memory/memory-projector-validation.ts +155 -0
  162. package/template/apps/server/src/agent/context-memory/memory-projector.test.ts +19 -0
  163. package/template/apps/server/src/agent/context-memory/memory-projector.ts +259 -0
  164. package/template/apps/server/src/agent/context-memory/memory-retrieval-policy.ts +195 -0
  165. package/template/apps/server/src/agent/context-memory/memory-retriever.test.ts +339 -0
  166. package/template/apps/server/src/agent/context-memory/memory-retriever.ts +184 -0
  167. package/template/apps/server/src/agent/context-memory/search-provider-port.test.ts +62 -0
  168. package/template/apps/server/src/agent/context-memory/search-provider-port.ts +75 -0
  169. package/template/apps/server/src/agent/context-memory/working-context-expiry.ts +95 -0
  170. package/template/apps/server/src/agent/context-message-recovery.ts +23 -0
  171. package/template/apps/server/src/agent/context-version-routes.ts +241 -0
  172. package/template/apps/server/src/agent/context-version-runtime.ts +332 -0
  173. package/template/apps/server/src/agent/context-version-support.ts +93 -0
  174. package/template/apps/server/src/agent/context-version-validation.ts +118 -0
  175. package/template/apps/server/src/agent/drizzle-run-binding-repository.ts +11 -0
  176. package/template/apps/server/src/agent/idempotency-key.ts +9 -1
  177. package/template/apps/server/src/agent/memory-runtime-adapters.ts +266 -0
  178. package/template/apps/server/src/agent/memory-scope-binding.ts +14 -0
  179. package/template/apps/server/src/agent/module-ai-port-factory.ts +41 -0
  180. package/template/apps/server/src/agent/provider-input-governance.ts +19 -0
  181. package/template/apps/server/src/agent/remote-runtime-response.ts +162 -0
  182. package/template/apps/server/src/agent/remote-runtime.ts +53 -153
  183. package/template/apps/server/src/agent/run-audit.ts +2 -2
  184. package/template/apps/server/src/agent/run-authorization.test.ts +27 -0
  185. package/template/apps/server/src/agent/run-authorization.ts +60 -1
  186. package/template/apps/server/src/agent/run-binding-repository.ts +9 -0
  187. package/template/apps/server/src/agent/run-browser-authorization.ts +79 -0
  188. package/template/apps/server/src/agent/run-contracts.ts +23 -0
  189. package/template/apps/server/src/agent/run-facade.test-support.ts +17 -4
  190. package/template/apps/server/src/agent/run-facade.test.ts +16 -0
  191. package/template/apps/server/src/agent/run-facade.ts +139 -139
  192. package/template/apps/server/src/agent/run-failure-cleanup.ts +58 -0
  193. package/template/apps/server/src/agent/run-operation-policy.ts +20 -0
  194. package/template/apps/server/src/agent/run-route-input.ts +19 -1
  195. package/template/apps/server/src/agent/run-routes.ts +133 -5
  196. package/template/apps/server/src/agent/run-runtime-request.ts +89 -0
  197. package/template/apps/server/src/agent/run-session-authorization.ts +97 -0
  198. package/template/apps/server/src/agent/run-start-preparation.ts +71 -0
  199. package/template/apps/server/src/agent/runtime-bootstrap-input.ts +46 -0
  200. package/template/apps/server/src/agent/runtime-bootstrap-report.test.ts +53 -1
  201. package/template/apps/server/src/agent/runtime-bootstrap.ts +115 -112
  202. package/template/apps/server/src/agent/runtime-public-ports.ts +40 -0
  203. package/template/apps/server/src/agent/runtime-tool-composition.ts +38 -0
  204. package/template/apps/server/src/agent/session-context-source-support.ts +38 -0
  205. package/template/apps/server/src/agent/session-context-source.ts +346 -0
  206. package/template/apps/server/src/agent/session-invalidation/contracts.ts +216 -0
  207. package/template/apps/server/src/agent/session-invalidation/dispatcher.contract.test.ts +333 -0
  208. package/template/apps/server/src/agent/session-invalidation/dispatcher.ts +205 -0
  209. package/template/apps/server/src/agent/session-invalidation/module-authoritative-producer.test.ts +127 -0
  210. package/template/apps/server/src/agent/session-invalidation/module-authoritative-producer.ts +202 -0
  211. package/template/apps/server/src/agent/session-invalidation/read-guard.ts +39 -0
  212. package/template/apps/server/src/agent/session-invalidation/runtime.ts +69 -0
  213. package/template/apps/server/src/agent/session-invalidation/test-envelopes.ts +24 -0
  214. package/template/apps/server/src/agent/session-invalidation/worker.contract.test.ts +135 -0
  215. package/template/apps/server/src/agent/session-invalidation/worker.ts +76 -0
  216. package/template/apps/server/src/agent/session-log/checkpoint-digest.ts +36 -0
  217. package/template/apps/server/src/agent/session-log/domain.ts +123 -0
  218. package/template/apps/server/src/agent/session-log/events.ts +229 -0
  219. package/template/apps/server/src/agent/session-log/history.ts +143 -0
  220. package/template/apps/server/src/agent/session-log/in-memory-repository.ts +340 -0
  221. package/template/apps/server/src/agent/session-log/lifecycle.ts +67 -0
  222. package/template/apps/server/src/agent/session-log/replay-policy.ts +76 -0
  223. package/template/apps/server/src/agent/session-log/repository.ts +103 -0
  224. package/template/apps/server/src/agent/session-log/service.ts +349 -0
  225. package/template/apps/server/src/agent/session-log/session-log.test.ts +282 -0
  226. package/template/apps/server/src/agent/session-persistence/drizzle-context-memory.ts +348 -0
  227. package/template/apps/server/src/agent/session-persistence/drizzle-governed-context.ts +328 -0
  228. package/template/apps/server/src/agent/session-persistence/drizzle-invalidation-outbox.ts +260 -0
  229. package/template/apps/server/src/agent/session-persistence/drizzle-memory-projection-deletion.ts +56 -0
  230. package/template/apps/server/src/agent/session-persistence/drizzle-run-projection-receipt.ts +80 -0
  231. package/template/apps/server/src/agent/session-persistence/drizzle-session-fork.ts +147 -0
  232. package/template/apps/server/src/agent/session-persistence/drizzle-session-list.ts +24 -0
  233. package/template/apps/server/src/agent/session-persistence/drizzle-session-mapping.ts +154 -0
  234. package/template/apps/server/src/agent/session-persistence/drizzle-session-mutations.ts +64 -0
  235. package/template/apps/server/src/agent/session-persistence/drizzle-session-repository.ts +335 -0
  236. package/template/apps/server/src/agent/session-persistence/invalidation-projections.ts +229 -0
  237. package/template/apps/server/src/agent/session-persistence/payload-codec.ts +90 -0
  238. package/template/apps/server/src/agent/session-projection-access.ts +167 -0
  239. package/template/apps/server/src/agent/session-projection-bootstrap.ts +87 -0
  240. package/template/apps/server/src/agent/session-projection-errors.ts +22 -0
  241. package/template/apps/server/src/agent/session-projection-facade.ts +349 -0
  242. package/template/apps/server/src/agent/session-projection-routes.ts +215 -0
  243. package/template/apps/server/src/agent/session-projection-view.ts +137 -0
  244. package/template/apps/server/src/agent/session-result-memory.ts +228 -0
  245. package/template/apps/server/src/agent/session-run-lifecycle.ts +85 -0
  246. package/template/apps/server/src/agent/session-run-link-contracts.ts +56 -0
  247. package/template/apps/server/src/agent/session-run-link.ts +343 -0
  248. package/template/apps/server/src/agent/session-run-recovery.ts +16 -0
  249. package/template/apps/server/src/agent/session-runtime-composition.ts +265 -0
  250. package/template/apps/server/src/agent/session-source-chain-authorizer.ts +141 -0
  251. package/template/apps/server/src/agent/session-terminal-reconciler.ts +100 -0
  252. package/template/apps/server/src/agent/session-turn-state.ts +49 -0
  253. package/template/apps/server/src/agent/tool-audit.ts +3 -3
  254. package/template/apps/server/src/agent/tool-execution-receipt.ts +13 -0
  255. package/template/apps/server/src/agent/tool-host.ts +41 -4
  256. package/template/apps/server/src/agent/tool-registry-composition.ts +52 -0
  257. package/template/apps/server/src/agent/tool-registry.test.ts +5 -5
  258. package/template/apps/server/src/agent/tool-registry.ts +53 -59
  259. package/template/apps/server/src/agent/unavailable-routes.ts +70 -5
  260. package/template/apps/server/src/agent/workflow-durable-runtime-input.ts +32 -0
  261. package/template/apps/server/src/agent/workflow-runtime-bootstrap.ts +61 -0
  262. package/template/apps/server/src/agent-workflow/adapter-dispatch.ts +148 -0
  263. package/template/apps/server/src/agent-workflow/approval-node-adapter.ts +77 -0
  264. package/template/apps/server/src/agent-workflow/artifact-access-error.ts +9 -0
  265. package/template/apps/server/src/agent-workflow/artifact-node-adapter.ts +67 -0
  266. package/template/apps/server/src/agent-workflow/artifact-policy.ts +71 -0
  267. package/template/apps/server/src/agent-workflow/artifact-source-authorization.ts +91 -0
  268. package/template/apps/server/src/agent-workflow/authorization.ts +238 -0
  269. package/template/apps/server/src/agent-workflow/budget-ledger.ts +118 -0
  270. package/template/apps/server/src/agent-workflow/budget-validation.ts +305 -0
  271. package/template/apps/server/src/agent-workflow/canonical-agent-run-binding.ts +17 -0
  272. package/template/apps/server/src/agent-workflow/canonical-agent-run-evidence.ts +142 -0
  273. package/template/apps/server/src/agent-workflow/canonical-agent-run-port.ts +304 -0
  274. package/template/apps/server/src/agent-workflow/canonical-agent-run-remote.ts +64 -0
  275. package/template/apps/server/src/agent-workflow/canonical-json.ts +16 -0
  276. package/template/apps/server/src/agent-workflow/command-drive.ts +195 -0
  277. package/template/apps/server/src/agent-workflow/command-error.ts +9 -0
  278. package/template/apps/server/src/agent-workflow/command-facade.ts +349 -0
  279. package/template/apps/server/src/agent-workflow/command-input.ts +133 -0
  280. package/template/apps/server/src/agent-workflow/condition-node-adapter.ts +69 -0
  281. package/template/apps/server/src/agent-workflow/definition-budget-validation.ts +41 -0
  282. package/template/apps/server/src/agent-workflow/definition-node-validation.ts +197 -0
  283. package/template/apps/server/src/agent-workflow/definition-validation.ts +198 -0
  284. package/template/apps/server/src/agent-workflow/delegated-tool-authorization.ts +15 -0
  285. package/template/apps/server/src/agent-workflow/delegation-child-delivery.ts +129 -0
  286. package/template/apps/server/src/agent-workflow/delegation-execution-authorization.ts +218 -0
  287. package/template/apps/server/src/agent-workflow/delegation-policy-validation.ts +253 -0
  288. package/template/apps/server/src/agent-workflow/delegation-policy.ts +179 -0
  289. package/template/apps/server/src/agent-workflow/drizzle-artifact-port.ts +211 -0
  290. package/template/apps/server/src/agent-workflow/drizzle-artifact-support.ts +152 -0
  291. package/template/apps/server/src/agent-workflow/drizzle-budget-ledger-settlement.ts +271 -0
  292. package/template/apps/server/src/agent-workflow/drizzle-budget-ledger-support.ts +226 -0
  293. package/template/apps/server/src/agent-workflow/drizzle-budget-ledger.ts +189 -0
  294. package/template/apps/server/src/agent-workflow/drizzle-cancellation-reconcile.ts +177 -0
  295. package/template/apps/server/src/agent-workflow/drizzle-delegated-tool-authorization.ts +155 -0
  296. package/template/apps/server/src/agent-workflow/drizzle-delegation-completion.ts +84 -0
  297. package/template/apps/server/src/agent-workflow/drizzle-delegation-lifecycle.ts +139 -0
  298. package/template/apps/server/src/agent-workflow/drizzle-delegation-port.ts +288 -0
  299. package/template/apps/server/src/agent-workflow/drizzle-effect-command-fence.ts +333 -0
  300. package/template/apps/server/src/agent-workflow/drizzle-evaluation-repository.ts +214 -0
  301. package/template/apps/server/src/agent-workflow/drizzle-event-validation.ts +43 -0
  302. package/template/apps/server/src/agent-workflow/drizzle-recovery-admission.ts +115 -0
  303. package/template/apps/server/src/agent-workflow/drizzle-repository-lineage.ts +103 -0
  304. package/template/apps/server/src/agent-workflow/drizzle-repository-mappers.ts +317 -0
  305. package/template/apps/server/src/agent-workflow/drizzle-repository-write.ts +311 -0
  306. package/template/apps/server/src/agent-workflow/drizzle-repository.ts +285 -0
  307. package/template/apps/server/src/agent-workflow/drizzle-side-effect-repository.ts +83 -0
  308. package/template/apps/server/src/agent-workflow/drizzle-write-support.ts +101 -0
  309. package/template/apps/server/src/agent-workflow/durable-continuation-authorization.ts +109 -0
  310. package/template/apps/server/src/agent-workflow/durable-continuation-driver.ts +97 -0
  311. package/template/apps/server/src/agent-workflow/durable-continuation-runtime.ts +173 -0
  312. package/template/apps/server/src/agent-workflow/durable-job-node-adapter.ts +106 -0
  313. package/template/apps/server/src/agent-workflow/effect-command-fence.ts +250 -0
  314. package/template/apps/server/src/agent-workflow/evaluation-evidence-coordinates.ts +225 -0
  315. package/template/apps/server/src/agent-workflow/evaluation-evidence-metrics.ts +280 -0
  316. package/template/apps/server/src/agent-workflow/evaluation-evidence-reader.ts +326 -0
  317. package/template/apps/server/src/agent-workflow/evaluation-metrics-validation.ts +85 -0
  318. package/template/apps/server/src/agent-workflow/evaluation-projection.ts +70 -0
  319. package/template/apps/server/src/agent-workflow/evaluation-repository.ts +134 -0
  320. package/template/apps/server/src/agent-workflow/evaluation-service.ts +292 -0
  321. package/template/apps/server/src/agent-workflow/evaluation-tool-registration.ts +95 -0
  322. package/template/apps/server/src/agent-workflow/evaluation-validation.ts +331 -0
  323. package/template/apps/server/src/agent-workflow/event-validation.ts +277 -0
  324. package/template/apps/server/src/agent-workflow/governed-tool-schema.ts +55 -0
  325. package/template/apps/server/src/agent-workflow/in-memory-evaluation-repository.ts +123 -0
  326. package/template/apps/server/src/agent-workflow/in-memory-mutation-validation.ts +154 -0
  327. package/template/apps/server/src/agent-workflow/in-memory-repository-support.ts +277 -0
  328. package/template/apps/server/src/agent-workflow/in-memory-repository.ts +339 -0
  329. package/template/apps/server/src/agent-workflow/in-memory-side-effect-store.ts +78 -0
  330. package/template/apps/server/src/agent-workflow/input-receipt.ts +55 -0
  331. package/template/apps/server/src/agent-workflow/model-node-adapter.ts +86 -0
  332. package/template/apps/server/src/agent-workflow/model-pricing-catalog.ts +215 -0
  333. package/template/apps/server/src/agent-workflow/node-adapter-factory.ts +83 -0
  334. package/template/apps/server/src/agent-workflow/node-adapters.ts +50 -0
  335. package/template/apps/server/src/agent-workflow/node-execution-ports.ts +185 -0
  336. package/template/apps/server/src/agent-workflow/node-input-receipt-port.ts +42 -0
  337. package/template/apps/server/src/agent-workflow/node-result-receipt.ts +50 -0
  338. package/template/apps/server/src/agent-workflow/platform-node-adapter-support.ts +185 -0
  339. package/template/apps/server/src/agent-workflow/platform-node-adapters.ts +264 -0
  340. package/template/apps/server/src/agent-workflow/platform-node-approval.ts +146 -0
  341. package/template/apps/server/src/agent-workflow/platform-node-direct-adapters.ts +65 -0
  342. package/template/apps/server/src/agent-workflow/production-delegation-scope.ts +58 -0
  343. package/template/apps/server/src/agent-workflow/production-node-policies.ts +62 -0
  344. package/template/apps/server/src/agent-workflow/project-launch-authority.contract.test.ts +53 -0
  345. package/template/apps/server/src/agent-workflow/project-launch-authority.ts +92 -0
  346. package/template/apps/server/src/agent-workflow/query-service.ts +198 -0
  347. package/template/apps/server/src/agent-workflow/release.ts +96 -0
  348. package/template/apps/server/src/agent-workflow/repository.ts +157 -0
  349. package/template/apps/server/src/agent-workflow/routes.ts +307 -0
  350. package/template/apps/server/src/agent-workflow/runtime-composition.ts +324 -0
  351. package/template/apps/server/src/agent-workflow/scheduler-cancellation-reconcile.ts +253 -0
  352. package/template/apps/server/src/agent-workflow/scheduler-cancellation-support.ts +145 -0
  353. package/template/apps/server/src/agent-workflow/scheduler-cancellation.ts +2 -0
  354. package/template/apps/server/src/agent-workflow/scheduler-context.ts +85 -0
  355. package/template/apps/server/src/agent-workflow/scheduler-deadline.ts +65 -0
  356. package/template/apps/server/src/agent-workflow/scheduler-effect-result.ts +205 -0
  357. package/template/apps/server/src/agent-workflow/scheduler-execution-convergence.ts +174 -0
  358. package/template/apps/server/src/agent-workflow/scheduler-execution.ts +211 -0
  359. package/template/apps/server/src/agent-workflow/scheduler-failure.ts +102 -0
  360. package/template/apps/server/src/agent-workflow/scheduler-join-cancellation.ts +282 -0
  361. package/template/apps/server/src/agent-workflow/scheduler-mutation-queue.ts +13 -0
  362. package/template/apps/server/src/agent-workflow/scheduler-node-timeout.ts +139 -0
  363. package/template/apps/server/src/agent-workflow/scheduler-parallel-dispatch.ts +99 -0
  364. package/template/apps/server/src/agent-workflow/scheduler-recovery-activation.ts +63 -0
  365. package/template/apps/server/src/agent-workflow/scheduler-recovery-budget.ts +41 -0
  366. package/template/apps/server/src/agent-workflow/scheduler-recovery-effect.ts +331 -0
  367. package/template/apps/server/src/agent-workflow/scheduler-recovery-event-time.ts +26 -0
  368. package/template/apps/server/src/agent-workflow/scheduler-recovery-failed-policy.ts +129 -0
  369. package/template/apps/server/src/agent-workflow/scheduler-recovery-node.ts +208 -0
  370. package/template/apps/server/src/agent-workflow/scheduler-recovery-policy-convergence.ts +140 -0
  371. package/template/apps/server/src/agent-workflow/scheduler-reservation-convergence.ts +40 -0
  372. package/template/apps/server/src/agent-workflow/scheduler-side-effect-execution.ts +249 -0
  373. package/template/apps/server/src/agent-workflow/scheduler-support.ts +235 -0
  374. package/template/apps/server/src/agent-workflow/scheduler-workflow-cancellation.ts +296 -0
  375. package/template/apps/server/src/agent-workflow/scheduler.ts +289 -0
  376. package/template/apps/server/src/agent-workflow/service-completion.ts +102 -0
  377. package/template/apps/server/src/agent-workflow/service-mutation-identity.ts +94 -0
  378. package/template/apps/server/src/agent-workflow/service-node-admission.ts +36 -0
  379. package/template/apps/server/src/agent-workflow/service-node-run-update.ts +55 -0
  380. package/template/apps/server/src/agent-workflow/service-recovery-events.ts +38 -0
  381. package/template/apps/server/src/agent-workflow/service-recovery.ts +264 -0
  382. package/template/apps/server/src/agent-workflow/service-retry.ts +86 -0
  383. package/template/apps/server/src/agent-workflow/service-run-command.ts +131 -0
  384. package/template/apps/server/src/agent-workflow/service-state-error.ts +21 -0
  385. package/template/apps/server/src/agent-workflow/service-state-invariants.ts +44 -0
  386. package/template/apps/server/src/agent-workflow/service-support.ts +152 -0
  387. package/template/apps/server/src/agent-workflow/service.ts +307 -0
  388. package/template/apps/server/src/agent-workflow/side-effect-state.ts +226 -0
  389. package/template/apps/server/src/agent-workflow/state-machine.ts +321 -0
  390. package/template/apps/server/src/agent-workflow/subagent-node-adapter.ts +229 -0
  391. package/template/apps/server/src/agent-workflow/tool-node-adapter.ts +259 -0
  392. package/template/apps/server/src/agent-workflow/usage.ts +149 -0
  393. package/template/apps/server/src/agent-workflow/wait-signal-service.ts +147 -0
  394. package/template/apps/server/src/agent-workflow/workflow-artifact-token.ts +109 -0
  395. package/template/apps/server/src/agent-workflow/workflow-value-validation.ts +101 -0
  396. package/template/apps/server/src/agent-workflow/workspace-policy.ts +109 -0
  397. package/template/apps/server/src/ai-runtime-report/remote-parser.ts +41 -0
  398. package/template/apps/server/src/ai-runtime-report/service.test.ts +2 -0
  399. package/template/apps/server/src/app/agent-runtime-composition.ts +43 -0
  400. package/template/apps/server/src/app/client-agent-host-auth-binding.ts +10 -0
  401. package/template/apps/server/src/app/client-agent-workflow-artifact-binding.ts +14 -0
  402. package/template/apps/server/src/application-services.ts +6 -0
  403. package/template/apps/server/src/auth/actor-resolver.test.ts +33 -0
  404. package/template/apps/server/src/auth/actor-resolver.ts +6 -1
  405. package/template/apps/server/src/auth/composition.ts +36 -0
  406. package/template/apps/server/src/auth/routes.test-support.ts +2 -0
  407. package/template/apps/server/src/auth/routes.test.ts +18 -0
  408. package/template/apps/server/src/auth/runtime.ts +2 -0
  409. package/template/apps/server/src/auth/service-options.ts +16 -0
  410. package/template/apps/server/src/auth/service.ts +7 -12
  411. package/template/apps/server/src/data-access/scope-containment.test.ts +31 -0
  412. package/template/apps/server/src/data-access/scope-containment.ts +48 -0
  413. package/template/apps/server/src/index.ts +35 -37
  414. package/template/apps/server/src/jobs/artifact-publication.test.ts +192 -0
  415. package/template/apps/server/src/jobs/artifact-publication.ts +56 -0
  416. package/template/apps/server/src/jobs/artifact-publisher.ts +101 -0
  417. package/template/apps/server/src/jobs/drizzle-artifact.ts +73 -1
  418. package/template/apps/server/src/jobs/drizzle-execution-repository.ts +14 -1
  419. package/template/apps/server/src/jobs/drizzle-execution.integration.test.ts +65 -0
  420. package/template/apps/server/src/jobs/drizzle-repository.integration.test.ts +1 -0
  421. package/template/apps/server/src/jobs/execution-repository.ts +28 -0
  422. package/template/apps/server/src/jobs/execution.test.ts +3 -1
  423. package/template/apps/server/src/jobs/in-memory-execution.ts +16 -0
  424. package/template/apps/server/src/jobs/in-memory-lease.ts +45 -1
  425. package/template/apps/server/src/jobs/legacy-adapter.integration.test.ts +2 -0
  426. package/template/apps/server/src/jobs/postgres-cleanup-contract.test.ts +58 -0
  427. package/template/apps/server/src/jobs/worker.ts +8 -14
  428. package/template/apps/server/src/license/pairing-service.test.ts +1 -1
  429. package/template/apps/server/src/module-host/agent-session-memory-port.ts +91 -0
  430. package/template/apps/server/src/module-host/{debug-session-provider-registration.test.ts → agent-session-provider-registration.test.ts} +42 -17
  431. package/template/apps/server/src/module-host/{debug-session-provider-registration.ts → agent-session-provider-registration.ts} +18 -18
  432. package/template/apps/server/src/module-host/agent-source-invalidation-port.ts +53 -0
  433. package/template/apps/server/src/module-host/background-ai-unavailable.ts +18 -0
  434. package/template/apps/server/src/module-host/durable-context.ts +19 -22
  435. package/template/apps/server/src/module-host/http-runtime.ts +14 -0
  436. package/template/apps/server/src/module-host/implementation-completeness.test.ts +80 -1
  437. package/template/apps/server/src/module-host/implementation-completeness.ts +28 -1
  438. package/template/apps/server/src/module-host/initialize-contracts.ts +4 -5
  439. package/template/apps/server/src/module-host/initialize.ts +4 -4
  440. package/template/apps/server/src/module-host/request-context.test.ts +5 -5
  441. package/template/apps/server/src/module-host/request-context.ts +40 -8
  442. package/template/apps/server/src/module-host/route-install-context.ts +65 -0
  443. package/template/apps/server/src/module-host/route-installer.ts +11 -56
  444. package/template/apps/server/src/module-host/scoped-host.ts +17 -12
  445. package/template/apps/server/src/module-host/storage-authorization-binding.test.ts +3 -3
  446. package/template/apps/server/src/module-host/storage-port.ts +3 -0
  447. package/template/apps/server/src/module-host/workflow-input-artifact-port.test.ts +104 -0
  448. package/template/apps/server/src/module-host/workflow-input-artifact-port.ts +229 -0
  449. package/template/apps/server/src/module-host/workflow-input-materialization.test.ts +163 -0
  450. package/template/apps/server/src/module-host/workflow-input-materialization.ts +161 -0
  451. package/template/apps/server/src/module-host.ts +3 -5
  452. package/template/apps/server/src/runtime.ts +3 -36
  453. package/template/apps/server/src/storage/routes-stream-cancellation.test.ts +19 -0
  454. package/template/apps/server/src/storage/routes.ts +3 -1
  455. package/template/apps/server/src/system/actor.ts +15 -2
  456. package/template/apps/server/src/system/authorization-invalidation-bridge.ts +30 -0
  457. package/template/apps/server/src/system/authorization-invalidation-composition.ts +36 -0
  458. package/template/apps/server/src/system/drizzle-system.ts +8 -1
  459. package/template/apps/server/src/system/identity-route-config.ts +9 -1
  460. package/template/apps/server/src/system/routes.ts +3 -0
  461. package/template/apps/server/src/system/seed.ts +3 -0
  462. package/template/apps/server/src/system/user-account-policy.ts +91 -0
  463. package/template/apps/server/src/workflow/drizzle-repository.integration.test.ts +1 -0
  464. package/template/apps/web/package.json +1 -0
  465. package/template/apps/web/src/layout/AppSidebar.vue +2 -0
  466. package/template/apps/web/src/pages/system/AgentSessionPage.vue +73 -0
  467. package/template/apps/web/src/pages/system/AgentSessionPage.webtest.ts +66 -0
  468. package/template/apps/web/src/pages/system/AgentWorkflowPage.vue +69 -0
  469. package/template/apps/web/src/pages/system/components/agent-session/AgentSessionDetail.vue +114 -0
  470. package/template/apps/web/src/pages/system/components/agent-session/AgentSessionList.vue +84 -0
  471. package/template/apps/web/src/pages/system/components/agent-session/ContextVersionPanel.vue +119 -0
  472. package/template/apps/web/src/pages/system/components/agent-session/ContextVersionPanel.webtest.ts +46 -0
  473. package/template/apps/web/src/pages/system/components/agent-session/MemoryProjectionPanel.vue +163 -0
  474. package/template/apps/web/src/pages/system/components/agent-session/MemoryProjectionPanel.webtest.ts +62 -0
  475. package/template/apps/web/src/pages/system/components/agent-session/SessionTimeline.vue +71 -0
  476. package/template/apps/web/src/pages/system/components/agent-session/SessionTimeline.webtest.ts +34 -0
  477. package/template/apps/web/src/pages/system/components/agent-session/agent-session-presenter.ts +56 -0
  478. package/template/apps/web/src/pages/system/components/agent-workflow/WorkflowNodeCard.vue +39 -0
  479. package/template/apps/web/src/pages/system/components/agent-workflow/WorkflowNodeDetail.vue +172 -0
  480. package/template/apps/web/src/pages/system/components/agent-workflow/WorkflowRunDetail.vue +151 -0
  481. package/template/apps/web/src/pages/system/components/agent-workflow/WorkflowRunGraph.vue +96 -0
  482. package/template/apps/web/src/pages/system/components/agent-workflow/WorkflowRunList.vue +100 -0
  483. package/template/apps/web/src/pages/system/components/agent-workflow/WorkflowRunSummary.vue +148 -0
  484. package/template/apps/web/src/pages/system/components/agent-workflow/agent-workflow-presenter.ts +74 -0
  485. package/template/apps/web/src/pages/system/components/agent-workflow/workflow-graph-layout.ts +108 -0
  486. package/template/apps/web/src/pages/system/components/ai-runtime/AiRuntimeRunDetailDialog.vue +9 -0
  487. package/template/apps/web/src/pages/system/components/ai-runtime/AiRuntimeRunDetailDialog.webtest.ts +22 -0
  488. package/template/apps/web/src/pages/system/components/ai-runtime/AiRuntimeRunTable.webtest.ts +2 -0
  489. package/template/apps/web/src/pages/system/components/ai-runtime/AiRuntimeTrajectory.vue +118 -0
  490. package/template/apps/web/src/pages/system/composables/useAgentSessions.ts +209 -0
  491. package/template/apps/web/src/pages/system/composables/useAgentSessions.webtest.ts +138 -0
  492. package/template/apps/web/src/pages/system/composables/useAgentWorkflowRuns.ts +173 -0
  493. package/template/apps/web/src/router/index.ts +4 -0
  494. package/template/apps/web/src/router/platform-admin-route-bindings.ts +6 -0
  495. package/template/apps/web/src/services/agent-session-api.ts +159 -0
  496. package/template/apps/web/src/services/agent-session-api.webtest.ts +65 -0
  497. package/template/apps/web/src/services/agent-workflow-api.ts +181 -0
  498. package/template/apps/web/src/services/ai-runtime-api.ts +4 -0
  499. package/template/docker-compose.yml +11 -8
  500. package/template/docs/adr/0003-agent-session-event-source.md +3 -0
  501. package/template/docs/architecture/agent-harness.md +464 -0
  502. package/template/docs/architecture/agent-workflow.md +110 -0
  503. package/template/docs/architecture/ai-runtime.md +55 -47
  504. package/template/docs/architecture/durable-jobs.md +7 -0
  505. package/template/docs/architecture/module-host.md +4 -3
  506. package/template/docs/operations/adk-retirement.md +98 -0
  507. package/template/docs/operations/agent-session-memory.md +163 -0
  508. package/template/docs/operations/agent-session-troubleshooting.md +281 -0
  509. package/template/docs/operations/agent-workflow-recovery.md +85 -0
  510. package/template/docs/operations/incremental-delivery.md +1 -1
  511. package/template/docs/platform/agent-production-store.md +82 -0
  512. package/template/docs/platform/agent-run-reattachment.md +52 -0
  513. package/template/docs/platform/agent-runtime-observability.md +4 -3
  514. package/template/docs/platform/agent-runtime.md +116 -281
  515. package/template/docs/platform/agent-tool-approval.md +61 -0
  516. package/template/docs/platform/background-ai-operations.md +50 -0
  517. package/template/docs/platform/client-agent-session.md +319 -0
  518. package/template/docs/platform/embedding-ai-runtime.md +94 -0
  519. package/template/docs/platform/platform-authentication.md +5 -8
  520. package/template/package.json +0 -1
  521. package/template/packages/ai-client/index.ts +1 -0
  522. package/template/packages/ai-client/package.json +3 -1
  523. package/template/packages/ai-client/src/agent/client/client.ts +15 -2
  524. package/template/packages/ai-client/src/agent/client/run-protocol.test.ts +39 -25
  525. package/template/packages/ai-client/src/agent/client/types.ts +4 -0
  526. package/template/packages/ai-client/src/agent/contracts/contracts.test.ts +49 -7
  527. package/template/packages/ai-client/src/agent/contracts/events.ts +61 -0
  528. package/template/packages/ai-client/src/agent/contracts/runs.ts +1 -0
  529. package/template/packages/ai-client/src/client-agent/contracts.ts +131 -0
  530. package/template/packages/ai-client/src/client-agent/http.test.ts +60 -0
  531. package/template/packages/ai-client/src/client-agent/http.ts +66 -0
  532. package/template/packages/ai-client/src/client-agent/index.ts +4 -0
  533. package/template/packages/ai-client/src/client-agent/validation.test.ts +57 -0
  534. package/template/packages/ai-client/src/client-agent/validation.ts +152 -0
  535. package/template/packages/ai-client/src/client-agent/workflow-artifact/contracts.ts +85 -0
  536. package/template/packages/ai-client/src/client-agent/workflow-artifact/http.test.ts +49 -0
  537. package/template/packages/ai-client/src/client-agent/workflow-artifact/http.ts +82 -0
  538. package/template/packages/ai-client/src/client-agent/workflow-artifact/index.ts +3 -0
  539. package/template/packages/ai-client/src/client-agent/workflow-artifact/validation.test.ts +154 -0
  540. package/template/packages/ai-client/src/client-agent/workflow-artifact/validation.ts +332 -0
  541. package/template/packages/config/index.test.ts +18 -0
  542. package/template/packages/config/package.json +1 -1
  543. package/template/packages/config/src/platform-validation.ts +8 -0
  544. package/template/packages/config/src/platform.ts +22 -9
  545. package/template/packages/database/drizzle/0055_square_yellowjacket.sql +47 -0
  546. package/template/packages/database/drizzle/0056_tricky_living_mummy.sql +2 -0
  547. package/template/packages/database/drizzle/0057_mature_doomsday.sql +4 -0
  548. package/template/packages/database/drizzle/0058_agent_session_memory.sql +159 -0
  549. package/template/packages/database/drizzle/0059_agent_source_module_key.sql +16 -0
  550. package/template/packages/database/drizzle/0060_slimy_rocket_raccoon.sql +43 -0
  551. package/template/packages/database/drizzle/0061_agent_workflow.sql +303 -0
  552. package/template/packages/database/drizzle/0062_client_agent_workflow_artifact.sql +63 -0
  553. package/template/packages/database/drizzle/meta/0055_snapshot.json +11071 -0
  554. package/template/packages/database/drizzle/meta/0056_snapshot.json +11098 -0
  555. package/template/packages/database/drizzle/meta/0057_snapshot.json +10878 -0
  556. package/template/packages/database/drizzle/meta/0058_snapshot.json +12294 -0
  557. package/template/packages/database/drizzle/meta/0059_snapshot.json +12344 -0
  558. package/template/packages/database/drizzle/meta/0060_snapshot.json +12326 -0
  559. package/template/packages/database/drizzle/meta/0061_snapshot.json +14395 -0
  560. package/template/packages/database/drizzle/meta/0062_snapshot.json +14839 -0
  561. package/template/packages/database/drizzle/meta/_journal.json +56 -0
  562. package/template/packages/database/package.json +1 -1
  563. package/template/packages/database/src/agent-runtime-schema.test.ts +203 -0
  564. package/template/packages/database/src/schema/agent-context-message.ts +38 -0
  565. package/template/packages/database/src/schema/agent-runtime.ts +7 -0
  566. package/template/packages/database/src/schema/agent-session-receipt.ts +36 -0
  567. package/template/packages/database/src/schema/agent-session.ts +344 -0
  568. package/template/packages/database/src/schema/agent-workflow-delegation.ts +126 -0
  569. package/template/packages/database/src/schema/agent-workflow-effects.ts +213 -0
  570. package/template/packages/database/src/schema/agent-workflow-evaluation.ts +67 -0
  571. package/template/packages/database/src/schema/agent-workflow.ts +270 -0
  572. package/template/packages/database/src/schema/client-agent-workflow-artifact.ts +158 -0
  573. package/template/packages/database/src/schema/client-agent.ts +95 -0
  574. package/template/packages/database/src/schema/index.ts +9 -0
  575. package/template/packages/jobs/package.json +1 -1
  576. package/template/packages/jobs/src/handlers.test.ts +10 -0
  577. package/template/packages/jobs/src/handlers.ts +28 -11
  578. package/template/packages/modules/index.ts +2 -0
  579. package/template/packages/modules/package.json +1 -1
  580. package/template/packages/modules/src/ai-client-execution-composition.test.ts +98 -0
  581. package/template/packages/modules/src/ai-client-execution-policy.ts +60 -0
  582. package/template/packages/modules/src/ai-operation-composition.ts +2 -0
  583. package/template/packages/modules/src/manifest.ts +17 -0
  584. package/template/packages/modules/src/system-admin-routes.ts +16 -0
  585. package/template/packages/modules/src/system-admin-ui-catalog.ts +4 -1
  586. package/template/packages/modules/src/system-agent-audit-actions.ts +29 -0
  587. package/template/packages/modules/src/system-ai-api-bindings.ts +277 -0
  588. package/template/packages/modules/src/system-api-control-plane.ts +4 -78
  589. package/template/packages/modules/src/system-audit-actions.ts +128 -0
  590. package/template/packages/modules/src/system-features.ts +17 -0
  591. package/template/packages/modules/src/system-module-catalog.ts +21 -11
  592. package/template/packages/modules/src/system-modules.ts +22 -0
  593. package/template/packages/modules/src/system-permissions.ts +8 -0
  594. package/template/packages/server-sdk/index.ts +95 -0
  595. package/template/packages/server-sdk/package.json +9 -1
  596. package/template/packages/server-sdk/src/agent-session-memory-port.ts +64 -0
  597. package/template/packages/server-sdk/src/agent-session-provider.ts +63 -0
  598. package/template/packages/server-sdk/src/agent-source-invalidation-port.ts +54 -0
  599. package/template/packages/server-sdk/src/ai-operation-registration.ts +2 -0
  600. package/template/packages/server-sdk/src/client-agent-session.ts +107 -0
  601. package/template/packages/server-sdk/src/client-agent-workflow-artifact.contract.test.ts +113 -0
  602. package/template/packages/server-sdk/src/client-agent-workflow-artifact.ts +183 -0
  603. package/template/packages/server-sdk/src/debug-session-provider.ts +14 -63
  604. package/template/packages/server-sdk/src/durable-handler.ts +7 -0
  605. package/template/packages/server-sdk/src/module-host.ts +7 -3
  606. package/template/packages/server-sdk/src/request-context.ts +13 -0
  607. package/template/packages/server-sdk/src/workflow-input-artifact-port.ts +104 -0
  608. package/template/packages/server-sdk/src/workflow-input-artifact-validation.contract.test.ts +124 -0
  609. package/template/packages/server-sdk/src/workflow-input-artifact-validation.ts +347 -0
  610. package/template/packages/server-sdk/src/workflow-input-materialization-handler.ts +43 -0
  611. package/template/packages/shared/index.ts +3 -0
  612. package/template/packages/shared/package.json +1 -1
  613. package/template/packages/shared/src/agent-workflow-definition.ts +113 -0
  614. package/template/packages/shared/src/agent-workflow-delegation.ts +123 -0
  615. package/template/packages/shared/src/agent-workflow-evaluation.ts +159 -0
  616. package/template/packages/shared/src/agent-workflow-events.ts +99 -0
  617. package/template/packages/shared/src/agent-workflow-run.ts +259 -0
  618. package/template/packages/shared/src/agent-workflow.ts +3 -0
  619. package/template/packages/shared/src/ai-runtime-report.ts +25 -0
  620. package/template/packages/shared/src/rbac.ts +24 -0
  621. package/template/packages/storage/package.json +1 -1
  622. package/template/packages/storage/src/blob-store-put-once.test.ts +70 -0
  623. package/template/packages/storage/src/blob-store.ts +9 -0
  624. package/template/packages/storage/src/local-file-blob-put-once.ts +120 -0
  625. package/template/packages/storage/src/local-file-blob-store.ts +53 -1
  626. package/template/packages/storage/src/memory-blob-store.ts +73 -33
  627. package/template/packages/storage/src/upload-streams.test.ts +31 -0
  628. package/template/packages/storage/src/upload-streams.ts +20 -6
  629. package/template/apps/agent-server/adk_web_agents/__init__.py +0 -1
  630. package/template/apps/agent-server/adk_web_agents/canonical_debug/__init__.py +0 -1
  631. package/template/apps/agent-server/adk_web_agents/canonical_debug/agent.py +0 -145
  632. package/template/apps/agent-server/adk_web_agents/safe_debug/__init__.py +0 -3
  633. package/template/apps/agent-server/adk_web_agents/safe_debug/agent.py +0 -40
  634. package/template/apps/agent-server/adk_web_agents/services.py +0 -25
  635. package/template/apps/agent-server/project/adk-web-debug.json +0 -4
  636. package/template/apps/agent-server/src/southwind_agent_server/adk_adapter.py +0 -333
  637. package/template/apps/agent-server/src/southwind_agent_server/adk_debug.py +0 -348
  638. package/template/apps/agent-server/src/southwind_agent_server/adk_debug_sessions.py +0 -325
  639. package/template/apps/agent-server/src/southwind_agent_server/adk_failure.py +0 -13
  640. package/template/apps/agent-server/src/southwind_agent_server/adk_model.py +0 -304
  641. package/template/apps/agent-server/src/southwind_agent_server/adk_tools.py +0 -143
  642. package/template/apps/agent-server/tests/test_adk_adapter.py +0 -307
  643. package/template/apps/agent-server/tests/test_adk_debug_result_polling.py +0 -139
  644. package/template/apps/agent-server/tests/test_adk_debug_sessions.py +0 -215
  645. package/template/apps/agent-server/tests/test_adk_web_agent.py +0 -12
  646. package/template/apps/agent-server/tests/test_adk_web_canonical_debug.py +0 -282
  647. package/template/apps/server/src/agent/run-debug-authorization.ts +0 -27
  648. package/template/apps/server/src/agent/run-facade-adk-debug.test.ts +0 -95
  649. package/template/apps/server/src/runtime-adk-debug.test.ts +0 -270
  650. package/template/apps/server/src/runtime-adk-debug.ts +0 -164
  651. package/template/apps/server/src/runtime-request-actor.test.ts +0 -55
  652. package/template/apps/server/src/runtime-request-actor.ts +0 -22
  653. package/template/docker-compose.agent-debug.yml +0 -58
  654. package/template/scripts/dev-adk-web.ts +0 -107
@@ -0,0 +1,63 @@
1
+ import type { ModuleActor } from "./actor.js";
2
+
3
+ export const MODULE_AGENT_SESSION_SCHEMA_VERSION = 1 as const;
4
+
5
+ export interface ModuleAgentSessionContextV1 {
6
+ readonly actor: ModuleActor;
7
+ readonly operationKey: string;
8
+ readonly signal: AbortSignal;
9
+ }
10
+
11
+ export interface ModuleAgentSessionListInputV1 extends ModuleAgentSessionContextV1 {
12
+ readonly limit: number;
13
+ /** Provider 私有的不透明 keyset cursor;Host 只原样回传给同一 Provider。 */
14
+ readonly cursor?: string;
15
+ }
16
+
17
+ export interface ModuleAgentSessionGetInputV1 extends ModuleAgentSessionContextV1 {
18
+ readonly sourceId: string;
19
+ }
20
+
21
+ export interface ModuleAgentSessionSummaryV1 {
22
+ /** 仅在 Provider 与 Host 之间使用,不会返回给浏览器。 */
23
+ readonly sourceId: string;
24
+ readonly title: string;
25
+ readonly scopeLabel?: string;
26
+ readonly updatedAt: string;
27
+ readonly revision: string;
28
+ }
29
+
30
+ export interface ModuleAgentSessionPageV1 {
31
+ readonly sessions: readonly ModuleAgentSessionSummaryV1[];
32
+ readonly truncated: boolean;
33
+ /** truncated=true 时必须提供,用于 Host 继续读取直到完整。 */
34
+ readonly next?: string;
35
+ }
36
+
37
+ export interface ModuleAgentSessionMessageV1 {
38
+ readonly sequence: number;
39
+ readonly role: "user" | "assistant";
40
+ readonly content: string;
41
+ readonly createdAt: string;
42
+ }
43
+
44
+ export interface ModuleAgentSessionV1 extends ModuleAgentSessionSummaryV1 {
45
+ readonly messages: readonly ModuleAgentSessionMessageV1[];
46
+ }
47
+
48
+ /**
49
+ * 主站只读业务会话投影。Provider 只读业务事实,Host 负责按当前登录身份重新授权、
50
+ * 审计、有界校验与不透明 ID;V1 不支持业务会话的追加、重命名或删除。
51
+ */
52
+ export interface ModuleAgentSessionProviderV1 {
53
+ readonly schemaVersion: typeof MODULE_AGENT_SESSION_SCHEMA_VERSION;
54
+ readonly key: string;
55
+ readonly operationKeys: readonly string[];
56
+ readonly featureKey: string;
57
+ readonly permissionKey: string;
58
+ readonly auditAction: string;
59
+ list(input: ModuleAgentSessionListInputV1): Promise<ModuleAgentSessionPageV1>;
60
+ get(
61
+ input: ModuleAgentSessionGetInputV1,
62
+ ): Promise<ModuleAgentSessionV1 | undefined>;
63
+ }
@@ -0,0 +1,54 @@
1
+ export interface ModuleAuthoritativeSourceCoordinateV1 {
2
+ readonly sourceKind: string;
3
+ readonly sourceId: string;
4
+ readonly version: string;
5
+ readonly sequence: number;
6
+ readonly digest?: string;
7
+ }
8
+
9
+ export interface ModuleAuthoritativeSourceEventV1 {
10
+ readonly eventId: string;
11
+ readonly eventSequence: number;
12
+ readonly occurredAt: string;
13
+ }
14
+
15
+ export interface ModuleAuthoritativeSourceInvalidationV1 {
16
+ readonly source: ModuleAuthoritativeSourceCoordinateV1;
17
+ readonly event: ModuleAuthoritativeSourceEventV1;
18
+ }
19
+
20
+ export type ModuleSourceInvalidationAppendResultV1 =
21
+ | "appended"
22
+ | "duplicate"
23
+ | "stale";
24
+
25
+ /**
26
+ * Host binds module, Actor, Scope, and the module's current business transaction.
27
+ * Calls outside that authoritative transaction fail closed.
28
+ */
29
+ export interface ModuleAuthoritativeSourceInvalidationPortV1 {
30
+ sourceDeleted(input: ModuleAuthoritativeSourceInvalidationV1):
31
+ Promise<ModuleSourceInvalidationAppendResultV1>;
32
+ sourceExpired(input: ModuleAuthoritativeSourceInvalidationV1):
33
+ Promise<ModuleSourceInvalidationAppendResultV1>;
34
+ sourceSuperseded(input: ModuleAuthoritativeSourceInvalidationV1):
35
+ Promise<ModuleSourceInvalidationAppendResultV1>;
36
+ authorizationRevoked(input: ModuleAuthoritativeSourceInvalidationV1):
37
+ Promise<ModuleSourceInvalidationAppendResultV1>;
38
+ }
39
+
40
+ export class ModuleAuthoritativeSourceInvalidationUnavailableError extends Error {
41
+ readonly code = "SOURCE_INVALIDATION_UNAVAILABLE" as const;
42
+
43
+ constructor() {
44
+ super("权威来源失效写入暂不可用");
45
+ this.name = "ModuleAuthoritativeSourceInvalidationUnavailableError";
46
+ }
47
+ }
48
+
49
+ export function requireModuleAuthoritativeSourceInvalidationPort(
50
+ port: ModuleAuthoritativeSourceInvalidationPortV1 | undefined,
51
+ ) {
52
+ if (!port) throw new ModuleAuthoritativeSourceInvalidationUnavailableError();
53
+ return port;
54
+ }
@@ -16,6 +16,8 @@ export interface ModuleAiOperationContext {
16
16
  export interface ModuleAiOperationPlan {
17
17
  readonly instructions: string;
18
18
  readonly userPrompt: string;
19
+ /** Host forwards this trusted business coordinate only for governed Case Memory lookup. */
20
+ readonly memoryScope?: { readonly caseId: string };
19
21
  /**
20
22
  * 可选 JSON Schema。宿主只把它交给受控 Runtime,并以 Manifest outputSchemaKey
21
23
  * 关联审计;业务不能在此选择模型、Provider 或 Endpoint。
@@ -0,0 +1,107 @@
1
+ import type { ModuleAiJsonValue } from "./ai-operation-registration.js";
2
+
3
+ export const pageAgentClientRunCapability = "pageAgentClientRun" as const;
4
+
5
+ export interface ModuleClientAgentHostPrincipal {
6
+ readonly actorId: string;
7
+ readonly installationId: string;
8
+ readonly sessionId: string;
9
+ }
10
+
11
+ export type ModuleClientAgentHostAuthPurpose = "control" | "completion";
12
+
13
+ export interface ModuleClientAgentHostAuthAdapter {
14
+ ready(signal?: AbortSignal): Promise<boolean>;
15
+ authenticate(input: {
16
+ readonly token: string;
17
+ readonly purpose: ModuleClientAgentHostAuthPurpose;
18
+ readonly signal?: AbortSignal;
19
+ }): Promise<ModuleClientAgentHostPrincipal | undefined>;
20
+ /**
21
+ * Web Cookie 等当前登录会话可选入口。Host 已解析 canonical Actor,Adapter 只确认
22
+ * installation/session 绑定;返回 principal 仍不得携带权限、Scope 或业务坐标。
23
+ */
24
+ authenticateCurrentSession?(input: {
25
+ readonly request: Request;
26
+ readonly actorId: string;
27
+ readonly purpose: ModuleClientAgentHostAuthPurpose;
28
+ readonly signal?: AbortSignal;
29
+ }): Promise<ModuleClientAgentHostPrincipal | undefined>;
30
+ bindRevocations(
31
+ revoke: (principal: ModuleClientAgentHostPrincipal) => Promise<void>,
32
+ ): () => void;
33
+ }
34
+
35
+ export type ModuleClientAgentSessionStatus =
36
+ | "active"
37
+ | "completed"
38
+ | "cancelled"
39
+ | "revoked"
40
+ | "expired";
41
+
42
+ export interface ModuleClientAgentSessionCreateInput {
43
+ readonly operationKey: string;
44
+ readonly input: ModuleAiJsonValue;
45
+ readonly clientBindingDigest: `sha256:${string}`;
46
+ }
47
+
48
+ export interface ModuleClientAgentSessionGrant {
49
+ readonly clientRunId: string;
50
+ readonly sessionId: string;
51
+ readonly trustedBaseUrl: string;
52
+ readonly modelAlias: string;
53
+ readonly limits: {
54
+ readonly maxSteps: number;
55
+ readonly maxRequestBytes: number;
56
+ readonly maxResponseBytes: number;
57
+ readonly maxDurationSeconds: number;
58
+ readonly maxConcurrentRequests: number;
59
+ };
60
+ readonly expiresAt: string;
61
+ readonly accessToken: string;
62
+ readonly capabilities: readonly [typeof pageAgentClientRunCapability];
63
+ }
64
+
65
+ export interface ModuleClientAgentSessionReceipt {
66
+ readonly receiptId: string;
67
+ readonly attempt: number;
68
+ readonly requestDigest: `sha256:${string}`;
69
+ readonly responseDigest: `sha256:${string}`;
70
+ readonly deploymentDigest: `sha256:${string}`;
71
+ readonly issuedAt: string;
72
+ }
73
+
74
+ export interface ModuleClientAgentSessionView {
75
+ readonly clientRunId: string;
76
+ readonly sessionId: string;
77
+ readonly operationKey: string;
78
+ readonly status: ModuleClientAgentSessionStatus;
79
+ readonly attemptCount: number;
80
+ readonly expiresAt: string;
81
+ readonly result?: ModuleAiJsonValue;
82
+ }
83
+
84
+ /**
85
+ * 宿主 Adapter 使用的通用 Client Agent Session port。
86
+ *
87
+ * 实现必须把调用绑定到当前 ModuleRequestContext,不接受调用方声明 Actor、权限或 Scope。
88
+ */
89
+ export interface ModuleClientAgentSessionPort {
90
+ capabilities(): Promise<{
91
+ readonly capabilities: readonly [typeof pageAgentClientRunCapability];
92
+ readonly modelAlias: string;
93
+ }>;
94
+ create(
95
+ input: ModuleClientAgentSessionCreateInput,
96
+ ): Promise<ModuleClientAgentSessionGrant>;
97
+ status(sessionId: string): Promise<ModuleClientAgentSessionView>;
98
+ cancel(
99
+ sessionId: string,
100
+ reason?: string,
101
+ ): Promise<ModuleClientAgentSessionView>;
102
+ finalize(
103
+ sessionId: string,
104
+ receiptIds: readonly string[],
105
+ result?: ModuleAiJsonValue,
106
+ ): Promise<ModuleClientAgentSessionView>;
107
+ }
@@ -0,0 +1,113 @@
1
+ import { expect, test } from "bun:test";
2
+ import {
3
+ CLIENT_AGENT_WORKFLOW_ARTIFACT_BINDING_LIMITS,
4
+ CLIENT_AGENT_WORKFLOW_ARTIFACT_TASK_KEY,
5
+ CLIENT_AGENT_WORKFLOW_ARTIFACT_WORK_ID_PREFIX,
6
+ type ModuleClientAgentHostAuthAdapter,
7
+ type ModuleClientAgentWorkflowArtifactBeginSpec,
8
+ type ModuleClientAgentWorkflowArtifactPort,
9
+ type ModuleClientAgentWorkflowArtifactProjectBinding,
10
+ } from "../index.js";
11
+
12
+ type ForbiddenLifecycleCoordinate = Extract<
13
+ keyof ModuleClientAgentWorkflowArtifactBeginSpec,
14
+ | "actorId"
15
+ | "installationId"
16
+ | "sessionId"
17
+ | "workflowRunId"
18
+ | "nodeRunId"
19
+ | "commandId"
20
+ | "scope"
21
+ | "fence"
22
+ | "provider"
23
+ >;
24
+
25
+ const lifecycleHasNoCallerCoordinates: [ForbiddenLifecycleCoordinate] extends [
26
+ never,
27
+ ]
28
+ ? true
29
+ : false = true;
30
+
31
+ const projectBinding: ModuleClientAgentWorkflowArtifactProjectBinding = {
32
+ workflowKey: "analysis.cross-case.full-review",
33
+ nodeId: "page-agent-artifact",
34
+ operationKey: "analysis.cross-case.page-agent",
35
+ releaseDigest: `sha256:${"d".repeat(64)}`,
36
+ scopeContainmentContractVersion: 1,
37
+ terminalResultAuthority: {
38
+ version: "sharp.analysis-result.v1",
39
+ digest: `sha256:${"e".repeat(64)}`,
40
+ async canonicalize({ proposedResult }) {
41
+ return proposedResult;
42
+ },
43
+ },
44
+ clientTaskAuthority: {
45
+ version: "sharp.client-task.v1",
46
+ digest: `sha256:${"f".repeat(64)}`,
47
+ async build({ workflowInput }) {
48
+ return { taskKey: "sharp.full-review", input: workflowInput };
49
+ },
50
+ },
51
+ launchAuthority: {
52
+ version: "sharp.workflow-launch.v1",
53
+ digest: `sha256:${"a".repeat(64)}`,
54
+ async authorizeRelease() {},
55
+ async authorizeRun({ currentAuthorizationScope }) {
56
+ return {
57
+ authorizationScope: currentAuthorizationScope,
58
+ };
59
+ },
60
+ },
61
+ artifact: {
62
+ kind: "analysis-report",
63
+ contentType: "application/json",
64
+ filename: "analysis.json",
65
+ retentionPolicyKey: "analysis.case-artifact",
66
+ maxByteSize: 4 * 1024 * 1024,
67
+ },
68
+ };
69
+
70
+ const legacyHostAuth: ModuleClientAgentHostAuthAdapter = {
71
+ async ready() {
72
+ return true;
73
+ },
74
+ async authenticate() {
75
+ return undefined;
76
+ },
77
+ bindRevocations() {
78
+ return () => undefined;
79
+ },
80
+ };
81
+
82
+ test("公开 Workflow Artifact contract 只有三步 lifecycle", () => {
83
+ const methodNames: readonly (keyof ModuleClientAgentWorkflowArtifactPort)[] =
84
+ ["begin", "claimOrAdvance", "reconcileOrCancel"];
85
+
86
+ expect(methodNames).toEqual(["begin", "claimOrAdvance", "reconcileOrCancel"]);
87
+ expect(CLIENT_AGENT_WORKFLOW_ARTIFACT_TASK_KEY).toBe(
88
+ "system.agent-workflow.client-agent-artifact",
89
+ );
90
+ expect(CLIENT_AGENT_WORKFLOW_ARTIFACT_WORK_ID_PREFIX).toBe("cawa_");
91
+ expect(CLIENT_AGENT_WORKFLOW_ARTIFACT_BINDING_LIMITS).toEqual({
92
+ workflowKey: 160,
93
+ nodeId: 96,
94
+ operationKey: 200,
95
+ releaseDigest: 71,
96
+ terminalAuthorityVersion: 80,
97
+ terminalAuthorityDigest: 71,
98
+ clientTaskKey: 160,
99
+ clientTaskMaxBytes: 256 * 1024,
100
+ clientTaskInputArtifactMaxBytes: 16 * 1024 * 1024,
101
+ artifactKind: 80,
102
+ artifactContentType: 120,
103
+ artifactFilename: 240,
104
+ retentionPolicyKey: 256,
105
+ maxByteSize: 16 * 1024 * 1024,
106
+ });
107
+ expect(lifecycleHasNoCallerCoordinates).toBe(true);
108
+ expect(projectBinding.artifact.maxByteSize).toBe(4 * 1024 * 1024);
109
+ });
110
+
111
+ test("现有 Host Auth Adapter 不实现 Web Cookie seam 仍兼容", () => {
112
+ expect(legacyHostAuth.authenticateCurrentSession).toBeUndefined();
113
+ });
@@ -0,0 +1,183 @@
1
+ import type { ModuleAiJsonValue } from "./ai-operation-registration.js";
2
+ import type {
3
+ AgentWorkflowArtifactRef,
4
+ AgentWorkflowDefinition,
5
+ AgentWorkflowReleaseCoordinates,
6
+ AuthorizationScopeSnapshot,
7
+ } from "@southwind-ai/shared";
8
+
9
+ /** Workflow 图中的 Job node 必须固定引用此 taskKey。 */
10
+ export const CLIENT_AGENT_WORKFLOW_ARTIFACT_TASK_KEY =
11
+ "system.agent-workflow.client-agent-artifact" as const;
12
+ /** Browser-facing opaque work handle 的唯一稳定前缀。 */
13
+ export const CLIENT_AGENT_WORKFLOW_ARTIFACT_WORK_ID_PREFIX = "cawa_" as const;
14
+ export const CLIENT_AGENT_WORKFLOW_SCOPE_CONTAINMENT_CONTRACT_VERSION =
15
+ 1 as const;
16
+ /** Project binding 的公共 DTO 上限;Server Composition 必须在启动时 fail closed。 */
17
+ export const CLIENT_AGENT_WORKFLOW_ARTIFACT_BINDING_LIMITS = {
18
+ workflowKey: 160,
19
+ nodeId: 96,
20
+ operationKey: 200,
21
+ releaseDigest: 71,
22
+ terminalAuthorityVersion: 80,
23
+ terminalAuthorityDigest: 71,
24
+ clientTaskKey: 160,
25
+ clientTaskMaxBytes: 256 * 1024,
26
+ clientTaskInputArtifactMaxBytes: 16 * 1024 * 1024,
27
+ artifactKind: 80,
28
+ artifactContentType: 120,
29
+ artifactFilename: 240,
30
+ retentionPolicyKey: 256,
31
+ maxByteSize: 16 * 1024 * 1024,
32
+ } as const;
33
+
34
+ export interface ModuleClientAgentWorkflowTaskInputArtifact {
35
+ readonly artifact: AgentWorkflowArtifactRef;
36
+ readonly value: ModuleAiJsonValue;
37
+ }
38
+
39
+ export interface ModuleClientAgentWorkflowExecutionTask {
40
+ readonly schemaVersion: 1;
41
+ readonly taskKey: string;
42
+ readonly input: ModuleAiJsonValue;
43
+ readonly inputDigest: `sha256:${string}`;
44
+ }
45
+
46
+ export interface ModuleClientAgentWorkflowClientTaskAuthority {
47
+ /** Project-owned canonical task projection contract version. */
48
+ readonly version: string;
49
+ /** Digest of the projection rules/configuration, never of the function body. */
50
+ readonly digest: `sha256:${string}`;
51
+ build(input: {
52
+ readonly workflowInput: ModuleAiJsonValue;
53
+ /** Host-opened JSON payloads after current durable/source reauthorization. */
54
+ readonly inputArtifacts: readonly ModuleClientAgentWorkflowTaskInputArtifact[];
55
+ readonly actorId: string;
56
+ readonly scopeDigest: `sha256:${string}`;
57
+ readonly signal: AbortSignal;
58
+ }): Promise<{ readonly taskKey: string; readonly input: ModuleAiJsonValue }>;
59
+ }
60
+
61
+ export interface ModuleClientAgentWorkflowArtifactTerminalResultAuthority {
62
+ /** Project-owned validator/canonicalizer contract version. */
63
+ readonly version: string;
64
+ /** Digest of the validator rules/configuration, never of the function body. */
65
+ readonly digest: `sha256:${string}`;
66
+ canonicalize(input: {
67
+ readonly workflowInput: ModuleAiJsonValue;
68
+ /** Host-opened canonical inputs after terminal-time reauthorization. */
69
+ readonly inputArtifacts: readonly ModuleClientAgentWorkflowTaskInputArtifact[];
70
+ readonly proposedResult: ModuleAiJsonValue;
71
+ readonly actorId: string;
72
+ readonly scopeDigest: `sha256:${string}`;
73
+ readonly signal: AbortSignal;
74
+ }): Promise<ModuleAiJsonValue>;
75
+ }
76
+
77
+ export interface ModuleClientAgentWorkflowProjectLaunchAuthority {
78
+ readonly version: string;
79
+ readonly digest: `sha256:${string}`;
80
+ authorizeRelease(input: {
81
+ readonly definition: AgentWorkflowDefinition;
82
+ readonly coordinates: AgentWorkflowReleaseCoordinates;
83
+ readonly actorId: string;
84
+ readonly signal: AbortSignal;
85
+ }): Promise<void>;
86
+ authorizeRun(input: {
87
+ readonly releaseId: string;
88
+ readonly releaseDigest: string;
89
+ readonly workflowInput: ModuleAiJsonValue;
90
+ readonly inputArtifacts: readonly AgentWorkflowArtifactRef[];
91
+ readonly actorId: string;
92
+ /** Host-captured current scope; project may only return this scope or a narrowing. */
93
+ readonly currentAuthorizationScope: AuthorizationScopeSnapshot;
94
+ readonly signal: AbortSignal;
95
+ }): Promise<{ readonly authorizationScope: AuthorizationScopeSnapshot }>;
96
+ }
97
+
98
+ export interface ModuleClientAgentWorkflowArtifactPolicy {
99
+ readonly kind: string;
100
+ readonly contentType: "application/json";
101
+ readonly filename: string;
102
+ readonly retentionPolicyKey: string;
103
+ readonly maxByteSize: number;
104
+ }
105
+
106
+ /**
107
+ * project-owned Composition 对已审核 Workflow release 的静态绑定。
108
+ * 该绑定只供 Host 装配,不能作为 Module lifecycle 调用参数。
109
+ */
110
+ export interface ModuleClientAgentWorkflowArtifactProjectBinding {
111
+ readonly workflowKey: string;
112
+ readonly nodeId: string;
113
+ readonly operationKey: string;
114
+ /** 审核时登记的完整 Immutable Release digest;新 Release 不自动继承。 */
115
+ readonly releaseDigest: `sha256:${string}`;
116
+ /** Composition readiness:Host 必须按持久 Run scope ⊆ 当前 Actor scope 复验。 */
117
+ readonly scopeContainmentContractVersion: typeof CLIENT_AGENT_WORKFLOW_SCOPE_CONTAINMENT_CONTRACT_VERSION;
118
+ readonly terminalResultAuthority: ModuleClientAgentWorkflowArtifactTerminalResultAuthority;
119
+ /** Claim response 的 canonical execution input;raw Artifact 永不下发。 */
120
+ readonly clientTaskAuthority: ModuleClientAgentWorkflowClientTaskAuthority;
121
+ /** 受保护 Workflow 的 Release/Run 只能经 project preset authority。 */
122
+ readonly launchAuthority: ModuleClientAgentWorkflowProjectLaunchAuthority;
123
+ readonly artifact: ModuleClientAgentWorkflowArtifactPolicy;
124
+ }
125
+
126
+ export interface ModuleClientAgentWorkflowArtifactBeginSpec {
127
+ /** 业务输入;Actor、Scope、Run、Node、Fence 与幂等坐标全部由 Host 当前 attempt 固定。 */
128
+ readonly input: ModuleAiJsonValue;
129
+ }
130
+
131
+ /** Host 签发的不透明 lifecycle handle,调用方不得解析或持久化其内部坐标。 */
132
+ export interface ModuleClientAgentWorkflowArtifactCommand {
133
+ readonly value: string;
134
+ }
135
+
136
+ export type ModuleClientAgentWorkflowArtifactStatus =
137
+ | "pending"
138
+ | "running"
139
+ | "completed"
140
+ | "cancelled";
141
+
142
+ export type ModuleClientAgentWorkflowArtifactSafeCode =
143
+ | "HOST_UNAVAILABLE"
144
+ | "NO_PENDING_WORK"
145
+ | "CLAIM_CONFLICT"
146
+ | "WORK_NOT_FOUND"
147
+ | "WORK_EXPIRED"
148
+ | "WORK_CANCELLED"
149
+ | "RECEIPT_REJECTED"
150
+ | "ARTIFACT_REJECTED"
151
+ | "INTERNAL_ERROR";
152
+
153
+ export interface ModuleClientAgentWorkflowArtifactSummary {
154
+ readonly artifactId: string;
155
+ readonly kind: string;
156
+ readonly contentType: string;
157
+ readonly filename: string;
158
+ readonly byteSize: number;
159
+ readonly sha256: string;
160
+ }
161
+
162
+ export interface ModuleClientAgentWorkflowArtifactView {
163
+ readonly command: ModuleClientAgentWorkflowArtifactCommand;
164
+ readonly status: ModuleClientAgentWorkflowArtifactStatus;
165
+ readonly artifact?: ModuleClientAgentWorkflowArtifactSummary;
166
+ readonly safeCode?: ModuleClientAgentWorkflowArtifactSafeCode;
167
+ }
168
+
169
+ /**
170
+ * Durable Handler 的深 Port。实现从当前 attempt 捕获 Actor、installation/session、
171
+ * Workflow Run/Node/command、Scope、generation/effect fence 与 Artifact writer。
172
+ */
173
+ export interface ModuleClientAgentWorkflowArtifactPort {
174
+ begin(
175
+ spec: ModuleClientAgentWorkflowArtifactBeginSpec,
176
+ ): Promise<ModuleClientAgentWorkflowArtifactView>;
177
+ claimOrAdvance(
178
+ command: ModuleClientAgentWorkflowArtifactCommand,
179
+ ): Promise<ModuleClientAgentWorkflowArtifactView>;
180
+ reconcileOrCancel(
181
+ command: ModuleClientAgentWorkflowArtifactCommand,
182
+ ): Promise<ModuleClientAgentWorkflowArtifactView>;
183
+ }
@@ -1,63 +1,14 @@
1
- import type { ModuleActor } from "./actor.js";
2
-
3
- export const MODULE_DEBUG_SESSION_SCHEMA_VERSION = 1 as const;
4
-
5
- export interface ModuleDebugSessionContextV1 {
6
- readonly actor: ModuleActor;
7
- readonly operationKey: string;
8
- readonly signal: AbortSignal;
9
- }
10
-
11
- export interface ModuleDebugSessionListInputV1 extends ModuleDebugSessionContextV1 {
12
- readonly limit: number;
13
- /** Provider 私有的不透明 keyset cursor;Host 只原样回传给同一 Provider。 */
14
- readonly cursor?: string;
15
- }
16
-
17
- export interface ModuleDebugSessionGetInputV1 extends ModuleDebugSessionContextV1 {
18
- readonly sourceId: string;
19
- }
20
-
21
- export interface ModuleDebugSessionSummaryV1 {
22
- /** 仅在 Provider 与 Host 之间使用,不会返回给 ADK Web。 */
23
- readonly sourceId: string;
24
- readonly title: string;
25
- readonly scopeLabel?: string;
26
- readonly updatedAt: string;
27
- readonly revision: string;
28
- }
29
-
30
- export interface ModuleDebugSessionPageV1 {
31
- readonly sessions: readonly ModuleDebugSessionSummaryV1[];
32
- readonly truncated: boolean;
33
- /** truncated=true 时必须提供,用于 Host 继续读取直到完整。 */
34
- readonly next?: string;
35
- }
36
-
37
- export interface ModuleDebugSessionMessageV1 {
38
- readonly sequence: number;
39
- readonly role: "user" | "assistant";
40
- readonly content: string;
41
- readonly createdAt: string;
42
- }
43
-
44
- export interface ModuleDebugSessionV1 extends ModuleDebugSessionSummaryV1 {
45
- readonly messages: readonly ModuleDebugSessionMessageV1[];
46
- }
47
-
48
- /**
49
- * 开发期 ADK Web 会话投影。Provider 只读业务事实,Host 负责重新授权、审计、
50
- * 有界校验与不透明 ID;V1 不支持业务会话的追加、重命名或删除。
51
- */
52
- export interface ModuleDebugSessionProviderV1 {
53
- readonly schemaVersion: typeof MODULE_DEBUG_SESSION_SCHEMA_VERSION;
54
- readonly key: string;
55
- readonly operationKeys: readonly string[];
56
- readonly featureKey: string;
57
- readonly permissionKey: string;
58
- readonly auditAction: string;
59
- list(input: ModuleDebugSessionListInputV1): Promise<ModuleDebugSessionPageV1>;
60
- get(
61
- input: ModuleDebugSessionGetInputV1,
62
- ): Promise<ModuleDebugSessionV1 | undefined>;
63
- }
1
+ /** @deprecated 请改用 MODULE_AGENT_SESSION_SCHEMA_VERSION。 */
2
+ export { MODULE_AGENT_SESSION_SCHEMA_VERSION as MODULE_DEBUG_SESSION_SCHEMA_VERSION } from "./agent-session-provider.js";
3
+
4
+ /** @deprecated 请改用 ModuleAgentSession* 类型。 */
5
+ export type {
6
+ ModuleAgentSessionContextV1 as ModuleDebugSessionContextV1,
7
+ ModuleAgentSessionGetInputV1 as ModuleDebugSessionGetInputV1,
8
+ ModuleAgentSessionListInputV1 as ModuleDebugSessionListInputV1,
9
+ ModuleAgentSessionMessageV1 as ModuleDebugSessionMessageV1,
10
+ ModuleAgentSessionPageV1 as ModuleDebugSessionPageV1,
11
+ ModuleAgentSessionProviderV1 as ModuleDebugSessionProviderV1,
12
+ ModuleAgentSessionSummaryV1 as ModuleDebugSessionSummaryV1,
13
+ ModuleAgentSessionV1 as ModuleDebugSessionV1,
14
+ } from "./agent-session-provider.js";
@@ -9,6 +9,9 @@ import type {
9
9
  ModuleResourceFileRequest,
10
10
  ModuleStorageWritePortV1,
11
11
  } from "./storage-port.js";
12
+ // @windy-module system.agent begin
13
+ import type { ModuleWorkflowInputArtifactPublicationPortV1 } from "./workflow-input-artifact-port.js";
14
+ // @windy-module system.agent end
12
15
 
13
16
  export interface ModuleDurableStoragePort {
14
17
  openResourceFile(
@@ -29,6 +32,10 @@ export interface ModuleDurableHandlerContext extends DurableHandlerContext {
29
32
  readonly storageWriter?: ModuleStorageWritePortV1;
30
33
  /** 每个 attempt 重新绑定 Actor、Scope 与当前授权。 */
31
34
  readonly reportStaging?: ModuleReportStagingPortV1;
35
+ // @windy-module system.agent begin
36
+ /** 真实 Durable Job artifact publication;不会把 Storage fileId 当 artifactId。 */
37
+ readonly workflowInputArtifacts?: ModuleWorkflowInputArtifactPublicationPortV1;
38
+ // @windy-module system.agent end
32
39
  readonly ai: ModuleBackgroundAiPort;
33
40
  }
34
41
 
@@ -1,5 +1,5 @@
1
1
  import type { ModuleAiOperationHandlerRegistration } from "./ai-operation-registration.js";
2
- import type { ModuleDebugSessionProviderV1 } from "./debug-session-provider.js";
2
+ import type { ModuleAgentSessionProviderV1 } from "./agent-session-provider.js";
3
3
  import type { ModuleDurableHandlerDefinition } from "./durable-handler.js";
4
4
  import type { ModuleGovernedResourceRegistration } from "./data-governance-registration.js";
5
5
  import type { ModuleRolePreset } from "./role-preset.js";
@@ -69,9 +69,13 @@ export interface ModuleHost {
69
69
  registerRolePresets(presets: readonly ModuleRolePreset[]): void;
70
70
  /** 注册 Manifest `providers` 已声明的搜索 Provider。 */
71
71
  registerSearchProviders(providers: readonly ModuleSearchProvider[]): void;
72
- /** 注册开发期 ADK Web 使用的只读业务会话投影。 */
72
+ /** 注册主站使用的只读业务会话投影。 */
73
+ registerAgentSessionProviders(
74
+ providers: readonly ModuleAgentSessionProviderV1[],
75
+ ): void;
76
+ /** @deprecated 请改用 registerAgentSessionProviders。 */
73
77
  registerDebugSessionProviders(
74
- providers: readonly ModuleDebugSessionProviderV1[],
78
+ providers: readonly ModuleAgentSessionProviderV1[],
75
79
  ): void;
76
80
  }
77
81