@undefineds.co/xpod 0.2.45 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/AgentExecutorFactory.js +12 -13
- package/dist/agents/AgentExecutorFactory.js.map +1 -1
- package/dist/agents/config/agent-meta-schema.d.ts +31 -3
- package/dist/agents/config/agent-meta-schema.js +37 -3
- package/dist/agents/config/agent-meta-schema.js.map +1 -1
- package/dist/agents/config/index.d.ts +5 -5
- package/dist/agents/config/index.js +7 -6
- package/dist/agents/config/index.js.map +1 -1
- package/dist/agents/config/parse-agent-instructions.d.ts +12 -0
- package/dist/agents/config/parse-agent-instructions.js +23 -0
- package/dist/agents/config/parse-agent-instructions.js.map +1 -0
- package/dist/agents/config/resolve.d.ts +7 -12
- package/dist/agents/config/resolve.js +272 -156
- package/dist/agents/config/resolve.js.map +1 -1
- package/dist/agents/config/types.d.ts +33 -36
- package/dist/agents/config/types.js +4 -4
- package/dist/agents/config/types.js.map +1 -1
- package/dist/agents/index.d.ts +2 -7
- package/dist/agents/index.js +4 -14
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/types.d.ts +2 -2
- package/dist/agents/types.js.map +1 -1
- package/dist/ai/service/CredentialReaderImpl.js +9 -14
- package/dist/ai/service/CredentialReaderImpl.js.map +1 -1
- package/dist/api/ApiServer.d.ts +7 -0
- package/dist/api/ApiServer.js +5 -1
- package/dist/api/ApiServer.js.map +1 -1
- package/dist/api/chatkit/default-agent.js +1 -1
- package/dist/api/chatkit/default-agent.js.map +1 -1
- package/dist/api/chatkit/index.d.ts +8 -0
- package/dist/api/chatkit/index.js +15 -1
- package/dist/api/chatkit/index.js.map +1 -1
- package/dist/api/chatkit/pod-store.d.ts +80 -17
- package/dist/api/chatkit/pod-store.js +816 -162
- package/dist/api/chatkit/pod-store.js.map +1 -1
- package/dist/api/chatkit/runtime/AcpAgentRuntime.d.ts +41 -0
- package/dist/api/chatkit/runtime/AcpAgentRuntime.js +573 -0
- package/dist/api/chatkit/runtime/AcpAgentRuntime.js.map +1 -0
- package/dist/api/chatkit/runtime/CodexRuntimeProjector.d.ts +27 -0
- package/dist/api/chatkit/runtime/CodexRuntimeProjector.js +157 -0
- package/dist/api/chatkit/runtime/CodexRuntimeProjector.js.map +1 -0
- package/dist/api/chatkit/schema.d.ts +53 -133
- package/dist/api/chatkit/schema.js +11 -175
- package/dist/api/chatkit/schema.js.map +1 -1
- package/dist/api/chatkit/service.d.ts +15 -9
- package/dist/api/chatkit/service.js +82 -234
- package/dist/api/chatkit/service.js.map +1 -1
- package/dist/api/chatkit/store.d.ts +35 -3
- package/dist/api/chatkit/store.js +157 -3
- package/dist/api/chatkit/store.js.map +1 -1
- package/dist/api/chatkit/types.d.ts +16 -2
- package/dist/api/chatkit/types.js +24 -5
- package/dist/api/chatkit/types.js.map +1 -1
- package/dist/api/container/common.js +59 -2
- package/dist/api/container/common.js.map +1 -1
- package/dist/api/container/index.js +15 -0
- package/dist/api/container/index.js.map +1 -1
- package/dist/api/container/routes.js +11 -0
- package/dist/api/container/routes.js.map +1 -1
- package/dist/api/container/types.d.ts +26 -0
- package/dist/api/container/types.js.map +1 -1
- package/dist/api/handlers/InngestHandler.d.ts +11 -0
- package/dist/api/handlers/InngestHandler.js +19 -0
- package/dist/api/handlers/InngestHandler.js.map +1 -0
- package/dist/api/handlers/RunHandler.d.ts +7 -0
- package/dist/api/handlers/RunHandler.js +169 -0
- package/dist/api/handlers/RunHandler.js.map +1 -0
- package/dist/api/handlers/index.d.ts +1 -0
- package/dist/api/handlers/index.js +1 -0
- package/dist/api/handlers/index.js.map +1 -1
- package/dist/api/models/namespaces.d.ts +2 -2
- package/dist/api/models/namespaces.js +1 -4
- package/dist/api/models/namespaces.js.map +1 -1
- package/dist/api/runs/AgentRuntimeTypes.d.ts +83 -0
- package/dist/api/runs/AgentRuntimeTypes.js +3 -0
- package/dist/api/runs/AgentRuntimeTypes.js.map +1 -0
- package/dist/api/runs/EmbeddedInngestService.d.ts +47 -0
- package/dist/api/runs/EmbeddedInngestService.js +203 -0
- package/dist/api/runs/EmbeddedInngestService.js.map +1 -0
- package/dist/api/runs/InngestRunExecutionBackend.d.ts +416 -0
- package/dist/api/runs/InngestRunExecutionBackend.js +225 -0
- package/dist/api/runs/InngestRunExecutionBackend.js.map +1 -0
- package/dist/api/runs/ManagedRunWorker.d.ts +52 -0
- package/dist/api/runs/ManagedRunWorker.js +452 -0
- package/dist/api/runs/ManagedRunWorker.js.map +1 -0
- package/dist/api/runs/PiAgentRuntimeDriver.d.ts +66 -0
- package/dist/api/runs/PiAgentRuntimeDriver.js +614 -0
- package/dist/api/runs/PiAgentRuntimeDriver.js.map +1 -0
- package/dist/api/runs/PiAgentRuntimeWorker.d.ts +1 -0
- package/dist/api/runs/PiAgentRuntimeWorker.js +33 -0
- package/dist/api/runs/PiAgentRuntimeWorker.js.map +1 -0
- package/dist/api/runs/RunAuthContextRegistry.d.ts +19 -0
- package/dist/api/runs/RunAuthContextRegistry.js +59 -0
- package/dist/api/runs/RunAuthContextRegistry.js.map +1 -0
- package/dist/api/runs/RunExecutionBackend.d.ts +57 -0
- package/dist/api/runs/RunExecutionBackend.js +3 -0
- package/dist/api/runs/RunExecutionBackend.js.map +1 -0
- package/dist/api/runs/RunStateCenter.d.ts +82 -0
- package/dist/api/runs/RunStateCenter.js +665 -0
- package/dist/api/runs/RunStateCenter.js.map +1 -0
- package/dist/api/runs/schema.d.ts +55 -0
- package/dist/api/runs/schema.js +14 -0
- package/dist/api/runs/schema.js.map +1 -0
- package/dist/api/runs/store.d.ts +105 -0
- package/dist/api/runs/store.js +116 -0
- package/dist/api/runs/store.js.map +1 -0
- package/dist/api/runtime.d.ts +2 -0
- package/dist/api/runtime.js +40 -1
- package/dist/api/runtime.js.map +1 -1
- package/dist/api/service/VectorStoreService.d.ts +1 -0
- package/dist/api/service/VectorStoreService.js +27 -34
- package/dist/api/service/VectorStoreService.js.map +1 -1
- package/dist/api/service/provider-registry.d.ts +1 -1
- package/dist/api/service/provider-registry.js +1 -1
- package/dist/api/service/provider-registry.js.map +1 -1
- package/dist/api/tasks/InngestTaskScheduler.d.ts +751 -0
- package/dist/api/tasks/InngestTaskScheduler.js +209 -0
- package/dist/api/tasks/InngestTaskScheduler.js.map +1 -0
- package/dist/api/tasks/TaskAuthBinding.d.ts +68 -0
- package/dist/api/tasks/TaskAuthBinding.js +162 -0
- package/dist/api/tasks/TaskAuthBinding.js.map +1 -0
- package/dist/api/tasks/TaskMaterializer.d.ts +55 -0
- package/dist/api/tasks/TaskMaterializer.js +452 -0
- package/dist/api/tasks/TaskMaterializer.js.map +1 -0
- package/dist/api/tasks/TaskService.d.ts +57 -0
- package/dist/api/tasks/TaskService.js +235 -0
- package/dist/api/tasks/TaskService.js.map +1 -0
- package/dist/api/tasks/index.d.ts +6 -0
- package/dist/api/tasks/index.js +25 -0
- package/dist/api/tasks/index.js.map +1 -0
- package/dist/api/tasks/schema.d.ts +23 -0
- package/dist/api/tasks/schema.js +8 -0
- package/dist/api/tasks/schema.js.map +1 -0
- package/dist/api/tasks/store.d.ts +40 -0
- package/dist/api/tasks/store.js +34 -0
- package/dist/api/tasks/store.js.map +1 -0
- package/dist/api/workspace/types.d.ts +3 -0
- package/dist/api/workspace/types.js +23 -0
- package/dist/api/workspace/types.js.map +1 -0
- package/dist/cli/commands/config.d.ts +8 -7
- package/dist/cli/commands/config.js +72 -48
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/login.d.ts +10 -8
- package/dist/cli/commands/login.js +84 -84
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/index.js +3 -124
- package/dist/cli/index.js.map +1 -1
- package/dist/http/search/SearchHttpHandler.js +13 -18
- package/dist/http/search/SearchHttpHandler.js.map +1 -1
- package/dist/storage/vector/VectorIndexingListener.js +13 -18
- package/dist/storage/vector/VectorIndexingListener.js.map +1 -1
- package/dist/vocab/index.d.ts +2 -6
- package/dist/vocab/index.js +2 -6
- package/dist/vocab/index.js.map +1 -1
- package/dist/vocab/udfs.d.ts +12 -0
- package/dist/vocab/udfs.js +12 -0
- package/dist/vocab/udfs.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/README.md +52 -24
- package/node_modules/@undefineds.co/drizzle-solid/README.zh-CN.md +30 -24
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/types.d.ts +6 -2
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/types.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js +43 -10
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-strategy.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-strategy.js +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-strategy.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor.d.ts +5 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor.js +44 -13
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js +21 -2
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/types.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/types.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/expressions.d.ts +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/expressions.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.d.ts +76 -41
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js +443 -114
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-dialect.d.ts +28 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-dialect.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-dialect.js +142 -31
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-dialect.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-session.d.ts +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-session.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-session.js +84 -6
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-session.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/insert-query-builder.d.ts +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/insert-query-builder.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/insert-query-builder.js +29 -9
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/insert-query-builder.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts +2 -8
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js +19 -51
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/types.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/types.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-conditions.d.ts +2 -2
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-conditions.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js +6 -6
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-reference.d.ts +4 -4
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-reference.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-reference.js +56 -23
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-reference.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/base-resolver.d.ts +14 -10
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/base-resolver.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/base-resolver.js +55 -23
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/base-resolver.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/document-resolver.d.ts +3 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/document-resolver.js +6 -6
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/document-resolver.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/fragment-resolver.d.ts +3 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/fragment-resolver.js +4 -4
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/fragment-resolver.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/runtime/pod-runtime.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/runtime/pod-runtime.js +33 -8
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/runtime/pod-runtime.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/defs.d.ts +11 -2
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/defs.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/factories.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/factories.js +3 -2
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/factories.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/pod-table.d.ts +13 -8
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/pod-table.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/pod-table.js +24 -22
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/pod-table.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/solid-schema.d.ts +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/solid-schema.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/solid-schema.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.d.ts +3 -2
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.js +28 -14
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inline.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inline.js +3 -2
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inline.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.d.ts +9 -9
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.js +56 -22
- package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/driver.d.ts +9 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/driver.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/driver.js +2 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/driver.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/types.d.ts +6 -2
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/types.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js +43 -10
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-strategy.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-strategy.js +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-strategy.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.d.ts +5 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.js +44 -13
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js +21 -2
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/types.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/types.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/expressions.d.ts +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/expressions.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.d.ts +76 -41
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js +443 -114
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.d.ts +28 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.js +142 -31
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.d.ts +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.js +84 -6
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.d.ts +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.js +29 -9
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts +2 -8
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js +19 -51
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/types.d.ts +1 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/types.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-conditions.d.ts +2 -2
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-conditions.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js +6 -6
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-reference.d.ts +4 -4
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-reference.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-reference.js +56 -23
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-reference.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.d.ts +14 -10
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.js +55 -23
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/document-resolver.d.ts +3 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/document-resolver.js +6 -6
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/document-resolver.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/fragment-resolver.d.ts +3 -3
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/fragment-resolver.js +4 -4
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/fragment-resolver.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/runtime/pod-runtime.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/runtime/pod-runtime.js +33 -8
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/runtime/pod-runtime.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/defs.d.ts +11 -2
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/defs.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/factories.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/factories.js +3 -2
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/factories.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.d.ts +13 -8
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.js +24 -22
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/solid-schema.d.ts +3 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/solid-schema.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/solid-schema.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.d.ts +3 -2
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.js +28 -14
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inline.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inline.js +3 -2
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inline.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.d.ts +9 -9
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.js +56 -22
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.d.ts +9 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.js +2 -0
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/pod.d.ts +16 -2
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/pod.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/find-by-iri.js +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/find-by-iri.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/pod.d.ts +16 -2
- package/node_modules/@undefineds.co/drizzle-solid/dist/pod.d.ts.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/find-by-iri.js +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/dist/utils/find-by-iri.js.map +1 -1
- package/node_modules/@undefineds.co/drizzle-solid/package.json +1 -1
- package/package.json +9 -3
- package/dist/agents/AgentManager.d.ts +0 -116
- package/dist/agents/AgentManager.js +0 -290
- package/dist/agents/AgentManager.js.map +0 -1
- package/dist/agents/IndexAgent.d.ts +0 -70
- package/dist/agents/IndexAgent.js +0 -417
- package/dist/agents/IndexAgent.js.map +0 -1
- package/dist/agents/config/parse-agent-md.d.ts +0 -33
- package/dist/agents/config/parse-agent-md.js +0 -75
- package/dist/agents/config/parse-agent-md.js.map +0 -1
- package/dist/agents/schema/agent-config.d.ts +0 -2
- package/dist/agents/schema/agent-config.js +0 -32
- package/dist/agents/schema/agent-config.js.map +0 -1
- package/dist/agents/schema/create-agent-schema.d.ts +0 -25
- package/dist/agents/schema/create-agent-schema.js +0 -35
- package/dist/agents/schema/create-agent-schema.js.map +0 -1
- package/dist/api/chatkit/runtime/PtyThreadRuntime.d.ts +0 -127
- package/dist/api/chatkit/runtime/PtyThreadRuntime.js +0 -791
- package/dist/api/chatkit/runtime/PtyThreadRuntime.js.map +0 -1
- package/dist/cli/lib/agent-session.d.ts +0 -37
- package/dist/cli/lib/agent-session.js +0 -211
- package/dist/cli/lib/agent-session.js.map +0 -1
- package/dist/cli/lib/ensure-ai-credentials.d.ts +0 -13
- package/dist/cli/lib/ensure-ai-credentials.js +0 -40
- package/dist/cli/lib/ensure-ai-credentials.js.map +0 -1
- package/dist/cli/lib/model-manager.d.ts +0 -37
- package/dist/cli/lib/model-manager.js +0 -251
- package/dist/cli/lib/model-manager.js.map +0 -1
- package/dist/cli/lib/oauth-credential-manager.d.ts +0 -37
- package/dist/cli/lib/oauth-credential-manager.js +0 -129
- package/dist/cli/lib/oauth-credential-manager.js.map +0 -1
- package/dist/cli/lib/oauth-providers/codebuddy.d.ts +0 -25
- package/dist/cli/lib/oauth-providers/codebuddy.js +0 -69
- package/dist/cli/lib/oauth-providers/codebuddy.js.map +0 -1
- package/dist/cli/lib/oauth-providers/index.d.ts +0 -12
- package/dist/cli/lib/oauth-providers/index.js +0 -23
- package/dist/cli/lib/oauth-providers/index.js.map +0 -1
- package/dist/cli/lib/pi-optional.d.ts +0 -84
- package/dist/cli/lib/pi-optional.js +0 -35
- package/dist/cli/lib/pi-optional.js.map +0 -1
- package/dist/cli/lib/pod-ai-config.d.ts +0 -26
- package/dist/cli/lib/pod-ai-config.js +0 -99
- package/dist/cli/lib/pod-ai-config.js.map +0 -1
- package/dist/cli/lib/pod-thread-store.d.ts +0 -57
- package/dist/cli/lib/pod-thread-store.js +0 -312
- package/dist/cli/lib/pod-thread-store.js.map +0 -1
- package/dist/cli/lib/secretary-prompt.d.ts +0 -6
- package/dist/cli/lib/secretary-prompt.js +0 -85
- package/dist/cli/lib/secretary-prompt.js.map +0 -1
- package/dist/task/DrizzleTaskQueue.d.ts +0 -56
- package/dist/task/DrizzleTaskQueue.js +0 -171
- package/dist/task/DrizzleTaskQueue.js.map +0 -1
- package/dist/task/TaskExecutor.d.ts +0 -82
- package/dist/task/TaskExecutor.js +0 -198
- package/dist/task/TaskExecutor.js.map +0 -1
- package/dist/task/index.d.ts +0 -10
- package/dist/task/index.js +0 -20
- package/dist/task/index.js.map +0 -1
- package/dist/task/schema.d.ts +0 -53
- package/dist/task/schema.js +0 -71
- package/dist/task/schema.js.map +0 -1
- package/dist/task/types.d.ts +0 -186
- package/dist/task/types.js +0 -12
- package/dist/task/types.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PiAgentRuntimeDriver.js","sourceRoot":"","sources":["../../../src/api/runs/PiAgentRuntimeDriver.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport * as os from 'node:os';\nimport * as crypto from 'node:crypto';\nimport { createInterface } from 'node:readline';\nimport type { WorkspaceUri } from '../workspace/types';\nimport { getDefaultBaseUrl } from '../service/provider-registry';\nimport { getPlatformApiBaseUrl, getPlatformApiKey, getPlatformDefaultModel, getPlatformProviderId } from '../service/platform-ai-config';\nimport { GitWorktreeService } from '../chatkit/runtime/GitWorktreeService';\nimport { SandboxFactory } from '../../terminal/sandbox';\nimport type {\n AgentRuntimeConfig,\n AgentRuntimeEvent,\n} from './AgentRuntimeTypes';\nimport type { RunConversationMessage, RunExecutionBackend, RunExecutionInput } from './RunExecutionBackend';\n\ntype PiSdk = typeof import('@mariozechner/pi-coding-agent');\ntype AgentSessionEvent = import('@mariozechner/pi-coding-agent').AgentSessionEvent;\ntype CreateAgentSessionOptions = NonNullable<Parameters<PiSdk['createAgentSession']>[0]>;\ntype PiApi = string;\ntype PiModel = {\n id: string;\n name: string;\n api: PiApi;\n provider: string;\n baseUrl: string;\n reasoning: boolean;\n input: Array<'text' | 'image'>;\n cost: {\n input: number;\n output: number;\n cacheRead: number;\n cacheWrite: number;\n };\n contextWindow: number;\n maxTokens: number;\n compat?: Record<string, unknown>;\n};\ntype PiMessage =\n | {\n role: 'user';\n content: Array<{ type: 'text'; text: string }>;\n timestamp: number;\n }\n | {\n role: 'assistant';\n content: Array<{ type: 'text'; text: string }>;\n api: PiApi;\n provider: string;\n model: string;\n usage: {\n input: number;\n output: number;\n cacheRead: number;\n cacheWrite: number;\n totalTokens: number;\n cost: {\n input: number;\n output: number;\n cacheRead: number;\n cacheWrite: number;\n total: number;\n };\n };\n stopReason: 'stop';\n timestamp: number;\n };\n\nexport interface PiAgentRuntimeDriverOptions {\n /**\n * local: run pi's full Agent Loop in the API process.\n * cloud: run the entire pi Agent Loop in a sandboxed worker process.\n */\n agentLoopIsolation?: 'in-process' | 'sandboxed-process';\n /**\n * Cloud defaults to strict sandboxing: do not fall back to an unsandboxed\n * process if sandbox-exec/bubblewrap is unavailable.\n */\n requireSandbox?: boolean;\n workerPath?: string;\n sandboxedLoopRunner?: (input: RunExecutionInput, workdir: string) => AsyncIterable<AgentRuntimeEvent>;\n sessionRootDir?: string;\n /**\n * Off by default: pi sessions are request-scoped implementation detail. When\n * enabled, the JSONL session is a diagnostic copy only; Xpod still restores\n * authoritative state from Run/Thread/Message before each execution.\n */\n persistPiSessions?: boolean;\n piSdk?: PiSdk;\n}\n\ntype WarmRuntime = {\n pi: PiSdk;\n workdir: string;\n piConfig: {\n provider: string;\n apiKey: string;\n api: PiApi;\n baseUrl: string;\n model: PiModel;\n };\n thinkingLevel: 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';\n authStorage: NonNullable<CreateAgentSessionOptions['authStorage']>;\n modelRegistry: NonNullable<CreateAgentSessionOptions['modelRegistry']>;\n settingsManager: ReturnType<PiSdk['SettingsManager']['inMemory']>;\n resourceLoader: NonNullable<CreateAgentSessionOptions['resourceLoader']>;\n tools: ReturnType<PiSdk['createCodingTools']>;\n};\n\n/**\n * Request-scoped adapter around pi's AgentSession primitives.\n *\n * Xpod restores durable conversation state into pi with replaceMessages() on\n * every run. pi owns the atomic agent loop, tools and streaming events for the\n * current invocation only; its SessionManager is not the Xpod state center.\n */\nexport class PiAgentRuntimeDriver implements RunExecutionBackend {\n private static sdkPromise?: Promise<PiSdk>;\n\n private readonly git = new GitWorktreeService();\n private readonly warmRuntimes = new Map<string, Promise<WarmRuntime>>();\n\n public constructor(private readonly options: PiAgentRuntimeDriverOptions = {}) {}\n\n public async *start(input: RunExecutionInput): AsyncIterable<AgentRuntimeEvent> {\n if (this.options.agentLoopIsolation === 'sandboxed-process') {\n try {\n const workdir = await this.resolveWorkdir(input.threadId, input.config.workspace, input.config);\n const runner = this.options.sandboxedLoopRunner\n ?? ((runInput, runWorkdir) => this.startSandboxedAgentLoop(runInput, runWorkdir));\n for await (const event of runner(input, workdir)) {\n yield event;\n }\n } catch (error) {\n yield this.startupErrorToEvent(error);\n }\n return;\n }\n\n yield* this.startInProcess(input);\n }\n\n private async *startInProcess(input: RunExecutionInput): AsyncIterable<AgentRuntimeEvent> {\n const queue = new AsyncPushQueue<AgentRuntimeEvent>();\n let session: Awaited<ReturnType<PiSdk['createAgentSession']>>['session'] | undefined;\n\n try {\n const runtime = await this.getWarmRuntime(input);\n const sessionManager = this.createSessionManager(runtime.pi, input.runId, runtime.workdir);\n const result = await runtime.pi.createAgentSession({\n cwd: runtime.workdir,\n authStorage: runtime.authStorage,\n modelRegistry: runtime.modelRegistry,\n settingsManager: runtime.settingsManager,\n sessionManager,\n resourceLoader: runtime.resourceLoader,\n model: runtime.piConfig.model,\n thinkingLevel: runtime.thinkingLevel,\n tools: runtime.tools,\n });\n session = result.session;\n session.agent.replaceMessages(this.toPiMessages(input.conversation, runtime.piConfig));\n\n const streamState = {\n lastAssistantText: '',\n assistantTextStreamed: false,\n };\n const unsubscribe = session.subscribe((event) => {\n this.projectPiEvent(event, queue, streamState);\n });\n\n void session.prompt(input.prompt, { expandPromptTemplates: false, source: 'rpc' }).then(() => {\n if (!streamState.assistantTextStreamed && streamState.lastAssistantText.length > 0) {\n queue.push({ type: 'text', text: streamState.lastAssistantText });\n }\n queue.close();\n }).catch((error) => {\n queue.push({ type: 'error', message: this.formatError(error) });\n queue.close();\n }).finally(() => {\n unsubscribe();\n session?.dispose();\n });\n\n for await (const event of queue.iterate()) {\n yield event;\n }\n } catch (error) {\n session?.dispose();\n yield this.startupErrorToEvent(error);\n }\n }\n\n private startSandboxedAgentLoop(input: RunExecutionInput, workdir: string): AsyncIterable<AgentRuntimeEvent> {\n const queue = new AsyncPushQueue<AgentRuntimeEvent>();\n const requireSandbox = this.options.requireSandbox ?? true;\n\n if (requireSandbox && !SandboxFactory.isAvailable()) {\n queue.push({ type: 'error', message: 'Cloud Agent Runtime requires an OS sandbox, but none is available on this host' });\n queue.close();\n return queue.iterate();\n }\n\n const child = SandboxFactory.launch({\n workdir,\n command: process.execPath,\n args: [this.resolveWorkerPath()],\n env: this.workerEnv(),\n isolateNetwork: false,\n });\n\n if (requireSandbox && !child.sandboxed) {\n child.process.kill();\n queue.push({ type: 'error', message: 'Cloud Agent Runtime refused to run without a sandbox' });\n queue.close();\n return queue.iterate();\n }\n\n const stderrChunks: Buffer[] = [];\n const stderrMaxBytes = 16 * 1024;\n let closed = false;\n\n const closeOnce = (): void => {\n if (closed) {\n return;\n }\n closed = true;\n queue.close();\n };\n\n child.process.stdin?.end(JSON.stringify({\n input,\n options: {\n persistPiSessions: this.options.persistPiSessions === true,\n sessionRootDir: this.options.sessionRootDir,\n },\n }));\n\n const rl = createInterface({ input: child.process.stdout! });\n rl.on('line', (line) => {\n if (!line.startsWith(PI_AGENT_WORKER_EVENT_PREFIX)) {\n return;\n }\n const payload = line.slice(PI_AGENT_WORKER_EVENT_PREFIX.length);\n try {\n queue.push(JSON.parse(payload) as AgentRuntimeEvent);\n } catch (error) {\n queue.push({ type: 'error', message: `Invalid Agent Runtime worker event: ${this.formatError(error)}` });\n }\n });\n\n child.process.stderr?.on('data', (chunk: Buffer) => {\n if (Buffer.concat(stderrChunks).length < stderrMaxBytes) {\n stderrChunks.push(chunk);\n }\n });\n\n child.process.on('error', (error) => {\n queue.push({ type: 'error', message: `Agent Runtime worker failed to start: ${this.formatError(error)}` });\n closeOnce();\n });\n\n child.process.on('close', (code, signal) => {\n rl.close();\n if (code !== 0) {\n const stderr = Buffer.concat(stderrChunks).toString('utf-8').trim();\n const suffix = stderr ? `: ${stderr}` : signal ? ` (signal ${signal})` : '';\n queue.push({ type: 'error', message: `Agent Runtime worker exited with code ${code ?? 'null'}${suffix}` });\n }\n closeOnce();\n });\n\n return queue.iterate();\n }\n\n private projectPiEvent(\n event: AgentSessionEvent,\n queue: AsyncPushQueue<AgentRuntimeEvent>,\n state: {\n lastAssistantText: string;\n assistantTextStreamed: boolean;\n },\n ): void {\n if (event.type === 'message_update' && event.assistantMessageEvent?.type === 'text_delta') {\n queue.push({ type: 'text', text: event.assistantMessageEvent.delta });\n state.assistantTextStreamed = true;\n return;\n }\n\n if (event.type === 'message_update' && event.message.role === 'assistant') {\n state.lastAssistantText = this.extractText(event.message.content);\n return;\n }\n\n if (event.type === 'message_end' && event.message.role === 'assistant') {\n const finalText = this.extractText(event.message.content);\n const alreadyStreamed = state.assistantTextStreamed;\n state.lastAssistantText = '';\n state.assistantTextStreamed = false;\n if (!alreadyStreamed && finalText.length > 0) {\n queue.push({ type: 'text', text: finalText });\n }\n return;\n }\n\n // pi emits tool_execution_start for its own read/bash/edit/write tools.\n // Those are internal runtime activity, not client-side tool requests.\n }\n\n private resolvePiConfig(config: AgentRuntimeConfig): {\n provider: string;\n apiKey: string;\n api: PiApi;\n baseUrl: string;\n model: PiModel;\n } {\n const baseUrl = config.agentConfig?.baseUrl || getPlatformApiBaseUrl();\n const provider = this.resolveProviderId(baseUrl);\n const apiKey = config.agentConfig?.apiKey || getPlatformApiKey();\n if (!apiKey) {\n throw new Error('No API key configured for pi Agent Runtime. Store the agent credential in the Pod or set DEFAULT_API_KEY for local development.');\n }\n const resolvedBaseUrl = baseUrl || getDefaultBaseUrl(provider);\n const modelId = config.agentConfig?.model || getPlatformDefaultModel();\n const api = this.resolveApiForBaseUrl(resolvedBaseUrl);\n\n return {\n provider,\n apiKey,\n api,\n baseUrl: resolvedBaseUrl,\n model: {\n id: modelId,\n name: modelId,\n api,\n provider,\n baseUrl: resolvedBaseUrl,\n reasoning: false,\n input: ['text'],\n cost: {\n input: 0,\n output: 0,\n cacheRead: 0,\n cacheWrite: 0,\n },\n contextWindow: 128_000,\n maxTokens: 8192,\n compat: api === 'openai-completions'\n ? {\n supportsStore: false,\n supportsDeveloperRole: false,\n supportsReasoningEffort: false,\n }\n : undefined,\n },\n };\n }\n\n private resolveProviderId(baseUrl: string | undefined): string {\n const configured = getPlatformProviderId();\n if (configured && configured !== 'undefineds') {\n return configured;\n }\n if (!baseUrl) {\n return 'xpod';\n }\n try {\n const host = new URL(baseUrl).hostname;\n if (host.includes('openai.com')) return 'openai';\n if (host.includes('anthropic.com')) return 'anthropic';\n if (host.includes('openrouter.ai')) return 'openrouter';\n if (host.includes('deepseek.com')) return 'deepseek';\n if (host.includes('mistral.ai')) return 'mistral';\n if (host === 'localhost' || host === '127.0.0.1') return 'ollama';\n } catch {\n // fall through to xpod\n }\n return 'xpod';\n }\n\n private resolveApiForBaseUrl(baseUrl: string): PiApi {\n try {\n const host = new URL(baseUrl).hostname;\n return host === 'api.openai.com' ? 'openai-responses' : 'openai-completions';\n } catch {\n return 'openai-completions';\n }\n }\n\n private resolveThinkingLevel(config: AgentRuntimeConfig): 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' {\n const level = (config.agentConfig as any)?.thinkingLevel;\n return level === 'minimal' || level === 'low' || level === 'medium' || level === 'high' || level === 'xhigh'\n ? level\n : 'off';\n }\n\n private resolveTools(pi: PiSdk, workdir: string, config: AgentRuntimeConfig): ReturnType<PiSdk['createCodingTools']> {\n const permissionMode = config.agentConfig?.permissionMode;\n const allowed = new Set(config.agentConfig?.allowedTools?.map((tool) => tool.toLowerCase()) ?? []);\n const disallowed = new Set(config.agentConfig?.disallowedTools?.map((tool) => tool.toLowerCase()) ?? []);\n const baseTools = permissionMode === 'plan' || allowed.size > 0\n ? pi.createReadOnlyTools(workdir)\n : pi.createCodingTools(workdir);\n\n return baseTools.filter((tool) => {\n const name = tool.name.toLowerCase();\n if (disallowed.has(name)) {\n return false;\n }\n return allowed.size === 0 || allowed.has(name);\n }) as ReturnType<PiSdk['createCodingTools']>;\n }\n\n private async getWarmRuntime(input: RunExecutionInput): Promise<WarmRuntime> {\n const pi = await this.loadPiSdk();\n const workdir = await this.resolveWorkdir(input.threadId, input.config.workspace, input.config);\n const key = this.warmRuntimeKey(workdir, input.config);\n const existing = this.warmRuntimes.get(key);\n if (existing) {\n return existing;\n }\n\n const created = this.createWarmRuntime(pi, workdir, input.config).catch((error) => {\n this.warmRuntimes.delete(key);\n throw error;\n });\n this.warmRuntimes.set(key, created);\n return created;\n }\n\n private async createWarmRuntime(pi: PiSdk, workdir: string, config: AgentRuntimeConfig): Promise<WarmRuntime> {\n const piConfig = this.resolvePiConfig(config);\n const authStorage = pi.AuthStorage.inMemory();\n authStorage.setRuntimeApiKey(piConfig.provider, piConfig.apiKey);\n\n const modelRegistry = new pi.ModelRegistry(authStorage, undefined);\n modelRegistry.registerProvider(piConfig.provider, {\n baseUrl: piConfig.baseUrl,\n apiKey: piConfig.apiKey,\n api: piConfig.api,\n models: [ piConfig.model ],\n });\n\n const thinkingLevel = this.resolveThinkingLevel(config);\n const settingsManager = pi.SettingsManager.inMemory({\n defaultProvider: piConfig.provider,\n defaultModel: piConfig.model.id,\n defaultThinkingLevel: thinkingLevel,\n });\n\n const resourceLoader = new pi.DefaultResourceLoader({\n cwd: workdir,\n settingsManager,\n systemPrompt: config.agentConfig?.systemPrompt,\n appendSystemPrompt: config.agentConfig?.skillsContent,\n noExtensions: true,\n noSkills: true,\n noPromptTemplates: true,\n noThemes: true,\n });\n await resourceLoader.reload();\n\n return {\n pi,\n workdir,\n piConfig,\n thinkingLevel,\n authStorage,\n modelRegistry,\n settingsManager,\n resourceLoader,\n tools: this.resolveTools(pi, workdir, config),\n };\n }\n\n private warmRuntimeKey(workdir: string, config: AgentRuntimeConfig): string {\n const agent = config.agentConfig;\n return JSON.stringify({\n workdir,\n baseUrl: agent?.baseUrl ?? getPlatformApiBaseUrl(),\n model: agent?.model ?? getPlatformDefaultModel(),\n apiKeyHash: this.hashSecret(agent?.apiKey ?? getPlatformApiKey()),\n systemPrompt: agent?.systemPrompt ?? '',\n skillsContent: agent?.skillsContent ?? '',\n permissionMode: agent?.permissionMode ?? '',\n allowedTools: agent?.allowedTools ?? [],\n disallowedTools: agent?.disallowedTools ?? [],\n persistPiSessions: this.options.persistPiSessions === true,\n agentLoopIsolation: this.options.agentLoopIsolation ?? 'in-process',\n thinkingLevel: this.resolveThinkingLevel(config),\n });\n }\n\n private hashSecret(value: string | undefined): string {\n return value\n ? crypto.createHash('sha256').update(value).digest('hex').slice(0, 16)\n : '';\n }\n\n private toPiMessages(\n conversation: RunConversationMessage[],\n config: { api: PiApi; provider: string; model: PiModel },\n ): PiMessage[] {\n return conversation.map((message) => {\n if (message.role === 'user') {\n return {\n role: 'user',\n content: [{ type: 'text', text: message.text }],\n timestamp: message.createdAt * 1000,\n };\n }\n return {\n role: 'assistant',\n content: [{ type: 'text', text: message.text }],\n api: config.api,\n provider: config.provider,\n model: config.model.id,\n usage: {\n input: 0,\n output: 0,\n cacheRead: 0,\n cacheWrite: 0,\n totalTokens: 0,\n cost: {\n input: 0,\n output: 0,\n cacheRead: 0,\n cacheWrite: 0,\n total: 0,\n },\n },\n stopReason: 'stop',\n timestamp: message.createdAt * 1000,\n };\n });\n }\n\n private async resolveWorkdir(threadId: string, workspace: WorkspaceUri, config?: AgentRuntimeConfig): Promise<string> {\n const url = new URL(workspace);\n let workdir: string;\n\n if (url.protocol === 'http:' || url.protocol === 'https:') {\n const mapped = this.mapPodUrlToLocalPath(workspace);\n if (!mapped || !fs.existsSync(mapped)) {\n throw new WaitingRunnerError(workspace, `Workspace is not mounted on this runner: ${workspace}`);\n }\n workdir = mapped;\n } else if (url.protocol === 'file:') {\n if (!this.canResolveFileWorkspace(url)) {\n throw new WaitingRunnerError(workspace, `Waiting for a runner that can resolve workspace ${workspace}`);\n }\n workdir = decodeURIComponent(url.pathname);\n if (!fs.existsSync(workdir)) {\n throw new Error(`workspace URI does not exist on this runner: ${workspace}`);\n }\n } else {\n throw new Error(`Unsupported workspace URI protocol: ${url.protocol}`);\n }\n\n const worktree = config?.worktree;\n if (!worktree) {\n return workdir;\n }\n\n const repoRoot = workdir;\n\n if (worktree.mode === 'existing') {\n if (!fs.existsSync(worktree.path)) {\n throw new Error(`worktree.path not found: ${worktree.path}`);\n }\n return worktree.path;\n }\n\n await this.git.assertGitRepo(repoRoot);\n\n const root = path.join(repoRoot, '.xpod-worktrees');\n const worktreePath = path.join(root, threadId);\n\n if (fs.existsSync(worktreePath)) {\n return worktreePath;\n }\n\n await this.git.createWorktree({\n repoPath: repoRoot,\n worktreePath,\n baseRef: worktree.baseRef ?? 'main',\n branch: worktree.branch,\n });\n\n return worktreePath;\n }\n\n private canResolveFileWorkspace(url: URL): boolean {\n const authority = url.hostname;\n if (!authority || authority === 'localhost') {\n return true;\n }\n const configured = process.env.XPOD_RUNNER_AUTHORITY?.trim();\n return authority === configured || authority === os.hostname();\n }\n\n private mapPodUrlToLocalPath(rootUrl: string): string | undefined {\n const rootFilePath = process.env.CSS_ROOT_FILE_PATH;\n const baseUrl = process.env.CSS_BASE_URL;\n if (!rootFilePath || !baseUrl) {\n return undefined;\n }\n\n try {\n const base = new URL(baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`);\n const pod = new URL(rootUrl.endsWith('/') ? rootUrl : `${rootUrl}/`);\n if (base.origin !== pod.origin) {\n return undefined;\n }\n if (!pod.pathname.startsWith(base.pathname)) {\n return undefined;\n }\n const relativePath = decodeURIComponent(pod.pathname.slice(base.pathname.length)).replace(/\\/+$/, '');\n const resolvedRoot = path.resolve(rootFilePath);\n const resolved = path.resolve(resolvedRoot, relativePath);\n if (resolved !== resolvedRoot && !resolved.startsWith(`${resolvedRoot}${path.sep}`)) {\n return undefined;\n }\n return resolved;\n } catch {\n return undefined;\n }\n }\n\n private createSessionManager(pi: PiSdk, runId: string, workdir: string): ReturnType<PiSdk['SessionManager']['inMemory']> {\n if (this.options.persistPiSessions) {\n return pi.SessionManager.create(workdir, this.resolveSessionDir(runId, workdir));\n }\n return pi.SessionManager.inMemory(workdir);\n }\n\n private resolveSessionDir(runId: string, workdir: string): string {\n const root = this.options.sessionRootDir ?? path.join(os.tmpdir(), 'xpod-pi-sessions');\n const hash = crypto.createHash('sha256').update(`${workdir}:${runId}`).digest('hex').slice(0, 20);\n return path.join(root, hash);\n }\n\n private resolveWorkerPath(): string {\n if (this.options.workerPath) {\n return this.options.workerPath;\n }\n return path.join(__dirname, `PiAgentRuntimeWorker${path.extname(__filename)}`);\n }\n\n private workerEnv(): Record<string, string> {\n const env: Record<string, string> = {};\n for (const [key, value] of Object.entries(process.env)) {\n if (typeof value === 'string') {\n env[key] = value;\n }\n }\n env.XPOD_AGENT_LOOP_WORKER = '1';\n return env;\n }\n\n private extractText(content: unknown): string {\n if (typeof content === 'string') {\n return content;\n }\n if (!Array.isArray(content)) {\n return '';\n }\n return content\n .map((part) => {\n if (part && typeof part === 'object' && (part as any).type === 'text') {\n return typeof (part as any).text === 'string' ? (part as any).text : '';\n }\n return '';\n })\n .join('');\n }\n\n private formatError(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n }\n\n private startupErrorToEvent(error: unknown): AgentRuntimeEvent {\n if (error instanceof WaitingRunnerError) {\n return {\n type: 'waiting_runner',\n workspace: error.workspace,\n message: error.message,\n };\n }\n return { type: 'error', message: this.formatError(error) };\n }\n\n private async loadPiSdk(): Promise<PiSdk> {\n if (this.options.piSdk) {\n return this.options.piSdk;\n }\n if (PiAgentRuntimeDriver.sdkPromise) {\n return PiAgentRuntimeDriver.sdkPromise;\n }\n // Keep a native dynamic import so the CommonJS build can lazily load pi's\n // ESM-only package instead of requiring it during CSS component discovery.\n const nativeImport = new Function('specifier', 'return import(specifier)') as (specifier: string) => Promise<PiSdk>;\n PiAgentRuntimeDriver.sdkPromise = nativeImport('@mariozechner/pi-coding-agent');\n return PiAgentRuntimeDriver.sdkPromise;\n }\n}\n\nexport const PI_AGENT_WORKER_EVENT_PREFIX = 'XPOD_AGENT_EVENT ';\n\nclass WaitingRunnerError extends Error {\n public constructor(\n public readonly workspace: WorkspaceUri,\n message: string,\n ) {\n super(message);\n }\n}\n\nclass AsyncPushQueue<T> {\n private readonly items: T[] = [];\n private resolvers: Array<() => void> = [];\n private closed = false;\n\n public push(item: T): void {\n if (this.closed) {\n return;\n }\n this.items.push(item);\n const resolver = this.resolvers.shift();\n resolver?.();\n }\n\n public close(): void {\n if (this.closed) {\n return;\n }\n this.closed = true;\n for (const resolver of this.resolvers) {\n resolver();\n }\n this.resolvers = [];\n }\n\n public async *iterate(): AsyncIterable<T> {\n while (true) {\n if (this.items.length > 0) {\n yield this.items.shift()!;\n continue;\n }\n if (this.closed) {\n return;\n }\n await new Promise<void>((resolve) => this.resolvers.push(resolve));\n }\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const PiAgentRuntimeDriver_1 = require("./PiAgentRuntimeDriver");
|
|
4
|
+
async function readStdin() {
|
|
5
|
+
const chunks = [];
|
|
6
|
+
for await (const chunk of process.stdin) {
|
|
7
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
8
|
+
}
|
|
9
|
+
return Buffer.concat(chunks).toString('utf-8');
|
|
10
|
+
}
|
|
11
|
+
function emit(event) {
|
|
12
|
+
process.stdout.write(`${PiAgentRuntimeDriver_1.PI_AGENT_WORKER_EVENT_PREFIX}${JSON.stringify(event)}\n`);
|
|
13
|
+
}
|
|
14
|
+
async function main() {
|
|
15
|
+
const payload = JSON.parse(await readStdin());
|
|
16
|
+
const driver = new PiAgentRuntimeDriver_1.PiAgentRuntimeDriver({
|
|
17
|
+
...payload.options,
|
|
18
|
+
agentLoopIsolation: 'in-process',
|
|
19
|
+
});
|
|
20
|
+
for await (const event of driver.start(payload.input)) {
|
|
21
|
+
emit(event);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (require.main === module) {
|
|
25
|
+
main().catch((error) => {
|
|
26
|
+
emit({
|
|
27
|
+
type: 'error',
|
|
28
|
+
message: error instanceof Error ? error.message : String(error),
|
|
29
|
+
});
|
|
30
|
+
process.exitCode = 1;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=PiAgentRuntimeWorker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PiAgentRuntimeWorker.js","sourceRoot":"","sources":["../../../src/api/runs/PiAgentRuntimeWorker.ts"],"names":[],"mappings":";;AAAA,iEAA8H;AAS9H,KAAK,UAAU,SAAS;IACtB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,IAAI,CAAC,KAAwB;IACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,mDAA4B,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACpF,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,SAAS,EAAE,CAAkB,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,2CAAoB,CAAC;QACtC,GAAG,OAAO,CAAC,OAAO;QAClB,kBAAkB,EAAE,YAAY;KACjC,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,CAAC;AACH,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAChE,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { PI_AGENT_WORKER_EVENT_PREFIX, PiAgentRuntimeDriver, type PiAgentRuntimeDriverOptions } from './PiAgentRuntimeDriver';\nimport type { AgentRuntimeEvent } from './AgentRuntimeTypes';\nimport type { RunExecutionInput } from './RunExecutionBackend';\n\ntype WorkerPayload = {\n input: RunExecutionInput;\n options?: Pick<PiAgentRuntimeDriverOptions, 'persistPiSessions' | 'sessionRootDir'>;\n};\n\nasync function readStdin(): Promise<string> {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) {\n chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));\n }\n return Buffer.concat(chunks).toString('utf-8');\n}\n\nfunction emit(event: AgentRuntimeEvent): void {\n process.stdout.write(`${PI_AGENT_WORKER_EVENT_PREFIX}${JSON.stringify(event)}\\n`);\n}\n\nasync function main(): Promise<void> {\n const payload = JSON.parse(await readStdin()) as WorkerPayload;\n const driver = new PiAgentRuntimeDriver({\n ...payload.options,\n agentLoopIsolation: 'in-process',\n });\n\n for await (const event of driver.start(payload.input)) {\n emit(event);\n }\n}\n\nif (require.main === module) {\n main().catch((error) => {\n emit({\n type: 'error',\n message: error instanceof Error ? error.message : String(error),\n });\n process.exitCode = 1;\n });\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { StoreContext } from '../chatkit/store';
|
|
2
|
+
export type RunAuthContextLookup = {
|
|
3
|
+
webId?: string;
|
|
4
|
+
userId?: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Process-local bridge from durable queue payloads back to server-side auth
|
|
8
|
+
* context. Queue events carry only stable identity such as webId; credentials
|
|
9
|
+
* remain in the service process/session layer.
|
|
10
|
+
*/
|
|
11
|
+
export declare class RunAuthContextRegistry<TContext extends StoreContext = StoreContext> {
|
|
12
|
+
private readonly byWebId;
|
|
13
|
+
private readonly byUserId;
|
|
14
|
+
remember(context: TContext | undefined): void;
|
|
15
|
+
resolve(lookup: RunAuthContextLookup | undefined): TContext | undefined;
|
|
16
|
+
list(): TContext[];
|
|
17
|
+
private webIdFromContext;
|
|
18
|
+
private userIdFromContext;
|
|
19
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RunAuthContextRegistry = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Process-local bridge from durable queue payloads back to server-side auth
|
|
6
|
+
* context. Queue events carry only stable identity such as webId; credentials
|
|
7
|
+
* remain in the service process/session layer.
|
|
8
|
+
*/
|
|
9
|
+
class RunAuthContextRegistry {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.byWebId = new Map();
|
|
12
|
+
this.byUserId = new Map();
|
|
13
|
+
}
|
|
14
|
+
remember(context) {
|
|
15
|
+
if (!context) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const webId = this.webIdFromContext(context);
|
|
19
|
+
if (webId) {
|
|
20
|
+
this.byWebId.set(webId, context);
|
|
21
|
+
}
|
|
22
|
+
const userId = this.userIdFromContext(context);
|
|
23
|
+
if (userId) {
|
|
24
|
+
this.byUserId.set(userId, context);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
resolve(lookup) {
|
|
28
|
+
if (!lookup) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
if (lookup.webId) {
|
|
32
|
+
const context = this.byWebId.get(lookup.webId);
|
|
33
|
+
if (context) {
|
|
34
|
+
return context;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return lookup.userId ? this.byUserId.get(lookup.userId) : undefined;
|
|
38
|
+
}
|
|
39
|
+
list() {
|
|
40
|
+
const seen = new Set();
|
|
41
|
+
const contexts = [];
|
|
42
|
+
for (const context of [...this.byWebId.values(), ...this.byUserId.values()]) {
|
|
43
|
+
if (!seen.has(context)) {
|
|
44
|
+
seen.add(context);
|
|
45
|
+
contexts.push(context);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return contexts;
|
|
49
|
+
}
|
|
50
|
+
webIdFromContext(context) {
|
|
51
|
+
const auth = context.auth;
|
|
52
|
+
return auth?.type === 'solid' && typeof auth.webId === 'string' ? auth.webId : undefined;
|
|
53
|
+
}
|
|
54
|
+
userIdFromContext(context) {
|
|
55
|
+
return typeof context.userId === 'string' ? context.userId : undefined;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.RunAuthContextRegistry = RunAuthContextRegistry;
|
|
59
|
+
//# sourceMappingURL=RunAuthContextRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunAuthContextRegistry.js","sourceRoot":"","sources":["../../../src/api/runs/RunAuthContextRegistry.ts"],"names":[],"mappings":";;;AAOA;;;;GAIG;AACH,MAAa,sBAAsB;IAAnC;QACmB,YAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;QACtC,aAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAmD1D,CAAC;IAjDQ,QAAQ,CAAC,OAA6B;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAEM,OAAO,CAAC,MAAwC;QACrD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,CAAC;IAEM,IAAI;QACT,MAAM,IAAI,GAAG,IAAI,GAAG,EAAY,CAAC;QACjC,MAAM,QAAQ,GAAe,EAAE,CAAC;QAChC,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,gBAAgB,CAAC,OAAiB;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAuD,CAAC;QAC7E,OAAO,IAAI,EAAE,IAAI,KAAK,OAAO,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3F,CAAC;IAEO,iBAAiB,CAAC,OAAiB;QACzC,OAAO,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,CAAC;CACF;AArDD,wDAqDC","sourcesContent":["import type { StoreContext } from '../chatkit/store';\n\nexport type RunAuthContextLookup = {\n webId?: string;\n userId?: string;\n};\n\n/**\n * Process-local bridge from durable queue payloads back to server-side auth\n * context. Queue events carry only stable identity such as webId; credentials\n * remain in the service process/session layer.\n */\nexport class RunAuthContextRegistry<TContext extends StoreContext = StoreContext> {\n private readonly byWebId = new Map<string, TContext>();\n private readonly byUserId = new Map<string, TContext>();\n\n public remember(context: TContext | undefined): void {\n if (!context) {\n return;\n }\n\n const webId = this.webIdFromContext(context);\n if (webId) {\n this.byWebId.set(webId, context);\n }\n\n const userId = this.userIdFromContext(context);\n if (userId) {\n this.byUserId.set(userId, context);\n }\n }\n\n public resolve(lookup: RunAuthContextLookup | undefined): TContext | undefined {\n if (!lookup) {\n return undefined;\n }\n if (lookup.webId) {\n const context = this.byWebId.get(lookup.webId);\n if (context) {\n return context;\n }\n }\n return lookup.userId ? this.byUserId.get(lookup.userId) : undefined;\n }\n\n public list(): TContext[] {\n const seen = new Set<TContext>();\n const contexts: TContext[] = [];\n for (const context of [...this.byWebId.values(), ...this.byUserId.values()]) {\n if (!seen.has(context)) {\n seen.add(context);\n contexts.push(context);\n }\n }\n return contexts;\n }\n\n private webIdFromContext(context: TContext): string | undefined {\n const auth = context.auth as { type?: unknown; webId?: unknown } | undefined;\n return auth?.type === 'solid' && typeof auth.webId === 'string' ? auth.webId : undefined;\n }\n\n private userIdFromContext(context: TContext): string | undefined {\n return typeof context.userId === 'string' ? context.userId : undefined;\n }\n}\n"]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { AgentRuntimeConfig, AgentRuntimeEvent } from './AgentRuntimeTypes';
|
|
2
|
+
import type { StoreContext } from '../chatkit/store';
|
|
3
|
+
export type RunConversationMessage = {
|
|
4
|
+
role: 'user';
|
|
5
|
+
text: string;
|
|
6
|
+
createdAt: number;
|
|
7
|
+
} | {
|
|
8
|
+
role: 'assistant';
|
|
9
|
+
text: string;
|
|
10
|
+
createdAt: number;
|
|
11
|
+
};
|
|
12
|
+
export interface RunExecutionInput {
|
|
13
|
+
runId: string;
|
|
14
|
+
threadId: string;
|
|
15
|
+
prompt: string;
|
|
16
|
+
/**
|
|
17
|
+
* Durable conversation projection loaded by Xpod from Pod state before this
|
|
18
|
+
* execution starts. Runtime drivers must treat their own sessions as
|
|
19
|
+
* request-scoped caches and restore from this input on every run.
|
|
20
|
+
*/
|
|
21
|
+
conversation: RunConversationMessage[];
|
|
22
|
+
config: AgentRuntimeConfig;
|
|
23
|
+
/**
|
|
24
|
+
* Server-side auth binding used by unattended/durable Run callbacks to
|
|
25
|
+
* restore Pod access without serializing secrets into queue events.
|
|
26
|
+
*/
|
|
27
|
+
authBindingId?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Present when a paused Run is being placed back on the execution queue.
|
|
30
|
+
* This does not create a new Run; it resumes the same message-level Run
|
|
31
|
+
* after external input such as a client tool result or approval.
|
|
32
|
+
*/
|
|
33
|
+
continuation?: {
|
|
34
|
+
kind: 'client_tool_output' | 'approval' | 'user_input';
|
|
35
|
+
itemId?: string;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Optional request context for in-process enqueue adapters. Durable workers
|
|
39
|
+
* must restore Pod access from non-secret event data or service-side lookup;
|
|
40
|
+
* access tokens must not be serialized into external queues.
|
|
41
|
+
*/
|
|
42
|
+
context?: StoreContext;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Execution boundary for an already-created Xpod Run.
|
|
46
|
+
*
|
|
47
|
+
* Implementations may enqueue, kick, or execute inline, but they must not own
|
|
48
|
+
* the business state for the run. Pod-backed Run/Thread/Message/RunStep state
|
|
49
|
+
* stays authoritative; backend ids are diagnostics only.
|
|
50
|
+
*/
|
|
51
|
+
export interface RunExecutionBackend {
|
|
52
|
+
start(input: RunExecutionInput): AsyncIterable<AgentRuntimeEvent>;
|
|
53
|
+
}
|
|
54
|
+
export interface RunEnqueueResult {
|
|
55
|
+
runId: string;
|
|
56
|
+
externalRunId?: string;
|
|
57
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunExecutionBackend.js","sourceRoot":"","sources":["../../../src/api/runs/RunExecutionBackend.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n AgentRuntimeConfig,\n AgentRuntimeEvent,\n} from './AgentRuntimeTypes';\nimport type { StoreContext } from '../chatkit/store';\n\nexport type RunConversationMessage =\n | { role: 'user'; text: string; createdAt: number }\n | { role: 'assistant'; text: string; createdAt: number };\n\nexport interface RunExecutionInput {\n runId: string;\n threadId: string;\n prompt: string;\n /**\n * Durable conversation projection loaded by Xpod from Pod state before this\n * execution starts. Runtime drivers must treat their own sessions as\n * request-scoped caches and restore from this input on every run.\n */\n conversation: RunConversationMessage[];\n config: AgentRuntimeConfig;\n /**\n * Server-side auth binding used by unattended/durable Run callbacks to\n * restore Pod access without serializing secrets into queue events.\n */\n authBindingId?: string;\n /**\n * Present when a paused Run is being placed back on the execution queue.\n * This does not create a new Run; it resumes the same message-level Run\n * after external input such as a client tool result or approval.\n */\n continuation?: {\n kind: 'client_tool_output' | 'approval' | 'user_input';\n itemId?: string;\n };\n /**\n * Optional request context for in-process enqueue adapters. Durable workers\n * must restore Pod access from non-secret event data or service-side lookup;\n * access tokens must not be serialized into external queues.\n */\n context?: StoreContext;\n}\n\n/**\n * Execution boundary for an already-created Xpod Run.\n *\n * Implementations may enqueue, kick, or execute inline, but they must not own\n * the business state for the run. Pod-backed Run/Thread/Message/RunStep state\n * stays authoritative; backend ids are diagnostics only.\n */\nexport interface RunExecutionBackend {\n start(input: RunExecutionInput): AsyncIterable<AgentRuntimeEvent>;\n}\n\nexport interface RunEnqueueResult {\n runId: string;\n externalRunId?: string;\n}\n"]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { ChatKitStore, StoreContext } from '../chatkit/store';
|
|
2
|
+
import type { ClientEffect, ThreadItem, ThreadMetadata, ThreadRef, UserMessageItem } from '../chatkit/types';
|
|
3
|
+
import type { AgentRuntimeConfig } from './AgentRuntimeTypes';
|
|
4
|
+
import type { RunExecutionBackend } from './RunExecutionBackend';
|
|
5
|
+
export type RunStateEvent = {
|
|
6
|
+
type: 'item_added';
|
|
7
|
+
item: ThreadItem;
|
|
8
|
+
} | {
|
|
9
|
+
type: 'item_updated';
|
|
10
|
+
itemId: string;
|
|
11
|
+
delta: string;
|
|
12
|
+
} | {
|
|
13
|
+
type: 'item_done';
|
|
14
|
+
item: ThreadItem;
|
|
15
|
+
} | {
|
|
16
|
+
type: 'client_effect';
|
|
17
|
+
effect: ClientEffect;
|
|
18
|
+
} | {
|
|
19
|
+
type: 'error';
|
|
20
|
+
code: string;
|
|
21
|
+
message: string;
|
|
22
|
+
};
|
|
23
|
+
export interface RunStateCenterOptions<TContext = StoreContext> {
|
|
24
|
+
store: ChatKitStore<TContext>;
|
|
25
|
+
enableAgentRuntime?: boolean;
|
|
26
|
+
executionBackend?: RunExecutionBackend;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Run is the xpod-side state center for Agent execution.
|
|
30
|
+
*
|
|
31
|
+
* ChatKit and Task APIs are command surfaces. They hand execution to this
|
|
32
|
+
* center, which persists first-class Run/RunStep facts through the configured
|
|
33
|
+
* RunStore while projecting visible output back to Thread/Message.
|
|
34
|
+
*/
|
|
35
|
+
export declare class RunStateCenter<TContext = StoreContext> {
|
|
36
|
+
private readonly store;
|
|
37
|
+
private readonly runStore?;
|
|
38
|
+
private readonly enableAgentRuntime;
|
|
39
|
+
private readonly executionBackend;
|
|
40
|
+
constructor(options: RunStateCenterOptions<TContext>);
|
|
41
|
+
getAgentRuntimeConfig(thread: ThreadMetadata, context?: TContext): AgentRuntimeConfig | null;
|
|
42
|
+
getDefaultAgentRuntimeConfig(context: TContext): AgentRuntimeConfig | null;
|
|
43
|
+
private resolveRunnerProtocol;
|
|
44
|
+
private resolveWorkspaceUri;
|
|
45
|
+
startAgentRun(input: {
|
|
46
|
+
thread: ThreadMetadata;
|
|
47
|
+
userMessage: UserMessageItem;
|
|
48
|
+
context: TContext;
|
|
49
|
+
runtimeConfig: AgentRuntimeConfig;
|
|
50
|
+
}): AsyncIterable<RunStateEvent>;
|
|
51
|
+
completeClientToolOutput(input: {
|
|
52
|
+
threadRef: ThreadRef;
|
|
53
|
+
itemId: string;
|
|
54
|
+
output: string;
|
|
55
|
+
context: TContext;
|
|
56
|
+
}): AsyncIterable<RunStateEvent>;
|
|
57
|
+
private resolveRunStore;
|
|
58
|
+
private createRun;
|
|
59
|
+
private markRunStarted;
|
|
60
|
+
private finishRun;
|
|
61
|
+
private pauseRun;
|
|
62
|
+
private projectRuntimeEvent;
|
|
63
|
+
private checkCancellation;
|
|
64
|
+
private stepTypeForTerminalStatus;
|
|
65
|
+
private saveRun;
|
|
66
|
+
private appendRunStep;
|
|
67
|
+
private resolveThreadUri;
|
|
68
|
+
private resolveRunUri;
|
|
69
|
+
private resolveWaitingRunForToolOutput;
|
|
70
|
+
private extractThreadIdFromRef;
|
|
71
|
+
private threadCandidatesForRunLookup;
|
|
72
|
+
private extractBaseRelativeThreadId;
|
|
73
|
+
private buildContinuationPrompt;
|
|
74
|
+
private resolveRuntimeConfigForContinuation;
|
|
75
|
+
private isRunnerType;
|
|
76
|
+
private resolveSurfaceId;
|
|
77
|
+
private resolvePodBaseUrl;
|
|
78
|
+
private createAssistantMessage;
|
|
79
|
+
private finalizeAssistantMessage;
|
|
80
|
+
private threadRefFromThread;
|
|
81
|
+
private loadConversation;
|
|
82
|
+
}
|