@undefineds.co/xpod 0.2.45 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (414) 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/storage/vector/VectorIndexingListener.js +13 -18
  151. package/dist/storage/vector/VectorIndexingListener.js.map +1 -1
  152. package/dist/vocab/index.d.ts +2 -6
  153. package/dist/vocab/index.js +2 -6
  154. package/dist/vocab/index.js.map +1 -1
  155. package/dist/vocab/udfs.d.ts +12 -0
  156. package/dist/vocab/udfs.js +12 -0
  157. package/dist/vocab/udfs.js.map +1 -1
  158. package/node_modules/@undefineds.co/drizzle-solid/README.md +52 -24
  159. package/node_modules/@undefineds.co/drizzle-solid/README.zh-CN.md +30 -24
  160. package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/types.d.ts +6 -2
  161. package/node_modules/@undefineds.co/drizzle-solid/dist/core/discovery/types.d.ts.map +1 -1
  162. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts +1 -0
  163. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.d.ts.map +1 -1
  164. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js +43 -10
  165. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-executor.js.map +1 -1
  166. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-strategy.d.ts.map +1 -1
  167. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-strategy.js +1 -0
  168. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/ldp-strategy.js.map +1 -1
  169. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor.d.ts +5 -0
  170. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor.d.ts.map +1 -1
  171. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor.js +44 -13
  172. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/pod-executor.js.map +1 -1
  173. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.d.ts +1 -0
  174. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.d.ts.map +1 -1
  175. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js +21 -2
  176. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/sparql-strategy.js.map +1 -1
  177. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/types.d.ts +1 -0
  178. package/node_modules/@undefineds.co/drizzle-solid/dist/core/execution/types.d.ts.map +1 -1
  179. package/node_modules/@undefineds.co/drizzle-solid/dist/core/expressions.d.ts +1 -1
  180. package/node_modules/@undefineds.co/drizzle-solid/dist/core/expressions.d.ts.map +1 -1
  181. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.d.ts +76 -41
  182. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.d.ts.map +1 -1
  183. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js +443 -114
  184. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-database.js.map +1 -1
  185. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-dialect.d.ts +28 -1
  186. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-dialect.d.ts.map +1 -1
  187. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-dialect.js +142 -31
  188. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-dialect.js.map +1 -1
  189. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-session.d.ts +3 -0
  190. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-session.d.ts.map +1 -1
  191. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-session.js +84 -6
  192. package/node_modules/@undefineds.co/drizzle-solid/dist/core/pod-session.js.map +1 -1
  193. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/insert-query-builder.d.ts +3 -0
  194. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/insert-query-builder.d.ts.map +1 -1
  195. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/insert-query-builder.js +29 -9
  196. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/insert-query-builder.js.map +1 -1
  197. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts +2 -8
  198. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.d.ts.map +1 -1
  199. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js +19 -51
  200. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/select-query-builder.js.map +1 -1
  201. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/types.d.ts +1 -0
  202. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-builders/types.d.ts.map +1 -1
  203. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-conditions.d.ts +2 -2
  204. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-conditions.d.ts.map +1 -1
  205. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js +6 -6
  206. package/node_modules/@undefineds.co/drizzle-solid/dist/core/query-where-policy.js.map +1 -1
  207. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-reference.d.ts +4 -4
  208. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-reference.d.ts.map +1 -1
  209. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-reference.js +56 -23
  210. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-reference.js.map +1 -1
  211. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/base-resolver.d.ts +14 -10
  212. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/base-resolver.d.ts.map +1 -1
  213. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/base-resolver.js +55 -23
  214. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/base-resolver.js.map +1 -1
  215. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/document-resolver.d.ts +3 -3
  216. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/document-resolver.js +6 -6
  217. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/document-resolver.js.map +1 -1
  218. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/fragment-resolver.d.ts +3 -3
  219. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/fragment-resolver.js +4 -4
  220. package/node_modules/@undefineds.co/drizzle-solid/dist/core/resource-resolver/fragment-resolver.js.map +1 -1
  221. package/node_modules/@undefineds.co/drizzle-solid/dist/core/runtime/pod-runtime.d.ts.map +1 -1
  222. package/node_modules/@undefineds.co/drizzle-solid/dist/core/runtime/pod-runtime.js +33 -8
  223. package/node_modules/@undefineds.co/drizzle-solid/dist/core/runtime/pod-runtime.js.map +1 -1
  224. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/defs.d.ts +11 -2
  225. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/defs.d.ts.map +1 -1
  226. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/factories.d.ts.map +1 -1
  227. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/factories.js +3 -2
  228. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/factories.js.map +1 -1
  229. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/pod-table.d.ts +13 -8
  230. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/pod-table.d.ts.map +1 -1
  231. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/pod-table.js +24 -22
  232. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/pod-table.js.map +1 -1
  233. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/solid-schema.d.ts +3 -0
  234. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/solid-schema.d.ts.map +1 -1
  235. package/node_modules/@undefineds.co/drizzle-solid/dist/core/schema/solid-schema.js.map +1 -1
  236. package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.d.ts +3 -2
  237. package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.d.ts.map +1 -1
  238. package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.js +28 -14
  239. package/node_modules/@undefineds.co/drizzle-solid/dist/core/subject/resolver.js.map +1 -1
  240. package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inline.d.ts.map +1 -1
  241. package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inline.js +3 -2
  242. package/node_modules/@undefineds.co/drizzle-solid/dist/core/triple/handlers/inline.js.map +1 -1
  243. package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.d.ts +9 -9
  244. package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.d.ts.map +1 -1
  245. package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.js +56 -22
  246. package/node_modules/@undefineds.co/drizzle-solid/dist/core/uri/resolver.js.map +1 -1
  247. package/node_modules/@undefineds.co/drizzle-solid/dist/driver.d.ts +9 -1
  248. package/node_modules/@undefineds.co/drizzle-solid/dist/driver.d.ts.map +1 -1
  249. package/node_modules/@undefineds.co/drizzle-solid/dist/driver.js +2 -0
  250. package/node_modules/@undefineds.co/drizzle-solid/dist/driver.js.map +1 -1
  251. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/types.d.ts +6 -2
  252. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/discovery/types.d.ts.map +1 -1
  253. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts +1 -0
  254. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.d.ts.map +1 -1
  255. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js +43 -10
  256. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-executor.js.map +1 -1
  257. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-strategy.d.ts.map +1 -1
  258. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-strategy.js +1 -0
  259. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/ldp-strategy.js.map +1 -1
  260. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.d.ts +5 -0
  261. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.d.ts.map +1 -1
  262. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.js +44 -13
  263. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/pod-executor.js.map +1 -1
  264. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.d.ts +1 -0
  265. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.d.ts.map +1 -1
  266. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js +21 -2
  267. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/sparql-strategy.js.map +1 -1
  268. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/types.d.ts +1 -0
  269. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/execution/types.d.ts.map +1 -1
  270. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/expressions.d.ts +1 -1
  271. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/expressions.d.ts.map +1 -1
  272. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.d.ts +76 -41
  273. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.d.ts.map +1 -1
  274. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js +443 -114
  275. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-database.js.map +1 -1
  276. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.d.ts +28 -1
  277. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.d.ts.map +1 -1
  278. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.js +142 -31
  279. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-dialect.js.map +1 -1
  280. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.d.ts +3 -0
  281. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.d.ts.map +1 -1
  282. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.js +84 -6
  283. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/pod-session.js.map +1 -1
  284. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.d.ts +3 -0
  285. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.d.ts.map +1 -1
  286. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.js +29 -9
  287. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/insert-query-builder.js.map +1 -1
  288. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts +2 -8
  289. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.d.ts.map +1 -1
  290. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js +19 -51
  291. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/select-query-builder.js.map +1 -1
  292. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/types.d.ts +1 -0
  293. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-builders/types.d.ts.map +1 -1
  294. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-conditions.d.ts +2 -2
  295. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-conditions.d.ts.map +1 -1
  296. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js +6 -6
  297. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/query-where-policy.js.map +1 -1
  298. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-reference.d.ts +4 -4
  299. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-reference.d.ts.map +1 -1
  300. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-reference.js +56 -23
  301. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-reference.js.map +1 -1
  302. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.d.ts +14 -10
  303. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.d.ts.map +1 -1
  304. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.js +55 -23
  305. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/base-resolver.js.map +1 -1
  306. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/document-resolver.d.ts +3 -3
  307. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/document-resolver.js +6 -6
  308. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/document-resolver.js.map +1 -1
  309. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/fragment-resolver.d.ts +3 -3
  310. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/fragment-resolver.js +4 -4
  311. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/resource-resolver/fragment-resolver.js.map +1 -1
  312. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/runtime/pod-runtime.d.ts.map +1 -1
  313. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/runtime/pod-runtime.js +33 -8
  314. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/runtime/pod-runtime.js.map +1 -1
  315. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/defs.d.ts +11 -2
  316. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/defs.d.ts.map +1 -1
  317. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/factories.d.ts.map +1 -1
  318. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/factories.js +3 -2
  319. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/factories.js.map +1 -1
  320. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.d.ts +13 -8
  321. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.d.ts.map +1 -1
  322. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.js +24 -22
  323. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/pod-table.js.map +1 -1
  324. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/solid-schema.d.ts +3 -0
  325. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/solid-schema.d.ts.map +1 -1
  326. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/schema/solid-schema.js.map +1 -1
  327. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.d.ts +3 -2
  328. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.d.ts.map +1 -1
  329. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.js +28 -14
  330. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/subject/resolver.js.map +1 -1
  331. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inline.d.ts.map +1 -1
  332. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inline.js +3 -2
  333. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/triple/handlers/inline.js.map +1 -1
  334. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.d.ts +9 -9
  335. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.d.ts.map +1 -1
  336. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.js +56 -22
  337. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/core/uri/resolver.js.map +1 -1
  338. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.d.ts +9 -1
  339. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.d.ts.map +1 -1
  340. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.js +2 -0
  341. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/driver.js.map +1 -1
  342. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/pod.d.ts +16 -2
  343. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/pod.d.ts.map +1 -1
  344. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/find-by-iri.js +1 -1
  345. package/node_modules/@undefineds.co/drizzle-solid/dist/esm/utils/find-by-iri.js.map +1 -1
  346. package/node_modules/@undefineds.co/drizzle-solid/dist/pod.d.ts +16 -2
  347. package/node_modules/@undefineds.co/drizzle-solid/dist/pod.d.ts.map +1 -1
  348. package/node_modules/@undefineds.co/drizzle-solid/dist/utils/find-by-iri.js +1 -1
  349. package/node_modules/@undefineds.co/drizzle-solid/dist/utils/find-by-iri.js.map +1 -1
  350. package/node_modules/@undefineds.co/drizzle-solid/package.json +1 -1
  351. package/package.json +9 -3
  352. package/dist/agents/AgentManager.d.ts +0 -116
  353. package/dist/agents/AgentManager.js +0 -290
  354. package/dist/agents/AgentManager.js.map +0 -1
  355. package/dist/agents/IndexAgent.d.ts +0 -70
  356. package/dist/agents/IndexAgent.js +0 -417
  357. package/dist/agents/IndexAgent.js.map +0 -1
  358. package/dist/agents/config/parse-agent-md.d.ts +0 -33
  359. package/dist/agents/config/parse-agent-md.js +0 -75
  360. package/dist/agents/config/parse-agent-md.js.map +0 -1
  361. package/dist/agents/schema/agent-config.d.ts +0 -2
  362. package/dist/agents/schema/agent-config.js +0 -32
  363. package/dist/agents/schema/agent-config.js.map +0 -1
  364. package/dist/agents/schema/create-agent-schema.d.ts +0 -25
  365. package/dist/agents/schema/create-agent-schema.js +0 -35
  366. package/dist/agents/schema/create-agent-schema.js.map +0 -1
  367. package/dist/api/chatkit/runtime/PtyThreadRuntime.d.ts +0 -127
  368. package/dist/api/chatkit/runtime/PtyThreadRuntime.js +0 -791
  369. package/dist/api/chatkit/runtime/PtyThreadRuntime.js.map +0 -1
  370. package/dist/cli/lib/agent-session.d.ts +0 -37
  371. package/dist/cli/lib/agent-session.js +0 -211
  372. package/dist/cli/lib/agent-session.js.map +0 -1
  373. package/dist/cli/lib/ensure-ai-credentials.d.ts +0 -13
  374. package/dist/cli/lib/ensure-ai-credentials.js +0 -40
  375. package/dist/cli/lib/ensure-ai-credentials.js.map +0 -1
  376. package/dist/cli/lib/model-manager.d.ts +0 -37
  377. package/dist/cli/lib/model-manager.js +0 -251
  378. package/dist/cli/lib/model-manager.js.map +0 -1
  379. package/dist/cli/lib/oauth-credential-manager.d.ts +0 -37
  380. package/dist/cli/lib/oauth-credential-manager.js +0 -129
  381. package/dist/cli/lib/oauth-credential-manager.js.map +0 -1
  382. package/dist/cli/lib/oauth-providers/codebuddy.d.ts +0 -25
  383. package/dist/cli/lib/oauth-providers/codebuddy.js +0 -69
  384. package/dist/cli/lib/oauth-providers/codebuddy.js.map +0 -1
  385. package/dist/cli/lib/oauth-providers/index.d.ts +0 -12
  386. package/dist/cli/lib/oauth-providers/index.js +0 -23
  387. package/dist/cli/lib/oauth-providers/index.js.map +0 -1
  388. package/dist/cli/lib/pi-optional.d.ts +0 -84
  389. package/dist/cli/lib/pi-optional.js +0 -35
  390. package/dist/cli/lib/pi-optional.js.map +0 -1
  391. package/dist/cli/lib/pod-ai-config.d.ts +0 -26
  392. package/dist/cli/lib/pod-ai-config.js +0 -99
  393. package/dist/cli/lib/pod-ai-config.js.map +0 -1
  394. package/dist/cli/lib/pod-thread-store.d.ts +0 -57
  395. package/dist/cli/lib/pod-thread-store.js +0 -312
  396. package/dist/cli/lib/pod-thread-store.js.map +0 -1
  397. package/dist/cli/lib/secretary-prompt.d.ts +0 -6
  398. package/dist/cli/lib/secretary-prompt.js +0 -85
  399. package/dist/cli/lib/secretary-prompt.js.map +0 -1
  400. package/dist/task/DrizzleTaskQueue.d.ts +0 -56
  401. package/dist/task/DrizzleTaskQueue.js +0 -171
  402. package/dist/task/DrizzleTaskQueue.js.map +0 -1
  403. package/dist/task/TaskExecutor.d.ts +0 -82
  404. package/dist/task/TaskExecutor.js +0 -198
  405. package/dist/task/TaskExecutor.js.map +0 -1
  406. package/dist/task/index.d.ts +0 -10
  407. package/dist/task/index.js +0 -20
  408. package/dist/task/index.js.map +0 -1
  409. package/dist/task/schema.d.ts +0 -53
  410. package/dist/task/schema.js +0 -71
  411. package/dist/task/schema.js.map +0 -1
  412. package/dist/task/types.d.ts +0 -186
  413. package/dist/task/types.js +0 -12
  414. package/dist/task/types.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcpAgentRuntime.js","sourceRoot":"","sources":["../../../../src/api/chatkit/runtime/AcpAgentRuntime.ts"],"names":[],"mappings":"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","sourcesContent":["import * as path from 'node:path';\nimport * as crypto from 'node:crypto';\nimport * as fs from 'node:fs';\nimport * as os from 'node:os';\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { WorkspaceUri } from '../../workspace/types';\nimport { getPlatformApiBaseUrl } from '../../service/platform-ai-config';\nimport { PACKAGE_ROOT } from '../../../runtime';\nimport { GitWorktreeService } from './GitWorktreeService';\nimport { AcpRunner } from './AcpRunner';\nimport { CodexRuntimeProjector } from './CodexRuntimeProjector';\nimport type { ResolvedAgentConfig } from '../../../agents/config/types';\nimport type { McpServerConfig } from '../../../agents/types';\nimport { codexWireApi, getDefaultBaseUrl } from '../../service/provider-registry';\nimport type {\n AcpRunnerType,\n AgentRuntimeConfig,\n AgentRuntimeEvent,\n} from '../../runs/AgentRuntimeTypes';\n\ninterface AgentRuntimeRunInput {\n threadId: string;\n prompt: string;\n config: AgentRuntimeConfig;\n}\n\n/**\n * Request-scoped ACP Agent Runtime.\n *\n * This class intentionally keeps no per-thread runner/session map. Durable\n * conversation state belongs in the Pod; each invocation starts an ACP runner,\n * creates one ACP session, streams events, then stops the runner.\n */\nexport class AcpAgentRuntime {\n private readonly logger = getLoggerFor(this);\n private readonly git = new GitWorktreeService();\n private readonly codexProjector = new CodexRuntimeProjector();\n\n public constructor(\n private readonly options: {\n worktreeRootDirName?: string;\n } = {},\n ) {}\n\n public async *run(input: AgentRuntimeRunInput): AsyncIterable<AgentRuntimeEvent> {\n const { threadId, prompt, config } = input;\n const workdir = await this.resolveWorkdir(threadId, config.workspace, config);\n\n if (config.runner.protocol && config.runner.protocol !== 'acp') {\n throw new Error(`Unsupported runner protocol: ${config.runner.protocol}. Only 'acp' is supported.`);\n }\n\n const runnerType = this.resolveAcpRunnerType(config.runner.type);\n const argv = this.resolveRunnerArgv(runnerType, config.runner.argv);\n const command = argv[0];\n const args = argv.slice(1);\n const env = this.buildRunnerEnv(runnerType, threadId, workdir, config.agentConfig);\n const runner = new AcpRunner();\n const queue = new AsyncPushQueue<AgentRuntimeEvent>();\n\n try {\n runner.start({ command, args, cwd: workdir, env });\n\n const sessionId = await this.createSession(runner, workdir, config.agentConfig);\n const runPromise = this.runPrompt(runner, sessionId, prompt, {\n idleMs: config.idleMs ?? 500,\n authWaitMs: Math.max(config.authWaitMs ?? 300_000, config.idleMs ?? 500),\n queue,\n }).catch((error) => {\n queue.push({ type: 'error', message: this.formatError(error) });\n queue.close();\n });\n\n for await (const event of queue.iterate()) {\n yield event;\n }\n await runPromise;\n } catch (error: any) {\n const message = this.formatError(error);\n this.logger.warn(`ACP agent runtime failed: ${message}`);\n yield { type: 'error', message };\n } finally {\n runner.stop('SIGINT');\n }\n }\n\n private async createSession(\n runner: AcpRunner,\n workdir: string,\n agentConfig?: ResolvedAgentConfig,\n ): Promise<string> {\n await runner.request('initialize', {\n protocolVersion: 1,\n clientCapabilities: {},\n clientInfo: { name: 'xpod', version: 'dev' },\n });\n\n const sessionParams: Record<string, unknown> = { cwd: workdir };\n if (agentConfig) {\n sessionParams.mcpServers = Object.keys(agentConfig.mcpServers).length > 0\n ? this.convertMcpServersForAcp(agentConfig.mcpServers)\n : [];\n if (agentConfig.systemPrompt) sessionParams.systemPrompt = agentConfig.systemPrompt;\n if (agentConfig.skillsContent) sessionParams.appendSystemPrompt = agentConfig.skillsContent;\n if (agentConfig.maxTurns) sessionParams.maxTurns = agentConfig.maxTurns;\n if (agentConfig.allowedTools) sessionParams.allowedTools = agentConfig.allowedTools;\n if (agentConfig.disallowedTools) sessionParams.disallowedTools = agentConfig.disallowedTools;\n if (agentConfig.permissionMode) sessionParams.permissionMode = agentConfig.permissionMode;\n } else {\n sessionParams.mcpServers = [];\n }\n\n const newSession = await runner.request<{ sessionId: string }>('session/new', sessionParams);\n if (!newSession?.sessionId) {\n throw new Error('ACP session/new did not return sessionId');\n }\n return newSession.sessionId;\n }\n\n private async runPrompt(\n runner: AcpRunner,\n sessionId: string,\n prompt: string,\n options: {\n idleMs: number;\n authWaitMs: number;\n queue: AsyncPushQueue<AgentRuntimeEvent>;\n },\n ): Promise<void> {\n const { idleMs, authWaitMs, queue } = options;\n let idleTimer: NodeJS.Timeout | undefined;\n let done = false;\n\n const finish = (): void => {\n if (done) return;\n done = true;\n if (idleTimer) {\n clearTimeout(idleTimer);\n idleTimer = undefined;\n }\n runner.off('notification', onNotification);\n runner.off('request', onRequest);\n queue.close();\n };\n\n const bumpIdle = (ms: number = idleMs): void => {\n if (done) return;\n if (idleTimer) clearTimeout(idleTimer);\n idleTimer = setTimeout(() => finish(), ms);\n };\n\n const onRequest = (req: any): void => {\n if (!req || typeof req.method !== 'string') return;\n\n if (this.isRuntimeHandledRequest(req.method)) {\n const hint = req.params?.message || req.params?.reason || req.method;\n const url = this.extractAuthUrl(req.params);\n const authOptions =\n this.extractAuthOptions(req.params) ??\n (url ? [{ label: 'Continue in browser', url, method: req.method }] : undefined);\n queue.push({\n type: 'auth_required',\n method: req.method,\n url,\n message: typeof hint === 'string' ? hint : undefined,\n options: authOptions,\n });\n bumpIdle(authWaitMs);\n if (req.method === 'session/request_permission') {\n req.respond({ granted: true });\n } else {\n req.respond({ handled: true });\n }\n return;\n }\n\n const requestId = `acp:${String(req.id)}`;\n queue.push({\n type: 'tool_call',\n requestId,\n name: req.method,\n arguments: JSON.stringify(req.params ?? {}),\n });\n req.fail(-32601, `Unsupported ACP client request in stateless runtime: ${req.method}`);\n finish();\n };\n\n const onNotification = (method: string, params: any): void => {\n if (method !== 'session/update') return;\n if (!params || params.sessionId !== sessionId) return;\n\n const update = params.update;\n if (!update || typeof update !== 'object') return;\n\n const text = this.extractTextDeltaFromSessionUpdate(update);\n if (typeof text === 'string' && text.length > 0) {\n queue.push({ type: 'text', text });\n bumpIdle();\n }\n };\n\n runner.on('request', onRequest);\n runner.on('notification', onNotification);\n\n try {\n void runner.request('session/prompt', {\n sessionId,\n prompt: [ { type: 'text', text: prompt } ],\n }).then((result) => {\n const text = this.extractTextFromPromptResult(result);\n if (typeof text === 'string' && text.length > 0) {\n queue.push({ type: 'text', text });\n bumpIdle();\n } else {\n bumpIdle();\n }\n }).catch((error) => {\n if (!done) {\n queue.push({ type: 'error', message: this.formatError(error) });\n finish();\n }\n });\n bumpIdle();\n await queue.waitClosed();\n } finally {\n finish();\n }\n }\n\n private isRuntimeHandledRequest(method: string): boolean {\n return method === 'session/request_permission' ||\n method === 'auth/request' ||\n method === 'auth/authorize';\n }\n\n private async resolveWorkdir(threadId: string, workspace: WorkspaceUri, config: AgentRuntimeConfig): Promise<string> {\n const url = new URL(workspace);\n if (url.protocol !== 'file:') {\n throw new Error('ACP runtime only supports file:// workspaces; use pi Agent Runtime for Pod-backed runs');\n }\n if (!this.canResolveFileWorkspace(url)) {\n throw new Error(`Workspace is not resolvable by this ACP runner: ${workspace}`);\n }\n\n const repoRoot = decodeURIComponent(url.pathname);\n if (!fs.existsSync(repoRoot)) {\n throw new Error(`workspace URI does not exist on this runner: ${workspace}`);\n }\n\n const worktree = config.worktree;\n if (!worktree) {\n return repoRoot;\n }\n\n if (worktree.mode === 'existing') {\n if (!fs.existsSync(worktree.path)) {\n throw new Error(`worktree.path not found: ${worktree.path}`);\n }\n return worktree.path;\n }\n\n await this.git.assertGitRepo(repoRoot);\n\n const rootDirName = this.options.worktreeRootDirName ?? '.xpod-worktrees';\n const root = path.join(repoRoot, rootDirName);\n const worktreePath = path.join(root, threadId);\n\n if (fs.existsSync(worktreePath)) {\n return worktreePath;\n }\n\n const baseRef = worktree.baseRef ?? 'main';\n await this.git.createWorktree({\n repoPath: repoRoot,\n worktreePath,\n baseRef,\n branch: worktree.branch,\n });\n\n return worktreePath;\n }\n\n private canResolveFileWorkspace(url: URL): boolean {\n const authority = url.hostname;\n if (!authority || authority === 'localhost') {\n return true;\n }\n const configured = process.env.XPOD_RUNNER_AUTHORITY?.trim();\n return authority === configured || authority === os.hostname();\n }\n\n private resolveAcpRunnerType(type: string): AcpRunnerType {\n if (type === 'codebuddy' || type === 'claude' || type === 'codex') {\n return type;\n }\n throw new Error(`Unsupported ACP runner type: ${type}`);\n }\n\n private resolveRunnerArgv(type: AcpRunnerType, argv?: string[]): string[] {\n if (argv && argv.length > 0) {\n return argv;\n }\n switch (type) {\n case 'codebuddy':\n return [ this.resolveLocalBin('codebuddy'), '--acp' ];\n case 'claude':\n return [ this.resolveLocalBin('claude-code-acp') ];\n case 'codex':\n return [ this.resolveLocalBin('codex-acp') ];\n default:\n return [ type ];\n }\n }\n\n private resolveLocalBin(binName: string): string {\n const localBin = path.join(PACKAGE_ROOT, 'node_modules', '.bin', binName);\n if (fs.existsSync(localBin)) {\n return localBin;\n }\n return binName;\n }\n\n private buildRunnerEnv(\n type: AcpRunnerType,\n threadId: string,\n workdir: string,\n agentConfig?: ResolvedAgentConfig,\n ): Record<string, string | undefined> | undefined {\n const defaultApiKey = agentConfig?.apiKey || process.env.DEFAULT_API_KEY?.trim();\n const rawApiBase = agentConfig?.baseUrl || getPlatformApiBaseUrl();\n const defaultModel = agentConfig?.model || process.env.DEFAULT_MODEL?.trim();\n\n if (type === 'codebuddy') {\n return undefined;\n }\n\n const home = this.getIsolatedHomeDir(type, threadId, workdir);\n\n if (type === 'codex') {\n const defaultApiBase = rawApiBase || getDefaultBaseUrl();\n const codexHome = path.join(home, '.codex');\n this.codexProjector.project({\n codexHome,\n baseUrl: defaultApiBase,\n apiKey: defaultApiKey,\n wireApi: codexWireApi(defaultApiBase),\n model: defaultModel,\n agentConfig,\n });\n const env: Record<string, string | undefined> = {\n HOME: home,\n XDG_CONFIG_HOME: path.join(home, '.config'),\n XDG_STATE_HOME: path.join(home, '.local', 'state'),\n XDG_DATA_HOME: path.join(home, '.local', 'share'),\n XDG_CACHE_HOME: path.join(home, '.cache'),\n CODEX_HOME: codexHome,\n };\n if (defaultApiKey) {\n env.CODEX_API_KEY = defaultApiKey;\n env.OPENAI_API_KEY = defaultApiKey;\n }\n env.OPENAI_BASE_URL = defaultApiBase;\n env.OPENAI_API_BASE = defaultApiBase;\n if (defaultModel) {\n env.OPENAI_MODEL = defaultModel;\n env.CODEX_MODEL = defaultModel;\n }\n return env;\n }\n\n const defaultApiBase = rawApiBase || getDefaultBaseUrl();\n const env: Record<string, string | undefined> = {\n HOME: home,\n XDG_CONFIG_HOME: path.join(home, '.config'),\n XDG_STATE_HOME: path.join(home, '.local', 'state'),\n XDG_DATA_HOME: path.join(home, '.local', 'share'),\n XDG_CACHE_HOME: path.join(home, '.cache'),\n };\n const normalizedBase = defaultApiBase ? this.normalizeClaudeBaseUrl(defaultApiBase) : undefined;\n const isOpenRouterLike =\n (typeof normalizedBase === 'string' && normalizedBase.includes('openrouter.ai'));\n\n if (defaultApiKey) {\n if (isOpenRouterLike) {\n env.ANTHROPIC_AUTH_TOKEN = defaultApiKey;\n delete env.ANTHROPIC_API_KEY;\n } else {\n env.ANTHROPIC_API_KEY = defaultApiKey;\n delete env.ANTHROPIC_AUTH_TOKEN;\n }\n }\n if (normalizedBase) {\n env.ANTHROPIC_BASE_URL = normalizedBase;\n }\n if (defaultModel) {\n env.ANTHROPIC_DEFAULT_SONNET_MODEL = defaultModel;\n env.ANTHROPIC_DEFAULT_HAIKU_MODEL = defaultModel;\n env.ANTHROPIC_DEFAULT_OPUS_MODEL = defaultModel;\n }\n return env;\n }\n\n private getIsolatedHomeDir(type: Exclude<AcpRunnerType, 'codebuddy'>, threadId: string, workdir: string): string {\n const hash = crypto.createHash('sha256').update(`${type}:${threadId}:${workdir}`).digest('hex').slice(0, 16);\n const root = path.join(os.tmpdir(), 'xpod-acp-home', type, hash);\n fs.mkdirSync(root, { recursive: true });\n return root;\n }\n\n private normalizeClaudeBaseUrl(baseUrl: string): string {\n if (baseUrl.endsWith('/v1')) {\n return baseUrl.slice(0, -3);\n }\n if (baseUrl.endsWith('/v1/')) {\n return baseUrl.slice(0, -4);\n }\n return baseUrl;\n }\n\n private convertMcpServersForAcp(\n servers: Record<string, McpServerConfig>,\n ): Array<Record<string, unknown>> {\n return Object.entries(servers).map(([name, config]) => ({\n name,\n ...config,\n }));\n }\n\n private extractTextDeltaFromSessionUpdate(update: any): string | undefined {\n if (!update) return undefined;\n\n if (typeof update === 'string') return update;\n if (typeof update.delta === 'string') return update.delta;\n if (typeof update.text === 'string') return update.text;\n\n const content = update.content?.content ?? update.content;\n if (typeof content === 'string') return content;\n if (content && typeof content === 'object') {\n if (typeof content.text === 'string') return content.text;\n if (Array.isArray(content)) {\n const parts = content\n .map((part: any) => (part && typeof part === 'object' ? part.text : undefined))\n .filter((text: any) => typeof text === 'string');\n if (parts.length) return parts.join('');\n }\n }\n\n const message = update.message ?? update.item ?? update.assistant_message;\n if (message && typeof message === 'object') {\n const msgContent = message.content?.content ?? message.content;\n if (typeof msgContent === 'string') return msgContent;\n if (Array.isArray(msgContent)) {\n const parts = msgContent\n .map((part: any) => {\n if (!part || typeof part !== 'object') return undefined;\n if (typeof part.text === 'string') return part.text;\n if (typeof part.delta === 'string') return part.delta;\n return undefined;\n })\n .filter((text: any) => typeof text === 'string');\n if (parts.length) return parts.join('');\n }\n }\n\n return undefined;\n }\n\n private extractTextFromPromptResult(result: any): string | undefined {\n if (!result) return undefined;\n if (typeof result === 'string') return result;\n\n if (typeof result.text === 'string') return result.text;\n if (typeof result.output_text === 'string') return result.output_text;\n\n const message = result.message ?? result.item ?? result.assistant_message;\n if (message && typeof message === 'object') {\n const msgContent = message.content?.content ?? message.content;\n if (typeof msgContent === 'string') return msgContent;\n if (Array.isArray(msgContent)) {\n const parts = msgContent\n .map((part: any) => (part && typeof part === 'object' ? (typeof part.text === 'string' ? part.text : undefined) : undefined))\n .filter((text: any) => typeof text === 'string');\n if (parts.length) return parts.join('');\n }\n }\n\n const content = result.content?.content ?? result.content;\n if (typeof content === 'string') return content;\n if (Array.isArray(content)) {\n const parts = content\n .map((part: any) => (part && typeof part === 'object' ? (typeof part.text === 'string' ? part.text : undefined) : undefined))\n .filter((text: any) => typeof text === 'string');\n if (parts.length) return parts.join('');\n }\n\n return undefined;\n }\n\n private extractAuthUrl(params: any): string | undefined {\n if (!params || typeof params !== 'object') return undefined;\n const candidates = [\n params.url,\n params.authorizationUrl,\n params.authorization_url,\n params.authUrl,\n params.auth_url,\n params.browserUrl,\n params.browser_url,\n params.verification_uri,\n params.verificationUri,\n params.verificationUrl,\n ];\n return candidates.find((value) => typeof value === 'string' && value.startsWith('http'));\n }\n\n private extractAuthOptions(params: any): Array<{ label?: string; url?: string; method?: string }> | undefined {\n if (!params || typeof params !== 'object') return undefined;\n\n const raw =\n Array.isArray((params as any).methods) ? (params as any).methods\n : Array.isArray((params as any).options) ? (params as any).options\n : Array.isArray((params as any).authMethods) ? (params as any).authMethods\n : Array.isArray((params as any).auth_methods) ? (params as any).auth_methods\n : undefined;\n\n if (!raw) return undefined;\n\n const options = raw\n .map((method: any) => {\n if (!method || typeof method !== 'object') return undefined;\n const url = this.extractAuthUrl(method);\n const label =\n typeof method.label === 'string' ? method.label :\n typeof method.name === 'string' ? method.name :\n typeof method.type === 'string' ? method.type :\n undefined;\n const optionMethod =\n typeof method.method === 'string' ? method.method :\n typeof method.type === 'string' ? method.type :\n undefined;\n return { label, url, method: optionMethod };\n })\n .filter(Boolean) as Array<{ label?: string; url?: string; method?: string }>;\n\n return options.length > 0 ? options : undefined;\n }\n\n private formatError(error: unknown): string {\n const anyError = error as any;\n const dataMessage =\n anyError?.data && typeof anyError.data === 'object' && typeof anyError.data.message === 'string'\n ? anyError.data.message\n : undefined;\n const message = String(anyError?.message ?? error);\n return dataMessage ? `${message} | data.message=${dataMessage.slice(0, 800)}` : message;\n }\n}\n\nclass AsyncPushQueue<T> {\n private readonly items: T[] = [];\n private resolvers: Array<() => void> = [];\n private closed = false;\n private closeResolvers: Array<() => void> = [];\n\n public push(item: T): void {\n if (this.closed) {\n return;\n }\n this.items.push(item);\n const resolver = this.resolvers.shift();\n resolver?.();\n }\n\n public close(): void {\n if (this.closed) {\n return;\n }\n this.closed = true;\n for (const resolver of this.resolvers) {\n resolver();\n }\n this.resolvers = [];\n for (const resolver of this.closeResolvers) {\n resolver();\n }\n this.closeResolvers = [];\n }\n\n public async waitClosed(): Promise<void> {\n if (this.closed) {\n return;\n }\n await new Promise<void>((resolve) => this.closeResolvers.push(resolve));\n }\n\n public async *iterate(): AsyncIterable<T> {\n while (true) {\n if (this.items.length > 0) {\n yield this.items.shift()!;\n continue;\n }\n if (this.closed) {\n return;\n }\n await new Promise<void>((resolve) => this.resolvers.push(resolve));\n }\n }\n}\n"]}
@@ -0,0 +1,27 @@
1
+ import type { ResolvedAgentConfig } from '../../../agents/config/types';
2
+ export interface CodexRuntimeProjection {
3
+ codexHome: string;
4
+ baseUrl?: string;
5
+ apiKey?: string;
6
+ wireApi?: 'responses' | 'chat';
7
+ model?: string;
8
+ agentConfig?: ResolvedAgentConfig;
9
+ }
10
+ /**
11
+ * Projects Xpod's Pod-hosted Agent Profile into Codex's native local runtime
12
+ * files. The Pod profile remains the source of truth; these files are an
13
+ * invocation-scoped compatibility view for codex-acp.
14
+ */
15
+ export declare class CodexRuntimeProjector {
16
+ private readonly logger;
17
+ project(options: CodexRuntimeProjection): void;
18
+ private writeConfigAndAuth;
19
+ private renderConfigToml;
20
+ private projectSkills;
21
+ private renderMcpServers;
22
+ private codexMcpServerType;
23
+ private renderTomlInlineTable;
24
+ private tomlBareKey;
25
+ private sanitizeFileSegment;
26
+ private ensureDir;
27
+ }
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.CodexRuntimeProjector = void 0;
27
+ const fs = __importStar(require("node:fs"));
28
+ const path = __importStar(require("node:path"));
29
+ const global_logger_factory_1 = require("global-logger-factory");
30
+ /**
31
+ * Projects Xpod's Pod-hosted Agent Profile into Codex's native local runtime
32
+ * files. The Pod profile remains the source of truth; these files are an
33
+ * invocation-scoped compatibility view for codex-acp.
34
+ */
35
+ class CodexRuntimeProjector {
36
+ constructor() {
37
+ this.logger = (0, global_logger_factory_1.getLoggerFor)(this);
38
+ }
39
+ project(options) {
40
+ this.ensureDir(options.codexHome);
41
+ this.projectSkills(options.codexHome, options.agentConfig);
42
+ this.writeConfigAndAuth(options);
43
+ }
44
+ writeConfigAndAuth(options) {
45
+ const configPath = path.join(options.codexHome, 'config.toml');
46
+ const authPath = path.join(options.codexHome, 'auth.json');
47
+ try {
48
+ const baseUrl = options.baseUrl?.trim();
49
+ if (baseUrl) {
50
+ fs.writeFileSync(configPath, this.renderConfigToml({
51
+ baseUrl,
52
+ wireApi: options.wireApi ?? 'responses',
53
+ model: options.model,
54
+ mcpServers: options.agentConfig?.mcpServers,
55
+ }), { encoding: 'utf8' });
56
+ }
57
+ }
58
+ catch (error) {
59
+ this.logger.debug(`Failed to write Codex config.toml: ${String(error)}`);
60
+ }
61
+ try {
62
+ const apiKey = options.apiKey?.trim();
63
+ if (apiKey) {
64
+ fs.writeFileSync(authPath, JSON.stringify({ OPENAI_API_KEY: apiKey }), { encoding: 'utf8' });
65
+ }
66
+ }
67
+ catch (error) {
68
+ this.logger.debug(`Failed to write Codex auth.json: ${String(error)}`);
69
+ }
70
+ }
71
+ renderConfigToml(options) {
72
+ const lines = [
73
+ 'model_provider = "codex"',
74
+ options.model ? `model = ${JSON.stringify(options.model)}` : undefined,
75
+ '',
76
+ '[model_providers.codex]',
77
+ 'name = "codex"',
78
+ `base_url = ${JSON.stringify(options.baseUrl)}`,
79
+ `wire_api = ${JSON.stringify(options.wireApi)}`,
80
+ 'requires_openai_auth = true',
81
+ ...this.renderMcpServers(options.mcpServers),
82
+ '',
83
+ ].filter((line) => typeof line === 'string');
84
+ return lines.join('\n');
85
+ }
86
+ projectSkills(codexHome, agentConfig) {
87
+ const skillsRoot = path.join(codexHome, 'skills');
88
+ this.ensureDir(skillsRoot);
89
+ for (const skill of agentConfig?.skills ?? []) {
90
+ const skillDir = path.join(skillsRoot, this.sanitizeFileSegment(skill.name));
91
+ this.ensureDir(skillDir);
92
+ fs.writeFileSync(path.join(skillDir, 'SKILL.md'), skill.content, { encoding: 'utf8' });
93
+ }
94
+ }
95
+ renderMcpServers(servers) {
96
+ if (!servers || Object.keys(servers).length === 0) {
97
+ return [];
98
+ }
99
+ const lines = [''];
100
+ for (const [name, config] of Object.entries(servers).sort(([a], [b]) => a.localeCompare(b))) {
101
+ lines.push(`[mcp_servers.${this.tomlBareKey(name)}]`);
102
+ const type = this.codexMcpServerType(config);
103
+ if (type) {
104
+ lines.push(`type = ${JSON.stringify(type)}`);
105
+ }
106
+ if (typeof config.command === 'string' && config.command.length > 0) {
107
+ lines.push(`command = ${JSON.stringify(config.command)}`);
108
+ }
109
+ if (Array.isArray(config.args)) {
110
+ lines.push(`args = ${JSON.stringify(config.args)}`);
111
+ }
112
+ if (typeof config.url === 'string' && config.url.length > 0) {
113
+ lines.push(`url = ${JSON.stringify(config.url)}`);
114
+ }
115
+ if (config.env && Object.keys(config.env).length > 0) {
116
+ lines.push(`env = ${this.renderTomlInlineTable(config.env)}`);
117
+ }
118
+ if (config.headers && Object.keys(config.headers).length > 0) {
119
+ lines.push(`headers = ${this.renderTomlInlineTable(config.headers)}`);
120
+ }
121
+ lines.push('enabled = true', '');
122
+ }
123
+ return lines;
124
+ }
125
+ codexMcpServerType(config) {
126
+ if (config.type === 'http')
127
+ return 'streamable_http';
128
+ if (config.type === 'sse')
129
+ return 'sse';
130
+ if (config.type === 'stdio')
131
+ return 'stdio';
132
+ return undefined;
133
+ }
134
+ renderTomlInlineTable(values) {
135
+ const body = Object.entries(values)
136
+ .sort(([a], [b]) => a.localeCompare(b))
137
+ .map(([key, value]) => `${this.tomlBareKey(key)} = ${JSON.stringify(value)}`)
138
+ .join(', ');
139
+ return `{ ${body} }`;
140
+ }
141
+ tomlBareKey(value) {
142
+ return /^[A-Za-z0-9_-]+$/.test(value) ? value : JSON.stringify(value);
143
+ }
144
+ sanitizeFileSegment(value) {
145
+ return value.replace(/[^a-zA-Z0-9._-]+/g, '-').replace(/^-+|-+$/g, '') || 'skill';
146
+ }
147
+ ensureDir(dir) {
148
+ try {
149
+ fs.mkdirSync(dir, { recursive: true });
150
+ }
151
+ catch {
152
+ // best-effort: agent binaries may create runtime directories themselves
153
+ }
154
+ }
155
+ }
156
+ exports.CodexRuntimeProjector = CodexRuntimeProjector;
157
+ //# sourceMappingURL=CodexRuntimeProjector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodexRuntimeProjector.js","sourceRoot":"","sources":["../../../../src/api/chatkit/runtime/CodexRuntimeProjector.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { ResolvedAgentConfig } from '../../../agents/config/types';\nimport type { McpServerConfig } from '../../../agents/types';\n\nexport interface CodexRuntimeProjection {\n codexHome: string;\n baseUrl?: string;\n apiKey?: string;\n wireApi?: 'responses' | 'chat';\n model?: string;\n agentConfig?: ResolvedAgentConfig;\n}\n\n/**\n * Projects Xpod's Pod-hosted Agent Profile into Codex's native local runtime\n * files. The Pod profile remains the source of truth; these files are an\n * invocation-scoped compatibility view for codex-acp.\n */\nexport class CodexRuntimeProjector {\n private readonly logger = getLoggerFor(this);\n\n public project(options: CodexRuntimeProjection): void {\n this.ensureDir(options.codexHome);\n this.projectSkills(options.codexHome, options.agentConfig);\n this.writeConfigAndAuth(options);\n }\n\n private writeConfigAndAuth(options: CodexRuntimeProjection): void {\n const configPath = path.join(options.codexHome, 'config.toml');\n const authPath = path.join(options.codexHome, 'auth.json');\n\n try {\n const baseUrl = options.baseUrl?.trim();\n if (baseUrl) {\n fs.writeFileSync(configPath, this.renderConfigToml({\n baseUrl,\n wireApi: options.wireApi ?? 'responses',\n model: options.model,\n mcpServers: options.agentConfig?.mcpServers,\n }), { encoding: 'utf8' });\n }\n } catch (error) {\n this.logger.debug(`Failed to write Codex config.toml: ${String(error)}`);\n }\n\n try {\n const apiKey = options.apiKey?.trim();\n if (apiKey) {\n fs.writeFileSync(authPath, JSON.stringify({ OPENAI_API_KEY: apiKey }), { encoding: 'utf8' });\n }\n } catch (error) {\n this.logger.debug(`Failed to write Codex auth.json: ${String(error)}`);\n }\n }\n\n private renderConfigToml(options: {\n baseUrl: string;\n wireApi: 'responses' | 'chat';\n model?: string;\n mcpServers?: Record<string, McpServerConfig>;\n }): string {\n const lines = [\n 'model_provider = \"codex\"',\n options.model ? `model = ${JSON.stringify(options.model)}` : undefined,\n '',\n '[model_providers.codex]',\n 'name = \"codex\"',\n `base_url = ${JSON.stringify(options.baseUrl)}`,\n `wire_api = ${JSON.stringify(options.wireApi)}`,\n 'requires_openai_auth = true',\n ...this.renderMcpServers(options.mcpServers),\n '',\n ].filter((line): line is string => typeof line === 'string');\n\n return lines.join('\\n');\n }\n\n private projectSkills(codexHome: string, agentConfig?: ResolvedAgentConfig): void {\n const skillsRoot = path.join(codexHome, 'skills');\n this.ensureDir(skillsRoot);\n\n for (const skill of agentConfig?.skills ?? []) {\n const skillDir = path.join(skillsRoot, this.sanitizeFileSegment(skill.name));\n this.ensureDir(skillDir);\n fs.writeFileSync(path.join(skillDir, 'SKILL.md'), skill.content, { encoding: 'utf8' });\n }\n }\n\n private renderMcpServers(servers?: Record<string, McpServerConfig>): string[] {\n if (!servers || Object.keys(servers).length === 0) {\n return [];\n }\n\n const lines: string[] = [''];\n for (const [name, config] of Object.entries(servers).sort(([a], [b]) => a.localeCompare(b))) {\n lines.push(`[mcp_servers.${this.tomlBareKey(name)}]`);\n const type = this.codexMcpServerType(config);\n if (type) {\n lines.push(`type = ${JSON.stringify(type)}`);\n }\n if (typeof config.command === 'string' && config.command.length > 0) {\n lines.push(`command = ${JSON.stringify(config.command)}`);\n }\n if (Array.isArray(config.args)) {\n lines.push(`args = ${JSON.stringify(config.args)}`);\n }\n if (typeof config.url === 'string' && config.url.length > 0) {\n lines.push(`url = ${JSON.stringify(config.url)}`);\n }\n if (config.env && Object.keys(config.env).length > 0) {\n lines.push(`env = ${this.renderTomlInlineTable(config.env)}`);\n }\n if (config.headers && Object.keys(config.headers).length > 0) {\n lines.push(`headers = ${this.renderTomlInlineTable(config.headers)}`);\n }\n lines.push('enabled = true', '');\n }\n return lines;\n }\n\n private codexMcpServerType(config: McpServerConfig): string | undefined {\n if (config.type === 'http') return 'streamable_http';\n if (config.type === 'sse') return 'sse';\n if (config.type === 'stdio') return 'stdio';\n return undefined;\n }\n\n private renderTomlInlineTable(values: Record<string, string>): string {\n const body = Object.entries(values)\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([key, value]) => `${this.tomlBareKey(key)} = ${JSON.stringify(value)}`)\n .join(', ');\n return `{ ${body} }`;\n }\n\n private tomlBareKey(value: string): string {\n return /^[A-Za-z0-9_-]+$/.test(value) ? value : JSON.stringify(value);\n }\n\n private sanitizeFileSegment(value: string): string {\n return value.replace(/[^a-zA-Z0-9._-]+/g, '-').replace(/^-+|-+$/g, '') || 'skill';\n }\n\n private ensureDir(dir: string): void {\n try {\n fs.mkdirSync(dir, { recursive: true });\n } catch {\n // best-effort: agent binaries may create runtime directories themselves\n }\n }\n}\n"]}
@@ -1,150 +1,70 @@
1
+ import { ChatStatus, MessageRole, MessageStatus, type ChatRow, type ChatStatusType, type MessageRoleType, type MessageRow, type MessageStatusType, type ThreadRow, type ThreadStatusType } from '@undefineds.co/models';
1
2
  /**
2
- * ChatKit Pod Schema
3
+ * ChatKit adapter schema exports.
3
4
  *
4
- * 数据模型对齐:
5
- * - Chat (meeting:LongChat) - 对话容器(微信中间栏)
6
- * - Thread (sioc:Thread) - ChatKit thread,作为 Chat 的 fragment
7
- * - Message (meeting:Message) - ChatKit item,放在 Chat 下
8
- *
9
- * 存储结构:
10
- * /.data/chat/{chatId}/
11
- * index.ttl
12
- * #this # Chat 元数据
13
- * #{threadId} # Thread (fragment, ChatKit thread)
14
- * {yyyy}/{MM}/{dd}/messages.ttl
15
- * #{msgId} # Message (ChatKit item)
16
- *
17
- * 映射关系:
18
- * - 微信中间栏 Chat 列表 → Chat
19
- * - ChatKit Thread → Thread (Chat 的 fragment)
20
- * - ChatKit ThreadItem → Message
21
- *
22
- * 注意:Agent 配置(model, systemPrompt)不在 Chat 中,应该在单独的 Agent 表中
23
- *
24
- * RDF 示例:
25
- * ```turtle
26
- * # /.data/chat/workspace-1/index.ttl
27
- * @prefix meeting: <http://www.w3.org/ns/pim/meeting#> .
28
- * @prefix sioc: <http://rdfs.org/sioc/ns#> .
29
- * @prefix dc: <http://purl.org/dc/terms/> .
30
- * @prefix foaf: <http://xmlns.com/foaf/0.1/> .
31
- * @prefix udfs: <https://undefineds.co/ns#> .
32
- *
33
- * <#this> a meeting:LongChat ;
34
- * dc:title "工作区" ;
35
- * dc:author <https://user.pod/profile/card#me> ;
36
- * udfs:status "active" .
37
- *
38
- * <#thread-1> a sioc:Thread ;
39
- * sioc:has_parent <#this> ;
40
- * dc:title "关于代码重构的讨论" ;
41
- * udfs:status "active" ;
42
- * dc:created "2024-01-15T10:00:00Z"^^xsd:dateTime .
43
- *
44
- * # /.data/chat/workspace-1/2024/01/15/messages.ttl
45
- * <#msg-1> a meeting:Message ;
46
- * sioc:has_container <../../../index.ttl#thread-1> ;
47
- * foaf:maker <https://user.pod/profile/card#me> ;
48
- * udfs:role "user" ;
49
- * sioc:content "Hello" ;
50
- * dc:created "2024-01-15T10:00:00Z"^^xsd:dateTime .
51
- *
52
- * <#msg-2> a meeting:Message ;
53
- * sioc:has_container <../../../index.ttl#thread-1> ;
54
- * foaf:maker </.data/agents/claude.ttl#this> ;
55
- * udfs:role "assistant" ;
56
- * sioc:content "Hi there!" ;
57
- * udfs:status "completed" ;
58
- * dc:created "2024-01-15T10:00:01Z"^^xsd:dateTime .
59
- * ```
60
- */
61
- /**
62
- * Chat - 对话容器
63
- *
64
- * 对应微信中间栏的 Chat 列表,可以是群聊或私聊
65
- *
66
- * 注意:Agent 配置(model, systemPrompt)不在这里,应该在单独的 Agent 表中
67
- *
68
- * 存储位置: /.data/chat/{chatId}/index.ttl#this
5
+ * ChatKit is a protocol/adaptation layer in xpod. Durable Pod resources are
6
+ * owned by @undefineds.co/models; this file only preserves local import names.
69
7
  */
70
8
  export declare const Chat: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
71
- id: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
72
- title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
9
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
10
+ title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
11
+ description: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
12
+ avatarUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
73
13
  author: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
14
+ status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
15
+ starred: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
16
+ muted: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
17
+ unreadCount: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
18
+ contact: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
74
19
  participants: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
75
- status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
76
- createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
77
- updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
20
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
21
+ lastActiveAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
22
+ lastMessageId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
23
+ lastMessagePreview: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
24
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
25
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
78
26
  }>>;
79
- /**
80
- * Thread - ChatKit 的 thread(对话线程)
81
- *
82
- * 作为 Chat 的 fragment,与 Chat 元数据存储在同一文件。
83
- * 对应 ChatKit 的 Thread 概念,是一次完整的对话。
84
- *
85
- * 存储位置: /.data/chat/{chatId}/index.ttl#{id}
86
- */
87
27
  export declare const Thread: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
88
- id: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
89
- chatId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
28
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
29
+ commandKind: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
30
+ surfaceId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
31
+ chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
90
32
  title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
91
- status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
92
- /** 工作目录路径,可变(运行时可切换) */
93
- workspace: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
94
- /**
95
- * JSON string for extended metadata (e.g., xpod runtime hints).
96
- * Note: drizzle-solid stores this as an RDF literal.
97
- */
98
- metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
99
- createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
100
- updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
33
+ status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
34
+ starred: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
35
+ workspace: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
36
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
37
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
38
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
101
39
  }>>;
102
- /**
103
- * Message - ChatKit 的 ThreadItem(单条消息)
104
- *
105
- * 放在 Chat 下,通过 thread 关联到 Thread。
106
- * 对应 ChatKit 的 ThreadItem 概念。
107
- *
108
- * 存储位置: /.data/chat/{chatId}/{yyyy}/{MM}/{dd}/messages.ttl#{id}
109
- * 按日期分组存储,避免独立文件导致的 SPARQL OPTIONAL 查询失败问题
110
- */
111
40
  export declare const Message: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
112
- id: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
41
+ id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
42
+ commandKind: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
43
+ surfaceId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
113
44
  chat: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
114
45
  thread: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
115
46
  maker: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
116
- role: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
117
- content: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
118
- status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
119
- createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
47
+ role: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
48
+ content: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
49
+ richContent: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
50
+ status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
120
51
  toolName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
121
52
  toolCallId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
122
- metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
53
+ metadata: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"object", null, false, false>;
54
+ replacedBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
55
+ deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
56
+ senderName: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
57
+ senderAvatarUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
58
+ mentions: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", false, false>;
59
+ replyTo: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
60
+ routedBy: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
61
+ routeTargetAgentId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
62
+ coordinationId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
63
+ createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
64
+ updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
123
65
  }>>;
124
- export type ChatRecord = typeof Chat.$inferSelect;
125
- export type ThreadRecord = typeof Thread.$inferSelect;
126
- export type MessageRecord = typeof Message.$inferSelect;
127
- export declare const ChatStatus: {
128
- readonly ACTIVE: "active";
129
- readonly ARCHIVED: "archived";
130
- readonly DELETED: "deleted";
131
- };
132
- export type ChatStatusType = (typeof ChatStatus)[keyof typeof ChatStatus];
133
- export declare const ThreadStatus: {
134
- readonly ACTIVE: "active";
135
- readonly LOCKED: "locked";
136
- readonly CLOSED: "closed";
137
- };
138
- export type ThreadStatusType = (typeof ThreadStatus)[keyof typeof ThreadStatus];
139
- export declare const MessageRole: {
140
- readonly USER: "user";
141
- readonly ASSISTANT: "assistant";
142
- readonly SYSTEM: "system";
143
- };
144
- export type MessageRoleType = (typeof MessageRole)[keyof typeof MessageRole];
145
- export declare const MessageStatus: {
146
- readonly IN_PROGRESS: "in_progress";
147
- readonly COMPLETED: "completed";
148
- readonly INCOMPLETE: "incomplete";
149
- };
150
- export type MessageStatusType = (typeof MessageStatus)[keyof typeof MessageStatus];
66
+ export { ChatStatus, MessageRole, MessageStatus };
67
+ export type ChatRecord = ChatRow;
68
+ export type ThreadRecord = ThreadRow;
69
+ export type MessageRecord = MessageRow;
70
+ export type { ChatStatusType, MessageRoleType, MessageStatusType, ThreadStatusType, };