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
@@ -397,23 +397,6 @@ export declare const sessions: import("drizzle-orm/mysql-core").MySqlTableWithCo
397
397
  identity: undefined;
398
398
  generated: undefined;
399
399
  }, {}, {}>;
400
- s3Key: import("drizzle-orm/mysql-core").MySqlColumn<{
401
- name: "s3_key";
402
- tableName: "sessions";
403
- dataType: "string";
404
- columnType: "MySqlVarChar";
405
- data: string;
406
- driverParam: string | number;
407
- notNull: false;
408
- hasDefault: false;
409
- isPrimaryKey: false;
410
- isAutoincrement: false;
411
- hasRuntimeDefault: false;
412
- enumValues: [string, ...string[]];
413
- baseColumn: never;
414
- identity: undefined;
415
- generated: undefined;
416
- }, {}, {}>;
417
400
  };
418
401
  dialect: "mysql";
419
402
  }>;
@@ -559,6 +542,57 @@ export declare const messages: import("drizzle-orm/mysql-core").MySqlTableWithCo
559
542
  identity: undefined;
560
543
  generated: undefined;
561
544
  }, {}, {}>;
545
+ userId: import("drizzle-orm/mysql-core").MySqlColumn<{
546
+ name: "user_id";
547
+ tableName: "messages";
548
+ dataType: "string";
549
+ columnType: "MySqlVarChar";
550
+ data: string;
551
+ driverParam: string | number;
552
+ notNull: false;
553
+ hasDefault: false;
554
+ isPrimaryKey: false;
555
+ isAutoincrement: false;
556
+ hasRuntimeDefault: false;
557
+ enumValues: [string, ...string[]];
558
+ baseColumn: never;
559
+ identity: undefined;
560
+ generated: undefined;
561
+ }, {}, {}>;
562
+ outcome: import("drizzle-orm/mysql-core").MySqlColumn<{
563
+ name: "outcome";
564
+ tableName: "messages";
565
+ dataType: "string";
566
+ columnType: "MySqlVarChar";
567
+ data: string;
568
+ driverParam: string | number;
569
+ notNull: false;
570
+ hasDefault: false;
571
+ isPrimaryKey: false;
572
+ isAutoincrement: false;
573
+ hasRuntimeDefault: false;
574
+ enumValues: [string, ...string[]];
575
+ baseColumn: never;
576
+ identity: undefined;
577
+ generated: undefined;
578
+ }, {}, {}>;
579
+ durationMs: import("drizzle-orm/mysql-core").MySqlColumn<{
580
+ name: "duration_ms";
581
+ tableName: "messages";
582
+ dataType: "number";
583
+ columnType: "MySqlInt";
584
+ data: number;
585
+ driverParam: string | number;
586
+ notNull: false;
587
+ hasDefault: false;
588
+ isPrimaryKey: false;
589
+ isAutoincrement: false;
590
+ hasRuntimeDefault: false;
591
+ enumValues: undefined;
592
+ baseColumn: never;
593
+ identity: undefined;
594
+ generated: undefined;
595
+ }, {}, {}>;
562
596
  };
563
597
  dialect: "mysql";
564
598
  }>;
@@ -821,23 +855,6 @@ export declare const skills: import("drizzle-orm/mysql-core").MySqlTableWithColu
821
855
  identity: undefined;
822
856
  generated: undefined;
823
857
  }, {}, {}>;
824
- s3Key: import("drizzle-orm/mysql-core").MySqlColumn<{
825
- name: "s3_key";
826
- tableName: "skills";
827
- dataType: "string";
828
- columnType: "MySqlVarChar";
829
- data: string;
830
- driverParam: string | number;
831
- notNull: false;
832
- hasDefault: false;
833
- isPrimaryKey: false;
834
- isAutoincrement: false;
835
- hasRuntimeDefault: false;
836
- enumValues: [string, ...string[]];
837
- baseColumn: never;
838
- identity: undefined;
839
- generated: undefined;
840
- }, {}, {}>;
841
858
  teamSourceSkillId: import("drizzle-orm/mysql-core").MySqlColumn<{
842
859
  name: "team_source_skill_id";
843
860
  tableName: "skills";
@@ -1100,23 +1117,6 @@ export declare const skillVersions: import("drizzle-orm/mysql-core").MySqlTableW
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";
@@ -1557,6 +1557,149 @@ export declare const cronJobs: import("drizzle-orm/mysql-core").MySqlTableWithCo
1557
1557
  identity: undefined;
1558
1558
  generated: undefined;
1559
1559
  }, {}, {}>;
1560
+ workspaceId: import("drizzle-orm/mysql-core").MySqlColumn<{
1561
+ name: "workspace_id";
1562
+ tableName: "cron_jobs";
1563
+ dataType: "string";
1564
+ columnType: "MySqlVarChar";
1565
+ data: string;
1566
+ driverParam: string | number;
1567
+ notNull: false;
1568
+ hasDefault: false;
1569
+ isPrimaryKey: false;
1570
+ isAutoincrement: false;
1571
+ hasRuntimeDefault: false;
1572
+ enumValues: [string, ...string[]];
1573
+ baseColumn: never;
1574
+ identity: undefined;
1575
+ generated: undefined;
1576
+ }, {}, {}>;
1577
+ };
1578
+ dialect: "mysql";
1579
+ }>;
1580
+ export declare const cronJobRuns: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
1581
+ name: "cron_job_runs";
1582
+ schema: undefined;
1583
+ columns: {
1584
+ id: import("drizzle-orm/mysql-core").MySqlColumn<{
1585
+ name: "id";
1586
+ tableName: "cron_job_runs";
1587
+ dataType: "string";
1588
+ columnType: "MySqlVarChar";
1589
+ data: string;
1590
+ driverParam: string | number;
1591
+ notNull: true;
1592
+ hasDefault: false;
1593
+ isPrimaryKey: true;
1594
+ isAutoincrement: false;
1595
+ hasRuntimeDefault: false;
1596
+ enumValues: [string, ...string[]];
1597
+ baseColumn: never;
1598
+ identity: undefined;
1599
+ generated: undefined;
1600
+ }, {}, {}>;
1601
+ jobId: import("drizzle-orm/mysql-core").MySqlColumn<{
1602
+ name: "job_id";
1603
+ tableName: "cron_job_runs";
1604
+ dataType: "string";
1605
+ columnType: "MySqlVarChar";
1606
+ data: string;
1607
+ driverParam: string | number;
1608
+ notNull: true;
1609
+ hasDefault: false;
1610
+ isPrimaryKey: false;
1611
+ isAutoincrement: false;
1612
+ hasRuntimeDefault: false;
1613
+ enumValues: [string, ...string[]];
1614
+ baseColumn: never;
1615
+ identity: undefined;
1616
+ generated: undefined;
1617
+ }, {}, {}>;
1618
+ status: import("drizzle-orm/mysql-core").MySqlColumn<{
1619
+ name: "status";
1620
+ tableName: "cron_job_runs";
1621
+ dataType: "string";
1622
+ columnType: "MySqlVarChar";
1623
+ data: string;
1624
+ driverParam: string | number;
1625
+ notNull: true;
1626
+ hasDefault: false;
1627
+ isPrimaryKey: false;
1628
+ isAutoincrement: false;
1629
+ hasRuntimeDefault: false;
1630
+ enumValues: [string, ...string[]];
1631
+ baseColumn: never;
1632
+ identity: undefined;
1633
+ generated: undefined;
1634
+ }, {}, {}>;
1635
+ resultText: import("drizzle-orm/mysql-core").MySqlColumn<{
1636
+ name: "result_text";
1637
+ tableName: "cron_job_runs";
1638
+ dataType: "string";
1639
+ columnType: "MySqlText";
1640
+ data: string;
1641
+ driverParam: string;
1642
+ notNull: false;
1643
+ hasDefault: false;
1644
+ isPrimaryKey: false;
1645
+ isAutoincrement: false;
1646
+ hasRuntimeDefault: false;
1647
+ enumValues: [string, ...string[]];
1648
+ baseColumn: never;
1649
+ identity: undefined;
1650
+ generated: undefined;
1651
+ }, {}, {}>;
1652
+ error: import("drizzle-orm/mysql-core").MySqlColumn<{
1653
+ name: "error";
1654
+ tableName: "cron_job_runs";
1655
+ dataType: "string";
1656
+ columnType: "MySqlText";
1657
+ data: string;
1658
+ driverParam: string;
1659
+ notNull: false;
1660
+ hasDefault: false;
1661
+ isPrimaryKey: false;
1662
+ isAutoincrement: false;
1663
+ hasRuntimeDefault: false;
1664
+ enumValues: [string, ...string[]];
1665
+ baseColumn: never;
1666
+ identity: undefined;
1667
+ generated: undefined;
1668
+ }, {}, {}>;
1669
+ durationMs: import("drizzle-orm/mysql-core").MySqlColumn<{
1670
+ name: "duration_ms";
1671
+ tableName: "cron_job_runs";
1672
+ dataType: "number";
1673
+ columnType: "MySqlInt";
1674
+ data: number;
1675
+ driverParam: string | number;
1676
+ notNull: false;
1677
+ hasDefault: false;
1678
+ isPrimaryKey: false;
1679
+ isAutoincrement: false;
1680
+ hasRuntimeDefault: false;
1681
+ enumValues: undefined;
1682
+ baseColumn: never;
1683
+ identity: undefined;
1684
+ generated: undefined;
1685
+ }, {}, {}>;
1686
+ createdAt: import("drizzle-orm/mysql-core").MySqlColumn<{
1687
+ name: "created_at";
1688
+ tableName: "cron_job_runs";
1689
+ dataType: "date";
1690
+ columnType: "MySqlTimestamp";
1691
+ data: Date;
1692
+ driverParam: string | number;
1693
+ notNull: true;
1694
+ hasDefault: true;
1695
+ isPrimaryKey: false;
1696
+ isAutoincrement: false;
1697
+ hasRuntimeDefault: false;
1698
+ enumValues: undefined;
1699
+ baseColumn: never;
1700
+ identity: undefined;
1701
+ generated: undefined;
1702
+ }, {}, {}>;
1560
1703
  };
1561
1704
  dialect: "mysql";
1562
1705
  }>;
@@ -2489,6 +2632,23 @@ export declare const workspaces: import("drizzle-orm/mysql-core").MySqlTableWith
2489
2632
  identity: undefined;
2490
2633
  generated: undefined;
2491
2634
  }, {}, {}>;
2635
+ envType: import("drizzle-orm/mysql-core").MySqlColumn<{
2636
+ name: "env_type";
2637
+ tableName: "workspaces";
2638
+ dataType: "string";
2639
+ columnType: "MySqlVarChar";
2640
+ data: string;
2641
+ driverParam: string | number;
2642
+ notNull: true;
2643
+ hasDefault: true;
2644
+ isPrimaryKey: false;
2645
+ isAutoincrement: false;
2646
+ hasRuntimeDefault: false;
2647
+ enumValues: [string, ...string[]];
2648
+ baseColumn: never;
2649
+ identity: undefined;
2650
+ generated: undefined;
2651
+ }, {}, {}>;
2492
2652
  configJson: import("drizzle-orm/mysql-core").MySqlColumn<{
2493
2653
  name: "config_json";
2494
2654
  tableName: "workspaces";
@@ -2821,6 +2981,23 @@ export declare const environments: import("drizzle-orm/mysql-core").MySqlTableWi
2821
2981
  identity: undefined;
2822
2982
  generated: undefined;
2823
2983
  }, {}, {}>;
2984
+ apiServer: import("drizzle-orm/mysql-core").MySqlColumn<{
2985
+ name: "api_server";
2986
+ tableName: "environments";
2987
+ dataType: "string";
2988
+ columnType: "MySqlVarChar";
2989
+ data: string;
2990
+ driverParam: string | number;
2991
+ notNull: true;
2992
+ hasDefault: false;
2993
+ isPrimaryKey: false;
2994
+ isAutoincrement: false;
2995
+ hasRuntimeDefault: false;
2996
+ enumValues: [string, ...string[]];
2997
+ baseColumn: never;
2998
+ identity: undefined;
2999
+ generated: undefined;
3000
+ }, {}, {}>;
2824
3001
  allowedServers: import("drizzle-orm/mysql-core").MySqlColumn<{
2825
3002
  name: "allowed_servers";
2826
3003
  tableName: "environments";
@@ -3658,6 +3835,251 @@ export declare const mcpServers: import("drizzle-orm/mysql-core").MySqlTableWith
3658
3835
  };
3659
3836
  dialect: "mysql";
3660
3837
  }>;
3838
+ export declare const sessionStats: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
3839
+ name: "session_stats";
3840
+ schema: undefined;
3841
+ columns: {
3842
+ id: import("drizzle-orm/mysql-core").MySqlColumn<{
3843
+ name: "id";
3844
+ tableName: "session_stats";
3845
+ dataType: "string";
3846
+ columnType: "MySqlVarChar";
3847
+ data: string;
3848
+ driverParam: string | number;
3849
+ notNull: true;
3850
+ hasDefault: false;
3851
+ isPrimaryKey: true;
3852
+ isAutoincrement: false;
3853
+ hasRuntimeDefault: false;
3854
+ enumValues: [string, ...string[]];
3855
+ baseColumn: never;
3856
+ identity: undefined;
3857
+ generated: undefined;
3858
+ }, {}, {}>;
3859
+ sessionId: import("drizzle-orm/mysql-core").MySqlColumn<{
3860
+ name: "session_id";
3861
+ tableName: "session_stats";
3862
+ dataType: "string";
3863
+ columnType: "MySqlVarChar";
3864
+ data: string;
3865
+ driverParam: string | number;
3866
+ notNull: true;
3867
+ hasDefault: false;
3868
+ isPrimaryKey: false;
3869
+ isAutoincrement: false;
3870
+ hasRuntimeDefault: false;
3871
+ enumValues: [string, ...string[]];
3872
+ baseColumn: never;
3873
+ identity: undefined;
3874
+ generated: undefined;
3875
+ }, {}, {}>;
3876
+ userId: import("drizzle-orm/mysql-core").MySqlColumn<{
3877
+ name: "user_id";
3878
+ tableName: "session_stats";
3879
+ dataType: "string";
3880
+ columnType: "MySqlVarChar";
3881
+ data: string;
3882
+ driverParam: string | number;
3883
+ notNull: true;
3884
+ hasDefault: false;
3885
+ isPrimaryKey: false;
3886
+ isAutoincrement: false;
3887
+ hasRuntimeDefault: false;
3888
+ enumValues: [string, ...string[]];
3889
+ baseColumn: never;
3890
+ identity: undefined;
3891
+ generated: undefined;
3892
+ }, {}, {}>;
3893
+ provider: import("drizzle-orm/mysql-core").MySqlColumn<{
3894
+ name: "provider";
3895
+ tableName: "session_stats";
3896
+ dataType: "string";
3897
+ columnType: "MySqlVarChar";
3898
+ data: string;
3899
+ driverParam: string | number;
3900
+ notNull: false;
3901
+ hasDefault: false;
3902
+ isPrimaryKey: false;
3903
+ isAutoincrement: false;
3904
+ hasRuntimeDefault: false;
3905
+ enumValues: [string, ...string[]];
3906
+ baseColumn: never;
3907
+ identity: undefined;
3908
+ generated: undefined;
3909
+ }, {}, {}>;
3910
+ model: import("drizzle-orm/mysql-core").MySqlColumn<{
3911
+ name: "model";
3912
+ tableName: "session_stats";
3913
+ dataType: "string";
3914
+ columnType: "MySqlVarChar";
3915
+ data: string;
3916
+ driverParam: string | number;
3917
+ notNull: false;
3918
+ hasDefault: false;
3919
+ isPrimaryKey: false;
3920
+ isAutoincrement: false;
3921
+ hasRuntimeDefault: false;
3922
+ enumValues: [string, ...string[]];
3923
+ baseColumn: never;
3924
+ identity: undefined;
3925
+ generated: undefined;
3926
+ }, {}, {}>;
3927
+ inputTokens: import("drizzle-orm/mysql-core").MySqlColumn<{
3928
+ name: "input_tokens";
3929
+ tableName: "session_stats";
3930
+ dataType: "number";
3931
+ columnType: "MySqlInt";
3932
+ data: number;
3933
+ driverParam: string | number;
3934
+ notNull: false;
3935
+ hasDefault: true;
3936
+ isPrimaryKey: false;
3937
+ isAutoincrement: false;
3938
+ hasRuntimeDefault: false;
3939
+ enumValues: undefined;
3940
+ baseColumn: never;
3941
+ identity: undefined;
3942
+ generated: undefined;
3943
+ }, {}, {}>;
3944
+ outputTokens: import("drizzle-orm/mysql-core").MySqlColumn<{
3945
+ name: "output_tokens";
3946
+ tableName: "session_stats";
3947
+ dataType: "number";
3948
+ columnType: "MySqlInt";
3949
+ data: number;
3950
+ driverParam: string | number;
3951
+ notNull: false;
3952
+ hasDefault: true;
3953
+ isPrimaryKey: false;
3954
+ isAutoincrement: false;
3955
+ hasRuntimeDefault: false;
3956
+ enumValues: undefined;
3957
+ baseColumn: never;
3958
+ identity: undefined;
3959
+ generated: undefined;
3960
+ }, {}, {}>;
3961
+ cacheReadTokens: import("drizzle-orm/mysql-core").MySqlColumn<{
3962
+ name: "cache_read_tokens";
3963
+ tableName: "session_stats";
3964
+ dataType: "number";
3965
+ columnType: "MySqlInt";
3966
+ data: number;
3967
+ driverParam: string | number;
3968
+ notNull: false;
3969
+ hasDefault: true;
3970
+ isPrimaryKey: false;
3971
+ isAutoincrement: false;
3972
+ hasRuntimeDefault: false;
3973
+ enumValues: undefined;
3974
+ baseColumn: never;
3975
+ identity: undefined;
3976
+ generated: undefined;
3977
+ }, {}, {}>;
3978
+ cacheWriteTokens: import("drizzle-orm/mysql-core").MySqlColumn<{
3979
+ name: "cache_write_tokens";
3980
+ tableName: "session_stats";
3981
+ dataType: "number";
3982
+ columnType: "MySqlInt";
3983
+ data: number;
3984
+ driverParam: string | number;
3985
+ notNull: false;
3986
+ hasDefault: true;
3987
+ isPrimaryKey: false;
3988
+ isAutoincrement: false;
3989
+ hasRuntimeDefault: false;
3990
+ enumValues: undefined;
3991
+ baseColumn: never;
3992
+ identity: undefined;
3993
+ generated: undefined;
3994
+ }, {}, {}>;
3995
+ durationMs: import("drizzle-orm/mysql-core").MySqlColumn<{
3996
+ name: "duration_ms";
3997
+ tableName: "session_stats";
3998
+ dataType: "number";
3999
+ columnType: "MySqlInt";
4000
+ data: number;
4001
+ driverParam: string | number;
4002
+ notNull: false;
4003
+ hasDefault: true;
4004
+ isPrimaryKey: false;
4005
+ isAutoincrement: false;
4006
+ hasRuntimeDefault: false;
4007
+ enumValues: undefined;
4008
+ baseColumn: never;
4009
+ identity: undefined;
4010
+ generated: undefined;
4011
+ }, {}, {}>;
4012
+ promptCount: import("drizzle-orm/mysql-core").MySqlColumn<{
4013
+ name: "prompt_count";
4014
+ tableName: "session_stats";
4015
+ dataType: "number";
4016
+ columnType: "MySqlInt";
4017
+ data: number;
4018
+ driverParam: string | number;
4019
+ notNull: false;
4020
+ hasDefault: true;
4021
+ isPrimaryKey: false;
4022
+ isAutoincrement: false;
4023
+ hasRuntimeDefault: false;
4024
+ enumValues: undefined;
4025
+ baseColumn: never;
4026
+ identity: undefined;
4027
+ generated: undefined;
4028
+ }, {}, {}>;
4029
+ toolCallCount: import("drizzle-orm/mysql-core").MySqlColumn<{
4030
+ name: "tool_call_count";
4031
+ tableName: "session_stats";
4032
+ dataType: "number";
4033
+ columnType: "MySqlInt";
4034
+ data: number;
4035
+ driverParam: string | number;
4036
+ notNull: false;
4037
+ hasDefault: true;
4038
+ isPrimaryKey: false;
4039
+ isAutoincrement: false;
4040
+ hasRuntimeDefault: false;
4041
+ enumValues: undefined;
4042
+ baseColumn: never;
4043
+ identity: undefined;
4044
+ generated: undefined;
4045
+ }, {}, {}>;
4046
+ skillCallCount: import("drizzle-orm/mysql-core").MySqlColumn<{
4047
+ name: "skill_call_count";
4048
+ tableName: "session_stats";
4049
+ dataType: "number";
4050
+ columnType: "MySqlInt";
4051
+ data: number;
4052
+ driverParam: string | number;
4053
+ notNull: false;
4054
+ hasDefault: true;
4055
+ isPrimaryKey: false;
4056
+ isAutoincrement: false;
4057
+ hasRuntimeDefault: false;
4058
+ enumValues: undefined;
4059
+ baseColumn: never;
4060
+ identity: undefined;
4061
+ generated: undefined;
4062
+ }, {}, {}>;
4063
+ createdAt: import("drizzle-orm/mysql-core").MySqlColumn<{
4064
+ name: "created_at";
4065
+ tableName: "session_stats";
4066
+ dataType: "number";
4067
+ columnType: "MySqlBigInt53";
4068
+ data: number;
4069
+ driverParam: string | number;
4070
+ notNull: true;
4071
+ hasDefault: false;
4072
+ isPrimaryKey: false;
4073
+ isAutoincrement: false;
4074
+ hasRuntimeDefault: false;
4075
+ enumValues: undefined;
4076
+ baseColumn: never;
4077
+ identity: undefined;
4078
+ generated: undefined;
4079
+ }, {}, {}>;
4080
+ };
4081
+ dialect: "mysql";
4082
+ }>;
3661
4083
  export declare const systemConfig: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
3662
4084
  name: "system_config";
3663
4085
  schema: undefined;
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * All structured data for Gateway: users, sessions, messages, skills, config.
5
5
  */
6
- import { mysqlTable, varchar, text, timestamp, int, json, mysqlEnum, boolean, primaryKey, uniqueIndex, } from "drizzle-orm/mysql-core";
6
+ import { mysqlTable, varchar, text, timestamp, int, bigint, json, mysqlEnum, boolean, primaryKey, uniqueIndex, } from "drizzle-orm/mysql-core";
7
7
  // ─── Users ───────────────────────────────────────────
8
8
  export const users = mysqlTable("users", {
9
9
  id: varchar("id", { length: 32 }).primaryKey(),
@@ -37,7 +37,6 @@ export const sessions = mysqlTable("sessions", {
37
37
  lastActiveAt: timestamp("last_active_at").notNull().defaultNow(),
38
38
  messageCount: int("message_count").notNull().default(0),
39
39
  deletedAt: timestamp("deleted_at"),
40
- s3Key: varchar("s3_key", { length: 500 }),
41
40
  });
42
41
  // ─── Messages ────────────────────────────────────────
43
42
  export const messages = mysqlTable("messages", {
@@ -51,6 +50,10 @@ export const messages = mysqlTable("messages", {
51
50
  toolInput: text("tool_input"),
52
51
  metadata: json("metadata").$type(),
53
52
  timestamp: timestamp("timestamp").notNull().defaultNow(),
53
+ // ── Audit fields (nullable — only populated for role='tool') ──
54
+ userId: varchar("user_id", { length: 64 }),
55
+ outcome: varchar("outcome", { length: 16 }), // "success" | "error" | "blocked"
56
+ durationMs: int("duration_ms"),
54
57
  });
55
58
  // ─── Skills ──────────────────────────────────────────
56
59
  export const skills = mysqlTable("skills", {
@@ -77,7 +80,6 @@ export const skills = mysqlTable("skills", {
77
80
  stagingVersion: int("staging_version").notNull().default(0),
78
81
  createdAt: timestamp("created_at").notNull().defaultNow(),
79
82
  updatedAt: timestamp("updated_at").notNull().defaultNow(),
80
- s3Key: varchar("s3_key", { length: 500 }),
81
83
  teamSourceSkillId: varchar("team_source_skill_id", { length: 64 }),
82
84
  teamPinnedVersion: int("team_pinned_version"),
83
85
  forkedFromId: varchar("forked_from_id", { length: 64 }),
@@ -102,7 +104,6 @@ export const skillVersions = mysqlTable("skill_versions", {
102
104
  skillId: varchar("skill_id", { length: 64 }).notNull()
103
105
  .references(() => skills.id, { onDelete: "cascade" }),
104
106
  version: int("version").notNull(),
105
- s3Key: varchar("s3_key", { length: 500 }),
106
107
  specs: text("specs"),
107
108
  scriptsJson: json("scripts_json").$type(),
108
109
  files: json("files").$type(),
@@ -135,6 +136,17 @@ export const cronJobs = mysqlTable("cron_jobs", {
135
136
  lockedBy: varchar("locked_by", { length: 64 }),
136
137
  lockedAt: timestamp("locked_at"),
137
138
  envId: varchar("env_id", { length: 64 }),
139
+ workspaceId: varchar("workspace_id", { length: 64 }).references(() => workspaces.id),
140
+ });
141
+ // ─── Cron Job Runs (execution history) ──────────────
142
+ export const cronJobRuns = mysqlTable("cron_job_runs", {
143
+ id: varchar("id", { length: 64 }).primaryKey(),
144
+ jobId: varchar("job_id", { length: 64 }).notNull().references(() => cronJobs.id, { onDelete: "cascade" }),
145
+ status: varchar("status", { length: 20 }).notNull(), // "success" | "failure"
146
+ resultText: text("result_text"),
147
+ error: text("error"),
148
+ durationMs: int("duration_ms"),
149
+ createdAt: timestamp("created_at").notNull().defaultNow(),
138
150
  });
139
151
  // ─── Cron Instances ─────────────────────────────────
140
152
  export const cronInstances = mysqlTable("cron_instances", {
@@ -217,6 +229,7 @@ export const workspaces = mysqlTable("workspaces", {
217
229
  userId: varchar("user_id", { length: 32 }).notNull().references(() => users.id, { onDelete: "cascade" }),
218
230
  name: varchar("name", { length: 100 }).notNull(),
219
231
  isDefault: boolean("is_default").notNull().default(false),
232
+ envType: varchar("env_type", { length: 10 }).notNull().default("prod"),
220
233
  configJson: json("config_json").$type(),
221
234
  createdAt: timestamp("created_at").notNull().defaultNow(),
222
235
  updatedAt: timestamp("updated_at").notNull().defaultNow(),
@@ -261,6 +274,7 @@ export const environments = mysqlTable("environments", {
261
274
  id: varchar("id", { length: 64 }).primaryKey(),
262
275
  name: varchar("name", { length: 255 }).notNull(),
263
276
  isTest: boolean("is_test").notNull().default(false),
277
+ apiServer: varchar("api_server", { length: 512 }).notNull(),
264
278
  allowedServers: text("allowed_servers"), // JSON array: ["10.0.0.1","k8s.example.com"]
265
279
  defaultKubeconfig: text("default_kubeconfig"), // nullable, only when isTest=true
266
280
  createdBy: varchar("created_by", { length: 32 }),
@@ -331,6 +345,23 @@ export const mcpServers = mysqlTable("mcp_servers", {
331
345
  createdAt: timestamp("created_at").notNull().defaultNow(),
332
346
  updatedAt: timestamp("updated_at").notNull().defaultNow(),
333
347
  });
348
+ // ─── Session Stats ───────────────────────────────
349
+ export const sessionStats = mysqlTable("session_stats", {
350
+ id: varchar("id", { length: 64 }).primaryKey(),
351
+ sessionId: varchar("session_id", { length: 64 }).notNull(),
352
+ userId: varchar("user_id", { length: 32 }).notNull(),
353
+ provider: varchar("provider", { length: 64 }),
354
+ model: varchar("model", { length: 128 }),
355
+ inputTokens: int("input_tokens").default(0),
356
+ outputTokens: int("output_tokens").default(0),
357
+ cacheReadTokens: int("cache_read_tokens").default(0),
358
+ cacheWriteTokens: int("cache_write_tokens").default(0),
359
+ durationMs: int("duration_ms").default(0),
360
+ promptCount: int("prompt_count").default(0),
361
+ toolCallCount: int("tool_call_count").default(0),
362
+ skillCallCount: int("skill_call_count").default(0),
363
+ createdAt: bigint("created_at", { mode: "number" }).notNull(),
364
+ });
334
365
  // ─── System Config ────────────────────────────────
335
366
  export const systemConfig = mysqlTable("system_config", {
336
367
  configKey: varchar("config_key", { length: 100 }).primaryKey(),