kanban 0.1.44 → 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 +34 -20
  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 +14 -31
  17. package/dist/cline-sdk/sdk-provider-boundary.d.ts.map +1 -1
  18. package/dist/cline-sdk/sdk-provider-boundary.js +35 -13
  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-Do8fo-_c.js → index-BB4df_c9.js} +22059 -21490
  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 +4 -4
  65. package/dist/web-ui/assets/index-Do8fo-_c.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,EAShC,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;2BAoC1C,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]="7478f901-486a-5c34-a9de-7db7636d688c")}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, } 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),
@@ -281,10 +285,6 @@ export function createClineProviderService() {
281
285
  if (!selectedSettings) {
282
286
  return { enabled: true };
283
287
  }
284
- const normalizedProviderId = selectedSettings.provider.trim().toLowerCase();
285
- if (normalizedProviderId !== "cline") {
286
- return { enabled: true };
287
- }
288
288
  const rawAccessToken = selectedSettings.auth?.accessToken?.trim() ?? "";
289
289
  if (!rawAccessToken) {
290
290
  return { enabled: true };
@@ -293,12 +293,18 @@ export function createClineProviderService() {
293
293
  apiBaseUrl: selectedSettings.baseUrl?.trim() || DEFAULT_CLINE_API_BASE_URL,
294
294
  accessToken: ensureWorkosPrefix(rawAccessToken),
295
295
  });
296
- if (!remoteConfigResponse.enabled) {
296
+ if (!remoteConfigResponse.enabled || !remoteConfigResponse.organizationId) {
297
297
  return { enabled: true };
298
298
  }
299
+ const orgData = await fetchSdkOrgData({
300
+ apiBaseUrl: selectedSettings.baseUrl?.trim() || DEFAULT_CLINE_API_BASE_URL,
301
+ accessToken: ensureWorkosPrefix(rawAccessToken),
302
+ organizatinId: remoteConfigResponse.organizationId
303
+ });
299
304
  const parsedRemoteConfig = parseClineRemoteConfigValue(remoteConfigResponse.value);
305
+ const isEnterpriseCustomer = !!orgData?.externalOrganizationId;
300
306
  return {
301
- enabled: parsedRemoteConfig.kanbanEnabled === true,
307
+ enabled: !parsedRemoteConfig || !isEnterpriseCustomer || parsedRemoteConfig.kanbanEnabled === true,
302
308
  };
303
309
  }
304
310
  catch (error) {
@@ -331,6 +337,7 @@ export function createClineProviderService() {
331
337
  modelId: resolvedSettings.model?.trim() || null,
332
338
  apiKey,
333
339
  baseUrl: resolvedSettings.baseUrl?.trim() || null,
340
+ reasoningEffort: resolvedSettings.reasoning?.effort ?? null,
334
341
  };
335
342
  },
336
343
  async getProviderCatalog() {
@@ -372,17 +379,7 @@ export function createClineProviderService() {
372
379
  const providerModels = normalizedProviderId.length > 0
373
380
  ? await listSdkProviderModels(normalizedProviderId)
374
381
  .then((sdkModels) => Object.entries(sdkModels)
375
- .map(([modelId, modelInfo]) => {
376
- const parsedModelInfo = typeof modelInfo === "object" && modelInfo !== null
377
- ? modelInfo
378
- : null;
379
- return toRuntimeProviderModel(modelId, {
380
- name: typeof parsedModelInfo?.name === "string" ? parsedModelInfo.name : undefined,
381
- capabilities: Array.isArray(parsedModelInfo?.capabilities)
382
- ? parsedModelInfo.capabilities.filter((value) => typeof value === "string")
383
- : undefined,
384
- });
385
- })
382
+ .map(([modelId, modelInfo]) => toRuntimeProviderModel(modelId, modelInfo))
386
383
  .sort((left, right) => left.name.localeCompare(right.name)))
387
384
  .catch(() => [])
388
385
  : [];
@@ -443,6 +440,23 @@ export function createClineProviderService() {
443
440
  delete nextSettings.apiKey;
444
441
  }
445
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
+ }
446
460
  if (!isManagedOauthProviderId(providerId)) {
447
461
  delete nextSettings.auth;
448
462
  }
@@ -504,4 +518,4 @@ export function createClineProviderService() {
504
518
  };
505
519
  }
506
520
  //# sourceMappingURL=cline-provider-service.js.map
507
- //# debugId=7478f901-486a-5c34-a9de-7db7636d688c
521
+ //# debugId=a50686b7-715e-53de-af0d-76a7fe02c8af