@junctionpanel/server 0.1.49 → 0.1.51
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/dist/server/client/daemon-client.d.ts +4 -1
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +11 -0
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.d.ts +7 -0
- package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +25 -0
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.js +45 -0
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +21 -0
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
- package/dist/server/server/daemon-provider-rate-limits.d.ts +72 -0
- package/dist/server/server/daemon-provider-rate-limits.d.ts.map +1 -0
- package/dist/server/server/daemon-provider-rate-limits.js +1174 -0
- package/dist/server/server/daemon-provider-rate-limits.js.map +1 -0
- package/dist/server/server/session.d.ts +1 -0
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +39 -1
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/server/tool-call-preview.d.ts +6 -0
- package/dist/server/server/tool-call-preview.d.ts.map +1 -0
- package/dist/server/server/tool-call-preview.js +174 -0
- package/dist/server/server/tool-call-preview.js.map +1 -0
- package/dist/server/shared/messages.d.ts +1135 -20
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +44 -0
- package/dist/server/shared/messages.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AgentStreamEvent, AgentTimelineItem, ToolCallDetail } from "./agent/agent-sdk-types.js";
|
|
2
|
+
export type TimelineDetailMode = "preview" | "full";
|
|
3
|
+
export declare function sanitizeToolCallDetailForTransport(detail: ToolCallDetail, mode: TimelineDetailMode): ToolCallDetail;
|
|
4
|
+
export declare function sanitizeTimelineItemForTransport(item: AgentTimelineItem, mode: TimelineDetailMode): AgentTimelineItem;
|
|
5
|
+
export declare function sanitizeAgentStreamEventForTransport(event: AgentStreamEvent, mode: TimelineDetailMode): AgentStreamEvent;
|
|
6
|
+
//# sourceMappingURL=tool-call-preview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-call-preview.d.ts","sourceRoot":"","sources":["../../../src/server/tool-call-preview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEtG,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAAC;AA6EpD,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,kBAAkB,GACvB,cAAc,CAwGhB;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,kBAAkB,GACvB,iBAAiB,CASnB;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,kBAAkB,GACvB,gBAAgB,CAYlB"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
const SHELL_OUTPUT_PREVIEW_MAX_CHARS = 32000;
|
|
2
|
+
const TOOL_TEXT_PREVIEW_MAX_CHARS = 12000;
|
|
3
|
+
function buildTruncatedMarker(truncatedCount) {
|
|
4
|
+
return `\n...[truncated ${truncatedCount} chars]`;
|
|
5
|
+
}
|
|
6
|
+
function truncateHeadText(value, maxChars) {
|
|
7
|
+
if (typeof value !== "string" || value.length <= maxChars) {
|
|
8
|
+
return { text: value, truncated: false };
|
|
9
|
+
}
|
|
10
|
+
const truncatedCount = value.length - maxChars;
|
|
11
|
+
return {
|
|
12
|
+
text: `${value.slice(0, maxChars)}${buildTruncatedMarker(truncatedCount)}`,
|
|
13
|
+
truncated: true,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function sanitizeUnknownValueForPreview(value) {
|
|
17
|
+
if (typeof value === "string") {
|
|
18
|
+
const preview = truncateHeadText(value, TOOL_TEXT_PREVIEW_MAX_CHARS);
|
|
19
|
+
return { value: preview.text ?? "", truncated: preview.truncated };
|
|
20
|
+
}
|
|
21
|
+
if (value == null) {
|
|
22
|
+
return { value, truncated: false };
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
const serialized = JSON.stringify(value, null, 2);
|
|
26
|
+
if (typeof serialized !== "string") {
|
|
27
|
+
return { value, truncated: false };
|
|
28
|
+
}
|
|
29
|
+
const preview = truncateHeadText(serialized, TOOL_TEXT_PREVIEW_MAX_CHARS);
|
|
30
|
+
return preview.truncated
|
|
31
|
+
? { value: preview.text ?? "", truncated: true }
|
|
32
|
+
: { value, truncated: false };
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
const fallback = String(value);
|
|
36
|
+
const preview = truncateHeadText(fallback, TOOL_TEXT_PREVIEW_MAX_CHARS);
|
|
37
|
+
return preview.truncated
|
|
38
|
+
? { value: preview.text ?? "", truncated: true }
|
|
39
|
+
: { value, truncated: false };
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Keep more head than tail for shell output so the preview preserves the command context
|
|
44
|
+
* while still retaining the most recent lines; the truncation marker reduces the budget
|
|
45
|
+
* before the remaining chars are split 60/40 between head and tail.
|
|
46
|
+
*/
|
|
47
|
+
function truncateHeadTailText(value, maxChars) {
|
|
48
|
+
if (typeof value !== "string" || value.length <= maxChars) {
|
|
49
|
+
return { text: value, truncated: false };
|
|
50
|
+
}
|
|
51
|
+
const marker = buildTruncatedMarker(value.length - maxChars);
|
|
52
|
+
const remaining = Math.max(0, maxChars - marker.length);
|
|
53
|
+
const headLength = Math.ceil(remaining * 0.6);
|
|
54
|
+
const tailLength = Math.max(0, remaining - headLength);
|
|
55
|
+
return {
|
|
56
|
+
text: `${value.slice(0, headLength)}${marker}${tailLength > 0 ? value.slice(-tailLength) : ""}`,
|
|
57
|
+
truncated: true,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
export function sanitizeToolCallDetailForTransport(detail, mode) {
|
|
61
|
+
if (mode === "full") {
|
|
62
|
+
return detail;
|
|
63
|
+
}
|
|
64
|
+
switch (detail.type) {
|
|
65
|
+
case "shell": {
|
|
66
|
+
const preview = truncateHeadTailText(detail.output, SHELL_OUTPUT_PREVIEW_MAX_CHARS);
|
|
67
|
+
return preview.truncated
|
|
68
|
+
? {
|
|
69
|
+
...detail,
|
|
70
|
+
output: preview.text,
|
|
71
|
+
truncated: true,
|
|
72
|
+
}
|
|
73
|
+
: detail;
|
|
74
|
+
}
|
|
75
|
+
case "read": {
|
|
76
|
+
const preview = truncateHeadText(detail.content, TOOL_TEXT_PREVIEW_MAX_CHARS);
|
|
77
|
+
return preview.truncated
|
|
78
|
+
? {
|
|
79
|
+
...detail,
|
|
80
|
+
content: preview.text,
|
|
81
|
+
truncated: true,
|
|
82
|
+
}
|
|
83
|
+
: detail;
|
|
84
|
+
}
|
|
85
|
+
case "write": {
|
|
86
|
+
const preview = truncateHeadText(detail.content, TOOL_TEXT_PREVIEW_MAX_CHARS);
|
|
87
|
+
return preview.truncated
|
|
88
|
+
? {
|
|
89
|
+
...detail,
|
|
90
|
+
content: preview.text,
|
|
91
|
+
truncated: true,
|
|
92
|
+
}
|
|
93
|
+
: detail;
|
|
94
|
+
}
|
|
95
|
+
case "edit": {
|
|
96
|
+
const oldString = truncateHeadText(detail.oldString, TOOL_TEXT_PREVIEW_MAX_CHARS);
|
|
97
|
+
const newString = truncateHeadText(detail.newString, TOOL_TEXT_PREVIEW_MAX_CHARS);
|
|
98
|
+
const unifiedDiff = truncateHeadText(detail.unifiedDiff, TOOL_TEXT_PREVIEW_MAX_CHARS);
|
|
99
|
+
const truncated = oldString.truncated || newString.truncated || unifiedDiff.truncated;
|
|
100
|
+
return truncated
|
|
101
|
+
? {
|
|
102
|
+
...detail,
|
|
103
|
+
oldString: oldString.text,
|
|
104
|
+
newString: newString.text,
|
|
105
|
+
unifiedDiff: unifiedDiff.text,
|
|
106
|
+
truncated: true,
|
|
107
|
+
}
|
|
108
|
+
: detail;
|
|
109
|
+
}
|
|
110
|
+
case "worktree_setup": {
|
|
111
|
+
const preview = truncateHeadText(detail.log, TOOL_TEXT_PREVIEW_MAX_CHARS);
|
|
112
|
+
return preview.truncated
|
|
113
|
+
? {
|
|
114
|
+
...detail,
|
|
115
|
+
log: preview.text ?? "",
|
|
116
|
+
truncated: true,
|
|
117
|
+
}
|
|
118
|
+
: detail;
|
|
119
|
+
}
|
|
120
|
+
case "sub_agent": {
|
|
121
|
+
const preview = truncateHeadText(detail.log, TOOL_TEXT_PREVIEW_MAX_CHARS);
|
|
122
|
+
return preview.truncated
|
|
123
|
+
? {
|
|
124
|
+
...detail,
|
|
125
|
+
log: preview.text ?? "",
|
|
126
|
+
truncated: true,
|
|
127
|
+
}
|
|
128
|
+
: detail;
|
|
129
|
+
}
|
|
130
|
+
case "plain_text": {
|
|
131
|
+
const preview = truncateHeadText(detail.text, TOOL_TEXT_PREVIEW_MAX_CHARS);
|
|
132
|
+
return preview.truncated
|
|
133
|
+
? {
|
|
134
|
+
...detail,
|
|
135
|
+
text: preview.text,
|
|
136
|
+
truncated: true,
|
|
137
|
+
}
|
|
138
|
+
: detail;
|
|
139
|
+
}
|
|
140
|
+
case "unknown": {
|
|
141
|
+
const input = sanitizeUnknownValueForPreview(detail.input);
|
|
142
|
+
const output = sanitizeUnknownValueForPreview(detail.output);
|
|
143
|
+
return input.truncated || output.truncated
|
|
144
|
+
? {
|
|
145
|
+
...detail,
|
|
146
|
+
input: input.value,
|
|
147
|
+
output: output.value,
|
|
148
|
+
truncated: true,
|
|
149
|
+
}
|
|
150
|
+
: detail;
|
|
151
|
+
}
|
|
152
|
+
default:
|
|
153
|
+
return detail;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
export function sanitizeTimelineItemForTransport(item, mode) {
|
|
157
|
+
if (mode === "full" || item.type !== "tool_call") {
|
|
158
|
+
return item;
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
...item,
|
|
162
|
+
detail: sanitizeToolCallDetailForTransport(item.detail, mode),
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
export function sanitizeAgentStreamEventForTransport(event, mode) {
|
|
166
|
+
if (mode === "full" || event.type !== "timeline" || event.item.type !== "tool_call") {
|
|
167
|
+
return event;
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
...event,
|
|
171
|
+
item: sanitizeTimelineItemForTransport(event.item, mode),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=tool-call-preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-call-preview.js","sourceRoot":"","sources":["../../../src/server/tool-call-preview.ts"],"names":[],"mappings":"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"}
|