@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.
Files changed (431) hide show
  1. package/dist/agents/AgentExecutorFactory.js +12 -13
  2. package/dist/agents/AgentExecutorFactory.js.map +1 -1
  3. package/dist/agents/config/agent-meta-schema.d.ts +31 -3
  4. package/dist/agents/config/agent-meta-schema.js +37 -3
  5. package/dist/agents/config/agent-meta-schema.js.map +1 -1
  6. package/dist/agents/config/index.d.ts +5 -5
  7. package/dist/agents/config/index.js +7 -6
  8. package/dist/agents/config/index.js.map +1 -1
  9. package/dist/agents/config/parse-agent-instructions.d.ts +12 -0
  10. package/dist/agents/config/parse-agent-instructions.js +23 -0
  11. package/dist/agents/config/parse-agent-instructions.js.map +1 -0
  12. package/dist/agents/config/resolve.d.ts +7 -12
  13. package/dist/agents/config/resolve.js +272 -156
  14. package/dist/agents/config/resolve.js.map +1 -1
  15. package/dist/agents/config/types.d.ts +33 -36
  16. package/dist/agents/config/types.js +4 -4
  17. package/dist/agents/config/types.js.map +1 -1
  18. package/dist/agents/index.d.ts +2 -7
  19. package/dist/agents/index.js +4 -14
  20. package/dist/agents/index.js.map +1 -1
  21. package/dist/agents/types.d.ts +2 -2
  22. package/dist/agents/types.js.map +1 -1
  23. package/dist/ai/service/CredentialReaderImpl.js +9 -14
  24. package/dist/ai/service/CredentialReaderImpl.js.map +1 -1
  25. package/dist/api/ApiServer.d.ts +7 -0
  26. package/dist/api/ApiServer.js +5 -1
  27. package/dist/api/ApiServer.js.map +1 -1
  28. package/dist/api/chatkit/default-agent.js +1 -1
  29. package/dist/api/chatkit/default-agent.js.map +1 -1
  30. package/dist/api/chatkit/index.d.ts +8 -0
  31. package/dist/api/chatkit/index.js +15 -1
  32. package/dist/api/chatkit/index.js.map +1 -1
  33. package/dist/api/chatkit/pod-store.d.ts +80 -17
  34. package/dist/api/chatkit/pod-store.js +816 -162
  35. package/dist/api/chatkit/pod-store.js.map +1 -1
  36. package/dist/api/chatkit/runtime/AcpAgentRuntime.d.ts +41 -0
  37. package/dist/api/chatkit/runtime/AcpAgentRuntime.js +573 -0
  38. package/dist/api/chatkit/runtime/AcpAgentRuntime.js.map +1 -0
  39. package/dist/api/chatkit/runtime/CodexRuntimeProjector.d.ts +27 -0
  40. package/dist/api/chatkit/runtime/CodexRuntimeProjector.js +157 -0
  41. package/dist/api/chatkit/runtime/CodexRuntimeProjector.js.map +1 -0
  42. package/dist/api/chatkit/schema.d.ts +53 -133
  43. package/dist/api/chatkit/schema.js +11 -175
  44. package/dist/api/chatkit/schema.js.map +1 -1
  45. package/dist/api/chatkit/service.d.ts +15 -9
  46. package/dist/api/chatkit/service.js +82 -234
  47. package/dist/api/chatkit/service.js.map +1 -1
  48. package/dist/api/chatkit/store.d.ts +35 -3
  49. package/dist/api/chatkit/store.js +157 -3
  50. package/dist/api/chatkit/store.js.map +1 -1
  51. package/dist/api/chatkit/types.d.ts +16 -2
  52. package/dist/api/chatkit/types.js +24 -5
  53. package/dist/api/chatkit/types.js.map +1 -1
  54. package/dist/api/container/common.js +59 -2
  55. package/dist/api/container/common.js.map +1 -1
  56. package/dist/api/container/index.js +15 -0
  57. package/dist/api/container/index.js.map +1 -1
  58. package/dist/api/container/routes.js +11 -0
  59. package/dist/api/container/routes.js.map +1 -1
  60. package/dist/api/container/types.d.ts +26 -0
  61. package/dist/api/container/types.js.map +1 -1
  62. package/dist/api/handlers/InngestHandler.d.ts +11 -0
  63. package/dist/api/handlers/InngestHandler.js +19 -0
  64. package/dist/api/handlers/InngestHandler.js.map +1 -0
  65. package/dist/api/handlers/RunHandler.d.ts +7 -0
  66. package/dist/api/handlers/RunHandler.js +169 -0
  67. package/dist/api/handlers/RunHandler.js.map +1 -0
  68. package/dist/api/handlers/index.d.ts +1 -0
  69. package/dist/api/handlers/index.js +1 -0
  70. package/dist/api/handlers/index.js.map +1 -1
  71. package/dist/api/models/namespaces.d.ts +2 -2
  72. package/dist/api/models/namespaces.js +1 -4
  73. package/dist/api/models/namespaces.js.map +1 -1
  74. package/dist/api/runs/AgentRuntimeTypes.d.ts +83 -0
  75. package/dist/api/runs/AgentRuntimeTypes.js +3 -0
  76. package/dist/api/runs/AgentRuntimeTypes.js.map +1 -0
  77. package/dist/api/runs/EmbeddedInngestService.d.ts +47 -0
  78. package/dist/api/runs/EmbeddedInngestService.js +203 -0
  79. package/dist/api/runs/EmbeddedInngestService.js.map +1 -0
  80. package/dist/api/runs/InngestRunExecutionBackend.d.ts +416 -0
  81. package/dist/api/runs/InngestRunExecutionBackend.js +225 -0
  82. package/dist/api/runs/InngestRunExecutionBackend.js.map +1 -0
  83. package/dist/api/runs/ManagedRunWorker.d.ts +52 -0
  84. package/dist/api/runs/ManagedRunWorker.js +452 -0
  85. package/dist/api/runs/ManagedRunWorker.js.map +1 -0
  86. package/dist/api/runs/PiAgentRuntimeDriver.d.ts +66 -0
  87. package/dist/api/runs/PiAgentRuntimeDriver.js +614 -0
  88. package/dist/api/runs/PiAgentRuntimeDriver.js.map +1 -0
  89. package/dist/api/runs/PiAgentRuntimeWorker.d.ts +1 -0
  90. package/dist/api/runs/PiAgentRuntimeWorker.js +33 -0
  91. package/dist/api/runs/PiAgentRuntimeWorker.js.map +1 -0
  92. package/dist/api/runs/RunAuthContextRegistry.d.ts +19 -0
  93. package/dist/api/runs/RunAuthContextRegistry.js +59 -0
  94. package/dist/api/runs/RunAuthContextRegistry.js.map +1 -0
  95. package/dist/api/runs/RunExecutionBackend.d.ts +57 -0
  96. package/dist/api/runs/RunExecutionBackend.js +3 -0
  97. package/dist/api/runs/RunExecutionBackend.js.map +1 -0
  98. package/dist/api/runs/RunStateCenter.d.ts +82 -0
  99. package/dist/api/runs/RunStateCenter.js +665 -0
  100. package/dist/api/runs/RunStateCenter.js.map +1 -0
  101. package/dist/api/runs/schema.d.ts +55 -0
  102. package/dist/api/runs/schema.js +14 -0
  103. package/dist/api/runs/schema.js.map +1 -0
  104. package/dist/api/runs/store.d.ts +105 -0
  105. package/dist/api/runs/store.js +116 -0
  106. package/dist/api/runs/store.js.map +1 -0
  107. package/dist/api/runtime.d.ts +2 -0
  108. package/dist/api/runtime.js +40 -1
  109. package/dist/api/runtime.js.map +1 -1
  110. package/dist/api/service/VectorStoreService.d.ts +1 -0
  111. package/dist/api/service/VectorStoreService.js +27 -34
  112. package/dist/api/service/VectorStoreService.js.map +1 -1
  113. package/dist/api/service/provider-registry.d.ts +1 -1
  114. package/dist/api/service/provider-registry.js +1 -1
  115. package/dist/api/service/provider-registry.js.map +1 -1
  116. package/dist/api/tasks/InngestTaskScheduler.d.ts +751 -0
  117. package/dist/api/tasks/InngestTaskScheduler.js +209 -0
  118. package/dist/api/tasks/InngestTaskScheduler.js.map +1 -0
  119. package/dist/api/tasks/TaskAuthBinding.d.ts +68 -0
  120. package/dist/api/tasks/TaskAuthBinding.js +162 -0
  121. package/dist/api/tasks/TaskAuthBinding.js.map +1 -0
  122. package/dist/api/tasks/TaskMaterializer.d.ts +55 -0
  123. package/dist/api/tasks/TaskMaterializer.js +452 -0
  124. package/dist/api/tasks/TaskMaterializer.js.map +1 -0
  125. package/dist/api/tasks/TaskService.d.ts +57 -0
  126. package/dist/api/tasks/TaskService.js +235 -0
  127. package/dist/api/tasks/TaskService.js.map +1 -0
  128. package/dist/api/tasks/index.d.ts +6 -0
  129. package/dist/api/tasks/index.js +25 -0
  130. package/dist/api/tasks/index.js.map +1 -0
  131. package/dist/api/tasks/schema.d.ts +23 -0
  132. package/dist/api/tasks/schema.js +8 -0
  133. package/dist/api/tasks/schema.js.map +1 -0
  134. package/dist/api/tasks/store.d.ts +40 -0
  135. package/dist/api/tasks/store.js +34 -0
  136. package/dist/api/tasks/store.js.map +1 -0
  137. package/dist/api/workspace/types.d.ts +3 -0
  138. package/dist/api/workspace/types.js +23 -0
  139. package/dist/api/workspace/types.js.map +1 -0
  140. package/dist/cli/commands/config.d.ts +8 -7
  141. package/dist/cli/commands/config.js +72 -48
  142. package/dist/cli/commands/config.js.map +1 -1
  143. package/dist/cli/commands/login.d.ts +10 -8
  144. package/dist/cli/commands/login.js +84 -84
  145. package/dist/cli/commands/login.js.map +1 -1
  146. package/dist/cli/index.js +3 -124
  147. package/dist/cli/index.js.map +1 -1
  148. package/dist/http/search/SearchHttpHandler.js +13 -18
  149. package/dist/http/search/SearchHttpHandler.js.map +1 -1
  150. package/dist/runtime/configure-drizzle-solid.js +52 -0
  151. package/dist/runtime/configure-drizzle-solid.js.map +1 -1
  152. package/dist/storage/quint/PgQuintStore.d.ts +6 -0
  153. package/dist/storage/quint/PgQuintStore.js +83 -5
  154. package/dist/storage/quint/PgQuintStore.js.map +1 -1
  155. package/dist/storage/quint/PgQuintStore.jsonld +24 -0
  156. package/dist/storage/quint/SqliteQuintStore.d.ts +1 -0
  157. package/dist/storage/quint/SqliteQuintStore.js +52 -0
  158. package/dist/storage/quint/SqliteQuintStore.js.map +1 -1
  159. package/dist/storage/quint/SqliteQuintStore.jsonld +4 -0
  160. package/dist/storage/quint/types.d.ts +6 -0
  161. package/dist/storage/quint/types.js.map +1 -1
  162. package/dist/storage/sparql/FilterPushdownExtractor.js +23 -11
  163. package/dist/storage/sparql/FilterPushdownExtractor.js.map +1 -1
  164. package/dist/storage/vector/VectorIndexingListener.js +13 -18
  165. package/dist/storage/vector/VectorIndexingListener.js.map +1 -1
  166. package/dist/util/identifiers/ClusterIdentifierStrategy.js +29 -1
  167. package/dist/util/identifiers/ClusterIdentifierStrategy.js.map +1 -1
  168. package/dist/vocab/index.d.ts +2 -6
  169. package/dist/vocab/index.js +2 -6
  170. package/dist/vocab/index.js.map +1 -1
  171. package/dist/vocab/udfs.d.ts +12 -0
  172. package/dist/vocab/udfs.js +12 -0
  173. package/dist/vocab/udfs.js.map +1 -1
  174. package/node_modules/@undefineds.co/drizzle-solid/README.md +52 -24
  175. package/node_modules/@undefineds.co/drizzle-solid/README.zh-CN.md +30 -24
  176. package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/types.d.ts +6 -2
  177. package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/types.d.ts.map +1 -1
  178. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts +1 -0
  179. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts.map +1 -1
  180. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js +43 -10
  181. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js.map +1 -1
  182. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-strategy.d.ts.map +1 -1
  183. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-strategy.js +1 -0
  184. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-strategy.js.map +1 -1
  185. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor.d.ts +5 -0
  186. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor.d.ts.map +1 -1
  187. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor.js +44 -13
  188. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor.js.map +1 -1
  189. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.d.ts +1 -0
  190. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.d.ts.map +1 -1
  191. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js +21 -2
  192. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js.map +1 -1
  193. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/types.d.ts +1 -0
  194. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/types.d.ts.map +1 -1
  195. package/node_modules/@undefineds.co/drizzle-solid/dist/core/expressions.d.ts +1 -1
  196. package/node_modules/@undefineds.co/drizzle-solid/dist/core/expressions.d.ts.map +1 -1
  197. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.d.ts +76 -41
  198. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.d.ts.map +1 -1
  199. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js +443 -114
  200. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js.map +1 -1
  201. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-dialect.d.ts +28 -1
  202. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-dialect.d.ts.map +1 -1
  203. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-dialect.js +142 -31
  204. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-dialect.js.map +1 -1
  205. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-session.d.ts +3 -0
  206. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-session.d.ts.map +1 -1
  207. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-session.js +84 -6
  208. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-session.js.map +1 -1
  209. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/insert-query-builder.d.ts +3 -0
  210. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/insert-query-builder.d.ts.map +1 -1
  211. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/insert-query-builder.js +29 -9
  212. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/insert-query-builder.js.map +1 -1
  213. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts +2 -8
  214. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts.map +1 -1
  215. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js +19 -51
  216. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js.map +1 -1
  217. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/types.d.ts +1 -0
  218. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/types.d.ts.map +1 -1
  219. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-conditions.d.ts +2 -2
  220. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-conditions.d.ts.map +1 -1
  221. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js +6 -6
  222. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js.map +1 -1
  223. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-reference.d.ts +4 -4
  224. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-reference.d.ts.map +1 -1
  225. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-reference.js +56 -23
  226. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-reference.js.map +1 -1
  227. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/base-resolver.d.ts +14 -10
  228. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/base-resolver.d.ts.map +1 -1
  229. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/base-resolver.js +55 -23
  230. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/base-resolver.js.map +1 -1
  231. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/document-resolver.d.ts +3 -3
  232. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/document-resolver.js +6 -6
  233. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/document-resolver.js.map +1 -1
  234. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/fragment-resolver.d.ts +3 -3
  235. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/fragment-resolver.js +4 -4
  236. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/fragment-resolver.js.map +1 -1
  237. package/node_modules/@undefineds.co/drizzle-solid/dist/core/runtime/pod-runtime.d.ts.map +1 -1
  238. package/node_modules/@undefineds.co/drizzle-solid/dist/core/runtime/pod-runtime.js +33 -8
  239. package/node_modules/@undefineds.co/drizzle-solid/dist/core/runtime/pod-runtime.js.map +1 -1
  240. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/defs.d.ts +11 -2
  241. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/defs.d.ts.map +1 -1
  242. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/factories.d.ts.map +1 -1
  243. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/factories.js +3 -2
  244. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/factories.js.map +1 -1
  245. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/pod-table.d.ts +13 -8
  246. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/pod-table.d.ts.map +1 -1
  247. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/pod-table.js +24 -22
  248. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/pod-table.js.map +1 -1
  249. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/solid-schema.d.ts +3 -0
  250. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/solid-schema.d.ts.map +1 -1
  251. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/solid-schema.js.map +1 -1
  252. package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.d.ts +3 -2
  253. package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.d.ts.map +1 -1
  254. package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.js +28 -14
  255. package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.js.map +1 -1
  256. package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inline.d.ts.map +1 -1
  257. package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inline.js +3 -2
  258. package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inline.js.map +1 -1
  259. package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.d.ts +9 -9
  260. package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.d.ts.map +1 -1
  261. package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.js +56 -22
  262. package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.js.map +1 -1
  263. package/node_modules/@undefineds.co/drizzle-solid/dist/driver.d.ts +9 -1
  264. package/node_modules/@undefineds.co/drizzle-solid/dist/driver.d.ts.map +1 -1
  265. package/node_modules/@undefineds.co/drizzle-solid/dist/driver.js +2 -0
  266. package/node_modules/@undefineds.co/drizzle-solid/dist/driver.js.map +1 -1
  267. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/types.d.ts +6 -2
  268. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/types.d.ts.map +1 -1
  269. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts +1 -0
  270. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts.map +1 -1
  271. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js +43 -10
  272. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js.map +1 -1
  273. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-strategy.d.ts.map +1 -1
  274. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-strategy.js +1 -0
  275. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-strategy.js.map +1 -1
  276. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.d.ts +5 -0
  277. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.d.ts.map +1 -1
  278. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.js +44 -13
  279. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.js.map +1 -1
  280. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.d.ts +1 -0
  281. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.d.ts.map +1 -1
  282. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js +21 -2
  283. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js.map +1 -1
  284. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/types.d.ts +1 -0
  285. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/types.d.ts.map +1 -1
  286. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/expressions.d.ts +1 -1
  287. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/expressions.d.ts.map +1 -1
  288. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.d.ts +76 -41
  289. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.d.ts.map +1 -1
  290. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js +443 -114
  291. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js.map +1 -1
  292. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.d.ts +28 -1
  293. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.d.ts.map +1 -1
  294. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.js +142 -31
  295. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.js.map +1 -1
  296. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.d.ts +3 -0
  297. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.d.ts.map +1 -1
  298. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.js +84 -6
  299. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.js.map +1 -1
  300. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.d.ts +3 -0
  301. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.d.ts.map +1 -1
  302. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.js +29 -9
  303. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.js.map +1 -1
  304. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts +2 -8
  305. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts.map +1 -1
  306. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js +19 -51
  307. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js.map +1 -1
  308. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/types.d.ts +1 -0
  309. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/types.d.ts.map +1 -1
  310. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-conditions.d.ts +2 -2
  311. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-conditions.d.ts.map +1 -1
  312. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js +6 -6
  313. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js.map +1 -1
  314. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-reference.d.ts +4 -4
  315. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-reference.d.ts.map +1 -1
  316. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-reference.js +56 -23
  317. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-reference.js.map +1 -1
  318. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.d.ts +14 -10
  319. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.d.ts.map +1 -1
  320. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.js +55 -23
  321. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.js.map +1 -1
  322. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/document-resolver.d.ts +3 -3
  323. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/document-resolver.js +6 -6
  324. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/document-resolver.js.map +1 -1
  325. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/fragment-resolver.d.ts +3 -3
  326. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/fragment-resolver.js +4 -4
  327. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/fragment-resolver.js.map +1 -1
  328. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/runtime/pod-runtime.d.ts.map +1 -1
  329. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/runtime/pod-runtime.js +33 -8
  330. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/runtime/pod-runtime.js.map +1 -1
  331. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/defs.d.ts +11 -2
  332. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/defs.d.ts.map +1 -1
  333. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/factories.d.ts.map +1 -1
  334. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/factories.js +3 -2
  335. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/factories.js.map +1 -1
  336. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.d.ts +13 -8
  337. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.d.ts.map +1 -1
  338. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.js +24 -22
  339. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.js.map +1 -1
  340. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/solid-schema.d.ts +3 -0
  341. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/solid-schema.d.ts.map +1 -1
  342. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/solid-schema.js.map +1 -1
  343. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.d.ts +3 -2
  344. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.d.ts.map +1 -1
  345. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.js +28 -14
  346. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.js.map +1 -1
  347. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inline.d.ts.map +1 -1
  348. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inline.js +3 -2
  349. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inline.js.map +1 -1
  350. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.d.ts +9 -9
  351. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.d.ts.map +1 -1
  352. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.js +56 -22
  353. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.js.map +1 -1
  354. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.d.ts +9 -1
  355. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.d.ts.map +1 -1
  356. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.js +2 -0
  357. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.js.map +1 -1
  358. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/pod.d.ts +16 -2
  359. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/pod.d.ts.map +1 -1
  360. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/find-by-iri.js +1 -1
  361. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/find-by-iri.js.map +1 -1
  362. package/node_modules/@undefineds.co/drizzle-solid/dist/pod.d.ts +16 -2
  363. package/node_modules/@undefineds.co/drizzle-solid/dist/pod.d.ts.map +1 -1
  364. package/node_modules/@undefineds.co/drizzle-solid/dist/utils/find-by-iri.js +1 -1
  365. package/node_modules/@undefineds.co/drizzle-solid/dist/utils/find-by-iri.js.map +1 -1
  366. package/node_modules/@undefineds.co/drizzle-solid/package.json +1 -1
  367. package/package.json +5 -3
  368. package/scripts/patch-jose.js +62 -12
  369. package/dist/agents/AgentManager.d.ts +0 -116
  370. package/dist/agents/AgentManager.js +0 -290
  371. package/dist/agents/AgentManager.js.map +0 -1
  372. package/dist/agents/IndexAgent.d.ts +0 -70
  373. package/dist/agents/IndexAgent.js +0 -417
  374. package/dist/agents/IndexAgent.js.map +0 -1
  375. package/dist/agents/config/parse-agent-md.d.ts +0 -33
  376. package/dist/agents/config/parse-agent-md.js +0 -75
  377. package/dist/agents/config/parse-agent-md.js.map +0 -1
  378. package/dist/agents/schema/agent-config.d.ts +0 -2
  379. package/dist/agents/schema/agent-config.js +0 -32
  380. package/dist/agents/schema/agent-config.js.map +0 -1
  381. package/dist/agents/schema/create-agent-schema.d.ts +0 -25
  382. package/dist/agents/schema/create-agent-schema.js +0 -35
  383. package/dist/agents/schema/create-agent-schema.js.map +0 -1
  384. package/dist/api/chatkit/runtime/PtyThreadRuntime.d.ts +0 -127
  385. package/dist/api/chatkit/runtime/PtyThreadRuntime.js +0 -791
  386. package/dist/api/chatkit/runtime/PtyThreadRuntime.js.map +0 -1
  387. package/dist/cli/lib/agent-session.d.ts +0 -37
  388. package/dist/cli/lib/agent-session.js +0 -211
  389. package/dist/cli/lib/agent-session.js.map +0 -1
  390. package/dist/cli/lib/ensure-ai-credentials.d.ts +0 -13
  391. package/dist/cli/lib/ensure-ai-credentials.js +0 -40
  392. package/dist/cli/lib/ensure-ai-credentials.js.map +0 -1
  393. package/dist/cli/lib/model-manager.d.ts +0 -37
  394. package/dist/cli/lib/model-manager.js +0 -251
  395. package/dist/cli/lib/model-manager.js.map +0 -1
  396. package/dist/cli/lib/oauth-credential-manager.d.ts +0 -37
  397. package/dist/cli/lib/oauth-credential-manager.js +0 -129
  398. package/dist/cli/lib/oauth-credential-manager.js.map +0 -1
  399. package/dist/cli/lib/oauth-providers/codebuddy.d.ts +0 -25
  400. package/dist/cli/lib/oauth-providers/codebuddy.js +0 -69
  401. package/dist/cli/lib/oauth-providers/codebuddy.js.map +0 -1
  402. package/dist/cli/lib/oauth-providers/index.d.ts +0 -12
  403. package/dist/cli/lib/oauth-providers/index.js +0 -23
  404. package/dist/cli/lib/oauth-providers/index.js.map +0 -1
  405. package/dist/cli/lib/pi-optional.d.ts +0 -84
  406. package/dist/cli/lib/pi-optional.js +0 -35
  407. package/dist/cli/lib/pi-optional.js.map +0 -1
  408. package/dist/cli/lib/pod-ai-config.d.ts +0 -26
  409. package/dist/cli/lib/pod-ai-config.js +0 -99
  410. package/dist/cli/lib/pod-ai-config.js.map +0 -1
  411. package/dist/cli/lib/pod-thread-store.d.ts +0 -57
  412. package/dist/cli/lib/pod-thread-store.js +0 -312
  413. package/dist/cli/lib/pod-thread-store.js.map +0 -1
  414. package/dist/cli/lib/secretary-prompt.d.ts +0 -6
  415. package/dist/cli/lib/secretary-prompt.js +0 -85
  416. package/dist/cli/lib/secretary-prompt.js.map +0 -1
  417. package/dist/task/DrizzleTaskQueue.d.ts +0 -56
  418. package/dist/task/DrizzleTaskQueue.js +0 -171
  419. package/dist/task/DrizzleTaskQueue.js.map +0 -1
  420. package/dist/task/TaskExecutor.d.ts +0 -82
  421. package/dist/task/TaskExecutor.js +0 -198
  422. package/dist/task/TaskExecutor.js.map +0 -1
  423. package/dist/task/index.d.ts +0 -10
  424. package/dist/task/index.js +0 -20
  425. package/dist/task/index.js.map +0 -1
  426. package/dist/task/schema.d.ts +0 -53
  427. package/dist/task/schema.js +0 -71
  428. package/dist/task/schema.js.map +0 -1
  429. package/dist/task/types.d.ts +0 -186
  430. package/dist/task/types.js +0 -12
  431. 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