@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,251 +0,0 @@
1
- "use strict";
2
- /**
3
- * Get available AI models based on configured providers.
4
- *
5
- * Queries the user's Pod for configured AI providers and returns
6
- * the list of available models from each provider.
7
- */
8
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- var desc = Object.getOwnPropertyDescriptor(m, k);
11
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
- desc = { enumerable: true, get: function() { return m[k]; } };
13
- }
14
- Object.defineProperty(o, k2, desc);
15
- }) : (function(o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- o[k2] = m[k];
18
- }));
19
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
- Object.defineProperty(o, "default", { enumerable: true, value: v });
21
- }) : function(o, v) {
22
- o["default"] = v;
23
- });
24
- var __importStar = (this && this.__importStar) || function (mod) {
25
- if (mod && mod.__esModule) return mod;
26
- var result = {};
27
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
- __setModuleDefault(result, mod);
29
- return result;
30
- };
31
- Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.getAvailableModels = getAvailableModels;
33
- exports.getModelById = getModelById;
34
- exports.listAvailableModels = listAvailableModels;
35
- exports.addCustomModel = addCustomModel;
36
- const drizzle_solid_1 = require("@undefineds.co/drizzle-solid");
37
- const tables_1 = require("../../credential/schema/tables");
38
- const provider_1 = require("../../ai/schema/provider");
39
- const model_1 = require("../../ai/schema/model");
40
- const types_1 = require("../../credential/schema/types");
41
- const pi_optional_1 = require("./pi-optional");
42
- /**
43
- * Get all available models from configured providers.
44
- *
45
- * Returns models from:
46
- * 1. Providers with active API key credentials
47
- * 2. Providers with active OAuth credentials
48
- * 3. Platform default models (from xpod API)
49
- */
50
- async function getAvailableModels(session, xpodUrl) {
51
- const models = [];
52
- try {
53
- const db = (0, drizzle_solid_1.drizzle)({
54
- fetch: session.fetch,
55
- info: session.info,
56
- });
57
- // 1. Get all active credentials
58
- const allApiKeyCredentials = await db.select().from(tables_1.ApiKeyCredential);
59
- const apiKeyCredentials = allApiKeyCredentials.filter((c) => c.service === types_1.ServiceType.AI && c.status === types_1.CredentialStatus.ACTIVE);
60
- const allOAuthCredentials = await db.select().from(tables_1.OAuthCredential);
61
- const oauthCredentials = allOAuthCredentials.filter((c) => c.service === types_1.ServiceType.AI && c.status === types_1.CredentialStatus.ACTIVE);
62
- const allCredentials = [...apiKeyCredentials, ...oauthCredentials];
63
- // 2. Get all providers
64
- const allProviders = await db.select().from(provider_1.Provider);
65
- const providerByUri = new Map(allProviders.map(p => [p['@id'], p]));
66
- // 3. Collect provider IDs from credentials
67
- const configuredProviderIds = new Set();
68
- for (const cred of allCredentials) {
69
- if (!cred.provider)
70
- continue;
71
- const provider = providerByUri.get(cred.provider);
72
- if (provider && provider.id) {
73
- configuredProviderIds.add(provider.id);
74
- }
75
- }
76
- // 4. Get models from each configured provider
77
- for (const providerId of configuredProviderIds) {
78
- try {
79
- // Only get models for known providers
80
- const knownProviders = ['openai', 'anthropic', 'openrouter', 'ollama', 'google', 'codebuddy'];
81
- if (!knownProviders.includes(providerId)) {
82
- console.warn(`Skipping unknown provider: ${providerId}`);
83
- continue;
84
- }
85
- const { getModels } = await (0, pi_optional_1.loadPiAi)();
86
- const providerModels = getModels(providerId);
87
- for (const model of providerModels) {
88
- models.push({
89
- id: model.id,
90
- name: model.name || model.id,
91
- provider: providerId,
92
- providerName: model.provider || providerId,
93
- contextWindow: model.contextWindow,
94
- maxTokens: model.maxTokens,
95
- });
96
- }
97
- }
98
- catch (error) {
99
- console.warn(`Failed to get models for provider ${providerId}:`, error);
100
- }
101
- }
102
- // 4.5. Get custom models from Pod
103
- try {
104
- const allModels = await db.select().from(model_1.Model);
105
- for (const model of allModels) {
106
- // Avoid duplicates
107
- if (!models.some(m => m.id === model.id)) {
108
- const provider = providerByUri.get(model.isProvidedBy);
109
- models.push({
110
- id: model.id,
111
- name: model.displayName || model.id,
112
- provider: provider?.id || 'custom',
113
- providerName: provider?.displayName || 'Custom',
114
- contextWindow: model.contextLength,
115
- maxTokens: model.maxOutputTokens,
116
- });
117
- }
118
- }
119
- }
120
- catch (error) {
121
- console.warn('Failed to get custom models:', error);
122
- }
123
- // 5. Always include platform default models (from xpod API)
124
- try {
125
- const baseUrl = xpodUrl.endsWith('/') ? xpodUrl : `${xpodUrl}/`;
126
- const modelsUrl = `${baseUrl}v1/models`;
127
- const response = await session.fetch(modelsUrl, {
128
- headers: {
129
- 'Accept': 'application/json',
130
- },
131
- });
132
- if (response.ok) {
133
- const data = await response.json();
134
- for (const model of data.data) {
135
- // Avoid duplicates
136
- if (!models.some(m => m.id === model.id)) {
137
- models.push({
138
- id: model.id,
139
- name: model.name || model.id,
140
- provider: model.provider || 'platform',
141
- providerName: model.owned_by || 'Platform Default',
142
- contextWindow: model.context_window,
143
- maxTokens: model.max_tokens,
144
- });
145
- }
146
- }
147
- }
148
- else {
149
- console.warn(`Failed to fetch platform models: ${response.status}`);
150
- }
151
- }
152
- catch (error) {
153
- console.warn('Failed to get platform default models:', error);
154
- }
155
- }
156
- catch (error) {
157
- console.error('Failed to get available models:', error);
158
- // Return empty array on error
159
- }
160
- return models;
161
- }
162
- /**
163
- * Get a specific model by ID.
164
- */
165
- async function getModelById(session, xpodUrl, modelId) {
166
- const models = await getAvailableModels(session, xpodUrl);
167
- return models.find(m => m.id === modelId) || null;
168
- }
169
- /**
170
- * List available models (for CLI display).
171
- */
172
- async function listAvailableModels(session, xpodUrl) {
173
- const models = await getAvailableModels(session, xpodUrl);
174
- console.log('\n📋 Available Models:\n');
175
- // Group by provider
176
- const byProvider = new Map();
177
- for (const model of models) {
178
- const list = byProvider.get(model.provider) || [];
179
- list.push(model);
180
- byProvider.set(model.provider, list);
181
- }
182
- for (const [, providerModels] of byProvider) {
183
- console.log(`\n${providerModels[0].providerName}:`);
184
- for (const model of providerModels) {
185
- const ctx = model.contextWindow ? ` (${model.contextWindow} tokens)` : '';
186
- console.log(` ${model.id}${ctx}`);
187
- }
188
- }
189
- console.log('');
190
- }
191
- /**
192
- * Add a custom model to the user's Pod.
193
- */
194
- async function addCustomModel(session, xpodUrl, modelId) {
195
- try {
196
- const db = (0, drizzle_solid_1.drizzle)({
197
- fetch: session.fetch,
198
- info: session.info,
199
- });
200
- // Check if model already exists
201
- const allModels = await db.select().from(model_1.Model);
202
- if (allModels.some(m => m.id === modelId)) {
203
- console.log(`✓ Model ${modelId} already exists`);
204
- return;
205
- }
206
- // Prompt for provider
207
- const { promptText } = await Promise.resolve().then(() => __importStar(require('./prompt.js')));
208
- console.log('\n📝 Add custom model\n');
209
- const displayName = await promptText(`Display name (default: ${modelId}): `);
210
- const providerInput = await promptText('Provider ID (e.g., openai, anthropic, custom): ');
211
- const providerId = providerInput || 'custom';
212
- // Get or create provider
213
- const allProviders = await db.select().from(provider_1.Provider);
214
- let provider = allProviders.find(p => p.id === providerId);
215
- if (!provider) {
216
- console.log(`\n⚠️ Provider ${providerId} not found. Creating new provider...`);
217
- const providerName = await promptText(`Provider display name (default: ${providerId}): `);
218
- const baseUrl = await promptText('Base URL (optional): ');
219
- await db.insert(provider_1.Provider).values({
220
- id: providerId,
221
- displayName: providerName || providerId,
222
- baseUrl: baseUrl || undefined,
223
- });
224
- // Reload provider
225
- const updatedProviders = await db.select().from(provider_1.Provider);
226
- provider = updatedProviders.find(p => p.id === providerId);
227
- }
228
- if (!provider) {
229
- throw new Error('Failed to create provider');
230
- }
231
- // Create model
232
- const podUrl = xpodUrl.endsWith('/') ? xpodUrl : `${xpodUrl}/`;
233
- const providerUri = `${podUrl}settings/ai/providers.ttl#${providerId}`;
234
- await db.insert(model_1.Model).values({
235
- id: modelId,
236
- displayName: displayName || modelId,
237
- isProvidedBy: providerUri,
238
- status: 'active',
239
- createdAt: new Date().toISOString(),
240
- updatedAt: new Date().toISOString(),
241
- });
242
- console.log(`\n✅ Model ${modelId} added successfully!`);
243
- console.log(` Provider: ${provider.displayName || providerId}`);
244
- console.log(` Display name: ${displayName || modelId}\n`);
245
- }
246
- catch (error) {
247
- console.error('Failed to add custom model:', error);
248
- throw error;
249
- }
250
- }
251
- //# sourceMappingURL=model-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-manager.js","sourceRoot":"","sources":["../../../src/cli/lib/model-manager.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;AA4BH,gDA0HC;AAKD,oCAGC;AAKD,kDAsBC;AAKD,wCAkEC;AA9PD,gEAAuD;AACvD,2DAAmF;AACnF,uDAAoD;AACpD,iDAA8C;AAC9C,yDAA8E;AAE9E,+CAAyC;AAYzC;;;;;;;GAOG;AACI,KAAK,UAAU,kBAAkB,CAAC,OAAgB,EAAE,OAAe;IACxE,MAAM,MAAM,GAAqB,EAAE,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,EAAE,GAAQ,IAAA,uBAAO,EAAC;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;SACZ,CAAC,CAAC;QAEV,gCAAgC;QAChC,MAAM,oBAAoB,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,yBAAgB,CAAU,CAAC;QAC/E,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAC/D,CAAC,CAAC,OAAO,KAAK,mBAAW,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,wBAAgB,CAAC,MAAM,CACrE,CAAC;QAEF,MAAM,mBAAmB,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,wBAAe,CAAU,CAAC;QAC7E,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAC7D,CAAC,CAAC,OAAO,KAAK,mBAAW,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,wBAAgB,CAAC,MAAM,CACrE,CAAC;QAEF,MAAM,cAAc,GAAG,CAAC,GAAG,iBAAiB,EAAE,GAAG,gBAAgB,CAAC,CAAC;QAEnE,uBAAuB;QACvB,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,mBAAQ,CAAU,CAAC;QAC/D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpE,2CAA2C;QAC3C,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAC;QAChD,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAC7B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,QAAQ,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAC5B,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAY,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,KAAK,MAAM,UAAU,IAAI,qBAAqB,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,sCAAsC;gBACtC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;gBAC9F,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACzC,OAAO,CAAC,IAAI,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;oBACzD,SAAS;gBACX,CAAC;gBAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,sBAAQ,GAAE,CAAC;gBACvC,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;gBAC7C,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;oBACnC,MAAM,CAAC,IAAI,CAAC;wBACV,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;wBAC5B,QAAQ,EAAE,UAAU;wBACpB,YAAY,EAAE,KAAK,CAAC,QAAQ,IAAI,UAAU;wBAC1C,aAAa,EAAE,KAAK,CAAC,aAAa;wBAClC,SAAS,EAAE,KAAK,CAAC,SAAS;qBAC3B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,qCAAqC,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,aAAK,CAAU,CAAC;YACzD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;gBAC9B,mBAAmB;gBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;oBACzC,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBACvD,MAAM,CAAC,IAAI,CAAC;wBACV,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,EAAE;wBACnC,QAAQ,EAAE,QAAQ,EAAE,EAAY,IAAI,QAAQ;wBAC5C,YAAY,EAAE,QAAQ,EAAE,WAAqB,IAAI,QAAQ;wBACzD,aAAa,EAAE,KAAK,CAAC,aAAa;wBAClC,SAAS,EAAE,KAAK,CAAC,eAAe;qBACjC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;QAED,4DAA4D;QAC5D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC;YAChE,MAAM,SAAS,GAAG,GAAG,OAAO,WAAW,CAAC;YAExC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE;gBAC9C,OAAO,EAAE;oBACP,QAAQ,EAAE,kBAAkB;iBAC7B;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAqC,CAAC;gBACtE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC9B,mBAAmB;oBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;wBACzC,MAAM,CAAC,IAAI,CAAC;4BACV,EAAE,EAAE,KAAK,CAAC,EAAE;4BACZ,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;4BAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,UAAU;4BACtC,YAAY,EAAE,KAAK,CAAC,QAAQ,IAAI,kBAAkB;4BAClD,aAAa,EAAE,KAAK,CAAC,cAAc;4BACnC,SAAS,EAAE,KAAK,CAAC,UAAU;yBAC5B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,oCAAoC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QACxD,8BAA8B;IAChC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,YAAY,CAAC,OAAgB,EAAE,OAAe,EAAE,OAAe;IACnF,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC;AACpD,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,mBAAmB,CAAC,OAAgB,EAAE,OAAe;IACzE,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE1D,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAExC,oBAAoB;IACpB,MAAM,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;IACvD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,MAAM,CAAC,EAAE,cAAc,CAAC,IAAI,UAAU,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,aAAa,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,cAAc,CAAC,OAAgB,EAAE,OAAe,EAAE,OAAe;IACrF,IAAI,CAAC;QACH,MAAM,EAAE,GAAQ,IAAA,uBAAO,EAAC;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;SACZ,CAAC,CAAC;QAEV,gCAAgC;QAChC,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,aAAK,CAAU,CAAC;QACzD,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,iBAAiB,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,MAAM,EAAE,UAAU,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAEvC,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,0BAA0B,OAAO,KAAK,CAAC,CAAC;QAC7E,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,iDAAiD,CAAC,CAAC;QAC1F,MAAM,UAAU,GAAG,aAAa,IAAI,QAAQ,CAAC;QAE7C,yBAAyB;QACzB,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,mBAAQ,CAAU,CAAC;QAC/D,IAAI,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;QAE3D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,sCAAsC,CAAC,CAAC;YAChF,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,mCAAmC,UAAU,KAAK,CAAC,CAAC;YAC1F,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,uBAAuB,CAAC,CAAC;YAE1D,MAAM,EAAE,CAAC,MAAM,CAAC,mBAAQ,CAAC,CAAC,MAAM,CAAC;gBAC/B,EAAE,EAAE,UAAU;gBACd,WAAW,EAAE,YAAY,IAAI,UAAU;gBACvC,OAAO,EAAE,OAAO,IAAI,SAAS;aAC9B,CAAC,CAAC;YAEH,kBAAkB;YAClB,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,mBAAQ,CAAU,CAAC;YACnE,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,eAAe;QACf,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC;QAC/D,MAAM,WAAW,GAAG,GAAG,MAAM,6BAA6B,UAAU,EAAE,CAAC;QAEvE,MAAM,EAAE,CAAC,MAAM,CAAC,aAAK,CAAC,CAAC,MAAM,CAAC;YAC5B,EAAE,EAAE,OAAO;YACX,WAAW,EAAE,WAAW,IAAI,OAAO;YACnC,YAAY,EAAE,WAAW;YACzB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,sBAAsB,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,WAAW,IAAI,UAAU,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,oBAAoB,WAAW,IAAI,OAAO,IAAI,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["/**\n * Get available AI models based on configured providers.\n *\n * Queries the user's Pod for configured AI providers and returns\n * the list of available models from each provider.\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 { loadPiAi } from './pi-optional';\n\nexport interface AvailableModel {\n id: string;\n name: string;\n provider: string;\n providerName: string;\n description?: string;\n contextWindow?: number;\n maxTokens?: number;\n}\n\n/**\n * Get all available models from configured providers.\n *\n * Returns models from:\n * 1. Providers with active API key credentials\n * 2. Providers with active OAuth credentials\n * 3. Platform default models (from xpod API)\n */\nexport async function getAvailableModels(session: Session, xpodUrl: string): Promise<AvailableModel[]> {\n const models: AvailableModel[] = [];\n\n try {\n const db: any = drizzle({\n fetch: session.fetch,\n info: session.info,\n } as any);\n\n // 1. Get all active 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 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 const allCredentials = [...apiKeyCredentials, ...oauthCredentials];\n\n // 2. Get all providers\n const allProviders = await db.select().from(Provider) as any[];\n const providerByUri = new Map(allProviders.map(p => [p['@id'], p]));\n\n // 3. Collect provider IDs from credentials\n const configuredProviderIds = new Set<string>();\n for (const cred of allCredentials) {\n if (!cred.provider) continue;\n const provider = providerByUri.get(cred.provider);\n if (provider && provider.id) {\n configuredProviderIds.add(provider.id as string);\n }\n }\n\n // 4. Get models from each configured provider\n for (const providerId of configuredProviderIds) {\n try {\n // Only get models for known providers\n const knownProviders = ['openai', 'anthropic', 'openrouter', 'ollama', 'google', 'codebuddy'];\n if (!knownProviders.includes(providerId)) {\n console.warn(`Skipping unknown provider: ${providerId}`);\n continue;\n }\n\n const { getModels } = await loadPiAi();\n const providerModels = getModels(providerId);\n for (const model of providerModels) {\n models.push({\n id: model.id,\n name: model.name || model.id,\n provider: providerId,\n providerName: model.provider || providerId,\n contextWindow: model.contextWindow,\n maxTokens: model.maxTokens,\n });\n }\n } catch (error) {\n console.warn(`Failed to get models for provider ${providerId}:`, error);\n }\n }\n\n // 4.5. Get custom models from Pod\n try {\n const allModels = await db.select().from(Model) as any[];\n for (const model of allModels) {\n // Avoid duplicates\n if (!models.some(m => m.id === model.id)) {\n const provider = providerByUri.get(model.isProvidedBy);\n models.push({\n id: model.id,\n name: model.displayName || model.id,\n provider: provider?.id as string || 'custom',\n providerName: provider?.displayName as string || 'Custom',\n contextWindow: model.contextLength,\n maxTokens: model.maxOutputTokens,\n });\n }\n }\n } catch (error) {\n console.warn('Failed to get custom models:', error);\n }\n\n // 5. Always include platform default models (from xpod API)\n try {\n const baseUrl = xpodUrl.endsWith('/') ? xpodUrl : `${xpodUrl}/`;\n const modelsUrl = `${baseUrl}v1/models`;\n\n const response = await session.fetch(modelsUrl, {\n headers: {\n 'Accept': 'application/json',\n },\n });\n\n if (response.ok) {\n const data = await response.json() as { object: string; data: any[] };\n for (const model of data.data) {\n // Avoid duplicates\n if (!models.some(m => m.id === model.id)) {\n models.push({\n id: model.id,\n name: model.name || model.id,\n provider: model.provider || 'platform',\n providerName: model.owned_by || 'Platform Default',\n contextWindow: model.context_window,\n maxTokens: model.max_tokens,\n });\n }\n }\n } else {\n console.warn(`Failed to fetch platform models: ${response.status}`);\n }\n } catch (error) {\n console.warn('Failed to get platform default models:', error);\n }\n } catch (error) {\n console.error('Failed to get available models:', error);\n // Return empty array on error\n }\n\n return models;\n}\n\n/**\n * Get a specific model by ID.\n */\nexport async function getModelById(session: Session, xpodUrl: string, modelId: string): Promise<AvailableModel | null> {\n const models = await getAvailableModels(session, xpodUrl);\n return models.find(m => m.id === modelId) || null;\n}\n\n/**\n * List available models (for CLI display).\n */\nexport async function listAvailableModels(session: Session, xpodUrl: string): Promise<void> {\n const models = await getAvailableModels(session, xpodUrl);\n\n console.log('\\n📋 Available Models:\\n');\n\n // Group by provider\n const byProvider = new Map<string, AvailableModel[]>();\n for (const model of models) {\n const list = byProvider.get(model.provider) || [];\n list.push(model);\n byProvider.set(model.provider, list);\n }\n\n for (const [, providerModels] of byProvider) {\n console.log(`\\n${providerModels[0].providerName}:`);\n for (const model of providerModels) {\n const ctx = model.contextWindow ? ` (${model.contextWindow} tokens)` : '';\n console.log(` ${model.id}${ctx}`);\n }\n }\n\n console.log('');\n}\n\n/**\n * Add a custom model to the user's Pod.\n */\nexport async function addCustomModel(session: Session, xpodUrl: string, modelId: string): Promise<void> {\n try {\n const db: any = drizzle({\n fetch: session.fetch,\n info: session.info,\n } as any);\n\n // Check if model already exists\n const allModels = await db.select().from(Model) as any[];\n if (allModels.some(m => m.id === modelId)) {\n console.log(`✓ Model ${modelId} already exists`);\n return;\n }\n\n // Prompt for provider\n const { promptText } = await import('./prompt.js');\n console.log('\\n📝 Add custom model\\n');\n\n const displayName = await promptText(`Display name (default: ${modelId}): `);\n const providerInput = await promptText('Provider ID (e.g., openai, anthropic, custom): ');\n const providerId = providerInput || 'custom';\n\n // Get or create provider\n const allProviders = await db.select().from(Provider) as any[];\n let provider = allProviders.find(p => p.id === providerId);\n\n if (!provider) {\n console.log(`\\n⚠️ Provider ${providerId} not found. Creating new provider...`);\n const providerName = await promptText(`Provider display name (default: ${providerId}): `);\n const baseUrl = await promptText('Base URL (optional): ');\n\n await db.insert(Provider).values({\n id: providerId,\n displayName: providerName || providerId,\n baseUrl: baseUrl || undefined,\n });\n\n // Reload provider\n const updatedProviders = await db.select().from(Provider) as any[];\n provider = updatedProviders.find(p => p.id === providerId);\n }\n\n if (!provider) {\n throw new Error('Failed to create provider');\n }\n\n // Create model\n const podUrl = xpodUrl.endsWith('/') ? xpodUrl : `${xpodUrl}/`;\n const providerUri = `${podUrl}settings/ai/providers.ttl#${providerId}`;\n\n await db.insert(Model).values({\n id: modelId,\n displayName: displayName || modelId,\n isProvidedBy: providerUri,\n status: 'active',\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n });\n\n console.log(`\\n✅ Model ${modelId} added successfully!`);\n console.log(` Provider: ${provider.displayName || providerId}`);\n console.log(` Display name: ${displayName || modelId}\\n`);\n } catch (error) {\n console.error('Failed to add custom model:', error);\n throw error;\n }\n}\n"]}
@@ -1,37 +0,0 @@
1
- /**
2
- * OAuth Credential Manager
3
- *
4
- * 管理 AI Provider 的 OAuth credentials:
5
- * - 存储到 Pod
6
- * - 从 Pod 读取
7
- * - Token 刷新
8
- */
9
- import type { Session } from '@inrupt/solid-client-authn-node';
10
- import { type OAuthCredentials } from './pi-optional';
11
- /**
12
- * 保存 OAuth credentials 到 Pod
13
- *
14
- * @param session - Solid session
15
- * @param providerId - Provider ID (e.g., 'codebuddy')
16
- * @param providerUri - Provider 的完整 URI (e.g., 'http://pod/settings/ai/providers.ttl#codebuddy')
17
- * @param credentials - OAuth credentials from provider.login()
18
- * @param label - 可选的标签
19
- */
20
- export declare function saveOAuthCredential(session: Session, providerId: string, providerUri: string, credentials: OAuthCredentials, label?: string): Promise<string>;
21
- /**
22
- * 刷新 OAuth token
23
- *
24
- * @param session - Solid session
25
- * @param credentialId - Credential ID
26
- * @param providerId - Provider ID (用于查找 OAuth provider)
27
- */
28
- export declare function refreshOAuthToken(session: Session, credentialId: string, providerId: string): Promise<void>;
29
- /**
30
- * 检查并自动刷新过期的 OAuth token
31
- *
32
- * @param session - Solid session
33
- * @param credentialId - Credential ID
34
- * @param providerId - Provider ID
35
- * @returns 是否成功刷新
36
- */
37
- export declare function ensureOAuthTokenValid(session: Session, credentialId: string, providerId: string): Promise<boolean>;
@@ -1,129 +0,0 @@
1
- "use strict";
2
- /**
3
- * OAuth Credential Manager
4
- *
5
- * 管理 AI Provider 的 OAuth credentials:
6
- * - 存储到 Pod
7
- * - 从 Pod 读取
8
- * - Token 刷新
9
- */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.saveOAuthCredential = saveOAuthCredential;
12
- exports.refreshOAuthToken = refreshOAuthToken;
13
- exports.ensureOAuthTokenValid = ensureOAuthTokenValid;
14
- const drizzle_solid_1 = require("@undefineds.co/drizzle-solid");
15
- const tables_1 = require("../../credential/schema/tables");
16
- const types_1 = require("../../credential/schema/types");
17
- const pi_optional_1 = require("./pi-optional");
18
- /**
19
- * 保存 OAuth credentials 到 Pod
20
- *
21
- * @param session - Solid session
22
- * @param providerId - Provider ID (e.g., 'codebuddy')
23
- * @param providerUri - Provider 的完整 URI (e.g., 'http://pod/settings/ai/providers.ttl#codebuddy')
24
- * @param credentials - OAuth credentials from provider.login()
25
- * @param label - 可选的标签
26
- */
27
- async function saveOAuthCredential(session, providerId, providerUri, credentials, label) {
28
- const db = (0, drizzle_solid_1.drizzle)({
29
- fetch: session.fetch,
30
- info: session.info,
31
- });
32
- // 生成 credential ID
33
- const credentialId = `oauth-${providerId}-${Date.now()}`;
34
- // 插入 OAuthCredential
35
- await db.insert(tables_1.OAuthCredential).values({
36
- id: credentialId,
37
- provider: providerUri,
38
- service: types_1.ServiceType.AI,
39
- status: types_1.CredentialStatus.ACTIVE,
40
- label: label || `${providerId} OAuth`,
41
- oauthRefreshToken: credentials.refresh,
42
- oauthAccessToken: credentials.access,
43
- oauthExpiresAt: new Date(credentials.expires),
44
- });
45
- console.log(`✓ OAuth credential saved: ${credentialId}`);
46
- return credentialId;
47
- }
48
- /**
49
- * 刷新 OAuth token
50
- *
51
- * @param session - Solid session
52
- * @param credentialId - Credential ID
53
- * @param providerId - Provider ID (用于查找 OAuth provider)
54
- */
55
- async function refreshOAuthToken(session, credentialId, providerId) {
56
- const db = (0, drizzle_solid_1.drizzle)({
57
- fetch: session.fetch,
58
- info: session.info,
59
- });
60
- // 1. 读取现有 credential
61
- const allCredentials = await db.select().from(tables_1.OAuthCredential);
62
- const credential = allCredentials.find((c) => c.id === credentialId);
63
- if (!credential) {
64
- throw new Error(`OAuth credential not found: ${credentialId}`);
65
- }
66
- // 2. 获取 OAuth provider
67
- const { getOAuthProvider } = await (0, pi_optional_1.loadPiAiOAuthUtils)();
68
- const provider = getOAuthProvider(providerId);
69
- if (!provider) {
70
- throw new Error(`OAuth provider not found: ${providerId}`);
71
- }
72
- // 3. 刷新 token
73
- const oldCredentials = {
74
- refresh: credential.oauthRefreshToken || '',
75
- access: credential.oauthAccessToken || '',
76
- expires: credential.oauthExpiresAt ? new Date(credential.oauthExpiresAt).getTime() : 0,
77
- };
78
- const newCredentials = await provider.refreshToken(oldCredentials);
79
- // 4. 更新 Pod 中的 credential
80
- await db.update(tables_1.OAuthCredential)
81
- .set({
82
- oauthRefreshToken: newCredentials.refresh,
83
- oauthAccessToken: newCredentials.access,
84
- oauthExpiresAt: new Date(newCredentials.expires),
85
- })
86
- .where({ id: credentialId });
87
- console.log(`✓ OAuth token refreshed: ${credentialId}`);
88
- }
89
- /**
90
- * 检查并自动刷新过期的 OAuth token
91
- *
92
- * @param session - Solid session
93
- * @param credentialId - Credential ID
94
- * @param providerId - Provider ID
95
- * @returns 是否成功刷新
96
- */
97
- async function ensureOAuthTokenValid(session, credentialId, providerId) {
98
- const db = (0, drizzle_solid_1.drizzle)({
99
- fetch: session.fetch,
100
- info: session.info,
101
- });
102
- // 读取 credential
103
- const allCredentials = await db.select().from(tables_1.OAuthCredential);
104
- const credential = allCredentials.find((c) => c.id === credentialId);
105
- if (!credential) {
106
- return false;
107
- }
108
- // 检查是否过期(提前 5 分钟刷新)
109
- const expiresAt = credential.oauthExpiresAt ? new Date(credential.oauthExpiresAt) : null;
110
- if (!expiresAt) {
111
- return false;
112
- }
113
- const now = new Date();
114
- const fiveMinutesLater = new Date(now.getTime() + 5 * 60 * 1000);
115
- if (expiresAt > fiveMinutesLater) {
116
- // Token 还有效
117
- return true;
118
- }
119
- // Token 即将过期或已过期,尝试刷新
120
- try {
121
- await refreshOAuthToken(session, credentialId, providerId);
122
- return true;
123
- }
124
- catch (error) {
125
- console.error(`Failed to refresh OAuth token: ${error}`);
126
- return false;
127
- }
128
- }
129
- //# sourceMappingURL=oauth-credential-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth-credential-manager.js","sourceRoot":"","sources":["../../../src/cli/lib/oauth-credential-manager.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAiBH,kDA6BC;AASD,8CA4CC;AAUD,sDAwCC;AAnJD,gEAAuD;AACvD,2DAAiE;AACjE,yDAA8E;AAE9E,+CAA0E;AAE1E;;;;;;;;GAQG;AACI,KAAK,UAAU,mBAAmB,CACvC,OAAgB,EAChB,UAAkB,EAClB,WAAmB,EACnB,WAA6B,EAC7B,KAAc;IAEd,MAAM,EAAE,GAAQ,IAAA,uBAAO,EAAC;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;KACZ,CAAC,CAAC;IAEV,mBAAmB;IACnB,MAAM,YAAY,GAAG,SAAS,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAEzD,qBAAqB;IACrB,MAAM,EAAE,CAAC,MAAM,CAAC,wBAAe,CAAC,CAAC,MAAM,CAAC;QACtC,EAAE,EAAE,YAAY;QAChB,QAAQ,EAAE,WAAW;QACrB,OAAO,EAAE,mBAAW,CAAC,EAAE;QACvB,MAAM,EAAE,wBAAgB,CAAC,MAAM;QAC/B,KAAK,EAAE,KAAK,IAAI,GAAG,UAAU,QAAQ;QACrC,iBAAiB,EAAE,WAAW,CAAC,OAAO;QACtC,gBAAgB,EAAE,WAAW,CAAC,MAAM;QACpC,cAAc,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;KAC9C,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAC;IACzD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,iBAAiB,CACrC,OAAgB,EAChB,YAAoB,EACpB,UAAkB;IAElB,MAAM,EAAE,GAAQ,IAAA,uBAAO,EAAC;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;KACZ,CAAC,CAAC;IAEV,qBAAqB;IACrB,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,wBAAe,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;IAE1E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,+BAA+B,YAAY,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,uBAAuB;IACvB,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,IAAA,gCAAkB,GAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,6BAA6B,UAAU,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,cAAc;IACd,MAAM,cAAc,GAAqB;QACvC,OAAO,EAAE,UAAU,CAAC,iBAAiB,IAAI,EAAE;QAC3C,MAAM,EAAE,UAAU,CAAC,gBAAgB,IAAI,EAAE;QACzC,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;KACvF,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAEnE,0BAA0B;IAC1B,MAAM,EAAE,CAAC,MAAM,CAAC,wBAAe,CAAC;SAC7B,GAAG,CAAC;QACH,iBAAiB,EAAE,cAAc,CAAC,OAAO;QACzC,gBAAgB,EAAE,cAAc,CAAC,MAAM;QACvC,cAAc,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;KACjD,CAAC;SACD,KAAK,CAAC,EAAE,EAAE,EAAE,YAAY,EAAS,CAAC,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,qBAAqB,CACzC,OAAgB,EAChB,YAAoB,EACpB,UAAkB;IAElB,MAAM,EAAE,GAAQ,IAAA,uBAAO,EAAC;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;KACZ,CAAC,CAAC;IAEV,gBAAgB;IAChB,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,wBAAe,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;IAE1E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oBAAoB;IACpB,MAAM,SAAS,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzF,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,gBAAgB,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAEjE,IAAI,SAAS,GAAG,gBAAgB,EAAE,CAAC;QACjC,YAAY;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB;IACtB,IAAI,CAAC;QACH,MAAM,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["/**\n * OAuth Credential Manager\n *\n * 管理 AI Provider 的 OAuth credentials:\n * - 存储到 Pod\n * - 从 Pod 读取\n * - Token 刷新\n */\n\nimport { drizzle } from '@undefineds.co/drizzle-solid';\nimport { OAuthCredential } from '../../credential/schema/tables';\nimport { ServiceType, CredentialStatus } from '../../credential/schema/types';\nimport type { Session } from '@inrupt/solid-client-authn-node';\nimport { loadPiAiOAuthUtils, type OAuthCredentials } from './pi-optional';\n\n/**\n * 保存 OAuth credentials 到 Pod\n *\n * @param session - Solid session\n * @param providerId - Provider ID (e.g., 'codebuddy')\n * @param providerUri - Provider 的完整 URI (e.g., 'http://pod/settings/ai/providers.ttl#codebuddy')\n * @param credentials - OAuth credentials from provider.login()\n * @param label - 可选的标签\n */\nexport async function saveOAuthCredential(\n session: Session,\n providerId: string,\n providerUri: string,\n credentials: OAuthCredentials,\n label?: string,\n): Promise<string> {\n const db: any = drizzle({\n fetch: session.fetch,\n info: session.info,\n } as any);\n\n // 生成 credential ID\n const credentialId = `oauth-${providerId}-${Date.now()}`;\n\n // 插入 OAuthCredential\n await db.insert(OAuthCredential).values({\n id: credentialId,\n provider: providerUri,\n service: ServiceType.AI,\n status: CredentialStatus.ACTIVE,\n label: label || `${providerId} OAuth`,\n oauthRefreshToken: credentials.refresh,\n oauthAccessToken: credentials.access,\n oauthExpiresAt: new Date(credentials.expires),\n });\n\n console.log(`✓ OAuth credential saved: ${credentialId}`);\n return credentialId;\n}\n\n/**\n * 刷新 OAuth token\n *\n * @param session - Solid session\n * @param credentialId - Credential ID\n * @param providerId - Provider ID (用于查找 OAuth provider)\n */\nexport async function refreshOAuthToken(\n session: Session,\n credentialId: string,\n providerId: string,\n): Promise<void> {\n const db: any = drizzle({\n fetch: session.fetch,\n info: session.info,\n } as any);\n\n // 1. 读取现有 credential\n const allCredentials = await db.select().from(OAuthCredential);\n const credential = allCredentials.find((c: any) => c.id === credentialId);\n\n if (!credential) {\n throw new Error(`OAuth credential not found: ${credentialId}`);\n }\n\n // 2. 获取 OAuth provider\n const { getOAuthProvider } = await loadPiAiOAuthUtils();\n const provider = getOAuthProvider(providerId);\n if (!provider) {\n throw new Error(`OAuth provider not found: ${providerId}`);\n }\n\n // 3. 刷新 token\n const oldCredentials: OAuthCredentials = {\n refresh: credential.oauthRefreshToken || '',\n access: credential.oauthAccessToken || '',\n expires: credential.oauthExpiresAt ? new Date(credential.oauthExpiresAt).getTime() : 0,\n };\n\n const newCredentials = await provider.refreshToken(oldCredentials);\n\n // 4. 更新 Pod 中的 credential\n await db.update(OAuthCredential)\n .set({\n oauthRefreshToken: newCredentials.refresh,\n oauthAccessToken: newCredentials.access,\n oauthExpiresAt: new Date(newCredentials.expires),\n })\n .where({ id: credentialId } as any);\n\n console.log(`✓ OAuth token refreshed: ${credentialId}`);\n}\n\n/**\n * 检查并自动刷新过期的 OAuth token\n *\n * @param session - Solid session\n * @param credentialId - Credential ID\n * @param providerId - Provider ID\n * @returns 是否成功刷新\n */\nexport async function ensureOAuthTokenValid(\n session: Session,\n credentialId: string,\n providerId: string,\n): Promise<boolean> {\n const db: any = drizzle({\n fetch: session.fetch,\n info: session.info,\n } as any);\n\n // 读取 credential\n const allCredentials = await db.select().from(OAuthCredential);\n const credential = allCredentials.find((c: any) => c.id === credentialId);\n\n if (!credential) {\n return false;\n }\n\n // 检查是否过期(提前 5 分钟刷新)\n const expiresAt = credential.oauthExpiresAt ? new Date(credential.oauthExpiresAt) : null;\n if (!expiresAt) {\n return false;\n }\n\n const now = new Date();\n const fiveMinutesLater = new Date(now.getTime() + 5 * 60 * 1000);\n\n if (expiresAt > fiveMinutesLater) {\n // Token 还有效\n return true;\n }\n\n // Token 即将过期或已过期,尝试刷新\n try {\n await refreshOAuthToken(session, credentialId, providerId);\n return true;\n } catch (error) {\n console.error(`Failed to refresh OAuth token: ${error}`);\n return false;\n }\n}\n"]}
@@ -1,25 +0,0 @@
1
- /**
2
- * CodeBuddy OAuth Provider
3
- *
4
- * 通过 @tencent-ai/agent-sdk 的 authenticate() 实现 OAuth 登录。
5
- * 登录后 token 存入 Pod 的 Credential 表,跨环境复用。
6
- */
7
- import type { OAuthCredentials, OAuthProviderInterface } from '../pi-optional';
8
- /**
9
- * CodeBuddy OAuth 登录
10
- *
11
- * 调用 @tencent-ai/agent-sdk 的 authenticate(),
12
- * 打开浏览器让用户登录腾讯账号,获取 token。
13
- */
14
- export declare function loginCodeBuddy(onAuthUrl: (url: string) => void): Promise<OAuthCredentials>;
15
- /**
16
- * CodeBuddy token 刷新
17
- *
18
- * CodeBuddy SDK 内部管理 token 生命周期,
19
- * 如果 token 过期,需要重新登录。
20
- */
21
- export declare function refreshCodeBuddyToken(credentials: OAuthCredentials): Promise<OAuthCredentials>;
22
- /**
23
- * CodeBuddy OAuth Provider 实现
24
- */
25
- export declare const codeBuddyOAuthProvider: OAuthProviderInterface;
@@ -1,69 +0,0 @@
1
- "use strict";
2
- /**
3
- * CodeBuddy OAuth Provider
4
- *
5
- * 通过 @tencent-ai/agent-sdk 的 authenticate() 实现 OAuth 登录。
6
- * 登录后 token 存入 Pod 的 Credential 表,跨环境复用。
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.codeBuddyOAuthProvider = void 0;
10
- exports.loginCodeBuddy = loginCodeBuddy;
11
- exports.refreshCodeBuddyToken = refreshCodeBuddyToken;
12
- /**
13
- * CodeBuddy OAuth 登录
14
- *
15
- * 调用 @tencent-ai/agent-sdk 的 authenticate(),
16
- * 打开浏览器让用户登录腾讯账号,获取 token。
17
- */
18
- async function loginCodeBuddy(onAuthUrl) {
19
- // 动态导入,避免未安装时报错
20
- const mod = await (new Function('specifier', 'return import(specifier)'))('@tencent-ai/agent-sdk');
21
- const authenticate = mod.unstable_v2_authenticate;
22
- if (typeof authenticate !== 'function') {
23
- throw new Error('@tencent-ai/agent-sdk 不可用或版本过低,需要 unstable_v2_authenticate');
24
- }
25
- const result = await authenticate({
26
- environment: 'external',
27
- onAuthUrl: (authState) => {
28
- onAuthUrl(authState.authUrl);
29
- },
30
- });
31
- return {
32
- refresh: '',
33
- access: result.userinfo.token,
34
- expires: Date.now() + 24 * 3600_000,
35
- userId: result.userinfo.userId,
36
- userName: result.userinfo.userName,
37
- };
38
- }
39
- /**
40
- * CodeBuddy token 刷新
41
- *
42
- * CodeBuddy SDK 内部管理 token 生命周期,
43
- * 如果 token 过期,需要重新登录。
44
- */
45
- async function refreshCodeBuddyToken(credentials) {
46
- if (credentials.expires > Date.now()) {
47
- return credentials;
48
- }
49
- throw new Error('CodeBuddy token expired, please login again');
50
- }
51
- /**
52
- * CodeBuddy OAuth Provider 实现
53
- */
54
- exports.codeBuddyOAuthProvider = {
55
- id: 'codebuddy',
56
- name: 'CodeBuddy',
57
- async login(callbacks) {
58
- return loginCodeBuddy((url) => {
59
- callbacks.onAuth({ url, instructions: '请在浏览器中登录腾讯账号' });
60
- });
61
- },
62
- async refreshToken(credentials) {
63
- return refreshCodeBuddyToken(credentials);
64
- },
65
- getApiKey(credentials) {
66
- return credentials.access;
67
- },
68
- };
69
- //# sourceMappingURL=codebuddy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codebuddy.js","sourceRoot":"","sources":["../../../../src/cli/lib/oauth-providers/codebuddy.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA0BH,wCA8BC;AAQD,sDAOC;AAnDD;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAClC,SAAgC;IAEhC,gBAAgB;IAChB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,QAAQ,CAC7B,WAAW,EACX,0BAA0B,CAC3B,CAAC,CAAC,uBAAuB,CAAwB,CAAC;IAEnD,MAAM,YAAY,GAAG,GAAG,CAAC,wBAAwB,CAAC;IAClD,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,CAAC,SAA6B,EAAE,EAAE;YAC3C,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;KACF,CAAoC,CAAC;IAEtC,OAAO;QACL,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK;QAC7B,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,QAAQ;QACnC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;QAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;KACnC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,qBAAqB,CACzC,WAA6B;IAE7B,IAAI,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACrC,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACU,QAAA,sBAAsB,GAA2B;IAC5D,EAAE,EAAE,WAAW;IACf,IAAI,EAAE,WAAW;IAEjB,KAAK,CAAC,KAAK,CAAC,SAA8B;QACxC,OAAO,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE;YAC5B,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,WAA6B;QAC9C,OAAO,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAC5C,CAAC;IAED,SAAS,CAAC,WAA6B;QACrC,OAAO,WAAW,CAAC,MAAM,CAAC;IAC5B,CAAC;CACF,CAAC","sourcesContent":["/**\n * CodeBuddy OAuth Provider\n *\n * 通过 @tencent-ai/agent-sdk 的 authenticate() 实现 OAuth 登录。\n * 登录后 token 存入 Pod 的 Credential 表,跨环境复用。\n */\n\nimport type {\n OAuthCredentials,\n OAuthLoginCallbacks,\n OAuthProviderInterface,\n} from '../pi-optional';\n\ninterface CodeBuddyAuthState {\n state: string;\n authUrl: string;\n}\n\ninterface CodeBuddyUserinfo {\n userId: string;\n userName: string;\n userNickname: string;\n token: string;\n}\n\n/**\n * CodeBuddy OAuth 登录\n *\n * 调用 @tencent-ai/agent-sdk 的 authenticate(),\n * 打开浏览器让用户登录腾讯账号,获取 token。\n */\nexport async function loginCodeBuddy(\n onAuthUrl: (url: string) => void,\n): Promise<OAuthCredentials> {\n // 动态导入,避免未安装时报错\n const mod = await (new Function(\n 'specifier',\n 'return import(specifier)',\n ))('@tencent-ai/agent-sdk') as Record<string, any>;\n\n const authenticate = mod.unstable_v2_authenticate;\n if (typeof authenticate !== 'function') {\n throw new Error(\n '@tencent-ai/agent-sdk 不可用或版本过低,需要 unstable_v2_authenticate',\n );\n }\n\n const result = await authenticate({\n environment: 'external',\n onAuthUrl: (authState: CodeBuddyAuthState) => {\n onAuthUrl(authState.authUrl);\n },\n }) as { userinfo: CodeBuddyUserinfo };\n\n return {\n refresh: '',\n access: result.userinfo.token,\n expires: Date.now() + 24 * 3600_000,\n userId: result.userinfo.userId,\n userName: result.userinfo.userName,\n };\n}\n\n/**\n * CodeBuddy token 刷新\n *\n * CodeBuddy SDK 内部管理 token 生命周期,\n * 如果 token 过期,需要重新登录。\n */\nexport async function refreshCodeBuddyToken(\n credentials: OAuthCredentials,\n): Promise<OAuthCredentials> {\n if (credentials.expires > Date.now()) {\n return credentials;\n }\n throw new Error('CodeBuddy token expired, please login again');\n}\n\n/**\n * CodeBuddy OAuth Provider 实现\n */\nexport const codeBuddyOAuthProvider: OAuthProviderInterface = {\n id: 'codebuddy',\n name: 'CodeBuddy',\n\n async login(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials> {\n return loginCodeBuddy((url) => {\n callbacks.onAuth({ url, instructions: '请在浏览器中登录腾讯账号' });\n });\n },\n\n async refreshToken(credentials: OAuthCredentials): Promise<OAuthCredentials> {\n return refreshCodeBuddyToken(credentials);\n },\n\n getApiKey(credentials: OAuthCredentials): string {\n return credentials.access;\n },\n};\n"]}
@@ -1,12 +0,0 @@
1
- /**
2
- * OAuth Providers Registry
3
- *
4
- * 注册所有 AI Provider 的 OAuth 实现。
5
- * Solid OIDC 不在这里——它是"统一钥匙",存本地。
6
- * 这里的 provider token 存 Pod,跨环境复用。
7
- */
8
- /**
9
- * 注册所有自定义 OAuth providers 到 pi-mono 框架
10
- */
11
- export declare function registerCustomOAuthProviders(): Promise<void>;
12
- export { codeBuddyOAuthProvider } from './codebuddy';
@@ -1,23 +0,0 @@
1
- "use strict";
2
- /**
3
- * OAuth Providers Registry
4
- *
5
- * 注册所有 AI Provider 的 OAuth 实现。
6
- * Solid OIDC 不在这里——它是"统一钥匙",存本地。
7
- * 这里的 provider token 存 Pod,跨环境复用。
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.codeBuddyOAuthProvider = void 0;
11
- exports.registerCustomOAuthProviders = registerCustomOAuthProviders;
12
- const pi_optional_1 = require("../pi-optional");
13
- const codebuddy_1 = require("./codebuddy");
14
- /**
15
- * 注册所有自定义 OAuth providers 到 pi-mono 框架
16
- */
17
- async function registerCustomOAuthProviders() {
18
- const { registerOAuthProvider } = await (0, pi_optional_1.loadPiAiOAuthUtils)();
19
- registerOAuthProvider(codebuddy_1.codeBuddyOAuthProvider);
20
- }
21
- var codebuddy_2 = require("./codebuddy");
22
- Object.defineProperty(exports, "codeBuddyOAuthProvider", { enumerable: true, get: function () { return codebuddy_2.codeBuddyOAuthProvider; } });
23
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/lib/oauth-providers/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAQH,oEAGC;AATD,gDAAoD;AACpD,2CAAqD;AAErD;;GAEG;AACI,KAAK,UAAU,4BAA4B;IAChD,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,IAAA,gCAAkB,GAAE,CAAC;IAC7D,qBAAqB,CAAC,kCAAsB,CAAC,CAAC;AAChD,CAAC;AAED,yCAAqD;AAA5C,mHAAA,sBAAsB,OAAA","sourcesContent":["/**\n * OAuth Providers Registry\n *\n * 注册所有 AI Provider 的 OAuth 实现。\n * Solid OIDC 不在这里——它是\"统一钥匙\",存本地。\n * 这里的 provider token 存 Pod,跨环境复用。\n */\n\nimport { loadPiAiOAuthUtils } from '../pi-optional';\nimport { codeBuddyOAuthProvider } from './codebuddy';\n\n/**\n * 注册所有自定义 OAuth providers 到 pi-mono 框架\n */\nexport async function registerCustomOAuthProviders(): Promise<void> {\n const { registerOAuthProvider } = await loadPiAiOAuthUtils();\n registerOAuthProvider(codeBuddyOAuthProvider);\n}\n\nexport { codeBuddyOAuthProvider } from './codebuddy';\n"]}