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.
- package/dist/agentbox/gateway-client.d.ts +4 -0
- package/dist/agentbox/gateway-client.js +9 -1
- package/dist/agentbox/gateway-client.js.map +1 -1
- package/dist/agentbox/http-server.js +25 -1
- package/dist/agentbox/http-server.js.map +1 -1
- package/dist/agentbox/session.d.ts +2 -0
- package/dist/agentbox/session.js +11 -7
- package/dist/agentbox/session.js.map +1 -1
- package/dist/agentbox-main.js +10 -0
- package/dist/agentbox-main.js.map +1 -1
- package/dist/cli-main.js +19 -3
- package/dist/cli-main.js.map +1 -1
- package/dist/core/agent-factory.d.ts +2 -0
- package/dist/core/agent-factory.js +87 -21
- package/dist/core/agent-factory.js.map +1 -1
- package/dist/core/compaction.d.ts +80 -0
- package/dist/core/compaction.js +442 -0
- package/dist/core/compaction.js.map +1 -0
- package/dist/core/config.d.ts +7 -0
- package/dist/core/config.js +27 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/extensions/compaction-safeguard.d.ts +2 -0
- package/dist/core/extensions/compaction-safeguard.js +681 -0
- package/dist/core/extensions/compaction-safeguard.js.map +1 -0
- package/dist/core/extensions/deep-investigation.js +47 -73
- package/dist/core/extensions/deep-investigation.js.map +1 -1
- package/dist/core/extensions/memory-flush.d.ts +2 -10
- package/dist/core/extensions/memory-flush.js +4 -86
- package/dist/core/extensions/memory-flush.js.map +1 -1
- package/dist/core/llm-proxy.js +25 -6
- package/dist/core/llm-proxy.js.map +1 -1
- package/dist/core/message-utils.d.ts +18 -0
- package/dist/core/message-utils.js +28 -0
- package/dist/core/message-utils.js.map +1 -0
- package/dist/core/prompt.js +4 -5
- package/dist/core/prompt.js.map +1 -1
- package/dist/core/session-tool-result-guard.d.ts +2 -0
- package/dist/core/session-tool-result-guard.js +159 -0
- package/dist/core/session-tool-result-guard.js.map +1 -0
- package/dist/core/stream-wrappers.d.ts +41 -0
- package/dist/core/stream-wrappers.js +369 -0
- package/dist/core/stream-wrappers.js.map +1 -0
- package/dist/core/thinking-blocks.d.ts +20 -0
- package/dist/core/thinking-blocks.js +45 -0
- package/dist/core/thinking-blocks.js.map +1 -0
- package/dist/core/tool-call-id.d.ts +22 -0
- package/dist/core/tool-call-id.js +226 -0
- package/dist/core/tool-call-id.js.map +1 -0
- package/dist/core/tool-call-repair.d.ts +18 -0
- package/dist/core/tool-call-repair.js +73 -0
- package/dist/core/tool-call-repair.js.map +1 -0
- package/dist/core/tool-result-context-guard.d.ts +36 -0
- package/dist/core/tool-result-context-guard.js +272 -0
- package/dist/core/tool-result-context-guard.js.map +1 -0
- package/dist/cron/cron-limits.d.ts +16 -0
- package/dist/cron/cron-limits.js +17 -0
- package/dist/cron/cron-limits.js.map +1 -0
- package/dist/cron/cron-matcher.d.ts +14 -0
- package/dist/cron/cron-matcher.js +29 -0
- package/dist/cron/cron-matcher.js.map +1 -1
- package/dist/gateway/agentbox/client.d.ts +0 -2
- package/dist/gateway/agentbox/client.js.map +1 -1
- package/dist/gateway/agentbox/k8s-spawner.d.ts +10 -10
- package/dist/gateway/agentbox/k8s-spawner.js +27 -55
- package/dist/gateway/agentbox/k8s-spawner.js.map +1 -1
- package/dist/gateway/agentbox/local-spawner.d.ts +5 -0
- package/dist/gateway/agentbox/local-spawner.js +10 -0
- package/dist/gateway/agentbox/local-spawner.js.map +1 -1
- package/dist/gateway/cron/cron-service.js +7 -0
- package/dist/gateway/cron/cron-service.js.map +1 -1
- package/dist/gateway/db/index.js +9 -1
- package/dist/gateway/db/index.js.map +1 -1
- package/dist/gateway/db/init-schema.js +65 -16
- package/dist/gateway/db/init-schema.js.map +1 -1
- package/dist/gateway/db/migrate-sqlite.js +73 -20
- package/dist/gateway/db/migrate-sqlite.js.map +1 -1
- package/dist/gateway/db/repositories/cluster-repo.d.ts +59 -0
- package/dist/gateway/db/repositories/cluster-repo.js +107 -0
- package/dist/gateway/db/repositories/cluster-repo.js.map +1 -0
- package/dist/gateway/db/repositories/config-repo.d.ts +4 -5
- package/dist/gateway/db/repositories/config-repo.js +17 -0
- package/dist/gateway/db/repositories/config-repo.js.map +1 -1
- package/dist/gateway/db/repositories/feedback-repo.d.ts +71 -0
- package/dist/gateway/db/repositories/feedback-repo.js +52 -0
- package/dist/gateway/db/repositories/feedback-repo.js.map +1 -0
- package/dist/gateway/db/repositories/knowledge-doc-repo.d.ts +37 -0
- package/dist/gateway/db/repositories/knowledge-doc-repo.js +48 -0
- package/dist/gateway/db/repositories/knowledge-doc-repo.js.map +1 -0
- package/dist/gateway/db/repositories/user-cluster-config-repo.d.ts +45 -0
- package/dist/gateway/db/repositories/user-cluster-config-repo.js +90 -0
- package/dist/gateway/db/repositories/user-cluster-config-repo.js.map +1 -0
- package/dist/gateway/db/repositories/workspace-repo.d.ts +2 -2
- package/dist/gateway/db/repositories/workspace-repo.js +12 -12
- package/dist/gateway/db/repositories/workspace-repo.js.map +1 -1
- package/dist/gateway/db/schema-mysql.d.ts +437 -44
- package/dist/gateway/db/schema-mysql.js +36 -9
- package/dist/gateway/db/schema-mysql.js.map +1 -1
- package/dist/gateway/db/schema-sqlite.d.ts +459 -46
- package/dist/gateway/db/schema-sqlite.js +36 -9
- package/dist/gateway/db/schema-sqlite.js.map +1 -1
- package/dist/gateway/db/schema.d.ts +435 -44
- package/dist/gateway/db/schema.js +1 -1
- package/dist/gateway/db/schema.js.map +1 -1
- package/dist/gateway/plugins/channel-bridge.js +1 -1
- package/dist/gateway/plugins/channel-bridge.js.map +1 -1
- package/dist/gateway/rpc-methods.d.ts +2 -1
- package/dist/gateway/rpc-methods.js +507 -172
- package/dist/gateway/rpc-methods.js.map +1 -1
- package/dist/gateway/server.js +191 -51
- package/dist/gateway/server.js.map +1 -1
- package/dist/gateway/web/dist/assets/index-DTD0P9j8.css +1 -0
- package/dist/gateway/web/dist/assets/index-DhqsS2E0.js +756 -0
- package/dist/gateway/web/dist/assets/index-DhqsS2E0.js.map +1 -0
- package/dist/gateway/web/dist/index.html +2 -2
- package/dist/gateway-main.js +1 -3
- package/dist/gateway-main.js.map +1 -1
- package/dist/memory/indexer.d.ts +13 -0
- package/dist/memory/indexer.js +91 -1
- package/dist/memory/indexer.js.map +1 -1
- package/dist/memory/knowledge-extractor.d.ts +47 -0
- package/dist/memory/knowledge-extractor.js +165 -0
- package/dist/memory/knowledge-extractor.js.map +1 -0
- package/dist/memory/overview-generator.d.ts +16 -0
- package/dist/memory/overview-generator.js +233 -0
- package/dist/memory/overview-generator.js.map +1 -0
- package/dist/memory/session-summarizer.d.ts +28 -0
- package/dist/memory/session-summarizer.js +20 -2
- package/dist/memory/session-summarizer.js.map +1 -1
- package/dist/memory/temporal-decay.js +2 -2
- package/dist/memory/temporal-decay.js.map +1 -1
- package/dist/memory/topic-consolidator.d.ts +52 -0
- package/dist/memory/topic-consolidator.js +197 -0
- package/dist/memory/topic-consolidator.js.map +1 -0
- package/dist/tools/cluster-info.d.ts +9 -0
- package/dist/tools/cluster-info.js +74 -0
- package/dist/tools/cluster-info.js.map +1 -0
- package/dist/tools/command-sets.js +15 -5
- package/dist/tools/command-sets.js.map +1 -1
- package/dist/tools/create-skill.js +1 -1
- package/dist/tools/create-skill.js.map +1 -1
- package/dist/tools/debug-pod.d.ts +217 -0
- package/dist/tools/debug-pod.js +603 -0
- package/dist/tools/debug-pod.js.map +1 -0
- package/dist/tools/deep-search/engine.d.ts +0 -5
- package/dist/tools/deep-search/engine.js +68 -28
- package/dist/tools/deep-search/engine.js.map +1 -1
- package/dist/tools/deep-search/format.d.ts +1 -1
- package/dist/tools/deep-search/format.js +1 -2
- package/dist/tools/deep-search/format.js.map +1 -1
- package/dist/tools/deep-search/prompts.d.ts +4 -1
- package/dist/tools/deep-search/prompts.js +47 -29
- package/dist/tools/deep-search/prompts.js.map +1 -1
- package/dist/tools/deep-search/quality-gate.d.ts +25 -0
- package/dist/tools/deep-search/quality-gate.js +81 -0
- package/dist/tools/deep-search/quality-gate.js.map +1 -0
- package/dist/tools/deep-search/schemas.d.ts +25 -0
- package/dist/tools/deep-search/schemas.js +26 -1
- package/dist/tools/deep-search/schemas.js.map +1 -1
- package/dist/tools/deep-search/sre-knowledge.d.ts +6 -10
- package/dist/tools/deep-search/sre-knowledge.js +21 -52
- package/dist/tools/deep-search/sre-knowledge.js.map +1 -1
- package/dist/tools/deep-search/sub-agent.js +24 -8
- package/dist/tools/deep-search/sub-agent.js.map +1 -1
- package/dist/tools/deep-search/tool.js +3 -6
- package/dist/tools/deep-search/tool.js.map +1 -1
- package/dist/tools/deep-search/types.d.ts +13 -0
- package/dist/tools/deep-search/types.js +4 -4
- package/dist/tools/deep-search/types.js.map +1 -1
- package/dist/tools/dp-tools.d.ts +9 -6
- package/dist/tools/dp-tools.js +26 -55
- package/dist/tools/dp-tools.js.map +1 -1
- package/dist/tools/exec-utils.d.ts +8 -21
- package/dist/tools/exec-utils.js +11 -95
- package/dist/tools/exec-utils.js.map +1 -1
- package/dist/tools/fork-skill.js +1 -1
- package/dist/tools/fork-skill.js.map +1 -1
- package/dist/tools/k8s-checks.d.ts +11 -5
- package/dist/tools/k8s-checks.js +28 -9
- package/dist/tools/k8s-checks.js.map +1 -1
- package/dist/tools/knowledge-search.d.ts +3 -0
- package/dist/tools/knowledge-search.js +115 -0
- package/dist/tools/knowledge-search.js.map +1 -0
- package/dist/tools/kubeconfig-resolver.d.ts +22 -0
- package/dist/tools/kubeconfig-resolver.js +98 -18
- package/dist/tools/kubeconfig-resolver.js.map +1 -1
- package/dist/tools/manage-schedule.js +23 -1
- package/dist/tools/manage-schedule.js.map +1 -1
- package/dist/tools/netns-script.d.ts +1 -1
- package/dist/tools/netns-script.js +19 -7
- package/dist/tools/netns-script.js.map +1 -1
- package/dist/tools/node-exec.d.ts +1 -1
- package/dist/tools/node-exec.js +19 -7
- package/dist/tools/node-exec.js.map +1 -1
- package/dist/tools/node-script.d.ts +1 -1
- package/dist/tools/node-script.js +19 -7
- package/dist/tools/node-script.js.map +1 -1
- package/dist/tools/pod-exec.js +12 -1
- package/dist/tools/pod-exec.js.map +1 -1
- package/dist/tools/pod-nsenter-exec.d.ts +1 -1
- package/dist/tools/pod-nsenter-exec.js +19 -7
- package/dist/tools/pod-nsenter-exec.js.map +1 -1
- package/dist/tools/pod-script.js +12 -1
- package/dist/tools/pod-script.js.map +1 -1
- package/dist/tools/restricted-bash.js +10 -3
- package/dist/tools/restricted-bash.js.map +1 -1
- package/dist/tools/run-skill.js +14 -2
- package/dist/tools/run-skill.js.map +1 -1
- package/dist/tools/save-feedback.d.ts +7 -0
- package/dist/tools/save-feedback.js +125 -0
- package/dist/tools/save-feedback.js.map +1 -0
- package/dist/tools/update-skill.js +1 -1
- package/dist/tools/update-skill.js.map +1 -1
- package/package.json +1 -1
- package/skills/core/deep-investigation/SKILL.md +11 -14
- package/skills/core/session-feedback/SKILL.md +146 -0
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
import { estimateTokens, generateSummary } from "@mariozechner/pi-coding-agent";
|
|
2
|
+
import { extractToolCallsFromAssistant, extractToolResultId } from "./message-utils.js";
|
|
3
|
+
export { extractToolCallsFromAssistant, extractToolResultId };
|
|
4
|
+
// ── Constants ────────────────────────────────────────────────────────────
|
|
5
|
+
export const BASE_CHUNK_RATIO = 0.4;
|
|
6
|
+
export const MIN_CHUNK_RATIO = 0.15;
|
|
7
|
+
export const SAFETY_MARGIN = 1.2; // 20% buffer for estimateTokens() inaccuracy
|
|
8
|
+
const DEFAULT_SUMMARY_FALLBACK = "No prior history.";
|
|
9
|
+
const DEFAULT_PARTS = 2;
|
|
10
|
+
/**
|
|
11
|
+
* Default context window size when model metadata is unavailable.
|
|
12
|
+
* Conservative fallback matching Anthropic's standard context windows.
|
|
13
|
+
*/
|
|
14
|
+
const DEFAULT_CONTEXT_TOKENS = 200_000;
|
|
15
|
+
// Overhead reserved for summarization prompt, system prompt, previous summary,
|
|
16
|
+
// and serialization wrappers (<conversation> tags, instructions, etc.).
|
|
17
|
+
// generateSummary uses reasoning: "high" which also consumes context budget.
|
|
18
|
+
export const SUMMARIZATION_OVERHEAD_TOKENS = 4096;
|
|
19
|
+
const MERGE_SUMMARIES_INSTRUCTIONS = [
|
|
20
|
+
"Merge these partial summaries into a single cohesive summary.",
|
|
21
|
+
"",
|
|
22
|
+
"MUST PRESERVE:",
|
|
23
|
+
"- Active tasks and their current status (in-progress, blocked, pending)",
|
|
24
|
+
"- Batch operation progress (e.g., '5/17 items completed')",
|
|
25
|
+
"- The last thing the user requested and what was being done about it",
|
|
26
|
+
"- Decisions made and their rationale",
|
|
27
|
+
"- TODOs, open questions, and constraints",
|
|
28
|
+
"- Any commitments or follow-ups promised",
|
|
29
|
+
"",
|
|
30
|
+
"PRIORITIZE recent context over older history. The agent needs to know",
|
|
31
|
+
"what it was doing, not just what was discussed.",
|
|
32
|
+
].join("\n");
|
|
33
|
+
/** Sentinel heading used to detect structured compaction instructions. */
|
|
34
|
+
export const EXACT_IDENTIFIERS_HEADING = "## Exact identifiers";
|
|
35
|
+
export const IDENTIFIER_PRESERVATION_INSTRUCTIONS = "Preserve all opaque identifiers exactly as written (no shortening or reconstruction), " +
|
|
36
|
+
"including UUIDs, hashes, IDs, tokens, API keys, hostnames, IPs, ports, URLs, and file names.";
|
|
37
|
+
// ── Security helpers (local, not from SDK) ───────────────────────────────
|
|
38
|
+
/**
|
|
39
|
+
* Remove `.details` from toolResult messages.
|
|
40
|
+
* SECURITY: toolResult.details can contain untrusted/verbose payloads;
|
|
41
|
+
* never include in LLM-facing compaction.
|
|
42
|
+
*/
|
|
43
|
+
export function stripToolResultDetails(messages) {
|
|
44
|
+
let touched = false;
|
|
45
|
+
const out = [];
|
|
46
|
+
for (const msg of messages) {
|
|
47
|
+
if (!msg || typeof msg !== "object" || msg.role !== "toolResult") {
|
|
48
|
+
out.push(msg);
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (!("details" in msg)) {
|
|
52
|
+
out.push(msg);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const sanitized = { ...msg };
|
|
56
|
+
delete sanitized.details;
|
|
57
|
+
touched = true;
|
|
58
|
+
out.push(sanitized);
|
|
59
|
+
}
|
|
60
|
+
return touched ? out : messages;
|
|
61
|
+
}
|
|
62
|
+
// ToolCallLike, extractToolCallsFromAssistant, extractToolResultId
|
|
63
|
+
// are now in message-utils.ts and re-exported above for backward compatibility.
|
|
64
|
+
function makeMissingToolResult(params) {
|
|
65
|
+
return {
|
|
66
|
+
role: "toolResult",
|
|
67
|
+
toolCallId: params.toolCallId,
|
|
68
|
+
toolName: params.toolName ?? "unknown",
|
|
69
|
+
content: [
|
|
70
|
+
{
|
|
71
|
+
type: "text",
|
|
72
|
+
text: "[siclaw] missing tool result in session history; inserted synthetic error result for transcript repair.",
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
isError: true,
|
|
76
|
+
timestamp: Date.now(),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Fix orphaned tool_results after dropping messages.
|
|
81
|
+
*
|
|
82
|
+
* Anthropic rejects transcripts where tool_results appear without a matching
|
|
83
|
+
* tool_use in an assistant message. This repairs pairings by:
|
|
84
|
+
* - Moving matching toolResult messages directly after their assistant toolCall turn
|
|
85
|
+
* - Inserting synthetic error toolResults for missing IDs
|
|
86
|
+
* - Dropping duplicate or orphaned toolResults
|
|
87
|
+
*/
|
|
88
|
+
export function repairToolUseResultPairing(messages) {
|
|
89
|
+
const out = [];
|
|
90
|
+
const seenToolResultIds = new Set();
|
|
91
|
+
let droppedOrphanCount = 0;
|
|
92
|
+
let changed = false;
|
|
93
|
+
const pushToolResult = (msg) => {
|
|
94
|
+
const id = extractToolResultId(msg);
|
|
95
|
+
if (id && seenToolResultIds.has(id)) {
|
|
96
|
+
changed = true;
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (id)
|
|
100
|
+
seenToolResultIds.add(id);
|
|
101
|
+
out.push(msg);
|
|
102
|
+
};
|
|
103
|
+
for (let i = 0; i < messages.length; i += 1) {
|
|
104
|
+
const msg = messages[i];
|
|
105
|
+
if (!msg || typeof msg !== "object") {
|
|
106
|
+
out.push(msg);
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
const role = msg.role;
|
|
110
|
+
if (role !== "assistant") {
|
|
111
|
+
if (role !== "toolResult") {
|
|
112
|
+
out.push(msg);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
droppedOrphanCount += 1;
|
|
116
|
+
changed = true;
|
|
117
|
+
}
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
const assistant = msg;
|
|
121
|
+
const stopReason = assistant.stopReason;
|
|
122
|
+
if (stopReason === "error" || stopReason === "aborted") {
|
|
123
|
+
out.push(msg);
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
const toolCalls = extractToolCallsFromAssistant(assistant);
|
|
127
|
+
if (toolCalls.length === 0) {
|
|
128
|
+
out.push(msg);
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
const toolCallIds = new Set(toolCalls.map((t) => t.id));
|
|
132
|
+
const toolCallNamesById = new Map(toolCalls.map((t) => [t.id, t.name]));
|
|
133
|
+
const spanResultsById = new Map();
|
|
134
|
+
const remainder = [];
|
|
135
|
+
let j = i + 1;
|
|
136
|
+
for (; j < messages.length; j += 1) {
|
|
137
|
+
const next = messages[j];
|
|
138
|
+
if (!next || typeof next !== "object") {
|
|
139
|
+
remainder.push(next);
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
const nextRole = next.role;
|
|
143
|
+
if (nextRole === "assistant")
|
|
144
|
+
break;
|
|
145
|
+
if (nextRole === "toolResult") {
|
|
146
|
+
const toolResult = next;
|
|
147
|
+
const id = extractToolResultId(toolResult);
|
|
148
|
+
if (id && toolCallIds.has(id)) {
|
|
149
|
+
if (seenToolResultIds.has(id)) {
|
|
150
|
+
changed = true;
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
if (!spanResultsById.has(id)) {
|
|
154
|
+
spanResultsById.set(id, toolResult);
|
|
155
|
+
}
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
if (nextRole !== "toolResult") {
|
|
160
|
+
remainder.push(next);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
droppedOrphanCount += 1;
|
|
164
|
+
changed = true;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
out.push(msg);
|
|
168
|
+
if (spanResultsById.size > 0 && remainder.length > 0) {
|
|
169
|
+
changed = true;
|
|
170
|
+
}
|
|
171
|
+
for (const call of toolCalls) {
|
|
172
|
+
const existing = spanResultsById.get(call.id);
|
|
173
|
+
if (existing) {
|
|
174
|
+
pushToolResult(existing);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
const missing = makeMissingToolResult({
|
|
178
|
+
toolCallId: call.id,
|
|
179
|
+
toolName: call.name ?? toolCallNamesById.get(call.id),
|
|
180
|
+
});
|
|
181
|
+
changed = true;
|
|
182
|
+
pushToolResult(missing);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
for (const rem of remainder) {
|
|
186
|
+
out.push(rem);
|
|
187
|
+
}
|
|
188
|
+
i = j - 1;
|
|
189
|
+
}
|
|
190
|
+
return { messages: changed ? out : messages, droppedOrphanCount };
|
|
191
|
+
}
|
|
192
|
+
// ── Token estimation ─────────────────────────────────────────────────────
|
|
193
|
+
export function estimateMessagesTokens(messages) {
|
|
194
|
+
const safe = stripToolResultDetails(messages);
|
|
195
|
+
return safe.reduce((sum, message) => sum + estimateTokens(message), 0);
|
|
196
|
+
}
|
|
197
|
+
function estimateCompactionMessageTokens(message) {
|
|
198
|
+
return estimateMessagesTokens([message]);
|
|
199
|
+
}
|
|
200
|
+
// ── Message splitting ────────────────────────────────────────────────────
|
|
201
|
+
function normalizeParts(parts, messageCount) {
|
|
202
|
+
if (!Number.isFinite(parts) || parts <= 1)
|
|
203
|
+
return 1;
|
|
204
|
+
return Math.min(Math.max(1, Math.floor(parts)), Math.max(1, messageCount));
|
|
205
|
+
}
|
|
206
|
+
export function splitMessagesByTokenShare(messages, parts = DEFAULT_PARTS) {
|
|
207
|
+
if (messages.length === 0)
|
|
208
|
+
return [];
|
|
209
|
+
const normalizedParts = normalizeParts(parts, messages.length);
|
|
210
|
+
if (normalizedParts <= 1)
|
|
211
|
+
return [messages];
|
|
212
|
+
const totalTokens = estimateMessagesTokens(messages);
|
|
213
|
+
const targetTokens = totalTokens / normalizedParts;
|
|
214
|
+
const chunks = [];
|
|
215
|
+
let current = [];
|
|
216
|
+
let currentTokens = 0;
|
|
217
|
+
for (const message of messages) {
|
|
218
|
+
const messageTokens = estimateCompactionMessageTokens(message);
|
|
219
|
+
if (chunks.length < normalizedParts - 1 &&
|
|
220
|
+
current.length > 0 &&
|
|
221
|
+
currentTokens + messageTokens > targetTokens) {
|
|
222
|
+
chunks.push(current);
|
|
223
|
+
current = [];
|
|
224
|
+
currentTokens = 0;
|
|
225
|
+
}
|
|
226
|
+
current.push(message);
|
|
227
|
+
currentTokens += messageTokens;
|
|
228
|
+
}
|
|
229
|
+
if (current.length > 0)
|
|
230
|
+
chunks.push(current);
|
|
231
|
+
return chunks;
|
|
232
|
+
}
|
|
233
|
+
export function chunkMessagesByMaxTokens(messages, maxTokens) {
|
|
234
|
+
if (messages.length === 0)
|
|
235
|
+
return [];
|
|
236
|
+
const effectiveMax = Math.max(1, Math.floor(maxTokens / SAFETY_MARGIN));
|
|
237
|
+
const chunks = [];
|
|
238
|
+
let currentChunk = [];
|
|
239
|
+
let currentTokens = 0;
|
|
240
|
+
for (const message of messages) {
|
|
241
|
+
const messageTokens = estimateCompactionMessageTokens(message);
|
|
242
|
+
if (currentChunk.length > 0 && currentTokens + messageTokens > effectiveMax) {
|
|
243
|
+
chunks.push(currentChunk);
|
|
244
|
+
currentChunk = [];
|
|
245
|
+
currentTokens = 0;
|
|
246
|
+
}
|
|
247
|
+
currentChunk.push(message);
|
|
248
|
+
currentTokens += messageTokens;
|
|
249
|
+
if (messageTokens > effectiveMax) {
|
|
250
|
+
chunks.push(currentChunk);
|
|
251
|
+
currentChunk = [];
|
|
252
|
+
currentTokens = 0;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
if (currentChunk.length > 0)
|
|
256
|
+
chunks.push(currentChunk);
|
|
257
|
+
return chunks;
|
|
258
|
+
}
|
|
259
|
+
// ── Adaptive chunking ────────────────────────────────────────────────────
|
|
260
|
+
export function computeAdaptiveChunkRatio(messages, contextWindow) {
|
|
261
|
+
if (messages.length === 0)
|
|
262
|
+
return BASE_CHUNK_RATIO;
|
|
263
|
+
const totalTokens = estimateMessagesTokens(messages);
|
|
264
|
+
const avgTokens = totalTokens / messages.length;
|
|
265
|
+
const safeAvgTokens = avgTokens * SAFETY_MARGIN;
|
|
266
|
+
const avgRatio = safeAvgTokens / contextWindow;
|
|
267
|
+
if (avgRatio > 0.1) {
|
|
268
|
+
const reduction = Math.min(avgRatio * 2, BASE_CHUNK_RATIO - MIN_CHUNK_RATIO);
|
|
269
|
+
return Math.max(MIN_CHUNK_RATIO, BASE_CHUNK_RATIO - reduction);
|
|
270
|
+
}
|
|
271
|
+
return BASE_CHUNK_RATIO;
|
|
272
|
+
}
|
|
273
|
+
export function isOversizedForSummary(msg, contextWindow) {
|
|
274
|
+
const tokens = estimateCompactionMessageTokens(msg) * SAFETY_MARGIN;
|
|
275
|
+
return tokens > contextWindow * 0.5;
|
|
276
|
+
}
|
|
277
|
+
// ── Summarization with retry ─────────────────────────────────────────────
|
|
278
|
+
async function summarizeChunks(params) {
|
|
279
|
+
if (params.messages.length === 0) {
|
|
280
|
+
return params.previousSummary ?? DEFAULT_SUMMARY_FALLBACK;
|
|
281
|
+
}
|
|
282
|
+
const safeMessages = stripToolResultDetails(params.messages);
|
|
283
|
+
const chunks = chunkMessagesByMaxTokens(safeMessages, params.maxChunkTokens);
|
|
284
|
+
let summary = params.previousSummary;
|
|
285
|
+
const effectiveInstructions = buildSummarizationInstructions(params.customInstructions);
|
|
286
|
+
for (const chunk of chunks) {
|
|
287
|
+
// Simple retry: 1 retry on failure (replaces OpenClaw's retryAsync wrapper)
|
|
288
|
+
let lastError;
|
|
289
|
+
for (let attempt = 0; attempt < 2; attempt++) {
|
|
290
|
+
try {
|
|
291
|
+
summary = await generateSummary(chunk, params.model, params.reserveTokens, params.apiKey, params.signal, effectiveInstructions, summary);
|
|
292
|
+
lastError = undefined;
|
|
293
|
+
break;
|
|
294
|
+
}
|
|
295
|
+
catch (err) {
|
|
296
|
+
if (err instanceof Error && err.name === "AbortError")
|
|
297
|
+
throw err;
|
|
298
|
+
lastError = err;
|
|
299
|
+
if (attempt < 1) {
|
|
300
|
+
await new Promise((r) => setTimeout(r, 1000));
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
if (lastError) {
|
|
305
|
+
// Return best-effort partial summary if earlier chunks succeeded
|
|
306
|
+
if (summary)
|
|
307
|
+
return summary;
|
|
308
|
+
throw lastError;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
return summary ?? DEFAULT_SUMMARY_FALLBACK;
|
|
312
|
+
}
|
|
313
|
+
function buildSummarizationInstructions(customInstructions) {
|
|
314
|
+
const custom = customInstructions?.trim();
|
|
315
|
+
if (!custom)
|
|
316
|
+
return IDENTIFIER_PRESERVATION_INSTRUCTIONS;
|
|
317
|
+
// When custom instructions already contain structured section headings
|
|
318
|
+
// (from buildCompactionStructureInstructions), pass them through directly
|
|
319
|
+
// to avoid double-wrapping with identifier preservation instructions.
|
|
320
|
+
if (custom.includes(EXACT_IDENTIFIERS_HEADING))
|
|
321
|
+
return custom;
|
|
322
|
+
return `${IDENTIFIER_PRESERVATION_INSTRUCTIONS}\n\nAdditional focus:\n${custom}`;
|
|
323
|
+
}
|
|
324
|
+
// ── Summarize with fallback ──────────────────────────────────────────────
|
|
325
|
+
export async function summarizeWithFallback(params) {
|
|
326
|
+
const { messages, contextWindow } = params;
|
|
327
|
+
if (messages.length === 0) {
|
|
328
|
+
return params.previousSummary ?? DEFAULT_SUMMARY_FALLBACK;
|
|
329
|
+
}
|
|
330
|
+
// Try full summarization first
|
|
331
|
+
try {
|
|
332
|
+
return await summarizeChunks(params);
|
|
333
|
+
}
|
|
334
|
+
catch (fullError) {
|
|
335
|
+
console.warn(`[compaction] Full summarization failed, trying partial: ${fullError instanceof Error ? fullError.message : String(fullError)}`);
|
|
336
|
+
}
|
|
337
|
+
// Fallback: summarize only small messages
|
|
338
|
+
const smallMessages = [];
|
|
339
|
+
const oversizedNotes = [];
|
|
340
|
+
for (const msg of messages) {
|
|
341
|
+
if (isOversizedForSummary(msg, contextWindow)) {
|
|
342
|
+
const role = msg.role ?? "message";
|
|
343
|
+
const tokens = estimateCompactionMessageTokens(msg);
|
|
344
|
+
oversizedNotes.push(`[Large ${role} (~${Math.round(tokens / 1000)}K tokens) omitted from summary]`);
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
smallMessages.push(msg);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
if (smallMessages.length > 0) {
|
|
351
|
+
try {
|
|
352
|
+
const partialSummary = await summarizeChunks({ ...params, messages: smallMessages });
|
|
353
|
+
const notes = oversizedNotes.length > 0 ? `\n\n${oversizedNotes.join("\n")}` : "";
|
|
354
|
+
return partialSummary + notes;
|
|
355
|
+
}
|
|
356
|
+
catch (partialError) {
|
|
357
|
+
console.warn(`[compaction] Partial summarization also failed: ${partialError instanceof Error ? partialError.message : String(partialError)}`);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
return (`Context contained ${messages.length} messages (${oversizedNotes.length} oversized). ` +
|
|
361
|
+
`Summary unavailable due to size limits.`);
|
|
362
|
+
}
|
|
363
|
+
// ── Multi-stage summarization ────────────────────────────────────────────
|
|
364
|
+
export async function summarizeInStages(params) {
|
|
365
|
+
const { messages } = params;
|
|
366
|
+
if (messages.length === 0) {
|
|
367
|
+
return params.previousSummary ?? DEFAULT_SUMMARY_FALLBACK;
|
|
368
|
+
}
|
|
369
|
+
const minMessagesForSplit = Math.max(2, params.minMessagesForSplit ?? 4);
|
|
370
|
+
const parts = normalizeParts(params.parts ?? DEFAULT_PARTS, messages.length);
|
|
371
|
+
const totalTokens = estimateMessagesTokens(messages);
|
|
372
|
+
if (parts <= 1 || messages.length < minMessagesForSplit || totalTokens <= params.maxChunkTokens) {
|
|
373
|
+
return summarizeWithFallback(params);
|
|
374
|
+
}
|
|
375
|
+
const splits = splitMessagesByTokenShare(messages, parts).filter((chunk) => chunk.length > 0);
|
|
376
|
+
if (splits.length <= 1) {
|
|
377
|
+
return summarizeWithFallback(params);
|
|
378
|
+
}
|
|
379
|
+
const partialSummaries = [];
|
|
380
|
+
for (const chunk of splits) {
|
|
381
|
+
partialSummaries.push(await summarizeWithFallback({ ...params, messages: chunk, previousSummary: undefined }));
|
|
382
|
+
}
|
|
383
|
+
if (partialSummaries.length === 1)
|
|
384
|
+
return partialSummaries[0];
|
|
385
|
+
const summaryMessages = partialSummaries.map((summary) => ({
|
|
386
|
+
role: "user",
|
|
387
|
+
content: summary,
|
|
388
|
+
timestamp: Date.now(),
|
|
389
|
+
}));
|
|
390
|
+
const custom = params.customInstructions?.trim();
|
|
391
|
+
const mergeInstructions = custom
|
|
392
|
+
? `${MERGE_SUMMARIES_INSTRUCTIONS}\n\n${custom}`
|
|
393
|
+
: MERGE_SUMMARIES_INSTRUCTIONS;
|
|
394
|
+
return summarizeWithFallback({
|
|
395
|
+
...params,
|
|
396
|
+
messages: summaryMessages,
|
|
397
|
+
customInstructions: mergeInstructions,
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
// ── History pruning ──────────────────────────────────────────────────────
|
|
401
|
+
export function pruneHistoryForContextShare(params) {
|
|
402
|
+
const maxHistoryShare = params.maxHistoryShare ?? 0.5;
|
|
403
|
+
const budgetTokens = Math.max(1, Math.floor(params.maxContextTokens * maxHistoryShare));
|
|
404
|
+
let keptMessages = params.messages;
|
|
405
|
+
const allDroppedMessages = [];
|
|
406
|
+
let droppedChunks = 0;
|
|
407
|
+
let droppedMessages = 0;
|
|
408
|
+
let droppedTokens = 0;
|
|
409
|
+
const parts = normalizeParts(params.parts ?? DEFAULT_PARTS, keptMessages.length);
|
|
410
|
+
let iterations = 0;
|
|
411
|
+
while (keptMessages.length > 0 && estimateMessagesTokens(keptMessages) > budgetTokens) {
|
|
412
|
+
if (++iterations > 50)
|
|
413
|
+
break; // defensive cap against infinite loops
|
|
414
|
+
const chunks = splitMessagesByTokenShare(keptMessages, parts);
|
|
415
|
+
if (chunks.length <= 1)
|
|
416
|
+
break;
|
|
417
|
+
const [dropped, ...rest] = chunks;
|
|
418
|
+
const flatRest = rest.flat();
|
|
419
|
+
const repairReport = repairToolUseResultPairing(flatRest);
|
|
420
|
+
const repairedKept = repairReport.messages;
|
|
421
|
+
const orphanedCount = repairReport.droppedOrphanCount;
|
|
422
|
+
droppedChunks += 1;
|
|
423
|
+
droppedMessages += dropped.length + orphanedCount;
|
|
424
|
+
droppedTokens += estimateMessagesTokens(dropped);
|
|
425
|
+
allDroppedMessages.push(...dropped);
|
|
426
|
+
keptMessages = repairedKept;
|
|
427
|
+
}
|
|
428
|
+
return {
|
|
429
|
+
messages: keptMessages,
|
|
430
|
+
droppedMessagesList: allDroppedMessages,
|
|
431
|
+
droppedChunks,
|
|
432
|
+
droppedMessages,
|
|
433
|
+
droppedTokens,
|
|
434
|
+
keptTokens: estimateMessagesTokens(keptMessages),
|
|
435
|
+
budgetTokens,
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
// ── Context window resolution ────────────────────────────────────────────
|
|
439
|
+
export function resolveContextWindowTokens(model) {
|
|
440
|
+
return Math.max(1, Math.floor(model?.contextWindow ?? DEFAULT_CONTEXT_TOKENS));
|
|
441
|
+
}
|
|
442
|
+
//# sourceMappingURL=compaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/core/compaction.ts"],"names":[],"mappings":"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"}
|
package/dist/core/config.d.ts
CHANGED
|
@@ -52,12 +52,19 @@ export interface SiclawConfig {
|
|
|
52
52
|
userDataDir: string;
|
|
53
53
|
skillsDir: string;
|
|
54
54
|
credentialsDir: string;
|
|
55
|
+
reposDir: string;
|
|
56
|
+
docsDir: string;
|
|
57
|
+
knowledgeDir: string;
|
|
55
58
|
};
|
|
56
59
|
server: {
|
|
57
60
|
port: number;
|
|
58
61
|
gatewayUrl: string;
|
|
59
62
|
};
|
|
60
63
|
debugImage: string;
|
|
64
|
+
debugNamespace: string;
|
|
65
|
+
debugPodTTL: number;
|
|
66
|
+
/** Idle timeout before cached debug pods are evicted, in seconds. */
|
|
67
|
+
debugPodIdleTimeout: number;
|
|
61
68
|
allowedTools: string[] | null;
|
|
62
69
|
mcpServers: Record<string, unknown>;
|
|
63
70
|
metrics?: {
|
package/dist/core/config.js
CHANGED
|
@@ -17,9 +17,15 @@ const DEFAULTS = {
|
|
|
17
17
|
userDataDir: ".siclaw/user-data",
|
|
18
18
|
skillsDir: ".siclaw/skills",
|
|
19
19
|
credentialsDir: ".siclaw/credentials",
|
|
20
|
+
reposDir: ".siclaw/repos",
|
|
21
|
+
docsDir: ".siclaw/docs",
|
|
22
|
+
knowledgeDir: ".siclaw/knowledge",
|
|
20
23
|
},
|
|
21
24
|
server: { port: 3000, gatewayUrl: "" },
|
|
22
|
-
debugImage: "busybox:
|
|
25
|
+
debugImage: "busybox:1.36",
|
|
26
|
+
debugNamespace: "siclaw-debug",
|
|
27
|
+
debugPodTTL: 600,
|
|
28
|
+
debugPodIdleTimeout: 60,
|
|
23
29
|
allowedTools: null,
|
|
24
30
|
mcpServers: {},
|
|
25
31
|
debug: false,
|
|
@@ -93,9 +99,29 @@ export function loadConfig() {
|
|
|
93
99
|
if (process.env.SICLAW_CREDENTIALS_DIR) {
|
|
94
100
|
cached.paths.credentialsDir = process.env.SICLAW_CREDENTIALS_DIR;
|
|
95
101
|
}
|
|
102
|
+
if (process.env.SICLAW_REPOS_DIR) {
|
|
103
|
+
cached.paths.reposDir = process.env.SICLAW_REPOS_DIR;
|
|
104
|
+
}
|
|
105
|
+
if (process.env.SICLAW_DOCS_DIR) {
|
|
106
|
+
cached.paths.docsDir = process.env.SICLAW_DOCS_DIR;
|
|
107
|
+
}
|
|
96
108
|
if (process.env.SICLAW_GATEWAY_URL) {
|
|
97
109
|
cached.server.gatewayUrl = process.env.SICLAW_GATEWAY_URL;
|
|
98
110
|
}
|
|
111
|
+
if (process.env.SICLAW_DEBUG_NAMESPACE) {
|
|
112
|
+
cached.debugNamespace = process.env.SICLAW_DEBUG_NAMESPACE;
|
|
113
|
+
}
|
|
114
|
+
if (process.env.SICLAW_DEBUG_POD_TTL) {
|
|
115
|
+
const v = parseInt(process.env.SICLAW_DEBUG_POD_TTL, 10);
|
|
116
|
+
if (!isNaN(v))
|
|
117
|
+
cached.debugPodTTL = v;
|
|
118
|
+
}
|
|
119
|
+
// Idle timeout in seconds (matches debugPodTTL unit)
|
|
120
|
+
if (process.env.SICLAW_DEBUG_POD_IDLE_TIMEOUT) {
|
|
121
|
+
const v = parseInt(process.env.SICLAW_DEBUG_POD_IDLE_TIMEOUT, 10);
|
|
122
|
+
if (!isNaN(v))
|
|
123
|
+
cached.debugPodIdleTimeout = v;
|
|
124
|
+
}
|
|
99
125
|
return cached;
|
|
100
126
|
}
|
|
101
127
|
/**
|
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|