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,333 +0,0 @@
1
- /**
2
- * Autonomous Subagent Extension - v0.2.1
3
- *
4
- * Enables main agents to automatically use subagents based on task analysis.
5
- * No explicit /implement command needed - just say "use subagents" or the agent
6
- * automatically decides when delegation is appropriate.
7
- *
8
- * Features:
9
- * - Task complexity analysis
10
- * - Automatic delegation decisions
11
- * - Multi-strategy execution modes
12
- * - User-controlled autonomy levels
13
- *
14
- * @version 0.2.1
15
- */
16
- import { Type } from "@sinclair/typebox";
17
- let autonomyConfig = {
18
- mode: "medium",
19
- maxParallelAgents: 4,
20
- taskThreshold: 10,
21
- };
22
- function analyzeTask(task) {
23
- const taskLower = task.toLowerCase();
24
- const words = task.split(/\s+/).length;
25
- // Keywords indicating complexity
26
- const simpleKeywords = ["fix", "update", "change", "add", "remove"];
27
- const mediumKeywords = ["implement", "create", "build", "refactor", "migrate"];
28
- const complexKeywords = [
29
- "system",
30
- "architecture",
31
- "redesign",
32
- "framework",
33
- "platform",
34
- "microservices",
35
- "distributed",
36
- ];
37
- // File count indicators
38
- const filePatterns = task.match(/\b\w+\.(ts|js|tsx|jsx|py|rs|go)\b/g) || [];
39
- const specificFiles = filePatterns.length;
40
- // Calculate complexity score
41
- let score = 0;
42
- if (words < 15)
43
- score += 1;
44
- else if (words < 50)
45
- score += 2;
46
- else
47
- score += 3;
48
- simpleKeywords.forEach((k) => { if (taskLower.includes(k))
49
- score += 1; });
50
- mediumKeywords.forEach((k) => { if (taskLower.includes(k))
51
- score += 2; });
52
- complexKeywords.forEach((k) => { if (taskLower.includes(k))
53
- score += 3; });
54
- // Specific files mentioned reduce complexity (more defined scope)
55
- if (specificFiles > 0 && specificFiles <= 3)
56
- score = Math.min(score, 4);
57
- if (specificFiles > 3)
58
- score += 1;
59
- // Determine complexity
60
- let complexity;
61
- if (score <= 5)
62
- complexity = "simple";
63
- else if (score <= 10)
64
- complexity = "medium";
65
- else
66
- complexity = "complex";
67
- // Determine strategy
68
- let estimatedFiles = specificFiles || (complexity === "simple" ? 1 : complexity === "medium" ? 3 : 5);
69
- const requiresResearch = complexity !== "simple" && !specificFiles;
70
- const requiresPlanning = complexity === "complex" || (complexity === "medium" && words > 30);
71
- const strategies = {
72
- simple: "Execute directly - no subagents needed",
73
- medium: "Use scout + worker workflow",
74
- complex: "Full workflow: scout → planner → workers → reviewer",
75
- };
76
- return {
77
- complexity,
78
- estimatedFiles,
79
- requiresResearch,
80
- requiresPlanning,
81
- suggestedStrategy: strategies[complexity],
82
- confidence: Math.min(0.9, 0.5 + score / 20),
83
- };
84
- }
85
- // Delegation strategies
86
- async function executeStrategy(task, analysis, ctx) {
87
- const { complexity } = analysis;
88
- switch (autonomyConfig.mode) {
89
- case "off":
90
- return "Autonomy is disabled. Use explicit /implement command.";
91
- case "simple":
92
- // Only use subagents for complex tasks
93
- if (complexity !== "complex") {
94
- return `Task complexity: ${complexity}. Not using subagents (simple mode).`;
95
- }
96
- break;
97
- case "medium":
98
- // Use subagents for medium and complex
99
- if (complexity === "simple") {
100
- return `Task complexity: ${complexity}. Not using subagents.`;
101
- }
102
- break;
103
- case "always":
104
- // Always use subagents regardless of complexity
105
- break;
106
- case "complex":
107
- default:
108
- // Only use subagents for complex
109
- if (complexity !== "complex") {
110
- return `Task complexity: ${complexity}. Not using subagents (only complex tasks).`;
111
- }
112
- }
113
- // Execute based on complexity
114
- ctx.ui.notify(`🤖 Autonomous delegation: ${complexity} task. ${analysis.suggestedStrategy}`, "info");
115
- if (complexity === "medium") {
116
- // Medium: Scout + Worker
117
- ctx.ui.notify("Spawning scout + worker...", "info");
118
- // In real implementation, these would call subagent_spawn
119
- return `
120
- **Autonomous Delegation (Medium Complexity)**
121
-
122
- Strategy: Scout → Worker
123
-
124
- 1. **Scout** - Finds relevant code
125
- 2. **Worker** - Implements based on findings
126
-
127
- Task: "${task}"
128
-
129
- *Estimated: ${analysis.estimatedFiles} files*
130
- *Confidence: ${Math.round(analysis.confidence * 100)}%*
131
-
132
- ---
133
-
134
- Would you like me to:
135
- - A) Execute with subagents now
136
- - B) Show detailed plan first
137
- - C) Handle manually (no subagents)
138
- `;
139
- }
140
- if (complexity === "complex") {
141
- // Complex: Full workflow
142
- ctx.ui.notify("Spawning full workflow...", "info");
143
- return `
144
- **Autonomous Delegation (Complex Task)**
145
-
146
- Strategy: Scout → Planner → Workers → Reviewer
147
-
148
- 1. **Scout** - Comprehensive reconnaissance
149
- 2. **Planner** - Creates implementation plan
150
- 3. **Workers** - Parallel implementation (up to ${autonomyConfig.maxParallelAgents})
151
- 4. **Reviewer** - Code review of all changes
152
-
153
- Task: "${task}"
154
-
155
- *Estimated: ${analysis.estimatedFiles}+ files*
156
- *Requires planning: ${analysis.requiresPlanning ? "Yes" : "No"}*
157
- *Confidence: ${Math.round(analysis.confidence * 100)}%*
158
-
159
- ---
160
-
161
- Would you like me to:
162
- - A) Launch full autonomous workflow
163
- - B) Create detailed breakdown first
164
- - C) Simpler approach (scout + worker only)
165
- `;
166
- }
167
- return "Unknown complexity";
168
- }
169
- export default async function autonomousSubagentExtension(pi) {
170
- console.log("[AutonomousSubagent] Extension loaded");
171
- // Register tool for analysis (used by agent or accessible directly)
172
- pi.registerTool({
173
- name: "analyze_task",
174
- label: "Analyze Task Complexity",
175
- description: "Analyze task complexity and suggest delegation strategy",
176
- parameters: Type.Object({
177
- task: Type.String({ description: "Task to analyze" }),
178
- }),
179
- async execute(_toolCallId, params, _signal, _onUpdate, _ctx) {
180
- const task = params.task;
181
- const analysis = analyzeTask(task);
182
- return {
183
- content: [
184
- {
185
- type: "text",
186
- text: `**Task Analysis:**
187
-
188
- **Task:** ${task}
189
-
190
- **Complexity:** ${analysis.complexity}
191
- **Estimated Files:** ${analysis.estimatedFiles}
192
- **Requires Research:** ${analysis.requiresResearch ? "Yes" : "No"}
193
- **Requires Planning:** ${analysis.requiresPlanning ? "Yes" : "No"}
194
- **Confidence:** ${Math.round(analysis.confidence * 100)}%
195
-
196
- **Suggested Strategy:**
197
- ${analysis.suggestedStrategy}
198
-
199
- **Recommendation:**
200
- ${analysis.complexity === "simple"
201
- ? "Handle directly without subagents."
202
- : analysis.complexity === "medium"
203
- ? "Use /implement or delegate to scout + worker."
204
- : "Consider full workflow with planner and multiple workers."}`,
205
- },
206
- ],
207
- details: analysis,
208
- };
209
- },
210
- });
211
- // TOOL: autonomous_delegation
212
- pi.registerTool({
213
- name: "autonomous_delegation",
214
- label: "Autonomous Task Delegation",
215
- description: "Automatically delegate task to appropriate subagents based on analysis",
216
- parameters: Type.Object({
217
- task: Type.String({ description: "Task to delegate" }),
218
- mode: Type.Optional(Type.String({
219
- description: "Override autonomy mode (simple/medium/complex/always)",
220
- })),
221
- dry_run: Type.Optional(Type.Boolean({
222
- description: "Show plan without executing",
223
- default: false,
224
- })),
225
- }),
226
- async execute(_toolCallId, params, _signal, _onUpdate, ctx) {
227
- const task = params.task;
228
- // Override mode if specified
229
- if (params.mode) {
230
- autonomyConfig.mode = params.mode;
231
- }
232
- const analysis = analyzeTask(task);
233
- // Execute strategy (or dry run)
234
- const result = params.dry_run
235
- ? `**DRY RUN - Delegation Plan**
236
-
237
- Task: "${task}"
238
-
239
- Analysis:
240
- - Complexity: ${analysis.complexity}
241
- - Strategy: ${analysis.suggestedStrategy}
242
- - Estimated files: ${analysis.estimatedFiles}
243
- - Autonomy mode: ${autonomyConfig.mode}
244
-
245
- Would execute: ${analysis.complexity === "simple"
246
- ? "Direct execution (no subagents)"
247
- : analysis.complexity === "medium"
248
- ? "Scout → Worker"
249
- : "Full workflow"}`
250
- : await executeStrategy(task, analysis, ctx);
251
- return {
252
- content: [{ type: "text", text: result }],
253
- details: { analysis, executed: !params.dry_run, dry_run: !!params.dry_run },
254
- };
255
- },
256
- });
257
- // COMMAND: /autonomous-toggle
258
- pi.registerCommand("autonomous-toggle", {
259
- description: "Toggle autonomous subagent mode",
260
- handler: async (args, ctx) => {
261
- const mode = args.trim();
262
- if (mode) {
263
- if (["off", "simple", "medium", "complex", "always"].includes(mode)) {
264
- autonomyConfig.mode = mode;
265
- ctx.ui.notify(`✅ Autonomous mode set to: ${mode}`, "info");
266
- }
267
- else {
268
- ctx.ui.notify("❌ Invalid mode. Use: off, simple, medium, complex, always", "error");
269
- }
270
- }
271
- else {
272
- // Toggle
273
- autonomyConfig.mode =
274
- autonomyConfig.mode === "off" ? "medium" : "off";
275
- ctx.ui.notify(`🔄 Autonomous mode: ${autonomyConfig.mode === "off" ? "OFF" : "ON"} (${autonomyConfig.mode})`, "info");
276
- }
277
- },
278
- });
279
- // COMMAND: /autonomous-status
280
- pi.registerCommand("autonomous-status", {
281
- description: "Show autonomous subagent status",
282
- handler: async (_args, ctx) => {
283
- ctx.ui.notify(`🤖 Autonomous Mode: ${autonomyConfig.mode}\nMax agents: ${autonomyConfig.maxParallelAgents}`, "info");
284
- },
285
- });
286
- // COMMAND: /delegation-plan
287
- pi.registerCommand("delegation-plan", {
288
- description: "Show delegation plan for a task: /delegation-plan <task>",
289
- handler: async (args, ctx) => {
290
- if (!args.trim()) {
291
- ctx.ui.notify("❌ Usage: /delegation-plan <task description>", "error");
292
- return;
293
- }
294
- const analysis = analyzeTask(args);
295
- ctx.ui.notify(`**Delegation Plan:**
296
- Task: ${args}
297
- Complexity: ${analysis.complexity}
298
- Strategy: ${analysis.suggestedStrategy}
299
- Confidence: ${Math.round(analysis.confidence * 100)}%`, "info");
300
- },
301
- });
302
- // COMMAND: /implement (enhanced with auto-detection)
303
- pi.registerCommand("implement", {
304
- description: "Implement with auto-delegation. Says what it will do first.",
305
- handler: async (args, ctx) => {
306
- if (!args.trim()) {
307
- ctx.ui.notify("❌ Usage: /implement <feature description>", "error");
308
- return;
309
- }
310
- const analysis = analyzeTask(args);
311
- // Show analysis
312
- ctx.ui.notify(`🤖 Analyzing: "${args}"
313
- Complexity: ${analysis.complexity}
314
- Strategy: ${analysis.suggestedStrategy}
315
- Confidence: ${Math.round(analysis.confidence * 100)}%`, "info");
316
- // If simple, just do it
317
- if (analysis.complexity === "simple" &&
318
- autonomyConfig.mode !== "always") {
319
- ctx.ui.notify("Task is simple. Handle directly without subagents.", "info");
320
- return;
321
- }
322
- // Otherwise, execute strategy
323
- const result = await executeStrategy(args, analysis, ctx);
324
- ctx.ui.notify(result, "info");
325
- },
326
- });
327
- // Notify mode on startup
328
- console.log(`[AutonomousSubagent] Mode: ${autonomyConfig.mode}, Max agents: ${autonomyConfig.maxParallelAgents}`);
329
- console.log(`[AutonomousSubagent] Agent will automatically use subagents for ${autonomyConfig.mode === "off"
330
- ? "no"
331
- : autonomyConfig.mode} tasks`);
332
- }
333
- //# sourceMappingURL=autonomous-subagent-extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"autonomous-subagent-extension.js","sourceRoot":"","sources":["../../../../../src/extensions/core/deprecated/autonomous-subagent-extension.ts"],"names":[],"mappings":"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"}