kanban 0.1.43 → 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"}