siclaw 0.1.2 → 0.1.4

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 (215) hide show
  1. package/dist/agentbox/gateway-client.d.ts +4 -0
  2. package/dist/agentbox/gateway-client.js +9 -1
  3. package/dist/agentbox/gateway-client.js.map +1 -1
  4. package/dist/agentbox/http-server.js +25 -1
  5. package/dist/agentbox/http-server.js.map +1 -1
  6. package/dist/agentbox/session.d.ts +2 -0
  7. package/dist/agentbox/session.js +11 -7
  8. package/dist/agentbox/session.js.map +1 -1
  9. package/dist/agentbox-main.js +10 -0
  10. package/dist/agentbox-main.js.map +1 -1
  11. package/dist/cli-main.js +19 -3
  12. package/dist/cli-main.js.map +1 -1
  13. package/dist/core/agent-factory.d.ts +2 -0
  14. package/dist/core/agent-factory.js +87 -21
  15. package/dist/core/agent-factory.js.map +1 -1
  16. package/dist/core/compaction.d.ts +80 -0
  17. package/dist/core/compaction.js +442 -0
  18. package/dist/core/compaction.js.map +1 -0
  19. package/dist/core/config.d.ts +7 -0
  20. package/dist/core/config.js +27 -1
  21. package/dist/core/config.js.map +1 -1
  22. package/dist/core/extensions/compaction-safeguard.d.ts +2 -0
  23. package/dist/core/extensions/compaction-safeguard.js +681 -0
  24. package/dist/core/extensions/compaction-safeguard.js.map +1 -0
  25. package/dist/core/extensions/deep-investigation.js +47 -73
  26. package/dist/core/extensions/deep-investigation.js.map +1 -1
  27. package/dist/core/extensions/memory-flush.d.ts +2 -10
  28. package/dist/core/extensions/memory-flush.js +4 -86
  29. package/dist/core/extensions/memory-flush.js.map +1 -1
  30. package/dist/core/llm-proxy.js +25 -6
  31. package/dist/core/llm-proxy.js.map +1 -1
  32. package/dist/core/message-utils.d.ts +18 -0
  33. package/dist/core/message-utils.js +28 -0
  34. package/dist/core/message-utils.js.map +1 -0
  35. package/dist/core/prompt.js +4 -5
  36. package/dist/core/prompt.js.map +1 -1
  37. package/dist/core/session-tool-result-guard.d.ts +2 -0
  38. package/dist/core/session-tool-result-guard.js +159 -0
  39. package/dist/core/session-tool-result-guard.js.map +1 -0
  40. package/dist/core/stream-wrappers.d.ts +41 -0
  41. package/dist/core/stream-wrappers.js +369 -0
  42. package/dist/core/stream-wrappers.js.map +1 -0
  43. package/dist/core/thinking-blocks.d.ts +20 -0
  44. package/dist/core/thinking-blocks.js +45 -0
  45. package/dist/core/thinking-blocks.js.map +1 -0
  46. package/dist/core/tool-call-id.d.ts +22 -0
  47. package/dist/core/tool-call-id.js +226 -0
  48. package/dist/core/tool-call-id.js.map +1 -0
  49. package/dist/core/tool-call-repair.d.ts +18 -0
  50. package/dist/core/tool-call-repair.js +73 -0
  51. package/dist/core/tool-call-repair.js.map +1 -0
  52. package/dist/core/tool-result-context-guard.d.ts +36 -0
  53. package/dist/core/tool-result-context-guard.js +272 -0
  54. package/dist/core/tool-result-context-guard.js.map +1 -0
  55. package/dist/cron/cron-limits.d.ts +16 -0
  56. package/dist/cron/cron-limits.js +17 -0
  57. package/dist/cron/cron-limits.js.map +1 -0
  58. package/dist/cron/cron-matcher.d.ts +14 -0
  59. package/dist/cron/cron-matcher.js +29 -0
  60. package/dist/cron/cron-matcher.js.map +1 -1
  61. package/dist/gateway/agentbox/client.d.ts +0 -2
  62. package/dist/gateway/agentbox/client.js.map +1 -1
  63. package/dist/gateway/agentbox/k8s-spawner.d.ts +10 -10
  64. package/dist/gateway/agentbox/k8s-spawner.js +27 -55
  65. package/dist/gateway/agentbox/k8s-spawner.js.map +1 -1
  66. package/dist/gateway/agentbox/local-spawner.d.ts +5 -0
  67. package/dist/gateway/agentbox/local-spawner.js +10 -0
  68. package/dist/gateway/agentbox/local-spawner.js.map +1 -1
  69. package/dist/gateway/cron/cron-service.js +7 -0
  70. package/dist/gateway/cron/cron-service.js.map +1 -1
  71. package/dist/gateway/db/index.js +9 -1
  72. package/dist/gateway/db/index.js.map +1 -1
  73. package/dist/gateway/db/init-schema.js +65 -16
  74. package/dist/gateway/db/init-schema.js.map +1 -1
  75. package/dist/gateway/db/migrate-sqlite.js +73 -20
  76. package/dist/gateway/db/migrate-sqlite.js.map +1 -1
  77. package/dist/gateway/db/repositories/cluster-repo.d.ts +59 -0
  78. package/dist/gateway/db/repositories/cluster-repo.js +107 -0
  79. package/dist/gateway/db/repositories/cluster-repo.js.map +1 -0
  80. package/dist/gateway/db/repositories/config-repo.d.ts +4 -5
  81. package/dist/gateway/db/repositories/config-repo.js +17 -0
  82. package/dist/gateway/db/repositories/config-repo.js.map +1 -1
  83. package/dist/gateway/db/repositories/feedback-repo.d.ts +71 -0
  84. package/dist/gateway/db/repositories/feedback-repo.js +52 -0
  85. package/dist/gateway/db/repositories/feedback-repo.js.map +1 -0
  86. package/dist/gateway/db/repositories/knowledge-doc-repo.d.ts +37 -0
  87. package/dist/gateway/db/repositories/knowledge-doc-repo.js +48 -0
  88. package/dist/gateway/db/repositories/knowledge-doc-repo.js.map +1 -0
  89. package/dist/gateway/db/repositories/user-cluster-config-repo.d.ts +45 -0
  90. package/dist/gateway/db/repositories/user-cluster-config-repo.js +90 -0
  91. package/dist/gateway/db/repositories/user-cluster-config-repo.js.map +1 -0
  92. package/dist/gateway/db/repositories/workspace-repo.d.ts +2 -2
  93. package/dist/gateway/db/repositories/workspace-repo.js +12 -12
  94. package/dist/gateway/db/repositories/workspace-repo.js.map +1 -1
  95. package/dist/gateway/db/schema-mysql.d.ts +437 -44
  96. package/dist/gateway/db/schema-mysql.js +36 -9
  97. package/dist/gateway/db/schema-mysql.js.map +1 -1
  98. package/dist/gateway/db/schema-sqlite.d.ts +459 -46
  99. package/dist/gateway/db/schema-sqlite.js +36 -9
  100. package/dist/gateway/db/schema-sqlite.js.map +1 -1
  101. package/dist/gateway/db/schema.d.ts +435 -44
  102. package/dist/gateway/db/schema.js +1 -1
  103. package/dist/gateway/db/schema.js.map +1 -1
  104. package/dist/gateway/plugins/channel-bridge.js +1 -1
  105. package/dist/gateway/plugins/channel-bridge.js.map +1 -1
  106. package/dist/gateway/rpc-methods.d.ts +2 -1
  107. package/dist/gateway/rpc-methods.js +507 -172
  108. package/dist/gateway/rpc-methods.js.map +1 -1
  109. package/dist/gateway/server.js +191 -51
  110. package/dist/gateway/server.js.map +1 -1
  111. package/dist/gateway/web/dist/assets/index-DTD0P9j8.css +1 -0
  112. package/dist/gateway/web/dist/assets/index-DhqsS2E0.js +756 -0
  113. package/dist/gateway/web/dist/assets/index-DhqsS2E0.js.map +1 -0
  114. package/dist/gateway/web/dist/index.html +2 -2
  115. package/dist/gateway-main.js +1 -3
  116. package/dist/gateway-main.js.map +1 -1
  117. package/dist/memory/indexer.d.ts +13 -0
  118. package/dist/memory/indexer.js +91 -1
  119. package/dist/memory/indexer.js.map +1 -1
  120. package/dist/memory/knowledge-extractor.d.ts +47 -0
  121. package/dist/memory/knowledge-extractor.js +165 -0
  122. package/dist/memory/knowledge-extractor.js.map +1 -0
  123. package/dist/memory/overview-generator.d.ts +16 -0
  124. package/dist/memory/overview-generator.js +233 -0
  125. package/dist/memory/overview-generator.js.map +1 -0
  126. package/dist/memory/session-summarizer.d.ts +28 -0
  127. package/dist/memory/session-summarizer.js +20 -2
  128. package/dist/memory/session-summarizer.js.map +1 -1
  129. package/dist/memory/temporal-decay.js +2 -2
  130. package/dist/memory/temporal-decay.js.map +1 -1
  131. package/dist/memory/topic-consolidator.d.ts +52 -0
  132. package/dist/memory/topic-consolidator.js +197 -0
  133. package/dist/memory/topic-consolidator.js.map +1 -0
  134. package/dist/tools/cluster-info.d.ts +9 -0
  135. package/dist/tools/cluster-info.js +74 -0
  136. package/dist/tools/cluster-info.js.map +1 -0
  137. package/dist/tools/command-sets.js +15 -5
  138. package/dist/tools/command-sets.js.map +1 -1
  139. package/dist/tools/create-skill.js +1 -1
  140. package/dist/tools/create-skill.js.map +1 -1
  141. package/dist/tools/debug-pod.d.ts +217 -0
  142. package/dist/tools/debug-pod.js +603 -0
  143. package/dist/tools/debug-pod.js.map +1 -0
  144. package/dist/tools/deep-search/engine.d.ts +0 -5
  145. package/dist/tools/deep-search/engine.js +68 -28
  146. package/dist/tools/deep-search/engine.js.map +1 -1
  147. package/dist/tools/deep-search/format.d.ts +1 -1
  148. package/dist/tools/deep-search/format.js +1 -2
  149. package/dist/tools/deep-search/format.js.map +1 -1
  150. package/dist/tools/deep-search/prompts.d.ts +4 -1
  151. package/dist/tools/deep-search/prompts.js +47 -29
  152. package/dist/tools/deep-search/prompts.js.map +1 -1
  153. package/dist/tools/deep-search/quality-gate.d.ts +25 -0
  154. package/dist/tools/deep-search/quality-gate.js +81 -0
  155. package/dist/tools/deep-search/quality-gate.js.map +1 -0
  156. package/dist/tools/deep-search/schemas.d.ts +25 -0
  157. package/dist/tools/deep-search/schemas.js +26 -1
  158. package/dist/tools/deep-search/schemas.js.map +1 -1
  159. package/dist/tools/deep-search/sre-knowledge.d.ts +6 -10
  160. package/dist/tools/deep-search/sre-knowledge.js +21 -52
  161. package/dist/tools/deep-search/sre-knowledge.js.map +1 -1
  162. package/dist/tools/deep-search/sub-agent.js +24 -8
  163. package/dist/tools/deep-search/sub-agent.js.map +1 -1
  164. package/dist/tools/deep-search/tool.js +3 -6
  165. package/dist/tools/deep-search/tool.js.map +1 -1
  166. package/dist/tools/deep-search/types.d.ts +13 -0
  167. package/dist/tools/deep-search/types.js +4 -4
  168. package/dist/tools/deep-search/types.js.map +1 -1
  169. package/dist/tools/dp-tools.d.ts +9 -6
  170. package/dist/tools/dp-tools.js +26 -55
  171. package/dist/tools/dp-tools.js.map +1 -1
  172. package/dist/tools/exec-utils.d.ts +8 -21
  173. package/dist/tools/exec-utils.js +11 -95
  174. package/dist/tools/exec-utils.js.map +1 -1
  175. package/dist/tools/fork-skill.js +1 -1
  176. package/dist/tools/fork-skill.js.map +1 -1
  177. package/dist/tools/k8s-checks.d.ts +11 -5
  178. package/dist/tools/k8s-checks.js +28 -9
  179. package/dist/tools/k8s-checks.js.map +1 -1
  180. package/dist/tools/knowledge-search.d.ts +3 -0
  181. package/dist/tools/knowledge-search.js +115 -0
  182. package/dist/tools/knowledge-search.js.map +1 -0
  183. package/dist/tools/kubeconfig-resolver.d.ts +22 -0
  184. package/dist/tools/kubeconfig-resolver.js +98 -18
  185. package/dist/tools/kubeconfig-resolver.js.map +1 -1
  186. package/dist/tools/manage-schedule.js +23 -1
  187. package/dist/tools/manage-schedule.js.map +1 -1
  188. package/dist/tools/netns-script.d.ts +1 -1
  189. package/dist/tools/netns-script.js +19 -7
  190. package/dist/tools/netns-script.js.map +1 -1
  191. package/dist/tools/node-exec.d.ts +1 -1
  192. package/dist/tools/node-exec.js +19 -7
  193. package/dist/tools/node-exec.js.map +1 -1
  194. package/dist/tools/node-script.d.ts +1 -1
  195. package/dist/tools/node-script.js +19 -7
  196. package/dist/tools/node-script.js.map +1 -1
  197. package/dist/tools/pod-exec.js +12 -1
  198. package/dist/tools/pod-exec.js.map +1 -1
  199. package/dist/tools/pod-nsenter-exec.d.ts +1 -1
  200. package/dist/tools/pod-nsenter-exec.js +19 -7
  201. package/dist/tools/pod-nsenter-exec.js.map +1 -1
  202. package/dist/tools/pod-script.js +12 -1
  203. package/dist/tools/pod-script.js.map +1 -1
  204. package/dist/tools/restricted-bash.js +10 -3
  205. package/dist/tools/restricted-bash.js.map +1 -1
  206. package/dist/tools/run-skill.js +14 -2
  207. package/dist/tools/run-skill.js.map +1 -1
  208. package/dist/tools/save-feedback.d.ts +7 -0
  209. package/dist/tools/save-feedback.js +125 -0
  210. package/dist/tools/save-feedback.js.map +1 -0
  211. package/dist/tools/update-skill.js +1 -1
  212. package/dist/tools/update-skill.js.map +1 -1
  213. package/package.json +1 -1
  214. package/skills/core/deep-investigation/SKILL.md +11 -14
  215. package/skills/core/session-feedback/SKILL.md +146 -0
@@ -23,6 +23,31 @@ export function createChecklist(question) {
23
23
  ],
24
24
  };
25
25
  }
26
+ /**
27
+ * Apply a phase number (1-4) to checklist items.
28
+ * Forward-only: items already done/skipped are not regressed.
29
+ * Phase mapping: 1→triage, 2→hypotheses, 3→deep_search, 4→conclusion
30
+ * (coupled to createChecklist() item order at indices 0-3).
31
+ */
32
+ export function applyPhaseToChecklist(items, phaseNum) {
33
+ for (let i = 0; i < items.length; i++) {
34
+ if (i < phaseNum - 1) {
35
+ if (items[i].status !== "done" && items[i].status !== "skipped") {
36
+ items[i].status = "done";
37
+ }
38
+ }
39
+ else if (i === phaseNum - 1) {
40
+ if (items[i].status !== "done" && items[i].status !== "skipped") {
41
+ items[i].status = "in_progress";
42
+ }
43
+ }
44
+ }
45
+ }
46
+ /** Parse phase number from engine phase string (e.g. "Phase 3/4" → 3). Returns 0 if unparseable. */
47
+ export function parsePhaseNum(phaseStr) {
48
+ const m = phaseStr.match(/(\d+)/);
49
+ return m ? parseInt(m[1], 10) : 0;
50
+ }
26
51
  // --- Load SKILL.md workflow (one-time, at module init) ---
27
52
  const __dirname = dirname(fileURLToPath(import.meta.url));
28
53
  let dpWorkflow = "";
@@ -43,59 +68,6 @@ export function buildActivationMessage(question) {
43
68
  return parts.join("");
44
69
  }
45
70
  // --- Tool factories (for SDK brain) ---
46
- /**
47
- * Create the manage_checklist tool.
48
- * Updates checklist item statuses. When conclusion is marked done,
49
- * automatically disables DP mode.
50
- */
51
- export function createManageChecklistTool(dpState) {
52
- return {
53
- name: "manage_checklist",
54
- label: "Manage Investigation Checklist",
55
- description: "Update checklist item status during deep investigation. " +
56
- "Supports batch updates in one call. Items: triage, hypotheses, deep_search, conclusion.",
57
- parameters: Type.Object({
58
- updates: Type.Array(Type.Object({
59
- id: Type.String({ description: "Checklist item id: triage | hypotheses | deep_search | conclusion" }),
60
- status: Type.Optional(Type.Union([
61
- Type.Literal("pending"),
62
- Type.Literal("in_progress"),
63
- Type.Literal("done"),
64
- Type.Literal("skipped"),
65
- ], { description: "New status" })),
66
- summary: Type.Optional(Type.String({ description: "Brief summary (1-2 sentences)" })),
67
- })),
68
- }),
69
- async execute(_toolCallId, params) {
70
- if (!dpState.checklist) {
71
- dpState.checklist = createChecklist("");
72
- }
73
- const { updates } = params;
74
- const results = [];
75
- for (const upd of updates) {
76
- const found = dpState.checklist.items.find((i) => i.id === upd.id);
77
- if (!found) {
78
- results.push(`update ${upd.id}: not found`);
79
- continue;
80
- }
81
- if (upd.status)
82
- found.status = upd.status;
83
- if (upd.summary)
84
- found.summary = upd.summary;
85
- results.push(`update ${upd.id}: ${upd.status ?? "ok"}`);
86
- }
87
- // Auto-cleanup when conclusion is marked done
88
- const conclusionItem = dpState.checklist.items.find((i) => i.id === "conclusion");
89
- if (conclusionItem?.status === "done") {
90
- dpState.checklist = null;
91
- }
92
- return {
93
- content: [{ type: "text", text: results.length > 0 ? results.join("; ") : "No operations specified." }],
94
- details: {},
95
- };
96
- },
97
- };
98
- }
99
71
  /**
100
72
  * Create the propose_hypotheses tool.
101
73
  * Non-blocking: shows hypotheses to user and immediately proceeds to deep_search.
@@ -163,8 +135,7 @@ export function createEndInvestigationTool(dpState) {
163
135
  name: "end_investigation",
164
136
  label: "End Investigation",
165
137
  description: "End the current deep investigation early with a single call. " +
166
- "Automatically marks ALL remaining pending phases as skipped and exits DP mode. " +
167
- "Do NOT manually skip phases via manage_checklist — use this tool instead.\n" +
138
+ "Automatically marks ALL remaining pending phases as skipped and exits DP mode.\n" +
168
139
  "Use when: 1) User confirms triage is sufficient (MUST ask first) " +
169
140
  "2) User explicitly requests to stop/terminate.",
170
141
  parameters: Type.Object({
@@ -1 +1 @@
1
- {"version":3,"file":"dp-tools.js","sourceRoot":"","sources":["../../src/tools/dp-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dp-tools.js","sourceRoot":"","sources":["../../src/tools/dp-tools.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,14 @@ export interface ExecEnv {
14
14
  * Build a sanitised child-process environment with kubeconfig resolution.
15
15
  * Sets KUBECONFIG=/dev/null to block default ~/.kube/config; passes
16
16
  * explicit --kubeconfig= via kubeconfigArgs when credentials are available.
17
+ *
18
+ * @param kubeconfigRef — credential directory reference
19
+ * @param resolvedKubeconfigPath — pre-resolved kubeconfig path (from resolveRequiredKubeconfig).
20
+ * `undefined` = auto-resolve via resolveKubeconfigPath (legacy single-cluster fallback).
21
+ * `null` = explicitly no kubeconfig (KUBECONFIG will be /dev/null).
22
+ * `string` = use this exact path.
17
23
  */
18
- export declare function prepareExecEnv(kubeconfigRef?: KubeconfigRef): ExecEnv;
24
+ export declare function prepareExecEnv(kubeconfigRef?: KubeconfigRef, resolvedKubeconfigPath?: string | null): ExecEnv;
19
25
  /**
20
26
  * Spawn a child process and collect stdout/stderr.
21
27
  * Supports timeout and AbortSignal for cancellation.
@@ -33,6 +39,7 @@ export interface ExecResult {
33
39
  stdout: string;
34
40
  stderr: string;
35
41
  exitCode: number | null;
42
+ timedOut?: boolean;
36
43
  }
37
44
  /**
38
45
  * Format an ExecResult into a standard tool result shape.
@@ -48,26 +55,6 @@ export declare function formatExecOutput(result: ExecResult): {
48
55
  error?: boolean;
49
56
  };
50
57
  };
51
- export interface DebugPodSpec {
52
- nodeName: string;
53
- /** Full command array for the container (including nsenter if needed). */
54
- command: string[];
55
- image?: string;
56
- }
57
- /**
58
- * Run a command inside a privileged debug pod on a specific node.
59
- *
60
- * Manages the full 5-phase lifecycle:
61
- * 1. Create pod (kubectl run)
62
- * 2. Wait for terminal phase (Succeeded / Failed)
63
- * 3. Fetch logs
64
- * 4. Get exit code
65
- * 5. Cleanup (delete pod)
66
- */
67
- export declare function runInDebugPod(spec: DebugPodSpec, env: ExecEnv, opts: {
68
- timeoutMs: number;
69
- signal?: AbortSignal;
70
- }): Promise<ExecResult>;
71
58
  /**
72
59
  * Resolve the network namespace of a container inside a pod.
73
60
  * Returns the node name and container ID needed to construct nsenter commands.
@@ -5,12 +5,10 @@
5
5
  * debug pod lifecycle, container netns resolution, and output formatting.
6
6
  */
7
7
  import { spawn } from "node:child_process";
8
- import { randomBytes } from "node:crypto";
9
8
  import { resolveKubeconfigPath } from "./kubeconfig-resolver.js";
10
9
  import { sanitizeEnv } from "./sanitize-env.js";
11
10
  import { processToolOutput } from "./tool-render.js";
12
- import { checkNodeReady, waitForPodDone } from "./k8s-checks.js";
13
- import { loadConfig } from "../core/config.js";
11
+ import { checkNodeReady } from "./k8s-checks.js";
14
12
  // ── Name validators ──────────────────────────────────────────────────
15
13
  /** Valid node name: RFC 1123 — alphanumeric, hyphens, dots. */
16
14
  export const NODE_NAME_RE = /^[a-zA-Z0-9][a-zA-Z0-9.\-]*$/;
@@ -38,9 +36,17 @@ export function validatePodName(pod) {
38
36
  * Build a sanitised child-process environment with kubeconfig resolution.
39
37
  * Sets KUBECONFIG=/dev/null to block default ~/.kube/config; passes
40
38
  * explicit --kubeconfig= via kubeconfigArgs when credentials are available.
39
+ *
40
+ * @param kubeconfigRef — credential directory reference
41
+ * @param resolvedKubeconfigPath — pre-resolved kubeconfig path (from resolveRequiredKubeconfig).
42
+ * `undefined` = auto-resolve via resolveKubeconfigPath (legacy single-cluster fallback).
43
+ * `null` = explicitly no kubeconfig (KUBECONFIG will be /dev/null).
44
+ * `string` = use this exact path.
41
45
  */
42
- export function prepareExecEnv(kubeconfigRef) {
43
- const kubeconfigPath = resolveKubeconfigPath(kubeconfigRef?.credentialsDir);
46
+ export function prepareExecEnv(kubeconfigRef, resolvedKubeconfigPath) {
47
+ const kubeconfigPath = resolvedKubeconfigPath !== undefined
48
+ ? resolvedKubeconfigPath
49
+ : resolveKubeconfigPath(kubeconfigRef?.credentialsDir);
44
50
  return {
45
51
  childEnv: {
46
52
  ...sanitizeEnv(process.env),
@@ -125,96 +131,6 @@ export function formatExecOutput(result) {
125
131
  };
126
132
  }
127
133
  }
128
- /**
129
- * Run a command inside a privileged debug pod on a specific node.
130
- *
131
- * Manages the full 5-phase lifecycle:
132
- * 1. Create pod (kubectl run)
133
- * 2. Wait for terminal phase (Succeeded / Failed)
134
- * 3. Fetch logs
135
- * 4. Get exit code
136
- * 5. Cleanup (delete pod)
137
- */
138
- export async function runInDebugPod(spec, env, opts) {
139
- const image = spec.image || loadConfig().debugImage;
140
- const podId = randomBytes(4).toString("hex");
141
- const podName = `node-debug-${podId}`;
142
- const cleanup = () => {
143
- spawnAsync("kubectl", [...env.kubeconfigArgs, "delete", "pod", podName, "--force", "--grace-period=0"], 10_000, env.childEnv).catch(() => { });
144
- };
145
- const overrides = JSON.stringify({
146
- spec: {
147
- nodeName: spec.nodeName,
148
- hostPID: true,
149
- hostNetwork: true,
150
- containers: [{
151
- name: podName,
152
- image,
153
- securityContext: { privileged: true },
154
- command: spec.command,
155
- }],
156
- restartPolicy: "Never",
157
- },
158
- });
159
- try {
160
- // Phase 1: Create pod
161
- await spawnAsync("kubectl", [
162
- ...env.kubeconfigArgs,
163
- "run", podName,
164
- "--restart=Never",
165
- `--image=${image}`,
166
- `--overrides=${overrides}`,
167
- ], 30_000, env.childEnv, opts.signal);
168
- // Phase 2: Wait for pod to reach terminal phase (Succeeded or Failed)
169
- try {
170
- await waitForPodDone(podName, opts.timeoutMs, env.childEnv, opts.signal, env.kubeconfigPath ?? undefined);
171
- }
172
- catch {
173
- // Timed out — still fetch logs before cleanup
174
- }
175
- if (opts.signal?.aborted) {
176
- cleanup();
177
- return { stdout: "", stderr: "Aborted.", exitCode: null };
178
- }
179
- // Phase 3: Fetch logs
180
- let stdout = "";
181
- let stderr = "";
182
- try {
183
- const logsResult = await spawnAsync("kubectl", [...env.kubeconfigArgs, "logs", podName], 10_000, env.childEnv);
184
- stdout = logsResult.stdout;
185
- stderr = logsResult.stderr;
186
- }
187
- catch (logErr) {
188
- stdout = logErr.stdout ?? "";
189
- stderr = logErr.stderr ?? "";
190
- }
191
- // Phase 4: Get exit code from pod status
192
- let exitCode = null;
193
- try {
194
- const statusResult = await spawnAsync("kubectl", [
195
- ...env.kubeconfigArgs, "get", "pod", podName,
196
- "-o", "jsonpath={.status.containerStatuses[0].state.terminated.exitCode}",
197
- ], 5_000, env.childEnv);
198
- const code = parseInt(statusResult.stdout.trim(), 10);
199
- if (!isNaN(code))
200
- exitCode = code;
201
- }
202
- catch {
203
- // ignore — exitCode stays null
204
- }
205
- // Phase 5: Cleanup
206
- cleanup();
207
- return { stdout, stderr, exitCode };
208
- }
209
- catch (err) {
210
- cleanup();
211
- return {
212
- stdout: err.stdout?.trim() ?? "",
213
- stderr: err.stderr?.trim() ?? err.message,
214
- exitCode: typeof err.code === "number" ? err.code : null,
215
- };
216
- }
217
- }
218
134
  // ── Container netns resolution ───────────────────────────────────────
219
135
  /**
220
136
  * Resolve the network namespace of a container inside a pod.
@@ -1 +1 @@
1
- {"version":3,"file":"exec-utils.js","sourceRoot":"","sources":["../../src/tools/exec-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exec-utils.js","sourceRoot":"","sources":["../../src/tools/exec-utils.ts"],"names":[],"mappings":"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"}
@@ -88,7 +88,7 @@ Examples:
88
88
  scripts: params.scripts?.map((s) => ({
89
89
  name: s.name,
90
90
  content: s.content,
91
- })) || [],
91
+ })),
92
92
  labels: labels && labels.length > 0 ? labels : undefined,
93
93
  },
94
94
  summary: hasModifications
@@ -1 +1 @@
1
- {"version":3,"file":"fork-skill.js","sourceRoot":"","sources":["../../src/tools/fork-skill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fork-skill.js","sourceRoot":"","sources":["../../src/tools/fork-skill.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,19 @@
4
4
  */
5
5
  export declare function checkNodeReady(node: string, env?: NodeJS.ProcessEnv, kubeconfigPath?: string): Promise<string | null>;
6
6
  /**
7
- * Poll a pod until it reaches a terminal phase (Succeeded or Failed).
8
- * Returns the final phase string, or throws on timeout / kubectl errors.
7
+ * Poll a pod until it reaches a target phase.
8
+ * Returns the matched phase string, or throws on timeout / abort.
9
9
  *
10
- * This replaces `kubectl wait --for=jsonpath={.status.phase}=Succeeded`
11
- * which hangs indefinitely when the pod fails (phase=Failed never matches).
10
+ * When `targetPhase` is `"Running"`: returns as soon as the pod reaches
11
+ * Running (or any terminal phase, to avoid hanging on immediate failure).
12
+ * When `targetPhase` is `"terminal"` or omitted: waits for Succeeded/Failed
13
+ * (original behavior).
14
+ *
15
+ * Uses adaptive backoff polling: starts at 500ms and increases by 1.5x
16
+ * each iteration up to a 5s cap — reduces cold-start latency while
17
+ * avoiding tight loops on long-running pods.
12
18
  */
13
- export declare function waitForPodDone(podName: string, timeoutMs: number, env?: NodeJS.ProcessEnv, signal?: AbortSignal, kubeconfigPath?: string): Promise<string>;
19
+ export declare function waitForPodDone(podName: string, timeoutMs: number, env?: NodeJS.ProcessEnv, signal?: AbortSignal, kubeconfigPath?: string, namespace?: string, targetPhase?: "Running" | "terminal"): Promise<string>;
14
20
  /**
15
21
  * Check that a Kubernetes pod exists and is in Running phase.
16
22
  * Returns an error message string on failure, or null if the pod is running.
@@ -36,15 +36,25 @@ export async function checkNodeReady(node, env, kubeconfigPath) {
36
36
  }
37
37
  /** Terminal pod phases — once a pod reaches one of these, it won't change. */
38
38
  const TERMINAL_PHASES = new Set(["Succeeded", "Failed"]);
39
+ /** Adaptive polling constants — start fast (500ms) and back off to 5s cap. */
40
+ const POLL_INITIAL_MS = 500;
41
+ const POLL_MAX_MS = 5_000;
42
+ const POLL_BACKOFF_FACTOR = 1.5;
39
43
  /**
40
- * Poll a pod until it reaches a terminal phase (Succeeded or Failed).
41
- * Returns the final phase string, or throws on timeout / kubectl errors.
44
+ * Poll a pod until it reaches a target phase.
45
+ * Returns the matched phase string, or throws on timeout / abort.
42
46
  *
43
- * This replaces `kubectl wait --for=jsonpath={.status.phase}=Succeeded`
44
- * which hangs indefinitely when the pod fails (phase=Failed never matches).
47
+ * When `targetPhase` is `"Running"`: returns as soon as the pod reaches
48
+ * Running (or any terminal phase, to avoid hanging on immediate failure).
49
+ * When `targetPhase` is `"terminal"` or omitted: waits for Succeeded/Failed
50
+ * (original behavior).
51
+ *
52
+ * Uses adaptive backoff polling: starts at 500ms and increases by 1.5x
53
+ * each iteration up to a 5s cap — reduces cold-start latency while
54
+ * avoiding tight loops on long-running pods.
45
55
  */
46
- export async function waitForPodDone(podName, timeoutMs, env, signal, kubeconfigPath) {
47
- const pollInterval = 2_000;
56
+ export async function waitForPodDone(podName, timeoutMs, env, signal, kubeconfigPath, namespace, targetPhase) {
57
+ let pollInterval = POLL_INITIAL_MS;
48
58
  const deadline = Date.now() + timeoutMs;
49
59
  while (Date.now() < deadline) {
50
60
  if (signal?.aborted)
@@ -52,11 +62,19 @@ export async function waitForPodDone(podName, timeoutMs, env, signal, kubeconfig
52
62
  try {
53
63
  const { stdout } = await execFileAsync("kubectl", [
54
64
  ...(kubeconfigPath ? [`--kubeconfig=${kubeconfigPath}`] : []),
55
- "get", "pod", podName, "-o", "jsonpath={.status.phase}",
65
+ "get", "pod", podName,
66
+ ...(namespace ? ["-n", namespace] : []),
67
+ "-o", "jsonpath={.status.phase}",
56
68
  ], { timeout: KUBECTL_TIMEOUT, env });
57
69
  const phase = stdout.trim();
58
- if (TERMINAL_PHASES.has(phase))
59
- return phase;
70
+ if (targetPhase === "Running") {
71
+ if (phase === "Running" || TERMINAL_PHASES.has(phase))
72
+ return phase;
73
+ }
74
+ else {
75
+ if (TERMINAL_PHASES.has(phase))
76
+ return phase;
77
+ }
60
78
  }
61
79
  catch {
62
80
  // kubectl transient error — keep polling
@@ -69,6 +87,7 @@ export async function waitForPodDone(podName, timeoutMs, env, signal, kubeconfig
69
87
  signal.addEventListener("abort", onAbort, { once: true });
70
88
  }
71
89
  });
90
+ pollInterval = Math.min(pollInterval * POLL_BACKOFF_FACTOR, POLL_MAX_MS);
72
91
  }
73
92
  throw new Error(`Timed out waiting for pod "${podName}" to complete`);
74
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"k8s-checks.js","sourceRoot":"","sources":["../../src/tools/k8s-checks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"k8s-checks.js","sourceRoot":"","sources":["../../src/tools/k8s-checks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from "@mariozechner/pi-coding-agent";
2
+ import type { MemoryIndexer } from "../memory/index.js";
3
+ export declare function createKnowledgeSearchTool(indexer?: MemoryIndexer): ToolDefinition;
@@ -0,0 +1,115 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ import { Text } from "@mariozechner/pi-tui";
3
+ import { renderTextResult } from "./tool-render.js";
4
+ /** Truncate string without splitting UTF-16 surrogate pairs */
5
+ function truncateUtf16Safe(str, maxLen) {
6
+ if (str.length <= maxLen)
7
+ return str;
8
+ const code = str.charCodeAt(maxLen - 1);
9
+ const end = code >= 0xd800 && code <= 0xdbff ? maxLen - 1 : maxLen;
10
+ return str.slice(0, end);
11
+ }
12
+ export function createKnowledgeSearchTool(indexer) {
13
+ // Cache GatewayClient in K8s mode to avoid re-reading TLS certs on every call
14
+ let cachedClient;
15
+ return {
16
+ name: "knowledge_search",
17
+ label: "Knowledge Search",
18
+ renderCall(args, theme) {
19
+ return new Text(theme.fg("toolTitle", theme.bold("knowledge_search")) +
20
+ " " + theme.fg("accent", args?.query || ""), 0, 0);
21
+ },
22
+ renderResult: renderTextResult,
23
+ description: `Search the team knowledge base for internal documentation, runbooks, architecture guides, and infrastructure reference.
24
+ Use this tool when the user asks about internal procedures, known configurations, or team-specific documentation.
25
+
26
+ Parameters:
27
+ - query: Natural language search query
28
+ - topK: Max results to return (default: 5)
29
+ - minScore: Minimum relevance score threshold (default: 0.35)
30
+
31
+ Returns matching document chunks with file path, heading context, content snippet, and relevance score.`,
32
+ parameters: Type.Object({
33
+ query: Type.String({ description: "Natural language search query" }),
34
+ topK: Type.Optional(Type.Number({ description: "Max results (default: 5)" })),
35
+ minScore: Type.Optional(Type.Number({ description: "Minimum score threshold (default: 0.35)" })),
36
+ }),
37
+ async execute(_toolCallId, rawParams) {
38
+ const params = rawParams;
39
+ const query = params.query?.trim();
40
+ if (!query) {
41
+ return {
42
+ content: [{ type: "text", text: JSON.stringify({ error: "Empty query" }) }],
43
+ details: {},
44
+ };
45
+ }
46
+ // Clamp topK to prevent context window abuse
47
+ const topK = Math.min(params.topK ?? 5, 20);
48
+ const minScore = params.minScore ?? 0.35;
49
+ try {
50
+ let result;
51
+ if (indexer) {
52
+ // Local mode: use indexer directly
53
+ result = await indexer.search(query, topK, minScore);
54
+ }
55
+ else if (process.env.SICLAW_GATEWAY_URL) {
56
+ // K8s mode: call Gateway internal API (client cached across calls)
57
+ if (!cachedClient) {
58
+ const { GatewayClient } = await import("../agentbox/gateway-client.js");
59
+ cachedClient = new GatewayClient({ gatewayUrl: process.env.SICLAW_GATEWAY_URL });
60
+ }
61
+ result = await cachedClient.searchKnowledge(query, topK, minScore);
62
+ }
63
+ else {
64
+ return {
65
+ content: [{ type: "text", text: JSON.stringify({
66
+ error: "Knowledge base is not available. Embedding config may not be set up.",
67
+ }) }],
68
+ details: {},
69
+ };
70
+ }
71
+ if (result.chunks.length === 0) {
72
+ return {
73
+ content: [{
74
+ type: "text",
75
+ text: JSON.stringify({
76
+ results: [],
77
+ message: "No matching knowledge base documents found.",
78
+ totalFiles: result.totalFiles,
79
+ totalChunks: result.totalChunks,
80
+ }, null, 2),
81
+ }],
82
+ details: {},
83
+ };
84
+ }
85
+ const formatted = result.chunks.map((c, i) => ({
86
+ rank: i + 1,
87
+ file: c.file,
88
+ heading: c.heading,
89
+ score: Math.round((c.score ?? 0) * 1000) / 1000,
90
+ content: truncateUtf16Safe(c.content, 500),
91
+ }));
92
+ return {
93
+ content: [{
94
+ type: "text",
95
+ text: JSON.stringify({
96
+ results: formatted,
97
+ totalFiles: result.totalFiles,
98
+ totalChunks: result.totalChunks,
99
+ }, null, 2),
100
+ }],
101
+ details: {},
102
+ };
103
+ }
104
+ catch (err) {
105
+ const message = err instanceof Error ? err.message : String(err);
106
+ console.error("[knowledge_search] Search failed:", err);
107
+ return {
108
+ content: [{ type: "text", text: JSON.stringify({ error: message }) }],
109
+ details: {},
110
+ };
111
+ }
112
+ },
113
+ };
114
+ }
115
+ //# sourceMappingURL=knowledge-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-search.js","sourceRoot":"","sources":["../../src/tools/knowledge-search.ts"],"names":[],"mappings":"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"}
@@ -9,3 +9,25 @@ export declare function resolveKubeconfigPath(credentialsDir?: string): string |
9
9
  * Returns null if no match found.
10
10
  */
11
11
  export declare function resolveKubeconfigByName(credentialsDir: string, name: string): string | null;
12
+ /**
13
+ * Resolve kubeconfig with mandatory selection when multiple clusters exist.
14
+ *
15
+ * - 0 kubeconfigs → { path: null }
16
+ * - 1 kubeconfig, no name → auto-select
17
+ * - 1 kubeconfig, name given → resolve by name (error if mismatch)
18
+ * - >1 kubeconfigs, no name → error (ambiguous)
19
+ * - >1 kubeconfigs, name given → resolve by name (error if not found)
20
+ */
21
+ export declare function resolveRequiredKubeconfig(credentialsDir: string | undefined, name: string | undefined): {
22
+ path: string | null;
23
+ } | {
24
+ error: string;
25
+ availableNames?: string[];
26
+ };
27
+ /**
28
+ * Resolve the debug image for a specific kubeconfig credential.
29
+ * Returns the per-cluster debugImage from manifest metadata, or null if not set.
30
+ *
31
+ * When name is undefined and there's exactly one kubeconfig, auto-selects it.
32
+ */
33
+ export declare function resolveDebugImage(credentialsDir: string | undefined, name: string | undefined): string | null;