0xkobold 0.6.4 → 0.6.6

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 (98) hide show
  1. package/README.md +9 -3
  2. package/dist/package.json +4 -2
  3. package/dist/src/cli/index.js +0 -0
  4. package/dist/src/extensions/core/workspace-footer-extension.js +2 -11
  5. package/dist/src/extensions/core/workspace-footer-extension.js.map +1 -1
  6. package/dist/src/index.js +31 -5
  7. package/dist/src/index.js.map +1 -1
  8. package/package.json +4 -2
  9. package/dist/src/agents/task-router.js +0 -194
  10. package/dist/src/agents/task-router.js.map +0 -1
  11. package/dist/src/agents/tools/index.js +0 -2
  12. package/dist/src/agents/tools/index.js.map +0 -1
  13. package/dist/src/agents/tools/spawn-agent.js +0 -200
  14. package/dist/src/agents/tools/spawn-agent.js.map +0 -1
  15. package/dist/src/agents/types/definitions.js +0 -317
  16. package/dist/src/agents/types/definitions.js.map +0 -1
  17. package/dist/src/agents/types/index.js +0 -2
  18. package/dist/src/agents/types/index.js.map +0 -1
  19. package/dist/src/cli/program-fixed.js +0 -1
  20. package/dist/src/cli/program-fixed.js.map +0 -1
  21. package/dist/src/extensions/core/agent-lifecycle-extension.js +0 -323
  22. package/dist/src/extensions/core/agent-lifecycle-extension.js.map +0 -1
  23. package/dist/src/extensions/core/agent-registry-extension.js +0 -541
  24. package/dist/src/extensions/core/agent-registry-extension.js.map +0 -1
  25. package/dist/src/extensions/core/agent-worker.js +0 -148
  26. package/dist/src/extensions/core/agent-worker.js.map +0 -1
  27. package/dist/src/extensions/core/agent-workspace-extension.js +0 -174
  28. package/dist/src/extensions/core/agent-workspace-extension.js.map +0 -1
  29. package/dist/src/extensions/core/auto-compact-on-error-extension.js +0 -244
  30. package/dist/src/extensions/core/auto-compact-on-error-extension.js.map +0 -1
  31. package/dist/src/extensions/core/autonomous-executor-extension.js +0 -145
  32. package/dist/src/extensions/core/autonomous-executor-extension.js.map +0 -1
  33. package/dist/src/extensions/core/autonomous-subagent-extension.js +0 -333
  34. package/dist/src/extensions/core/autonomous-subagent-extension.js.map +0 -1
  35. package/dist/src/extensions/core/compaction-safeguard-v2.js +0 -95
  36. package/dist/src/extensions/core/compaction-safeguard-v2.js.map +0 -1
  37. package/dist/src/extensions/core/confirm-destructive.js +0 -43
  38. package/dist/src/extensions/core/confirm-destructive.js.map +0 -1
  39. package/dist/src/extensions/core/context-aware-extension.js +0 -124
  40. package/dist/src/extensions/core/context-aware-extension.js.map +0 -1
  41. package/dist/src/extensions/core/deprecated/agent-lifecycle-extension.js +0 -323
  42. package/dist/src/extensions/core/deprecated/agent-lifecycle-extension.js.map +0 -1
  43. package/dist/src/extensions/core/deprecated/autonomous-subagent-extension.js +0 -333
  44. package/dist/src/extensions/core/deprecated/autonomous-subagent-extension.js.map +0 -1
  45. package/dist/src/extensions/core/deprecated/subagent-extension.js +0 -647
  46. package/dist/src/extensions/core/deprecated/subagent-extension.js.map +0 -1
  47. package/dist/src/extensions/core/dirty-repo-guard.js +0 -42
  48. package/dist/src/extensions/core/dirty-repo-guard.js.map +0 -1
  49. package/dist/src/extensions/core/env-loader-extension.js +0 -157
  50. package/dist/src/extensions/core/env-loader-extension.js.map +0 -1
  51. package/dist/src/extensions/core/git-checkpoint.js +0 -46
  52. package/dist/src/extensions/core/git-checkpoint.js.map +0 -1
  53. package/dist/src/extensions/core/handoff-extension.js +0 -206
  54. package/dist/src/extensions/core/handoff-extension.js.map +0 -1
  55. package/dist/src/extensions/core/memory-extension.js +0 -120
  56. package/dist/src/extensions/core/memory-extension.js.map +0 -1
  57. package/dist/src/extensions/core/memory-synthesis-extension.js +0 -137
  58. package/dist/src/extensions/core/memory-synthesis-extension.js.map +0 -1
  59. package/dist/src/extensions/core/mode-manager-extension.js +0 -592
  60. package/dist/src/extensions/core/mode-manager-extension.js.map +0 -1
  61. package/dist/src/extensions/core/ollama-cloud-extension.js +0 -132
  62. package/dist/src/extensions/core/ollama-cloud-extension.js.map +0 -1
  63. package/dist/src/extensions/core/ollama-provider-extension.js +0 -66
  64. package/dist/src/extensions/core/ollama-provider-extension.js.map +0 -1
  65. package/dist/src/extensions/core/ollama-router-extension.js +0 -41
  66. package/dist/src/extensions/core/ollama-router-extension.js.map +0 -1
  67. package/dist/src/extensions/core/protected-paths.js +0 -24
  68. package/dist/src/extensions/core/protected-paths.js.map +0 -1
  69. package/dist/src/extensions/core/questionnaire-extension.js +0 -242
  70. package/dist/src/extensions/core/questionnaire-extension.js.map +0 -1
  71. package/dist/src/extensions/core/session-bridge-extension.js +0 -14
  72. package/dist/src/extensions/core/session-bridge-extension.js.map +0 -1
  73. package/dist/src/extensions/core/session-manager-extension.js +0 -336
  74. package/dist/src/extensions/core/session-manager-extension.js.map +0 -1
  75. package/dist/src/extensions/core/session-name-extension.js +0 -88
  76. package/dist/src/extensions/core/session-name-extension.js.map +0 -1
  77. package/dist/src/extensions/core/session-pruning-extension.js +0 -480
  78. package/dist/src/extensions/core/session-pruning-extension.js.map +0 -1
  79. package/dist/src/extensions/core/subagent-extension.js +0 -647
  80. package/dist/src/extensions/core/subagent-extension.js.map +0 -1
  81. package/dist/src/extensions/core/tui-integration-extension-fixed.js +0 -3
  82. package/dist/src/extensions/core/tui-integration-extension-fixed.js.map +0 -1
  83. package/dist/src/extensions/core/websearch-extension.js +0 -489
  84. package/dist/src/extensions/core/websearch-extension.js.map +0 -1
  85. package/dist/src/extensions/core/websearch-v2-extension.js +0 -303
  86. package/dist/src/extensions/core/websearch-v2-extension.js.map +0 -1
  87. package/dist/src/tui/commands/final-functions.js +0 -39
  88. package/dist/src/tui/commands/final-functions.js.map +0 -1
  89. package/dist/src/tui/commands/orchestration-final-section.js +0 -84
  90. package/dist/src/tui/commands/orchestration-final-section.js.map +0 -1
  91. package/dist/src/tui/components/footer.js +0 -106
  92. package/dist/src/tui/components/footer.js.map +0 -1
  93. package/dist/src/tui/components/sidebar.js +0 -82
  94. package/dist/src/tui/components/sidebar.js.map +0 -1
  95. package/dist/src/tui/gateway-chat-client.js +0 -218
  96. package/dist/src/tui/gateway-chat-client.js.map +0 -1
  97. package/dist/src/tui/pi-tui-integration.js +0 -260
  98. package/dist/src/tui/pi-tui-integration.js.map +0 -1
@@ -1,148 +0,0 @@
1
- #!/usr/bin/env bun
2
- /**
3
- * Agent Worker Process
4
- *
5
- * This is spawned as a subprocess by agent-registry-extension.ts
6
- * Connects to gateway, authenticates, executes task, reports completion.
7
- */
8
- const AGENT_ID = process.env.KOBOLD_AGENT_ID;
9
- const AGENT_TYPE = process.env.KOBOLD_AGENT_TYPE;
10
- const AGENT_TASK = process.env.KOBOLD_AGENT_TASK;
11
- const SESSION_KEY = process.env.KOBOLD_SESSION_KEY;
12
- const PARENT_ID = process.env.KOBOLD_PARENT_ID || "";
13
- const WORKSPACE = process.env.KOBOLD_WORKSPACE;
14
- const GATEWAY_PORT = parseInt(process.env.KOBOLD_GATEWAY_PORT || "18789");
15
- if (!AGENT_ID || !SESSION_KEY) {
16
- console.error("[AgentWorker] Missing required environment variables");
17
- process.exit(1);
18
- }
19
- console.log(`[AgentWorker] ${AGENT_ID} starting...`);
20
- console.log(`[AgentWorker] Type: ${AGENT_TYPE}`);
21
- console.log(`[AgentWorker] Task: ${AGENT_TASK?.slice(0, 100)}...`);
22
- console.log(`[AgentWorker] Workspace: ${WORKSPACE}`);
23
- // Results tracking
24
- let tokensInput = 0;
25
- let tokensOutput = 0;
26
- let result = "";
27
- let exitCode = 0;
28
- // Main execution
29
- async function main() {
30
- try {
31
- // Connect to gateway
32
- await connectToGateway();
33
- // Execute the task
34
- await executeTask();
35
- // Report completion
36
- await reportCompletion("success");
37
- console.log("[AgentWorker] Completed successfully");
38
- process.exit(0);
39
- }
40
- catch (error) {
41
- console.error("[AgentWorker] Error:", error);
42
- await reportCompletion("error", String(error));
43
- process.exit(1);
44
- }
45
- }
46
- async function connectToGateway() {
47
- return new Promise((resolve, reject) => {
48
- const ws = new WebSocket(`ws://127.0.0.1:${GATEWAY_PORT}`);
49
- ws.onopen = () => {
50
- console.log("[AgentWorker] Connected to gateway");
51
- // Send connect frame with authentication
52
- const connectFrame = {
53
- type: "connect",
54
- id: `conn-${Date.now()}`,
55
- params: {
56
- role: "node",
57
- client: AGENT_ID,
58
- caps: ["subagent"],
59
- device: { id: AGENT_ID, platform: "bun-subprocess" },
60
- sessionKey: SESSION_KEY,
61
- },
62
- };
63
- ws.send(JSON.stringify(connectFrame));
64
- // Wait for response
65
- const onMessage = (data) => {
66
- try {
67
- const frame = JSON.parse(data.data);
68
- if (frame.type === "res" && frame.ok) {
69
- console.log("[AgentWorker] Authenticated with gateway");
70
- ws.removeEventListener("message", onMessage);
71
- resolve();
72
- }
73
- else if (frame.type === "res" && !frame.ok) {
74
- reject(new Error(frame.error || "Authentication failed"));
75
- }
76
- }
77
- catch { }
78
- };
79
- ws.addEventListener("message", onMessage);
80
- };
81
- ws.onerror = (err) => {
82
- reject(new Error(`WebSocket error: ${err}`));
83
- };
84
- // Timeout after 10 seconds
85
- setTimeout(() => reject(new Error("Gateway connection timeout")), 10000);
86
- });
87
- }
88
- async function executeTask() {
89
- const task = AGENT_TASK || "";
90
- // Simulate work - in real implementation, this would:
91
- // - Initialize the pi-coding-agent framework
92
- // - Execute the task using available tools
93
- // - Track token usage
94
- // - Generate output
95
- console.log("[AgentWorker] Executing task...");
96
- // Simulate processing time
97
- await delay(2000 + Math.random() * 3000);
98
- // Simulate token counting
99
- tokensInput = task.length * 2;
100
- tokensOutput = Math.floor(Math.random() * 500) + 100;
101
- // Generate result
102
- result = `Task completed by ${AGENT_ID}\\n` +
103
- `Type: ${AGENT_TYPE}\\n` +
104
- `Task: ${task.slice(0, 50)}...\\n` +
105
- `Output: ${tokensOutput} tokens generated`;
106
- console.log("[AgentWorker] Task complete");
107
- console.log(`[AgentWorker] Input tokens: ${tokensInput}`);
108
- console.log(`[AgentWorker] Output tokens: ${tokensOutput}`);
109
- }
110
- async function reportCompletion(status, errorMessage) {
111
- const ws = new WebSocket(`ws://127.0.0.1:${GATEWAY_PORT}`);
112
- return new Promise((resolve) => {
113
- ws.onopen = () => {
114
- const announceFrame = {
115
- type: "req",
116
- id: `announce-${Date.now()}`,
117
- method: "agent.announce",
118
- params: {
119
- sessionKey: SESSION_KEY,
120
- source: "subagent",
121
- childSessionKey: SESSION_KEY,
122
- taskLabel: AGENT_TASK?.slice(0, 50),
123
- status: status === "success" ? "success" : "error",
124
- result: errorMessage || result,
125
- tokens: { input: tokensInput, output: tokensOutput },
126
- runtime: Date.now() - startTime,
127
- exitCode: status === "success" ? 0 : 1,
128
- },
129
- };
130
- ws.send(JSON.stringify(announceFrame));
131
- // Close after sending
132
- setTimeout(() => {
133
- ws.close();
134
- resolve();
135
- }, 500);
136
- };
137
- ws.onerror = () => {
138
- console.error("[AgentWorker] Failed to report completion");
139
- resolve();
140
- };
141
- });
142
- }
143
- function delay(ms) {
144
- return new Promise(resolve => setTimeout(resolve, ms));
145
- }
146
- const startTime = Date.now();
147
- main();
148
- //# sourceMappingURL=agent-worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-worker.js","sourceRoot":"","sources":["../../../../src/extensions/core/agent-worker.ts"],"names":[],"mappings":"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"}
@@ -1,174 +0,0 @@
1
- /**
2
- * Agent Workspace Extension - v0.2.0
3
- *
4
- * Manages main agent workspaces and configuration.
5
- * Discovers agents from ~/.0xkobold/agents/
6
- *
7
- * @version 0.2.0
8
- */
9
- import { Type } from "@sinclair/typebox";
10
- import * as fs from "node:fs/promises";
11
- import * as path from "node:path";
12
- import { homedir } from "node:os";
13
- import { existsSync } from "node:fs";
14
- const AGENTS_DIR = path.join(homedir(), ".0xkobold", "agents");
15
- async function discoverAgents() {
16
- const agents = new Map();
17
- try {
18
- const entries = await fs.readdir(AGENTS_DIR, { withFileTypes: true });
19
- for (const entry of entries) {
20
- if (entry.isDirectory()) {
21
- const agentDir = path.join(AGENTS_DIR, entry.name);
22
- const configPath = path.join(agentDir, "config.json");
23
- if (existsSync(configPath)) {
24
- try {
25
- const content = await fs.readFile(configPath, "utf-8");
26
- const config = JSON.parse(content);
27
- // Validate required fields
28
- if (config.name && config.workspace) {
29
- agents.set(config.name, {
30
- name: config.name,
31
- config,
32
- status: "stopped",
33
- });
34
- }
35
- }
36
- catch (error) {
37
- console.log(`[AgentWorkspace] Failed to load ${entry.name}: ${error}`);
38
- }
39
- }
40
- }
41
- }
42
- }
43
- catch (error) {
44
- console.log(`[AgentWorkspace] Agents directory not accessible: ${AGENTS_DIR}`);
45
- }
46
- return agents;
47
- }
48
- async function createDefaultAgent(name) {
49
- const agentDir = path.join(AGENTS_DIR, name);
50
- const workspaceDir = path.join(agentDir, "workspace");
51
- const memoryDir = path.join(agentDir, "memory");
52
- const logsDir = path.join(agentDir, "logs");
53
- const agentsDir = path.join(agentDir, "agents");
54
- // Create directories
55
- await fs.mkdir(agentDir, { recursive: true });
56
- await fs.mkdir(workspaceDir, { recursive: true });
57
- await fs.mkdir(memoryDir, { recursive: true });
58
- await fs.mkdir(logsDir, { recursive: true });
59
- await fs.mkdir(agentsDir, { recursive: true });
60
- // Create config
61
- const config = {
62
- name,
63
- description: `Main agent for ${name}`,
64
- version: "1.0.0",
65
- enabled: true,
66
- autoStart: false,
67
- workspace: {
68
- path: workspaceDir,
69
- },
70
- activation: {
71
- manual: true,
72
- },
73
- model: {
74
- provider: "ollama",
75
- model: "qwen2.5-coder:14b",
76
- },
77
- capabilities: [
78
- "read", "write", "edit", "search", "shell", "subagent_spawn"
79
- ],
80
- memory: {
81
- enabled: true,
82
- },
83
- };
84
- await fs.writeFile(path.join(agentDir, "config.json"), JSON.stringify(config, null, 2));
85
- console.log(`[AgentWorkspace] Created agent: ${name}`);
86
- }
87
- // Note: Web scraping functionality moved to websearch-enhanced-extension.ts
88
- // Use 'web_fetch' tool instead of 'advanced_web_fetch'
89
- export default async function agentWorkspaceExtension(pi) {
90
- console.log("[AgentWorkspace] Extension loaded");
91
- // Ensure agents directory exists
92
- await fs.mkdir(AGENTS_DIR, { recursive: true });
93
- // Discover agents
94
- const agents = await discoverAgents();
95
- console.log(`[AgentWorkspace] Discovered ${agents.size} agents`);
96
- // TOOL: agent_workspace_list
97
- pi.registerTool({
98
- name: "agent_workspace_list",
99
- label: "List Agent Workspaces",
100
- description: "List all configured agent workspaces with their status",
101
- parameters: Type.Object({}),
102
- // @ts-ignore execute signature
103
- async execute() {
104
- const list = Array.from(agents.entries()).map(([name, info]) => ({
105
- name,
106
- description: info.config.description,
107
- status: info.status,
108
- enabled: info.config.enabled,
109
- autoStart: info.config.autoStart,
110
- capabilities: info.config.capabilities.length,
111
- }));
112
- return {
113
- content: [{
114
- type: "text",
115
- text: `Found ${list.length} agents:\n\n${list.map(a => `- ${a.name}: ${a.status} (${a.enabled ? 'enabled' : 'disabled'})`).join('\n')}`,
116
- }],
117
- details: { agents: list },
118
- };
119
- },
120
- });
121
- // TOOL: agent_workspace_create
122
- pi.registerTool({
123
- name: "agent_workspace_create",
124
- label: "Create Agent Workspace",
125
- description: "Create a new main agent workspace with directory structure",
126
- parameters: Type.Object({
127
- name: Type.String({ description: "Agent name" }),
128
- description: Type.Optional(Type.String({ description: "Agent description" })),
129
- }),
130
- // @ts-ignore execute signature
131
- async execute(_toolCallId, params) {
132
- const name = params.name;
133
- if (agents.has(name)) {
134
- return {
135
- content: [{ type: "text", text: `❌ Agent '${name}' already exists` }],
136
- details: { success: false, error: "agent_exists" },
137
- };
138
- }
139
- try {
140
- await createDefaultAgent(name);
141
- // Reload
142
- const newAgents = await discoverAgents();
143
- agents.clear();
144
- for (const [k, v] of newAgents)
145
- agents.set(k, v);
146
- return {
147
- content: [{
148
- type: "text",
149
- text: `✅ Created agent '${name}'\n\nWorkspace: ~/.0xkobold/agents/${name}/`,
150
- }],
151
- details: { success: true, name, path: path.join(AGENTS_DIR, name) },
152
- };
153
- }
154
- catch (error) {
155
- return {
156
- content: [{ type: "text", text: `❌ Failed to create agent: ${error}` }],
157
- details: { success: false, error: String(error) },
158
- };
159
- }
160
- },
161
- });
162
- // Export for other extensions
163
- pi.state = {
164
- ...pi.state,
165
- agentWorkspace: {
166
- agents,
167
- discoverAgents,
168
- AGENTS_DIR,
169
- },
170
- };
171
- // Note: advanced_web_fetch removed - use web_fetch from websearch-enhanced-extension
172
- console.log("[AgentWorkspace] Ready");
173
- }
174
- //# sourceMappingURL=agent-workspace-extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-workspace-extension.js","sourceRoot":"","sources":["../../../../src/extensions/core/agent-workspace-extension.ts"],"names":[],"mappings":"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"}
@@ -1,244 +0,0 @@
1
- /**
2
- * Auto-Compact on Error Extension
3
- *
4
- * Automatically detects context overflow errors from LLM providers and
5
- * triggers compaction to reduce context size, then retries the request.
6
- *
7
- * This prevents the "prompt too long; exceeded max context length" errors
8
- * by proactively checking context size before requests and auto-compacting
9
- * when errors occur.
10
- *
11
- * Adapted from OpenClaw error handling patterns.
12
- */
13
- const sessionStates = new Map();
14
- const MAX_RETRIES = 2;
15
- const RETRY_RESET_DELAY_MS = 30000; // Reset retry count after 30 seconds of no errors
16
- const COMPACTION_COOLDOWN_MS = 5000; // Don't compact more often than every 5 seconds
17
- // Context overflow error patterns (adapted from OpenClaw)
18
- const CONTEXT_OVERFLOW_PATTERNS = [
19
- /request_too_large/i,
20
- /request exceeds the maximum size/i,
21
- /context length exceeded/i,
22
- /maximum context length/i,
23
- /prompt is too long/i,
24
- /exceeds model context window/i,
25
- /model token limit/i,
26
- /context overflow/i,
27
- /exceed context limit/i,
28
- /exceeds the model's maximum context/i,
29
- /context_window_exceeded/i,
30
- /exceeded max context length/i,
31
- /exceeded.*context.*limit/i,
32
- /prompt too long/i,
33
- /400 Bad Request.*prompt too long/i,
34
- // Chinese proxy error messages
35
- /上下文过[长多]/i,
36
- /上下文超出/i,
37
- /上下文长度超/i,
38
- /超出最大上下文/i,
39
- /请压缩上下文/i,
40
- ];
41
- // TPM (tokens per minute) patterns - these are rate limits, NOT context overflow
42
- const TPM_PATTERNS = [
43
- /tpm/i,
44
- /tokens per minute/i,
45
- /rate limit.*token/i,
46
- ];
47
- /**
48
- * Check if error is a context overflow error
49
- */
50
- function isContextOverflowError(errorMessage) {
51
- if (!errorMessage)
52
- return false;
53
- // Exclude TPM/rate limit errors
54
- if (TPM_PATTERNS.some(p => p.test(errorMessage))) {
55
- return false;
56
- }
57
- // Check for context overflow patterns
58
- return CONTEXT_OVERFLOW_PATTERNS.some(pattern => pattern.test(errorMessage));
59
- }
60
- /**
61
- * Check if error is a reasoning constraint error (not overflow)
62
- */
63
- function isReasoningConstraintError(errorMessage) {
64
- if (!errorMessage)
65
- return false;
66
- const lower = errorMessage.toLowerCase();
67
- return (lower.includes("reasoning is mandatory") ||
68
- lower.includes("reasoning is required") ||
69
- lower.includes("requires reasoning") ||
70
- (lower.includes("reasoning") && lower.includes("cannot be disabled")));
71
- }
72
- /**
73
- * Get or create session state
74
- */
75
- function getSessionState(ctx) {
76
- // @ts-ignore - sessionManager may have getSessionId
77
- const sessionId = ctx.sessionManager?.getSessionId?.() ?? 'default';
78
- if (!sessionStates.has(sessionId)) {
79
- sessionStates.set(sessionId, {
80
- retryAttempts: 0,
81
- warnedAt90Percent: false,
82
- });
83
- }
84
- return sessionStates.get(sessionId);
85
- }
86
- /**
87
- * Auto-Compact on Error Extension
88
- */
89
- export default function autoCompactOnErrorExtension(pi) {
90
- console.log("[AutoCompactOnError] Extension loaded");
91
- // Listen for turn_end to check for errors and detect context overflow
92
- pi.on("turn_end", async (event, ctx) => {
93
- const message = event.message;
94
- const state = getSessionState(ctx);
95
- // Check if this is an error message
96
- if (message.role === 'assistant' && message.errorMessage) {
97
- // Extract error text - use errorMessage first, then check content
98
- let errorText = message.errorMessage;
99
- if (typeof message.content === 'string') {
100
- errorText = message.content + ' ' + errorText;
101
- }
102
- else if (Array.isArray(message.content)) {
103
- const contentText = message.content
104
- .filter(c => c.type === 'text')
105
- .map(c => c.text)
106
- .join(' ');
107
- errorText = contentText + ' ' + errorText;
108
- }
109
- // Check if it's a context overflow error
110
- if (!isContextOverflowError(errorText) || isReasoningConstraintError(errorText)) {
111
- // Reset retry count on non-context-overflow errors
112
- state.retryAttempts = 0;
113
- return;
114
- }
115
- // Context overflow error detected!
116
- if (state.retryAttempts >= MAX_RETRIES) {
117
- console.log(`[AutoCompactOnError] Max retries (${MAX_RETRIES}) reached`);
118
- ctx.ui.notify(`⚠️ Context overflow persisted after ${MAX_RETRIES} compaction attempts.\n` +
119
- `You may need to start a new session with /new or manually compact with /compact.`, "error");
120
- // Don't reset here - let the user see the error
121
- return;
122
- }
123
- // Check compaction cooldown
124
- const now = Date.now();
125
- if (state.lastCompactionTime && (now - state.lastCompactionTime) < COMPACTION_COOLDOWN_MS) {
126
- ctx.ui.notify(`⏳ Compaction cooldown active. Please wait a moment before retrying.`, "warning");
127
- return;
128
- }
129
- state.retryAttempts++;
130
- state.lastCompactionTime = now;
131
- console.log(`[AutoCompactOnError] Context overflow detected! Auto-compacting (attempt ${state.retryAttempts}/${MAX_RETRIES})`);
132
- ctx.ui.notify(`🗜️ Context overflow detected!\n` +
133
- `Automatically compacting conversation... (attempt ${state.retryAttempts}/${MAX_RETRIES})`, "warning");
134
- // Trigger compaction
135
- if (ctx.compact) {
136
- try {
137
- let compactionCompleted = false;
138
- ctx.compact({
139
- onComplete: (result) => {
140
- compactionCompleted = true;
141
- console.log("[AutoCompactOnError] Compaction completed:", result);
142
- ctx.ui.notify(`✅ Compaction complete! Summarized ${result.tokensBefore.toLocaleString()} tokens.\n` +
143
- `The conversation is ready to continue. Please retry your request.`, "info");
144
- },
145
- onError: (error) => {
146
- console.error("[AutoCompactOnError] Compaction failed:", error);
147
- ctx.ui.notify(`❌ Auto-compaction failed: ${error.message}\n` +
148
- `Please try /compact manually or start a new session with /new.`, "error");
149
- }
150
- });
151
- // Note: We can't automatically retry here because the turn has already ended with an error.
152
- // The user will need to send their message again, but now with compacted context.
153
- }
154
- catch (err) {
155
- console.error("[AutoCompactOnError] Error triggering compaction:", err);
156
- ctx.ui.notify(`❌ Failed to trigger compaction: ${err}`, "error");
157
- }
158
- }
159
- else {
160
- ctx.ui.notify(`⚠️ Context is full and auto-compaction is not available.\n` +
161
- `Please run /compact manually or start a new session with /new.`, "error");
162
- }
163
- }
164
- else {
165
- // Successful turn - reset retry count after delay
166
- if (state.retryAttempts > 0) {
167
- const now = Date.now();
168
- if (state.lastCompactionTime && (now - state.lastCompactionTime) > RETRY_RESET_DELAY_MS) {
169
- state.retryAttempts = 0;
170
- state.warnedAt90Percent = false;
171
- console.log("[AutoCompactOnError] Reset retry count after successful period");
172
- }
173
- }
174
- }
175
- });
176
- // Proactive warning when context is getting full
177
- pi.on("before_provider_request", async (event, ctx) => {
178
- const usage = ctx.getContextUsage?.();
179
- const state = getSessionState(ctx);
180
- if (!usage || usage.tokens === null) {
181
- return;
182
- }
183
- // Warning at 85% (before we hit the 90% danger zone)
184
- const warningThreshold = usage.contextWindow * 0.85;
185
- const dangerThreshold = usage.contextWindow * 0.95;
186
- if (usage.tokens > dangerThreshold) {
187
- // Very close to limit - suggest immediate compaction
188
- ctx.ui.notify(`🚨 Context is ${usage.percent?.toFixed(1)}% full (${usage.tokens?.toLocaleString()}/${usage.contextWindow.toLocaleString()} tokens).\n` +
189
- `⚠️ Dangerously close to overflow! Consider running /compact now.`, "error");
190
- }
191
- else if (usage.tokens > warningThreshold && !state.warnedAt90Percent) {
192
- // First time crossing 85% - warn user
193
- state.warnedAt90Percent = true;
194
- ctx.ui.notify(`⚠️ Context is ${usage.percent?.toFixed(1)}% full (${usage.tokens?.toLocaleString()}/${usage.contextWindow.toLocaleString()} tokens).\n` +
195
- `Consider running /compact soon to prevent overflow errors.`, "warning");
196
- }
197
- });
198
- // Register command for manual triggering and status
199
- pi.registerCommand("auto-compact", {
200
- description: "Configure auto-compaction on context overflow errors",
201
- handler: async (args, ctx) => {
202
- const parts = args.trim().split(" ");
203
- const subcommand = parts[0];
204
- const state = getSessionState(ctx);
205
- if (subcommand === "status") {
206
- const usage = ctx.getContextUsage?.();
207
- ctx.ui.notify(`Auto-compact status:\n` +
208
- ` Max retries: ${MAX_RETRIES}\n` +
209
- ` Current retry attempts: ${state.retryAttempts}\n` +
210
- ` Last compaction: ${state.lastCompactionTime ? new Date(state.lastCompactionTime).toLocaleTimeString() : 'never'}\n` +
211
- ` Context usage: ${usage ? `${usage.percent?.toFixed(1)}% (${usage.tokens?.toLocaleString()}/${usage.contextWindow.toLocaleString()})` : 'unknown'}`, "info");
212
- return;
213
- }
214
- if (subcommand === "reset") {
215
- state.retryAttempts = 0;
216
- state.warnedAt90Percent = false;
217
- ctx.ui.notify("Auto-compact state reset for current session.", "info");
218
- return;
219
- }
220
- if (subcommand === "compact") {
221
- // Manual trigger for testing
222
- ctx.ui.notify("Triggering compaction...", "info");
223
- if (ctx.compact) {
224
- ctx.compact({
225
- onComplete: (result) => {
226
- ctx.ui.notify(`✅ Compaction complete! Summarized ${result.tokensBefore.toLocaleString()} tokens.`, "info");
227
- },
228
- onError: (error) => {
229
- ctx.ui.notify(`❌ Compaction failed: ${error.message}`, "error");
230
- }
231
- });
232
- }
233
- return;
234
- }
235
- ctx.ui.notify(`Usage: /auto-compact [status|reset|compact]\n\n` +
236
- `Auto-compact automatically triggers when:\n` +
237
- `• "prompt too long" or "context overflow" errors occur\n` +
238
- `• Up to ${MAX_RETRIES} automatic retries before giving up\n\n` +
239
- `Proactive warnings appear at 85% context usage.`, "info");
240
- },
241
- });
242
- console.log("[AutoCompactOnError] Extension initialized");
243
- }
244
- //# sourceMappingURL=auto-compact-on-error-extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-compact-on-error-extension.js","sourceRoot":"","sources":["../../../../src/extensions/core/auto-compact-on-error-extension.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAgBH,MAAM,aAAa,GAAG,IAAI,GAAG,EAAwB,CAAC;AACtD,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,oBAAoB,GAAG,KAAK,CAAC,CAAC,kDAAkD;AACtF,MAAM,sBAAsB,GAAG,IAAI,CAAC,CAAC,gDAAgD;AAErF,0DAA0D;AAC1D,MAAM,yBAAyB,GAAG;IAChC,oBAAoB;IACpB,mCAAmC;IACnC,0BAA0B;IAC1B,yBAAyB;IACzB,qBAAqB;IACrB,+BAA+B;IAC/B,oBAAoB;IACpB,mBAAmB;IACnB,uBAAuB;IACvB,sCAAsC;IACtC,0BAA0B;IAC1B,8BAA8B;IAC9B,2BAA2B;IAC3B,kBAAkB;IAClB,mCAAmC;IACnC,+BAA+B;IAC/B,WAAW;IACX,QAAQ;IACR,SAAS;IACT,UAAU;IACV,SAAS;CACV,CAAC;AAEF,iFAAiF;AACjF,MAAM,YAAY,GAAG;IACnB,MAAM;IACN,oBAAoB;IACpB,oBAAoB;CACrB,CAAC;AAEF;;GAEG;AACH,SAAS,sBAAsB,CAAC,YAAqB;IACnD,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAEhC,gCAAgC;IAChC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sCAAsC;IACtC,OAAO,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CAAC,YAAqB;IACvD,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IACzC,OAAO,CACL,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACxC,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACvC,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACpC,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CACtE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,GAAqB;IAC5C,oDAAoD;IACpD,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,EAAE,YAAY,EAAE,EAAE,IAAI,SAAS,CAAC;IAEpE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE;YAC3B,aAAa,EAAE,CAAC;YAChB,iBAAiB,EAAE,KAAK;SACzB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,aAAa,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,2BAA2B,CAAC,EAAgB;IAClE,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAErD,sEAAsE;IACtE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,KAAmB,EAAE,GAAqB,EAAE,EAAE;QACrE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAEnC,oCAAoC;QACpC,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzD,kEAAkE;YAClE,IAAI,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;YACrC,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACxC,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,GAAG,SAAS,CAAC;YAChD,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO;qBAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;qBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;qBAChB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACb,SAAS,GAAG,WAAW,GAAG,GAAG,GAAG,SAAS,CAAC;YAC5C,CAAC;YAED,yCAAyC;YACzC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,IAAI,0BAA0B,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChF,mDAAmD;gBACnD,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,mCAAmC;YACnC,IAAI,KAAK,CAAC,aAAa,IAAI,WAAW,EAAE,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,qCAAqC,WAAW,WAAW,CAAC,CAAC;gBACzE,GAAG,CAAC,EAAE,CAAC,MAAM,CACX,uCAAuC,WAAW,yBAAyB;oBAC3E,kFAAkF,EAClF,OAAO,CACR,CAAC;gBACF,gDAAgD;gBAChD,OAAO;YACT,CAAC;YAED,4BAA4B;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,kBAAkB,CAAC,GAAG,sBAAsB,EAAE,CAAC;gBAC1F,GAAG,CAAC,EAAE,CAAC,MAAM,CACX,qEAAqE,EACrE,SAAS,CACV,CAAC;gBACF,OAAO;YACT,CAAC;YAED,KAAK,CAAC,aAAa,EAAE,CAAC;YACtB,KAAK,CAAC,kBAAkB,GAAG,GAAG,CAAC;YAE/B,OAAO,CAAC,GAAG,CAAC,4EAA4E,KAAK,CAAC,aAAa,IAAI,WAAW,GAAG,CAAC,CAAC;YAE/H,GAAG,CAAC,EAAE,CAAC,MAAM,CACX,kCAAkC;gBAClC,qDAAqD,KAAK,CAAC,aAAa,IAAI,WAAW,GAAG,EAC1F,SAAS,CACV,CAAC;YAEF,qBAAqB;YACrB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,IAAI,mBAAmB,GAAG,KAAK,CAAC;oBAEhC,GAAG,CAAC,OAAO,CAAC;wBACV,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;4BACrB,mBAAmB,GAAG,IAAI,CAAC;4BAC3B,OAAO,CAAC,GAAG,CAAC,4CAA4C,EAAE,MAAM,CAAC,CAAC;4BAClE,GAAG,CAAC,EAAE,CAAC,MAAM,CACX,qCAAqC,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,YAAY;gCACrF,mEAAmE,EACnE,MAAM,CACP,CAAC;wBACJ,CAAC;wBACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;4BACjB,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;4BAChE,GAAG,CAAC,EAAE,CAAC,MAAM,CACX,6BAA6B,KAAK,CAAC,OAAO,IAAI;gCAC9C,gEAAgE,EAChE,OAAO,CACR,CAAC;wBACJ,CAAC;qBACF,CAAC,CAAC;oBAEH,4FAA4F;oBAC5F,kFAAkF;gBACpF,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,GAAG,CAAC,CAAC;oBACxE,GAAG,CAAC,EAAE,CAAC,MAAM,CACX,mCAAmC,GAAG,EAAE,EACxC,OAAO,CACR,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,EAAE,CAAC,MAAM,CACX,4DAA4D;oBAC5D,gEAAgE,EAChE,OAAO,CACR,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,kDAAkD;YAClD,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,kBAAkB,CAAC,GAAG,oBAAoB,EAAE,CAAC;oBACxF,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC;oBACxB,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,iDAAiD;IACjD,EAAE,CAAC,EAAE,CAAC,yBAAyB,EAAE,KAAK,EAAE,KAAiC,EAAE,GAAqB,EAAE,EAAE;QAClG,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,qDAAqD;QACrD,MAAM,gBAAgB,GAAG,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QACpD,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QAEnD,IAAI,KAAK,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YACnC,qDAAqD;YACrD,GAAG,CAAC,EAAE,CAAC,MAAM,CACX,iBAAiB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa;gBACxI,mEAAmE,EACnE,OAAO,CACR,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,GAAG,gBAAgB,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;YACvE,sCAAsC;YACtC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC/B,GAAG,CAAC,EAAE,CAAC,MAAM,CACX,kBAAkB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,aAAa;gBACzI,4DAA4D,EAC5D,SAAS,CACV,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,oDAAoD;IACpD,EAAE,CAAC,eAAe,CAAC,cAAc,EAAE;QACjC,WAAW,EAAE,sDAAsD;QACnE,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,GAAqB,EAAE,EAAE;YACrD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YAEnC,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC;gBACtC,GAAG,CAAC,EAAE,CAAC,MAAM,CACX,wBAAwB;oBACxB,kBAAkB,WAAW,IAAI;oBACjC,6BAA6B,KAAK,CAAC,aAAa,IAAI;oBACpD,sBAAsB,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI;oBACtH,oBAAoB,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,EACrJ,MAAM,CACP,CAAC;gBACF,OAAO;YACT,CAAC;YAED,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;gBAC3B,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC;gBACxB,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAChC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,+CAA+C,EAAE,MAAM,CAAC,CAAC;gBACvE,OAAO;YACT,CAAC;YAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,6BAA6B;gBAC7B,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;gBAClD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAChB,GAAG,CAAC,OAAO,CAAC;wBACV,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;4BACrB,GAAG,CAAC,EAAE,CAAC,MAAM,CACX,qCAAqC,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,UAAU,EACnF,MAAM,CACP,CAAC;wBACJ,CAAC;wBACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;4BACjB,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;wBAClE,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;YACT,CAAC;YAED,GAAG,CAAC,EAAE,CAAC,MAAM,CACX,iDAAiD;gBACjD,6CAA6C;gBAC7C,0DAA0D;gBAC1D,WAAW,WAAW,yCAAyC;gBAC/D,iDAAiD,EACjD,MAAM,CACP,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;AAC5D,CAAC"}