psadk 1.4.8 → 1.5.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 (211) hide show
  1. package/build/main/index.d.ts +1 -0
  2. package/build/main/lib/PSAI.js +1 -2
  3. package/build/main/lib/PSAgent.d.ts +46 -44
  4. package/build/main/lib/PSAgent.js +176 -961
  5. package/build/main/lib/PSAgentConfig.d.ts +110 -26
  6. package/build/main/lib/PSAgentLogger.js +1 -2
  7. package/build/main/lib/PSAgentTool.d.ts +8 -3
  8. package/build/main/lib/PSAgentTool.js +3 -3
  9. package/build/main/lib/agent-core/{agent-loop.d.ts → src/agent-loop.d.ts} +1 -1
  10. package/build/main/lib/agent-core/src/agent-loop.js +514 -0
  11. package/build/{module/lib/agent-core → main/lib/agent-core/src}/agent.d.ts +2 -2
  12. package/build/main/lib/agent-core/src/agent.js +419 -0
  13. package/build/main/lib/agent-core/{harness → src/harness}/agent-harness.d.ts +36 -26
  14. package/build/main/lib/agent-core/src/harness/agent-harness.js +1028 -0
  15. package/build/main/lib/agent-core/src/harness/compaction/branch-summarization.d.ts +52 -0
  16. package/build/main/lib/agent-core/src/harness/compaction/branch-summarization.js +182 -0
  17. package/build/main/lib/agent-core/src/harness/compaction/compaction.d.ts +94 -0
  18. package/build/main/lib/agent-core/src/harness/compaction/compaction.js +550 -0
  19. package/build/main/lib/agent-core/src/harness/compaction/utils.d.ts +24 -0
  20. package/build/main/lib/agent-core/src/harness/compaction/utils.js +131 -0
  21. package/build/main/lib/agent-core/src/harness/env/nodejs.d.ts +50 -0
  22. package/build/main/lib/agent-core/src/harness/env/nodejs.js +494 -0
  23. package/build/main/lib/agent-core/{harness → src/harness}/messages.d.ts +2 -2
  24. package/build/{module/lib/agent-core → main/lib/agent-core/src}/harness/messages.js +1 -1
  25. package/build/main/lib/agent-core/{harness → src/harness}/prompt-templates.d.ts +4 -1
  26. package/build/main/lib/agent-core/src/harness/prompt-templates.js +235 -0
  27. package/build/{module/lib/agent-core/harness/session/repo/jsonl.d.ts → main/lib/agent-core/src/harness/session/jsonl-repo.d.ts} +7 -1
  28. package/build/main/lib/agent-core/src/harness/session/jsonl-repo.js +106 -0
  29. package/build/{module/lib/agent-core/harness/session/storage/jsonl.d.ts → main/lib/agent-core/src/harness/session/jsonl-storage.d.ts} +7 -4
  30. package/build/main/lib/agent-core/src/harness/session/jsonl-storage.js +234 -0
  31. package/build/main/lib/agent-core/{harness/session/repo/memory.d.ts → src/harness/session/memory-repo.d.ts} +1 -1
  32. package/build/main/lib/agent-core/src/harness/session/memory-repo.js +45 -0
  33. package/build/main/lib/agent-core/{harness/session/storage/memory.d.ts → src/harness/session/memory-storage.d.ts} +4 -5
  34. package/build/main/lib/agent-core/src/harness/session/memory-storage.js +116 -0
  35. package/build/main/lib/agent-core/{harness/session/repo/shared.d.ts → src/harness/session/repo-utils.d.ts} +3 -2
  36. package/build/main/lib/agent-core/src/harness/session/repo-utils.js +39 -0
  37. package/build/{module/lib/agent-core → main/lib/agent-core/src}/harness/session/session.d.ts +3 -2
  38. package/build/main/lib/agent-core/src/harness/session/session.js +213 -0
  39. package/build/main/lib/agent-core/src/harness/session/uuid.d.ts +1 -0
  40. package/build/main/lib/agent-core/src/harness/session/uuid.js +54 -0
  41. package/build/main/lib/agent-core/{harness → src/harness}/skills.d.ts +4 -1
  42. package/build/main/lib/agent-core/src/harness/skills.js +353 -0
  43. package/build/main/lib/agent-core/{harness → src/harness}/system-prompt.d.ts +1 -1
  44. package/build/main/lib/agent-core/src/harness/system-prompt.js +30 -0
  45. package/build/{module/lib/agent-core → main/lib/agent-core/src}/harness/types.d.ts +160 -70
  46. package/build/main/lib/agent-core/src/harness/types.js +94 -0
  47. package/build/main/lib/agent-core/{harness → src/harness}/utils/shell-output.d.ts +2 -2
  48. package/build/main/lib/agent-core/src/harness/utils/shell-output.js +134 -0
  49. package/build/main/lib/agent-core/src/harness/utils/truncate.js +294 -0
  50. package/build/main/lib/agent-core/src/index.d.ts +19 -0
  51. package/build/main/lib/agent-core/src/index.js +25 -0
  52. package/build/main/lib/agent-core/src/node.d.ts +2 -0
  53. package/build/main/lib/agent-core/src/node.js +3 -0
  54. package/build/main/lib/agent-core/{proxy.js → src/proxy.js} +3 -2
  55. package/build/{module/lib/agent-core → main/lib/agent-core/src}/types.d.ts +13 -1
  56. package/build/{module/lib/agent-core → main/lib/agent-core/src}/types.js +1 -1
  57. package/build/main/lib/localAgent.d.ts +35 -0
  58. package/build/main/lib/localAgent.js +329 -0
  59. package/build/main/lib/remoteAgent.d.ts +25 -0
  60. package/build/main/lib/remoteAgent.js +311 -0
  61. package/build/main/lib/skills/skillParser.d.ts +13 -3
  62. package/build/main/lib/skills/skillParser.js +61 -12
  63. package/build/main/lib/skills/utils.js +18 -10
  64. package/build/main/lib/tools/BraveWebSearchTool.js +1 -2
  65. package/build/main/lib/tools/PSArtifactTool.js +1 -2
  66. package/build/main/lib/tools/PSClarifyTool.js +1 -2
  67. package/build/main/lib/tools/PSCommandLineTool.js +1 -2
  68. package/build/main/lib/tools/PSMemoryTool.js +1 -2
  69. package/build/main/lib/tools/PSReadFileTool.js +1 -2
  70. package/build/main/lib/tools/PSRetrievalTool.js +1 -2
  71. package/build/main/lib/tools/PSSkillTool.js +1 -2
  72. package/build/main/lib/tools/PSSubAgentTool.js +1 -1
  73. package/build/main/lib/tools/PSWriteFileTool.js +1 -2
  74. package/build/main/lib/tools/TodoTool.js +1 -2
  75. package/build/main/lib/utils/debuglogger.js +1 -2
  76. package/build/main/lib/utils/helpers.js +1 -6
  77. package/build/module/index.d.ts +1 -0
  78. package/build/module/lib/PSAI.js +1 -2
  79. package/build/module/lib/PSAgent.d.ts +46 -44
  80. package/build/module/lib/PSAgent.js +176 -961
  81. package/build/module/lib/PSAgentConfig.d.ts +110 -26
  82. package/build/module/lib/PSAgentLogger.js +1 -2
  83. package/build/module/lib/PSAgentTool.d.ts +8 -3
  84. package/build/module/lib/PSAgentTool.js +3 -3
  85. package/build/module/lib/agent-core/{agent-loop.d.ts → src/agent-loop.d.ts} +1 -1
  86. package/build/module/lib/agent-core/src/agent-loop.js +514 -0
  87. package/build/{main/lib/agent-core → module/lib/agent-core/src}/agent.d.ts +2 -2
  88. package/build/module/lib/agent-core/src/agent.js +419 -0
  89. package/build/module/lib/agent-core/{harness → src/harness}/agent-harness.d.ts +36 -26
  90. package/build/module/lib/agent-core/src/harness/agent-harness.js +1028 -0
  91. package/build/module/lib/agent-core/src/harness/compaction/branch-summarization.d.ts +52 -0
  92. package/build/module/lib/agent-core/src/harness/compaction/branch-summarization.js +182 -0
  93. package/build/module/lib/agent-core/src/harness/compaction/compaction.d.ts +94 -0
  94. package/build/module/lib/agent-core/src/harness/compaction/compaction.js +550 -0
  95. package/build/module/lib/agent-core/src/harness/compaction/utils.d.ts +24 -0
  96. package/build/module/lib/agent-core/src/harness/compaction/utils.js +131 -0
  97. package/build/module/lib/agent-core/src/harness/env/nodejs.d.ts +50 -0
  98. package/build/module/lib/agent-core/src/harness/env/nodejs.js +494 -0
  99. package/build/module/lib/agent-core/{harness → src/harness}/messages.d.ts +2 -2
  100. package/build/{main/lib/agent-core → module/lib/agent-core/src}/harness/messages.js +1 -1
  101. package/build/module/lib/agent-core/{harness → src/harness}/prompt-templates.d.ts +4 -1
  102. package/build/module/lib/agent-core/src/harness/prompt-templates.js +235 -0
  103. package/build/{main/lib/agent-core/harness/session/repo/jsonl.d.ts → module/lib/agent-core/src/harness/session/jsonl-repo.d.ts} +7 -1
  104. package/build/module/lib/agent-core/src/harness/session/jsonl-repo.js +106 -0
  105. package/build/{main/lib/agent-core/harness/session/storage/jsonl.d.ts → module/lib/agent-core/src/harness/session/jsonl-storage.d.ts} +7 -4
  106. package/build/module/lib/agent-core/src/harness/session/jsonl-storage.js +234 -0
  107. package/build/module/lib/agent-core/{harness/session/repo/memory.d.ts → src/harness/session/memory-repo.d.ts} +1 -1
  108. package/build/module/lib/agent-core/src/harness/session/memory-repo.js +45 -0
  109. package/build/module/lib/agent-core/{harness/session/storage/memory.d.ts → src/harness/session/memory-storage.d.ts} +4 -5
  110. package/build/module/lib/agent-core/src/harness/session/memory-storage.js +116 -0
  111. package/build/module/lib/agent-core/{harness/session/repo/shared.d.ts → src/harness/session/repo-utils.d.ts} +3 -2
  112. package/build/module/lib/agent-core/src/harness/session/repo-utils.js +39 -0
  113. package/build/{main/lib/agent-core → module/lib/agent-core/src}/harness/session/session.d.ts +3 -2
  114. package/build/module/lib/agent-core/src/harness/session/session.js +213 -0
  115. package/build/module/lib/agent-core/src/harness/session/uuid.d.ts +1 -0
  116. package/build/module/lib/agent-core/src/harness/session/uuid.js +54 -0
  117. package/build/module/lib/agent-core/{harness → src/harness}/skills.d.ts +4 -1
  118. package/build/module/lib/agent-core/src/harness/skills.js +353 -0
  119. package/build/module/lib/agent-core/{harness → src/harness}/system-prompt.d.ts +1 -1
  120. package/build/module/lib/agent-core/src/harness/system-prompt.js +30 -0
  121. package/build/{main/lib/agent-core → module/lib/agent-core/src}/harness/types.d.ts +160 -70
  122. package/build/module/lib/agent-core/src/harness/types.js +94 -0
  123. package/build/module/lib/agent-core/{harness → src/harness}/utils/shell-output.d.ts +2 -2
  124. package/build/module/lib/agent-core/src/harness/utils/shell-output.js +134 -0
  125. package/build/module/lib/agent-core/src/harness/utils/truncate.js +294 -0
  126. package/build/module/lib/agent-core/src/index.d.ts +19 -0
  127. package/build/module/lib/agent-core/src/index.js +25 -0
  128. package/build/module/lib/agent-core/src/node.d.ts +2 -0
  129. package/build/module/lib/agent-core/src/node.js +3 -0
  130. package/build/module/lib/agent-core/{proxy.js → src/proxy.js} +3 -2
  131. package/build/{main/lib/agent-core → module/lib/agent-core/src}/types.d.ts +13 -1
  132. package/build/{main/lib/agent-core → module/lib/agent-core/src}/types.js +1 -1
  133. package/build/module/lib/localAgent.d.ts +35 -0
  134. package/build/module/lib/localAgent.js +329 -0
  135. package/build/module/lib/remoteAgent.d.ts +25 -0
  136. package/build/module/lib/remoteAgent.js +311 -0
  137. package/build/module/lib/skills/skillParser.d.ts +13 -3
  138. package/build/module/lib/skills/skillParser.js +61 -12
  139. package/build/module/lib/skills/utils.js +18 -10
  140. package/build/module/lib/tools/BraveWebSearchTool.js +1 -2
  141. package/build/module/lib/tools/PSArtifactTool.js +1 -2
  142. package/build/module/lib/tools/PSClarifyTool.js +1 -2
  143. package/build/module/lib/tools/PSCommandLineTool.js +1 -2
  144. package/build/module/lib/tools/PSMemoryTool.js +1 -2
  145. package/build/module/lib/tools/PSReadFileTool.js +1 -2
  146. package/build/module/lib/tools/PSRetrievalTool.js +1 -2
  147. package/build/module/lib/tools/PSSkillTool.js +1 -2
  148. package/build/module/lib/tools/PSSubAgentTool.js +1 -1
  149. package/build/module/lib/tools/PSWriteFileTool.js +1 -2
  150. package/build/module/lib/tools/TodoTool.js +1 -2
  151. package/build/module/lib/utils/debuglogger.js +1 -2
  152. package/build/module/lib/utils/helpers.js +1 -6
  153. package/package.json +2 -1
  154. package/build/main/lib/agent-core/agent-loop.js +0 -483
  155. package/build/main/lib/agent-core/agent.js +0 -419
  156. package/build/main/lib/agent-core/harness/agent-harness.js +0 -772
  157. package/build/main/lib/agent-core/harness/compaction/branch-summarization.d.ts +0 -87
  158. package/build/main/lib/agent-core/harness/compaction/branch-summarization.js +0 -246
  159. package/build/main/lib/agent-core/harness/compaction/compaction.d.ts +0 -121
  160. package/build/main/lib/agent-core/harness/compaction/compaction.js +0 -637
  161. package/build/main/lib/agent-core/harness/compaction/utils.d.ts +0 -37
  162. package/build/main/lib/agent-core/harness/compaction/utils.js +0 -153
  163. package/build/main/lib/agent-core/harness/env/nodejs.d.ts +0 -43
  164. package/build/main/lib/agent-core/harness/env/nodejs.js +0 -353
  165. package/build/main/lib/agent-core/harness/execution-env.d.ts +0 -3
  166. package/build/main/lib/agent-core/harness/execution-env.js +0 -3
  167. package/build/main/lib/agent-core/harness/prompt-templates.js +0 -204
  168. package/build/main/lib/agent-core/harness/session/repo/jsonl.js +0 -98
  169. package/build/main/lib/agent-core/harness/session/repo/memory.js +0 -46
  170. package/build/main/lib/agent-core/harness/session/repo/shared.js +0 -31
  171. package/build/main/lib/agent-core/harness/session/session.js +0 -199
  172. package/build/main/lib/agent-core/harness/session/storage/jsonl.js +0 -170
  173. package/build/main/lib/agent-core/harness/session/storage/memory.js +0 -94
  174. package/build/main/lib/agent-core/harness/skills.js +0 -266
  175. package/build/main/lib/agent-core/harness/system-prompt.js +0 -30
  176. package/build/main/lib/agent-core/harness/types.js +0 -16
  177. package/build/main/lib/agent-core/harness/utils/shell-output.js +0 -101
  178. package/build/main/lib/agent-core/harness/utils/truncate.js +0 -208
  179. package/build/main/lib/agent-core/index.d.ts +0 -19
  180. package/build/main/lib/agent-core/index.js +0 -25
  181. package/build/module/lib/agent-core/agent-loop.js +0 -483
  182. package/build/module/lib/agent-core/agent.js +0 -419
  183. package/build/module/lib/agent-core/harness/agent-harness.js +0 -772
  184. package/build/module/lib/agent-core/harness/compaction/branch-summarization.d.ts +0 -87
  185. package/build/module/lib/agent-core/harness/compaction/branch-summarization.js +0 -246
  186. package/build/module/lib/agent-core/harness/compaction/compaction.d.ts +0 -121
  187. package/build/module/lib/agent-core/harness/compaction/compaction.js +0 -637
  188. package/build/module/lib/agent-core/harness/compaction/utils.d.ts +0 -37
  189. package/build/module/lib/agent-core/harness/compaction/utils.js +0 -153
  190. package/build/module/lib/agent-core/harness/env/nodejs.d.ts +0 -43
  191. package/build/module/lib/agent-core/harness/env/nodejs.js +0 -353
  192. package/build/module/lib/agent-core/harness/execution-env.d.ts +0 -3
  193. package/build/module/lib/agent-core/harness/execution-env.js +0 -3
  194. package/build/module/lib/agent-core/harness/prompt-templates.js +0 -204
  195. package/build/module/lib/agent-core/harness/session/repo/jsonl.js +0 -98
  196. package/build/module/lib/agent-core/harness/session/repo/memory.js +0 -46
  197. package/build/module/lib/agent-core/harness/session/repo/shared.js +0 -31
  198. package/build/module/lib/agent-core/harness/session/session.js +0 -199
  199. package/build/module/lib/agent-core/harness/session/storage/jsonl.js +0 -170
  200. package/build/module/lib/agent-core/harness/session/storage/memory.js +0 -94
  201. package/build/module/lib/agent-core/harness/skills.js +0 -266
  202. package/build/module/lib/agent-core/harness/system-prompt.js +0 -30
  203. package/build/module/lib/agent-core/harness/types.js +0 -16
  204. package/build/module/lib/agent-core/harness/utils/shell-output.js +0 -101
  205. package/build/module/lib/agent-core/harness/utils/truncate.js +0 -208
  206. package/build/module/lib/agent-core/index.d.ts +0 -19
  207. package/build/module/lib/agent-core/index.js +0 -25
  208. /package/build/main/lib/agent-core/{harness → src/harness}/utils/truncate.d.ts +0 -0
  209. /package/build/main/lib/agent-core/{proxy.d.ts → src/proxy.d.ts} +0 -0
  210. /package/build/module/lib/agent-core/{harness → src/harness}/utils/truncate.d.ts +0 -0
  211. /package/build/module/lib/agent-core/{proxy.d.ts → src/proxy.d.ts} +0 -0
@@ -1,27 +1,42 @@
1
+ import type { Message, SimpleStreamOptions, ThinkingBudgets, Transport } from '@earendil-works/pi-ai';
1
2
  import { z } from 'zod/v4';
3
+ import type { IStreamLogger } from './PSAgentLogger';
2
4
  import { PSAgentTask } from './PSAgentTask';
3
5
  import { PSAgentTool } from './PSAgentTool';
6
+ import type { AfterToolCallContext, AfterToolCallResult, AgentEvent, AgentLoopTurnUpdate, AgentMessage, BeforeToolCallContext, BeforeToolCallResult, QueueMode, StreamFn, ToolExecutionMode } from './agent-core/src/types.js';
7
+ /**
8
+ * Configuration for `PSAgent` running in **remote** mode (default).
9
+ *
10
+ * This is the base config used by all consumers. It does not expose any
11
+ * local-mode options — those live exclusively on {@link PSAgentLocalConfig}.
12
+ */
4
13
  export interface PSAgentConfig {
5
14
  agent_class?: 'LlmAgent' | 'LoopAgent' | 'ParallelAgent' | 'SequentialAgent';
6
15
  name: string;
7
16
  description: string;
8
17
  instruction: string;
9
18
  sub_agents?: PSAgentConfig[];
10
- additional_properties?: Record<string, any>;
19
+ additional_properties?: Record<string, unknown>;
11
20
  examples?: string[];
12
21
  model?: string;
13
22
  llm_config?: {
14
23
  max_completion_tokens?: number;
15
24
  context_window?: number;
25
+ /** @default 50 */
16
26
  max_specific_tool_calls?: number;
17
27
  reasoning_effort?: 'minimal' | 'low' | 'medium' | 'high';
28
+ /** 0–1 */
18
29
  temperature?: number;
30
+ /** 0–1 */
19
31
  top_p?: number;
20
32
  verbosity?: 'low' | 'medium' | 'high';
33
+ /** Enable prompt caching. @default false */
21
34
  enable_prompt_caching?: boolean;
35
+ /** Cache the system prompt. @default true when enable_prompt_caching is true */
22
36
  cache_system_prompt?: boolean;
37
+ /** Message indices to set cache breakpoints at (Anthropic models). */
23
38
  cache_breakpoints?: number[];
24
- } & Record<string, any>;
39
+ } & Record<string, unknown>;
25
40
  input_schema?: z.core.JSONSchema.BaseSchema;
26
41
  output_schema?: z.core.JSONSchema.BaseSchema;
27
42
  show_plan?: boolean;
@@ -30,37 +45,106 @@ export interface PSAgentConfig {
30
45
  tasks?: PSAgentTask[];
31
46
  token?: string;
32
47
  getToken?: () => Promise<string>;
48
+ /**
49
+ * Callable invoked before every LLM call in local mode to supply fresh non-auth headers.
50
+ * Called once per LLM request — suitable for short-lived headers such as app tokens and
51
+ * trace IDs that expire faster than the agent's lifetime.
52
+ *
53
+ * **`Authorization` must NOT be returned from this callable.** Auth is handled exclusively
54
+ * by `getToken`/`getApiKey` so that per-call bearer-token refresh works correctly.
55
+ * Returning `Authorization` here would re-introduce the defaultHeaders override bug.
56
+ *
57
+ * Errors thrown by this callable are caught and treated as `{}` (non-fatal) so the
58
+ * LLM call proceeds with the headers already present on `model.headers`.
59
+ *
60
+ * Only used when `local: true`. Has no effect in remote mode.
61
+ */
62
+ getHeaders?: () => Promise<Record<string, string>>;
33
63
  additional_headers?: Record<string, string>;
34
64
  evaluation?: {
35
65
  run_evaluator: boolean;
36
66
  reference_correlation_ids: string[] | null;
37
67
  };
38
- /** Run the agent in-process via agent-core instead of the PS API. Default: false. */
39
- local?: boolean;
40
- /** Callback invoked for each streamed event during local execution. */
41
- onEvent?: (event: LocalAgentEvent) => void;
68
+ /** Optional logger forwarded to execution. */
69
+ log?: IStreamLogger;
70
+ /** A2A server port. @default 41241 */
42
71
  port?: number;
43
72
  }
44
73
  /**
45
- * Event emitted during local agent execution (local: true mode).
46
- * Shape mirrors the remote event polling format so execute() can share a single handler path.
74
+ * Additional options available exclusively when `local: true` is set.
75
+ *
76
+ * Every field mirrors its counterpart in `AgentOptions` from `agent-core`
77
+ * so callers using the local path never need a nested options bag.
78
+ *
79
+ * These fields are **not** present on {@link PSAgentConfig} and will not
80
+ * appear in intellisense for remote-mode consumers.
47
81
  */
48
- export interface LocalAgentEvent {
49
- /** Current agent status */
50
- agentStatus: 'pending' | 'in-progress' | 'waiting' | 'completed' | 'failed';
51
- /** Unix timestamp (ms) when the event was generated */
52
- timestamp: number;
53
- /** Tool name present when agentStatus is 'waiting' */
54
- tool?: string;
55
- /** Tool input present when agentStatus is 'waiting' */
56
- toolInput?: {
57
- request_body: Record<string, any>;
58
- };
59
- /** Agent output present when agentStatus is 'completed' */
60
- output?: {
61
- response: string;
62
- [key: string]: any;
63
- };
64
- /** Error or status message present when agentStatus is 'failed' or 'in-progress' */
65
- message?: string;
82
+ export interface PSAgentLocalOptions {
83
+ /** Override the stream function used by the local Agent. Defaults to `streamSimple`. */
84
+ streamFn?: StreamFn;
85
+ /** Preferred transport forwarded to the stream function. */
86
+ transport?: Transport;
87
+ /** Convert AgentMessages to the provider Message format before each LLM call. */
88
+ convertToLlm?: (messages: AgentMessage[]) => Message[] | Promise<Message[]>;
89
+ /** Transform the full context (e.g. apply RAG, summarise) before each LLM call. */
90
+ transformContext?: (messages: AgentMessage[], signal?: AbortSignal) => Promise<AgentMessage[]>;
91
+ /** Resolve an API key for a given provider at runtime. */
92
+ getApiKey?: (provider: string) => Promise<string | undefined> | string | undefined;
93
+ /** Called with each raw streaming payload from the provider. */
94
+ onPayload?: SimpleStreamOptions['onPayload'];
95
+ /** Called once the full provider response object is available. */
96
+ onResponse?: SimpleStreamOptions['onResponse'];
97
+ /** Called before every tool execution; can override or block the call. */
98
+ beforeToolCall?: (context: BeforeToolCallContext, signal?: AbortSignal) => Promise<BeforeToolCallResult | undefined>;
99
+ /** Called after every tool execution; can override the result. */
100
+ afterToolCall?: (context: AfterToolCallContext, signal?: AbortSignal) => Promise<AfterToolCallResult | undefined>;
101
+ /** Called before each new agent loop turn; can inject messages or mutate state. */
102
+ prepareNextTurn?: (signal?: AbortSignal) => Promise<AgentLoopTurnUpdate | undefined> | AgentLoopTurnUpdate | undefined;
103
+ /** Session identifier forwarded to providers for cache-aware backends. */
104
+ sessionId?: string;
105
+ /** Per-level thinking token budgets forwarded to the stream function. */
106
+ thinkingBudgets?: ThinkingBudgets;
107
+ /** Optional cap for provider-requested retry delays (ms). */
108
+ maxRetryDelayMs?: number;
109
+ /** How to execute multiple tool calls in one assistant turn. @default "parallel" */
110
+ toolExecution?: ToolExecutionMode;
111
+ /** How queued steering messages are drained. @default "one-at-a-time" */
112
+ steeringMode?: QueueMode;
113
+ /** How queued follow-up messages are drained. @default "one-at-a-time" */
114
+ followUpMode?: QueueMode;
115
+ /**
116
+ * Listeners subscribed to the local Agent's lifecycle events.
117
+ * Each entry is registered via `agent.subscribe(listener)` before the first prompt.
118
+ */
119
+ localListeners?: Array<(event: AgentEvent, signal: AbortSignal) => Promise<void> | void>;
66
120
  }
121
+ /**
122
+ * Configuration for `PSAgent` running in **local** mode (`local: true`).
123
+ *
124
+ * Extends {@link PSAgentConfig} with all local-only options from
125
+ * {@link PSAgentLocalOptions}. The `local` discriminant is required and
126
+ * must be `true`.
127
+ *
128
+ * Remote consumers who do not set `local: true` will never see these
129
+ * additional fields in their config type.
130
+ */
131
+ export type PSAgentLocalConfig = PSAgentConfig & PSAgentLocalOptions & {
132
+ /** Must be `true` to enable local in-process execution via `agent-core`. */
133
+ local: true;
134
+ };
135
+ /**
136
+ * The full config type accepted by the `PSAgent` constructor.
137
+ *
138
+ * - When `local` is absent or `false`, only {@link PSAgentConfig} fields are valid.
139
+ * - When `local: true`, all {@link PSAgentLocalConfig} fields become available.
140
+ *
141
+ * Use this type when writing helpers or utilities that accept either mode.
142
+ */
143
+ export type PSAgentConfigWithLocal = PSAgentConfig | PSAgentLocalConfig;
144
+ /**
145
+ * @deprecated Use {@link PSAgentLocalOptions} instead.
146
+ * Kept for backward compatibility with existing imports.
147
+ */
148
+ export type LocalAgentOptions = PSAgentLocalOptions & {
149
+ local?: boolean;
150
+ };
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.PSAgentLogger = void 0;
7
- /* eslint-disable @typescript-eslint/no-explicit-any */
8
7
  const node_fs_1 = __importDefault(require("node:fs"));
9
8
  const debuglogger_1 = __importDefault(require("./utils/debuglogger"));
10
9
  class PSAgentLogger {
@@ -74,4 +73,4 @@ class PSAgentLogger {
74
73
  }
75
74
  }
76
75
  exports.PSAgentLogger = PSAgentLogger;
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNBZ2VudExvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvUFNBZ2VudExvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSx1REFBdUQ7QUFDdkQsc0RBQXlCO0FBRXpCLHNFQUE4QztBQWtCOUMsTUFBYSxhQUFhO0lBQ3hCLE1BQU0sQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQ1QsS0FBSyxHQUFHLElBQUEscUJBQVcsRUFBQyxPQUFPLENBQUMsQ0FBQztJQUNwQixXQUFXLENBQXFCO0lBQ3pDLE1BQU0sQ0FBVTtJQUNoQixJQUFJLENBQVU7SUFDdEIsWUFBWSxPQU1YO1FBQ0MsSUFBSSxPQUFPLEVBQUUsWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLGFBQWEsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUMxQyxDQUFDO1FBQ0QsSUFBSSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFBLHFCQUFXLEVBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sRUFBRSxXQUFXLENBQUM7UUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsR0FBRyxDQUFDLElBQVksRUFBRSxPQUFZLEVBQUUsR0FBRyxjQUFxQjtRQUN0RCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDakMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLGlCQUFFLENBQUMsY0FBYyxDQUNmLElB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
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNBZ2VudExvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvUFNBZ2VudExvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxzREFBeUI7QUFFekIsc0VBQThDO0FBa0I5QyxNQUFhLGFBQWE7SUFDeEIsTUFBTSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDVCxLQUFLLEdBQUcsSUFBQSxxQkFBVyxFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BCLFdBQVcsQ0FBcUI7SUFDekMsTUFBTSxDQUFVO0lBQ2hCLElBQUksQ0FBVTtJQUN0QixZQUFZLE9BTVg7UUFDQyxJQUFJLE9BQU8sRUFBRSxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEMsYUFBYSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQzFDLENBQUM7UUFDRCxJQUFJLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUEscUJBQVcsRUFBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxFQUFFLFdBQVcsQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sRUFBRSxNQUFNLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUUsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBWSxFQUFFLE9BQVksRUFBRSxHQUFHLGNBQXFCO1FBQ3RELE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNqQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDdkIsaUJBQUUsQ0FBQyxjQUFjLENBQ2YsSUFBSSxDQUFDLFdBQVcs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
@@ -9,6 +9,11 @@ export interface IPSAgentToolInput {
9
9
  method?: string;
10
10
  requestBody: z.core.JSONSchema.BaseSchema;
11
11
  }
12
+ export interface IPSAgentToolRunOptions extends Record<string, any> {
13
+ toolCallId?: string;
14
+ signal?: AbortSignal;
15
+ onUpdate?: (partialResult: Record<string, any>) => void;
16
+ }
12
17
  export declare class PSAgentTool {
13
18
  private name;
14
19
  private description;
@@ -24,7 +29,7 @@ export declare class PSAgentTool {
24
29
  local_execution?: boolean;
25
30
  hitl?: boolean;
26
31
  inputschema: IPSAgentToolInput;
27
- runCallback?: (input: Record<string, any>, log?: IStreamLogger) => Promise<Record<string, any>>;
32
+ runCallback?: (input: Record<string, any>, log?: IStreamLogger, options?: IPSAgentToolRunOptions) => Promise<Record<string, any>>;
28
33
  });
29
34
  get Name(): string;
30
35
  set Name(value: string);
@@ -46,11 +51,11 @@ export declare class PSAgentTool {
46
51
  });
47
52
  get Inputs(): IPSAgentToolInput;
48
53
  set Inputs(value: IPSAgentToolInput);
49
- run(input: Record<string, any>, log?: IStreamLogger): Promise<Record<string, any>>;
54
+ run(input: Record<string, any>, log?: IStreamLogger, options?: IPSAgentToolRunOptions): Promise<Record<string, any>>;
50
55
  static LocalTool({ name, description, requestschema, runCallback, }: {
51
56
  name: string;
52
57
  description: string;
53
58
  requestschema: z.core.JSONSchema.BaseSchema;
54
- runCallback: (input: Record<string, any>, log?: IStreamLogger) => Promise<Record<string, any>>;
59
+ runCallback: (input: Record<string, any>, log?: IStreamLogger, options?: IPSAgentToolRunOptions) => Promise<Record<string, any>>;
55
60
  }): PSAgentTool;
56
61
  }
@@ -67,11 +67,11 @@ class PSAgentTool {
67
67
  set Inputs(value) {
68
68
  this.inputschema = value;
69
69
  }
70
- run(input, log) {
70
+ run(input, log, options) {
71
71
  if (!this.runCallback) {
72
72
  throw new Error('run callback function is not defined for this tool');
73
73
  }
74
- return this.runCallback(input, log);
74
+ return this.runCallback(input, log, options);
75
75
  }
76
76
  static LocalTool({ name, description, requestschema, runCallback, }) {
77
77
  return new PSAgentTool({
@@ -92,4 +92,4 @@ class PSAgentTool {
92
92
  }
93
93
  }
94
94
  exports.PSAgentTool = PSAgentTool;
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNBZ2VudFRvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL1BTQWdlbnRUb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLDZDQUF1RDtBQWV2RCxNQUFhLFdBQVc7SUFDZCxJQUFJLENBQVM7SUFDYixXQUFXLENBQVM7SUFDcEIsSUFBSSxDQUFTO0lBQ2IsZUFBZSxDQUFVO0lBQ3pCLElBQUksQ0FJVjtJQUNNLFdBQVcsQ0FBb0I7SUFDL0IsV0FBVyxDQUdlO0lBRWxDLFlBQVksRUFDVixJQUFJLEVBQ0osV0FBVyxFQUNYLElBQUksR0FBRyxLQUFLLEVBQ1osZUFBZSxHQUFHLElBQUksRUFDdEIsSUFBSSxHQUFHLElBQUksRUFDWCxXQUFXLEVBQ1gsV0FBVyxHQVlaO1FBQ0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksR0FBRztZQUNWLFFBQVEsRUFBRSxJQUFJO1lBQ2QsU0FBUyxFQUFFLFFBQVE7WUFDbkIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixJQUFJLE9BQU8sV0FBVyxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7WUFDcEQsQ0FBQztZQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFXLElBQUksQ0FBQyxLQUFhO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFXLFdBQVcsQ0FBQyxLQUFhO1FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQVcsSUFBSSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQVcsY0FBYyxDQUFDLEtBQWM7UUFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBQ0QsSUFBVyxJQUFJLENBQUMsS0FJZjtRQUNDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFXLE1BQU07UUFDZixPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUMsV0FBVztZQUNuQixXQUFXLEVBQUUsSUFBQSw4QkFBb0IsRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQztTQUNoRSxDQUFDO0lBQ0osQ0FBQztJQUNELElBQVcsTUFBTSxDQUFDLEtBQXdCO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFTSxHQUFHLENBQ1IsS0FBMEIsRUFDMUIsR0FBbUI7UUFFbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFDdEIsSUFBSSxFQUNKLFdBQVcsRUFDWCxhQUFhLEVBQ2IsV0FBVyxHQVNaO1FBQ0MsT0FBTyxJQUFJLFdBQVcsQ0FBQztZQUNyQixJQUFJO1lBQ0osV0FBVztZQUNYLElBQUksRUFBRSxLQUFLO1lBQ1gsZUFBZSxFQUFFLElBQUk7WUFDckIsSUFBSSxFQUFFLElBQUk7WUFDVixXQUFXLEVBQUU7Z0JBQ1gsMkJBQTJCO2dCQUMzQiwwQ0FBMEM7Z0JBQzFDLEdBQUcsRUFBRSxvQkFBb0IsSUFBSSxFQUFFO2dCQUMvQixNQUFNLEVBQUUsTUFBTTtnQkFDZCxXQUFXLEVBQUUsYUFBYTthQUMzQjtZQUNELFdBQVc7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF6SUQsa0NBeUlDIn0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUFNBZ2VudFRvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL1BTQWdlbnRUb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLDZDQUF1RDtBQXFCdkQsTUFBYSxXQUFXO0lBQ2QsSUFBSSxDQUFTO0lBQ2IsV0FBVyxDQUFTO0lBQ3BCLElBQUksQ0FBUztJQUNiLGVBQWUsQ0FBVTtJQUN6QixJQUFJLENBSVY7SUFDTSxXQUFXLENBQW9CO0lBQy9CLFdBQVcsQ0FJZTtJQUVsQyxZQUFZLEVBQ1YsSUFBSSxFQUNKLFdBQVcsRUFDWCxJQUFJLEdBQUcsS0FBSyxFQUNaLGVBQWUsR0FBRyxJQUFJLEVBQ3RCLElBQUksR0FBRyxJQUFJLEVBQ1gsV0FBVyxFQUNYLFdBQVcsR0FhWjtRQUNDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUc7WUFDVixRQUFRLEVBQUUsSUFBSTtZQUNkLFNBQVMsRUFBRSxRQUFRO1lBQ25CLEtBQUssRUFBRSxDQUFDO1NBQ1QsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsSUFBSSxPQUFPLFdBQVcsS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ3BELENBQUM7WUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUNELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBQ0QsSUFBVyxJQUFJLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBVyxXQUFXLENBQUMsS0FBYTtRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFXLElBQUksQ0FBQyxLQUFhO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFXLGNBQWMsQ0FBQyxLQUFjO1FBQ3RDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQVcsSUFBSSxDQUFDLEtBSWY7UUFDQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBVyxNQUFNO1FBQ2YsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDLFdBQVc7WUFDbkIsV0FBVyxFQUFFLElBQUEsOEJBQW9CLEVBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUM7U0FDaEUsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFXLE1BQU0sQ0FBQyxLQUF3QjtRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRU0sR0FBRyxDQUNSLEtBQTBCLEVBQzFCLEdBQW1CLEVBQ25CLE9BQWdDO1FBRWhDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUN0QixJQUFJLEVBQ0osV0FBVyxFQUNYLGFBQWEsRUFDYixXQUFXLEdBVVo7UUFDQyxPQUFPLElBQUksV0FBVyxDQUFDO1lBQ3JCLElBQUk7WUFDSixXQUFXO1lBQ1gsSUFBSSxFQUFFLEtBQUs7WUFDWCxlQUFlLEVBQUUsSUFBSTtZQUNyQixJQUFJLEVBQUUsSUFBSTtZQUNWLFdBQVcsRUFBRTtnQkFDWCwyQkFBMkI7Z0JBQzNCLDBDQUEwQztnQkFDMUMsR0FBRyxFQUFFLG9CQUFvQixJQUFJLEVBQUU7Z0JBQy9CLE1BQU0sRUFBRSxNQUFNO2dCQUNkLFdBQVcsRUFBRSxhQUFhO2FBQzNCO1lBQ0QsV0FBVztTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTdJRCxrQ0E2SUMifQ==
@@ -3,7 +3,7 @@
3
3
  * Transforms to Message[] only at the LLM call boundary.
4
4
  */
5
5
  import { EventStream } from '@earendil-works/pi-ai';
6
- import type { AgentContext, AgentEvent, AgentLoopConfig, AgentMessage, StreamFn } from './types.js';
6
+ import type { AgentContext, AgentEvent, AgentLoopConfig, AgentMessage, StreamFn } from './types.ts';
7
7
  export type AgentEventSink = (event: AgentEvent) => Promise<void> | void;
8
8
  /**
9
9
  * Start an agent loop with a new prompt message.