@polpo-ai/node 0.11.1 → 0.12.1
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/adapters/index.d.ts +1 -1
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +1 -3
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/loop-engine.d.ts +1 -1
- package/dist/adapters/loop-engine.d.ts.map +1 -1
- package/dist/adapters/loop-engine.js +2 -61
- package/dist/adapters/loop-engine.js.map +1 -1
- package/dist/adapters/{engine.d.ts → spawn-helpers.d.ts} +3 -3
- package/dist/adapters/spawn-helpers.d.ts.map +1 -0
- package/dist/adapters/{engine.js → spawn-helpers.js} +9 -4
- package/dist/adapters/spawn-helpers.js.map +1 -0
- package/dist/assessment/llm-review.js +1 -1
- package/dist/assessment/llm-review.js.map +1 -1
- package/dist/core/assessment-orchestrator.js +2 -2
- package/dist/core/assessment-orchestrator.js.map +1 -1
- package/dist/core/deadlock-resolver.js +3 -3
- package/dist/core/deadlock-resolver.js.map +1 -1
- package/dist/core/index.d.ts +1 -4
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +0 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/orchestrator.d.ts +8 -216
- package/dist/core/orchestrator.d.ts.map +1 -1
- package/dist/core/orchestrator.js +21 -164
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/core/question-detector.js +1 -1
- package/dist/core/question-detector.js.map +1 -1
- package/dist/core/runner.js +3 -3
- package/dist/core/runner.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/llm/index.d.ts +2 -3
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +1 -2
- package/dist/llm/index.js.map +1 -1
- package/dist/llm/skills/discovery.d.ts +237 -0
- package/dist/llm/skills/discovery.d.ts.map +1 -0
- package/dist/llm/skills/discovery.js +748 -0
- package/dist/llm/skills/discovery.js.map +1 -0
- package/dist/llm/skills/index-store.d.ts +35 -0
- package/dist/llm/skills/index-store.d.ts.map +1 -0
- package/dist/llm/skills/index-store.js +66 -0
- package/dist/llm/skills/index-store.js.map +1 -0
- package/dist/llm/skills.d.ts +8 -260
- package/dist/llm/skills.d.ts.map +1 -1
- package/dist/llm/skills.js +8 -799
- package/dist/llm/skills.js.map +1 -1
- package/dist/server/app.js +68 -68
- package/dist/server/app.js.map +1 -1
- package/dist/server/deps.d.ts +4 -4
- package/dist/server/deps.d.ts.map +1 -1
- package/dist/server/routes/providers.js +1 -1
- package/dist/server/routes/providers.js.map +1 -1
- package/dist/setup/models.d.ts +1 -1
- package/dist/setup/models.d.ts.map +1 -1
- package/dist/setup/models.js +1 -1
- package/dist/setup/models.js.map +1 -1
- package/dist/setup/providers.js +1 -1
- package/dist/setup/providers.js.map +1 -1
- package/package.json +8 -8
- package/dist/adapters/engine.d.ts.map +0 -1
- package/dist/adapters/engine.js.map +0 -1
- package/dist/core/adapter.d.ts +0 -62
- package/dist/core/adapter.d.ts.map +0 -1
- package/dist/core/adapter.js +0 -2
- package/dist/core/adapter.js.map +0 -1
- package/dist/core/drizzle-sqlite-schema.d.ts +0 -8
- package/dist/core/drizzle-sqlite-schema.d.ts.map +0 -1
- package/dist/core/drizzle-sqlite-schema.js +0 -250
- package/dist/core/drizzle-sqlite-schema.js.map +0 -1
- package/dist/llm/pi-client.d.ts +0 -8
- package/dist/llm/pi-client.d.ts.map +0 -1
- package/dist/llm/pi-client.js +0 -8
- package/dist/llm/pi-client.js.map +0 -1
- package/dist/llm/prompts.d.ts +0 -14
- package/dist/llm/prompts.d.ts.map +0 -1
- package/dist/llm/prompts.js +0 -1618
- package/dist/llm/prompts.js.map +0 -1
|
@@ -5,7 +5,7 @@ import { OrchestratorEngine } from "@polpo-ai/core";
|
|
|
5
5
|
import { TypedEmitter } from "./events.js";
|
|
6
6
|
import type { TaskStore } from "@polpo-ai/core/task-store";
|
|
7
7
|
import type { RunStore } from "@polpo-ai/core/run-store";
|
|
8
|
-
import type { PolpoConfig,
|
|
8
|
+
import type { PolpoConfig, Team } from "@polpo-ai/core/types";
|
|
9
9
|
import { buildFixPrompt, buildRetryPrompt } from "@polpo-ai/core/assessment-prompts";
|
|
10
10
|
import type { AssessFn } from "@polpo-ai/core/orchestrator-context";
|
|
11
11
|
import type { GatewayConfig } from "@polpo-ai/llm";
|
|
@@ -16,7 +16,6 @@ import { SLAMonitor } from "../quality/sla-monitor.js";
|
|
|
16
16
|
import { QualityController } from "../quality/quality-controller.js";
|
|
17
17
|
import { Scheduler } from "../scheduling/scheduler.js";
|
|
18
18
|
import { TaskWatcherManager } from "@polpo-ai/core/task-watcher";
|
|
19
|
-
import type { ApprovalRequest, ApprovalStatus } from "@polpo-ai/core/types";
|
|
20
19
|
import type { VaultStore } from "@polpo-ai/core/vault-store";
|
|
21
20
|
import type { PlaybookStore } from "@polpo-ai/core/playbook-store";
|
|
22
21
|
import type { Spawner } from "@polpo-ai/core/spawner";
|
|
@@ -69,7 +68,13 @@ export declare class Orchestrator extends TypedEmitter {
|
|
|
69
68
|
private missionExec;
|
|
70
69
|
private runner;
|
|
71
70
|
private assessor;
|
|
72
|
-
private
|
|
71
|
+
private _engine;
|
|
72
|
+
/**
|
|
73
|
+
* The pure orchestration engine — task/mission/agent/approval/memory
|
|
74
|
+
* operations live here. Exposed read-only (0.12 API): callers invoke
|
|
75
|
+
* `orchestrator.engine.<method>()` directly instead of façade pass-throughs.
|
|
76
|
+
*/
|
|
77
|
+
get engine(): OrchestratorEngine;
|
|
73
78
|
getWorkDir(): string;
|
|
74
79
|
getAgentWorkDir(): string;
|
|
75
80
|
getHooks(): HookRegistry;
|
|
@@ -112,40 +117,6 @@ export declare class Orchestrator extends TypedEmitter {
|
|
|
112
117
|
* Uses a 500ms debounce to avoid reloading multiple times on rapid saves.
|
|
113
118
|
*/
|
|
114
119
|
private startConfigWatcher;
|
|
115
|
-
addTask(opts: {
|
|
116
|
-
title: string;
|
|
117
|
-
description: string;
|
|
118
|
-
assignTo: string;
|
|
119
|
-
expectations?: TaskExpectation[];
|
|
120
|
-
expectedOutcomes?: ExpectedOutcome[];
|
|
121
|
-
dependsOn?: string[];
|
|
122
|
-
group?: string;
|
|
123
|
-
maxDuration?: number;
|
|
124
|
-
retryPolicy?: RetryPolicy;
|
|
125
|
-
notifications?: ScopedNotificationRules;
|
|
126
|
-
sideEffects?: boolean;
|
|
127
|
-
draft?: boolean;
|
|
128
|
-
}): Promise<Task>;
|
|
129
|
-
updateTaskDescription(taskId: string, description: string): Promise<void>;
|
|
130
|
-
updateTaskAssignment(taskId: string, agentName: string): Promise<void>;
|
|
131
|
-
updateTaskExpectations(taskId: string, expectations: TaskExpectation[]): Promise<void>;
|
|
132
|
-
retryTask(taskId: string): Promise<void>;
|
|
133
|
-
reassessTask(taskId: string): Promise<void>;
|
|
134
|
-
killTask(taskId: string): Promise<boolean>;
|
|
135
|
-
deleteTask(taskId: string): Promise<boolean>;
|
|
136
|
-
abortGroup(group: string): Promise<number>;
|
|
137
|
-
clearTasks(filter: (task: Task) => boolean): Promise<number>;
|
|
138
|
-
forceFailTask(taskId: string): Promise<void>;
|
|
139
|
-
approveRequest(requestId: string, resolvedBy?: string, note?: string): Promise<ApprovalRequest | null>;
|
|
140
|
-
rejectRequest(requestId: string, feedback: string, resolvedBy?: string): Promise<ApprovalRequest | null>;
|
|
141
|
-
canRejectRequest(requestId: string): Promise<{
|
|
142
|
-
allowed: boolean;
|
|
143
|
-
rejectionCount: number;
|
|
144
|
-
maxRejections: number;
|
|
145
|
-
}>;
|
|
146
|
-
getPendingApprovals(): Promise<ApprovalRequest[]>;
|
|
147
|
-
getAllApprovals(status?: ApprovalStatus): Promise<ApprovalRequest[]>;
|
|
148
|
-
getApprovalRequest(id: string): Promise<ApprovalRequest | undefined>;
|
|
149
120
|
getStore(): TaskStore;
|
|
150
121
|
getRunStore(): RunStore;
|
|
151
122
|
getPolpoDir(): string;
|
|
@@ -164,147 +135,8 @@ export declare class Orchestrator extends TypedEmitter {
|
|
|
164
135
|
* Key: POLPO_VAULT_KEY env var or auto-generated ~/.polpo/vault.key.
|
|
165
136
|
*/
|
|
166
137
|
private initVaultStore;
|
|
167
|
-
getAgents(): Promise<AgentConfig[]>;
|
|
168
|
-
getTeams(): Promise<Team[]>;
|
|
169
|
-
getTeam(name?: string): Promise<Team | undefined>;
|
|
170
138
|
getConfig(): PolpoConfig | null;
|
|
171
139
|
get isInitialized(): boolean;
|
|
172
|
-
addTeam(team: Team): Promise<void>;
|
|
173
|
-
removeTeam(name: string): Promise<boolean>;
|
|
174
|
-
renameTeam(oldName: string, newName: string): Promise<void>;
|
|
175
|
-
addAgent(agent: AgentConfig, teamName?: string): Promise<void>;
|
|
176
|
-
removeAgent(name: string): Promise<boolean>;
|
|
177
|
-
updateAgent(name: string, updates: Partial<Omit<AgentConfig, "name">>): Promise<AgentConfig>;
|
|
178
|
-
findAgentTeam(name: string): Promise<Team | undefined>;
|
|
179
|
-
addVolatileAgent(agent: AgentConfig, group: string): Promise<void>;
|
|
180
|
-
cleanupVolatileAgents(group: string): Promise<number>;
|
|
181
|
-
saveMission(opts: {
|
|
182
|
-
data: string;
|
|
183
|
-
prompt?: string;
|
|
184
|
-
name?: string;
|
|
185
|
-
status?: MissionStatus;
|
|
186
|
-
notifications?: ScopedNotificationRules;
|
|
187
|
-
}): Promise<Mission>;
|
|
188
|
-
getMission(missionId: string): Promise<Mission | undefined>;
|
|
189
|
-
getMissionByName(name: string): Promise<Mission | undefined>;
|
|
190
|
-
getAllMissions(): Promise<Mission[]>;
|
|
191
|
-
updateMission(missionId: string, updates: Partial<Omit<Mission, "id">>): Promise<Mission>;
|
|
192
|
-
deleteMission(missionId: string): Promise<boolean>;
|
|
193
|
-
addMissionTask(missionId: string, task: {
|
|
194
|
-
title: string;
|
|
195
|
-
description: string;
|
|
196
|
-
assignTo?: string;
|
|
197
|
-
dependsOn?: string[];
|
|
198
|
-
expectations?: unknown[];
|
|
199
|
-
expectedOutcomes?: unknown[];
|
|
200
|
-
maxDuration?: number;
|
|
201
|
-
retryPolicy?: {
|
|
202
|
-
escalateAfter?: number;
|
|
203
|
-
fallbackAgent?: string;
|
|
204
|
-
};
|
|
205
|
-
notifications?: unknown;
|
|
206
|
-
}): Promise<Mission>;
|
|
207
|
-
updateMissionTask(missionId: string, taskTitle: string, updates: {
|
|
208
|
-
title?: string;
|
|
209
|
-
description?: string;
|
|
210
|
-
assignTo?: string;
|
|
211
|
-
dependsOn?: string[];
|
|
212
|
-
expectations?: unknown[];
|
|
213
|
-
expectedOutcomes?: unknown[];
|
|
214
|
-
maxDuration?: number;
|
|
215
|
-
retryPolicy?: {
|
|
216
|
-
escalateAfter?: number;
|
|
217
|
-
fallbackAgent?: string;
|
|
218
|
-
};
|
|
219
|
-
notifications?: unknown;
|
|
220
|
-
}): Promise<Mission>;
|
|
221
|
-
removeMissionTask(missionId: string, taskTitle: string): Promise<Mission>;
|
|
222
|
-
reorderMissionTasks(missionId: string, titles: string[]): Promise<Mission>;
|
|
223
|
-
addMissionCheckpoint(missionId: string, cp: {
|
|
224
|
-
name: string;
|
|
225
|
-
afterTasks: string[];
|
|
226
|
-
blocksTasks: string[];
|
|
227
|
-
notifyChannels?: string[];
|
|
228
|
-
message?: string;
|
|
229
|
-
}): Promise<Mission>;
|
|
230
|
-
updateMissionCheckpoint(missionId: string, name: string, updates: {
|
|
231
|
-
name?: string;
|
|
232
|
-
afterTasks?: string[];
|
|
233
|
-
blocksTasks?: string[];
|
|
234
|
-
notifyChannels?: string[];
|
|
235
|
-
message?: string;
|
|
236
|
-
}): Promise<Mission>;
|
|
237
|
-
removeMissionCheckpoint(missionId: string, name: string): Promise<Mission>;
|
|
238
|
-
addMissionQualityGate(missionId: string, gate: {
|
|
239
|
-
name: string;
|
|
240
|
-
afterTasks: string[];
|
|
241
|
-
blocksTasks: string[];
|
|
242
|
-
minScore?: number;
|
|
243
|
-
requireAllPassed?: boolean;
|
|
244
|
-
condition?: string;
|
|
245
|
-
notifyChannels?: string[];
|
|
246
|
-
}): Promise<Mission>;
|
|
247
|
-
updateMissionQualityGate(missionId: string, name: string, updates: {
|
|
248
|
-
name?: string;
|
|
249
|
-
afterTasks?: string[];
|
|
250
|
-
blocksTasks?: string[];
|
|
251
|
-
minScore?: number;
|
|
252
|
-
requireAllPassed?: boolean;
|
|
253
|
-
condition?: string;
|
|
254
|
-
notifyChannels?: string[];
|
|
255
|
-
}): Promise<Mission>;
|
|
256
|
-
removeMissionQualityGate(missionId: string, name: string): Promise<Mission>;
|
|
257
|
-
addMissionDelay(missionId: string, delay: {
|
|
258
|
-
name: string;
|
|
259
|
-
afterTasks: string[];
|
|
260
|
-
blocksTasks: string[];
|
|
261
|
-
duration: string;
|
|
262
|
-
notifyChannels?: string[];
|
|
263
|
-
message?: string;
|
|
264
|
-
}): Promise<Mission>;
|
|
265
|
-
updateMissionDelay(missionId: string, name: string, updates: {
|
|
266
|
-
name?: string;
|
|
267
|
-
afterTasks?: string[];
|
|
268
|
-
blocksTasks?: string[];
|
|
269
|
-
duration?: string;
|
|
270
|
-
notifyChannels?: string[];
|
|
271
|
-
message?: string;
|
|
272
|
-
}): Promise<Mission>;
|
|
273
|
-
removeMissionDelay(missionId: string, name: string): Promise<Mission>;
|
|
274
|
-
addMissionTeamMember(missionId: string, member: {
|
|
275
|
-
name: string;
|
|
276
|
-
role?: string;
|
|
277
|
-
model?: string;
|
|
278
|
-
[key: string]: unknown;
|
|
279
|
-
}): Promise<Mission>;
|
|
280
|
-
updateMissionTeamMember(missionId: string, memberName: string, updates: {
|
|
281
|
-
name?: string;
|
|
282
|
-
role?: string;
|
|
283
|
-
model?: string;
|
|
284
|
-
[key: string]: unknown;
|
|
285
|
-
}): Promise<Mission>;
|
|
286
|
-
removeMissionTeamMember(missionId: string, memberName: string): Promise<Mission>;
|
|
287
|
-
updateMissionNotifications(missionId: string, notifications: ScopedNotificationRules | null): Promise<Mission>;
|
|
288
|
-
/** Check if shared memory exists. */
|
|
289
|
-
hasMemory(): Promise<boolean>;
|
|
290
|
-
/** Get the full shared memory content. */
|
|
291
|
-
getMemory(): Promise<string>;
|
|
292
|
-
/** Overwrite the shared memory. */
|
|
293
|
-
saveMemory(content: string): Promise<void>;
|
|
294
|
-
/** Append a line to the shared memory. */
|
|
295
|
-
appendMemory(line: string): Promise<void>;
|
|
296
|
-
/** Replace a unique substring in the shared memory. */
|
|
297
|
-
updateMemory(oldText: string, newText: string): Promise<true | string>;
|
|
298
|
-
/** Check if memory exists for a specific agent. */
|
|
299
|
-
hasAgentMemory(agentName: string): Promise<boolean>;
|
|
300
|
-
/** Get the memory content for a specific agent. */
|
|
301
|
-
getAgentMemory(agentName: string): Promise<string>;
|
|
302
|
-
/** Overwrite the memory for a specific agent. */
|
|
303
|
-
saveAgentMemory(agentName: string, content: string): Promise<void>;
|
|
304
|
-
/** Append a line to a specific agent's memory. */
|
|
305
|
-
appendAgentMemory(agentName: string, line: string): Promise<void>;
|
|
306
|
-
/** Replace a unique substring in a specific agent's memory. */
|
|
307
|
-
updateAgentMemory(agentName: string, oldText: string, newText: string): Promise<true | string>;
|
|
308
140
|
/** Get the persistent log store. */
|
|
309
141
|
getLogStore(): LogStore | undefined;
|
|
310
142
|
/** Initialize the persistent log store and wire it as event sink. */
|
|
@@ -313,36 +145,6 @@ export declare class Orchestrator extends TypedEmitter {
|
|
|
313
145
|
getSessionStore(): SessionStore | undefined;
|
|
314
146
|
/** Initialize the chat session store. */
|
|
315
147
|
private initSessionStore;
|
|
316
|
-
getResumableMissions(): Promise<Mission[]>;
|
|
317
|
-
resumeMission(missionId: string, opts?: {
|
|
318
|
-
retryFailed?: boolean;
|
|
319
|
-
}): Promise<{
|
|
320
|
-
retried: number;
|
|
321
|
-
pending: number;
|
|
322
|
-
}>;
|
|
323
|
-
executeMission(missionId: string): Promise<{
|
|
324
|
-
tasks: Task[];
|
|
325
|
-
group: string;
|
|
326
|
-
}>;
|
|
327
|
-
/** Get all active (unresumed) checkpoints across all mission groups. */
|
|
328
|
-
getActiveCheckpoints(): {
|
|
329
|
-
group: string;
|
|
330
|
-
checkpointName: string;
|
|
331
|
-
checkpoint: import("@polpo-ai/core").MissionCheckpoint;
|
|
332
|
-
reachedAt: string;
|
|
333
|
-
}[];
|
|
334
|
-
/** Resume a checkpoint by mission group name and checkpoint name. Returns true if resumed. */
|
|
335
|
-
resumeCheckpoint(group: string, checkpointName: string): Promise<boolean>;
|
|
336
|
-
/** Resume a checkpoint by mission ID and checkpoint name. Returns true if resumed. */
|
|
337
|
-
resumeCheckpointByMissionId(missionId: string, checkpointName: string): Promise<boolean>;
|
|
338
|
-
/** Get all active (unexpired) delays across all mission groups. */
|
|
339
|
-
getActiveDelays(): {
|
|
340
|
-
group: string;
|
|
341
|
-
delayName: string;
|
|
342
|
-
delay: import("@polpo-ai/core").MissionDelay;
|
|
343
|
-
startedAt: string;
|
|
344
|
-
expiresAt: string;
|
|
345
|
-
}[];
|
|
346
148
|
/** Stop the supervisor loop (non-graceful — use gracefulStop for clean shutdown) */
|
|
347
149
|
stop(): void;
|
|
348
150
|
/**
|
|
@@ -360,14 +162,6 @@ export declare class Orchestrator extends TypedEmitter {
|
|
|
360
162
|
* Returns `true` if the config was successfully reloaded.
|
|
361
163
|
*/
|
|
362
164
|
reloadConfig(): Promise<boolean>;
|
|
363
|
-
/**
|
|
364
|
-
* Recover orphaned tasks on startup.
|
|
365
|
-
* Checks RunStore for active runs — if the runner PID is still alive,
|
|
366
|
-
* let it keep running (zero work lost). If PID is dead, clean up the run.
|
|
367
|
-
* Then requeue orphaned tasks to "pending" WITHOUT burning retry count
|
|
368
|
-
* (shutdown interrupts are not real failures).
|
|
369
|
-
*/
|
|
370
|
-
recoverOrphanedTasks(): Promise<number>;
|
|
371
165
|
private seedTasks;
|
|
372
166
|
/**
|
|
373
167
|
* Main supervisor loop. Runs until all tasks are done/failed.
|
|
@@ -381,7 +175,5 @@ export declare class Orchestrator extends TypedEmitter {
|
|
|
381
175
|
/** @internal — test access only */
|
|
382
176
|
private retryOrFail;
|
|
383
177
|
status(): Promise<void>;
|
|
384
|
-
/** Access the pure orchestration engine (for advanced use / testing). */
|
|
385
|
-
getEngine(): OrchestratorEngine;
|
|
386
178
|
}
|
|
387
179
|
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ import { MissionExecutor } from "@polpo-ai/core/mission-executor";
|
|
|
18
18
|
import { TaskRunner } from "@polpo-ai/core";
|
|
19
19
|
import { AssessmentOrchestrator } from "./assessment-orchestrator.js";
|
|
20
20
|
import { buildFixPrompt, buildRetryPrompt, sleep, } from "@polpo-ai/core/assessment-prompts";
|
|
21
|
-
import { setProviderOverrides, validateProviderKeys, setModelAllowlist } from "
|
|
21
|
+
import { setProviderOverrides, validateProviderKeys, setModelAllowlist } from "@polpo-ai/llm";
|
|
22
22
|
import { HookRegistry } from "@polpo-ai/core/hooks";
|
|
23
23
|
import { ApprovalManager } from "@polpo-ai/core/approval-manager";
|
|
24
24
|
import { FileApprovalStore } from "@polpo-ai/file-stores";
|
|
@@ -75,8 +75,14 @@ export class Orchestrator extends TypedEmitter {
|
|
|
75
75
|
missionExec;
|
|
76
76
|
runner;
|
|
77
77
|
assessor;
|
|
78
|
-
// Pure orchestration engine (
|
|
79
|
-
|
|
78
|
+
// Pure orchestration engine (owns tick, run, and all pure-logic methods)
|
|
79
|
+
_engine;
|
|
80
|
+
/**
|
|
81
|
+
* The pure orchestration engine — task/mission/agent/approval/memory
|
|
82
|
+
* operations live here. Exposed read-only (0.12 API): callers invoke
|
|
83
|
+
* `orchestrator.engine.<method>()` directly instead of façade pass-throughs.
|
|
84
|
+
*/
|
|
85
|
+
get engine() { return this._engine; }
|
|
80
86
|
getWorkDir() { return this.workDir; }
|
|
81
87
|
getAgentWorkDir() {
|
|
82
88
|
if (!this.cachedAgentWorkDir) {
|
|
@@ -151,10 +157,10 @@ export class Orchestrator extends TypedEmitter {
|
|
|
151
157
|
sqlite.exec("PRAGMA journal_mode = WAL");
|
|
152
158
|
sqlite.exec("PRAGMA synchronous = NORMAL");
|
|
153
159
|
sqlite.exec("PRAGMA foreign_keys = ON");
|
|
154
|
-
const { ensureSqliteSchema } = await import("./drizzle-sqlite-schema.js");
|
|
155
|
-
ensureSqliteSchema(sqlite);
|
|
156
160
|
const { drizzle } = await import("drizzle-orm/better-sqlite3");
|
|
157
161
|
const db = drizzle(sqlite);
|
|
162
|
+
const { migrateSqliteSchema } = await import("@polpo-ai/drizzle");
|
|
163
|
+
await migrateSqliteSchema(db);
|
|
158
164
|
this.drizzleStores = createSqliteStores(db);
|
|
159
165
|
return {
|
|
160
166
|
task: this.drizzleStores.taskStore,
|
|
@@ -299,7 +305,7 @@ export class Orchestrator extends TypedEmitter {
|
|
|
299
305
|
buildContext() {
|
|
300
306
|
return {
|
|
301
307
|
emitter: this,
|
|
302
|
-
|
|
308
|
+
taskStore: this.registry,
|
|
303
309
|
runStore: this.runStore,
|
|
304
310
|
memoryStore: this.memoryStore,
|
|
305
311
|
logStore: this.logStore,
|
|
@@ -321,7 +327,7 @@ export class Orchestrator extends TypedEmitter {
|
|
|
321
327
|
loadConfig: () => loadPolpoConfig(this.polpoDir),
|
|
322
328
|
saveConfig: (config) => savePolpoConfig(this.polpoDir, config),
|
|
323
329
|
queryLLM: async (prompt, model) => {
|
|
324
|
-
const { queryText, queryTextWithFallback, resolveModelSpec, estimateCost } = await import("
|
|
330
|
+
const { queryText, queryTextWithFallback, resolveModelSpec, estimateCost } = await import("@polpo-ai/llm");
|
|
325
331
|
const { withRetry } = await import("../llm/retry.js");
|
|
326
332
|
// If ModelConfig with fallbacks, use fallback-aware query
|
|
327
333
|
if (model && typeof model === "object" && model.fallbacks?.length > 0) {
|
|
@@ -416,7 +422,7 @@ export class Orchestrator extends TypedEmitter {
|
|
|
416
422
|
resolveDeadlock: (analysis, facade) => resolveDeadlock(analysis, this),
|
|
417
423
|
};
|
|
418
424
|
// Create the pure orchestration engine
|
|
419
|
-
this.
|
|
425
|
+
this._engine = new OrchestratorEngine({
|
|
420
426
|
ctx,
|
|
421
427
|
taskManager: this.taskMgr,
|
|
422
428
|
agentManager: this.agentMgr,
|
|
@@ -439,7 +445,7 @@ export class Orchestrator extends TypedEmitter {
|
|
|
439
445
|
return async (action) => {
|
|
440
446
|
switch (action.type) {
|
|
441
447
|
case "create_task": {
|
|
442
|
-
const task = await this.
|
|
448
|
+
const task = await this.engine.createTask({
|
|
443
449
|
title: action.title,
|
|
444
450
|
description: action.description,
|
|
445
451
|
assignTo: action.assignTo,
|
|
@@ -448,7 +454,7 @@ export class Orchestrator extends TypedEmitter {
|
|
|
448
454
|
return `Task created: [${task.id}] "${task.title}" → ${task.assignTo}`;
|
|
449
455
|
}
|
|
450
456
|
case "execute_mission": {
|
|
451
|
-
const mission = await resolveMissionStore({
|
|
457
|
+
const mission = await resolveMissionStore({ taskStore: this.registry }).getMission(action.missionId);
|
|
452
458
|
if (!mission)
|
|
453
459
|
throw new Error(`Mission "${action.missionId}" not found`);
|
|
454
460
|
const result = await this.missionExec.executeMission(action.missionId);
|
|
@@ -583,37 +589,9 @@ export class Orchestrator extends TypedEmitter {
|
|
|
583
589
|
this.emit("log", { level: "warn", message: `[watch] Failed to watch polpo.json: ${msg}` });
|
|
584
590
|
}
|
|
585
591
|
}
|
|
586
|
-
//
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
async updateTaskAssignment(taskId, agentName) { return this.engine.updateTaskAssignment(taskId, agentName); }
|
|
590
|
-
async updateTaskExpectations(taskId, expectations) { return this.engine.updateTaskExpectations(taskId, expectations); }
|
|
591
|
-
async retryTask(taskId) { return this.engine.retryTask(taskId); }
|
|
592
|
-
reassessTask(taskId) { return this.engine.reassessTask(taskId); }
|
|
593
|
-
async killTask(taskId) { return this.engine.killTask(taskId); }
|
|
594
|
-
async deleteTask(taskId) { return this.engine.deleteTask(taskId); }
|
|
595
|
-
async abortGroup(group) { return this.engine.abortGroup(group); }
|
|
596
|
-
async clearTasks(filter) { return this.engine.clearTasks(filter); }
|
|
597
|
-
async forceFailTask(taskId) { return this.engine.forceFailTask(taskId); }
|
|
598
|
-
// ── Approval Management (delegates to OrchestratorEngine) ──
|
|
599
|
-
async approveRequest(requestId, resolvedBy, note) {
|
|
600
|
-
return this.engine.approveRequest(requestId, resolvedBy, note);
|
|
601
|
-
}
|
|
602
|
-
async rejectRequest(requestId, feedback, resolvedBy) {
|
|
603
|
-
return this.engine.rejectRequest(requestId, feedback, resolvedBy);
|
|
604
|
-
}
|
|
605
|
-
async canRejectRequest(requestId) {
|
|
606
|
-
return this.engine.canRejectRequest(requestId);
|
|
607
|
-
}
|
|
608
|
-
async getPendingApprovals() {
|
|
609
|
-
return this.engine.getPendingApprovals();
|
|
610
|
-
}
|
|
611
|
-
async getAllApprovals(status) {
|
|
612
|
-
return this.engine.getAllApprovals(status);
|
|
613
|
-
}
|
|
614
|
-
async getApprovalRequest(id) {
|
|
615
|
-
return this.engine.getApprovalRequest(id);
|
|
616
|
-
}
|
|
592
|
+
// NOTE (0.12): task, approval, agent, mission, and memory operations are no
|
|
593
|
+
// longer mirrored here — call them on the exposed engine directly
|
|
594
|
+
// (`orchestrator.engine.createTask(...)`, `orchestrator.engine.getAgents()`, ...).
|
|
617
595
|
// ── Store Accessors ──
|
|
618
596
|
getStore() { return this.registry; }
|
|
619
597
|
getRunStore() { return this.runStore; }
|
|
@@ -641,102 +619,9 @@ export class Orchestrator extends TypedEmitter {
|
|
|
641
619
|
this.emit("log", { level: "warn", message: `Vault store init failed: ${msg}. Vault features disabled.` });
|
|
642
620
|
}
|
|
643
621
|
}
|
|
644
|
-
// ──
|
|
645
|
-
async getAgents() { return this.engine.getAgents(); }
|
|
646
|
-
async getTeams() { return this.engine.getTeams(); }
|
|
647
|
-
async getTeam(name) { return this.engine.getTeam(name); }
|
|
622
|
+
// ── Config Accessors ──
|
|
648
623
|
getConfig() { return this.config; }
|
|
649
624
|
get isInitialized() { return this.interactive; }
|
|
650
|
-
async addTeam(team) { return this.engine.addTeam(team); }
|
|
651
|
-
async removeTeam(name) { return this.engine.removeTeam(name); }
|
|
652
|
-
async renameTeam(oldName, newName) { return this.engine.renameTeam(oldName, newName); }
|
|
653
|
-
async addAgent(agent, teamName) { return this.engine.addAgent(agent, teamName); }
|
|
654
|
-
async removeAgent(name) { return this.engine.removeAgent(name); }
|
|
655
|
-
async updateAgent(name, updates) { return this.engine.updateAgent(name, updates); }
|
|
656
|
-
async findAgentTeam(name) { return this.engine.findAgentTeam(name); }
|
|
657
|
-
async addVolatileAgent(agent, group) { return this.engine.addVolatileAgent(agent, group); }
|
|
658
|
-
async cleanupVolatileAgents(group) { return this.engine.cleanupVolatileAgents(group); }
|
|
659
|
-
// ─── Mission Management (delegates to OrchestratorEngine → MissionExecutor) ──
|
|
660
|
-
async saveMission(opts) { return this.engine.saveMission(opts); }
|
|
661
|
-
async getMission(missionId) { return this.engine.getMission(missionId); }
|
|
662
|
-
async getMissionByName(name) { return this.engine.getMissionByName(name); }
|
|
663
|
-
async getAllMissions() { return this.engine.getAllMissions(); }
|
|
664
|
-
async updateMission(missionId, updates) { return this.engine.updateMission(missionId, updates); }
|
|
665
|
-
async deleteMission(missionId) { return this.engine.deleteMission(missionId); }
|
|
666
|
-
// ─── Atomic Mission Data Operations (delegates to OrchestratorEngine → MissionExecutor) ──
|
|
667
|
-
async addMissionTask(missionId, task) {
|
|
668
|
-
return this.engine.addMissionTask(missionId, task);
|
|
669
|
-
}
|
|
670
|
-
async updateMissionTask(missionId, taskTitle, updates) {
|
|
671
|
-
return this.engine.updateMissionTask(missionId, taskTitle, updates);
|
|
672
|
-
}
|
|
673
|
-
async removeMissionTask(missionId, taskTitle) {
|
|
674
|
-
return this.engine.removeMissionTask(missionId, taskTitle);
|
|
675
|
-
}
|
|
676
|
-
async reorderMissionTasks(missionId, titles) {
|
|
677
|
-
return this.engine.reorderMissionTasks(missionId, titles);
|
|
678
|
-
}
|
|
679
|
-
async addMissionCheckpoint(missionId, cp) {
|
|
680
|
-
return this.engine.addMissionCheckpoint(missionId, cp);
|
|
681
|
-
}
|
|
682
|
-
async updateMissionCheckpoint(missionId, name, updates) {
|
|
683
|
-
return this.engine.updateMissionCheckpoint(missionId, name, updates);
|
|
684
|
-
}
|
|
685
|
-
async removeMissionCheckpoint(missionId, name) {
|
|
686
|
-
return this.engine.removeMissionCheckpoint(missionId, name);
|
|
687
|
-
}
|
|
688
|
-
async addMissionQualityGate(missionId, gate) {
|
|
689
|
-
return this.engine.addMissionQualityGate(missionId, gate);
|
|
690
|
-
}
|
|
691
|
-
async updateMissionQualityGate(missionId, name, updates) {
|
|
692
|
-
return this.engine.updateMissionQualityGate(missionId, name, updates);
|
|
693
|
-
}
|
|
694
|
-
async removeMissionQualityGate(missionId, name) {
|
|
695
|
-
return this.engine.removeMissionQualityGate(missionId, name);
|
|
696
|
-
}
|
|
697
|
-
async addMissionDelay(missionId, delay) {
|
|
698
|
-
return this.engine.addMissionDelay(missionId, delay);
|
|
699
|
-
}
|
|
700
|
-
async updateMissionDelay(missionId, name, updates) {
|
|
701
|
-
return this.engine.updateMissionDelay(missionId, name, updates);
|
|
702
|
-
}
|
|
703
|
-
async removeMissionDelay(missionId, name) {
|
|
704
|
-
return this.engine.removeMissionDelay(missionId, name);
|
|
705
|
-
}
|
|
706
|
-
async addMissionTeamMember(missionId, member) {
|
|
707
|
-
return this.engine.addMissionTeamMember(missionId, member);
|
|
708
|
-
}
|
|
709
|
-
async updateMissionTeamMember(missionId, memberName, updates) {
|
|
710
|
-
return this.engine.updateMissionTeamMember(missionId, memberName, updates);
|
|
711
|
-
}
|
|
712
|
-
async removeMissionTeamMember(missionId, memberName) {
|
|
713
|
-
return this.engine.removeMissionTeamMember(missionId, memberName);
|
|
714
|
-
}
|
|
715
|
-
async updateMissionNotifications(missionId, notifications) {
|
|
716
|
-
return this.engine.updateMissionNotifications(missionId, notifications);
|
|
717
|
-
}
|
|
718
|
-
// ─── Shared Memory (delegates to OrchestratorEngine) ───
|
|
719
|
-
/** Check if shared memory exists. */
|
|
720
|
-
async hasMemory() { return this.engine.hasMemory(); }
|
|
721
|
-
/** Get the full shared memory content. */
|
|
722
|
-
async getMemory() { return this.engine.getMemory(); }
|
|
723
|
-
/** Overwrite the shared memory. */
|
|
724
|
-
async saveMemory(content) { return this.engine.saveMemory(content); }
|
|
725
|
-
/** Append a line to the shared memory. */
|
|
726
|
-
async appendMemory(line) { return this.engine.appendMemory(line); }
|
|
727
|
-
/** Replace a unique substring in the shared memory. */
|
|
728
|
-
async updateMemory(oldText, newText) { return this.engine.updateMemory(oldText, newText); }
|
|
729
|
-
// ─── Agent Memory (delegates to OrchestratorEngine) ───
|
|
730
|
-
/** Check if memory exists for a specific agent. */
|
|
731
|
-
async hasAgentMemory(agentName) { return this.engine.hasAgentMemory(agentName); }
|
|
732
|
-
/** Get the memory content for a specific agent. */
|
|
733
|
-
async getAgentMemory(agentName) { return this.engine.getAgentMemory(agentName); }
|
|
734
|
-
/** Overwrite the memory for a specific agent. */
|
|
735
|
-
async saveAgentMemory(agentName, content) { return this.engine.saveAgentMemory(agentName, content); }
|
|
736
|
-
/** Append a line to a specific agent's memory. */
|
|
737
|
-
async appendAgentMemory(agentName, line) { return this.engine.appendAgentMemory(agentName, line); }
|
|
738
|
-
/** Replace a unique substring in a specific agent's memory. */
|
|
739
|
-
async updateAgentMemory(agentName, oldText, newText) { return this.engine.updateAgentMemory(agentName, oldText, newText); }
|
|
740
625
|
/** Get the persistent log store. */
|
|
741
626
|
getLogStore() {
|
|
742
627
|
return this.logStore;
|
|
@@ -764,24 +649,6 @@ export class Orchestrator extends TypedEmitter {
|
|
|
764
649
|
}
|
|
765
650
|
catch { /* best-effort: non-critical */ }
|
|
766
651
|
}
|
|
767
|
-
// ─── Mission Resume / Execute (delegates to OrchestratorEngine → MissionExecutor) ──
|
|
768
|
-
async getResumableMissions() { return this.engine.getResumableMissions(); }
|
|
769
|
-
async resumeMission(missionId, opts) { return this.engine.resumeMission(missionId, opts); }
|
|
770
|
-
async executeMission(missionId) { return this.engine.executeMission(missionId); }
|
|
771
|
-
// ─── Checkpoints (delegates to OrchestratorEngine) ──
|
|
772
|
-
/** Get all active (unresumed) checkpoints across all mission groups. */
|
|
773
|
-
getActiveCheckpoints() { return this.engine.getActiveCheckpoints(); }
|
|
774
|
-
/** Resume a checkpoint by mission group name and checkpoint name. Returns true if resumed. */
|
|
775
|
-
async resumeCheckpoint(group, checkpointName) {
|
|
776
|
-
return this.engine.resumeCheckpoint(group, checkpointName);
|
|
777
|
-
}
|
|
778
|
-
/** Resume a checkpoint by mission ID and checkpoint name. Returns true if resumed. */
|
|
779
|
-
async resumeCheckpointByMissionId(missionId, checkpointName) {
|
|
780
|
-
return this.engine.resumeCheckpointByMissionId(missionId, checkpointName);
|
|
781
|
-
}
|
|
782
|
-
// ─── Delays (delegates to OrchestratorEngine) ─────
|
|
783
|
-
/** Get all active (unexpired) delays across all mission groups. */
|
|
784
|
-
getActiveDelays() { return this.engine.getActiveDelays(); }
|
|
785
652
|
/** Stop the supervisor loop (non-graceful — use gracefulStop for clean shutdown) */
|
|
786
653
|
stop() {
|
|
787
654
|
this.stopped = true;
|
|
@@ -954,14 +821,6 @@ export class Orchestrator extends TypedEmitter {
|
|
|
954
821
|
this.emit("config:reloaded", { timestamp: new Date().toISOString() });
|
|
955
822
|
return true;
|
|
956
823
|
}
|
|
957
|
-
/**
|
|
958
|
-
* Recover orphaned tasks on startup.
|
|
959
|
-
* Checks RunStore for active runs — if the runner PID is still alive,
|
|
960
|
-
* let it keep running (zero work lost). If PID is dead, clean up the run.
|
|
961
|
-
* Then requeue orphaned tasks to "pending" WITHOUT burning retry count
|
|
962
|
-
* (shutdown interrupts are not real failures).
|
|
963
|
-
*/
|
|
964
|
-
async recoverOrphanedTasks() { return this.engine.recoverOrphanedTasks(); }
|
|
965
824
|
async seedTasks() {
|
|
966
825
|
await this.taskMgr.seedTasks();
|
|
967
826
|
// Sync config cache from stores so state reflects authoritative data
|
|
@@ -1004,12 +863,10 @@ export class Orchestrator extends TypedEmitter {
|
|
|
1004
863
|
async status() {
|
|
1005
864
|
await this.init();
|
|
1006
865
|
// Emit log for CLI to consume
|
|
1007
|
-
const tasks = await this.registry.
|
|
866
|
+
const tasks = await this.registry.listTasks();
|
|
1008
867
|
const done = tasks.filter(t => t.status === "done");
|
|
1009
868
|
const failed = tasks.filter(t => t.status === "failed");
|
|
1010
869
|
this.emit("log", { level: "info", message: `Total: ${tasks.length} | Done: ${done.length} | Failed: ${failed.length}` });
|
|
1011
870
|
}
|
|
1012
|
-
/** Access the pure orchestration engine (for advanced use / testing). */
|
|
1013
|
-
getEngine() { return this.engine; }
|
|
1014
871
|
}
|
|
1015
872
|
//# sourceMappingURL=orchestrator.js.map
|