@polpo-ai/node 0.11.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.
Files changed (238) hide show
  1. package/LICENSE +13 -0
  2. package/dist/adapters/engine.d.ts +51 -0
  3. package/dist/adapters/engine.d.ts.map +1 -0
  4. package/dist/adapters/engine.js +316 -0
  5. package/dist/adapters/engine.js.map +1 -0
  6. package/dist/adapters/index.d.ts +2 -0
  7. package/dist/adapters/index.d.ts.map +1 -0
  8. package/dist/adapters/index.js +4 -0
  9. package/dist/adapters/index.js.map +1 -0
  10. package/dist/adapters/loop-engine.d.ts +36 -0
  11. package/dist/adapters/loop-engine.d.ts.map +1 -0
  12. package/dist/adapters/loop-engine.js +534 -0
  13. package/dist/adapters/loop-engine.js.map +1 -0
  14. package/dist/adapters/node-filesystem.d.ts +22 -0
  15. package/dist/adapters/node-filesystem.d.ts.map +1 -0
  16. package/dist/adapters/node-filesystem.js +59 -0
  17. package/dist/adapters/node-filesystem.js.map +1 -0
  18. package/dist/adapters/node-shell.d.ts +5 -0
  19. package/dist/adapters/node-shell.d.ts.map +1 -0
  20. package/dist/adapters/node-shell.js +34 -0
  21. package/dist/adapters/node-shell.js.map +1 -0
  22. package/dist/adapters/node-spawner.d.ts +14 -0
  23. package/dist/adapters/node-spawner.d.ts.map +1 -0
  24. package/dist/adapters/node-spawner.js +103 -0
  25. package/dist/adapters/node-spawner.js.map +1 -0
  26. package/dist/assessment/assessor.d.ts +6 -0
  27. package/dist/assessment/assessor.d.ts.map +1 -0
  28. package/dist/assessment/assessor.js +37 -0
  29. package/dist/assessment/assessor.js.map +1 -0
  30. package/dist/assessment/index.d.ts +6 -0
  31. package/dist/assessment/index.d.ts.map +1 -0
  32. package/dist/assessment/index.js +6 -0
  33. package/dist/assessment/index.js.map +1 -0
  34. package/dist/assessment/llm-review.d.ts +34 -0
  35. package/dist/assessment/llm-review.d.ts.map +1 -0
  36. package/dist/assessment/llm-review.js +669 -0
  37. package/dist/assessment/llm-review.js.map +1 -0
  38. package/dist/assessment/schemas.d.ts +5 -0
  39. package/dist/assessment/schemas.d.ts.map +1 -0
  40. package/dist/assessment/schemas.js +5 -0
  41. package/dist/assessment/schemas.js.map +1 -0
  42. package/dist/assessment/scoring.d.ts +5 -0
  43. package/dist/assessment/scoring.d.ts.map +1 -0
  44. package/dist/assessment/scoring.js +5 -0
  45. package/dist/assessment/scoring.js.map +1 -0
  46. package/dist/assessment/transcript-parser.d.ts +31 -0
  47. package/dist/assessment/transcript-parser.d.ts.map +1 -0
  48. package/dist/assessment/transcript-parser.js +203 -0
  49. package/dist/assessment/transcript-parser.js.map +1 -0
  50. package/dist/auth/index.d.ts +2 -0
  51. package/dist/auth/index.d.ts.map +1 -0
  52. package/dist/auth/index.js +4 -0
  53. package/dist/auth/index.js.map +1 -0
  54. package/dist/core/adapter.d.ts +62 -0
  55. package/dist/core/adapter.d.ts.map +1 -0
  56. package/dist/core/adapter.js +2 -0
  57. package/dist/core/adapter.js.map +1 -0
  58. package/dist/core/assessment-orchestrator.d.ts +18 -0
  59. package/dist/core/assessment-orchestrator.d.ts.map +1 -0
  60. package/dist/core/assessment-orchestrator.js +93 -0
  61. package/dist/core/assessment-orchestrator.js.map +1 -0
  62. package/dist/core/config.d.ts +17 -0
  63. package/dist/core/config.d.ts.map +1 -0
  64. package/dist/core/config.js +272 -0
  65. package/dist/core/config.js.map +1 -0
  66. package/dist/core/constants.d.ts +10 -0
  67. package/dist/core/constants.d.ts.map +1 -0
  68. package/dist/core/constants.js +11 -0
  69. package/dist/core/constants.js.map +1 -0
  70. package/dist/core/deadlock-resolver.d.ts +35 -0
  71. package/dist/core/deadlock-resolver.d.ts.map +1 -0
  72. package/dist/core/deadlock-resolver.js +317 -0
  73. package/dist/core/deadlock-resolver.js.map +1 -0
  74. package/dist/core/drizzle-sqlite-schema.d.ts +8 -0
  75. package/dist/core/drizzle-sqlite-schema.d.ts.map +1 -0
  76. package/dist/core/drizzle-sqlite-schema.js +250 -0
  77. package/dist/core/drizzle-sqlite-schema.js.map +1 -0
  78. package/dist/core/events.d.ts +26 -0
  79. package/dist/core/events.d.ts.map +1 -0
  80. package/dist/core/events.js +39 -0
  81. package/dist/core/events.js.map +1 -0
  82. package/dist/core/index.d.ts +37 -0
  83. package/dist/core/index.d.ts.map +1 -0
  84. package/dist/core/index.js +31 -0
  85. package/dist/core/index.js.map +1 -0
  86. package/dist/core/ink.d.ts +165 -0
  87. package/dist/core/ink.d.ts.map +1 -0
  88. package/dist/core/ink.js +445 -0
  89. package/dist/core/ink.js.map +1 -0
  90. package/dist/core/orchestrator.d.ts +387 -0
  91. package/dist/core/orchestrator.d.ts.map +1 -0
  92. package/dist/core/orchestrator.js +1015 -0
  93. package/dist/core/orchestrator.js.map +1 -0
  94. package/dist/core/question-detector.d.ts +19 -0
  95. package/dist/core/question-detector.d.ts.map +1 -0
  96. package/dist/core/question-detector.js +29 -0
  97. package/dist/core/question-detector.js.map +1 -0
  98. package/dist/core/runner.d.ts +14 -0
  99. package/dist/core/runner.d.ts.map +1 -0
  100. package/dist/core/runner.js +299 -0
  101. package/dist/core/runner.js.map +1 -0
  102. package/dist/core/session-reader.d.ts +46 -0
  103. package/dist/core/session-reader.d.ts.map +1 -0
  104. package/dist/core/session-reader.js +166 -0
  105. package/dist/core/session-reader.js.map +1 -0
  106. package/dist/index.d.ts +24 -0
  107. package/dist/index.d.ts.map +1 -0
  108. package/dist/index.js +29 -0
  109. package/dist/index.js.map +1 -0
  110. package/dist/llm/index.d.ts +8 -0
  111. package/dist/llm/index.d.ts.map +1 -0
  112. package/dist/llm/index.js +21 -0
  113. package/dist/llm/index.js.map +1 -0
  114. package/dist/llm/pi-client.d.ts +8 -0
  115. package/dist/llm/pi-client.d.ts.map +1 -0
  116. package/dist/llm/pi-client.js +8 -0
  117. package/dist/llm/pi-client.js.map +1 -0
  118. package/dist/llm/prompts.d.ts +14 -0
  119. package/dist/llm/prompts.d.ts.map +1 -0
  120. package/dist/llm/prompts.js +1618 -0
  121. package/dist/llm/prompts.js.map +1 -0
  122. package/dist/llm/retry.d.ts +5 -0
  123. package/dist/llm/retry.d.ts.map +1 -0
  124. package/dist/llm/retry.js +5 -0
  125. package/dist/llm/retry.js.map +1 -0
  126. package/dist/llm/skills.d.ts +265 -0
  127. package/dist/llm/skills.d.ts.map +1 -0
  128. package/dist/llm/skills.js +804 -0
  129. package/dist/llm/skills.js.map +1 -0
  130. package/dist/quality/index.d.ts +3 -0
  131. package/dist/quality/index.d.ts.map +1 -0
  132. package/dist/quality/index.js +3 -0
  133. package/dist/quality/index.js.map +1 -0
  134. package/dist/quality/quality-controller.d.ts +2 -0
  135. package/dist/quality/quality-controller.d.ts.map +1 -0
  136. package/dist/quality/quality-controller.js +2 -0
  137. package/dist/quality/quality-controller.js.map +1 -0
  138. package/dist/quality/sla-monitor.d.ts +2 -0
  139. package/dist/quality/sla-monitor.d.ts.map +1 -0
  140. package/dist/quality/sla-monitor.js +2 -0
  141. package/dist/quality/sla-monitor.js.map +1 -0
  142. package/dist/scheduling/cron.d.ts +2 -0
  143. package/dist/scheduling/cron.d.ts.map +1 -0
  144. package/dist/scheduling/cron.js +2 -0
  145. package/dist/scheduling/cron.js.map +1 -0
  146. package/dist/scheduling/index.d.ts +3 -0
  147. package/dist/scheduling/index.d.ts.map +1 -0
  148. package/dist/scheduling/index.js +3 -0
  149. package/dist/scheduling/index.js.map +1 -0
  150. package/dist/scheduling/scheduler.d.ts +2 -0
  151. package/dist/scheduling/scheduler.d.ts.map +1 -0
  152. package/dist/scheduling/scheduler.js +2 -0
  153. package/dist/scheduling/scheduler.js.map +1 -0
  154. package/dist/server/app.d.ts +19 -0
  155. package/dist/server/app.d.ts.map +1 -0
  156. package/dist/server/app.js +302 -0
  157. package/dist/server/app.js.map +1 -0
  158. package/dist/server/deps.d.ts +157 -0
  159. package/dist/server/deps.d.ts.map +1 -0
  160. package/dist/server/deps.js +9 -0
  161. package/dist/server/deps.js.map +1 -0
  162. package/dist/server/index.d.ts +43 -0
  163. package/dist/server/index.d.ts.map +1 -0
  164. package/dist/server/index.js +128 -0
  165. package/dist/server/index.js.map +1 -0
  166. package/dist/server/middleware/auth.d.ts +3 -0
  167. package/dist/server/middleware/auth.d.ts.map +1 -0
  168. package/dist/server/middleware/auth.js +35 -0
  169. package/dist/server/middleware/auth.js.map +1 -0
  170. package/dist/server/middleware/error.d.ts +15 -0
  171. package/dist/server/middleware/error.d.ts.map +1 -0
  172. package/dist/server/middleware/error.js +44 -0
  173. package/dist/server/middleware/error.js.map +1 -0
  174. package/dist/server/middleware/rate-limit.d.ts +16 -0
  175. package/dist/server/middleware/rate-limit.d.ts.map +1 -0
  176. package/dist/server/middleware/rate-limit.js +51 -0
  177. package/dist/server/middleware/rate-limit.js.map +1 -0
  178. package/dist/server/routes/config.d.ts +25 -0
  179. package/dist/server/routes/config.d.ts.map +1 -0
  180. package/dist/server/routes/config.js +446 -0
  181. package/dist/server/routes/config.js.map +1 -0
  182. package/dist/server/routes/files.d.ts +11 -0
  183. package/dist/server/routes/files.d.ts.map +1 -0
  184. package/dist/server/routes/files.js +514 -0
  185. package/dist/server/routes/files.js.map +1 -0
  186. package/dist/server/routes/filesystem.d.ts +3 -0
  187. package/dist/server/routes/filesystem.d.ts.map +1 -0
  188. package/dist/server/routes/filesystem.js +152 -0
  189. package/dist/server/routes/filesystem.js.map +1 -0
  190. package/dist/server/routes/providers.d.ts +7 -0
  191. package/dist/server/routes/providers.d.ts.map +1 -0
  192. package/dist/server/routes/providers.js +256 -0
  193. package/dist/server/routes/providers.js.map +1 -0
  194. package/dist/server/routes/skills.d.ts +11 -0
  195. package/dist/server/routes/skills.d.ts.map +1 -0
  196. package/dist/server/routes/skills.js +543 -0
  197. package/dist/server/routes/skills.js.map +1 -0
  198. package/dist/server/security.d.ts +34 -0
  199. package/dist/server/security.d.ts.map +1 -0
  200. package/dist/server/security.js +118 -0
  201. package/dist/server/security.js.map +1 -0
  202. package/dist/server/sse-bridge.d.ts +36 -0
  203. package/dist/server/sse-bridge.d.ts.map +1 -0
  204. package/dist/server/sse-bridge.js +110 -0
  205. package/dist/server/sse-bridge.js.map +1 -0
  206. package/dist/server/types.d.ts +69 -0
  207. package/dist/server/types.d.ts.map +1 -0
  208. package/dist/server/types.js +2 -0
  209. package/dist/server/types.js.map +1 -0
  210. package/dist/setup/env-persistence.d.ts +9 -0
  211. package/dist/setup/env-persistence.d.ts.map +1 -0
  212. package/dist/setup/env-persistence.js +42 -0
  213. package/dist/setup/env-persistence.js.map +1 -0
  214. package/dist/setup/index.d.ts +32 -0
  215. package/dist/setup/index.d.ts.map +1 -0
  216. package/dist/setup/index.js +24 -0
  217. package/dist/setup/index.js.map +1 -0
  218. package/dist/setup/models.d.ts +20 -0
  219. package/dist/setup/models.d.ts.map +1 -0
  220. package/dist/setup/models.js +33 -0
  221. package/dist/setup/models.js.map +1 -0
  222. package/dist/setup/providers.d.ts +26 -0
  223. package/dist/setup/providers.d.ts.map +1 -0
  224. package/dist/setup/providers.js +31 -0
  225. package/dist/setup/providers.js.map +1 -0
  226. package/dist/vault/encrypted-store.d.ts +45 -0
  227. package/dist/vault/encrypted-store.d.ts.map +1 -0
  228. package/dist/vault/encrypted-store.js +149 -0
  229. package/dist/vault/encrypted-store.js.map +1 -0
  230. package/dist/vault/index.d.ts +4 -0
  231. package/dist/vault/index.d.ts.map +1 -0
  232. package/dist/vault/index.js +3 -0
  233. package/dist/vault/index.js.map +1 -0
  234. package/dist/vault/resolver.d.ts +8 -0
  235. package/dist/vault/resolver.d.ts.map +1 -0
  236. package/dist/vault/resolver.js +8 -0
  237. package/dist/vault/resolver.js.map +1 -0
  238. package/package.json +76 -0
@@ -0,0 +1,387 @@
1
+ import type { SessionStore } from "@polpo-ai/core/session-store";
2
+ import type { MemoryStore } from "@polpo-ai/core/memory-store";
3
+ import type { LogStore } from "@polpo-ai/core/log-store";
4
+ import { OrchestratorEngine } from "@polpo-ai/core";
5
+ import { TypedEmitter } from "./events.js";
6
+ import type { TaskStore } from "@polpo-ai/core/task-store";
7
+ import type { RunStore } from "@polpo-ai/core/run-store";
8
+ import type { PolpoConfig, AgentConfig, Task, TaskExpectation, ExpectedOutcome, Team, Mission, MissionStatus, RetryPolicy, ScopedNotificationRules } from "@polpo-ai/core/types";
9
+ import { buildFixPrompt, buildRetryPrompt } from "@polpo-ai/core/assessment-prompts";
10
+ import type { AssessFn } from "@polpo-ai/core/orchestrator-context";
11
+ import type { GatewayConfig } from "@polpo-ai/llm";
12
+ import { HookRegistry } from "@polpo-ai/core/hooks";
13
+ import type { TeamStore } from "@polpo-ai/core/team-store";
14
+ import type { AgentStore } from "@polpo-ai/core/agent-store";
15
+ import { SLAMonitor } from "../quality/sla-monitor.js";
16
+ import { QualityController } from "../quality/quality-controller.js";
17
+ import { Scheduler } from "../scheduling/scheduler.js";
18
+ import { TaskWatcherManager } from "@polpo-ai/core/task-watcher";
19
+ import type { ApprovalRequest, ApprovalStatus } from "@polpo-ai/core/types";
20
+ import type { VaultStore } from "@polpo-ai/core/vault-store";
21
+ import type { PlaybookStore } from "@polpo-ai/core/playbook-store";
22
+ import type { Spawner } from "@polpo-ai/core/spawner";
23
+ import type { FileSystem } from "@polpo-ai/core/filesystem";
24
+ import type { Shell } from "@polpo-ai/core/shell";
25
+ export { buildFixPrompt, buildRetryPrompt };
26
+ export type { AssessFn };
27
+ export interface OrchestratorOptions {
28
+ workDir?: string;
29
+ store?: TaskStore;
30
+ runStore?: RunStore;
31
+ assessFn?: AssessFn;
32
+ spawner?: Spawner;
33
+ }
34
+ export declare class Orchestrator extends TypedEmitter {
35
+ private registry;
36
+ private runStore;
37
+ private config;
38
+ private polpoDir;
39
+ private workDir;
40
+ /** Cached resolved agent working directory (invalidated on config reload). */
41
+ private cachedAgentWorkDir;
42
+ private interactive;
43
+ private stopped;
44
+ private assessFn;
45
+ private spawner;
46
+ private injectedStore?;
47
+ private injectedRunStore?;
48
+ private memoryStore;
49
+ private logStore;
50
+ private sessionStore;
51
+ private hookRegistry;
52
+ private approvalMgr?;
53
+ private escalationMgr?;
54
+ private slaMonitor?;
55
+ private qualityController?;
56
+ private scheduler?;
57
+ private watcherMgr?;
58
+ private teamStore;
59
+ private agentStore;
60
+ private configWatcher?;
61
+ private configReloadTimer?;
62
+ private vaultStore?;
63
+ private playbookStore;
64
+ private fs;
65
+ private shell;
66
+ private gatewayConfig;
67
+ private agentMgr;
68
+ private taskMgr;
69
+ private missionExec;
70
+ private runner;
71
+ private assessor;
72
+ private engine;
73
+ getWorkDir(): string;
74
+ getAgentWorkDir(): string;
75
+ getHooks(): HookRegistry;
76
+ getSLAMonitor(): SLAMonitor | undefined;
77
+ getQualityController(): QualityController | undefined;
78
+ getScheduler(): Scheduler | undefined;
79
+ getWatcherManager(): TaskWatcherManager | undefined;
80
+ /** Re-point the orchestrator at a different project directory (before init). */
81
+ resetWorkDir(newWorkDir: string): void;
82
+ constructor(workDirOrOptions?: string | OrchestratorOptions);
83
+ /** Drizzle store bundle — populated when storage is "sqlite" or "postgres". */
84
+ private drizzleStores?;
85
+ /** Create task + run stores based on the configured storage backend. */
86
+ private createStores;
87
+ init(): Promise<void>;
88
+ /**
89
+ * Populate stores from the teams array passed to initInteractive().
90
+ * Idempotent — skips teams/agents that already exist in the store.
91
+ */
92
+ private populateStores;
93
+ private validateProviders;
94
+ /** Resolve the directory where agent processes will run (settings.workDir relative to project root). */
95
+ private resolveAgentWorkDir;
96
+ /** Build the shared OrchestratorContext used by all managers. */
97
+ private buildContext;
98
+ /** Create manager instances with shared context. */
99
+ private initManagers;
100
+ /**
101
+ * Build the action executor callback — handles create_task, execute_mission,
102
+ * run_script actions triggered by task watchers.
103
+ */
104
+ private buildActionExecutor;
105
+ /**
106
+ * Initialize for interactive mode.
107
+ * Creates .polpo dir and a minimal config from provided team info.
108
+ */
109
+ initInteractive(project: string, teams: Team | Team[]): Promise<void>;
110
+ /**
111
+ * Watch `.polpo/polpo.json` for changes and auto-reload the config.
112
+ * Uses a 500ms debounce to avoid reloading multiple times on rapid saves.
113
+ */
114
+ 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
+ getStore(): TaskStore;
150
+ getRunStore(): RunStore;
151
+ getPolpoDir(): string;
152
+ getMemoryStore(): MemoryStore;
153
+ getVaultStore(): VaultStore | undefined;
154
+ getPlaybookStore(): PlaybookStore;
155
+ getTeamStore(): TeamStore;
156
+ getFs(): FileSystem;
157
+ getShell(): Shell;
158
+ getGatewayConfig(): GatewayConfig | undefined;
159
+ getAgentStore(): AgentStore;
160
+ /**
161
+ * Initialize the vault store.
162
+ * When storage is "sqlite" or "postgres", uses DrizzleVaultStore (AES-256-GCM encrypted in DB).
163
+ * Otherwise falls back to EncryptedVaultStore (file-based, .polpo/vault.enc).
164
+ * Key: POLPO_VAULT_KEY env var or auto-generated ~/.polpo/vault.key.
165
+ */
166
+ private initVaultStore;
167
+ getAgents(): Promise<AgentConfig[]>;
168
+ getTeams(): Promise<Team[]>;
169
+ getTeam(name?: string): Promise<Team | undefined>;
170
+ getConfig(): PolpoConfig | null;
171
+ 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
+ /** Get the persistent log store. */
309
+ getLogStore(): LogStore | undefined;
310
+ /** Initialize the persistent log store and wire it as event sink. */
311
+ private initLogStore;
312
+ /** Get the chat session store. */
313
+ getSessionStore(): SessionStore | undefined;
314
+ /** Initialize the chat session store. */
315
+ 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
+ /** Stop the supervisor loop (non-graceful — use gracefulStop for clean shutdown) */
347
+ stop(): void;
348
+ /**
349
+ * Graceful shutdown: SIGTERM all runner subprocesses, wait for them to write results,
350
+ * preserve completed work, leave in-progress tasks for recovery on restart.
351
+ */
352
+ gracefulStop(timeoutMs?: number): Promise<void>;
353
+ /**
354
+ * Reload polpo.json at runtime without restarting the server.
355
+ * Disposes optional subsystems (approvals, escalation, SLA,
356
+ * quality, scheduler) and re-initializes them from the
357
+ * freshly-read config. Core managers (agents, tasks, missions, runner,
358
+ * assessor) and stores are left untouched — live state is preserved.
359
+ *
360
+ * Returns `true` if the config was successfully reloaded.
361
+ */
362
+ 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
+ private seedTasks;
372
+ /**
373
+ * Main supervisor loop. Runs until all tasks are done/failed.
374
+ * In interactive mode, keeps running and waits for new tasks.
375
+ */
376
+ run(): Promise<void>;
377
+ /**
378
+ * Single tick of the supervisor loop. Returns true when all work is done.
379
+ */
380
+ tick(): Promise<boolean>;
381
+ /** @internal — test access only */
382
+ private retryOrFail;
383
+ status(): Promise<void>;
384
+ /** Access the pure orchestration engine (for advanced use / testing). */
385
+ getEngine(): OrchestratorEngine;
386
+ }
387
+ //# sourceMappingURL=orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"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"}