psadk 1.4.8 → 1.5.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.
- 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/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/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
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared truncation utilities for tool outputs.
|
|
3
|
+
*
|
|
4
|
+
* Truncation is based on two independent limits - whichever is hit first wins:
|
|
5
|
+
* - Line limit (default: 2000 lines)
|
|
6
|
+
* - Byte limit (default: 50KB)
|
|
7
|
+
*
|
|
8
|
+
* Never returns partial lines (except bash tail truncation edge case).
|
|
9
|
+
*/
|
|
10
|
+
export const DEFAULT_MAX_LINES = 2000;
|
|
11
|
+
export const DEFAULT_MAX_BYTES = 50 * 1024; // 50KB
|
|
12
|
+
export const GREP_MAX_LINE_LENGTH = 500; // Max chars per grep match line
|
|
13
|
+
const runtimeBuffer = globalThis.Buffer;
|
|
14
|
+
// eslint-disable-next-line no-control-regex
|
|
15
|
+
const nonAsciiPattern = /[^\x00-\x7f]/;
|
|
16
|
+
function utf8ByteLength(content) {
|
|
17
|
+
if (runtimeBuffer)
|
|
18
|
+
return runtimeBuffer.byteLength(content, 'utf8');
|
|
19
|
+
const firstNonAscii = content.search(nonAsciiPattern);
|
|
20
|
+
if (firstNonAscii === -1)
|
|
21
|
+
return content.length;
|
|
22
|
+
let bytes = firstNonAscii;
|
|
23
|
+
for (let i = firstNonAscii; i < content.length; i++) {
|
|
24
|
+
const code = content.charCodeAt(i);
|
|
25
|
+
if (code <= 0x7f) {
|
|
26
|
+
bytes += 1;
|
|
27
|
+
}
|
|
28
|
+
else if (code <= 0x7ff) {
|
|
29
|
+
bytes += 2;
|
|
30
|
+
}
|
|
31
|
+
else if (code >= 0xd800 && code <= 0xdbff && i + 1 < content.length) {
|
|
32
|
+
const next = content.charCodeAt(i + 1);
|
|
33
|
+
if (next >= 0xdc00 && next <= 0xdfff) {
|
|
34
|
+
bytes += 4;
|
|
35
|
+
i++;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
bytes += 3;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
bytes += 3;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return bytes;
|
|
46
|
+
}
|
|
47
|
+
function replaceUnpairedSurrogates(content) {
|
|
48
|
+
let output = '';
|
|
49
|
+
for (let i = 0; i < content.length; i++) {
|
|
50
|
+
const code = content.charCodeAt(i);
|
|
51
|
+
if (code >= 0xd800 && code <= 0xdbff) {
|
|
52
|
+
if (i + 1 < content.length) {
|
|
53
|
+
const next = content.charCodeAt(i + 1);
|
|
54
|
+
if (next >= 0xdc00 && next <= 0xdfff) {
|
|
55
|
+
output += content[i] + content[i + 1];
|
|
56
|
+
i++;
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
output += '�';
|
|
61
|
+
}
|
|
62
|
+
else if (code >= 0xdc00 && code <= 0xdfff) {
|
|
63
|
+
output += '�';
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
output += content[i];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return output;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Format bytes as human-readable size.
|
|
73
|
+
*/
|
|
74
|
+
export function formatSize(bytes) {
|
|
75
|
+
if (bytes < 1024) {
|
|
76
|
+
return `${bytes}B`;
|
|
77
|
+
}
|
|
78
|
+
else if (bytes < 1024 * 1024) {
|
|
79
|
+
return `${(bytes / 1024).toFixed(1)}KB`;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Truncate content from the head (keep first N lines/bytes).
|
|
87
|
+
* Suitable for file reads where you want to see the beginning.
|
|
88
|
+
*
|
|
89
|
+
* Never returns partial lines. If first line exceeds byte limit,
|
|
90
|
+
* returns empty content with firstLineExceedsLimit=true.
|
|
91
|
+
*/
|
|
92
|
+
export function truncateHead(content, options = {}) {
|
|
93
|
+
const maxLines = options.maxLines ?? DEFAULT_MAX_LINES;
|
|
94
|
+
const maxBytes = options.maxBytes ?? DEFAULT_MAX_BYTES;
|
|
95
|
+
const totalBytes = utf8ByteLength(content);
|
|
96
|
+
const lines = content.split('\n');
|
|
97
|
+
const totalLines = lines.length;
|
|
98
|
+
// Check if no truncation needed
|
|
99
|
+
if (totalLines <= maxLines && totalBytes <= maxBytes) {
|
|
100
|
+
return {
|
|
101
|
+
content,
|
|
102
|
+
truncated: false,
|
|
103
|
+
truncatedBy: null,
|
|
104
|
+
totalLines,
|
|
105
|
+
totalBytes,
|
|
106
|
+
outputLines: totalLines,
|
|
107
|
+
outputBytes: totalBytes,
|
|
108
|
+
lastLinePartial: false,
|
|
109
|
+
firstLineExceedsLimit: false,
|
|
110
|
+
maxLines,
|
|
111
|
+
maxBytes,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
// Check if first line alone exceeds byte limit
|
|
115
|
+
const firstLineBytes = utf8ByteLength(lines[0]);
|
|
116
|
+
if (firstLineBytes > maxBytes) {
|
|
117
|
+
return {
|
|
118
|
+
content: '',
|
|
119
|
+
truncated: true,
|
|
120
|
+
truncatedBy: 'bytes',
|
|
121
|
+
totalLines,
|
|
122
|
+
totalBytes,
|
|
123
|
+
outputLines: 0,
|
|
124
|
+
outputBytes: 0,
|
|
125
|
+
lastLinePartial: false,
|
|
126
|
+
firstLineExceedsLimit: true,
|
|
127
|
+
maxLines,
|
|
128
|
+
maxBytes,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
// Collect complete lines that fit
|
|
132
|
+
const outputLinesArr = [];
|
|
133
|
+
let outputBytesCount = 0;
|
|
134
|
+
let truncatedBy = 'lines';
|
|
135
|
+
for (let i = 0; i < lines.length && i < maxLines; i++) {
|
|
136
|
+
const line = lines[i];
|
|
137
|
+
const lineBytes = utf8ByteLength(line) + (i > 0 ? 1 : 0); // +1 for newline
|
|
138
|
+
if (outputBytesCount + lineBytes > maxBytes) {
|
|
139
|
+
truncatedBy = 'bytes';
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
outputLinesArr.push(line);
|
|
143
|
+
outputBytesCount += lineBytes;
|
|
144
|
+
}
|
|
145
|
+
// If we exited due to line limit
|
|
146
|
+
if (outputLinesArr.length >= maxLines && outputBytesCount <= maxBytes) {
|
|
147
|
+
truncatedBy = 'lines';
|
|
148
|
+
}
|
|
149
|
+
const outputContent = outputLinesArr.join('\n');
|
|
150
|
+
const finalOutputBytes = utf8ByteLength(outputContent);
|
|
151
|
+
return {
|
|
152
|
+
content: outputContent,
|
|
153
|
+
truncated: true,
|
|
154
|
+
truncatedBy,
|
|
155
|
+
totalLines,
|
|
156
|
+
totalBytes,
|
|
157
|
+
outputLines: outputLinesArr.length,
|
|
158
|
+
outputBytes: finalOutputBytes,
|
|
159
|
+
lastLinePartial: false,
|
|
160
|
+
firstLineExceedsLimit: false,
|
|
161
|
+
maxLines,
|
|
162
|
+
maxBytes,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Truncate content from the tail (keep last N lines/bytes).
|
|
167
|
+
* Suitable for bash output where you want to see the end (errors, final results).
|
|
168
|
+
*
|
|
169
|
+
* May return partial first line if the last line of original content exceeds byte limit.
|
|
170
|
+
*/
|
|
171
|
+
export function truncateTail(content, options = {}) {
|
|
172
|
+
const maxLines = options.maxLines ?? DEFAULT_MAX_LINES;
|
|
173
|
+
const maxBytes = options.maxBytes ?? DEFAULT_MAX_BYTES;
|
|
174
|
+
const totalBytes = utf8ByteLength(content);
|
|
175
|
+
const lines = content.split('\n');
|
|
176
|
+
if (lines.length > 1 && lines[lines.length - 1] === '')
|
|
177
|
+
lines.pop();
|
|
178
|
+
const totalLines = lines.length;
|
|
179
|
+
// Check if no truncation needed
|
|
180
|
+
if (totalLines <= maxLines && totalBytes <= maxBytes) {
|
|
181
|
+
return {
|
|
182
|
+
content,
|
|
183
|
+
truncated: false,
|
|
184
|
+
truncatedBy: null,
|
|
185
|
+
totalLines,
|
|
186
|
+
totalBytes,
|
|
187
|
+
outputLines: totalLines,
|
|
188
|
+
outputBytes: totalBytes,
|
|
189
|
+
lastLinePartial: false,
|
|
190
|
+
firstLineExceedsLimit: false,
|
|
191
|
+
maxLines,
|
|
192
|
+
maxBytes,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
// Work backwards from the end
|
|
196
|
+
const outputLinesArr = [];
|
|
197
|
+
let outputBytesCount = 0;
|
|
198
|
+
let truncatedBy = 'lines';
|
|
199
|
+
let lastLinePartial = false;
|
|
200
|
+
for (let i = lines.length - 1; i >= 0 && outputLinesArr.length < maxLines; i--) {
|
|
201
|
+
const line = lines[i];
|
|
202
|
+
const lineBytes = utf8ByteLength(line) + (outputLinesArr.length > 0 ? 1 : 0); // +1 for newline
|
|
203
|
+
if (outputBytesCount + lineBytes > maxBytes) {
|
|
204
|
+
truncatedBy = 'bytes';
|
|
205
|
+
// Edge case: if we haven't added ANY lines yet and this line exceeds maxBytes,
|
|
206
|
+
// take the end of the line (partial)
|
|
207
|
+
if (outputLinesArr.length === 0) {
|
|
208
|
+
const truncatedLine = truncateStringToBytesFromEnd(line, maxBytes);
|
|
209
|
+
outputLinesArr.unshift(truncatedLine);
|
|
210
|
+
outputBytesCount = utf8ByteLength(truncatedLine);
|
|
211
|
+
lastLinePartial = true;
|
|
212
|
+
}
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
outputLinesArr.unshift(line);
|
|
216
|
+
outputBytesCount += lineBytes;
|
|
217
|
+
}
|
|
218
|
+
// If we exited due to line limit
|
|
219
|
+
if (outputLinesArr.length >= maxLines && outputBytesCount <= maxBytes) {
|
|
220
|
+
truncatedBy = 'lines';
|
|
221
|
+
}
|
|
222
|
+
const outputContent = outputLinesArr.join('\n');
|
|
223
|
+
const finalOutputBytes = utf8ByteLength(outputContent);
|
|
224
|
+
return {
|
|
225
|
+
content: outputContent,
|
|
226
|
+
truncated: true,
|
|
227
|
+
truncatedBy,
|
|
228
|
+
totalLines,
|
|
229
|
+
totalBytes,
|
|
230
|
+
outputLines: outputLinesArr.length,
|
|
231
|
+
outputBytes: finalOutputBytes,
|
|
232
|
+
lastLinePartial,
|
|
233
|
+
firstLineExceedsLimit: false,
|
|
234
|
+
maxLines,
|
|
235
|
+
maxBytes,
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Truncate a string to fit within a byte limit (from the end).
|
|
240
|
+
* Handles multi-byte UTF-8 characters correctly.
|
|
241
|
+
*/
|
|
242
|
+
function truncateStringToBytesFromEnd(str, maxBytes) {
|
|
243
|
+
if (maxBytes <= 0)
|
|
244
|
+
return '';
|
|
245
|
+
let outputBytes = 0;
|
|
246
|
+
let start = str.length;
|
|
247
|
+
let needsReplacement = false;
|
|
248
|
+
for (let i = str.length; i > 0;) {
|
|
249
|
+
let characterStart = i - 1;
|
|
250
|
+
const code = str.charCodeAt(characterStart);
|
|
251
|
+
let characterBytes;
|
|
252
|
+
let unpairedSurrogate = false;
|
|
253
|
+
if (code >= 0xdc00 && code <= 0xdfff && characterStart > 0) {
|
|
254
|
+
const previous = str.charCodeAt(characterStart - 1);
|
|
255
|
+
if (previous >= 0xd800 && previous <= 0xdbff) {
|
|
256
|
+
characterStart--;
|
|
257
|
+
characterBytes = 4;
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
characterBytes = 3;
|
|
261
|
+
unpairedSurrogate = true;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
else if (code >= 0xd800 && code <= 0xdfff) {
|
|
265
|
+
characterBytes = 3;
|
|
266
|
+
unpairedSurrogate = true;
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
characterBytes = code <= 0x7f ? 1 : code <= 0x7ff ? 2 : 3;
|
|
270
|
+
}
|
|
271
|
+
if (outputBytes + characterBytes > maxBytes)
|
|
272
|
+
break;
|
|
273
|
+
outputBytes += characterBytes;
|
|
274
|
+
start = characterStart;
|
|
275
|
+
needsReplacement ||= unpairedSurrogate;
|
|
276
|
+
i = characterStart;
|
|
277
|
+
}
|
|
278
|
+
const output = str.slice(start);
|
|
279
|
+
return needsReplacement ? replaceUnpairedSurrogates(output) : output;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Truncate a single line to max characters, adding [truncated] suffix.
|
|
283
|
+
* Used for grep match lines.
|
|
284
|
+
*/
|
|
285
|
+
export function truncateLine(line, maxChars = GREP_MAX_LINE_LENGTH) {
|
|
286
|
+
if (line.length <= maxChars) {
|
|
287
|
+
return { text: line, wasTruncated: false };
|
|
288
|
+
}
|
|
289
|
+
return {
|
|
290
|
+
text: `${line.slice(0, maxChars)}... [truncated]`,
|
|
291
|
+
wasTruncated: true,
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2FnZW50LWNvcmUvc3JjL2hhcm5lc3MvdXRpbHMvdHJ1bmNhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUM7QUFDdEMsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU87QUFDbkQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDLENBQUMsZ0NBQWdDO0FBc0N6RSxNQUFNLGFBQWEsR0FBSSxVQUF5QyxDQUFDLE1BQU0sQ0FBQztBQUN4RSw0Q0FBNEM7QUFDNUMsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDO0FBRXZDLFNBQVMsY0FBYyxDQUFDLE9BQWU7SUFDckMsSUFBSSxhQUFhO1FBQUUsT0FBTyxhQUFhLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUVwRSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3RELElBQUksYUFBYSxLQUFLLENBQUMsQ0FBQztRQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUVoRCxJQUFJLEtBQUssR0FBRyxhQUFhLENBQUM7SUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxhQUFhLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNwRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2pCLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDYixDQUFDO2FBQU0sSUFBSSxJQUFJLElBQUks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
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export * from './agent.ts';
|
|
2
|
+
export * from './agent-loop.ts';
|
|
3
|
+
export * from './harness/agent-harness.ts';
|
|
4
|
+
export { type BranchPreparation, type BranchSummaryDetails, type CollectEntriesResult, collectEntriesForBranchSummary, generateBranchSummary, prepareBranchEntries, } from './harness/compaction/branch-summarization.ts';
|
|
5
|
+
export { calculateContextTokens, compact, DEFAULT_COMPACTION_SETTINGS, estimateContextTokens, estimateTokens, findCutPoint, findTurnStartIndex, generateSummary, getLastAssistantUsage, prepareCompaction, serializeConversation, shouldCompact, } from './harness/compaction/compaction.ts';
|
|
6
|
+
export * from './harness/messages.ts';
|
|
7
|
+
export * from './harness/prompt-templates.ts';
|
|
8
|
+
export * from './harness/session/jsonl-repo.ts';
|
|
9
|
+
export * from './harness/session/memory-repo.ts';
|
|
10
|
+
export * from './harness/session/repo-utils.ts';
|
|
11
|
+
export * from './harness/session/session.ts';
|
|
12
|
+
export { uuidv7 } from './harness/session/uuid.ts';
|
|
13
|
+
export * from './harness/skills.ts';
|
|
14
|
+
export * from './harness/system-prompt.ts';
|
|
15
|
+
export * from './harness/types.ts';
|
|
16
|
+
export * from './harness/utils/shell-output.ts';
|
|
17
|
+
export * from './harness/utils/truncate.ts';
|
|
18
|
+
export * from './proxy.ts';
|
|
19
|
+
export * from './types.ts';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Core Agent
|
|
2
|
+
export * from "./agent.js";
|
|
3
|
+
// Loop functions
|
|
4
|
+
export * from "./agent-loop.js";
|
|
5
|
+
export * from "./harness/agent-harness.js";
|
|
6
|
+
export { collectEntriesForBranchSummary, generateBranchSummary, prepareBranchEntries, } from "./harness/compaction/branch-summarization.js";
|
|
7
|
+
export { calculateContextTokens, compact, DEFAULT_COMPACTION_SETTINGS, estimateContextTokens, estimateTokens, findCutPoint, findTurnStartIndex, generateSummary, getLastAssistantUsage, prepareCompaction, serializeConversation, shouldCompact, } from "./harness/compaction/compaction.js";
|
|
8
|
+
export * from "./harness/messages.js";
|
|
9
|
+
export * from "./harness/prompt-templates.js";
|
|
10
|
+
export * from "./harness/session/jsonl-repo.js";
|
|
11
|
+
export * from "./harness/session/memory-repo.js";
|
|
12
|
+
export * from "./harness/session/repo-utils.js";
|
|
13
|
+
export * from "./harness/session/session.js";
|
|
14
|
+
export { uuidv7 } from "./harness/session/uuid.js";
|
|
15
|
+
export * from "./harness/skills.js";
|
|
16
|
+
export * from "./harness/system-prompt.js";
|
|
17
|
+
// Harness
|
|
18
|
+
export * from "./harness/types.js";
|
|
19
|
+
export * from "./harness/utils/shell-output.js";
|
|
20
|
+
export * from "./harness/utils/truncate.js";
|
|
21
|
+
// Proxy utilities
|
|
22
|
+
export * from "./proxy.js";
|
|
23
|
+
// Types
|
|
24
|
+
export * from "./types.js";
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2FnZW50LWNvcmUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGFBQWE7QUFDYixjQUFjLFlBQVksQ0FBQztBQUMzQixpQkFBaUI7QUFDakIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLE9BQU8sRUFJTCw4QkFBOEIsRUFDOUIscUJBQXFCLEVBQ3JCLG9CQUFvQixHQUNyQixNQUFNLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsT0FBTyxFQUNQLDJCQUEyQixFQUMzQixxQkFBcUIsRUFDckIsY0FBYyxFQUNkLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixpQkFBaUIsRUFDakIscUJBQXFCLEVBQ3JCLGFBQWEsR0FDZCxNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRCxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsVUFBVTtBQUNWLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGtCQUFrQjtBQUNsQixjQUFjLFlBQVksQ0FBQztBQUMzQixRQUFRO0FBQ1IsY0FBYyxZQUFZLENBQUMifQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { NodeExecutionEnv } from "./harness/env/nodejs.js";
|
|
2
|
+
export * from "./index.js";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvYWdlbnQtY29yZS9zcmMvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxjQUFjLFlBQVksQ0FBQyJ9
|
|
@@ -285,10 +285,11 @@ function processProxyEvent(proxyEvent, partial) {
|
|
|
285
285
|
partial.usage = proxyEvent.usage;
|
|
286
286
|
return { type: 'error', reason: proxyEvent.reason, error: partial };
|
|
287
287
|
default: {
|
|
288
|
-
|
|
288
|
+
const _exhaustiveCheck = proxyEvent;
|
|
289
|
+
void _exhaustiveCheck;
|
|
289
290
|
console.warn(`Unhandled proxy event type: ${proxyEvent.type}`);
|
|
290
291
|
return undefined;
|
|
291
292
|
}
|
|
292
293
|
}
|
|
293
294
|
}
|
|
294
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2FnZW50LWNvcmUvcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsMkNBQTJDO0FBQzNDLE9BQU8sRUFJTCxXQUFXLEVBRVgsa0JBQWtCLEdBSW5CLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsdURBQXVEO0FBQ3ZELE1BQU0sdUJBQXdCLFNBQVEsV0FHckM7SUFDQztRQUNFLEtBQUssQ0FDSCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQzFELENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssTUFBTTtnQkFBRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDaEQsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU87Z0JBQUUsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXdERDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsU0FBUyx3QkFBd0IsQ0FDL0IsT0FBMkI7SUFFM0IsT0FBTztRQUNMLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztRQUNoQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7UUFDNUIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1FBQzVCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztRQUN0QyxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7UUFDNUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtRQUMxQixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7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
|
|
295
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2FnZW50LWNvcmUvc3JjL3Byb3h5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILDJDQUEyQztBQUMzQyxPQUFPLEVBSUwsV0FBVyxFQUVYLGtCQUFrQixHQUluQixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLHVEQUF1RDtBQUN2RCxNQUFNLHVCQUF3QixTQUFRLFdBR3JDO0lBQ0M7UUFDRSxLQUFLLENBQ0gsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUMxRCxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1IsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU07Z0JBQUUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ2hELElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPO2dCQUFFLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF3REQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILFNBQVMsd0JBQXdCLENBQy9CLE9BQTJCO0lBRTNCLE9BQU87UUFDTCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7UUFDaEMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1FBQzVCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztRQUM1QixjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7UUFDdEMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1FBQzVCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztRQUN4QixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7UUFDMUIsU0FBUyxFQUFFLE9BQU8sQ0FB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
|
|
@@ -19,6 +19,13 @@ export type StreamFn = (...args: Parameters<typeof streamSimple>) => ReturnType<
|
|
|
19
19
|
* while tool-result message artifacts are emitted later in assistant source order.
|
|
20
20
|
*/
|
|
21
21
|
export type ToolExecutionMode = 'sequential' | 'parallel';
|
|
22
|
+
/**
|
|
23
|
+
* Controls how many queued user messages are injected when the agent loop reaches a queue drain point.
|
|
24
|
+
*
|
|
25
|
+
* - "all": drain and inject every queued message at that point.
|
|
26
|
+
* - "one-at-a-time": drain and inject only the oldest queued message, leaving the rest queued for later drain points.
|
|
27
|
+
*/
|
|
28
|
+
export type QueueMode = 'all' | 'one-at-a-time';
|
|
22
29
|
/** A single tool call content block emitted by an assistant message. */
|
|
23
30
|
export type AgentToolCall = Extract<AssistantMessage['content'][number], {
|
|
24
31
|
type: 'toolCall';
|
|
@@ -306,7 +313,12 @@ export interface AgentToolResult<T> {
|
|
|
306
313
|
*/
|
|
307
314
|
terminate?: boolean;
|
|
308
315
|
}
|
|
309
|
-
/**
|
|
316
|
+
/**
|
|
317
|
+
* Callback used by tools to stream partial execution updates.
|
|
318
|
+
*
|
|
319
|
+
* The callback is scoped to the current `execute()` invocation. Calls made after
|
|
320
|
+
* the tool promise settles are ignored.
|
|
321
|
+
*/
|
|
310
322
|
export type AgentToolUpdateCallback<T = any> = (partialResult: AgentToolResult<T>) => void;
|
|
311
323
|
/** Tool definition used by the agent runtime. */
|
|
312
324
|
export interface AgentTool<TParameters extends TSchema = TSchema, TDetails = any> extends Tool<TParameters> {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2FnZW50LWNvcmUvc3JjL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local agent helpers — plain functions, no class.
|
|
3
|
+
*
|
|
4
|
+
* Three responsibilities extracted from PSAgent so the class stays lean:
|
|
5
|
+
* 1. buildLocalAgent — construct an agent-core Agent from PSAgentLocalConfig
|
|
6
|
+
* 2. convertTools — map PSAgentTool[] → agent-core tool descriptors
|
|
7
|
+
* 3. executeLocalAgent — bridge a local Agent run into an A2A event bus
|
|
8
|
+
*
|
|
9
|
+
* Nothing here is exported from the public barrel. Consumers interact with
|
|
10
|
+
* local mode exclusively through PSAgent's public API.
|
|
11
|
+
*/
|
|
12
|
+
import type { ExecutionEventBus, RequestContext } from '@a2a-js/sdk/server';
|
|
13
|
+
import type { PSAgentLocalConfig } from './PSAgentConfig';
|
|
14
|
+
import type { IStreamLogger } from './PSAgentLogger';
|
|
15
|
+
import type { IPSAgentToolRunOptions, PSAgentTool } from './PSAgentTool';
|
|
16
|
+
import { Agent } from './agent-core/src/agent.js';
|
|
17
|
+
/**
|
|
18
|
+
* Maps PSAgentTool[] into the tool descriptor shape expected by agent-core.
|
|
19
|
+
*/
|
|
20
|
+
export declare function convertTools(tools: PSAgentTool[], log?: IStreamLogger, options?: IPSAgentToolRunOptions): any[];
|
|
21
|
+
/**
|
|
22
|
+
* Constructs an agent-core Agent from a PSAgentLocalConfig.
|
|
23
|
+
*
|
|
24
|
+
* @param config The local agent config.
|
|
25
|
+
* @param getBaseUrl Resolves a service base URL (forwarded from PSAgent).
|
|
26
|
+
* @param getTools Returns the current tool list (called at build time so
|
|
27
|
+
* dynamically added tools via addTool() are included).
|
|
28
|
+
* @param log Optional logger.
|
|
29
|
+
*/
|
|
30
|
+
export declare function buildLocalAgent(config: PSAgentLocalConfig, getBaseUrl: (service?: 'agents' | 'events' | 'llmtrack' | 'llm') => string, getTools: () => PSAgentTool[], log?: IStreamLogger): Agent;
|
|
31
|
+
/**
|
|
32
|
+
* Bridges a local Agent run into an A2A ExecutionEventBus.
|
|
33
|
+
* Called from PSAgent.execute() when local: true.
|
|
34
|
+
*/
|
|
35
|
+
export declare function executeLocalAgent(agent: Agent, requestContext: RequestContext, eventBus: ExecutionEventBus, cancelledTasks: Set<string>, agentName: string, log?: IStreamLogger): Promise<void>;
|