@undefineds.co/xpod 0.2.44 → 0.3.0
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/runtime/configure-drizzle-solid.js +52 -0
- package/dist/runtime/configure-drizzle-solid.js.map +1 -1
- package/dist/storage/quint/PgQuintStore.d.ts +6 -0
- package/dist/storage/quint/PgQuintStore.js +83 -5
- package/dist/storage/quint/PgQuintStore.js.map +1 -1
- package/dist/storage/quint/PgQuintStore.jsonld +24 -0
- package/dist/storage/quint/SqliteQuintStore.d.ts +1 -0
- package/dist/storage/quint/SqliteQuintStore.js +52 -0
- package/dist/storage/quint/SqliteQuintStore.js.map +1 -1
- package/dist/storage/quint/SqliteQuintStore.jsonld +4 -0
- package/dist/storage/quint/types.d.ts +6 -0
- package/dist/storage/quint/types.js.map +1 -1
- package/dist/storage/sparql/FilterPushdownExtractor.js +23 -11
- package/dist/storage/sparql/FilterPushdownExtractor.js.map +1 -1
- package/dist/storage/vector/VectorIndexingListener.js +13 -18
- package/dist/storage/vector/VectorIndexingListener.js.map +1 -1
- package/dist/util/identifiers/ClusterIdentifierStrategy.js +29 -1
- package/dist/util/identifiers/ClusterIdentifierStrategy.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 +5 -3
- package/scripts/patch-jose.js +62 -12
- 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"]}
|