@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,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerRunRoutes = registerRunRoutes;
|
|
4
|
+
const global_logger_factory_1 = require("global-logger-factory");
|
|
5
|
+
const AuthContext_1 = require("../auth/AuthContext");
|
|
6
|
+
const types_1 = require("../chatkit/types");
|
|
7
|
+
const schema_1 = require("../runs/schema");
|
|
8
|
+
const store_1 = require("../runs/store");
|
|
9
|
+
const types_2 = require("../workspace/types");
|
|
10
|
+
function registerRunRoutes(server, options) {
|
|
11
|
+
const logger = (0, global_logger_factory_1.getLoggerFor)('RunHandler');
|
|
12
|
+
const { runStore } = options;
|
|
13
|
+
server.get('/v1/runs', async (request, response) => {
|
|
14
|
+
try {
|
|
15
|
+
const url = new URL(request.url ?? '', `http://${request.headers.host ?? 'localhost'}`);
|
|
16
|
+
const runs = await runStore.listRuns(parseRunListOptions(url), buildStoreContext(request));
|
|
17
|
+
sendJson(response, 200, { runs });
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
logger.error(`Failed to list runs: ${error}`);
|
|
21
|
+
sendJson(response, 400, { error: formatError(error) });
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
server.get('/v1/runs/:runId', async (request, response, params) => {
|
|
25
|
+
try {
|
|
26
|
+
const run = await runStore.loadRun(decodeURIComponent(params.runId), buildStoreContext(request));
|
|
27
|
+
sendJson(response, 200, { run });
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
logger.error(`Failed to load run: ${error}`);
|
|
31
|
+
sendJson(response, 404, { error: formatError(error) });
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
server.get('/v1/runs/:runId/steps', async (request, response, params) => {
|
|
35
|
+
try {
|
|
36
|
+
const steps = await runStore.loadRunSteps(decodeURIComponent(params.runId), buildStoreContext(request));
|
|
37
|
+
sendJson(response, 200, { steps });
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
logger.error(`Failed to load run steps: ${error}`);
|
|
41
|
+
sendJson(response, 404, { error: formatError(error) });
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
server.post('/v1/runs/:runId/cancel', async (request, response, params) => {
|
|
45
|
+
try {
|
|
46
|
+
const context = buildStoreContext(request);
|
|
47
|
+
const run = await runStore.loadRun(decodeURIComponent(params.runId), context);
|
|
48
|
+
const now = (0, types_1.nowTimestamp)();
|
|
49
|
+
run.cancelRequestedAt = run.cancelRequestedAt ?? now;
|
|
50
|
+
run.updatedAt = now;
|
|
51
|
+
if (run.status === schema_1.RunStatus.QUEUED) {
|
|
52
|
+
run.status = schema_1.RunStatus.CANCELLED;
|
|
53
|
+
run.completedAt = now;
|
|
54
|
+
run.leaseOwner = undefined;
|
|
55
|
+
run.leaseExpiresAt = undefined;
|
|
56
|
+
}
|
|
57
|
+
await runStore.saveRun(run, context);
|
|
58
|
+
await runStore.appendRunStep({
|
|
59
|
+
id: (0, store_1.generateRunStepResourceId)({
|
|
60
|
+
key: (0, types_1.generateId)('run-step'),
|
|
61
|
+
runId: run.id,
|
|
62
|
+
commandKind: run.commandKind,
|
|
63
|
+
surfaceId: run.surfaceId,
|
|
64
|
+
createdAt: now,
|
|
65
|
+
}),
|
|
66
|
+
commandKind: run.commandKind,
|
|
67
|
+
surfaceId: run.surfaceId,
|
|
68
|
+
runId: run.id,
|
|
69
|
+
run: resolveRunUri(run, context),
|
|
70
|
+
type: schema_1.RunStepType.CANCEL_REQUESTED,
|
|
71
|
+
message: 'Run cancellation requested',
|
|
72
|
+
data: { status: run.status },
|
|
73
|
+
createdAt: now,
|
|
74
|
+
}, context);
|
|
75
|
+
sendJson(response, 200, { run });
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
logger.error(`Failed to cancel run: ${error}`);
|
|
79
|
+
sendJson(response, 404, { error: formatError(error) });
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
function parseRunListOptions(url) {
|
|
84
|
+
const workspace = url.searchParams.get('workspace') ?? undefined;
|
|
85
|
+
if (workspace && !(0, types_2.isWorkspaceUri)(workspace)) {
|
|
86
|
+
throw new Error('workspace must be a URI');
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
task: url.searchParams.get('task') ?? undefined,
|
|
90
|
+
thread: url.searchParams.get('thread') ?? undefined,
|
|
91
|
+
workspace,
|
|
92
|
+
commandKind: parseCommandKind(url.searchParams.get('commandKind')),
|
|
93
|
+
status: parseRunStatus(url.searchParams.get('status')),
|
|
94
|
+
limit: parseOptionalNumber(url.searchParams.get('limit')),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function parseCommandKind(value) {
|
|
98
|
+
if (!value) {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
if (value === 'chat' || value === 'task') {
|
|
102
|
+
return value;
|
|
103
|
+
}
|
|
104
|
+
throw new Error('commandKind must be chat or task');
|
|
105
|
+
}
|
|
106
|
+
function parseRunStatus(value) {
|
|
107
|
+
if (!value) {
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
if (value === schema_1.RunStatus.QUEUED
|
|
111
|
+
|| value === schema_1.RunStatus.RUNNING
|
|
112
|
+
|| value === schema_1.RunStatus.WAITING_INPUT
|
|
113
|
+
|| value === schema_1.RunStatus.WAITING_RUNNER
|
|
114
|
+
|| value === schema_1.RunStatus.COMPLETED
|
|
115
|
+
|| value === schema_1.RunStatus.FAILED
|
|
116
|
+
|| value === schema_1.RunStatus.CANCELLED) {
|
|
117
|
+
return value;
|
|
118
|
+
}
|
|
119
|
+
throw new Error(`Unknown run status: ${value}`);
|
|
120
|
+
}
|
|
121
|
+
function parseOptionalNumber(value) {
|
|
122
|
+
if (!value) {
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
const parsed = Number(value);
|
|
126
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : undefined;
|
|
127
|
+
}
|
|
128
|
+
function buildStoreContext(request) {
|
|
129
|
+
const auth = request.auth;
|
|
130
|
+
const userId = auth ? (0, AuthContext_1.getWebId)(auth) ?? (0, AuthContext_1.getAccountId)(auth) ?? 'anonymous' : 'anonymous';
|
|
131
|
+
return {
|
|
132
|
+
userId,
|
|
133
|
+
auth,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function resolveRunUri(run, context) {
|
|
137
|
+
const auth = context.auth;
|
|
138
|
+
const webId = typeof auth?.webId === 'string' ? auth.webId : undefined;
|
|
139
|
+
const podBaseUrl = webId ? resolvePodBaseUrl(webId) : undefined;
|
|
140
|
+
if (podBaseUrl) {
|
|
141
|
+
return (0, store_1.resolveDataResourceIri)(podBaseUrl, run.id);
|
|
142
|
+
}
|
|
143
|
+
return (0, store_1.resolveRunUrn)(run.id);
|
|
144
|
+
}
|
|
145
|
+
function resolvePodBaseUrl(webId) {
|
|
146
|
+
try {
|
|
147
|
+
const url = new URL(webId);
|
|
148
|
+
url.hash = '';
|
|
149
|
+
url.search = '';
|
|
150
|
+
const normalizedPath = url.pathname.replace(/\/+$/, '');
|
|
151
|
+
if (!normalizedPath.endsWith('/profile/card')) {
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
url.pathname = normalizedPath.slice(0, -'/profile/card'.length) || '/';
|
|
155
|
+
return url.toString().replace(/\/$/, '');
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
return undefined;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
function sendJson(response, status, data) {
|
|
162
|
+
response.statusCode = status;
|
|
163
|
+
response.setHeader('Content-Type', 'application/json');
|
|
164
|
+
response.end(JSON.stringify(data));
|
|
165
|
+
}
|
|
166
|
+
function formatError(error) {
|
|
167
|
+
return error instanceof Error ? error.message : String(error);
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=RunHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunHandler.js","sourceRoot":"","sources":["../../../src/api/handlers/RunHandler.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ServerResponse } from 'node:http';\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { ApiServer } from '../ApiServer';\nimport { getAccountId, getWebId } from '../auth/AuthContext';\nimport { generateId, nowTimestamp } from '../chatkit/types';\nimport type { StoreContext } from '../chatkit/store';\nimport type { AuthenticatedRequest } from '../middleware/AuthMiddleware';\nimport { RunStatus, RunStepType, type RunStatusType } from '../runs/schema';\nimport {\n generateRunStepResourceId,\n resolveDataResourceIri,\n resolveRunUrn,\n type RunListOptions,\n type RunRecordData,\n type RunStore,\n} from '../runs/store';\nimport { isWorkspaceUri } from '../workspace/types';\n\nexport interface RunHandlerOptions {\n runStore: RunStore<StoreContext>;\n}\n\nexport function registerRunRoutes(server: ApiServer, options: RunHandlerOptions): void {\n const logger = getLoggerFor('RunHandler');\n const { runStore } = options;\n\n server.get('/v1/runs', async (request, response) => {\n try {\n const url = new URL(request.url ?? '', `http://${request.headers.host ?? 'localhost'}`);\n const runs = await runStore.listRuns(parseRunListOptions(url), buildStoreContext(request));\n sendJson(response, 200, { runs });\n } catch (error) {\n logger.error(`Failed to list runs: ${error}`);\n sendJson(response, 400, { error: formatError(error) });\n }\n });\n\n server.get('/v1/runs/:runId', async (request, response, params) => {\n try {\n const run = await runStore.loadRun(decodeURIComponent(params.runId), buildStoreContext(request));\n sendJson(response, 200, { run });\n } catch (error) {\n logger.error(`Failed to load run: ${error}`);\n sendJson(response, 404, { error: formatError(error) });\n }\n });\n\n server.get('/v1/runs/:runId/steps', async (request, response, params) => {\n try {\n const steps = await runStore.loadRunSteps(decodeURIComponent(params.runId), buildStoreContext(request));\n sendJson(response, 200, { steps });\n } catch (error) {\n logger.error(`Failed to load run steps: ${error}`);\n sendJson(response, 404, { error: formatError(error) });\n }\n });\n\n server.post('/v1/runs/:runId/cancel', async (request, response, params) => {\n try {\n const context = buildStoreContext(request);\n const run = await runStore.loadRun(decodeURIComponent(params.runId), context);\n const now = nowTimestamp();\n run.cancelRequestedAt = run.cancelRequestedAt ?? now;\n run.updatedAt = now;\n\n if (run.status === RunStatus.QUEUED) {\n run.status = RunStatus.CANCELLED;\n run.completedAt = now;\n run.leaseOwner = undefined;\n run.leaseExpiresAt = undefined;\n }\n\n await runStore.saveRun(run, context);\n await runStore.appendRunStep({\n id: generateRunStepResourceId({\n key: generateId('run-step'),\n runId: run.id,\n commandKind: run.commandKind,\n surfaceId: run.surfaceId,\n createdAt: now,\n }),\n commandKind: run.commandKind,\n surfaceId: run.surfaceId,\n runId: run.id,\n run: resolveRunUri(run, context),\n type: RunStepType.CANCEL_REQUESTED,\n message: 'Run cancellation requested',\n data: { status: run.status },\n createdAt: now,\n }, context);\n\n sendJson(response, 200, { run });\n } catch (error) {\n logger.error(`Failed to cancel run: ${error}`);\n sendJson(response, 404, { error: formatError(error) });\n }\n });\n}\n\nfunction parseRunListOptions(url: URL): RunListOptions {\n const workspace = url.searchParams.get('workspace') ?? undefined;\n if (workspace && !isWorkspaceUri(workspace)) {\n throw new Error('workspace must be a URI');\n }\n\n return {\n task: url.searchParams.get('task') ?? undefined,\n thread: url.searchParams.get('thread') ?? undefined,\n workspace,\n commandKind: parseCommandKind(url.searchParams.get('commandKind')),\n status: parseRunStatus(url.searchParams.get('status')),\n limit: parseOptionalNumber(url.searchParams.get('limit')),\n };\n}\n\nfunction parseCommandKind(value: string | null): RunListOptions['commandKind'] {\n if (!value) {\n return undefined;\n }\n if (value === 'chat' || value === 'task') {\n return value;\n }\n throw new Error('commandKind must be chat or task');\n}\n\nfunction parseRunStatus(value: string | null): RunStatusType | undefined {\n if (!value) {\n return undefined;\n }\n if (\n value === RunStatus.QUEUED\n || value === RunStatus.RUNNING\n || value === RunStatus.WAITING_INPUT\n || value === RunStatus.WAITING_RUNNER\n || value === RunStatus.COMPLETED\n || value === RunStatus.FAILED\n || value === RunStatus.CANCELLED\n ) {\n return value;\n }\n throw new Error(`Unknown run status: ${value}`);\n}\n\nfunction parseOptionalNumber(value: string | null): number | undefined {\n if (!value) {\n return undefined;\n }\n const parsed = Number(value);\n return Number.isFinite(parsed) && parsed > 0 ? parsed : undefined;\n}\n\nfunction buildStoreContext(request: AuthenticatedRequest): StoreContext {\n const auth = request.auth;\n const userId = auth ? getWebId(auth) ?? getAccountId(auth) ?? 'anonymous' : 'anonymous';\n return {\n userId,\n auth,\n };\n}\n\nfunction resolveRunUri(run: RunRecordData, context: StoreContext): string {\n const auth = context.auth as { webId?: unknown } | undefined;\n const webId = typeof auth?.webId === 'string' ? auth.webId : undefined;\n const podBaseUrl = webId ? resolvePodBaseUrl(webId) : undefined;\n if (podBaseUrl) {\n return resolveDataResourceIri(podBaseUrl, run.id);\n }\n return resolveRunUrn(run.id);\n}\n\nfunction resolvePodBaseUrl(webId: string): string | undefined {\n try {\n const url = new URL(webId);\n url.hash = '';\n url.search = '';\n const normalizedPath = url.pathname.replace(/\\/+$/, '');\n if (!normalizedPath.endsWith('/profile/card')) {\n return undefined;\n }\n url.pathname = normalizedPath.slice(0, -'/profile/card'.length) || '/';\n return url.toString().replace(/\\/$/, '');\n } catch {\n return undefined;\n }\n}\n\nfunction sendJson(response: ServerResponse, status: number, data: unknown): void {\n response.statusCode = status;\n response.setHeader('Content-Type', 'application/json');\n response.end(JSON.stringify(data));\n}\n\nfunction formatError(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n"]}
|
|
@@ -25,6 +25,7 @@ __exportStar(require("./ApiKeyHandler"), exports);
|
|
|
25
25
|
__exportStar(require("./SubdomainHandler"), exports);
|
|
26
26
|
__exportStar(require("./SubdomainClientHandler"), exports);
|
|
27
27
|
__exportStar(require("./ChatKitHandler"), exports);
|
|
28
|
+
__exportStar(require("./RunHandler"), exports);
|
|
28
29
|
__exportStar(require("./ProvisionHandler"), exports);
|
|
29
30
|
__exportStar(require("./PodManagementHandler"), exports);
|
|
30
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/handlers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,iDAA+B;AAC/B,gDAA8B;AAC9B,gDAA8B;AAC9B,kDAAgC;AAChC,uDAAqC;AACrC,8DAA4C;AAC5C,kDAAgC;AAChC,qDAAmC;AACnC,2DAAyC;AACzC,mDAAiC;AACjC,qDAAmC;AACnC,yDAAuC","sourcesContent":["export * from './EdgeNodeSignalHandler';\nexport * from './QuotaHandler';\nexport * from './NodeHandler';\nexport * from './ChatHandler';\nexport * from './VectorHandler';\nexport * from './VectorStoreHandler';\nexport * from './VectorStoreWebhookHandler';\nexport * from './ApiKeyHandler';\nexport * from './SubdomainHandler';\nexport * from './SubdomainClientHandler';\nexport * from './ChatKitHandler';\nexport * from './ProvisionHandler';\nexport * from './PodManagementHandler';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/handlers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,iDAA+B;AAC/B,gDAA8B;AAC9B,gDAA8B;AAC9B,kDAAgC;AAChC,uDAAqC;AACrC,8DAA4C;AAC5C,kDAAgC;AAChC,qDAAmC;AACnC,2DAAyC;AACzC,mDAAiC;AACjC,+CAA6B;AAC7B,qDAAmC;AACnC,yDAAuC","sourcesContent":["export * from './EdgeNodeSignalHandler';\nexport * from './QuotaHandler';\nexport * from './NodeHandler';\nexport * from './ChatHandler';\nexport * from './VectorHandler';\nexport * from './VectorStoreHandler';\nexport * from './VectorStoreWebhookHandler';\nexport * from './ApiKeyHandler';\nexport * from './SubdomainHandler';\nexport * from './SubdomainClientHandler';\nexport * from './ChatKitHandler';\nexport * from './RunHandler';\nexport * from './ProvisionHandler';\nexport * from './PodManagementHandler';\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ACL, AS, DCTerms, FOAF,
|
|
2
|
-
export { ACL, AS, DCTerms, FOAF,
|
|
1
|
+
import { ACL, AS, DCTerms, FOAF, LDP, MEETING, ODRL, OWL, RDF, RDFS, SCHEMA, SIOC, UDFS, UDFS_NAMESPACE, VCARD, WF } from '@undefineds.co/models';
|
|
2
|
+
export { ACL, AS, DCTerms, FOAF, LDP, MEETING, ODRL, OWL, RDF, RDFS, SCHEMA, SIOC, UDFS, UDFS_NAMESPACE, VCARD, WF, };
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WF = exports.VCARD = exports.UDFS_NAMESPACE = exports.UDFS = exports.SIOC = exports.SCHEMA = exports.RDFS = exports.RDF = exports.OWL = exports.ODRL = exports.MEETING = exports.LDP = exports.
|
|
3
|
+
exports.WF = exports.VCARD = exports.UDFS_NAMESPACE = exports.UDFS = exports.SIOC = exports.SCHEMA = exports.RDFS = exports.RDF = exports.OWL = exports.ODRL = exports.MEETING = exports.LDP = exports.FOAF = exports.DCTerms = exports.AS = exports.ACL = void 0;
|
|
4
4
|
const models_1 = require("@undefineds.co/models");
|
|
5
5
|
Object.defineProperty(exports, "ACL", { enumerable: true, get: function () { return models_1.ACL; } });
|
|
6
6
|
Object.defineProperty(exports, "AS", { enumerable: true, get: function () { return models_1.AS; } });
|
|
7
7
|
Object.defineProperty(exports, "DCTerms", { enumerable: true, get: function () { return models_1.DCTerms; } });
|
|
8
8
|
Object.defineProperty(exports, "FOAF", { enumerable: true, get: function () { return models_1.FOAF; } });
|
|
9
|
-
Object.defineProperty(exports, "LINQ", { enumerable: true, get: function () { return models_1.LINQ; } });
|
|
10
|
-
Object.defineProperty(exports, "LINX_CHAT", { enumerable: true, get: function () { return models_1.LINX_CHAT; } });
|
|
11
|
-
Object.defineProperty(exports, "LINX_MSG", { enumerable: true, get: function () { return models_1.LINX_MSG; } });
|
|
12
9
|
Object.defineProperty(exports, "LDP", { enumerable: true, get: function () { return models_1.LDP; } });
|
|
13
10
|
Object.defineProperty(exports, "MEETING", { enumerable: true, get: function () { return models_1.MEETING; } });
|
|
14
11
|
Object.defineProperty(exports, "ODRL", { enumerable: true, get: function () { return models_1.ODRL; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../../../src/api/models/namespaces.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../../../src/api/models/namespaces.ts"],"names":[],"mappings":";;;AAAA,kDAiB+B;AAG7B,oFAnBA,YAAG,OAmBA;AACH,mFAnBA,WAAE,OAmBA;AACF,wFAnBA,gBAAO,OAmBA;AACP,qFAnBA,aAAI,OAmBA;AACJ,oFAnBA,YAAG,OAmBA;AACH,wFAnBA,gBAAO,OAmBA;AACP,qFAnBA,aAAI,OAmBA;AACJ,oFAnBA,YAAG,OAmBA;AACH,oFAnBA,YAAG,OAmBA;AACH,qFAnBA,aAAI,OAmBA;AACJ,uFAnBA,eAAM,OAmBA;AACN,qFAnBA,aAAI,OAmBA;AACJ,qFAnBA,aAAI,OAmBA;AACJ,+FAnBA,uBAAc,OAmBA;AACd,sFAnBA,cAAK,OAmBA;AACL,mFAnBA,WAAE,OAmBA","sourcesContent":["import {\n ACL,\n AS,\n DCTerms,\n FOAF,\n LDP,\n MEETING,\n ODRL,\n OWL,\n RDF,\n RDFS,\n SCHEMA,\n SIOC,\n UDFS,\n UDFS_NAMESPACE,\n VCARD,\n WF,\n} from '@undefineds.co/models';\n\nexport {\n ACL,\n AS,\n DCTerms,\n FOAF,\n LDP,\n MEETING,\n ODRL,\n OWL,\n RDF,\n RDFS,\n SCHEMA,\n SIOC,\n UDFS,\n UDFS_NAMESPACE,\n VCARD,\n WF,\n};\n"]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { ResolvedAgentConfig } from '../../agents/config/types';
|
|
2
|
+
import type { WorkspaceUri } from '../workspace/types';
|
|
3
|
+
export type RunnerProtocol = 'pi' | 'acp';
|
|
4
|
+
export type AcpRunnerType = 'codebuddy' | 'claude' | 'codex';
|
|
5
|
+
export type RunnerType = 'pi' | AcpRunnerType;
|
|
6
|
+
export type WorktreeSpec = {
|
|
7
|
+
mode: 'existing';
|
|
8
|
+
path: string;
|
|
9
|
+
} | {
|
|
10
|
+
mode: 'create';
|
|
11
|
+
baseRef?: string;
|
|
12
|
+
branch?: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Canonical workspace reference for a Run.
|
|
16
|
+
*
|
|
17
|
+
* This is an RDF URI reference to a workspace Container, not an execution
|
|
18
|
+
* config object. Stable workspace metadata belongs on the Container .meta
|
|
19
|
+
* resource. Runners resolve this URI into their own local cwd before starting
|
|
20
|
+
* the Agent Loop.
|
|
21
|
+
*/
|
|
22
|
+
export interface AgentRuntimeConfig {
|
|
23
|
+
workspace: WorkspaceUri;
|
|
24
|
+
/**
|
|
25
|
+
* Optional execution policy for git workspaces. The workspace field still
|
|
26
|
+
* points at the repo/workspace URI; this only selects the cwd used by a run.
|
|
27
|
+
*/
|
|
28
|
+
worktree?: WorktreeSpec;
|
|
29
|
+
/**
|
|
30
|
+
* Stream idle cutoff for agent output. If no output arrives within this window,
|
|
31
|
+
* the current streaming response ends.
|
|
32
|
+
*
|
|
33
|
+
* Defaults to 500ms for tests; real agents may need a larger value.
|
|
34
|
+
*/
|
|
35
|
+
idleMs?: number;
|
|
36
|
+
/**
|
|
37
|
+
* How long to keep the stream open after an auth_required event.
|
|
38
|
+
* Defaults to 5 minutes.
|
|
39
|
+
*/
|
|
40
|
+
authWaitMs?: number;
|
|
41
|
+
runner: {
|
|
42
|
+
type: RunnerType;
|
|
43
|
+
/**
|
|
44
|
+
* pi: request-scoped pi AgentSession restored from Xpod Run/Thread/Message state.
|
|
45
|
+
* acp: protocol adapter over JSON-RPC (Agent Client Protocol) stdio runners.
|
|
46
|
+
*/
|
|
47
|
+
protocol?: RunnerProtocol;
|
|
48
|
+
argv?: string[];
|
|
49
|
+
allowCustomArgv?: boolean;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Resolved agent configuration from /agents/{agentId}/AGENTS.md + .meta.
|
|
53
|
+
* When provided, credentials/model/MCP servers/system prompt come from here
|
|
54
|
+
* instead of DEFAULT_* environment variables.
|
|
55
|
+
*/
|
|
56
|
+
agentConfig?: ResolvedAgentConfig;
|
|
57
|
+
}
|
|
58
|
+
export type AgentRuntimeEvent = {
|
|
59
|
+
type: 'text';
|
|
60
|
+
text: string;
|
|
61
|
+
} | {
|
|
62
|
+
type: 'error';
|
|
63
|
+
message: string;
|
|
64
|
+
} | {
|
|
65
|
+
type: 'waiting_runner';
|
|
66
|
+
workspace: WorkspaceUri;
|
|
67
|
+
message: string;
|
|
68
|
+
} | {
|
|
69
|
+
type: 'auth_required';
|
|
70
|
+
method: string;
|
|
71
|
+
url?: string;
|
|
72
|
+
message?: string;
|
|
73
|
+
options?: Array<{
|
|
74
|
+
label?: string;
|
|
75
|
+
url?: string;
|
|
76
|
+
method?: string;
|
|
77
|
+
}>;
|
|
78
|
+
} | {
|
|
79
|
+
type: 'tool_call';
|
|
80
|
+
requestId: string;
|
|
81
|
+
name: string;
|
|
82
|
+
arguments: string;
|
|
83
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentRuntimeTypes.js","sourceRoot":"","sources":["../../../src/api/runs/AgentRuntimeTypes.ts"],"names":[],"mappings":"","sourcesContent":["import type { ResolvedAgentConfig } from '../../agents/config/types';\nimport type { WorkspaceUri } from '../workspace/types';\n\nexport type RunnerProtocol = 'pi' | 'acp';\nexport type AcpRunnerType = 'codebuddy' | 'claude' | 'codex';\nexport type RunnerType = 'pi' | AcpRunnerType;\n\nexport type WorktreeSpec =\n | { mode: 'existing'; path: string }\n | { mode: 'create'; baseRef?: string; branch?: string };\n\n/**\n * Canonical workspace reference for a Run.\n *\n * This is an RDF URI reference to a workspace Container, not an execution\n * config object. Stable workspace metadata belongs on the Container .meta\n * resource. Runners resolve this URI into their own local cwd before starting\n * the Agent Loop.\n */\nexport interface AgentRuntimeConfig {\n workspace: WorkspaceUri;\n /**\n * Optional execution policy for git workspaces. The workspace field still\n * points at the repo/workspace URI; this only selects the cwd used by a run.\n */\n worktree?: WorktreeSpec;\n /**\n * Stream idle cutoff for agent output. If no output arrives within this window,\n * the current streaming response ends.\n *\n * Defaults to 500ms for tests; real agents may need a larger value.\n */\n idleMs?: number;\n /**\n * How long to keep the stream open after an auth_required event.\n * Defaults to 5 minutes.\n */\n authWaitMs?: number;\n runner: {\n type: RunnerType;\n /**\n * pi: request-scoped pi AgentSession restored from Xpod Run/Thread/Message state.\n * acp: protocol adapter over JSON-RPC (Agent Client Protocol) stdio runners.\n */\n protocol?: RunnerProtocol;\n argv?: string[];\n allowCustomArgv?: boolean;\n };\n /**\n * Resolved agent configuration from /agents/{agentId}/AGENTS.md + .meta.\n * When provided, credentials/model/MCP servers/system prompt come from here\n * instead of DEFAULT_* environment variables.\n */\n agentConfig?: ResolvedAgentConfig;\n}\n\nexport type AgentRuntimeEvent =\n | { type: 'text'; text: string }\n | { type: 'error'; message: string }\n | {\n type: 'waiting_runner';\n workspace: WorkspaceUri;\n message: string;\n }\n | {\n type: 'auth_required';\n method: string;\n url?: string;\n message?: string;\n options?: Array<{ label?: string; url?: string; method?: string }>;\n }\n | {\n type: 'tool_call';\n requestId: string;\n name: string;\n arguments: string;\n };\n"]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export interface EmbeddedInngestServiceOptions {
|
|
2
|
+
edition: 'cloud' | 'local';
|
|
3
|
+
apiBaseUrl: string;
|
|
4
|
+
apiPath?: string;
|
|
5
|
+
databaseUrl: string;
|
|
6
|
+
redisUrl?: string;
|
|
7
|
+
enabled?: boolean;
|
|
8
|
+
mode?: 'managed' | 'spawn';
|
|
9
|
+
host?: string;
|
|
10
|
+
port?: number;
|
|
11
|
+
baseUrl?: string;
|
|
12
|
+
eventKey?: string;
|
|
13
|
+
signingKey?: string;
|
|
14
|
+
binaryPath?: string;
|
|
15
|
+
sqliteDir?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface EmbeddedInngestRuntimeConfig {
|
|
18
|
+
enabled: boolean;
|
|
19
|
+
durableDelivery: boolean;
|
|
20
|
+
baseUrl: string;
|
|
21
|
+
eventKey: string;
|
|
22
|
+
signingKey: string;
|
|
23
|
+
functionEndpoint: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Xpod-owned Inngest runtime process.
|
|
27
|
+
*
|
|
28
|
+
* The JS SDK is only the client/function adapter; the durable executor is the
|
|
29
|
+
* Inngest CLI/server. In local mode Xpod may spawn that server as a managed
|
|
30
|
+
* child process. In cloud/cluster mode the deployment supplies a stable
|
|
31
|
+
* cluster-scoped Inngest URL, still owned by the Xpod deployment rather than
|
|
32
|
+
* user-provided SaaS. Xpod Run/RunStep remain the business source of truth.
|
|
33
|
+
*/
|
|
34
|
+
export declare class EmbeddedInngestService {
|
|
35
|
+
private readonly logger;
|
|
36
|
+
private readonly options;
|
|
37
|
+
private child?;
|
|
38
|
+
private config?;
|
|
39
|
+
constructor(options: EmbeddedInngestServiceOptions);
|
|
40
|
+
start(): Promise<EmbeddedInngestRuntimeConfig>;
|
|
41
|
+
stop(): Promise<void>;
|
|
42
|
+
private resolveUsableBinaryPath;
|
|
43
|
+
private isUsableBinary;
|
|
44
|
+
private buildArguments;
|
|
45
|
+
private buildEnvironment;
|
|
46
|
+
private isPostgresUrl;
|
|
47
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.EmbeddedInngestService = void 0;
|
|
27
|
+
const fs = __importStar(require("node:fs"));
|
|
28
|
+
const path = __importStar(require("node:path"));
|
|
29
|
+
const node_child_process_1 = require("node:child_process");
|
|
30
|
+
const global_logger_factory_1 = require("global-logger-factory");
|
|
31
|
+
const runtime_1 = require("../../runtime");
|
|
32
|
+
/**
|
|
33
|
+
* Xpod-owned Inngest runtime process.
|
|
34
|
+
*
|
|
35
|
+
* The JS SDK is only the client/function adapter; the durable executor is the
|
|
36
|
+
* Inngest CLI/server. In local mode Xpod may spawn that server as a managed
|
|
37
|
+
* child process. In cloud/cluster mode the deployment supplies a stable
|
|
38
|
+
* cluster-scoped Inngest URL, still owned by the Xpod deployment rather than
|
|
39
|
+
* user-provided SaaS. Xpod Run/RunStep remain the business source of truth.
|
|
40
|
+
*/
|
|
41
|
+
class EmbeddedInngestService {
|
|
42
|
+
constructor(options) {
|
|
43
|
+
this.logger = (0, global_logger_factory_1.getLoggerFor)(this);
|
|
44
|
+
this.options = options;
|
|
45
|
+
}
|
|
46
|
+
async start() {
|
|
47
|
+
if (this.config) {
|
|
48
|
+
return this.config;
|
|
49
|
+
}
|
|
50
|
+
const mode = this.options.mode ?? (this.options.edition === 'cloud' ? 'managed' : 'spawn');
|
|
51
|
+
if ((this.options.edition === 'cloud' || mode === 'managed') && (!this.options.eventKey || !this.options.signingKey)) {
|
|
52
|
+
throw new Error('Managed/cloud Inngest requires explicit eventKey and signingKey');
|
|
53
|
+
}
|
|
54
|
+
const eventKey = this.options.eventKey || 'xpod-local-event-key';
|
|
55
|
+
const signingKey = this.options.signingKey || 'signkey-test-xpod-local-signing-key';
|
|
56
|
+
const host = this.options.host || '127.0.0.1';
|
|
57
|
+
const port = this.options.port ?? (mode === 'spawn' ? await (0, runtime_1.getFreePort)(8288, host) : 8288);
|
|
58
|
+
const baseUrl = this.options.baseUrl || (mode === 'spawn' ? `http://${host}:${port}` : 'http://xpod-inngest:8288');
|
|
59
|
+
const functionEndpoint = new URL(this.options.apiPath ?? '/api/inngest', this.options.apiBaseUrl).toString();
|
|
60
|
+
this.config = {
|
|
61
|
+
enabled: this.options.enabled !== false,
|
|
62
|
+
durableDelivery: false,
|
|
63
|
+
baseUrl,
|
|
64
|
+
eventKey,
|
|
65
|
+
signingKey,
|
|
66
|
+
functionEndpoint,
|
|
67
|
+
};
|
|
68
|
+
if (this.options.enabled === false) {
|
|
69
|
+
this.logger.info('Embedded Inngest disabled by config');
|
|
70
|
+
return this.config;
|
|
71
|
+
}
|
|
72
|
+
if (mode === 'managed') {
|
|
73
|
+
this.config.durableDelivery = this.config.enabled;
|
|
74
|
+
this.logger.info(`Using managed embedded Inngest at ${baseUrl}, function endpoint ${functionEndpoint}`);
|
|
75
|
+
return this.config;
|
|
76
|
+
}
|
|
77
|
+
const binary = this.resolveUsableBinaryPath();
|
|
78
|
+
if (!binary) {
|
|
79
|
+
this.logger.warn('Embedded Inngest binary not found; Xpod will still expose the function endpoint, but durable delivery is unavailable.');
|
|
80
|
+
return this.config;
|
|
81
|
+
}
|
|
82
|
+
const env = this.buildEnvironment({
|
|
83
|
+
baseUrl,
|
|
84
|
+
eventKey,
|
|
85
|
+
signingKey,
|
|
86
|
+
functionEndpoint,
|
|
87
|
+
});
|
|
88
|
+
const args = this.buildArguments(host, port, functionEndpoint);
|
|
89
|
+
this.child = (0, node_child_process_1.spawn)(binary, args, {
|
|
90
|
+
cwd: runtime_1.PACKAGE_ROOT,
|
|
91
|
+
env,
|
|
92
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
93
|
+
});
|
|
94
|
+
this.child.stdout?.on('data', (chunk) => {
|
|
95
|
+
this.logger.info(`[Inngest] ${String(chunk).trim()}`);
|
|
96
|
+
});
|
|
97
|
+
this.child.stderr?.on('data', (chunk) => {
|
|
98
|
+
this.logger.warn(`[Inngest] ${String(chunk).trim()}`);
|
|
99
|
+
});
|
|
100
|
+
this.child.once('exit', (code, signal) => {
|
|
101
|
+
const message = `Embedded Inngest exited: code=${code ?? 'null'} signal=${signal ?? 'null'}`;
|
|
102
|
+
if (code && code !== 0) {
|
|
103
|
+
this.logger.error(message);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
this.logger.info(message);
|
|
107
|
+
}
|
|
108
|
+
this.child = undefined;
|
|
109
|
+
});
|
|
110
|
+
this.child.once('error', (error) => {
|
|
111
|
+
this.logger.error(`Failed to start embedded Inngest: ${error}`);
|
|
112
|
+
this.child = undefined;
|
|
113
|
+
});
|
|
114
|
+
this.logger.info(`Embedded Inngest starting at ${baseUrl}, function endpoint ${functionEndpoint}`);
|
|
115
|
+
this.config.durableDelivery = true;
|
|
116
|
+
return this.config;
|
|
117
|
+
}
|
|
118
|
+
async stop() {
|
|
119
|
+
const child = this.child;
|
|
120
|
+
if (!child) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
this.child = undefined;
|
|
124
|
+
await new Promise((resolve) => {
|
|
125
|
+
const timer = setTimeout(() => {
|
|
126
|
+
child.kill('SIGKILL');
|
|
127
|
+
resolve();
|
|
128
|
+
}, 5_000);
|
|
129
|
+
timer.unref?.();
|
|
130
|
+
child.once('exit', () => {
|
|
131
|
+
clearTimeout(timer);
|
|
132
|
+
resolve();
|
|
133
|
+
});
|
|
134
|
+
child.kill('SIGTERM');
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
resolveUsableBinaryPath() {
|
|
138
|
+
const configured = this.options.binaryPath;
|
|
139
|
+
if (configured) {
|
|
140
|
+
return this.isUsableBinary(configured) ? configured : undefined;
|
|
141
|
+
}
|
|
142
|
+
const candidates = [
|
|
143
|
+
path.join(runtime_1.PACKAGE_ROOT, 'node_modules', '.bin', process.platform === 'win32' ? 'inngest.cmd' : 'inngest'),
|
|
144
|
+
path.join(runtime_1.PACKAGE_ROOT, 'node_modules', 'inngest-cli', 'bin', process.platform === 'win32' ? 'inngest.exe' : 'inngest'),
|
|
145
|
+
'inngest',
|
|
146
|
+
];
|
|
147
|
+
return candidates.find((candidate) => this.isUsableBinary(candidate));
|
|
148
|
+
}
|
|
149
|
+
isUsableBinary(candidate) {
|
|
150
|
+
const isPathLike = candidate.includes('/') || candidate.includes('\\');
|
|
151
|
+
if (isPathLike && !fs.existsSync(candidate)) {
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
const result = (0, node_child_process_1.spawnSync)(candidate, ['--help'], {
|
|
155
|
+
cwd: runtime_1.PACKAGE_ROOT,
|
|
156
|
+
env: process.env,
|
|
157
|
+
stdio: 'ignore',
|
|
158
|
+
timeout: 5_000,
|
|
159
|
+
});
|
|
160
|
+
return !result.error && result.status === 0;
|
|
161
|
+
}
|
|
162
|
+
buildArguments(host, port, functionEndpoint) {
|
|
163
|
+
return [
|
|
164
|
+
'dev',
|
|
165
|
+
'--no-discovery',
|
|
166
|
+
'--host',
|
|
167
|
+
host,
|
|
168
|
+
'--port',
|
|
169
|
+
String(port),
|
|
170
|
+
'-u',
|
|
171
|
+
functionEndpoint,
|
|
172
|
+
];
|
|
173
|
+
}
|
|
174
|
+
buildEnvironment(config) {
|
|
175
|
+
const env = {
|
|
176
|
+
...process.env,
|
|
177
|
+
INNGEST_DEV: config.baseUrl,
|
|
178
|
+
INNGEST_BASE_URL: config.baseUrl,
|
|
179
|
+
INNGEST_EVENT_API_BASE_URL: config.baseUrl,
|
|
180
|
+
INNGEST_API_BASE_URL: config.baseUrl,
|
|
181
|
+
INNGEST_EVENT_KEY: config.eventKey,
|
|
182
|
+
INNGEST_SIGNING_KEY: config.signingKey,
|
|
183
|
+
};
|
|
184
|
+
if (this.options.edition === 'cloud') {
|
|
185
|
+
if (this.isPostgresUrl(this.options.databaseUrl)) {
|
|
186
|
+
env.INNGEST_POSTGRES_URI = this.options.databaseUrl;
|
|
187
|
+
}
|
|
188
|
+
if (this.options.redisUrl) {
|
|
189
|
+
env.INNGEST_REDIS_URI = this.options.redisUrl;
|
|
190
|
+
}
|
|
191
|
+
return env;
|
|
192
|
+
}
|
|
193
|
+
const sqliteDir = this.options.sqliteDir ?? path.join(process.env.CSS_ROOT_FILE_PATH || './data', '.inngest');
|
|
194
|
+
fs.mkdirSync(sqliteDir, { recursive: true });
|
|
195
|
+
env.INNGEST_SQLITE_DIR = sqliteDir;
|
|
196
|
+
return env;
|
|
197
|
+
}
|
|
198
|
+
isPostgresUrl(value) {
|
|
199
|
+
return value.startsWith('postgres://') || value.startsWith('postgresql://');
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
exports.EmbeddedInngestService = EmbeddedInngestService;
|
|
203
|
+
//# sourceMappingURL=EmbeddedInngestService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmbeddedInngestService.js","sourceRoot":"","sources":["../../../src/api/runs/EmbeddedInngestService.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport { spawn, spawnSync, type ChildProcess } from 'node:child_process';\nimport { getLoggerFor } from 'global-logger-factory';\nimport { getFreePort, PACKAGE_ROOT } from '../../runtime';\n\nexport interface EmbeddedInngestServiceOptions {\n edition: 'cloud' | 'local';\n apiBaseUrl: string;\n apiPath?: string;\n databaseUrl: string;\n redisUrl?: string;\n enabled?: boolean;\n mode?: 'managed' | 'spawn';\n host?: string;\n port?: number;\n baseUrl?: string;\n eventKey?: string;\n signingKey?: string;\n binaryPath?: string;\n sqliteDir?: string;\n}\n\nexport interface EmbeddedInngestRuntimeConfig {\n enabled: boolean;\n durableDelivery: boolean;\n baseUrl: string;\n eventKey: string;\n signingKey: string;\n functionEndpoint: string;\n}\n\n/**\n * Xpod-owned Inngest runtime process.\n *\n * The JS SDK is only the client/function adapter; the durable executor is the\n * Inngest CLI/server. In local mode Xpod may spawn that server as a managed\n * child process. In cloud/cluster mode the deployment supplies a stable\n * cluster-scoped Inngest URL, still owned by the Xpod deployment rather than\n * user-provided SaaS. Xpod Run/RunStep remain the business source of truth.\n */\nexport class EmbeddedInngestService {\n private readonly logger = getLoggerFor(this);\n private readonly options: EmbeddedInngestServiceOptions;\n private child?: ChildProcess;\n private config?: EmbeddedInngestRuntimeConfig;\n\n public constructor(options: EmbeddedInngestServiceOptions) {\n this.options = options;\n }\n\n public async start(): Promise<EmbeddedInngestRuntimeConfig> {\n if (this.config) {\n return this.config;\n }\n\n const mode = this.options.mode ?? (this.options.edition === 'cloud' ? 'managed' : 'spawn');\n if ((this.options.edition === 'cloud' || mode === 'managed') && (!this.options.eventKey || !this.options.signingKey)) {\n throw new Error('Managed/cloud Inngest requires explicit eventKey and signingKey');\n }\n\n const eventKey = this.options.eventKey || 'xpod-local-event-key';\n const signingKey = this.options.signingKey || 'signkey-test-xpod-local-signing-key';\n const host = this.options.host || '127.0.0.1';\n const port = this.options.port ?? (mode === 'spawn' ? await getFreePort(8288, host) : 8288);\n const baseUrl = this.options.baseUrl || (mode === 'spawn' ? `http://${host}:${port}` : 'http://xpod-inngest:8288');\n const functionEndpoint = new URL(this.options.apiPath ?? '/api/inngest', this.options.apiBaseUrl).toString();\n\n this.config = {\n enabled: this.options.enabled !== false,\n durableDelivery: false,\n baseUrl,\n eventKey,\n signingKey,\n functionEndpoint,\n };\n\n if (this.options.enabled === false) {\n this.logger.info('Embedded Inngest disabled by config');\n return this.config;\n }\n\n if (mode === 'managed') {\n this.config.durableDelivery = this.config.enabled;\n this.logger.info(`Using managed embedded Inngest at ${baseUrl}, function endpoint ${functionEndpoint}`);\n return this.config;\n }\n\n const binary = this.resolveUsableBinaryPath();\n if (!binary) {\n this.logger.warn('Embedded Inngest binary not found; Xpod will still expose the function endpoint, but durable delivery is unavailable.');\n return this.config;\n }\n\n const env = this.buildEnvironment({\n baseUrl,\n eventKey,\n signingKey,\n functionEndpoint,\n });\n const args = this.buildArguments(host, port, functionEndpoint);\n\n this.child = spawn(binary, args, {\n cwd: PACKAGE_ROOT,\n env,\n stdio: ['ignore', 'pipe', 'pipe'],\n });\n\n this.child.stdout?.on('data', (chunk) => {\n this.logger.info(`[Inngest] ${String(chunk).trim()}`);\n });\n this.child.stderr?.on('data', (chunk) => {\n this.logger.warn(`[Inngest] ${String(chunk).trim()}`);\n });\n this.child.once('exit', (code, signal) => {\n const message = `Embedded Inngest exited: code=${code ?? 'null'} signal=${signal ?? 'null'}`;\n if (code && code !== 0) {\n this.logger.error(message);\n } else {\n this.logger.info(message);\n }\n this.child = undefined;\n });\n this.child.once('error', (error) => {\n this.logger.error(`Failed to start embedded Inngest: ${error}`);\n this.child = undefined;\n });\n\n this.logger.info(`Embedded Inngest starting at ${baseUrl}, function endpoint ${functionEndpoint}`);\n this.config.durableDelivery = true;\n return this.config;\n }\n\n public async stop(): Promise<void> {\n const child = this.child;\n if (!child) {\n return;\n }\n this.child = undefined;\n\n await new Promise<void>((resolve) => {\n const timer = setTimeout(() => {\n child.kill('SIGKILL');\n resolve();\n }, 5_000);\n timer.unref?.();\n\n child.once('exit', () => {\n clearTimeout(timer);\n resolve();\n });\n child.kill('SIGTERM');\n });\n }\n\n private resolveUsableBinaryPath(): string | undefined {\n const configured = this.options.binaryPath;\n if (configured) {\n return this.isUsableBinary(configured) ? configured : undefined;\n }\n\n const candidates = [\n path.join(PACKAGE_ROOT, 'node_modules', '.bin', process.platform === 'win32' ? 'inngest.cmd' : 'inngest'),\n path.join(PACKAGE_ROOT, 'node_modules', 'inngest-cli', 'bin', process.platform === 'win32' ? 'inngest.exe' : 'inngest'),\n 'inngest',\n ];\n\n return candidates.find((candidate) => this.isUsableBinary(candidate));\n }\n\n private isUsableBinary(candidate: string): boolean {\n const isPathLike = candidate.includes('/') || candidate.includes('\\\\');\n if (isPathLike && !fs.existsSync(candidate)) {\n return false;\n }\n\n const result = spawnSync(candidate, ['--help'], {\n cwd: PACKAGE_ROOT,\n env: process.env,\n stdio: 'ignore',\n timeout: 5_000,\n });\n return !result.error && result.status === 0;\n }\n\n private buildArguments(host: string, port: number, functionEndpoint: string): string[] {\n return [\n 'dev',\n '--no-discovery',\n '--host',\n host,\n '--port',\n String(port),\n '-u',\n functionEndpoint,\n ];\n }\n\n private buildEnvironment(config: {\n baseUrl: string;\n eventKey: string;\n signingKey: string;\n functionEndpoint: string;\n }): NodeJS.ProcessEnv {\n const env: NodeJS.ProcessEnv = {\n ...process.env,\n INNGEST_DEV: config.baseUrl,\n INNGEST_BASE_URL: config.baseUrl,\n INNGEST_EVENT_API_BASE_URL: config.baseUrl,\n INNGEST_API_BASE_URL: config.baseUrl,\n INNGEST_EVENT_KEY: config.eventKey,\n INNGEST_SIGNING_KEY: config.signingKey,\n };\n\n if (this.options.edition === 'cloud') {\n if (this.isPostgresUrl(this.options.databaseUrl)) {\n env.INNGEST_POSTGRES_URI = this.options.databaseUrl;\n }\n if (this.options.redisUrl) {\n env.INNGEST_REDIS_URI = this.options.redisUrl;\n }\n return env;\n }\n\n const sqliteDir = this.options.sqliteDir ?? path.join(process.env.CSS_ROOT_FILE_PATH || './data', '.inngest');\n fs.mkdirSync(sqliteDir, { recursive: true });\n env.INNGEST_SQLITE_DIR = sqliteDir;\n return env;\n }\n\n private isPostgresUrl(value: string): boolean {\n return value.startsWith('postgres://') || value.startsWith('postgresql://');\n }\n}\n"]}
|