siclaw 0.1.0 → 0.1.2

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 (270) hide show
  1. package/README.md +75 -114
  2. package/dist/agentbox/gateway-client.d.ts +2 -1
  3. package/dist/agentbox/gateway-client.js +6 -2
  4. package/dist/agentbox/gateway-client.js.map +1 -1
  5. package/dist/agentbox/http-server.js +184 -19
  6. package/dist/agentbox/http-server.js.map +1 -1
  7. package/dist/agentbox/resource-handlers.d.ts +1 -0
  8. package/dist/agentbox/resource-handlers.js +23 -23
  9. package/dist/agentbox/resource-handlers.js.map +1 -1
  10. package/dist/agentbox/session.js +85 -5
  11. package/dist/agentbox/session.js.map +1 -1
  12. package/dist/agentbox-main.d.ts +2 -1
  13. package/dist/agentbox-main.js +65 -18
  14. package/dist/agentbox-main.js.map +1 -1
  15. package/dist/cli-credentials.d.ts +1 -0
  16. package/dist/cli-credentials.js +109 -0
  17. package/dist/cli-credentials.js.map +1 -0
  18. package/dist/cli-first-run.d.ts +11 -0
  19. package/dist/cli-first-run.js +99 -0
  20. package/dist/cli-first-run.js.map +1 -0
  21. package/dist/cli-main.js +33 -11
  22. package/dist/cli-main.js.map +1 -1
  23. package/dist/cli-setup.d.ts +5 -11
  24. package/dist/cli-setup.js +12 -225
  25. package/dist/cli-setup.js.map +1 -1
  26. package/dist/core/agent-factory.d.ts +4 -0
  27. package/dist/core/agent-factory.js +102 -151
  28. package/dist/core/agent-factory.js.map +1 -1
  29. package/dist/core/config.d.ts +10 -3
  30. package/dist/core/config.js +11 -95
  31. package/dist/core/config.js.map +1 -1
  32. package/dist/core/extensions/deep-investigation.d.ts +2 -1
  33. package/dist/core/extensions/deep-investigation.js +144 -24
  34. package/dist/core/extensions/deep-investigation.js.map +1 -1
  35. package/dist/core/extensions/setup.d.ts +8 -0
  36. package/dist/core/extensions/setup.js +669 -0
  37. package/dist/core/extensions/setup.js.map +1 -0
  38. package/dist/core/llm-proxy.js +7 -3
  39. package/dist/core/llm-proxy.js.map +1 -1
  40. package/dist/core/mcp-client.d.ts +0 -10
  41. package/dist/core/mcp-client.js +0 -65
  42. package/dist/core/mcp-client.js.map +1 -1
  43. package/dist/core/prompt.d.ts +1 -1
  44. package/dist/core/prompt.js +42 -5
  45. package/dist/core/prompt.js.map +1 -1
  46. package/dist/core/provider-presets.d.ts +14 -0
  47. package/dist/core/provider-presets.js +81 -0
  48. package/dist/core/provider-presets.js.map +1 -0
  49. package/dist/cron/cron-coordinator.d.ts +2 -0
  50. package/dist/cron/cron-coordinator.js +46 -14
  51. package/dist/cron/cron-coordinator.js.map +1 -1
  52. package/dist/cron/cron-executor.js +33 -8
  53. package/dist/cron/cron-executor.js.map +1 -1
  54. package/dist/cron/cron-scheduler.d.ts +1 -1
  55. package/dist/cron/gateway-client.d.ts +5 -0
  56. package/dist/cron/gateway-client.js +43 -8
  57. package/dist/cron/gateway-client.js.map +1 -1
  58. package/dist/cron-main.js +39 -9
  59. package/dist/cron-main.js.map +1 -1
  60. package/dist/gateway/agentbox/client.d.ts +11 -0
  61. package/dist/gateway/agentbox/client.js +18 -0
  62. package/dist/gateway/agentbox/client.js.map +1 -1
  63. package/dist/gateway/agentbox/k8s-spawner.d.ts +11 -2
  64. package/dist/gateway/agentbox/k8s-spawner.js +95 -52
  65. package/dist/gateway/agentbox/k8s-spawner.js.map +1 -1
  66. package/dist/gateway/agentbox/local-spawner.d.ts +1 -1
  67. package/dist/gateway/agentbox/local-spawner.js +4 -2
  68. package/dist/gateway/agentbox/local-spawner.js.map +1 -1
  69. package/dist/gateway/agentbox/manager.d.ts +0 -10
  70. package/dist/gateway/agentbox/manager.js +11 -30
  71. package/dist/gateway/agentbox/manager.js.map +1 -1
  72. package/dist/gateway/agentbox/types.d.ts +6 -4
  73. package/dist/gateway/cron/cron-service.d.ts +49 -0
  74. package/dist/gateway/cron/cron-service.js +259 -0
  75. package/dist/gateway/cron/cron-service.js.map +1 -0
  76. package/dist/gateway/db/init-schema.js +44 -0
  77. package/dist/gateway/db/init-schema.js.map +1 -1
  78. package/dist/gateway/db/migrate-sqlite.js +73 -4
  79. package/dist/gateway/db/migrate-sqlite.js.map +1 -1
  80. package/dist/gateway/db/repositories/chat-repo.d.ts +56 -2
  81. package/dist/gateway/db/repositories/chat-repo.js +132 -2
  82. package/dist/gateway/db/repositories/chat-repo.js.map +1 -1
  83. package/dist/gateway/db/repositories/config-repo.d.ts +31 -2
  84. package/dist/gateway/db/repositories/config-repo.js +57 -7
  85. package/dist/gateway/db/repositories/config-repo.js.map +1 -1
  86. package/dist/gateway/db/repositories/env-repo.d.ts +14 -0
  87. package/dist/gateway/db/repositories/env-repo.js +15 -2
  88. package/dist/gateway/db/repositories/env-repo.js.map +1 -1
  89. package/dist/gateway/db/repositories/model-config-repo.d.ts +1 -1
  90. package/dist/gateway/db/repositories/model-config-repo.js +26 -12
  91. package/dist/gateway/db/repositories/model-config-repo.js.map +1 -1
  92. package/dist/gateway/db/repositories/skill-repo.d.ts +0 -5
  93. package/dist/gateway/db/repositories/skill-review-repo.d.ts +1 -0
  94. package/dist/gateway/db/repositories/skill-review-repo.js +4 -1
  95. package/dist/gateway/db/repositories/skill-review-repo.js.map +1 -1
  96. package/dist/gateway/db/repositories/skill-version-repo.js +0 -1
  97. package/dist/gateway/db/repositories/skill-version-repo.js.map +1 -1
  98. package/dist/gateway/db/repositories/system-config-repo.d.ts +1 -1
  99. package/dist/gateway/db/repositories/system-config-repo.js +2 -1
  100. package/dist/gateway/db/repositories/system-config-repo.js.map +1 -1
  101. package/dist/gateway/db/repositories/user-env-config-repo.d.ts +13 -0
  102. package/dist/gateway/db/repositories/user-env-config-repo.js +11 -0
  103. package/dist/gateway/db/repositories/user-env-config-repo.js.map +1 -1
  104. package/dist/gateway/db/repositories/workspace-repo.d.ts +3 -2
  105. package/dist/gateway/db/repositories/workspace-repo.js +6 -2
  106. package/dist/gateway/db/repositories/workspace-repo.js.map +1 -1
  107. package/dist/gateway/db/schema-mysql.d.ts +473 -51
  108. package/dist/gateway/db/schema-mysql.js +35 -4
  109. package/dist/gateway/db/schema-mysql.js.map +1 -1
  110. package/dist/gateway/db/schema-sqlite.d.ts +522 -57
  111. package/dist/gateway/db/schema-sqlite.js +38 -6
  112. package/dist/gateway/db/schema-sqlite.js.map +1 -1
  113. package/dist/gateway/db/schema.d.ts +471 -51
  114. package/dist/gateway/db/schema.js +1 -1
  115. package/dist/gateway/db/schema.js.map +1 -1
  116. package/dist/gateway/metrics-aggregator.d.ts +65 -0
  117. package/dist/gateway/metrics-aggregator.js +244 -0
  118. package/dist/gateway/metrics-aggregator.js.map +1 -0
  119. package/dist/gateway/plugins/channel-bridge.d.ts +4 -1
  120. package/dist/gateway/plugins/channel-bridge.js +78 -86
  121. package/dist/gateway/plugins/channel-bridge.js.map +1 -1
  122. package/dist/gateway/rpc-methods.d.ts +4 -2
  123. package/dist/gateway/rpc-methods.js +962 -163
  124. package/dist/gateway/rpc-methods.js.map +1 -1
  125. package/dist/gateway/security/cert-manager.d.ts +2 -2
  126. package/dist/gateway/security/cert-manager.js +4 -2
  127. package/dist/gateway/security/cert-manager.js.map +1 -1
  128. package/dist/gateway/server.d.ts +4 -8
  129. package/dist/gateway/server.js +297 -261
  130. package/dist/gateway/server.js.map +1 -1
  131. package/dist/gateway/skills/file-writer.js +17 -11
  132. package/dist/gateway/skills/file-writer.js.map +1 -1
  133. package/dist/gateway/skills/script-evaluator.js +12 -9
  134. package/dist/gateway/skills/script-evaluator.js.map +1 -1
  135. package/dist/gateway/web/dist/assets/index-0p17ZeTP.js +740 -0
  136. package/dist/gateway/web/dist/assets/index-9eP6nPUq.js +741 -0
  137. package/dist/gateway/web/dist/assets/index-9eP6nPUq.js.map +1 -0
  138. package/dist/gateway/web/dist/assets/index-CAmSY91d.js +675 -0
  139. package/dist/gateway/web/dist/assets/index-DMFEh8Pp.css +1 -0
  140. package/dist/gateway/web/dist/assets/index-DyowBCEj.css +1 -0
  141. package/dist/gateway/web/dist/assets/index-PDK5JJDO.css +1 -0
  142. package/dist/gateway/web/dist/index.html +2 -2
  143. package/dist/gateway-main.js +27 -10
  144. package/dist/gateway-main.js.map +1 -1
  145. package/dist/memory/embeddings.js +5 -4
  146. package/dist/memory/embeddings.js.map +1 -1
  147. package/dist/memory/indexer.d.ts +23 -3
  148. package/dist/memory/indexer.js +235 -23
  149. package/dist/memory/indexer.js.map +1 -1
  150. package/dist/memory/schema.js +15 -1
  151. package/dist/memory/schema.js.map +1 -1
  152. package/dist/memory/types.d.ts +18 -0
  153. package/dist/memory/types.js +6 -1
  154. package/dist/memory/types.js.map +1 -1
  155. package/dist/shared/detect-language.d.ts +12 -0
  156. package/dist/shared/detect-language.js +78 -0
  157. package/dist/shared/detect-language.js.map +1 -0
  158. package/dist/shared/diagnostic-events.d.ts +70 -0
  159. package/dist/shared/diagnostic-events.js +38 -0
  160. package/dist/shared/diagnostic-events.js.map +1 -0
  161. package/dist/shared/local-collector.d.ts +56 -0
  162. package/dist/shared/local-collector.js +284 -0
  163. package/dist/shared/local-collector.js.map +1 -0
  164. package/dist/shared/metrics-types.d.ts +64 -0
  165. package/dist/shared/metrics-types.js +25 -0
  166. package/dist/shared/metrics-types.js.map +1 -0
  167. package/dist/shared/metrics.d.ts +19 -0
  168. package/dist/shared/metrics.js +185 -0
  169. package/dist/shared/metrics.js.map +1 -0
  170. package/dist/shared/path-utils.d.ts +15 -0
  171. package/dist/shared/path-utils.js +23 -0
  172. package/dist/shared/path-utils.js.map +1 -0
  173. package/dist/shared/retry.d.ts +35 -0
  174. package/dist/shared/retry.js +61 -0
  175. package/dist/shared/retry.js.map +1 -0
  176. package/dist/tools/command-sets.d.ts +18 -2
  177. package/dist/tools/command-sets.js +207 -32
  178. package/dist/tools/command-sets.js.map +1 -1
  179. package/dist/tools/command-validator.d.ts +56 -0
  180. package/dist/tools/command-validator.js +357 -0
  181. package/dist/tools/command-validator.js.map +1 -0
  182. package/dist/tools/create-skill.js +26 -1
  183. package/dist/tools/create-skill.js.map +1 -1
  184. package/dist/tools/credential-list.js +1 -23
  185. package/dist/tools/credential-list.js.map +1 -1
  186. package/dist/tools/credential-manager.d.ts +98 -0
  187. package/dist/tools/credential-manager.js +313 -0
  188. package/dist/tools/credential-manager.js.map +1 -0
  189. package/dist/tools/deep-search/engine.js +184 -127
  190. package/dist/tools/deep-search/engine.js.map +1 -1
  191. package/dist/tools/deep-search/prompts.d.ts +10 -2
  192. package/dist/tools/deep-search/prompts.js +37 -36
  193. package/dist/tools/deep-search/prompts.js.map +1 -1
  194. package/dist/tools/deep-search/schemas.d.ts +87 -0
  195. package/dist/tools/deep-search/schemas.js +85 -0
  196. package/dist/tools/deep-search/schemas.js.map +1 -0
  197. package/dist/tools/deep-search/sub-agent.d.ts +21 -0
  198. package/dist/tools/deep-search/sub-agent.js +153 -4
  199. package/dist/tools/deep-search/sub-agent.js.map +1 -1
  200. package/dist/tools/deep-search/tool.js +1 -0
  201. package/dist/tools/deep-search/tool.js.map +1 -1
  202. package/dist/tools/deep-search/types.d.ts +2 -0
  203. package/dist/tools/deep-search/types.js.map +1 -1
  204. package/dist/tools/dp-tools.js +29 -5
  205. package/dist/tools/dp-tools.js.map +1 -1
  206. package/dist/tools/exec-utils.d.ts +85 -0
  207. package/dist/tools/exec-utils.js +294 -0
  208. package/dist/tools/exec-utils.js.map +1 -0
  209. package/dist/tools/fork-skill.js +14 -2
  210. package/dist/tools/fork-skill.js.map +1 -1
  211. package/dist/tools/investigation-feedback.d.ts +3 -0
  212. package/dist/tools/investigation-feedback.js +71 -0
  213. package/dist/tools/investigation-feedback.js.map +1 -0
  214. package/dist/tools/manage-schedule.js +16 -6
  215. package/dist/tools/manage-schedule.js.map +1 -1
  216. package/dist/tools/netns-script.js +27 -281
  217. package/dist/tools/netns-script.js.map +1 -1
  218. package/dist/tools/node-exec.d.ts +2 -14
  219. package/dist/tools/node-exec.js +18 -225
  220. package/dist/tools/node-exec.js.map +1 -1
  221. package/dist/tools/node-script.js +14 -168
  222. package/dist/tools/node-script.js.map +1 -1
  223. package/dist/tools/pod-exec.d.ts +1 -1
  224. package/dist/tools/pod-exec.js +10 -26
  225. package/dist/tools/pod-exec.js.map +1 -1
  226. package/dist/tools/pod-nsenter-exec.js +21 -225
  227. package/dist/tools/pod-nsenter-exec.js.map +1 -1
  228. package/dist/tools/pod-script.js +10 -19
  229. package/dist/tools/pod-script.js.map +1 -1
  230. package/dist/tools/restricted-bash.d.ts +1 -17
  231. package/dist/tools/restricted-bash.js +38 -252
  232. package/dist/tools/restricted-bash.js.map +1 -1
  233. package/dist/tools/run-skill.d.ts +3 -1
  234. package/dist/tools/run-skill.js +21 -1
  235. package/dist/tools/run-skill.js.map +1 -1
  236. package/dist/tools/script-resolver.d.ts +3 -1
  237. package/dist/tools/script-resolver.js +74 -30
  238. package/dist/tools/script-resolver.js.map +1 -1
  239. package/dist/tools/update-skill.js +17 -6
  240. package/dist/tools/update-skill.js.map +1 -1
  241. package/package.json +8 -6
  242. package/siclaw.mjs +10 -1
  243. package/skills/core/cluster-events/SKILL.md +1 -1
  244. package/skills/core/deep-investigation/SKILL.md +11 -0
  245. package/skills/core/deployment-rollout-debug/SKILL.md +1 -1
  246. package/skills/core/dns-debug/SKILL.md +1 -0
  247. package/skills/core/meta.json +12 -1
  248. package/skills/core/networkpolicy-debug/SKILL.md +332 -0
  249. package/skills/core/node-logs/scripts/get-node-logs.sh +19 -9
  250. package/skills/core/pod-pending-debug/SKILL.md +1 -0
  251. package/skills/core/quota-debug/SKILL.md +203 -0
  252. package/skills/core/service-debug/SKILL.md +1 -0
  253. package/skills/core/statefulset-debug/SKILL.md +280 -0
  254. package/skills/core/volcano-diagnose-pod/SKILL.md +196 -0
  255. package/skills/core/volcano-diagnose-pod/scripts/diagnose-pod.sh +175 -0
  256. package/skills/core/volcano-gang-scheduling/SKILL.md +299 -0
  257. package/skills/core/volcano-job-diagnose/SKILL.md +319 -0
  258. package/skills/core/volcano-job-diagnose/scripts/diagnose-job.sh +253 -0
  259. package/skills/core/volcano-node-resources/SKILL.md +334 -0
  260. package/skills/core/volcano-node-resources/scripts/get-node-resources.sh +281 -0
  261. package/skills/core/volcano-queue-diagnose/SKILL.md +294 -0
  262. package/skills/core/volcano-queue-diagnose/scripts/diagnose-queue.sh +283 -0
  263. package/skills/core/volcano-resource-insufficient/SKILL.md +315 -0
  264. package/skills/core/volcano-scheduler-config/SKILL.md +371 -0
  265. package/skills/core/volcano-scheduler-config/scripts/get-scheduler-config.sh +297 -0
  266. package/skills/core/volcano-scheduler-logs/SKILL.md +241 -0
  267. package/skills/core/volcano-scheduler-logs/scripts/get-scheduler-logs.sh +159 -0
  268. package/skills/platform/create-skill/SKILL.md +35 -3
  269. package/skills/platform/manage-skill/SKILL.md +9 -2
  270. package/skills/platform/update-skill/SKILL.md +17 -6
@@ -401,23 +401,6 @@ export declare const users: import("drizzle-orm/mysql-core").MySqlTableWithColum
401
401
  identity: undefined;
402
402
  generated: undefined;
403
403
  }, {}, {}>;
404
- s3Key: import("drizzle-orm/mysql-core").MySqlColumn<{
405
- name: "s3_key";
406
- tableName: "sessions";
407
- dataType: "string";
408
- columnType: "MySqlVarChar";
409
- data: string;
410
- driverParam: string | number;
411
- notNull: false;
412
- hasDefault: false;
413
- isPrimaryKey: false;
414
- isAutoincrement: false;
415
- hasRuntimeDefault: false;
416
- enumValues: [string, ...string[]];
417
- baseColumn: never;
418
- identity: undefined;
419
- generated: undefined;
420
- }, {}, {}>;
421
404
  };
422
405
  dialect: "mysql";
423
406
  }>, messages: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
@@ -562,6 +545,57 @@ export declare const users: import("drizzle-orm/mysql-core").MySqlTableWithColum
562
545
  identity: undefined;
563
546
  generated: undefined;
564
547
  }, {}, {}>;
548
+ userId: import("drizzle-orm/mysql-core").MySqlColumn<{
549
+ name: "user_id";
550
+ tableName: "messages";
551
+ dataType: "string";
552
+ columnType: "MySqlVarChar";
553
+ data: string;
554
+ driverParam: string | number;
555
+ notNull: false;
556
+ hasDefault: false;
557
+ isPrimaryKey: false;
558
+ isAutoincrement: false;
559
+ hasRuntimeDefault: false;
560
+ enumValues: [string, ...string[]];
561
+ baseColumn: never;
562
+ identity: undefined;
563
+ generated: undefined;
564
+ }, {}, {}>;
565
+ outcome: import("drizzle-orm/mysql-core").MySqlColumn<{
566
+ name: "outcome";
567
+ tableName: "messages";
568
+ dataType: "string";
569
+ columnType: "MySqlVarChar";
570
+ data: string;
571
+ driverParam: string | number;
572
+ notNull: false;
573
+ hasDefault: false;
574
+ isPrimaryKey: false;
575
+ isAutoincrement: false;
576
+ hasRuntimeDefault: false;
577
+ enumValues: [string, ...string[]];
578
+ baseColumn: never;
579
+ identity: undefined;
580
+ generated: undefined;
581
+ }, {}, {}>;
582
+ durationMs: import("drizzle-orm/mysql-core").MySqlColumn<{
583
+ name: "duration_ms";
584
+ tableName: "messages";
585
+ dataType: "number";
586
+ columnType: "MySqlInt";
587
+ data: number;
588
+ driverParam: string | number;
589
+ notNull: false;
590
+ hasDefault: false;
591
+ isPrimaryKey: false;
592
+ isAutoincrement: false;
593
+ hasRuntimeDefault: false;
594
+ enumValues: undefined;
595
+ baseColumn: never;
596
+ identity: undefined;
597
+ generated: undefined;
598
+ }, {}, {}>;
565
599
  };
566
600
  dialect: "mysql";
567
601
  }>, skills: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
@@ -823,23 +857,6 @@ export declare const users: import("drizzle-orm/mysql-core").MySqlTableWithColum
823
857
  identity: undefined;
824
858
  generated: undefined;
825
859
  }, {}, {}>;
826
- s3Key: import("drizzle-orm/mysql-core").MySqlColumn<{
827
- name: "s3_key";
828
- tableName: "skills";
829
- dataType: "string";
830
- columnType: "MySqlVarChar";
831
- data: string;
832
- driverParam: string | number;
833
- notNull: false;
834
- hasDefault: false;
835
- isPrimaryKey: false;
836
- isAutoincrement: false;
837
- hasRuntimeDefault: false;
838
- enumValues: [string, ...string[]];
839
- baseColumn: never;
840
- identity: undefined;
841
- generated: undefined;
842
- }, {}, {}>;
843
860
  teamSourceSkillId: import("drizzle-orm/mysql-core").MySqlColumn<{
844
861
  name: "team_source_skill_id";
845
862
  tableName: "skills";
@@ -1100,23 +1117,6 @@ export declare const users: import("drizzle-orm/mysql-core").MySqlTableWithColum
1100
1117
  identity: undefined;
1101
1118
  generated: undefined;
1102
1119
  }, {}, {}>;
1103
- s3Key: import("drizzle-orm/mysql-core").MySqlColumn<{
1104
- name: "s3_key";
1105
- tableName: "skill_versions";
1106
- dataType: "string";
1107
- columnType: "MySqlVarChar";
1108
- data: string;
1109
- driverParam: string | number;
1110
- notNull: false;
1111
- hasDefault: false;
1112
- isPrimaryKey: false;
1113
- isAutoincrement: false;
1114
- hasRuntimeDefault: false;
1115
- enumValues: [string, ...string[]];
1116
- baseColumn: never;
1117
- identity: undefined;
1118
- generated: undefined;
1119
- }, {}, {}>;
1120
1120
  specs: import("drizzle-orm/mysql-core").MySqlColumn<{
1121
1121
  name: "specs";
1122
1122
  tableName: "skill_versions";
@@ -1555,6 +1555,148 @@ export declare const users: import("drizzle-orm/mysql-core").MySqlTableWithColum
1555
1555
  identity: undefined;
1556
1556
  generated: undefined;
1557
1557
  }, {}, {}>;
1558
+ workspaceId: import("drizzle-orm/mysql-core").MySqlColumn<{
1559
+ name: "workspace_id";
1560
+ tableName: "cron_jobs";
1561
+ dataType: "string";
1562
+ columnType: "MySqlVarChar";
1563
+ data: string;
1564
+ driverParam: string | number;
1565
+ notNull: false;
1566
+ hasDefault: false;
1567
+ isPrimaryKey: false;
1568
+ isAutoincrement: false;
1569
+ hasRuntimeDefault: false;
1570
+ enumValues: [string, ...string[]];
1571
+ baseColumn: never;
1572
+ identity: undefined;
1573
+ generated: undefined;
1574
+ }, {}, {}>;
1575
+ };
1576
+ dialect: "mysql";
1577
+ }>, cronJobRuns: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
1578
+ name: "cron_job_runs";
1579
+ schema: undefined;
1580
+ columns: {
1581
+ id: import("drizzle-orm/mysql-core").MySqlColumn<{
1582
+ name: "id";
1583
+ tableName: "cron_job_runs";
1584
+ dataType: "string";
1585
+ columnType: "MySqlVarChar";
1586
+ data: string;
1587
+ driverParam: string | number;
1588
+ notNull: true;
1589
+ hasDefault: false;
1590
+ isPrimaryKey: true;
1591
+ isAutoincrement: false;
1592
+ hasRuntimeDefault: false;
1593
+ enumValues: [string, ...string[]];
1594
+ baseColumn: never;
1595
+ identity: undefined;
1596
+ generated: undefined;
1597
+ }, {}, {}>;
1598
+ jobId: import("drizzle-orm/mysql-core").MySqlColumn<{
1599
+ name: "job_id";
1600
+ tableName: "cron_job_runs";
1601
+ dataType: "string";
1602
+ columnType: "MySqlVarChar";
1603
+ data: string;
1604
+ driverParam: string | number;
1605
+ notNull: true;
1606
+ hasDefault: false;
1607
+ isPrimaryKey: false;
1608
+ isAutoincrement: false;
1609
+ hasRuntimeDefault: false;
1610
+ enumValues: [string, ...string[]];
1611
+ baseColumn: never;
1612
+ identity: undefined;
1613
+ generated: undefined;
1614
+ }, {}, {}>;
1615
+ status: import("drizzle-orm/mysql-core").MySqlColumn<{
1616
+ name: "status";
1617
+ tableName: "cron_job_runs";
1618
+ dataType: "string";
1619
+ columnType: "MySqlVarChar";
1620
+ data: string;
1621
+ driverParam: string | number;
1622
+ notNull: true;
1623
+ hasDefault: false;
1624
+ isPrimaryKey: false;
1625
+ isAutoincrement: false;
1626
+ hasRuntimeDefault: false;
1627
+ enumValues: [string, ...string[]];
1628
+ baseColumn: never;
1629
+ identity: undefined;
1630
+ generated: undefined;
1631
+ }, {}, {}>;
1632
+ resultText: import("drizzle-orm/mysql-core").MySqlColumn<{
1633
+ name: "result_text";
1634
+ tableName: "cron_job_runs";
1635
+ dataType: "string";
1636
+ columnType: "MySqlText";
1637
+ data: string;
1638
+ driverParam: string;
1639
+ notNull: false;
1640
+ hasDefault: false;
1641
+ isPrimaryKey: false;
1642
+ isAutoincrement: false;
1643
+ hasRuntimeDefault: false;
1644
+ enumValues: [string, ...string[]];
1645
+ baseColumn: never;
1646
+ identity: undefined;
1647
+ generated: undefined;
1648
+ }, {}, {}>;
1649
+ error: import("drizzle-orm/mysql-core").MySqlColumn<{
1650
+ name: "error";
1651
+ tableName: "cron_job_runs";
1652
+ dataType: "string";
1653
+ columnType: "MySqlText";
1654
+ data: string;
1655
+ driverParam: string;
1656
+ notNull: false;
1657
+ hasDefault: false;
1658
+ isPrimaryKey: false;
1659
+ isAutoincrement: false;
1660
+ hasRuntimeDefault: false;
1661
+ enumValues: [string, ...string[]];
1662
+ baseColumn: never;
1663
+ identity: undefined;
1664
+ generated: undefined;
1665
+ }, {}, {}>;
1666
+ durationMs: import("drizzle-orm/mysql-core").MySqlColumn<{
1667
+ name: "duration_ms";
1668
+ tableName: "cron_job_runs";
1669
+ dataType: "number";
1670
+ columnType: "MySqlInt";
1671
+ data: number;
1672
+ driverParam: string | number;
1673
+ notNull: false;
1674
+ hasDefault: false;
1675
+ isPrimaryKey: false;
1676
+ isAutoincrement: false;
1677
+ hasRuntimeDefault: false;
1678
+ enumValues: undefined;
1679
+ baseColumn: never;
1680
+ identity: undefined;
1681
+ generated: undefined;
1682
+ }, {}, {}>;
1683
+ createdAt: import("drizzle-orm/mysql-core").MySqlColumn<{
1684
+ name: "created_at";
1685
+ tableName: "cron_job_runs";
1686
+ dataType: "date";
1687
+ columnType: "MySqlTimestamp";
1688
+ data: Date;
1689
+ driverParam: string | number;
1690
+ notNull: true;
1691
+ hasDefault: true;
1692
+ isPrimaryKey: false;
1693
+ isAutoincrement: false;
1694
+ hasRuntimeDefault: false;
1695
+ enumValues: undefined;
1696
+ baseColumn: never;
1697
+ identity: undefined;
1698
+ generated: undefined;
1699
+ }, {}, {}>;
1558
1700
  };
1559
1701
  dialect: "mysql";
1560
1702
  }>, cronInstances: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
@@ -2480,6 +2622,23 @@ export declare const users: import("drizzle-orm/mysql-core").MySqlTableWithColum
2480
2622
  identity: undefined;
2481
2623
  generated: undefined;
2482
2624
  }, {}, {}>;
2625
+ envType: import("drizzle-orm/mysql-core").MySqlColumn<{
2626
+ name: "env_type";
2627
+ tableName: "workspaces";
2628
+ dataType: "string";
2629
+ columnType: "MySqlVarChar";
2630
+ data: string;
2631
+ driverParam: string | number;
2632
+ notNull: true;
2633
+ hasDefault: true;
2634
+ isPrimaryKey: false;
2635
+ isAutoincrement: false;
2636
+ hasRuntimeDefault: false;
2637
+ enumValues: [string, ...string[]];
2638
+ baseColumn: never;
2639
+ identity: undefined;
2640
+ generated: undefined;
2641
+ }, {}, {}>;
2483
2642
  configJson: import("drizzle-orm/mysql-core").MySqlColumn<{
2484
2643
  name: "config_json";
2485
2644
  tableName: "workspaces";
@@ -2806,6 +2965,23 @@ export declare const users: import("drizzle-orm/mysql-core").MySqlTableWithColum
2806
2965
  identity: undefined;
2807
2966
  generated: undefined;
2808
2967
  }, {}, {}>;
2968
+ apiServer: import("drizzle-orm/mysql-core").MySqlColumn<{
2969
+ name: "api_server";
2970
+ tableName: "environments";
2971
+ dataType: "string";
2972
+ columnType: "MySqlVarChar";
2973
+ data: string;
2974
+ driverParam: string | number;
2975
+ notNull: true;
2976
+ hasDefault: false;
2977
+ isPrimaryKey: false;
2978
+ isAutoincrement: false;
2979
+ hasRuntimeDefault: false;
2980
+ enumValues: [string, ...string[]];
2981
+ baseColumn: never;
2982
+ identity: undefined;
2983
+ generated: undefined;
2984
+ }, {}, {}>;
2809
2985
  allowedServers: import("drizzle-orm/mysql-core").MySqlColumn<{
2810
2986
  name: "allowed_servers";
2811
2987
  tableName: "environments";
@@ -3380,6 +3556,250 @@ export declare const users: import("drizzle-orm/mysql-core").MySqlTableWithColum
3380
3556
  }, {}, {}>;
3381
3557
  };
3382
3558
  dialect: "mysql";
3559
+ }>, sessionStats: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
3560
+ name: "session_stats";
3561
+ schema: undefined;
3562
+ columns: {
3563
+ id: import("drizzle-orm/mysql-core").MySqlColumn<{
3564
+ name: "id";
3565
+ tableName: "session_stats";
3566
+ dataType: "string";
3567
+ columnType: "MySqlVarChar";
3568
+ data: string;
3569
+ driverParam: string | number;
3570
+ notNull: true;
3571
+ hasDefault: false;
3572
+ isPrimaryKey: true;
3573
+ isAutoincrement: false;
3574
+ hasRuntimeDefault: false;
3575
+ enumValues: [string, ...string[]];
3576
+ baseColumn: never;
3577
+ identity: undefined;
3578
+ generated: undefined;
3579
+ }, {}, {}>;
3580
+ sessionId: import("drizzle-orm/mysql-core").MySqlColumn<{
3581
+ name: "session_id";
3582
+ tableName: "session_stats";
3583
+ dataType: "string";
3584
+ columnType: "MySqlVarChar";
3585
+ data: string;
3586
+ driverParam: string | number;
3587
+ notNull: true;
3588
+ hasDefault: false;
3589
+ isPrimaryKey: false;
3590
+ isAutoincrement: false;
3591
+ hasRuntimeDefault: false;
3592
+ enumValues: [string, ...string[]];
3593
+ baseColumn: never;
3594
+ identity: undefined;
3595
+ generated: undefined;
3596
+ }, {}, {}>;
3597
+ userId: import("drizzle-orm/mysql-core").MySqlColumn<{
3598
+ name: "user_id";
3599
+ tableName: "session_stats";
3600
+ dataType: "string";
3601
+ columnType: "MySqlVarChar";
3602
+ data: string;
3603
+ driverParam: string | number;
3604
+ notNull: true;
3605
+ hasDefault: false;
3606
+ isPrimaryKey: false;
3607
+ isAutoincrement: false;
3608
+ hasRuntimeDefault: false;
3609
+ enumValues: [string, ...string[]];
3610
+ baseColumn: never;
3611
+ identity: undefined;
3612
+ generated: undefined;
3613
+ }, {}, {}>;
3614
+ provider: import("drizzle-orm/mysql-core").MySqlColumn<{
3615
+ name: "provider";
3616
+ tableName: "session_stats";
3617
+ dataType: "string";
3618
+ columnType: "MySqlVarChar";
3619
+ data: string;
3620
+ driverParam: string | number;
3621
+ notNull: false;
3622
+ hasDefault: false;
3623
+ isPrimaryKey: false;
3624
+ isAutoincrement: false;
3625
+ hasRuntimeDefault: false;
3626
+ enumValues: [string, ...string[]];
3627
+ baseColumn: never;
3628
+ identity: undefined;
3629
+ generated: undefined;
3630
+ }, {}, {}>;
3631
+ model: import("drizzle-orm/mysql-core").MySqlColumn<{
3632
+ name: "model";
3633
+ tableName: "session_stats";
3634
+ dataType: "string";
3635
+ columnType: "MySqlVarChar";
3636
+ data: string;
3637
+ driverParam: string | number;
3638
+ notNull: false;
3639
+ hasDefault: false;
3640
+ isPrimaryKey: false;
3641
+ isAutoincrement: false;
3642
+ hasRuntimeDefault: false;
3643
+ enumValues: [string, ...string[]];
3644
+ baseColumn: never;
3645
+ identity: undefined;
3646
+ generated: undefined;
3647
+ }, {}, {}>;
3648
+ inputTokens: import("drizzle-orm/mysql-core").MySqlColumn<{
3649
+ name: "input_tokens";
3650
+ tableName: "session_stats";
3651
+ dataType: "number";
3652
+ columnType: "MySqlInt";
3653
+ data: number;
3654
+ driverParam: string | number;
3655
+ notNull: false;
3656
+ hasDefault: true;
3657
+ isPrimaryKey: false;
3658
+ isAutoincrement: false;
3659
+ hasRuntimeDefault: false;
3660
+ enumValues: undefined;
3661
+ baseColumn: never;
3662
+ identity: undefined;
3663
+ generated: undefined;
3664
+ }, {}, {}>;
3665
+ outputTokens: import("drizzle-orm/mysql-core").MySqlColumn<{
3666
+ name: "output_tokens";
3667
+ tableName: "session_stats";
3668
+ dataType: "number";
3669
+ columnType: "MySqlInt";
3670
+ data: number;
3671
+ driverParam: string | number;
3672
+ notNull: false;
3673
+ hasDefault: true;
3674
+ isPrimaryKey: false;
3675
+ isAutoincrement: false;
3676
+ hasRuntimeDefault: false;
3677
+ enumValues: undefined;
3678
+ baseColumn: never;
3679
+ identity: undefined;
3680
+ generated: undefined;
3681
+ }, {}, {}>;
3682
+ cacheReadTokens: import("drizzle-orm/mysql-core").MySqlColumn<{
3683
+ name: "cache_read_tokens";
3684
+ tableName: "session_stats";
3685
+ dataType: "number";
3686
+ columnType: "MySqlInt";
3687
+ data: number;
3688
+ driverParam: string | number;
3689
+ notNull: false;
3690
+ hasDefault: true;
3691
+ isPrimaryKey: false;
3692
+ isAutoincrement: false;
3693
+ hasRuntimeDefault: false;
3694
+ enumValues: undefined;
3695
+ baseColumn: never;
3696
+ identity: undefined;
3697
+ generated: undefined;
3698
+ }, {}, {}>;
3699
+ cacheWriteTokens: import("drizzle-orm/mysql-core").MySqlColumn<{
3700
+ name: "cache_write_tokens";
3701
+ tableName: "session_stats";
3702
+ dataType: "number";
3703
+ columnType: "MySqlInt";
3704
+ data: number;
3705
+ driverParam: string | number;
3706
+ notNull: false;
3707
+ hasDefault: true;
3708
+ isPrimaryKey: false;
3709
+ isAutoincrement: false;
3710
+ hasRuntimeDefault: false;
3711
+ enumValues: undefined;
3712
+ baseColumn: never;
3713
+ identity: undefined;
3714
+ generated: undefined;
3715
+ }, {}, {}>;
3716
+ durationMs: import("drizzle-orm/mysql-core").MySqlColumn<{
3717
+ name: "duration_ms";
3718
+ tableName: "session_stats";
3719
+ dataType: "number";
3720
+ columnType: "MySqlInt";
3721
+ data: number;
3722
+ driverParam: string | number;
3723
+ notNull: false;
3724
+ hasDefault: true;
3725
+ isPrimaryKey: false;
3726
+ isAutoincrement: false;
3727
+ hasRuntimeDefault: false;
3728
+ enumValues: undefined;
3729
+ baseColumn: never;
3730
+ identity: undefined;
3731
+ generated: undefined;
3732
+ }, {}, {}>;
3733
+ promptCount: import("drizzle-orm/mysql-core").MySqlColumn<{
3734
+ name: "prompt_count";
3735
+ tableName: "session_stats";
3736
+ dataType: "number";
3737
+ columnType: "MySqlInt";
3738
+ data: number;
3739
+ driverParam: string | number;
3740
+ notNull: false;
3741
+ hasDefault: true;
3742
+ isPrimaryKey: false;
3743
+ isAutoincrement: false;
3744
+ hasRuntimeDefault: false;
3745
+ enumValues: undefined;
3746
+ baseColumn: never;
3747
+ identity: undefined;
3748
+ generated: undefined;
3749
+ }, {}, {}>;
3750
+ toolCallCount: import("drizzle-orm/mysql-core").MySqlColumn<{
3751
+ name: "tool_call_count";
3752
+ tableName: "session_stats";
3753
+ dataType: "number";
3754
+ columnType: "MySqlInt";
3755
+ data: number;
3756
+ driverParam: string | number;
3757
+ notNull: false;
3758
+ hasDefault: true;
3759
+ isPrimaryKey: false;
3760
+ isAutoincrement: false;
3761
+ hasRuntimeDefault: false;
3762
+ enumValues: undefined;
3763
+ baseColumn: never;
3764
+ identity: undefined;
3765
+ generated: undefined;
3766
+ }, {}, {}>;
3767
+ skillCallCount: import("drizzle-orm/mysql-core").MySqlColumn<{
3768
+ name: "skill_call_count";
3769
+ tableName: "session_stats";
3770
+ dataType: "number";
3771
+ columnType: "MySqlInt";
3772
+ data: number;
3773
+ driverParam: string | number;
3774
+ notNull: false;
3775
+ hasDefault: true;
3776
+ isPrimaryKey: false;
3777
+ isAutoincrement: false;
3778
+ hasRuntimeDefault: false;
3779
+ enumValues: undefined;
3780
+ baseColumn: never;
3781
+ identity: undefined;
3782
+ generated: undefined;
3783
+ }, {}, {}>;
3784
+ createdAt: import("drizzle-orm/mysql-core").MySqlColumn<{
3785
+ name: "created_at";
3786
+ tableName: "session_stats";
3787
+ dataType: "number";
3788
+ columnType: "MySqlBigInt53";
3789
+ data: number;
3790
+ driverParam: string | number;
3791
+ notNull: true;
3792
+ hasDefault: false;
3793
+ isPrimaryKey: false;
3794
+ isAutoincrement: false;
3795
+ hasRuntimeDefault: false;
3796
+ enumValues: undefined;
3797
+ baseColumn: never;
3798
+ identity: undefined;
3799
+ generated: undefined;
3800
+ }, {}, {}>;
3801
+ };
3802
+ dialect: "mysql";
3383
3803
  }>, systemConfig: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
3384
3804
  name: "system_config";
3385
3805
  schema: undefined;
@@ -12,5 +12,5 @@ export const schemaDialect = _envUrl.startsWith("sqlite:") || _envUrl.startsWith
12
12
  const _mod = (schemaDialect === "sqlite"
13
13
  ? await import("./schema-sqlite.js")
14
14
  : await import("./schema-mysql.js"));
15
- export const { users, userProfiles, sessions, messages, skills, skillContents, skillVersions, channels, cronJobs, cronInstances, skillVotes, notifications, modelProviders, modelEntries, embeddingConfig, workspaces, workspaceSkills, workspaceTools, workspaceEnvironments, workspaceCredentials, userDisabledSkills, environments, userEnvConfigs, triggers, credentials, userPermissions, systemConfig, mcpServers, skillReviews, } = _mod;
15
+ export const { users, userProfiles, sessions, messages, skills, skillContents, skillVersions, channels, cronJobs, cronJobRuns, cronInstances, skillVotes, notifications, modelProviders, modelEntries, embeddingConfig, workspaces, workspaceSkills, workspaceTools, workspaceEnvironments, workspaceCredentials, userDisabledSkills, environments, userEnvConfigs, triggers, credentials, userPermissions, sessionStats, systemConfig, mcpServers, skillReviews, } = _mod;
16
16
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/gateway/db/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,4BAA4B,CAAC;AAEhF,MAAM,CAAC,MAAM,aAAa,GACxB,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;AAEpF,MAAM,IAAI,GAAG,CAAC,aAAa,KAAK,QAAQ;IACtC,CAAC,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC;IACpC,CAAC,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CACd,CAAC;AAExB,MAAM,CAAC,MAAM,EACX,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,aAAa,EACb,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,UAAU,EACV,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,WAAW,EACX,eAAe,EACf,YAAY,EACZ,UAAU,EACV,YAAY,GACb,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/gateway/db/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,4BAA4B,CAAC;AAEhF,MAAM,CAAC,MAAM,aAAa,GACxB,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;AAEpF,MAAM,IAAI,GAAG,CAAC,aAAa,KAAK,QAAQ;IACtC,CAAC,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC;IACpC,CAAC,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CACd,CAAC;AAExB,MAAM,CAAC,MAAM,EACX,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,aAAa,EACb,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,UAAU,EACV,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,GACb,GAAG,IAAI,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * MetricsAggregator — Gateway-side metrics aggregation for the Monitoring Dashboard.
3
+ *
4
+ * Two modes:
5
+ * - **Local**: Proxies LocalCollector (same process). Consumes session stats
6
+ * queue on `session_released` events and writes directly to Gateway DB.
7
+ * - **K8s**: Runs a 30s pull loop fetching `/api/internal/metrics-snapshot`
8
+ * from all active AgentBox pods, merges buckets, and writes session stats to DB.
9
+ *
10
+ * In both modes, Gateway-side WS connection counts are tracked via onDiagnostic().
11
+ * K8s mode does NOT import local-collector.ts.
12
+ */
13
+ import { type MetricsBucket, type ToolCallStats, type SkillCallStats, type SessionStatsRecord, type MetricsSnapshot } from "../shared/metrics-types.js";
14
+ import type { Database } from "./db/index.js";
15
+ /** Interface for LocalCollector dependency injection (Local mode only) */
16
+ export interface LocalCollectorRef {
17
+ query(range: "1h" | "6h" | "24h"): MetricsBucket[];
18
+ snapshot(): {
19
+ activeSessions: number;
20
+ wsConnections: number;
21
+ };
22
+ topTools(n: number): ToolCallStats[];
23
+ topSkills(n: number): SkillCallStats[];
24
+ drainSessionStats(): SessionStatsRecord[];
25
+ }
26
+ /** Interface for pod listing (K8s mode only) */
27
+ export interface PodLister {
28
+ list(): Promise<Array<{
29
+ boxId: string;
30
+ endpoint: string;
31
+ status: string;
32
+ }>>;
33
+ }
34
+ /** Interface for making mTLS requests to AgentBox pods */
35
+ export interface SnapshotFetcher {
36
+ fetch(endpoint: string): Promise<MetricsSnapshot | null>;
37
+ }
38
+ export declare class MetricsAggregator {
39
+ private mode;
40
+ private localRef?;
41
+ private podLister?;
42
+ private snapshotFetcher?;
43
+ private ringBuffer;
44
+ private toolCallMap;
45
+ private skillCallMap;
46
+ private wsConnections;
47
+ private pullTimer?;
48
+ private db?;
49
+ constructor(mode: "local" | "k8s", localRef?: LocalCollectorRef | undefined, podLister?: PodLister | undefined, snapshotFetcher?: SnapshotFetcher | undefined);
50
+ /** Set the database reference (called after DB is initialized) */
51
+ setDb(db: Database): void;
52
+ query(range: "1h" | "6h" | "24h"): MetricsBucket[];
53
+ snapshot(): {
54
+ activeSessions: number;
55
+ wsConnections: number;
56
+ };
57
+ topTools(n: number): ToolCallStats[];
58
+ topSkills(n: number): SkillCallStats[];
59
+ private startPullLoop;
60
+ private pullAll;
61
+ private mergeSnapshot;
62
+ private writeSessionStats;
63
+ /** Cleanup on shutdown */
64
+ destroy(): void;
65
+ }