kanban 0.1.45 → 0.1.46

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.
Files changed (65) hide show
  1. package/dist/cline-sdk/cline-event-adapter.d.ts.map +1 -1
  2. package/dist/cline-sdk/cline-event-adapter.js +18 -11
  3. package/dist/cline-sdk/cline-event-adapter.js.map +1 -1
  4. package/dist/cline-sdk/cline-provider-service.d.ts +3 -1
  5. package/dist/cline-sdk/cline-provider-service.d.ts.map +1 -1
  6. package/dist/cline-sdk/cline-provider-service.js +26 -14
  7. package/dist/cline-sdk/cline-provider-service.js.map +1 -1
  8. package/dist/cline-sdk/cline-session-runtime.d.ts +2 -1
  9. package/dist/cline-sdk/cline-session-runtime.d.ts.map +1 -1
  10. package/dist/cline-sdk/cline-session-runtime.js +4 -2
  11. package/dist/cline-sdk/cline-session-runtime.js.map +1 -1
  12. package/dist/cline-sdk/cline-task-session-service.d.ts +4 -1
  13. package/dist/cline-sdk/cline-task-session-service.d.ts.map +1 -1
  14. package/dist/cline-sdk/cline-task-session-service.js +41 -2
  15. package/dist/cline-sdk/cline-task-session-service.js.map +1 -1
  16. package/dist/cline-sdk/sdk-provider-boundary.d.ts +5 -20
  17. package/dist/cline-sdk/sdk-provider-boundary.d.ts.map +1 -1
  18. package/dist/cline-sdk/sdk-provider-boundary.js +26 -3
  19. package/dist/cline-sdk/sdk-provider-boundary.js.map +1 -1
  20. package/dist/commands/hooks.d.ts.map +1 -1
  21. package/dist/commands/hooks.js +9 -10
  22. package/dist/commands/hooks.js.map +1 -1
  23. package/dist/core/api-contract.d.ts +106 -0
  24. package/dist/core/api-contract.d.ts.map +1 -1
  25. package/dist/core/api-contract.js +14 -2
  26. package/dist/core/api-contract.js.map +1 -1
  27. package/dist/core/api-validation.d.ts +2 -1
  28. package/dist/core/api-validation.d.ts.map +1 -1
  29. package/dist/core/api-validation.js +13 -3
  30. package/dist/core/api-validation.js.map +1 -1
  31. package/dist/core/home-agent-session.d.ts.map +1 -1
  32. package/dist/core/home-agent-session.js +5 -12
  33. package/dist/core/home-agent-session.js.map +1 -1
  34. package/dist/terminal/agent-session-adapters.d.ts +2 -1
  35. package/dist/terminal/agent-session-adapters.d.ts.map +1 -1
  36. package/dist/terminal/agent-session-adapters.js +11 -3
  37. package/dist/terminal/agent-session-adapters.js.map +1 -1
  38. package/dist/terminal/pty-session.d.ts +1 -0
  39. package/dist/terminal/pty-session.d.ts.map +1 -1
  40. package/dist/terminal/pty-session.js +32 -8
  41. package/dist/terminal/pty-session.js.map +1 -1
  42. package/dist/terminal/session-manager.d.ts +2 -1
  43. package/dist/terminal/session-manager.d.ts.map +1 -1
  44. package/dist/terminal/session-manager.js +4 -2
  45. package/dist/terminal/session-manager.js.map +1 -1
  46. package/dist/terminal/task-image-prompt.d.ts +6 -0
  47. package/dist/terminal/task-image-prompt.d.ts.map +1 -0
  48. package/dist/terminal/task-image-prompt.js +65 -0
  49. package/dist/terminal/task-image-prompt.js.map +1 -0
  50. package/dist/trpc/app-router.d.ts +54 -1
  51. package/dist/trpc/app-router.d.ts.map +1 -1
  52. package/dist/trpc/app-router.js +9 -3
  53. package/dist/trpc/app-router.js.map +1 -1
  54. package/dist/trpc/runtime-api.d.ts.map +1 -1
  55. package/dist/trpc/runtime-api.js +32 -3
  56. package/dist/trpc/runtime-api.js.map +1 -1
  57. package/dist/web-ui/assets/{index-DoNpUoGJ.js → index-BB4df_c9.js} +22055 -21482
  58. package/dist/web-ui/assets/index-BB4df_c9.js.map +1 -0
  59. package/dist/web-ui/assets/{index-Dh6GANSR.css → index-CFPpWqQC.css} +103 -8
  60. package/dist/web-ui/index.html +2 -2
  61. package/dist/workspace/task-worktree-turbopack.d.ts.map +1 -1
  62. package/dist/workspace/task-worktree-turbopack.js +5 -7
  63. package/dist/workspace/task-worktree-turbopack.js.map +1 -1
  64. package/package.json +1 -1
  65. package/dist/web-ui/assets/index-DoNpUoGJ.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cline-event-adapter.d.ts","sourceRoot":"","sources":["../../src/cline-sdk/cline-event-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAGzE,OAAO,EAGN,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAc1B,MAAM,0BAA0B,CAAC;AAalC,MAAM,WAAW,2BAA2B;IAC3C,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,qBAAqB,CAAC;IAC7B,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,WAAW,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAC1D,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACjE;AAgHD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAOnE;AAGD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,IAAI,CAgV/E"}
1
+ {"version":3,"file":"cline-event-adapter.d.ts","sourceRoot":"","sources":["../../src/cline-sdk/cline-event-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAGzE,OAAO,EAGN,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAc1B,MAAM,0BAA0B,CAAC;AAkBlC,MAAM,WAAW,2BAA2B;IAC3C,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,qBAAqB,CAAC;IAC7B,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,WAAW,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,CAAC;IAC1D,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACjE;AAgHD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAOnE;AAGD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,IAAI,CAmV/E"}
@@ -1,12 +1,16 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="68d3eee9-3187-5f22-bbd4-c289d298af8f")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="fe5474be-2090-50c4-bf4f-ea407f163620")}catch(e){}}();
3
3
  import { formatClineToolCallLabel, getClineToolCallDisplay } from "./cline-tool-call-display.js";
4
4
  import { appendAssistantChunk, appendReasoningChunk, canReturnToRunning, clearActiveTurnState, createAssistantMessage, createMessage, createReasoningMessage, finishToolCallMessage, isClineUserAttentionTool, latestAssistantMessageMatches, now, setOrCreateAssistantMessage, setOrCreateReasoningMessage, startToolCallMessage, updateSummary, } from "./cline-session-state.js";
5
- function toPreviewText(value, maxLength = 160) {
5
+ function normalizePreviewText(value) {
6
6
  if (typeof value !== "string") {
7
7
  return null;
8
8
  }
9
9
  const normalized = value.replace(/\s+/g, " ").trim();
10
+ return normalized || null;
11
+ }
12
+ function toPreviewText(value, maxLength = 160) {
13
+ const normalized = normalizePreviewText(value);
10
14
  if (!normalized) {
11
15
  return null;
12
16
  }
@@ -168,7 +172,8 @@ export function applyClineSessionEvent(input) {
168
172
  else if (typeof text === "string" && text.length > 0) {
169
173
  input.emitMessage(taskId, appendAssistantChunk(entry, taskId, text));
170
174
  }
171
- const previewText = toPreviewText(accumulated ?? text);
175
+ const fullPreviewText = normalizePreviewText(accumulated ?? text);
176
+ const previewText = toPreviewText(fullPreviewText);
172
177
  const retainedToolActivity = getRetainedClineToolActivity(entry);
173
178
  emitSummary(input, {
174
179
  state: "running",
@@ -178,7 +183,7 @@ export function applyClineSessionEvent(input) {
178
183
  activityText: previewText ?? "Agent active",
179
184
  toolName: retainedToolActivity.toolName,
180
185
  toolInputSummary: retainedToolActivity.toolInputSummary,
181
- finalMessage: previewText,
186
+ finalMessage: fullPreviewText,
182
187
  hookEventName: "assistant_delta",
183
188
  notificationType: null,
184
189
  source: "cline-sdk",
@@ -223,14 +228,15 @@ export function applyClineSessionEvent(input) {
223
228
  emitTurnCanceled(input);
224
229
  return;
225
230
  }
231
+ const previousHookActivity = entry.summary.latestHookActivity;
226
232
  const summaryPatch = {
227
233
  lastOutputAt: now(),
228
234
  lastHookAt: now(),
229
235
  latestHookActivity: {
230
- activityText: finalText ? `Final: ${finalText}` : "Waiting for review",
231
- toolName: null,
232
- toolInputSummary: null,
233
- finalMessage: finalText || null,
236
+ activityText: finalText ? `Final: ${finalText}` : (previousHookActivity?.activityText ?? null),
237
+ toolName: previousHookActivity?.toolName ?? null,
238
+ toolInputSummary: previousHookActivity?.toolInputSummary ?? null,
239
+ finalMessage: finalText || (previousHookActivity?.finalMessage ?? null),
234
240
  hookEventName: "agent_end",
235
241
  notificationType: null,
236
242
  source: "cline-sdk",
@@ -364,7 +370,8 @@ export function applyClineSessionEvent(input) {
364
370
  return;
365
371
  }
366
372
  input.emitMessage(taskId, appendAssistantChunk(entry, taskId, chunk));
367
- const previewText = toPreviewText(chunk);
373
+ const fullPreviewText = normalizePreviewText(chunk);
374
+ const previewText = toPreviewText(fullPreviewText);
368
375
  const retainedToolActivity = getRetainedClineToolActivity(entry);
369
376
  emitSummary(input, {
370
377
  state: "running",
@@ -374,7 +381,7 @@ export function applyClineSessionEvent(input) {
374
381
  activityText: previewText ?? "Agent active",
375
382
  toolName: retainedToolActivity.toolName,
376
383
  toolInputSummary: retainedToolActivity.toolInputSummary,
377
- finalMessage: previewText,
384
+ finalMessage: fullPreviewText,
378
385
  hookEventName: "assistant_delta",
379
386
  notificationType: null,
380
387
  source: "cline-sdk",
@@ -466,4 +473,4 @@ function isLikelySerializedAgentEventChunk(chunk) {
466
473
  }
467
474
  }
468
475
  //# sourceMappingURL=cline-event-adapter.js.map
469
- //# debugId=68d3eee9-3187-5f22-bbd4-c289d298af8f
476
+ //# debugId=fe5474be-2090-50c4-bf4f-ea407f163620
@@ -1 +1 @@
1
- {"version":3,"file":"cline-event-adapter.js","sources":["../../src/cline-sdk/cline-event-adapter.ts"],"sourceRoot":"","sourcesContent":["// Translates raw SDK session events into Kanban summary and message mutations.\n// Keep protocol-specific parsing here so the runtime and repository can stay\n// focused on lifecycle, storage, and task-facing orchestration.\nimport type { RuntimeTaskSessionSummary } from \"../core/api-contract.js\";\nimport { formatClineToolCallLabel, getClineToolCallDisplay } from \"./cline-tool-call-display.js\";\nimport type { ClineSdkAgentEvent, ClineSdkSessionEvent } from \"./sdk-runtime-boundary.js\";\nimport {\n\tappendAssistantChunk,\n\tappendReasoningChunk,\n\ttype ClineTaskMessage,\n\ttype ClineTaskSessionEntry,\n\tcanReturnToRunning,\n\tclearActiveTurnState,\n\tcreateAssistantMessage,\n\tcreateMessage,\n\tcreateReasoningMessage,\n\tfinishToolCallMessage,\n\tisClineUserAttentionTool,\n\tlatestAssistantMessageMatches,\n\tnow,\n\tsetOrCreateAssistantMessage,\n\tsetOrCreateReasoningMessage,\n\tstartToolCallMessage,\n\tupdateSummary,\n} from \"./cline-session-state.js\";\n\nfunction toPreviewText(value: string | null | undefined, maxLength = 160): string | null {\n\tif (typeof value !== \"string\") {\n\t\treturn null;\n\t}\n\tconst normalized = value.replace(/\\s+/g, \" \").trim();\n\tif (!normalized) {\n\t\treturn null;\n\t}\n\treturn normalized.length > maxLength ? `${normalized.slice(0, maxLength - 1).trimEnd()}…` : normalized;\n}\n\nexport interface ApplyClineSessionEventInput {\n\tevent: unknown;\n\ttaskId: string;\n\tentry: ClineTaskSessionEntry;\n\tpendingTurnCancelTaskIds: Set<string>;\n\temitSummary: (summary: RuntimeTaskSessionSummary) => void;\n\temitMessage: (taskId: string, message: ClineTaskMessage) => void;\n}\n\ntype ClineSdkChunkEvent = Extract<ClineSdkSessionEvent, { type: \"chunk\" }>;\ntype ClineSdkHookEvent = Extract<ClineSdkSessionEvent, { type: \"hook\" }>;\ntype ClineSdkEndedEvent = Extract<ClineSdkSessionEvent, { type: \"ended\" }>;\ntype ClineSdkStatusEvent = Extract<ClineSdkSessionEvent, { type: \"status\" }>;\n\nfunction asRecord(value: unknown): Record<string, unknown> | null {\n\treturn value && typeof value === \"object\" ? (value as Record<string, unknown>) : null;\n}\n\nfunction readAgentEvent(event: unknown): ClineSdkAgentEvent | null {\n\tconst record = asRecord(event);\n\tif (!record || record.type !== \"agent_event\") {\n\t\treturn null;\n\t}\n\tconst payload = asRecord(record.payload);\n\tif (!payload) {\n\t\treturn null;\n\t}\n\tconst agentEvent = asRecord(payload.event);\n\tif (!agentEvent || typeof agentEvent.type !== \"string\") {\n\t\treturn null;\n\t}\n\treturn agentEvent as unknown as ClineSdkAgentEvent;\n}\n\nfunction readChunkEvent(event: unknown): ClineSdkChunkEvent | null {\n\tconst record = asRecord(event);\n\tif (!record || record.type !== \"chunk\") {\n\t\treturn null;\n\t}\n\tconst payload = asRecord(record.payload);\n\tif (!payload || typeof payload.sessionId !== \"string\" || typeof payload.chunk !== \"string\") {\n\t\treturn null;\n\t}\n\tif (payload.stream !== \"stdout\" && payload.stream !== \"stderr\" && payload.stream !== \"agent\") {\n\t\treturn null;\n\t}\n\treturn { type: \"chunk\", payload: payload as ClineSdkChunkEvent[\"payload\"] };\n}\n\nfunction readHookEvent(event: unknown): ClineSdkHookEvent | null {\n\tconst record = asRecord(event);\n\tif (!record || record.type !== \"hook\") {\n\t\treturn null;\n\t}\n\tconst payload = asRecord(record.payload);\n\tif (!payload || typeof payload.sessionId !== \"string\") {\n\t\treturn null;\n\t}\n\treturn { type: \"hook\", payload: payload as ClineSdkHookEvent[\"payload\"] };\n}\n\nfunction readEndedEvent(event: unknown): ClineSdkEndedEvent | null {\n\tconst record = asRecord(event);\n\tif (!record || record.type !== \"ended\") {\n\t\treturn null;\n\t}\n\tconst payload = asRecord(record.payload);\n\tif (!payload || typeof payload.sessionId !== \"string\" || typeof payload.reason !== \"string\") {\n\t\treturn null;\n\t}\n\treturn { type: \"ended\", payload: payload as ClineSdkEndedEvent[\"payload\"] };\n}\n\nfunction readStatusEvent(event: unknown): ClineSdkStatusEvent | null {\n\tconst record = asRecord(event);\n\tif (!record || record.type !== \"status\") {\n\t\treturn null;\n\t}\n\tconst payload = asRecord(record.payload);\n\tif (!payload || typeof payload.sessionId !== \"string\" || typeof payload.status !== \"string\") {\n\t\treturn null;\n\t}\n\treturn { type: \"status\", payload: payload as ClineSdkStatusEvent[\"payload\"] };\n}\n\nfunction getRetainedClineToolActivity(entry: ClineTaskSessionEntry): {\n\ttoolName: string | null;\n\ttoolInputSummary: string | null;\n} {\n\tconst latestHookActivity = entry.summary.latestHookActivity;\n\tif (!latestHookActivity || latestHookActivity.source !== \"cline-sdk\" || !latestHookActivity.toolName) {\n\t\treturn {\n\t\t\ttoolName: null,\n\t\t\ttoolInputSummary: null,\n\t\t};\n\t}\n\n\treturn {\n\t\ttoolName: latestHookActivity.toolName,\n\t\ttoolInputSummary: latestHookActivity.toolInputSummary ?? null,\n\t};\n}\n\nfunction extractAgentErrorMessage(error: unknown): string | null {\n\tif (typeof error === \"string\") {\n\t\tconst normalized = error.trim();\n\t\treturn normalized.length > 0 ? normalized : null;\n\t}\n\tif (error instanceof Error) {\n\t\tconst normalized = error.message.trim();\n\t\treturn normalized.length > 0 ? normalized : null;\n\t}\n\tif (error && typeof error === \"object\" && \"message\" in error && typeof error.message === \"string\") {\n\t\tconst normalized = error.message.trim();\n\t\treturn normalized.length > 0 ? normalized : null;\n\t}\n\treturn null;\n}\n\nexport function extractClineSessionId(event: unknown): string | null {\n\tconst record = asRecord(event);\n\tif (!record) {\n\t\treturn null;\n\t}\n\tconst payload = asRecord(record.payload);\n\treturn payload && typeof payload.sessionId === \"string\" ? payload.sessionId : null;\n}\n\n// Translate raw SDK events into Kanban summary and chat mutations so the session service can stay focused on host ownership.\nexport function applyClineSessionEvent(input: ApplyClineSessionEventInput): void {\n\tconst { entry, event, taskId } = input;\n\tconst agentEvent = readAgentEvent(event);\n\tconst chunkEvent = readChunkEvent(event);\n\tconst hookEvent = readHookEvent(event);\n\tconst endedEvent = readEndedEvent(event);\n\tconst statusEvent = readStatusEvent(event);\n\n\tif (agentEvent?.type === \"error\") {\n\t\tconst errorMessage =\n\t\t\t\"error\" in agentEvent ? extractAgentErrorMessage(agentEvent.error) : null;\n\t\tconst recoverable = typeof agentEvent.recoverable === \"boolean\" ? agentEvent.recoverable : false;\n\t\tconst retainedToolActivity = getRetainedClineToolActivity(entry);\n\t\tif (!recoverable) {\n\t\t\tclearActiveTurnState(entry);\n\t\t}\n\t\tif (recoverable && errorMessage) {\n\t\t\tconst retryMsg = createMessage(taskId, \"system\", `Retrying: ${errorMessage}`);\n\t\t\tentry.messages.push(retryMsg);\n\t\t\tinput.emitMessage(taskId, retryMsg);\n\t\t}\n\t\temitSummary(input, {\n\t\t\t...(recoverable\n\t\t\t\t? {}\n\t\t\t\t: {\n\t\t\t\t\t\tstate: \"awaiting_review\",\n\t\t\t\t\t\treviewReason: \"error\",\n\t\t\t\t\t\twarningMessage: errorMessage ?? \"Unknown agent error\",\n\t\t\t\t\t}),\n\t\t\tlastOutputAt: now(),\n\t\t\tlastHookAt: now(),\n\t\t\tlatestHookActivity: {\n\t\t\t\tactivityText: recoverable\n\t\t\t\t\t? `Retrying after error: ${errorMessage ?? \"Unknown agent error\"}`\n\t\t\t\t\t: `Agent error: ${errorMessage ?? \"Unknown agent error\"}`,\n\t\t\t\ttoolName: retainedToolActivity.toolName,\n\t\t\t\ttoolInputSummary: retainedToolActivity.toolInputSummary,\n\t\t\t\tfinalMessage: recoverable ? null : (errorMessage ?? \"Unknown agent error\"),\n\t\t\t\thookEventName: \"agent_error\",\n\t\t\t\tnotificationType: null,\n\t\t\t\tsource: \"cline-sdk\",\n\t\t\t},\n\t\t});\n\t\treturn;\n\t}\n\n\tif (agentEvent?.type === \"content_start\" && agentEvent.contentType === \"text\") {\n\t\tconst accumulated = typeof agentEvent.accumulated === \"string\" ? agentEvent.accumulated : null;\n\t\tconst text = typeof agentEvent.text === \"string\" ? agentEvent.text : null;\n\t\tif (typeof accumulated === \"string\") {\n\t\t\tconst message =\n\t\t\t\tsetOrCreateAssistantMessage(entry, taskId, accumulated) ??\n\t\t\t\tcreateAssistantMessage(entry, taskId, accumulated);\n\t\t\tinput.emitMessage(taskId, message);\n\t\t} else if (typeof text === \"string\" && text.length > 0) {\n\t\t\tinput.emitMessage(taskId, appendAssistantChunk(entry, taskId, text));\n\t\t}\n\t\tconst previewText = toPreviewText(accumulated ?? text);\n\t\tconst retainedToolActivity = getRetainedClineToolActivity(entry);\n\t\temitSummary(input, {\n\t\t\tstate: \"running\",\n\t\t\tlastOutputAt: now(),\n\t\t\tlastHookAt: now(),\n\t\t\tlatestHookActivity: {\n\t\t\t\tactivityText: previewText ?? \"Agent active\",\n\t\t\t\ttoolName: retainedToolActivity.toolName,\n\t\t\t\ttoolInputSummary: retainedToolActivity.toolInputSummary,\n\t\t\t\tfinalMessage: previewText,\n\t\t\t\thookEventName: \"assistant_delta\",\n\t\t\t\tnotificationType: null,\n\t\t\t\tsource: \"cline-sdk\",\n\t\t\t},\n\t\t});\n\t\treturn;\n\t}\n\n\tif (agentEvent?.type === \"notice\") {\n\t\tconst message = typeof agentEvent.message === \"string\" ? agentEvent.message.trim() : \"\";\n\t\tif (message) {\n\t\t\tconst displayRole = typeof agentEvent.displayRole === \"string\" ? agentEvent.displayRole : \"system\";\n\t\t\tconst reason = typeof agentEvent.reason === \"string\" ? agentEvent.reason : null;\n\t\t\tconst noticeType = typeof agentEvent.noticeType === \"string\" ? agentEvent.noticeType : null;\n\t\t\tconst normalizedRole = displayRole === \"status\" ? \"status\" : \"system\";\n\t\t\tconst noticeMessage = createMessage(taskId, normalizedRole, message);\n\t\t\tnoticeMessage.meta = {\n\t\t\t\thookEventName: \"agent_notice\",\n\t\t\t\tmessageKind: noticeType,\n\t\t\t\tdisplayRole,\n\t\t\t\treason,\n\t\t\t};\n\t\t\tentry.messages.push(noticeMessage);\n\t\t\tinput.emitMessage(taskId, noticeMessage);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (agentEvent?.type === \"done\") {\n\t\tconst finalText = typeof agentEvent.text === \"string\" ? agentEvent.text.trim() : \"\";\n\t\tif (finalText) {\n\t\t\tconst message = setOrCreateAssistantMessage(entry, taskId, finalText);\n\t\t\tif (message) {\n\t\t\t\tinput.emitMessage(taskId, message);\n\t\t\t} else if (!latestAssistantMessageMatches(entry, finalText)) {\n\t\t\t\tconst assistantMessage = createMessage(taskId, \"assistant\", finalText);\n\t\t\t\tentry.messages.push(assistantMessage);\n\t\t\t\tinput.emitMessage(taskId, assistantMessage);\n\t\t\t}\n\t\t}\n\n\t\tconst doneReason = typeof agentEvent.reason === \"string\" ? agentEvent.reason : \"completed\";\n\t\tif (doneReason === \"aborted\" && input.pendingTurnCancelTaskIds.has(taskId)) {\n\t\t\temitTurnCanceled(input);\n\t\t\treturn;\n\t\t}\n\n\t\tconst summaryPatch: Partial<RuntimeTaskSessionSummary> = {\n\t\t\tlastOutputAt: now(),\n\t\t\tlastHookAt: now(),\n\t\t\tlatestHookActivity: {\n\t\t\t\tactivityText: finalText ? `Final: ${finalText}` : \"Waiting for review\",\n\t\t\t\ttoolName: null,\n\t\t\t\ttoolInputSummary: null,\n\t\t\t\tfinalMessage: finalText || null,\n\t\t\t\thookEventName: \"agent_end\",\n\t\t\t\tnotificationType: null,\n\t\t\t\tsource: \"cline-sdk\",\n\t\t\t},\n\t\t};\n\t\tif (doneReason === \"aborted\") {\n\t\t\tsummaryPatch.state = \"interrupted\";\n\t\t\tsummaryPatch.reviewReason = \"interrupted\";\n\t\t} else if (doneReason === \"error\") {\n\t\t\tsummaryPatch.state = \"awaiting_review\";\n\t\t\tsummaryPatch.reviewReason = \"error\";\n\t\t} else {\n\t\t\tsummaryPatch.state = \"awaiting_review\";\n\t\t\tsummaryPatch.reviewReason = \"hook\";\n\t\t}\n\n\t\tclearActiveTurnState(entry);\n\t\temitSummary(input, summaryPatch);\n\t\treturn;\n\t}\n\n\tif (agentEvent?.type === \"content_start\" && agentEvent.contentType === \"reasoning\") {\n\t\tconst reasoning = typeof agentEvent.reasoning === \"string\" ? agentEvent.reasoning : null;\n\t\tif (reasoning && reasoning.length > 0) {\n\t\t\tinput.emitMessage(taskId, appendReasoningChunk(entry, taskId, reasoning));\n\t\t\temitSummary(input, {\n\t\t\t\tstate: \"running\",\n\t\t\t\tlastOutputAt: now(),\n\t\t\t});\n\t\t}\n\t\treturn;\n\t}\n\n\tif (agentEvent?.type === \"content_end\" && agentEvent.contentType === \"reasoning\") {\n\t\tconst reasoning = typeof agentEvent.reasoning === \"string\" ? agentEvent.reasoning : null;\n\t\tif (reasoning) {\n\t\t\tconst message =\n\t\t\t\tsetOrCreateReasoningMessage(entry, taskId, reasoning) ?? createReasoningMessage(entry, taskId, reasoning);\n\t\t\tinput.emitMessage(taskId, message);\n\t\t}\n\t\tentry.activeReasoningMessageId = null;\n\t\temitSummary(input, {\n\t\t\tlastOutputAt: now(),\n\t\t});\n\t\treturn;\n\t}\n\n\tif (agentEvent?.type === \"content_start\" && agentEvent.contentType === \"tool\") {\n\t\tconst toolName = typeof agentEvent.toolName === \"string\" ? agentEvent.toolName : null;\n\t\tconst toolCallId = typeof agentEvent.toolCallId === \"string\" ? agentEvent.toolCallId : null;\n\t\tconst toolInput = agentEvent.input;\n\t\tconst toolDisplay = getClineToolCallDisplay(toolName, toolInput);\n\t\tconst isUserAttentionTool = isClineUserAttentionTool(toolName);\n\t\tinput.emitMessage(\n\t\t\ttaskId,\n\t\t\tstartToolCallMessage(entry, taskId, {\n\t\t\t\ttoolName,\n\t\t\t\ttoolCallId,\n\t\t\t\tinput: toolInput,\n\t\t\t}),\n\t\t);\n\t\tconst summaryPatch: Partial<RuntimeTaskSessionSummary> = {\n\t\t\tlastOutputAt: now(),\n\t\t\tlastHookAt: now(),\n\t\t\tlatestHookActivity: {\n\t\t\t\tactivityText: `Using ${formatClineToolCallLabel(toolDisplay.toolName, toolDisplay.inputSummary)}`,\n\t\t\t\ttoolName: toolDisplay.toolName,\n\t\t\t\ttoolInputSummary: toolDisplay.inputSummary,\n\t\t\t\tfinalMessage: null,\n\t\t\t\thookEventName: \"tool_call\",\n\t\t\t\tnotificationType: isUserAttentionTool ? \"user_attention\" : null,\n\t\t\t\tsource: \"cline-sdk\",\n\t\t\t},\n\t\t};\n\t\tif (isUserAttentionTool && entry.summary.state === \"running\") {\n\t\t\tsummaryPatch.state = \"awaiting_review\";\n\t\t\tsummaryPatch.reviewReason = \"hook\";\n\t\t} else if (!isUserAttentionTool && canReturnToRunning(entry.summary.reviewReason)) {\n\t\t\tsummaryPatch.state = \"running\";\n\t\t\tsummaryPatch.reviewReason = null;\n\t\t}\n\t\temitSummary(input, summaryPatch);\n\t\treturn;\n\t}\n\n\tif (agentEvent?.type === \"content_end\" && agentEvent.contentType === \"tool\") {\n\t\tconst toolName = typeof agentEvent.toolName === \"string\" ? agentEvent.toolName : null;\n\t\tconst toolCallId = typeof agentEvent.toolCallId === \"string\" ? agentEvent.toolCallId : null;\n\t\tconst toolOutput = agentEvent.output;\n\t\tconst toolError = typeof agentEvent.error === \"string\" ? agentEvent.error : null;\n\t\tconst durationMs = typeof agentEvent.durationMs === \"number\" ? agentEvent.durationMs : null;\n\t\tconst toolInput = toolCallId ? entry.toolInputByToolCallId.get(toolCallId) : undefined;\n\t\tconst toolDisplay = getClineToolCallDisplay(toolName, toolInput);\n\t\tconst isUserAttentionTool = isClineUserAttentionTool(toolName);\n\t\tinput.emitMessage(\n\t\t\ttaskId,\n\t\t\tfinishToolCallMessage(entry, taskId, {\n\t\t\t\ttoolName,\n\t\t\t\ttoolCallId,\n\t\t\t\toutput: toolOutput,\n\t\t\t\terror: toolError,\n\t\t\t\tdurationMs,\n\t\t\t}),\n\t\t);\n\t\tconst summaryPatch: Partial<RuntimeTaskSessionSummary> = {\n\t\t\tlastOutputAt: now(),\n\t\t\tlastHookAt: now(),\n\t\t\tlatestHookActivity: {\n\t\t\t\tactivityText: `${toolError ? \"Failed\" : \"Completed\"} ${formatClineToolCallLabel(toolDisplay.toolName, toolDisplay.inputSummary)}`,\n\t\t\t\ttoolName: toolDisplay.toolName,\n\t\t\t\ttoolInputSummary: toolDisplay.inputSummary,\n\t\t\t\tfinalMessage: null,\n\t\t\t\thookEventName: \"tool_result\",\n\t\t\t\tnotificationType: null,\n\t\t\t\tsource: \"cline-sdk\",\n\t\t\t},\n\t\t};\n\t\tif (isUserAttentionTool && canReturnToRunning(entry.summary.reviewReason)) {\n\t\t\tsummaryPatch.state = \"running\";\n\t\t\tsummaryPatch.reviewReason = null;\n\t\t}\n\t\temitSummary(input, summaryPatch);\n\t\treturn;\n\t}\n\n\tif (agentEvent?.type === \"content_end\" && agentEvent.contentType === \"text\") {\n\t\tconst text = typeof agentEvent.text === \"string\" ? agentEvent.text : null;\n\t\tif (text) {\n\t\t\tconst message =\n\t\t\t\tsetOrCreateAssistantMessage(entry, taskId, text) ?? createAssistantMessage(entry, taskId, text);\n\t\t\tinput.emitMessage(taskId, message);\n\t\t}\n\t\tentry.activeAssistantMessageId = null;\n\t\temitSummary(input, {\n\t\t\tlastOutputAt: now(),\n\t\t});\n\t\treturn;\n\t}\n\n\tif (chunkEvent?.payload.stream === \"agent\") {\n\t\tconst chunk = chunkEvent.payload.chunk;\n\t\tif (chunk.length === 0 || isLikelySerializedAgentEventChunk(chunk)) {\n\t\t\treturn;\n\t\t}\n\t\tinput.emitMessage(taskId, appendAssistantChunk(entry, taskId, chunk));\n\t\tconst previewText = toPreviewText(chunk);\n\t\tconst retainedToolActivity = getRetainedClineToolActivity(entry);\n\t\temitSummary(input, {\n\t\t\tstate: \"running\",\n\t\t\tlastOutputAt: now(),\n\t\t\tlastHookAt: now(),\n\t\t\tlatestHookActivity: {\n\t\t\t\tactivityText: previewText ?? \"Agent active\",\n\t\t\t\ttoolName: retainedToolActivity.toolName,\n\t\t\t\ttoolInputSummary: retainedToolActivity.toolInputSummary,\n\t\t\t\tfinalMessage: previewText,\n\t\t\t\thookEventName: \"assistant_delta\",\n\t\t\t\tnotificationType: null,\n\t\t\t\tsource: \"cline-sdk\",\n\t\t\t},\n\t\t});\n\t\treturn;\n\t}\n\n\tif (hookEvent) {\n\t\tconst hookEventName =\n\t\t\ttypeof hookEvent.payload.hookEventName === \"string\" ? hookEvent.payload.hookEventName : null;\n\t\tconst toolName = typeof hookEvent.payload.toolName === \"string\" ? hookEvent.payload.toolName : null;\n\t\tconst activityText = hookEventName && toolName ? `${hookEventName}: ${toolName}` : hookEventName;\n\t\temitSummary(input, {\n\t\t\tlastHookAt: now(),\n\t\t\tlatestHookActivity: {\n\t\t\t\tactivityText,\n\t\t\t\ttoolName,\n\t\t\t\ttoolInputSummary: null,\n\t\t\t\tfinalMessage: null,\n\t\t\t\thookEventName,\n\t\t\t\tnotificationType: null,\n\t\t\t\tsource: \"cline-sdk\",\n\t\t\t},\n\t\t});\n\t\treturn;\n\t}\n\n\tif (endedEvent) {\n\t\tconst interrupted =\n\t\t\tendedEvent.payload.reason.includes(\"abort\") || endedEvent.payload.reason.includes(\"interrupt\");\n\t\tif (interrupted && input.pendingTurnCancelTaskIds.has(taskId)) {\n\t\t\temitTurnCanceled(input);\n\t\t\treturn;\n\t\t}\n\t\tclearActiveTurnState(entry);\n\t\temitSummary(input, {\n\t\t\tstate: interrupted ? \"interrupted\" : \"awaiting_review\",\n\t\t\treviewReason: interrupted ? \"interrupted\" : \"exit\",\n\t\t\tlastOutputAt: now(),\n\t\t});\n\t\treturn;\n\t}\n\n\tif (statusEvent) {\n\t\tif (statusEvent.payload.status !== \"running\") {\n\t\t\tclearActiveTurnState(entry);\n\t\t}\n\t\temitSummary(input, {\n\t\t\tstate:\n\t\t\t\tstatusEvent.payload.status === \"running\" &&\n\t\t\t\t!(entry.summary.state === \"awaiting_review\" && canReturnToRunning(entry.summary.reviewReason))\n\t\t\t\t\t? \"running\"\n\t\t\t\t\t: entry.summary.state,\n\t\t\tlastOutputAt: now(),\n\t\t});\n\t}\n}\n\nfunction emitSummary(input: ApplyClineSessionEventInput, patch: Partial<RuntimeTaskSessionSummary>): void {\n\tinput.emitSummary(updateSummary(input.entry, patch));\n}\n\nfunction emitTurnCanceled(input: ApplyClineSessionEventInput): void {\n\tinput.pendingTurnCancelTaskIds.delete(input.taskId);\n\tclearActiveTurnState(input.entry);\n\temitSummary(input, {\n\t\tstate: \"idle\",\n\t\treviewReason: null,\n\t\tlastOutputAt: now(),\n\t\tlastHookAt: now(),\n\t\tlatestHookActivity: {\n\t\t\tactivityText: \"Turn canceled\",\n\t\t\ttoolName: null,\n\t\t\ttoolInputSummary: null,\n\t\t\tfinalMessage: null,\n\t\t\thookEventName: \"turn_canceled\",\n\t\t\tnotificationType: null,\n\t\t\tsource: \"cline-sdk\",\n\t\t},\n\t});\n}\n\nfunction isLikelySerializedAgentEventChunk(chunk: string): boolean {\n\tconst trimmed = chunk.trim();\n\tif (!trimmed) {\n\t\treturn false;\n\t}\n\tif (!(trimmed.startsWith(\"{\") || trimmed.startsWith(\"[\"))) {\n\t\treturn false;\n\t}\n\ttry {\n\t\tconst parsed = JSON.parse(trimmed);\n\t\treturn Boolean(parsed && typeof parsed === \"object\" && \"type\" in parsed);\n\t} catch {\n\t\treturn false;\n\t}\n}\n"],"names":[],"mappings":"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","debugId":"68d3eee9-3187-5f22-bbd4-c289d298af8f"}
1
+ {"version":3,"file":"cline-event-adapter.js","sources":["../../src/cline-sdk/cline-event-adapter.ts"],"sourceRoot":"","sourcesContent":["// Translates raw SDK session events into Kanban summary and message mutations.\n// Keep protocol-specific parsing here so the runtime and repository can stay\n// focused on lifecycle, storage, and task-facing orchestration.\nimport type { RuntimeTaskSessionSummary } from \"../core/api-contract.js\";\nimport { formatClineToolCallLabel, getClineToolCallDisplay } from \"./cline-tool-call-display.js\";\nimport type { ClineSdkAgentEvent, ClineSdkSessionEvent } from \"./sdk-runtime-boundary.js\";\nimport {\n\tappendAssistantChunk,\n\tappendReasoningChunk,\n\ttype ClineTaskMessage,\n\ttype ClineTaskSessionEntry,\n\tcanReturnToRunning,\n\tclearActiveTurnState,\n\tcreateAssistantMessage,\n\tcreateMessage,\n\tcreateReasoningMessage,\n\tfinishToolCallMessage,\n\tisClineUserAttentionTool,\n\tlatestAssistantMessageMatches,\n\tnow,\n\tsetOrCreateAssistantMessage,\n\tsetOrCreateReasoningMessage,\n\tstartToolCallMessage,\n\tupdateSummary,\n} from \"./cline-session-state.js\";\n\nfunction normalizePreviewText(value: string | null | undefined): string | null {\n\tif (typeof value !== \"string\") {\n\t\treturn null;\n\t}\n\tconst normalized = value.replace(/\\s+/g, \" \").trim();\n\treturn normalized || null;\n}\n\nfunction toPreviewText(value: string | null | undefined, maxLength = 160): string | null {\n\tconst normalized = normalizePreviewText(value);\n\tif (!normalized) {\n\t\treturn null;\n\t}\n\treturn normalized.length > maxLength ? `${normalized.slice(0, maxLength - 1).trimEnd()}…` : normalized;\n}\n\nexport interface ApplyClineSessionEventInput {\n\tevent: unknown;\n\ttaskId: string;\n\tentry: ClineTaskSessionEntry;\n\tpendingTurnCancelTaskIds: Set<string>;\n\temitSummary: (summary: RuntimeTaskSessionSummary) => void;\n\temitMessage: (taskId: string, message: ClineTaskMessage) => void;\n}\n\ntype ClineSdkChunkEvent = Extract<ClineSdkSessionEvent, { type: \"chunk\" }>;\ntype ClineSdkHookEvent = Extract<ClineSdkSessionEvent, { type: \"hook\" }>;\ntype ClineSdkEndedEvent = Extract<ClineSdkSessionEvent, { type: \"ended\" }>;\ntype ClineSdkStatusEvent = Extract<ClineSdkSessionEvent, { type: \"status\" }>;\n\nfunction asRecord(value: unknown): Record<string, unknown> | null {\n\treturn value && typeof value === \"object\" ? (value as Record<string, unknown>) : null;\n}\n\nfunction readAgentEvent(event: unknown): ClineSdkAgentEvent | null {\n\tconst record = asRecord(event);\n\tif (!record || record.type !== \"agent_event\") {\n\t\treturn null;\n\t}\n\tconst payload = asRecord(record.payload);\n\tif (!payload) {\n\t\treturn null;\n\t}\n\tconst agentEvent = asRecord(payload.event);\n\tif (!agentEvent || typeof agentEvent.type !== \"string\") {\n\t\treturn null;\n\t}\n\treturn agentEvent as unknown as ClineSdkAgentEvent;\n}\n\nfunction readChunkEvent(event: unknown): ClineSdkChunkEvent | null {\n\tconst record = asRecord(event);\n\tif (!record || record.type !== \"chunk\") {\n\t\treturn null;\n\t}\n\tconst payload = asRecord(record.payload);\n\tif (!payload || typeof payload.sessionId !== \"string\" || typeof payload.chunk !== \"string\") {\n\t\treturn null;\n\t}\n\tif (payload.stream !== \"stdout\" && payload.stream !== \"stderr\" && payload.stream !== \"agent\") {\n\t\treturn null;\n\t}\n\treturn { type: \"chunk\", payload: payload as ClineSdkChunkEvent[\"payload\"] };\n}\n\nfunction readHookEvent(event: unknown): ClineSdkHookEvent | null {\n\tconst record = asRecord(event);\n\tif (!record || record.type !== \"hook\") {\n\t\treturn null;\n\t}\n\tconst payload = asRecord(record.payload);\n\tif (!payload || typeof payload.sessionId !== \"string\") {\n\t\treturn null;\n\t}\n\treturn { type: \"hook\", payload: payload as ClineSdkHookEvent[\"payload\"] };\n}\n\nfunction readEndedEvent(event: unknown): ClineSdkEndedEvent | null {\n\tconst record = asRecord(event);\n\tif (!record || record.type !== \"ended\") {\n\t\treturn null;\n\t}\n\tconst payload = asRecord(record.payload);\n\tif (!payload || typeof payload.sessionId !== \"string\" || typeof payload.reason !== \"string\") {\n\t\treturn null;\n\t}\n\treturn { type: \"ended\", payload: payload as ClineSdkEndedEvent[\"payload\"] };\n}\n\nfunction readStatusEvent(event: unknown): ClineSdkStatusEvent | null {\n\tconst record = asRecord(event);\n\tif (!record || record.type !== \"status\") {\n\t\treturn null;\n\t}\n\tconst payload = asRecord(record.payload);\n\tif (!payload || typeof payload.sessionId !== \"string\" || typeof payload.status !== \"string\") {\n\t\treturn null;\n\t}\n\treturn { type: \"status\", payload: payload as ClineSdkStatusEvent[\"payload\"] };\n}\n\nfunction getRetainedClineToolActivity(entry: ClineTaskSessionEntry): {\n\ttoolName: string | null;\n\ttoolInputSummary: string | null;\n} {\n\tconst latestHookActivity = entry.summary.latestHookActivity;\n\tif (!latestHookActivity || latestHookActivity.source !== \"cline-sdk\" || !latestHookActivity.toolName) {\n\t\treturn {\n\t\t\ttoolName: null,\n\t\t\ttoolInputSummary: null,\n\t\t};\n\t}\n\n\treturn {\n\t\ttoolName: latestHookActivity.toolName,\n\t\ttoolInputSummary: latestHookActivity.toolInputSummary ?? null,\n\t};\n}\n\nfunction extractAgentErrorMessage(error: unknown): string | null {\n\tif (typeof error === \"string\") {\n\t\tconst normalized = error.trim();\n\t\treturn normalized.length > 0 ? normalized : null;\n\t}\n\tif (error instanceof Error) {\n\t\tconst normalized = error.message.trim();\n\t\treturn normalized.length > 0 ? normalized : null;\n\t}\n\tif (error && typeof error === \"object\" && \"message\" in error && typeof error.message === \"string\") {\n\t\tconst normalized = error.message.trim();\n\t\treturn normalized.length > 0 ? normalized : null;\n\t}\n\treturn null;\n}\n\nexport function extractClineSessionId(event: unknown): string | null {\n\tconst record = asRecord(event);\n\tif (!record) {\n\t\treturn null;\n\t}\n\tconst payload = asRecord(record.payload);\n\treturn payload && typeof payload.sessionId === \"string\" ? payload.sessionId : null;\n}\n\n// Translate raw SDK events into Kanban summary and chat mutations so the session service can stay focused on host ownership.\nexport function applyClineSessionEvent(input: ApplyClineSessionEventInput): void {\n\tconst { entry, event, taskId } = input;\n\tconst agentEvent = readAgentEvent(event);\n\tconst chunkEvent = readChunkEvent(event);\n\tconst hookEvent = readHookEvent(event);\n\tconst endedEvent = readEndedEvent(event);\n\tconst statusEvent = readStatusEvent(event);\n\n\tif (agentEvent?.type === \"error\") {\n\t\tconst errorMessage =\n\t\t\t\"error\" in agentEvent ? extractAgentErrorMessage(agentEvent.error) : null;\n\t\tconst recoverable = typeof agentEvent.recoverable === \"boolean\" ? agentEvent.recoverable : false;\n\t\tconst retainedToolActivity = getRetainedClineToolActivity(entry);\n\t\tif (!recoverable) {\n\t\t\tclearActiveTurnState(entry);\n\t\t}\n\t\tif (recoverable && errorMessage) {\n\t\t\tconst retryMsg = createMessage(taskId, \"system\", `Retrying: ${errorMessage}`);\n\t\t\tentry.messages.push(retryMsg);\n\t\t\tinput.emitMessage(taskId, retryMsg);\n\t\t}\n\t\temitSummary(input, {\n\t\t\t...(recoverable\n\t\t\t\t? {}\n\t\t\t\t: {\n\t\t\t\t\t\tstate: \"awaiting_review\",\n\t\t\t\t\t\treviewReason: \"error\",\n\t\t\t\t\t\twarningMessage: errorMessage ?? \"Unknown agent error\",\n\t\t\t\t\t}),\n\t\t\tlastOutputAt: now(),\n\t\t\tlastHookAt: now(),\n\t\t\tlatestHookActivity: {\n\t\t\t\tactivityText: recoverable\n\t\t\t\t\t? `Retrying after error: ${errorMessage ?? \"Unknown agent error\"}`\n\t\t\t\t\t: `Agent error: ${errorMessage ?? \"Unknown agent error\"}`,\n\t\t\t\ttoolName: retainedToolActivity.toolName,\n\t\t\t\ttoolInputSummary: retainedToolActivity.toolInputSummary,\n\t\t\t\tfinalMessage: recoverable ? null : (errorMessage ?? \"Unknown agent error\"),\n\t\t\t\thookEventName: \"agent_error\",\n\t\t\t\tnotificationType: null,\n\t\t\t\tsource: \"cline-sdk\",\n\t\t\t},\n\t\t});\n\t\treturn;\n\t}\n\n\tif (agentEvent?.type === \"content_start\" && agentEvent.contentType === \"text\") {\n\t\tconst accumulated = typeof agentEvent.accumulated === \"string\" ? agentEvent.accumulated : null;\n\t\tconst text = typeof agentEvent.text === \"string\" ? agentEvent.text : null;\n\t\tif (typeof accumulated === \"string\") {\n\t\t\tconst message =\n\t\t\t\tsetOrCreateAssistantMessage(entry, taskId, accumulated) ??\n\t\t\t\tcreateAssistantMessage(entry, taskId, accumulated);\n\t\t\tinput.emitMessage(taskId, message);\n\t\t} else if (typeof text === \"string\" && text.length > 0) {\n\t\t\tinput.emitMessage(taskId, appendAssistantChunk(entry, taskId, text));\n\t\t}\n\t\tconst fullPreviewText = normalizePreviewText(accumulated ?? text);\n\t\tconst previewText = toPreviewText(fullPreviewText);\n\t\tconst retainedToolActivity = getRetainedClineToolActivity(entry);\n\t\temitSummary(input, {\n\t\t\tstate: \"running\",\n\t\t\tlastOutputAt: now(),\n\t\t\tlastHookAt: now(),\n\t\t\tlatestHookActivity: {\n\t\t\t\tactivityText: previewText ?? \"Agent active\",\n\t\t\t\ttoolName: retainedToolActivity.toolName,\n\t\t\t\ttoolInputSummary: retainedToolActivity.toolInputSummary,\n\t\t\t\tfinalMessage: fullPreviewText,\n\t\t\t\thookEventName: \"assistant_delta\",\n\t\t\t\tnotificationType: null,\n\t\t\t\tsource: \"cline-sdk\",\n\t\t\t},\n\t\t});\n\t\treturn;\n\t}\n\n\tif (agentEvent?.type === \"notice\") {\n\t\tconst message = typeof agentEvent.message === \"string\" ? agentEvent.message.trim() : \"\";\n\t\tif (message) {\n\t\t\tconst displayRole = typeof agentEvent.displayRole === \"string\" ? agentEvent.displayRole : \"system\";\n\t\t\tconst reason = typeof agentEvent.reason === \"string\" ? agentEvent.reason : null;\n\t\t\tconst noticeType = typeof agentEvent.noticeType === \"string\" ? agentEvent.noticeType : null;\n\t\t\tconst normalizedRole = displayRole === \"status\" ? \"status\" : \"system\";\n\t\t\tconst noticeMessage = createMessage(taskId, normalizedRole, message);\n\t\t\tnoticeMessage.meta = {\n\t\t\t\thookEventName: \"agent_notice\",\n\t\t\t\tmessageKind: noticeType,\n\t\t\t\tdisplayRole,\n\t\t\t\treason,\n\t\t\t};\n\t\t\tentry.messages.push(noticeMessage);\n\t\t\tinput.emitMessage(taskId, noticeMessage);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (agentEvent?.type === \"done\") {\n\t\tconst finalText = typeof agentEvent.text === \"string\" ? agentEvent.text.trim() : \"\";\n\t\tif (finalText) {\n\t\t\tconst message = setOrCreateAssistantMessage(entry, taskId, finalText);\n\t\t\tif (message) {\n\t\t\t\tinput.emitMessage(taskId, message);\n\t\t\t} else if (!latestAssistantMessageMatches(entry, finalText)) {\n\t\t\t\tconst assistantMessage = createMessage(taskId, \"assistant\", finalText);\n\t\t\t\tentry.messages.push(assistantMessage);\n\t\t\t\tinput.emitMessage(taskId, assistantMessage);\n\t\t\t}\n\t\t}\n\n\t\tconst doneReason = typeof agentEvent.reason === \"string\" ? agentEvent.reason : \"completed\";\n\t\tif (doneReason === \"aborted\" && input.pendingTurnCancelTaskIds.has(taskId)) {\n\t\t\temitTurnCanceled(input);\n\t\t\treturn;\n\t\t}\n\n\t\tconst previousHookActivity = entry.summary.latestHookActivity;\n\t\tconst summaryPatch: Partial<RuntimeTaskSessionSummary> = {\n\t\t\tlastOutputAt: now(),\n\t\t\tlastHookAt: now(),\n\t\t\tlatestHookActivity: {\n\t\t\t\tactivityText: finalText ? `Final: ${finalText}` : (previousHookActivity?.activityText ?? null),\n\t\t\t\ttoolName: previousHookActivity?.toolName ?? null,\n\t\t\t\ttoolInputSummary: previousHookActivity?.toolInputSummary ?? null,\n\t\t\t\tfinalMessage: finalText || (previousHookActivity?.finalMessage ?? null),\n\t\t\t\thookEventName: \"agent_end\",\n\t\t\t\tnotificationType: null,\n\t\t\t\tsource: \"cline-sdk\",\n\t\t\t},\n\t\t};\n\t\tif (doneReason === \"aborted\") {\n\t\t\tsummaryPatch.state = \"interrupted\";\n\t\t\tsummaryPatch.reviewReason = \"interrupted\";\n\t\t} else if (doneReason === \"error\") {\n\t\t\tsummaryPatch.state = \"awaiting_review\";\n\t\t\tsummaryPatch.reviewReason = \"error\";\n\t\t} else {\n\t\t\tsummaryPatch.state = \"awaiting_review\";\n\t\t\tsummaryPatch.reviewReason = \"hook\";\n\t\t}\n\n\t\tclearActiveTurnState(entry);\n\t\temitSummary(input, summaryPatch);\n\t\treturn;\n\t}\n\n\tif (agentEvent?.type === \"content_start\" && agentEvent.contentType === \"reasoning\") {\n\t\tconst reasoning = typeof agentEvent.reasoning === \"string\" ? agentEvent.reasoning : null;\n\t\tif (reasoning && reasoning.length > 0) {\n\t\t\tinput.emitMessage(taskId, appendReasoningChunk(entry, taskId, reasoning));\n\t\t\temitSummary(input, {\n\t\t\t\tstate: \"running\",\n\t\t\t\tlastOutputAt: now(),\n\t\t\t});\n\t\t}\n\t\treturn;\n\t}\n\n\tif (agentEvent?.type === \"content_end\" && agentEvent.contentType === \"reasoning\") {\n\t\tconst reasoning = typeof agentEvent.reasoning === \"string\" ? agentEvent.reasoning : null;\n\t\tif (reasoning) {\n\t\t\tconst message =\n\t\t\t\tsetOrCreateReasoningMessage(entry, taskId, reasoning) ?? createReasoningMessage(entry, taskId, reasoning);\n\t\t\tinput.emitMessage(taskId, message);\n\t\t}\n\t\tentry.activeReasoningMessageId = null;\n\t\temitSummary(input, {\n\t\t\tlastOutputAt: now(),\n\t\t});\n\t\treturn;\n\t}\n\n\tif (agentEvent?.type === \"content_start\" && agentEvent.contentType === \"tool\") {\n\t\tconst toolName = typeof agentEvent.toolName === \"string\" ? agentEvent.toolName : null;\n\t\tconst toolCallId = typeof agentEvent.toolCallId === \"string\" ? agentEvent.toolCallId : null;\n\t\tconst toolInput = agentEvent.input;\n\t\tconst toolDisplay = getClineToolCallDisplay(toolName, toolInput);\n\t\tconst isUserAttentionTool = isClineUserAttentionTool(toolName);\n\t\tinput.emitMessage(\n\t\t\ttaskId,\n\t\t\tstartToolCallMessage(entry, taskId, {\n\t\t\t\ttoolName,\n\t\t\t\ttoolCallId,\n\t\t\t\tinput: toolInput,\n\t\t\t}),\n\t\t);\n\t\tconst summaryPatch: Partial<RuntimeTaskSessionSummary> = {\n\t\t\tlastOutputAt: now(),\n\t\t\tlastHookAt: now(),\n\t\t\tlatestHookActivity: {\n\t\t\t\tactivityText: `Using ${formatClineToolCallLabel(toolDisplay.toolName, toolDisplay.inputSummary)}`,\n\t\t\t\ttoolName: toolDisplay.toolName,\n\t\t\t\ttoolInputSummary: toolDisplay.inputSummary,\n\t\t\t\tfinalMessage: null,\n\t\t\t\thookEventName: \"tool_call\",\n\t\t\t\tnotificationType: isUserAttentionTool ? \"user_attention\" : null,\n\t\t\t\tsource: \"cline-sdk\",\n\t\t\t},\n\t\t};\n\t\tif (isUserAttentionTool && entry.summary.state === \"running\") {\n\t\t\tsummaryPatch.state = \"awaiting_review\";\n\t\t\tsummaryPatch.reviewReason = \"hook\";\n\t\t} else if (!isUserAttentionTool && canReturnToRunning(entry.summary.reviewReason)) {\n\t\t\tsummaryPatch.state = \"running\";\n\t\t\tsummaryPatch.reviewReason = null;\n\t\t}\n\t\temitSummary(input, summaryPatch);\n\t\treturn;\n\t}\n\n\tif (agentEvent?.type === \"content_end\" && agentEvent.contentType === \"tool\") {\n\t\tconst toolName = typeof agentEvent.toolName === \"string\" ? agentEvent.toolName : null;\n\t\tconst toolCallId = typeof agentEvent.toolCallId === \"string\" ? agentEvent.toolCallId : null;\n\t\tconst toolOutput = agentEvent.output;\n\t\tconst toolError = typeof agentEvent.error === \"string\" ? agentEvent.error : null;\n\t\tconst durationMs = typeof agentEvent.durationMs === \"number\" ? agentEvent.durationMs : null;\n\t\tconst toolInput = toolCallId ? entry.toolInputByToolCallId.get(toolCallId) : undefined;\n\t\tconst toolDisplay = getClineToolCallDisplay(toolName, toolInput);\n\t\tconst isUserAttentionTool = isClineUserAttentionTool(toolName);\n\t\tinput.emitMessage(\n\t\t\ttaskId,\n\t\t\tfinishToolCallMessage(entry, taskId, {\n\t\t\t\ttoolName,\n\t\t\t\ttoolCallId,\n\t\t\t\toutput: toolOutput,\n\t\t\t\terror: toolError,\n\t\t\t\tdurationMs,\n\t\t\t}),\n\t\t);\n\t\tconst summaryPatch: Partial<RuntimeTaskSessionSummary> = {\n\t\t\tlastOutputAt: now(),\n\t\t\tlastHookAt: now(),\n\t\t\tlatestHookActivity: {\n\t\t\t\tactivityText: `${toolError ? \"Failed\" : \"Completed\"} ${formatClineToolCallLabel(toolDisplay.toolName, toolDisplay.inputSummary)}`,\n\t\t\t\ttoolName: toolDisplay.toolName,\n\t\t\t\ttoolInputSummary: toolDisplay.inputSummary,\n\t\t\t\tfinalMessage: null,\n\t\t\t\thookEventName: \"tool_result\",\n\t\t\t\tnotificationType: null,\n\t\t\t\tsource: \"cline-sdk\",\n\t\t\t},\n\t\t};\n\t\tif (isUserAttentionTool && canReturnToRunning(entry.summary.reviewReason)) {\n\t\t\tsummaryPatch.state = \"running\";\n\t\t\tsummaryPatch.reviewReason = null;\n\t\t}\n\t\temitSummary(input, summaryPatch);\n\t\treturn;\n\t}\n\n\tif (agentEvent?.type === \"content_end\" && agentEvent.contentType === \"text\") {\n\t\tconst text = typeof agentEvent.text === \"string\" ? agentEvent.text : null;\n\t\tif (text) {\n\t\t\tconst message =\n\t\t\t\tsetOrCreateAssistantMessage(entry, taskId, text) ?? createAssistantMessage(entry, taskId, text);\n\t\t\tinput.emitMessage(taskId, message);\n\t\t}\n\t\tentry.activeAssistantMessageId = null;\n\t\temitSummary(input, {\n\t\t\tlastOutputAt: now(),\n\t\t});\n\t\treturn;\n\t}\n\n\tif (chunkEvent?.payload.stream === \"agent\") {\n\t\tconst chunk = chunkEvent.payload.chunk;\n\t\tif (chunk.length === 0 || isLikelySerializedAgentEventChunk(chunk)) {\n\t\t\treturn;\n\t\t}\n\t\tinput.emitMessage(taskId, appendAssistantChunk(entry, taskId, chunk));\n\t\tconst fullPreviewText = normalizePreviewText(chunk);\n\t\tconst previewText = toPreviewText(fullPreviewText);\n\t\tconst retainedToolActivity = getRetainedClineToolActivity(entry);\n\t\temitSummary(input, {\n\t\t\tstate: \"running\",\n\t\t\tlastOutputAt: now(),\n\t\t\tlastHookAt: now(),\n\t\t\tlatestHookActivity: {\n\t\t\t\tactivityText: previewText ?? \"Agent active\",\n\t\t\t\ttoolName: retainedToolActivity.toolName,\n\t\t\t\ttoolInputSummary: retainedToolActivity.toolInputSummary,\n\t\t\t\tfinalMessage: fullPreviewText,\n\t\t\t\thookEventName: \"assistant_delta\",\n\t\t\t\tnotificationType: null,\n\t\t\t\tsource: \"cline-sdk\",\n\t\t\t},\n\t\t});\n\t\treturn;\n\t}\n\n\tif (hookEvent) {\n\t\tconst hookEventName =\n\t\t\ttypeof hookEvent.payload.hookEventName === \"string\" ? hookEvent.payload.hookEventName : null;\n\t\tconst toolName = typeof hookEvent.payload.toolName === \"string\" ? hookEvent.payload.toolName : null;\n\t\tconst activityText = hookEventName && toolName ? `${hookEventName}: ${toolName}` : hookEventName;\n\t\temitSummary(input, {\n\t\t\tlastHookAt: now(),\n\t\t\tlatestHookActivity: {\n\t\t\t\tactivityText,\n\t\t\t\ttoolName,\n\t\t\t\ttoolInputSummary: null,\n\t\t\t\tfinalMessage: null,\n\t\t\t\thookEventName,\n\t\t\t\tnotificationType: null,\n\t\t\t\tsource: \"cline-sdk\",\n\t\t\t},\n\t\t});\n\t\treturn;\n\t}\n\n\tif (endedEvent) {\n\t\tconst interrupted =\n\t\t\tendedEvent.payload.reason.includes(\"abort\") || endedEvent.payload.reason.includes(\"interrupt\");\n\t\tif (interrupted && input.pendingTurnCancelTaskIds.has(taskId)) {\n\t\t\temitTurnCanceled(input);\n\t\t\treturn;\n\t\t}\n\t\tclearActiveTurnState(entry);\n\t\temitSummary(input, {\n\t\t\tstate: interrupted ? \"interrupted\" : \"awaiting_review\",\n\t\t\treviewReason: interrupted ? \"interrupted\" : \"exit\",\n\t\t\tlastOutputAt: now(),\n\t\t});\n\t\treturn;\n\t}\n\n\tif (statusEvent) {\n\t\tif (statusEvent.payload.status !== \"running\") {\n\t\t\tclearActiveTurnState(entry);\n\t\t}\n\t\temitSummary(input, {\n\t\t\tstate:\n\t\t\t\tstatusEvent.payload.status === \"running\" &&\n\t\t\t\t!(entry.summary.state === \"awaiting_review\" && canReturnToRunning(entry.summary.reviewReason))\n\t\t\t\t\t? \"running\"\n\t\t\t\t\t: entry.summary.state,\n\t\t\tlastOutputAt: now(),\n\t\t});\n\t}\n}\n\nfunction emitSummary(input: ApplyClineSessionEventInput, patch: Partial<RuntimeTaskSessionSummary>): void {\n\tinput.emitSummary(updateSummary(input.entry, patch));\n}\n\nfunction emitTurnCanceled(input: ApplyClineSessionEventInput): void {\n\tinput.pendingTurnCancelTaskIds.delete(input.taskId);\n\tclearActiveTurnState(input.entry);\n\temitSummary(input, {\n\t\tstate: \"idle\",\n\t\treviewReason: null,\n\t\tlastOutputAt: now(),\n\t\tlastHookAt: now(),\n\t\tlatestHookActivity: {\n\t\t\tactivityText: \"Turn canceled\",\n\t\t\ttoolName: null,\n\t\t\ttoolInputSummary: null,\n\t\t\tfinalMessage: null,\n\t\t\thookEventName: \"turn_canceled\",\n\t\t\tnotificationType: null,\n\t\t\tsource: \"cline-sdk\",\n\t\t},\n\t});\n}\n\nfunction isLikelySerializedAgentEventChunk(chunk: string): boolean {\n\tconst trimmed = chunk.trim();\n\tif (!trimmed) {\n\t\treturn false;\n\t}\n\tif (!(trimmed.startsWith(\"{\") || trimmed.startsWith(\"[\"))) {\n\t\treturn false;\n\t}\n\ttry {\n\t\tconst parsed = JSON.parse(trimmed);\n\t\treturn Boolean(parsed && typeof parsed === \"object\" && \"type\" in parsed);\n\t} catch {\n\t\treturn false;\n\t}\n}\n"],"names":[],"mappings":"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","debugId":"fe5474be-2090-50c4-bf4f-ea407f163620"}
@@ -1,10 +1,11 @@
1
- import type { RuntimeClineAccountProfileResponse, RuntimeClineKanbanAccessResponse, RuntimeClineOauthLoginResponse, RuntimeClineProviderCatalogResponse, RuntimeClineProviderModelsResponse, RuntimeClineProviderSettings, RuntimeClineProviderSettingsSaveResponse } from "../core/api-contract.js";
1
+ import type { RuntimeClineAccountProfileResponse, RuntimeClineKanbanAccessResponse, RuntimeClineOauthLoginResponse, RuntimeClineProviderCatalogResponse, RuntimeClineProviderModelsResponse, RuntimeClineProviderSettings, RuntimeClineProviderSettingsSaveResponse, RuntimeClineReasoningEffort } from "../core/api-contract.js";
2
2
  import { type ManagedClineOauthProviderId } from "./sdk-provider-boundary.js";
3
3
  export interface ResolvedClineLaunchConfig {
4
4
  providerId: string;
5
5
  modelId: string | null;
6
6
  apiKey: string | null;
7
7
  baseUrl: string | null;
8
+ reasoningEffort: RuntimeClineReasoningEffort | null;
8
9
  }
9
10
  export declare function createClineProviderService(): {
10
11
  getProviderSettingsSummary(): RuntimeClineProviderSettings;
@@ -18,6 +19,7 @@ export declare function createClineProviderService(): {
18
19
  modelId?: string | null;
19
20
  apiKey?: string | null;
20
21
  baseUrl?: string | null;
22
+ reasoningEffort?: RuntimeClineReasoningEffort | null;
21
23
  }): RuntimeClineProviderSettingsSaveResponse;
22
24
  runOauthLogin(input: {
23
25
  providerId: ManagedClineOauthProviderId;
@@ -1 +1 @@
1
- {"version":3,"file":"cline-provider-service.d.ts","sourceRoot":"","sources":["../../src/cline-sdk/cline-provider-service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,kCAAkC,EAClC,gCAAgC,EAChC,8BAA8B,EAE9B,mCAAmC,EAEnC,kCAAkC,EAClC,4BAA4B,EAC5B,wCAAwC,EACxC,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAGN,KAAK,2BAA2B,EAUhC,MAAM,4BAA4B,CAAC;AAepC,MAAM,WAAW,yBAAyB;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AA2PD,wBAAgB,0BAA0B;kCAKV,4BAA4B;8BAI1B,OAAO,CAAC,kCAAkC,CAAC;4BA0D7C,OAAO,CAAC,gCAAgC,CAAC;2BAuC1C,OAAO,CAAC,yBAAyB,CAAC;0BA+BnC,OAAO,CAAC,mCAAmC,CAAC;kCAwCpC,MAAM,GAAG,OAAO,CAAC,kCAAkC,CAAC;gCAkD5D;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,GAAG,wCAAwC;yBAsDjB;QAC1B,UAAU,EAAE,2BAA2B,CAAC;QACxC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,GAAG,OAAO,CAAC,8BAA8B,CAAC;EAmD5C"}
1
+ {"version":3,"file":"cline-provider-service.d.ts","sourceRoot":"","sources":["../../src/cline-sdk/cline-provider-service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,kCAAkC,EAClC,gCAAgC,EAChC,8BAA8B,EAE9B,mCAAmC,EAEnC,kCAAkC,EAClC,4BAA4B,EAC5B,wCAAwC,EACxC,2BAA2B,EAC3B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAGN,KAAK,2BAA2B,EAWhC,MAAM,4BAA4B,CAAC;AAepC,MAAM,WAAW,yBAAyB;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE,2BAA2B,GAAG,IAAI,CAAC;CACpD;AA+PD,wBAAgB,0BAA0B;kCAKV,4BAA4B;8BAI1B,OAAO,CAAC,kCAAkC,CAAC;4BA0D7C,OAAO,CAAC,gCAAgC,CAAC;2BAuC1C,OAAO,CAAC,yBAAyB,CAAC;0BAgCnC,OAAO,CAAC,mCAAmC,CAAC;kCAwCpC,MAAM,GAAG,OAAO,CAAC,kCAAkC,CAAC;gCAkC5D;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,eAAe,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAC;KACrD,GAAG,wCAAwC;yBAwEjB;QAC1B,UAAU,EAAE,2BAA2B,CAAC;QACxC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,GAAG,OAAO,CAAC,8BAA8B,CAAC;EAmD5C"}
@@ -1,8 +1,8 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ddee5c60-966e-5611-9e05-7e8189cedaed")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a50686b7-715e-53de-af0d-76a7fe02c8af")}catch(e){}}();
3
3
  import { openInBrowser } from "../server/browser.js";
4
4
  import { z } from "zod";
5
- import { fetchSdkClineAccountProfile, fetchSdkClineUserRemoteConfig, getLastUsedSdkProviderSettings, getSdkProviderSettings, listSdkProviderCatalog, listSdkProviderModels, loginManagedOauthProvider, refreshManagedOauthCredentials, saveSdkProviderSettings, fetchSdkOrgData, } from "./sdk-provider-boundary.js";
5
+ import { fetchSdkClineAccountProfile, fetchSdkClineUserRemoteConfig, getLastUsedSdkProviderSettings, getSdkProviderSettings, listSdkProviderCatalog, listSdkProviderModels, loginManagedOauthProvider, refreshManagedOauthCredentials, saveSdkProviderSettings, fetchSdkOrgData, supportsSdkModelThinking, } from "./sdk-provider-boundary.js";
6
6
  const WORKOS_TOKEN_PREFIX = "workos:";
7
7
  const DEFAULT_CLINE_API_BASE_URL = "https://api.cline.bot";
8
8
  const MANAGED_PROVIDER_ENV_KEYS = {
@@ -108,11 +108,13 @@ function toRuntimeProviderModel(modelId, modelInfo) {
108
108
  const capabilities = new Set(modelInfo.capabilities ?? []);
109
109
  const supportsVision = capabilities.has("images");
110
110
  const supportsAttachments = capabilities.has("files") || supportsVision;
111
+ const supportsReasoningEffort = supportsSdkModelThinking(modelInfo);
111
112
  return {
112
113
  id: modelId,
113
114
  name: modelInfo.name?.trim() || modelId,
114
115
  supportsVision: supportsVision || undefined,
115
116
  supportsAttachments: supportsAttachments || undefined,
117
+ supportsReasoningEffort: supportsReasoningEffort || undefined,
116
118
  };
117
119
  }
118
120
  function createEmptyProviderSettingsSummary() {
@@ -120,6 +122,7 @@ function createEmptyProviderSettingsSummary() {
120
122
  providerId: null,
121
123
  modelId: null,
122
124
  baseUrl: null,
125
+ reasoningEffort: null,
123
126
  apiKeyConfigured: false,
124
127
  oauthProvider: null,
125
128
  oauthAccessTokenConfigured: false,
@@ -138,6 +141,7 @@ function toProviderSettingsSummary(settings) {
138
141
  providerId,
139
142
  modelId: settings.model?.trim() || null,
140
143
  baseUrl: settings.baseUrl?.trim() || null,
144
+ reasoningEffort: settings.reasoning?.effort ?? null,
141
145
  apiKeyConfigured: Boolean(resolveVisibleApiKey(settings)),
142
146
  oauthProvider,
143
147
  oauthAccessTokenConfigured: hasOauthAccessToken(settings),
@@ -333,6 +337,7 @@ export function createClineProviderService() {
333
337
  modelId: resolvedSettings.model?.trim() || null,
334
338
  apiKey,
335
339
  baseUrl: resolvedSettings.baseUrl?.trim() || null,
340
+ reasoningEffort: resolvedSettings.reasoning?.effort ?? null,
336
341
  };
337
342
  },
338
343
  async getProviderCatalog() {
@@ -374,17 +379,7 @@ export function createClineProviderService() {
374
379
  const providerModels = normalizedProviderId.length > 0
375
380
  ? await listSdkProviderModels(normalizedProviderId)
376
381
  .then((sdkModels) => Object.entries(sdkModels)
377
- .map(([modelId, modelInfo]) => {
378
- const parsedModelInfo = typeof modelInfo === "object" && modelInfo !== null
379
- ? modelInfo
380
- : null;
381
- return toRuntimeProviderModel(modelId, {
382
- name: typeof parsedModelInfo?.name === "string" ? parsedModelInfo.name : undefined,
383
- capabilities: Array.isArray(parsedModelInfo?.capabilities)
384
- ? parsedModelInfo.capabilities.filter((value) => typeof value === "string")
385
- : undefined,
386
- });
387
- })
382
+ .map(([modelId, modelInfo]) => toRuntimeProviderModel(modelId, modelInfo))
388
383
  .sort((left, right) => left.name.localeCompare(right.name)))
389
384
  .catch(() => [])
390
385
  : [];
@@ -445,6 +440,23 @@ export function createClineProviderService() {
445
440
  delete nextSettings.apiKey;
446
441
  }
447
442
  }
443
+ if (input.reasoningEffort !== undefined) {
444
+ const nextReasoning = { ...(nextSettings.reasoning ?? {}) };
445
+ if (input.reasoningEffort) {
446
+ nextReasoning.effort = input.reasoningEffort;
447
+ }
448
+ else {
449
+ delete nextReasoning.effort;
450
+ }
451
+ if (nextReasoning.enabled === undefined &&
452
+ nextReasoning.effort === undefined &&
453
+ nextReasoning.budgetTokens === undefined) {
454
+ delete nextSettings.reasoning;
455
+ }
456
+ else {
457
+ nextSettings.reasoning = nextReasoning;
458
+ }
459
+ }
448
460
  if (!isManagedOauthProviderId(providerId)) {
449
461
  delete nextSettings.auth;
450
462
  }
@@ -506,4 +518,4 @@ export function createClineProviderService() {
506
518
  };
507
519
  }
508
520
  //# sourceMappingURL=cline-provider-service.js.map
509
- //# debugId=ddee5c60-966e-5611-9e05-7e8189cedaed
521
+ //# debugId=a50686b7-715e-53de-af0d-76a7fe02c8af
@@ -1 +1 @@
1
- {"version":3,"file":"cline-provider-service.js","sources":["../../src/cline-sdk/cline-provider-service.ts"],"sourceRoot":"","sourcesContent":["// Kanban-facing facade over the SDK-backed provider store.\n// It resolves provider settings, model catalogs, OAuth flows, and launch\n// config without leaking SDK details into runtime-api.ts or the UI.\nimport type {\n\tRuntimeClineAccountProfileResponse,\n\tRuntimeClineKanbanAccessResponse,\n\tRuntimeClineOauthLoginResponse,\n\tRuntimeClineProviderCatalogItem,\n\tRuntimeClineProviderCatalogResponse,\n\tRuntimeClineProviderModel,\n\tRuntimeClineProviderModelsResponse,\n\tRuntimeClineProviderSettings,\n\tRuntimeClineProviderSettingsSaveResponse,\n} from \"../core/api-contract.js\";\nimport { openInBrowser } from \"../server/browser.js\";\nimport { z } from \"zod\";\nimport {\n\tfetchSdkClineAccountProfile,\n\tfetchSdkClineUserRemoteConfig,\n\ttype ManagedClineOauthProviderId,\n\ttype SdkProviderSettings,\n\tgetLastUsedSdkProviderSettings,\n\tgetSdkProviderSettings,\n\tlistSdkProviderCatalog,\n\tlistSdkProviderModels,\n\tloginManagedOauthProvider,\n\trefreshManagedOauthCredentials,\n\tsaveSdkProviderSettings,\n\tfetchSdkOrgData,\n} from \"./sdk-provider-boundary.js\";\n\nconst WORKOS_TOKEN_PREFIX = \"workos:\";\nconst DEFAULT_CLINE_API_BASE_URL = \"https://api.cline.bot\";\nconst MANAGED_PROVIDER_ENV_KEYS: Record<ManagedClineOauthProviderId, readonly string[]> = {\n\tcline: [\"CLINE_API_KEY\"],\n\toca: [\"OCA_API_KEY\"],\n\t\"openai-codex\": [],\n};\nconst CLINE_REMOTE_CONFIG_SCHEMA = z.object({\n\tkanbanEnabled: z.boolean().optional(),\n});\n\ntype ClineRemoteConfig = z.infer<typeof CLINE_REMOTE_CONFIG_SCHEMA>;\n\nexport interface ResolvedClineLaunchConfig {\n\tproviderId: string;\n\tmodelId: string | null;\n\tapiKey: string | null;\n\tbaseUrl: string | null;\n}\n\nfunction toErrorMessage(error: unknown): string {\n\tif (error instanceof Error) {\n\t\treturn error.message;\n\t}\n\treturn String(error);\n}\n\nfunction parseClineRemoteConfigValue(value: string): ClineRemoteConfig {\n\tconst parsed = JSON.parse(value) as unknown;\n\treturn CLINE_REMOTE_CONFIG_SCHEMA.parse(parsed);\n}\n\nfunction isManagedOauthProviderId(providerId: string): providerId is ManagedClineOauthProviderId {\n\treturn providerId === \"cline\" || providerId === \"oca\" || providerId === \"openai-codex\";\n}\n\nfunction formatManagedProviderDisplayName(providerId: ManagedClineOauthProviderId): string {\n\tif (providerId === \"cline\") {\n\t\treturn \"Cline\";\n\t}\n\tif (providerId === \"oca\") {\n\t\treturn \"Oracle Code Assist\";\n\t}\n\treturn \"OpenAI Codex\";\n}\n\nfunction stripWorkosPrefix(accessToken: string): string {\n\tif (accessToken.toLowerCase().startsWith(WORKOS_TOKEN_PREFIX)) {\n\t\treturn accessToken.slice(WORKOS_TOKEN_PREFIX.length);\n\t}\n\treturn accessToken;\n}\n\nfunction ensureWorkosPrefix(accessToken: string): string {\n\tconst normalized = accessToken.trim();\n\tif (!normalized) {\n\t\treturn normalized;\n\t}\n\tif (normalized.toLowerCase().startsWith(WORKOS_TOKEN_PREFIX)) {\n\t\treturn normalized;\n\t}\n\treturn `${WORKOS_TOKEN_PREFIX}${normalized}`;\n}\n\nfunction toProviderApiKey(providerId: ManagedClineOauthProviderId, accessToken: string): string {\n\tif (providerId === \"cline\") {\n\t\treturn `${WORKOS_TOKEN_PREFIX}${accessToken}`;\n\t}\n\treturn accessToken;\n}\n\nfunction normalizeEpochMs(expiresAt: number | null | undefined): number {\n\tif (!expiresAt || !Number.isFinite(expiresAt) || expiresAt <= 0) {\n\t\treturn Date.now() - 1;\n\t}\n\tif (expiresAt >= 1_000_000_000_000) {\n\t\treturn Math.floor(expiresAt);\n\t}\n\treturn Math.floor(expiresAt * 1000);\n}\n\nfunction toResponseExpirySeconds(expiresAt: number | null | undefined): number | null {\n\tif (!expiresAt || !Number.isFinite(expiresAt) || expiresAt <= 0) {\n\t\treturn null;\n\t}\n\treturn Math.max(1, Math.floor(normalizeEpochMs(expiresAt) / 1000));\n}\n\nfunction resolveVisibleApiKey(settings: SdkProviderSettings | null): string | null {\n\tconst apiKey = settings?.apiKey?.trim() || settings?.auth?.apiKey?.trim() || \"\";\n\treturn apiKey.length > 0 ? apiKey : null;\n}\n\nfunction readEnvApiKey(envKey: string): string | null {\n\tconst apiKey = process.env[envKey]?.trim() ?? \"\";\n\treturn apiKey.length > 0 ? apiKey : null;\n}\n\nfunction resolveManagedProviderEnvApiKey(providerId: ManagedClineOauthProviderId): string | null {\n\tfor (const envKey of MANAGED_PROVIDER_ENV_KEYS[providerId]) {\n\t\tconst apiKey = readEnvApiKey(envKey);\n\t\tif (apiKey) {\n\t\t\treturn apiKey;\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction resolveManagedProviderLaunchApiKey(input: {\n\tproviderId: ManagedClineOauthProviderId;\n\tsettings: SdkProviderSettings;\n\toauthApiKey: string | null;\n}): string {\n\tconst resolvedApiKey =\n\t\tinput.oauthApiKey ?? resolveVisibleApiKey(input.settings) ?? resolveManagedProviderEnvApiKey(input.providerId);\n\tif (resolvedApiKey) {\n\t\treturn resolvedApiKey;\n\t}\n\n\tconst envKeys = MANAGED_PROVIDER_ENV_KEYS[input.providerId];\n\tconst envHelp = envKeys.length > 0 ? ` or set ${envKeys.join(\" or \")}` : \"\";\n\tthrow new Error(\n\t\t`${formatManagedProviderDisplayName(input.providerId)} provider is selected but no ${formatManagedProviderDisplayName(input.providerId)} credentials are configured. Sign in from Settings${envHelp} before starting a native Cline task.`,\n\t);\n}\n\nfunction hasOauthAccessToken(settings: SdkProviderSettings | null): boolean {\n\treturn (settings?.auth?.accessToken?.trim() ?? \"\").length > 0;\n}\n\nfunction hasOauthRefreshToken(settings: SdkProviderSettings | null): boolean {\n\treturn (settings?.auth?.refreshToken?.trim() ?? \"\").length > 0;\n}\n\nfunction toRuntimeProviderModel(\n\tmodelId: string,\n\tmodelInfo: { name?: string; capabilities?: string[] },\n): RuntimeClineProviderModel {\n\tconst capabilities = new Set(modelInfo.capabilities ?? []);\n\tconst supportsVision = capabilities.has(\"images\");\n\tconst supportsAttachments = capabilities.has(\"files\") || supportsVision;\n\treturn {\n\t\tid: modelId,\n\t\tname: modelInfo.name?.trim() || modelId,\n\t\tsupportsVision: supportsVision || undefined,\n\t\tsupportsAttachments: supportsAttachments || undefined,\n\t};\n}\n\nfunction createEmptyProviderSettingsSummary(): RuntimeClineProviderSettings {\n\treturn {\n\t\tproviderId: null,\n\t\tmodelId: null,\n\t\tbaseUrl: null,\n\t\tapiKeyConfigured: false,\n\t\toauthProvider: null,\n\t\toauthAccessTokenConfigured: false,\n\t\toauthRefreshTokenConfigured: false,\n\t\toauthAccountId: null,\n\t\toauthExpiresAt: null,\n\t};\n}\n\nfunction toProviderSettingsSummary(settings: SdkProviderSettings | null): RuntimeClineProviderSettings {\n\tif (!settings) {\n\t\treturn createEmptyProviderSettingsSummary();\n\t}\n\n\tconst providerId = settings.provider?.trim() || null;\n\tconst oauthProvider = providerId && isManagedOauthProviderId(providerId) ? providerId : null;\n\n\treturn {\n\t\tproviderId,\n\t\tmodelId: settings.model?.trim() || null,\n\t\tbaseUrl: settings.baseUrl?.trim() || null,\n\t\tapiKeyConfigured: Boolean(resolveVisibleApiKey(settings)),\n\t\toauthProvider,\n\t\toauthAccessTokenConfigured: hasOauthAccessToken(settings),\n\t\toauthRefreshTokenConfigured: hasOauthRefreshToken(settings),\n\t\toauthAccountId: settings.auth?.accountId?.trim() || null,\n\t\toauthExpiresAt: toResponseExpirySeconds(settings.auth?.expiresAt),\n\t};\n}\n\nfunction getSelectedProviderSettings(): SdkProviderSettings | null {\n\treturn getLastUsedSdkProviderSettings();\n}\n\nfunction createRuntimeOauthCallbacks(providerId: ManagedClineOauthProviderId) {\n\tlet authUrl: string | null = null;\n\treturn {\n\t\tonAuth: ({ url }: { url: string; instructions?: string }) => {\n\t\t\tauthUrl = url;\n\t\t\topenInBrowser(url);\n\t\t},\n\t\tonPrompt: async () => {\n\t\t\tthrow new Error(\n\t\t\t\tauthUrl\n\t\t\t\t\t? `Browser callback did not complete. Open this URL and complete sign in: ${authUrl}`\n\t\t\t\t\t: `Browser callback did not complete for ${providerId}.`,\n\t\t\t);\n\t\t},\n\t\tonProgress: () => {},\n\t};\n}\n\nfunction authSettingsEqual(left: SdkProviderSettings[\"auth\"], right: SdkProviderSettings[\"auth\"]): boolean {\n\treturn (\n\t\t(left?.accessToken ?? null) === (right?.accessToken ?? null) &&\n\t\t(left?.refreshToken ?? null) === (right?.refreshToken ?? null) &&\n\t\t(left?.accountId ?? null) === (right?.accountId ?? null) &&\n\t\t(left?.expiresAt ?? null) === (right?.expiresAt ?? null)\n\t);\n}\n\nasync function refreshManagedOauthSettings(\n\tsettings: SdkProviderSettings,\n): Promise<{ settings: SdkProviderSettings; apiKey: string } | null> {\n\tconst providerId = settings.provider.trim().toLowerCase();\n\tif (!isManagedOauthProviderId(providerId)) {\n\t\treturn null;\n\t}\n\n\tconst accessToken = settings.auth?.accessToken?.trim() ?? \"\";\n\tconst refreshToken = settings.auth?.refreshToken?.trim() ?? \"\";\n\tif (!accessToken || !refreshToken) {\n\t\treturn null;\n\t}\n\n\tconst nextCredentials = await refreshManagedOauthCredentials({\n\t\tproviderId,\n\t\tcurrentCredentials: {\n\t\t\taccess: providerId === \"cline\" ? stripWorkosPrefix(accessToken) : accessToken,\n\t\t\trefresh: refreshToken,\n\t\t\texpires: normalizeEpochMs(settings.auth?.expiresAt),\n\t\t\taccountId: settings.auth?.accountId ?? undefined,\n\t\t},\n\t\tbaseUrl: settings.baseUrl?.trim() || null,\n\t\toauthProvider: providerId,\n\t});\n\tif (!nextCredentials) {\n\t\tthrow new Error(`OAuth credentials for provider \"${providerId}\" are invalid. Re-run OAuth login.`);\n\t}\n\n\tconst nextSettings: SdkProviderSettings = {\n\t\t...settings,\n\t\tauth: {\n\t\t\t...(settings.auth ?? {}),\n\t\t\taccessToken: toProviderApiKey(providerId, nextCredentials.access),\n\t\t\trefreshToken: nextCredentials.refresh,\n\t\t\taccountId: nextCredentials.accountId ?? undefined,\n\t\t\texpiresAt: normalizeEpochMs(nextCredentials.expires),\n\t\t},\n\t};\n\n\tif (!authSettingsEqual(settings.auth, nextSettings.auth)) {\n\t\tsaveSdkProviderSettings({\n\t\t\tsettings: nextSettings,\n\t\t\ttokenSource: \"oauth\",\n\t\t\tsetLastUsed: true,\n\t\t});\n\t}\n\n\treturn {\n\t\tsettings: nextSettings,\n\t\tapiKey: toProviderApiKey(providerId, nextCredentials.access),\n\t};\n}\n\nexport function createClineProviderService() {\n\tconst getProviderSettingsSummary = (): RuntimeClineProviderSettings =>\n\t\ttoProviderSettingsSummary(getSelectedProviderSettings());\n\n\treturn {\n\t\tgetProviderSettingsSummary(): RuntimeClineProviderSettings {\n\t\t\treturn getProviderSettingsSummary();\n\t\t},\n\n\t\tasync getClineAccountProfile(): Promise<RuntimeClineAccountProfileResponse> {\n\t\t\ttry {\n\t\t\t\tconst selectedSettings = getSelectedProviderSettings();\n\t\t\t\tif (!selectedSettings) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tprofile: null,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tconst normalizedProviderId = selectedSettings.provider.trim().toLowerCase();\n\t\t\t\tif (normalizedProviderId !== \"cline\") {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tprofile: null,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tconst tryFetchProfile = async (\n\t\t\t\t\tsettings: SdkProviderSettings,\n\t\t\t\t): Promise<RuntimeClineAccountProfileResponse[\"profile\"] | null> => {\n\t\t\t\t\tconst rawAccessToken = settings.auth?.accessToken?.trim() ?? \"\";\n\t\t\t\t\tif (!rawAccessToken) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\tconst me = await fetchSdkClineAccountProfile({\n\t\t\t\t\t\tapiBaseUrl: settings.baseUrl?.trim() || DEFAULT_CLINE_API_BASE_URL,\n\t\t\t\t\t\taccessToken: ensureWorkosPrefix(rawAccessToken),\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\taccountId: me.id?.trim() || settings.auth?.accountId?.trim() || null,\n\t\t\t\t\t\temail: me.email?.trim() || null,\n\t\t\t\t\t\tdisplayName: me.displayName?.trim() || null,\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\ttry {\n\t\t\t\t\tconst profile = await tryFetchProfile(selectedSettings);\n\t\t\t\t\tif (profile) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tprofile,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Retry once after OAuth refresh below.\n\t\t\t\t}\n\n\t\t\t\tconst oauthResolution = await refreshManagedOauthSettings(selectedSettings);\n\t\t\t\tconst profile = oauthResolution?.settings ? await tryFetchProfile(oauthResolution.settings) : null;\n\t\t\t\treturn {\n\t\t\t\t\tprofile,\n\t\t\t\t};\n\t\t\t} catch (error) {\n\t\t\t\treturn {\n\t\t\t\t\tprofile: null,\n\t\t\t\t\terror: toErrorMessage(error),\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\n\t\tasync getClineKanbanAccess(): Promise<RuntimeClineKanbanAccessResponse> {\n\t\t\ttry {\n\t\t\t\tconst selectedSettings = getSelectedProviderSettings();\n\t\t\t\tif (!selectedSettings) {\n\t\t\t\t\treturn { enabled: true };\n\t\t\t\t}\t\n\n\t\t\t\tconst rawAccessToken = selectedSettings.auth?.accessToken?.trim() ?? \"\";\n\t\t\t\tif (!rawAccessToken) {\n\t\t\t\t\treturn { enabled: true };\n\t\t\t\t}\n\n\t\t\t\tconst remoteConfigResponse = await fetchSdkClineUserRemoteConfig({\n\t\t\t\t\tapiBaseUrl: selectedSettings.baseUrl?.trim() || DEFAULT_CLINE_API_BASE_URL,\n\t\t\t\t\taccessToken: ensureWorkosPrefix(rawAccessToken),\n\t\t\t\t});\n\t\t\t\tif (!remoteConfigResponse.enabled || !remoteConfigResponse.organizationId) {\n\t\t\t\t\treturn { enabled: true };\n\t\t\t\t}\n\n\t\t\t\tconst orgData = await fetchSdkOrgData({\n\t\t\t\t\tapiBaseUrl: selectedSettings.baseUrl?.trim() || DEFAULT_CLINE_API_BASE_URL,\n\t\t\t\t\taccessToken: ensureWorkosPrefix(rawAccessToken),\n\t\t\t\t\torganizatinId: remoteConfigResponse.organizationId\n\t\t\t\t});\n\n\t\t\t\tconst parsedRemoteConfig = parseClineRemoteConfigValue(remoteConfigResponse.value);\n\t\t\t\tconst isEnterpriseCustomer = !!orgData?.externalOrganizationId\n\t\t\t\treturn {\n\t\t\t\t\tenabled: !parsedRemoteConfig || !isEnterpriseCustomer || parsedRemoteConfig.kanbanEnabled === true,\n\t\t\t\t};\n\t\t\t} catch (error) {\n\t\t\t\treturn {\n\t\t\t\t\tenabled: true,\n\t\t\t\t\terror: toErrorMessage(error),\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\n\t\tasync resolveLaunchConfig(): Promise<ResolvedClineLaunchConfig> {\n\t\t\tconst selectedSettings = getSelectedProviderSettings();\n\t\t\tif (!selectedSettings) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"No native Cline provider is configured. Open Settings, choose a provider, and then start the task again.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst normalizedProviderId = selectedSettings.provider.trim().toLowerCase();\n\t\t\tif (!normalizedProviderId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"No native Cline provider is configured. Open Settings, choose a provider, and then start the task again.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst oauthResolution = await refreshManagedOauthSettings(selectedSettings);\n\t\t\tconst resolvedSettings = oauthResolution?.settings ?? selectedSettings;\n\t\t\tconst apiKey = isManagedOauthProviderId(normalizedProviderId)\n\t\t\t\t? resolveManagedProviderLaunchApiKey({\n\t\t\t\t\t\tproviderId: normalizedProviderId,\n\t\t\t\t\t\tsettings: resolvedSettings,\n\t\t\t\t\t\toauthApiKey: oauthResolution?.apiKey ?? null,\n\t\t\t\t\t})\n\t\t\t\t: resolveVisibleApiKey(resolvedSettings);\n\t\t\treturn {\n\t\t\t\tproviderId: normalizedProviderId,\n\t\t\t\tmodelId: resolvedSettings.model?.trim() || null,\n\t\t\t\tapiKey,\n\t\t\t\tbaseUrl: resolvedSettings.baseUrl?.trim() || null,\n\t\t\t};\n\t\t},\n\n\t\tasync getProviderCatalog(): Promise<RuntimeClineProviderCatalogResponse> {\n\t\t\tconst selectedProviderId = getProviderSettingsSummary().providerId?.trim().toLowerCase() ?? \"\";\n\t\t\tconst providers: RuntimeClineProviderCatalogItem[] = await listSdkProviderCatalog()\n\t\t\t\t.then((sdkProviders) =>\n\t\t\t\t\tsdkProviders\n\t\t\t\t\t\t.map((provider) => ({\n\t\t\t\t\t\t\tid: provider.id,\n\t\t\t\t\t\t\tname: provider.name,\n\t\t\t\t\t\t\toauthSupported: (provider.capabilities ?? []).includes(\"oauth\"),\n\t\t\t\t\t\t\tenabled:\n\t\t\t\t\t\t\t\tselectedProviderId.length > 0 ? selectedProviderId === provider.id : provider.id === \"cline\",\n\t\t\t\t\t\t\tdefaultModelId: provider.defaultModelId ?? null,\n\t\t\t\t\t\t}))\n\t\t\t\t\t\t.sort((left, right) => {\n\t\t\t\t\t\t\tif (left.id === \"cline\") {\n\t\t\t\t\t\t\t\treturn -1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (right.id === \"cline\") {\n\t\t\t\t\t\t\t\treturn 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn left.name.localeCompare(right.name);\n\t\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\t.catch(() => []);\n\n\t\t\tif (selectedProviderId.length > 0 && !providers.some((provider) => provider.id === selectedProviderId)) {\n\t\t\t\tproviders.unshift({\n\t\t\t\t\tid: selectedProviderId,\n\t\t\t\t\tname: selectedProviderId,\n\t\t\t\t\toauthSupported: false,\n\t\t\t\t\tenabled: true,\n\t\t\t\t\tdefaultModelId: getProviderSettingsSummary().modelId,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tproviders,\n\t\t\t};\n\t\t},\n\n\t\tasync getProviderModels(providerId: string): Promise<RuntimeClineProviderModelsResponse> {\n\t\t\tconst normalizedProviderId = providerId.trim().toLowerCase();\n\t\t\tconst providerModels =\n\t\t\t\tnormalizedProviderId.length > 0\n\t\t\t\t\t? await listSdkProviderModels(normalizedProviderId)\n\t\t\t\t\t\t\t.then((sdkModels) =>\n\t\t\t\t\t\t\t\tObject.entries(sdkModels)\n\t\t\t\t\t\t\t\t\t.map(([modelId, modelInfo]) => {\n\t\t\t\t\t\t\t\t\t\tconst parsedModelInfo =\n\t\t\t\t\t\t\t\t\t\t\ttypeof modelInfo === \"object\" && modelInfo !== null\n\t\t\t\t\t\t\t\t\t\t\t\t? (modelInfo as {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname?: unknown;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcapabilities?: unknown;\n\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\t\t\t\t\treturn toRuntimeProviderModel(modelId, {\n\t\t\t\t\t\t\t\t\t\t\tname: typeof parsedModelInfo?.name === \"string\" ? parsedModelInfo.name : undefined,\n\t\t\t\t\t\t\t\t\t\t\tcapabilities: Array.isArray(parsedModelInfo?.capabilities)\n\t\t\t\t\t\t\t\t\t\t\t\t? parsedModelInfo.capabilities.filter(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(value): value is string => typeof value === \"string\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.sort((left, right) => left.name.localeCompare(right.name)),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.catch(() => [])\n\t\t\t\t\t: [];\n\n\t\t\tif (providerModels.length > 0) {\n\t\t\t\treturn {\n\t\t\t\t\tproviderId: normalizedProviderId,\n\t\t\t\t\tmodels: providerModels,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst configuredModel = getProviderSettingsSummary().modelId?.trim() ?? \"\";\n\t\t\tif (configuredModel.length > 0) {\n\t\t\t\treturn {\n\t\t\t\t\tproviderId: normalizedProviderId || providerId,\n\t\t\t\t\tmodels: [{ id: configuredModel, name: configuredModel }],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tproviderId: normalizedProviderId || providerId,\n\t\t\t\tmodels: [],\n\t\t\t};\n\t\t},\n\n\t\tsaveProviderSettings(input: {\n\t\t\tproviderId: string;\n\t\t\tmodelId?: string | null;\n\t\t\tapiKey?: string | null;\n\t\t\tbaseUrl?: string | null;\n\t\t}): RuntimeClineProviderSettingsSaveResponse {\n\t\t\tconst providerId = input.providerId.trim().toLowerCase();\n\t\t\tif (!providerId) {\n\t\t\t\tthrow new Error(\"Provider ID cannot be empty.\");\n\t\t\t}\n\n\t\t\tconst existingSettings = getSdkProviderSettings(providerId) ?? {\n\t\t\t\tprovider: providerId,\n\t\t\t};\n\t\t\tconst nextSettings: SdkProviderSettings = {\n\t\t\t\t...existingSettings,\n\t\t\t\tprovider: providerId,\n\t\t\t};\n\n\t\t\tif (input.modelId !== undefined) {\n\t\t\t\tconst modelId = input.modelId?.trim() ?? \"\";\n\t\t\t\tif (modelId) {\n\t\t\t\t\tnextSettings.model = modelId;\n\t\t\t\t} else {\n\t\t\t\t\tdelete nextSettings.model;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (input.baseUrl !== undefined) {\n\t\t\t\tconst baseUrl = input.baseUrl?.trim() ?? \"\";\n\t\t\t\tif (baseUrl) {\n\t\t\t\t\tnextSettings.baseUrl = baseUrl;\n\t\t\t\t} else {\n\t\t\t\t\tdelete nextSettings.baseUrl;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (input.apiKey !== undefined) {\n\t\t\t\tconst apiKey = input.apiKey?.trim() ?? \"\";\n\t\t\t\tif (apiKey) {\n\t\t\t\t\tnextSettings.apiKey = apiKey;\n\t\t\t\t} else {\n\t\t\t\t\tdelete nextSettings.apiKey;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!isManagedOauthProviderId(providerId)) {\n\t\t\t\tdelete nextSettings.auth;\n\t\t\t}\n\n\t\t\tsaveSdkProviderSettings({\n\t\t\t\tsettings: nextSettings,\n\t\t\t\ttokenSource: hasOauthAccessToken(nextSettings) ? \"oauth\" : \"manual\",\n\t\t\t\tsetLastUsed: true,\n\t\t\t});\n\n\t\t\treturn toProviderSettingsSummary(nextSettings);\n\t\t},\n\n\t\tasync runOauthLogin(input: {\n\t\t\tproviderId: ManagedClineOauthProviderId;\n\t\t\tbaseUrl?: string | null;\n\t\t}): Promise<RuntimeClineOauthLoginResponse> {\n\t\t\ttry {\n\t\t\t\tconst existingSettings = getSdkProviderSettings(input.providerId) ?? {\n\t\t\t\t\tprovider: input.providerId,\n\t\t\t\t};\n\t\t\t\tconst baseUrl = input.baseUrl?.trim() || null;\n\t\t\t\tconst credentials = await loginManagedOauthProvider({\n\t\t\t\t\tproviderId: input.providerId,\n\t\t\t\t\tbaseUrl,\n\t\t\t\t\toauthProvider: input.providerId,\n\t\t\t\t\tcallbacks: createRuntimeOauthCallbacks(input.providerId),\n\t\t\t\t});\n\n\t\t\t\tconst nextSettings: SdkProviderSettings = {\n\t\t\t\t\t...existingSettings,\n\t\t\t\t\tprovider: input.providerId,\n\t\t\t\t\tauth: {\n\t\t\t\t\t\t...(existingSettings.auth ?? {}),\n\t\t\t\t\t\taccessToken: toProviderApiKey(input.providerId, credentials.access),\n\t\t\t\t\t\trefreshToken: credentials.refresh,\n\t\t\t\t\t\taccountId: credentials.accountId ?? undefined,\n\t\t\t\t\t\texpiresAt: normalizeEpochMs(credentials.expires),\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tif (baseUrl) {\n\t\t\t\t\tnextSettings.baseUrl = baseUrl;\n\t\t\t\t} else {\n\t\t\t\t\tdelete nextSettings.baseUrl;\n\t\t\t\t}\n\n\t\t\t\tsaveSdkProviderSettings({\n\t\t\t\t\tsettings: nextSettings,\n\t\t\t\t\ttokenSource: \"oauth\",\n\t\t\t\t\tsetLastUsed: true,\n\t\t\t\t});\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tprovider: input.providerId,\n\t\t\t\t\tsettings: toProviderSettingsSummary(nextSettings),\n\t\t\t\t};\n\t\t\t} catch (error) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\tprovider: input.providerId,\n\t\t\t\t\terror: toErrorMessage(error),\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t};\n}\n"],"names":[],"mappings":"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","debugId":"ddee5c60-966e-5611-9e05-7e8189cedaed"}
1
+ {"version":3,"file":"cline-provider-service.js","sources":["../../src/cline-sdk/cline-provider-service.ts"],"sourceRoot":"","sourcesContent":["// Kanban-facing facade over the SDK-backed provider store.\n// It resolves provider settings, model catalogs, OAuth flows, and launch\n// config without leaking SDK details into runtime-api.ts or the UI.\nimport type {\n\tRuntimeClineAccountProfileResponse,\n\tRuntimeClineKanbanAccessResponse,\n\tRuntimeClineOauthLoginResponse,\n\tRuntimeClineProviderCatalogItem,\n\tRuntimeClineProviderCatalogResponse,\n\tRuntimeClineProviderModel,\n\tRuntimeClineProviderModelsResponse,\n\tRuntimeClineProviderSettings,\n\tRuntimeClineProviderSettingsSaveResponse,\n\tRuntimeClineReasoningEffort,\n} from \"../core/api-contract.js\";\nimport { openInBrowser } from \"../server/browser.js\";\nimport { z } from \"zod\";\nimport {\n\tfetchSdkClineAccountProfile,\n\tfetchSdkClineUserRemoteConfig,\n\ttype ManagedClineOauthProviderId,\n\ttype SdkProviderSettings,\n\tgetLastUsedSdkProviderSettings,\n\tgetSdkProviderSettings,\n\tlistSdkProviderCatalog,\n\tlistSdkProviderModels,\n\tloginManagedOauthProvider,\n\trefreshManagedOauthCredentials,\n\tsaveSdkProviderSettings,\n\tfetchSdkOrgData,\n\tsupportsSdkModelThinking,\n} from \"./sdk-provider-boundary.js\";\n\nconst WORKOS_TOKEN_PREFIX = \"workos:\";\nconst DEFAULT_CLINE_API_BASE_URL = \"https://api.cline.bot\";\nconst MANAGED_PROVIDER_ENV_KEYS: Record<ManagedClineOauthProviderId, readonly string[]> = {\n\tcline: [\"CLINE_API_KEY\"],\n\toca: [\"OCA_API_KEY\"],\n\t\"openai-codex\": [],\n};\nconst CLINE_REMOTE_CONFIG_SCHEMA = z.object({\n\tkanbanEnabled: z.boolean().optional(),\n});\n\ntype ClineRemoteConfig = z.infer<typeof CLINE_REMOTE_CONFIG_SCHEMA>;\n\nexport interface ResolvedClineLaunchConfig {\n\tproviderId: string;\n\tmodelId: string | null;\n\tapiKey: string | null;\n\tbaseUrl: string | null;\n\treasoningEffort: RuntimeClineReasoningEffort | null;\n}\n\nfunction toErrorMessage(error: unknown): string {\n\tif (error instanceof Error) {\n\t\treturn error.message;\n\t}\n\treturn String(error);\n}\n\nfunction parseClineRemoteConfigValue(value: string): ClineRemoteConfig {\n\tconst parsed = JSON.parse(value) as unknown;\n\treturn CLINE_REMOTE_CONFIG_SCHEMA.parse(parsed);\n}\n\nfunction isManagedOauthProviderId(providerId: string): providerId is ManagedClineOauthProviderId {\n\treturn providerId === \"cline\" || providerId === \"oca\" || providerId === \"openai-codex\";\n}\n\nfunction formatManagedProviderDisplayName(providerId: ManagedClineOauthProviderId): string {\n\tif (providerId === \"cline\") {\n\t\treturn \"Cline\";\n\t}\n\tif (providerId === \"oca\") {\n\t\treturn \"Oracle Code Assist\";\n\t}\n\treturn \"OpenAI Codex\";\n}\n\nfunction stripWorkosPrefix(accessToken: string): string {\n\tif (accessToken.toLowerCase().startsWith(WORKOS_TOKEN_PREFIX)) {\n\t\treturn accessToken.slice(WORKOS_TOKEN_PREFIX.length);\n\t}\n\treturn accessToken;\n}\n\nfunction ensureWorkosPrefix(accessToken: string): string {\n\tconst normalized = accessToken.trim();\n\tif (!normalized) {\n\t\treturn normalized;\n\t}\n\tif (normalized.toLowerCase().startsWith(WORKOS_TOKEN_PREFIX)) {\n\t\treturn normalized;\n\t}\n\treturn `${WORKOS_TOKEN_PREFIX}${normalized}`;\n}\n\nfunction toProviderApiKey(providerId: ManagedClineOauthProviderId, accessToken: string): string {\n\tif (providerId === \"cline\") {\n\t\treturn `${WORKOS_TOKEN_PREFIX}${accessToken}`;\n\t}\n\treturn accessToken;\n}\n\nfunction normalizeEpochMs(expiresAt: number | null | undefined): number {\n\tif (!expiresAt || !Number.isFinite(expiresAt) || expiresAt <= 0) {\n\t\treturn Date.now() - 1;\n\t}\n\tif (expiresAt >= 1_000_000_000_000) {\n\t\treturn Math.floor(expiresAt);\n\t}\n\treturn Math.floor(expiresAt * 1000);\n}\n\nfunction toResponseExpirySeconds(expiresAt: number | null | undefined): number | null {\n\tif (!expiresAt || !Number.isFinite(expiresAt) || expiresAt <= 0) {\n\t\treturn null;\n\t}\n\treturn Math.max(1, Math.floor(normalizeEpochMs(expiresAt) / 1000));\n}\n\nfunction resolveVisibleApiKey(settings: SdkProviderSettings | null): string | null {\n\tconst apiKey = settings?.apiKey?.trim() || settings?.auth?.apiKey?.trim() || \"\";\n\treturn apiKey.length > 0 ? apiKey : null;\n}\n\nfunction readEnvApiKey(envKey: string): string | null {\n\tconst apiKey = process.env[envKey]?.trim() ?? \"\";\n\treturn apiKey.length > 0 ? apiKey : null;\n}\n\nfunction resolveManagedProviderEnvApiKey(providerId: ManagedClineOauthProviderId): string | null {\n\tfor (const envKey of MANAGED_PROVIDER_ENV_KEYS[providerId]) {\n\t\tconst apiKey = readEnvApiKey(envKey);\n\t\tif (apiKey) {\n\t\t\treturn apiKey;\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction resolveManagedProviderLaunchApiKey(input: {\n\tproviderId: ManagedClineOauthProviderId;\n\tsettings: SdkProviderSettings;\n\toauthApiKey: string | null;\n}): string {\n\tconst resolvedApiKey =\n\t\tinput.oauthApiKey ?? resolveVisibleApiKey(input.settings) ?? resolveManagedProviderEnvApiKey(input.providerId);\n\tif (resolvedApiKey) {\n\t\treturn resolvedApiKey;\n\t}\n\n\tconst envKeys = MANAGED_PROVIDER_ENV_KEYS[input.providerId];\n\tconst envHelp = envKeys.length > 0 ? ` or set ${envKeys.join(\" or \")}` : \"\";\n\tthrow new Error(\n\t\t`${formatManagedProviderDisplayName(input.providerId)} provider is selected but no ${formatManagedProviderDisplayName(input.providerId)} credentials are configured. Sign in from Settings${envHelp} before starting a native Cline task.`,\n\t);\n}\n\nfunction hasOauthAccessToken(settings: SdkProviderSettings | null): boolean {\n\treturn (settings?.auth?.accessToken?.trim() ?? \"\").length > 0;\n}\n\nfunction hasOauthRefreshToken(settings: SdkProviderSettings | null): boolean {\n\treturn (settings?.auth?.refreshToken?.trim() ?? \"\").length > 0;\n}\n\nfunction toRuntimeProviderModel(\n\tmodelId: string,\n\tmodelInfo: { name?: string; capabilities?: string[]; thinkingConfig?: unknown },\n): RuntimeClineProviderModel {\n\tconst capabilities = new Set(modelInfo.capabilities ?? []);\n\tconst supportsVision = capabilities.has(\"images\");\n\tconst supportsAttachments = capabilities.has(\"files\") || supportsVision;\n\tconst supportsReasoningEffort = supportsSdkModelThinking(modelInfo);\n\treturn {\n\t\tid: modelId,\n\t\tname: modelInfo.name?.trim() || modelId,\n\t\tsupportsVision: supportsVision || undefined,\n\t\tsupportsAttachments: supportsAttachments || undefined,\n\t\tsupportsReasoningEffort: supportsReasoningEffort || undefined,\n\t};\n}\n\nfunction createEmptyProviderSettingsSummary(): RuntimeClineProviderSettings {\n\treturn {\n\t\tproviderId: null,\n\t\tmodelId: null,\n\t\tbaseUrl: null,\n\t\treasoningEffort: null,\n\t\tapiKeyConfigured: false,\n\t\toauthProvider: null,\n\t\toauthAccessTokenConfigured: false,\n\t\toauthRefreshTokenConfigured: false,\n\t\toauthAccountId: null,\n\t\toauthExpiresAt: null,\n\t};\n}\n\nfunction toProviderSettingsSummary(settings: SdkProviderSettings | null): RuntimeClineProviderSettings {\n\tif (!settings) {\n\t\treturn createEmptyProviderSettingsSummary();\n\t}\n\n\tconst providerId = settings.provider?.trim() || null;\n\tconst oauthProvider = providerId && isManagedOauthProviderId(providerId) ? providerId : null;\n\n\treturn {\n\t\tproviderId,\n\t\tmodelId: settings.model?.trim() || null,\n\t\tbaseUrl: settings.baseUrl?.trim() || null,\n\t\treasoningEffort: settings.reasoning?.effort ?? null,\n\t\tapiKeyConfigured: Boolean(resolveVisibleApiKey(settings)),\n\t\toauthProvider,\n\t\toauthAccessTokenConfigured: hasOauthAccessToken(settings),\n\t\toauthRefreshTokenConfigured: hasOauthRefreshToken(settings),\n\t\toauthAccountId: settings.auth?.accountId?.trim() || null,\n\t\toauthExpiresAt: toResponseExpirySeconds(settings.auth?.expiresAt),\n\t};\n}\n\nfunction getSelectedProviderSettings(): SdkProviderSettings | null {\n\treturn getLastUsedSdkProviderSettings();\n}\n\nfunction createRuntimeOauthCallbacks(providerId: ManagedClineOauthProviderId) {\n\tlet authUrl: string | null = null;\n\treturn {\n\t\tonAuth: ({ url }: { url: string; instructions?: string }) => {\n\t\t\tauthUrl = url;\n\t\t\topenInBrowser(url);\n\t\t},\n\t\tonPrompt: async () => {\n\t\t\tthrow new Error(\n\t\t\t\tauthUrl\n\t\t\t\t\t? `Browser callback did not complete. Open this URL and complete sign in: ${authUrl}`\n\t\t\t\t\t: `Browser callback did not complete for ${providerId}.`,\n\t\t\t);\n\t\t},\n\t\tonProgress: () => {},\n\t};\n}\n\nfunction authSettingsEqual(left: SdkProviderSettings[\"auth\"], right: SdkProviderSettings[\"auth\"]): boolean {\n\treturn (\n\t\t(left?.accessToken ?? null) === (right?.accessToken ?? null) &&\n\t\t(left?.refreshToken ?? null) === (right?.refreshToken ?? null) &&\n\t\t(left?.accountId ?? null) === (right?.accountId ?? null) &&\n\t\t(left?.expiresAt ?? null) === (right?.expiresAt ?? null)\n\t);\n}\n\nasync function refreshManagedOauthSettings(\n\tsettings: SdkProviderSettings,\n): Promise<{ settings: SdkProviderSettings; apiKey: string } | null> {\n\tconst providerId = settings.provider.trim().toLowerCase();\n\tif (!isManagedOauthProviderId(providerId)) {\n\t\treturn null;\n\t}\n\n\tconst accessToken = settings.auth?.accessToken?.trim() ?? \"\";\n\tconst refreshToken = settings.auth?.refreshToken?.trim() ?? \"\";\n\tif (!accessToken || !refreshToken) {\n\t\treturn null;\n\t}\n\n\tconst nextCredentials = await refreshManagedOauthCredentials({\n\t\tproviderId,\n\t\tcurrentCredentials: {\n\t\t\taccess: providerId === \"cline\" ? stripWorkosPrefix(accessToken) : accessToken,\n\t\t\trefresh: refreshToken,\n\t\t\texpires: normalizeEpochMs(settings.auth?.expiresAt),\n\t\t\taccountId: settings.auth?.accountId ?? undefined,\n\t\t},\n\t\tbaseUrl: settings.baseUrl?.trim() || null,\n\t\toauthProvider: providerId,\n\t});\n\tif (!nextCredentials) {\n\t\tthrow new Error(`OAuth credentials for provider \"${providerId}\" are invalid. Re-run OAuth login.`);\n\t}\n\n\tconst nextSettings: SdkProviderSettings = {\n\t\t...settings,\n\t\tauth: {\n\t\t\t...(settings.auth ?? {}),\n\t\t\taccessToken: toProviderApiKey(providerId, nextCredentials.access),\n\t\t\trefreshToken: nextCredentials.refresh,\n\t\t\taccountId: nextCredentials.accountId ?? undefined,\n\t\t\texpiresAt: normalizeEpochMs(nextCredentials.expires),\n\t\t},\n\t};\n\n\tif (!authSettingsEqual(settings.auth, nextSettings.auth)) {\n\t\tsaveSdkProviderSettings({\n\t\t\tsettings: nextSettings,\n\t\t\ttokenSource: \"oauth\",\n\t\t\tsetLastUsed: true,\n\t\t});\n\t}\n\n\treturn {\n\t\tsettings: nextSettings,\n\t\tapiKey: toProviderApiKey(providerId, nextCredentials.access),\n\t};\n}\n\nexport function createClineProviderService() {\n\tconst getProviderSettingsSummary = (): RuntimeClineProviderSettings =>\n\t\ttoProviderSettingsSummary(getSelectedProviderSettings());\n\n\treturn {\n\t\tgetProviderSettingsSummary(): RuntimeClineProviderSettings {\n\t\t\treturn getProviderSettingsSummary();\n\t\t},\n\n\t\tasync getClineAccountProfile(): Promise<RuntimeClineAccountProfileResponse> {\n\t\t\ttry {\n\t\t\t\tconst selectedSettings = getSelectedProviderSettings();\n\t\t\t\tif (!selectedSettings) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tprofile: null,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tconst normalizedProviderId = selectedSettings.provider.trim().toLowerCase();\n\t\t\t\tif (normalizedProviderId !== \"cline\") {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tprofile: null,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tconst tryFetchProfile = async (\n\t\t\t\t\tsettings: SdkProviderSettings,\n\t\t\t\t): Promise<RuntimeClineAccountProfileResponse[\"profile\"] | null> => {\n\t\t\t\t\tconst rawAccessToken = settings.auth?.accessToken?.trim() ?? \"\";\n\t\t\t\t\tif (!rawAccessToken) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\tconst me = await fetchSdkClineAccountProfile({\n\t\t\t\t\t\tapiBaseUrl: settings.baseUrl?.trim() || DEFAULT_CLINE_API_BASE_URL,\n\t\t\t\t\t\taccessToken: ensureWorkosPrefix(rawAccessToken),\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\taccountId: me.id?.trim() || settings.auth?.accountId?.trim() || null,\n\t\t\t\t\t\temail: me.email?.trim() || null,\n\t\t\t\t\t\tdisplayName: me.displayName?.trim() || null,\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\ttry {\n\t\t\t\t\tconst profile = await tryFetchProfile(selectedSettings);\n\t\t\t\t\tif (profile) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tprofile,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Retry once after OAuth refresh below.\n\t\t\t\t}\n\n\t\t\t\tconst oauthResolution = await refreshManagedOauthSettings(selectedSettings);\n\t\t\t\tconst profile = oauthResolution?.settings ? await tryFetchProfile(oauthResolution.settings) : null;\n\t\t\t\treturn {\n\t\t\t\t\tprofile,\n\t\t\t\t};\n\t\t\t} catch (error) {\n\t\t\t\treturn {\n\t\t\t\t\tprofile: null,\n\t\t\t\t\terror: toErrorMessage(error),\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\n\t\tasync getClineKanbanAccess(): Promise<RuntimeClineKanbanAccessResponse> {\n\t\t\ttry {\n\t\t\t\tconst selectedSettings = getSelectedProviderSettings();\n\t\t\t\tif (!selectedSettings) {\n\t\t\t\t\treturn { enabled: true };\n\t\t\t\t}\t\n\n\t\t\t\tconst rawAccessToken = selectedSettings.auth?.accessToken?.trim() ?? \"\";\n\t\t\t\tif (!rawAccessToken) {\n\t\t\t\t\treturn { enabled: true };\n\t\t\t\t}\n\n\t\t\t\tconst remoteConfigResponse = await fetchSdkClineUserRemoteConfig({\n\t\t\t\t\tapiBaseUrl: selectedSettings.baseUrl?.trim() || DEFAULT_CLINE_API_BASE_URL,\n\t\t\t\t\taccessToken: ensureWorkosPrefix(rawAccessToken),\n\t\t\t\t});\n\t\t\t\tif (!remoteConfigResponse.enabled || !remoteConfigResponse.organizationId) {\n\t\t\t\t\treturn { enabled: true };\n\t\t\t\t}\n\n\t\t\t\tconst orgData = await fetchSdkOrgData({\n\t\t\t\t\tapiBaseUrl: selectedSettings.baseUrl?.trim() || DEFAULT_CLINE_API_BASE_URL,\n\t\t\t\t\taccessToken: ensureWorkosPrefix(rawAccessToken),\n\t\t\t\t\torganizatinId: remoteConfigResponse.organizationId\n\t\t\t\t});\n\n\t\t\t\tconst parsedRemoteConfig = parseClineRemoteConfigValue(remoteConfigResponse.value);\n\t\t\t\tconst isEnterpriseCustomer = !!orgData?.externalOrganizationId\n\t\t\t\treturn {\n\t\t\t\t\tenabled: !parsedRemoteConfig || !isEnterpriseCustomer || parsedRemoteConfig.kanbanEnabled === true,\n\t\t\t\t};\n\t\t\t} catch (error) {\n\t\t\t\treturn {\n\t\t\t\t\tenabled: true,\n\t\t\t\t\terror: toErrorMessage(error),\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\n\t\tasync resolveLaunchConfig(): Promise<ResolvedClineLaunchConfig> {\n\t\t\tconst selectedSettings = getSelectedProviderSettings();\n\t\t\tif (!selectedSettings) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"No native Cline provider is configured. Open Settings, choose a provider, and then start the task again.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst normalizedProviderId = selectedSettings.provider.trim().toLowerCase();\n\t\t\tif (!normalizedProviderId) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"No native Cline provider is configured. Open Settings, choose a provider, and then start the task again.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst oauthResolution = await refreshManagedOauthSettings(selectedSettings);\n\t\t\tconst resolvedSettings = oauthResolution?.settings ?? selectedSettings;\n\t\t\tconst apiKey = isManagedOauthProviderId(normalizedProviderId)\n\t\t\t\t? resolveManagedProviderLaunchApiKey({\n\t\t\t\t\t\tproviderId: normalizedProviderId,\n\t\t\t\t\t\tsettings: resolvedSettings,\n\t\t\t\t\t\toauthApiKey: oauthResolution?.apiKey ?? null,\n\t\t\t\t\t})\n\t\t\t\t: resolveVisibleApiKey(resolvedSettings);\n\t\t\treturn {\n\t\t\t\tproviderId: normalizedProviderId,\n\t\t\t\tmodelId: resolvedSettings.model?.trim() || null,\n\t\t\t\tapiKey,\n\t\t\t\tbaseUrl: resolvedSettings.baseUrl?.trim() || null,\n\t\t\t\treasoningEffort: resolvedSettings.reasoning?.effort ?? null,\n\t\t\t};\n\t\t},\n\n\t\tasync getProviderCatalog(): Promise<RuntimeClineProviderCatalogResponse> {\n\t\t\tconst selectedProviderId = getProviderSettingsSummary().providerId?.trim().toLowerCase() ?? \"\";\n\t\t\tconst providers: RuntimeClineProviderCatalogItem[] = await listSdkProviderCatalog()\n\t\t\t\t.then((sdkProviders) =>\n\t\t\t\t\tsdkProviders\n\t\t\t\t\t\t.map((provider) => ({\n\t\t\t\t\t\t\tid: provider.id,\n\t\t\t\t\t\t\tname: provider.name,\n\t\t\t\t\t\t\toauthSupported: (provider.capabilities ?? []).includes(\"oauth\"),\n\t\t\t\t\t\t\tenabled:\n\t\t\t\t\t\t\t\tselectedProviderId.length > 0 ? selectedProviderId === provider.id : provider.id === \"cline\",\n\t\t\t\t\t\t\tdefaultModelId: provider.defaultModelId ?? null,\n\t\t\t\t\t\t}))\n\t\t\t\t\t\t.sort((left, right) => {\n\t\t\t\t\t\t\tif (left.id === \"cline\") {\n\t\t\t\t\t\t\t\treturn -1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (right.id === \"cline\") {\n\t\t\t\t\t\t\t\treturn 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn left.name.localeCompare(right.name);\n\t\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\t.catch(() => []);\n\n\t\t\tif (selectedProviderId.length > 0 && !providers.some((provider) => provider.id === selectedProviderId)) {\n\t\t\t\tproviders.unshift({\n\t\t\t\t\tid: selectedProviderId,\n\t\t\t\t\tname: selectedProviderId,\n\t\t\t\t\toauthSupported: false,\n\t\t\t\t\tenabled: true,\n\t\t\t\t\tdefaultModelId: getProviderSettingsSummary().modelId,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tproviders,\n\t\t\t};\n\t\t},\n\n\t\tasync getProviderModels(providerId: string): Promise<RuntimeClineProviderModelsResponse> {\n\t\t\tconst normalizedProviderId = providerId.trim().toLowerCase();\n\t\t\tconst providerModels =\n\t\t\t\tnormalizedProviderId.length > 0\n\t\t\t\t\t? await listSdkProviderModels(normalizedProviderId)\n\t\t\t\t\t\t\t.then((sdkModels) =>\n\t\t\t\t\t\t\t\tObject.entries(sdkModels)\n\t\t\t\t\t\t\t.map(([modelId, modelInfo]) => toRuntimeProviderModel(modelId, modelInfo))\n\t\t\t\t\t\t\t.sort((left, right) => left.name.localeCompare(right.name)),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.catch(() => [])\n\t\t\t\t\t: [];\n\n\t\t\tif (providerModels.length > 0) {\n\t\t\t\treturn {\n\t\t\t\t\tproviderId: normalizedProviderId,\n\t\t\t\t\tmodels: providerModels,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst configuredModel = getProviderSettingsSummary().modelId?.trim() ?? \"\";\n\t\t\tif (configuredModel.length > 0) {\n\t\t\t\treturn {\n\t\t\t\t\tproviderId: normalizedProviderId || providerId,\n\t\t\t\t\tmodels: [{ id: configuredModel, name: configuredModel }],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tproviderId: normalizedProviderId || providerId,\n\t\t\t\tmodels: [],\n\t\t\t};\n\t\t},\n\n\t\tsaveProviderSettings(input: {\n\t\t\tproviderId: string;\n\t\t\tmodelId?: string | null;\n\t\t\tapiKey?: string | null;\n\t\t\tbaseUrl?: string | null;\n\t\t\treasoningEffort?: RuntimeClineReasoningEffort | null;\n\t\t}): RuntimeClineProviderSettingsSaveResponse {\n\t\t\tconst providerId = input.providerId.trim().toLowerCase();\n\t\t\tif (!providerId) {\n\t\t\t\tthrow new Error(\"Provider ID cannot be empty.\");\n\t\t\t}\n\n\t\t\tconst existingSettings = getSdkProviderSettings(providerId) ?? {\n\t\t\t\tprovider: providerId,\n\t\t\t};\n\t\t\tconst nextSettings: SdkProviderSettings = {\n\t\t\t\t...existingSettings,\n\t\t\t\tprovider: providerId,\n\t\t\t};\n\n\t\t\tif (input.modelId !== undefined) {\n\t\t\t\tconst modelId = input.modelId?.trim() ?? \"\";\n\t\t\t\tif (modelId) {\n\t\t\t\t\tnextSettings.model = modelId;\n\t\t\t\t} else {\n\t\t\t\t\tdelete nextSettings.model;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (input.baseUrl !== undefined) {\n\t\t\t\tconst baseUrl = input.baseUrl?.trim() ?? \"\";\n\t\t\t\tif (baseUrl) {\n\t\t\t\t\tnextSettings.baseUrl = baseUrl;\n\t\t\t\t} else {\n\t\t\t\t\tdelete nextSettings.baseUrl;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (input.apiKey !== undefined) {\n\t\t\t\tconst apiKey = input.apiKey?.trim() ?? \"\";\n\t\t\t\tif (apiKey) {\n\t\t\t\t\tnextSettings.apiKey = apiKey;\n\t\t\t\t} else {\n\t\t\t\t\tdelete nextSettings.apiKey;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (input.reasoningEffort !== undefined) {\n\t\t\t\tconst nextReasoning = { ...(nextSettings.reasoning ?? {}) };\n\t\t\t\tif (input.reasoningEffort) {\n\t\t\t\t\tnextReasoning.effort = input.reasoningEffort;\n\t\t\t\t} else {\n\t\t\t\t\tdelete nextReasoning.effort;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tnextReasoning.enabled === undefined &&\n\t\t\t\t\tnextReasoning.effort === undefined &&\n\t\t\t\t\tnextReasoning.budgetTokens === undefined\n\t\t\t\t) {\n\t\t\t\t\tdelete nextSettings.reasoning;\n\t\t\t\t} else {\n\t\t\t\t\tnextSettings.reasoning = nextReasoning;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!isManagedOauthProviderId(providerId)) {\n\t\t\t\tdelete nextSettings.auth;\n\t\t\t}\n\n\t\t\tsaveSdkProviderSettings({\n\t\t\t\tsettings: nextSettings,\n\t\t\t\ttokenSource: hasOauthAccessToken(nextSettings) ? \"oauth\" : \"manual\",\n\t\t\t\tsetLastUsed: true,\n\t\t\t});\n\n\t\t\treturn toProviderSettingsSummary(nextSettings);\n\t\t},\n\n\t\tasync runOauthLogin(input: {\n\t\t\tproviderId: ManagedClineOauthProviderId;\n\t\t\tbaseUrl?: string | null;\n\t\t}): Promise<RuntimeClineOauthLoginResponse> {\n\t\t\ttry {\n\t\t\t\tconst existingSettings = getSdkProviderSettings(input.providerId) ?? {\n\t\t\t\t\tprovider: input.providerId,\n\t\t\t\t};\n\t\t\t\tconst baseUrl = input.baseUrl?.trim() || null;\n\t\t\t\tconst credentials = await loginManagedOauthProvider({\n\t\t\t\t\tproviderId: input.providerId,\n\t\t\t\t\tbaseUrl,\n\t\t\t\t\toauthProvider: input.providerId,\n\t\t\t\t\tcallbacks: createRuntimeOauthCallbacks(input.providerId),\n\t\t\t\t});\n\n\t\t\t\tconst nextSettings: SdkProviderSettings = {\n\t\t\t\t\t...existingSettings,\n\t\t\t\t\tprovider: input.providerId,\n\t\t\t\t\tauth: {\n\t\t\t\t\t\t...(existingSettings.auth ?? {}),\n\t\t\t\t\t\taccessToken: toProviderApiKey(input.providerId, credentials.access),\n\t\t\t\t\t\trefreshToken: credentials.refresh,\n\t\t\t\t\t\taccountId: credentials.accountId ?? undefined,\n\t\t\t\t\t\texpiresAt: normalizeEpochMs(credentials.expires),\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tif (baseUrl) {\n\t\t\t\t\tnextSettings.baseUrl = baseUrl;\n\t\t\t\t} else {\n\t\t\t\t\tdelete nextSettings.baseUrl;\n\t\t\t\t}\n\n\t\t\t\tsaveSdkProviderSettings({\n\t\t\t\t\tsettings: nextSettings,\n\t\t\t\t\ttokenSource: \"oauth\",\n\t\t\t\t\tsetLastUsed: true,\n\t\t\t\t});\n\n\t\t\t\treturn {\n\t\t\t\t\tok: true,\n\t\t\t\t\tprovider: input.providerId,\n\t\t\t\t\tsettings: toProviderSettingsSummary(nextSettings),\n\t\t\t\t};\n\t\t\t} catch (error) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\tprovider: input.providerId,\n\t\t\t\t\terror: toErrorMessage(error),\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t};\n}\n"],"names":[],"mappings":"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","debugId":"a50686b7-715e-53de-af0d-76a7fe02c8af"}
@@ -1,4 +1,4 @@
1
- import type { RuntimeTaskImage, RuntimeTaskSessionMode } from "../core/api-contract.js";
1
+ import type { RuntimeClineReasoningEffort, RuntimeTaskImage, RuntimeTaskSessionMode } from "../core/api-contract.js";
2
2
  import { type ClineMcpRuntimeService } from "./cline-mcp-runtime-service.js";
3
3
  import { type ClineSdkPersistedMessage, type ClineSdkSessionHost, type ClineSdkSessionRecord, type ClineSdkUserInstructionWatcher } from "./sdk-runtime-boundary.js";
4
4
  export interface StartClineSessionRuntimeRequest {
@@ -12,6 +12,7 @@ export interface StartClineSessionRuntimeRequest {
12
12
  mode?: RuntimeTaskSessionMode;
13
13
  apiKey?: string | null;
14
14
  baseUrl?: string | null;
15
+ reasoningEffort?: RuntimeClineReasoningEffort | null;
15
16
  systemPrompt: string;
16
17
  userInstructionWatcher?: ClineSdkUserInstructionWatcher;
17
18
  requestToolApproval?: (request: unknown) => Promise<unknown>;