kanban 0.1.44 → 0.1.45

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.
@@ -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,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,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]="ddee5c60-966e-5611-9e05-7e8189cedaed")}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, } 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 = {
@@ -281,10 +281,6 @@ export function createClineProviderService() {
281
281
  if (!selectedSettings) {
282
282
  return { enabled: true };
283
283
  }
284
- const normalizedProviderId = selectedSettings.provider.trim().toLowerCase();
285
- if (normalizedProviderId !== "cline") {
286
- return { enabled: true };
287
- }
288
284
  const rawAccessToken = selectedSettings.auth?.accessToken?.trim() ?? "";
289
285
  if (!rawAccessToken) {
290
286
  return { enabled: true };
@@ -293,12 +289,18 @@ export function createClineProviderService() {
293
289
  apiBaseUrl: selectedSettings.baseUrl?.trim() || DEFAULT_CLINE_API_BASE_URL,
294
290
  accessToken: ensureWorkosPrefix(rawAccessToken),
295
291
  });
296
- if (!remoteConfigResponse.enabled) {
292
+ if (!remoteConfigResponse.enabled || !remoteConfigResponse.organizationId) {
297
293
  return { enabled: true };
298
294
  }
295
+ const orgData = await fetchSdkOrgData({
296
+ apiBaseUrl: selectedSettings.baseUrl?.trim() || DEFAULT_CLINE_API_BASE_URL,
297
+ accessToken: ensureWorkosPrefix(rawAccessToken),
298
+ organizatinId: remoteConfigResponse.organizationId
299
+ });
299
300
  const parsedRemoteConfig = parseClineRemoteConfigValue(remoteConfigResponse.value);
301
+ const isEnterpriseCustomer = !!orgData?.externalOrganizationId;
300
302
  return {
301
- enabled: parsedRemoteConfig.kanbanEnabled === true,
303
+ enabled: !parsedRemoteConfig || !isEnterpriseCustomer || parsedRemoteConfig.kanbanEnabled === true,
302
304
  };
303
305
  }
304
306
  catch (error) {
@@ -504,4 +506,4 @@ export function createClineProviderService() {
504
506
  };
505
507
  }
506
508
  //# sourceMappingURL=cline-provider-service.js.map
507
- //# debugId=7478f901-486a-5c34-a9de-7db7636d688c
509
+ //# debugId=ddee5c60-966e-5611-9e05-7e8189cedaed
@@ -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} 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}\n\n\t\t\t\tconst normalizedProviderId = selectedSettings.provider.trim().toLowerCase();\n\t\t\t\tif (normalizedProviderId !== \"cline\") {\n\t\t\t\t\treturn { enabled: true };\n\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) {\n\t\t\t\t\treturn { enabled: true };\n\t\t\t\t}\n\t\t\t\tconst parsedRemoteConfig = parseClineRemoteConfigValue(remoteConfigResponse.value);\n\t\t\t\treturn {\n\t\t\t\t\tenabled: 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":"7478f901-486a-5c34-a9de-7db7636d688c"}
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,3 +1,4 @@
1
+ import { ClineAccountUser, ClineOrganization } from "@clinebot/core/node";
1
2
  import { type CreateMcpToolsOptions, type Tool } from "@clinebot/agents";
2
3
  export type ManagedClineOauthProviderId = "cline" | "oca" | "openai-codex";
3
4
  export interface ManagedOauthCredentials {
@@ -20,11 +21,6 @@ export interface SdkProviderCatalogItem {
20
21
  defaultModelId?: string;
21
22
  capabilities?: string[];
22
23
  }
23
- export interface SdkClineAccountProfile {
24
- id: string;
25
- email: string;
26
- displayName: string;
27
- }
28
24
  export interface SdkUserRemoteConfigResponse {
29
25
  organizationId: string;
30
26
  value: string;
@@ -136,12 +132,14 @@ export declare function getLastUsedSdkProviderSettings(): SdkProviderSettings |
136
132
  export declare function saveSdkProviderSettings(input: SaveSdkProviderSettingsInput): void;
137
133
  export declare function createSdkInMemoryMcpManager(options: SdkMcpManagerOptions): SdkMcpManager;
138
134
  export declare function createSdkMcpTools(options: SdkCreateMcpToolsOptions): Promise<SdkMcpTool[]>;
139
- export declare function fetchSdkClineAccountProfile(input: {
140
- apiBaseUrl: string;
141
- accessToken: string;
142
- }): Promise<SdkClineAccountProfile>;
143
- export declare function fetchSdkClineUserRemoteConfig(input: {
135
+ type ApiRequestParams = {
144
136
  apiBaseUrl: string;
145
137
  accessToken: string;
146
- }): Promise<SdkUserRemoteConfigResponse>;
138
+ };
139
+ export declare function fetchSdkClineAccountProfile(input: ApiRequestParams): Promise<ClineAccountUser>;
140
+ export declare function fetchSdkOrgData(input: ApiRequestParams & {
141
+ organizatinId: string;
142
+ }): Promise<ClineOrganization>;
143
+ export declare function fetchSdkClineUserRemoteConfig(input: ApiRequestParams): Promise<SdkUserRemoteConfigResponse>;
144
+ export {};
147
145
  //# sourceMappingURL=sdk-provider-boundary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-provider-boundary.d.ts","sourceRoot":"","sources":["../../src/cline-sdk/sdk-provider-boundary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk-provider-boundary.d.ts","sourceRoot":"","sources":["../../src/cline-sdk/sdk-provider-boundary.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  // The rest of Kanban should talk to the SDK through local service modules so
3
3
  // auth, catalog, and provider-settings behavior stay behind one boundary.
4
4
 
5
- !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]="48d61817-6bbc-5a2a-ae86-c5a540cfd3ad")}catch(e){}}();
5
+ !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]="ca50bcad-c25a-5ca1-b0e8-371070f93df9")}catch(e){}}();
6
6
  import { ClineAccountService, getValidClineCredentials, getValidOcaCredentials, getValidOpenAICodexCredentials, InMemoryMcpManager, loginClineOAuth, loginOcaOAuth, loginOpenAICodex, ProviderSettingsManager, } from "@clinebot/core/node";
7
7
  import { LlmsModels as llmsModels } from "@clinebot/llms";
8
8
  import { createMcpTools } from "@clinebot/agents";
@@ -127,20 +127,19 @@ export async function createSdkMcpTools(options) {
127
127
  return await createMcpTools(options);
128
128
  }
129
129
  export async function fetchSdkClineAccountProfile(input) {
130
- const accountServiceConstructor = ClineAccountService;
131
- if (!accountServiceConstructor) {
132
- throw new Error("ClineAccountService is not available from @clinebot/core/node.");
133
- }
134
- const accountService = new accountServiceConstructor({
130
+ const accountService = new ClineAccountService({
135
131
  apiBaseUrl: input.apiBaseUrl,
136
132
  getAuthToken: async () => input.accessToken,
137
133
  });
138
134
  const me = await accountService.fetchMe();
139
- return {
140
- id: me.id,
141
- email: me.email,
142
- displayName: me.displayName,
143
- };
135
+ return me;
136
+ }
137
+ export async function fetchSdkOrgData(input) {
138
+ const accountService = new ClineAccountService({
139
+ apiBaseUrl: input.apiBaseUrl,
140
+ getAuthToken: async () => input.accessToken,
141
+ });
142
+ return await accountService.fetchOrganization(input.organizatinId);
144
143
  }
145
144
  export async function fetchSdkClineUserRemoteConfig(input) {
146
145
  const accountServiceConstructor = ClineAccountService;
@@ -154,4 +153,4 @@ export async function fetchSdkClineUserRemoteConfig(input) {
154
153
  return await accountService.fetchRemoteConfig();
155
154
  }
156
155
  //# sourceMappingURL=sdk-provider-boundary.js.map
157
- //# debugId=48d61817-6bbc-5a2a-ae86-c5a540cfd3ad
156
+ //# debugId=ca50bcad-c25a-5ca1-b0e8-371070f93df9
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-provider-boundary.js","sources":["../../src/cline-sdk/sdk-provider-boundary.ts"],"sourceRoot":"","sourcesContent":["// Centralize direct SDK provider imports here.\n// The rest of Kanban should talk to the SDK through local service modules so\n// auth, catalog, and provider-settings behavior stay behind one boundary.\nimport {\n\tClineAccountService,\n\tgetValidClineCredentials,\n\tgetValidOcaCredentials,\n\tgetValidOpenAICodexCredentials,\n\tInMemoryMcpManager,\n\tloginClineOAuth,\n\tloginOcaOAuth,\n\tloginOpenAICodex,\n\tProviderSettingsManager,\n} from \"@clinebot/core/node\";\nimport { LlmsModels as llmsModels } from \"@clinebot/llms\";\nimport { createMcpTools, type CreateMcpToolsOptions, type Tool } from \"@clinebot/agents\";\n\nexport type ManagedClineOauthProviderId = \"cline\" | \"oca\" | \"openai-codex\";\n\nexport interface ManagedOauthCredentials {\n\taccess: string;\n\trefresh: string;\n\texpires: number;\n\taccountId?: string | null;\n}\n\nexport interface ManagedOauthCallbacks {\n\tonAuth: (input: { url: string; instructions?: string }) => void;\n\tonPrompt: () => Promise<never>;\n\tonProgress: () => void;\n}\n\nexport interface SdkProviderCatalogItem {\n\tid: string;\n\tname: string;\n\tdefaultModelId?: string;\n\tcapabilities?: string[];\n}\n\nexport interface SdkClineAccountProfile {\n\tid: string;\n\temail: string;\n\tdisplayName: string;\n}\n\nexport interface SdkUserRemoteConfigResponse {\n\torganizationId: string;\n\tvalue: string;\n\tenabled: boolean;\n}\n\nexport type SdkProviderModelRecord = Record<\n\tstring,\n\t{ name?: string; capabilities?: string[] } | unknown\n>;\n\nexport interface SdkProviderSettings {\n\tprovider: string;\n\tmodel?: string;\n\tbaseUrl?: string;\n\tapiKey?: string;\n\toca?: {\n\t\tmode?: \"internal\" | \"external\";\n\t};\n\tauth?: {\n\t\tapiKey?: string;\n\t\taccessToken?: string;\n\t\trefreshToken?: string;\n\t\taccountId?: string | null;\n\t\texpiresAt?: number;\n\t};\n}\n\nexport interface SaveSdkProviderSettingsInput {\n\tsettings: SdkProviderSettings;\n\ttokenSource?: \"oauth\" | \"manual\";\n\tsetLastUsed?: boolean;\n}\n\nexport type SdkMcpTool = Tool;\n\nexport interface SdkMcpServerRegistration {\n\tname: string;\n\tdisabled?: boolean;\n\ttransport:\n\t\t| {\n\t\t\t\ttype: \"stdio\";\n\t\t\t\tcommand: string;\n\t\t\t\targs?: string[];\n\t\t\t\tcwd?: string;\n\t\t\t\tenv?: Record<string, string>;\n\t\t }\n\t\t| {\n\t\t\t\ttype: \"sse\";\n\t\t\t\turl: string;\n\t\t\t\theaders?: Record<string, string>;\n\t\t }\n\t\t| {\n\t\t\t\ttype: \"streamableHttp\";\n\t\t\t\turl: string;\n\t\t\t\theaders?: Record<string, string>;\n\t\t };\n}\n\nexport interface SdkMcpServerSnapshot {\n\tname: string;\n\tstatus: \"disconnected\" | \"connecting\" | \"connected\";\n\tdisabled: boolean;\n\tlastError?: string;\n\ttoolCount: number;\n\tupdatedAt: number;\n}\n\nexport interface SdkMcpServerClient {\n\tconnect(): Promise<void>;\n\tdisconnect(): Promise<void>;\n\tlistTools(): Promise<readonly { name: string; description?: string; inputSchema: Record<string, unknown> }[]>;\n\tcallTool(request: { name: string; arguments?: Record<string, unknown> }): Promise<unknown>;\n}\n\nexport interface SdkMcpManagerOptions {\n\tclientFactory:\n\t\t| ((registration: SdkMcpServerRegistration) => Promise<SdkMcpServerClient>)\n\t\t| ((registration: SdkMcpServerRegistration) => SdkMcpServerClient);\n\ttoolsCacheTtlMs?: number;\n}\n\nexport interface SdkMcpManager {\n\tregisterServer(registration: SdkMcpServerRegistration): Promise<void>;\n\tlistServers(): readonly SdkMcpServerSnapshot[];\n\tlistTools(serverName: string): Promise<readonly { name: string; description?: string; inputSchema: Record<string, unknown> }[]>;\n\tcallTool(request: {\n\t\tserverName: string;\n\t\ttoolName: string;\n\t\targuments?: Record<string, unknown>;\n\t\tcontext?: unknown;\n\t}): Promise<unknown>;\n\tdispose(): Promise<void>;\n}\n\nexport type SdkCreateMcpToolsOptions = CreateMcpToolsOptions;\n\nfunction buildOcaOauthConfig(baseUrl: string | null | undefined):\n\t| {\n\t\t\tmode: \"internal\" | \"external\";\n\t\t\tconfig: {\n\t\t\t\tinternal: { baseUrl: string };\n\t\t\t\texternal: { baseUrl: string };\n\t\t\t};\n\t }\n\t| undefined {\n\tconst normalizedBaseUrl = baseUrl?.trim() ?? \"\";\n\tif (!normalizedBaseUrl) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\tmode: normalizedBaseUrl.includes(\"code-internal\") ? \"internal\" : \"external\",\n\t\tconfig: {\n\t\t\tinternal: { baseUrl: normalizedBaseUrl },\n\t\t\texternal: { baseUrl: normalizedBaseUrl },\n\t\t},\n\t};\n}\n\nexport async function refreshManagedOauthCredentials(input: {\n\tproviderId: ManagedClineOauthProviderId;\n\tcurrentCredentials: ManagedOauthCredentials;\n\tbaseUrl?: string | null;\n\toauthProvider?: string | null;\n}): Promise<ManagedOauthCredentials | null> {\n\tif (input.providerId === \"cline\") {\n\t\tconst credentials = await getValidClineCredentials(\n\t\t\tinput.currentCredentials,\n\t\t\t{\n\t\t\t\tapiBaseUrl: input.baseUrl?.trim() || \"https://api.cline.bot\",\n\t\t\t\tprovider: input.oauthProvider?.trim() || undefined,\n\t\t\t},\n\t\t);\n\t\treturn credentials ?? null;\n\t}\n\n\tif (input.providerId === \"oca\") {\n\t\tconst credentials = await getValidOcaCredentials(\n\t\t\tinput.currentCredentials,\n\t\t\tundefined,\n\t\t\tbuildOcaOauthConfig(input.baseUrl),\n\t\t);\n\t\treturn credentials ?? null;\n\t}\n\n\tconst credentials = await getValidOpenAICodexCredentials(\n\t\tinput.currentCredentials,\n\t);\n\treturn credentials ?? null;\n}\n\nexport async function loginManagedOauthProvider(input: {\n\tproviderId: ManagedClineOauthProviderId;\n\tbaseUrl?: string | null;\n\toauthProvider?: string | null;\n\tcallbacks: ManagedOauthCallbacks;\n}): Promise<ManagedOauthCredentials> {\n\tif (input.providerId === \"cline\") {\n\t\treturn await loginClineOAuth({\n\t\t\tapiBaseUrl: input.baseUrl?.trim() || \"https://api.cline.bot\",\n\t\t\tprovider: input.oauthProvider?.trim() || undefined,\n\t\t\tcallbacks: input.callbacks,\n\t\t});\n\t}\n\n\tif (input.providerId === \"oca\") {\n\t\treturn await loginOcaOAuth({\n\t\t\t...(buildOcaOauthConfig(input.baseUrl) ?? { mode: \"external\" as const }),\n\t\t\tcallbacks: input.callbacks,\n\t\t});\n\t}\n\n\treturn await loginOpenAICodex({\n\t\t...input.callbacks,\n\t\toriginator: \"kanban-runtime\",\n\t});\n}\n\nexport async function listSdkProviderCatalog(): Promise<\n\tSdkProviderCatalogItem[]\n> {\n\treturn await llmsModels.getAllProviders();\n}\n\nexport async function listSdkProviderModels(\n\tproviderId: string,\n): Promise<SdkProviderModelRecord> {\n\treturn await llmsModels.getModelsForProvider(providerId);\n}\n\nconst providerManager = new ProviderSettingsManager();\n\nexport function getSdkProviderSettings(\n\tproviderId: string,\n): SdkProviderSettings | null {\n\treturn (\n\t\t(providerManager.getProviderSettings(providerId) as\n\t\t\t| SdkProviderSettings\n\t\t\t| undefined) ?? null\n\t);\n}\n\nexport function getLastUsedSdkProviderSettings(): SdkProviderSettings | null {\n\treturn (\n\t\t(providerManager.getLastUsedProviderSettings() as\n\t\t\t| SdkProviderSettings\n\t\t\t| undefined) ?? null\n\t);\n}\n\nexport function saveSdkProviderSettings(\n\tinput: SaveSdkProviderSettingsInput,\n): void {\n\tconst settings: SdkProviderSettings = {\n\t\t...input.settings,\n\t\tprovider: input.settings.provider.trim(),\n\t};\n\tif (settings.model !== undefined) {\n\t\tconst model = settings.model.trim();\n\t\tif (!model) {\n\t\t\tdelete settings.model;\n\t\t} else {\n\t\t\tsettings.model = model;\n\t\t}\n\t}\n\tif (settings.baseUrl !== undefined) {\n\t\tconst baseUrl = settings.baseUrl.trim();\n\t\tif (!baseUrl) {\n\t\t\tdelete settings.baseUrl;\n\t\t} else {\n\t\t\tsettings.baseUrl = baseUrl;\n\t\t\tif (settings.provider === \"oca\") {\n\t\t\t\tsettings.oca = {\n\t\t\t\t\tmode: baseUrl.includes(\"code-internal\") ? \"internal\" : \"external\",\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\tif (settings.apiKey !== undefined) {\n\t\tconst apiKey = settings.apiKey.trim();\n\t\tif (!apiKey) {\n\t\t\tdelete settings.apiKey;\n\t\t} else {\n\t\t\tsettings.apiKey = apiKey;\n\t\t}\n\t}\n\tif (settings.auth) {\n\t\tconst auth = { ...settings.auth };\n\t\tif (auth.accountId !== undefined && auth.accountId !== null) {\n\t\t\tconst accountId = auth.accountId.trim();\n\t\t\tauth.accountId = accountId || undefined;\n\t\t}\n\t\tsettings.auth = auth;\n\t}\n\n\tproviderManager.saveProviderSettings(settings, {\n\t\tsetLastUsed: input.setLastUsed,\n\t\ttokenSource: input.tokenSource,\n\t});\n}\n\nexport function createSdkInMemoryMcpManager(options: SdkMcpManagerOptions): SdkMcpManager {\n\tconst managerConstructor = InMemoryMcpManager;\n\tif (!managerConstructor) {\n\t\tthrow new Error(\"InMemoryMcpManager is not available from @clinebot/core/node.\");\n\t}\n\treturn new managerConstructor(options);\n}\n\nexport async function createSdkMcpTools(options: SdkCreateMcpToolsOptions): Promise<SdkMcpTool[]> {\n\treturn await createMcpTools(options);\n}\n\nexport async function fetchSdkClineAccountProfile(input: {\n\tapiBaseUrl: string;\n\taccessToken: string;\n}): Promise<SdkClineAccountProfile> {\t\n\tconst accountServiceConstructor = ClineAccountService;\n\tif (!accountServiceConstructor) {\n\t\tthrow new Error(\"ClineAccountService is not available from @clinebot/core/node.\");\n\t}\n\tconst accountService = new accountServiceConstructor({\n\t\tapiBaseUrl: input.apiBaseUrl,\n\t\tgetAuthToken: async () => input.accessToken,\n\t});\n\tconst me = await accountService.fetchMe();\n\treturn {\n\t\tid: me.id,\n\t\temail: me.email,\n\t\tdisplayName: me.displayName,\n\t};\n}\n\nexport async function fetchSdkClineUserRemoteConfig(input: {\n\tapiBaseUrl: string;\n\taccessToken: string;\n}): Promise<SdkUserRemoteConfigResponse> {\n\tconst accountServiceConstructor = ClineAccountService;\n\tif (!accountServiceConstructor) {\n\t\tthrow new Error(\"ClineAccountService is not available from @clinebot/core/node.\");\n\t}\n\tconst accountService = new accountServiceConstructor({\n\t\tapiBaseUrl: input.apiBaseUrl,\n\t\tgetAuthToken: async () => input.accessToken,\n\t});\n\treturn await accountService.fetchRemoteConfig();\n}\n"],"names":[],"mappings":"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","debugId":"48d61817-6bbc-5a2a-ae86-c5a540cfd3ad"}
1
+ {"version":3,"file":"sdk-provider-boundary.js","sources":["../../src/cline-sdk/sdk-provider-boundary.ts"],"sourceRoot":"","sourcesContent":["// Centralize direct SDK provider imports here.\n// The rest of Kanban should talk to the SDK through local service modules so\n// auth, catalog, and provider-settings behavior stay behind one boundary.\nimport {\n\tClineAccountService,\n\tClineAccountUser,\n\tgetValidClineCredentials,\n\tgetValidOcaCredentials,\n\tgetValidOpenAICodexCredentials,\n\tInMemoryMcpManager,\n\tloginClineOAuth,\n\tloginOcaOAuth,\n\tloginOpenAICodex,\n\tProviderSettingsManager,\n\tClineOrganization,\n} from \"@clinebot/core/node\";\nimport { LlmsModels as llmsModels } from \"@clinebot/llms\";\nimport { createMcpTools, type CreateMcpToolsOptions, type Tool } from \"@clinebot/agents\";\n\nexport type ManagedClineOauthProviderId = \"cline\" | \"oca\" | \"openai-codex\";\n\nexport interface ManagedOauthCredentials {\n\taccess: string;\n\trefresh: string;\n\texpires: number;\n\taccountId?: string | null;\n}\n\nexport interface ManagedOauthCallbacks {\n\tonAuth: (input: { url: string; instructions?: string }) => void;\n\tonPrompt: () => Promise<never>;\n\tonProgress: () => void;\n}\n\nexport interface SdkProviderCatalogItem {\n\tid: string;\n\tname: string;\n\tdefaultModelId?: string;\n\tcapabilities?: string[];\n}\n\nexport interface SdkUserRemoteConfigResponse {\n\torganizationId: string;\n\tvalue: string;\n\tenabled: boolean;\n}\n\nexport type SdkProviderModelRecord = Record<\n\tstring,\n\t{ name?: string; capabilities?: string[] } | unknown\n>;\n\nexport interface SdkProviderSettings {\n\tprovider: string;\n\tmodel?: string;\n\tbaseUrl?: string;\n\tapiKey?: string;\n\toca?: {\n\t\tmode?: \"internal\" | \"external\";\n\t};\n\tauth?: {\n\t\tapiKey?: string;\n\t\taccessToken?: string;\n\t\trefreshToken?: string;\n\t\taccountId?: string | null;\n\t\texpiresAt?: number;\n\t};\n}\n\nexport interface SaveSdkProviderSettingsInput {\n\tsettings: SdkProviderSettings;\n\ttokenSource?: \"oauth\" | \"manual\";\n\tsetLastUsed?: boolean;\n}\n\nexport type SdkMcpTool = Tool;\n\nexport interface SdkMcpServerRegistration {\n\tname: string;\n\tdisabled?: boolean;\n\ttransport:\n\t\t| {\n\t\t\t\ttype: \"stdio\";\n\t\t\t\tcommand: string;\n\t\t\t\targs?: string[];\n\t\t\t\tcwd?: string;\n\t\t\t\tenv?: Record<string, string>;\n\t\t }\n\t\t| {\n\t\t\t\ttype: \"sse\";\n\t\t\t\turl: string;\n\t\t\t\theaders?: Record<string, string>;\n\t\t }\n\t\t| {\n\t\t\t\ttype: \"streamableHttp\";\n\t\t\t\turl: string;\n\t\t\t\theaders?: Record<string, string>;\n\t\t };\n}\n\nexport interface SdkMcpServerSnapshot {\n\tname: string;\n\tstatus: \"disconnected\" | \"connecting\" | \"connected\";\n\tdisabled: boolean;\n\tlastError?: string;\n\ttoolCount: number;\n\tupdatedAt: number;\n}\n\nexport interface SdkMcpServerClient {\n\tconnect(): Promise<void>;\n\tdisconnect(): Promise<void>;\n\tlistTools(): Promise<readonly { name: string; description?: string; inputSchema: Record<string, unknown> }[]>;\n\tcallTool(request: { name: string; arguments?: Record<string, unknown> }): Promise<unknown>;\n}\n\nexport interface SdkMcpManagerOptions {\n\tclientFactory:\n\t\t| ((registration: SdkMcpServerRegistration) => Promise<SdkMcpServerClient>)\n\t\t| ((registration: SdkMcpServerRegistration) => SdkMcpServerClient);\n\ttoolsCacheTtlMs?: number;\n}\n\nexport interface SdkMcpManager {\n\tregisterServer(registration: SdkMcpServerRegistration): Promise<void>;\n\tlistServers(): readonly SdkMcpServerSnapshot[];\n\tlistTools(serverName: string): Promise<readonly { name: string; description?: string; inputSchema: Record<string, unknown> }[]>;\n\tcallTool(request: {\n\t\tserverName: string;\n\t\ttoolName: string;\n\t\targuments?: Record<string, unknown>;\n\t\tcontext?: unknown;\n\t}): Promise<unknown>;\n\tdispose(): Promise<void>;\n}\n\nexport type SdkCreateMcpToolsOptions = CreateMcpToolsOptions;\n\nfunction buildOcaOauthConfig(baseUrl: string | null | undefined):\n\t| {\n\t\t\tmode: \"internal\" | \"external\";\n\t\t\tconfig: {\n\t\t\t\tinternal: { baseUrl: string };\n\t\t\t\texternal: { baseUrl: string };\n\t\t\t};\n\t }\n\t| undefined {\n\tconst normalizedBaseUrl = baseUrl?.trim() ?? \"\";\n\tif (!normalizedBaseUrl) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\tmode: normalizedBaseUrl.includes(\"code-internal\") ? \"internal\" : \"external\",\n\t\tconfig: {\n\t\t\tinternal: { baseUrl: normalizedBaseUrl },\n\t\t\texternal: { baseUrl: normalizedBaseUrl },\n\t\t},\n\t};\n}\n\nexport async function refreshManagedOauthCredentials(input: {\n\tproviderId: ManagedClineOauthProviderId;\n\tcurrentCredentials: ManagedOauthCredentials;\n\tbaseUrl?: string | null;\n\toauthProvider?: string | null;\n}): Promise<ManagedOauthCredentials | null> {\n\tif (input.providerId === \"cline\") {\n\t\tconst credentials = await getValidClineCredentials(\n\t\t\tinput.currentCredentials,\n\t\t\t{\n\t\t\t\tapiBaseUrl: input.baseUrl?.trim() || \"https://api.cline.bot\",\n\t\t\t\tprovider: input.oauthProvider?.trim() || undefined,\n\t\t\t},\n\t\t);\n\t\treturn credentials ?? null;\n\t}\n\n\tif (input.providerId === \"oca\") {\n\t\tconst credentials = await getValidOcaCredentials(\n\t\t\tinput.currentCredentials,\n\t\t\tundefined,\n\t\t\tbuildOcaOauthConfig(input.baseUrl),\n\t\t);\n\t\treturn credentials ?? null;\n\t}\n\n\tconst credentials = await getValidOpenAICodexCredentials(\n\t\tinput.currentCredentials,\n\t);\n\treturn credentials ?? null;\n}\n\nexport async function loginManagedOauthProvider(input: {\n\tproviderId: ManagedClineOauthProviderId;\n\tbaseUrl?: string | null;\n\toauthProvider?: string | null;\n\tcallbacks: ManagedOauthCallbacks;\n}): Promise<ManagedOauthCredentials> {\n\tif (input.providerId === \"cline\") {\n\t\treturn await loginClineOAuth({\n\t\t\tapiBaseUrl: input.baseUrl?.trim() || \"https://api.cline.bot\",\n\t\t\tprovider: input.oauthProvider?.trim() || undefined,\n\t\t\tcallbacks: input.callbacks,\n\t\t});\n\t}\n\n\tif (input.providerId === \"oca\") {\n\t\treturn await loginOcaOAuth({\n\t\t\t...(buildOcaOauthConfig(input.baseUrl) ?? { mode: \"external\" as const }),\n\t\t\tcallbacks: input.callbacks,\n\t\t});\n\t}\n\n\treturn await loginOpenAICodex({\n\t\t...input.callbacks,\n\t\toriginator: \"kanban-runtime\",\n\t});\n}\n\nexport async function listSdkProviderCatalog(): Promise<\n\tSdkProviderCatalogItem[]\n> {\n\treturn await llmsModels.getAllProviders();\n}\n\nexport async function listSdkProviderModels(\n\tproviderId: string,\n): Promise<SdkProviderModelRecord> {\n\treturn await llmsModels.getModelsForProvider(providerId);\n}\n\nconst providerManager = new ProviderSettingsManager();\n\nexport function getSdkProviderSettings(\n\tproviderId: string,\n): SdkProviderSettings | null {\n\treturn (\n\t\t(providerManager.getProviderSettings(providerId) as\n\t\t\t| SdkProviderSettings\n\t\t\t| undefined) ?? null\n\t);\n}\n\nexport function getLastUsedSdkProviderSettings(): SdkProviderSettings | null {\n\treturn (\n\t\t(providerManager.getLastUsedProviderSettings() as\n\t\t\t| SdkProviderSettings\n\t\t\t| undefined) ?? null\n\t);\n}\n\nexport function saveSdkProviderSettings(\n\tinput: SaveSdkProviderSettingsInput,\n): void {\n\tconst settings: SdkProviderSettings = {\n\t\t...input.settings,\n\t\tprovider: input.settings.provider.trim(),\n\t};\n\tif (settings.model !== undefined) {\n\t\tconst model = settings.model.trim();\n\t\tif (!model) {\n\t\t\tdelete settings.model;\n\t\t} else {\n\t\t\tsettings.model = model;\n\t\t}\n\t}\n\tif (settings.baseUrl !== undefined) {\n\t\tconst baseUrl = settings.baseUrl.trim();\n\t\tif (!baseUrl) {\n\t\t\tdelete settings.baseUrl;\n\t\t} else {\n\t\t\tsettings.baseUrl = baseUrl;\n\t\t\tif (settings.provider === \"oca\") {\n\t\t\t\tsettings.oca = {\n\t\t\t\t\tmode: baseUrl.includes(\"code-internal\") ? \"internal\" : \"external\",\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\tif (settings.apiKey !== undefined) {\n\t\tconst apiKey = settings.apiKey.trim();\n\t\tif (!apiKey) {\n\t\t\tdelete settings.apiKey;\n\t\t} else {\n\t\t\tsettings.apiKey = apiKey;\n\t\t}\n\t}\n\tif (settings.auth) {\n\t\tconst auth = { ...settings.auth };\n\t\tif (auth.accountId !== undefined && auth.accountId !== null) {\n\t\t\tconst accountId = auth.accountId.trim();\n\t\t\tauth.accountId = accountId || undefined;\n\t\t}\n\t\tsettings.auth = auth;\n\t}\n\n\tproviderManager.saveProviderSettings(settings, {\n\t\tsetLastUsed: input.setLastUsed,\n\t\ttokenSource: input.tokenSource,\n\t});\n}\n\nexport function createSdkInMemoryMcpManager(options: SdkMcpManagerOptions): SdkMcpManager {\n\tconst managerConstructor = InMemoryMcpManager;\n\tif (!managerConstructor) {\n\t\tthrow new Error(\"InMemoryMcpManager is not available from @clinebot/core/node.\");\n\t}\n\treturn new managerConstructor(options);\n}\n\nexport async function createSdkMcpTools(options: SdkCreateMcpToolsOptions): Promise<SdkMcpTool[]> {\n\treturn await createMcpTools(options);\n}\n\ntype ApiRequestParams = {\n\tapiBaseUrl: string;\n\taccessToken: string;\n}\n\nexport async function fetchSdkClineAccountProfile(input: ApiRequestParams): Promise<ClineAccountUser> {\t\n\tconst accountService = new ClineAccountService({\n\t\tapiBaseUrl: input.apiBaseUrl,\n\t\tgetAuthToken: async () => input.accessToken,\n\t});\n\tconst me = await accountService.fetchMe();\n\treturn me\n}\n\nexport async function fetchSdkOrgData(input: ApiRequestParams & {organizatinId: string}): Promise<ClineOrganization> {\n\tconst accountService = new ClineAccountService({\n\t\tapiBaseUrl: input.apiBaseUrl,\n\t\tgetAuthToken: async () => input.accessToken,\n\t});\n\treturn await accountService.fetchOrganization(input.organizatinId);\n}\n\nexport async function fetchSdkClineUserRemoteConfig(input: ApiRequestParams): Promise<SdkUserRemoteConfigResponse> {\n\tconst accountServiceConstructor = ClineAccountService;\n\tif (!accountServiceConstructor) {\n\t\tthrow new Error(\"ClineAccountService is not available from @clinebot/core/node.\");\n\t}\n\tconst accountService = new accountServiceConstructor({\n\t\tapiBaseUrl: input.apiBaseUrl,\n\t\tgetAuthToken: async () => input.accessToken,\n\t});\n\treturn await accountService.fetchRemoteConfig();\n}\n"],"names":[],"mappings":"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","debugId":"ca50bcad-c25a-5ca1-b0e8-371070f93df9"}
@@ -1,5 +1,5 @@
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]="c26fbfee-182d-5e71-ac42-38003375c03a")}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]="e00763d2-d855-5611-84bb-51bbe7b595b2")}catch(e){}}();
3
3
  var __defProp = Object.defineProperty;
4
4
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
5
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -31573,7 +31573,7 @@ function l$e({ projects: e, isLoadingProjects: t = false, currentProjectId: n, r
31573
31573
  const T = y.useCallback((A) => {
31574
31574
  A.preventDefault(), b && S(), _.current = { startX: A.clientX, startWidth: h }, x(true), w.current = { userSelect: document.body.style.userSelect, cursor: document.body.style.cursor }, document.body.style.userSelect = "none", document.body.style.cursor = "ew-resize";
31575
31575
  }, [h, b, S]), [R, $] = y.useState(null), N = R !== null && r === R.id, D = R ? R.taskCounts.backlog + R.taskCounts.in_progress + R.taskCounts.review + R.taskCounts.trash : 0;
31576
- return g.jsxs("aside", { className: "relative flex flex-col min-h-0 overflow-hidden bg-surface-1", style: { width: h, minWidth: SE, maxWidth: EE, borderRight: "1px solid var(--color-divider)" }, children: [g.jsx("div", { role: "separator", "aria-orientation": "vertical", "aria-label": "Resize sidebar", onMouseDown: T, className: "absolute top-0 right-0 bottom-0 z-10 w-[5px] cursor-ew-resize hover:bg-accent/30" }), g.jsxs("div", { style: { padding: "12px 12px 8px" }, children: [g.jsx("div", { children: g.jsxs("div", { className: "font-semibold text-base flex items-baseline gap-1.5", children: [g.jsx(r$e, { size: 18, className: "text-text-primary shrink-0 self-center" }), "Cline ", g.jsxs("span", { className: "text-text-secondary font-normal text-xs", children: ["v", "0.1.44"] })] }) }), g.jsx("div", { className: "mt-2 rounded-md bg-surface-2 p-1", children: g.jsxs("div", { className: "grid grid-cols-2 gap-1", children: [g.jsx("button", { type: "button", onClick: () => s("projects"), className: lt("cursor-pointer rounded-sm px-2 py-1 text-xs font-medium", i === "projects" ? "bg-surface-4 text-text-primary" : "text-text-secondary hover:text-text-primary"), children: "Projects" }), g.jsx("button", { type: "button", onClick: () => s("agent"), disabled: !o, className: lt("cursor-pointer rounded-sm px-2 py-1 text-xs font-medium", i === "agent" ? "bg-surface-4 text-text-primary" : "text-text-secondary hover:text-text-primary", o ? null : "cursor-not-allowed opacity-50"), children: "Kanban Agent" })] }) }), i === "agent" ? g.jsx("p", { className: "text-text-tertiary text-xs", style: { padding: "8px 4px 0" }, children: "Add tasks, link dependencies, break work down, and manage your board. Try asking to create and link some tasks to get started." }) : null] }), i === "projects" ? g.jsxs(g.Fragment, { children: [g.jsxs("div", { className: "flex-1 min-h-0 overflow-y-auto overscroll-contain flex flex-col gap-1", style: { padding: "4px 12px" }, children: [f.length === 0 && t ? g.jsx("div", { style: { padding: "4px 0" }, children: Array.from({ length: 3 }).map((A, j) => g.jsx(f$e, {}, `project-skeleton-${j}`)) }) : null, f.map((A) => g.jsx(p$e, { project: A, isCurrent: n === A.id, removingProjectId: r, onSelect: l, onRemove: (j) => {
31576
+ return g.jsxs("aside", { className: "relative flex flex-col min-h-0 overflow-hidden bg-surface-1", style: { width: h, minWidth: SE, maxWidth: EE, borderRight: "1px solid var(--color-divider)" }, children: [g.jsx("div", { role: "separator", "aria-orientation": "vertical", "aria-label": "Resize sidebar", onMouseDown: T, className: "absolute top-0 right-0 bottom-0 z-10 w-[5px] cursor-ew-resize hover:bg-accent/30" }), g.jsxs("div", { style: { padding: "12px 12px 8px" }, children: [g.jsx("div", { children: g.jsxs("div", { className: "font-semibold text-base flex items-baseline gap-1.5", children: [g.jsx(r$e, { size: 18, className: "text-text-primary shrink-0 self-center" }), "Cline ", g.jsxs("span", { className: "text-text-secondary font-normal text-xs", children: ["v", "0.1.45"] })] }) }), g.jsx("div", { className: "mt-2 rounded-md bg-surface-2 p-1", children: g.jsxs("div", { className: "grid grid-cols-2 gap-1", children: [g.jsx("button", { type: "button", onClick: () => s("projects"), className: lt("cursor-pointer rounded-sm px-2 py-1 text-xs font-medium", i === "projects" ? "bg-surface-4 text-text-primary" : "text-text-secondary hover:text-text-primary"), children: "Projects" }), g.jsx("button", { type: "button", onClick: () => s("agent"), disabled: !o, className: lt("cursor-pointer rounded-sm px-2 py-1 text-xs font-medium", i === "agent" ? "bg-surface-4 text-text-primary" : "text-text-secondary hover:text-text-primary", o ? null : "cursor-not-allowed opacity-50"), children: "Kanban Agent" })] }) }), i === "agent" ? g.jsx("p", { className: "text-text-tertiary text-xs", style: { padding: "8px 4px 0" }, children: "Add tasks, link dependencies, break work down, and manage your board. Try asking to create and link some tasks to get started." }) : null] }), i === "projects" ? g.jsxs(g.Fragment, { children: [g.jsxs("div", { className: "flex-1 min-h-0 overflow-y-auto overscroll-contain flex flex-col gap-1", style: { padding: "4px 12px" }, children: [f.length === 0 && t ? g.jsx("div", { style: { padding: "4px 0" }, children: Array.from({ length: 3 }).map((A, j) => g.jsx(f$e, {}, `project-skeleton-${j}`)) }) : null, f.map((A) => g.jsx(p$e, { project: A, isCurrent: n === A.id, removingProjectId: r, onSelect: l, onRemove: (j) => {
31577
31577
  const M = f.find((G) => G.id === j);
31578
31578
  M && $(M);
31579
31579
  } }, A.id)), t ? null : g.jsxs("button", { type: "button", className: "kb-project-row flex cursor-pointer items-center gap-1.5 rounded-md text-text-secondary hover:text-text-primary", style: { padding: "6px 8px" }, onClick: d, disabled: r !== null, children: [g.jsx(fu, { size: 14, className: "shrink-0" }), g.jsx("span", { className: "text-sm", children: "Add Project" })] })] }), g.jsx(d$e, {})] }) : g.jsx("div", { className: "flex flex-1 min-h-0 flex-col", children: g.jsx("div", { className: "flex flex-1 min-h-0 overflow-hidden bg-surface-1 px-2 pb-2 pt-1", children: a ?? g.jsx("div", { className: "flex w-full items-center justify-center rounded-md border border-border bg-surface-2 px-3 text-center text-sm text-text-secondary", children: "Select a project to use the agent." }) }) }), g.jsxs(hd, { open: R !== null, onOpenChange: (A) => {
@@ -38448,21 +38448,17 @@ function $Ne({ currentProjectId: e, hasNoProjects: t, runtimeProjectConfig: n, c
38448
38448
  return t || !e ? null : n ? h === "chat" && m ? g.jsx(U2, { taskId: m, summary: E ?? Rq(m), defaultMode: "act", showComposerModeToggle: false, workspaceId: e, runtimeConfig: n, onSendMessage: R, onCancelTurn: N, onLoadMessages: $, incomingMessage: T, incomingMessages: C, showRightBorder: false, composerPlaceholder: "Ask Cline to add, edit, start, or link tasks" }, m) : h === "terminal" && m ? g.jsx(Fy, { taskId: m, workspaceId: e, summary: E, onSummary: d, showSessionToolbar: false, autoFocus: true, panelBackgroundColor: br.surfaceRaised, terminalBackgroundColor: br.surfaceRaised, cursorColor: br.textPrimary, showRightBorder: false }, m) : n.selectedAgentId !== "cline" ? g.jsxs("div", { className: "flex w-full items-center justify-center rounded-md border border-border bg-surface-2 px-3 text-center text-sm text-text-secondary", children: ["No runnable ", S, " command is configured. Open Settings, install the CLI, and select it."] }) : g.jsx("div", { className: "flex w-full items-center justify-center rounded-md border border-border bg-surface-2 px-3 text-center text-sm text-text-secondary", children: "Select a Cline provider in Settings to start a home chat session." }) : g.jsx("div", { className: "flex w-full items-center justify-center rounded-md border border-border bg-surface-2 px-3 py-6", children: g.jsx($n, { size: 20 }) });
38449
38449
  }
38450
38450
  function ANe(e) {
38451
- const { workspaceId: t, clineProviderSettings: n } = e, [r, i] = y.useState(false), s = (n == null ? void 0 : n.oauthProvider) === "cline" && n.oauthAccessTokenConfigured;
38451
+ const { workspaceId: t } = e, [n, r] = y.useState(false);
38452
38452
  return y.useEffect(() => {
38453
- if (!s) {
38454
- i(false);
38455
- return;
38456
- }
38457
- let o = false;
38458
- return nwe(t).then((a) => {
38459
- o || i(!a.enabled);
38453
+ let i = false;
38454
+ return nwe(t).then((s) => {
38455
+ console.log(s), !i && r(!s.enabled);
38460
38456
  }).catch(() => {
38461
- o || i(false);
38457
+ i || r(false);
38462
38458
  }), () => {
38463
- o = true;
38459
+ i = true;
38464
38460
  };
38465
- }, [s, t]), { isBlocked: r };
38461
+ }, [t]), { isBlocked: n };
38466
38462
  }
38467
38463
  const RNe = "data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M11.503.131%201.891%205.678a.84.84%200%200%200-.42.726v11.188c0%20.3.162.575.42.724l9.609%205.55a1%201%200%200%200%20.998%200l9.61-5.55a.84.84%200%200%200%20.42-.724V6.404a.84.84%200%200%200-.42-.726L12.497.131a1.01%201.01%200%200%200-.996%200M2.657%206.338h18.55c.263%200%20.43.287.297.515L12.23%2022.918c-.062.107-.229.064-.229-.06V12.335a.59.59%200%200%200-.295-.51l-9.11-5.257c-.109-.063-.064-.23.061-.23'/%3e%3c/svg%3e", PNe = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%3e%3cpath%20fill='none'%20d='M0%200H24V24H0z'/%3e%3cpath%20d='M21%203c.552%200%201%20.448%201%201v16c0%20.552-.448%201-1%201H3c-.552%200-1-.448-1-1V4c0-.552.448-1%201-1h18zm-1%202h-8.465c-.69%201.977-1.035%204.644-1.035%208h3c-.115.92-.15%201.878-.107%202.877%201.226-.211%202.704-.777%204.027-1.71l1.135%201.665c-1.642%201.095-3.303%201.779-4.976%202.043.052.37.113.745.184%201.125H20V5zM6.555%2014.168l-1.11%201.664C7.602%2017.27%209.792%2018%2012%2018v-2c-1.792%200-3.602-.603-5.445-1.832zM17%207c.552%200%201%20.448%201%201v1c0%20.552-.448%201-1%201s-1-.448-1-1V8c0-.552.448-1%201-1zM7%207c-.552%200-1%20.452-1%201v1c0%20.552.448%201%201%201s1-.45%201-1V8c0-.552-.448-1-1-1z'/%3e%3c/g%3e%3c/svg%3e", NNe = "data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12%200C6.7%200%202.4%204.3%202.4%209.6v11.146c0%201.772%201.45%203.267%203.222%203.254a3.18%203.18%200%200%200%201.955-.686%201.96%201.96%200%200%201%202.444%200%203.18%203.18%200%200%200%201.976.686c.75%200%201.436-.257%201.98-.686.715-.563%201.71-.587%202.419-.018.59.476%201.355.743%202.182.699%201.705-.094%203.022-1.537%203.022-3.244V9.601C21.6%204.3%2017.302%200%2012%200M6.069%206.562a1%201%200%200%201%20.46.131l3.578%202.065v.002a.974.974%200%200%201%200%201.687L6.53%2012.512a.975.975%200%200%201-.976-1.687L7.67%209.602%205.553%208.38a.975.975%200%200%201%20.515-1.818m7.438%202.063h4.7a.975.975%200%201%201%200%201.95h-4.7a.975.975%200%200%201%200-1.95'/%3e%3c/svg%3e", DNe = "data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M0%200v24h24V0zm3.723%203.111h5v1.834h-1.39v6.277h1.39v1.834h-5v-1.834h1.444V4.945H3.723zm11.055%200H17v6.5c0%20.612-.055%201.111-.222%201.556-.167.444-.39.777-.723%201.11-.277.279-.666.557-1.11.668a3.933%203.933%200%200%201-1.445.278c-.778%200-1.444-.167-1.944-.445a4.81%204.81%200%200%201-1.279-1.056l1.39-1.555c.277.334.555.555.833.722.277.167.611.278.945.278.389%200%20.721-.111%201-.389.221-.278.333-.667.333-1.278zM2.222%2019.5h9V21h-9z'/%3e%3c/svg%3e", ONe = "data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M24%205.359v13.282A5.36%205.36%200%200%201%2018.641%2024H5.359A5.36%205.36%200%200%201%200%2018.641V5.359A5.36%205.36%200%200%201%205.359%200h13.282A5.36%205.36%200%200%201%2024%205.359m-.932-.233A4.196%204.196%200%200%200%2018.874.932H5.126A4.196%204.196%200%200%200%20.932%205.126v13.748a4.196%204.196%200%200%200%204.194%204.194h13.748a4.196%204.196%200%200%200%204.194-4.194zm-.816.233v13.282a3.613%203.613%200%200%201-3.611%203.611H5.359a3.613%203.613%200%200%201-3.611-3.611V5.359a3.613%203.613%200%200%201%203.611-3.611h13.282a3.613%203.613%200%200%201%203.611%203.611M8.854%204.194v6.495h.962V4.194zM5.483%209.493v1.085h.597V9.48q.283-.037.508-.133.373-.165.575-.448.208-.284.208-.649a.9.9%200%200%200-.171-.568%201.4%201.4%200%200%200-.426-.388%203%203%200%200%200-.544-.261%2032%2032%200%200%200-.545-.209%201.8%201.8%200%200%201-.426-.216q-.164-.12-.164-.284%200-.223.179-.351.18-.126.485-.127.344%200%20.575.105.239.105.5.298l.433-.5a2.3%202.3%200%200%200-.605-.433%201.6%201.6%200%200%200-.582-.159v-.968h-.597v.978a2%202%200%200%200-.477.127%201.2%201.2%200%200%200-.545.411q-.194.268-.194.634%200%20.335.164.56.164.224.418.38a4%204%200%200%200%20.552.262q.291.104.545.209.261.104.425.238a.39.39%200%200%201%20.165.321q0%20.225-.187.359-.18.134-.537.134-.381%200-.717-.134a4.4%204.4%200%200%201-.649-.351l-.388.589q.209.173.477.306.276.135.575.217.191.046.373.064'/%3e%3c/svg%3e", jNe = "data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.29291%2014.2929C6.90238%2014.6834%206.90238%2015.3166%207.29291%2015.7071C7.68343%2016.0976%208.31659%2016.0976%208.70712%2015.7071L11.2071%2013.2071C11.8738%2012.5404%2011.8738%2011.4596%2011.2071%2010.7929L8.70712%208.29289C8.3166%207.90237%207.68343%207.90237%207.29291%208.29289C6.90238%208.68342%206.90238%209.31658%207.29291%209.70711L9.5858%2012L7.29291%2014.2929ZM13%2014C12.4477%2014%2012%2014.4477%2012%2015C12%2015.5523%2012.4477%2016%2013%2016H16C16.5523%2016%2017%2015.5523%2017%2015C17%2014.4477%2016.5523%2014%2016%2014H13ZM22%207.93418C22%207.95604%2022%207.97799%2022%208.00001L22%2016.0658C22.0001%2016.9523%2022.0001%2017.7161%2021.9179%2018.3278C21.8297%2018.9833%2021.631%2019.6117%2021.1213%2020.1213C20.6117%2020.631%2019.9833%2020.8297%2019.3278%2020.9179C18.7161%2021.0001%2017.9523%2021.0001%2017.0658%2021L6.9342%2021C6.0477%2021.0001%205.28388%2021.0001%204.67222%2020.9179C4.0167%2020.8297%203.38835%2020.631%202.87869%2020.1213C2.36902%2019.6117%202.17028%2018.9833%202.08215%2018.3278C1.99991%2017.7161%201.99995%2016.9523%202%2016.0658L2%207.9342C1.99995%207.0477%201.99991%206.28388%202.08215%205.67221C2.17028%205.0167%202.36902%204.38835%202.87869%203.87868C3.38835%203.36902%204.0167%203.17028%204.67222%203.08215C5.28388%202.99991%206.04769%202.99995%206.93418%203L17%203.00001C17.022%203.00001%2017.044%203%2017.0658%203C17.9523%202.99995%2018.7161%202.99991%2019.3278%203.08215C19.9833%203.17028%2020.6117%203.36902%2021.1213%203.87869C21.631%204.38835%2021.8297%205.0167%2021.9179%205.67221C22.0001%206.28387%2022.0001%207.04769%2022%207.93418Z'/%3e%3c/svg%3e", MNe = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cpath%20d='M22%205.75v12.48c0%20.49-.28.94-.72%201.15-.91.43-2.46%201.18-3.33%201.59.03-.16.05-.33.05-.5V3.53C18%203.3%2017.97%203.12%2017.94%203c.94.46%202.44%201.18%203.33%201.6C21.72%204.81%2022%205.26%2022%205.75zM3.91%2013.35c.89.8%201.73%201.56%202.51%202.28l-1.48%201.12c-.37.28-.89.27-1.25-.03l-.94-.79c-.46-.39-.48-1.09-.03-1.5C3.05%2014.13%203.46%2013.76%203.91%2013.35zM16%203.53v4.81l-3.16%202.4-3.3-2.5c2.29-2.07%204.46-4.05%205.59-5.1.23-.22.56-.16.74.04.05.06.09.13.11.22C15.99%203.44%2016%203.48%2016%203.53zM16%2020.47v-4.81L4.938%207.252c-.372-.283-.889-.27-1.247.03L2.754%208.066C2.289%208.456%202.271%209.162%202.72%209.569c2.747%202.488%209.998%209.06%2012.41%2011.291C15.462%2021.167%2016%2020.93%2016%2020.47z'/%3e%3c/svg%3e", LNe = "data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12.035%202.723h9.253A2.712%202.712%200%200%201%2024%205.435v10.529a2.712%202.712%200%200%201-2.712%202.713H8.047Zm-1.681%202.6L6.766%2019.677h5.598l-.399%201.6H2.712A2.712%202.712%200%200%201%200%2018.565V8.036a2.712%202.712%200%200%201%202.712-2.712Z'/%3e%3c/svg%3e", zNe = "data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M23.55%205.067c-1.2038-.002-2.1806.973-2.1806%202.1765v4.8676c0%20.972-.8035%201.7594-1.7597%201.7594-.568%200-1.1352-.286-1.4718-.7659l-4.9713-7.1003c-.4125-.5896-1.0837-.941-1.8103-.941-1.1334%200-2.1533.9635-2.1533%202.153v4.8957c0%20.972-.7969%201.7594-1.7596%201.7594-.57%200-1.1363-.286-1.4728-.7658L.4076%205.1598C.2822%204.9798%200%205.0688%200%205.2882v4.2452c0%20.2147.0656.4228.1884.599l5.4748%207.8183c.3234.462.8006.8052%201.3509.9298%201.3771.313%202.6446-.747%202.6446-2.0977v-4.893c0-.972.7875-1.7593%201.7596-1.7593h.003a1.798%201.798%200%200%201%201.4718.7658l4.9723%207.0994c.4135.5905%201.05.941%201.8093.941%201.1587%200%202.1515-.9645%202.1515-2.153v-4.8948c0-.972.7875-1.7594%201.7596-1.7594h.194a.22.22%200%200%200%20.2204-.2202v-4.622a.22.22%200%200%200-.2203-.2203Z'/%3e%3c/svg%3e", FNe = "data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M19.06%205.3327c.4517-.1936.7744-.2581%201.097-.1936.5163.1291.7744.5163.968.7098.1936.3872.9034.7744%201.2261.8389.2581.0645.7098-.6453%201.0325-1.2906.3227-.5808.5163-1.3552.4517-1.5488-.0645-.1936-.968-.5808-1.1616-.5808-.1291%200-.3872.1291-.8389.0645-.4517-.0645-.9034-.5808-1.1616-.968-.4517-.6453-1.097-1.0325-1.6778-1.3552-.6453-.3227-1.3552-.5163-2.065-.6453-1.0325-.2581-2.065-.4517-3.0975-.3227-.5808.0645-1.2906.1291-1.8069.3227-.0645%200-.1936.1936-.0645.1936s.5808.0645.5808.0645-.5807.1292-.5807.2583c0%20.1291.0645.1291.1291.1291.0645%200%201.4842-.0645%202.065%200%20.6453.1291%201.3552.4517%201.8069%201.2261.7744%201.4197.4517%202.7749.2581%203.2266-.968%202.1295-8.6472%2015.2294-9.0344%2016.1328-.3873.9034-.5163%201.4842.5807%202.065s1.6778.3227%202.0005-.0645c.3872-.5163%207.0339-17.1654%209.2925-18.2624zm-3.6138%208.7117h1.5488c1.0325%200%201.2261.5163%201.2261.7098.0645.5163-.1936%201.1616-1.2261%201.1616h-.968l.7744%201.2906c.4517.7744.2581%201.1616%200%201.4197-.3872.3872-1.2261.3872-1.6778-.4517l-.9034-1.5488c-.6453%201.4197-1.2906%202.9684-2.065%204.7753h4.0009c1.9359%200%203.5492-1.6133%203.5492-3.5492V6.5588c-.0645-.1291-.1936-.0645-.2581%200-.3872.4517-1.4842%202.0004-4.001%207.4856zm-9.8087%208.0019h-.3227c-2.3231%200-4.1945-1.8714-4.1945-4.1945V7.0105c0-2.3231%201.8714-4.1945%204.1945-4.1945h9.3571c-.1936-.1936-.968-.5163-1.7423-.4517-.3227%200-.968.1291-1.3552-.1291-.3872-.3227-.3227-.5163-.9034-.5163H4.9277c-2.6458%200-4.7753%202.1295-4.7753%204.7753v11.7447c0%202.6458%202.1295%204.7753%204.4527%204.7108.6452%200%20.8388-.5162%201.0324-.9034zM20.4152%206.9459v10.9058c0%202.3231-1.8714%204.1945-4.1945%204.1945H11.897s-.3872%201.0325.8389%201.0325h3.8719c2.6458%200%204.7753-2.1295%204.7753-4.7753V8.8173c.0646-.9034-.7098-1.4842-.9679-1.8714zm-18.5851.0646v10.8413c0%201.9359%201.6133%203.5492%203.5492%203.5492h.5808c0-.0645.7744-1.4197%202.4522-4.2591.1936-.3872.4517-.7744.7098-1.2261H4.4114c-.5808%200-.9034-.3872-.968-.7098-.1291-.5163.1936-1.1616.9034-1.1616h2.3877l3.033-5.2916s-.7098-1.2906-.9034-1.6133c-.2582-.4517-.1291-.9034.129-1.1615.3872-.3872%201.0325-.5808%201.6778.4517l.2581.3872.2581-.3872c.5808-.8389.968-.7744%201.2906-.7098.5163.1291.8389.7098.3872%201.6133L8.864%2014.0444h1.3552c.4517-.7744.9034-1.5488%201.3552-2.3877-.0645-.3227-.1291-.7098-.0645-1.0325.0645-.5163.3227-.968.6453-1.3552l.3872.6453c1.2261-2.1295%202.1295-3.9364%202.3877-4.6463.1291-.3872.3227-1.1616.1291-1.8069H5.3794c-2.0005.0001-3.5493%201.6134-3.5493%203.5494zM4.605%2017.7872c0-.0645.7744-1.4197.7744-1.4197%201.2261-.3227%201.8069.4517%201.8714.5163%200%200-.8389%201.4842-1.097%201.7423s-.5808.3227-.9034.2581c-.5164-.129-.839-.6453-.6454-1.097z'/%3e%3c/svg%3e", BNe = "data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2.25%201.5a.75.75%200%200%200-.75.75v16.5H0V2.25A2.25%202.25%200%200%201%202.25%200h20.095c1.002%200%201.504%201.212.795%201.92L10.764%2014.298h3.486V12.75h1.5v1.922a1.125%201.125%200%200%201-1.125%201.125H9.264l-2.578%202.578h11.689V9h1.5v9.375a1.5%201.5%200%200%201-1.5%201.5H5.185L2.562%2022.5H21.75a.75.75%200%200%200%20.75-.75V5.25H24v16.5A2.25%202.25%200%200%201%2021.75%2024H1.655C.653%2024%20.151%2022.788.86%2022.08L13.19%209.75H9.75v1.5h-1.5V9.375A1.125%201.125%200%200%201%209.375%208.25h5.314l2.625-2.625H5.625V15h-1.5V5.625a1.5%201.5%200%200%201%201.5-1.5h13.19L21.438%201.5z'/%3e%3c/svg%3e", UNe = ao.PreferredOpenTarget, Om = { id: "vscode", label: "VS Code", iconSrc: MNe }, HNe = [Om, { id: "cursor", label: "Cursor", iconSrc: RNe }, { id: "windsurf", label: "Windsurf", iconSrc: zNe }, { id: "finder", label: "Finder", iconSrc: PNe }, { id: "terminal", label: "Terminal", iconSrc: jNe }, { id: "iterm2", label: "Iterm2", iconSrc: ONe }, { id: "ghostty", label: "Ghostty", iconSrc: NNe }, { id: "warp", label: "Warp", iconSrc: LNe }, { id: "xcode", label: "Xcode", iconSrc: FNe }, { id: "intellijidea", label: "Intellij Idea", iconSrc: DNe }, { id: "zed", label: "Zed", iconSrc: BNe }], Q$ = { mac: ["vscode", "cursor", "windsurf", "finder", "terminal", "iterm2", "ghostty", "warp", "xcode", "intellijidea", "zed"], windows: ["vscode", "cursor", "windsurf", "finder", "zed"], linux: ["vscode", "cursor", "windsurf", "finder", "zed"], other: ["vscode", "finder"] }, L0 = new Map(HNe.map((e) => [e.id, e]));
38468
38464
  function VNe() {
@@ -39435,7 +39431,7 @@ function YDe() {
39435
39431
  const [e, t] = y.useState(() => $b()), [n, r] = y.useState({}), [i, s] = y.useState(null), [o, a] = y.useState(false), [l, c] = y.useState(false), [d, f] = y.useState(null), [h, m] = y.useState("projects"), [b, x] = y.useState(false), [_, w] = y.useState(false), [S, E] = y.useState(null), C = y.useRef(() => {
39436
39432
  }), T = y.useRef(null), R = y.useCallback(() => {
39437
39433
  a(false), s(null), w(false), E(null), C.current();
39438
- }, []), { currentProjectId: $, projects: N, workspaceState: D, workspaceMetadata: A, latestTaskChatMessage: j, taskChatMessagesByTaskId: M, latestTaskReadyForReview: G, latestMcpAuthStatuses: W, clineSessionContextVersion: B, streamError: q, isRuntimeDisconnected: Y, hasReceivedSnapshot: F, navigationCurrentProjectId: H, removingProjectId: O, hasNoProjects: U, isProjectSwitching: V, handleSelectProject: L, handleAddProject: Q, handleConfirmInitializeGitProject: ee, handleCancelInitializeGitProject: ae, handleRemoveProject: ge, pendingGitInitializationPath: te, isInitializingGitProject: Z, resetProjectNavigationState: X } = vDe({ onProjectSwitchStart: R }), oe = H, be = hNe(), ke = !F && $ === null && N.length === 0 && !q, Se = $ !== null && D === null, { config: K, isLoading: ue, refresh: Ce } = o4($), { isBlocked: Ne } = ANe({ workspaceId: $, clineProviderSettings: (K == null ? void 0 : K.clineProviderSettings) ?? null }), Ue = sV(K), Be = H ?? $, { config: Ze, refresh: Fe } = o4(Be), { isStartupOnboardingDialogOpen: Et, handleOpenStartupOnboardingDialog: wt, handleCloseStartupOnboardingDialog: Ee, handleSelectOnboardingAgent: ie, handleOnboardingClineSetupSaved: ne } = MDe({ currentProjectId: $, runtimeProjectConfig: K, isRuntimeProjectConfigLoading: ue, isTaskAgentReady: Ue, refreshRuntimeProjectConfig: Ce, refreshSettingsRuntimeProjectConfig: Fe }), { debugModeEnabled: he, isDebugDialogOpen: we, isResetAllStatePending: _e, handleOpenDebugDialog: ve, handleShowStartupOnboardingDialog: pe, handleDebugDialogOpenChange: Ke, handleResetAllState: Re } = pNe({ runtimeProjectConfig: K, settingsRuntimeProjectConfig: Ze, onOpenStartupOnboardingDialog: wt }), { markConnectionReady: ut, prepareWaitForConnection: ct } = qDe(), Ye = (K == null ? void 0 : K.readyForReviewNotificationsEnabled) ?? true, at = (K == null ? void 0 : K.shortcuts) ?? [], hn = y.useMemo(() => {
39434
+ }, []), { currentProjectId: $, projects: N, workspaceState: D, workspaceMetadata: A, latestTaskChatMessage: j, taskChatMessagesByTaskId: M, latestTaskReadyForReview: G, latestMcpAuthStatuses: W, clineSessionContextVersion: B, streamError: q, isRuntimeDisconnected: Y, hasReceivedSnapshot: F, navigationCurrentProjectId: H, removingProjectId: O, hasNoProjects: U, isProjectSwitching: V, handleSelectProject: L, handleAddProject: Q, handleConfirmInitializeGitProject: ee, handleCancelInitializeGitProject: ae, handleRemoveProject: ge, pendingGitInitializationPath: te, isInitializingGitProject: Z, resetProjectNavigationState: X } = vDe({ onProjectSwitchStart: R }), oe = H, be = hNe(), ke = !F && $ === null && N.length === 0 && !q, Se = $ !== null && D === null, { config: K, isLoading: ue, refresh: Ce } = o4($), { isBlocked: Ne } = ANe({ workspaceId: $ }), Ue = sV(K), Be = H ?? $, { config: Ze, refresh: Fe } = o4(Be), { isStartupOnboardingDialogOpen: Et, handleOpenStartupOnboardingDialog: wt, handleCloseStartupOnboardingDialog: Ee, handleSelectOnboardingAgent: ie, handleOnboardingClineSetupSaved: ne } = MDe({ currentProjectId: $, runtimeProjectConfig: K, isRuntimeProjectConfigLoading: ue, isTaskAgentReady: Ue, refreshRuntimeProjectConfig: Ce, refreshSettingsRuntimeProjectConfig: Fe }), { debugModeEnabled: he, isDebugDialogOpen: we, isResetAllStatePending: _e, handleOpenDebugDialog: ve, handleShowStartupOnboardingDialog: pe, handleDebugDialogOpenChange: Ke, handleResetAllState: Re } = pNe({ runtimeProjectConfig: K, settingsRuntimeProjectConfig: Ze, onOpenStartupOnboardingDialog: wt }), { markConnectionReady: ut, prepareWaitForConnection: ct } = qDe(), Ye = (K == null ? void 0 : K.readyForReviewNotificationsEnabled) ?? true, at = (K == null ? void 0 : K.shortcuts) ?? [], hn = y.useMemo(() => {
39439
39435
  var _a3;
39440
39436
  if (at.length === 0) return null;
39441
39437
  const _t = (K == null ? void 0 : K.selectedShortcutLabel) ?? null;
@@ -42461,7 +42457,7 @@ function Q4e({ children: e }) {
42461
42457
  const eze = "https://061e8f494493d1cf3c7c918563cc0783@o4511098366263296.ingest.us.sentry.io/4511098568769536", tze = "production";
42462
42458
  let iz = false;
42463
42459
  function nze() {
42464
- iz || (G4e({ dsn: eze, environment: tze, release: "kanban@0.1.44", sendDefaultPii: false, initialScope: { tags: { app: "kanban", runtime_surface: "web" } } }), iz = true);
42460
+ iz || (G4e({ dsn: eze, environment: tze, release: "kanban@0.1.45", sendDefaultPii: false, initialScope: { tags: { app: "kanban", runtime_surface: "web" } } }), iz = true);
42465
42461
  }
42466
42462
  var KK = y.createContext({ client: Hl, bootstrap: void 0 });
42467
42463
  function YK(e, t, n) {
@@ -42531,6 +42527,6 @@ nze();
42531
42527
  const XK = document.getElementById("root");
42532
42528
  if (!XK) throw new Error("Root element was not found.");
42533
42529
  aX.createRoot(XK).render(g.jsx(aze, { children: g.jsx(Q4e, { children: g.jsxs(Bte, { children: [g.jsx(YDe, {}), g.jsx(DX, { theme: "dark", position: "bottom-right", toastOptions: { style: { background: "var(--color-surface-1)", border: "1px solid var(--color-border)", color: "var(--color-text-primary)", fontSize: "13px", whiteSpace: "pre-line" } } })] }) }) }));
42534
- //# sourceMappingURL=index-Do8fo-_c.js.map
42530
+ //# sourceMappingURL=index-DoNpUoGJ.js.map
42535
42531
 
42536
- //# debugId=c26fbfee-182d-5e71-ac42-38003375c03a
42532
+ //# debugId=e00763d2-d855-5611-84bb-51bbe7b595b2