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.
- package/dist/cli.js +785 -291
- package/package.json +1 -1
- package/template/.agents/skills/windy-business-module/SKILL.md +148 -70
- package/template/.windy-template.json +3 -3
- package/template/AGENTS.md +3 -6
- package/template/apps/agent-server/Dockerfile +2 -3
- package/template/apps/agent-server/README.md +38 -54
- package/template/apps/agent-server/pyproject.toml +0 -1
- package/template/apps/agent-server/src/southwind_agent_server/app.py +4 -2
- package/template/apps/agent-server/src/southwind_agent_server/attempt_context.py +191 -0
- package/template/apps/agent-server/src/southwind_agent_server/attempt_context_projection.py +203 -0
- package/template/apps/agent-server/src/southwind_agent_server/client_completion_contracts.py +61 -0
- package/template/apps/agent-server/src/southwind_agent_server/client_completion_governance.py +82 -0
- package/template/apps/agent-server/src/southwind_agent_server/client_completion_routes.py +121 -0
- package/template/apps/agent-server/src/southwind_agent_server/client_completion_runtime.py +158 -0
- package/template/apps/agent-server/src/southwind_agent_server/context_message_digest.py +24 -0
- package/template/apps/agent-server/src/southwind_agent_server/context_version_contracts.py +71 -0
- package/template/apps/agent-server/src/southwind_agent_server/context_version_port.py +307 -0
- package/template/apps/agent-server/src/southwind_agent_server/contracts.py +39 -0
- package/template/apps/agent-server/src/southwind_agent_server/deterministic.py +2 -0
- package/template/apps/agent-server/src/southwind_agent_server/engine.py +9 -1
- package/template/apps/agent-server/src/southwind_agent_server/engine_identity.py +2 -0
- package/template/apps/agent-server/src/southwind_agent_server/fingerprint.py +15 -0
- package/template/apps/agent-server/src/southwind_agent_server/health_routes.py +37 -3
- package/template/apps/agent-server/src/southwind_agent_server/openai_engine.py +46 -26
- package/template/apps/agent-server/src/southwind_agent_server/openai_engine_validation.py +32 -0
- package/template/apps/agent-server/src/southwind_agent_server/openai_provider.py +7 -0
- package/template/apps/agent-server/src/southwind_agent_server/postgres_report_insert.py +5 -2
- package/template/apps/agent-server/src/southwind_agent_server/postgres_report_queries.py +1 -0
- package/template/apps/agent-server/src/southwind_agent_server/postgres_report_store.py +6 -1
- package/template/apps/agent-server/src/southwind_agent_server/postgres_store.py +3 -2
- package/template/apps/agent-server/src/southwind_agent_server/postgres_store_backend.py +1 -0
- package/template/apps/agent-server/src/southwind_agent_server/provider_governance.py +21 -0
- package/template/apps/agent-server/src/southwind_agent_server/report_lifecycle.py +2 -1
- package/template/apps/agent-server/src/southwind_agent_server/report_presenter.py +1 -0
- package/template/apps/agent-server/src/southwind_agent_server/report_routes.py +7 -1
- package/template/apps/agent-server/src/southwind_agent_server/report_store.py +10 -56
- package/template/apps/agent-server/src/southwind_agent_server/report_store_protocol.py +75 -0
- package/template/apps/agent-server/src/southwind_agent_server/report_types.py +9 -2
- package/template/apps/agent-server/src/southwind_agent_server/runtime_budget.py +74 -0
- package/template/apps/agent-server/src/southwind_agent_server/runtime_factory.py +11 -3
- package/template/apps/agent-server/src/southwind_agent_server/service.py +41 -65
- package/template/apps/agent-server/src/southwind_agent_server/service_control.py +64 -0
- package/template/apps/agent-server/src/southwind_agent_server/service_execution.py +3 -0
- package/template/apps/agent-server/src/southwind_agent_server/sqlite_errors.py +2 -0
- package/template/apps/agent-server/src/southwind_agent_server/sqlite_schema.py +9 -1
- package/template/apps/agent-server/src/southwind_agent_server/sqlite_store.py +6 -5
- package/template/apps/agent-server/src/southwind_agent_server/store.py +2 -0
- package/template/apps/agent-server/src/southwind_agent_server/trajectory.py +137 -0
- package/template/apps/agent-server/src/southwind_agent_server/unavailable_engine.py +58 -0
- package/template/apps/agent-server/tests/test_api.py +30 -11
- package/template/apps/agent-server/tests/test_client_completion.py +230 -0
- package/template/apps/agent-server/tests/test_provider_attempt_reporting.py +12 -24
- package/template/apps/agent-server/tests/test_report_resilience.py +2 -0
- package/template/apps/agent-server/tests/test_report_routes.py +58 -1
- package/template/apps/agent-server/tests/test_report_summary_parity.py +1 -0
- package/template/apps/agent-server/tests/test_run_capacity.py +2 -0
- package/template/apps/agent-server/tests/test_runtime_factory_readiness.py +18 -3
- package/template/apps/agent-server/tests/test_trajectory.py +91 -0
- package/template/apps/agent-server/uv.lock +0 -259
- package/template/apps/server/Dockerfile +9 -4
- package/template/apps/server/src/agent/actor-projection-audit.ts +6 -0
- package/template/apps/server/src/agent/agent-run-delegation-policy.ts +115 -0
- package/template/apps/server/src/agent/agent-session-bootstrap.ts +23 -0
- package/template/apps/server/src/agent/{debug-session-facade-provider-failure.test.ts → agent-session-facade-provider-failure.test.ts} +24 -33
- package/template/apps/server/src/agent/{debug-session-facade.test.ts → agent-session-facade.test.ts} +34 -45
- package/template/apps/server/src/agent/{debug-session-facade.ts → agent-session-facade.ts} +50 -57
- package/template/apps/server/src/agent/{debug-session-id.test.ts → agent-session-id.test.ts} +5 -5
- package/template/apps/server/src/agent/{debug-session-id.ts → agent-session-id.ts} +7 -7
- package/template/apps/server/src/agent/{debug-session-provider-reader.ts → agent-session-provider-reader.ts} +18 -15
- package/template/apps/server/src/agent/{debug-session-routes.test.ts → agent-session-routes.test.ts} +16 -16
- package/template/apps/server/src/agent/{debug-session-routes.ts → agent-session-routes.ts} +12 -12
- package/template/apps/server/src/agent/{debug-session-validation.ts → agent-session-validation.ts} +13 -11
- package/template/apps/server/src/agent/client-session/attempt-authority.test.ts +162 -0
- package/template/apps/server/src/agent/client-session/attempt-authority.ts +191 -0
- package/template/apps/server/src/agent/client-session/authorization.ts +47 -0
- package/template/apps/server/src/agent/client-session/bootstrap.ts +112 -0
- package/template/apps/server/src/agent/client-session/capabilities.ts +19 -0
- package/template/apps/server/src/agent/client-session/completion.ts +350 -0
- package/template/apps/server/src/agent/client-session/contracts.ts +159 -0
- package/template/apps/server/src/agent/client-session/creation.ts +103 -0
- package/template/apps/server/src/agent/client-session/digest.ts +49 -0
- package/template/apps/server/src/agent/client-session/drizzle-records.ts +150 -0
- package/template/apps/server/src/agent/client-session/drizzle-repository.integration.test.ts +197 -0
- package/template/apps/server/src/agent/client-session/drizzle-repository.ts +236 -0
- package/template/apps/server/src/agent/client-session/errors.ts +28 -0
- package/template/apps/server/src/agent/client-session/finalization.ts +99 -0
- package/template/apps/server/src/agent/client-session/fixtures/page-agent-1.12.2-request.json +52 -0
- package/template/apps/server/src/agent/client-session/host-auth.test.ts +144 -0
- package/template/apps/server/src/agent/client-session/host-auth.ts +122 -0
- package/template/apps/server/src/agent/client-session/host-revocation-composition.test.ts +77 -0
- package/template/apps/server/src/agent/client-session/host-revocation-composition.ts +28 -0
- package/template/apps/server/src/agent/client-session/launch-authority.contract.test.ts +21 -0
- package/template/apps/server/src/agent/client-session/manifest-admission.ts +251 -0
- package/template/apps/server/src/agent/client-session/openai-stream.ts +123 -0
- package/template/apps/server/src/agent/client-session/presentation.ts +46 -0
- package/template/apps/server/src/agent/client-session/remote-provider.test.ts +144 -0
- package/template/apps/server/src/agent/client-session/remote-provider.ts +216 -0
- package/template/apps/server/src/agent/client-session/repository.ts +225 -0
- package/template/apps/server/src/agent/client-session/request.test.ts +69 -0
- package/template/apps/server/src/agent/client-session/request.ts +289 -0
- package/template/apps/server/src/agent/client-session/revocation.ts +23 -0
- package/template/apps/server/src/agent/client-session/routes.ts +315 -0
- package/template/apps/server/src/agent/client-session/runtime-audit.ts +42 -0
- package/template/apps/server/src/agent/client-session/service.test-support.ts +248 -0
- package/template/apps/server/src/agent/client-session/service.test.ts +268 -0
- package/template/apps/server/src/agent/client-session/service.ts +316 -0
- package/template/apps/server/src/agent/client-session/terminal-digest.test.ts +23 -0
- package/template/apps/server/src/agent/client-workflow-artifact/active-blob-references.ts +8 -0
- package/template/apps/server/src/agent/client-workflow-artifact/artifact-builder.ts +60 -0
- package/template/apps/server/src/agent/client-workflow-artifact/authority-current.ts +59 -0
- package/template/apps/server/src/agent/client-workflow-artifact/binding-registry.test.ts +189 -0
- package/template/apps/server/src/agent/client-workflow-artifact/binding-registry.ts +153 -0
- package/template/apps/server/src/agent/client-workflow-artifact/bootstrap.ts +77 -0
- package/template/apps/server/src/agent/client-workflow-artifact/cancellation.ts +47 -0
- package/template/apps/server/src/agent/client-workflow-artifact/completed-recovery.ts +31 -0
- package/template/apps/server/src/agent/client-workflow-artifact/contracts.ts +104 -0
- package/template/apps/server/src/agent/client-workflow-artifact/drizzle-locks.ts +30 -0
- package/template/apps/server/src/agent/client-workflow-artifact/drizzle-mapper.ts +138 -0
- package/template/apps/server/src/agent/client-workflow-artifact/drizzle-repository.ts +346 -0
- package/template/apps/server/src/agent/client-workflow-artifact/error.ts +21 -0
- package/template/apps/server/src/agent/client-workflow-artifact/handler.ts +167 -0
- package/template/apps/server/src/agent/client-workflow-artifact/host-revocation.ts +29 -0
- package/template/apps/server/src/agent/client-workflow-artifact/in-memory-repository.ts +232 -0
- package/template/apps/server/src/agent/client-workflow-artifact/job-port.ts +101 -0
- package/template/apps/server/src/agent/client-workflow-artifact/presentation.ts +41 -0
- package/template/apps/server/src/agent/client-workflow-artifact/recovery.contract.test.ts +253 -0
- package/template/apps/server/src/agent/client-workflow-artifact/release-binding.ts +85 -0
- package/template/apps/server/src/agent/client-workflow-artifact/repository.test.ts +204 -0
- package/template/apps/server/src/agent/client-workflow-artifact/repository.ts +97 -0
- package/template/apps/server/src/agent/client-workflow-artifact/routes-handler.contract.test.ts +201 -0
- package/template/apps/server/src/agent/client-workflow-artifact/routes.ts +161 -0
- package/template/apps/server/src/agent/client-workflow-artifact/runtime-composition.ts +101 -0
- package/template/apps/server/src/agent/client-workflow-artifact/scope-authority.ts +39 -0
- package/template/apps/server/src/agent/client-workflow-artifact/service-authorization.ts +117 -0
- package/template/apps/server/src/agent/client-workflow-artifact/service-support.ts +28 -0
- package/template/apps/server/src/agent/client-workflow-artifact/service.contract.test.ts +345 -0
- package/template/apps/server/src/agent/client-workflow-artifact/service.ts +350 -0
- package/template/apps/server/src/agent/client-workflow-artifact/session-boundary.ts +39 -0
- package/template/apps/server/src/agent/client-workflow-artifact/source-access.contract.test.ts +98 -0
- package/template/apps/server/src/agent/client-workflow-artifact/source-access.ts +80 -0
- package/template/apps/server/src/agent/client-workflow-artifact/takeover.ts +122 -0
- package/template/apps/server/src/agent/client-workflow-artifact/task-authority.contract.test.ts +97 -0
- package/template/apps/server/src/agent/client-workflow-artifact/task-authority.ts +147 -0
- package/template/apps/server/src/agent/client-workflow-artifact/terminal-authority.contract.test.ts +100 -0
- package/template/apps/server/src/agent/client-workflow-artifact/terminal-replay.ts +31 -0
- package/template/apps/server/src/agent/client-workflow-artifact/terminal-seal.ts +211 -0
- package/template/apps/server/src/agent/client-workflow-artifact/workflow-artifact.test-support.ts +173 -0
- package/template/apps/server/src/agent/client-workflow-artifact/workflow-loader.contract.test.ts +254 -0
- package/template/apps/server/src/agent/client-workflow-artifact/workflow-loader.ts +285 -0
- package/template/apps/server/src/agent/context-memory/attempt-context-contracts.ts +60 -0
- package/template/apps/server/src/agent/context-memory/authoritative-source-registry.ts +127 -0
- package/template/apps/server/src/agent/context-memory/context-builder.test.ts +160 -0
- package/template/apps/server/src/agent/context-memory/context-builder.ts +184 -0
- package/template/apps/server/src/agent/context-memory/contracts.ts +284 -0
- package/template/apps/server/src/agent/context-memory/digest.ts +22 -0
- package/template/apps/server/src/agent/context-memory/memory-authorization.ts +82 -0
- package/template/apps/server/src/agent/context-memory/memory-content.ts +69 -0
- package/template/apps/server/src/agent/context-memory/memory-object-registry.ts +87 -0
- package/template/apps/server/src/agent/context-memory/memory-projector-contracts.ts +121 -0
- package/template/apps/server/src/agent/context-memory/memory-projector-validation.ts +155 -0
- package/template/apps/server/src/agent/context-memory/memory-projector.test.ts +19 -0
- package/template/apps/server/src/agent/context-memory/memory-projector.ts +259 -0
- package/template/apps/server/src/agent/context-memory/memory-retrieval-policy.ts +195 -0
- package/template/apps/server/src/agent/context-memory/memory-retriever.test.ts +339 -0
- package/template/apps/server/src/agent/context-memory/memory-retriever.ts +184 -0
- package/template/apps/server/src/agent/context-memory/search-provider-port.test.ts +62 -0
- package/template/apps/server/src/agent/context-memory/search-provider-port.ts +75 -0
- package/template/apps/server/src/agent/context-memory/working-context-expiry.ts +95 -0
- package/template/apps/server/src/agent/context-message-recovery.ts +23 -0
- package/template/apps/server/src/agent/context-version-routes.ts +241 -0
- package/template/apps/server/src/agent/context-version-runtime.ts +332 -0
- package/template/apps/server/src/agent/context-version-support.ts +93 -0
- package/template/apps/server/src/agent/context-version-validation.ts +118 -0
- package/template/apps/server/src/agent/drizzle-run-binding-repository.ts +11 -0
- package/template/apps/server/src/agent/idempotency-key.ts +9 -1
- package/template/apps/server/src/agent/memory-runtime-adapters.ts +266 -0
- package/template/apps/server/src/agent/memory-scope-binding.ts +14 -0
- package/template/apps/server/src/agent/module-ai-port-factory.ts +41 -0
- package/template/apps/server/src/agent/provider-input-governance.ts +19 -0
- package/template/apps/server/src/agent/remote-runtime-response.ts +162 -0
- package/template/apps/server/src/agent/remote-runtime.ts +53 -153
- package/template/apps/server/src/agent/run-audit.ts +2 -2
- package/template/apps/server/src/agent/run-authorization.test.ts +27 -0
- package/template/apps/server/src/agent/run-authorization.ts +60 -1
- package/template/apps/server/src/agent/run-binding-repository.ts +9 -0
- package/template/apps/server/src/agent/run-browser-authorization.ts +79 -0
- package/template/apps/server/src/agent/run-contracts.ts +23 -0
- package/template/apps/server/src/agent/run-facade.test-support.ts +17 -4
- package/template/apps/server/src/agent/run-facade.test.ts +16 -0
- package/template/apps/server/src/agent/run-facade.ts +139 -139
- package/template/apps/server/src/agent/run-failure-cleanup.ts +58 -0
- package/template/apps/server/src/agent/run-operation-policy.ts +20 -0
- package/template/apps/server/src/agent/run-route-input.ts +19 -1
- package/template/apps/server/src/agent/run-routes.ts +133 -5
- package/template/apps/server/src/agent/run-runtime-request.ts +89 -0
- package/template/apps/server/src/agent/run-session-authorization.ts +97 -0
- package/template/apps/server/src/agent/run-start-preparation.ts +71 -0
- package/template/apps/server/src/agent/runtime-bootstrap-input.ts +46 -0
- package/template/apps/server/src/agent/runtime-bootstrap-report.test.ts +53 -1
- package/template/apps/server/src/agent/runtime-bootstrap.ts +115 -112
- package/template/apps/server/src/agent/runtime-public-ports.ts +40 -0
- package/template/apps/server/src/agent/runtime-tool-composition.ts +38 -0
- package/template/apps/server/src/agent/session-context-source-support.ts +38 -0
- package/template/apps/server/src/agent/session-context-source.ts +346 -0
- package/template/apps/server/src/agent/session-invalidation/contracts.ts +216 -0
- package/template/apps/server/src/agent/session-invalidation/dispatcher.contract.test.ts +333 -0
- package/template/apps/server/src/agent/session-invalidation/dispatcher.ts +205 -0
- package/template/apps/server/src/agent/session-invalidation/module-authoritative-producer.test.ts +127 -0
- package/template/apps/server/src/agent/session-invalidation/module-authoritative-producer.ts +202 -0
- package/template/apps/server/src/agent/session-invalidation/read-guard.ts +39 -0
- package/template/apps/server/src/agent/session-invalidation/runtime.ts +69 -0
- package/template/apps/server/src/agent/session-invalidation/test-envelopes.ts +24 -0
- package/template/apps/server/src/agent/session-invalidation/worker.contract.test.ts +135 -0
- package/template/apps/server/src/agent/session-invalidation/worker.ts +76 -0
- package/template/apps/server/src/agent/session-log/checkpoint-digest.ts +36 -0
- package/template/apps/server/src/agent/session-log/domain.ts +123 -0
- package/template/apps/server/src/agent/session-log/events.ts +229 -0
- package/template/apps/server/src/agent/session-log/history.ts +143 -0
- package/template/apps/server/src/agent/session-log/in-memory-repository.ts +340 -0
- package/template/apps/server/src/agent/session-log/lifecycle.ts +67 -0
- package/template/apps/server/src/agent/session-log/replay-policy.ts +76 -0
- package/template/apps/server/src/agent/session-log/repository.ts +103 -0
- package/template/apps/server/src/agent/session-log/service.ts +349 -0
- package/template/apps/server/src/agent/session-log/session-log.test.ts +282 -0
- package/template/apps/server/src/agent/session-persistence/drizzle-context-memory.ts +348 -0
- package/template/apps/server/src/agent/session-persistence/drizzle-governed-context.ts +328 -0
- package/template/apps/server/src/agent/session-persistence/drizzle-invalidation-outbox.ts +260 -0
- package/template/apps/server/src/agent/session-persistence/drizzle-memory-projection-deletion.ts +56 -0
- package/template/apps/server/src/agent/session-persistence/drizzle-run-projection-receipt.ts +80 -0
- package/template/apps/server/src/agent/session-persistence/drizzle-session-fork.ts +147 -0
- package/template/apps/server/src/agent/session-persistence/drizzle-session-list.ts +24 -0
- package/template/apps/server/src/agent/session-persistence/drizzle-session-mapping.ts +154 -0
- package/template/apps/server/src/agent/session-persistence/drizzle-session-mutations.ts +64 -0
- package/template/apps/server/src/agent/session-persistence/drizzle-session-repository.ts +335 -0
- package/template/apps/server/src/agent/session-persistence/invalidation-projections.ts +229 -0
- package/template/apps/server/src/agent/session-persistence/payload-codec.ts +90 -0
- package/template/apps/server/src/agent/session-projection-access.ts +167 -0
- package/template/apps/server/src/agent/session-projection-bootstrap.ts +87 -0
- package/template/apps/server/src/agent/session-projection-errors.ts +22 -0
- package/template/apps/server/src/agent/session-projection-facade.ts +349 -0
- package/template/apps/server/src/agent/session-projection-routes.ts +215 -0
- package/template/apps/server/src/agent/session-projection-view.ts +137 -0
- package/template/apps/server/src/agent/session-result-memory.ts +228 -0
- package/template/apps/server/src/agent/session-run-lifecycle.ts +85 -0
- package/template/apps/server/src/agent/session-run-link-contracts.ts +56 -0
- package/template/apps/server/src/agent/session-run-link.ts +343 -0
- package/template/apps/server/src/agent/session-run-recovery.ts +16 -0
- package/template/apps/server/src/agent/session-runtime-composition.ts +265 -0
- package/template/apps/server/src/agent/session-source-chain-authorizer.ts +141 -0
- package/template/apps/server/src/agent/session-terminal-reconciler.ts +100 -0
- package/template/apps/server/src/agent/session-turn-state.ts +49 -0
- package/template/apps/server/src/agent/tool-audit.ts +3 -3
- package/template/apps/server/src/agent/tool-execution-receipt.ts +13 -0
- package/template/apps/server/src/agent/tool-host.ts +41 -4
- package/template/apps/server/src/agent/tool-registry-composition.ts +52 -0
- package/template/apps/server/src/agent/tool-registry.test.ts +5 -5
- package/template/apps/server/src/agent/tool-registry.ts +53 -59
- package/template/apps/server/src/agent/unavailable-routes.ts +70 -5
- package/template/apps/server/src/agent/workflow-durable-runtime-input.ts +32 -0
- package/template/apps/server/src/agent/workflow-runtime-bootstrap.ts +61 -0
- package/template/apps/server/src/agent-workflow/adapter-dispatch.ts +148 -0
- package/template/apps/server/src/agent-workflow/approval-node-adapter.ts +77 -0
- package/template/apps/server/src/agent-workflow/artifact-access-error.ts +9 -0
- package/template/apps/server/src/agent-workflow/artifact-node-adapter.ts +67 -0
- package/template/apps/server/src/agent-workflow/artifact-policy.ts +71 -0
- package/template/apps/server/src/agent-workflow/artifact-source-authorization.ts +91 -0
- package/template/apps/server/src/agent-workflow/authorization.ts +238 -0
- package/template/apps/server/src/agent-workflow/budget-ledger.ts +118 -0
- package/template/apps/server/src/agent-workflow/budget-validation.ts +305 -0
- package/template/apps/server/src/agent-workflow/canonical-agent-run-binding.ts +17 -0
- package/template/apps/server/src/agent-workflow/canonical-agent-run-evidence.ts +142 -0
- package/template/apps/server/src/agent-workflow/canonical-agent-run-port.ts +304 -0
- package/template/apps/server/src/agent-workflow/canonical-agent-run-remote.ts +64 -0
- package/template/apps/server/src/agent-workflow/canonical-json.ts +16 -0
- package/template/apps/server/src/agent-workflow/command-drive.ts +195 -0
- package/template/apps/server/src/agent-workflow/command-error.ts +9 -0
- package/template/apps/server/src/agent-workflow/command-facade.ts +349 -0
- package/template/apps/server/src/agent-workflow/command-input.ts +133 -0
- package/template/apps/server/src/agent-workflow/condition-node-adapter.ts +69 -0
- package/template/apps/server/src/agent-workflow/definition-budget-validation.ts +41 -0
- package/template/apps/server/src/agent-workflow/definition-node-validation.ts +197 -0
- package/template/apps/server/src/agent-workflow/definition-validation.ts +198 -0
- package/template/apps/server/src/agent-workflow/delegated-tool-authorization.ts +15 -0
- package/template/apps/server/src/agent-workflow/delegation-child-delivery.ts +129 -0
- package/template/apps/server/src/agent-workflow/delegation-execution-authorization.ts +218 -0
- package/template/apps/server/src/agent-workflow/delegation-policy-validation.ts +253 -0
- package/template/apps/server/src/agent-workflow/delegation-policy.ts +179 -0
- package/template/apps/server/src/agent-workflow/drizzle-artifact-port.ts +211 -0
- package/template/apps/server/src/agent-workflow/drizzle-artifact-support.ts +152 -0
- package/template/apps/server/src/agent-workflow/drizzle-budget-ledger-settlement.ts +271 -0
- package/template/apps/server/src/agent-workflow/drizzle-budget-ledger-support.ts +226 -0
- package/template/apps/server/src/agent-workflow/drizzle-budget-ledger.ts +189 -0
- package/template/apps/server/src/agent-workflow/drizzle-cancellation-reconcile.ts +177 -0
- package/template/apps/server/src/agent-workflow/drizzle-delegated-tool-authorization.ts +155 -0
- package/template/apps/server/src/agent-workflow/drizzle-delegation-completion.ts +84 -0
- package/template/apps/server/src/agent-workflow/drizzle-delegation-lifecycle.ts +139 -0
- package/template/apps/server/src/agent-workflow/drizzle-delegation-port.ts +288 -0
- package/template/apps/server/src/agent-workflow/drizzle-effect-command-fence.ts +333 -0
- package/template/apps/server/src/agent-workflow/drizzle-evaluation-repository.ts +214 -0
- package/template/apps/server/src/agent-workflow/drizzle-event-validation.ts +43 -0
- package/template/apps/server/src/agent-workflow/drizzle-recovery-admission.ts +115 -0
- package/template/apps/server/src/agent-workflow/drizzle-repository-lineage.ts +103 -0
- package/template/apps/server/src/agent-workflow/drizzle-repository-mappers.ts +317 -0
- package/template/apps/server/src/agent-workflow/drizzle-repository-write.ts +311 -0
- package/template/apps/server/src/agent-workflow/drizzle-repository.ts +285 -0
- package/template/apps/server/src/agent-workflow/drizzle-side-effect-repository.ts +83 -0
- package/template/apps/server/src/agent-workflow/drizzle-write-support.ts +101 -0
- package/template/apps/server/src/agent-workflow/durable-continuation-authorization.ts +109 -0
- package/template/apps/server/src/agent-workflow/durable-continuation-driver.ts +97 -0
- package/template/apps/server/src/agent-workflow/durable-continuation-runtime.ts +173 -0
- package/template/apps/server/src/agent-workflow/durable-job-node-adapter.ts +106 -0
- package/template/apps/server/src/agent-workflow/effect-command-fence.ts +250 -0
- package/template/apps/server/src/agent-workflow/evaluation-evidence-coordinates.ts +225 -0
- package/template/apps/server/src/agent-workflow/evaluation-evidence-metrics.ts +280 -0
- package/template/apps/server/src/agent-workflow/evaluation-evidence-reader.ts +326 -0
- package/template/apps/server/src/agent-workflow/evaluation-metrics-validation.ts +85 -0
- package/template/apps/server/src/agent-workflow/evaluation-projection.ts +70 -0
- package/template/apps/server/src/agent-workflow/evaluation-repository.ts +134 -0
- package/template/apps/server/src/agent-workflow/evaluation-service.ts +292 -0
- package/template/apps/server/src/agent-workflow/evaluation-tool-registration.ts +95 -0
- package/template/apps/server/src/agent-workflow/evaluation-validation.ts +331 -0
- package/template/apps/server/src/agent-workflow/event-validation.ts +277 -0
- package/template/apps/server/src/agent-workflow/governed-tool-schema.ts +55 -0
- package/template/apps/server/src/agent-workflow/in-memory-evaluation-repository.ts +123 -0
- package/template/apps/server/src/agent-workflow/in-memory-mutation-validation.ts +154 -0
- package/template/apps/server/src/agent-workflow/in-memory-repository-support.ts +277 -0
- package/template/apps/server/src/agent-workflow/in-memory-repository.ts +339 -0
- package/template/apps/server/src/agent-workflow/in-memory-side-effect-store.ts +78 -0
- package/template/apps/server/src/agent-workflow/input-receipt.ts +55 -0
- package/template/apps/server/src/agent-workflow/model-node-adapter.ts +86 -0
- package/template/apps/server/src/agent-workflow/model-pricing-catalog.ts +215 -0
- package/template/apps/server/src/agent-workflow/node-adapter-factory.ts +83 -0
- package/template/apps/server/src/agent-workflow/node-adapters.ts +50 -0
- package/template/apps/server/src/agent-workflow/node-execution-ports.ts +185 -0
- package/template/apps/server/src/agent-workflow/node-input-receipt-port.ts +42 -0
- package/template/apps/server/src/agent-workflow/node-result-receipt.ts +50 -0
- package/template/apps/server/src/agent-workflow/platform-node-adapter-support.ts +185 -0
- package/template/apps/server/src/agent-workflow/platform-node-adapters.ts +264 -0
- package/template/apps/server/src/agent-workflow/platform-node-approval.ts +146 -0
- package/template/apps/server/src/agent-workflow/platform-node-direct-adapters.ts +65 -0
- package/template/apps/server/src/agent-workflow/production-delegation-scope.ts +58 -0
- package/template/apps/server/src/agent-workflow/production-node-policies.ts +62 -0
- package/template/apps/server/src/agent-workflow/project-launch-authority.contract.test.ts +53 -0
- package/template/apps/server/src/agent-workflow/project-launch-authority.ts +92 -0
- package/template/apps/server/src/agent-workflow/query-service.ts +198 -0
- package/template/apps/server/src/agent-workflow/release.ts +96 -0
- package/template/apps/server/src/agent-workflow/repository.ts +157 -0
- package/template/apps/server/src/agent-workflow/routes.ts +307 -0
- package/template/apps/server/src/agent-workflow/runtime-composition.ts +324 -0
- package/template/apps/server/src/agent-workflow/scheduler-cancellation-reconcile.ts +253 -0
- package/template/apps/server/src/agent-workflow/scheduler-cancellation-support.ts +145 -0
- package/template/apps/server/src/agent-workflow/scheduler-cancellation.ts +2 -0
- package/template/apps/server/src/agent-workflow/scheduler-context.ts +85 -0
- package/template/apps/server/src/agent-workflow/scheduler-deadline.ts +65 -0
- package/template/apps/server/src/agent-workflow/scheduler-effect-result.ts +205 -0
- package/template/apps/server/src/agent-workflow/scheduler-execution-convergence.ts +174 -0
- package/template/apps/server/src/agent-workflow/scheduler-execution.ts +211 -0
- package/template/apps/server/src/agent-workflow/scheduler-failure.ts +102 -0
- package/template/apps/server/src/agent-workflow/scheduler-join-cancellation.ts +282 -0
- package/template/apps/server/src/agent-workflow/scheduler-mutation-queue.ts +13 -0
- package/template/apps/server/src/agent-workflow/scheduler-node-timeout.ts +139 -0
- package/template/apps/server/src/agent-workflow/scheduler-parallel-dispatch.ts +99 -0
- package/template/apps/server/src/agent-workflow/scheduler-recovery-activation.ts +63 -0
- package/template/apps/server/src/agent-workflow/scheduler-recovery-budget.ts +41 -0
- package/template/apps/server/src/agent-workflow/scheduler-recovery-effect.ts +331 -0
- package/template/apps/server/src/agent-workflow/scheduler-recovery-event-time.ts +26 -0
- package/template/apps/server/src/agent-workflow/scheduler-recovery-failed-policy.ts +129 -0
- package/template/apps/server/src/agent-workflow/scheduler-recovery-node.ts +208 -0
- package/template/apps/server/src/agent-workflow/scheduler-recovery-policy-convergence.ts +140 -0
- package/template/apps/server/src/agent-workflow/scheduler-reservation-convergence.ts +40 -0
- package/template/apps/server/src/agent-workflow/scheduler-side-effect-execution.ts +249 -0
- package/template/apps/server/src/agent-workflow/scheduler-support.ts +235 -0
- package/template/apps/server/src/agent-workflow/scheduler-workflow-cancellation.ts +296 -0
- package/template/apps/server/src/agent-workflow/scheduler.ts +289 -0
- package/template/apps/server/src/agent-workflow/service-completion.ts +102 -0
- package/template/apps/server/src/agent-workflow/service-mutation-identity.ts +94 -0
- package/template/apps/server/src/agent-workflow/service-node-admission.ts +36 -0
- package/template/apps/server/src/agent-workflow/service-node-run-update.ts +55 -0
- package/template/apps/server/src/agent-workflow/service-recovery-events.ts +38 -0
- package/template/apps/server/src/agent-workflow/service-recovery.ts +264 -0
- package/template/apps/server/src/agent-workflow/service-retry.ts +86 -0
- package/template/apps/server/src/agent-workflow/service-run-command.ts +131 -0
- package/template/apps/server/src/agent-workflow/service-state-error.ts +21 -0
- package/template/apps/server/src/agent-workflow/service-state-invariants.ts +44 -0
- package/template/apps/server/src/agent-workflow/service-support.ts +152 -0
- package/template/apps/server/src/agent-workflow/service.ts +307 -0
- package/template/apps/server/src/agent-workflow/side-effect-state.ts +226 -0
- package/template/apps/server/src/agent-workflow/state-machine.ts +321 -0
- package/template/apps/server/src/agent-workflow/subagent-node-adapter.ts +229 -0
- package/template/apps/server/src/agent-workflow/tool-node-adapter.ts +259 -0
- package/template/apps/server/src/agent-workflow/usage.ts +149 -0
- package/template/apps/server/src/agent-workflow/wait-signal-service.ts +147 -0
- package/template/apps/server/src/agent-workflow/workflow-artifact-token.ts +109 -0
- package/template/apps/server/src/agent-workflow/workflow-value-validation.ts +101 -0
- package/template/apps/server/src/agent-workflow/workspace-policy.ts +109 -0
- package/template/apps/server/src/ai-runtime-report/remote-parser.ts +41 -0
- package/template/apps/server/src/ai-runtime-report/service.test.ts +2 -0
- package/template/apps/server/src/app/agent-runtime-composition.ts +43 -0
- package/template/apps/server/src/app/client-agent-host-auth-binding.ts +10 -0
- package/template/apps/server/src/app/client-agent-workflow-artifact-binding.ts +14 -0
- package/template/apps/server/src/application-services.ts +6 -0
- package/template/apps/server/src/auth/actor-resolver.test.ts +33 -0
- package/template/apps/server/src/auth/actor-resolver.ts +6 -1
- package/template/apps/server/src/auth/composition.ts +36 -0
- package/template/apps/server/src/auth/routes.test-support.ts +2 -0
- package/template/apps/server/src/auth/routes.test.ts +18 -0
- package/template/apps/server/src/auth/runtime.ts +2 -0
- package/template/apps/server/src/auth/service-options.ts +16 -0
- package/template/apps/server/src/auth/service.ts +7 -12
- package/template/apps/server/src/data-access/scope-containment.test.ts +31 -0
- package/template/apps/server/src/data-access/scope-containment.ts +48 -0
- package/template/apps/server/src/index.ts +35 -37
- package/template/apps/server/src/jobs/artifact-publication.test.ts +192 -0
- package/template/apps/server/src/jobs/artifact-publication.ts +56 -0
- package/template/apps/server/src/jobs/artifact-publisher.ts +101 -0
- package/template/apps/server/src/jobs/drizzle-artifact.ts +73 -1
- package/template/apps/server/src/jobs/drizzle-execution-repository.ts +14 -1
- package/template/apps/server/src/jobs/drizzle-execution.integration.test.ts +65 -0
- package/template/apps/server/src/jobs/drizzle-repository.integration.test.ts +1 -0
- package/template/apps/server/src/jobs/execution-repository.ts +28 -0
- package/template/apps/server/src/jobs/execution.test.ts +3 -1
- package/template/apps/server/src/jobs/in-memory-execution.ts +16 -0
- package/template/apps/server/src/jobs/in-memory-lease.ts +45 -1
- package/template/apps/server/src/jobs/legacy-adapter.integration.test.ts +2 -0
- package/template/apps/server/src/jobs/postgres-cleanup-contract.test.ts +58 -0
- package/template/apps/server/src/jobs/worker.ts +8 -14
- package/template/apps/server/src/license/pairing-service.test.ts +1 -1
- package/template/apps/server/src/module-host/agent-session-memory-port.ts +91 -0
- package/template/apps/server/src/module-host/{debug-session-provider-registration.test.ts → agent-session-provider-registration.test.ts} +42 -17
- package/template/apps/server/src/module-host/{debug-session-provider-registration.ts → agent-session-provider-registration.ts} +18 -18
- package/template/apps/server/src/module-host/agent-source-invalidation-port.ts +53 -0
- package/template/apps/server/src/module-host/background-ai-unavailable.ts +18 -0
- package/template/apps/server/src/module-host/durable-context.ts +19 -22
- package/template/apps/server/src/module-host/http-runtime.ts +14 -0
- package/template/apps/server/src/module-host/implementation-completeness.test.ts +80 -1
- package/template/apps/server/src/module-host/implementation-completeness.ts +28 -1
- package/template/apps/server/src/module-host/initialize-contracts.ts +4 -5
- package/template/apps/server/src/module-host/initialize.ts +4 -4
- package/template/apps/server/src/module-host/request-context.test.ts +5 -5
- package/template/apps/server/src/module-host/request-context.ts +40 -8
- package/template/apps/server/src/module-host/route-install-context.ts +65 -0
- package/template/apps/server/src/module-host/route-installer.ts +11 -56
- package/template/apps/server/src/module-host/scoped-host.ts +17 -12
- package/template/apps/server/src/module-host/storage-authorization-binding.test.ts +3 -3
- package/template/apps/server/src/module-host/storage-port.ts +3 -0
- package/template/apps/server/src/module-host/workflow-input-artifact-port.test.ts +104 -0
- package/template/apps/server/src/module-host/workflow-input-artifact-port.ts +229 -0
- package/template/apps/server/src/module-host/workflow-input-materialization.test.ts +163 -0
- package/template/apps/server/src/module-host/workflow-input-materialization.ts +161 -0
- package/template/apps/server/src/module-host.ts +3 -5
- package/template/apps/server/src/runtime.ts +3 -36
- package/template/apps/server/src/storage/routes-stream-cancellation.test.ts +19 -0
- package/template/apps/server/src/storage/routes.ts +3 -1
- package/template/apps/server/src/system/actor.ts +15 -2
- package/template/apps/server/src/system/authorization-invalidation-bridge.ts +30 -0
- package/template/apps/server/src/system/authorization-invalidation-composition.ts +36 -0
- package/template/apps/server/src/system/drizzle-system.ts +8 -1
- package/template/apps/server/src/system/identity-route-config.ts +9 -1
- package/template/apps/server/src/system/routes.ts +3 -0
- package/template/apps/server/src/system/seed.ts +3 -0
- package/template/apps/server/src/system/user-account-policy.ts +91 -0
- package/template/apps/server/src/workflow/drizzle-repository.integration.test.ts +1 -0
- package/template/apps/web/package.json +1 -0
- package/template/apps/web/src/layout/AppSidebar.vue +2 -0
- package/template/apps/web/src/pages/system/AgentSessionPage.vue +73 -0
- package/template/apps/web/src/pages/system/AgentSessionPage.webtest.ts +66 -0
- package/template/apps/web/src/pages/system/AgentWorkflowPage.vue +69 -0
- package/template/apps/web/src/pages/system/components/agent-session/AgentSessionDetail.vue +114 -0
- package/template/apps/web/src/pages/system/components/agent-session/AgentSessionList.vue +84 -0
- package/template/apps/web/src/pages/system/components/agent-session/ContextVersionPanel.vue +119 -0
- package/template/apps/web/src/pages/system/components/agent-session/ContextVersionPanel.webtest.ts +46 -0
- package/template/apps/web/src/pages/system/components/agent-session/MemoryProjectionPanel.vue +163 -0
- package/template/apps/web/src/pages/system/components/agent-session/MemoryProjectionPanel.webtest.ts +62 -0
- package/template/apps/web/src/pages/system/components/agent-session/SessionTimeline.vue +71 -0
- package/template/apps/web/src/pages/system/components/agent-session/SessionTimeline.webtest.ts +34 -0
- package/template/apps/web/src/pages/system/components/agent-session/agent-session-presenter.ts +56 -0
- package/template/apps/web/src/pages/system/components/agent-workflow/WorkflowNodeCard.vue +39 -0
- package/template/apps/web/src/pages/system/components/agent-workflow/WorkflowNodeDetail.vue +172 -0
- package/template/apps/web/src/pages/system/components/agent-workflow/WorkflowRunDetail.vue +151 -0
- package/template/apps/web/src/pages/system/components/agent-workflow/WorkflowRunGraph.vue +96 -0
- package/template/apps/web/src/pages/system/components/agent-workflow/WorkflowRunList.vue +100 -0
- package/template/apps/web/src/pages/system/components/agent-workflow/WorkflowRunSummary.vue +148 -0
- package/template/apps/web/src/pages/system/components/agent-workflow/agent-workflow-presenter.ts +74 -0
- package/template/apps/web/src/pages/system/components/agent-workflow/workflow-graph-layout.ts +108 -0
- package/template/apps/web/src/pages/system/components/ai-runtime/AiRuntimeRunDetailDialog.vue +9 -0
- package/template/apps/web/src/pages/system/components/ai-runtime/AiRuntimeRunDetailDialog.webtest.ts +22 -0
- package/template/apps/web/src/pages/system/components/ai-runtime/AiRuntimeRunTable.webtest.ts +2 -0
- package/template/apps/web/src/pages/system/components/ai-runtime/AiRuntimeTrajectory.vue +118 -0
- package/template/apps/web/src/pages/system/composables/useAgentSessions.ts +209 -0
- package/template/apps/web/src/pages/system/composables/useAgentSessions.webtest.ts +138 -0
- package/template/apps/web/src/pages/system/composables/useAgentWorkflowRuns.ts +173 -0
- package/template/apps/web/src/router/index.ts +4 -0
- package/template/apps/web/src/router/platform-admin-route-bindings.ts +6 -0
- package/template/apps/web/src/services/agent-session-api.ts +159 -0
- package/template/apps/web/src/services/agent-session-api.webtest.ts +65 -0
- package/template/apps/web/src/services/agent-workflow-api.ts +181 -0
- package/template/apps/web/src/services/ai-runtime-api.ts +4 -0
- package/template/docker-compose.yml +11 -8
- package/template/docs/adr/0003-agent-session-event-source.md +3 -0
- package/template/docs/architecture/agent-harness.md +464 -0
- package/template/docs/architecture/agent-workflow.md +110 -0
- package/template/docs/architecture/ai-runtime.md +55 -47
- package/template/docs/architecture/durable-jobs.md +7 -0
- package/template/docs/architecture/module-host.md +4 -3
- package/template/docs/operations/adk-retirement.md +98 -0
- package/template/docs/operations/agent-session-memory.md +163 -0
- package/template/docs/operations/agent-session-troubleshooting.md +281 -0
- package/template/docs/operations/agent-workflow-recovery.md +85 -0
- package/template/docs/operations/incremental-delivery.md +1 -1
- package/template/docs/platform/agent-production-store.md +82 -0
- package/template/docs/platform/agent-run-reattachment.md +52 -0
- package/template/docs/platform/agent-runtime-observability.md +4 -3
- package/template/docs/platform/agent-runtime.md +116 -281
- package/template/docs/platform/agent-tool-approval.md +61 -0
- package/template/docs/platform/background-ai-operations.md +50 -0
- package/template/docs/platform/client-agent-session.md +319 -0
- package/template/docs/platform/embedding-ai-runtime.md +94 -0
- package/template/docs/platform/platform-authentication.md +5 -8
- package/template/package.json +0 -1
- package/template/packages/ai-client/index.ts +1 -0
- package/template/packages/ai-client/package.json +3 -1
- package/template/packages/ai-client/src/agent/client/client.ts +15 -2
- package/template/packages/ai-client/src/agent/client/run-protocol.test.ts +39 -25
- package/template/packages/ai-client/src/agent/client/types.ts +4 -0
- package/template/packages/ai-client/src/agent/contracts/contracts.test.ts +49 -7
- package/template/packages/ai-client/src/agent/contracts/events.ts +61 -0
- package/template/packages/ai-client/src/agent/contracts/runs.ts +1 -0
- package/template/packages/ai-client/src/client-agent/contracts.ts +131 -0
- package/template/packages/ai-client/src/client-agent/http.test.ts +60 -0
- package/template/packages/ai-client/src/client-agent/http.ts +66 -0
- package/template/packages/ai-client/src/client-agent/index.ts +4 -0
- package/template/packages/ai-client/src/client-agent/validation.test.ts +57 -0
- package/template/packages/ai-client/src/client-agent/validation.ts +152 -0
- package/template/packages/ai-client/src/client-agent/workflow-artifact/contracts.ts +85 -0
- package/template/packages/ai-client/src/client-agent/workflow-artifact/http.test.ts +49 -0
- package/template/packages/ai-client/src/client-agent/workflow-artifact/http.ts +82 -0
- package/template/packages/ai-client/src/client-agent/workflow-artifact/index.ts +3 -0
- package/template/packages/ai-client/src/client-agent/workflow-artifact/validation.test.ts +154 -0
- package/template/packages/ai-client/src/client-agent/workflow-artifact/validation.ts +332 -0
- package/template/packages/config/index.test.ts +18 -0
- package/template/packages/config/package.json +1 -1
- package/template/packages/config/src/platform-validation.ts +8 -0
- package/template/packages/config/src/platform.ts +22 -9
- package/template/packages/database/drizzle/0055_square_yellowjacket.sql +47 -0
- package/template/packages/database/drizzle/0056_tricky_living_mummy.sql +2 -0
- package/template/packages/database/drizzle/0057_mature_doomsday.sql +4 -0
- package/template/packages/database/drizzle/0058_agent_session_memory.sql +159 -0
- package/template/packages/database/drizzle/0059_agent_source_module_key.sql +16 -0
- package/template/packages/database/drizzle/0060_slimy_rocket_raccoon.sql +43 -0
- package/template/packages/database/drizzle/0061_agent_workflow.sql +303 -0
- package/template/packages/database/drizzle/0062_client_agent_workflow_artifact.sql +63 -0
- package/template/packages/database/drizzle/meta/0055_snapshot.json +11071 -0
- package/template/packages/database/drizzle/meta/0056_snapshot.json +11098 -0
- package/template/packages/database/drizzle/meta/0057_snapshot.json +10878 -0
- package/template/packages/database/drizzle/meta/0058_snapshot.json +12294 -0
- package/template/packages/database/drizzle/meta/0059_snapshot.json +12344 -0
- package/template/packages/database/drizzle/meta/0060_snapshot.json +12326 -0
- package/template/packages/database/drizzle/meta/0061_snapshot.json +14395 -0
- package/template/packages/database/drizzle/meta/0062_snapshot.json +14839 -0
- package/template/packages/database/drizzle/meta/_journal.json +56 -0
- package/template/packages/database/package.json +1 -1
- package/template/packages/database/src/agent-runtime-schema.test.ts +203 -0
- package/template/packages/database/src/schema/agent-context-message.ts +38 -0
- package/template/packages/database/src/schema/agent-runtime.ts +7 -0
- package/template/packages/database/src/schema/agent-session-receipt.ts +36 -0
- package/template/packages/database/src/schema/agent-session.ts +344 -0
- package/template/packages/database/src/schema/agent-workflow-delegation.ts +126 -0
- package/template/packages/database/src/schema/agent-workflow-effects.ts +213 -0
- package/template/packages/database/src/schema/agent-workflow-evaluation.ts +67 -0
- package/template/packages/database/src/schema/agent-workflow.ts +270 -0
- package/template/packages/database/src/schema/client-agent-workflow-artifact.ts +158 -0
- package/template/packages/database/src/schema/client-agent.ts +95 -0
- package/template/packages/database/src/schema/index.ts +9 -0
- package/template/packages/jobs/package.json +1 -1
- package/template/packages/jobs/src/handlers.test.ts +10 -0
- package/template/packages/jobs/src/handlers.ts +28 -11
- package/template/packages/modules/index.ts +2 -0
- package/template/packages/modules/package.json +1 -1
- package/template/packages/modules/src/ai-client-execution-composition.test.ts +98 -0
- package/template/packages/modules/src/ai-client-execution-policy.ts +60 -0
- package/template/packages/modules/src/ai-operation-composition.ts +2 -0
- package/template/packages/modules/src/manifest.ts +17 -0
- package/template/packages/modules/src/system-admin-routes.ts +16 -0
- package/template/packages/modules/src/system-admin-ui-catalog.ts +4 -1
- package/template/packages/modules/src/system-agent-audit-actions.ts +29 -0
- package/template/packages/modules/src/system-ai-api-bindings.ts +277 -0
- package/template/packages/modules/src/system-api-control-plane.ts +4 -78
- package/template/packages/modules/src/system-audit-actions.ts +128 -0
- package/template/packages/modules/src/system-features.ts +17 -0
- package/template/packages/modules/src/system-module-catalog.ts +21 -11
- package/template/packages/modules/src/system-modules.ts +22 -0
- package/template/packages/modules/src/system-permissions.ts +8 -0
- package/template/packages/server-sdk/index.ts +95 -0
- package/template/packages/server-sdk/package.json +9 -1
- package/template/packages/server-sdk/src/agent-session-memory-port.ts +64 -0
- package/template/packages/server-sdk/src/agent-session-provider.ts +63 -0
- package/template/packages/server-sdk/src/agent-source-invalidation-port.ts +54 -0
- package/template/packages/server-sdk/src/ai-operation-registration.ts +2 -0
- package/template/packages/server-sdk/src/client-agent-session.ts +107 -0
- package/template/packages/server-sdk/src/client-agent-workflow-artifact.contract.test.ts +113 -0
- package/template/packages/server-sdk/src/client-agent-workflow-artifact.ts +183 -0
- package/template/packages/server-sdk/src/debug-session-provider.ts +14 -63
- package/template/packages/server-sdk/src/durable-handler.ts +7 -0
- package/template/packages/server-sdk/src/module-host.ts +7 -3
- package/template/packages/server-sdk/src/request-context.ts +13 -0
- package/template/packages/server-sdk/src/workflow-input-artifact-port.ts +104 -0
- package/template/packages/server-sdk/src/workflow-input-artifact-validation.contract.test.ts +124 -0
- package/template/packages/server-sdk/src/workflow-input-artifact-validation.ts +347 -0
- package/template/packages/server-sdk/src/workflow-input-materialization-handler.ts +43 -0
- package/template/packages/shared/index.ts +3 -0
- package/template/packages/shared/package.json +1 -1
- package/template/packages/shared/src/agent-workflow-definition.ts +113 -0
- package/template/packages/shared/src/agent-workflow-delegation.ts +123 -0
- package/template/packages/shared/src/agent-workflow-evaluation.ts +159 -0
- package/template/packages/shared/src/agent-workflow-events.ts +99 -0
- package/template/packages/shared/src/agent-workflow-run.ts +259 -0
- package/template/packages/shared/src/agent-workflow.ts +3 -0
- package/template/packages/shared/src/ai-runtime-report.ts +25 -0
- package/template/packages/shared/src/rbac.ts +24 -0
- package/template/packages/storage/package.json +1 -1
- package/template/packages/storage/src/blob-store-put-once.test.ts +70 -0
- package/template/packages/storage/src/blob-store.ts +9 -0
- package/template/packages/storage/src/local-file-blob-put-once.ts +120 -0
- package/template/packages/storage/src/local-file-blob-store.ts +53 -1
- package/template/packages/storage/src/memory-blob-store.ts +73 -33
- package/template/packages/storage/src/upload-streams.test.ts +31 -0
- package/template/packages/storage/src/upload-streams.ts +20 -6
- package/template/apps/agent-server/adk_web_agents/__init__.py +0 -1
- package/template/apps/agent-server/adk_web_agents/canonical_debug/__init__.py +0 -1
- package/template/apps/agent-server/adk_web_agents/canonical_debug/agent.py +0 -145
- package/template/apps/agent-server/adk_web_agents/safe_debug/__init__.py +0 -3
- package/template/apps/agent-server/adk_web_agents/safe_debug/agent.py +0 -40
- package/template/apps/agent-server/adk_web_agents/services.py +0 -25
- package/template/apps/agent-server/project/adk-web-debug.json +0 -4
- package/template/apps/agent-server/src/southwind_agent_server/adk_adapter.py +0 -333
- package/template/apps/agent-server/src/southwind_agent_server/adk_debug.py +0 -348
- package/template/apps/agent-server/src/southwind_agent_server/adk_debug_sessions.py +0 -325
- package/template/apps/agent-server/src/southwind_agent_server/adk_failure.py +0 -13
- package/template/apps/agent-server/src/southwind_agent_server/adk_model.py +0 -304
- package/template/apps/agent-server/src/southwind_agent_server/adk_tools.py +0 -143
- package/template/apps/agent-server/tests/test_adk_adapter.py +0 -307
- package/template/apps/agent-server/tests/test_adk_debug_result_polling.py +0 -139
- package/template/apps/agent-server/tests/test_adk_debug_sessions.py +0 -215
- package/template/apps/agent-server/tests/test_adk_web_agent.py +0 -12
- package/template/apps/agent-server/tests/test_adk_web_canonical_debug.py +0 -282
- package/template/apps/server/src/agent/run-debug-authorization.ts +0 -27
- package/template/apps/server/src/agent/run-facade-adk-debug.test.ts +0 -95
- package/template/apps/server/src/runtime-adk-debug.test.ts +0 -270
- package/template/apps/server/src/runtime-adk-debug.ts +0 -164
- package/template/apps/server/src/runtime-request-actor.test.ts +0 -55
- package/template/apps/server/src/runtime-request-actor.ts +0 -22
- package/template/docker-compose.agent-debug.yml +0 -58
- package/template/scripts/dev-adk-web.ts +0 -107
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import {
|
|
2
|
+
onBeforeUnmount,
|
|
3
|
+
onMounted,
|
|
4
|
+
readonly,
|
|
5
|
+
shallowRef,
|
|
6
|
+
toValue,
|
|
7
|
+
watch,
|
|
8
|
+
type MaybeRefOrGetter,
|
|
9
|
+
} from "vue";
|
|
10
|
+
import {
|
|
11
|
+
getAgentWorkflowRun,
|
|
12
|
+
listAgentWorkflowRuns,
|
|
13
|
+
type AgentWorkflowRunDetailResponse,
|
|
14
|
+
type AgentWorkflowRunSummary,
|
|
15
|
+
} from "@/services/agent-workflow-api";
|
|
16
|
+
|
|
17
|
+
interface UseAgentWorkflowRunsOptions {
|
|
18
|
+
readonly preferredRunId?: MaybeRefOrGetter<string>;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function useAgentWorkflowRuns(
|
|
22
|
+
options: UseAgentWorkflowRunsOptions = {},
|
|
23
|
+
) {
|
|
24
|
+
const runs = shallowRef<readonly AgentWorkflowRunSummary[]>([]);
|
|
25
|
+
const selectedRunId = shallowRef("");
|
|
26
|
+
const detail = shallowRef<AgentWorkflowRunDetailResponse>();
|
|
27
|
+
const listLoading = shallowRef(false);
|
|
28
|
+
const detailLoading = shallowRef(false);
|
|
29
|
+
const listError = shallowRef("");
|
|
30
|
+
const detailError = shallowRef("");
|
|
31
|
+
let listController: AbortController | undefined;
|
|
32
|
+
let detailController: AbortController | undefined;
|
|
33
|
+
let listRevision = 0;
|
|
34
|
+
let detailRevision = 0;
|
|
35
|
+
|
|
36
|
+
onMounted(() => void refresh());
|
|
37
|
+
onBeforeUnmount(cancelRequests);
|
|
38
|
+
watch(
|
|
39
|
+
() => preferredRunId(options.preferredRunId),
|
|
40
|
+
(runId) => {
|
|
41
|
+
if (runId && runId !== selectedRunId.value) void selectRun(runId);
|
|
42
|
+
},
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
async function refresh() {
|
|
46
|
+
const revision = ++listRevision;
|
|
47
|
+
listController?.abort();
|
|
48
|
+
const controller = new AbortController();
|
|
49
|
+
listController = controller;
|
|
50
|
+
listLoading.value = true;
|
|
51
|
+
listError.value = "";
|
|
52
|
+
|
|
53
|
+
try {
|
|
54
|
+
const response = await listAgentWorkflowRuns(controller.signal);
|
|
55
|
+
if (!isCurrentList(revision, controller)) return;
|
|
56
|
+
runs.value = response.items;
|
|
57
|
+
const requestedRunId = preferredRunId(options.preferredRunId);
|
|
58
|
+
const nextRunId =
|
|
59
|
+
requestedRunId ||
|
|
60
|
+
(response.items.some(({ runId }) => runId === selectedRunId.value)
|
|
61
|
+
? selectedRunId.value
|
|
62
|
+
: (response.items[0]?.runId ?? ""));
|
|
63
|
+
if (!nextRunId) {
|
|
64
|
+
clearSelection();
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
selectedRunId.value = nextRunId;
|
|
68
|
+
await loadDetail(nextRunId);
|
|
69
|
+
} catch (error) {
|
|
70
|
+
if (isCurrentList(revision, controller) && !isAbortError(error)) {
|
|
71
|
+
listError.value = errorMessage(error);
|
|
72
|
+
}
|
|
73
|
+
} finally {
|
|
74
|
+
if (revision === listRevision) {
|
|
75
|
+
listLoading.value = false;
|
|
76
|
+
listController = undefined;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
async function selectRun(runId: string) {
|
|
82
|
+
if (!runId.trim() || runId === selectedRunId.value) return;
|
|
83
|
+
selectedRunId.value = runId;
|
|
84
|
+
await loadDetail(runId);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
async function loadDetail(runId: string) {
|
|
88
|
+
const revision = ++detailRevision;
|
|
89
|
+
detailController?.abort();
|
|
90
|
+
const controller = new AbortController();
|
|
91
|
+
detailController = controller;
|
|
92
|
+
detailLoading.value = true;
|
|
93
|
+
detailError.value = "";
|
|
94
|
+
detail.value = undefined;
|
|
95
|
+
|
|
96
|
+
try {
|
|
97
|
+
const response = await getAgentWorkflowRun(runId, controller.signal);
|
|
98
|
+
if (isCurrentDetail(revision, runId, controller)) {
|
|
99
|
+
detail.value = response;
|
|
100
|
+
}
|
|
101
|
+
} catch (error) {
|
|
102
|
+
if (
|
|
103
|
+
isCurrentDetail(revision, runId, controller) &&
|
|
104
|
+
!isAbortError(error)
|
|
105
|
+
) {
|
|
106
|
+
detailError.value = errorMessage(error);
|
|
107
|
+
}
|
|
108
|
+
} finally {
|
|
109
|
+
if (revision === detailRevision) {
|
|
110
|
+
detailLoading.value = false;
|
|
111
|
+
detailController = undefined;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
function clearSelection() {
|
|
117
|
+
detailRevision += 1;
|
|
118
|
+
detailController?.abort();
|
|
119
|
+
detailController = undefined;
|
|
120
|
+
selectedRunId.value = "";
|
|
121
|
+
detail.value = undefined;
|
|
122
|
+
detailError.value = "";
|
|
123
|
+
detailLoading.value = false;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function cancelRequests() {
|
|
127
|
+
listRevision += 1;
|
|
128
|
+
detailRevision += 1;
|
|
129
|
+
listController?.abort();
|
|
130
|
+
detailController?.abort();
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function isCurrentList(revision: number, controller: AbortController) {
|
|
134
|
+
return revision === listRevision && !controller.signal.aborted;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
function isCurrentDetail(
|
|
138
|
+
revision: number,
|
|
139
|
+
runId: string,
|
|
140
|
+
controller: AbortController,
|
|
141
|
+
) {
|
|
142
|
+
return (
|
|
143
|
+
revision === detailRevision &&
|
|
144
|
+
selectedRunId.value === runId &&
|
|
145
|
+
!controller.signal.aborted
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return {
|
|
150
|
+
runs: readonly(runs),
|
|
151
|
+
selectedRunId: readonly(selectedRunId),
|
|
152
|
+
detail: readonly(detail),
|
|
153
|
+
listLoading: readonly(listLoading),
|
|
154
|
+
detailLoading: readonly(detailLoading),
|
|
155
|
+
listError: readonly(listError),
|
|
156
|
+
detailError: readonly(detailError),
|
|
157
|
+
refresh,
|
|
158
|
+
selectRun,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
function preferredRunId(value: MaybeRefOrGetter<string> | undefined) {
|
|
163
|
+
const runId = value ? toValue(value).trim() : "";
|
|
164
|
+
return runId.length <= 256 ? runId : "";
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function errorMessage(error: unknown) {
|
|
168
|
+
return error instanceof Error ? error.message : String(error);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
function isAbortError(error: unknown) {
|
|
172
|
+
return error instanceof Error && error.name === "AbortError";
|
|
173
|
+
}
|
|
@@ -20,6 +20,8 @@ import SystemOperationsPage from "@/pages/system/SystemOperationsPage.vue";
|
|
|
20
20
|
// @windy-module system.operations end
|
|
21
21
|
// @windy-module system.agent begin
|
|
22
22
|
import AiRuntimePage from "@/pages/system/AiRuntimePage.vue";
|
|
23
|
+
import AgentSessionPage from "@/pages/system/AgentSessionPage.vue";
|
|
24
|
+
import AgentWorkflowPage from "@/pages/system/AgentWorkflowPage.vue";
|
|
23
25
|
// @windy-module system.agent end
|
|
24
26
|
// @windy-module system.notification begin
|
|
25
27
|
import SystemNotificationsPage from "@/pages/system/SystemNotificationsPage.vue";
|
|
@@ -99,6 +101,8 @@ const platformAdminPageComponents: Partial<
|
|
|
99
101
|
operations: SystemOperationsPage,
|
|
100
102
|
// @windy-module system.operations end
|
|
101
103
|
// @windy-module system.agent begin
|
|
104
|
+
"agent-session": AgentSessionPage,
|
|
105
|
+
"agent-workflow": AgentWorkflowPage,
|
|
102
106
|
"ai-runtime": AiRuntimePage,
|
|
103
107
|
// @windy-module system.agent end
|
|
104
108
|
// @windy-module system.configuration begin
|
|
@@ -7,7 +7,11 @@ export type PlatformAdminPageKey =
|
|
|
7
7
|
| "license"
|
|
8
8
|
| "notification"
|
|
9
9
|
| "operations"
|
|
10
|
+
// @windy-module system.agent begin
|
|
11
|
+
| "agent-session"
|
|
12
|
+
| "agent-workflow"
|
|
10
13
|
| "ai-runtime"
|
|
14
|
+
// @windy-module system.agent end
|
|
11
15
|
| "configuration"
|
|
12
16
|
| "ui-components";
|
|
13
17
|
|
|
@@ -56,6 +60,8 @@ export const platformAdminRouteBindings: readonly PlatformAdminRouteBinding[] =
|
|
|
56
60
|
{ routeKey: "system.ops", page: "operations" },
|
|
57
61
|
// @windy-module system.operations end
|
|
58
62
|
// @windy-module system.agent begin
|
|
63
|
+
{ routeKey: "system.agent-session", page: "agent-session" },
|
|
64
|
+
{ routeKey: "system.agent-workflow", page: "agent-workflow" },
|
|
59
65
|
{ routeKey: "system.ai-runtime", page: "ai-runtime" },
|
|
60
66
|
// @windy-module system.agent end
|
|
61
67
|
// @windy-module system.configuration begin
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { apiRequest } from "./http";
|
|
2
|
+
|
|
3
|
+
export type AgentSessionStatus = "active" | "archived";
|
|
4
|
+
|
|
5
|
+
export interface AgentSessionLineage {
|
|
6
|
+
readonly parentSessionId: string;
|
|
7
|
+
readonly parentCheckpointId: string;
|
|
8
|
+
readonly parentSequence: number;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface AgentSessionSummary {
|
|
12
|
+
readonly sessionId: string;
|
|
13
|
+
readonly status: AgentSessionStatus;
|
|
14
|
+
readonly headSequence: number;
|
|
15
|
+
readonly updatedAt: string;
|
|
16
|
+
readonly lineage?: AgentSessionLineage;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface AgentSessionTimelineEvent {
|
|
20
|
+
readonly sequence: number;
|
|
21
|
+
readonly type: string;
|
|
22
|
+
readonly occurredAt: string;
|
|
23
|
+
readonly summary: string;
|
|
24
|
+
readonly runId?: string;
|
|
25
|
+
readonly turnId?: string;
|
|
26
|
+
readonly stepId?: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface AgentSessionDetailResponse {
|
|
30
|
+
readonly session: AgentSessionSummary;
|
|
31
|
+
readonly timeline: readonly AgentSessionTimelineEvent[];
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface AgentSessionListResponse {
|
|
35
|
+
readonly items: readonly AgentSessionSummary[];
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export type ContextSourceValidityStatus = "valid" | "invalid";
|
|
39
|
+
|
|
40
|
+
export interface ContextSourceValidity {
|
|
41
|
+
readonly status: ContextSourceValidityStatus;
|
|
42
|
+
readonly checkedAt: string;
|
|
43
|
+
readonly expiresAt?: string;
|
|
44
|
+
readonly reason?: string;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface AgentContextSource {
|
|
48
|
+
readonly moduleKey: string;
|
|
49
|
+
readonly kind: string;
|
|
50
|
+
readonly id: string;
|
|
51
|
+
readonly version: string;
|
|
52
|
+
readonly sequence: number;
|
|
53
|
+
readonly digest: string;
|
|
54
|
+
readonly validity: ContextSourceValidity;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface AgentContextVersion {
|
|
58
|
+
readonly contextVersionId: string;
|
|
59
|
+
readonly sessionId: string;
|
|
60
|
+
readonly turnId: string;
|
|
61
|
+
readonly runId: string;
|
|
62
|
+
readonly modelAttemptId: string;
|
|
63
|
+
readonly sources: readonly AgentContextSource[];
|
|
64
|
+
readonly digest: string;
|
|
65
|
+
readonly createdAt: string;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export interface AgentContextVersionListResponse {
|
|
69
|
+
readonly items: readonly AgentContextVersion[];
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export type AgentMemoryKind =
|
|
73
|
+
| "working-context"
|
|
74
|
+
| "session-summary"
|
|
75
|
+
| "user-preference"
|
|
76
|
+
| "case-memory-candidate"
|
|
77
|
+
| "verified-fact-reference";
|
|
78
|
+
|
|
79
|
+
export type AgentMemoryStatus = "active" | "invalidated" | "deleted";
|
|
80
|
+
export type AgentMemoryScopeKind = "session" | "user" | "case";
|
|
81
|
+
|
|
82
|
+
export interface AgentMemoryScope {
|
|
83
|
+
readonly kind: AgentMemoryScopeKind;
|
|
84
|
+
readonly id: string;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export interface AgentMemorySource {
|
|
88
|
+
readonly moduleKey: string;
|
|
89
|
+
readonly kind: string;
|
|
90
|
+
readonly id: string;
|
|
91
|
+
readonly version: string;
|
|
92
|
+
readonly sequence: number;
|
|
93
|
+
readonly digest: string;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export interface AgentMemoryProjection {
|
|
97
|
+
readonly memoryId: string;
|
|
98
|
+
readonly kind: AgentMemoryKind;
|
|
99
|
+
readonly scope: AgentMemoryScope;
|
|
100
|
+
readonly derivation: {
|
|
101
|
+
readonly sessionId: string;
|
|
102
|
+
readonly throughSequence: number;
|
|
103
|
+
};
|
|
104
|
+
readonly currentCaseId?: string;
|
|
105
|
+
readonly source: AgentMemorySource;
|
|
106
|
+
readonly status: AgentMemoryStatus;
|
|
107
|
+
readonly expiresAt?: string;
|
|
108
|
+
/** Server-controlled projection. Raw content, value and claim are never read. */
|
|
109
|
+
readonly summary: string;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export interface AgentMemoryListResponse {
|
|
113
|
+
readonly items: readonly AgentMemoryProjection[];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export function listAgentSessions(signal?: AbortSignal) {
|
|
117
|
+
return apiRequest<AgentSessionListResponse>(
|
|
118
|
+
"/agent/harness/sessions",
|
|
119
|
+
requestOptions(signal),
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export function getAgentSession(sessionId: string, signal?: AbortSignal) {
|
|
124
|
+
return apiRequest<AgentSessionDetailResponse>(
|
|
125
|
+
`/agent/harness/sessions/${encodeURIComponent(sessionId)}`,
|
|
126
|
+
requestOptions(signal),
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export function listAgentSessionContextVersions(
|
|
131
|
+
sessionId: string,
|
|
132
|
+
signal?: AbortSignal,
|
|
133
|
+
) {
|
|
134
|
+
return apiRequest<AgentContextVersionListResponse>(
|
|
135
|
+
`/agent/harness/sessions/${encodeURIComponent(sessionId)}/context-versions`,
|
|
136
|
+
requestOptions(signal),
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export function listAgentSessionMemories(
|
|
141
|
+
sessionId: string,
|
|
142
|
+
signal?: AbortSignal,
|
|
143
|
+
) {
|
|
144
|
+
return apiRequest<AgentMemoryListResponse>(
|
|
145
|
+
`/agent/harness/sessions/${encodeURIComponent(sessionId)}/memories`,
|
|
146
|
+
requestOptions(signal),
|
|
147
|
+
);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export function deleteAgentSessionMemory(sessionId: string, memoryId: string) {
|
|
151
|
+
return apiRequest<{ readonly deleted: true }>(
|
|
152
|
+
`/agent/harness/sessions/${encodeURIComponent(sessionId)}/memories/${encodeURIComponent(memoryId)}`,
|
|
153
|
+
{ method: "DELETE" },
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
function requestOptions(signal?: AbortSignal): { signal?: AbortSignal } {
|
|
158
|
+
return signal ? { signal } : {};
|
|
159
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, test, vi } from "vitest";
|
|
2
|
+
|
|
3
|
+
const mocks = vi.hoisted(() => ({ apiRequest: vi.fn() }));
|
|
4
|
+
vi.mock("./http", () => mocks);
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
deleteAgentSessionMemory,
|
|
8
|
+
getAgentSession,
|
|
9
|
+
listAgentSessionContextVersions,
|
|
10
|
+
listAgentSessionMemories,
|
|
11
|
+
listAgentSessions,
|
|
12
|
+
} from "./agent-session-api";
|
|
13
|
+
|
|
14
|
+
describe("长期 Agent Session API", () => {
|
|
15
|
+
beforeEach(() =>
|
|
16
|
+
mocks.apiRequest.mockReset().mockResolvedValue({ items: [] }),
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
test("调用只读 Session、Context 与 Memory 投影接口", async () => {
|
|
20
|
+
await listAgentSessions();
|
|
21
|
+
await getAgentSession("session/含空格");
|
|
22
|
+
await listAgentSessionContextVersions("session/含空格");
|
|
23
|
+
await listAgentSessionMemories("session/含空格");
|
|
24
|
+
|
|
25
|
+
expect(mocks.apiRequest).toHaveBeenNthCalledWith(
|
|
26
|
+
1,
|
|
27
|
+
"/agent/harness/sessions",
|
|
28
|
+
{},
|
|
29
|
+
);
|
|
30
|
+
expect(mocks.apiRequest).toHaveBeenNthCalledWith(
|
|
31
|
+
2,
|
|
32
|
+
"/agent/harness/sessions/session%2F%E5%90%AB%E7%A9%BA%E6%A0%BC",
|
|
33
|
+
{},
|
|
34
|
+
);
|
|
35
|
+
expect(mocks.apiRequest).toHaveBeenNthCalledWith(
|
|
36
|
+
3,
|
|
37
|
+
"/agent/harness/sessions/session%2F%E5%90%AB%E7%A9%BA%E6%A0%BC/context-versions",
|
|
38
|
+
{},
|
|
39
|
+
);
|
|
40
|
+
expect(mocks.apiRequest).toHaveBeenNthCalledWith(
|
|
41
|
+
4,
|
|
42
|
+
"/agent/harness/sessions/session%2F%E5%90%AB%E7%A9%BA%E6%A0%BC/memories",
|
|
43
|
+
{},
|
|
44
|
+
);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
test("详情请求传递取消信号", async () => {
|
|
48
|
+
const controller = new AbortController();
|
|
49
|
+
await getAgentSession("session_1", controller.signal);
|
|
50
|
+
|
|
51
|
+
expect(mocks.apiRequest).toHaveBeenCalledWith(
|
|
52
|
+
"/agent/harness/sessions/session_1",
|
|
53
|
+
{ signal: controller.signal },
|
|
54
|
+
);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
test("删除单项 Memory 投影使用编码后的派生坐标", async () => {
|
|
58
|
+
await deleteAgentSessionMemory("session/含空格", "memory/1");
|
|
59
|
+
|
|
60
|
+
expect(mocks.apiRequest).toHaveBeenCalledWith(
|
|
61
|
+
"/agent/harness/sessions/session%2F%E5%90%AB%E7%A9%BA%E6%A0%BC/memories/memory%2F1",
|
|
62
|
+
{ method: "DELETE" },
|
|
63
|
+
);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { apiRequest } from "./http";
|
|
2
|
+
|
|
3
|
+
export type AgentWorkflowRunStatus =
|
|
4
|
+
| "accepted"
|
|
5
|
+
| "running"
|
|
6
|
+
| "waiting"
|
|
7
|
+
| "completed"
|
|
8
|
+
| "failed"
|
|
9
|
+
| "cancelled"
|
|
10
|
+
| "timed-out";
|
|
11
|
+
|
|
12
|
+
export type AgentWorkflowNodeRunStatus =
|
|
13
|
+
| "pending"
|
|
14
|
+
| "ready"
|
|
15
|
+
| "running"
|
|
16
|
+
| "waiting"
|
|
17
|
+
| "retry-scheduled"
|
|
18
|
+
| "completed"
|
|
19
|
+
| "failed"
|
|
20
|
+
| "cancelled"
|
|
21
|
+
| "skipped"
|
|
22
|
+
| "timed-out";
|
|
23
|
+
|
|
24
|
+
export type AgentWorkflowNodeType =
|
|
25
|
+
| "model"
|
|
26
|
+
| "tool"
|
|
27
|
+
| "subagent"
|
|
28
|
+
| "condition"
|
|
29
|
+
| "parallel"
|
|
30
|
+
| "join"
|
|
31
|
+
| "approval"
|
|
32
|
+
| "job"
|
|
33
|
+
| "wait"
|
|
34
|
+
| "artifact"
|
|
35
|
+
| "final";
|
|
36
|
+
|
|
37
|
+
export interface AgentWorkflowRunSummary {
|
|
38
|
+
readonly runId: string;
|
|
39
|
+
readonly workflowKey: string;
|
|
40
|
+
readonly workflowLabel: string;
|
|
41
|
+
readonly workflowVersion: string;
|
|
42
|
+
readonly releaseId: string;
|
|
43
|
+
readonly releaseDigest: string;
|
|
44
|
+
readonly status: AgentWorkflowRunStatus;
|
|
45
|
+
readonly currentNodeCount: number;
|
|
46
|
+
readonly totalNodeCount: number;
|
|
47
|
+
readonly createdAt: string;
|
|
48
|
+
readonly updatedAt: string;
|
|
49
|
+
readonly finishedAt?: string;
|
|
50
|
+
readonly safeErrorCode?: string;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export interface AgentWorkflowBudgetProjection {
|
|
54
|
+
readonly maxDurationSeconds: number;
|
|
55
|
+
readonly maxModelAttempts: number;
|
|
56
|
+
readonly maxToolCalls: number;
|
|
57
|
+
readonly maxSubagents: number;
|
|
58
|
+
readonly maxParallelism: number;
|
|
59
|
+
readonly maxInputTokens: number;
|
|
60
|
+
readonly maxOutputTokens: number;
|
|
61
|
+
readonly maxCostMicros: number;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export type AgentWorkflowMeasuredCount =
|
|
65
|
+
| {
|
|
66
|
+
readonly status: "measured";
|
|
67
|
+
readonly value: number;
|
|
68
|
+
readonly source: "provider-reported" | "host-measured";
|
|
69
|
+
}
|
|
70
|
+
| { readonly status: "unknown"; readonly reasonCode: string };
|
|
71
|
+
|
|
72
|
+
export type AgentWorkflowMeasuredCost =
|
|
73
|
+
| {
|
|
74
|
+
readonly status: "measured";
|
|
75
|
+
readonly amountMicros: number;
|
|
76
|
+
readonly currency: string;
|
|
77
|
+
readonly source: "provider-reported" | "catalog-estimated";
|
|
78
|
+
}
|
|
79
|
+
| { readonly status: "unknown"; readonly reasonCode: string };
|
|
80
|
+
|
|
81
|
+
export interface AgentWorkflowUsageProjection {
|
|
82
|
+
readonly durationMs: number;
|
|
83
|
+
readonly modelAttempts: number;
|
|
84
|
+
readonly toolCalls: number;
|
|
85
|
+
readonly subagents: number;
|
|
86
|
+
readonly inputTokens: AgentWorkflowMeasuredCount;
|
|
87
|
+
readonly outputTokens: AgentWorkflowMeasuredCount;
|
|
88
|
+
readonly cost: AgentWorkflowMeasuredCost;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export interface AgentWorkflowArtifactProjection {
|
|
92
|
+
readonly artifactId: string;
|
|
93
|
+
readonly kind: string;
|
|
94
|
+
readonly mediaType: string;
|
|
95
|
+
readonly byteSize: number;
|
|
96
|
+
readonly sha256: string;
|
|
97
|
+
readonly retentionPolicyKey: string;
|
|
98
|
+
readonly source: {
|
|
99
|
+
readonly moduleKey: string;
|
|
100
|
+
readonly kind: string;
|
|
101
|
+
readonly id: string;
|
|
102
|
+
readonly version: string;
|
|
103
|
+
readonly sequence: number;
|
|
104
|
+
readonly digest?: string;
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export interface AgentWorkflowNodeProjection {
|
|
109
|
+
readonly nodeRunId: string;
|
|
110
|
+
readonly nodeId: string;
|
|
111
|
+
readonly label: string;
|
|
112
|
+
readonly type: AgentWorkflowNodeType;
|
|
113
|
+
readonly status: AgentWorkflowNodeRunStatus;
|
|
114
|
+
readonly attempt: number;
|
|
115
|
+
readonly maxAttempts: number;
|
|
116
|
+
readonly startedAt?: string;
|
|
117
|
+
readonly finishedAt?: string;
|
|
118
|
+
readonly safeErrorCode?: string;
|
|
119
|
+
readonly resultReceipt?: {
|
|
120
|
+
readonly receiptId: string;
|
|
121
|
+
readonly resultDigest: string;
|
|
122
|
+
readonly selectedBranch?: string;
|
|
123
|
+
readonly artifactIds: readonly string[];
|
|
124
|
+
readonly recordedAt: string;
|
|
125
|
+
};
|
|
126
|
+
readonly inputArtifacts: readonly AgentWorkflowArtifactProjection[];
|
|
127
|
+
readonly outputArtifacts: readonly AgentWorkflowArtifactProjection[];
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export interface AgentWorkflowEdgeProjection {
|
|
131
|
+
readonly from: string;
|
|
132
|
+
readonly to: string;
|
|
133
|
+
readonly branch?: string;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export interface AgentWorkflowRunDetailResponse {
|
|
137
|
+
readonly run: AgentWorkflowRunSummary & {
|
|
138
|
+
readonly actorId: string;
|
|
139
|
+
readonly scopeDigest: string;
|
|
140
|
+
readonly authorizationSnapshotDigest: string;
|
|
141
|
+
readonly toolPolicyDigest: string;
|
|
142
|
+
readonly workspacePolicyDigest: string;
|
|
143
|
+
readonly executionPolicyDigest: string;
|
|
144
|
+
readonly budget: AgentWorkflowBudgetProjection;
|
|
145
|
+
readonly usage: AgentWorkflowUsageProjection;
|
|
146
|
+
readonly deadlineAt: string;
|
|
147
|
+
};
|
|
148
|
+
readonly release: {
|
|
149
|
+
readonly releaseId: string;
|
|
150
|
+
readonly releaseDigest: string;
|
|
151
|
+
readonly runtimeVersion: string;
|
|
152
|
+
readonly routeVersion: string;
|
|
153
|
+
readonly promptVersion: string;
|
|
154
|
+
readonly toolSchemaVersion: string;
|
|
155
|
+
readonly manifestDigest: string;
|
|
156
|
+
};
|
|
157
|
+
readonly nodes: readonly AgentWorkflowNodeProjection[];
|
|
158
|
+
readonly edges: readonly AgentWorkflowEdgeProjection[];
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export interface AgentWorkflowRunListResponse {
|
|
162
|
+
readonly items: readonly AgentWorkflowRunSummary[];
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export function listAgentWorkflowRuns(signal?: AbortSignal) {
|
|
166
|
+
return apiRequest<AgentWorkflowRunListResponse>(
|
|
167
|
+
"/agent/workflows/runs",
|
|
168
|
+
requestOptions(signal),
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export function getAgentWorkflowRun(runId: string, signal?: AbortSignal) {
|
|
173
|
+
return apiRequest<AgentWorkflowRunDetailResponse>(
|
|
174
|
+
`/agent/workflows/runs/${encodeURIComponent(runId)}`,
|
|
175
|
+
requestOptions(signal),
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
function requestOptions(signal?: AbortSignal): { signal?: AbortSignal } {
|
|
180
|
+
return signal ? { signal } : {};
|
|
181
|
+
}
|
|
@@ -23,6 +23,7 @@ export type AiRuntimeModelDeployment = AiRuntimeRunModelDeployment;
|
|
|
23
23
|
|
|
24
24
|
export interface AiRuntimeRunItem {
|
|
25
25
|
readonly runId: string;
|
|
26
|
+
readonly engineId: string;
|
|
26
27
|
readonly operationKey: string;
|
|
27
28
|
readonly actor: AiRuntimeActor | null;
|
|
28
29
|
readonly status: string;
|
|
@@ -59,6 +60,7 @@ export interface AiRuntimeAttempt {
|
|
|
59
60
|
export interface AiRuntimeRunDetail extends AiRuntimeRunItem {
|
|
60
61
|
readonly releaseId?: string;
|
|
61
62
|
readonly attemptItems: readonly AiRuntimeAttempt[];
|
|
63
|
+
readonly trajectory: RuntimeRunDetail["trajectory"];
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
export type AiRuntimeActor = AiRuntimeActorSummary;
|
|
@@ -114,6 +116,7 @@ function reportParams(query: AiRuntimeReportQuery) {
|
|
|
114
116
|
function runItem(value: AiRuntimeRunListItem): AiRuntimeRunItem {
|
|
115
117
|
return {
|
|
116
118
|
runId: value.runId,
|
|
119
|
+
engineId: value.engineId,
|
|
117
120
|
operationKey: value.operationKey,
|
|
118
121
|
actor: value.actor,
|
|
119
122
|
status: value.status,
|
|
@@ -134,6 +137,7 @@ function runDetail(value: RuntimeRunDetail): AiRuntimeRunDetail {
|
|
|
134
137
|
traceId: value.traceId,
|
|
135
138
|
...(value.safeErrorCode ? { safeErrorCode: value.safeErrorCode } : {}),
|
|
136
139
|
attemptItems: value.attempts.map(attemptItem),
|
|
140
|
+
trajectory: value.trajectory,
|
|
137
141
|
};
|
|
138
142
|
}
|
|
139
143
|
|