@claudexor/daemon 4.0.1 → 4.1.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.
@@ -0,0 +1,16 @@
1
+ import { ModelOperationReceipt, type ModelOperationParams, type ModelDispatch, type ModelPayloadRef } from "@claudexor/schema";
2
+ import type { ModelOperationDependencies, ModelPayloadStore } from "./model-operations.js";
3
+ import type { RunContext } from "./server.js";
4
+ export type Evidence = Omit<ModelOperationReceipt, "lifecycle">;
5
+ export declare const emptyDispatch: () => ModelDispatch;
6
+ export declare function operationError(code: string, message: string, status?: number): Error;
7
+ export declare function executeModelOperation(params: ModelOperationParams, ctx: RunContext, deps: ModelOperationDependencies, update: (evidence: Evidence) => void): Promise<ModelOperationReceipt>;
8
+ export declare function readModelPayload<T>(resources: ModelPayloadStore, ref: ModelPayloadRef, schema: {
9
+ safeParse(value: unknown): {
10
+ success: true;
11
+ data: T;
12
+ } | {
13
+ success: false;
14
+ };
15
+ }, name: string): T;
16
+ //# sourceMappingURL=model-operation-execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-operation-execution.d.ts","sourceRoot":"","sources":["../src/model-operation-execution.ts"],"names":[],"mappings":"AACA,OAAO,EAML,qBAAqB,EAErB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;AAEhE,eAAO,MAAM,aAAa,QAAO,aAI/B,CAAC;AASH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAM,GAAG,KAAK,CAEjF;AAqBD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,oBAAoB,EAC5B,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,0BAA0B,EAChC,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAwHhC;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,SAAS,EAAE,iBAAiB,EAC5B,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE;IAAE,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,KAAK,CAAA;KAAE,CAAA;CAAE,EACtF,IAAI,EAAE,MAAM,GACX,CAAC,CAmBH"}
@@ -0,0 +1,207 @@
1
+ import { ControlProblem, ImageCallRequest, ImageCallResult, ModelCallRequest, ModelCallResult, ModelOperationReceipt, ModelUsage, } from "@claudexor/schema";
2
+ import { errorCode, redactSecrets } from "@claudexor/util";
3
+ import { commandStoreForId } from "./command-authority.js";
4
+ const RESPONSE_RETENTION_MS = 30 * 24 * 60 * 60 * 1000;
5
+ export const emptyDispatch = () => ({
6
+ state: "not_started",
7
+ startedAt: null,
8
+ route: null,
9
+ });
10
+ const emptyEvidence = () => ({
11
+ dispatch: emptyDispatch(),
12
+ response: { state: "absent" },
13
+ usage: ModelUsage.parse({}),
14
+ cost: null,
15
+ problem: null,
16
+ });
17
+ export function operationError(code, message, status = 409) {
18
+ return Object.assign(new Error(message), { code, status, retryable: false });
19
+ }
20
+ function problemFrom(error) {
21
+ const candidate = error && typeof error === "object" ? error : {};
22
+ const provided = ControlProblem.safeParse(candidate.problem);
23
+ if (provided.success)
24
+ return provided.data;
25
+ const context = {};
26
+ for (const key of ["resetsAt", "retryAfterMs", "httpStatus", "requestId"]) {
27
+ if (typeof candidate[key] === "string" || typeof candidate[key] === "number") {
28
+ context[key] =
29
+ typeof candidate[key] === "string" ? redactSecrets(candidate[key]) : candidate[key];
30
+ }
31
+ }
32
+ return ControlProblem.parse({
33
+ code: errorCode(error) || "model_operation_failed",
34
+ message: redactSecrets(error instanceof Error ? error.message : String(error)),
35
+ retryable: candidate.retryable === true,
36
+ context,
37
+ });
38
+ }
39
+ export async function executeModelOperation(params, ctx, deps, update) {
40
+ const now = () => (deps.now ?? (() => new Date()))();
41
+ let evidence = emptyEvidence();
42
+ let dispatchAttempted = false;
43
+ let barrierProblem = null;
44
+ try {
45
+ const onDispatch = async (route) => {
46
+ ctx.signal.throwIfAborted();
47
+ if (dispatchAttempted) {
48
+ throw operationError("duplicate_model_dispatch", "A model operation may send inference only once");
49
+ }
50
+ dispatchAttempted = true;
51
+ const dispatch = {
52
+ state: "started",
53
+ startedAt: now().toISOString(),
54
+ route,
55
+ };
56
+ update({ ...evidence, dispatch });
57
+ // The adapter cannot POST until this callback returns. A rejected
58
+ // journal write therefore never becomes evidence of a response.
59
+ evidence.dispatch = dispatch;
60
+ try {
61
+ await commandStoreForId(deps.commands, ctx.jobId).flushed();
62
+ }
63
+ catch (error) {
64
+ barrierProblem = ControlProblem.parse({
65
+ code: "store_flush_unavailable",
66
+ retryable: true,
67
+ message: redactSecrets(error instanceof Error ? error.message : String(error)),
68
+ });
69
+ evidence = {
70
+ ...evidence,
71
+ dispatch: { ...dispatch, state: "not_started" },
72
+ problem: barrierProblem,
73
+ };
74
+ update(evidence);
75
+ throw Object.assign(new Error(barrierProblem.message), { problem: barrierProblem });
76
+ }
77
+ if (ctx.signal.aborted) {
78
+ // The adapter is still waiting inside this callback: no POST occurred.
79
+ evidence.dispatch = { ...dispatch, state: "not_started" };
80
+ update(evidence);
81
+ ctx.signal.throwIfAborted();
82
+ }
83
+ };
84
+ const result = await invokeModelOperation(params, deps, ctx.signal, onDispatch, ctx.jobId);
85
+ // An adapter may translate the callback rejection into its normal failed
86
+ // response. The durable no-dispatch proof still owns this failure.
87
+ if (barrierProblem)
88
+ return ModelOperationReceipt.parse({
89
+ lifecycle: "failed",
90
+ ...evidence,
91
+ problem: barrierProblem,
92
+ });
93
+ evidence.usage = result.usage;
94
+ evidence.cost = result.cost;
95
+ evidence.problem = result.problem;
96
+ const notDelivered = result.outcome === "failed" &&
97
+ result.problem?.code === "transport_not_delivered" &&
98
+ result.problem.context.generationStarted === false &&
99
+ result.problem.context.requestDelivery?.state ===
100
+ "not_delivered";
101
+ if (evidence.dispatch.state === "started" && !notDelivered) {
102
+ evidence.dispatch = {
103
+ ...evidence.dispatch,
104
+ state: result.outcome === "unknown" ? "unknown" : "response_received",
105
+ route: result.route,
106
+ };
107
+ }
108
+ // Preserve a useful response even when Cancel won before the daemon's
109
+ // durable terminal barrier. Provider completion and caller cancellation
110
+ // are different facts; a later cancel cannot rewrite a committed receipt.
111
+ const lifecycle = ctx.signal.aborted
112
+ ? "cancelled"
113
+ : "images" in result
114
+ ? result.outcome === "completed" && result.images.length > 0 && result.problem === null
115
+ ? "succeeded"
116
+ : result.outcome === "unknown"
117
+ ? "interrupted"
118
+ : "failed"
119
+ : result.problem?.code === "response_rejected" && result.message === null
120
+ ? "failed"
121
+ : result.outcome === "completed"
122
+ ? "succeeded"
123
+ : result.outcome === "unknown" || result.outcome === "incomplete"
124
+ ? "interrupted"
125
+ : "failed";
126
+ // Freeze the negotiated shape BEFORE publication; GET must keep its digest-bound bytes.
127
+ if ("effortResolution" in result && params.captureEffortEvidence !== true)
128
+ delete result.effortResolution;
129
+ const ref = deps.resources().publishModel(Buffer.from(JSON.stringify(result), "utf8"));
130
+ const ready = now();
131
+ evidence.response = {
132
+ state: "ready",
133
+ ref,
134
+ readyAt: ready.toISOString(),
135
+ expiresAt: new Date(ready.getTime() + RESPONSE_RETENTION_MS).toISOString(),
136
+ };
137
+ // Refine only a complete terminal proof. The earlier attempted-send
138
+ // stamp/route survive; a crash or publication failure still reads unknown.
139
+ if (notDelivered && evidence.dispatch.state === "started") {
140
+ evidence.dispatch = { ...evidence.dispatch, state: "not_started" };
141
+ }
142
+ // DaemonServer's existing terminal update atomically publishes this
143
+ // compact receipt. Bodies never enter JobRecord.params/result.
144
+ return ModelOperationReceipt.parse({ lifecycle, ...evidence });
145
+ }
146
+ catch (error) {
147
+ const sent = evidence.dispatch.state !== "not_started";
148
+ evidence.problem = barrierProblem ?? problemFrom(error);
149
+ if (sent && evidence.dispatch.state !== "response_received") {
150
+ evidence.dispatch = { ...evidence.dispatch, state: "unknown" };
151
+ }
152
+ return ModelOperationReceipt.parse({
153
+ lifecycle: ctx.signal.aborted ? "cancelled" : sent ? "interrupted" : "failed",
154
+ ...evidence,
155
+ });
156
+ }
157
+ }
158
+ export function readModelPayload(resources, ref, schema, name) {
159
+ // Preserve resource/digest/I/O failures; they are not invalid caller JSON.
160
+ const bytes = resources.readModel(ref);
161
+ let parsed;
162
+ try {
163
+ const text = new TextDecoder("utf-8", { fatal: true }).decode(bytes);
164
+ parsed = schema.safeParse(JSON.parse(text));
165
+ }
166
+ catch (error) {
167
+ if (!(error instanceof SyntaxError) && errorCode(error) !== "ERR_ENCODING_INVALID_ENCODED_DATA")
168
+ throw error;
169
+ }
170
+ if (!parsed?.success) {
171
+ throw operationError("model_request_invalid", `The uploaded model request must be valid UTF-8 JSON matching ${name}.`, 400);
172
+ }
173
+ return parsed.data;
174
+ }
175
+ /** Only request parsing and adapter invocation differ; dispatch, publication and
176
+ * terminal custody have one owner for both payload kinds. */
177
+ async function invokeModelOperation(params, deps, signal, onDispatch, operationId) {
178
+ if (params.requestKind === "image") {
179
+ if (params.request.sizeBytes > 144 * 1024 * 1024)
180
+ throw operationError("image_request_too_large", "The image request exceeds 144 MiB", 413);
181
+ const request = readModelPayload(deps.resources(), params.request, ImageCallRequest, "ImageCallRequest");
182
+ signal.throwIfAborted();
183
+ if (!deps.resolveImage)
184
+ throw operationError("model_source_unavailable", "No image-capable model source", 404);
185
+ const { adapter, profile } = await deps.resolveImage(request, signal);
186
+ if (!adapter.image)
187
+ throw operationError("model_source_unavailable", "The selected model source declares no image operations", 404);
188
+ signal.throwIfAborted();
189
+ return ImageCallResult.parse(await adapter.image.invoke(request, {
190
+ profile,
191
+ signal,
192
+ onDispatch,
193
+ imageTurnId: `img-${operationId}`,
194
+ }));
195
+ }
196
+ const request = readModelPayload(deps.resources(), params.request, ModelCallRequest, "ModelCallRequest");
197
+ signal.throwIfAborted();
198
+ const { adapter, profile } = await deps.resolve(request, signal);
199
+ signal.throwIfAborted();
200
+ return ModelCallResult.parse(await adapter.invoke(request, {
201
+ profile,
202
+ signal,
203
+ onDispatch,
204
+ ...(params.captureFailureEvidence ? { captureFailureEvidence: true } : {}),
205
+ }));
206
+ }
207
+ //# sourceMappingURL=model-operation-execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-operation-execution.js","sourceRoot":"","sources":["../src/model-operation-execution.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ModelAdapter } from "@claudexor/core";
2
- import { ControlModelOperationDetail, ModelCallRequest, ModelOperationParams, ModelOperationReceipt, type CancelReasonCode, type CredentialProfile, type ModelPayloadRef } from "@claudexor/schema";
2
+ import { ControlModelOperationDetail, ImageCallRequest, ModelCallRequest, ModelOperationParams, ModelOperationReceipt, type CancelReasonCode, type CredentialProfile, type ModelOperationRequestKind, type ModelPayloadRef } from "@claudexor/schema";
3
3
  import { type CommandAuthority } from "./command-authority.js";
4
4
  import type { JobRecord, RunContext } from "./server.js";
5
5
  import type { ModelResourceQueries } from "./store/command-queries.js";
@@ -30,6 +30,12 @@ interface ModelOperationServices {
30
30
  adapter: ModelAdapter;
31
31
  profile: CredentialProfile;
32
32
  }>;
33
+ /** Image selection: pin/pool admission only, no text catalog read. Absent
34
+ * means this engine composition has no image sources. */
35
+ resolveImage?(request: ImageCallRequest, signal: AbortSignal): Promise<{
36
+ adapter: ModelAdapter;
37
+ profile: CredentialProfile;
38
+ }>;
33
39
  now?: () => Date;
34
40
  warn?: (message: string) => void;
35
41
  }
@@ -47,7 +53,7 @@ export declare class ModelOperations {
47
53
  private closed;
48
54
  private readonly startedAt;
49
55
  constructor(deps: ModelOperationDependencies);
50
- create(request: ModelPayloadRef, idempotencyKey: string, captureFailureEvidence?: boolean, captureEffortEvidence?: boolean): Promise<ControlModelOperationDetail>;
56
+ create(request: ModelPayloadRef, idempotencyKey: string, captureFailureEvidence?: boolean, captureEffortEvidence?: boolean, requestKind?: ModelOperationRequestKind): Promise<ControlModelOperationDetail>;
51
57
  execute(raw: unknown, ctx: RunContext): Promise<ModelOperationReceipt>;
52
58
  inspect(id: string): ControlModelOperationDetail;
53
59
  readResult(id: string): {
@@ -67,6 +73,7 @@ export declare class ModelOperations {
67
73
  close(): void;
68
74
  private now;
69
75
  private readRequest;
76
+ private readImageRequest;
70
77
  private record;
71
78
  private evidence;
72
79
  private update;
@@ -1 +1 @@
1
- {"version":3,"file":"model-operations.d.ts","sourceRoot":"","sources":["../src/model-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-operations.d.ts","sourceRoot":"","sources":["../src/model-operations.ts"],"names":[],"mappings":"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"}
@@ -1,39 +1,9 @@
1
- import { ControlModelOperationDetail, ControlProblem, ModelCallRequest, ModelCallResult, ModelOperationParams, ModelOperationReceipt, ModelUsage, isTerminalLifecycle, } from "@claudexor/schema";
2
- import { errorCode, redactSecrets } from "@claudexor/util";
1
+ import { ControlModelOperationDetail, ControlProblem, ImageCallRequest, ModelCallRequest, ModelOperationParams, ModelOperationReceipt, ModelUsage, isTerminalLifecycle, } from "@claudexor/schema";
2
+ import { redactSecrets } from "@claudexor/util";
3
3
  import { commandStoreForId } from "./command-authority.js";
4
4
  import { findAcceptedCommand } from "./command-rpc.js";
5
+ import { emptyDispatch, operationError, readModelPayload, executeModelOperation, } from "./model-operation-execution.js";
5
6
  export const MODEL_OPERATION_ID = "model.operation.create";
6
- const RESPONSE_RETENTION_MS = 30 * 24 * 60 * 60 * 1000;
7
- const emptyDispatch = () => ({ state: "not_started", startedAt: null, route: null });
8
- const emptyEvidence = () => ({
9
- dispatch: emptyDispatch(),
10
- response: { state: "absent" },
11
- usage: ModelUsage.parse({}),
12
- cost: null,
13
- problem: null,
14
- });
15
- function operationError(code, message, status = 409) {
16
- return Object.assign(new Error(message), { code, status, retryable: false });
17
- }
18
- function problemFrom(error) {
19
- const candidate = error && typeof error === "object" ? error : {};
20
- const provided = ControlProblem.safeParse(candidate.problem);
21
- if (provided.success)
22
- return provided.data;
23
- const context = {};
24
- for (const key of ["resetsAt", "retryAfterMs", "httpStatus", "requestId"]) {
25
- if (typeof candidate[key] === "string" || typeof candidate[key] === "number") {
26
- context[key] =
27
- typeof candidate[key] === "string" ? redactSecrets(candidate[key]) : candidate[key];
28
- }
29
- }
30
- return ControlProblem.parse({
31
- code: errorCode(error) || "model_operation_failed",
32
- message: redactSecrets(error instanceof Error ? error.message : String(error)),
33
- retryable: candidate.retryable === true,
34
- context,
35
- });
36
- }
37
7
  /** A model command reuses daemon queue/cancel/command authority. This owns only
38
8
  * the generation's payload custody; it has no scheduler or conversation cache. */
39
9
  export class ModelOperations {
@@ -45,13 +15,18 @@ export class ModelOperations {
45
15
  this.deps = deps;
46
16
  this.startedAt = this.now().getTime();
47
17
  }
48
- async create(request, idempotencyKey, captureFailureEvidence, captureEffortEvidence) {
18
+ async create(request, idempotencyKey, captureFailureEvidence, captureEffortEvidence, requestKind) {
49
19
  if (this.closed)
50
20
  throw operationError("daemon_stopping", "Model operations are stopping", 503);
21
+ if (requestKind !== undefined && (captureFailureEvidence || captureEffortEvidence)) {
22
+ // Image results carry no SSE/effort evidence; refusing is honest, ignoring is not.
23
+ throw operationError("unsupported_parameter", "requestKind=image cannot be combined with captureFailureEvidence or captureEffortEvidence", 400);
24
+ }
51
25
  // Omission and false retain the historical command and idempotency bytes.
52
26
  const capture = {
53
27
  ...(captureFailureEvidence === true ? { captureFailureEvidence: true } : {}),
54
28
  ...(captureEffortEvidence === true ? { captureEffortEvidence: true } : {}),
29
+ ...(requestKind !== undefined ? { requestKind } : {}),
55
30
  };
56
31
  const envelope = {
57
32
  request: ModelOperationParams.parse({ kind: "model", request, ...capture }),
@@ -72,7 +47,10 @@ export class ModelOperations {
72
47
  // Validate only a NEW request. A settled replay's input has been released.
73
48
  // model_request_invalid from this boundary proves no command was accepted:
74
49
  // the idempotency lookup above succeeded and validation precedes enqueue.
75
- this.readRequest(request);
50
+ if (requestKind === "image")
51
+ this.readImageRequest(request);
52
+ else
53
+ this.readRequest(request);
76
54
  id = (await this.deps.enqueue(envelope)).id;
77
55
  }
78
56
  // Re-uploaded copies can lose either the early lookup or the enqueue race.
@@ -83,125 +61,7 @@ export class ModelOperations {
83
61
  return this.inspect(id);
84
62
  }
85
63
  async execute(raw, ctx) {
86
- const params = ModelOperationParams.parse(raw);
87
- let evidence = emptyEvidence();
88
- let dispatchAttempted = false;
89
- let barrierProblem = null;
90
- try {
91
- const request = this.readRequest(params.request);
92
- ctx.signal.throwIfAborted();
93
- const { adapter, profile } = await this.deps.resolve(request, ctx.signal);
94
- ctx.signal.throwIfAborted();
95
- const result = ModelCallResult.parse(await adapter.invoke(request, {
96
- profile,
97
- signal: ctx.signal,
98
- ...(params.captureFailureEvidence ? { captureFailureEvidence: true } : {}),
99
- onDispatch: async (route) => {
100
- ctx.signal.throwIfAborted();
101
- if (dispatchAttempted) {
102
- throw operationError("duplicate_model_dispatch", "A model operation may send inference only once");
103
- }
104
- dispatchAttempted = true;
105
- const dispatch = {
106
- state: "started",
107
- startedAt: this.now().toISOString(),
108
- route,
109
- };
110
- this.update(ctx.jobId, { ...evidence, dispatch });
111
- // The adapter cannot POST until this callback returns. A rejected
112
- // journal write therefore never becomes evidence of a response.
113
- evidence.dispatch = dispatch;
114
- try {
115
- await commandStoreForId(this.deps.commands, ctx.jobId).flushed();
116
- }
117
- catch (error) {
118
- barrierProblem = ControlProblem.parse({
119
- code: "store_flush_unavailable",
120
- retryable: true,
121
- message: redactSecrets(error instanceof Error ? error.message : String(error)),
122
- });
123
- evidence = {
124
- ...evidence,
125
- dispatch: { ...dispatch, state: "not_started" },
126
- problem: barrierProblem,
127
- };
128
- this.update(ctx.jobId, evidence);
129
- throw Object.assign(new Error(barrierProblem.message), { problem: barrierProblem });
130
- }
131
- if (ctx.signal.aborted) {
132
- // The adapter is still waiting inside this callback: no POST occurred.
133
- evidence.dispatch = { ...dispatch, state: "not_started" };
134
- this.update(ctx.jobId, evidence);
135
- ctx.signal.throwIfAborted();
136
- }
137
- },
138
- }));
139
- // An adapter may translate the callback rejection into its normal failed
140
- // response. The durable no-dispatch proof still owns this failure.
141
- if (barrierProblem)
142
- return ModelOperationReceipt.parse({
143
- lifecycle: "failed",
144
- ...evidence,
145
- problem: barrierProblem,
146
- });
147
- evidence.usage = result.usage;
148
- evidence.cost = result.cost;
149
- evidence.problem = result.problem;
150
- const notDelivered = result.outcome === "failed" &&
151
- result.problem?.code === "transport_not_delivered" &&
152
- result.problem.context.generationStarted === false &&
153
- result.problem.context.requestDelivery?.state ===
154
- "not_delivered";
155
- if (evidence.dispatch.state === "started" && !notDelivered) {
156
- evidence.dispatch = {
157
- ...evidence.dispatch,
158
- state: result.outcome === "unknown" ? "unknown" : "response_received",
159
- route: result.route,
160
- };
161
- }
162
- // Preserve a useful response even when Cancel won before the daemon's
163
- // durable terminal barrier. Provider completion and caller cancellation
164
- // are different facts; a later cancel cannot rewrite a committed receipt.
165
- const lifecycle = ctx.signal.aborted
166
- ? "cancelled"
167
- : result.problem?.code === "response_rejected" && result.message === null
168
- ? "failed"
169
- : result.outcome === "completed"
170
- ? "succeeded"
171
- : result.outcome === "unknown" || result.outcome === "incomplete"
172
- ? "interrupted"
173
- : "failed";
174
- // Freeze the negotiated shape BEFORE publication; GET must keep its digest-bound bytes.
175
- if (params.captureEffortEvidence !== true)
176
- delete result.effortResolution;
177
- const ref = this.deps.resources().publishModel(Buffer.from(JSON.stringify(result), "utf8"));
178
- const ready = this.now();
179
- evidence.response = {
180
- state: "ready",
181
- ref,
182
- readyAt: ready.toISOString(),
183
- expiresAt: new Date(ready.getTime() + RESPONSE_RETENTION_MS).toISOString(),
184
- };
185
- // Refine only a complete terminal proof. The earlier attempted-send
186
- // stamp/route survive; a crash or publication failure still reads unknown.
187
- if (notDelivered && evidence.dispatch.state === "started") {
188
- evidence.dispatch = { ...evidence.dispatch, state: "not_started" };
189
- }
190
- // DaemonServer's existing terminal update atomically publishes this
191
- // compact receipt. Bodies never enter JobRecord.params/result.
192
- return ModelOperationReceipt.parse({ lifecycle, ...evidence });
193
- }
194
- catch (error) {
195
- const sent = evidence.dispatch.state !== "not_started";
196
- evidence.problem = barrierProblem ?? problemFrom(error);
197
- if (sent && evidence.dispatch.state !== "response_received") {
198
- evidence.dispatch = { ...evidence.dispatch, state: "unknown" };
199
- }
200
- return ModelOperationReceipt.parse({
201
- lifecycle: ctx.signal.aborted ? "cancelled" : sent ? "interrupted" : "failed",
202
- ...evidence,
203
- });
204
- }
64
+ return executeModelOperation(ModelOperationParams.parse(raw), ctx, this.deps, (evidence) => this.update(ctx.jobId, evidence));
205
65
  }
206
66
  inspect(id) {
207
67
  const record = this.record(id);
@@ -330,22 +190,12 @@ export class ModelOperations {
330
190
  return (this.deps.now ?? (() => new Date()))();
331
191
  }
332
192
  readRequest(ref) {
333
- // Preserve resource/digest/I/O failures; they are not invalid caller JSON.
334
- const bytes = this.deps.resources().readModel(ref);
335
- let parsed;
336
- try {
337
- const text = new TextDecoder("utf-8", { fatal: true }).decode(bytes);
338
- parsed = ModelCallRequest.safeParse(JSON.parse(text));
339
- }
340
- catch (error) {
341
- if (!(error instanceof SyntaxError) &&
342
- errorCode(error) !== "ERR_ENCODING_INVALID_ENCODED_DATA")
343
- throw error;
344
- }
345
- if (!parsed?.success) {
346
- throw operationError("model_request_invalid", "The uploaded model request must be valid UTF-8 JSON matching ModelCallRequest.", 400);
347
- }
348
- return parsed.data;
193
+ return readModelPayload(this.deps.resources(), ref, ModelCallRequest, "ModelCallRequest");
194
+ }
195
+ readImageRequest(ref) {
196
+ if (ref.sizeBytes > 144 * 1024 * 1024)
197
+ throw operationError("image_request_too_large", "The image request exceeds 144 MiB", 413);
198
+ return readModelPayload(this.deps.resources(), ref, ImageCallRequest, "ImageCallRequest");
349
199
  }
350
200
  record(id) {
351
201
  const record = commandStoreForId(this.deps.commands, id)?.get(id);
@@ -1 +1 @@
1
- {"version":3,"file":"model-operations.js","sourceRoot":"","sources":["../src/model-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-operations.js","sourceRoot":"","sources":["../src/model-operations.ts"],"names":[],"mappings":"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"}
@@ -48,12 +48,13 @@ export declare function reconcileQuotaSnapshot(value: QuotaSnapshot, existing: r
48
48
  applies_to_models?: string[] | null | undefined;
49
49
  applies_to_model_prefixes?: string[] | undefined;
50
50
  applies_to_unspecified_model?: boolean | undefined;
51
+ applies_to_request_kinds?: ("image" | "text")[] | undefined;
51
52
  used_ratio: number | null;
52
53
  window_seconds: number | null;
53
54
  resets_at: string | null;
54
55
  cooldown_until: string | null;
55
56
  }[];
56
- source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_rate_limit_event" | "claude_statusline" | "codex_app_server" | "codex_app_server_event" | "codex_rollout" | "cursor_rate_limit";
57
+ source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_rate_limit_event" | "claude_statusline" | "codex_app_server" | "codex_app_server_event" | "codex_image_response" | "codex_rollout" | "cursor_rate_limit";
57
58
  observed_at: string;
58
59
  freshness: "fresh" | "stale" | "unknown";
59
60
  };
@@ -70,12 +71,13 @@ export declare function reconcileQuotaSnapshot(value: QuotaSnapshot, existing: r
70
71
  applies_to_models?: string[] | null | undefined;
71
72
  applies_to_model_prefixes?: string[] | undefined;
72
73
  applies_to_unspecified_model?: boolean | undefined;
74
+ applies_to_request_kinds?: ("image" | "text")[] | undefined;
73
75
  used_ratio: number | null;
74
76
  window_seconds: number | null;
75
77
  resets_at: string | null;
76
78
  cooldown_until: string | null;
77
79
  }[];
78
- source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_rate_limit_event" | "claude_statusline" | "codex_app_server" | "codex_app_server_event" | "codex_rollout" | "cursor_rate_limit";
80
+ source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_rate_limit_event" | "claude_statusline" | "codex_app_server" | "codex_app_server_event" | "codex_image_response" | "codex_rollout" | "cursor_rate_limit";
79
81
  observed_at: string;
80
82
  freshness: "fresh" | "stale" | "unknown";
81
83
  }[];
@@ -1 +1 @@
1
- {"version":3,"file":"quota-registry-support.d.ts","sourceRoot":"","sources":["../src/quota-registry-support.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EASL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,6BAA6B,EAClC,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAG3B;;2EAE2E;AAC3E,wBAAgB,wBAAwB,CACtC,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,eAAe,CAAC;IACjC,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;CACrC,EACD,GAAG,EAAE,IAAI,GACR,aAAa,CAyCf;AAMD;;;yEAGyE;AACzE,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,GAAG,EAAE,MAAM,GACV,aAAa,EAAE,CAEjB;AAED;iFACiF;AACjF,wBAAgB,2CAA2C,CACzD,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,GAAG,EAAE,MAAM,GACV,6BAA6B,EAAE,CAQjC;AAsBD,eAAO,MAAM,sBAAsB,QAAa,CAAC;AAEjD;;sDAEsD;AACtD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,OAAO,CAE7E;AAED;;iFAEiF;AACjF,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,aAAa,EAC1B,GAAG,EAAE,IAAI,GACR,aAAa,CAqCf;AAyDD;uEACuE;AACvE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,GAAG,EAAE,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBV;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,GACtB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAyB3C;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAE3D;AAED;;6DAE6D;AAC7D,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,CAoBzE;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,CAM3E;AAED;;;;oDAIoD;AACpD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAQlE;AAED;;+EAE+E;AAC/E,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzF;AAOD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC/B,UAAU,EAAE,eAAe,EAC3B,GAAG,EAAE,MAAM,GACV,OAAO,CAQT;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,MAAM,GACV,aAAa,GAAG,IAAI,CAMtB"}
1
+ {"version":3,"file":"quota-registry-support.d.ts","sourceRoot":"","sources":["../src/quota-registry-support.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EASL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,6BAA6B,EAClC,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAG3B;;2EAE2E;AAC3E,wBAAgB,wBAAwB,CACtC,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,eAAe,CAAC;IACjC,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;CACrC,EACD,GAAG,EAAE,IAAI,GACR,aAAa,CA4Cf;AAMD;;;yEAGyE;AACzE,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,GAAG,EAAE,MAAM,GACV,aAAa,EAAE,CAEjB;AAED;iFACiF;AACjF,wBAAgB,2CAA2C,CACzD,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,GAAG,EAAE,MAAM,GACV,6BAA6B,EAAE,CAQjC;AAsBD,eAAO,MAAM,sBAAsB,QAAa,CAAC;AAEjD;;sDAEsD;AACtD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,OAAO,CAE7E;AAED;;iFAEiF;AACjF,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,aAAa,EAC1B,GAAG,EAAE,IAAI,GACR,aAAa,CAsCf;AA+ED;uEACuE;AACvE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,GAAG,EAAE,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBV;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,aAAa,GACtB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CA4B3C;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAE3D;AAED;;6DAE6D;AAC7D,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,CA0BzE;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,CAM3E;AAED;;;;oDAIoD;AACpD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAQlE;AAED;;+EAE+E;AAC/E,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzF;AAOD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC/B,UAAU,EAAE,eAAe,EAC3B,GAAG,EAAE,MAAM,GACV,OAAO,CAQT;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,MAAM,GACV,aAAa,GAAG,IAAI,CAMtB"}
@@ -39,6 +39,9 @@ export function reactiveCooldownSnapshot(input, now) {
39
39
  ...(event.rate_limit?.applies_to_models !== undefined
40
40
  ? { applies_to_models: event.rate_limit.applies_to_models }
41
41
  : {}),
42
+ ...(event.rate_limit?.applies_to_request_kinds
43
+ ? { applies_to_request_kinds: event.rate_limit.applies_to_request_kinds }
44
+ : {}),
42
45
  used_ratio: null,
43
46
  window_seconds: null,
44
47
  resets_at: reset,
@@ -109,7 +112,8 @@ export function withoutSupersededQuotaConstraints(existing, observation, now) {
109
112
  const constraints = existing.constraints.filter((constraint) => {
110
113
  // A generic refusal retained no window identity. A successful recognized
111
114
  // read permits the next requested attempt, including unknown/empty quota;
112
- // it does not promise that the provider will accept that attempt.
115
+ // it does not promise that the provider will accept that attempt. Its
116
+ // request-kind scope narrows what it blocks, not which read retires it.
113
117
  if (constraint.id === "cooldown" &&
114
118
  !constraint.applies_to_models?.length &&
115
119
  !constraint.applies_to_model_prefixes?.length) {
@@ -119,7 +123,7 @@ export function withoutSupersededQuotaConstraints(existing, observation, now) {
119
123
  // same window and scope. Absence/unknown usage cannot disprove one.
120
124
  return !observation.constraints.some((current) => current.used_ratio !== null &&
121
125
  sameQuotaWindow(existing.source, constraint.id, current.id) &&
122
- sameModelScope(constraint, current));
126
+ sameModelScope(constraint, legacyKindComparable(constraint, current)));
123
127
  });
124
128
  return constraints.length === existing.constraints.length
125
129
  ? existing
@@ -133,6 +137,19 @@ function sameQuotaWindow(source, oldId, newId) {
133
137
  // A different bucket (for example review) is an independent constraint.
134
138
  return source === "codex_rollout" && (newId === `codex:${id}` || newId === `default:${id}`);
135
139
  }
140
+ /** Journals written before request-kind scope recorded known windows without
141
+ * one, which meant universal. Compare a newer explicit-kind measurement
142
+ * without that kind only when its duration is identical (null matches only
143
+ * null, as in quotaConstraintIdentity): the reactive path's scope comparison
144
+ * does not see duration. Explicit text/image scopes never cross. */
145
+ function legacyKindComparable(old, current) {
146
+ if (old.applies_to_request_kinds ||
147
+ !current.applies_to_request_kinds ||
148
+ old.window_seconds !== current.window_seconds)
149
+ return current;
150
+ const { applies_to_request_kinds: _kinds, ...unscoped } = current;
151
+ return unscoped;
152
+ }
136
153
  function sameModelScope(a, b) {
137
154
  return hashJson(quotaModelScope(a)) === hashJson(quotaModelScope(b));
138
155
  }
@@ -157,7 +174,13 @@ function windowSupersession(existing, observation, now) {
157
174
  Date.parse(observation.observed_at) <= Date.parse(existing.observed_at))
158
175
  return null;
159
176
  const identity = quotaConstraintIdentity(existing.constraints[0]);
160
- if (!observation.constraints.some((constraint) => constraint.used_ratio !== null && quotaConstraintIdentity(constraint) === identity))
177
+ if (!observation.constraints.some((constraint) => constraint.used_ratio !== null &&
178
+ (quotaConstraintIdentity(legacyKindComparable(existing.constraints[0], constraint)) ===
179
+ identity ||
180
+ (existing.source === "codex_image_response" &&
181
+ existing.constraints[0].window_seconds === null &&
182
+ sameQuotaWindow(existing.source, existing.constraints[0].id, constraint.id) &&
183
+ sameModelScope(existing.constraints[0], constraint)))))
161
184
  return null;
162
185
  return {
163
186
  version: 1,
@@ -209,7 +232,9 @@ export function quotaSnapshotRecords(snapshot) {
209
232
  const legacy = legacyV320Snapshot(snapshot);
210
233
  const upsert = { type: "quota.snapshot.upserted", payload: legacy };
211
234
  if (legacy.source === snapshot.source &&
212
- !snapshot.constraints.some((c) => c.applies_to_models !== undefined || c.applies_to_model_prefixes !== undefined))
235
+ !snapshot.constraints.some((c) => c.applies_to_models !== undefined ||
236
+ c.applies_to_model_prefixes !== undefined ||
237
+ c.applies_to_request_kinds !== undefined))
213
238
  return [upsert];
214
239
  return [
215
240
  {
@@ -233,7 +258,10 @@ export function legacyV320Snapshot(snapshot) {
233
258
  plan_label: snapshot.subject.plan_label,
234
259
  subject_id: snapshot.subject.subject_id,
235
260
  },
236
- constraints: snapshot.constraints.map((constraint) => ({
261
+ constraints: snapshot.constraints
262
+ .filter((constraint) => !constraint.applies_to_request_kinds ||
263
+ constraint.applies_to_request_kinds.includes("text"))
264
+ .map((constraint) => ({
237
265
  id: constraint.id,
238
266
  label: constraint.label,
239
267
  used_ratio: constraint.used_ratio,
@@ -1 +1 @@
1
- {"version":3,"file":"quota-registry-support.js","sourceRoot":"","sources":["../src/quota-registry-support.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota-registry-support.js","sourceRoot":"","sources":["../src/quota-registry-support.ts"],"names":[],"mappings":"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"}
@@ -45,12 +45,13 @@ export declare class QuotaRegistry {
45
45
  applies_to_models?: string[] | null | undefined;
46
46
  applies_to_model_prefixes?: string[] | undefined;
47
47
  applies_to_unspecified_model?: boolean | undefined;
48
+ applies_to_request_kinds?: ("image" | "text")[] | undefined;
48
49
  used_ratio: number | null;
49
50
  window_seconds: number | null;
50
51
  resets_at: string | null;
51
52
  cooldown_until: string | null;
52
53
  }[];
53
- source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_rate_limit_event" | "claude_statusline" | "codex_app_server" | "codex_app_server_event" | "codex_rollout" | "cursor_rate_limit";
54
+ source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_rate_limit_event" | "claude_statusline" | "codex_app_server" | "codex_app_server_event" | "codex_image_response" | "codex_rollout" | "cursor_rate_limit";
54
55
  observed_at: string;
55
56
  freshness: "fresh" | "stale" | "unknown";
56
57
  snapshot_id?: string | undefined;
@@ -122,7 +123,7 @@ export declare class QuotaRegistry {
122
123
  plan_label: string | null;
123
124
  subject_id: string | null;
124
125
  };
125
- source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_rate_limit_event" | "claude_statusline" | "codex_app_server" | "codex_app_server_event" | "codex_rollout" | "cursor_rate_limit";
126
+ source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_rate_limit_event" | "claude_statusline" | "codex_app_server" | "codex_app_server_event" | "codex_image_response" | "codex_rollout" | "cursor_rate_limit";
126
127
  observed_at: string;
127
128
  freshness: "fresh" | "stale" | "unknown";
128
129
  snapshot_id?: string | undefined;
@@ -143,6 +144,7 @@ export declare class QuotaRegistry {
143
144
  applies_to_models?: string[] | null | undefined;
144
145
  applies_to_model_prefixes?: string[] | undefined;
145
146
  applies_to_unspecified_model?: boolean | undefined;
147
+ applies_to_request_kinds?: ("image" | "text")[] | undefined;
146
148
  used_ratio: number | null;
147
149
  window_seconds: number | null;
148
150
  resets_at: string | null;
@@ -252,12 +254,13 @@ export declare class QuotaRegistry {
252
254
  applies_to_models?: string[] | null | undefined;
253
255
  applies_to_model_prefixes?: string[] | undefined;
254
256
  applies_to_unspecified_model?: boolean | undefined;
257
+ applies_to_request_kinds?: ("image" | "text")[] | undefined;
255
258
  used_ratio: number | null;
256
259
  window_seconds: number | null;
257
260
  resets_at: string | null;
258
261
  cooldown_until: string | null;
259
262
  }[];
260
- source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_rate_limit_event" | "claude_statusline" | "codex_app_server" | "codex_app_server_event" | "codex_rollout" | "cursor_rate_limit";
263
+ source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_rate_limit_event" | "claude_statusline" | "codex_app_server" | "codex_app_server_event" | "codex_image_response" | "codex_rollout" | "cursor_rate_limit";
261
264
  observed_at: string;
262
265
  freshness: "fresh" | "stale" | "unknown";
263
266
  snapshot_id?: string | undefined;
@@ -315,12 +318,13 @@ export declare class QuotaRegistry {
315
318
  applies_to_models?: string[] | null | undefined;
316
319
  applies_to_model_prefixes?: string[] | undefined;
317
320
  applies_to_unspecified_model?: boolean | undefined;
321
+ applies_to_request_kinds?: ("image" | "text")[] | undefined;
318
322
  used_ratio: number | null;
319
323
  window_seconds: number | null;
320
324
  resets_at: string | null;
321
325
  cooldown_until: string | null;
322
326
  }[];
323
- source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_rate_limit_event" | "claude_statusline" | "codex_app_server" | "codex_app_server_event" | "codex_rollout" | "cursor_rate_limit";
327
+ source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_rate_limit_event" | "claude_statusline" | "codex_app_server" | "codex_app_server_event" | "codex_image_response" | "codex_rollout" | "cursor_rate_limit";
324
328
  observed_at: string;
325
329
  freshness: "fresh" | "stale" | "unknown";
326
330
  snapshot_id?: string | undefined;
@@ -459,12 +463,13 @@ export declare class QuotaRegistry {
459
463
  applies_to_models?: string[] | null | undefined;
460
464
  applies_to_model_prefixes?: string[] | undefined;
461
465
  applies_to_unspecified_model?: boolean | undefined;
466
+ applies_to_request_kinds?: ("image" | "text")[] | undefined;
462
467
  used_ratio: number | null;
463
468
  window_seconds: number | null;
464
469
  resets_at: string | null;
465
470
  cooldown_until: string | null;
466
471
  }[];
467
- source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_rate_limit_event" | "claude_statusline" | "codex_app_server" | "codex_app_server_event" | "codex_rollout" | "cursor_rate_limit";
472
+ source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_rate_limit_event" | "claude_statusline" | "codex_app_server" | "codex_app_server_event" | "codex_image_response" | "codex_rollout" | "cursor_rate_limit";
468
473
  observed_at: string;
469
474
  freshness: "fresh" | "stale" | "unknown";
470
475
  snapshot_id?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"quota-registry.d.ts","sourceRoot":"","sources":["../src/quota-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota-registry.d.ts","sourceRoot":"","sources":["../src/quota-registry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claudexor/daemon",
3
- "version": "4.0.1",
3
+ "version": "4.1.0",
4
4
  "license": "MIT",
5
5
  "description": "Managed local daemon: Unix-socket JSON-RPC, token auth, task queue. Runner injected (no second scheduler).",
6
6
  "type": "module",
@@ -17,10 +17,10 @@
17
17
  ],
18
18
  "dependencies": {
19
19
  "yaml": "^2.9.1",
20
- "@claudexor/schema": "4.0.1",
21
- "@claudexor/core": "4.0.1",
22
- "@claudexor/workspace": "4.0.1",
23
- "@claudexor/util": "4.0.1"
20
+ "@claudexor/core": "4.1.0",
21
+ "@claudexor/schema": "4.1.0",
22
+ "@claudexor/util": "4.1.0",
23
+ "@claudexor/workspace": "4.1.0"
24
24
  },
25
25
  "repository": {
26
26
  "type": "git",