@deeprelay/mcp 0.1.1 → 0.2.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/README.md +41 -14
- package/dist/auth.d.ts +6 -0
- package/dist/auth.js +16 -0
- package/dist/auth.js.map +1 -1
- package/dist/guardrail/estimate.d.ts +23 -2
- package/dist/guardrail/estimate.js +54 -12
- package/dist/guardrail/estimate.js.map +1 -1
- package/dist/roster.d.ts +3 -3
- package/dist/roster.js +71 -0
- package/dist/roster.js.map +1 -1
- package/dist/tools/api-json.d.ts +5 -0
- package/dist/tools/api-json.js +15 -0
- package/dist/tools/api-json.js.map +1 -0
- package/dist/tools/readonly/alerts.d.ts +26 -0
- package/dist/tools/readonly/alerts.js +58 -0
- package/dist/tools/readonly/alerts.js.map +1 -0
- package/dist/tools/readonly/define.d.ts +12 -1
- package/dist/tools/readonly/define.js +17 -3
- package/dist/tools/readonly/define.js.map +1 -1
- package/dist/tools/readonly/index.d.ts +3 -1
- package/dist/tools/readonly/index.js +90 -23
- package/dist/tools/readonly/index.js.map +1 -1
- package/dist/tools/readonly/requests.d.ts +78 -0
- package/dist/tools/readonly/requests.js +195 -0
- package/dist/tools/readonly/requests.js.map +1 -0
- package/dist/tools/readonly/usage.js +48 -11
- package/dist/tools/readonly/usage.js.map +1 -1
- package/dist/tools/readonly/video-reads.js +7 -4
- package/dist/tools/readonly/video-reads.js.map +1 -1
- package/dist/tools/spend/define.js +3 -1
- package/dist/tools/spend/define.js.map +1 -1
- package/dist/tools/spend/index.d.ts +2 -0
- package/dist/tools/spend/index.js +181 -30
- package/dist/tools/spend/index.js.map +1 -1
- package/dist/tools/spend/media.js +7 -5
- package/dist/tools/spend/media.js.map +1 -1
- package/dist/tools/spend/pricing.js +4 -0
- package/dist/tools/spend/pricing.js.map +1 -1
- package/dist/tools/write/alerts.d.ts +4 -0
- package/dist/tools/write/alerts.js +141 -0
- package/dist/tools/write/alerts.js.map +1 -0
- package/dist/tools/write/index.d.ts +2 -1
- package/dist/tools/write/index.js +10 -3
- package/dist/tools/write/index.js.map +1 -1
- package/dist/tools/write/payment-links.js +26 -4
- package/dist/tools/write/payment-links.js.map +1 -1
- package/dist/tools/write/spending-limit.js +26 -33
- package/dist/tools/write/spending-limit.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mediaSpendTools = exports.spendTools = exports.EMBEDDINGS_MAX_INPUTS = exports.CHAT_MAX_TOKENS_LIMIT = exports.SPEND_TIER_SENTENCE = exports.SPEND_CONFIRMATION_SHAPE = exports.runWithBudget = exports.defineSpendTool = exports.confirmThenExecute = void 0;
|
|
3
|
+
exports.mediaSpendTools = exports.spendTools = exports.EMBEDDINGS_MAX_INPUTS = exports.CHAT_MAX_TOOLS = exports.CHAT_MAX_TOKENS_LIMIT = exports.SPEND_TIER_SENTENCE = exports.SPEND_CONFIRMATION_SHAPE = exports.runWithBudget = exports.defineSpendTool = exports.confirmThenExecute = void 0;
|
|
4
4
|
// The spend tier: billable inference (Phase 104, D-02/D-06/D-07/D-08/D-10).
|
|
5
5
|
//
|
|
6
6
|
// Four tools, one session budget. Chat and embeddings are defined here; image
|
|
@@ -13,10 +13,19 @@ exports.mediaSpendTools = exports.spendTools = exports.EMBEDDINGS_MAX_INPUTS = e
|
|
|
13
13
|
// reservation if the call throws. They send no Idempotency-Key: the API does
|
|
14
14
|
// not accept one on these routes (RESEARCH Pitfall 3).
|
|
15
15
|
//
|
|
16
|
-
// The chat
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
//
|
|
16
|
+
// The chat tool carries the OpenAI-compatible request fields an agent needs
|
|
17
|
+
// beyond plain text (tools / tool_choice / parallel_tool_calls,
|
|
18
|
+
// response_format, reasoning_effort, seed, max_completion_tokens), typed in
|
|
19
|
+
// @deeprelay/sdk since 0.3.0. Tool definitions, tool_calls and a response
|
|
20
|
+
// schema are counted as prompt text in the quote. A reply may carry
|
|
21
|
+
// tool_calls with content null; the tool returns both as the API does.
|
|
22
|
+
// `stream` is not an argument: the tool always sends stream: false, because
|
|
23
|
+
// an MCP tool result is one message.
|
|
24
|
+
//
|
|
25
|
+
// Budget settlement stays on the catalog token math (actualMicroCents), not
|
|
26
|
+
// usage.cost: usage.cost is the wallet charge, which is 0 for a plan-covered
|
|
27
|
+
// call, and the session budget bounds list-price spend either way. usage.cost
|
|
28
|
+
// and usage.cost_details are reported in the result.
|
|
20
29
|
const sdk_1 = require("@deeprelay/sdk");
|
|
21
30
|
const zod_1 = require("zod");
|
|
22
31
|
const budget_js_1 = require("../../guardrail/budget.js");
|
|
@@ -32,22 +41,122 @@ Object.defineProperty(exports, "SPEND_CONFIRMATION_SHAPE", { enumerable: true, g
|
|
|
32
41
|
Object.defineProperty(exports, "SPEND_TIER_SENTENCE", { enumerable: true, get: function () { return define_js_2.SPEND_TIER_SENTENCE; } });
|
|
33
42
|
/** Upper bound on max_tokens for one chat call. */
|
|
34
43
|
exports.CHAT_MAX_TOKENS_LIMIT = 8192;
|
|
44
|
+
/** Upper bound on tool definitions in one chat call. */
|
|
45
|
+
exports.CHAT_MAX_TOOLS = 64;
|
|
46
|
+
const toolCallSchema = zod_1.z.strictObject({
|
|
47
|
+
id: zod_1.z.string().min(1).max(256),
|
|
48
|
+
type: zod_1.z.literal("function").optional(),
|
|
49
|
+
function: zod_1.z.strictObject({
|
|
50
|
+
name: zod_1.z.string().min(1).max(256),
|
|
51
|
+
arguments: zod_1.z.string().describe("The arguments as a JSON string, exactly as the model returned them."),
|
|
52
|
+
}),
|
|
53
|
+
});
|
|
54
|
+
const chatMessageSchema = zod_1.z
|
|
55
|
+
.strictObject({
|
|
56
|
+
role: zod_1.z.enum(["system", "developer", "user", "assistant", "tool"]),
|
|
57
|
+
content: zod_1.z
|
|
58
|
+
.string()
|
|
59
|
+
.nullable()
|
|
60
|
+
.optional()
|
|
61
|
+
.describe("Text. May be null or omitted only on an assistant message that carries tool_calls."),
|
|
62
|
+
tool_calls: zod_1.z
|
|
63
|
+
.array(toolCallSchema)
|
|
64
|
+
.min(1)
|
|
65
|
+
.optional()
|
|
66
|
+
.describe("Assistant only: the tool calls a previous reply made, echoed back verbatim."),
|
|
67
|
+
tool_call_id: zod_1.z
|
|
68
|
+
.string()
|
|
69
|
+
.min(1)
|
|
70
|
+
.max(256)
|
|
71
|
+
.optional()
|
|
72
|
+
.describe("Tool only: the id of the tool call this message answers."),
|
|
73
|
+
})
|
|
74
|
+
.superRefine((m, ctx) => {
|
|
75
|
+
if (m.tool_calls !== undefined && m.role !== "assistant") {
|
|
76
|
+
ctx.addIssue({ code: "custom", message: "tool_calls is allowed only on an assistant message" });
|
|
77
|
+
}
|
|
78
|
+
if (m.role === "tool" && m.tool_call_id === undefined) {
|
|
79
|
+
ctx.addIssue({ code: "custom", message: "a tool message needs tool_call_id" });
|
|
80
|
+
}
|
|
81
|
+
if (m.role !== "tool" && m.tool_call_id !== undefined) {
|
|
82
|
+
ctx.addIssue({ code: "custom", message: "tool_call_id is allowed only on a tool message" });
|
|
83
|
+
}
|
|
84
|
+
if (typeof m.content !== "string" && !(m.role === "assistant" && m.tool_calls !== undefined)) {
|
|
85
|
+
ctx.addIssue({ code: "custom", message: "content is required unless an assistant message carries tool_calls" });
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
const functionToolSchema = zod_1.z.strictObject({
|
|
89
|
+
type: zod_1.z.literal("function"),
|
|
90
|
+
function: zod_1.z.strictObject({
|
|
91
|
+
name: zod_1.z
|
|
92
|
+
.string()
|
|
93
|
+
.regex(/^[A-Za-z0-9_-]{1,64}$/)
|
|
94
|
+
.describe("Function name: letters, digits, _ and -, up to 64 characters."),
|
|
95
|
+
description: zod_1.z.string().max(4096).optional(),
|
|
96
|
+
parameters: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional().describe("A JSON Schema object for the arguments."),
|
|
97
|
+
}),
|
|
98
|
+
});
|
|
99
|
+
const responseFormatSchema = zod_1.z.discriminatedUnion("type", [
|
|
100
|
+
zod_1.z.strictObject({ type: zod_1.z.literal("text") }),
|
|
101
|
+
zod_1.z.strictObject({ type: zod_1.z.literal("json_object") }),
|
|
102
|
+
zod_1.z.strictObject({
|
|
103
|
+
type: zod_1.z.literal("json_schema"),
|
|
104
|
+
json_schema: zod_1.z.strictObject({
|
|
105
|
+
name: zod_1.z.string().regex(/^[A-Za-z0-9_-]{1,64}$/),
|
|
106
|
+
description: zod_1.z.string().max(4096).optional(),
|
|
107
|
+
schema: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
|
|
108
|
+
strict: zod_1.z.boolean().optional(),
|
|
109
|
+
}),
|
|
110
|
+
}),
|
|
111
|
+
]);
|
|
112
|
+
const toolChoiceSchema = zod_1.z.union([
|
|
113
|
+
zod_1.z.enum(["none", "auto", "required"]),
|
|
114
|
+
zod_1.z.strictObject({ type: zod_1.z.literal("function"), function: zod_1.z.strictObject({ name: zod_1.z.string().min(1).max(64) }) }),
|
|
115
|
+
]);
|
|
116
|
+
function toSdkMessage(m) {
|
|
117
|
+
return {
|
|
118
|
+
role: m.role,
|
|
119
|
+
...(typeof m.content === "string" ? { content: m.content } : {}),
|
|
120
|
+
...(m.tool_calls === undefined
|
|
121
|
+
? {}
|
|
122
|
+
: {
|
|
123
|
+
toolCalls: m.tool_calls.map((c) => ({
|
|
124
|
+
id: c.id,
|
|
125
|
+
type: "function",
|
|
126
|
+
_function: { name: c.function.name, arguments: c.function.arguments },
|
|
127
|
+
})),
|
|
128
|
+
}),
|
|
129
|
+
...(m.tool_call_id === undefined ? {} : { toolCallId: m.tool_call_id }),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/** The reply message as the API shapes it: content null when the model only called tools. */
|
|
133
|
+
function replyMessage(m) {
|
|
134
|
+
if (m === undefined)
|
|
135
|
+
return null;
|
|
136
|
+
return {
|
|
137
|
+
role: m.role,
|
|
138
|
+
content: m.content ?? null,
|
|
139
|
+
...(m.toolCalls === undefined || m.toolCalls.length === 0
|
|
140
|
+
? {}
|
|
141
|
+
: { tool_calls: m.toolCalls.map((c) => (0, sdk_1.ToolCallToJSON)(c)) }),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
35
144
|
const chatCompletion = (0, define_js_1.defineSpendTool)({
|
|
36
145
|
name: "deeprelay_chat_completion",
|
|
37
146
|
title: "Chat completion",
|
|
38
147
|
description: "Run one chat completion on a deeprelay chat model and return the assistant's reply, token usage and cost. " +
|
|
39
148
|
"Priced per token from the model's catalog rates: the quote bounds the cost by max_tokens (default " +
|
|
40
149
|
`${estimate_js_1.DEFAULT_MAX_TOKENS}), and the session budget settles at the actual usage. Use deeprelay_models_list ` +
|
|
41
|
-
"(modality chat) to find a model id. Returns one complete message; streaming is not offered."
|
|
150
|
+
"(modality chat) to find a model id. Returns one complete message; streaming is not offered. Function " +
|
|
151
|
+
"calling: pass `tools` (and optionally `tool_choice`); a reply that calls tools has finish_reason " +
|
|
152
|
+
"tool_calls, message.tool_calls and content null. Run the tools yourself, then call again with the " +
|
|
153
|
+
"assistant message (its tool_calls) and one `tool` message per call (tool_call_id + content). " +
|
|
154
|
+
"`response_format` selects JSON mode or a strict JSON schema, `reasoning_effort` picks one of the model's " +
|
|
155
|
+
"reasoning_efforts, and `seed` asks for repeatable sampling; use each only on a model whose " +
|
|
156
|
+
"supported_parameters lists it. Text messages only: for image input or logprobs, call the API directly.",
|
|
42
157
|
inputSchema: {
|
|
43
158
|
model: zod_1.z.string().min(1).describe("A chat model id from deeprelay_models_list."),
|
|
44
|
-
messages: zod_1.z
|
|
45
|
-
.array(zod_1.z.strictObject({
|
|
46
|
-
role: zod_1.z.enum(["system", "user", "assistant"]),
|
|
47
|
-
content: zod_1.z.string(),
|
|
48
|
-
}))
|
|
49
|
-
.min(1)
|
|
50
|
-
.describe("The conversation so far, oldest first."),
|
|
159
|
+
messages: zod_1.z.array(chatMessageSchema).min(1).describe("The conversation so far, oldest first."),
|
|
51
160
|
max_tokens: zod_1.z
|
|
52
161
|
.number()
|
|
53
162
|
.int()
|
|
@@ -55,26 +164,69 @@ const chatCompletion = (0, define_js_1.defineSpendTool)({
|
|
|
55
164
|
.max(exports.CHAT_MAX_TOKENS_LIMIT)
|
|
56
165
|
.default(estimate_js_1.DEFAULT_MAX_TOKENS)
|
|
57
166
|
.describe(`Upper bound on generated tokens (1–${exports.CHAT_MAX_TOKENS_LIMIT}, default ${estimate_js_1.DEFAULT_MAX_TOKENS}). It also bounds the quote.`),
|
|
167
|
+
max_completion_tokens: zod_1.z
|
|
168
|
+
.number()
|
|
169
|
+
.int()
|
|
170
|
+
.min(1)
|
|
171
|
+
.max(exports.CHAT_MAX_TOKENS_LIMIT)
|
|
172
|
+
.optional()
|
|
173
|
+
.describe(`Alternative to max_tokens for models that require it (1–${exports.CHAT_MAX_TOKENS_LIMIT}). When set it is sent ` +
|
|
174
|
+
"instead of max_tokens and bounds the quote."),
|
|
58
175
|
temperature: zod_1.z.number().min(0).max(2).optional().describe("Sampling temperature, 0–2."),
|
|
176
|
+
tools: zod_1.z
|
|
177
|
+
.array(functionToolSchema)
|
|
178
|
+
.min(1)
|
|
179
|
+
.max(exports.CHAT_MAX_TOOLS)
|
|
180
|
+
.optional()
|
|
181
|
+
.describe(`Function tools the model may call (up to ${exports.CHAT_MAX_TOOLS}). Counted as prompt tokens in the quote.`),
|
|
182
|
+
tool_choice: toolChoiceSchema
|
|
183
|
+
.optional()
|
|
184
|
+
.describe('"none", "auto", "required", or { type: "function", function: { name } } to force one tool.'),
|
|
185
|
+
parallel_tool_calls: zod_1.z.boolean().optional().describe("Allow several tool calls in one reply."),
|
|
186
|
+
response_format: responseFormatSchema
|
|
187
|
+
.optional()
|
|
188
|
+
.describe('{ type: "json_object" } for JSON mode, or { type: "json_schema", json_schema: { name, schema, strict } }.'),
|
|
189
|
+
reasoning_effort: zod_1.z
|
|
190
|
+
.string()
|
|
191
|
+
.regex(/^[a-z]{1,16}$/)
|
|
192
|
+
.optional()
|
|
193
|
+
.describe("One of the model's reasoning_efforts (see deeprelay_models_get), e.g. low, medium, high."),
|
|
194
|
+
seed: zod_1.z.number().int().optional().describe("Sampling seed, for models that support repeatable output."),
|
|
59
195
|
},
|
|
60
196
|
modality: "chat",
|
|
61
197
|
question: "Run this chat completion at the price shown?",
|
|
62
198
|
context: "running a chat completion",
|
|
63
|
-
describe: (a) => `Chat completion on ${a.model}: ${a.messages.length} message(s)
|
|
199
|
+
describe: (a) => `Chat completion on ${a.model}: ${a.messages.length} message(s)` +
|
|
200
|
+
(a.tools === undefined ? "" : `, ${a.tools.length} tool definition(s)`) +
|
|
201
|
+
`, up to ${a.max_completion_tokens ?? a.max_tokens} output tokens`,
|
|
64
202
|
async execute(a, run) {
|
|
65
203
|
(0, budget_js_1.recordEstimate)(run.callId, run.estimate.microCents);
|
|
66
204
|
let res;
|
|
67
205
|
let actual;
|
|
68
206
|
try {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
maxTokens: a.max_tokens
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
207
|
+
const request = {
|
|
208
|
+
model: a.model,
|
|
209
|
+
messages: a.messages.map(toSdkMessage),
|
|
210
|
+
temperature: a.temperature,
|
|
211
|
+
...(a.max_completion_tokens === undefined
|
|
212
|
+
? { maxTokens: a.max_tokens }
|
|
213
|
+
: { maxCompletionTokens: a.max_completion_tokens }),
|
|
214
|
+
stream: false,
|
|
215
|
+
tools: a.tools?.map((t) => ({
|
|
216
|
+
type: "function",
|
|
217
|
+
_function: { name: t.function.name, description: t.function.description, parameters: t.function.parameters },
|
|
218
|
+
})),
|
|
219
|
+
toolChoice: a.tool_choice === undefined || typeof a.tool_choice === "string"
|
|
220
|
+
? a.tool_choice
|
|
221
|
+
: { type: "function", _function: { name: a.tool_choice.function.name } },
|
|
222
|
+
parallelToolCalls: a.parallel_tool_calls,
|
|
223
|
+
responseFormat: a.response_format?.type === "json_schema"
|
|
224
|
+
? { type: "json_schema", jsonSchema: a.response_format.json_schema }
|
|
225
|
+
: a.response_format,
|
|
226
|
+
reasoningEffort: a.reasoning_effort,
|
|
227
|
+
seed: a.seed,
|
|
228
|
+
};
|
|
229
|
+
res = await new sdk_1.InferenceApi(run.config).createChatCompletion({ chatCompletionRequest: request });
|
|
78
230
|
actual = (0, estimate_js_1.actualMicroCents)("chat", res.usage, run.rates, run.estimate.microCents);
|
|
79
231
|
(0, budget_js_1.reconcileActual)(run.callId, actual);
|
|
80
232
|
}
|
|
@@ -83,17 +235,16 @@ const chatCompletion = (0, define_js_1.defineSpendTool)({
|
|
|
83
235
|
throw err;
|
|
84
236
|
}
|
|
85
237
|
const choice = res.choices?.[0];
|
|
238
|
+
const toolCalls = choice?.message?.toolCalls?.length ?? 0;
|
|
86
239
|
return {
|
|
87
|
-
lead: `Chat completion finished (${choice?.finishReason ?? "no finish reason reported"})
|
|
240
|
+
lead: `Chat completion finished (${choice?.finishReason ?? "no finish reason reported"})` +
|
|
241
|
+
(toolCalls > 0 ? `: the model requested ${toolCalls} tool call(s).` : "."),
|
|
88
242
|
payload: {
|
|
243
|
+
id: res.id,
|
|
89
244
|
model: res.model,
|
|
90
245
|
finish_reason: choice?.finishReason ?? null,
|
|
91
|
-
message: choice?.message
|
|
92
|
-
usage:
|
|
93
|
-
prompt_tokens: res.usage?.promptTokens,
|
|
94
|
-
completion_tokens: res.usage?.completionTokens,
|
|
95
|
-
total_tokens: res.usage?.totalTokens,
|
|
96
|
-
},
|
|
246
|
+
message: replyMessage(choice?.message),
|
|
247
|
+
usage: res.usage === undefined ? null : (0, sdk_1.UsageToJSON)(res.usage),
|
|
97
248
|
cost: { estimated_micro_cents: run.estimate.microCents, actual_micro_cents: actual },
|
|
98
249
|
session_budget: (0, budget_js_1.budgetStatus)(),
|
|
99
250
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/spend/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/spend/index.ts"],"names":[],"mappings":";;;AAAA,4EAA4E;AAC5E,EAAE;AACF,8EAA8E;AAC9E,sEAAsE;AACtE,2EAA2E;AAC3E,oEAAoE;AACpE,EAAE;AACF,2EAA2E;AAC3E,+EAA+E;AAC/E,6EAA6E;AAC7E,uDAAuD;AACvD,EAAE;AACF,4EAA4E;AAC5E,gEAAgE;AAChE,4EAA4E;AAC5E,0EAA0E;AAC1E,oEAAoE;AACpE,uEAAuE;AACvE,4EAA4E;AAC5E,qCAAqC;AACrC,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,qDAAqD;AACrD,wCAOwB;AACxB,6BAAwB;AAExB,yDAA2G;AAC3G,6DAAmF;AAEnF,2CAA8C;AAC9C,yCAA6C;AA+SpC,gGA/SA,0BAAe,OA+SA;AA7SxB,yCAMqB;AALnB,+GAAA,kBAAkB,OAAA;AAClB,4GAAA,eAAe,OAAA;AACf,0GAAA,aAAa,OAAA;AACb,qHAAA,wBAAwB,OAAA;AACxB,gHAAA,mBAAmB,OAAA;AAIrB,mDAAmD;AACtC,QAAA,qBAAqB,GAAG,IAAI,CAAC;AAC1C,wDAAwD;AAC3C,QAAA,cAAc,GAAG,EAAE,CAAC;AAEjC,MAAM,cAAc,GAAG,OAAC,CAAC,YAAY,CAAC;IACpC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9B,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;IACtC,QAAQ,EAAE,OAAC,CAAC,YAAY,CAAC;QACvB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAChC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;KACtG,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,OAAC;KACxB,YAAY,CAAC;IACZ,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAClE,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,oFAAoF,CAAC;IACjG,UAAU,EAAE,OAAC;SACV,KAAK,CAAC,cAAc,CAAC;SACrB,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,6EAA6E,CAAC;IAC1F,YAAY,EAAE,OAAC;SACZ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;CACxE,CAAC;KACD,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;IACtB,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACzD,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,oDAAoD,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACtD,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACtD,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,EAAE,CAAC;QAC7F,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,oEAAoE,EAAE,CAAC,CAAC;IAClH,CAAC;AACH,CAAC,CAAC,CAAC;AAIL,MAAM,kBAAkB,GAAG,OAAC,CAAC,YAAY,CAAC;IACxC,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3B,QAAQ,EAAE,OAAC,CAAC,YAAY,CAAC;QACvB,IAAI,EAAE,OAAC;aACJ,MAAM,EAAE;aACR,KAAK,CAAC,uBAAuB,CAAC;aAC9B,QAAQ,CAAC,+DAA+D,CAAC;QAC5E,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;QAC5C,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;KAC7G,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,OAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACxD,OAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3C,OAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;IAClD,OAAC,CAAC,YAAY,CAAC;QACb,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,aAAa,CAAC;QAC9B,WAAW,EAAE,OAAC,CAAC,YAAY,CAAC;YAC1B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC;YAC/C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YAC5C,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;YACpD,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC;KACH,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,OAAC,CAAC,KAAK,CAAC;IAC/B,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACpC,OAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,OAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;CAC/G,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,CAAiB;IACrC,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAA2B;QACnC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS;YAC5B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAClC,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,IAAI,EAAE,UAAmB;oBACzB,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE;iBACtE,CAAC,CAAC;aACJ,CAAC;QACN,GAAG,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;KACxE,CAAC;AACJ,CAAC;AAED,6FAA6F;AAC7F,SAAS,YAAY,CAAC,CAA0B;IAC9C,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI;QAC1B,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YACvD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,oBAAc,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,IAAA,2BAAe,EAAC;IACrC,IAAI,EAAE,2BAA2B;IACjC,KAAK,EAAE,iBAAiB;IACxB,WAAW,EACT,4GAA4G;QAC5G,oGAAoG;QACpG,GAAG,gCAAkB,mFAAmF;QACxG,uGAAuG;QACvG,mGAAmG;QACnG,oGAAoG;QACpG,+FAA+F;QAC/F,2GAA2G;QAC3G,6FAA6F;QAC7F,wGAAwG;IAC1G,WAAW,EAAE;QACX,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAChF,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QAC9F,UAAU,EAAE,OAAC;aACV,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,6BAAqB,CAAC;aAC1B,OAAO,CAAC,gCAAkB,CAAC;aAC3B,QAAQ,CAAC,sCAAsC,6BAAqB,aAAa,gCAAkB,8BAA8B,CAAC;QACrI,qBAAqB,EAAE,OAAC;aACrB,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,6BAAqB,CAAC;aAC1B,QAAQ,EAAE;aACV,QAAQ,CACP,2DAA2D,6BAAqB,yBAAyB;YACvG,6CAA6C,CAChD;QACH,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACvF,KAAK,EAAE,OAAC;aACL,KAAK,CAAC,kBAAkB,CAAC;aACzB,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,sBAAc,CAAC;aACnB,QAAQ,EAAE;aACV,QAAQ,CAAC,4CAA4C,sBAAc,2CAA2C,CAAC;QAClH,WAAW,EAAE,gBAAgB;aAC1B,QAAQ,EAAE;aACV,QAAQ,CAAC,4FAA4F,CAAC;QACzG,mBAAmB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QAC9F,eAAe,EAAE,oBAAoB;aAClC,QAAQ,EAAE;aACV,QAAQ,CAAC,2GAA2G,CAAC;QACxH,gBAAgB,EAAE,OAAC;aAChB,MAAM,EAAE;aACR,KAAK,CAAC,eAAe,CAAC;aACtB,QAAQ,EAAE;aACV,QAAQ,CAAC,0FAA0F,CAAC;QACvG,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;KACxG;IACD,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,8CAA8C;IACxD,OAAO,EAAE,2BAA2B;IACpC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,sBAAsB,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,aAAa;QAChE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,qBAAqB,CAAC;QACvE,WAAW,CAAC,CAAC,qBAAqB,IAAI,CAAC,CAAC,UAAU,gBAAgB;IACpE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG;QAClB,IAAA,0BAAc,EAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,GAAG,CAAC;QACR,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,OAAO,GAA0B;gBACrC,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC;gBACtC,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,GAAG,CAAC,CAAC,CAAC,qBAAqB,KAAK,SAAS;oBACvC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE;oBAC7B,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,qBAAqB,EAAE,CAAC;gBACrD,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC1B,IAAI,EAAE,UAAmB;oBACzB,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE;iBAC7G,CAAC,CAAC;gBACH,UAAU,EACR,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ;oBAC9D,CAAC,CAAC,CAAC,CAAC,WAAW;oBACf,CAAC,CAAC,EAAE,IAAI,EAAE,UAAmB,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;gBACrF,iBAAiB,EAAE,CAAC,CAAC,mBAAmB;gBACxC,cAAc,EACZ,CAAC,CAAC,eAAe,EAAE,IAAI,KAAK,aAAa;oBACvC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,eAAe,CAAC,WAAW,EAAE;oBACpE,CAAC,CAAC,CAAC,CAAC,eAAe;gBACvB,eAAe,EAAE,CAAC,CAAC,gBAAgB;gBACnC,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAC;YACF,GAAG,GAAG,MAAM,IAAI,kBAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,EAAE,qBAAqB,EAAE,OAAO,EAAE,CAAC,CAAC;YAClG,MAAM,GAAG,IAAA,8BAAgB,EAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACjF,IAAA,2BAAe,EAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,2BAAe,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5B,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,SAAS,GAAG,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC;QAC1D,OAAO;YACL,IAAI,EACF,6BAA6B,MAAM,EAAE,YAAY,IAAI,2BAA2B,GAAG;gBACnF,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,yBAAyB,SAAS,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5E,OAAO,EAAE;gBACP,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,aAAa,EAAE,MAAM,EAAE,YAAY,IAAI,IAAI;gBAC3C,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;gBACtC,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,iBAAW,EAAC,GAAG,CAAC,KAAK,CAAC;gBAC9D,IAAI,EAAE,EAAE,qBAAqB,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE;gBACpF,cAAc,EAAE,IAAA,wBAAY,GAAE;aAC/B;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,+FAA+F;AAClF,QAAA,qBAAqB,GAAG,EAAE,CAAC;AAExC,MAAM,gBAAgB,GAAG,IAAA,2BAAe,EAAC;IACvC,IAAI,EAAE,6BAA6B;IACnC,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EACT,0GAA0G;QAC1G,4GAA4G;QAC5G,8FAA8F;IAChG,WAAW,EAAE;QACX,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QACtF,KAAK,EAAE,OAAC;aACL,KAAK,CAAC;YACL,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACjB,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,6BAAqB,CAAC;SAC7D,CAAC;aACD,QAAQ,CAAC,8BAA8B,6BAAqB,qBAAqB,CAAC;QACrF,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QAC7G,eAAe,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KACjF;IACD,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,6CAA6C;IACvD,OAAO,EAAE,qBAAqB;IAC9B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,iBAAiB,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,WAAW;IAC1F,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG;QAClB,IAAA,0BAAc,EAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,GAAG,CAAC;QACR,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,IAAI,kBAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC;gBACxD,iBAAiB,EAAE;oBACjB,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,cAAc,EAAE,CAAC,CAAC,eAAe;iBAClC;aACF,CAAC,CAAC;YACH,MAAM,GAAG,IAAA,8BAAgB,EAAC,YAAY,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACvF,IAAA,2BAAe,EAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,2BAAe,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5B,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5B,OAAO;YACL,IAAI,EAAE,WAAW,IAAI,CAAC,MAAM,gBAAgB;YAC5C,OAAO,EAAE;gBACP,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM;gBACrC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACxC,KAAK,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE;gBACvF,IAAI,EAAE,EAAE,qBAAqB,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE;gBACpF,cAAc,EAAE,IAAA,wBAAY,GAAE;aAC/B;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,4CAA4C;AAC/B,QAAA,UAAU,GAAqB,CAAC,cAAc,EAAE,gBAAgB,EAAE,GAAG,0BAAe,CAAC,CAAC"}
|
|
@@ -14,9 +14,10 @@ exports.imageMimeType = imageMimeType;
|
|
|
14
14
|
// the text block is still built by ok() (sanitized and redacted).
|
|
15
15
|
//
|
|
16
16
|
// Video is asynchronous (RESEARCH Pitfall 2). The create call returns a queued
|
|
17
|
-
// job with no cost, so this handler reserves the
|
|
18
|
-
//
|
|
19
|
-
//
|
|
17
|
+
// job with no cost, so this handler reserves the estimate (a FLOOR: per-second
|
|
18
|
+
// rate x the requested seconds, or the model's default seconds; the per-clip
|
|
19
|
+
// from-price only when no per-second rate is published) under the returned job id and does not settle
|
|
20
|
+
// anything itself. The video reads (readonly/video-reads.ts) settle the reservation when they observe the
|
|
20
21
|
// job finished: at cost_cents on completion, released on failed, cancelled or
|
|
21
22
|
// expired.
|
|
22
23
|
//
|
|
@@ -107,8 +108,9 @@ const imagesGenerate = (0, define_js_1.defineSpendTool)({
|
|
|
107
108
|
const videosCreate = (0, define_js_1.defineSpendTool)({
|
|
108
109
|
name: "deeprelay_videos_create",
|
|
109
110
|
title: "Create a video",
|
|
110
|
-
description: "Start an asynchronous text-to-video job on a deeprelay video model. Priced
|
|
111
|
-
"
|
|
111
|
+
description: "Start an asynchronous text-to-video job on a deeprelay video model. Priced like the server bills it: the " +
|
|
112
|
+
"catalog's per-second rate x the requested seconds (the model's default length when omitted); the quote " +
|
|
113
|
+
"is a floor, not a cap, and the real charge " +
|
|
112
114
|
"is known only when the job completes. The floor is held against the session budget until " +
|
|
113
115
|
"deeprelay_videos_get or deeprelay_videos_list sees the job finish, which settles it at the actual cost " +
|
|
114
116
|
"(or releases it if the job failed or was cancelled). Download a finished clip with deeprelay_videos_content.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/tools/spend/media.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/tools/spend/media.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,6 +52,10 @@ async function ratesFor(config, modelId, now = Date.now) {
|
|
|
52
52
|
perVideoSecondMicrocents: pick(p.perVideoSecondMicrocents) ??
|
|
53
53
|
(pick(p.perVideoSecondCents) === undefined ? undefined : p.perVideoSecondCents * budget_js_1.MICRO_CENTS_PER_CENT),
|
|
54
54
|
};
|
|
55
|
+
const secondsDefault = (model.parameters ?? []).find((d) => d.name === "seconds")?._default;
|
|
56
|
+
if (typeof secondsDefault === "number" && Number.isFinite(secondsDefault) && secondsDefault > 0) {
|
|
57
|
+
rates.defaultVideoSeconds = secondsDefault;
|
|
58
|
+
}
|
|
55
59
|
cache.set(key, { rates, expiresAt: now() + exports.RATE_CACHE_TTL_MS });
|
|
56
60
|
return rates;
|
|
57
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../../src/tools/spend/pricing.ts"],"names":[],"mappings":";;;AAmCA,8DAEC;AAUD,
|
|
1
|
+
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../../src/tools/spend/pricing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.alertsSetTool = exports.MAX_THRESHOLD_CENTS = exports.MIN_THRESHOLD_CENTS = void 0;
|
|
4
|
+
// deeprelay_alerts_set: change the organization's alert settings (Phase 111,
|
|
5
|
+
// D-13, D-15, R-08). WRITE tier: it confirms once and charges nothing.
|
|
6
|
+
//
|
|
7
|
+
// PUT /v1/alerts/settings is a full replace, so the tool never sends a partial
|
|
8
|
+
// body:
|
|
9
|
+
//
|
|
10
|
+
// quote — GET the current settings, merge the requested changes over them
|
|
11
|
+
// and describe exactly what changes. Nothing requested, or nothing
|
|
12
|
+
// that differs, mints no token.
|
|
13
|
+
// execute — GET again and merge the same requested changes over the FRESH
|
|
14
|
+
// settings, then PUT every field. A setting someone else changed
|
|
15
|
+
// between the quote and the confirmation is kept, not reverted
|
|
16
|
+
// (time-of-check is time-of-use, T-111-85).
|
|
17
|
+
//
|
|
18
|
+
// The server decides who may write (an org admin's key or a full_access key);
|
|
19
|
+
// a 403 surfaces through the shared mapper. Transport: @deeprelay/sdk
|
|
20
|
+
// AlertsApi.putAlertSettingsRaw, the reply parsed by the closed schema.
|
|
21
|
+
const sdk_1 = require("@deeprelay/sdk");
|
|
22
|
+
const zod_1 = require("zod");
|
|
23
|
+
const errors_js_1 = require("../../errors.js");
|
|
24
|
+
const api_json_js_1 = require("../api-json.js");
|
|
25
|
+
const alerts_js_1 = require("../readonly/alerts.js");
|
|
26
|
+
const define_js_1 = require("./define.js");
|
|
27
|
+
/** The API's bounds on the threshold: $0.01 to $1,000,000. */
|
|
28
|
+
exports.MIN_THRESHOLD_CENTS = 1;
|
|
29
|
+
exports.MAX_THRESHOLD_CENTS = 100_000_000;
|
|
30
|
+
const TOGGLES = ["balance_low", "subscription_quota", "api_key_budget", "member_spend"];
|
|
31
|
+
function merge(current, c) {
|
|
32
|
+
return {
|
|
33
|
+
balance_threshold_cents: c.balance_threshold_cents ?? current.balance_threshold_cents,
|
|
34
|
+
email: {
|
|
35
|
+
balance_low: c.balance_low ?? current.email.balance_low,
|
|
36
|
+
subscription_quota: c.subscription_quota ?? current.email.subscription_quota,
|
|
37
|
+
api_key_budget: c.api_key_budget ?? current.email.api_key_budget,
|
|
38
|
+
member_spend: c.member_spend ?? current.email.member_spend,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function usd(cents) {
|
|
43
|
+
return `$${(cents / 100).toFixed(2)}`;
|
|
44
|
+
}
|
|
45
|
+
function onOff(v) {
|
|
46
|
+
return v ? "on" : "off";
|
|
47
|
+
}
|
|
48
|
+
/** One phrase per setting that differs between `from` and `to`. */
|
|
49
|
+
function describeChanges(from, to) {
|
|
50
|
+
const out = [];
|
|
51
|
+
if (from.balance_threshold_cents !== to.balance_threshold_cents) {
|
|
52
|
+
out.push(`low-balance threshold ${usd(from.balance_threshold_cents)} → ${usd(to.balance_threshold_cents)}`);
|
|
53
|
+
}
|
|
54
|
+
for (const t of TOGGLES) {
|
|
55
|
+
if (from.email[t] !== to.email[t]) {
|
|
56
|
+
out.push(`${t} emails ${onOff(from.email[t])} → ${onOff(to.email[t])}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return out;
|
|
60
|
+
}
|
|
61
|
+
async function putAlertSettings(config, next) {
|
|
62
|
+
const raw = await (0, api_json_js_1.apiJson)(new sdk_1.AlertsApi(config).putAlertSettingsRaw({
|
|
63
|
+
alertSettingsUpdate: {
|
|
64
|
+
balanceThresholdCents: next.balance_threshold_cents,
|
|
65
|
+
email: {
|
|
66
|
+
balanceLow: next.email.balance_low,
|
|
67
|
+
subscriptionQuota: next.email.subscription_quota,
|
|
68
|
+
apiKeyBudget: next.email.api_key_budget,
|
|
69
|
+
memberSpend: next.email.member_spend,
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
}));
|
|
73
|
+
return alerts_js_1.alertSettingsSchema.parse(raw);
|
|
74
|
+
}
|
|
75
|
+
function nothingToDo(current) {
|
|
76
|
+
return new define_js_1.WriteNothingToDo({
|
|
77
|
+
lead: "The alert settings already match what was asked for. Nothing was changed.",
|
|
78
|
+
payload: { changed: false, settings: (0, alerts_js_1.alertSettingsView)(current) },
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
exports.alertsSetTool = (0, define_js_1.defineWriteTool)({
|
|
82
|
+
name: "deeprelay_alerts_set",
|
|
83
|
+
title: "Change the deeprelay alert settings",
|
|
84
|
+
description: "Change the organization's alert settings: the low-balance threshold (in cents) and whether each governance " +
|
|
85
|
+
"alert is emailed to org admins (balance_low, subscription_quota, api_key_budget, member_spend). Pass only the " +
|
|
86
|
+
"settings to change; the rest are kept. Requires the org-admin role (or a full_access key) server-side. A " +
|
|
87
|
+
"member always receives their own spend-limit emails whatever is set here. Check the current values first with " +
|
|
88
|
+
"deeprelay_alerts_get. Charges nothing.",
|
|
89
|
+
inputSchema: {
|
|
90
|
+
balance_threshold_cents: zod_1.z
|
|
91
|
+
.number()
|
|
92
|
+
.int()
|
|
93
|
+
.min(exports.MIN_THRESHOLD_CENTS)
|
|
94
|
+
.max(exports.MAX_THRESHOLD_CENTS)
|
|
95
|
+
.optional()
|
|
96
|
+
.describe("Low-balance alert threshold in cents (1 to 100000000, i.e. $0.01 to $1,000,000)."),
|
|
97
|
+
balance_low: zod_1.z.boolean().optional().describe("Email org admins when the balance drops below the threshold."),
|
|
98
|
+
subscription_quota: zod_1.z.boolean().optional().describe("Email org admins at 80% and 100% of a plan allowance."),
|
|
99
|
+
api_key_budget: zod_1.z.boolean().optional().describe("Email org admins at 80% and 100% of an API key's budget."),
|
|
100
|
+
member_spend: zod_1.z.boolean().optional().describe("Email org admins at 80% and 100% of a member's spend limit."),
|
|
101
|
+
},
|
|
102
|
+
destructive: false,
|
|
103
|
+
question: "Change the organization's alert settings as described?",
|
|
104
|
+
context: "changing the alert settings",
|
|
105
|
+
async quote(args, config) {
|
|
106
|
+
const changes = {
|
|
107
|
+
balance_threshold_cents: args.balance_threshold_cents,
|
|
108
|
+
balance_low: args.balance_low,
|
|
109
|
+
subscription_quota: args.subscription_quota,
|
|
110
|
+
api_key_budget: args.api_key_budget,
|
|
111
|
+
member_spend: args.member_spend,
|
|
112
|
+
};
|
|
113
|
+
if (Object.values(changes).every((v) => v === undefined)) {
|
|
114
|
+
throw new errors_js_1.QuoteUnavailableError("Nothing to change: pass balance_threshold_cents and/or at least one of balance_low, subscription_quota, " +
|
|
115
|
+
"api_key_budget, member_spend.");
|
|
116
|
+
}
|
|
117
|
+
const current = await (0, alerts_js_1.getAlertSettings)(config);
|
|
118
|
+
const diff = describeChanges(current, merge(current, changes));
|
|
119
|
+
if (diff.length === 0) {
|
|
120
|
+
throw nothingToDo(current);
|
|
121
|
+
}
|
|
122
|
+
return {
|
|
123
|
+
summary: `Change the organization's alert settings: ${diff.join("; ")}. Every other setting is kept.`,
|
|
124
|
+
resolvedParams: changes,
|
|
125
|
+
};
|
|
126
|
+
},
|
|
127
|
+
async execute(changes, config) {
|
|
128
|
+
const fresh = await (0, alerts_js_1.getAlertSettings)(config);
|
|
129
|
+
const next = merge(fresh, changes);
|
|
130
|
+
const diff = describeChanges(fresh, next);
|
|
131
|
+
if (diff.length === 0) {
|
|
132
|
+
throw nothingToDo(fresh);
|
|
133
|
+
}
|
|
134
|
+
const saved = await putAlertSettings(config, next);
|
|
135
|
+
return {
|
|
136
|
+
lead: `Alert settings updated: ${diff.join("; ")}.`,
|
|
137
|
+
payload: { changed: true, settings: (0, alerts_js_1.alertSettingsView)(saved) },
|
|
138
|
+
};
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
//# sourceMappingURL=alerts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alerts.js","sourceRoot":"","sources":["../../../src/tools/write/alerts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ToolDefinition } from "../types.js";
|
|
2
2
|
export { CONFIRMATION_TOKEN_SHAPE, defineWriteTool, WRITE_TIER_SENTENCE, type WriteExecuted, type WriteQuote, type WriteToolSpec, WriteNothingToDo, } from "./define.js";
|
|
3
|
+
export { alertsSetTool } from "./alerts.js";
|
|
3
4
|
export { paymentLinkTools } from "./payment-links.js";
|
|
4
5
|
export { spendingLimitClearTool, spendingLimitUpdateTool } from "./spending-limit.js";
|
|
5
6
|
/**
|
|
@@ -8,5 +9,5 @@ export { spendingLimitClearTool, spendingLimitUpdateTool } from "./spending-limi
|
|
|
8
9
|
* (Phase 101 D-04) and are not offered here.
|
|
9
10
|
*/
|
|
10
11
|
export declare const WEBHOOK_EVENT_TYPES: readonly ["video.completed", "video.failed"];
|
|
11
|
-
/** The
|
|
12
|
+
/** The nine write tools, in WRITE_TOOLS order (test/roster-audit.test.ts asserts it). */
|
|
12
13
|
export declare const writeTools: ToolDefinition[];
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.writeTools = exports.WEBHOOK_EVENT_TYPES = exports.spendingLimitUpdateTool = exports.spendingLimitClearTool = exports.paymentLinkTools = exports.WriteNothingToDo = exports.WRITE_TIER_SENTENCE = exports.defineWriteTool = exports.CONFIRMATION_TOKEN_SHAPE = void 0;
|
|
3
|
+
exports.writeTools = exports.WEBHOOK_EVENT_TYPES = exports.spendingLimitUpdateTool = exports.spendingLimitClearTool = exports.paymentLinkTools = exports.alertsSetTool = exports.WriteNothingToDo = exports.WRITE_TIER_SENTENCE = exports.defineWriteTool = exports.CONFIRMATION_TOKEN_SHAPE = void 0;
|
|
4
4
|
// The write tier (Phase 104, D-02/D-03/D-09/D-10). Authored fresh (D-12).
|
|
5
5
|
//
|
|
6
|
-
//
|
|
6
|
+
// Nine mutations, none of which charges the account, and every one of which
|
|
7
7
|
// confirms once. Each is built with defineWriteTool (define.ts), which wraps
|
|
8
8
|
// the tool in withWriteConfirmation and puts elicitation in front of that same
|
|
9
9
|
// handshake, so no write can be registered without its confirmation.
|
|
@@ -19,9 +19,13 @@ exports.writeTools = exports.WEBHOOK_EVENT_TYPES = exports.spendingLimitUpdateTo
|
|
|
19
19
|
// deeprelay_subscription_checkout — link only (payment-links.ts, D-09)
|
|
20
20
|
// deeprelay_billing_portal — link only (payment-links.ts, D-09)
|
|
21
21
|
// deeprelay_deposits_create_crypto — link only, off at boot (payment-links.ts, D-03)
|
|
22
|
+
// deeprelay_alerts_set — org alert settings, full-replace PUT
|
|
23
|
+
// built from a fresh GET (alerts.ts,
|
|
24
|
+
// Phase 111)
|
|
22
25
|
const sdk_1 = require("@deeprelay/sdk");
|
|
23
26
|
const zod_1 = require("zod");
|
|
24
27
|
const video_reads_js_1 = require("../readonly/video-reads.js");
|
|
28
|
+
const alerts_js_1 = require("./alerts.js");
|
|
25
29
|
const define_js_1 = require("./define.js");
|
|
26
30
|
const payment_links_js_1 = require("./payment-links.js");
|
|
27
31
|
const spending_limit_js_1 = require("./spending-limit.js");
|
|
@@ -30,6 +34,8 @@ Object.defineProperty(exports, "CONFIRMATION_TOKEN_SHAPE", { enumerable: true, g
|
|
|
30
34
|
Object.defineProperty(exports, "defineWriteTool", { enumerable: true, get: function () { return define_js_2.defineWriteTool; } });
|
|
31
35
|
Object.defineProperty(exports, "WRITE_TIER_SENTENCE", { enumerable: true, get: function () { return define_js_2.WRITE_TIER_SENTENCE; } });
|
|
32
36
|
Object.defineProperty(exports, "WriteNothingToDo", { enumerable: true, get: function () { return define_js_2.WriteNothingToDo; } });
|
|
37
|
+
var alerts_js_2 = require("./alerts.js");
|
|
38
|
+
Object.defineProperty(exports, "alertsSetTool", { enumerable: true, get: function () { return alerts_js_2.alertsSetTool; } });
|
|
33
39
|
var payment_links_js_2 = require("./payment-links.js");
|
|
34
40
|
Object.defineProperty(exports, "paymentLinkTools", { enumerable: true, get: function () { return payment_links_js_2.paymentLinkTools; } });
|
|
35
41
|
var spending_limit_js_2 = require("./spending-limit.js");
|
|
@@ -147,7 +153,7 @@ const videosCancelTool = (0, define_js_1.defineWriteTool)({
|
|
|
147
153
|
};
|
|
148
154
|
},
|
|
149
155
|
});
|
|
150
|
-
/** The
|
|
156
|
+
/** The nine write tools, in WRITE_TOOLS order (test/roster-audit.test.ts asserts it). */
|
|
151
157
|
exports.writeTools = [
|
|
152
158
|
webhooksCreateTool,
|
|
153
159
|
webhooksDeleteTool,
|
|
@@ -155,5 +161,6 @@ exports.writeTools = [
|
|
|
155
161
|
spending_limit_js_1.spendingLimitClearTool,
|
|
156
162
|
...payment_links_js_1.paymentLinkTools,
|
|
157
163
|
videosCancelTool,
|
|
164
|
+
alerts_js_1.alertsSetTool,
|
|
158
165
|
];
|
|
159
166
|
//# sourceMappingURL=index.js.map
|