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
@@ -17,6 +17,7 @@ import { createUpdateSkillTool } from "../tools/update-skill.js";
17
17
  import { createForkSkillTool } from "../tools/fork-skill.js";
18
18
  import { createManageScheduleTool } from "../tools/manage-schedule.js";
19
19
  import { createDeepSearchTool } from "../tools/deep-search/tool.js";
20
+ import { createInvestigationFeedbackTool } from "../tools/investigation-feedback.js";
20
21
  import { createManageChecklistTool, createProposeHypothesesTool, createEndInvestigationTool, getDpWorkflow, } from "../tools/dp-tools.js";
21
22
  import { createMemorySearchTool } from "../tools/memory-search.js";
22
23
  import { createMemoryGetTool } from "../tools/memory-get.js";
@@ -26,6 +27,7 @@ import { buildSreSystemPrompt } from "./prompt.js";
26
27
  import contextPruningExtension from "./extensions/context-pruning.js";
27
28
  import memoryFlushExtension from "./extensions/memory-flush.js";
28
29
  import deepInvestigationExtension from "./extensions/deep-investigation.js";
30
+ import setupExtension from "./extensions/setup.js";
29
31
  import { PiAgentBrain } from "./brains/pi-agent-brain.js";
30
32
  import { ClaudeSdkBrain } from "./brains/claude-sdk-brain.js";
31
33
  import { hasOpenAIProvider, ensureProxy } from "./llm-proxy.js";
@@ -43,159 +45,71 @@ function resolveEmbeddingConfig() {
43
45
  return emb;
44
46
  }
45
47
  /**
46
- * Truncate content to a character budget using 70% head + 20% tail strategy.
47
- * The remaining 10% is reserved for the truncation marker.
48
+ * Truncate content to a character budget using head + tail strategy.
49
+ * Subtracts the marker length from available budget before splitting.
48
50
  */
49
51
  function truncateWithBudget(content, maxChars) {
50
52
  if (content.length <= maxChars)
51
53
  return content;
52
- const headSize = Math.floor(maxChars * 0.7);
53
- const tailSize = Math.floor(maxChars * 0.2);
54
+ const marker = "\n\n[...truncated use memory_search to find older entries...]\n\n";
55
+ const available = maxChars - marker.length;
56
+ if (available <= 0)
57
+ return content.slice(0, maxChars);
58
+ const headSize = Math.floor(available * 0.78);
59
+ const tailSize = available - headSize;
54
60
  return (content.slice(0, headSize) +
55
- "\n\n[...truncated — use memory_search to find older entries...]\n\n" +
61
+ marker +
56
62
  content.slice(-tailSize));
57
63
  }
58
64
  /**
59
- * Build the append system prompt content (skills index + MEMORY.md).
65
+ * Build the append system prompt content (PROFILE.md + MEMORY.md).
60
66
  * Shared between pi-agent (via DefaultResourceLoader) and SDK brain.
67
+ *
68
+ * Skills are NOT listed here — pi-agent's DefaultResourceLoader provides a
69
+ * lazy index (name + description + path) and the model reads SKILL.md on demand.
61
70
  */
62
- function buildAppendSystemPrompt(skillsBase, getUserSkillDirName, getPlatformSkillDirName, memoryDir) {
71
+ function buildAppendSystemPrompt(memoryDir) {
63
72
  const parts = [];
64
- const skillSearchDirs = [];
65
- const activeDir = path.join(skillsBase, "user", getUserSkillDirName());
66
- if (fs.existsSync(activeDir)) {
67
- skillSearchDirs.push(activeDir);
68
- // Platform skills (create-skill, update-skill, manage-skill) are excluded —
69
- // they are internal agent guides, not user-facing skills.
70
- }
71
- else {
72
- const SKILL_SCOPES = ["user", "team", "core"];
73
- for (const scope of SKILL_SCOPES) {
74
- const scopeDir = path.join(skillsBase, scope);
75
- if (fs.existsSync(scopeDir)) {
76
- skillSearchDirs.push(scopeDir);
77
- }
78
- }
79
- }
80
- const withScripts = [];
81
- const withoutScripts = [];
82
- const seenSkills = new Set();
83
- for (const searchDir of skillSearchDirs) {
84
- try {
85
- const entries = fs.readdirSync(searchDir, { withFileTypes: true });
86
- for (const entry of entries) {
87
- if (entry.name.startsWith("_"))
88
- continue;
89
- if (!entry.isDirectory() && !entry.isSymbolicLink())
90
- continue;
91
- if (seenSkills.has(entry.name))
92
- continue;
93
- seenSkills.add(entry.name);
94
- const skillName = entry.name;
95
- const sDir = path.join(searchDir, skillName, "scripts");
96
- let scripts = [];
97
- try {
98
- scripts = fs.readdirSync(sDir)
99
- .filter((f) => f.endsWith(".sh") || f.endsWith(".py"));
100
- }
101
- catch { /* no scripts dir */ }
102
- if (scripts.length > 0) {
103
- let execTool = "run_skill";
104
- try {
105
- const skillMd = fs.readFileSync(path.join(searchDir, skillName, "SKILL.md"), "utf-8");
106
- // If the SKILL.md has an explicit "run_skill: ... skill=<this>" invocation,
107
- // honour it and skip the heuristic — avoids misclassification when the
108
- // SKILL.md cross-references other skills via node_script/pod_script.
109
- const selfRunSkill = skillMd.split("\n").some((line) => /\brun_skill\s*:/.test(line) && new RegExp(`skill=["']?${skillName}["']?`).test(line));
110
- if (!selfRunSkill) {
111
- if (skillMd.includes("node_script"))
112
- execTool = "node_script";
113
- else if (skillMd.includes("pod_script") || skillMd.includes("pod_netns_script"))
114
- execTool = "pod_script";
115
- }
116
- }
117
- catch { /* default to run_skill */ }
118
- withScripts.push(`- ${skillName} → ${scripts.map((s) => `\`${s}\``).join(", ")} (via **${execTool}**)`);
119
- }
120
- else {
121
- withoutScripts.push(skillName);
122
- }
123
- }
124
- }
125
- catch { /* ignore */ }
126
- }
127
- if (withScripts.length > 0 || withoutScripts.length > 0) {
128
- const lines = [
129
- "\n## Skill Scripts Reference",
130
- "",
131
- `**Skill directories**: ${skillSearchDirs.join(", ")}`,
132
- `Example: \`read(path: "${skillSearchDirs[0]}/<skill-name>/SKILL.md")\``,
133
- "IMPORTANT: Always use the FULL directory path above — do NOT shorten or guess paths.",
134
- "",
135
- "Each skill below shows its execution tool. **CRITICAL: use the EXACT tool indicated** — do NOT substitute one tool for another.",
136
- "There are only three execution tools: `run_skill`, `node_script`, `pod_script` — do NOT use any other tool name (e.g. `node_exec` does not exist).",
137
- "- `run_skill`: runs on agentbox (has kubectl), pass `skill=\"<skill-name>/<script>\"`",
138
- "- `node_script`: runs ON a Kubernetes node (host namespaces), needs `node` parameter",
139
- "- `pod_script`: runs inside a pod's namespace",
140
- "",
141
- ];
142
- if (withScripts.length > 0) {
143
- lines.push("**Skills with scripts:**");
144
- lines.push(...withScripts);
145
- }
146
- if (withoutScripts.length > 0) {
147
- lines.push("");
148
- lines.push(`**Skills without scripts** (follow SKILL.md instructions, do NOT invent script names): ${withoutScripts.join(", ")}`);
149
- }
150
- parts.push(lines.join("\n"));
151
- }
152
73
  // Load PROFILE.md (user profile for personalized interactions)
153
74
  const profileFile = path.join(memoryDir, "PROFILE.md");
154
75
  if (fs.existsSync(profileFile)) {
155
76
  let profileContent = fs.readFileSync(profileFile, "utf-8").trim();
156
77
  if (profileContent) {
157
78
  profileContent = truncateWithBudget(profileContent, 5_000);
158
- parts.push(`\n## User Profile\n\n${profileContent}`);
159
- // Extract language preference and inject as behavioral instruction
160
- const langMatch = profileContent.match(/\*\*Language\*\*:\s*(.+)/i);
161
- if (langMatch) {
162
- const lang = langMatch[1].trim();
163
- if (lang && lang.toLowerCase() !== "tbd" && lang.toLowerCase() !== "english") {
164
- parts.push(`\n## Language Preference\n\nThis user's preferred language is **${lang}**. Start conversations in ${lang} by default. If the user switches to a different language, follow their lead naturally.`);
165
- }
166
- }
167
- // Detect TBD fields and prompt model to fill them during conversation
79
+ // Detect TBD fields
168
80
  const tbdFields = [];
169
81
  const fieldRegex = /\*\*(\w+)\*\*:\s*TBD/gi;
170
82
  let tbdMatch;
171
83
  while ((tbdMatch = fieldRegex.exec(profileContent)) !== null) {
172
84
  tbdFields.push(tbdMatch[1]);
173
85
  }
174
- if (tbdFields.length > 0) {
175
- parts.push(`\n## Profile Update Needed\n\nThe user's profile has incomplete fields: **${tbdFields.join(", ")}**.\nWhen the user mentions relevant info during conversation (e.g. their role, name, what infrastructure they manage), update \`${memoryDir}/PROFILE.md\` immediately using the write tool. Replace the "TBD" value with what you learned. Do not ask the user explicitly — just pick it up naturally from context.`);
176
- }
177
- }
178
- }
179
- else {
180
- // First-session: instruct agent to introduce itself and collect user context
181
- parts.push(`\n## First Session — Getting to Know the User
86
+ // Check if this is a skeleton profile (Name still TBD = first-time user)
87
+ const isSkeleton = tbdFields.includes("Name");
88
+ if (isSkeleton) {
89
+ // First-session: instruct agent to greet and collect user context
90
+ parts.push(`\n## First Session — Getting to Know the User
182
91
 
183
- No PROFILE.md found. This is a new user.
92
+ This is a new user (profile has only defaults).
184
93
 
185
94
  1. Greet warmly as Siclaw, briefly mention key capabilities (diagnostics, investigation, memory, automation).
186
95
  2. Through natural conversation, learn: name, role, infrastructure.
187
- 3. After user's FIRST reply with any identifying info, IMMEDIATELY write \`${memoryDir}/PROFILE.md\`:
188
-
189
- \`\`\`markdown
190
- # User Profile
191
- - **Name**: ...
192
- - **Role**: ...
193
- - **Infrastructure**: ...
194
- - **Preferences**: ...
195
- - **Language**: ... (user's communication language)
196
- \`\`\`
197
-
198
- Writing this file exits the onboarding flow. Fill what you know, use "TBD" for unknowns. Do NOT delay.`);
96
+ 3. After user's FIRST reply with any identifying info, IMMEDIATELY update \`${memoryDir}/PROFILE.md\` — replace TBD values with what you learned. Do NOT delay.`);
97
+ }
98
+ else {
99
+ parts.push(`\n## User Profile\n\n${profileContent}`);
100
+ // Extract language preference and inject as behavioral instruction
101
+ const langMatch = profileContent.match(/\*\*Language\*\*:\s*(.+)/i);
102
+ if (langMatch) {
103
+ const lang = langMatch[1].trim();
104
+ if (lang && lang.toLowerCase() !== "tbd" && lang.toLowerCase() !== "english") {
105
+ parts.push(`\n## Language Preference\n\nThis user's preferred language is **${lang}**. Start conversations in ${lang} by default. If the user switches to a different language, follow their lead naturally.`);
106
+ }
107
+ }
108
+ if (tbdFields.length > 0) {
109
+ parts.push(`\n## Profile Update Needed\n\nThe user's profile has incomplete fields: **${tbdFields.join(", ")}**.\nWhen the user mentions relevant info during conversation (e.g. their role, name, what infrastructure they manage), update \`${memoryDir}/PROFILE.md\` immediately using the write tool. Replace the "TBD" value with what you learned. Do not ask the user explicitly — just pick it up naturally from context.`);
110
+ }
111
+ }
112
+ }
199
113
  }
200
114
  const memoryFile = path.join(memoryDir, "MEMORY.md");
201
115
  if (fs.existsSync(memoryFile)) {
@@ -227,12 +141,25 @@ export async function createSiclawSession(opts) {
227
141
  authStorage.setRuntimeApiKey(providerName, defaultLlm.apiKey);
228
142
  }
229
143
  }
230
- // Load models from settings.json
144
+ // Ensure settings.json exists for ModelRegistry (pi-agent reads models from file).
145
+ // When env vars created a provider in memory but no file exists, materialize it.
231
146
  const configPath = getConfigPath();
147
+ if (!fs.existsSync(configPath) && Object.keys(config.providers).length > 0) {
148
+ const dir = path.dirname(configPath);
149
+ if (!fs.existsSync(dir))
150
+ fs.mkdirSync(dir, { recursive: true });
151
+ fs.writeFileSync(configPath, JSON.stringify({ providers: config.providers }, null, 2) + "\n");
152
+ }
232
153
  const modelsJson = fs.existsSync(configPath) ? configPath : undefined;
233
154
  const modelRegistry = new ModelRegistry(authStorage, modelsJson);
234
155
  const kubeconfigRef = opts?.kubeconfigRef ?? {};
235
- const llmConfigRef = {};
156
+ // Populate from defaultLlm so Phase 3 sub-agents inherit the active LLM config in TUI/CLI mode.
157
+ // In K8s mode, agentbox/http-server.ts will overwrite these fields when the Gateway pushes
158
+ // a model-change notification — so this initialization does not conflict with that path.
159
+ const llmConfigRef = defaultLlm
160
+ ? { apiKey: defaultLlm.apiKey, baseUrl: defaultLlm.baseUrl, model: defaultLlm.model.id, api: defaultLlm.api }
161
+ : {};
162
+ const sessionIdRef = { current: "" };
236
163
  const mode = opts?.mode ?? "web";
237
164
  // Mutable ref — populated after memoryIndexer is created (below), so deep_search
238
165
  // can retrieve past investigations and persist new ones.
@@ -245,12 +172,18 @@ export async function createSiclawSession(opts) {
245
172
  createNetnsScriptTool(kubeconfigRef),
246
173
  createPodExecTool(kubeconfigRef),
247
174
  createPodNsenterExecTool(kubeconfigRef),
248
- createRunSkillTool(kubeconfigRef),
249
- createManageScheduleTool(kubeconfigRef),
175
+ createRunSkillTool(kubeconfigRef, sessionIdRef),
250
176
  createDeepSearchTool(kubeconfigRef, llmConfigRef, memoryRef),
177
+ createInvestigationFeedbackTool(memoryRef),
251
178
  createCredentialListTool(kubeconfigRef),
252
179
  ];
253
- if (mode === "web" || mode === "cli") {
180
+ // Schedule tool works in web + channel (no UI rendering needed, just DB ops).
181
+ if (mode !== "cli") {
182
+ customTools.push(createManageScheduleTool(kubeconfigRef));
183
+ }
184
+ // Skill management tools are web-only: they produce output designed for
185
+ // frontend preview card rendering that neither TUI nor channel mode supports.
186
+ if (mode === "web") {
254
187
  customTools.push(createCreateSkillTool());
255
188
  customTools.push(createUpdateSkillTool());
256
189
  customTools.push(createForkSkillTool());
@@ -287,11 +220,13 @@ export async function createSiclawSession(opts) {
287
220
  console.log(`[agent-factory] No MCP config found, skipping MCP tools`);
288
221
  }
289
222
  // Filter custom tools by workspace allow-list
223
+ // Platform tools are exempt — they must always be available regardless of workspace config
224
+ const PLATFORM_TOOLS = new Set(["manage_schedule", "credential_list"]);
290
225
  const allowedTools = opts?.allowedTools ?? config.allowedTools;
291
226
  if (Array.isArray(allowedTools)) {
292
227
  const allowed = new Set(allowedTools);
293
228
  const before = customTools.length;
294
- const filtered = customTools.filter(t => allowed.has(t.name));
229
+ const filtered = customTools.filter(t => PLATFORM_TOOLS.has(t.name) || allowed.has(t.name));
295
230
  customTools.length = 0;
296
231
  customTools.push(...filtered);
297
232
  if (before !== customTools.length) {
@@ -355,12 +290,12 @@ export async function createSiclawSession(opts) {
355
290
  customTools.push(...restrictedFileTools);
356
291
  // Skills: when userId is set (local mode), use per-user directory for isolation;
357
292
  // otherwise "." collapses to skillsBase/user/ (K8s single-user pod).
358
- const getUserSkillDirName = opts?.userId ? () => opts.userId : () => ".";
359
- const getPlatformSkillDirName = () => mode === "channel" ? ".platform-channel" : ".platform-web";
360
- // Skill directories (two fixed sources):
361
- // 1. Builtin: baked into Docker image at /app/skills/core/
362
- // 2. Dynamic: team + personal written by bundle API to skillsBase (.siclaw/skills/)
293
+ // Skill directories (three fixed sources):
294
+ // 1. Builtin core: baked into Docker image at /app/skills/core/
295
+ // 2. Builtin extension: baked into Docker image at /app/skills/extension/
296
+ // 3. Dynamic: team + personal written by bundle API to skillsBase (.siclaw/skills/)
363
297
  const builtinPath = path.resolve(cwd, "skills", "core");
298
+ const extensionPath = path.resolve(cwd, "skills", "extension");
364
299
  // Read disabled builtins list (written by agentbox-main / local-spawner after bundle fetch)
365
300
  let disabledBuiltins;
366
301
  // Local mode writes .disabled-builtins.json into per-user dir; K8s mode writes to skillsBase root
@@ -378,18 +313,21 @@ export async function createSiclawSession(opts) {
378
313
  }
379
314
  catch { /* ignore malformed file */ }
380
315
  // If there are disabled builtins, enumerate individual skill dirs excluding disabled ones;
381
- // otherwise pass the whole builtin directory
316
+ // otherwise pass the whole builtin directory.
317
+ // Both core/ and extension/ are scanned as builtin sources.
382
318
  let builtinPaths = [];
383
- if (fs.existsSync(builtinPath)) {
319
+ for (const bDir of [builtinPath, extensionPath]) {
320
+ if (!fs.existsSync(bDir))
321
+ continue;
384
322
  if (disabledBuiltins) {
385
- for (const entry of fs.readdirSync(builtinPath, { withFileTypes: true })) {
323
+ for (const entry of fs.readdirSync(bDir, { withFileTypes: true })) {
386
324
  if (entry.isDirectory() && !disabledBuiltins.has(entry.name)) {
387
- builtinPaths.push(path.join(builtinPath, entry.name));
325
+ builtinPaths.push(path.join(bDir, entry.name));
388
326
  }
389
327
  }
390
328
  }
391
329
  else {
392
- builtinPaths = [builtinPath];
330
+ builtinPaths.push(bDir);
393
331
  }
394
332
  }
395
333
  // Priority: team/personal > builtin — higher-specificity scopes first.
@@ -401,19 +339,21 @@ export async function createSiclawSession(opts) {
401
339
  const skillsDirs = [dynamicSkillBase, ...builtinPaths];
402
340
  // Mutable ref: populated before createAgentSession, read by extension at runtime
403
341
  const memoryIndexerRef = {};
342
+ // Resolve credentials directory for tools and /setup extension
343
+ const credentialsDir = kubeconfigRef.credentialsDir || path.resolve(cwd, config.paths.credentialsDir);
404
344
  // Workspace system prompt append (shared between pi-agent and SDK brain)
405
345
  const workspaceSystemPromptAppend = opts?.systemPromptAppend;
406
346
  const loader = new DefaultResourceLoader({
407
347
  cwd,
408
- systemPromptOverride: () => buildSreSystemPrompt(memoryDir),
348
+ systemPromptOverride: () => buildSreSystemPrompt(memoryDir, mode),
409
349
  appendSystemPromptOverride: () => {
410
- const parts = buildAppendSystemPrompt(skillsBase, getUserSkillDirName, getPlatformSkillDirName, memoryDir);
350
+ const parts = buildAppendSystemPrompt(memoryDir);
411
351
  if (workspaceSystemPromptAppend) {
412
352
  parts.push("\n\n" + workspaceSystemPromptAppend);
413
353
  }
414
354
  return parts;
415
355
  },
416
- extensionFactories: [contextPruningExtension, (api) => memoryFlushExtension(api, memoryIndexerRef.current), deepInvestigationExtension],
356
+ extensionFactories: [contextPruningExtension, (api) => memoryFlushExtension(api, memoryIndexerRef.current), (api) => deepInvestigationExtension(api, memoryRef), (api) => setupExtension(api, credentialsDir)],
417
357
  additionalSkillPaths: skillsDirs,
418
358
  });
419
359
  await loader.reload();
@@ -427,6 +367,14 @@ export async function createSiclawSession(opts) {
427
367
  if (skillDiagnostics.length > 0) {
428
368
  console.log(`[agent-factory] Skill diagnostics: ${JSON.stringify(skillDiagnostics)}`);
429
369
  }
370
+ // Ensure memoryDir and skeleton PROFILE.md exist (both brain paths need this)
371
+ if (!fs.existsSync(memoryDir)) {
372
+ fs.mkdirSync(memoryDir, { recursive: true });
373
+ }
374
+ const skeletonProfilePath = path.join(memoryDir, "PROFILE.md");
375
+ if (!fs.existsSync(skeletonProfilePath)) {
376
+ fs.writeFileSync(skeletonProfilePath, `# User Profile\n- **Name**: TBD\n- **Role**: TBD\n- **Infrastructure**: TBD\n- **Preferences**: TBD\n- **Language**: English\n`);
377
+ }
430
378
  // -- Claude SDK brain path --
431
379
  if (opts?.brainType === "claude-sdk") {
432
380
  console.log(`[agent-factory] Creating Claude SDK brain`);
@@ -435,9 +383,9 @@ export async function createSiclawSession(opts) {
435
383
  // DP tools for SDK brain — mutable state shared with http-server via dpState ref
436
384
  const dpState = { checklist: null };
437
385
  sdkTools.push(createManageChecklistTool(dpState), createProposeHypothesesTool(dpState), createEndInvestigationTool(dpState));
438
- const systemPrompt = buildSreSystemPrompt(memoryDir);
386
+ const systemPrompt = buildSreSystemPrompt(memoryDir, mode);
439
387
  // Build the same append content that pi-agent gets via appendSystemPromptOverride
440
- const appendParts = buildAppendSystemPrompt(skillsBase, getUserSkillDirName, getPlatformSkillDirName, memoryDir);
388
+ const appendParts = buildAppendSystemPrompt(memoryDir);
441
389
  let systemPromptAppend = appendParts.join("\n") || undefined;
442
390
  // Inject deep investigation judgment framework
443
391
  const dpWorkflow = getDpWorkflow();
@@ -497,15 +445,13 @@ Follow the structured workflow described in the deep-investigation skill guide.`
497
445
  mode,
498
446
  mcpManager,
499
447
  dpState,
448
+ sessionIdRef,
500
449
  };
501
450
  }
502
451
  // -- Pi-agent brain path (default) --
503
452
  // Initialize memory indexer for pi-agent (hybrid search over memory/*.md)
504
453
  let memoryIndexer = opts?.memoryIndexer;
505
454
  try {
506
- if (!fs.existsSync(memoryDir)) {
507
- fs.mkdirSync(memoryDir, { recursive: true });
508
- }
509
455
  if (memoryIndexer) {
510
456
  // Shared indexer provided — reuse it, don't startWatching (caller manages lifecycle)
511
457
  memoryIndexerRef.current = memoryIndexer;
@@ -532,6 +478,10 @@ Follow the structured workflow described in the deep-investigation skill guide.`
532
478
  console.warn(`[agent-factory] Memory indexer init failed, continuing without:`, err);
533
479
  }
534
480
  const sessionManager = opts?.sessionManager ?? SessionManager.create(process.cwd());
481
+ // Resolve the initial model: prefer the user's configured default over pi-agent's built-in
482
+ const configuredModel = defaultLlm
483
+ ? modelRegistry.find(config.default?.provider ?? Object.keys(config.providers)[0], defaultLlm.model.id)
484
+ : undefined;
535
485
  const { session, modelFallbackMessage } = await createAgentSession({
536
486
  tools: restrictedFileTools,
537
487
  customTools,
@@ -539,9 +489,10 @@ Follow the structured workflow described in the deep-investigation skill guide.`
539
489
  sessionManager,
540
490
  authStorage,
541
491
  modelRegistry,
492
+ model: configuredModel,
542
493
  thinkingLevel: "high",
543
494
  });
544
495
  const brain = new PiAgentBrain(session);
545
- return { brain, session, modelFallbackMessage, customTools, kubeconfigRef, llmConfigRef, skillsDirs, mode, mcpManager, memoryIndexer };
496
+ return { brain, session, modelFallbackMessage, customTools, kubeconfigRef, llmConfigRef, skillsDirs, mode, mcpManager, memoryIndexer, sessionIdRef };
546
497
  }
547
498
  //# sourceMappingURL=agent-factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-factory.js","sourceRoot":"","sources":["../../src/core/agent-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-factory.js","sourceRoot":"","sources":["../../src/core/agent-factory.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,15 @@
1
1
  /**
2
2
  * Unified configuration loader for AgentBox / TUI.
3
3
  *
4
- * Configuration is read from `.siclaw/config/settings.json` with support for:
5
- * - `$VAR` / `${VAR}` env-var references in apiKey / baseUrl fields
6
- * - `SICLAW_LLM_*` runtime env-var overrides (highest priority)
4
+ * LLM provider config (API key, base URL, models) is stored exclusively in
5
+ * settings.json environment variables are NOT used for sensitive credentials.
6
+ * Deployment env vars (SICLAW_CONFIG_DIR, SICLAW_AGENTBOX_PORT, etc.) are
7
+ * still supported for infrastructure/container orchestration.
7
8
  */
8
9
  export interface ProviderModelCompat {
9
10
  supportsDeveloperRole?: boolean;
10
11
  supportsUsageInStreaming?: boolean;
12
+ supportsToolUse?: boolean;
11
13
  maxTokensField?: string;
12
14
  thinkingFormat?: string;
13
15
  }
@@ -58,6 +60,11 @@ export interface SiclawConfig {
58
60
  debugImage: string;
59
61
  allowedTools: string[] | null;
60
62
  mcpServers: Record<string, unknown>;
63
+ metrics?: {
64
+ port?: number;
65
+ token?: string;
66
+ includeUserId?: boolean;
67
+ };
61
68
  debug: boolean;
62
69
  userId: string;
63
70
  }