@librechat/agents 4.0.2 → 4.0.3
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/cjs/agents/AgentContext.cjs +3 -2
- package/dist/cjs/agents/AgentContext.cjs.map +1 -1
- package/dist/cjs/decisions/structuredChat.cjs +2 -8
- package/dist/cjs/decisions/structuredChat.cjs.map +1 -1
- package/dist/cjs/decisions/structuredOutput.cjs +18 -0
- package/dist/cjs/decisions/structuredOutput.cjs.map +1 -0
- package/dist/cjs/graphs/Graph.cjs +25 -9
- package/dist/cjs/graphs/Graph.cjs.map +1 -1
- package/dist/cjs/llm/google/index.cjs +1 -1
- package/dist/cjs/llm/invoke.cjs +34 -12
- package/dist/cjs/llm/invoke.cjs.map +1 -1
- package/dist/cjs/llm/openai/index.cjs +7 -0
- package/dist/cjs/llm/openai/index.cjs.map +1 -1
- package/dist/cjs/llm/providerTextBoundary.cjs +355 -0
- package/dist/cjs/llm/providerTextBoundary.cjs.map +1 -0
- package/dist/cjs/llm/providerTextChunk.cjs +14 -0
- package/dist/cjs/llm/providerTextChunk.cjs.map +1 -0
- package/dist/cjs/llm/providerTextControls.cjs +236 -0
- package/dist/cjs/llm/providerTextControls.cjs.map +1 -0
- package/dist/cjs/llm/stream/smoother.cjs +2 -1
- package/dist/cjs/llm/stream/smoother.cjs.map +1 -1
- package/dist/cjs/main.cjs +10 -1
- package/dist/cjs/protection/providerText.cjs +224 -0
- package/dist/cjs/protection/providerText.cjs.map +1 -0
- package/dist/cjs/protection/providerTextInput.cjs +25 -0
- package/dist/cjs/protection/providerTextInput.cjs.map +1 -0
- package/dist/cjs/run.cjs +7 -1
- package/dist/cjs/run.cjs.map +1 -1
- package/dist/cjs/stream.cjs +42 -14
- package/dist/cjs/stream.cjs.map +1 -1
- package/dist/cjs/summarization/node.cjs +26 -8
- package/dist/cjs/summarization/node.cjs.map +1 -1
- package/dist/cjs/tools/SubagentTool.cjs +11 -3
- package/dist/cjs/tools/SubagentTool.cjs.map +1 -1
- package/dist/cjs/tools/ToolNode.cjs +6 -5
- package/dist/cjs/tools/ToolNode.cjs.map +1 -1
- package/dist/cjs/tools/subagent/SubagentExecutionRegistry.cjs +2 -2
- package/dist/cjs/tools/subagent/SubagentExecutionRegistry.cjs.map +1 -1
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs +66 -16
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -1
- package/dist/cjs/tools/subagent/SubagentReplay.cjs +4 -2
- package/dist/cjs/tools/subagent/SubagentReplay.cjs.map +1 -1
- package/dist/cjs/tools/subagent/childGraphConfig.cjs +3 -1
- package/dist/cjs/tools/subagent/childGraphConfig.cjs.map +1 -1
- package/dist/cjs/tools/subagent/diagnostics.cjs +48 -5
- package/dist/cjs/tools/subagent/diagnostics.cjs.map +1 -1
- package/dist/cjs/tools/subagent/hostArgs.cjs +214 -0
- package/dist/cjs/tools/subagent/hostArgs.cjs.map +1 -0
- package/dist/cjs/tools/subagent/index.cjs +1 -0
- package/dist/cjs/tools/toolErrorContent.cjs +1 -1
- package/dist/esm/agents/AgentContext.mjs +3 -2
- package/dist/esm/agents/AgentContext.mjs.map +1 -1
- package/dist/esm/decisions/structuredChat.mjs +2 -8
- package/dist/esm/decisions/structuredChat.mjs.map +1 -1
- package/dist/esm/decisions/structuredOutput.mjs +18 -0
- package/dist/esm/decisions/structuredOutput.mjs.map +1 -0
- package/dist/esm/graphs/Graph.mjs +25 -9
- package/dist/esm/graphs/Graph.mjs.map +1 -1
- package/dist/esm/llm/google/index.mjs +1 -1
- package/dist/esm/llm/invoke.mjs +34 -12
- package/dist/esm/llm/invoke.mjs.map +1 -1
- package/dist/esm/llm/openai/index.mjs +7 -0
- package/dist/esm/llm/openai/index.mjs.map +1 -1
- package/dist/esm/llm/providerTextBoundary.mjs +355 -0
- package/dist/esm/llm/providerTextBoundary.mjs.map +1 -0
- package/dist/esm/llm/providerTextChunk.mjs +13 -0
- package/dist/esm/llm/providerTextChunk.mjs.map +1 -0
- package/dist/esm/llm/providerTextControls.mjs +230 -0
- package/dist/esm/llm/providerTextControls.mjs.map +1 -0
- package/dist/esm/llm/stream/smoother.mjs +2 -1
- package/dist/esm/llm/stream/smoother.mjs.map +1 -1
- package/dist/esm/main.mjs +5 -3
- package/dist/esm/protection/providerText.mjs +218 -0
- package/dist/esm/protection/providerText.mjs.map +1 -0
- package/dist/esm/protection/providerTextInput.mjs +24 -0
- package/dist/esm/protection/providerTextInput.mjs.map +1 -0
- package/dist/esm/run.mjs +7 -1
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/stream.mjs +42 -14
- package/dist/esm/stream.mjs.map +1 -1
- package/dist/esm/summarization/node.mjs +26 -8
- package/dist/esm/summarization/node.mjs.map +1 -1
- package/dist/esm/tools/SubagentTool.mjs +11 -3
- package/dist/esm/tools/SubagentTool.mjs.map +1 -1
- package/dist/esm/tools/ToolNode.mjs +6 -5
- package/dist/esm/tools/ToolNode.mjs.map +1 -1
- package/dist/esm/tools/subagent/SubagentExecutionRegistry.mjs +2 -2
- package/dist/esm/tools/subagent/SubagentExecutionRegistry.mjs.map +1 -1
- package/dist/esm/tools/subagent/SubagentExecutor.mjs +66 -16
- package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -1
- package/dist/esm/tools/subagent/SubagentReplay.mjs +4 -2
- package/dist/esm/tools/subagent/SubagentReplay.mjs.map +1 -1
- package/dist/esm/tools/subagent/childGraphConfig.mjs +3 -1
- package/dist/esm/tools/subagent/childGraphConfig.mjs.map +1 -1
- package/dist/esm/tools/subagent/diagnostics.mjs +46 -6
- package/dist/esm/tools/subagent/diagnostics.mjs.map +1 -1
- package/dist/esm/tools/subagent/hostArgs.mjs +207 -0
- package/dist/esm/tools/subagent/hostArgs.mjs.map +1 -0
- package/dist/esm/tools/subagent/index.mjs +1 -0
- package/dist/esm/tools/toolErrorContent.mjs +1 -1
- package/dist/types/decisions/structuredChat.d.ts +3 -2
- package/dist/types/decisions/structuredOutput.d.ts +4 -0
- package/dist/types/graphs/Graph.d.ts +6 -3
- package/dist/types/index.d.ts +2 -0
- package/dist/types/llm/invoke.d.ts +4 -1
- package/dist/types/llm/providerTextBoundary.d.ts +4 -0
- package/dist/types/llm/providerTextChunk.d.ts +7 -0
- package/dist/types/llm/providerTextControls.d.ts +18 -0
- package/dist/types/protection/providerText.d.ts +77 -0
- package/dist/types/protection/providerTextInput.d.ts +3 -0
- package/dist/types/run.d.ts +1 -0
- package/dist/types/tools/BashExecutor.d.ts +4 -0
- package/dist/types/tools/CodeExecutor.d.ts +4 -0
- package/dist/types/tools/ReadFile.d.ts +4 -0
- package/dist/types/tools/SkillTool.d.ts +4 -0
- package/dist/types/tools/SubagentTool.d.ts +2 -0
- package/dist/types/tools/ToolSearch.d.ts +4 -0
- package/dist/types/tools/search/schema.d.ts +4 -0
- package/dist/types/tools/subagent/SubagentExecutionRegistry.d.ts +2 -0
- package/dist/types/tools/subagent/SubagentExecutor.d.ts +10 -2
- package/dist/types/tools/subagent/SubagentReplay.d.ts +3 -1
- package/dist/types/tools/subagent/diagnostics.d.ts +27 -3
- package/dist/types/tools/subagent/hostArgs.d.ts +57 -0
- package/dist/types/tools/subagent/index.d.ts +3 -2
- package/dist/types/types/graph.d.ts +36 -0
- package/dist/types/types/run.d.ts +4 -2
- package/dist/types/types/tools.d.ts +2 -0
- package/package.json +4 -4
- package/src/agents/AgentContext.ts +3 -2
- package/src/decisions/structuredChat.ts +9 -15
- package/src/decisions/structuredOutput.ts +25 -0
- package/src/graphs/Graph.ts +53 -9
- package/src/index.ts +7 -0
- package/src/llm/invoke.ts +48 -7
- package/src/llm/openai/index.ts +8 -0
- package/src/llm/providerTextBoundary.ts +446 -0
- package/src/llm/providerTextChunk.ts +15 -0
- package/src/llm/providerTextControls.ts +173 -0
- package/src/llm/stream/smoother.ts +4 -2
- package/src/protection/providerText.ts +325 -0
- package/src/protection/providerTextInput.ts +21 -0
- package/src/run.ts +9 -0
- package/src/stream.ts +33 -7
- package/src/summarization/node.ts +32 -14
- package/src/tools/SubagentTool.ts +14 -3
- package/src/tools/ToolNode.ts +7 -3
- package/src/tools/subagent/SubagentExecutionRegistry.ts +6 -2
- package/src/tools/subagent/SubagentExecutor.ts +145 -18
- package/src/tools/subagent/SubagentReplay.ts +10 -3
- package/src/tools/subagent/childGraphConfig.ts +12 -1
- package/src/tools/subagent/diagnostics.ts +98 -6
- package/src/tools/subagent/hostArgs.ts +413 -0
- package/src/tools/subagent/index.ts +9 -0
- package/src/types/graph.ts +41 -0
- package/src/types/run.ts +4 -2
- package/src/types/tools.ts +6 -1
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
const require_providerText = require("../protection/providerText.cjs");
|
|
2
|
+
//#region src/llm/providerTextControls.ts
|
|
3
|
+
const GEMINI_SIGNATURES = "__gemini_function_call_thought_signatures__";
|
|
4
|
+
const RESPONSES_POSITIONS = "__openai_responses_replay_positions__";
|
|
5
|
+
function keys(value, allowed) {
|
|
6
|
+
return value != null && typeof value === "object" && !Array.isArray(value) && Object.keys(value).every((key) => allowed.includes(key));
|
|
7
|
+
}
|
|
8
|
+
function stringMap(value) {
|
|
9
|
+
return value != null && typeof value === "object" && !Array.isArray(value) && Object.entries(value).length <= 128 && Object.values(value).every((entry) => typeof entry === "string");
|
|
10
|
+
}
|
|
11
|
+
function safetyRatings(value) {
|
|
12
|
+
return Array.isArray(value) && value.length <= 16 && value.every((entry) => keys(entry, [
|
|
13
|
+
"category",
|
|
14
|
+
"probability",
|
|
15
|
+
"blocked"
|
|
16
|
+
]) && typeof entry.category === "string" && /^HARM_CATEGORY_[A-Z_]+$/.test(entry.category) && [
|
|
17
|
+
"NEGLIGIBLE",
|
|
18
|
+
"LOW",
|
|
19
|
+
"MEDIUM",
|
|
20
|
+
"HIGH",
|
|
21
|
+
"HARM_PROBABILITY_UNSPECIFIED"
|
|
22
|
+
].includes(String(entry.probability)) && (entry.blocked == null || typeof entry.blocked === "boolean"));
|
|
23
|
+
}
|
|
24
|
+
function replayPositions(value) {
|
|
25
|
+
return Array.isArray(value) && value.length <= 128 && value.every((entry) => keys(entry, [
|
|
26
|
+
"itemId",
|
|
27
|
+
"kind",
|
|
28
|
+
"outputIndex",
|
|
29
|
+
"contentIndex"
|
|
30
|
+
]) && typeof entry.itemId === "string" && [
|
|
31
|
+
"message",
|
|
32
|
+
"text",
|
|
33
|
+
"reasoning",
|
|
34
|
+
"output"
|
|
35
|
+
].includes(String(entry.kind)) && typeof entry.outputIndex === "number" && Number.isSafeInteger(entry.outputIndex) && entry.outputIndex >= 0 && (entry.contentIndex == null || typeof entry.contentIndex === "number" && Number.isSafeInteger(entry.contentIndex) && entry.contentIndex >= 0));
|
|
36
|
+
}
|
|
37
|
+
const scalarKeys = new Set([
|
|
38
|
+
"id",
|
|
39
|
+
"model",
|
|
40
|
+
"model_name",
|
|
41
|
+
"model_provider",
|
|
42
|
+
"created_at",
|
|
43
|
+
"object",
|
|
44
|
+
"status",
|
|
45
|
+
"user",
|
|
46
|
+
"service_tier",
|
|
47
|
+
"max_output_tokens",
|
|
48
|
+
"max_tool_calls",
|
|
49
|
+
"parallel_tool_calls",
|
|
50
|
+
"temperature",
|
|
51
|
+
"top_p",
|
|
52
|
+
"truncation",
|
|
53
|
+
"store",
|
|
54
|
+
"background",
|
|
55
|
+
"previous_response_id",
|
|
56
|
+
"prompt_cache_key",
|
|
57
|
+
"prompt_cache_retention",
|
|
58
|
+
"safety_identifier",
|
|
59
|
+
"completed_at"
|
|
60
|
+
]);
|
|
61
|
+
function messageOutput(value) {
|
|
62
|
+
if (!keys(value, [
|
|
63
|
+
"id",
|
|
64
|
+
"type",
|
|
65
|
+
"role",
|
|
66
|
+
"status",
|
|
67
|
+
"phase",
|
|
68
|
+
"content"
|
|
69
|
+
]) || value.type !== "message" || typeof value.id !== "string" || value.role !== "assistant" || !["completed", "incomplete"].includes(String(value.status)) || value.phase != null && !["commentary", "final_answer"].includes(String(value.phase)) || !Array.isArray(value.content) || value.content.length !== 1) return false;
|
|
70
|
+
const part = value.content[0];
|
|
71
|
+
return keys(part, [
|
|
72
|
+
"type",
|
|
73
|
+
"text",
|
|
74
|
+
"annotations",
|
|
75
|
+
"logprobs"
|
|
76
|
+
]) && part.type === "output_text" && typeof part.text === "string" && Array.isArray(part.annotations) && part.annotations.length === 0 && (part.logprobs === void 0 || Array.isArray(part.logprobs) && part.logprobs.length === 0);
|
|
77
|
+
}
|
|
78
|
+
var ResponsesTextProjection = class {
|
|
79
|
+
attempt;
|
|
80
|
+
metadata;
|
|
81
|
+
hasOutputAlias = false;
|
|
82
|
+
output;
|
|
83
|
+
constructor(attempt) {
|
|
84
|
+
this.attempt = attempt;
|
|
85
|
+
}
|
|
86
|
+
strip(metadata) {
|
|
87
|
+
if (!Object.hasOwn(metadata, "output")) return metadata;
|
|
88
|
+
if (this.metadata != null || metadata.model_provider !== "openai" || metadata.object !== "response" || !Array.isArray(metadata.output) || metadata.output.length > 32) throw new require_providerText.ProviderTextProtectionError("unsupported");
|
|
89
|
+
let messageCount = 0;
|
|
90
|
+
const output = metadata.output.map((item) => {
|
|
91
|
+
if (messageOutput(item)) {
|
|
92
|
+
if (++messageCount > 1 || !this.attempt.matchesText(item.content[0].text)) throw new require_providerText.ProviderTextProtectionError("unsupported");
|
|
93
|
+
return {
|
|
94
|
+
...item,
|
|
95
|
+
content: [{
|
|
96
|
+
...item.content[0],
|
|
97
|
+
text: ""
|
|
98
|
+
}]
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
if (!responseOutputControl(item)) throw new require_providerText.ProviderTextProtectionError("unsupported");
|
|
102
|
+
return item;
|
|
103
|
+
});
|
|
104
|
+
if (messageCount === 0 && !this.attempt.matchesText("") || metadata.output_text != null && (typeof metadata.output_text !== "string" || !this.attempt.matchesText(metadata.output_text))) throw new require_providerText.ProviderTextProtectionError("unsupported");
|
|
105
|
+
for (const [key, value] of Object.entries(metadata)) {
|
|
106
|
+
let valid;
|
|
107
|
+
if (key === "output" || key === "output_text") continue;
|
|
108
|
+
if (key === "top_logprobs") valid = value == null || value === 0;
|
|
109
|
+
else if (key === "usage") valid = numericTree(value);
|
|
110
|
+
else if (key === "text") valid = keys(value, ["format", "verbosity"]) && keys(value.format, ["type"]) && value.format.type === "text" && (value.verbosity == null || [
|
|
111
|
+
"low",
|
|
112
|
+
"medium",
|
|
113
|
+
"high"
|
|
114
|
+
].includes(String(value.verbosity)));
|
|
115
|
+
else if (key === "tools") valid = Array.isArray(value) && value.length <= 32 && value.every(responseTool);
|
|
116
|
+
else if (key === "tool_choice") valid = value === "auto" || value === "none" || value === "required" || keys(value, ["type", "name"]) && value.type === "function" && typeof value.name === "string";
|
|
117
|
+
else if (key === "reasoning") valid = value == null || keys(value, ["effort", "summary"]) && (value.effort == null || [
|
|
118
|
+
"none",
|
|
119
|
+
"minimal",
|
|
120
|
+
"low",
|
|
121
|
+
"medium",
|
|
122
|
+
"high",
|
|
123
|
+
"xhigh"
|
|
124
|
+
].includes(String(value.effort))) && (value.summary == null || [
|
|
125
|
+
"auto",
|
|
126
|
+
"concise",
|
|
127
|
+
"detailed"
|
|
128
|
+
].includes(String(value.summary)));
|
|
129
|
+
else if (key === "metadata") valid = keys(value, []) || value == null;
|
|
130
|
+
else if (key === "instructions" || key === "error") valid = value == null;
|
|
131
|
+
else if (key === "incomplete_details") valid = value == null || keys(value, ["reason"]) && ["max_output_tokens", "content_filter"].includes(String(value.reason));
|
|
132
|
+
else valid = scalarKeys.has(key) && (value == null || typeof value === "string" || typeof value === "boolean" || typeof value === "number" && Number.isFinite(value));
|
|
133
|
+
if (!valid) throw new require_providerText.ProviderTextProtectionError("unsupported");
|
|
134
|
+
}
|
|
135
|
+
retainTree(metadata, this.attempt);
|
|
136
|
+
this.output = output;
|
|
137
|
+
this.hasOutputAlias = Object.hasOwn(metadata, "output_text");
|
|
138
|
+
const { output: _output, output_text: _alias, ...controls } = metadata;
|
|
139
|
+
this.metadata = controls;
|
|
140
|
+
return controls;
|
|
141
|
+
}
|
|
142
|
+
canonical(content) {
|
|
143
|
+
if (this.metadata == null || this.output == null) return void 0;
|
|
144
|
+
return {
|
|
145
|
+
output: this.output.map((item) => messageOutput(item) ? {
|
|
146
|
+
...item,
|
|
147
|
+
content: [{
|
|
148
|
+
...item.content[0],
|
|
149
|
+
text: content
|
|
150
|
+
}]
|
|
151
|
+
} : item),
|
|
152
|
+
...this.hasOutputAlias ? { output_text: content } : {}
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
function numericTree(value, depth = 4) {
|
|
157
|
+
if (value == null) return true;
|
|
158
|
+
if (typeof value === "number") return Number.isFinite(value);
|
|
159
|
+
if (typeof value !== "object" || Array.isArray(value) || depth === 0) return false;
|
|
160
|
+
const entries = Object.values(value);
|
|
161
|
+
return entries.length <= 64 && entries.every((entry) => numericTree(entry, depth - 1));
|
|
162
|
+
}
|
|
163
|
+
function responseOutputControl(value) {
|
|
164
|
+
if (!keys(value, [
|
|
165
|
+
"id",
|
|
166
|
+
"type",
|
|
167
|
+
"status",
|
|
168
|
+
"call_id",
|
|
169
|
+
"name",
|
|
170
|
+
"arguments",
|
|
171
|
+
"summary",
|
|
172
|
+
"encrypted_content"
|
|
173
|
+
])) return false;
|
|
174
|
+
if (typeof value.id !== "string" || value.status != null && ![
|
|
175
|
+
"completed",
|
|
176
|
+
"incomplete",
|
|
177
|
+
"in_progress"
|
|
178
|
+
].includes(String(value.status))) return false;
|
|
179
|
+
if (value.type === "function_call") return keys(value, [
|
|
180
|
+
"id",
|
|
181
|
+
"type",
|
|
182
|
+
"status",
|
|
183
|
+
"call_id",
|
|
184
|
+
"name",
|
|
185
|
+
"arguments"
|
|
186
|
+
]) && typeof value.call_id === "string" && typeof value.name === "string" && typeof value.arguments === "string";
|
|
187
|
+
if (value.type !== "reasoning" || !keys(value, [
|
|
188
|
+
"id",
|
|
189
|
+
"type",
|
|
190
|
+
"status",
|
|
191
|
+
"summary",
|
|
192
|
+
"encrypted_content"
|
|
193
|
+
])) return false;
|
|
194
|
+
return (value.encrypted_content == null || typeof value.encrypted_content === "string") && Array.isArray(value.summary) && value.summary.length <= 32 && value.summary.every((entry) => keys(entry, ["type", "text"]) && entry.type === "summary_text" && typeof entry.text === "string");
|
|
195
|
+
}
|
|
196
|
+
function responseTool(value) {
|
|
197
|
+
return keys(value, [
|
|
198
|
+
"type",
|
|
199
|
+
"name",
|
|
200
|
+
"description",
|
|
201
|
+
"strict",
|
|
202
|
+
"parameters"
|
|
203
|
+
]) && value.type === "function" && typeof value.name === "string" && (value.description == null || typeof value.description === "string") && (value.strict == null || typeof value.strict === "boolean") && jsonControl(value.parameters);
|
|
204
|
+
}
|
|
205
|
+
function jsonControl(value, depth = 6) {
|
|
206
|
+
if (value == null || typeof value === "string" || typeof value === "boolean") return true;
|
|
207
|
+
if (typeof value === "number") return Number.isFinite(value);
|
|
208
|
+
if (typeof value !== "object" || depth === 0) return false;
|
|
209
|
+
const entries = Object.values(value);
|
|
210
|
+
return entries.length <= 64 && entries.every((entry) => jsonControl(entry, depth - 1));
|
|
211
|
+
}
|
|
212
|
+
function retainTree(value, attempt, depth = 8) {
|
|
213
|
+
if (typeof value === "string") {
|
|
214
|
+
attempt.retain(value.length * 2 + 32);
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
attempt.retain(64);
|
|
218
|
+
if (value == null || typeof value !== "object") return;
|
|
219
|
+
if (depth === 0) throw new require_providerText.ProviderTextProtectionError("unsupported");
|
|
220
|
+
const entries = Object.entries(value);
|
|
221
|
+
if (entries.length > 128) throw new require_providerText.ProviderTextProtectionError("unsupported");
|
|
222
|
+
for (const [key, entry] of entries) {
|
|
223
|
+
attempt.retain(key.length * 2 + 32);
|
|
224
|
+
retainTree(entry, attempt, depth - 1);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
//#endregion
|
|
228
|
+
exports.GEMINI_SIGNATURES = GEMINI_SIGNATURES;
|
|
229
|
+
exports.RESPONSES_POSITIONS = RESPONSES_POSITIONS;
|
|
230
|
+
exports.ResponsesTextProjection = ResponsesTextProjection;
|
|
231
|
+
exports.keys = keys;
|
|
232
|
+
exports.replayPositions = replayPositions;
|
|
233
|
+
exports.safetyRatings = safetyRatings;
|
|
234
|
+
exports.stringMap = stringMap;
|
|
235
|
+
|
|
236
|
+
//# sourceMappingURL=providerTextControls.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providerTextControls.cjs","names":["ProviderTextProtectionError"],"sources":["../../../src/llm/providerTextControls.ts"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const require_providerText = require("../../protection/providerText.cjs");
|
|
1
2
|
//#region src/llm/stream/smoother.ts
|
|
2
3
|
const DEFAULT_STREAM_DELAY = 25;
|
|
3
4
|
const MAX_SMOOTH_ITEM_SEGMENT_CHARS = 4096;
|
|
@@ -52,7 +53,7 @@ async function waitForStreamDelay(delay, signal) {
|
|
|
52
53
|
});
|
|
53
54
|
}
|
|
54
55
|
async function* smoothStream({ source, delayMs, signal, abortUpstream }) {
|
|
55
|
-
if (!(delayMs > 0)) {
|
|
56
|
+
if (!(delayMs > 0) || require_providerText.isProtectedProviderTextSignal(signal)) {
|
|
56
57
|
for await (const item of source) {
|
|
57
58
|
if (isSignalAborted(signal)) {
|
|
58
59
|
abortUpstream?.();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smoother.cjs","names":["iterator"],"sources":["../../../../src/llm/stream/smoother.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"smoother.cjs","names":["isProtectedProviderTextSignal","iterator"],"sources":["../../../../src/llm/stream/smoother.ts"],"mappings":"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"}
|
package/dist/cjs/main.cjs
CHANGED
|
@@ -15,6 +15,8 @@ const require_core = require("./messages/core.cjs");
|
|
|
15
15
|
const require_preempt = require("./llm/preempt.cjs");
|
|
16
16
|
const require_fading = require("./messages/fading.cjs");
|
|
17
17
|
const require_types = require("./hooks/types.cjs");
|
|
18
|
+
const require_streamLimits = require("./llm/streamLimits.cjs");
|
|
19
|
+
const require_providerText = require("./protection/providerText.cjs");
|
|
18
20
|
const require_tokenCounterCacheCompatibility = require("./llm/tokenCounterCacheCompatibility.cjs");
|
|
19
21
|
const require_tokens = require("./utils/tokens.cjs");
|
|
20
22
|
const require_llm = require("./utils/llm.cjs");
|
|
@@ -45,7 +47,6 @@ const require_projectionInvariant = require("./messages/projectionInvariant.cjs"
|
|
|
45
47
|
require("./messages/index.cjs");
|
|
46
48
|
const require_graph = require("./utils/graph.cjs");
|
|
47
49
|
const require_proxy = require("./utils/proxy.cjs");
|
|
48
|
-
const require_streamLimits = require("./llm/streamLimits.cjs");
|
|
49
50
|
const require_handlers = require("./tools/handlers.cjs");
|
|
50
51
|
const require_intentArg = require("./tools/intentArg.cjs");
|
|
51
52
|
const require_stream = require("./stream.cjs");
|
|
@@ -55,6 +56,7 @@ const require_run = require("./utils/run.cjs");
|
|
|
55
56
|
const require_schema = require("./utils/schema.cjs");
|
|
56
57
|
const require_errors = require("./utils/errors.cjs");
|
|
57
58
|
require("./utils/index.cjs");
|
|
59
|
+
const require_hostArgs = require("./tools/subagent/hostArgs.cjs");
|
|
58
60
|
const require_diagnostics = require("./tools/subagent/diagnostics.cjs");
|
|
59
61
|
const require_childGraphConfig = require("./tools/subagent/childGraphConfig.cjs");
|
|
60
62
|
const require_SubagentExecutor = require("./tools/subagent/SubagentExecutor.cjs");
|
|
@@ -332,6 +334,7 @@ exports.PREEMPT_BOUNDARY_HOOK_TIMEOUT_MS = require_constants.PREEMPT_BOUNDARY_HO
|
|
|
332
334
|
exports.PRESSURE_THRESHOLD_MASKING = require_fading.PRESSURE_THRESHOLD_MASKING;
|
|
333
335
|
exports.PROVIDER_MESSAGE_PROVENANCE_LIMITS = require_provenance.PROVIDER_MESSAGE_PROVENANCE_LIMITS;
|
|
334
336
|
exports.PROVIDER_MESSAGE_PROVENANCE_VERSION = require_provenance.PROVIDER_MESSAGE_PROVENANCE_VERSION;
|
|
337
|
+
exports.PROVIDER_TEXT_PROTECTION_VERSION = require_providerText.PROVIDER_TEXT_PROTECTION_VERSION;
|
|
335
338
|
exports.ProgrammaticToolCallingDefinition = require_ProgrammaticToolCalling.ProgrammaticToolCallingDefinition;
|
|
336
339
|
exports.ProgrammaticToolCallingDescription = require_ProgrammaticToolCalling.ProgrammaticToolCallingDescription;
|
|
337
340
|
exports.ProgrammaticToolCallingName = require_ProgrammaticToolCalling.ProgrammaticToolCallingName;
|
|
@@ -343,6 +346,7 @@ Object.defineProperty(exports, "PromptTemplate", {
|
|
|
343
346
|
}
|
|
344
347
|
});
|
|
345
348
|
exports.ProviderMessageProjectionInvariantError = require_projectionInvariant.ProviderMessageProjectionInvariantError;
|
|
349
|
+
exports.ProviderTextProtectionError = require_providerText.ProviderTextProtectionError;
|
|
346
350
|
exports.Providers = require_enum.Providers;
|
|
347
351
|
exports.REASONING_LABEL_RUN_NAME = require_constants.REASONING_LABEL_RUN_NAME;
|
|
348
352
|
exports.REMOVE_ALL_MESSAGES = require_reducer.REMOVE_ALL_MESSAGES;
|
|
@@ -376,6 +380,7 @@ exports.STANDARD_GRAPH_RUN_NAME = require_constants.STANDARD_GRAPH_RUN_NAME;
|
|
|
376
380
|
exports.STATEFUL_BASH_NOTE = require_BashExecutor.STATEFUL_BASH_NOTE;
|
|
377
381
|
exports.STATEFUL_ENV_NOTE = require_CodeExecutor.STATEFUL_ENV_NOTE;
|
|
378
382
|
exports.SUBAGENT_CONTEXT_VERSION = require_constants.SUBAGENT_CONTEXT_VERSION;
|
|
383
|
+
exports.SUBAGENT_HOST_ARG_LIMITS = require_hostArgs.SUBAGENT_HOST_ARG_LIMITS;
|
|
379
384
|
exports.SessionManager = require_JsonlSessionStore.SessionManager;
|
|
380
385
|
exports.SkillToolDefinition = require_SkillTool.SkillToolDefinition;
|
|
381
386
|
exports.SkillToolDescription = require_SkillTool.SkillToolDescription;
|
|
@@ -393,6 +398,7 @@ Object.defineProperty(exports, "StructuredTool", {
|
|
|
393
398
|
}
|
|
394
399
|
});
|
|
395
400
|
exports.SubagentExecutor = require_SubagentExecutor.SubagentExecutor;
|
|
401
|
+
exports.SubagentHostArgumentError = require_diagnostics.SubagentHostArgumentError;
|
|
396
402
|
exports.SubagentResolutionError = require_diagnostics.SubagentResolutionError;
|
|
397
403
|
exports.SubagentToolDefinition = require_SubagentTool.SubagentToolDefinition;
|
|
398
404
|
exports.SubagentToolDescription = require_SubagentTool.SubagentToolDescription;
|
|
@@ -475,6 +481,7 @@ exports.buildCodeApiHttpErrorMessage = require_CodeExecutor.buildCodeApiHttpErro
|
|
|
475
481
|
exports.buildCodeExecutionToolDescription = require_CodeExecutor.buildCodeExecutionToolDescription;
|
|
476
482
|
exports.buildCodeExecutionToolSchema = require_CodeExecutor.buildCodeExecutionToolSchema;
|
|
477
483
|
exports.buildSandboxRuntimeConfig = require_LocalExecutionEngine.buildSandboxRuntimeConfig;
|
|
484
|
+
exports.buildSubagentHostArgProperties = require_hostArgs.buildSubagentHostArgProperties;
|
|
478
485
|
exports.buildSubagentToolParams = require_SubagentTool.buildSubagentToolParams;
|
|
479
486
|
exports.buildSummarizationInstruction = require_shared.buildSummarizationInstruction;
|
|
480
487
|
exports.buildSummaryCarrierText = require_shared.buildSummaryCarrierText;
|
|
@@ -651,6 +658,7 @@ exports.getProviderMessageProvenance = require_provenance.getProviderMessageProv
|
|
|
651
658
|
exports.getProviderSourceMessageIds = require_provenance.getProviderSourceMessageIds;
|
|
652
659
|
exports.getReadRoots = require_LocalExecutionEngine.getReadRoots;
|
|
653
660
|
exports.getSpawn = require_LocalExecutionEngine.getSpawn;
|
|
661
|
+
exports.getSubagentHostArgumentFailureMessage = require_diagnostics.getSubagentHostArgumentFailureMessage;
|
|
654
662
|
exports.getSubagentResolutionFailureMessage = require_diagnostics.getSubagentResolutionFailureMessage;
|
|
655
663
|
exports.getTokenCountForMessage = require_tokens.getTokenCountForMessage;
|
|
656
664
|
exports.getWorkspaceFS = require_LocalExecutionEngine.getWorkspaceFS;
|
|
@@ -818,6 +826,7 @@ exports.resolveStreamDelay = require_smoother.resolveStreamDelay;
|
|
|
818
826
|
exports.resolveStreamLimits = require_streamLimits.resolveStreamLimits;
|
|
819
827
|
exports.resolveSubagentConfigEntries = require_childGraphConfig.resolveSubagentConfigEntries;
|
|
820
828
|
exports.resolveSubagentConfigs = require_childGraphConfig.resolveSubagentConfigs;
|
|
829
|
+
exports.resolveSubagentHostArgs = require_hostArgs.resolveSubagentHostArgs;
|
|
821
830
|
exports.resolveToolOutcome = require_intentArg.resolveToolOutcome;
|
|
822
831
|
exports.resolveWorkspacePath = require_LocalExecutionEngine.resolveWorkspacePath;
|
|
823
832
|
exports.resolveWorkspacePathSafe = require_LocalExecutionEngine.resolveWorkspacePathSafe;
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
const require_preparedSubagents = require("../tools/preparedSubagents.cjs");
|
|
2
|
+
const require_streamLimits = require("../llm/streamLimits.cjs");
|
|
3
|
+
let node_perf_hooks = require("node:perf_hooks");
|
|
4
|
+
//#region src/protection/providerText.ts
|
|
5
|
+
const PROVIDER_TEXT_PROTECTION_VERSION = 1;
|
|
6
|
+
var ProviderTextProtectionError = class extends Error {
|
|
7
|
+
code;
|
|
8
|
+
constructor(code) {
|
|
9
|
+
const safeCode = errorCodes.has(code) ? code : "incompatible";
|
|
10
|
+
super(`Provider text protection: ${safeCode}`);
|
|
11
|
+
this.code = code;
|
|
12
|
+
this.code = safeCode;
|
|
13
|
+
this.name = "ProviderTextProtectionError";
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
const restartCancellations = /* @__PURE__ */ new WeakSet();
|
|
17
|
+
function createProviderTextRestartCancellation() {
|
|
18
|
+
const error = new ProviderTextProtectionError("cancelled");
|
|
19
|
+
restartCancellations.add(error);
|
|
20
|
+
return error;
|
|
21
|
+
}
|
|
22
|
+
function isProviderTextRestartCancellation(error) {
|
|
23
|
+
return error instanceof ProviderTextProtectionError && restartCancellations.has(error);
|
|
24
|
+
}
|
|
25
|
+
function protectionAbortError(parent) {
|
|
26
|
+
const reason = parent?.reason;
|
|
27
|
+
if (reason instanceof require_streamLimits.StreamLimitExceededError || reason instanceof require_preparedSubagents.PreparedSubagentError) return reason;
|
|
28
|
+
if (reason instanceof ProviderTextProtectionError) return isProviderTextRestartCancellation(reason) ? reason : new ProviderTextProtectionError(reason.code);
|
|
29
|
+
return new ProviderTextProtectionError("cancelled");
|
|
30
|
+
}
|
|
31
|
+
const protectedSignals = /* @__PURE__ */ new WeakSet();
|
|
32
|
+
function isProtectedProviderTextSignal(signal) {
|
|
33
|
+
return signal != null && protectedSignals.has(signal);
|
|
34
|
+
}
|
|
35
|
+
const budgets = /* @__PURE__ */ new WeakMap();
|
|
36
|
+
const errorCodes = new Set([
|
|
37
|
+
"blocked",
|
|
38
|
+
"unavailable",
|
|
39
|
+
"timeout",
|
|
40
|
+
"overflow",
|
|
41
|
+
"cancelled",
|
|
42
|
+
"unsupported",
|
|
43
|
+
"incompatible"
|
|
44
|
+
]);
|
|
45
|
+
function validateProviderTextProtection(policy) {
|
|
46
|
+
if (policy.version !== 1) throw new ProviderTextProtectionError("incompatible");
|
|
47
|
+
if (typeof policy.inspect !== "function" || typeof policy.classify !== "function") throw new ProviderTextProtectionError("unavailable");
|
|
48
|
+
for (const value of [
|
|
49
|
+
policy.timeoutMs,
|
|
50
|
+
policy.maxAttemptBytes,
|
|
51
|
+
policy.maxBufferedBytes
|
|
52
|
+
]) if (!Number.isSafeInteger(value) || value <= 0) throw new ProviderTextProtectionError("incompatible");
|
|
53
|
+
if (policy.timeoutMs > 2147483647 || policy.maxAttemptBytes > policy.maxBufferedBytes) throw new ProviderTextProtectionError("incompatible");
|
|
54
|
+
}
|
|
55
|
+
var ProviderTextAttempt = class {
|
|
56
|
+
policy;
|
|
57
|
+
parent;
|
|
58
|
+
controller = new AbortController();
|
|
59
|
+
budget;
|
|
60
|
+
deadline;
|
|
61
|
+
bytes = 0;
|
|
62
|
+
textLength = 0;
|
|
63
|
+
fragments = [];
|
|
64
|
+
pending = /* @__PURE__ */ new Set();
|
|
65
|
+
timer;
|
|
66
|
+
abort;
|
|
67
|
+
finished = false;
|
|
68
|
+
constructor(policy, parent) {
|
|
69
|
+
this.policy = policy;
|
|
70
|
+
this.parent = parent;
|
|
71
|
+
validateProviderTextProtection(policy);
|
|
72
|
+
this.deadline = node_perf_hooks.performance.now() + policy.timeoutMs;
|
|
73
|
+
this.budget = budgets.get(policy) ?? { bytes: 0 };
|
|
74
|
+
budgets.set(policy, this.budget);
|
|
75
|
+
if (parent?.aborted === true) throw protectionAbortError(parent);
|
|
76
|
+
this.charge(512);
|
|
77
|
+
protectedSignals.add(this.signal);
|
|
78
|
+
this.abort = () => this.controller.abort(protectionAbortError(this.parent));
|
|
79
|
+
parent?.addEventListener("abort", this.abort, { once: true });
|
|
80
|
+
this.timer = setTimeout(() => {
|
|
81
|
+
this.controller.abort(new ProviderTextProtectionError("timeout"));
|
|
82
|
+
}, policy.timeoutMs);
|
|
83
|
+
this.timer.unref();
|
|
84
|
+
}
|
|
85
|
+
get signal() {
|
|
86
|
+
return this.controller.signal;
|
|
87
|
+
}
|
|
88
|
+
check() {
|
|
89
|
+
if (this.signal.aborted) throw this.signal.reason;
|
|
90
|
+
if (this.parent?.aborted === true) throw protectionAbortError(this.parent);
|
|
91
|
+
if (node_perf_hooks.performance.now() >= this.deadline) {
|
|
92
|
+
this.controller.abort(new ProviderTextProtectionError("timeout"));
|
|
93
|
+
throw this.signal.reason;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
charge(bytes) {
|
|
97
|
+
if (this.bytes + bytes > this.policy.maxAttemptBytes || this.budget.bytes + bytes > this.policy.maxBufferedBytes) {
|
|
98
|
+
this.controller.abort(new ProviderTextProtectionError("overflow"));
|
|
99
|
+
throw this.signal.reason;
|
|
100
|
+
}
|
|
101
|
+
this.bytes += bytes;
|
|
102
|
+
this.budget.bytes += bytes;
|
|
103
|
+
}
|
|
104
|
+
append(text, cumulativeReplay = false) {
|
|
105
|
+
this.check();
|
|
106
|
+
if (cumulativeReplay && this.hasCandidatePrefix(text)) text = text.slice(this.textLength);
|
|
107
|
+
if (!text) return;
|
|
108
|
+
const bytes = text.length * 2;
|
|
109
|
+
this.charge(bytes * 2 + 64);
|
|
110
|
+
this.fragments.push(text);
|
|
111
|
+
this.textLength += text.length;
|
|
112
|
+
}
|
|
113
|
+
hasCandidatePrefix(text) {
|
|
114
|
+
if (this.textLength === 0 || text.length < this.textLength) return false;
|
|
115
|
+
let offset = 0;
|
|
116
|
+
for (const fragment of this.fragments) {
|
|
117
|
+
if (!text.startsWith(fragment, offset)) return false;
|
|
118
|
+
offset += fragment.length;
|
|
119
|
+
}
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
matchesText(text) {
|
|
123
|
+
return text.length === this.textLength && (text.length === 0 || this.hasCandidatePrefix(text));
|
|
124
|
+
}
|
|
125
|
+
retain(bytes) {
|
|
126
|
+
this.check();
|
|
127
|
+
this.charge(bytes);
|
|
128
|
+
}
|
|
129
|
+
observeChunk() {
|
|
130
|
+
this.check();
|
|
131
|
+
this.charge(128);
|
|
132
|
+
}
|
|
133
|
+
async wait(work) {
|
|
134
|
+
this.pending.add(work);
|
|
135
|
+
return new Promise((resolve, reject) => {
|
|
136
|
+
const abort = () => {
|
|
137
|
+
this.signal.removeEventListener("abort", abort);
|
|
138
|
+
reject(this.signal.reason);
|
|
139
|
+
};
|
|
140
|
+
this.signal.addEventListener("abort", abort, { once: true });
|
|
141
|
+
if (this.signal.aborted) abort();
|
|
142
|
+
const settle = () => {
|
|
143
|
+
this.signal.removeEventListener("abort", abort);
|
|
144
|
+
this.pending.delete(work);
|
|
145
|
+
};
|
|
146
|
+
work.then((value) => {
|
|
147
|
+
settle();
|
|
148
|
+
resolve(value);
|
|
149
|
+
}, (error) => {
|
|
150
|
+
settle();
|
|
151
|
+
reject(error);
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
async release() {
|
|
156
|
+
this.check();
|
|
157
|
+
const content = this.fragments.join("");
|
|
158
|
+
if (!content) return "";
|
|
159
|
+
let result;
|
|
160
|
+
try {
|
|
161
|
+
const treatment = this.policy.classify(content);
|
|
162
|
+
this.check();
|
|
163
|
+
if (treatment !== "prose") throw new ProviderTextProtectionError("unsupported");
|
|
164
|
+
result = await this.wait(Promise.resolve(this.policy.inspect({
|
|
165
|
+
version: 1,
|
|
166
|
+
content,
|
|
167
|
+
target: {
|
|
168
|
+
source: "message",
|
|
169
|
+
field: "text",
|
|
170
|
+
provenance: "model"
|
|
171
|
+
},
|
|
172
|
+
signal: this.signal
|
|
173
|
+
})));
|
|
174
|
+
} catch (error) {
|
|
175
|
+
this.check();
|
|
176
|
+
if (isProviderTextRestartCancellation(error)) throw error;
|
|
177
|
+
if (error instanceof ProviderTextProtectionError) throw new ProviderTextProtectionError(error.code);
|
|
178
|
+
throw new ProviderTextProtectionError("unavailable");
|
|
179
|
+
}
|
|
180
|
+
this.check();
|
|
181
|
+
const canonical = validateResult(result);
|
|
182
|
+
this.check();
|
|
183
|
+
this.charge(canonical.length * 2);
|
|
184
|
+
return canonical;
|
|
185
|
+
}
|
|
186
|
+
finish() {
|
|
187
|
+
if (this.finished) return;
|
|
188
|
+
this.finished = true;
|
|
189
|
+
clearTimeout(this.timer);
|
|
190
|
+
this.parent?.removeEventListener("abort", this.abort);
|
|
191
|
+
const dispose = () => {
|
|
192
|
+
this.fragments.length = 0;
|
|
193
|
+
this.budget.bytes -= this.bytes;
|
|
194
|
+
this.bytes = 0;
|
|
195
|
+
};
|
|
196
|
+
if (this.pending.size === 0) dispose();
|
|
197
|
+
else Promise.allSettled([...this.pending]).then(dispose);
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
function validateResult(result) {
|
|
201
|
+
try {
|
|
202
|
+
if (result?.version !== 1 || typeof result.ok !== "boolean") throw new ProviderTextProtectionError("incompatible");
|
|
203
|
+
if (!result.ok) {
|
|
204
|
+
const code = result.error?.code;
|
|
205
|
+
throw new ProviderTextProtectionError(code != null && errorCodes.has(code) ? code : "incompatible");
|
|
206
|
+
}
|
|
207
|
+
const value = result.value;
|
|
208
|
+
if (typeof value?.content !== "string" || typeof value.replacements !== "number" || !Number.isSafeInteger(value.replacements) || value.replacements < 0 || !Array.isArray(value.categories) || value.categories.length > 32 || value.categories.some((entry) => typeof entry.category !== "string" || typeof entry.count !== "number" || !Number.isSafeInteger(entry.count) || entry.count <= 0)) throw new ProviderTextProtectionError("incompatible");
|
|
209
|
+
return value.content;
|
|
210
|
+
} catch (error) {
|
|
211
|
+
if (error instanceof ProviderTextProtectionError) throw error;
|
|
212
|
+
throw new ProviderTextProtectionError("incompatible");
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
//#endregion
|
|
216
|
+
exports.PROVIDER_TEXT_PROTECTION_VERSION = PROVIDER_TEXT_PROTECTION_VERSION;
|
|
217
|
+
exports.ProviderTextAttempt = ProviderTextAttempt;
|
|
218
|
+
exports.ProviderTextProtectionError = ProviderTextProtectionError;
|
|
219
|
+
exports.createProviderTextRestartCancellation = createProviderTextRestartCancellation;
|
|
220
|
+
exports.isProtectedProviderTextSignal = isProtectedProviderTextSignal;
|
|
221
|
+
exports.isProviderTextRestartCancellation = isProviderTextRestartCancellation;
|
|
222
|
+
exports.validateProviderTextProtection = validateProviderTextProtection;
|
|
223
|
+
|
|
224
|
+
//# sourceMappingURL=providerText.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providerText.cjs","names":["StreamLimitExceededError","PreparedSubagentError","performance"],"sources":["../../../src/protection/providerText.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/protection/providerTextInput.ts
|
|
2
|
+
const inputs = /* @__PURE__ */ new WeakMap();
|
|
3
|
+
function markProviderTextInput(input) {
|
|
4
|
+
inputs.set(input, {
|
|
5
|
+
prototype: Object.getPrototypeOf(input),
|
|
6
|
+
descriptors: Object.getOwnPropertyDescriptors(input)
|
|
7
|
+
});
|
|
8
|
+
return input;
|
|
9
|
+
}
|
|
10
|
+
function isProviderTextInput(input) {
|
|
11
|
+
const original = inputs.get(input);
|
|
12
|
+
if (original == null || original.prototype !== Object.getPrototypeOf(input)) return false;
|
|
13
|
+
const current = Object.getOwnPropertyDescriptors(input);
|
|
14
|
+
const keys = Object.keys(original.descriptors);
|
|
15
|
+
return keys.length === Object.keys(current).length && keys.every((key) => {
|
|
16
|
+
const before = original.descriptors[key];
|
|
17
|
+
const after = current[key];
|
|
18
|
+
return after != null && before.value === after.value && before.get === after.get && before.set === after.set && before.writable === after.writable && before.enumerable === after.enumerable && before.configurable === after.configurable;
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
exports.isProviderTextInput = isProviderTextInput;
|
|
23
|
+
exports.markProviderTextInput = markProviderTextInput;
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=providerTextInput.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providerTextInput.cjs","names":[],"sources":["../../../src/protection/providerTextInput.ts"],"mappings":";AAAA,MAAM,yBAAS,IAAI,QAAkF;AAGrG,SAAgB,sBAAwC,OAAa;CACnE,OAAO,IAAI,OAAO;EAAE,WAAW,OAAO,eAAe,KAAK;EAAG,aAAa,OAAO,0BAA0B,KAAK;CAAE,CAAC;CACnH,OAAO;AACT;AAEA,SAAgB,oBAAoB,OAAwB;CAC1D,MAAM,WAAW,OAAO,IAAI,KAAK;CACjC,IAAI,YAAY,QAAQ,SAAS,cAAc,OAAO,eAAe,KAAK,GAAG,OAAO;CACpF,MAAM,UAA0C,OAAO,0BAA0B,KAAK;CACtF,MAAM,OAAO,OAAO,KAAK,SAAS,WAAW;CAC7C,OAAO,KAAK,WAAW,OAAO,KAAK,OAAO,CAAC,CAAC,UAAU,KAAK,OAAO,QAAQ;EACxE,MAAM,SAAS,SAAS,YAAY;EACpC,MAAM,QAAQ,QAAQ;EACtB,OAAO,SAAS,QAAQ,OAAO,UAAU,MAAM,SAAS,OAAO,QAAQ,MAAM,OAC3E,OAAO,QAAQ,MAAM,OAAO,OAAO,aAAa,MAAM,YACtD,OAAO,eAAe,MAAM,cAAc,OAAO,iBAAiB,MAAM;CAC5E,CAAC;AACH"}
|