@undefineds.co/xpod 0.2.45 → 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/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 +5 -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
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
export interface PiModel {
|
|
2
|
-
id: string;
|
|
3
|
-
name?: string;
|
|
4
|
-
api?: string;
|
|
5
|
-
provider?: string;
|
|
6
|
-
baseUrl?: string;
|
|
7
|
-
reasoning?: boolean;
|
|
8
|
-
input?: string[];
|
|
9
|
-
cost?: {
|
|
10
|
-
input: number;
|
|
11
|
-
output: number;
|
|
12
|
-
cacheRead: number;
|
|
13
|
-
cacheWrite: number;
|
|
14
|
-
};
|
|
15
|
-
contextWindow?: number;
|
|
16
|
-
maxTokens?: number;
|
|
17
|
-
}
|
|
18
|
-
export interface OAuthCredentials {
|
|
19
|
-
refresh: string;
|
|
20
|
-
access: string;
|
|
21
|
-
expires: number;
|
|
22
|
-
userId?: string;
|
|
23
|
-
userName?: string;
|
|
24
|
-
}
|
|
25
|
-
export interface OAuthAuthInfo {
|
|
26
|
-
url: string;
|
|
27
|
-
instructions?: string;
|
|
28
|
-
}
|
|
29
|
-
export interface OAuthPrompt {
|
|
30
|
-
message: string;
|
|
31
|
-
placeholder?: string;
|
|
32
|
-
}
|
|
33
|
-
export interface OAuthLoginCallbacks {
|
|
34
|
-
onAuth(info: OAuthAuthInfo): void;
|
|
35
|
-
onPrompt(prompt: OAuthPrompt): Promise<string>;
|
|
36
|
-
onProgress(message: string): void;
|
|
37
|
-
}
|
|
38
|
-
export interface OAuthProviderInterface {
|
|
39
|
-
id: string;
|
|
40
|
-
name: string;
|
|
41
|
-
login(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials>;
|
|
42
|
-
refreshToken(credentials: OAuthCredentials): Promise<OAuthCredentials>;
|
|
43
|
-
getApiKey?(credentials: OAuthCredentials): string;
|
|
44
|
-
}
|
|
45
|
-
export interface PiAiOAuthUtils {
|
|
46
|
-
getOAuthProvider(providerId: string): OAuthProviderInterface | undefined;
|
|
47
|
-
registerOAuthProvider(provider: OAuthProviderInterface): void;
|
|
48
|
-
}
|
|
49
|
-
export interface PiAiModule {
|
|
50
|
-
getModels(providerId: string): PiModel[];
|
|
51
|
-
}
|
|
52
|
-
export interface AgentSessionLike {
|
|
53
|
-
subscribe(handler: (event: any) => void | Promise<void>): void;
|
|
54
|
-
}
|
|
55
|
-
export interface CreateAgentSessionResultLike {
|
|
56
|
-
session: AgentSessionLike;
|
|
57
|
-
}
|
|
58
|
-
export interface SessionManagerLike {
|
|
59
|
-
appendMessage(message: any): void;
|
|
60
|
-
}
|
|
61
|
-
export interface PiCodingAgentModule {
|
|
62
|
-
createAgentSession(options: any): Promise<CreateAgentSessionResultLike>;
|
|
63
|
-
runPrintMode(agent: AgentSessionLike, options: any): Promise<void>;
|
|
64
|
-
AuthStorage: {
|
|
65
|
-
inMemory(): {
|
|
66
|
-
setRuntimeApiKey(provider: string, apiKey: string): void;
|
|
67
|
-
};
|
|
68
|
-
};
|
|
69
|
-
SessionManager: {
|
|
70
|
-
create(workspace: string, sessionDir: string): SessionManagerLike;
|
|
71
|
-
};
|
|
72
|
-
SettingsManager: {
|
|
73
|
-
inMemory(): unknown;
|
|
74
|
-
};
|
|
75
|
-
DefaultResourceLoader: new (options: any) => {
|
|
76
|
-
reload(): Promise<void>;
|
|
77
|
-
};
|
|
78
|
-
InteractiveMode: new (agent: AgentSessionLike, options: any) => {
|
|
79
|
-
run(): Promise<void>;
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
export declare function loadPiAiOAuthUtils(): Promise<PiAiOAuthUtils>;
|
|
83
|
-
export declare function loadPiAi(): Promise<PiAiModule>;
|
|
84
|
-
export declare function loadPiCodingAgent(): Promise<PiCodingAgentModule>;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.loadPiAiOAuthUtils = loadPiAiOAuthUtils;
|
|
4
|
-
exports.loadPiAi = loadPiAi;
|
|
5
|
-
exports.loadPiCodingAgent = loadPiCodingAgent;
|
|
6
|
-
const dynamicImport = new Function('specifier', 'return import(specifier)');
|
|
7
|
-
function createMissingPackageError(packageName, error) {
|
|
8
|
-
const reason = error instanceof Error ? error.message : String(error);
|
|
9
|
-
return new Error(`Optional package ${packageName} is required for this CLI feature: ${reason}`);
|
|
10
|
-
}
|
|
11
|
-
async function loadPiAiOAuthUtils() {
|
|
12
|
-
try {
|
|
13
|
-
return await dynamicImport('@mariozechner/pi-ai/dist/utils/oauth/index.js');
|
|
14
|
-
}
|
|
15
|
-
catch (error) {
|
|
16
|
-
throw createMissingPackageError('@mariozechner/pi-ai', error);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
async function loadPiAi() {
|
|
20
|
-
try {
|
|
21
|
-
return await dynamicImport('@mariozechner/pi-ai');
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
throw createMissingPackageError('@mariozechner/pi-ai', error);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
async function loadPiCodingAgent() {
|
|
28
|
-
try {
|
|
29
|
-
return await dynamicImport('@mariozechner/pi-coding-agent');
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
throw createMissingPackageError('@mariozechner/pi-coding-agent', error);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=pi-optional.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pi-optional.js","sourceRoot":"","sources":["../../../src/cli/lib/pi-optional.ts"],"names":[],"mappings":";;AAqGA,gDAMC;AAED,4BAMC;AAED,8CAMC;AA3HD,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CACrC,CAAC;AAEtC,SAAS,yBAAyB,CAAC,WAAmB,EAAE,KAAc;IACpE,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtE,OAAO,IAAI,KAAK,CAAC,oBAAoB,WAAW,sCAAsC,MAAM,EAAE,CAAC,CAAC;AAClG,CAAC;AA+FM,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC;QACH,OAAO,MAAM,aAAa,CAAC,+CAA+C,CAAmB,CAAC;IAChG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,yBAAyB,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,QAAQ;IAC5B,IAAI,CAAC;QACH,OAAO,MAAM,aAAa,CAAC,qBAAqB,CAAe,CAAC;IAClE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,yBAAyB,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB;IACrC,IAAI,CAAC;QACH,OAAO,MAAM,aAAa,CAAC,+BAA+B,CAAwB,CAAC;IACrF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,yBAAyB,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC","sourcesContent":["const dynamicImport = new Function('specifier', 'return import(specifier)') as\n (specifier: string) => Promise<any>;\n\nfunction createMissingPackageError(packageName: string, error: unknown): Error {\n const reason = error instanceof Error ? error.message : String(error);\n return new Error(`Optional package ${packageName} is required for this CLI feature: ${reason}`);\n}\n\nexport interface PiModel {\n id: string;\n name?: string;\n api?: string;\n provider?: string;\n baseUrl?: string;\n reasoning?: boolean;\n input?: string[];\n cost?: {\n input: number;\n output: number;\n cacheRead: number;\n cacheWrite: number;\n };\n contextWindow?: number;\n maxTokens?: number;\n}\n\nexport interface OAuthCredentials {\n refresh: string;\n access: string;\n expires: number;\n userId?: string;\n userName?: string;\n}\n\nexport interface OAuthAuthInfo {\n url: string;\n instructions?: string;\n}\n\nexport interface OAuthPrompt {\n message: string;\n placeholder?: string;\n}\n\nexport interface OAuthLoginCallbacks {\n onAuth(info: OAuthAuthInfo): void;\n onPrompt(prompt: OAuthPrompt): Promise<string>;\n onProgress(message: string): void;\n}\n\nexport interface OAuthProviderInterface {\n id: string;\n name: string;\n login(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials>;\n refreshToken(credentials: OAuthCredentials): Promise<OAuthCredentials>;\n getApiKey?(credentials: OAuthCredentials): string;\n}\n\nexport interface PiAiOAuthUtils {\n getOAuthProvider(providerId: string): OAuthProviderInterface | undefined;\n registerOAuthProvider(provider: OAuthProviderInterface): void;\n}\n\nexport interface PiAiModule {\n getModels(providerId: string): PiModel[];\n}\n\nexport interface AgentSessionLike {\n subscribe(handler: (event: any) => void | Promise<void>): void;\n}\n\nexport interface CreateAgentSessionResultLike {\n session: AgentSessionLike;\n}\n\nexport interface SessionManagerLike {\n appendMessage(message: any): void;\n}\n\nexport interface PiCodingAgentModule {\n createAgentSession(options: any): Promise<CreateAgentSessionResultLike>;\n runPrintMode(agent: AgentSessionLike, options: any): Promise<void>;\n AuthStorage: {\n inMemory(): {\n setRuntimeApiKey(provider: string, apiKey: string): void;\n };\n };\n SessionManager: {\n create(workspace: string, sessionDir: string): SessionManagerLike;\n };\n SettingsManager: {\n inMemory(): unknown;\n };\n DefaultResourceLoader: new(options: any) => {\n reload(): Promise<void>;\n };\n InteractiveMode: new(agent: AgentSessionLike, options: any) => {\n run(): Promise<void>;\n };\n}\n\nexport async function loadPiAiOAuthUtils(): Promise<PiAiOAuthUtils> {\n try {\n return await dynamicImport('@mariozechner/pi-ai/dist/utils/oauth/index.js') as PiAiOAuthUtils;\n } catch (error) {\n throw createMissingPackageError('@mariozechner/pi-ai', error);\n }\n}\n\nexport async function loadPiAi(): Promise<PiAiModule> {\n try {\n return await dynamicImport('@mariozechner/pi-ai') as PiAiModule;\n } catch (error) {\n throw createMissingPackageError('@mariozechner/pi-ai', error);\n }\n}\n\nexport async function loadPiCodingAgent(): Promise<PiCodingAgentModule> {\n try {\n return await dynamicImport('@mariozechner/pi-coding-agent') as PiCodingAgentModule;\n } catch (error) {\n throw createMissingPackageError('@mariozechner/pi-coding-agent', error);\n }\n}\n"]}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Load AI provider configuration from the user's Solid Pod.
|
|
3
|
-
*
|
|
4
|
-
* Uses drizzle-solid to query Credential + Provider tables,
|
|
5
|
-
* following the same protocol as API/ChatKit.
|
|
6
|
-
*/
|
|
7
|
-
import type { Session } from '@inrupt/solid-client-authn-node';
|
|
8
|
-
export interface PodAiConfig {
|
|
9
|
-
provider: string;
|
|
10
|
-
modelId: string;
|
|
11
|
-
apiKey: string;
|
|
12
|
-
baseUrl?: string;
|
|
13
|
-
proxyUrl?: string;
|
|
14
|
-
credentialId?: string;
|
|
15
|
-
authType?: 'api-key' | 'oauth';
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Fetch AI configuration from the user's Pod.
|
|
19
|
-
*
|
|
20
|
-
* Queries ApiKeyCredential + OAuthCredential + Provider tables using drizzle-solid.
|
|
21
|
-
* Credential.provider (uri) references Provider's subject URI.
|
|
22
|
-
* Returns the first active AI credential with a matching provider.
|
|
23
|
-
*
|
|
24
|
-
* Priority: ApiKeyCredential > OAuthCredential (API Key 优先)
|
|
25
|
-
*/
|
|
26
|
-
export declare function loadPodAiConfig(session: Session): Promise<PodAiConfig | null>;
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Load AI provider configuration from the user's Solid Pod.
|
|
4
|
-
*
|
|
5
|
-
* Uses drizzle-solid to query Credential + Provider tables,
|
|
6
|
-
* following the same protocol as API/ChatKit.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.loadPodAiConfig = loadPodAiConfig;
|
|
10
|
-
const drizzle_solid_1 = require("@undefineds.co/drizzle-solid");
|
|
11
|
-
const tables_1 = require("../../credential/schema/tables");
|
|
12
|
-
const provider_1 = require("../../ai/schema/provider");
|
|
13
|
-
const model_1 = require("../../ai/schema/model");
|
|
14
|
-
const types_1 = require("../../credential/schema/types");
|
|
15
|
-
const oauth_credential_manager_1 = require("./oauth-credential-manager");
|
|
16
|
-
/**
|
|
17
|
-
* Fetch AI configuration from the user's Pod.
|
|
18
|
-
*
|
|
19
|
-
* Queries ApiKeyCredential + OAuthCredential + Provider tables using drizzle-solid.
|
|
20
|
-
* Credential.provider (uri) references Provider's subject URI.
|
|
21
|
-
* Returns the first active AI credential with a matching provider.
|
|
22
|
-
*
|
|
23
|
-
* Priority: ApiKeyCredential > OAuthCredential (API Key 优先)
|
|
24
|
-
*/
|
|
25
|
-
async function loadPodAiConfig(session) {
|
|
26
|
-
try {
|
|
27
|
-
const db = (0, drizzle_solid_1.drizzle)({
|
|
28
|
-
fetch: session.fetch,
|
|
29
|
-
info: session.info,
|
|
30
|
-
});
|
|
31
|
-
// Workaround: drizzle-solid places FILTER inside OPTIONAL blocks,
|
|
32
|
-
// causing eq() on string columns to return 0 results.
|
|
33
|
-
// Fetch all and filter in JS. See docs/cli-dev-testing.md#known-issues.
|
|
34
|
-
// 1. 尝试读取 API Key credentials
|
|
35
|
-
const allApiKeyCredentials = await db.select().from(tables_1.ApiKeyCredential);
|
|
36
|
-
const apiKeyCredentials = allApiKeyCredentials.filter((c) => c.service === types_1.ServiceType.AI && c.status === types_1.CredentialStatus.ACTIVE);
|
|
37
|
-
// 2. 尝试读取 OAuth credentials
|
|
38
|
-
const allOAuthCredentials = await db.select().from(tables_1.OAuthCredential);
|
|
39
|
-
const oauthCredentials = allOAuthCredentials.filter((c) => c.service === types_1.ServiceType.AI && c.status === types_1.CredentialStatus.ACTIVE);
|
|
40
|
-
// 3. 合并所有凭据,API Key 优先
|
|
41
|
-
const allCredentials = [...apiKeyCredentials, ...oauthCredentials];
|
|
42
|
-
if (allCredentials.length === 0) {
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
// Build provider lookup by subject URI (@id)
|
|
46
|
-
const allProviders = await db.select().from(provider_1.Provider);
|
|
47
|
-
const providerByUri = new Map(allProviders.map(p => [p['@id'], p]));
|
|
48
|
-
// Match: cred.provider (uri) === provider['@id'] (subject URI)
|
|
49
|
-
for (let cred of allCredentials) {
|
|
50
|
-
if (!cred.provider)
|
|
51
|
-
continue;
|
|
52
|
-
const provider = providerByUri.get(cred.provider);
|
|
53
|
-
if (!provider)
|
|
54
|
-
continue;
|
|
55
|
-
const baseUrl = provider.baseUrl;
|
|
56
|
-
if (!baseUrl)
|
|
57
|
-
continue;
|
|
58
|
-
// 判断凭据类型
|
|
59
|
-
const isApiKey = 'apiKey' in cred && cred.apiKey;
|
|
60
|
-
const isOAuth = 'oauthAccessToken' in cred && cred.oauthAccessToken;
|
|
61
|
-
if (!isApiKey && !isOAuth)
|
|
62
|
-
continue;
|
|
63
|
-
// OAuth token 需要检查过期并自动刷新
|
|
64
|
-
if (isOAuth) {
|
|
65
|
-
const providerId = provider.id;
|
|
66
|
-
const tokenValid = await (0, oauth_credential_manager_1.ensureOAuthTokenValid)(session, cred.id, providerId);
|
|
67
|
-
if (!tokenValid) {
|
|
68
|
-
console.warn(`OAuth token invalid for credential ${cred.id}, skipping`);
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
// 重新读取 credential(可能已刷新)
|
|
72
|
-
const refreshedCreds = await db.select().from(tables_1.OAuthCredential);
|
|
73
|
-
const refreshedCred = refreshedCreds.find((c) => c.id === cred.id);
|
|
74
|
-
if (refreshedCred) {
|
|
75
|
-
cred = refreshedCred;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
const defaultModelRef = provider.defaultModel ?? provider.hasModel;
|
|
79
|
-
const defaultModel = defaultModelRef
|
|
80
|
-
? (await db.findByIri(model_1.Model, defaultModelRef))?.id ?? ''
|
|
81
|
-
: '';
|
|
82
|
-
return {
|
|
83
|
-
provider: provider.id,
|
|
84
|
-
modelId: defaultModel,
|
|
85
|
-
apiKey: isApiKey ? cred.apiKey : cred.oauthAccessToken,
|
|
86
|
-
baseUrl,
|
|
87
|
-
proxyUrl: provider.proxyUrl || undefined,
|
|
88
|
-
credentialId: cred.id,
|
|
89
|
-
authType: isApiKey ? 'api-key' : 'oauth',
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
return null;
|
|
93
|
-
}
|
|
94
|
-
catch (error) {
|
|
95
|
-
console.error('Failed to load AI config from Pod:', error);
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
//# sourceMappingURL=pod-ai-config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pod-ai-config.js","sourceRoot":"","sources":["../../../src/cli/lib/pod-ai-config.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Load AI provider configuration from the user's Solid Pod.\n *\n * Uses drizzle-solid to query Credential + Provider tables,\n * following the same protocol as API/ChatKit.\n */\n\nimport { drizzle } from '@undefineds.co/drizzle-solid';\nimport { ApiKeyCredential, OAuthCredential } from '../../credential/schema/tables';\nimport { Provider } from '../../ai/schema/provider';\nimport { Model } from '../../ai/schema/model';\nimport { ServiceType, CredentialStatus } from '../../credential/schema/types';\nimport type { Session } from '@inrupt/solid-client-authn-node';\nimport { ensureOAuthTokenValid } from './oauth-credential-manager';\n\nexport interface PodAiConfig {\n provider: string; // provider id, e.g. 'openrouter'\n modelId: string; // e.g. 'claude-sonnet-4-20250514'\n apiKey: string;\n baseUrl?: string;\n proxyUrl?: string;\n credentialId?: string;\n authType?: 'api-key' | 'oauth'; // 认证类型\n}\n\n/**\n * Fetch AI configuration from the user's Pod.\n *\n * Queries ApiKeyCredential + OAuthCredential + Provider tables using drizzle-solid.\n * Credential.provider (uri) references Provider's subject URI.\n * Returns the first active AI credential with a matching provider.\n *\n * Priority: ApiKeyCredential > OAuthCredential (API Key 优先)\n */\nexport async function loadPodAiConfig(session: Session): Promise<PodAiConfig | null> {\n try {\n const db: any = drizzle({\n fetch: session.fetch,\n info: session.info,\n } as any);\n\n // Workaround: drizzle-solid places FILTER inside OPTIONAL blocks,\n // causing eq() on string columns to return 0 results.\n // Fetch all and filter in JS. See docs/cli-dev-testing.md#known-issues.\n\n // 1. 尝试读取 API Key credentials\n const allApiKeyCredentials = await db.select().from(ApiKeyCredential) as any[];\n const apiKeyCredentials = allApiKeyCredentials.filter((c: any) =>\n c.service === ServiceType.AI && c.status === CredentialStatus.ACTIVE,\n );\n\n // 2. 尝试读取 OAuth credentials\n const allOAuthCredentials = await db.select().from(OAuthCredential) as any[];\n const oauthCredentials = allOAuthCredentials.filter((c: any) =>\n c.service === ServiceType.AI && c.status === CredentialStatus.ACTIVE,\n );\n\n // 3. 合并所有凭据,API Key 优先\n const allCredentials = [...apiKeyCredentials, ...oauthCredentials];\n\n if (allCredentials.length === 0) {\n return null;\n }\n\n // Build provider lookup by subject URI (@id)\n const allProviders = await db.select().from(Provider) as any[];\n const providerByUri = new Map(allProviders.map(p => [p['@id'], p]));\n\n // Match: cred.provider (uri) === provider['@id'] (subject URI)\n for (let cred of allCredentials) {\n if (!cred.provider) continue;\n\n const provider = providerByUri.get(cred.provider);\n if (!provider) continue;\n\n const baseUrl = provider.baseUrl;\n if (!baseUrl) continue;\n\n // 判断凭据类型\n const isApiKey = 'apiKey' in cred && cred.apiKey;\n const isOAuth = 'oauthAccessToken' in cred && cred.oauthAccessToken;\n\n if (!isApiKey && !isOAuth) continue;\n\n // OAuth token 需要检查过期并自动刷新\n if (isOAuth) {\n const providerId = provider.id as string;\n const tokenValid = await ensureOAuthTokenValid(session, cred.id, providerId);\n if (!tokenValid) {\n console.warn(`OAuth token invalid for credential ${cred.id}, skipping`);\n continue;\n }\n\n // 重新读取 credential(可能已刷新)\n const refreshedCreds = await db.select().from(OAuthCredential) as any[];\n const refreshedCred = refreshedCreds.find((c: any) => c.id === cred.id);\n if (refreshedCred) {\n cred = refreshedCred as any;\n }\n }\n\n const defaultModelRef = provider.defaultModel ?? provider.hasModel;\n const defaultModel = defaultModelRef\n ? (await db.findByIri(Model, defaultModelRef))?.id ?? ''\n : '';\n\n return {\n provider: provider.id as string,\n modelId: defaultModel,\n apiKey: isApiKey ? (cred as any).apiKey : (cred as any).oauthAccessToken,\n baseUrl,\n proxyUrl: provider.proxyUrl || undefined,\n credentialId: cred.id,\n authType: isApiKey ? 'api-key' : 'oauth',\n };\n }\n\n return null;\n } catch (error) {\n console.error('Failed to load AI config from Pod:', error);\n return null;\n }\n}\n"]}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Conversation thread storage backed by the user's Solid Pod.
|
|
3
|
-
*
|
|
4
|
-
* Uses drizzle-solid to operate on Chat + Thread + Message tables,
|
|
5
|
-
* following the same protocol as API/ChatKit.
|
|
6
|
-
*
|
|
7
|
-
* Data model:
|
|
8
|
-
* - Chat = 通讯录(跟谁聊):由 participants 决定,不再由 cwd hash 生成
|
|
9
|
-
* - Thread = 对话实例(聊什么、在哪聊):workspace 是一级字段
|
|
10
|
-
*/
|
|
11
|
-
import type { Session } from '@inrupt/solid-client-authn-node';
|
|
12
|
-
export interface ThreadMessage {
|
|
13
|
-
role: 'user' | 'assistant' | 'system';
|
|
14
|
-
content: string;
|
|
15
|
-
timestamp: string;
|
|
16
|
-
}
|
|
17
|
-
export interface ThreadData {
|
|
18
|
-
id: string;
|
|
19
|
-
title?: string;
|
|
20
|
-
workspace?: string;
|
|
21
|
-
createdAt: string;
|
|
22
|
-
updatedAt: string;
|
|
23
|
-
messages: ThreadMessage[];
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Get or create the default 1v1 Chat for CLI (user ↔ SecretaryAI).
|
|
27
|
-
* Returns the chatId (bare ID, not URI).
|
|
28
|
-
*/
|
|
29
|
-
export declare function getOrCreateDefaultChat(session: Session): Promise<string>;
|
|
30
|
-
/**
|
|
31
|
-
* List thread IDs (most-recent first) for a given chatId.
|
|
32
|
-
* Uses direct SPARQL because eq() on optional uri() fields still has issues.
|
|
33
|
-
*/
|
|
34
|
-
export declare function listThreads(session: Session, chatId: string): Promise<string[]>;
|
|
35
|
-
/**
|
|
36
|
-
* Load a thread by ID with all its messages.
|
|
37
|
-
*/
|
|
38
|
-
export declare function loadThread(session: Session, chatId: string, threadId: string): Promise<ThreadData | null>;
|
|
39
|
-
/**
|
|
40
|
-
* Save a message to a thread.
|
|
41
|
-
*/
|
|
42
|
-
export declare function saveMessage(session: Session, chatId: string, threadId: string, message: ThreadMessage): Promise<boolean>;
|
|
43
|
-
/**
|
|
44
|
-
* Save a tool call as a message with metadata.
|
|
45
|
-
*/
|
|
46
|
-
export declare function saveToolCall(session: Session, chatId: string, threadId: string, toolCall: {
|
|
47
|
-
toolName: string;
|
|
48
|
-
toolCallId: string;
|
|
49
|
-
arguments: any;
|
|
50
|
-
output?: string;
|
|
51
|
-
status: 'pending' | 'completed' | 'failed';
|
|
52
|
-
}): Promise<boolean>;
|
|
53
|
-
/**
|
|
54
|
-
* Create a fresh thread.
|
|
55
|
-
* workspace is stored as a first-class field on Thread.
|
|
56
|
-
*/
|
|
57
|
-
export declare function createThread(session: Session, chatId: string, workspace?: string, title?: string): Promise<string>;
|
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Conversation thread storage backed by the user's Solid Pod.
|
|
4
|
-
*
|
|
5
|
-
* Uses drizzle-solid to operate on Chat + Thread + Message tables,
|
|
6
|
-
* following the same protocol as API/ChatKit.
|
|
7
|
-
*
|
|
8
|
-
* Data model:
|
|
9
|
-
* - Chat = 通讯录(跟谁聊):由 participants 决定,不再由 cwd hash 生成
|
|
10
|
-
* - Thread = 对话实例(聊什么、在哪聊):workspace 是一级字段
|
|
11
|
-
*/
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.getOrCreateDefaultChat = getOrCreateDefaultChat;
|
|
14
|
-
exports.listThreads = listThreads;
|
|
15
|
-
exports.loadThread = loadThread;
|
|
16
|
-
exports.saveMessage = saveMessage;
|
|
17
|
-
exports.saveToolCall = saveToolCall;
|
|
18
|
-
exports.createThread = createThread;
|
|
19
|
-
const drizzle_solid_1 = require("@undefineds.co/drizzle-solid");
|
|
20
|
-
const schema_1 = require("../../api/chatkit/schema");
|
|
21
|
-
/** Default Chat ID for CLI 1v1 conversations with SecretaryAI */
|
|
22
|
-
const DEFAULT_CLI_CHAT_ID = 'cli-default';
|
|
23
|
-
/**
|
|
24
|
-
* Create a drizzle-solid database instance from an authenticated Session.
|
|
25
|
-
*/
|
|
26
|
-
function createDb(session) {
|
|
27
|
-
return (0, drizzle_solid_1.drizzle)({
|
|
28
|
-
fetch: session.fetch,
|
|
29
|
-
info: session.info,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
function buildThreadUri(session, chatId, threadId) {
|
|
33
|
-
const podBaseUrl = session.info.webId.replace('/profile/card#me', '');
|
|
34
|
-
return `${podBaseUrl}/.data/chat/${chatId}/index.ttl#${threadId}`;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Get or create the default 1v1 Chat for CLI (user ↔ SecretaryAI).
|
|
38
|
-
* Returns the chatId (bare ID, not URI).
|
|
39
|
-
*/
|
|
40
|
-
async function getOrCreateDefaultChat(session) {
|
|
41
|
-
const chatId = DEFAULT_CLI_CHAT_ID;
|
|
42
|
-
try {
|
|
43
|
-
const db = createDb(session);
|
|
44
|
-
await ensureChat(db, chatId, session.info.webId);
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
console.error('Failed to ensure default chat:', error);
|
|
48
|
-
}
|
|
49
|
-
return chatId;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* List thread IDs (most-recent first) for a given chatId.
|
|
53
|
-
* Uses direct SPARQL because eq() on optional uri() fields still has issues.
|
|
54
|
-
*/
|
|
55
|
-
async function listThreads(session, chatId) {
|
|
56
|
-
try {
|
|
57
|
-
const podBaseUrl = session.info.webId.replace('/profile/card#me', '');
|
|
58
|
-
const endpoint = `${podBaseUrl}/.data/chat/-/sparql`;
|
|
59
|
-
const chatSubject = `<${podBaseUrl}/.data/chat/${chatId}/index.ttl#this>`;
|
|
60
|
-
// Note: Removed OPTIONAL to avoid filtering out threads without createdAt
|
|
61
|
-
// OPTIONAL in GRAPH ?g context can cause incomplete results (40 vs 57 threads)
|
|
62
|
-
const query = `
|
|
63
|
-
PREFIX sioc: <http://rdfs.org/sioc/ns#>
|
|
64
|
-
PREFIX udfs: <https://undefineds.co/ns#>
|
|
65
|
-
SELECT ?thread ?createdAt
|
|
66
|
-
WHERE {
|
|
67
|
-
?thread a sioc:Thread ;
|
|
68
|
-
sioc:has_parent ${chatSubject} ;
|
|
69
|
-
udfs:createdAt ?createdAt .
|
|
70
|
-
}
|
|
71
|
-
ORDER BY DESC(?createdAt)
|
|
72
|
-
`;
|
|
73
|
-
const res = await session.fetch(endpoint, {
|
|
74
|
-
method: 'POST',
|
|
75
|
-
headers: {
|
|
76
|
-
'Content-Type': 'application/sparql-query',
|
|
77
|
-
'Accept': 'application/sparql-results+json',
|
|
78
|
-
},
|
|
79
|
-
body: query,
|
|
80
|
-
});
|
|
81
|
-
if (!res.ok)
|
|
82
|
-
return [];
|
|
83
|
-
const json = await res.json();
|
|
84
|
-
const bindings = json.results?.bindings || [];
|
|
85
|
-
// Extract thread ID from URI fragment: ...index.ttl#thread-xxx → thread-xxx
|
|
86
|
-
return bindings
|
|
87
|
-
.map((b) => {
|
|
88
|
-
const uri = b.thread?.value || '';
|
|
89
|
-
const hash = uri.lastIndexOf('#');
|
|
90
|
-
return hash >= 0 ? uri.slice(hash + 1) : '';
|
|
91
|
-
})
|
|
92
|
-
.filter((id) => id.length > 0);
|
|
93
|
-
}
|
|
94
|
-
catch (error) {
|
|
95
|
-
console.error('Failed to list threads:', error);
|
|
96
|
-
return [];
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Load a thread by ID with all its messages.
|
|
101
|
-
*/
|
|
102
|
-
async function loadThread(session, chatId, threadId) {
|
|
103
|
-
try {
|
|
104
|
-
const db = createDb(session);
|
|
105
|
-
const podBaseUrl = session.info.webId.replace('/profile/card#me', '');
|
|
106
|
-
const threadUri = buildThreadUri(session, chatId, threadId);
|
|
107
|
-
// Query thread by full URI
|
|
108
|
-
const thread = await db.findByIri(schema_1.Thread, threadUri);
|
|
109
|
-
if (!thread)
|
|
110
|
-
return null;
|
|
111
|
-
// Query messages using direct SPARQL
|
|
112
|
-
// Note: OPTIONAL works correctly with date-grouped files (messages.ttl)
|
|
113
|
-
const endpoint = `${podBaseUrl}/.data/chat/-/sparql`;
|
|
114
|
-
const threadSubject = `<${threadUri}>`;
|
|
115
|
-
const messagesQuery = `
|
|
116
|
-
PREFIX meeting: <http://www.w3.org/ns/pim/meeting#>
|
|
117
|
-
PREFIX sioc: <http://rdfs.org/sioc/ns#>
|
|
118
|
-
PREFIX udfs: <https://undefineds.co/ns#>
|
|
119
|
-
SELECT ?role ?content ?createdAt
|
|
120
|
-
WHERE {
|
|
121
|
-
?msg a meeting:Message ;
|
|
122
|
-
sioc:has_container ${threadSubject} .
|
|
123
|
-
OPTIONAL { ?msg udfs:role ?role . }
|
|
124
|
-
OPTIONAL { ?msg sioc:content ?content . }
|
|
125
|
-
OPTIONAL { ?msg udfs:createdAt ?createdAt . }
|
|
126
|
-
}
|
|
127
|
-
ORDER BY ?createdAt
|
|
128
|
-
`;
|
|
129
|
-
const messagesRes = await session.fetch(endpoint, {
|
|
130
|
-
method: 'POST',
|
|
131
|
-
headers: {
|
|
132
|
-
'Content-Type': 'application/sparql-query',
|
|
133
|
-
'Accept': 'application/sparql-results+json',
|
|
134
|
-
},
|
|
135
|
-
body: messagesQuery,
|
|
136
|
-
});
|
|
137
|
-
const messagesJson = messagesRes.ok ? await messagesRes.json() : { results: { bindings: [] } };
|
|
138
|
-
const messageBindings = messagesJson.results?.bindings || [];
|
|
139
|
-
// Extract bare ID from thread.id
|
|
140
|
-
const bareId = typeof thread.id === 'string' && thread.id.includes('#')
|
|
141
|
-
? thread.id.split('#').pop() || threadId
|
|
142
|
-
: thread.id;
|
|
143
|
-
return {
|
|
144
|
-
id: bareId,
|
|
145
|
-
title: thread.title || undefined,
|
|
146
|
-
workspace: thread.workspace || undefined,
|
|
147
|
-
createdAt: thread.createdAt?.toISOString() || new Date().toISOString(),
|
|
148
|
-
updatedAt: thread.updatedAt?.toISOString() || new Date().toISOString(),
|
|
149
|
-
messages: messageBindings.map((m) => ({
|
|
150
|
-
role: m.role?.value || 'user',
|
|
151
|
-
content: m.content?.value || '',
|
|
152
|
-
timestamp: m.createdAt?.value || new Date().toISOString(),
|
|
153
|
-
})),
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
catch (error) {
|
|
157
|
-
console.error('Failed to load thread:', error);
|
|
158
|
-
return null;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Save a message to a thread.
|
|
163
|
-
*/
|
|
164
|
-
async function saveMessage(session, chatId, threadId, message) {
|
|
165
|
-
try {
|
|
166
|
-
const db = createDb(session);
|
|
167
|
-
// Ensure chat exists
|
|
168
|
-
await ensureChat(db, chatId, session.info.webId);
|
|
169
|
-
// Ensure thread exists
|
|
170
|
-
await ensureThread(db, chatId, threadId, session.info.webId);
|
|
171
|
-
// 构建完整的 Thread URI(用于 RDF 引用)
|
|
172
|
-
const threadUri = buildThreadUri(session, chatId, threadId);
|
|
173
|
-
// Insert message
|
|
174
|
-
// Note: yyyy/MM/dd are automatically extracted from createdAt by drizzle-solid
|
|
175
|
-
const messageId = `msg-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
176
|
-
await db.insert(schema_1.Message).values({
|
|
177
|
-
id: messageId,
|
|
178
|
-
chat: chatId,
|
|
179
|
-
thread: threadUri, // 传入完整 URI
|
|
180
|
-
maker: session.info.webId,
|
|
181
|
-
role: message.role,
|
|
182
|
-
content: message.content,
|
|
183
|
-
status: 'completed',
|
|
184
|
-
createdAt: new Date(message.timestamp),
|
|
185
|
-
});
|
|
186
|
-
return true;
|
|
187
|
-
}
|
|
188
|
-
catch (error) {
|
|
189
|
-
console.error('Failed to save message:', error);
|
|
190
|
-
return false;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Save a tool call as a message with metadata.
|
|
195
|
-
*/
|
|
196
|
-
async function saveToolCall(session, chatId, threadId, toolCall) {
|
|
197
|
-
try {
|
|
198
|
-
const db = createDb(session);
|
|
199
|
-
// Ensure chat and thread exist
|
|
200
|
-
await ensureChat(db, chatId, session.info.webId);
|
|
201
|
-
await ensureThread(db, chatId, threadId, session.info.webId);
|
|
202
|
-
// 构建完整的 Thread URI(用于 RDF 引用)
|
|
203
|
-
const threadUri = buildThreadUri(session, chatId, threadId);
|
|
204
|
-
// Insert tool call message
|
|
205
|
-
// Note: yyyy/MM/dd are automatically extracted from createdAt by drizzle-solid
|
|
206
|
-
const messageId = `tool-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
207
|
-
await db.insert(schema_1.Message).values({
|
|
208
|
-
id: messageId,
|
|
209
|
-
chat: chatId,
|
|
210
|
-
thread: threadUri, // 传入完整 URI
|
|
211
|
-
maker: session.info.webId,
|
|
212
|
-
role: 'tool_call',
|
|
213
|
-
content: `Executed ${toolCall.toolName}`,
|
|
214
|
-
status: toolCall.status,
|
|
215
|
-
toolName: toolCall.toolName,
|
|
216
|
-
toolCallId: toolCall.toolCallId,
|
|
217
|
-
metadata: JSON.stringify({
|
|
218
|
-
type: 'tool_call',
|
|
219
|
-
toolName: toolCall.toolName,
|
|
220
|
-
toolCallId: toolCall.toolCallId,
|
|
221
|
-
arguments: toolCall.arguments,
|
|
222
|
-
output: toolCall.output,
|
|
223
|
-
status: toolCall.status,
|
|
224
|
-
}),
|
|
225
|
-
createdAt: new Date(),
|
|
226
|
-
});
|
|
227
|
-
return true;
|
|
228
|
-
}
|
|
229
|
-
catch (error) {
|
|
230
|
-
console.error('Failed to save tool call:', error);
|
|
231
|
-
return false;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Create a fresh thread.
|
|
236
|
-
* workspace is stored as a first-class field on Thread.
|
|
237
|
-
*/
|
|
238
|
-
async function createThread(session, chatId, workspace, title) {
|
|
239
|
-
const threadId = `thread-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
240
|
-
try {
|
|
241
|
-
const db = createDb(session);
|
|
242
|
-
// Ensure chat exists
|
|
243
|
-
await ensureChat(db, chatId, session.info.webId);
|
|
244
|
-
// Create thread with workspace as first-class field
|
|
245
|
-
const now = new Date();
|
|
246
|
-
await db.insert(schema_1.Thread).values({
|
|
247
|
-
id: threadId,
|
|
248
|
-
chatId,
|
|
249
|
-
title: title || 'CLI Conversation',
|
|
250
|
-
workspace: workspace || null,
|
|
251
|
-
status: 'active',
|
|
252
|
-
metadata: JSON.stringify({ source: 'cli' }),
|
|
253
|
-
createdAt: now,
|
|
254
|
-
updatedAt: now,
|
|
255
|
-
});
|
|
256
|
-
return threadId;
|
|
257
|
-
}
|
|
258
|
-
catch (error) {
|
|
259
|
-
console.error('Failed to create thread:', error);
|
|
260
|
-
return threadId; // Return ID anyway, will be created on first message
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
// ============================================================================
|
|
264
|
-
// Internal Helpers
|
|
265
|
-
// ============================================================================
|
|
266
|
-
async function ensureChat(db, chatId, webId) {
|
|
267
|
-
try {
|
|
268
|
-
// Use findByIri to avoid OPTIONAL bug in SPARQL queries
|
|
269
|
-
const podBaseUrl = webId.replace('/profile/card#me', '');
|
|
270
|
-
const chatUri = `${podBaseUrl}/.data/chat/${chatId}/index.ttl#this`;
|
|
271
|
-
const chat = await db.findByIri(schema_1.Chat, chatUri);
|
|
272
|
-
if (!chat) {
|
|
273
|
-
const now = new Date();
|
|
274
|
-
await db.insert(schema_1.Chat).values({
|
|
275
|
-
id: chatId,
|
|
276
|
-
title: 'CLI Chat',
|
|
277
|
-
author: webId,
|
|
278
|
-
participants: [],
|
|
279
|
-
status: 'active',
|
|
280
|
-
createdAt: now,
|
|
281
|
-
updatedAt: now,
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
catch (error) {
|
|
286
|
-
// Ignore if already exists
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
async function ensureThread(db, chatId, threadId, webId) {
|
|
290
|
-
try {
|
|
291
|
-
// Use findByIri to avoid OPTIONAL bug in SPARQL queries
|
|
292
|
-
const podBaseUrl = webId.replace('/profile/card#me', '');
|
|
293
|
-
const threadUri = `${podBaseUrl}/.data/chat/${chatId}/index.ttl#${threadId}`;
|
|
294
|
-
const thread = await db.findByIri(schema_1.Thread, threadUri);
|
|
295
|
-
if (!thread) {
|
|
296
|
-
const now = new Date();
|
|
297
|
-
await db.insert(schema_1.Thread).values({
|
|
298
|
-
id: threadId,
|
|
299
|
-
chatId,
|
|
300
|
-
title: 'CLI Conversation',
|
|
301
|
-
status: 'active',
|
|
302
|
-
metadata: JSON.stringify({ source: 'cli' }),
|
|
303
|
-
createdAt: now,
|
|
304
|
-
updatedAt: now,
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
catch (error) {
|
|
309
|
-
// Ignore if already exists
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
//# sourceMappingURL=pod-thread-store.js.map
|