genieceo 0.1.3 → 0.1.5
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/README.md +24 -0
- package/dist/agent/index.d.ts +4 -0
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +202 -0
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/loop.d.ts +1 -1
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +2 -1
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/service/manager.d.ts +75 -0
- package/dist/agent/service/manager.d.ts.map +1 -0
- package/dist/agent/service/manager.js +399 -0
- package/dist/agent/service/manager.js.map +1 -0
- package/dist/agent/staff/manager.d.ts +88 -0
- package/dist/agent/staff/manager.d.ts.map +1 -0
- package/dist/agent/staff/manager.js +295 -0
- package/dist/agent/staff/manager.js.map +1 -0
- package/dist/cli/commands/chat.d.ts +1 -0
- package/dist/cli/commands/chat.d.ts.map +1 -1
- package/dist/cli/commands/chat.js +41 -25
- package/dist/cli/commands/chat.js.map +1 -1
- package/dist/cli/commands/onboard.d.ts.map +1 -1
- package/dist/cli/commands/onboard.js +210 -100
- package/dist/cli/commands/onboard.js.map +1 -1
- package/dist/cli/index.js +1 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/config/schema.d.ts +2 -2
- package/dist/memory/ceo.d.ts +131 -0
- package/dist/memory/ceo.d.ts.map +1 -0
- package/dist/memory/ceo.js +356 -0
- package/dist/memory/ceo.js.map +1 -0
- package/dist/memory/compaction.d.ts +59 -0
- package/dist/memory/compaction.d.ts.map +1 -0
- package/dist/memory/compaction.js +165 -0
- package/dist/memory/compaction.js.map +1 -0
- package/dist/memory/context-manager.d.ts +80 -0
- package/dist/memory/context-manager.d.ts.map +1 -0
- package/dist/memory/context-manager.js +246 -0
- package/dist/memory/context-manager.js.map +1 -0
- package/dist/memory/daily-log.d.ts +77 -0
- package/dist/memory/daily-log.d.ts.map +1 -0
- package/dist/memory/daily-log.js +302 -0
- package/dist/memory/daily-log.js.map +1 -0
- package/dist/memory/long-term.d.ts +65 -0
- package/dist/memory/long-term.d.ts.map +1 -0
- package/dist/memory/long-term.js +279 -0
- package/dist/memory/long-term.js.map +1 -0
- package/dist/memory/staff-loader.d.ts +67 -0
- package/dist/memory/staff-loader.d.ts.map +1 -0
- package/dist/memory/staff-loader.js +266 -0
- package/dist/memory/staff-loader.js.map +1 -0
- package/dist/providers/llm.d.ts +1 -0
- package/dist/providers/llm.d.ts.map +1 -1
- package/dist/providers/llm.js +28 -8
- package/dist/providers/llm.js.map +1 -1
- package/dist/tools/memory.d.ts +9 -0
- package/dist/tools/memory.d.ts.map +1 -0
- package/dist/tools/memory.js +125 -0
- package/dist/tools/memory.js.map +1 -0
- package/dist/tools/service.d.ts +9 -0
- package/dist/tools/service.d.ts.map +1 -0
- package/dist/tools/service.js +204 -0
- package/dist/tools/service.js.map +1 -0
- package/dist/tools/staff.d.ts +11 -0
- package/dist/tools/staff.d.ts.map +1 -0
- package/dist/tools/staff.js +276 -0
- package/dist/tools/staff.js.map +1 -0
- package/dist/tools/web.d.ts.map +1 -1
- package/dist/tools/web.js +106 -34
- package/dist/tools/web.js.map +1 -1
- package/dist/types/index.d.ts +81 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/workspace/manager.d.ts +4 -0
- package/dist/workspace/manager.d.ts.map +1 -1
- package/dist/workspace/manager.js +56 -0
- package/dist/workspace/manager.js.map +1 -1
- package/examples/README.md +123 -0
- package/examples/staff/api-builder.md +77 -0
- package/examples/staff/codebase-scanner.md +79 -0
- package/examples/staff/debugger.md +76 -0
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -12,6 +12,30 @@ genieceo is a powerful yet minimalist AI agent that helps you with tasks through
|
|
|
12
12
|
- 🤖 **Subagents**: Delegate complex tasks to background agents
|
|
13
13
|
- 🔄 **Provider-Agnostic**: Uses @mariozechner/pi-ai - supports 15+ providers with automatic model discovery
|
|
14
14
|
- 💾 **Workspace**: Persistent workspace for files, skills, and configuration
|
|
15
|
+
- 🧞 **NEW: GenieCEO Mode** - Multi-agent system with context engineering and service management
|
|
16
|
+
|
|
17
|
+
## 🆕 GenieCEO Multi-Agent Mode
|
|
18
|
+
|
|
19
|
+
Enable GenieCEO mode for advanced capabilities:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
genieceo chat --mode genieceo
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Key Features:**
|
|
26
|
+
- **Context Engineering**: Staff return ≤2K summaries from 200K context (40x savings)
|
|
27
|
+
- **Flexible Staff**: Define any staff (api-builder, debugger, security-auditor)
|
|
28
|
+
- **Service Management**: Build and run web servers, APIs, webhooks
|
|
29
|
+
- **Smart Memory**: Auto-compaction, long-term knowledge, daily logs
|
|
30
|
+
|
|
31
|
+
**Quick Example:**
|
|
32
|
+
```
|
|
33
|
+
"Define an api-builder staff that creates REST APIs"
|
|
34
|
+
"Spawn api-builder to build a blog API"
|
|
35
|
+
"Start the API as a service on port 3000"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
See [GENIECEO_BUILD_SUMMARY.md](GENIECEO_BUILD_SUMMARY.md) and [examples/](examples/) for details.
|
|
15
39
|
|
|
16
40
|
## 📦 Installation
|
|
17
41
|
|
package/dist/agent/index.d.ts
CHANGED
|
@@ -4,6 +4,10 @@ import { AgentLoop } from './loop';
|
|
|
4
4
|
* Initialize and create an agent instance with all tools and skills
|
|
5
5
|
*/
|
|
6
6
|
export declare function createAgent(config: Config): Promise<AgentLoop>;
|
|
7
|
+
/**
|
|
8
|
+
* Create GenieCEO agent with multi-agent system capabilities
|
|
9
|
+
*/
|
|
10
|
+
export declare function createGenieCEOAgent(config: Config): Promise<AgentLoop>;
|
|
7
11
|
export { AgentLoop } from './loop';
|
|
8
12
|
export { SubagentManager } from './subagent';
|
|
9
13
|
export { ContextBuilder } from './context';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAOvC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAuCpE;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAOvC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAuCpE;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA4M5E;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/agent/index.js
CHANGED
|
@@ -1,7 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.ContextBuilder = exports.SubagentManager = exports.AgentLoop = void 0;
|
|
4
37
|
exports.createAgent = createAgent;
|
|
38
|
+
exports.createGenieCEOAgent = createGenieCEOAgent;
|
|
5
39
|
const path_1 = require("path");
|
|
6
40
|
const base_1 = require("../tools/base");
|
|
7
41
|
const filesystem_1 = require("../tools/filesystem");
|
|
@@ -45,6 +79,174 @@ async function createAgent(config) {
|
|
|
45
79
|
const agent = new loop_1.AgentLoop(config, toolRegistry, skillLoader);
|
|
46
80
|
return agent;
|
|
47
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Create GenieCEO agent with multi-agent system capabilities
|
|
84
|
+
*/
|
|
85
|
+
async function createGenieCEOAgent(config) {
|
|
86
|
+
// Import GenieCEO-specific modules
|
|
87
|
+
const { GenieCEOMemoryStore } = await Promise.resolve().then(() => __importStar(require('../memory/ceo')));
|
|
88
|
+
const { StaffDefinitionLoader } = await Promise.resolve().then(() => __importStar(require('../memory/staff-loader')));
|
|
89
|
+
const { ContextManager } = await Promise.resolve().then(() => __importStar(require('../memory/context-manager')));
|
|
90
|
+
const { DailyLogSystem } = await Promise.resolve().then(() => __importStar(require('../memory/daily-log')));
|
|
91
|
+
const { LongTermMemory } = await Promise.resolve().then(() => __importStar(require('../memory/long-term')));
|
|
92
|
+
const { LLMProvider } = await Promise.resolve().then(() => __importStar(require('../providers/llm')));
|
|
93
|
+
const { ContextCompactionService } = await Promise.resolve().then(() => __importStar(require('../memory/compaction')));
|
|
94
|
+
const { StaffManager } = await Promise.resolve().then(() => __importStar(require('./staff/manager')));
|
|
95
|
+
const { ServiceManager } = await Promise.resolve().then(() => __importStar(require('./service/manager')));
|
|
96
|
+
const { registerStaffTools } = await Promise.resolve().then(() => __importStar(require('../tools/staff')));
|
|
97
|
+
const { registerServiceTools } = await Promise.resolve().then(() => __importStar(require('../tools/service')));
|
|
98
|
+
const { registerMemoryTools } = await Promise.resolve().then(() => __importStar(require('../tools/memory')));
|
|
99
|
+
// Initialize memory systems
|
|
100
|
+
const ceoMemory = new GenieCEOMemoryStore(config.workspace);
|
|
101
|
+
await ceoMemory.load();
|
|
102
|
+
const staffLoader = new StaffDefinitionLoader(config.workspace);
|
|
103
|
+
await staffLoader.loadDefinitions();
|
|
104
|
+
const contextManager = new ContextManager(config.workspace);
|
|
105
|
+
await contextManager.ensureDirectories();
|
|
106
|
+
const dailyLog = new DailyLogSystem(config.workspace);
|
|
107
|
+
const longTermMemory = new LongTermMemory(config.workspace);
|
|
108
|
+
const llmProvider = new LLMProvider(config);
|
|
109
|
+
const compactionService = new ContextCompactionService(ceoMemory, contextManager, llmProvider);
|
|
110
|
+
// Initialize tool registry
|
|
111
|
+
const toolRegistry = new base_1.ToolRegistry();
|
|
112
|
+
// Register standard tools
|
|
113
|
+
toolRegistry.register(filesystem_1.readFileTool);
|
|
114
|
+
toolRegistry.register(filesystem_1.writeFileTool);
|
|
115
|
+
toolRegistry.register(filesystem_1.listDirTool);
|
|
116
|
+
toolRegistry.register((0, shell_1.createExecuteCommandTool)(config));
|
|
117
|
+
toolRegistry.register((0, web_1.createWebSearchTool)(config));
|
|
118
|
+
// Initialize skill loader
|
|
119
|
+
const builtinSkillsPath = (0, path_1.join)(__dirname, '..', 'skills', 'builtin');
|
|
120
|
+
const workspaceSkillsPath = (0, path_1.join)(config.workspace, 'skills');
|
|
121
|
+
const skillLoader = new loader_1.SkillLoader(builtinSkillsPath, workspaceSkillsPath, config);
|
|
122
|
+
await skillLoader.loadSkills();
|
|
123
|
+
// Create staff manager
|
|
124
|
+
const staffManager = new StaffManager(staffLoader, ceoMemory, contextManager, dailyLog, compactionService, config, toolRegistry, skillLoader);
|
|
125
|
+
// Create service manager
|
|
126
|
+
const serviceManager = new ServiceManager(ceoMemory, dailyLog, config.workspace);
|
|
127
|
+
// Start service health monitoring
|
|
128
|
+
serviceManager.startMonitoring(30000); // Every 30s
|
|
129
|
+
// Register GenieCEO tools
|
|
130
|
+
registerStaffTools(toolRegistry, staffManager, contextManager, ceoMemory, dailyLog);
|
|
131
|
+
registerServiceTools(toolRegistry, serviceManager, dailyLog);
|
|
132
|
+
registerMemoryTools(toolRegistry, ceoMemory, longTermMemory);
|
|
133
|
+
// Build system prompt
|
|
134
|
+
const staffList = staffLoader
|
|
135
|
+
.getAllDefinitions()
|
|
136
|
+
.map(d => `- **${d.name}**: ${d.description}`)
|
|
137
|
+
.join('\n');
|
|
138
|
+
const runningServices = serviceManager.getRunningServices();
|
|
139
|
+
const servicesList = runningServices.length > 0
|
|
140
|
+
? runningServices.map(s => `- ${s.name} (${s.id}): ${s.type} on port ${s.port || 'N/A'}`).join('\n')
|
|
141
|
+
: '(None)';
|
|
142
|
+
const budget = ceoMemory.getContextBudget();
|
|
143
|
+
const systemPrompt = `# You are GenieCEO
|
|
144
|
+
|
|
145
|
+
An empowered multi-agent system that analyzes, builds, and runs applications.
|
|
146
|
+
|
|
147
|
+
## Context Engineering
|
|
148
|
+
|
|
149
|
+
**Your goal**: Keep your context clean (<50K tokens) while accomplishing complex tasks.
|
|
150
|
+
|
|
151
|
+
**How**: Delegate deep work to staff. They return ~2K summaries. Detailed work stays in files.
|
|
152
|
+
|
|
153
|
+
**Example**: Staff reads 80K tokens of code → returns 2K summary → you get 40x context savings
|
|
154
|
+
|
|
155
|
+
## Your Staff
|
|
156
|
+
|
|
157
|
+
${staffList || '(No staff defined - create as needed with defineStaff)'}
|
|
158
|
+
|
|
159
|
+
**Staff are flexible**: Create whatever you need - api-builder, debugger, security-auditor, deployer, etc.
|
|
160
|
+
|
|
161
|
+
## Service Management
|
|
162
|
+
|
|
163
|
+
**You can create and run applications**:
|
|
164
|
+
- Build web servers, APIs, webhooks, daemons
|
|
165
|
+
- Start them with startService (they keep running)
|
|
166
|
+
- Monitor health, view logs, restart if crashed
|
|
167
|
+
- Manage multiple services simultaneously
|
|
168
|
+
|
|
169
|
+
**Running Services (${runningServices.length})**:
|
|
170
|
+
${servicesList}
|
|
171
|
+
|
|
172
|
+
## Workflow
|
|
173
|
+
|
|
174
|
+
**For complex tasks**:
|
|
175
|
+
1. Define or spawn staff to handle deep work
|
|
176
|
+
2. Wait for completion (get ~2K summary)
|
|
177
|
+
3. Read plan files if you need full details
|
|
178
|
+
4. If building applications, use startService to run them
|
|
179
|
+
5. Curate learnings to long-term memory
|
|
180
|
+
|
|
181
|
+
**For simple tasks**:
|
|
182
|
+
- Handle directly (no staff overhead needed)
|
|
183
|
+
|
|
184
|
+
**Token Budget**: ${budget.genieCEOCurrentTokens} / ${budget.genieCEOMaxTokens}
|
|
185
|
+
- Check with: viewContextBudget
|
|
186
|
+
- Auto-compaction at 45K tokens
|
|
187
|
+
|
|
188
|
+
## Available Tools
|
|
189
|
+
|
|
190
|
+
**Staff Management**:
|
|
191
|
+
- defineStaff: Create new staff (api-builder, debugger, etc.)
|
|
192
|
+
- spawnStaff: Start staff on task
|
|
193
|
+
- waitForStaff: Get completion summary
|
|
194
|
+
- checkStaffStatus, listStaffTypes
|
|
195
|
+
- readStaffPlan: Read detailed findings
|
|
196
|
+
|
|
197
|
+
**Service Management**:
|
|
198
|
+
- startService: Run web servers, APIs, webhooks, daemons
|
|
199
|
+
- stopService, restartService
|
|
200
|
+
- listServices, checkServiceHealth
|
|
201
|
+
- viewServiceLogs: Debug services
|
|
202
|
+
|
|
203
|
+
**Memory**:
|
|
204
|
+
- remember/recall: Working memory (use sparingly)
|
|
205
|
+
- curateMemory: Save to long-term
|
|
206
|
+
- readLongTermMemory, searchMemory
|
|
207
|
+
|
|
208
|
+
**Standard**: readFile, writeFile, listDir, executeCommand, webSearch, etc.
|
|
209
|
+
|
|
210
|
+
## Guidelines
|
|
211
|
+
|
|
212
|
+
1. **Delegate deep work** - Staff keep your context clean
|
|
213
|
+
2. **Read plan files** - When summaries aren't enough
|
|
214
|
+
3. **Build applications** - Use staff + services
|
|
215
|
+
4. **Monitor services** - Check health, view logs
|
|
216
|
+
5. **Simple tasks** - Handle yourself (avoid overhead)
|
|
217
|
+
6. **Curate patterns** - Save learnings to long-term memory`;
|
|
218
|
+
// Create agent loop with custom hooks
|
|
219
|
+
const agent = new loop_1.AgentLoop(config, toolRegistry, skillLoader);
|
|
220
|
+
// Override system prompt
|
|
221
|
+
agent.systemPrompt = systemPrompt;
|
|
222
|
+
// Add cleanup hook
|
|
223
|
+
const originalRun = agent.run.bind(agent);
|
|
224
|
+
agent.run = async function (userMessage) {
|
|
225
|
+
try {
|
|
226
|
+
const result = await originalRun(userMessage);
|
|
227
|
+
// Save memory after each run
|
|
228
|
+
await ceoMemory.save();
|
|
229
|
+
// Auto-compact if needed
|
|
230
|
+
if (ceoMemory.shouldCompact()) {
|
|
231
|
+
console.log('\n⚠️ Context approaching limit, auto-compacting...');
|
|
232
|
+
const messages = await ceoMemory.getRecentMessages(100);
|
|
233
|
+
await compactionService.compactMessages(messages);
|
|
234
|
+
ceoMemory.recordCompaction();
|
|
235
|
+
console.log('✓ Context compacted\n');
|
|
236
|
+
}
|
|
237
|
+
return result;
|
|
238
|
+
}
|
|
239
|
+
catch (error) {
|
|
240
|
+
await ceoMemory.save();
|
|
241
|
+
throw error;
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
// Add reference to managers for CLI access
|
|
245
|
+
agent.ceoMemory = ceoMemory;
|
|
246
|
+
agent.serviceManager = serviceManager;
|
|
247
|
+
agent.staffManager = staffManager;
|
|
248
|
+
return agent;
|
|
249
|
+
}
|
|
48
250
|
var loop_2 = require("./loop");
|
|
49
251
|
Object.defineProperty(exports, "AgentLoop", { enumerable: true, get: function () { return loop_2.AgentLoop; } });
|
|
50
252
|
var subagent_2 = require("./subagent");
|
package/dist/agent/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/loop.d.ts
CHANGED
package/dist/agent/loop.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAAiB;gBAGrC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW;IAS1B;;OAEG;IACG,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiC/C;;OAEG;IACG,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,EAAE,GACrB,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IAmD/D;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,SAAS,IAAI,MAAM;CAGpB"}
|
package/dist/agent/loop.js
CHANGED
|
@@ -67,6 +67,7 @@ class AgentLoop {
|
|
|
67
67
|
// Generate response with automatic tool calling
|
|
68
68
|
const result = await this.llmProvider.generate(messages, tools, this.config.maxIterations);
|
|
69
69
|
// Update history with new exchange
|
|
70
|
+
// Assistant messages must have content as an array for pi-ai compatibility
|
|
70
71
|
const updatedHistory = [
|
|
71
72
|
...history,
|
|
72
73
|
{
|
|
@@ -75,7 +76,7 @@ class AgentLoop {
|
|
|
75
76
|
},
|
|
76
77
|
{
|
|
77
78
|
role: 'assistant',
|
|
78
|
-
content: result.text,
|
|
79
|
+
content: result.content || (result.text ? [{ type: 'text', text: result.text }] : []),
|
|
79
80
|
},
|
|
80
81
|
];
|
|
81
82
|
return {
|
package/dist/agent/loop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":";;;AACA,0CAA+C;AAG/C,uCAA2C;AAO3C;;;GAGG;AACH,MAAa,SAAS;IAOpB,YACE,MAAc,EACd,YAA0B,EAC1B,WAAwB;QAExB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,iBAAW,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,wBAAc,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,WAAmB;QAC3B,IAAI,CAAC;YACH,sBAAsB;YACtB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;YAEnE,mBAAmB;YACnB,MAAM,QAAQ,GAAkB;gBAC9B;oBACE,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,YAAY;iBACtB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,WAAW;iBACrB;aACF,CAAC;YAEF,4BAA4B;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAE9C,gDAAgD;YAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAC5C,QAAQ,EACR,KAAK,EACL,IAAI,CAAC,MAAM,CAAC,aAAa,CAC1B,CAAC;YAEF,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAClB,WAAmB,EACnB,OAAsB;QAEtB,IAAI,CAAC;YACH,sBAAsB;YACtB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;YAEnE,gCAAgC;YAChC,MAAM,QAAQ,GAAkB;gBAC9B;oBACE,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,YAAY;iBACtB;gBACD,GAAG,OAAO;gBACV;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,WAAW;iBACrB;aACF,CAAC;YAEF,4BAA4B;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAE9C,gDAAgD;YAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAC5C,QAAQ,EACR,KAAK,EACL,IAAI,CAAC,MAAM,CAAC,aAAa,CAC1B,CAAC;YAEF,mCAAmC;YACnC,MAAM,cAAc,GAAG;gBACrB,GAAG,OAAO;gBACV;oBACE,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE,WAAW;iBACrB;gBACD;oBACE,IAAI,EAAE,WAAoB;oBAC1B,OAAO,EAAE,MAAM,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ServiceManager - Manages long-running processes (empowerment)
|
|
3
|
+
*
|
|
4
|
+
* GenieCEO can create and run applications:
|
|
5
|
+
* - Web servers, APIs, webhooks, daemons
|
|
6
|
+
* - Start/stop/restart services
|
|
7
|
+
* - Health monitoring with auto-recovery
|
|
8
|
+
* - View logs for debugging
|
|
9
|
+
* - Manage multiple services simultaneously
|
|
10
|
+
*/
|
|
11
|
+
import { ServiceProcess } from '../../types';
|
|
12
|
+
import { GenieCEOMemoryStore } from '../../memory/ceo';
|
|
13
|
+
import { DailyLogSystem } from '../../memory/daily-log';
|
|
14
|
+
export declare class ServiceManager {
|
|
15
|
+
private ceoMemory;
|
|
16
|
+
private dailyLog;
|
|
17
|
+
private workspacePath;
|
|
18
|
+
private logsPath;
|
|
19
|
+
private monitorInterval?;
|
|
20
|
+
constructor(ceoMemory: GenieCEOMemoryStore, dailyLog: DailyLogSystem, workspacePath: string);
|
|
21
|
+
/**
|
|
22
|
+
* Start a new service
|
|
23
|
+
*/
|
|
24
|
+
startService(config: {
|
|
25
|
+
name: string;
|
|
26
|
+
type: ServiceProcess['type'];
|
|
27
|
+
command: string;
|
|
28
|
+
workingDir: string;
|
|
29
|
+
port?: number;
|
|
30
|
+
healthCheckUrl?: string;
|
|
31
|
+
autoRestart?: boolean;
|
|
32
|
+
env?: Record<string, string>;
|
|
33
|
+
}): Promise<ServiceProcess>;
|
|
34
|
+
/**
|
|
35
|
+
* Stop a running service
|
|
36
|
+
*/
|
|
37
|
+
stopService(id: string): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Restart a service
|
|
40
|
+
*/
|
|
41
|
+
restartService(id: string): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Spawn the actual process
|
|
44
|
+
*/
|
|
45
|
+
private spawnProcess;
|
|
46
|
+
/**
|
|
47
|
+
* Check if a service is healthy
|
|
48
|
+
*/
|
|
49
|
+
checkHealth(id: string): Promise<boolean>;
|
|
50
|
+
/**
|
|
51
|
+
* HTTP health check
|
|
52
|
+
*/
|
|
53
|
+
private httpHealthCheck;
|
|
54
|
+
/**
|
|
55
|
+
* Monitor all services (background task)
|
|
56
|
+
*/
|
|
57
|
+
monitorServices(): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Start background monitoring
|
|
60
|
+
*/
|
|
61
|
+
startMonitoring(intervalMs?: number): void;
|
|
62
|
+
/**
|
|
63
|
+
* Stop background monitoring
|
|
64
|
+
*/
|
|
65
|
+
stopMonitoring(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Get service logs
|
|
68
|
+
*/
|
|
69
|
+
getServiceLogs(id: string, lines?: number): Promise<string>;
|
|
70
|
+
getService(id: string): ServiceProcess | undefined;
|
|
71
|
+
getAllServices(): ServiceProcess[];
|
|
72
|
+
getRunningServices(): ServiceProcess[];
|
|
73
|
+
private generateServiceId;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/agent/service/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAMxD,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAC,CAAiB;gBAGvC,SAAS,EAAE,mBAAmB,EAC9B,QAAQ,EAAE,cAAc,EACxB,aAAa,EAAE,MAAM;IAYvB;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC9B,GAAG,OAAO,CAAC,cAAc,CAAC;IA0D3B;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8C5C;;OAEG;IACG,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC/C;;OAEG;YACW,YAAY;IA0F1B;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8B/C;;OAEG;YACW,eAAe;IAc7B;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBtC;;OAEG;IACH,eAAe,CAAC,UAAU,GAAE,MAAc,GAAG,IAAI;IAYjD;;OAEG;IACH,cAAc,IAAI,IAAI;IAWtB;;OAEG;IACG,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBrE,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIlD,cAAc,IAAI,cAAc,EAAE;IAIlC,kBAAkB,IAAI,cAAc,EAAE;IAQtC,OAAO,CAAC,iBAAiB;CAK1B"}
|