@aexol/spectral 0.9.134 → 0.9.136

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.
@@ -21,6 +21,22 @@ export interface OAuthResult {
21
21
  token?: string;
22
22
  reason?: string;
23
23
  }
24
+ /**
25
+ * Short human-readable reason strings passed to the landing page via the
26
+ * `reason` URL param so the frontend can render a contextual banner above
27
+ * the login form (e.g. "Please authorize your CLI with your account").
28
+ */
29
+ export declare const OAUTH_REASON: {
30
+ /** User ran `spectral login` and chose the browser flow. */
31
+ readonly LOGIN: "login";
32
+ /** User ran `spectral serve` / a command that needs a registered machine. */
33
+ readonly SERVE: "serve";
34
+ /** Background re-auth after a 401/403 from the backend. */
35
+ readonly REAUTH: "reauth";
36
+ /** Kanban / Studio authorization step. */
37
+ readonly KANBAN: "kanban";
38
+ };
39
+ export type OAuthReason = (typeof OAUTH_REASON)[keyof typeof OAUTH_REASON];
24
40
  /**
25
41
  * Run the OAuth browser flow to obtain a fresh JWT token.
26
42
  *
@@ -29,7 +45,7 @@ export interface OAuthResult {
29
45
  *
30
46
  * Returns `{ ok: true, token }` on success, `{ ok: false, reason }` on failure.
31
47
  */
32
- export declare function runOAuthFlow(apiUrl?: string, timeoutMs?: number): Promise<OAuthResult>;
48
+ export declare function runOAuthFlow(apiUrl?: string, timeoutMs?: number, reason?: OAuthReason): Promise<OAuthResult>;
33
49
  /** Check if an error indicates an authentication failure (401 or 403). */
34
50
  export declare function isAuthError(err: unknown): boolean;
35
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"auth-helper.d.ts","sourceRoot":"","sources":["../src/auth-helper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAOrB,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA8FD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,GAAE,MAAyB,GACnC,OAAO,CAAC,WAAW,CAAC,CA8DtB;AAMD,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAUjD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAgErE"}
1
+ {"version":3,"file":"auth-helper.d.ts","sourceRoot":"","sources":["../src/auth-helper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAOrB,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY;IACvB,4DAA4D;;IAE5D,6EAA6E;;IAE7E,2DAA2D;;IAE3D,0CAA0C;;CAElC,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AA8F3E;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,GAAE,MAAyB,EACpC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,WAAW,CAAC,CAmEtB;AAMD,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAUjD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAgErE"}
@@ -15,6 +15,21 @@ import { exec } from "node:child_process";
15
15
  import pc from "picocolors";
16
16
  import { DEFAULT_API_URL, readConfig, writeConfig, } from "./config.js";
17
17
  import { AexolMcpClient, AexolMcpError } from "./mcp-client.js";
18
+ /**
19
+ * Short human-readable reason strings passed to the landing page via the
20
+ * `reason` URL param so the frontend can render a contextual banner above
21
+ * the login form (e.g. "Please authorize your CLI with your account").
22
+ */
23
+ export const OAUTH_REASON = {
24
+ /** User ran `spectral login` and chose the browser flow. */
25
+ LOGIN: "login",
26
+ /** User ran `spectral serve` / a command that needs a registered machine. */
27
+ SERVE: "serve",
28
+ /** Background re-auth after a 401/403 from the backend. */
29
+ REAUTH: "reauth",
30
+ /** Kanban / Studio authorization step. */
31
+ KANBAN: "kanban",
32
+ };
18
33
  // ---------------------------------------------------------------------------
19
34
  // Constants
20
35
  // ---------------------------------------------------------------------------
@@ -102,7 +117,7 @@ function listenForCallback(timeoutMs) {
102
117
  *
103
118
  * Returns `{ ok: true, token }` on success, `{ ok: false, reason }` on failure.
104
119
  */
105
- export async function runOAuthFlow(apiUrl, timeoutMs = OAUTH_TIMEOUT_MS) {
120
+ export async function runOAuthFlow(apiUrl, timeoutMs = OAUTH_TIMEOUT_MS, reason) {
106
121
  // Load existing config to preserve teamApiKey
107
122
  const existingCfg = await readConfig();
108
123
  const resolvedApiUrl = apiUrl ?? existingCfg?.apiUrl ?? process.env.SPECTRAL_MCP_URL ?? DEFAULT_API_URL;
@@ -120,15 +135,20 @@ export async function runOAuthFlow(apiUrl, timeoutMs = OAUTH_TIMEOUT_MS) {
120
135
  const addr = server.address();
121
136
  const port = addr.port;
122
137
  // Open browser to the CLI auth page
123
- const authUrl = `${landingUrl}/cli-auth?port=${port}`;
138
+ const authUrl = new URL(`${landingUrl}/cli-auth`);
139
+ authUrl.searchParams.set("port", String(port));
140
+ if (reason) {
141
+ authUrl.searchParams.set("reason", reason);
142
+ }
143
+ const authUrlStr = authUrl.toString();
124
144
  const openCmd = process.platform === "darwin"
125
- ? `open "${authUrl}"`
145
+ ? `open "${authUrlStr}"`
126
146
  : process.platform === "win32"
127
- ? `start "" "${authUrl}"`
128
- : `xdg-open "${authUrl}"`;
147
+ ? `start "" "${authUrlStr}"`
148
+ : `xdg-open "${authUrlStr}"`;
129
149
  exec(openCmd, (err) => {
130
150
  if (err) {
131
- process.stderr.write(pc.yellow(`⚠ Could not open browser automatically. Please visit:\n ${authUrl}\n`));
151
+ process.stderr.write(pc.yellow(`⚠ Could not open browser automatically. Please visit:\n ${authUrlStr}\n`));
132
152
  }
133
153
  });
134
154
  const token = await tokenPromise;
@@ -229,7 +249,7 @@ export async function ensureAuthenticated() {
229
249
  }
230
250
  // No valid token — run OAuth flow
231
251
  process.stderr.write(pc.yellow("\n🔐 Authentication required. Opening browser for Aexol Studio login...\n"));
232
- const result = await runOAuthFlow(apiUrl);
252
+ const result = await runOAuthFlow(apiUrl, OAUTH_TIMEOUT_MS, OAUTH_REASON.REAUTH);
233
253
  if (!result.ok) {
234
254
  process.stderr.write(pc.red(`✗ Authentication failed: ${result.reason}\n`));
235
255
  return { ok: false, config: existingCfg, reason: result.reason };
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import pc from "picocolors";
8
8
  import { getConfigFile, readConfig } from "../config.js";
9
- import { runOAuthFlow } from "../auth-helper.js";
9
+ import { runOAuthFlow, OAUTH_REASON } from "../auth-helper.js";
10
10
  export async function runLoginOAuth() {
11
11
  process.stdout.write(pc.bold("Spectral login (OAuth)\n"));
12
12
  process.stdout.write(pc.dim(`Opens a browser to authorize the CLI. The JWT is stored at ${getConfigFile()}.\n\n`));
@@ -14,7 +14,7 @@ export async function runLoginOAuth() {
14
14
  const existingCfg = await readConfig();
15
15
  const apiUrl = existingCfg?.apiUrl ?? undefined;
16
16
  process.stdout.write(pc.dim("Waiting for authorization...\n"));
17
- const result = await runOAuthFlow(apiUrl);
17
+ const result = await runOAuthFlow(apiUrl, undefined, OAUTH_REASON.LOGIN);
18
18
  if (!result.ok) {
19
19
  process.stderr.write(pc.red(`✗ ${result.reason}\n`));
20
20
  process.exit(1);
@@ -21,7 +21,7 @@ import { password, select } from "@inquirer/prompts";
21
21
  import pc from "picocolors";
22
22
  import { TEAM_API_KEY_PREFIX, getApiUrl, getConfigFile, validateTeamApiKey, writeConfig, } from "../config.js";
23
23
  import { AexolMcpClient, AexolMcpError } from "../mcp-client.js";
24
- import { runOAuthFlow } from "../auth-helper.js";
24
+ import { runOAuthFlow, OAUTH_REASON } from "../auth-helper.js";
25
25
  /**
26
26
  * Pure login logic. Throws `Error` with one of these stable message prefixes:
27
27
  * - "Invalid API key prefix" — local validation failed
@@ -130,7 +130,7 @@ export async function runLogin() {
130
130
  process.stdout.write(pc.dim(`Saved credentials to ${getConfigFile()}\n`));
131
131
  // Chain OAuth for Kanban/Studio features (non-fatal — MCP tools work without it)
132
132
  process.stdout.write(pc.dim("\nAuthorizing for Aexol Studio features (Kanban)...\n"));
133
- const oauthResult = await runOAuthFlow(apiUrl);
133
+ const oauthResult = await runOAuthFlow(apiUrl, undefined, OAUTH_REASON.KANBAN);
134
134
  if (oauthResult.ok) {
135
135
  process.stdout.write(pc.green("✓ CLI authorized for Studio/Kanban.\n"));
136
136
  }
@@ -187,7 +187,7 @@ async function deleteKanbanTask(opts, taskId) {
187
187
  // ---------------------------------------------------------------------------
188
188
  import { getApiUrl, getConfigFile, readConfig } from "../config.js";
189
189
  import { readStudioBinding } from "../studio-binding.js";
190
- import { ensureAuthenticated, runOAuthFlow } from "../auth-helper.js";
190
+ import { ensureAuthenticated, runOAuthFlow, OAUTH_REASON } from "../auth-helper.js";
191
191
  import { loadMachine } from "../relay/machine-store.js";
192
192
  import { isJwtExpired } from "../relay/registration.js";
193
193
  import { stat } from "node:fs/promises";
@@ -241,7 +241,7 @@ async function resolveKanbanConfig(explicitProjectId, cwd) {
241
241
  if (cfg.teamApiKey && !cfg.userJwt && !_reauthAttempted) {
242
242
  _reauthAttempted = true;
243
243
  process.stderr.write(`[kanban-bridge] Team API key found but no user JWT. Kanban requires user auth — obtaining via OAuth...\n`);
244
- const oauthResult = await runOAuthFlow();
244
+ const oauthResult = await runOAuthFlow(undefined, undefined, OAUTH_REASON.KANBAN);
245
245
  if (oauthResult.ok) {
246
246
  return resolveKanbanConfig(explicitProjectId, cwd); // Retry with fresh config (now has userJwt)
247
247
  }
@@ -789,7 +789,7 @@ function withReauthRetry(toolName, execute) {
789
789
  }
790
790
  _reauthAttempted = true;
791
791
  process.stderr.write(`[kanban-bridge] Auth error (${err.status}) on ${toolName}. Attempting OAuth re-login...\n`);
792
- const oauthResult = await runOAuthFlow();
792
+ const oauthResult = await runOAuthFlow(undefined, undefined, OAUTH_REASON.REAUTH);
793
793
  if (oauthResult.ok) {
794
794
  process.stderr.write(`[kanban-bridge] Re-authenticated — retrying ${toolName}...\n`);
795
795
  // Reset reauth flag so resolveKanbanConfig can use the fresh token
@@ -3,7 +3,7 @@
3
3
  * Transforms to Message[] only at the LLM call boundary.
4
4
  */
5
5
  import { EventStream } from "../ai/index.js";
6
- import type { AgentContext, AgentEvent, AgentLoopConfig, AgentMessage, StreamFn } from "./types.js";
6
+ import type { AgentContext, AgentEvent, AgentLoopConfig, AgentMessage, AgentTool, AgentToolCall, StreamFn } from "./types.js";
7
7
  export type AgentEventSink = (event: AgentEvent) => Promise<void> | void;
8
8
  /**
9
9
  * Start an agent loop with a new prompt message.
@@ -21,4 +21,11 @@ export declare function agentLoop(prompts: AgentMessage[], context: AgentContext
21
21
  export declare function agentLoopContinue(context: AgentContext, config: AgentLoopConfig, signal?: AbortSignal, streamFn?: StreamFn): EventStream<AgentEvent, AgentMessage[]>;
22
22
  export declare function runAgentLoop(prompts: AgentMessage[], context: AgentContext, config: AgentLoopConfig, emit: AgentEventSink, signal?: AbortSignal, streamFn?: StreamFn): Promise<AgentMessage[]>;
23
23
  export declare function runAgentLoopContinue(context: AgentContext, config: AgentLoopConfig, emit: AgentEventSink, signal?: AbortSignal, streamFn?: StreamFn): Promise<AgentMessage[]>;
24
+ /**
25
+ * Detects whether a tool call is missing any required parameter, indicating the
26
+ * provider truncated the response before the tool arguments were fully emitted.
27
+ * Used together with `stopReason === "length"` to short-circuit tool validation
28
+ * (which would otherwise throw `Validation failed ... You provided: {}`).
29
+ */
30
+ export declare function hasMissingRequiredArguments(tool: AgentTool<any>, toolCall: AgentToolCall): boolean;
24
31
  //# sourceMappingURL=agent-loop.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../../src/sdk/agent-core/agent-loop.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGL,WAAW,EAIZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,eAAe,EACf,YAAY,EAIZ,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAYzE;;;GAGG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,eAAe,EACvB,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,CA2BzC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,eAAe,EACvB,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,CAkCzC;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,cAAc,EACpB,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,YAAY,EAAE,CAAC,CAgBzB;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,cAAc,EACpB,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,YAAY,EAAE,CAAC,CAiBzB"}
1
+ {"version":3,"file":"agent-loop.d.ts","sourceRoot":"","sources":["../../../src/sdk/agent-core/agent-loop.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGL,WAAW,EAIZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,eAAe,EACf,YAAY,EACZ,SAAS,EACT,aAAa,EAEb,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAYzE;;;GAGG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,eAAe,EACvB,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,CA2BzC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,eAAe,EACvB,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,CAkCzC;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,cAAc,EACpB,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,YAAY,EAAE,CAAC,CAgBzB;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,cAAc,EACpB,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,YAAY,EAAE,CAAC,CAiBzB;AA2tBD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAYlG"}
@@ -469,6 +469,20 @@ async function prepareToolCall(currentContext, assistantMessage, toolCall, confi
469
469
  isError: true,
470
470
  };
471
471
  }
472
+ // If the provider truncated the response mid tool-call (stopReason "length"),
473
+ // the streaming JSON parser may have produced an empty or incomplete arguments
474
+ // object. Validating it would surface a raw `Validation failed ... You provided:
475
+ // {}` error to the model. Instead, return a soft error so the agent-session
476
+ // length-continuation path (which treats truncated tool calls as visible output)
477
+ // can resubmit and let the model re-emit the full tool call.
478
+ if (assistantMessage.stopReason === "length" && hasMissingRequiredArguments(tool, toolCall)) {
479
+ return {
480
+ kind: "immediate",
481
+ result: createErrorToolResult(`Tool "${toolCall.name}" was truncated before its arguments were fully emitted. ` +
482
+ `Retrying: please re-emit the complete tool call with all required parameters.`),
483
+ isError: true,
484
+ };
485
+ }
472
486
  try {
473
487
  const preparedToolCall = prepareToolCallArguments(tool, toolCall);
474
488
  const validatedArgs = validateToolArguments(tool, preparedToolCall);
@@ -578,6 +592,25 @@ function createErrorToolResult(message) {
578
592
  details: {},
579
593
  };
580
594
  }
595
+ /**
596
+ * Detects whether a tool call is missing any required parameter, indicating the
597
+ * provider truncated the response before the tool arguments were fully emitted.
598
+ * Used together with `stopReason === "length"` to short-circuit tool validation
599
+ * (which would otherwise throw `Validation failed ... You provided: {}`).
600
+ */
601
+ export function hasMissingRequiredArguments(tool, toolCall) {
602
+ const schema = tool.parameters;
603
+ const required = schema.required;
604
+ if (!Array.isArray(required) || required.length === 0)
605
+ return false;
606
+ const args = toolCall.arguments;
607
+ if (!args || typeof args !== "object")
608
+ return true;
609
+ return required.some((key) => !(key in args) ||
610
+ args[key] === undefined ||
611
+ args[key] === null ||
612
+ (typeof args[key] === "string" && args[key].trim() === ""));
613
+ }
581
614
  async function emitToolExecutionEnd(finalized, emit) {
582
615
  await emit({
583
616
  type: "tool_execution_end",
@@ -79,7 +79,7 @@ export type AgentSessionEvent = Exclude<AgentEvent, {
79
79
  } | {
80
80
  type: "length_continuation";
81
81
  status: "queued" | "skipped";
82
- reason: "length_stop" | "empty_output" | "context_overflow" | "max_attempts" | "budget_exhausted";
82
+ reason: "length_stop" | "empty_output" | "context_overflow" | "max_attempts" | "budget_exhausted" | "truncated_tool_call";
83
83
  attempt: number;
84
84
  maxAttempts: number;
85
85
  outputTokens: number;
@@ -213,6 +213,7 @@ export declare class AgentSession {
213
213
  private _retryAbortController;
214
214
  private _retryAttempt;
215
215
  private _lengthContinuationAttempts;
216
+ private _lastLengthContinuationReason;
216
217
  private _lengthContinuationOutputTokens;
217
218
  private _pendingInternalLengthContinuationMessages;
218
219
  private _internalLengthContinuationUserMessages;
@@ -364,6 +365,15 @@ export declare class AgentSession {
364
365
  private _getAssistantOutputTokens;
365
366
  private _emitLengthContinuationEvent;
366
367
  private _assistantMessageHasVisibleOutput;
368
+ /**
369
+ * Detects a tool call truncated by max_tokens before its arguments were fully
370
+ * emitted. When the provider cuts off mid input_json_delta the streaming JSON
371
+ * parser yields an empty or incomplete arguments object, which would otherwise
372
+ * fail tool validation with `Validation failed ... You provided: {}`.
373
+ * Treating this as visible output lets the length-stop continuation path
374
+ * resubmit so the model can re-emit the full tool call.
375
+ */
376
+ private _assistantMessageHasTruncatedToolCall;
367
377
  private _queueInternalLengthContinuation;
368
378
  /**
369
379
  * Send a prompt to the agent.
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../../../src/sdk/coding-agent/core/agent-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-session.d.ts","sourceRoot":"","sources":["../../../../src/sdk/coding-agent/core/agent-session.ts"],"names":[],"mappings":"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"}
@@ -179,6 +179,7 @@ export class AgentSession {
179
179
  _retryAbortController = undefined;
180
180
  _retryAttempt = 0;
181
181
  _lengthContinuationAttempts = 0;
182
+ _lastLengthContinuationReason;
182
183
  _lengthContinuationOutputTokens = 0;
183
184
  _pendingInternalLengthContinuationMessages = 0;
184
185
  _internalLengthContinuationUserMessages = new WeakSet();
@@ -833,7 +834,7 @@ export class AgentSession {
833
834
  this._retryAttempt = 0;
834
835
  }
835
836
  if (this._shouldAutoContinueLengthStop(msg)) {
836
- this._queueInternalLengthContinuation(this._getAssistantOutputTokens(msg));
837
+ this._queueInternalLengthContinuation(this._getAssistantOutputTokens(msg), this._lastLengthContinuationReason);
837
838
  return true;
838
839
  }
839
840
  return await this._checkCompaction(msg);
@@ -853,20 +854,27 @@ export class AgentSession {
853
854
  const contextWindow = this.model?.contextWindow ?? 0;
854
855
  if (isContextOverflow(message, contextWindow)) {
855
856
  this._emitLengthContinuationEvent("skipped", "context_overflow", outputTokens, policy);
857
+ this._lastLengthContinuationReason = undefined;
856
858
  return false;
857
859
  }
858
- if (outputTokens <= 0 || !this._assistantMessageHasVisibleOutput(message)) {
860
+ const truncatedToolCall = this._assistantMessageHasTruncatedToolCall(message);
861
+ const hasVisibleOutput = this._assistantMessageHasVisibleOutput(message) || truncatedToolCall;
862
+ if (outputTokens <= 0 || !hasVisibleOutput) {
859
863
  this._emitLengthContinuationEvent("skipped", "empty_output", outputTokens, policy);
864
+ this._lastLengthContinuationReason = undefined;
860
865
  return false;
861
866
  }
862
867
  if (this._lengthContinuationAttempts >= policy.maxAttempts) {
863
868
  this._emitLengthContinuationEvent("skipped", "max_attempts", outputTokens, policy);
869
+ this._lastLengthContinuationReason = undefined;
864
870
  return false;
865
871
  }
866
872
  if (this._lengthContinuationOutputTokens >= policy.totalOutputTokenBudget) {
867
873
  this._emitLengthContinuationEvent("skipped", "budget_exhausted", outputTokens, policy);
874
+ this._lastLengthContinuationReason = undefined;
868
875
  return false;
869
876
  }
877
+ this._lastLengthContinuationReason = truncatedToolCall ? "truncated_tool_call" : undefined;
870
878
  return true;
871
879
  }
872
880
  _getAssistantOutputTokens(message) {
@@ -893,10 +901,43 @@ export class AgentSession {
893
901
  return part.text.trim().length > 0;
894
902
  if (part.type === "thinking")
895
903
  return part.thinking.trim().length > 0;
904
+ // A tool call (even fully formed) counts as visible output: if the provider
905
+ // stopped at "length" right after emitting it, continuation lets the model
906
+ // finish any remaining intended text/tool calls.
907
+ if (part.type === "toolCall")
908
+ return true;
909
+ return false;
910
+ });
911
+ }
912
+ /**
913
+ * Detects a tool call truncated by max_tokens before its arguments were fully
914
+ * emitted. When the provider cuts off mid input_json_delta the streaming JSON
915
+ * parser yields an empty or incomplete arguments object, which would otherwise
916
+ * fail tool validation with `Validation failed ... You provided: {}`.
917
+ * Treating this as visible output lets the length-stop continuation path
918
+ * resubmit so the model can re-emit the full tool call.
919
+ */
920
+ _assistantMessageHasTruncatedToolCall(message) {
921
+ if (message.stopReason !== "length")
896
922
  return false;
923
+ return message.content.some((part) => {
924
+ if (part.type !== "toolCall")
925
+ return false;
926
+ const args = part.arguments;
927
+ // Empty arguments object => the provider cut off before emitting any JSON.
928
+ if (!args || typeof args !== "object")
929
+ return true;
930
+ const keys = Object.keys(args);
931
+ if (keys.length === 0)
932
+ return true;
933
+ // All values empty/blank => the arguments were only partially emitted.
934
+ return keys.every((key) => {
935
+ const value = args[key];
936
+ return value === undefined || value === null || (typeof value === "string" && value.trim() === "");
937
+ });
897
938
  });
898
939
  }
899
- _queueInternalLengthContinuation(outputTokens = 0) {
940
+ _queueInternalLengthContinuation(outputTokens = 0, reason) {
900
941
  const policy = this._getCompactionPolicy().truncationContinuation;
901
942
  this._lengthContinuationAttempts++;
902
943
  this.agent.followUp({
@@ -905,7 +946,7 @@ export class AgentSession {
905
946
  timestamp: Date.now(),
906
947
  });
907
948
  this._pendingInternalLengthContinuationMessages++;
908
- this._emitLengthContinuationEvent("queued", "length_stop", outputTokens, policy);
949
+ this._emitLengthContinuationEvent("queued", reason ?? "length_stop", outputTokens, policy);
909
950
  }
910
951
  /**
911
952
  * Send a prompt to the agent.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aexol/spectral",
3
- "version": "0.9.134",
3
+ "version": "0.9.136",
4
4
  "description": "AI coding agent for Aexol with relay-based browser access.",
5
5
  "type": "module",
6
6
  "private": false,