polpo-ai 0.10.13 → 0.11.0

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/dist/adapters/engine.d.ts +39 -11
  2. package/dist/adapters/engine.d.ts.map +1 -1
  3. package/dist/adapters/engine.js +48 -314
  4. package/dist/adapters/engine.js.map +1 -1
  5. package/dist/adapters/index.d.ts +1 -1
  6. package/dist/adapters/index.d.ts.map +1 -1
  7. package/dist/adapters/index.js +3 -1
  8. package/dist/adapters/index.js.map +1 -1
  9. package/dist/adapters/loop-engine.d.ts +36 -0
  10. package/dist/adapters/loop-engine.d.ts.map +1 -0
  11. package/dist/adapters/loop-engine.js +534 -0
  12. package/dist/adapters/loop-engine.js.map +1 -0
  13. package/dist/adapters/node-spawner.d.ts +2 -2
  14. package/dist/adapters/node-spawner.d.ts.map +1 -1
  15. package/dist/adapters/node-spawner.js +16 -0
  16. package/dist/adapters/node-spawner.js.map +1 -1
  17. package/dist/assessment/assessor.d.ts +1 -1
  18. package/dist/assessment/assessor.d.ts.map +1 -1
  19. package/dist/assessment/llm-review.d.ts +2 -2
  20. package/dist/assessment/llm-review.d.ts.map +1 -1
  21. package/dist/assessment/llm-review.js.map +1 -1
  22. package/dist/core/adapter.d.ts +3 -3
  23. package/dist/core/adapter.d.ts.map +1 -1
  24. package/dist/core/assessment-orchestrator.d.ts +1 -1
  25. package/dist/core/assessment-orchestrator.d.ts.map +1 -1
  26. package/dist/core/config.d.ts +1 -1
  27. package/dist/core/config.d.ts.map +1 -1
  28. package/dist/core/constants.d.ts +1 -6
  29. package/dist/core/constants.d.ts.map +1 -1
  30. package/dist/core/constants.js +2 -12
  31. package/dist/core/constants.js.map +1 -1
  32. package/dist/core/deadlock-resolver.d.ts +1 -1
  33. package/dist/core/deadlock-resolver.d.ts.map +1 -1
  34. package/dist/core/index.d.ts +22 -19
  35. package/dist/core/index.d.ts.map +1 -1
  36. package/dist/core/index.js +10 -8
  37. package/dist/core/index.js.map +1 -1
  38. package/dist/core/ink.d.ts +4 -4
  39. package/dist/core/ink.d.ts.map +1 -1
  40. package/dist/core/orchestrator.d.ts +16 -16
  41. package/dist/core/orchestrator.d.ts.map +1 -1
  42. package/dist/core/orchestrator.js +20 -20
  43. package/dist/core/orchestrator.js.map +1 -1
  44. package/dist/core/question-detector.d.ts +1 -1
  45. package/dist/core/question-detector.d.ts.map +1 -1
  46. package/dist/core/runner.js +11 -4
  47. package/dist/core/runner.js.map +1 -1
  48. package/dist/index.d.ts +2 -2
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +4 -3
  51. package/dist/index.js.map +1 -1
  52. package/dist/llm/prompts.d.ts +1 -1
  53. package/dist/llm/prompts.d.ts.map +1 -1
  54. package/dist/server/deps.d.ts +6 -6
  55. package/dist/server/deps.d.ts.map +1 -1
  56. package/dist/server/routes/config.js +3 -3
  57. package/dist/server/routes/config.js.map +1 -1
  58. package/dist/server/security.d.ts +1 -1
  59. package/dist/server/security.d.ts.map +1 -1
  60. package/dist/server/types.d.ts +2 -2
  61. package/dist/server/types.d.ts.map +1 -1
  62. package/dist/vault/encrypted-store.d.ts +2 -2
  63. package/dist/vault/encrypted-store.d.ts.map +1 -1
  64. package/dist/vault/index.d.ts +1 -1
  65. package/dist/vault/index.d.ts.map +1 -1
  66. package/dist/vault/resolver.d.ts +5 -57
  67. package/dist/vault/resolver.d.ts.map +1 -1
  68. package/dist/vault/resolver.js +5 -98
  69. package/dist/vault/resolver.js.map +1 -1
  70. package/package.json +14 -9
  71. package/dist/core/agent-manager.d.ts +0 -2
  72. package/dist/core/agent-manager.d.ts.map +0 -1
  73. package/dist/core/agent-manager.js +0 -2
  74. package/dist/core/agent-manager.js.map +0 -1
  75. package/dist/core/agent-store.d.ts +0 -6
  76. package/dist/core/agent-store.d.ts.map +0 -1
  77. package/dist/core/agent-store.js +0 -6
  78. package/dist/core/agent-store.js.map +0 -1
  79. package/dist/core/approval-manager.d.ts +0 -2
  80. package/dist/core/approval-manager.d.ts.map +0 -1
  81. package/dist/core/approval-manager.js +0 -2
  82. package/dist/core/approval-manager.js.map +0 -1
  83. package/dist/core/approval-store.d.ts +0 -6
  84. package/dist/core/approval-store.d.ts.map +0 -1
  85. package/dist/core/approval-store.js +0 -6
  86. package/dist/core/approval-store.js.map +0 -1
  87. package/dist/core/assessment-prompts.d.ts +0 -6
  88. package/dist/core/assessment-prompts.d.ts.map +0 -1
  89. package/dist/core/assessment-prompts.js +0 -6
  90. package/dist/core/assessment-prompts.js.map +0 -1
  91. package/dist/core/config-store.d.ts +0 -6
  92. package/dist/core/config-store.d.ts.map +0 -1
  93. package/dist/core/config-store.js +0 -6
  94. package/dist/core/config-store.js.map +0 -1
  95. package/dist/core/escalation-manager.d.ts +0 -2
  96. package/dist/core/escalation-manager.d.ts.map +0 -1
  97. package/dist/core/escalation-manager.js +0 -2
  98. package/dist/core/escalation-manager.js.map +0 -1
  99. package/dist/core/hooks.d.ts +0 -6
  100. package/dist/core/hooks.d.ts.map +0 -1
  101. package/dist/core/hooks.js +0 -6
  102. package/dist/core/hooks.js.map +0 -1
  103. package/dist/core/log-store.d.ts +0 -6
  104. package/dist/core/log-store.d.ts.map +0 -1
  105. package/dist/core/log-store.js +0 -6
  106. package/dist/core/log-store.js.map +0 -1
  107. package/dist/core/memory-store.d.ts +0 -6
  108. package/dist/core/memory-store.d.ts.map +0 -1
  109. package/dist/core/memory-store.js +0 -6
  110. package/dist/core/memory-store.js.map +0 -1
  111. package/dist/core/mission-executor.d.ts +0 -5
  112. package/dist/core/mission-executor.d.ts.map +0 -1
  113. package/dist/core/mission-executor.js +0 -5
  114. package/dist/core/mission-executor.js.map +0 -1
  115. package/dist/core/orchestrator-context.d.ts +0 -6
  116. package/dist/core/orchestrator-context.d.ts.map +0 -1
  117. package/dist/core/orchestrator-context.js +0 -4
  118. package/dist/core/orchestrator-context.js.map +0 -1
  119. package/dist/core/playbook-store.d.ts +0 -2
  120. package/dist/core/playbook-store.d.ts.map +0 -1
  121. package/dist/core/playbook-store.js +0 -2
  122. package/dist/core/playbook-store.js.map +0 -1
  123. package/dist/core/playbook.d.ts +0 -140
  124. package/dist/core/playbook.d.ts.map +0 -1
  125. package/dist/core/playbook.js +0 -351
  126. package/dist/core/playbook.js.map +0 -1
  127. package/dist/core/run-store.d.ts +0 -6
  128. package/dist/core/run-store.d.ts.map +0 -1
  129. package/dist/core/run-store.js +0 -6
  130. package/dist/core/run-store.js.map +0 -1
  131. package/dist/core/schemas.d.ts +0 -6
  132. package/dist/core/schemas.d.ts.map +0 -1
  133. package/dist/core/schemas.js +0 -6
  134. package/dist/core/schemas.js.map +0 -1
  135. package/dist/core/session-store.d.ts +0 -6
  136. package/dist/core/session-store.d.ts.map +0 -1
  137. package/dist/core/session-store.js +0 -6
  138. package/dist/core/session-store.js.map +0 -1
  139. package/dist/core/spawner.d.ts +0 -5
  140. package/dist/core/spawner.d.ts.map +0 -1
  141. package/dist/core/spawner.js +0 -2
  142. package/dist/core/spawner.js.map +0 -1
  143. package/dist/core/state-machine.d.ts +0 -6
  144. package/dist/core/state-machine.d.ts.map +0 -1
  145. package/dist/core/state-machine.js +0 -6
  146. package/dist/core/state-machine.js.map +0 -1
  147. package/dist/core/task-manager.d.ts +0 -2
  148. package/dist/core/task-manager.d.ts.map +0 -1
  149. package/dist/core/task-manager.js +0 -2
  150. package/dist/core/task-manager.js.map +0 -1
  151. package/dist/core/task-runner.d.ts +0 -2
  152. package/dist/core/task-runner.d.ts.map +0 -1
  153. package/dist/core/task-runner.js +0 -3
  154. package/dist/core/task-runner.js.map +0 -1
  155. package/dist/core/task-store.d.ts +0 -6
  156. package/dist/core/task-store.d.ts.map +0 -1
  157. package/dist/core/task-store.js +0 -6
  158. package/dist/core/task-store.js.map +0 -1
  159. package/dist/core/task-watcher.d.ts +0 -2
  160. package/dist/core/task-watcher.d.ts.map +0 -1
  161. package/dist/core/task-watcher.js +0 -2
  162. package/dist/core/task-watcher.js.map +0 -1
  163. package/dist/core/team-store.d.ts +0 -6
  164. package/dist/core/team-store.d.ts.map +0 -1
  165. package/dist/core/team-store.js +0 -6
  166. package/dist/core/team-store.js.map +0 -1
  167. package/dist/core/types.d.ts +0 -6
  168. package/dist/core/types.d.ts.map +0 -1
  169. package/dist/core/types.js +0 -6
  170. package/dist/core/types.js.map +0 -1
  171. package/dist/core/vault-store.d.ts +0 -2
  172. package/dist/core/vault-store.d.ts.map +0 -1
  173. package/dist/core/vault-store.js +0 -2
  174. package/dist/core/vault-store.js.map +0 -1
  175. package/dist/server/schemas.d.ts +0 -414
  176. package/dist/server/schemas.d.ts.map +0 -1
  177. package/dist/server/schemas.js +0 -503
  178. package/dist/server/schemas.js.map +0 -1
  179. package/dist/stores/file-agent-store.d.ts +0 -24
  180. package/dist/stores/file-agent-store.d.ts.map +0 -1
  181. package/dist/stores/file-agent-store.js +0 -102
  182. package/dist/stores/file-agent-store.js.map +0 -1
  183. package/dist/stores/file-approval-store.d.ts +0 -20
  184. package/dist/stores/file-approval-store.d.ts.map +0 -1
  185. package/dist/stores/file-approval-store.js +0 -62
  186. package/dist/stores/file-approval-store.js.map +0 -1
  187. package/dist/stores/file-checkpoint-store.d.ts +0 -18
  188. package/dist/stores/file-checkpoint-store.d.ts.map +0 -1
  189. package/dist/stores/file-checkpoint-store.js +0 -52
  190. package/dist/stores/file-checkpoint-store.js.map +0 -1
  191. package/dist/stores/file-delay-store.d.ts +0 -18
  192. package/dist/stores/file-delay-store.d.ts.map +0 -1
  193. package/dist/stores/file-delay-store.js +0 -52
  194. package/dist/stores/file-delay-store.js.map +0 -1
  195. package/dist/stores/file-log-store.d.ts +0 -22
  196. package/dist/stores/file-log-store.d.ts.map +0 -1
  197. package/dist/stores/file-log-store.js +0 -123
  198. package/dist/stores/file-log-store.js.map +0 -1
  199. package/dist/stores/file-memory-store.d.ts +0 -21
  200. package/dist/stores/file-memory-store.d.ts.map +0 -1
  201. package/dist/stores/file-memory-store.js +0 -85
  202. package/dist/stores/file-memory-store.js.map +0 -1
  203. package/dist/stores/file-playbook-store.d.ts +0 -25
  204. package/dist/stores/file-playbook-store.d.ts.map +0 -1
  205. package/dist/stores/file-playbook-store.js +0 -35
  206. package/dist/stores/file-playbook-store.js.map +0 -1
  207. package/dist/stores/file-run-store.d.ts +0 -29
  208. package/dist/stores/file-run-store.d.ts.map +0 -1
  209. package/dist/stores/file-run-store.js +0 -131
  210. package/dist/stores/file-run-store.js.map +0 -1
  211. package/dist/stores/file-session-store.d.ts +0 -28
  212. package/dist/stores/file-session-store.d.ts.map +0 -1
  213. package/dist/stores/file-session-store.js +0 -245
  214. package/dist/stores/file-session-store.js.map +0 -1
  215. package/dist/stores/file-skill-store.d.ts +0 -26
  216. package/dist/stores/file-skill-store.d.ts.map +0 -1
  217. package/dist/stores/file-skill-store.js +0 -92
  218. package/dist/stores/file-skill-store.js.map +0 -1
  219. package/dist/stores/file-task-store.d.ts +0 -48
  220. package/dist/stores/file-task-store.d.ts.map +0 -1
  221. package/dist/stores/file-task-store.js +0 -296
  222. package/dist/stores/file-task-store.js.map +0 -1
  223. package/dist/stores/file-team-store.d.ts +0 -20
  224. package/dist/stores/file-team-store.d.ts.map +0 -1
  225. package/dist/stores/file-team-store.js +0 -91
  226. package/dist/stores/file-team-store.js.map +0 -1
  227. package/dist/stores/index.d.ts +0 -13
  228. package/dist/stores/index.d.ts.map +0 -1
  229. package/dist/stores/index.js +0 -13
  230. package/dist/stores/index.js.map +0 -1
  231. package/dist/stores/json-config-store.d.ts +0 -25
  232. package/dist/stores/json-config-store.d.ts.map +0 -1
  233. package/dist/stores/json-config-store.js +0 -66
  234. package/dist/stores/json-config-store.js.map +0 -1
  235. package/dist/stores/json-task-store.d.ts +0 -22
  236. package/dist/stores/json-task-store.d.ts.map +0 -1
  237. package/dist/stores/json-task-store.js +0 -112
  238. package/dist/stores/json-task-store.js.map +0 -1
@@ -1,23 +1,51 @@
1
1
  /**
2
- * Polpo Enginethe built-in agentic runtime.
2
+ * Task-spawn shared helpers prompt building, spawn preparation, tool
3
+ * building, and outcome collection for the task runtime.
3
4
  *
4
- * Uses Vercel AI SDK streamText in a manual loop for the agentic loop,
5
- * with AI Gateway for multi-provider LLM abstraction.
6
- * Works with any LLM provider (Anthropic, OpenAI, Google, Groq, etc.)
5
+ * The agentic loop itself lives in loop-engine.ts (spawnLoopEngine, driven
6
+ * by @polpo-ai/core's LoopRunner/PipelineExecutor). The legacy manual
7
+ * streamText loop that used to live here was removed once spawnLoopEngine
8
+ * reached behavioral parity (see engine-behavior.test.ts).
7
9
  */
8
- import type { AgentConfig, AgentActivity, Task } from "../core/types.js";
9
- import type { AgentHandle, SpawnContext } from "../core/adapter.js";
10
+ import type { AgentConfig, AgentActivity, Task, TaskOutcome } from "@polpo-ai/core/types";
11
+ import type { SpawnContext } from "../core/adapter.js";
10
12
  /** Create a fresh AgentActivity object */
11
13
  export declare function createActivity(): AgentActivity;
14
+ import { resolveModel } from "../llm/pi-client.js";
15
+ import type { FileSystem } from "@polpo-ai/core/filesystem";
16
+ import type { Shell } from "@polpo-ai/core/shell";
17
+ import type { PolpoTool } from "@polpo-ai/core";
12
18
  /**
13
19
  * Build the system prompt for the agent, including loaded skills.
14
20
  */
15
21
  export declare function buildSystemPrompt(agent: AgentConfig, cwd: string, polpoDir?: string, outputDir?: string, allowedPaths?: string[]): string;
16
22
  /**
17
- * Spawn an agent using Polpo's built-in engine (AI SDK streamText loop).
18
- *
19
- * This is the default execution path — used when no adapter is specified
20
- * on an agent config.
23
+ * Build the user prompt from task data.
24
+ */
25
+ export declare function buildPrompt(task: Task): string;
26
+ export interface SpawnPrep {
27
+ model: ReturnType<typeof resolveModel>;
28
+ polpoDir: string;
29
+ fs: FileSystem;
30
+ shell: Shell;
31
+ outputDir?: string;
32
+ effectiveAllowedPaths?: string[];
33
+ systemPrompt: string;
34
+ providerOptions?: Record<string, Record<string, any>>;
35
+ hasExtendedTools: boolean;
36
+ browserProfileDir: string;
37
+ maxTurns: number;
38
+ }
39
+ export declare function prepareSpawn(agentConfig: AgentConfig, cwd: string, ctx?: SpawnContext): SpawnPrep;
40
+ /**
41
+ * Resolve the agent vault and build the full PolpoTool set (core tools plus
42
+ * extended categories when requested via allowedTools). Async because vault
43
+ * resolution hits the store.
44
+ */
45
+ export declare function buildAgentTools(agentConfig: AgentConfig, cwd: string, prep: SpawnPrep, ctx?: SpawnContext): Promise<PolpoTool[]>;
46
+ /**
47
+ * Create a TaskOutcome from a `register_outcome` tool call.
48
+ * Returns undefined for any other tool — outcome registration is explicit only.
21
49
  */
22
- export declare function spawnEngine(agentConfig: AgentConfig, task: Task, cwd: string, ctx?: SpawnContext): AgentHandle;
50
+ export declare function collectOutcome(toolName: string, details: Record<string, unknown>): TaskOutcome | undefined;
23
51
  //# sourceMappingURL=engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/adapters/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAwC,MAAM,kBAAkB,CAAC;AAC/G,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIpE,0CAA0C;AAC1C,wBAAgB,cAAc,IAAI,aAAa,CAQ9C;AAkND;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAiCzI;AA4GD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,WAAW,CA6W9G"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/adapters/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAe,MAAM,sBAAsB,CAAC;AACvG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,0CAA0C;AAC1C,wBAAgB,cAAc,IAAI,aAAa,CAQ9C;AAED,OAAO,EAAE,YAAY,EAAwD,MAAM,qBAAqB,CAAC;AAIzG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA+LhD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAiCzI;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAmD9C;AAUD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,UAAU,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACtD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,SAAS,CAoFjG;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,SAAS,EACf,GAAG,CAAC,EAAE,YAAY,GACjB,OAAO,CAAC,SAAS,EAAE,CAAC,CA+BtB;AA6BD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,GAAG,SAAS,CAsB1G"}
@@ -1,9 +1,11 @@
1
1
  /**
2
- * Polpo Enginethe built-in agentic runtime.
2
+ * Task-spawn shared helpers prompt building, spawn preparation, tool
3
+ * building, and outcome collection for the task runtime.
3
4
  *
4
- * Uses Vercel AI SDK streamText in a manual loop for the agentic loop,
5
- * with AI Gateway for multi-provider LLM abstraction.
6
- * Works with any LLM provider (Anthropic, OpenAI, Google, Groq, etc.)
5
+ * The agentic loop itself lives in loop-engine.ts (spawnLoopEngine, driven
6
+ * by @polpo-ai/core's LoopRunner/PipelineExecutor). The legacy manual
7
+ * streamText loop that used to live here was removed once spawnLoopEngine
8
+ * reached behavioral parity (see engine-behavior.test.ts).
7
9
  */
8
10
  import { resolveAgentVault } from "../vault/index.js";
9
11
  import { buildAgentSystemPrompt } from "@polpo-ai/core";
@@ -18,14 +20,12 @@ export function createActivity() {
18
20
  };
19
21
  }
20
22
  import { join, resolve, sep } from "node:path";
21
- import { streamText, generateText, jsonSchema, tool as aiTool, } from "ai";
22
23
  import { resolveModel, enforceModelAllowlist, mapReasoningToProviderOptions } from "../llm/pi-client.js";
23
- import { createSystemTools, createAllTools, cleanupAgentBrowserSession } from "@polpo-ai/tools";
24
+ import { createSystemTools, createAllTools } from "@polpo-ai/tools";
24
25
  import { NodeFileSystem } from "./node-filesystem.js";
25
26
  import { NodeShell } from "./node-shell.js";
26
27
  import { loadAgentSkills } from "../llm/skills.js";
27
28
  import { nanoid } from "nanoid";
28
- import { compactIfNeeded } from "@polpo-ai/core";
29
29
  function resolvePromptAllowedPaths(cwd, allowedPaths) {
30
30
  const configured = Array.isArray(allowedPaths)
31
31
  ? allowedPaths.filter((path) => typeof path === "string" && path.trim().length > 0)
@@ -132,7 +132,7 @@ export function buildSystemPrompt(agent, cwd, polpoDir, outputDir, allowedPaths)
132
132
  /**
133
133
  * Build the user prompt from task data.
134
134
  */
135
- function buildPrompt(task) {
135
+ export function buildPrompt(task) {
136
136
  const parts = [`Task: ${task.title}`, ``, task.description];
137
137
  if (task.expectations.length > 0) {
138
138
  parts.push(``, `Acceptance criteria:`);
@@ -150,66 +150,13 @@ function buildPrompt(task) {
150
150
  parts.push(``, `IMPORTANT — Orchestration contract:`, `- You are being orchestrated by a supervisor. Complete the task autonomously and EXIT.`, `- Do NOT ask clarifying questions. Make reasonable decisions and proceed.`, `- You MUST terminate after completing your work. Never block indefinitely.`, `- Your session has a timeout. If you hang, you will be killed and the task will fail.`, ``, `CRITICAL — Bash tool rules:`, `- The bash tool has a default timeout of 30 seconds. Commands that exceed it are killed.`, `- For long commands (npm install, builds, etc.), pass an explicit timeout: {"command": "...", "timeout": 120000}`, `- NEVER run a server or long-lived process in the foreground. It will block forever and kill your session.`, `- To start a background server, ALWAYS use this exact pattern:`, ` {"command": "nohup python3 server.py > /tmp/server.log 2>&1 & echo \"PID=$!\"", "timeout": 5000}`, ` Then verify separately: {"command": "sleep 2 && curl -s --max-time 5 http://127.0.0.1:PORT/", "timeout": 10000}`, `- NEVER combine server start + verification in one command (e.g. "cmd & sleep 2 && lsof" WILL hang).`, `- NEVER use "lsof" or "netstat" to check if a server is running. Use "curl" instead.`, `- NEVER use "tail -f", "watch", or any command that runs forever.`, `- If a command times out, do NOT retry the same command. Analyze why it hung and fix the approach.`, ``, `CRITICAL — Outcome tracking:`, `When you produce artifacts (files, reports, data), the orchestrator attaches them to`, `task-done notifications (Telegram, Slack, etc.) and approval reviews.`, `Outcomes are NEVER auto-collected — you MUST explicitly register every deliverable.`, ``, `Use the register_outcome tool to declare artifacts as task outcomes:`, ` register_outcome({type: 'file', label: 'Sales Report', path: 'output/report.pdf'})`, ` register_outcome({type: 'media', label: 'Chart', path: 'charts/revenue.png'})`, ` register_outcome({type: 'url', label: 'Staging Deploy', url: 'https://staging.example.com'})`, ` register_outcome({type: 'text', label: 'Summary', text: 'Revenue increased 23%...'})`, ` register_outcome({type: 'json', label: 'Metrics', data: {revenue: 1234, growth: 0.23}})`, ``, `RULES:`, ` - ALWAYS call register_outcome for every artifact you produce — files, reports, screenshots,`, ` downloads, generated media, transcriptions, analysis results, URLs, data summaries`, ` - Producing a file (via write, pdf_create, bash, etc.) does NOT auto-register it as an outcome`, ` - Only register final deliverables — not intermediate/temporary files`, ` - If the task has expectedOutcomes defined, ensure you register matching outcomes`);
151
151
  return parts.join("\n");
152
152
  }
153
- // ─── Tool Conversion ───────────────────────────────────
154
- //
155
- // Convert PolpoTool[] (TypeBox schema + execute) to AI SDK ToolSet
156
- // (Record<string, Tool> with jsonSchema() + execute wrapper).
157
- /**
158
- * Convert an array of PolpoTool to an AI SDK ToolSet (Record<string, Tool>).
159
- *
160
- * Each PolpoTool uses TypeBox for its parameter schema (which produces JSON Schema).
161
- * AI SDK tools use `jsonSchema()` to wrap raw JSON Schema objects.
162
- * The execute function is wrapped to adapt the PolpoTool signature to AI SDK's.
163
- */
164
- function convertToolsToToolSet(polpoTools, abortSignal, onToolResult) {
165
- const toolSet = {};
166
- for (const pt of polpoTools) {
167
- toolSet[pt.name] = aiTool({
168
- description: pt.description,
169
- inputSchema: jsonSchema(pt.parameters),
170
- execute: async (args, { toolCallId }) => {
171
- let result;
172
- let isError = false;
173
- try {
174
- result = await pt.execute(toolCallId, args, abortSignal);
175
- }
176
- catch (err) {
177
- isError = true;
178
- result = {
179
- content: [{ type: "text", text: err instanceof Error ? err.message : String(err) }],
180
- details: {},
181
- };
182
- }
183
- // Notify caller for activity tracking
184
- onToolResult?.(pt.name, toolCallId, result, isError);
185
- // Return text content for the LLM — AI SDK serializes the return value
186
- return result.content
187
- .map(c => c.type === "text" ? c.text : `[image: ${c.mimeType}]`)
188
- .join("\n");
189
- },
190
- });
191
- }
192
- return toolSet;
193
- }
194
- /**
195
- * Spawn an agent using Polpo's built-in engine (AI SDK streamText loop).
196
- *
197
- * This is the default execution path — used when no adapter is specified
198
- * on an agent config.
199
- */
200
- export function spawnEngine(agentConfig, task, cwd, ctx) {
201
- const activity = createActivity();
202
- const start = Date.now();
203
- let alive = true;
153
+ export function prepareSpawn(agentConfig, cwd, ctx) {
204
154
  // Enforce model allowlist (throws if model not allowed)
205
155
  if (agentConfig.model) {
206
156
  enforceModelAllowlist(agentConfig.model);
207
157
  }
208
158
  // Resolve model
209
159
  const model = resolveModel(agentConfig.model, { gateway: ctx?.gatewayConfig });
210
- // Create all tools scoped to working directory with path sandboxing
211
- // Core tools (always available): read, write, edit, bash, glob, grep, ls, http_fetch, http_download, register_outcome, vault_get, vault_list
212
- // Extended tools are auto-loaded when their names appear in allowedTools (e.g. "browser_*", "email_*", "image_*", "video_*", "audio_*", "excel_*", "pdf_*", "docx_*", "search_*")
213
160
  // polpoDir must always be provided via SpawnContext.
214
161
  // Fallback to join(cwd, ".polpo") is WRONG when settings.workDir points to a
215
162
  // subdirectory — cwd would be e.g. /project/packages/app while .polpo/ lives
@@ -261,28 +208,10 @@ export function spawnEngine(agentConfig, task, cwd, ctx) {
261
208
  // No explicit sandbox, outputDir under cwd (or absent) — let resolveAllowedPaths default to [cwd]
262
209
  effectiveAllowedPaths = undefined;
263
210
  }
264
- // Vault resolution is async — will be resolved in handle.done before tools are used.
265
- // Start with core coding tools WITHOUT vault; vault tools are added in the async phase.
266
- const codingTools = createSystemTools(cwd, agentConfig.allowedTools, effectiveAllowedPaths, outputDir, undefined, fs, shell);
267
211
  // Resolve reasoning level: agent config > global settings (via SpawnContext) > "off"
268
212
  const thinkingLevel = agentConfig.reasoning ?? ctx?.reasoning ?? "off";
269
213
  // Build the system prompt once for reuse in both the agent loop and context compaction
270
214
  const systemPrompt = buildSystemPrompt(agentConfig, cwd, ctx?.polpoDir, outputDir, effectiveAllowedPaths);
271
- // AbortController for the agent — used to cancel the loop
272
- const abortController = new AbortController();
273
- const handle = {
274
- agentName: agentConfig.name,
275
- taskId: task.id,
276
- startedAt: new Date().toISOString(),
277
- pid: 0, // No OS process — runs in-process
278
- activity,
279
- done: null, // set below
280
- isAlive: () => alive,
281
- kill: () => {
282
- abortController.abort();
283
- alive = false;
284
- },
285
- };
286
215
  // Track turns for maxTurns enforcement
287
216
  const maxTurns = agentConfig.maxTurns ?? 150;
288
217
  // Provider options for reasoning/thinking
@@ -290,239 +219,44 @@ export function spawnEngine(agentConfig, task, cwd, ctx) {
290
219
  // but AI SDK expects Record<string, JSONObject> (JSONValue values). The values are always
291
220
  // JSON-serializable (numbers, strings, objects), so this cast is safe.
292
221
  const providerOptions = mapReasoningToProviderOptions(model.provider, thinkingLevel, model.maxTokens);
293
- // Run the agent and capture result
294
- handle.done = (async () => {
295
- try {
296
- // Resolve vault credentials (async) — then rebuild tools with vault included
297
- const vaultEntries = await ctx?.vaultStore?.getAllForAgent(agentConfig.name);
298
- const vault = resolveAgentVault(vaultEntries);
299
- // Rebuild tools with vault resolved
300
- let allPolpoTools = createSystemTools(cwd, agentConfig.allowedTools, effectiveAllowedPaths, outputDir, vault, fs, shell);
301
- if (hasExtendedTools) {
302
- allPolpoTools = await createAllTools({
303
- cwd,
304
- allowedTools: agentConfig.allowedTools,
305
- allowedPaths: effectiveAllowedPaths,
306
- browserSession: agentConfig.name,
307
- browserProfileDir,
308
- vault,
309
- emailAllowedDomains: agentConfig.emailAllowedDomains ?? ctx?.emailAllowedDomains,
310
- outputDir,
311
- fs,
312
- shell,
313
- memoryStore: ctx?.memoryStore,
314
- agentName: agentConfig.name,
315
- // Per-modality models from agent config. When undefined, the
316
- // tool layer applies its own DEFAULT_*_MODEL.
317
- imageModel: agentConfig.image_model,
318
- videoModel: agentConfig.video_model,
319
- visionModel: agentConfig.vision_model,
320
- transcribeModel: agentConfig.transcribe_model,
321
- ttsModel: agentConfig.tts_model,
322
- });
323
- }
324
- // Convert PolpoTool[] to AI SDK ToolSet with activity tracking
325
- const toolSet = convertToolsToToolSet(allPolpoTools, abortController.signal, (toolName, toolCallId, result, isError) => {
326
- activity.lastUpdate = new Date().toISOString();
327
- // Track file operations from tool details
328
- const details = result.details;
329
- if (details?.path) {
330
- const filePath = details.path;
331
- activity.lastFile = filePath;
332
- if (toolName === "write" && !activity.filesCreated.includes(filePath)) {
333
- activity.filesCreated.push(filePath);
334
- }
335
- if (toolName === "edit" && !activity.filesEdited.includes(filePath)) {
336
- activity.filesEdited.push(filePath);
337
- }
338
- }
339
- // Collect outcomes from explicit register_outcome calls
340
- if (!isError && details) {
341
- const outcome = collectOutcome(toolName, details);
342
- if (outcome) {
343
- if (!handle.outcomes)
344
- handle.outcomes = [];
345
- handle.outcomes.push(outcome);
346
- }
347
- }
348
- // Harvest billable per-tool inference cost (managed image/video via
349
- // the gateway). Rides back in `details.usage`; the cloud data plane
350
- // reads activity.toolUsage after the run → Autumn + usage_logs.
351
- if (!isError && details?.usage && typeof details.usage === "object") {
352
- const u = details.usage;
353
- if (u.generationId || typeof u.marketCostUsd === "number") {
354
- (activity.toolUsage ??= []).push({
355
- toolName,
356
- generationId: u.generationId,
357
- marketCostUsd: u.marketCostUsd,
358
- actualCostUsd: u.actualCostUsd,
359
- resolvedModel: u.resolvedModel,
360
- finalProvider: u.finalProvider,
361
- credentialType: u.credentialType,
362
- });
363
- }
364
- }
365
- // Emit tool result transcript
366
- const resultText = result.content
367
- .map((c) => c.text ?? "")
368
- .join("");
369
- handle.onTranscript?.({
370
- type: "tool_result",
371
- toolId: toolCallId,
372
- tool: toolName,
373
- content: resultText.slice(0, 2000),
374
- isError,
375
- });
376
- });
377
- // Build the user prompt
378
- const prompt = buildPrompt(task);
379
- // Build the summarize function for context compaction (uses AI SDK generateText)
380
- const summarize = async (msgs, compactionPrompt) => {
381
- const response = await generateText({
382
- model: model.aiModel,
383
- system: compactionPrompt,
384
- messages: msgs,
385
- maxOutputTokens: model.maxTokens,
386
- abortSignal: abortController.signal,
387
- providerOptions,
388
- });
389
- return response.text;
390
- };
391
- // ─── Manual Agent Loop ───────────────────────────────
392
- //
393
- // Each iteration: context compaction → streamText (1 step) → process stream → append messages.
394
- // The loop continues until the model finishes without tool calls (finishReason !== "tool-calls")
395
- // or maxTurns is reached.
396
- let messages = [{ role: "user", content: prompt }];
397
- let resultText = "";
398
- for (let turn = 0; turn < maxTurns; turn++) {
399
- if (abortController.signal.aborted)
400
- break;
401
- // Context compaction — prune old tool outputs, then LLM-summarize if still over threshold.
402
- // Under threshold → zero overhead (just token estimation).
403
- const compactionResult = await compactIfNeeded({
404
- systemPrompt,
405
- messages,
406
- tools: Object.values(toolSet).map(t => ({ description: t.description ?? "" })),
407
- config: {
408
- contextWindow: model.contextWindow ?? 200_000,
409
- maxOutputTokens: model.maxTokens ?? 8192,
410
- },
411
- summarize,
412
- mode: "task",
413
- onCompaction: (event) => {
414
- handle.onTranscript?.({
415
- type: "compaction",
416
- phase: event.phase,
417
- tokensBefore: event.tokensBefore,
418
- tokensAfter: event.tokensAfter,
419
- tokensReclaimed: event.tokensReclaimed,
420
- messagesBefore: event.messagesBefore,
421
- messagesAfter: event.messagesAfter,
422
- toolOutputsPruned: event.toolOutputsPruned,
423
- summary: event.summary,
424
- });
425
- },
426
- });
427
- if (compactionResult.compacted) {
428
- messages = compactionResult.messages;
429
- }
430
- // Single LLM call (streamText default: stopWhen = stepCountIs(1))
431
- // This does one step: LLM generates text/tool-calls → tools are executed automatically
432
- const stream = streamText({
433
- model: model.aiModel,
434
- system: systemPrompt,
435
- messages,
436
- tools: toolSet,
437
- maxOutputTokens: model.maxTokens,
438
- abortSignal: abortController.signal,
439
- providerOptions,
440
- onStepFinish: async ({ usage }) => {
441
- // Accumulate token usage
442
- if (usage) {
443
- activity.totalTokens += (usage.totalTokens ?? 0);
444
- }
445
- activity.lastUpdate = new Date().toISOString();
446
- },
447
- });
448
- // Process the full stream for transcript events
449
- let stepAssistantText = "";
450
- for await (const part of stream.fullStream) {
451
- switch (part.type) {
452
- case "text-delta": {
453
- stepAssistantText += part.text;
454
- break;
455
- }
456
- case "tool-call": {
457
- // Track tool call in activity
458
- activity.toolCalls++;
459
- activity.lastTool = part.toolName;
460
- activity.lastUpdate = new Date().toISOString();
461
- handle.onTranscript?.({
462
- type: "tool_use",
463
- tool: part.toolName,
464
- toolId: part.toolCallId,
465
- input: part.input,
466
- });
467
- break;
468
- }
469
- // tool-result and tool-error are handled in the convertToolsToToolSet callback
470
- case "error": {
471
- handle.onTranscript?.({
472
- type: "error",
473
- message: part.error instanceof Error ? part.error.message : String(part.error),
474
- });
475
- break;
476
- }
477
- }
478
- }
479
- // Emit assistant text transcript
480
- if (stepAssistantText) {
481
- activity.summary = stepAssistantText.slice(0, 200);
482
- handle.onTranscript?.({ type: "assistant", text: stepAssistantText });
483
- }
484
- // Get the finish reason and response messages
485
- const finishReason = await stream.finishReason;
486
- const responseMessages = (await stream.response).messages;
487
- // Append the response messages to history (assistant message + tool results if any)
488
- messages.push(...responseMessages);
489
- // If the model finished without requesting tool calls, we're done
490
- if (finishReason !== "tool-calls") {
491
- resultText = await stream.text;
492
- break;
493
- }
494
- // If we completed the last allowed turn with tool calls still pending, grab what text we have
495
- if (turn === maxTurns - 1) {
496
- resultText = await stream.text;
497
- }
498
- }
499
- alive = false;
500
- return {
501
- exitCode: 0,
502
- stdout: resultText,
503
- stderr: "",
504
- duration: Date.now() - start,
505
- };
506
- }
507
- catch (err) {
508
- alive = false;
509
- const msg = err instanceof Error ? err.message : String(err);
510
- handle.onTranscript?.({ type: "error", message: msg });
511
- return {
512
- exitCode: 1,
513
- stdout: "",
514
- stderr: msg,
515
- duration: Date.now() - start,
516
- };
517
- }
518
- finally {
519
- // Close agent-browser session (profile data auto-persisted by --profile)
520
- if (hasExtendedTools) {
521
- await cleanupAgentBrowserSession(agentConfig.name).catch(() => { });
522
- }
523
- }
524
- })();
525
- return handle;
222
+ return {
223
+ model, polpoDir, fs, shell, outputDir, effectiveAllowedPaths,
224
+ systemPrompt, providerOptions, hasExtendedTools, browserProfileDir, maxTurns,
225
+ };
226
+ }
227
+ /**
228
+ * Resolve the agent vault and build the full PolpoTool set (core tools plus
229
+ * extended categories when requested via allowedTools). Async because vault
230
+ * resolution hits the store.
231
+ */
232
+ export async function buildAgentTools(agentConfig, cwd, prep, ctx) {
233
+ const vaultEntries = await ctx?.vaultStore?.getAllForAgent(agentConfig.name);
234
+ const vault = resolveAgentVault(vaultEntries);
235
+ let allPolpoTools = createSystemTools(cwd, agentConfig.allowedTools, prep.effectiveAllowedPaths, prep.outputDir, vault, prep.fs, prep.shell);
236
+ if (prep.hasExtendedTools) {
237
+ allPolpoTools = await createAllTools({
238
+ cwd,
239
+ allowedTools: agentConfig.allowedTools,
240
+ allowedPaths: prep.effectiveAllowedPaths,
241
+ browserSession: agentConfig.name,
242
+ browserProfileDir: prep.browserProfileDir,
243
+ vault,
244
+ emailAllowedDomains: agentConfig.emailAllowedDomains ?? ctx?.emailAllowedDomains,
245
+ outputDir: prep.outputDir,
246
+ fs: prep.fs,
247
+ shell: prep.shell,
248
+ memoryStore: ctx?.memoryStore,
249
+ agentName: agentConfig.name,
250
+ // Per-modality models from agent config. When undefined, the
251
+ // tool layer applies its own DEFAULT_*_MODEL.
252
+ imageModel: agentConfig.image_model,
253
+ videoModel: agentConfig.video_model,
254
+ visionModel: agentConfig.vision_model,
255
+ transcribeModel: agentConfig.transcribe_model,
256
+ ttsModel: agentConfig.tts_model,
257
+ });
258
+ }
259
+ return allPolpoTools;
526
260
  }
527
261
  // ─── Outcome Collection ────���────────────────────────
528
262
  //
@@ -552,7 +286,7 @@ function guessMime(filePath) {
552
286
  * Create a TaskOutcome from a `register_outcome` tool call.
553
287
  * Returns undefined for any other tool — outcome registration is explicit only.
554
288
  */
555
- function collectOutcome(toolName, details) {
289
+ export function collectOutcome(toolName, details) {
556
290
  if (toolName !== "register_outcome" || !details.outcomeType || !details.outcomeLabel) {
557
291
  return undefined;
558
292
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/adapters/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/adapters/engine.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { spawnEngine } from "./engine.js";
1
+ export { spawnLoopEngine, spawnLoopEngine as spawnEngine } from "./loop-engine.js";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,eAAe,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,2 +1,4 @@
1
- export { spawnEngine } from "./engine.js";
1
+ // spawnEngine is a compatibility alias: the legacy manual loop was removed
2
+ // after spawnLoopEngine reached behavioral parity (engine-behavior.test.ts).
3
+ export { spawnLoopEngine, spawnLoopEngine as spawnEngine } from "./loop-engine.js";
2
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,6EAA6E;AAC7E,OAAO,EAAE,eAAe,EAAE,eAAe,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Loop-engine — the task runtime driven by the core loop system.
3
+ *
4
+ * Same external contract as spawnEngine (AgentHandle in, TaskResult out),
5
+ * but the agentic loop is @polpo-ai/core's LoopRunner instead of a manual
6
+ * for-loop, and agents with configured loops get the full graph runtime:
7
+ *
8
+ * - No loop config on the agent → one implicit "default" loop, behavior
9
+ * identical to the legacy engine (proven by the parity suite).
10
+ * - defaultLoop/loops on the agent → the selected loop's overlays apply
11
+ * (tools subset, systemPrompt, model, maxTurns), same merge semantics
12
+ * as chat completions (buildLoopStepAgent).
13
+ * - assignedLoops + project loop graph (.polpo/loops/<name>.json) → the
14
+ * PipelineExecutor drives the step graph: agent steps are independent
15
+ * LLM sessions communicating through the context bag, tool steps run
16
+ * deterministically without an LLM turn.
17
+ *
18
+ * Setup semantics (model resolution, sandbox paths, system prompt, tool
19
+ * building) are shared with the legacy engine via prepareSpawn/
20
+ * buildAgentTools so the two stay byte-identical during the migration.
21
+ *
22
+ * Known deliberate differences from the legacy engine:
23
+ * - In a turn with MULTIPLE tool calls, transcript order is
24
+ * use,use,...,result,result (the model step completes before execution)
25
+ * instead of use,result interleaved. Single-call turns are identical.
26
+ */
27
+ import type { AgentConfig, Task } from "@polpo-ai/core/types";
28
+ import type { AgentHandle, SpawnContext } from "../core/adapter.js";
29
+ /**
30
+ * Spawn an agent on the loop runtime.
31
+ *
32
+ * Drop-in replacement for spawnEngine: same signature, same AgentHandle
33
+ * contract, same activity/transcript/outcome semantics.
34
+ */
35
+ export declare function spawnLoopEngine(agentConfig: AgentConfig, task: Task, cwd: string, ctx?: SpawnContext): AgentHandle;
36
+ //# sourceMappingURL=loop-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-engine.d.ts","sourceRoot":"","sources":["../../src/adapters/loop-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAc,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA+HpE;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,WAAW,CAyblH"}