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
@@ -1,4 +1,4 @@
1
- import { runSubAgent, llmComplete } from "./sub-agent.js";
1
+ import { runSubAgent, llmCompleteWithTool, extractJSON } from "./sub-agent.js";
2
2
  import { contextGatheringPrompt, hypothesisGenerationPrompt, hypothesisValidationPrompt, conclusionPrompt, forceVerdictPrompt, forceContextSummaryPrompt, } from "./prompts.js";
3
3
  import { writeFile, mkdir } from "fs/promises";
4
4
  import { join } from "path";
@@ -6,6 +6,7 @@ import { homedir } from "os";
6
6
  import crypto from "node:crypto";
7
7
  import { resolveKubeconfigPath } from "../kubeconfig-resolver.js";
8
8
  import { NORMAL_BUDGET, EARLY_EXIT_CONFIDENCE, TRACE_MAX_OUTPUT, TRACE_HEAD_CHARS, TRACE_TAIL_CHARS, } from "./types.js";
9
+ import { HYPOTHESES_SCHEMA, CONCLUSION_SCHEMA } from "./schemas.js";
9
10
  /**
10
11
  * Write the full investigation report to ~/.siclaw/reports/deep-search-{timestamp}.md
11
12
  * Returns the file path for inclusion in the summary.
@@ -116,121 +117,30 @@ async function writeInvestigationToMemory(memoryDir, question, hypotheses, concl
116
117
  console.log(`[deep-search] Investigation summary written to memory: ${filepath}`);
117
118
  }
118
119
  /**
119
- * Extract JSON from LLM output using multi-layer fallback:
120
- * 1. Direct JSON.parse
121
- * 2. Fenced code block (```json ... ```)
122
- * 3. Balanced brace matching (first complete top-level object)
120
+ * Phase 2: Generate hypotheses using LLM function calling (tool_use).
121
+ * Falls back to extractJSON if the provider doesn't support tool_use.
123
122
  */
124
- function extractJSON(text) {
125
- // 1. Direct parse LLM sometimes returns pure JSON
123
+ async function generateHypotheses(question, contextSummary, maxHypotheses, options, onProgress, priorKnowledge) {
124
+ const prompt = hypothesisGenerationPrompt(question, contextSummary, maxHypotheses, priorKnowledge);
125
+ const fallback = [{ text: "Failed to parse hypotheses", confidence: 0, suggestedTools: [] }];
126
126
  try {
127
- JSON.parse(text);
128
- return text;
129
- }
130
- catch {
131
- // continue to next strategy
132
- }
133
- // 2. Fenced code block
134
- const fenceMatch = text.match(/```(?:json)?\s*\n?([\s\S]*?)\n?```/);
135
- if (fenceMatch) {
136
- try {
137
- JSON.parse(fenceMatch[1]);
138
- return fenceMatch[1];
139
- }
140
- catch {
141
- // fence content wasn't valid JSON, continue
142
- }
143
- }
144
- // 3. Balanced brace extraction — find first complete top-level { ... }
145
- const start = text.indexOf("{");
146
- if (start >= 0) {
147
- let depth = 0;
148
- let inString = false;
149
- let escape = false;
150
- for (let i = start; i < text.length; i++) {
151
- const ch = text[i];
152
- if (escape) {
153
- escape = false;
154
- continue;
155
- }
156
- if (ch === "\\" && inString) {
157
- escape = true;
158
- continue;
159
- }
160
- if (ch === '"') {
161
- inString = !inString;
162
- continue;
163
- }
164
- if (inString)
165
- continue;
166
- if (ch === "{")
167
- depth++;
168
- else if (ch === "}") {
169
- depth--;
170
- if (depth === 0) {
171
- const candidate = text.slice(start, i + 1);
172
- try {
173
- JSON.parse(candidate);
174
- return candidate;
175
- }
176
- catch {
177
- // Balanced braces but not valid JSON, give up
178
- return null;
179
- }
180
- }
181
- }
182
- }
183
- }
184
- return null;
185
- }
186
- /**
187
- * Phase 2: Generate hypotheses using a single LLM call (no tools).
188
- * Includes robust JSON extraction and a single retry on parse failure.
189
- */
190
- async function generateHypotheses(question, contextSummary, maxHypotheses, options, onProgress, relatedInvestigations) {
191
- const prompt = hypothesisGenerationPrompt(question, contextSummary, maxHypotheses, relatedInvestigations);
192
- const fallback = [{ text: "Failed to parse hypotheses JSON", confidence: 0, suggestedTools: [] }];
193
- const MAX_RETRIES = 1;
194
- for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
195
- let text;
196
- try {
197
- // Only forward onProgress on first attempt to avoid duplicate spinner events
198
- text = await llmComplete(undefined, prompt, options, attempt === 0 ? onProgress : undefined);
199
- }
200
- catch (err) {
201
- if (attempt < MAX_RETRIES)
202
- continue;
203
- const msg = err instanceof Error ? err.message : String(err);
204
- return [{ text: `Hypothesis generation failed: ${msg}`, confidence: 0, suggestedTools: [] }];
205
- }
206
- const jsonStr = extractJSON(text);
207
- if (!jsonStr) {
208
- if (attempt < MAX_RETRIES)
209
- continue;
127
+ const { toolArgs } = await llmCompleteWithTool(undefined, prompt, "submit_hypotheses", "Submit ranked hypotheses for validation", HYPOTHESES_SCHEMA, options, onProgress);
128
+ if (!toolArgs)
210
129
  return fallback;
211
- }
212
- try {
213
- const parsed = JSON.parse(jsonStr);
214
- // Accept both { hypotheses: [...] } and bare array [...]
215
- const hypotheses = Array.isArray(parsed.hypotheses)
216
- ? parsed.hypotheses
217
- : Array.isArray(parsed)
218
- ? parsed
219
- : null;
220
- if (!hypotheses?.length || !hypotheses[0].text) {
221
- if (attempt < MAX_RETRIES)
222
- continue;
223
- return fallback;
224
- }
225
- return hypotheses.slice(0, maxHypotheses);
226
- }
227
- catch {
228
- if (attempt < MAX_RETRIES)
229
- continue;
130
+ // Accept both { hypotheses: [...] } and bare array [...]
131
+ const hypotheses = Array.isArray(toolArgs.hypotheses)
132
+ ? toolArgs.hypotheses
133
+ : Array.isArray(toolArgs)
134
+ ? toolArgs
135
+ : null;
136
+ if (!hypotheses?.length || !hypotheses[0].text)
230
137
  return fallback;
231
- }
138
+ return hypotheses.slice(0, maxHypotheses);
139
+ }
140
+ catch (err) {
141
+ const msg = err instanceof Error ? err.message : String(err);
142
+ return [{ text: `Hypothesis generation failed: ${msg}`, confidence: 0, suggestedTools: [] }];
232
143
  }
233
- return fallback; // unreachable, but satisfies TS
234
144
  }
235
145
  /**
236
146
  * Parse structured extraction block from LLM conclusion output.
@@ -270,8 +180,9 @@ function parseConclusionOutput(raw) {
270
180
  }
271
181
  }
272
182
  /**
273
- * Phase 4: Generate final conclusion using a single LLM call (no tools).
183
+ * Phase 4: Generate final conclusion using LLM function calling (tool_use).
274
184
  * Returns both human-readable text and optional structured extraction.
185
+ * Falls back to parseConclusionOutput() for providers without tool_use support.
275
186
  */
276
187
  async function generateConclusion(question, hypotheses, options) {
277
188
  const hypothesesSummary = hypotheses
@@ -285,8 +196,22 @@ async function generateConclusion(question, hypotheses, options) {
285
196
  const prompt = conclusionPrompt(question, hypothesesSummary);
286
197
  // No onProgress here — Phase 4 conclusion text should NOT leak into spinner
287
198
  try {
288
- const raw = await llmComplete(undefined, prompt, options);
289
- return parseConclusionOutput(raw);
199
+ const { toolArgs, textContent } = await llmCompleteWithTool(undefined, prompt, "submit_conclusion", "Submit the final investigation conclusion with structured metadata", CONCLUSION_SCHEMA, options);
200
+ if (toolArgs) {
201
+ return {
202
+ text: toolArgs.conclusion_text,
203
+ structured: {
204
+ root_cause_category: toolArgs.root_cause_category ?? "unknown",
205
+ affected_entities: Array.isArray(toolArgs.affected_entities) ? toolArgs.affected_entities : [],
206
+ environment_tags: Array.isArray(toolArgs.environment_tags) ? toolArgs.environment_tags : [],
207
+ causal_chain: Array.isArray(toolArgs.causal_chain) ? toolArgs.causal_chain : [],
208
+ confidence: typeof toolArgs.confidence === "number" ? toolArgs.confidence : 0,
209
+ remediation_steps: Array.isArray(toolArgs.remediation_steps) ? toolArgs.remediation_steps : undefined,
210
+ },
211
+ };
212
+ }
213
+ // Fallback: marker-based parsing (for providers that returned text instead of tool_calls)
214
+ return parseConclusionOutput(textContent);
290
215
  }
291
216
  catch (err) {
292
217
  const msg = err instanceof Error ? err.message : String(err);
@@ -351,24 +276,45 @@ export async function investigate(question, options) {
351
276
  globalCallsUsed += contextResult.callsUsed;
352
277
  contextSummary = parseContextSummary(contextResult.textOutput);
353
278
  }
354
- // --- Prior Investigation Retrieval (structured + semantic, for Phase 2) ---
355
- let relatedInvestigations;
279
+ // --- Prior Investigation Retrieval (3-layer: patterns + similar + validated hypotheses) ---
280
+ let priorKnowledge;
281
+ let similarInvestigationRecords = [];
356
282
  if (options?.memoryIndexer && !(options?.hypotheses && options.hypotheses.length > 0)) {
357
- const parts = [];
358
- // 1. Structured query: precise match on categories/entities
283
+ const pk = {};
284
+ // Layer 1: Pattern Table (aggregated from recent history)
285
+ try {
286
+ const patterns = options.memoryIndexer.getInvestigationPatterns(8);
287
+ if (patterns.length > 0) {
288
+ pk.patterns = formatPatternTable(patterns);
289
+ onProgress?.({ type: "phase", phase: "Phase 1/4", detail: `Loaded ${patterns.length} diagnostic pattern(s) from history` });
290
+ }
291
+ }
292
+ catch (err) {
293
+ console.warn(`[deep-search] Pattern aggregation failed:`, err);
294
+ }
295
+ // Layer 2: Similar Investigations (structured + semantic search)
296
+ const similarParts = [];
297
+ // 2a. Structured query (keyword-relevant)
359
298
  try {
360
299
  const structuredResults = options.memoryIndexer.searchInvestigations(question, { topK: 3 });
361
300
  if (structuredResults.length > 0) {
362
- const seenQuestions = new Set();
301
+ similarInvestigationRecords = structuredResults;
363
302
  for (const inv of structuredResults) {
364
- seenQuestions.add(inv.question);
365
303
  const tags = [
366
304
  `root_cause: ${inv.rootCauseCategory}`,
367
305
  `confidence: ${inv.confidence}%`,
368
306
  inv.environmentTags.length > 0 ? `env: ${inv.environmentTags.join(", ")}` : "",
369
307
  ].filter(Boolean).join(", ");
370
308
  const chain = inv.causalChain.length > 0 ? `\nCausal chain: ${inv.causalChain.join(" → ")}` : "";
371
- parts.push(`[Structured] [${tags}] ${inv.question}${chain}\nConclusion: ${inv.conclusion.slice(0, 300)}`);
309
+ const remediation = inv.remediationSteps?.length
310
+ ? `\nRemediation: ${inv.remediationSteps.join("; ")}`
311
+ : "";
312
+ const hypothesisVerdicts = inv.hypotheses
313
+ .filter(h => h.status !== "pending" && h.status !== "skipped")
314
+ .map(h => ` - ${h.text}: ${h.status.toUpperCase()} (${h.confidence}%)`)
315
+ .join("\n");
316
+ const hypothesisSection = hypothesisVerdicts ? `\nHypothesis verdicts:\n${hypothesisVerdicts}` : "";
317
+ similarParts.push(`[Structured] [${tags}] ${inv.question}${chain}${remediation}${hypothesisSection}\nConclusion: ${inv.conclusion.slice(0, 300)}`);
372
318
  }
373
319
  onProgress?.({ type: "phase", phase: "Phase 1/4", detail: `Found ${structuredResults.length} structured prior investigation(s)` });
374
320
  }
@@ -376,13 +322,24 @@ export async function investigate(question, options) {
376
322
  catch (err) {
377
323
  console.warn(`[deep-search] Structured investigation retrieval failed:`, err);
378
324
  }
379
- // 2. Semantic search: existing chunk-based search (catches cases not covered by structured fields)
325
+ // 2b. Semantic search (chunk-based) also enrich similarInvestigationRecords
380
326
  try {
381
327
  const searchResult = await options.memoryIndexer.search(question, 3, 0.4);
382
328
  const investigationChunks = searchResult.chunks.filter(c => c.file.startsWith("investigations/"));
383
329
  if (investigationChunks.length > 0) {
384
330
  for (const c of investigationChunks) {
385
- parts.push(`[Semantic] (relevance: ${(c.score ?? 0).toFixed(2)})\n${c.content}`);
331
+ similarParts.push(`[Semantic] (relevance: ${(c.score ?? 0).toFixed(2)})\n${c.content}`);
332
+ }
333
+ // Enrich: look up structured records for semantically matched investigations
334
+ // so Layer 3 and Phase 3 context can use them too
335
+ const existingIds = new Set(similarInvestigationRecords.map(r => r.id));
336
+ const semanticFiles = investigationChunks.map(c => c.file);
337
+ const semanticRecords = options.memoryIndexer.lookupInvestigationsByFiles(semanticFiles);
338
+ for (const rec of semanticRecords) {
339
+ if (!existingIds.has(rec.id)) {
340
+ similarInvestigationRecords.push(rec);
341
+ existingIds.add(rec.id);
342
+ }
386
343
  }
387
344
  onProgress?.({ type: "phase", phase: "Phase 2/4", detail: `Found ${investigationChunks.length} semantic match(es) from past investigations` });
388
345
  }
@@ -390,8 +347,24 @@ export async function investigate(question, options) {
390
347
  catch (err) {
391
348
  console.warn(`[deep-search] Semantic investigation search failed:`, err);
392
349
  }
393
- if (parts.length > 0) {
394
- relatedInvestigations = parts.join("\n\n---\n\n");
350
+ if (similarParts.length > 0) {
351
+ pk.similarInvestigations = similarParts.join("\n\n---\n\n");
352
+ }
353
+ // Layer 3: Validated Hypothesis Templates (extracted from ALL similar investigations — structured + semantic)
354
+ const validatedList = extractValidatedHypotheses(similarInvestigationRecords);
355
+ if (validatedList.length > 0) {
356
+ pk.validatedHypotheses = validatedList.join("\n");
357
+ }
358
+ if (pk.patterns || pk.similarInvestigations || pk.validatedHypotheses) {
359
+ // Truncate to avoid token explosion — prior knowledge should inform, not dominate the prompt
360
+ const MAX_CHARS = 4000;
361
+ if (pk.similarInvestigations && pk.similarInvestigations.length > MAX_CHARS) {
362
+ pk.similarInvestigations = pk.similarInvestigations.slice(0, MAX_CHARS) + "\n...(truncated)";
363
+ }
364
+ if (pk.validatedHypotheses && pk.validatedHypotheses.length > MAX_CHARS) {
365
+ pk.validatedHypotheses = pk.validatedHypotheses.slice(0, MAX_CHARS) + "\n...(truncated)";
366
+ }
367
+ priorKnowledge = pk;
395
368
  }
396
369
  }
397
370
  let hypotheses;
@@ -410,7 +383,7 @@ export async function investigate(question, options) {
410
383
  }
411
384
  else {
412
385
  onProgress?.({ type: "phase", phase: "Phase 2/4", detail: "Generating hypotheses..." });
413
- const rawHypotheses = await generateHypotheses(question, contextSummary, budget.maxHypotheses, options, onProgress, relatedInvestigations);
386
+ const rawHypotheses = await generateHypotheses(question, contextSummary, budget.maxHypotheses, options, onProgress, priorKnowledge);
414
387
  hypotheses = rawHypotheses.map((h, i) => ({
415
388
  id: `H${i + 1}`,
416
389
  text: h.text,
@@ -428,6 +401,8 @@ export async function investigate(question, options) {
428
401
  // --- Phase 3: Parallel Hypothesis Validation ---
429
402
  // Sort hypotheses by confidence DESC so most likely root cause is validated first
430
403
  hypotheses.sort((a, b) => b.confidence - a.confidence);
404
+ // Pre-compute past diagnostic context from similarInvestigationRecords (avoids N+1 queries)
405
+ const pastDiagnosticContext = buildPastDiagnosticContext(similarInvestigationRecords);
431
406
  // When phases are skipped, their budget is redistributed to validation
432
407
  const validationBudget = budget.maxTotalCalls - globalCallsUsed;
433
408
  onProgress?.({ type: "phase", phase: "Phase 3/4", detail: `Validating ${hypotheses.length} hypotheses (budget: ${validationBudget} calls)...` });
@@ -451,7 +426,7 @@ export async function investigate(question, options) {
451
426
  ? (event) => onProgress({ ...event, hypothesisId: hypothesis.id })
452
427
  : undefined;
453
428
  try {
454
- const result = await runSubAgent(hypothesisValidationPrompt(hypothesis.text, hypothesis.suggestedTools, contextSummary, perBudget, buildPriorFindings(), kubeconfigPath), `Validate hypothesis${isRetry ? " (retry)" : ""}: ${hypothesis.text}`, perBudget, options, taggedProgress, forceVerdictPrompt());
429
+ const result = await runSubAgent(hypothesisValidationPrompt(hypothesis.text, hypothesis.suggestedTools, contextSummary, perBudget, buildPriorFindings(), kubeconfigPath, pastDiagnosticContext.length > 0 ? pastDiagnosticContext : undefined), `Validate hypothesis${isRetry ? " (retry)" : ""}: ${hypothesis.text}`, perBudget, options, taggedProgress, forceVerdictPrompt());
455
430
  const verdict = parseVerdict(result.textOutput);
456
431
  hypothesis.status = verdict.status;
457
432
  hypothesis.confidence = verdict.confidence;
@@ -535,6 +510,7 @@ export async function investigate(question, options) {
535
510
  const conclusionResult = await generateConclusion(question, hypotheses, options);
536
511
  const totalDurationMs = Date.now() - startTime;
537
512
  // Write structured investigation record to SQLite (best-effort)
513
+ let investigationId;
538
514
  if (conclusionResult.structured && options?.memoryIndexer) {
539
515
  try {
540
516
  const record = {
@@ -546,6 +522,7 @@ export async function investigate(question, options) {
546
522
  causalChain: conclusionResult.structured.causal_chain,
547
523
  confidence: conclusionResult.structured.confidence,
548
524
  conclusion: conclusionResult.text,
525
+ remediationSteps: conclusionResult.structured.remediation_steps,
549
526
  durationMs: totalDurationMs,
550
527
  totalToolCalls: globalCallsUsed,
551
528
  hypotheses: hypotheses.map((h) => ({
@@ -557,6 +534,7 @@ export async function investigate(question, options) {
557
534
  createdAt: Date.now(),
558
535
  };
559
536
  options.memoryIndexer.insertInvestigation(record);
537
+ investigationId = record.id;
560
538
  console.log(`[deep-search] Structured investigation record saved: ${record.rootCauseCategory} (${record.confidence}%)`);
561
539
  }
562
540
  catch (err) {
@@ -589,6 +567,85 @@ export async function investigate(question, options) {
589
567
  totalDurationMs,
590
568
  timedOut,
591
569
  debugTracePath,
570
+ investigationId,
592
571
  };
593
572
  }
573
+ /** Format aggregated investigation patterns into a readable table for prompt injection. */
574
+ function formatPatternTable(patterns) {
575
+ const total = patterns.reduce((sum, p) => sum + p.count, 0);
576
+ const lines = [`Based on ${total} past investigations:`];
577
+ lines.push("| Root Cause | Frequency | Avg Confidence | Common Fix |");
578
+ lines.push("|------------|-----------|----------------|------------|");
579
+ for (const p of patterns) {
580
+ const pct = total > 0 ? Math.round((p.count / total) * 100) : 0;
581
+ const fix = p.commonRemediations.length > 0
582
+ ? p.commonRemediations[0].slice(0, 60) + (p.commonRemediations[0].length > 60 ? "..." : "")
583
+ : "—";
584
+ lines.push(`| ${p.rootCauseCategory} | ${p.count} (${pct}%) | ${p.avgConfidence}% | ${fix} |`);
585
+ }
586
+ lines.push("\nUse these frequencies to calibrate your confidence scores.");
587
+ return lines.join("\n");
588
+ }
589
+ /**
590
+ * Pre-compute past diagnostic context from similar investigation records.
591
+ * Returns a single string shared by all Phase 3 sub-agents, avoiding N+1 queries.
592
+ */
593
+ function buildPastDiagnosticContext(records) {
594
+ if (records.length === 0)
595
+ return "";
596
+ const contextLines = [];
597
+ for (const rec of records) {
598
+ const validatedH = rec.hypotheses.filter(h => h.status === "validated");
599
+ if (validatedH.length === 0)
600
+ continue;
601
+ for (const vh of validatedH) {
602
+ const parts = [`- "${vh.text}" (validated, ${vh.confidence}%)`];
603
+ if (rec.causalChain.length > 0) {
604
+ parts.push(` Causal chain: ${rec.causalChain.join(" → ")}`);
605
+ }
606
+ if (rec.remediationSteps?.length) {
607
+ parts.push(` Remediation: ${rec.remediationSteps.join("; ")}`);
608
+ }
609
+ contextLines.push(parts.join("\n"));
610
+ }
611
+ }
612
+ return contextLines.join("\n");
613
+ }
614
+ /**
615
+ * Extract validated hypotheses from investigation records, deduplicated and counted.
616
+ * Uses normalized text (lowercase, collapsed whitespace) for dedup to merge
617
+ * near-identical hypotheses like "MTU Mismatch" and "mtu mismatch".
618
+ * NOTE: Semantic dedup (embedding similarity) would catch more variants but
619
+ * requires async embedding calls — left as a future improvement.
620
+ */
621
+ function extractValidatedHypotheses(records) {
622
+ // Count occurrences and track max confidence, keyed by normalized text.
623
+ // Raw count is used for display; weightedScore (feedback-adjusted) is used for sorting.
624
+ const validated = new Map();
625
+ for (const rec of records) {
626
+ const feedbackSignal = rec.feedbackSignal ?? 1.0;
627
+ for (const h of rec.hypotheses) {
628
+ if (h.status === "validated" && h.text) {
629
+ const key = normalizeHypothesisText(h.text);
630
+ const adjustedConfidence = Math.round(h.confidence * feedbackSignal);
631
+ const existing = validated.get(key);
632
+ if (existing) {
633
+ existing.rawCount++;
634
+ existing.weightedScore += feedbackSignal;
635
+ existing.maxConfidence = Math.max(existing.maxConfidence, adjustedConfidence);
636
+ }
637
+ else {
638
+ validated.set(key, { displayText: h.text, rawCount: 1, weightedScore: feedbackSignal, maxConfidence: adjustedConfidence });
639
+ }
640
+ }
641
+ }
642
+ }
643
+ return [...validated.entries()]
644
+ .sort((a, b) => b[1].weightedScore - a[1].weightedScore)
645
+ .map(([, { displayText, rawCount, maxConfidence }]) => `- "${displayText}" (validated ${rawCount} time${rawCount !== 1 ? "s" : ""}, max conf ${maxConfidence}%)`);
646
+ }
647
+ /** Normalize hypothesis text for dedup: lowercase, trim, collapse whitespace. */
648
+ function normalizeHypothesisText(text) {
649
+ return text.toLowerCase().trim().replace(/\s+/g, " ");
650
+ }
594
651
  //# sourceMappingURL=engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/tools/deep-search/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/tools/deep-search/engine.ts"],"names":[],"mappings":"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"}
@@ -9,16 +9,24 @@
9
9
  * Skills are auto-loaded by pi-agent — only tool semantics needed here.
10
10
  */
11
11
  export declare function contextGatheringPrompt(question: string, maxCalls: number, kubeconfigPath?: string): string;
12
+ /**
13
+ * Prior knowledge from past investigations, injected into Phase 2 hypothesis generation.
14
+ */
15
+ export interface PriorKnowledge {
16
+ patterns?: string;
17
+ similarInvestigations?: string;
18
+ validatedHypotheses?: string;
19
+ }
12
20
  /**
13
21
  * Phase 2: Hypothesis generation prompt (used with llmComplete, no tools).
14
22
  * Injects auto-formatted skills so LLM can reference real script paths in suggestedTools.
15
23
  */
16
- export declare function hypothesisGenerationPrompt(question: string, contextSummary: string, maxHypotheses: number, relatedInvestigations?: string): string;
24
+ export declare function hypothesisGenerationPrompt(question: string, contextSummary: string, maxHypotheses: number, priorKnowledge?: PriorKnowledge): string;
17
25
  /**
18
26
  * Phase 3: Hypothesis validation system prompt (used as pi-agent session prompt).
19
27
  * Skills are auto-loaded by pi-agent — adds tool semantics and common mistakes.
20
28
  */
21
- export declare function hypothesisValidationPrompt(hypothesis: string, suggestedTools: string[], contextSummary: string, maxCalls: number, priorFindings?: string, kubeconfigPath?: string): string;
29
+ export declare function hypothesisValidationPrompt(hypothesis: string, suggestedTools: string[], contextSummary: string, maxCalls: number, priorFindings?: string, kubeconfigPath?: string, pastDiagnosticContext?: string): string;
22
30
  /**
23
31
  * Prompt used to force a verdict when the sub-agent runs out of tool budget.
24
32
  */