@deeprelay/mcp 0.1.0 → 0.1.2

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 CHANGED
@@ -124,8 +124,9 @@ one server process.
124
124
  Estimates are reserved before each call and replaced by the actual cost
125
125
  afterwards. A failed call releases its reservation.
126
126
 
127
- **Video is quoted as a floor, not a cap.** `deeprelay_videos_create` reserves
128
- the floor price. When `deeprelay_videos_get` or `deeprelay_videos_list` sees the
127
+ **Video is quoted as a floor, not a cap.** `deeprelay_videos_create` prices the
128
+ clip the way the platform bills it, per second of the requested `seconds` (the
129
+ model's default length when omitted), and reserves that floor. When `deeprelay_videos_get` or `deeprelay_videos_list` sees the
129
130
  job completed, the reservation settles at the actual `cost_cents`. Failed,
130
131
  cancelled or expired jobs are not billed. If the server exits before the job
131
132
  finishes, the reservation is dropped and the real charge appears in
@@ -173,9 +174,19 @@ finishes, the reservation is dropped and the real charge appears in
173
174
  **Money (4):** `deeprelay_chat_completion`, `deeprelay_embeddings_create`,
174
175
  `deeprelay_images_generate`, `deeprelay_videos_create`.
175
176
 
176
- `deeprelay_health` works without a key. `deeprelay_videos_content` saves the MP4
177
+ `deeprelay_health` calls the unauthenticated liveness endpoint, so it answers
178
+ even when the key is wrong or revoked; the server itself still needs
179
+ `DEEPRELAY_API_KEY` set to start. `deeprelay_usage_get` reports serverless
180
+ inference usage: optional `modality` (`chat`, `image`, `video`, `embedding`),
181
+ `model`, `bucket`, `start` and `end`; with no `modality` or `model` it covers
182
+ all four modalities and returns `total_cost_cents` plus per-modality subtotals.
183
+ It follows pages itself and never counts a row twice; `truncated: true` means
184
+ the totals cover only the rows returned, so narrow `start`/`end`.
185
+ `deeprelay_videos_content` saves the MP4
177
186
  to a local file (under the system temp directory by default, or an absolute
178
- `output_path`) instead of returning it inline.
187
+ `output_path`) instead of returning it inline. Because it writes a file it
188
+ advertises `readOnlyHint: false` and `idempotentHint: false`; it still costs
189
+ nothing and needs no confirmation.
179
190
 
180
191
  Per-tool arguments and the full guide are at <https://deeprelay.ai/docs/mcp>.
181
192
 
package/dist/auth.d.ts CHANGED
@@ -28,6 +28,12 @@ export declare function requireApiKey(env?: Env): string;
28
28
  * never produce `//`.
29
29
  */
30
30
  export declare function resolveBaseUrl(env?: Env): string;
31
+ /**
32
+ * The API base as it may be shown to the agent: resolveBaseUrl with any
33
+ * userinfo (`user:pass@`) removed (WR-07). A proxy basic-auth base must never
34
+ * land in a transcript; errors.ts strips it from messages the same way.
35
+ */
36
+ export declare function displayBaseUrl(env?: Env): string;
31
37
  /**
32
38
  * Build the single SDK Configuration every tool uses.
33
39
  *
package/dist/auth.js CHANGED
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StartupConfigError = exports.PROD_API_BASE = exports.API_BASE_ENV = exports.API_KEY_ENV = void 0;
4
4
  exports.requireApiKey = requireApiKey;
5
5
  exports.resolveBaseUrl = resolveBaseUrl;
6
+ exports.displayBaseUrl = displayBaseUrl;
6
7
  exports.buildConfiguration = buildConfiguration;
7
8
  exports.describeStartupError = describeStartupError;
8
9
  // Startup configuration and the one API-client construction site
@@ -87,6 +88,21 @@ function resolveBaseUrl(env = process.env) {
87
88
  }
88
89
  return raw.replace(/\/+$/, "");
89
90
  }
91
+ /**
92
+ * The API base as it may be shown to the agent: resolveBaseUrl with any
93
+ * userinfo (`user:pass@`) removed (WR-07). A proxy basic-auth base must never
94
+ * land in a transcript; errors.ts strips it from messages the same way.
95
+ */
96
+ function displayBaseUrl(env = process.env) {
97
+ const base = resolveBaseUrl(env);
98
+ const url = new URL(base);
99
+ if (url.username === "" && url.password === "") {
100
+ return base;
101
+ }
102
+ url.username = "";
103
+ url.password = "";
104
+ return url.toString().replace(/\/+$/, "");
105
+ }
90
106
  /**
91
107
  * Build the single SDK Configuration every tool uses.
92
108
  *
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,11 @@ export interface PricingLike {
12
12
  perMpxlMicrocents?: number;
13
13
  perVideoMicrocents?: number;
14
14
  perVideoSecondMicrocents?: number;
15
+ /**
16
+ * Not a rate: the model's default clip length from its catalog `seconds`
17
+ * parameter descriptor. The server bills an omitted `seconds` at this value.
18
+ */
19
+ defaultVideoSeconds?: number;
15
20
  }
16
21
  /** Agent-supplied request parameters that the estimate depends on. */
17
22
  export interface EstimateParams {
@@ -27,7 +32,7 @@ export interface EstimateParams {
27
32
  n?: number;
28
33
  /** Image: "WxH". Defaults to 1024x1024. */
29
34
  size?: string;
30
- /** Video: clip length in seconds. Defaults to 5. */
35
+ /** Video: clip length in seconds. Defaults to the model's catalog default, then 5. */
31
36
  seconds?: number;
32
37
  }
33
38
  export interface Estimate {
@@ -46,6 +51,11 @@ export declare const DEFAULT_VIDEO_SECONDS = 5;
46
51
  export declare function estimatePromptTokens(texts: ReadonlyArray<string>): number;
47
52
  /** Megapixels for a "WxH" size. Anything unparseable uses the default size. */
48
53
  export declare function megapixels(size: string | undefined): number;
54
+ /**
55
+ * The clip length the server will bill: the requested seconds, else the
56
+ * model's catalog default, else DEFAULT_VIDEO_SECONDS.
57
+ */
58
+ export declare function videoSeconds(requested: number | undefined, pricing: PricingLike): number;
49
59
  /** Estimate one invocation's billed cost before it runs. */
50
60
  export declare function estimateMicroCents(modality: Modality, params: EstimateParams, pricing: PricingLike): Estimate;
51
61
  /** Usage fields the API returns, per modality (camelCase SDK shapes). */
@@ -58,6 +68,8 @@ export interface UsageLike {
58
68
  imageCount?: number;
59
69
  /** Video (VideoJob, populated on completed). */
60
70
  costCents?: number;
71
+ /** Video: the clip length the job reports, used when costCents is absent. */
72
+ seconds?: number;
61
73
  }
62
74
  /**
63
75
  * The billed actual cost of one completed invocation, from the API's usage
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DEFAULT_VIDEO_SECONDS = exports.DEFAULT_IMAGE_SIZE = exports.DEFAULT_MAX_TOKENS = exports.CHARS_PER_TOKEN = void 0;
4
4
  exports.estimatePromptTokens = estimatePromptTokens;
5
5
  exports.megapixels = megapixels;
6
+ exports.videoSeconds = videoSeconds;
6
7
  exports.estimateMicroCents = estimateMicroCents;
7
8
  exports.actualMicroCents = actualMicroCents;
8
9
  // Per-modality cost estimator for the unified session budget (Phase 104 D-06).
@@ -19,8 +20,14 @@ exports.actualMicroCents = actualMicroCents;
19
20
  // Inputs from the agent (messages, n, size, seconds, max_tokens) are untrusted.
20
21
  // Non-finite or non-positive counts fall back to the defaults. For chat the
21
22
  // estimate is bounded by max_tokens. For video it is a FLOOR (isFloor: true),
22
- // because the catalog publishes a "from" price and the real cost arrives later
23
- // on VideoJob.costCents.
23
+ // because the real cost arrives later on VideoJob.costCents.
24
+ //
25
+ // Video is priced the way the server bills it (CR-01): per second of output x
26
+ // the requested seconds, where an omitted `seconds` resolves to the model's own
27
+ // catalog default (its `seconds` parameter descriptor), then DEFAULT_VIDEO_SECONDS.
28
+ // The per-clip price is only a representative "from" price for an example clip
29
+ // length, so it never stands in for a known per-second rate; when both are
30
+ // published the estimate is the larger of the two.
24
31
  const budget_js_1 = require("./budget.js");
25
32
  exports.CHARS_PER_TOKEN = 4;
26
33
  exports.DEFAULT_MAX_TOKENS = 1024;
@@ -94,6 +101,25 @@ function imageRaw(count, size, pricing) {
94
101
  return count * per;
95
102
  return count * rate(pricing.perMpxlMicrocents) * megapixels(size);
96
103
  }
104
+ /**
105
+ * The clip length the server will bill: the requested seconds, else the
106
+ * model's catalog default, else DEFAULT_VIDEO_SECONDS.
107
+ */
108
+ function videoSeconds(requested, pricing) {
109
+ return positiveCount(requested, positiveCount(pricing.defaultVideoSeconds, exports.DEFAULT_VIDEO_SECONDS));
110
+ }
111
+ /**
112
+ * Raw micro-cents for one clip, priced exactly the way the server bills it:
113
+ * per-second rate x seconds (internal/mediajob/poller.go costCents). The
114
+ * per-clip "from" price is only a representative figure for an example
115
+ * length and is never charged, so it is used solely as a fallback when a
116
+ * model publishes no per-second rate.
117
+ */
118
+ function videoRaw(seconds, pricing) {
119
+ return known(pricing.perVideoSecondMicrocents)
120
+ ? rate(pricing.perVideoSecondMicrocents) * seconds
121
+ : rate(pricing.perVideoMicrocents);
122
+ }
97
123
  /** Estimate one invocation's billed cost before it runs. */
98
124
  function estimateMicroCents(modality, params, pricing) {
99
125
  switch (modality) {
@@ -124,12 +150,8 @@ function estimateMicroCents(modality, params, pricing) {
124
150
  };
125
151
  }
126
152
  case "video": {
127
- const seconds = positiveCount(params.seconds, exports.DEFAULT_VIDEO_SECONDS);
128
- const raw = known(pricing.perVideoMicrocents)
129
- ? rate(pricing.perVideoMicrocents)
130
- : rate(pricing.perVideoSecondMicrocents) * seconds;
131
153
  return {
132
- microCents: (0, budget_js_1.billedMicroCents)(raw),
154
+ microCents: (0, budget_js_1.billedMicroCents)(videoRaw(videoSeconds(params.seconds, pricing), pricing)),
133
155
  isFloor: true,
134
156
  pricingKnown: known(pricing.perVideoMicrocents) || known(pricing.perVideoSecondMicrocents),
135
157
  };
@@ -163,9 +185,16 @@ function actualMicroCents(modality, usage, pricing, fallbackEstimateMicroCents,
163
185
  return fallback;
164
186
  return (0, budget_js_1.billedMicroCents)(imageRaw(usage.imageCount, params?.size, pricing));
165
187
  case "video":
166
- if (!num(usage.costCents))
167
- return fallback;
168
- return (0, budget_js_1.billedMicroCents)(usage.costCents * budget_js_1.MICRO_CENTS_PER_CENT);
188
+ if (num(usage.costCents))
189
+ return (0, budget_js_1.billedMicroCents)(usage.costCents * budget_js_1.MICRO_CENTS_PER_CENT);
190
+ // No cost on the job: price it on the same basis as the estimate, at the
191
+ // job's own seconds when it reports them.
192
+ if (num(usage.seconds) && usage.seconds > 0) {
193
+ const raw = videoRaw(videoSeconds(usage.seconds, pricing), pricing);
194
+ if (raw > 0)
195
+ return (0, budget_js_1.billedMicroCents)(raw);
196
+ }
197
+ return fallback;
169
198
  }
170
199
  }
171
200
  //# sourceMappingURL=estimate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"estimate.js","sourceRoot":"","sources":["../../src/guardrail/estimate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"estimate.js","sourceRoot":"","sources":["../../src/guardrail/estimate.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,17 @@ import type { Env, ToolAnnotations, ToolDefinition } from "../types.js";
11
11
  export declare class ReadRefusal extends Error {
12
12
  constructor(message: string);
13
13
  }
14
- /** Every read tool advertises the same four hints. */
14
+ /** Every read tool advertises the same four hints, except a local-file writer (below). */
15
15
  export declare const READ_ANNOTATIONS: ToolAnnotations;
16
+ /**
17
+ * Hints for the one read-tier tool that writes to the local filesystem
18
+ * (deeprelay_videos_content, WR-08). It spends nothing and needs no
19
+ * confirmation, so it stays in the read tier, but it is not read-only (it
20
+ * creates a file and its directory) and not idempotent (a repeat call for the
21
+ * same default path is refused because the file exists). Clients that
22
+ * auto-approve readOnlyHint tools must not auto-approve a file write.
23
+ */
24
+ export declare const LOCAL_WRITE_READ_ANNOTATIONS: ToolAnnotations;
16
25
  export interface ReadToolSpec<Shape extends ZodRawShape> {
17
26
  name: ReadToolName;
18
27
  title: string;
@@ -26,6 +35,8 @@ export interface ReadToolSpec<Shape extends ZodRawShape> {
26
35
  * unauthenticated liveness probe sets this.
27
36
  */
28
37
  keyless?: boolean;
38
+ /** The tool writes a local file: advertise LOCAL_WRITE_READ_ANNOTATIONS. */
39
+ writesLocalFiles?: boolean;
29
40
  call(args: z.infer<z.ZodObject<Shape>>, config: Configuration, env: Env): Promise<unknown>;
30
41
  }
31
42
  /** Wrap a typed SDK call into a read-tier ToolDefinition. */
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.READ_ANNOTATIONS = exports.ReadRefusal = void 0;
3
+ exports.LOCAL_WRITE_READ_ANNOTATIONS = exports.READ_ANNOTATIONS = exports.ReadRefusal = void 0;
4
4
  exports.defineTool = defineTool;
5
5
  const zod_1 = require("zod");
6
6
  const auth_js_1 = require("../../auth.js");
@@ -19,13 +19,27 @@ class ReadRefusal extends Error {
19
19
  }
20
20
  }
21
21
  exports.ReadRefusal = ReadRefusal;
22
- /** Every read tool advertises the same four hints. */
22
+ /** Every read tool advertises the same four hints, except a local-file writer (below). */
23
23
  exports.READ_ANNOTATIONS = Object.freeze({
24
24
  readOnlyHint: true,
25
25
  destructiveHint: false,
26
26
  idempotentHint: true,
27
27
  openWorldHint: true,
28
28
  });
29
+ /**
30
+ * Hints for the one read-tier tool that writes to the local filesystem
31
+ * (deeprelay_videos_content, WR-08). It spends nothing and needs no
32
+ * confirmation, so it stays in the read tier, but it is not read-only (it
33
+ * creates a file and its directory) and not idempotent (a repeat call for the
34
+ * same default path is refused because the file exists). Clients that
35
+ * auto-approve readOnlyHint tools must not auto-approve a file write.
36
+ */
37
+ exports.LOCAL_WRITE_READ_ANNOTATIONS = Object.freeze({
38
+ readOnlyHint: false,
39
+ destructiveHint: false,
40
+ idempotentHint: false,
41
+ openWorldHint: true,
42
+ });
29
43
  /** Wrap a typed SDK call into a read-tier ToolDefinition. */
30
44
  function defineTool(spec) {
31
45
  const schema = zod_1.z.object(spec.inputSchema);
@@ -35,7 +49,7 @@ function defineTool(spec) {
35
49
  title: spec.title,
36
50
  description: spec.description,
37
51
  inputSchema: spec.inputSchema,
38
- annotations: { ...exports.READ_ANNOTATIONS },
52
+ annotations: { ...(spec.writesLocalFiles === true ? exports.LOCAL_WRITE_READ_ANNOTATIONS : exports.READ_ANNOTATIONS) },
39
53
  enabledAtBoot: true,
40
54
  async handler(args, ctx) {
41
55
  const env = ctx?.env ?? process.env;
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","sourceRoot":"","sources":["../../../src/tools/readonly/define.ts"],"names":[],"mappings":";;;AA6DA,gCA+BC;AA7ED,6BAA0C;AAE1C,2CAAmD;AACnD,+CAAgE;AAEhE,4CAAwC;AAGxC;;;;;GAKG;AACH,MAAa,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AALD,kCAKC;AAED,sDAAsD;AACzC,QAAA,gBAAgB,GAAoB,MAAM,CAAC,MAAM,CAAC;IAC7D,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,IAAI;CACpB,CAAC,CAAC;AAkBH,6DAA6D;AAC7D,SAAgB,UAAU,CAA4B,IAAyB;IAC7E,MAAM,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1C,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,EAAE,GAAG,wBAAgB,EAAE;QACpC,aAAa,EAAE,IAAI;QACnB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;YACrB,MAAM,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;YACpC,IAAI,MAA8B,CAAC;YACnC,IAAI,MAAqB,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAClC,MAAM,GAAG,IAAA,4BAAkB,EAAC,GAAG,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC;YAC/E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,IAAA,gBAAI,EAAC,IAAA,uBAAW,EAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;gBACrD,OAAO,IAAA,cAAE,EAAC,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;oBAC/B,OAAO,IAAA,gBAAI,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACxB,CAAC;gBACD,OAAO,IAAA,gBAAI,EAAC,MAAM,IAAA,4BAAgB,EAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../../../src/tools/readonly/define.ts"],"names":[],"mappings":";;;AA8EA,gCA+BC;AA9FD,6BAA0C;AAE1C,2CAAmD;AACnD,+CAAgE;AAEhE,4CAAwC;AAGxC;;;;;GAKG;AACH,MAAa,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AALD,kCAKC;AAED,0FAA0F;AAC7E,QAAA,gBAAgB,GAAoB,MAAM,CAAC,MAAM,CAAC;IAC7D,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,IAAI;CACpB,CAAC,CAAC;AAEH;;;;;;;GAOG;AACU,QAAA,4BAA4B,GAAoB,MAAM,CAAC,MAAM,CAAC;IACzE,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,KAAK;IACrB,aAAa,EAAE,IAAI;CACpB,CAAC,CAAC;AAoBH,6DAA6D;AAC7D,SAAgB,UAAU,CAA4B,IAAyB;IAC7E,MAAM,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1C,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,oCAA4B,CAAC,CAAC,CAAC,wBAAgB,CAAC,EAAE;QACtG,aAAa,EAAE,IAAI;QACnB,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;YACrB,MAAM,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;YACpC,IAAI,MAA8B,CAAC;YACnC,IAAI,MAAqB,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAClC,MAAM,GAAG,IAAA,4BAAkB,EAAC,GAAG,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC;YAC/E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,IAAA,gBAAI,EAAC,IAAA,uBAAW,EAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;gBACrD,OAAO,IAAA,cAAE,EAAC,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;oBAC/B,OAAO,IAAA,gBAAI,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACxB,CAAC;gBACD,OAAO,IAAA,gBAAI,EAAC,MAAM,IAAA,4BAAgB,EAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { ToolDefinition } from "../types.js";
2
- export { defineTool, READ_ANNOTATIONS } from "./define.js";
2
+ export { defineTool, LOCAL_WRITE_READ_ANNOTATIONS, READ_ANNOTATIONS } from "./define.js";
3
3
  export { observeVideoJob, VIDEO_TMP_DIR, videoReadTools } from "./video-reads.js";
4
4
  /** The in-process session budget (D-06/D-08), in dollars, with pending video holds. */
5
5
  export declare function renderSessionBudget(): Record<string, unknown>;
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.readonlyTools = exports.videoReadTools = exports.VIDEO_TMP_DIR = exports.observeVideoJob = exports.READ_ANNOTATIONS = exports.defineTool = void 0;
3
+ exports.readonlyTools = exports.videoReadTools = exports.VIDEO_TMP_DIR = exports.observeVideoJob = exports.READ_ANNOTATIONS = exports.LOCAL_WRITE_READ_ANNOTATIONS = exports.defineTool = void 0;
4
4
  exports.renderSessionBudget = renderSessionBudget;
5
5
  // The free read tier (Phase 104, D-03/D-04/D-05/D-10). Authored fresh (D-12).
6
6
  //
7
- // Every tool here is a single GET mapped to one @deeprelay/sdk method (D-05),
7
+ // Every tool here is a GET mapped to one @deeprelay/sdk method (D-05; the usage
8
+ // tool calls it once per modality when unfiltered, see usage.ts),
8
9
  // built with defineTool (define.ts): no confirmation, no quote, no budget
9
10
  // accounting, and every result goes through ok(), so credential fields are
10
11
  // sanitized and key-shaped text is redacted before the agent sees it.
@@ -17,9 +18,11 @@ const auth_js_1 = require("../../auth.js");
17
18
  const errors_js_1 = require("../../errors.js");
18
19
  const budget_js_1 = require("../../guardrail/budget.js");
19
20
  const define_js_1 = require("./define.js");
21
+ const usage_js_1 = require("./usage.js");
20
22
  const video_reads_js_1 = require("./video-reads.js");
21
23
  var define_js_2 = require("./define.js");
22
24
  Object.defineProperty(exports, "defineTool", { enumerable: true, get: function () { return define_js_2.defineTool; } });
25
+ Object.defineProperty(exports, "LOCAL_WRITE_READ_ANNOTATIONS", { enumerable: true, get: function () { return define_js_2.LOCAL_WRITE_READ_ANNOTATIONS; } });
23
26
  Object.defineProperty(exports, "READ_ANNOTATIONS", { enumerable: true, get: function () { return define_js_2.READ_ANNOTATIONS; } });
24
27
  var video_reads_js_2 = require("./video-reads.js");
25
28
  Object.defineProperty(exports, "observeVideoJob", { enumerable: true, get: function () { return video_reads_js_2.observeVideoJob; } });
@@ -41,6 +44,39 @@ async function orNotFound(call, onNotFound) {
41
44
  throw err;
42
45
  }
43
46
  }
47
+ /** The API's code for a crypto route while the feature is dark for this account. */
48
+ const CRYPTO_DARK_CODE = "not-found";
49
+ /** The API's code for an unknown (or another org's) deposit id; the feature is on. */
50
+ const DEPOSIT_NOT_FOUND_CODE = "deposit-not-found";
51
+ /**
52
+ * deeprelay_deposits_get's 404s are two different answers (WR-05): the dark
53
+ * route (`not-found`) means the feature is not enabled, while
54
+ * `deposit-not-found` means the feature is on and there is no deposit with
55
+ * that id on this account. Any other 404 is a real error.
56
+ */
57
+ async function getDepositOrExplain(api, id) {
58
+ try {
59
+ return { crypto_deposits_enabled: true, ...(await api.getDeposit({ id })) };
60
+ }
61
+ catch (err) {
62
+ if ((0, errors_js_1.httpStatusOf)(err) !== 404)
63
+ throw err;
64
+ const { code } = await (0, errors_js_1.readErrorEnvelope)(err);
65
+ if (code === DEPOSIT_NOT_FOUND_CODE) {
66
+ return {
67
+ crypto_deposits_enabled: true,
68
+ found: false,
69
+ id,
70
+ note: "No crypto deposit with this id exists on this account. Crypto deposits are enabled; check the id " +
71
+ "with deeprelay_deposits_list.",
72
+ };
73
+ }
74
+ if (code === CRYPTO_DARK_CODE) {
75
+ return { crypto_deposits_enabled: false };
76
+ }
77
+ throw err;
78
+ }
79
+ }
44
80
  /** The in-process session budget (D-06/D-08), in dollars, with pending video holds. */
45
81
  function renderSessionBudget() {
46
82
  const s = (0, budget_js_1.budgetStatus)();
@@ -95,7 +131,7 @@ const coreReadTools = [
95
131
  const balance = await billing.getBalance();
96
132
  return {
97
133
  authenticated: true,
98
- api_base: (0, auth_js_1.resolveBaseUrl)(env),
134
+ api_base: (0, auth_js_1.displayBaseUrl)(env),
99
135
  spending_limit: limit === null ? null : spendingLimitView(limit),
100
136
  balance: balanceView(balance),
101
137
  session_budget: renderSessionBudget(),
@@ -106,13 +142,13 @@ const coreReadTools = [
106
142
  name: "deeprelay_health",
107
143
  title: "Check deeprelay API liveness",
108
144
  description: "Is the deeprelay API up? Call this when other calls fail with network errors, to tell an outage apart from " +
109
- `a configuration problem. Works even when no API key is configured. ${FREE}`,
145
+ `a key problem. It uses the unauthenticated liveness endpoint, so a wrong or revoked key does not affect it. ${FREE}`,
110
146
  inputSchema: {},
111
147
  context: "checking deeprelay API health",
112
148
  keyless: true,
113
149
  async call(_args, config, env) {
114
150
  const health = await new sdk_1.MetaApi(config).getHealth();
115
- return { status: health.status ?? "unknown", api_base: (0, auth_js_1.resolveBaseUrl)(env) };
151
+ return { status: health.status ?? "unknown", api_base: (0, auth_js_1.displayBaseUrl)(env) };
116
152
  },
117
153
  }),
118
154
  (0, define_js_1.defineTool)({
@@ -158,26 +194,18 @@ const coreReadTools = [
158
194
  }),
159
195
  (0, define_js_1.defineTool)({
160
196
  name: "deeprelay_usage_get",
161
- title: "Get deeprelay usage",
162
- description: "How much has this account used and spent, over time? Returns time-bucketed usage (hour, day, week or month; " +
163
- "default day, last 31 buckets). Pass `cursor` from `nextCursor` to page. Use this to answer spend questions " +
164
- `about past days; for this session's spend use deeprelay_auth_status. ${FREE}`,
165
- inputSchema: {
166
- bucket: zod_1.z.enum(sdk_1.ListUsageBucketEnum).default("day").describe("Bucket width."),
167
- start: zod_1.z.iso.datetime({ offset: true }).optional().describe("ISO-8601 start of the window."),
168
- end: zod_1.z.iso.datetime({ offset: true }).optional().describe("ISO-8601 end of the window."),
169
- cursor: zod_1.z.string().min(1).optional().describe("Page cursor from a previous result's nextCursor."),
170
- limit: zod_1.z.number().int().min(1).max(100).default(31).describe("Buckets per page (1-100)."),
171
- },
197
+ title: "Get deeprelay inference usage",
198
+ description: "How much serverless inference has this account used and spent, over time? Returns time-bucketed inference " +
199
+ "usage (hour, day, week or month buckets; default day over the last 30 days), one row per bucket, modality " +
200
+ "and model, with cost in cents and token/image counts, plus `total_cost_cents` and per-modality subtotals " +
201
+ "(`by_modality`). Filter with `modality` (chat, image, video, embedding) and/or `model`; with neither it " +
202
+ "covers all four modalities. Pages are followed automatically; `truncated: true` means the window was too " +
203
+ "large, so narrow `start`/`end`. Use this to answer spend questions about past days; for this session's " +
204
+ `spend use deeprelay_auth_status. ${FREE}`,
205
+ inputSchema: usage_js_1.usageInputSchema,
172
206
  context: "getting usage",
173
207
  async call(args, config) {
174
- return new sdk_1.UsageApi(config).listUsage({
175
- bucket: args.bucket,
176
- start: args.start === undefined ? undefined : new Date(args.start),
177
- end: args.end === undefined ? undefined : new Date(args.end),
178
- cursor: args.cursor,
179
- limit: args.limit,
180
- });
208
+ return (0, usage_js_1.getInferenceUsage)(args, config);
181
209
  },
182
210
  }),
183
211
  ];
@@ -239,13 +267,14 @@ const billingReadTools = [
239
267
  name: "deeprelay_deposits_get",
240
268
  title: "Get a crypto deposit",
241
269
  description: `Get one crypto deposit by id: status, chain, asset, amount and credited cents. ${DEPOSITS_NOTE} ` +
242
- FREE,
270
+ "An id that does not exist on this account returns `{ crypto_deposits_enabled: true, found: false }`: the " +
271
+ `feature is on and the id is wrong, so check it with deeprelay_deposits_list. ${FREE}`,
243
272
  inputSchema: {
244
273
  id: zod_1.z.string().min(1).describe("Deposit id, as returned by deeprelay_deposits_list."),
245
274
  },
246
275
  context: "getting a crypto deposit",
247
276
  async call(args, config) {
248
- return orNotFound(async () => ({ crypto_deposits_enabled: true, ...(await new sdk_1.BillingApi(config).getDeposit({ id: args.id })) }), () => ({ crypto_deposits_enabled: false }));
277
+ return getDepositOrExplain(new sdk_1.BillingApi(config), args.id);
249
278
  },
250
279
  }),
251
280
  (0, define_js_1.defineTool)({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/readonly/index.ts"],"names":[],"mappings":";;;AAkDA,kDAiBC;AAnED,8EAA8E;AAC9E,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,2EAA2E;AAC3E,sEAAsE;AACtE,EAAE;AACF,0EAA0E;AAC1E,4EAA4E;AAC5E,wCAUwB;AACxB,6BAAwB;AAExB,2CAA+C;AAC/C,+CAA+C;AAC/C,yDAAyG;AAEzG,2CAAyC;AACzC,qDAAkD;AAElD,yCAA2D;AAAlD,uGAAA,UAAU,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AACrC,mDAAkF;AAAzE,iHAAA,eAAe,OAAA;AAAE,+GAAA,aAAa,OAAA;AAAE,gHAAA,cAAc,OAAA;AAEvD,8EAA8E;AAC9E,SAAS,OAAO,CAAC,UAAkB;IACjC,OAAO,IAAI,CAAC,UAAU,GAAG,CAAC,gCAAoB,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,oFAAoF;AACpF,KAAK,UAAU,UAAU,CAAO,IAAsB,EAAE,UAAmB;IACzE,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,IAAA,wBAAY,EAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9B,OAAO,UAAU,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,SAAgB,mBAAmB;IACjC,MAAM,CAAC,GAAG,IAAA,wBAAY,GAAE,CAAC;IACzB,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,GAAG,gCAAoB,CAAC;QACnD,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC9C,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACrC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACtC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACzC,0BAA0B,EAAE,IAAA,oCAAwB,GAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjE,QAAQ,EAAE,CAAC,CAAC,OAAO;YACnB,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;SAChC,CAAC,CAAC;QACH,IAAI,EAAE,CAAC,CAAC,QAAQ;YACd,CAAC,CAAC,oJAAoJ;YACtJ,CAAC,CAAC,8FAA8F,OAAO,CAAC,CAAC,CAAC,UAAU,GAAG,gCAAoB,CAAC,IAAI;KACnJ,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,CAAU;IAC7B,OAAO;QACL,aAAa,EAAE,CAAC,CAAC,YAAY;QAC7B,eAAe,EAAE,CAAC,CAAC,cAAc;QACjC,gBAAgB,EAAE,CAAC,CAAC,cAAc;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAgB;IACzC,OAAO;QACL,mBAAmB,EAAE,CAAC,CAAC,iBAAiB;QACxC,yBAAyB,EAAE,CAAC,CAAC,sBAAsB;QACnD,YAAY,EAAE,CAAC,CAAC,WAAW;QAC3B,iBAAiB,EAAE,CAAC,CAAC,eAAe,IAAI,IAAI;QAC5C,uBAAuB,EAAE,CAAC,CAAC,oBAAoB;QAC/C,WAAW,EAAE,CAAC,CAAC,WAAW;KAC3B,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,GAAG,4DAA4D,CAAC;AAE1E,4CAA4C;AAC5C,MAAM,aAAa,GAAqB;IACtC,IAAA,sBAAU,EAAC;QACT,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,gDAAgD;QACvD,WAAW,EACT,6GAA6G;YAC7G,8GAA8G;YAC9G,6GAA6G;YAC7G,oDAAoD,IAAI,mCAAmC;QAC7F,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,oCAAoC;QAC7C,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;YAC3B,MAAM,OAAO,GAAG,IAAI,gBAAU,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;YAC3C,OAAO;gBACL,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,IAAA,wBAAc,EAAC,GAAG,CAAC;gBAC7B,cAAc,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC;gBAChE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;gBAC7B,cAAc,EAAE,mBAAmB,EAAE;aACtC,CAAC;QACJ,CAAC;KACF,CAAC;IACF,IAAA,sBAAU,EAAC;QACT,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,8BAA8B;QACrC,WAAW,EACT,6GAA6G;YAC7G,sEAAsE,IAAI,EAAE;QAC9E,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,+BAA+B;QACxC,OAAO,EAAE,IAAI;QACb,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;YAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,aAAO,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;YACrD,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,QAAQ,EAAE,IAAA,wBAAc,EAAC,GAAG,CAAC,EAAE,CAAC;QAC/E,CAAC;KACF,CAAC;IACF,IAAA,sBAAU,EAAC;QACT,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,+GAA+G;YAC/G,8FAA8F;YAC9F,IAAI;QACN,WAAW,EAAE;YACX,QAAQ,EAAE,OAAC,CAAC,IAAI,CAAC,4BAAsB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;SAC9F;QACD,OAAO,EAAE,gBAAgB;QACzB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM;YACrB,OAAO,IAAI,kBAAY,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1E,CAAC;KACF,CAAC;IACF,IAAA,sBAAU,EAAC;QACT,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,4GAA4G;YAC5G,gDAAgD,IAAI,EAAE;QACxD,WAAW,EAAE;YACX,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iDAAiD,CAAC;SAClF;QACD,OAAO,EAAE,iBAAiB;QAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM;YACrB,OAAO,IAAI,kBAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;KACF,CAAC;IACF,IAAA,sBAAU,EAAC;QACT,IAAI,EAAE,+BAA+B;QACrC,KAAK,EAAE,6BAA6B;QACpC,WAAW,EACT,+GAA+G;YAC/G,gHAAgH;YAChH,6DAA6D,IAAI,EAAE;QACrE,WAAW,EAAE;YACX,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;SACxD;QACD,OAAO,EAAE,gCAAgC;QACzC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM;YACrB,OAAO,IAAI,kBAAY,CAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5E,CAAC;KACF,CAAC;IACF,IAAA,sBAAU,EAAC;QACT,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,8GAA8G;YAC9G,6GAA6G;YAC7G,wEAAwE,IAAI,EAAE;QAChF,WAAW,EAAE;YACX,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,yBAAmB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC5E,KAAK,EAAE,OAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAC5F,GAAG,EAAE,OAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACxF,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YACjG,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;SAC1F;QACD,OAAO,EAAE,eAAe;QACxB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM;YACrB,OAAO,IAAI,cAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;gBACpC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAClE,GAAG,EAAE,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC5D,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;CACH,CAAC;AAEF,MAAM,aAAa,GACjB,+GAA+G;IAC/G,wGAAwG,CAAC;AAE3G,MAAM,cAAc,GAClB,8GAA8G,CAAC;AAEjH,gFAAgF;AAChF,SAAS,aAAa,CAAgC,QAAW;IAC/D,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;IAC9C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iCAAiC;AACjC,MAAM,gBAAgB,GAAqB;IACzC,IAAA,sBAAU,EAAC;QACT,IAAI,EAAE,uBAAuB;QAC7B,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,2GAA2G;YAC3G,wFAAwF,IAAI,EAAE;QAChG,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,qBAAqB;QAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;YACtB,OAAO,IAAI,gBAAU,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QAC7C,CAAC;KACF,CAAC;IACF,IAAA,sBAAU,EAAC;QACT,IAAI,EAAE,8BAA8B;QACpC,KAAK,EAAE,kCAAkC;QACzC,WAAW,EACT,+GAA+G;YAC/G,wGAAwG;YACxG,oCAAoC,IAAI,EAAE;QAC5C,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,4BAA4B;QACrC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;YACtB,OAAO,UAAU,CACf,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,gBAAU,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC,EACxF,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAC9B,CAAC;QACJ,CAAC;KACF,CAAC;IACF,IAAA,sBAAU,EAAC;QACT,IAAI,EAAE,4BAA4B;QAClC,KAAK,EAAE,gCAAgC;QACvC,WAAW,EACT,+GAA+G;YAC/G,uEAAuE,IAAI,EAAE;QAC/E,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,0BAA0B;QACnC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;YACtB,OAAO,IAAI,gBAAU,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,CAAC;QAClD,CAAC;KACF,CAAC;IACF,IAAA,sBAAU,EAAC;QACT,IAAI,EAAE,yBAAyB;QAC/B,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,+DAA+D,aAAa,IAAI,IAAI,EAAE;QACnG,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,yBAAyB;QAClC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;YACtB,OAAO,UAAU,CACf,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,uBAAuB,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,gBAAU,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,EACjG,GAAG,EAAE,CAAC,CAAC,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,CAC3C,CAAC;QACJ,CAAC;KACF,CAAC;IACF,IAAA,sBAAU,EAAC;QACT,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,kFAAkF,aAAa,GAAG;YAClG,IAAI;QACN,WAAW,EAAE;YACX,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC;SACtF;QACD,OAAO,EAAE,0BAA0B;QACnC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM;YACrB,OAAO,UAAU,CACf,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,uBAAuB,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,gBAAU,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAC9G,GAAG,EAAE,CAAC,CAAC,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,CAC3C,CAAC;QACJ,CAAC;KACF,CAAC;IACF,IAAA,sBAAU,EAAC;QACT,IAAI,EAAE,yBAAyB;QAC/B,KAAK,EAAE,iCAAiC;QACxC,WAAW,EACT,6GAA6G;YAC7G,oGAAoG,IAAI,EAAE;QAC5G,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,8BAA8B;QACvC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;YACtB,OAAO,IAAI,gBAAU,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,CAAC;KACF,CAAC;IACF,IAAA,sBAAU,EAAC;QACT,IAAI,EAAE,yBAAyB;QAC/B,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,0GAA0G;YAC1G,2CAA2C,cAAc,IAAI,IAAI,EAAE;QACrE,WAAW,EAAE;YACX,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YACjG,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;SAC3F;QACD,OAAO,EAAE,2BAA2B;QACpC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM;YACrB,MAAM,IAAI,GAAG,MAAM,IAAI,iBAAW,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5G,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QACzD,CAAC;KACF,CAAC;IACF,IAAA,sBAAU,EAAC;QACT,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,sEAAsE,cAAc,IAAI,IAAI,EAAE;QAC3G,WAAW,EAAE;YACX,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8DAA8D,CAAC;SAC/F;QACD,OAAO,EAAE,4BAA4B;QACrC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM;YACrB,OAAO,aAAa,CAAC,MAAM,IAAI,iBAAW,CAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1F,CAAC;KACF,CAAC;CACH,CAAC;AAEF,qFAAqF;AACxE,QAAA,aAAa,GAAqB,CAAC,GAAG,aAAa,EAAE,GAAG,gBAAgB,EAAE,GAAG,+BAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/readonly/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { type Configuration } from "@deeprelay/sdk";
2
+ import { z } from "zod";
3
+ /** Rows per page requested from the API (its maximum). */
4
+ export declare const USAGE_PAGE_SIZE = 100;
5
+ /** Pages followed per query before the result is reported as truncated. */
6
+ export declare const USAGE_MAX_PAGES = 10;
7
+ /** Every modality, in the order the fan-out queries them. */
8
+ export declare const USAGE_MODALITIES: ("chat" | "image" | "video" | "embedding")[];
9
+ export declare const usageInputSchema: {
10
+ modality: z.ZodOptional<z.ZodEnum<{
11
+ readonly Chat: "chat";
12
+ readonly Image: "image";
13
+ readonly Video: "video";
14
+ readonly Embedding: "embedding";
15
+ }>>;
16
+ model: z.ZodOptional<z.ZodString>;
17
+ bucket: z.ZodDefault<z.ZodEnum<{
18
+ readonly Hour: "hour";
19
+ readonly Day: "day";
20
+ readonly Week: "week";
21
+ readonly Month: "month";
22
+ }>>;
23
+ start: z.ZodOptional<z.ZodISODateTime>;
24
+ end: z.ZodOptional<z.ZodISODateTime>;
25
+ };
26
+ type UsageArgs = z.infer<z.ZodObject<typeof usageInputSchema>>;
27
+ /** Read inference usage: one query when filtered, one per modality otherwise. */
28
+ export declare function getInferenceUsage(args: UsageArgs, config: Configuration): Promise<Record<string, unknown>>;
29
+ export {};
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.usageInputSchema = exports.USAGE_MODALITIES = exports.USAGE_MAX_PAGES = exports.USAGE_PAGE_SIZE = void 0;
4
+ exports.getInferenceUsage = getInferenceUsage;
5
+ // deeprelay_usage_get: serverless inference usage (Phase 104 follow-up).
6
+ //
7
+ // GET /v1/usage has two row shapes. With `modality` or `model` set it returns
8
+ // inference-usage rows (one per bucket × modality × model); with neither it
9
+ // returns GPU-instance usage, which deeprelay does not surface (no GPU supply
10
+ // on the platform), so an unfiltered call reads as "no usage" even for an
11
+ // account that spent money on inference. There is no single call for every
12
+ // modality, so with no filter this tool asks once per modality and merges.
13
+ //
14
+ // It never sends `group_by` (instance/GPU split) and keeps only the inference
15
+ // fields on each row (the GPU-instance duration field is always 0 there).
16
+ //
17
+ // Cursor following is defensive (Phase 104 CR-02). A server that ignores the
18
+ // cursor returns page one again with the same next_cursor, which used to be
19
+ // summed up to USAGE_MAX_PAGES times. fetchAll stops when a next_cursor repeats
20
+ // or a page brings no row it has not already seen, and it de-duplicates rows on
21
+ // (bucket_start, modality, model), so a row is never counted twice.
22
+ const sdk_1 = require("@deeprelay/sdk");
23
+ const zod_1 = require("zod");
24
+ /** Rows per page requested from the API (its maximum). */
25
+ exports.USAGE_PAGE_SIZE = 100;
26
+ /** Pages followed per query before the result is reported as truncated. */
27
+ exports.USAGE_MAX_PAGES = 10;
28
+ /** Every modality, in the order the fan-out queries them. */
29
+ exports.USAGE_MODALITIES = Object.values(sdk_1.ListUsageModalityEnum);
30
+ exports.usageInputSchema = {
31
+ modality: zod_1.z
32
+ .enum(sdk_1.ListUsageModalityEnum)
33
+ .optional()
34
+ .describe("Only this modality (chat, image, video or embedding). Omit for all four."),
35
+ model: zod_1.z.string().min(1).optional().describe("Only this model id, as returned by deeprelay_models_list."),
36
+ bucket: zod_1.z.enum(sdk_1.ListUsageBucketEnum).default("day").describe("Bucket width (hour, day, week or month)."),
37
+ start: zod_1.z.iso
38
+ .datetime({ offset: true })
39
+ .optional()
40
+ .describe("ISO-8601 start of the window (inclusive). Default: 30 days before end."),
41
+ end: zod_1.z.iso.datetime({ offset: true }).optional().describe("ISO-8601 end of the window (exclusive). Default: now."),
42
+ };
43
+ /** Sum cents without binary-float noise (costs can be fractional cents). */
44
+ function addCents(a, b) {
45
+ return Math.round((a + b) * 1e6) / 1e6;
46
+ }
47
+ function toRow(b, fallbackModality) {
48
+ const start = b.bucketStart instanceof Date ? b.bucketStart.toISOString() : String(b.bucketStart);
49
+ return {
50
+ bucket_start: start,
51
+ modality: b.modality ?? fallbackModality ?? null,
52
+ model: b.model ?? null,
53
+ cost_cents: b.costCents,
54
+ prompt_tokens: b.promptTokens ?? null,
55
+ completion_tokens: b.completionTokens ?? null,
56
+ image_count: b.imageCount ?? null,
57
+ };
58
+ }
59
+ function rowKey(r) {
60
+ return `${r.bucket_start}\u0000${r.modality ?? ""}\u0000${r.model ?? ""}`;
61
+ }
62
+ /**
63
+ * One filtered query, following cursors up to USAGE_MAX_PAGES. Stops early,
64
+ * with `repeated`, when the API hands back a cursor already followed or a page
65
+ * with no unseen row; never counts a (bucket, modality, model) row twice.
66
+ */
67
+ async function fetchAll(api, args, filter) {
68
+ const rows = [];
69
+ const seenRows = new Set();
70
+ const seenCursors = new Set();
71
+ let cursor;
72
+ for (let pageNo = 0; pageNo < exports.USAGE_MAX_PAGES; pageNo += 1) {
73
+ const page = await api.listUsage({
74
+ bucket: args.bucket,
75
+ start: args.start === undefined ? undefined : new Date(args.start),
76
+ end: args.end === undefined ? undefined : new Date(args.end),
77
+ cursor,
78
+ limit: exports.USAGE_PAGE_SIZE,
79
+ modality: filter.modality,
80
+ model: filter.model,
81
+ });
82
+ let fresh = 0;
83
+ for (const b of page.data) {
84
+ const r = toRow(b, filter.modality);
85
+ const k = rowKey(r);
86
+ if (seenRows.has(k))
87
+ continue;
88
+ seenRows.add(k);
89
+ rows.push(r);
90
+ fresh += 1;
91
+ }
92
+ const next = page.nextCursor;
93
+ if (next === null || next === undefined || next === "") {
94
+ return { rows, truncated: false, repeated: false };
95
+ }
96
+ if ((pageNo > 0 && fresh === 0) || seenCursors.has(next)) {
97
+ return { rows, truncated: false, repeated: true };
98
+ }
99
+ seenCursors.add(next);
100
+ cursor = next;
101
+ }
102
+ return { rows, truncated: true, repeated: false };
103
+ }
104
+ /** Read inference usage: one query when filtered, one per modality otherwise. */
105
+ async function getInferenceUsage(args, config) {
106
+ const api = new sdk_1.UsageApi(config);
107
+ const filtered = args.modality !== undefined || args.model !== undefined;
108
+ const queries = filtered
109
+ ? [{ modality: args.modality, model: args.model }]
110
+ : exports.USAGE_MODALITIES.map((modality) => ({ modality }));
111
+ const results = await Promise.all(queries.map((q) => fetchAll(api, args, q)));
112
+ const rows = results.flatMap((r) => r.rows);
113
+ // Newest bucket first (the API's order), then by modality and model.
114
+ rows.sort((a, b) => b.bucket_start.localeCompare(a.bucket_start) ||
115
+ (a.modality ?? "").localeCompare(b.modality ?? "") ||
116
+ (a.model ?? "").localeCompare(b.model ?? ""));
117
+ const byModality = {};
118
+ // With no filter every modality was asked, so report the zeros too.
119
+ if (!filtered) {
120
+ for (const m of exports.USAGE_MODALITIES)
121
+ byModality[m] = { cost_cents: 0, rows: 0 };
122
+ }
123
+ let total = 0;
124
+ for (const row of rows) {
125
+ const key = row.modality ?? "unknown";
126
+ const sub = (byModality[key] ??= { cost_cents: 0, rows: 0 });
127
+ sub.cost_cents = addCents(sub.cost_cents, row.cost_cents);
128
+ sub.rows += 1;
129
+ total = addCents(total, row.cost_cents);
130
+ }
131
+ const truncatedQueries = queries.filter((_, i) => results[i].truncated);
132
+ const repeatedQueries = queries.filter((_, i) => results[i].repeated);
133
+ const truncated = truncatedQueries.length > 0 || repeatedQueries.length > 0;
134
+ const label = (q) => q.modality ?? q.model ?? "the query";
135
+ return {
136
+ usage_kind: "inference",
137
+ note: "Serverless inference usage (what this account is billed for), from GET /v1/usage filtered by modality/model. " +
138
+ (filtered
139
+ ? "One filtered query."
140
+ : `No modality or model was given, so this merges one query per modality (${exports.USAGE_MODALITIES.join(", ")}).`) +
141
+ (truncatedQueries.length > 0
142
+ ? ` TRUNCATED: stopped after ${exports.USAGE_MAX_PAGES} pages of ${exports.USAGE_PAGE_SIZE} rows for ` +
143
+ truncatedQueries.map(label).join(", ") +
144
+ "; totals cover only the rows returned. Narrow start/end or use a wider bucket."
145
+ : "") +
146
+ (repeatedQueries.length > 0
147
+ ? " TRUNCATED: the API returned a page or cursor it had already returned for " +
148
+ repeatedQueries.map(label).join(", ") +
149
+ ", so paging stopped there; no row is counted twice, but totals cover only the rows returned. " +
150
+ "Narrow start/end or use a wider bucket."
151
+ : ""),
152
+ filter: { modality: args.modality ?? null, model: args.model ?? null },
153
+ bucket: args.bucket,
154
+ start: args.start ?? null,
155
+ end: args.end ?? null,
156
+ total_cost_cents: total,
157
+ total_cost_dollars: `$${(total / 100).toFixed(2)}`,
158
+ by_modality: byModality,
159
+ truncated,
160
+ rows,
161
+ };
162
+ }
163
+ //# sourceMappingURL=usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../../src/tools/readonly/usage.ts"],"names":[],"mappings":"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"}
@@ -21,8 +21,9 @@ exports.observeVideoJob = observeVideoJob;
21
21
  // can be tens of MB and would flood the agent's context (T-104-20). The stdio
22
22
  // server runs as the user, so an agent-chosen path is the user's own
23
23
  // filesystem; it must be absolute (T-104-19). The write uses flag "wx", so an
24
- // existing file is never overwritten: this tool advertises readOnlyHint, and
25
- // clobbering a file the agent happened to name would contradict that.
24
+ // existing file is never overwritten. Because it creates files, the content
25
+ // tool advertises readOnlyHint: false and idempotentHint: false (WR-08); it
26
+ // stays in the read tier because it spends nothing and needs no confirmation.
26
27
  const promises_1 = require("node:fs/promises");
27
28
  const node_os_1 = require("node:os");
28
29
  const node_path_1 = require("node:path");
@@ -33,6 +34,7 @@ const define_js_1 = require("./define.js");
33
34
  /** Where deeprelay_videos_content saves when no output_path is given. */
34
35
  exports.VIDEO_TMP_DIR = (0, node_path_1.join)((0, node_os_1.tmpdir)(), "deeprelay-mcp");
35
36
  const FREE = "Free: a read-only call with no charge and no confirmation.";
37
+ const FREE_FILE_WRITE = "Free: no charge and no confirmation, but not read-only: it creates a file (and its directory) on this machine.";
36
38
  function isTracked(videoId) {
37
39
  return (0, budget_js_1.pendingVideoReservations)().some((r) => r.videoId === videoId);
38
40
  }
@@ -116,8 +118,8 @@ exports.videoReadTools = [
116
118
  description: "Download a completed video's MP4 to a file on this machine and return its path and size (the video is never " +
117
119
  "returned inline). Pass `output_path` as an absolute file path, or omit it to save under the system temp " +
118
120
  "directory. It never overwrites an existing file: if the path exists the call is refused and you must choose a " +
119
- "new path. Also settles this session's reservation for the job. Artifacts are kept for 24 hours after " +
120
- `completion. ${FREE}`,
121
+ "new path, and calling it twice with the default path is refused the second time. Also settles this " +
122
+ `session's reservation for the job. Artifacts are kept for 24 hours after completion. ${FREE_FILE_WRITE}`,
121
123
  inputSchema: {
122
124
  id: zod_1.z.string().min(1).describe("Video job id."),
123
125
  output_path: zod_1.z
@@ -128,6 +130,7 @@ exports.videoReadTools = [
128
130
  .describe("Absolute path to write the MP4 to. Default: <system temp>/deeprelay-mcp/<id>.mp4"),
129
131
  },
130
132
  context: "downloading a video",
133
+ writesLocalFiles: true,
131
134
  async call(args, config) {
132
135
  const api = new sdk_1.InferenceApi(config);
133
136
  const job = observeVideoJob(await api.getVideo({ id: args.id }));
@@ -1 +1 @@
1
- {"version":3,"file":"video-reads.js","sourceRoot":"","sources":["../../../src/tools/readonly/video-reads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video-reads.js","sourceRoot":"","sources":["../../../src/tools/readonly/video-reads.ts"],"names":[],"mappings":"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"}
@@ -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 catalog from-price (a FLOOR)
18
- // under the returned job id and does not settle anything itself. The video
19
- // reads (readonly/video-reads.ts) settle the reservation when they observe the
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 from the catalog's per-clip " +
111
- "from-price, or per second of the requested length; the quote is a floor, not a cap, and the real charge " +
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":"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"}
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,4BA6BC;AA5ED,6EAA6E;AAC7E,EAAE;AACF,uEAAuE;AACvE,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,uBAAuB;AACvB,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,2BAA2B;AAC3B,wCAA0F;AAE1F,yDAAiE;AAGjE,8EAA8E;AACjE,QAAA,iBAAiB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAchD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE5C,2CAA2C;AAC3C,SAAgB,yBAAyB;IACvC,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,IAAI,CAAC,KAAyB;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,QAAQ,CAC5B,MAAqB,EACrB,OAAe,EACf,MAAoB,IAAI,CAAC,GAAG;IAE5B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,SAAS,OAAO,EAAE,CAAC;IACjD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,GAAG,GAAG,EAAE,EAAE,CAAC;QAC/C,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,IAAI,kBAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACvE,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAe;QACxB,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,OAAO;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,qBAAqB,EAAE,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC;QACpD,sBAAsB,EAAE,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC;QACtD,gCAAgC,EAAE,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC;QAC1E,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;QACpC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC9C,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC5C,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC9C,wBAAwB,EACtB,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC;YAChC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC,mBAA8B,GAAG,gCAAoB,CAAC;KACrH,CAAC;IACF,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,yBAAiB,EAAE,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../../src/tools/spend/pricing.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,27 @@ function subscriptionError(status) {
38
38
  exports.CRYPTO_NOT_ENABLED = "Crypto deposits are not enabled for this account — this tool cannot be used here. Do not retry; use " +
39
39
  "deeprelay_subscription_checkout or the dashboard to add funds.";
40
40
  const CRYPTO_UNAVAILABLE = "Crypto deposit service is temporarily unavailable — try later.";
41
+ /**
42
+ * The agent-supplied redirect URLs, spelled out for the confirmation (WR-06).
43
+ * The server applies no allowlist to them, so the user must see where the
44
+ * browser will be sent before agreeing. Empty when none was given (the
45
+ * deeprelay defaults apply).
46
+ */
47
+ function redirectPhrase(urls) {
48
+ const given = urls.filter((u) => u.url !== undefined);
49
+ if (given.length === 0)
50
+ return "";
51
+ return ` ${given.map((u) => `${u.label} the browser is sent to ${u.url}`).join("; ")}.`;
52
+ }
53
+ function checkoutRedirects(args) {
54
+ return redirectPhrase([
55
+ { label: "After a completed checkout", url: args.success_url },
56
+ { label: "If checkout is abandoned", url: args.cancel_url },
57
+ ]);
58
+ }
59
+ function portalRedirects(args) {
60
+ return redirectPhrase([{ label: "When the user leaves the portal", url: args.return_url }]);
61
+ }
41
62
  function iso(d) {
42
63
  return d instanceof Date && !Number.isNaN(d.getTime()) ? d.toISOString() : null;
43
64
  }
@@ -52,12 +73,13 @@ const subscriptionCheckoutTool = (0, define_js_1.defineWriteTool)({
52
73
  cancel_url: httpsUrl("the browser returns to if checkout is abandoned").optional(),
53
74
  },
54
75
  destructive: false,
55
- question: (args) => `This will create a checkout link for plan ${args.plan_key ?? "default"} — confirm?`,
76
+ question: (args) => `This will create a checkout link for plan ${args.plan_key ?? "default"}.${checkoutRedirects(args)} Confirm?`,
56
77
  context: "creating a subscription checkout link",
57
78
  async quote(args) {
58
79
  return {
59
80
  summary: `Create a subscription checkout link for plan ${args.plan_key ?? "default"}. ` +
60
- "Nothing is charged until the user completes checkout in their browser.",
81
+ "Nothing is charged until the user completes checkout in their browser." +
82
+ checkoutRedirects(args),
61
83
  resolvedParams: { plan_key: args.plan_key, success_url: args.success_url, cancel_url: args.cancel_url },
62
84
  };
63
85
  },
@@ -86,11 +108,11 @@ const billingPortalTool = (0, define_js_1.defineWriteTool)({
86
108
  return_url: httpsUrl("the browser returns to when the user leaves the portal").optional(),
87
109
  },
88
110
  destructive: false,
89
- question: "This will create a billing portal link — confirm?",
111
+ question: (args) => `This will create a billing portal link.${portalRedirects(args)} Confirm?`,
90
112
  context: "creating a billing portal link",
91
113
  async quote(args) {
92
114
  return {
93
- summary: "Create a billing portal link. Nothing is charged by creating or opening it.",
115
+ summary: `Create a billing portal link. Nothing is charged by creating or opening it.${portalRedirects(args)}`,
94
116
  resolvedParams: { return_url: args.return_url },
95
117
  };
96
118
  },
@@ -1 +1 @@
1
- {"version":3,"file":"payment-links.js","sourceRoot":"","sources":["../../../src/tools/write/payment-links.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payment-links.js","sourceRoot":"","sources":["../../../src/tools/write/payment-links.ts"],"names":[],"mappings":"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"}
@@ -27,22 +27,40 @@ exports.spendingLimitClearTool = exports.spendingLimitUpdateTool = void 0;
27
27
  // omitted field is defaulted server-side, which could silently change
28
28
  // behaviour the confirmation never described (T-104-25).
29
29
  //
30
+ // Both tools read "no limit configured" only from the API's typed 404
31
+ // `no_spending_limit`; any other 404 is an error (WR-04).
32
+ //
30
33
  // The clear tool quotes against a live GET and re-reads at execute, the same
31
34
  // time-of-check/time-of-use discipline as the update. "No limit configured"
32
- // (the API's typed 404 `no_spending_limit`, on either the GET or the DELETE)
33
- // is a plain "nothing to clear" result, never an error: the account is
34
- // already in the state the user asked for.
35
+ // (the typed 404, on either the GET or the DELETE) is a plain "nothing to
36
+ // clear" result, never an error: the account is already in the state the user
37
+ // asked for.
35
38
  const sdk_1 = require("@deeprelay/sdk");
36
39
  const zod_1 = require("zod");
37
40
  const errors_js_1 = require("../../errors.js");
38
41
  const define_js_1 = require("./define.js");
39
- /** Run the limit GET; a 404 means "no limit configured" and becomes undefined. */
40
- async function orNoLimit(read) {
42
+ /** The API's typed code for "this org has no spending limit", on GET and DELETE alike. */
43
+ const NO_SPENDING_LIMIT = "no_spending_limit";
44
+ /** A 404 carrying the typed `no_spending_limit` code; any other 404 is a real error. */
45
+ async function isNoSpendingLimit(err) {
46
+ if ((0, errors_js_1.httpStatusOf)(err) !== 404) {
47
+ return false;
48
+ }
49
+ return (await (0, errors_js_1.readErrorEnvelope)(err)).code === NO_SPENDING_LIMIT;
50
+ }
51
+ /**
52
+ * The limit GET for both tools: only the API's typed `no_spending_limit` 404
53
+ * means "no limit configured" (undefined). Any other 404 (a proxy, a missing
54
+ * route, a base-URL path mistake) is a real error. For the update tool this is
55
+ * what keeps lower-only from failing open (WR-04): an untyped 404 read as "no
56
+ * limit" would let the PUT set a value above a limit that does exist.
57
+ */
58
+ async function orTypedNoLimit(read) {
41
59
  try {
42
60
  return await read();
43
61
  }
44
62
  catch (err) {
45
- if ((0, errors_js_1.httpStatusOf)(err) === 404) {
63
+ if (await isNoSpendingLimit(err)) {
46
64
  return undefined;
47
65
  }
48
66
  throw err;
@@ -84,7 +102,7 @@ exports.spendingLimitUpdateTool = (0, define_js_1.defineWriteTool)({
84
102
  question: (args) => `Lower the monthly spending limit to ${usd(args.monthly_limit_dollars)}?`,
85
103
  context: "updating the spending limit",
86
104
  async quote(args, config) {
87
- const current = await orNoLimit(() => new sdk_1.BillingApi(config).getSpendingLimit());
105
+ const current = await orTypedNoLimit(() => new sdk_1.BillingApi(config).getSpendingLimit());
88
106
  const refusal = notADecrease(current, args.monthly_limit_dollars, args.daily_limit_dollars);
89
107
  if (refusal !== undefined) {
90
108
  throw new errors_js_1.QuoteUnavailableError(`Refused: ${refusal}. ${LOWER_ONLY}`);
@@ -111,7 +129,7 @@ exports.spendingLimitUpdateTool = (0, define_js_1.defineWriteTool)({
111
129
  };
112
130
  },
113
131
  async execute(p, config) {
114
- const fresh = await orNoLimit(() => new sdk_1.BillingApi(config).getSpendingLimit());
132
+ const fresh = await orTypedNoLimit(() => new sdk_1.BillingApi(config).getSpendingLimit());
115
133
  if (notADecrease(fresh, p.monthly_limit_dollars, p.daily_limit_dollars) !== undefined) {
116
134
  throw new errors_js_1.QuoteUnavailableError("Refused at execution: the limit changed since the quote. The confirmation has been discarded.");
117
135
  }
@@ -137,31 +155,6 @@ exports.spendingLimitUpdateTool = (0, define_js_1.defineWriteTool)({
137
155
  };
138
156
  },
139
157
  });
140
- /** The API's typed code for "this org has no spending limit", on GET and DELETE alike. */
141
- const NO_SPENDING_LIMIT = "no_spending_limit";
142
- /** A 404 carrying the typed `no_spending_limit` code; any other 404 is a real error. */
143
- async function isNoSpendingLimit(err) {
144
- if ((0, errors_js_1.httpStatusOf)(err) !== 404) {
145
- return false;
146
- }
147
- return (await (0, errors_js_1.readErrorEnvelope)(err)).code === NO_SPENDING_LIMIT;
148
- }
149
- /**
150
- * Clear-path read: only the API's typed `no_spending_limit` 404 means "nothing
151
- * to clear". Any other 404 (a proxy, a missing route) is a real error, so the
152
- * agent is never told "no limit is configured" when one may exist.
153
- */
154
- async function orTypedNoLimit(read) {
155
- try {
156
- return await read();
157
- }
158
- catch (err) {
159
- if (await isNoSpendingLimit(err)) {
160
- return undefined;
161
- }
162
- throw err;
163
- }
164
- }
165
158
  const NOTHING_TO_CLEAR = {
166
159
  lead: "No spending limit is configured on this account, so there is nothing to clear. Nothing was changed.",
167
160
  payload: { cleared: false, reason: NO_SPENDING_LIMIT },
@@ -1 +1 @@
1
- {"version":3,"file":"spending-limit.js","sourceRoot":"","sources":["../../../src/tools/write/spending-limit.ts"],"names":[],"mappings":";;;AAAA,0EAA0E;AAC1E,EAAE;AACF,0EAA0E;AAC1E,8EAA8E;AAC9E,iEAAiE;AACjE,sEAAsE;AACtE,EAAE;AACF,4EAA4E;AAC5E,oCAAoC;AACpC,EAAE;AACF,+EAA+E;AAC/E,uBAAuB;AACvB,EAAE;AACF,+EAA+E;AAC/E,2DAA2D;AAC3D,2EAA2E;AAC3E,sEAAsE;AACtE,4EAA4E;AAC5E,2EAA2E;AAC3E,mCAAmC;AACnC,EAAE;AACF,wEAAwE;AACxE,uEAAuE;AACvE,sEAAsE;AACtE,yDAAyD;AACzD,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,uEAAuE;AACvE,2CAA2C;AAC3C,wCAAiG;AACjG,6BAAwB;AAExB,+CAAyF;AACzF,2CAAgE;AAYhE,kFAAkF;AAClF,KAAK,UAAU,SAAS,CAAC,IAAkC;IACzD,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,IAAA,wBAAY,EAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,GAAG,CAAC,CAAS;IACpB,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5B,CAAC;AAED,yFAAyF;AACzF,SAAS,YAAY,CACnB,OAAkC,EAClC,OAAe,EACf,KAAyB;IAEzB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC3C,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,uCAAuC,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,cAAc,CAAC;IAC9G,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,IAAI,KAAK,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QACzG,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,uCAAuC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,YAAY,CAAC;IACxG,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,GAAG,iEAAiE,CAAC;AAExE,QAAA,uBAAuB,GAAG,IAAA,2BAAe,EAAC;IACrD,IAAI,EAAE,iCAAiC;IACvC,KAAK,EAAE,oCAAoC;IAC3C,WAAW,EACT,iHAAiH;QACjH,6GAA6G;QAC7G,8GAA8G;QAC9G,6EAA6E;IAC/E,WAAW,EAAE;QACX,qBAAqB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;QACxH,mBAAmB,EAAE,OAAC;aACnB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,EAAE;aACV,QAAQ,CAAC,2EAA2E,CAAC;KACzF;IACD,WAAW,EAAE,KAAK;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,uCAAuC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG;IAC7F,OAAO,EAAE,6BAA6B;IACtC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM;QACtB,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,gBAAU,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC5F,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,iCAAqB,CAAC,YAAY,OAAO,KAAK,UAAU,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,WAAW,GACf,OAAO,KAAK,SAAS;YACnB,CAAC,CAAC,mCAAmC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,6BAA6B;YACjG,CAAC,CAAC,yCAAyC,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACxH,MAAM,SAAS,GACb,IAAI,CAAC,mBAAmB,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,OAAO,EAAE,iBAAiB,KAAK,SAAS;gBACxC,CAAC,CAAC,8BAA8B,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE;gBAC/D,CAAC,CAAC,oCAAoC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACjH,MAAM,IAAI,GAAsB;YAC9B,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,gBAAgB,EAAE,OAAO,EAAE,mBAAmB;YAC9C,cAAc,EAAE,OAAO,EAAE,iBAAiB;YAC1C,WAAW,EAAE,OAAO,EAAE,WAAW;YACjC,oBAAoB,EAAE,OAAO,EAAE,kBAAkB;SAClD,CAAC;QACF,OAAO;YACL,OAAO,EAAE,GAAG,WAAW,GAAG,SAAS,wDAAwD;YAC3F,cAAc,EAAE,IAAI;SACrB,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM;QACrB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,gBAAU,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC/E,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC,mBAAmB,CAAC,KAAK,SAAS,EAAE,CAAC;YACtF,MAAM,IAAI,iCAAqB,CAC7B,+FAA+F,CAChG,CAAC;QACJ,CAAC;QACD,6EAA6E;QAC7E,MAAM,OAAO,GAA+B;YAC1C,mBAAmB,EAAE,CAAC,CAAC,qBAAqB;YAC5C,iBAAiB,EAAE,CAAC,CAAC,mBAAmB,IAAI,KAAK,EAAE,iBAAiB,IAAI,CAAC,CAAC,cAAc;YACxF,WAAW,EAAE,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC,WAAW,CAA8C;YAC/F,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,IAAI,CAAC,CAAC,oBAAoB;SACxE,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,IAAI,gBAAU,CAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,EAAE,0BAA0B,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1G,OAAO;YACL,IAAI,EACF,yBAAyB,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ;gBACjE,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC;YACjG,OAAO,EAAE;gBACP,8BAA8B,EAAE,KAAK,EAAE,mBAAmB,IAAI,IAAI;gBAClE,qBAAqB,EAAE,OAAO,CAAC,mBAAmB;gBAClD,mBAAmB,EAAE,OAAO,CAAC,iBAAiB,IAAI,IAAI;gBACtD,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,2BAA2B,EAAE,OAAO,CAAC,wBAAwB;gBAC7D,YAAY,EAAE,OAAO,CAAC,WAAW;aAClC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,0FAA0F;AAC1F,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C,wFAAwF;AACxF,KAAK,UAAU,iBAAiB,CAAC,GAAY;IAC3C,IAAI,IAAA,wBAAY,EAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,MAAM,IAAA,6BAAiB,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,cAAc,CAAC,IAAkC;IAC9D,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,MAAM,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE,qGAAqG;IAC3G,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE;CACvD,CAAC;AAQF,SAAS,WAAW,CAAC,OAAe,EAAE,KAAyB;IAC7D,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,wBAAwB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;AAC3H,CAAC;AAEY,QAAA,sBAAsB,GAAG,IAAA,2BAAe,EAAC;IACpD,IAAI,EAAE,gCAAgC;IACtC,KAAK,EAAE,oCAAoC;IAC3C,WAAW,EACT,6GAA6G;QAC7G,2GAA2G;QAC3G,wFAAwF;QACxF,mDAAmD;IACrD,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,iGAAiG;IAC3G,OAAO,EAAE,6BAA6B;IACtC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM;QACvB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,gBAAU,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACtF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,4BAAgB,CAAC,gBAAgB,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,IAAI,GAA2B;YACnC,gBAAgB,EAAE,OAAO,CAAC,mBAAmB;YAC7C,cAAc,EAAE,OAAO,CAAC,iBAAiB;SAC1C,CAAC;QACF,OAAO;YACL,OAAO,EACL,oBAAoB,WAAW,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,iBAAiB,CAAC,cAAc;gBACrG,wDAAwD;YAC1D,cAAc,EAAE,IAAI;SACrB,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM;QACrB,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,gBAAU,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACpF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,4BAAgB,CAAC,gBAAgB,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,KAAK,CAAC,mBAAmB,KAAK,CAAC,CAAC,gBAAgB,IAAI,KAAK,CAAC,iBAAiB,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC;YACrG,MAAM,IAAI,iCAAqB,CAC7B,+FAA+F,CAChG,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,gBAAU,CAAC,MAAM,CAAC,CAAC,mBAAmB,EAAE,CAAC;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,8DAA8D;YAC9D,IAAI,MAAM,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,4BAAgB,CAAC,gBAAgB,CAAC,CAAC;YAC/C,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,OAAO;YACL,IAAI,EACF,wCAAwC,WAAW,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI;gBAC7F,uDAAuD;YACzD,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE;oBACR,qBAAqB,EAAE,CAAC,CAAC,gBAAgB;oBACzC,mBAAmB,EAAE,CAAC,CAAC,cAAc,IAAI,IAAI;iBAC9C;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"spending-limit.js","sourceRoot":"","sources":["../../../src/tools/write/spending-limit.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deeprelay/mcp",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "MCP server for the deeprelay serverless inference API",
5
5
  "author": "deeprelay",
6
6
  "homepage": "https://deeprelay.ai/docs",
@@ -29,7 +29,7 @@
29
29
  "smoke:inspector": "bash scripts/inspector-smoke.sh"
30
30
  },
31
31
  "dependencies": {
32
- "@deeprelay/sdk": "0.2.0",
32
+ "@deeprelay/sdk": "0.2.1",
33
33
  "@modelcontextprotocol/sdk": "1.30.0",
34
34
  "zod": "4.4.3"
35
35
  },