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.
- package/build/main/index.d.ts +1 -0
- package/build/main/lib/PSAI.js +1 -2
- package/build/main/lib/PSAgent.d.ts +46 -44
- package/build/main/lib/PSAgent.js +176 -961
- package/build/main/lib/PSAgentConfig.d.ts +110 -26
- package/build/main/lib/PSAgentLogger.js +1 -2
- package/build/main/lib/PSAgentTool.d.ts +8 -3
- package/build/main/lib/PSAgentTool.js +3 -3
- package/build/main/lib/agent-core/{agent-loop.d.ts → src/agent-loop.d.ts} +1 -1
- package/build/main/lib/agent-core/src/agent-loop.js +514 -0
- package/build/{module/lib/agent-core → main/lib/agent-core/src}/agent.d.ts +2 -2
- package/build/main/lib/agent-core/src/agent.js +419 -0
- package/build/main/lib/agent-core/{harness → src/harness}/agent-harness.d.ts +36 -26
- package/build/main/lib/agent-core/src/harness/agent-harness.js +1028 -0
- package/build/main/lib/agent-core/src/harness/compaction/branch-summarization.d.ts +52 -0
- package/build/main/lib/agent-core/src/harness/compaction/branch-summarization.js +182 -0
- package/build/main/lib/agent-core/src/harness/compaction/compaction.d.ts +94 -0
- package/build/main/lib/agent-core/src/harness/compaction/compaction.js +550 -0
- package/build/main/lib/agent-core/src/harness/compaction/utils.d.ts +24 -0
- package/build/main/lib/agent-core/src/harness/compaction/utils.js +131 -0
- package/build/main/lib/agent-core/src/harness/env/nodejs.d.ts +50 -0
- package/build/main/lib/agent-core/src/harness/env/nodejs.js +494 -0
- package/build/main/lib/agent-core/{harness → src/harness}/messages.d.ts +2 -2
- package/build/{module/lib/agent-core → main/lib/agent-core/src}/harness/messages.js +1 -1
- package/build/main/lib/agent-core/{harness → src/harness}/prompt-templates.d.ts +4 -1
- package/build/main/lib/agent-core/src/harness/prompt-templates.js +235 -0
- 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
- package/build/main/lib/agent-core/src/harness/session/jsonl-repo.js +106 -0
- 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
- package/build/main/lib/agent-core/src/harness/session/jsonl-storage.js +234 -0
- package/build/main/lib/agent-core/{harness/session/repo/memory.d.ts → src/harness/session/memory-repo.d.ts} +1 -1
- package/build/main/lib/agent-core/src/harness/session/memory-repo.js +45 -0
- package/build/main/lib/agent-core/{harness/session/storage/memory.d.ts → src/harness/session/memory-storage.d.ts} +4 -5
- package/build/main/lib/agent-core/src/harness/session/memory-storage.js +116 -0
- package/build/main/lib/agent-core/{harness/session/repo/shared.d.ts → src/harness/session/repo-utils.d.ts} +3 -2
- package/build/main/lib/agent-core/src/harness/session/repo-utils.js +39 -0
- package/build/{module/lib/agent-core → main/lib/agent-core/src}/harness/session/session.d.ts +3 -2
- package/build/main/lib/agent-core/src/harness/session/session.js +213 -0
- package/build/main/lib/agent-core/src/harness/session/uuid.d.ts +1 -0
- package/build/main/lib/agent-core/src/harness/session/uuid.js +54 -0
- package/build/main/lib/agent-core/{harness → src/harness}/skills.d.ts +4 -1
- package/build/main/lib/agent-core/src/harness/skills.js +353 -0
- package/build/main/lib/agent-core/{harness → src/harness}/system-prompt.d.ts +1 -1
- package/build/main/lib/agent-core/src/harness/system-prompt.js +30 -0
- package/build/{module/lib/agent-core → main/lib/agent-core/src}/harness/types.d.ts +160 -70
- package/build/main/lib/agent-core/src/harness/types.js +94 -0
- package/build/main/lib/agent-core/{harness → src/harness}/utils/shell-output.d.ts +2 -2
- package/build/main/lib/agent-core/src/harness/utils/shell-output.js +134 -0
- package/build/main/lib/agent-core/src/harness/utils/truncate.js +294 -0
- package/build/main/lib/agent-core/src/index.d.ts +19 -0
- package/build/main/lib/agent-core/src/index.js +25 -0
- package/build/main/lib/agent-core/src/node.d.ts +2 -0
- package/build/main/lib/agent-core/src/node.js +3 -0
- package/build/main/lib/agent-core/{proxy.js → src/proxy.js} +3 -2
- package/build/{module/lib/agent-core → main/lib/agent-core/src}/types.d.ts +13 -1
- package/build/{module/lib/agent-core → main/lib/agent-core/src}/types.js +1 -1
- package/build/main/lib/localAgent.d.ts +35 -0
- package/build/main/lib/localAgent.js +329 -0
- package/build/main/lib/remoteAgent.d.ts +25 -0
- package/build/main/lib/remoteAgent.js +311 -0
- package/build/main/lib/skills/skillParser.d.ts +13 -3
- package/build/main/lib/skills/skillParser.js +61 -12
- package/build/main/lib/skills/utils.js +18 -10
- package/build/main/lib/tools/BraveWebSearchTool.js +1 -2
- package/build/main/lib/tools/PSArtifactTool.js +1 -2
- package/build/main/lib/tools/PSClarifyTool.js +1 -2
- package/build/main/lib/tools/PSCommandLineTool.js +1 -2
- package/build/main/lib/tools/PSMemoryTool.js +1 -2
- package/build/main/lib/tools/PSReadFileTool.js +1 -2
- package/build/main/lib/tools/PSRetrievalTool.js +1 -2
- package/build/main/lib/tools/PSSkillTool.js +1 -2
- package/build/main/lib/tools/PSSubAgentTool.js +1 -1
- package/build/main/lib/tools/PSWriteFileTool.js +1 -2
- package/build/main/lib/tools/TodoTool.js +1 -2
- package/build/main/lib/utils/debuglogger.js +1 -2
- package/build/main/lib/utils/helpers.js +1 -6
- package/build/module/index.d.ts +1 -0
- package/build/module/lib/PSAI.js +1 -2
- package/build/module/lib/PSAgent.d.ts +46 -44
- package/build/module/lib/PSAgent.js +176 -961
- package/build/module/lib/PSAgentConfig.d.ts +110 -26
- package/build/module/lib/PSAgentLogger.js +1 -2
- package/build/module/lib/PSAgentTool.d.ts +8 -3
- package/build/module/lib/PSAgentTool.js +3 -3
- package/build/module/lib/agent-core/{agent-loop.d.ts → src/agent-loop.d.ts} +1 -1
- package/build/module/lib/agent-core/src/agent-loop.js +514 -0
- package/build/{main/lib/agent-core → module/lib/agent-core/src}/agent.d.ts +2 -2
- package/build/module/lib/agent-core/src/agent.js +419 -0
- package/build/module/lib/agent-core/{harness → src/harness}/agent-harness.d.ts +36 -26
- package/build/module/lib/agent-core/src/harness/agent-harness.js +1028 -0
- package/build/module/lib/agent-core/src/harness/compaction/branch-summarization.d.ts +52 -0
- package/build/module/lib/agent-core/src/harness/compaction/branch-summarization.js +182 -0
- package/build/module/lib/agent-core/src/harness/compaction/compaction.d.ts +94 -0
- package/build/module/lib/agent-core/src/harness/compaction/compaction.js +550 -0
- package/build/module/lib/agent-core/src/harness/compaction/utils.d.ts +24 -0
- package/build/module/lib/agent-core/src/harness/compaction/utils.js +131 -0
- package/build/module/lib/agent-core/src/harness/env/nodejs.d.ts +50 -0
- package/build/module/lib/agent-core/src/harness/env/nodejs.js +494 -0
- package/build/module/lib/agent-core/{harness → src/harness}/messages.d.ts +2 -2
- package/build/{main/lib/agent-core → module/lib/agent-core/src}/harness/messages.js +1 -1
- package/build/module/lib/agent-core/{harness → src/harness}/prompt-templates.d.ts +4 -1
- package/build/module/lib/agent-core/src/harness/prompt-templates.js +235 -0
- 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
- package/build/module/lib/agent-core/src/harness/session/jsonl-repo.js +106 -0
- 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
- package/build/module/lib/agent-core/src/harness/session/jsonl-storage.js +234 -0
- package/build/module/lib/agent-core/{harness/session/repo/memory.d.ts → src/harness/session/memory-repo.d.ts} +1 -1
- package/build/module/lib/agent-core/src/harness/session/memory-repo.js +45 -0
- package/build/module/lib/agent-core/{harness/session/storage/memory.d.ts → src/harness/session/memory-storage.d.ts} +4 -5
- package/build/module/lib/agent-core/src/harness/session/memory-storage.js +116 -0
- package/build/module/lib/agent-core/{harness/session/repo/shared.d.ts → src/harness/session/repo-utils.d.ts} +3 -2
- package/build/module/lib/agent-core/src/harness/session/repo-utils.js +39 -0
- package/build/{main/lib/agent-core → module/lib/agent-core/src}/harness/session/session.d.ts +3 -2
- package/build/module/lib/agent-core/src/harness/session/session.js +213 -0
- package/build/module/lib/agent-core/src/harness/session/uuid.d.ts +1 -0
- package/build/module/lib/agent-core/src/harness/session/uuid.js +54 -0
- package/build/module/lib/agent-core/{harness → src/harness}/skills.d.ts +4 -1
- package/build/module/lib/agent-core/src/harness/skills.js +353 -0
- package/build/module/lib/agent-core/{harness → src/harness}/system-prompt.d.ts +1 -1
- package/build/module/lib/agent-core/src/harness/system-prompt.js +30 -0
- package/build/{main/lib/agent-core → module/lib/agent-core/src}/harness/types.d.ts +160 -70
- package/build/module/lib/agent-core/src/harness/types.js +94 -0
- package/build/module/lib/agent-core/{harness → src/harness}/utils/shell-output.d.ts +2 -2
- package/build/module/lib/agent-core/src/harness/utils/shell-output.js +134 -0
- package/build/module/lib/agent-core/src/harness/utils/truncate.js +294 -0
- package/build/module/lib/agent-core/src/index.d.ts +19 -0
- package/build/module/lib/agent-core/src/index.js +25 -0
- package/build/module/lib/agent-core/src/node.d.ts +2 -0
- package/build/module/lib/agent-core/src/node.js +3 -0
- package/build/module/lib/agent-core/{proxy.js → src/proxy.js} +3 -2
- package/build/{main/lib/agent-core → module/lib/agent-core/src}/types.d.ts +13 -1
- package/build/{main/lib/agent-core → module/lib/agent-core/src}/types.js +1 -1
- package/build/module/lib/localAgent.d.ts +35 -0
- package/build/module/lib/localAgent.js +329 -0
- package/build/module/lib/remoteAgent.d.ts +25 -0
- package/build/module/lib/remoteAgent.js +311 -0
- package/build/module/lib/skills/skillParser.d.ts +13 -3
- package/build/module/lib/skills/skillParser.js +61 -12
- package/build/module/lib/skills/utils.js +18 -10
- package/build/module/lib/tools/BraveWebSearchTool.js +1 -2
- package/build/module/lib/tools/PSArtifactTool.js +1 -2
- package/build/module/lib/tools/PSClarifyTool.js +1 -2
- package/build/module/lib/tools/PSCommandLineTool.js +1 -2
- package/build/module/lib/tools/PSMemoryTool.js +1 -2
- package/build/module/lib/tools/PSReadFileTool.js +1 -2
- package/build/module/lib/tools/PSRetrievalTool.js +1 -2
- package/build/module/lib/tools/PSSkillTool.js +1 -2
- package/build/module/lib/tools/PSSubAgentTool.js +1 -1
- package/build/module/lib/tools/PSWriteFileTool.js +1 -2
- package/build/module/lib/tools/TodoTool.js +1 -2
- package/build/module/lib/utils/debuglogger.js +1 -2
- package/build/module/lib/utils/helpers.js +1 -6
- package/package.json +2 -1
- package/build/main/lib/agent-core/agent-loop.js +0 -483
- package/build/main/lib/agent-core/agent.js +0 -419
- package/build/main/lib/agent-core/harness/agent-harness.js +0 -772
- package/build/main/lib/agent-core/harness/compaction/branch-summarization.d.ts +0 -87
- package/build/main/lib/agent-core/harness/compaction/branch-summarization.js +0 -246
- package/build/main/lib/agent-core/harness/compaction/compaction.d.ts +0 -121
- package/build/main/lib/agent-core/harness/compaction/compaction.js +0 -637
- package/build/main/lib/agent-core/harness/compaction/utils.d.ts +0 -37
- package/build/main/lib/agent-core/harness/compaction/utils.js +0 -153
- package/build/main/lib/agent-core/harness/env/nodejs.d.ts +0 -43
- package/build/main/lib/agent-core/harness/env/nodejs.js +0 -353
- package/build/main/lib/agent-core/harness/execution-env.d.ts +0 -3
- package/build/main/lib/agent-core/harness/execution-env.js +0 -3
- package/build/main/lib/agent-core/harness/prompt-templates.js +0 -204
- package/build/main/lib/agent-core/harness/session/repo/jsonl.js +0 -98
- package/build/main/lib/agent-core/harness/session/repo/memory.js +0 -46
- package/build/main/lib/agent-core/harness/session/repo/shared.js +0 -31
- package/build/main/lib/agent-core/harness/session/session.js +0 -199
- package/build/main/lib/agent-core/harness/session/storage/jsonl.js +0 -170
- package/build/main/lib/agent-core/harness/session/storage/memory.js +0 -94
- package/build/main/lib/agent-core/harness/skills.js +0 -266
- package/build/main/lib/agent-core/harness/system-prompt.js +0 -30
- package/build/main/lib/agent-core/harness/types.js +0 -16
- package/build/main/lib/agent-core/harness/utils/shell-output.js +0 -101
- package/build/main/lib/agent-core/harness/utils/truncate.js +0 -208
- package/build/main/lib/agent-core/index.d.ts +0 -19
- package/build/main/lib/agent-core/index.js +0 -25
- package/build/module/lib/agent-core/agent-loop.js +0 -483
- package/build/module/lib/agent-core/agent.js +0 -419
- package/build/module/lib/agent-core/harness/agent-harness.js +0 -772
- package/build/module/lib/agent-core/harness/compaction/branch-summarization.d.ts +0 -87
- package/build/module/lib/agent-core/harness/compaction/branch-summarization.js +0 -246
- package/build/module/lib/agent-core/harness/compaction/compaction.d.ts +0 -121
- package/build/module/lib/agent-core/harness/compaction/compaction.js +0 -637
- package/build/module/lib/agent-core/harness/compaction/utils.d.ts +0 -37
- package/build/module/lib/agent-core/harness/compaction/utils.js +0 -153
- package/build/module/lib/agent-core/harness/env/nodejs.d.ts +0 -43
- package/build/module/lib/agent-core/harness/env/nodejs.js +0 -353
- package/build/module/lib/agent-core/harness/execution-env.d.ts +0 -3
- package/build/module/lib/agent-core/harness/execution-env.js +0 -3
- package/build/module/lib/agent-core/harness/prompt-templates.js +0 -204
- package/build/module/lib/agent-core/harness/session/repo/jsonl.js +0 -98
- package/build/module/lib/agent-core/harness/session/repo/memory.js +0 -46
- package/build/module/lib/agent-core/harness/session/repo/shared.js +0 -31
- package/build/module/lib/agent-core/harness/session/session.js +0 -199
- package/build/module/lib/agent-core/harness/session/storage/jsonl.js +0 -170
- package/build/module/lib/agent-core/harness/session/storage/memory.js +0 -94
- package/build/module/lib/agent-core/harness/skills.js +0 -266
- package/build/module/lib/agent-core/harness/system-prompt.js +0 -30
- package/build/module/lib/agent-core/harness/types.js +0 -16
- package/build/module/lib/agent-core/harness/utils/shell-output.js +0 -101
- package/build/module/lib/agent-core/harness/utils/truncate.js +0 -208
- package/build/module/lib/agent-core/index.d.ts +0 -19
- package/build/module/lib/agent-core/index.js +0 -25
- /package/build/main/lib/agent-core/{harness → src/harness}/utils/truncate.d.ts +0 -0
- /package/build/main/lib/agent-core/{proxy.d.ts → src/proxy.d.ts} +0 -0
- /package/build/module/lib/agent-core/{harness → src/harness}/utils/truncate.d.ts +0 -0
- /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,
|
|
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,
|
|
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
|
-
/**
|
|
39
|
-
|
|
40
|
-
/**
|
|
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
|
-
*
|
|
46
|
-
*
|
|
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
|
|
49
|
-
/**
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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,
|
|
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,
|
|
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.
|
|
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.
|