@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,417 +0,0 @@
1
- "use strict";
2
- /**
3
- * IndexAgent - 多层级文档索引 Agent
4
- *
5
- * 职责:为文件生成摘要和 embedding,使其可检索。
6
- *
7
- * 支持三个索引层级:
8
- * - L0:摘要级别,1-3句话描述文件
9
- * - L1:目录级别,提取主要标题和结构
10
- * - L2:全文级别,完整分块和向量化
11
- *
12
- * @see docs/indexing-agent.md 完整设计文档
13
- */
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.indexAgent = exports.IndexAgent = void 0;
16
- const global_logger_factory_1 = require("global-logger-factory");
17
- const CodeBuddyExecutor_1 = require("./CodeBuddyExecutor");
18
- /**
19
- * L0 索引 System Prompt
20
- */
21
- const L0_SYSTEM_PROMPT = `你是 IndexAgent,负责 L0 文档索引,帮助用户的 Pod 中的文件变得可检索。
22
-
23
- ## 任务
24
-
25
- 为文件生成简短摘要和 embedding,使其可通过语义搜索被找到。
26
-
27
- ## L0 索引标准
28
-
29
- | 项目 | 说明 |
30
- |------|------|
31
- | 内容 | 文件的简短描述(1-3句话) |
32
- | 来源 | 文件名、类型、前几行内容 |
33
- | 产物 | 描述文本 + embedding |
34
- | 成本 | 最低 |
35
-
36
- ## 处理流程
37
-
38
- 1. **读取文件信息**:类型、大小、文件名
39
- 2. **获取内容预览**:
40
- - 文本文件:读取前 500 字符
41
- - 其他类型:根据文件名和类型推断
42
- 3. **生成摘要**:1-3句话描述文件内容和用途
43
- 4. **生成 embedding**:调用 Embedding API
44
- 5. **更新状态**:写入 .meta 记录索引完成
45
-
46
- ## 存储规范
47
-
48
- 索引状态存储在资源的 .meta 辅助资源:
49
-
50
- \`\`\`turtle
51
- </docs/report.pdf>
52
- udfs:indexLevel "L0" ;
53
- udfs:lastIndexedAt "2026-01-09T10:00:00Z"^^xsd:dateTime ;
54
- udfs:summary "2024年度财务报告,包含收入、支出、利润分析" ;
55
- udfs:vectorId 12345 .
56
- \`\`\`
57
-
58
- ## 可用工具
59
-
60
- - **Read**:读取 Pod 中的文件
61
- - **Write**:写入文件到 Pod
62
- - **Bash**:执行命令(如需要)
63
-
64
- ## 输出格式
65
-
66
- 完成后返回 JSON:
67
- {
68
- "success": true,
69
- "indexLevel": "L0",
70
- "summary": "文件摘要...",
71
- "vectorId": 12345
72
- }
73
-
74
- 如果文件不需要索引或出错:
75
- {
76
- "success": false,
77
- "reason": "说明原因"
78
- }
79
- `;
80
- /**
81
- * L1 索引 System Prompt - 目录级别
82
- */
83
- const L1_SYSTEM_PROMPT = `你是 IndexAgent,负责 L1 文档索引(目录级别),帮助用户的 Pod 中的文件变得可检索。
84
-
85
- ## 任务
86
-
87
- 提取文件的目录结构和主要标题,为每个主要部分生成描述和 embedding。
88
-
89
- ## L1 索引标准
90
-
91
- | 项目 | 说明 |
92
- |------|------|
93
- | 内容 | 目录结构,主要标题的描述 |
94
- | 来源 | PDF/Word:提取 TOC;Markdown:扫描标题行 |
95
- | 产物 | 主要标题 chunks + embeddings |
96
- | 成本 | 低 |
97
-
98
- ## 处理流程
99
-
100
- 1. **读取文件**:获取完整内容
101
- 2. **提取目录结构**:
102
- - Markdown:提取 # 和 ## 标题
103
- - 其他格式:尝试识别结构
104
- 3. **生成标题描述**:为每个主要标题生成简短描述
105
- 4. **生成 embeddings**:为每个标题 chunk 生成向量
106
- 5. **更新状态**:写入 .meta 记录索引完成
107
-
108
- ## 存储规范
109
-
110
- \`\`\`turtle
111
- </docs/report.pdf>
112
- udfs:indexLevel "L1" ;
113
- udfs:lastIndexedAt "2026-01-09T10:00:00Z"^^xsd:dateTime ;
114
- udfs:hasChunk </docs/report.pdf#chunk-1> ;
115
- udfs:hasChunk </docs/report.pdf#chunk-2> .
116
-
117
- </docs/report.pdf#chunk-1> a udfs:TextChunk ;
118
- udfs:level 1 ;
119
- udfs:heading "Introduction" ;
120
- udfs:summary "介绍部分的简要描述" ;
121
- udfs:vectorId 12345 .
122
- \`\`\`
123
-
124
- ## 输出格式
125
-
126
- {
127
- "success": true,
128
- "indexLevel": "L1",
129
- "chunks": [
130
- {"heading": "Introduction", "level": 1, "summary": "..."},
131
- {"heading": "Background", "level": 2, "summary": "..."}
132
- ],
133
- "chunkCount": 5
134
- }
135
- `;
136
- /**
137
- * L2 索引 System Prompt - 全文级别
138
- */
139
- const L2_SYSTEM_PROMPT = `你是 IndexAgent,负责 L2 文档索引(全文级别),帮助用户的 Pod 中的文件变得可检索。
140
-
141
- ## 任务
142
-
143
- 对文件进行全文分块,为每个内容块生成描述和 embedding,实现深度语义检索。
144
-
145
- ## L2 索引标准
146
-
147
- | 项目 | 说明 |
148
- |------|------|
149
- | 内容 | 全文分块(所有标题层级) |
150
- | 前置 | 需要完整 parse |
151
- | 产物 | 所有 chunks + embeddings |
152
- | 成本 | 高 |
153
-
154
- ## 处理流程
155
-
156
- 1. **读取完整文件**:获取全部内容
157
- 2. **解析文档结构**:识别所有层级的标题和段落
158
- 3. **智能分块**:
159
- - 按标题层级分割(H1, H2, H3...)
160
- - 保持语义完整性
161
- - 每块控制在 500-2000 字符
162
- 4. **生成 embeddings**:为每个 chunk 生成向量
163
- 5. **建立 chunk 关系**:记录父子关系
164
- 6. **更新状态**:写入 .meta 记录索引完成
165
-
166
- ## 分块策略
167
-
168
- 对于 Markdown 文件:
169
- \`\`\`python
170
- # 按标题层级分割
171
- headers = ["#", "##", "###", "####"]
172
- # 每个标题下的内容作为一个 chunk
173
- # 保留父子关系
174
- \`\`\`
175
-
176
- ## 存储规范
177
-
178
- \`\`\`turtle
179
- </docs/report.pdf>
180
- udfs:indexLevel "L2" ;
181
- udfs:lastIndexedAt "2026-01-09T10:00:00Z"^^xsd:dateTime ;
182
- udfs:hasChunk </docs/report.pdf#chunk-1> ;
183
- udfs:hasChunk </docs/report.pdf#chunk-2> ;
184
- udfs:hasChunk </docs/report.pdf#chunk-3> .
185
-
186
- # chunk 父子关系
187
- </docs/report.pdf#chunk-2> udfs:parentChunk </docs/report.pdf#chunk-1> .
188
- </docs/report.pdf#chunk-3> udfs:parentChunk </docs/report.pdf#chunk-1> .
189
-
190
- # chunk 实体
191
- </docs/report.pdf#chunk-1> a udfs:TextChunk ;
192
- udfs:level 1 ;
193
- udfs:heading "Introduction" ;
194
- udfs:content "This document describes..." ;
195
- udfs:startOffset 0 ;
196
- udfs:endOffset 256 ;
197
- udfs:vectorId 12345 .
198
-
199
- </docs/report.pdf#chunk-2> a udfs:TextChunk ;
200
- udfs:level 2 ;
201
- udfs:heading "Background" ;
202
- udfs:content "The background of this project..." ;
203
- udfs:startOffset 257 ;
204
- udfs:endOffset 512 ;
205
- udfs:vectorId 12346 .
206
- \`\`\`
207
-
208
- ## 可用工具
209
-
210
- - **Read**:读取 Pod 中的文件
211
- - **Write**:写入文件到 Pod
212
- - **Bash**:执行命令(如需要)
213
-
214
- ## 输出格式
215
-
216
- {
217
- "success": true,
218
- "indexLevel": "L2",
219
- "chunks": [
220
- {
221
- "id": "chunk-1",
222
- "heading": "Introduction",
223
- "level": 1,
224
- "content": "摘要或前100字...",
225
- "vectorId": 12345
226
- },
227
- {
228
- "id": "chunk-2",
229
- "heading": "Background",
230
- "level": 2,
231
- "parent": "chunk-1",
232
- "content": "摘要或前100字...",
233
- "vectorId": 12346
234
- }
235
- ],
236
- "chunkCount": 15,
237
- "totalCharacters": 8500
238
- }
239
-
240
- 如果失败:
241
- {
242
- "success": false,
243
- "reason": "说明原因"
244
- }
245
- `;
246
- /**
247
- * 获取指定层级的 System Prompt
248
- */
249
- function getSystemPrompt(level) {
250
- switch (level) {
251
- case 'L0':
252
- return L0_SYSTEM_PROMPT;
253
- case 'L1':
254
- return L1_SYSTEM_PROMPT;
255
- case 'L2':
256
- return L2_SYSTEM_PROMPT;
257
- default:
258
- return L0_SYSTEM_PROMPT;
259
- }
260
- }
261
- /**
262
- * IndexAgent 实现
263
- *
264
- * 通过 CodeBuddy SDK 执行,支持 L0/L1/L2 三个索引层级。
265
- */
266
- class IndexAgent {
267
- constructor(options) {
268
- this.logger = (0, global_logger_factory_1.getLoggerFor)(this);
269
- this.executor = new CodeBuddyExecutor_1.CodeBuddyExecutor();
270
- this.name = 'indexing';
271
- this.description = '文档索引 Agent,帮助用户的文件变得可检索';
272
- this.defaultLevel = options?.level ?? 'L0';
273
- }
274
- /**
275
- * Agent 配置
276
- *
277
- * 根据索引层级配置不同的 system prompt 和参数
278
- */
279
- getConfig(level, _context) {
280
- // 根据层级调整 maxTurns
281
- const maxTurns = level === 'L0' ? 10 : level === 'L1' ? 15 : 20;
282
- return {
283
- name: `${this.name}-${level}`,
284
- description: `${this.description} (${level})`,
285
- systemPrompt: getSystemPrompt(level),
286
- // L0/L1 不需要额外的 MCP 服务器
287
- // L2 可能需要 JINA 等,但由 CodeBuddyExecutor 根据 context 注入
288
- mcpServers: {},
289
- // 使用 GLM-4.7 模型
290
- model: 'glm-4.7',
291
- maxTurns,
292
- // 接受编辑模式
293
- permissionMode: 'acceptEdits',
294
- };
295
- }
296
- /**
297
- * 从消息中解析索引层级
298
- */
299
- parseLevel(message) {
300
- const lowerMessage = message.toLowerCase();
301
- if (lowerMessage.includes('l2') || lowerMessage.includes('全文') || lowerMessage.includes('深度')) {
302
- return 'L2';
303
- }
304
- if (lowerMessage.includes('l1') || lowerMessage.includes('目录') || lowerMessage.includes('结构')) {
305
- return 'L1';
306
- }
307
- if (lowerMessage.includes('l0') || lowerMessage.includes('摘要') || lowerMessage.includes('简要')) {
308
- return 'L0';
309
- }
310
- return this.defaultLevel;
311
- }
312
- /**
313
- * 转换 usage 格式(ExecuteResult -> AgentResult)
314
- */
315
- convertUsage(usage) {
316
- if (!usage)
317
- return undefined;
318
- return {
319
- inputTokens: usage.promptTokens,
320
- outputTokens: usage.completionTokens,
321
- cost: 0, // CodeBuddy SDK 不返回 cost
322
- turns: 0, // CodeBuddy SDK 不返回 turns
323
- durationMs: usage.durationMs,
324
- };
325
- }
326
- /**
327
- * 执行任务
328
- *
329
- * @param message 任务消息,可包含层级指示(如 "L2 索引"、"深度索引"、"全文索引")
330
- * @param context Agent 上下文
331
- */
332
- async execute(message, context) {
333
- const level = this.parseLevel(message);
334
- context.log.info(`IndexAgent (${level}) received: ${message}`);
335
- try {
336
- const config = this.getConfig(level, context);
337
- // 通过 CodeBuddy SDK 执行
338
- const result = await this.executor.executeAndWaitWithConfig(config, message, {
339
- podBaseUrl: context.podBaseUrl,
340
- accessToken: context.accessToken,
341
- timeout: level === 'L2' ? 600000 : 300000, // L2 给 10 分钟,其他 5 分钟
342
- });
343
- if (result.success) {
344
- context.log.info(`IndexAgent (${level}) completed: ${result.result}`);
345
- return {
346
- success: true,
347
- data: result.structuredOutput ?? result.result,
348
- usage: this.convertUsage(result.usage),
349
- };
350
- }
351
- else {
352
- context.log.error(`IndexAgent (${level}) failed: ${result.error}`);
353
- return {
354
- success: false,
355
- error: result.error,
356
- usage: this.convertUsage(result.usage),
357
- };
358
- }
359
- }
360
- catch (error) {
361
- const errorMsg = error instanceof Error ? error.message : String(error);
362
- context.log.error(`IndexAgent (${level}) error: ${errorMsg}`);
363
- return {
364
- success: false,
365
- error: errorMsg,
366
- };
367
- }
368
- }
369
- /**
370
- * 执行指定层级的索引
371
- *
372
- * @param level 索引层级
373
- * @param message 任务消息
374
- * @param context Agent 上下文
375
- */
376
- async executeWithLevel(level, message, context) {
377
- context.log.info(`IndexAgent (${level}) received: ${message}`);
378
- try {
379
- const config = this.getConfig(level, context);
380
- const result = await this.executor.executeAndWaitWithConfig(config, message, {
381
- podBaseUrl: context.podBaseUrl,
382
- accessToken: context.accessToken,
383
- timeout: level === 'L2' ? 600000 : 300000,
384
- });
385
- if (result.success) {
386
- context.log.info(`IndexAgent (${level}) completed: ${result.result}`);
387
- return {
388
- success: true,
389
- data: result.structuredOutput ?? result.result,
390
- usage: this.convertUsage(result.usage),
391
- };
392
- }
393
- else {
394
- context.log.error(`IndexAgent (${level}) failed: ${result.error}`);
395
- return {
396
- success: false,
397
- error: result.error,
398
- usage: this.convertUsage(result.usage),
399
- };
400
- }
401
- }
402
- catch (error) {
403
- const errorMsg = error instanceof Error ? error.message : String(error);
404
- context.log.error(`IndexAgent (${level}) error: ${errorMsg}`);
405
- return {
406
- success: false,
407
- error: errorMsg,
408
- };
409
- }
410
- }
411
- }
412
- exports.IndexAgent = IndexAgent;
413
- /**
414
- * 默认 IndexAgent 实例
415
- */
416
- exports.indexAgent = new IndexAgent();
417
- //# sourceMappingURL=IndexAgent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IndexAgent.js","sourceRoot":"","sources":["../../src/agents/IndexAgent.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * IndexAgent - 多层级文档索引 Agent\n *\n * 职责:为文件生成摘要和 embedding,使其可检索。\n *\n * 支持三个索引层级:\n * - L0:摘要级别,1-3句话描述文件\n * - L1:目录级别,提取主要标题和结构\n * - L2:全文级别,完整分块和向量化\n *\n * @see docs/indexing-agent.md 完整设计文档\n */\n\nimport { getLoggerFor } from 'global-logger-factory';\nimport type { Agent, AgentContext, AgentResult } from '../task/types';\nimport { CodeBuddyExecutor } from './CodeBuddyExecutor';\nimport type { CodeBuddyConfig } from './types';\n\n/**\n * 索引层级类型\n */\nexport type IndexLevel = 'L0' | 'L1' | 'L2';\n\n/**\n * L0 索引 System Prompt\n */\nconst L0_SYSTEM_PROMPT = `你是 IndexAgent,负责 L0 文档索引,帮助用户的 Pod 中的文件变得可检索。\n\n## 任务\n\n为文件生成简短摘要和 embedding,使其可通过语义搜索被找到。\n\n## L0 索引标准\n\n| 项目 | 说明 |\n|------|------|\n| 内容 | 文件的简短描述(1-3句话) |\n| 来源 | 文件名、类型、前几行内容 |\n| 产物 | 描述文本 + embedding |\n| 成本 | 最低 |\n\n## 处理流程\n\n1. **读取文件信息**:类型、大小、文件名\n2. **获取内容预览**:\n - 文本文件:读取前 500 字符\n - 其他类型:根据文件名和类型推断\n3. **生成摘要**:1-3句话描述文件内容和用途\n4. **生成 embedding**:调用 Embedding API\n5. **更新状态**:写入 .meta 记录索引完成\n\n## 存储规范\n\n索引状态存储在资源的 .meta 辅助资源:\n\n\\`\\`\\`turtle\n</docs/report.pdf> \n udfs:indexLevel \"L0\" ;\n udfs:lastIndexedAt \"2026-01-09T10:00:00Z\"^^xsd:dateTime ;\n udfs:summary \"2024年度财务报告,包含收入、支出、利润分析\" ;\n udfs:vectorId 12345 .\n\\`\\`\\`\n\n## 可用工具\n\n- **Read**:读取 Pod 中的文件\n- **Write**:写入文件到 Pod\n- **Bash**:执行命令(如需要)\n\n## 输出格式\n\n完成后返回 JSON:\n{\n \"success\": true,\n \"indexLevel\": \"L0\",\n \"summary\": \"文件摘要...\",\n \"vectorId\": 12345\n}\n\n如果文件不需要索引或出错:\n{\n \"success\": false,\n \"reason\": \"说明原因\"\n}\n`;\n\n/**\n * L1 索引 System Prompt - 目录级别\n */\nconst L1_SYSTEM_PROMPT = `你是 IndexAgent,负责 L1 文档索引(目录级别),帮助用户的 Pod 中的文件变得可检索。\n\n## 任务\n\n提取文件的目录结构和主要标题,为每个主要部分生成描述和 embedding。\n\n## L1 索引标准\n\n| 项目 | 说明 |\n|------|------|\n| 内容 | 目录结构,主要标题的描述 |\n| 来源 | PDF/Word:提取 TOC;Markdown:扫描标题行 |\n| 产物 | 主要标题 chunks + embeddings |\n| 成本 | 低 |\n\n## 处理流程\n\n1. **读取文件**:获取完整内容\n2. **提取目录结构**:\n - Markdown:提取 # 和 ## 标题\n - 其他格式:尝试识别结构\n3. **生成标题描述**:为每个主要标题生成简短描述\n4. **生成 embeddings**:为每个标题 chunk 生成向量\n5. **更新状态**:写入 .meta 记录索引完成\n\n## 存储规范\n\n\\`\\`\\`turtle\n</docs/report.pdf> \n udfs:indexLevel \"L1\" ;\n udfs:lastIndexedAt \"2026-01-09T10:00:00Z\"^^xsd:dateTime ;\n udfs:hasChunk </docs/report.pdf#chunk-1> ;\n udfs:hasChunk </docs/report.pdf#chunk-2> .\n\n</docs/report.pdf#chunk-1> a udfs:TextChunk ;\n udfs:level 1 ;\n udfs:heading \"Introduction\" ;\n udfs:summary \"介绍部分的简要描述\" ;\n udfs:vectorId 12345 .\n\\`\\`\\`\n\n## 输出格式\n\n{\n \"success\": true,\n \"indexLevel\": \"L1\",\n \"chunks\": [\n {\"heading\": \"Introduction\", \"level\": 1, \"summary\": \"...\"},\n {\"heading\": \"Background\", \"level\": 2, \"summary\": \"...\"}\n ],\n \"chunkCount\": 5\n}\n`;\n\n/**\n * L2 索引 System Prompt - 全文级别\n */\nconst L2_SYSTEM_PROMPT = `你是 IndexAgent,负责 L2 文档索引(全文级别),帮助用户的 Pod 中的文件变得可检索。\n\n## 任务\n\n对文件进行全文分块,为每个内容块生成描述和 embedding,实现深度语义检索。\n\n## L2 索引标准\n\n| 项目 | 说明 |\n|------|------|\n| 内容 | 全文分块(所有标题层级) |\n| 前置 | 需要完整 parse |\n| 产物 | 所有 chunks + embeddings |\n| 成本 | 高 |\n\n## 处理流程\n\n1. **读取完整文件**:获取全部内容\n2. **解析文档结构**:识别所有层级的标题和段落\n3. **智能分块**:\n - 按标题层级分割(H1, H2, H3...)\n - 保持语义完整性\n - 每块控制在 500-2000 字符\n4. **生成 embeddings**:为每个 chunk 生成向量\n5. **建立 chunk 关系**:记录父子关系\n6. **更新状态**:写入 .meta 记录索引完成\n\n## 分块策略\n\n对于 Markdown 文件:\n\\`\\`\\`python\n# 按标题层级分割\nheaders = [\"#\", \"##\", \"###\", \"####\"]\n# 每个标题下的内容作为一个 chunk\n# 保留父子关系\n\\`\\`\\`\n\n## 存储规范\n\n\\`\\`\\`turtle\n</docs/report.pdf> \n udfs:indexLevel \"L2\" ;\n udfs:lastIndexedAt \"2026-01-09T10:00:00Z\"^^xsd:dateTime ;\n udfs:hasChunk </docs/report.pdf#chunk-1> ;\n udfs:hasChunk </docs/report.pdf#chunk-2> ;\n udfs:hasChunk </docs/report.pdf#chunk-3> .\n\n# chunk 父子关系\n</docs/report.pdf#chunk-2> udfs:parentChunk </docs/report.pdf#chunk-1> .\n</docs/report.pdf#chunk-3> udfs:parentChunk </docs/report.pdf#chunk-1> .\n\n# chunk 实体\n</docs/report.pdf#chunk-1> a udfs:TextChunk ;\n udfs:level 1 ;\n udfs:heading \"Introduction\" ;\n udfs:content \"This document describes...\" ;\n udfs:startOffset 0 ;\n udfs:endOffset 256 ;\n udfs:vectorId 12345 .\n\n</docs/report.pdf#chunk-2> a udfs:TextChunk ;\n udfs:level 2 ;\n udfs:heading \"Background\" ;\n udfs:content \"The background of this project...\" ;\n udfs:startOffset 257 ;\n udfs:endOffset 512 ;\n udfs:vectorId 12346 .\n\\`\\`\\`\n\n## 可用工具\n\n- **Read**:读取 Pod 中的文件\n- **Write**:写入文件到 Pod\n- **Bash**:执行命令(如需要)\n\n## 输出格式\n\n{\n \"success\": true,\n \"indexLevel\": \"L2\",\n \"chunks\": [\n {\n \"id\": \"chunk-1\",\n \"heading\": \"Introduction\",\n \"level\": 1,\n \"content\": \"摘要或前100字...\",\n \"vectorId\": 12345\n },\n {\n \"id\": \"chunk-2\", \n \"heading\": \"Background\",\n \"level\": 2,\n \"parent\": \"chunk-1\",\n \"content\": \"摘要或前100字...\",\n \"vectorId\": 12346\n }\n ],\n \"chunkCount\": 15,\n \"totalCharacters\": 8500\n}\n\n如果失败:\n{\n \"success\": false,\n \"reason\": \"说明原因\"\n}\n`;\n\n/**\n * 获取指定层级的 System Prompt\n */\nfunction getSystemPrompt(level: IndexLevel): string {\n switch (level) {\n case 'L0':\n return L0_SYSTEM_PROMPT;\n case 'L1':\n return L1_SYSTEM_PROMPT;\n case 'L2':\n return L2_SYSTEM_PROMPT;\n default:\n return L0_SYSTEM_PROMPT;\n }\n}\n\n/**\n * IndexAgent 配置选项\n */\nexport interface IndexAgentOptions {\n /** 索引层级,默认 L0 */\n level?: IndexLevel;\n}\n\n/**\n * IndexAgent 实现\n *\n * 通过 CodeBuddy SDK 执行,支持 L0/L1/L2 三个索引层级。\n */\nexport class IndexAgent implements Agent {\n private readonly logger = getLoggerFor(this);\n private readonly executor = new CodeBuddyExecutor();\n private readonly defaultLevel: IndexLevel;\n\n public readonly name = 'indexing';\n public readonly description = '文档索引 Agent,帮助用户的文件变得可检索';\n\n constructor(options?: IndexAgentOptions) {\n this.defaultLevel = options?.level ?? 'L0';\n }\n\n /**\n * Agent 配置\n *\n * 根据索引层级配置不同的 system prompt 和参数\n */\n private getConfig(level: IndexLevel, _context: AgentContext): CodeBuddyConfig {\n // 根据层级调整 maxTurns\n const maxTurns = level === 'L0' ? 10 : level === 'L1' ? 15 : 20;\n\n return {\n name: `${this.name}-${level}`,\n description: `${this.description} (${level})`,\n systemPrompt: getSystemPrompt(level),\n // L0/L1 不需要额外的 MCP 服务器\n // L2 可能需要 JINA 等,但由 CodeBuddyExecutor 根据 context 注入\n mcpServers: {},\n // 使用 GLM-4.7 模型\n model: 'glm-4.7',\n maxTurns,\n // 接受编辑模式\n permissionMode: 'acceptEdits',\n };\n }\n\n /**\n * 从消息中解析索引层级\n */\n private parseLevel(message: string): IndexLevel {\n const lowerMessage = message.toLowerCase();\n if (lowerMessage.includes('l2') || lowerMessage.includes('全文') || lowerMessage.includes('深度')) {\n return 'L2';\n }\n if (lowerMessage.includes('l1') || lowerMessage.includes('目录') || lowerMessage.includes('结构')) {\n return 'L1';\n }\n if (lowerMessage.includes('l0') || lowerMessage.includes('摘要') || lowerMessage.includes('简要')) {\n return 'L0';\n }\n return this.defaultLevel;\n }\n\n /**\n * 转换 usage 格式(ExecuteResult -> AgentResult)\n */\n private convertUsage(usage?: {\n promptTokens: number;\n completionTokens: number;\n totalTokens: number;\n durationMs: number;\n }): { inputTokens: number; outputTokens: number; cost: number; turns: number; durationMs: number } | undefined {\n if (!usage) return undefined;\n return {\n inputTokens: usage.promptTokens,\n outputTokens: usage.completionTokens,\n cost: 0, // CodeBuddy SDK 不返回 cost\n turns: 0, // CodeBuddy SDK 不返回 turns\n durationMs: usage.durationMs,\n };\n }\n\n /**\n * 执行任务\n *\n * @param message 任务消息,可包含层级指示(如 \"L2 索引\"、\"深度索引\"、\"全文索引\")\n * @param context Agent 上下文\n */\n public async execute(message: string, context: AgentContext): Promise<AgentResult> {\n const level = this.parseLevel(message);\n context.log.info(`IndexAgent (${level}) received: ${message}`);\n\n try {\n const config = this.getConfig(level, context);\n\n // 通过 CodeBuddy SDK 执行\n const result = await this.executor.executeAndWaitWithConfig(config, message, {\n podBaseUrl: context.podBaseUrl,\n accessToken: context.accessToken,\n timeout: level === 'L2' ? 600000 : 300000, // L2 给 10 分钟,其他 5 分钟\n });\n\n if (result.success) {\n context.log.info(`IndexAgent (${level}) completed: ${result.result}`);\n return {\n success: true,\n data: result.structuredOutput ?? result.result,\n usage: this.convertUsage(result.usage),\n };\n } else {\n context.log.error(`IndexAgent (${level}) failed: ${result.error}`);\n return {\n success: false,\n error: result.error,\n usage: this.convertUsage(result.usage),\n };\n }\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : String(error);\n context.log.error(`IndexAgent (${level}) error: ${errorMsg}`);\n return {\n success: false,\n error: errorMsg,\n };\n }\n }\n\n /**\n * 执行指定层级的索引\n *\n * @param level 索引层级\n * @param message 任务消息\n * @param context Agent 上下文\n */\n public async executeWithLevel(\n level: IndexLevel,\n message: string,\n context: AgentContext,\n ): Promise<AgentResult> {\n context.log.info(`IndexAgent (${level}) received: ${message}`);\n\n try {\n const config = this.getConfig(level, context);\n\n const result = await this.executor.executeAndWaitWithConfig(config, message, {\n podBaseUrl: context.podBaseUrl,\n accessToken: context.accessToken,\n timeout: level === 'L2' ? 600000 : 300000,\n });\n\n if (result.success) {\n context.log.info(`IndexAgent (${level}) completed: ${result.result}`);\n return {\n success: true,\n data: result.structuredOutput ?? result.result,\n usage: this.convertUsage(result.usage),\n };\n } else {\n context.log.error(`IndexAgent (${level}) failed: ${result.error}`);\n return {\n success: false,\n error: result.error,\n usage: this.convertUsage(result.usage),\n };\n }\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : String(error);\n context.log.error(`IndexAgent (${level}) error: ${errorMsg}`);\n return {\n success: false,\n error: errorMsg,\n };\n }\n }\n}\n\n/**\n * 默认 IndexAgent 实例\n */\nexport const indexAgent = new IndexAgent();\n"]}
@@ -1,33 +0,0 @@
1
- /**
2
- * AGENT.md Parser
3
- *
4
- * Parses markdown files with YAML frontmatter into structured agent config.
5
- *
6
- * Format:
7
- * ```
8
- * ---
9
- * name: secretary
10
- * description: Default assistant
11
- * max-turns: 20
12
- * allowed-tools: Read, Write, Edit, Grep, Glob
13
- * skills:
14
- * - /skills/drizzle-solid
15
- * - ./skills/custom-skill
16
- * mcp-servers:
17
- * - name: jina
18
- * transport: stdio
19
- * command: npx
20
- * args: ["-y", "@jina-ai/mcp-server"]
21
- * ---
22
- *
23
- * You are Secretary, a helpful assistant...
24
- * ```
25
- */
26
- import type { ParsedAgentMd } from './types';
27
- /**
28
- * Parse an AGENT.md file content into frontmatter + body.
29
- *
30
- * @param content Raw file content
31
- * @returns Parsed result with frontmatter object and markdown body
32
- */
33
- export declare function parseAgentMd(content: string): ParsedAgentMd;
@@ -1,75 +0,0 @@
1
- "use strict";
2
- /**
3
- * AGENT.md Parser
4
- *
5
- * Parses markdown files with YAML frontmatter into structured agent config.
6
- *
7
- * Format:
8
- * ```
9
- * ---
10
- * name: secretary
11
- * description: Default assistant
12
- * max-turns: 20
13
- * allowed-tools: Read, Write, Edit, Grep, Glob
14
- * skills:
15
- * - /skills/drizzle-solid
16
- * - ./skills/custom-skill
17
- * mcp-servers:
18
- * - name: jina
19
- * transport: stdio
20
- * command: npx
21
- * args: ["-y", "@jina-ai/mcp-server"]
22
- * ---
23
- *
24
- * You are Secretary, a helpful assistant...
25
- * ```
26
- */
27
- Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.parseAgentMd = parseAgentMd;
29
- const yaml_1 = require("yaml");
30
- const FRONTMATTER_RE = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/;
31
- /**
32
- * Parse an AGENT.md file content into frontmatter + body.
33
- *
34
- * @param content Raw file content
35
- * @returns Parsed result with frontmatter object and markdown body
36
- */
37
- function parseAgentMd(content) {
38
- const trimmed = content.trim();
39
- const match = FRONTMATTER_RE.exec(trimmed);
40
- if (!match) {
41
- // No frontmatter — entire content is the system prompt
42
- return {
43
- frontmatter: {},
44
- body: trimmed,
45
- };
46
- }
47
- const yamlStr = match[1];
48
- const body = (match[2] ?? '').trim();
49
- let frontmatter = {};
50
- try {
51
- const parsed = (0, yaml_1.parse)(yamlStr);
52
- if (parsed && typeof parsed === 'object') {
53
- frontmatter = parsed;
54
- }
55
- }
56
- catch {
57
- // Invalid YAML — treat as no frontmatter
58
- return { frontmatter: {}, body: trimmed };
59
- }
60
- // Normalize allowed-tools: accept comma-separated string or array
61
- if (typeof frontmatter['allowed-tools'] === 'string') {
62
- frontmatter['allowed-tools'] = frontmatter['allowed-tools']
63
- .split(',')
64
- .map((t) => t.trim())
65
- .filter(Boolean);
66
- }
67
- if (typeof frontmatter['disallowed-tools'] === 'string') {
68
- frontmatter['disallowed-tools'] = frontmatter['disallowed-tools']
69
- .split(',')
70
- .map((t) => t.trim())
71
- .filter(Boolean);
72
- }
73
- return { frontmatter, body };
74
- }
75
- //# sourceMappingURL=parse-agent-md.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-agent-md.js","sourceRoot":"","sources":["../../../src/agents/config/parse-agent-md.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;AAaH,oCAyCC;AApDD,+BAA0C;AAG1C,MAAM,cAAc,GAAG,6CAA6C,CAAC;AAErE;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,OAAe;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,uDAAuD;QACvD,OAAO;YACL,WAAW,EAAE,EAAE;YACf,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAErC,IAAI,WAAW,GAAqB,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,YAAS,EAAC,OAAO,CAAC,CAAC;QAClC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,WAAW,GAAG,MAA0B,CAAC;QAC3C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;QACzC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED,kEAAkE;IAClE,IAAI,OAAO,WAAW,CAAC,eAAe,CAAC,KAAK,QAAQ,EAAE,CAAC;QACrD,WAAW,CAAC,eAAe,CAAC,GAAG,WAAW,CAAC,eAAe,CAAC;aACxD,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,OAAO,WAAW,CAAC,kBAAkB,CAAC,KAAK,QAAQ,EAAE,CAAC;QACxD,WAAW,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,kBAAkB,CAAC;aAC9D,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC","sourcesContent":["/**\n * AGENT.md Parser\n *\n * Parses markdown files with YAML frontmatter into structured agent config.\n *\n * Format:\n * ```\n * ---\n * name: secretary\n * description: Default assistant\n * max-turns: 20\n * allowed-tools: Read, Write, Edit, Grep, Glob\n * skills:\n * - /skills/drizzle-solid\n * - ./skills/custom-skill\n * mcp-servers:\n * - name: jina\n * transport: stdio\n * command: npx\n * args: [\"-y\", \"@jina-ai/mcp-server\"]\n * ---\n *\n * You are Secretary, a helpful assistant...\n * ```\n */\n\nimport { parse as parseYaml } from 'yaml';\nimport type { ParsedAgentMd, AgentFrontmatter } from './types';\n\nconst FRONTMATTER_RE = /^---\\r?\\n([\\s\\S]*?)\\r?\\n---\\r?\\n?([\\s\\S]*)$/;\n\n/**\n * Parse an AGENT.md file content into frontmatter + body.\n *\n * @param content Raw file content\n * @returns Parsed result with frontmatter object and markdown body\n */\nexport function parseAgentMd(content: string): ParsedAgentMd {\n const trimmed = content.trim();\n const match = FRONTMATTER_RE.exec(trimmed);\n\n if (!match) {\n // No frontmatter — entire content is the system prompt\n return {\n frontmatter: {},\n body: trimmed,\n };\n }\n\n const yamlStr = match[1];\n const body = (match[2] ?? '').trim();\n\n let frontmatter: AgentFrontmatter = {};\n try {\n const parsed = parseYaml(yamlStr);\n if (parsed && typeof parsed === 'object') {\n frontmatter = parsed as AgentFrontmatter;\n }\n } catch {\n // Invalid YAML — treat as no frontmatter\n return { frontmatter: {}, body: trimmed };\n }\n\n // Normalize allowed-tools: accept comma-separated string or array\n if (typeof frontmatter['allowed-tools'] === 'string') {\n frontmatter['allowed-tools'] = frontmatter['allowed-tools']\n .split(',')\n .map((t) => t.trim())\n .filter(Boolean);\n }\n if (typeof frontmatter['disallowed-tools'] === 'string') {\n frontmatter['disallowed-tools'] = frontmatter['disallowed-tools']\n .split(',')\n .map((t) => t.trim())\n .filter(Boolean);\n }\n\n return { frontmatter, body };\n}\n"]}
@@ -1,2 +0,0 @@
1
- export declare const AgentConfig: any;
2
- export declare const AgentStatus: any;
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AgentStatus = exports.AgentConfig = void 0;
4
- const models_1 = require("@undefineds.co/models");
5
- const create_agent_schema_1 = require("./create-agent-schema");
6
- /**
7
- * AgentConfig - Agent 配置
8
- *
9
- * RDF 示例:
10
- * <#indexing> a udfs:AgentConfig ;
11
- * foaf:name "Indexing Agent" ;
12
- * udfs:description "文档索引 Agent,帮助用户的文件变得可检索" ;
13
- * udfs:provider </settings/ai/providers.ttl#anthropic> ;
14
- * udfs:runtimeKind "claude" ;
15
- * udfs:model </settings/ai/models.ttl#glm-4.7> ;
16
- * udfs:systemPrompt "你是 IndexAgent..." ;
17
- * udfs:maxTurns "20" ;
18
- * udfs:enabled "true" .
19
- *
20
- * 说明:
21
- * - provider 指向通用 Provider,提供 baseUrl/defaultModel 等 Pod 配置
22
- * - runtimeKind 决定使用哪个 Agent Executor
23
- * - model 可以覆盖 provider 的 defaultModel
24
- * - instructions / systemPrompt 是 Agent 的核心提示词字段
25
- */
26
- const agentConfigSchema = (0, create_agent_schema_1.createAgentSchema)({ nameRequired: false });
27
- exports.AgentConfig = agentConfigSchema.table('AgentConfig', {
28
- base: '/settings/ai/agents.ttl',
29
- subjectTemplate: '#{id}',
30
- });
31
- exports.AgentStatus = models_1.agentStatusResource;
32
- //# sourceMappingURL=agent-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-config.js","sourceRoot":"","sources":["../../../src/agents/schema/agent-config.ts"],"names":[],"mappings":";;;AAAA,kDAA4D;AAC5D,+DAA0D;AAE1D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,iBAAiB,GAAG,IAAA,uCAAiB,EAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;AAExD,QAAA,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,aAAa,EAAE;IAChE,IAAI,EAAE,yBAAyB;IAC/B,eAAe,EAAE,OAAO;CACzB,CAAQ,CAAC;AAEG,QAAA,WAAW,GAAG,4BAA0B,CAAC","sourcesContent":["import { agentStatusResource } from '@undefineds.co/models';\nimport { createAgentSchema } from './create-agent-schema';\n\n/**\n * AgentConfig - Agent 配置\n *\n * RDF 示例:\n * <#indexing> a udfs:AgentConfig ;\n * foaf:name \"Indexing Agent\" ;\n * udfs:description \"文档索引 Agent,帮助用户的文件变得可检索\" ;\n * udfs:provider </settings/ai/providers.ttl#anthropic> ;\n * udfs:runtimeKind \"claude\" ;\n * udfs:model </settings/ai/models.ttl#glm-4.7> ;\n * udfs:systemPrompt \"你是 IndexAgent...\" ;\n * udfs:maxTurns \"20\" ;\n * udfs:enabled \"true\" .\n *\n * 说明:\n * - provider 指向通用 Provider,提供 baseUrl/defaultModel 等 Pod 配置\n * - runtimeKind 决定使用哪个 Agent Executor\n * - model 可以覆盖 provider 的 defaultModel\n * - instructions / systemPrompt 是 Agent 的核心提示词字段\n */\nconst agentConfigSchema = createAgentSchema({ nameRequired: false });\n\nexport const AgentConfig = agentConfigSchema.table('AgentConfig', {\n base: '/settings/ai/agents.ttl',\n subjectTemplate: '#{id}',\n}) as any;\n\nexport const AgentStatus = agentStatusResource as any;\n"]}
@@ -1,25 +0,0 @@
1
- export interface CreateAgentSchemaOptions {
2
- nameRequired?: boolean;
3
- }
4
- export declare function createAgentSchema(options?: CreateAgentSchemaOptions): import("@undefineds.co/drizzle-solid").SolidSchema<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
5
- id: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
6
- name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
7
- description: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
8
- avatarUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
9
- instructions: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
10
- provider: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
11
- runtimeKind: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
12
- credential: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
13
- model: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
14
- enabled: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, true>;
15
- temperature: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
16
- tools: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "string", false, false>;
17
- contextRound: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
18
- maxTurns: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, false>;
19
- timeout: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, false>;
20
- ttsModel: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
21
- videoModel: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
22
- createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
23
- updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
24
- deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
25
- }>>;