@humain/terminal 0.0.3-beta.2 → 0.0.3-beta.3
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.
- package/CHANGELOG.md +2 -0
- package/dist/bun/cli.d.ts.map +1 -1
- package/dist/bun/cli.js +0 -1
- package/dist/bun/cli.js.map +1 -1
- package/dist/humain/bedrock-provider/vendor/index.bundle.d.mts +3 -0
- package/dist/humain/bedrock-provider/vendor/index.bundle.mjs +1509 -0
- package/dist/humain/index.d.ts.map +1 -1
- package/dist/humain/index.js +3 -0
- package/dist/humain/index.js.map +1 -1
- package/npm-shrinkwrap.json +7 -2
- package/package.json +7 -2
- package/dist/bun/register-bedrock.d.ts +0 -2
- package/dist/bun/register-bedrock.d.ts.map +0 -1
- package/dist/bun/register-bedrock.js +0 -4
- package/dist/bun/register-bedrock.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/humain/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgB,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAKjE,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AACpD,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAClD,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAChD,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAmHhE,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAIvG;AA8LD,wBAAgB,8BAA8B,IAAI,aAAa,EAAE,CAEhE;AAED,wBAAgB,oCAAoC,CACnD,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,aAAa,GAAE,MAAkB,GAC/B,gBAAgB,CAWlB;AAED,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,gBAAgB,EAAE,CAM7F","sourcesContent":["import { homedir } from \"node:os\";\nimport type { Api, OAuthCredentials } from \"@earendil-works/pi-ai\";\nimport type { ExtensionAPI, ExtensionFactory, ProviderModelConfig } from \"../core/extensions/types.ts\";\nimport type { PackageSource } from \"../core/settings-manager.ts\";\nimport { cleanupLegacyWorkflowTiers, getLegacyWorkflowTierPaths } from \"./legacy-workflow-tiers.ts\";\nimport { createHumainMcpAdapterExtensionFactory } from \"./mcp-adapter.ts\";\nimport { createHumainWebAccessExtensionFactory } from \"./web-access/index.ts\";\n\nexport const HUMAIN_LOCAL_PROVIDER = \"humain-local\";\nexport const HUMAIN_CODE_PROVIDER = \"humain-code\";\nexport const HUMAIN_SSO_PROVIDER = \"humain-sso\";\nexport const HUMAIN_FORGE_CWD_ENV = \"HUMAIN_TERMINAL_FORGE_CWD\";\n\nconst LOCAL_MODELS_ENV = \"HUMAIN_TERMINAL_LOCAL_MODELS\";\nconst LOCAL_BASE_URL_ENV = \"HUMAIN_TERMINAL_LOCAL_BASE_URL\";\nconst LEGACY_LOCAL_BASE_URL_ENV = \"HUMAIN_TERMINAL_AI_BASE_URL\";\nconst LOCAL_API_KEY_ENV = \"HUMAIN_TERMINAL_LOCAL_API_KEY\";\nconst LEGACY_LOCAL_API_KEY_ENV = \"HUMAIN_TERMINAL_AI_API_KEY\";\nconst LOCAL_DISCOVERY_TIMEOUT_ENV = \"HUMAIN_TERMINAL_LOCAL_MODELS_DISCOVERY_TIMEOUT_MS\";\nconst HC_BASE_URL_ENV = \"HUMAIN_TERMINAL_HC_BASE_URL\";\nconst HC_API_KEY_ENV = \"HUMAIN_TERMINAL_HC_API_KEY\";\nconst HC_MODELS_ENV = \"HUMAIN_TERMINAL_HC_MODELS\";\nconst HUMAIN_CODE_BASE_URL_ENV = \"HUMAIN_TERMINAL_HUMAIN_CODE_BASE_URL\";\nconst HUMAIN_CODE_API_KEY_ENV = \"HUMAIN_TERMINAL_HUMAIN_CODE_API_KEY\";\nconst HUMAIN_CODE_MODELS_ENV = \"HUMAIN_TERMINAL_HUMAIN_CODE_MODELS\";\nconst DEPLOYNOW_PROXY_SENTINEL = \"deploynow-proxy\";\nconst DEPLOYNOW_BROKER_SENTINEL = \"deploynow-broker\";\nconst DEPLOYNOW_ANTHROPIC_LEGACY_SENTINEL = \"not-a-real-key-routed-via-proxy\";\nconst DEPLOYNOW_PROXY_SENTINELS = new Set([\n\tDEPLOYNOW_PROXY_SENTINEL,\n\tDEPLOYNOW_BROKER_SENTINEL,\n\tDEPLOYNOW_ANTHROPIC_LEGACY_SENTINEL,\n]);\nconst DEPLOYNOW_BEDROCK_BASE_URL_ENV = \"ANTHROPIC_BEDROCK_BASE_URL\";\nconst DEPLOYNOW_ANTHROPIC_BASE_URL_ENV = \"ANTHROPIC_BASE_URL\";\nconst DEPLOYNOW_OPENAI_BASE_URL_ENV = \"OPENAI_BASE_URL\";\nconst AWS_REGION_ENV = \"AWS_REGION\";\nconst AWS_ACCESS_KEY_ID_ENV = \"AWS_ACCESS_KEY_ID\";\nconst AWS_SECRET_ACCESS_KEY_ENV = \"AWS_SECRET_ACCESS_KEY\";\nconst AWS_SESSION_TOKEN_ENV = \"AWS_SESSION_TOKEN\";\nconst ANTHROPIC_API_KEY_ENV = \"ANTHROPIC_API_KEY\";\nconst OPENAI_API_KEY_ENV = \"OPENAI_API_KEY\";\nconst BEDROCK_MODEL_ID_ENV = \"BEDROCK_MODEL_ID\";\nconst OPENAI_MODEL_ID_ENV = \"OPENAI_MODEL_ID\";\nconst ANTHROPIC_MODEL_ID_ENV = \"ANTHROPIC_MODEL_ID\";\nconst FORGE_RUNTIME_MODEL_PROVIDER_ENV = \"FORGE_RUNTIME_MODEL_PROVIDER\";\nconst FORGE_RUNTIME_MODEL_ID_ENV = \"FORGE_RUNTIME_MODEL_ID\";\nconst DEFAULT_LOCAL_CONTEXT_WINDOW = 128000;\nconst DEFAULT_LOCAL_MAX_TOKENS = 16384;\nconst DEFAULT_LOCAL_MODEL_COST = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 };\nconst AMAZON_BEDROCK_PROVIDER = \"amazon-bedrock\";\nconst ANTHROPIC_PROVIDER = \"anthropic\";\nconst OPENAI_PROVIDER = \"openai\";\nconst HUMAIN_SSO_UNSUPPORTED_MESSAGE = \"HUMAIN SSO is not supported yet.\";\n\ninterface DiscoveryModelList {\n\tdata?: Array<{ id?: unknown }>;\n}\n\nconst DEFAULT_HUMAIN_CODE_MODELS = [\"humain-planning\", \"humain-code\", \"humain-review\", \"humain-long-context\"];\n\nfunction readCsvEnv(env: NodeJS.ProcessEnv, key: string): string[] {\n\tconst raw = env[key];\n\tif (!raw) return [];\n\treturn raw\n\t\t.split(\",\")\n\t\t.map((item) => item.trim())\n\t\t.filter((item) => item.length > 0);\n}\n\nfunction readNonEmptyEnv(env: NodeJS.ProcessEnv, key: string): string | undefined {\n\tconst value = env[key]?.trim();\n\treturn value ? value : undefined;\n}\n\nfunction toModelConfig(id: string, api: Api = \"openai-completions\"): ProviderModelConfig {\n\tconst config: ProviderModelConfig = {\n\t\tid,\n\t\tname: id,\n\t\tapi,\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: DEFAULT_LOCAL_MODEL_COST,\n\t\tcontextWindow: DEFAULT_LOCAL_CONTEXT_WINDOW,\n\t\tmaxTokens: DEFAULT_LOCAL_MAX_TOKENS,\n\t};\n\n\tif (api === \"openai-completions\") {\n\t\tconfig.compat = {\n\t\t\tsupportsStore: false,\n\t\t\tsupportsDeveloperRole: false,\n\t\t\tsupportsReasoningEffort: false,\n\t\t\tsupportsUsageInStreaming: false,\n\t\t\tmaxTokensField: \"max_tokens\",\n\t\t\tsupportsStrictMode: false,\n\t\t\tsupportsLongCacheRetention: false,\n\t\t};\n\t}\n\n\treturn config;\n}\n\nasync function discoverLocalModelIds(env: NodeJS.ProcessEnv): Promise<string[]> {\n\tconst baseUrl = getLocalBaseUrl(env);\n\tif (!baseUrl) return [];\n\tconst timeoutMs = Number(env[LOCAL_DISCOVERY_TIMEOUT_ENV] ?? \"750\");\n\tconst controller = new AbortController();\n\tconst timeout = setTimeout(() => controller.abort(), Number.isFinite(timeoutMs) && timeoutMs > 0 ? timeoutMs : 750);\n\tconst apiKey = getLocalApiKey(env);\n\ttry {\n\t\tconst response = await fetch(new URL(\"models\", baseUrl.endsWith(\"/\") ? baseUrl : `${baseUrl}/`), {\n\t\t\tsignal: controller.signal,\n\t\t\theaders: apiKey ? { Authorization: `Bearer ${apiKey}` } : undefined,\n\t\t});\n\t\tif (!response.ok) return [];\n\t\tconst payload = (await response.json()) as DiscoveryModelList;\n\t\treturn (payload.data ?? [])\n\t\t\t.map((model) => (typeof model.id === \"string\" ? model.id.trim() : \"\"))\n\t\t\t.filter((id) => id.length > 0);\n\t} catch {\n\t\treturn [];\n\t} finally {\n\t\tclearTimeout(timeout);\n\t}\n}\n\nexport async function getHumainLocalModelConfigs(env: NodeJS.ProcessEnv): Promise<ProviderModelConfig[]> {\n\tconst envModelIds = readCsvEnv(env, LOCAL_MODELS_ENV);\n\tconst modelIds = envModelIds.length > 0 ? envModelIds : await discoverLocalModelIds(env);\n\treturn [...new Set(modelIds)].map((id) => toModelConfig(id));\n}\n\nfunction getLocalBaseUrl(env: NodeJS.ProcessEnv): string | undefined {\n\treturn env[LOCAL_BASE_URL_ENV] ?? env[LEGACY_LOCAL_BASE_URL_ENV];\n}\n\nfunction getLocalApiKey(env: NodeJS.ProcessEnv): string | undefined {\n\treturn env[LOCAL_API_KEY_ENV] ?? env[LEGACY_LOCAL_API_KEY_ENV];\n}\n\nfunction getHumainCodeBaseUrl(env: NodeJS.ProcessEnv): string | undefined {\n\treturn env[HUMAIN_CODE_BASE_URL_ENV] ?? env[HC_BASE_URL_ENV];\n}\n\nfunction getHumainCodeApiKey(env: NodeJS.ProcessEnv): string | undefined {\n\treturn env[HUMAIN_CODE_API_KEY_ENV] ?? env[HC_API_KEY_ENV];\n}\n\nfunction isDeployNowProxyCredential(value: string | undefined): boolean {\n\treturn value !== undefined && DEPLOYNOW_PROXY_SENTINELS.has(value);\n}\n\nfunction getDeployNowCredential(env: NodeJS.ProcessEnv, key: string): string {\n\treturn readNonEmptyEnv(env, key) ?? DEPLOYNOW_PROXY_SENTINEL;\n}\n\nfunction getDeployNowBedrockRequestEnv(env: NodeJS.ProcessEnv): Record<string, string> {\n\tconst requestEnv: Record<string, string> = {\n\t\t[AWS_ACCESS_KEY_ID_ENV]: getDeployNowCredential(env, AWS_ACCESS_KEY_ID_ENV),\n\t\t[AWS_SECRET_ACCESS_KEY_ENV]: getDeployNowCredential(env, AWS_SECRET_ACCESS_KEY_ENV),\n\t\t[AWS_REGION_ENV]: readNonEmptyEnv(env, AWS_REGION_ENV) ?? \"\",\n\t};\n\tconst sessionToken = readNonEmptyEnv(env, AWS_SESSION_TOKEN_ENV);\n\tif (sessionToken) {\n\t\trequestEnv[AWS_SESSION_TOKEN_ENV] = sessionToken;\n\t}\n\treturn requestEnv;\n}\n\nfunction hasDeployNowBedrockBindingConfig(env: NodeJS.ProcessEnv): boolean {\n\treturn Boolean(\n\t\treadNonEmptyEnv(env, DEPLOYNOW_BEDROCK_BASE_URL_ENV) &&\n\t\t\treadNonEmptyEnv(env, AWS_REGION_ENV) &&\n\t\t\tisDeployNowProxyCredential(env[AWS_ACCESS_KEY_ID_ENV]) &&\n\t\t\tisDeployNowProxyCredential(env[AWS_SECRET_ACCESS_KEY_ENV]),\n\t);\n}\n\nfunction hasDeployNowAnthropicBindingConfig(env: NodeJS.ProcessEnv): boolean {\n\treturn Boolean(\n\t\treadNonEmptyEnv(env, DEPLOYNOW_ANTHROPIC_BASE_URL_ENV) && isDeployNowProxyCredential(env[ANTHROPIC_API_KEY_ENV]),\n\t);\n}\n\nfunction hasDeployNowOpenAiBindingConfig(env: NodeJS.ProcessEnv): boolean {\n\treturn Boolean(\n\t\treadNonEmptyEnv(env, DEPLOYNOW_OPENAI_BASE_URL_ENV) && isDeployNowProxyCredential(env[OPENAI_API_KEY_ENV]),\n\t);\n}\n\nfunction getDeployNowBedrockModelId(env: NodeJS.ProcessEnv): string | undefined {\n\treturn (\n\t\t(isForgeRuntimeBedrockProvider(env) ? readNonEmptyEnv(env, FORGE_RUNTIME_MODEL_ID_ENV) : undefined) ??\n\t\treadNonEmptyEnv(env, BEDROCK_MODEL_ID_ENV)\n\t);\n}\n\nfunction getDeployNowOpenAiModelId(env: NodeJS.ProcessEnv): string | undefined {\n\treturn (\n\t\t(getForgeRuntimeModelProvider(env) === \"openai\" ? readNonEmptyEnv(env, FORGE_RUNTIME_MODEL_ID_ENV) : undefined) ??\n\t\treadNonEmptyEnv(env, OPENAI_MODEL_ID_ENV)\n\t);\n}\n\nfunction getDeployNowAnthropicModelId(env: NodeJS.ProcessEnv): string | undefined {\n\treturn (\n\t\t(getForgeRuntimeModelProvider(env) === \"anthropic\"\n\t\t\t? readNonEmptyEnv(env, FORGE_RUNTIME_MODEL_ID_ENV)\n\t\t\t: undefined) ?? readNonEmptyEnv(env, ANTHROPIC_MODEL_ID_ENV)\n\t);\n}\n\nfunction getForgeRuntimeModelProvider(env: NodeJS.ProcessEnv): string | undefined {\n\treturn readNonEmptyEnv(env, FORGE_RUNTIME_MODEL_PROVIDER_ENV)?.toLowerCase();\n}\n\nfunction isForgeRuntimeBedrockProvider(env: NodeJS.ProcessEnv): boolean {\n\tconst runtimeProvider = getForgeRuntimeModelProvider(env);\n\treturn runtimeProvider === \"bedrock\" || runtimeProvider === AMAZON_BEDROCK_PROVIDER;\n}\n\nfunction createUnsupportedHumainSsoProvider() {\n\treturn {\n\t\tname: \"HUMAIN SSO\",\n\t\tasync login(): Promise<OAuthCredentials> {\n\t\t\tthrow new Error(HUMAIN_SSO_UNSUPPORTED_MESSAGE);\n\t\t},\n\t\tasync refreshToken(): Promise<OAuthCredentials> {\n\t\t\tthrow new Error(HUMAIN_SSO_UNSUPPORTED_MESSAGE);\n\t\t},\n\t\tgetApiKey(): string {\n\t\t\tthrow new Error(HUMAIN_SSO_UNSUPPORTED_MESSAGE);\n\t\t},\n\t};\n}\n\nfunction getHumainCodeModelIds(env: NodeJS.ProcessEnv): string[] {\n\tconst configuredModels = readCsvEnv(env, HUMAIN_CODE_MODELS_ENV);\n\tconst shorthandModels = configuredModels.length > 0 ? configuredModels : readCsvEnv(env, HC_MODELS_ENV);\n\treturn shorthandModels.length > 0 ? shorthandModels : DEFAULT_HUMAIN_CODE_MODELS;\n}\n\nfunction getHumainCodeModels(env: NodeJS.ProcessEnv): ProviderModelConfig[] {\n\treturn getHumainCodeModelIds(env).map((id) => toModelConfig(id));\n}\n\nfunction registerDeployNowBindingProviders(pi: ExtensionAPI, env: NodeJS.ProcessEnv): void {\n\tconst bedrockBaseUrl = readNonEmptyEnv(env, DEPLOYNOW_BEDROCK_BASE_URL_ENV);\n\tconst bedrockModel = getDeployNowBedrockModelId(env);\n\tif (bedrockBaseUrl && hasDeployNowBedrockBindingConfig(env)) {\n\t\tpi.registerProvider(AMAZON_BEDROCK_PROVIDER, {\n\t\t\tname: \"DeployNow Bedrock Binding\",\n\t\t\tbaseUrl: bedrockBaseUrl,\n\t\t\tapiKey: getDeployNowCredential(env, AWS_ACCESS_KEY_ID_ENV),\n\t\t\tenv: getDeployNowBedrockRequestEnv(env),\n\t\t\tapi: \"bedrock-converse-stream\",\n\t\t\t...(bedrockModel ? { models: [toModelConfig(bedrockModel, \"bedrock-converse-stream\")] } : {}),\n\t\t});\n\t}\n\n\tconst anthropicBaseUrl = readNonEmptyEnv(env, DEPLOYNOW_ANTHROPIC_BASE_URL_ENV);\n\tconst anthropicModel = getDeployNowAnthropicModelId(env);\n\tif (anthropicBaseUrl && hasDeployNowAnthropicBindingConfig(env)) {\n\t\tpi.registerProvider(ANTHROPIC_PROVIDER, {\n\t\t\tname: \"DeployNow Anthropic Binding\",\n\t\t\tbaseUrl: anthropicBaseUrl,\n\t\t\tapiKey: getDeployNowCredential(env, ANTHROPIC_API_KEY_ENV),\n\t\t\tapi: \"anthropic-messages\",\n\t\t\t...(anthropicModel ? { models: [toModelConfig(anthropicModel, \"anthropic-messages\")] } : {}),\n\t\t});\n\t}\n\n\tconst openAiBaseUrl = readNonEmptyEnv(env, DEPLOYNOW_OPENAI_BASE_URL_ENV);\n\tconst openAiModel = getDeployNowOpenAiModelId(env);\n\tif (openAiBaseUrl && hasDeployNowOpenAiBindingConfig(env)) {\n\t\tpi.registerProvider(OPENAI_PROVIDER, {\n\t\t\tname: \"DeployNow OpenAI Binding\",\n\t\t\tbaseUrl: openAiBaseUrl,\n\t\t\tapiKey: getDeployNowCredential(env, OPENAI_API_KEY_ENV),\n\t\t\tapi: \"openai-completions\",\n\t\t\t...(openAiModel ? { models: [toModelConfig(openAiModel, \"openai-completions\")] } : {}),\n\t\t});\n\t}\n}\n\nasync function registerHumainProviders(pi: ExtensionAPI, env: NodeJS.ProcessEnv): Promise<void> {\n\tconst localBaseUrl = getLocalBaseUrl(env);\n\tconst localModels = await getHumainLocalModelConfigs(env);\n\tif (localBaseUrl && localModels.length > 0) {\n\t\tpi.registerProvider(HUMAIN_LOCAL_PROVIDER, {\n\t\t\tname: \"HUMAIN Local\",\n\t\t\tbaseUrl: localBaseUrl,\n\t\t\tapiKey: getLocalApiKey(env) ?? \"local\",\n\t\t\tapi: \"openai-completions\",\n\t\t\tauthHeader: Boolean(getLocalApiKey(env)),\n\t\t\tmodels: localModels,\n\t\t});\n\t}\n\n\tconst humainCodeBaseUrl = getHumainCodeBaseUrl(env);\n\tconst humainCodeApiKey = getHumainCodeApiKey(env);\n\tif (humainCodeBaseUrl && humainCodeApiKey) {\n\t\tpi.registerProvider(HUMAIN_CODE_PROVIDER, {\n\t\t\tname: \"HUMAIN Code\",\n\t\t\tbaseUrl: humainCodeBaseUrl,\n\t\t\tapiKey: humainCodeApiKey,\n\t\t\tapi: \"openai-completions\",\n\t\t\tauthHeader: true,\n\t\t\tmodels: getHumainCodeModels(env),\n\t\t});\n\t}\n\n\tregisterDeployNowBindingProviders(pi, env);\n\n\tpi.registerProvider(HUMAIN_SSO_PROVIDER, {\n\t\tname: \"HUMAIN SSO\",\n\t\toauth: createUnsupportedHumainSsoProvider(),\n\t});\n}\n\nexport function getHumainDefaultPackageSources(): PackageSource[] {\n\treturn [];\n}\n\nexport function createHumainProviderExtensionFactory(\n\tenv: NodeJS.ProcessEnv,\n\thomeDirectory: string = homedir(),\n): ExtensionFactory {\n\treturn async (pi) => {\n\t\tawait registerHumainProviders(pi, env);\n\n\t\tpi.on(\"session_start\", (event, ctx) => {\n\t\t\tif (event.reason === \"startup\") {\n\t\t\t\tctx.ui.setTheme(\"humain-dark\");\n\t\t\t\tcleanupLegacyWorkflowTiers(getLegacyWorkflowTierPaths(homeDirectory));\n\t\t\t}\n\t\t});\n\t};\n}\n\nexport function getHumainBundledExtensionFactories(env: NodeJS.ProcessEnv): ExtensionFactory[] {\n\treturn [\n\t\tcreateHumainProviderExtensionFactory(env),\n\t\tcreateHumainWebAccessExtensionFactory(),\n\t\tcreateHumainMcpAdapterExtensionFactory(),\n\t];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/humain/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAMjE,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AACpD,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAClD,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAChD,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAqHhE,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAIvG;AA8LD,wBAAgB,8BAA8B,IAAI,aAAa,EAAE,CAEhE;AAED,wBAAgB,oCAAoC,CACnD,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,aAAa,GAAE,MAAkB,GAC/B,gBAAgB,CAWlB;AAED,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,gBAAgB,EAAE,CAM7F","sourcesContent":["import { homedir } from \"node:os\";\nimport type { Api, OAuthCredentials } from \"@earendil-works/pi-ai\";\nimport { setBedrockProviderModule } from \"@earendil-works/pi-ai/compat\";\nimport type { ExtensionAPI, ExtensionFactory, ProviderModelConfig } from \"../core/extensions/types.ts\";\nimport type { PackageSource } from \"../core/settings-manager.ts\";\nimport { bedrockProviderModule } from \"./bedrock-provider/vendor/index.bundle.mjs\";\nimport { cleanupLegacyWorkflowTiers, getLegacyWorkflowTierPaths } from \"./legacy-workflow-tiers.ts\";\nimport { createHumainMcpAdapterExtensionFactory } from \"./mcp-adapter.ts\";\nimport { createHumainWebAccessExtensionFactory } from \"./web-access/index.ts\";\n\nexport const HUMAIN_LOCAL_PROVIDER = \"humain-local\";\nexport const HUMAIN_CODE_PROVIDER = \"humain-code\";\nexport const HUMAIN_SSO_PROVIDER = \"humain-sso\";\nexport const HUMAIN_FORGE_CWD_ENV = \"HUMAIN_TERMINAL_FORGE_CWD\";\n\nsetBedrockProviderModule(bedrockProviderModule);\n\nconst LOCAL_MODELS_ENV = \"HUMAIN_TERMINAL_LOCAL_MODELS\";\nconst LOCAL_BASE_URL_ENV = \"HUMAIN_TERMINAL_LOCAL_BASE_URL\";\nconst LEGACY_LOCAL_BASE_URL_ENV = \"HUMAIN_TERMINAL_AI_BASE_URL\";\nconst LOCAL_API_KEY_ENV = \"HUMAIN_TERMINAL_LOCAL_API_KEY\";\nconst LEGACY_LOCAL_API_KEY_ENV = \"HUMAIN_TERMINAL_AI_API_KEY\";\nconst LOCAL_DISCOVERY_TIMEOUT_ENV = \"HUMAIN_TERMINAL_LOCAL_MODELS_DISCOVERY_TIMEOUT_MS\";\nconst HC_BASE_URL_ENV = \"HUMAIN_TERMINAL_HC_BASE_URL\";\nconst HC_API_KEY_ENV = \"HUMAIN_TERMINAL_HC_API_KEY\";\nconst HC_MODELS_ENV = \"HUMAIN_TERMINAL_HC_MODELS\";\nconst HUMAIN_CODE_BASE_URL_ENV = \"HUMAIN_TERMINAL_HUMAIN_CODE_BASE_URL\";\nconst HUMAIN_CODE_API_KEY_ENV = \"HUMAIN_TERMINAL_HUMAIN_CODE_API_KEY\";\nconst HUMAIN_CODE_MODELS_ENV = \"HUMAIN_TERMINAL_HUMAIN_CODE_MODELS\";\nconst DEPLOYNOW_PROXY_SENTINEL = \"deploynow-proxy\";\nconst DEPLOYNOW_BROKER_SENTINEL = \"deploynow-broker\";\nconst DEPLOYNOW_ANTHROPIC_LEGACY_SENTINEL = \"not-a-real-key-routed-via-proxy\";\nconst DEPLOYNOW_PROXY_SENTINELS = new Set([\n\tDEPLOYNOW_PROXY_SENTINEL,\n\tDEPLOYNOW_BROKER_SENTINEL,\n\tDEPLOYNOW_ANTHROPIC_LEGACY_SENTINEL,\n]);\nconst DEPLOYNOW_BEDROCK_BASE_URL_ENV = \"ANTHROPIC_BEDROCK_BASE_URL\";\nconst DEPLOYNOW_ANTHROPIC_BASE_URL_ENV = \"ANTHROPIC_BASE_URL\";\nconst DEPLOYNOW_OPENAI_BASE_URL_ENV = \"OPENAI_BASE_URL\";\nconst AWS_REGION_ENV = \"AWS_REGION\";\nconst AWS_ACCESS_KEY_ID_ENV = \"AWS_ACCESS_KEY_ID\";\nconst AWS_SECRET_ACCESS_KEY_ENV = \"AWS_SECRET_ACCESS_KEY\";\nconst AWS_SESSION_TOKEN_ENV = \"AWS_SESSION_TOKEN\";\nconst ANTHROPIC_API_KEY_ENV = \"ANTHROPIC_API_KEY\";\nconst OPENAI_API_KEY_ENV = \"OPENAI_API_KEY\";\nconst BEDROCK_MODEL_ID_ENV = \"BEDROCK_MODEL_ID\";\nconst OPENAI_MODEL_ID_ENV = \"OPENAI_MODEL_ID\";\nconst ANTHROPIC_MODEL_ID_ENV = \"ANTHROPIC_MODEL_ID\";\nconst FORGE_RUNTIME_MODEL_PROVIDER_ENV = \"FORGE_RUNTIME_MODEL_PROVIDER\";\nconst FORGE_RUNTIME_MODEL_ID_ENV = \"FORGE_RUNTIME_MODEL_ID\";\nconst DEFAULT_LOCAL_CONTEXT_WINDOW = 128000;\nconst DEFAULT_LOCAL_MAX_TOKENS = 16384;\nconst DEFAULT_LOCAL_MODEL_COST = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 };\nconst AMAZON_BEDROCK_PROVIDER = \"amazon-bedrock\";\nconst ANTHROPIC_PROVIDER = \"anthropic\";\nconst OPENAI_PROVIDER = \"openai\";\nconst HUMAIN_SSO_UNSUPPORTED_MESSAGE = \"HUMAIN SSO is not supported yet.\";\n\ninterface DiscoveryModelList {\n\tdata?: Array<{ id?: unknown }>;\n}\n\nconst DEFAULT_HUMAIN_CODE_MODELS = [\"humain-planning\", \"humain-code\", \"humain-review\", \"humain-long-context\"];\n\nfunction readCsvEnv(env: NodeJS.ProcessEnv, key: string): string[] {\n\tconst raw = env[key];\n\tif (!raw) return [];\n\treturn raw\n\t\t.split(\",\")\n\t\t.map((item) => item.trim())\n\t\t.filter((item) => item.length > 0);\n}\n\nfunction readNonEmptyEnv(env: NodeJS.ProcessEnv, key: string): string | undefined {\n\tconst value = env[key]?.trim();\n\treturn value ? value : undefined;\n}\n\nfunction toModelConfig(id: string, api: Api = \"openai-completions\"): ProviderModelConfig {\n\tconst config: ProviderModelConfig = {\n\t\tid,\n\t\tname: id,\n\t\tapi,\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: DEFAULT_LOCAL_MODEL_COST,\n\t\tcontextWindow: DEFAULT_LOCAL_CONTEXT_WINDOW,\n\t\tmaxTokens: DEFAULT_LOCAL_MAX_TOKENS,\n\t};\n\n\tif (api === \"openai-completions\") {\n\t\tconfig.compat = {\n\t\t\tsupportsStore: false,\n\t\t\tsupportsDeveloperRole: false,\n\t\t\tsupportsReasoningEffort: false,\n\t\t\tsupportsUsageInStreaming: false,\n\t\t\tmaxTokensField: \"max_tokens\",\n\t\t\tsupportsStrictMode: false,\n\t\t\tsupportsLongCacheRetention: false,\n\t\t};\n\t}\n\n\treturn config;\n}\n\nasync function discoverLocalModelIds(env: NodeJS.ProcessEnv): Promise<string[]> {\n\tconst baseUrl = getLocalBaseUrl(env);\n\tif (!baseUrl) return [];\n\tconst timeoutMs = Number(env[LOCAL_DISCOVERY_TIMEOUT_ENV] ?? \"750\");\n\tconst controller = new AbortController();\n\tconst timeout = setTimeout(() => controller.abort(), Number.isFinite(timeoutMs) && timeoutMs > 0 ? timeoutMs : 750);\n\tconst apiKey = getLocalApiKey(env);\n\ttry {\n\t\tconst response = await fetch(new URL(\"models\", baseUrl.endsWith(\"/\") ? baseUrl : `${baseUrl}/`), {\n\t\t\tsignal: controller.signal,\n\t\t\theaders: apiKey ? { Authorization: `Bearer ${apiKey}` } : undefined,\n\t\t});\n\t\tif (!response.ok) return [];\n\t\tconst payload = (await response.json()) as DiscoveryModelList;\n\t\treturn (payload.data ?? [])\n\t\t\t.map((model) => (typeof model.id === \"string\" ? model.id.trim() : \"\"))\n\t\t\t.filter((id) => id.length > 0);\n\t} catch {\n\t\treturn [];\n\t} finally {\n\t\tclearTimeout(timeout);\n\t}\n}\n\nexport async function getHumainLocalModelConfigs(env: NodeJS.ProcessEnv): Promise<ProviderModelConfig[]> {\n\tconst envModelIds = readCsvEnv(env, LOCAL_MODELS_ENV);\n\tconst modelIds = envModelIds.length > 0 ? envModelIds : await discoverLocalModelIds(env);\n\treturn [...new Set(modelIds)].map((id) => toModelConfig(id));\n}\n\nfunction getLocalBaseUrl(env: NodeJS.ProcessEnv): string | undefined {\n\treturn env[LOCAL_BASE_URL_ENV] ?? env[LEGACY_LOCAL_BASE_URL_ENV];\n}\n\nfunction getLocalApiKey(env: NodeJS.ProcessEnv): string | undefined {\n\treturn env[LOCAL_API_KEY_ENV] ?? env[LEGACY_LOCAL_API_KEY_ENV];\n}\n\nfunction getHumainCodeBaseUrl(env: NodeJS.ProcessEnv): string | undefined {\n\treturn env[HUMAIN_CODE_BASE_URL_ENV] ?? env[HC_BASE_URL_ENV];\n}\n\nfunction getHumainCodeApiKey(env: NodeJS.ProcessEnv): string | undefined {\n\treturn env[HUMAIN_CODE_API_KEY_ENV] ?? env[HC_API_KEY_ENV];\n}\n\nfunction isDeployNowProxyCredential(value: string | undefined): boolean {\n\treturn value !== undefined && DEPLOYNOW_PROXY_SENTINELS.has(value);\n}\n\nfunction getDeployNowCredential(env: NodeJS.ProcessEnv, key: string): string {\n\treturn readNonEmptyEnv(env, key) ?? DEPLOYNOW_PROXY_SENTINEL;\n}\n\nfunction getDeployNowBedrockRequestEnv(env: NodeJS.ProcessEnv): Record<string, string> {\n\tconst requestEnv: Record<string, string> = {\n\t\t[AWS_ACCESS_KEY_ID_ENV]: getDeployNowCredential(env, AWS_ACCESS_KEY_ID_ENV),\n\t\t[AWS_SECRET_ACCESS_KEY_ENV]: getDeployNowCredential(env, AWS_SECRET_ACCESS_KEY_ENV),\n\t\t[AWS_REGION_ENV]: readNonEmptyEnv(env, AWS_REGION_ENV) ?? \"\",\n\t};\n\tconst sessionToken = readNonEmptyEnv(env, AWS_SESSION_TOKEN_ENV);\n\tif (sessionToken) {\n\t\trequestEnv[AWS_SESSION_TOKEN_ENV] = sessionToken;\n\t}\n\treturn requestEnv;\n}\n\nfunction hasDeployNowBedrockBindingConfig(env: NodeJS.ProcessEnv): boolean {\n\treturn Boolean(\n\t\treadNonEmptyEnv(env, DEPLOYNOW_BEDROCK_BASE_URL_ENV) &&\n\t\t\treadNonEmptyEnv(env, AWS_REGION_ENV) &&\n\t\t\tisDeployNowProxyCredential(env[AWS_ACCESS_KEY_ID_ENV]) &&\n\t\t\tisDeployNowProxyCredential(env[AWS_SECRET_ACCESS_KEY_ENV]),\n\t);\n}\n\nfunction hasDeployNowAnthropicBindingConfig(env: NodeJS.ProcessEnv): boolean {\n\treturn Boolean(\n\t\treadNonEmptyEnv(env, DEPLOYNOW_ANTHROPIC_BASE_URL_ENV) && isDeployNowProxyCredential(env[ANTHROPIC_API_KEY_ENV]),\n\t);\n}\n\nfunction hasDeployNowOpenAiBindingConfig(env: NodeJS.ProcessEnv): boolean {\n\treturn Boolean(\n\t\treadNonEmptyEnv(env, DEPLOYNOW_OPENAI_BASE_URL_ENV) && isDeployNowProxyCredential(env[OPENAI_API_KEY_ENV]),\n\t);\n}\n\nfunction getDeployNowBedrockModelId(env: NodeJS.ProcessEnv): string | undefined {\n\treturn (\n\t\t(isForgeRuntimeBedrockProvider(env) ? readNonEmptyEnv(env, FORGE_RUNTIME_MODEL_ID_ENV) : undefined) ??\n\t\treadNonEmptyEnv(env, BEDROCK_MODEL_ID_ENV)\n\t);\n}\n\nfunction getDeployNowOpenAiModelId(env: NodeJS.ProcessEnv): string | undefined {\n\treturn (\n\t\t(getForgeRuntimeModelProvider(env) === \"openai\" ? readNonEmptyEnv(env, FORGE_RUNTIME_MODEL_ID_ENV) : undefined) ??\n\t\treadNonEmptyEnv(env, OPENAI_MODEL_ID_ENV)\n\t);\n}\n\nfunction getDeployNowAnthropicModelId(env: NodeJS.ProcessEnv): string | undefined {\n\treturn (\n\t\t(getForgeRuntimeModelProvider(env) === \"anthropic\"\n\t\t\t? readNonEmptyEnv(env, FORGE_RUNTIME_MODEL_ID_ENV)\n\t\t\t: undefined) ?? readNonEmptyEnv(env, ANTHROPIC_MODEL_ID_ENV)\n\t);\n}\n\nfunction getForgeRuntimeModelProvider(env: NodeJS.ProcessEnv): string | undefined {\n\treturn readNonEmptyEnv(env, FORGE_RUNTIME_MODEL_PROVIDER_ENV)?.toLowerCase();\n}\n\nfunction isForgeRuntimeBedrockProvider(env: NodeJS.ProcessEnv): boolean {\n\tconst runtimeProvider = getForgeRuntimeModelProvider(env);\n\treturn runtimeProvider === \"bedrock\" || runtimeProvider === AMAZON_BEDROCK_PROVIDER;\n}\n\nfunction createUnsupportedHumainSsoProvider() {\n\treturn {\n\t\tname: \"HUMAIN SSO\",\n\t\tasync login(): Promise<OAuthCredentials> {\n\t\t\tthrow new Error(HUMAIN_SSO_UNSUPPORTED_MESSAGE);\n\t\t},\n\t\tasync refreshToken(): Promise<OAuthCredentials> {\n\t\t\tthrow new Error(HUMAIN_SSO_UNSUPPORTED_MESSAGE);\n\t\t},\n\t\tgetApiKey(): string {\n\t\t\tthrow new Error(HUMAIN_SSO_UNSUPPORTED_MESSAGE);\n\t\t},\n\t};\n}\n\nfunction getHumainCodeModelIds(env: NodeJS.ProcessEnv): string[] {\n\tconst configuredModels = readCsvEnv(env, HUMAIN_CODE_MODELS_ENV);\n\tconst shorthandModels = configuredModels.length > 0 ? configuredModels : readCsvEnv(env, HC_MODELS_ENV);\n\treturn shorthandModels.length > 0 ? shorthandModels : DEFAULT_HUMAIN_CODE_MODELS;\n}\n\nfunction getHumainCodeModels(env: NodeJS.ProcessEnv): ProviderModelConfig[] {\n\treturn getHumainCodeModelIds(env).map((id) => toModelConfig(id));\n}\n\nfunction registerDeployNowBindingProviders(pi: ExtensionAPI, env: NodeJS.ProcessEnv): void {\n\tconst bedrockBaseUrl = readNonEmptyEnv(env, DEPLOYNOW_BEDROCK_BASE_URL_ENV);\n\tconst bedrockModel = getDeployNowBedrockModelId(env);\n\tif (bedrockBaseUrl && hasDeployNowBedrockBindingConfig(env)) {\n\t\tpi.registerProvider(AMAZON_BEDROCK_PROVIDER, {\n\t\t\tname: \"DeployNow Bedrock Binding\",\n\t\t\tbaseUrl: bedrockBaseUrl,\n\t\t\tapiKey: getDeployNowCredential(env, AWS_ACCESS_KEY_ID_ENV),\n\t\t\tenv: getDeployNowBedrockRequestEnv(env),\n\t\t\tapi: \"bedrock-converse-stream\",\n\t\t\t...(bedrockModel ? { models: [toModelConfig(bedrockModel, \"bedrock-converse-stream\")] } : {}),\n\t\t});\n\t}\n\n\tconst anthropicBaseUrl = readNonEmptyEnv(env, DEPLOYNOW_ANTHROPIC_BASE_URL_ENV);\n\tconst anthropicModel = getDeployNowAnthropicModelId(env);\n\tif (anthropicBaseUrl && hasDeployNowAnthropicBindingConfig(env)) {\n\t\tpi.registerProvider(ANTHROPIC_PROVIDER, {\n\t\t\tname: \"DeployNow Anthropic Binding\",\n\t\t\tbaseUrl: anthropicBaseUrl,\n\t\t\tapiKey: getDeployNowCredential(env, ANTHROPIC_API_KEY_ENV),\n\t\t\tapi: \"anthropic-messages\",\n\t\t\t...(anthropicModel ? { models: [toModelConfig(anthropicModel, \"anthropic-messages\")] } : {}),\n\t\t});\n\t}\n\n\tconst openAiBaseUrl = readNonEmptyEnv(env, DEPLOYNOW_OPENAI_BASE_URL_ENV);\n\tconst openAiModel = getDeployNowOpenAiModelId(env);\n\tif (openAiBaseUrl && hasDeployNowOpenAiBindingConfig(env)) {\n\t\tpi.registerProvider(OPENAI_PROVIDER, {\n\t\t\tname: \"DeployNow OpenAI Binding\",\n\t\t\tbaseUrl: openAiBaseUrl,\n\t\t\tapiKey: getDeployNowCredential(env, OPENAI_API_KEY_ENV),\n\t\t\tapi: \"openai-completions\",\n\t\t\t...(openAiModel ? { models: [toModelConfig(openAiModel, \"openai-completions\")] } : {}),\n\t\t});\n\t}\n}\n\nasync function registerHumainProviders(pi: ExtensionAPI, env: NodeJS.ProcessEnv): Promise<void> {\n\tconst localBaseUrl = getLocalBaseUrl(env);\n\tconst localModels = await getHumainLocalModelConfigs(env);\n\tif (localBaseUrl && localModels.length > 0) {\n\t\tpi.registerProvider(HUMAIN_LOCAL_PROVIDER, {\n\t\t\tname: \"HUMAIN Local\",\n\t\t\tbaseUrl: localBaseUrl,\n\t\t\tapiKey: getLocalApiKey(env) ?? \"local\",\n\t\t\tapi: \"openai-completions\",\n\t\t\tauthHeader: Boolean(getLocalApiKey(env)),\n\t\t\tmodels: localModels,\n\t\t});\n\t}\n\n\tconst humainCodeBaseUrl = getHumainCodeBaseUrl(env);\n\tconst humainCodeApiKey = getHumainCodeApiKey(env);\n\tif (humainCodeBaseUrl && humainCodeApiKey) {\n\t\tpi.registerProvider(HUMAIN_CODE_PROVIDER, {\n\t\t\tname: \"HUMAIN Code\",\n\t\t\tbaseUrl: humainCodeBaseUrl,\n\t\t\tapiKey: humainCodeApiKey,\n\t\t\tapi: \"openai-completions\",\n\t\t\tauthHeader: true,\n\t\t\tmodels: getHumainCodeModels(env),\n\t\t});\n\t}\n\n\tregisterDeployNowBindingProviders(pi, env);\n\n\tpi.registerProvider(HUMAIN_SSO_PROVIDER, {\n\t\tname: \"HUMAIN SSO\",\n\t\toauth: createUnsupportedHumainSsoProvider(),\n\t});\n}\n\nexport function getHumainDefaultPackageSources(): PackageSource[] {\n\treturn [];\n}\n\nexport function createHumainProviderExtensionFactory(\n\tenv: NodeJS.ProcessEnv,\n\thomeDirectory: string = homedir(),\n): ExtensionFactory {\n\treturn async (pi) => {\n\t\tawait registerHumainProviders(pi, env);\n\n\t\tpi.on(\"session_start\", (event, ctx) => {\n\t\t\tif (event.reason === \"startup\") {\n\t\t\t\tctx.ui.setTheme(\"humain-dark\");\n\t\t\t\tcleanupLegacyWorkflowTiers(getLegacyWorkflowTierPaths(homeDirectory));\n\t\t\t}\n\t\t});\n\t};\n}\n\nexport function getHumainBundledExtensionFactories(env: NodeJS.ProcessEnv): ExtensionFactory[] {\n\treturn [\n\t\tcreateHumainProviderExtensionFactory(env),\n\t\tcreateHumainWebAccessExtensionFactory(),\n\t\tcreateHumainMcpAdapterExtensionFactory(),\n\t];\n}\n"]}
|
package/dist/humain/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { homedir } from "node:os";
|
|
2
|
+
import { setBedrockProviderModule } from "@earendil-works/pi-ai/compat";
|
|
3
|
+
import { bedrockProviderModule } from "./bedrock-provider/vendor/index.bundle.mjs";
|
|
2
4
|
import { cleanupLegacyWorkflowTiers, getLegacyWorkflowTierPaths } from "./legacy-workflow-tiers.js";
|
|
3
5
|
import { createHumainMcpAdapterExtensionFactory } from "./mcp-adapter.js";
|
|
4
6
|
import { createHumainWebAccessExtensionFactory } from "./web-access/index.js";
|
|
@@ -6,6 +8,7 @@ export const HUMAIN_LOCAL_PROVIDER = "humain-local";
|
|
|
6
8
|
export const HUMAIN_CODE_PROVIDER = "humain-code";
|
|
7
9
|
export const HUMAIN_SSO_PROVIDER = "humain-sso";
|
|
8
10
|
export const HUMAIN_FORGE_CWD_ENV = "HUMAIN_TERMINAL_FORGE_CWD";
|
|
11
|
+
setBedrockProviderModule(bedrockProviderModule);
|
|
9
12
|
const LOCAL_MODELS_ENV = "HUMAIN_TERMINAL_LOCAL_MODELS";
|
|
10
13
|
const LOCAL_BASE_URL_ENV = "HUMAIN_TERMINAL_LOCAL_BASE_URL";
|
|
11
14
|
const LEGACY_LOCAL_BASE_URL_ENV = "HUMAIN_TERMINAL_AI_BASE_URL";
|
package/dist/humain/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/humain/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { homedir } from \"node:os\";\nimport type { Api, OAuthCredentials } from \"@earendil-works/pi-ai\";\nimport type { ExtensionAPI, ExtensionFactory, ProviderModelConfig } from \"../core/extensions/types.ts\";\nimport type { PackageSource } from \"../core/settings-manager.ts\";\nimport { cleanupLegacyWorkflowTiers, getLegacyWorkflowTierPaths } from \"./legacy-workflow-tiers.ts\";\nimport { createHumainMcpAdapterExtensionFactory } from \"./mcp-adapter.ts\";\nimport { createHumainWebAccessExtensionFactory } from \"./web-access/index.ts\";\n\nexport const HUMAIN_LOCAL_PROVIDER = \"humain-local\";\nexport const HUMAIN_CODE_PROVIDER = \"humain-code\";\nexport const HUMAIN_SSO_PROVIDER = \"humain-sso\";\nexport const HUMAIN_FORGE_CWD_ENV = \"HUMAIN_TERMINAL_FORGE_CWD\";\n\nconst LOCAL_MODELS_ENV = \"HUMAIN_TERMINAL_LOCAL_MODELS\";\nconst LOCAL_BASE_URL_ENV = \"HUMAIN_TERMINAL_LOCAL_BASE_URL\";\nconst LEGACY_LOCAL_BASE_URL_ENV = \"HUMAIN_TERMINAL_AI_BASE_URL\";\nconst LOCAL_API_KEY_ENV = \"HUMAIN_TERMINAL_LOCAL_API_KEY\";\nconst LEGACY_LOCAL_API_KEY_ENV = \"HUMAIN_TERMINAL_AI_API_KEY\";\nconst LOCAL_DISCOVERY_TIMEOUT_ENV = \"HUMAIN_TERMINAL_LOCAL_MODELS_DISCOVERY_TIMEOUT_MS\";\nconst HC_BASE_URL_ENV = \"HUMAIN_TERMINAL_HC_BASE_URL\";\nconst HC_API_KEY_ENV = \"HUMAIN_TERMINAL_HC_API_KEY\";\nconst HC_MODELS_ENV = \"HUMAIN_TERMINAL_HC_MODELS\";\nconst HUMAIN_CODE_BASE_URL_ENV = \"HUMAIN_TERMINAL_HUMAIN_CODE_BASE_URL\";\nconst HUMAIN_CODE_API_KEY_ENV = \"HUMAIN_TERMINAL_HUMAIN_CODE_API_KEY\";\nconst HUMAIN_CODE_MODELS_ENV = \"HUMAIN_TERMINAL_HUMAIN_CODE_MODELS\";\nconst DEPLOYNOW_PROXY_SENTINEL = \"deploynow-proxy\";\nconst DEPLOYNOW_BROKER_SENTINEL = \"deploynow-broker\";\nconst DEPLOYNOW_ANTHROPIC_LEGACY_SENTINEL = \"not-a-real-key-routed-via-proxy\";\nconst DEPLOYNOW_PROXY_SENTINELS = new Set([\n\tDEPLOYNOW_PROXY_SENTINEL,\n\tDEPLOYNOW_BROKER_SENTINEL,\n\tDEPLOYNOW_ANTHROPIC_LEGACY_SENTINEL,\n]);\nconst DEPLOYNOW_BEDROCK_BASE_URL_ENV = \"ANTHROPIC_BEDROCK_BASE_URL\";\nconst DEPLOYNOW_ANTHROPIC_BASE_URL_ENV = \"ANTHROPIC_BASE_URL\";\nconst DEPLOYNOW_OPENAI_BASE_URL_ENV = \"OPENAI_BASE_URL\";\nconst AWS_REGION_ENV = \"AWS_REGION\";\nconst AWS_ACCESS_KEY_ID_ENV = \"AWS_ACCESS_KEY_ID\";\nconst AWS_SECRET_ACCESS_KEY_ENV = \"AWS_SECRET_ACCESS_KEY\";\nconst AWS_SESSION_TOKEN_ENV = \"AWS_SESSION_TOKEN\";\nconst ANTHROPIC_API_KEY_ENV = \"ANTHROPIC_API_KEY\";\nconst OPENAI_API_KEY_ENV = \"OPENAI_API_KEY\";\nconst BEDROCK_MODEL_ID_ENV = \"BEDROCK_MODEL_ID\";\nconst OPENAI_MODEL_ID_ENV = \"OPENAI_MODEL_ID\";\nconst ANTHROPIC_MODEL_ID_ENV = \"ANTHROPIC_MODEL_ID\";\nconst FORGE_RUNTIME_MODEL_PROVIDER_ENV = \"FORGE_RUNTIME_MODEL_PROVIDER\";\nconst FORGE_RUNTIME_MODEL_ID_ENV = \"FORGE_RUNTIME_MODEL_ID\";\nconst DEFAULT_LOCAL_CONTEXT_WINDOW = 128000;\nconst DEFAULT_LOCAL_MAX_TOKENS = 16384;\nconst DEFAULT_LOCAL_MODEL_COST = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 };\nconst AMAZON_BEDROCK_PROVIDER = \"amazon-bedrock\";\nconst ANTHROPIC_PROVIDER = \"anthropic\";\nconst OPENAI_PROVIDER = \"openai\";\nconst HUMAIN_SSO_UNSUPPORTED_MESSAGE = \"HUMAIN SSO is not supported yet.\";\n\ninterface DiscoveryModelList {\n\tdata?: Array<{ id?: unknown }>;\n}\n\nconst DEFAULT_HUMAIN_CODE_MODELS = [\"humain-planning\", \"humain-code\", \"humain-review\", \"humain-long-context\"];\n\nfunction readCsvEnv(env: NodeJS.ProcessEnv, key: string): string[] {\n\tconst raw = env[key];\n\tif (!raw) return [];\n\treturn raw\n\t\t.split(\",\")\n\t\t.map((item) => item.trim())\n\t\t.filter((item) => item.length > 0);\n}\n\nfunction readNonEmptyEnv(env: NodeJS.ProcessEnv, key: string): string | undefined {\n\tconst value = env[key]?.trim();\n\treturn value ? value : undefined;\n}\n\nfunction toModelConfig(id: string, api: Api = \"openai-completions\"): ProviderModelConfig {\n\tconst config: ProviderModelConfig = {\n\t\tid,\n\t\tname: id,\n\t\tapi,\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: DEFAULT_LOCAL_MODEL_COST,\n\t\tcontextWindow: DEFAULT_LOCAL_CONTEXT_WINDOW,\n\t\tmaxTokens: DEFAULT_LOCAL_MAX_TOKENS,\n\t};\n\n\tif (api === \"openai-completions\") {\n\t\tconfig.compat = {\n\t\t\tsupportsStore: false,\n\t\t\tsupportsDeveloperRole: false,\n\t\t\tsupportsReasoningEffort: false,\n\t\t\tsupportsUsageInStreaming: false,\n\t\t\tmaxTokensField: \"max_tokens\",\n\t\t\tsupportsStrictMode: false,\n\t\t\tsupportsLongCacheRetention: false,\n\t\t};\n\t}\n\n\treturn config;\n}\n\nasync function discoverLocalModelIds(env: NodeJS.ProcessEnv): Promise<string[]> {\n\tconst baseUrl = getLocalBaseUrl(env);\n\tif (!baseUrl) return [];\n\tconst timeoutMs = Number(env[LOCAL_DISCOVERY_TIMEOUT_ENV] ?? \"750\");\n\tconst controller = new AbortController();\n\tconst timeout = setTimeout(() => controller.abort(), Number.isFinite(timeoutMs) && timeoutMs > 0 ? timeoutMs : 750);\n\tconst apiKey = getLocalApiKey(env);\n\ttry {\n\t\tconst response = await fetch(new URL(\"models\", baseUrl.endsWith(\"/\") ? baseUrl : `${baseUrl}/`), {\n\t\t\tsignal: controller.signal,\n\t\t\theaders: apiKey ? { Authorization: `Bearer ${apiKey}` } : undefined,\n\t\t});\n\t\tif (!response.ok) return [];\n\t\tconst payload = (await response.json()) as DiscoveryModelList;\n\t\treturn (payload.data ?? [])\n\t\t\t.map((model) => (typeof model.id === \"string\" ? model.id.trim() : \"\"))\n\t\t\t.filter((id) => id.length > 0);\n\t} catch {\n\t\treturn [];\n\t} finally {\n\t\tclearTimeout(timeout);\n\t}\n}\n\nexport async function getHumainLocalModelConfigs(env: NodeJS.ProcessEnv): Promise<ProviderModelConfig[]> {\n\tconst envModelIds = readCsvEnv(env, LOCAL_MODELS_ENV);\n\tconst modelIds = envModelIds.length > 0 ? envModelIds : await discoverLocalModelIds(env);\n\treturn [...new Set(modelIds)].map((id) => toModelConfig(id));\n}\n\nfunction getLocalBaseUrl(env: NodeJS.ProcessEnv): string | undefined {\n\treturn env[LOCAL_BASE_URL_ENV] ?? env[LEGACY_LOCAL_BASE_URL_ENV];\n}\n\nfunction getLocalApiKey(env: NodeJS.ProcessEnv): string | undefined {\n\treturn env[LOCAL_API_KEY_ENV] ?? env[LEGACY_LOCAL_API_KEY_ENV];\n}\n\nfunction getHumainCodeBaseUrl(env: NodeJS.ProcessEnv): string | undefined {\n\treturn env[HUMAIN_CODE_BASE_URL_ENV] ?? env[HC_BASE_URL_ENV];\n}\n\nfunction getHumainCodeApiKey(env: NodeJS.ProcessEnv): string | undefined {\n\treturn env[HUMAIN_CODE_API_KEY_ENV] ?? env[HC_API_KEY_ENV];\n}\n\nfunction isDeployNowProxyCredential(value: string | undefined): boolean {\n\treturn value !== undefined && DEPLOYNOW_PROXY_SENTINELS.has(value);\n}\n\nfunction getDeployNowCredential(env: NodeJS.ProcessEnv, key: string): string {\n\treturn readNonEmptyEnv(env, key) ?? DEPLOYNOW_PROXY_SENTINEL;\n}\n\nfunction getDeployNowBedrockRequestEnv(env: NodeJS.ProcessEnv): Record<string, string> {\n\tconst requestEnv: Record<string, string> = {\n\t\t[AWS_ACCESS_KEY_ID_ENV]: getDeployNowCredential(env, AWS_ACCESS_KEY_ID_ENV),\n\t\t[AWS_SECRET_ACCESS_KEY_ENV]: getDeployNowCredential(env, AWS_SECRET_ACCESS_KEY_ENV),\n\t\t[AWS_REGION_ENV]: readNonEmptyEnv(env, AWS_REGION_ENV) ?? \"\",\n\t};\n\tconst sessionToken = readNonEmptyEnv(env, AWS_SESSION_TOKEN_ENV);\n\tif (sessionToken) {\n\t\trequestEnv[AWS_SESSION_TOKEN_ENV] = sessionToken;\n\t}\n\treturn requestEnv;\n}\n\nfunction hasDeployNowBedrockBindingConfig(env: NodeJS.ProcessEnv): boolean {\n\treturn Boolean(\n\t\treadNonEmptyEnv(env, DEPLOYNOW_BEDROCK_BASE_URL_ENV) &&\n\t\t\treadNonEmptyEnv(env, AWS_REGION_ENV) &&\n\t\t\tisDeployNowProxyCredential(env[AWS_ACCESS_KEY_ID_ENV]) &&\n\t\t\tisDeployNowProxyCredential(env[AWS_SECRET_ACCESS_KEY_ENV]),\n\t);\n}\n\nfunction hasDeployNowAnthropicBindingConfig(env: NodeJS.ProcessEnv): boolean {\n\treturn Boolean(\n\t\treadNonEmptyEnv(env, DEPLOYNOW_ANTHROPIC_BASE_URL_ENV) && isDeployNowProxyCredential(env[ANTHROPIC_API_KEY_ENV]),\n\t);\n}\n\nfunction hasDeployNowOpenAiBindingConfig(env: NodeJS.ProcessEnv): boolean {\n\treturn Boolean(\n\t\treadNonEmptyEnv(env, DEPLOYNOW_OPENAI_BASE_URL_ENV) && isDeployNowProxyCredential(env[OPENAI_API_KEY_ENV]),\n\t);\n}\n\nfunction getDeployNowBedrockModelId(env: NodeJS.ProcessEnv): string | undefined {\n\treturn (\n\t\t(isForgeRuntimeBedrockProvider(env) ? readNonEmptyEnv(env, FORGE_RUNTIME_MODEL_ID_ENV) : undefined) ??\n\t\treadNonEmptyEnv(env, BEDROCK_MODEL_ID_ENV)\n\t);\n}\n\nfunction getDeployNowOpenAiModelId(env: NodeJS.ProcessEnv): string | undefined {\n\treturn (\n\t\t(getForgeRuntimeModelProvider(env) === \"openai\" ? readNonEmptyEnv(env, FORGE_RUNTIME_MODEL_ID_ENV) : undefined) ??\n\t\treadNonEmptyEnv(env, OPENAI_MODEL_ID_ENV)\n\t);\n}\n\nfunction getDeployNowAnthropicModelId(env: NodeJS.ProcessEnv): string | undefined {\n\treturn (\n\t\t(getForgeRuntimeModelProvider(env) === \"anthropic\"\n\t\t\t? readNonEmptyEnv(env, FORGE_RUNTIME_MODEL_ID_ENV)\n\t\t\t: undefined) ?? readNonEmptyEnv(env, ANTHROPIC_MODEL_ID_ENV)\n\t);\n}\n\nfunction getForgeRuntimeModelProvider(env: NodeJS.ProcessEnv): string | undefined {\n\treturn readNonEmptyEnv(env, FORGE_RUNTIME_MODEL_PROVIDER_ENV)?.toLowerCase();\n}\n\nfunction isForgeRuntimeBedrockProvider(env: NodeJS.ProcessEnv): boolean {\n\tconst runtimeProvider = getForgeRuntimeModelProvider(env);\n\treturn runtimeProvider === \"bedrock\" || runtimeProvider === AMAZON_BEDROCK_PROVIDER;\n}\n\nfunction createUnsupportedHumainSsoProvider() {\n\treturn {\n\t\tname: \"HUMAIN SSO\",\n\t\tasync login(): Promise<OAuthCredentials> {\n\t\t\tthrow new Error(HUMAIN_SSO_UNSUPPORTED_MESSAGE);\n\t\t},\n\t\tasync refreshToken(): Promise<OAuthCredentials> {\n\t\t\tthrow new Error(HUMAIN_SSO_UNSUPPORTED_MESSAGE);\n\t\t},\n\t\tgetApiKey(): string {\n\t\t\tthrow new Error(HUMAIN_SSO_UNSUPPORTED_MESSAGE);\n\t\t},\n\t};\n}\n\nfunction getHumainCodeModelIds(env: NodeJS.ProcessEnv): string[] {\n\tconst configuredModels = readCsvEnv(env, HUMAIN_CODE_MODELS_ENV);\n\tconst shorthandModels = configuredModels.length > 0 ? configuredModels : readCsvEnv(env, HC_MODELS_ENV);\n\treturn shorthandModels.length > 0 ? shorthandModels : DEFAULT_HUMAIN_CODE_MODELS;\n}\n\nfunction getHumainCodeModels(env: NodeJS.ProcessEnv): ProviderModelConfig[] {\n\treturn getHumainCodeModelIds(env).map((id) => toModelConfig(id));\n}\n\nfunction registerDeployNowBindingProviders(pi: ExtensionAPI, env: NodeJS.ProcessEnv): void {\n\tconst bedrockBaseUrl = readNonEmptyEnv(env, DEPLOYNOW_BEDROCK_BASE_URL_ENV);\n\tconst bedrockModel = getDeployNowBedrockModelId(env);\n\tif (bedrockBaseUrl && hasDeployNowBedrockBindingConfig(env)) {\n\t\tpi.registerProvider(AMAZON_BEDROCK_PROVIDER, {\n\t\t\tname: \"DeployNow Bedrock Binding\",\n\t\t\tbaseUrl: bedrockBaseUrl,\n\t\t\tapiKey: getDeployNowCredential(env, AWS_ACCESS_KEY_ID_ENV),\n\t\t\tenv: getDeployNowBedrockRequestEnv(env),\n\t\t\tapi: \"bedrock-converse-stream\",\n\t\t\t...(bedrockModel ? { models: [toModelConfig(bedrockModel, \"bedrock-converse-stream\")] } : {}),\n\t\t});\n\t}\n\n\tconst anthropicBaseUrl = readNonEmptyEnv(env, DEPLOYNOW_ANTHROPIC_BASE_URL_ENV);\n\tconst anthropicModel = getDeployNowAnthropicModelId(env);\n\tif (anthropicBaseUrl && hasDeployNowAnthropicBindingConfig(env)) {\n\t\tpi.registerProvider(ANTHROPIC_PROVIDER, {\n\t\t\tname: \"DeployNow Anthropic Binding\",\n\t\t\tbaseUrl: anthropicBaseUrl,\n\t\t\tapiKey: getDeployNowCredential(env, ANTHROPIC_API_KEY_ENV),\n\t\t\tapi: \"anthropic-messages\",\n\t\t\t...(anthropicModel ? { models: [toModelConfig(anthropicModel, \"anthropic-messages\")] } : {}),\n\t\t});\n\t}\n\n\tconst openAiBaseUrl = readNonEmptyEnv(env, DEPLOYNOW_OPENAI_BASE_URL_ENV);\n\tconst openAiModel = getDeployNowOpenAiModelId(env);\n\tif (openAiBaseUrl && hasDeployNowOpenAiBindingConfig(env)) {\n\t\tpi.registerProvider(OPENAI_PROVIDER, {\n\t\t\tname: \"DeployNow OpenAI Binding\",\n\t\t\tbaseUrl: openAiBaseUrl,\n\t\t\tapiKey: getDeployNowCredential(env, OPENAI_API_KEY_ENV),\n\t\t\tapi: \"openai-completions\",\n\t\t\t...(openAiModel ? { models: [toModelConfig(openAiModel, \"openai-completions\")] } : {}),\n\t\t});\n\t}\n}\n\nasync function registerHumainProviders(pi: ExtensionAPI, env: NodeJS.ProcessEnv): Promise<void> {\n\tconst localBaseUrl = getLocalBaseUrl(env);\n\tconst localModels = await getHumainLocalModelConfigs(env);\n\tif (localBaseUrl && localModels.length > 0) {\n\t\tpi.registerProvider(HUMAIN_LOCAL_PROVIDER, {\n\t\t\tname: \"HUMAIN Local\",\n\t\t\tbaseUrl: localBaseUrl,\n\t\t\tapiKey: getLocalApiKey(env) ?? \"local\",\n\t\t\tapi: \"openai-completions\",\n\t\t\tauthHeader: Boolean(getLocalApiKey(env)),\n\t\t\tmodels: localModels,\n\t\t});\n\t}\n\n\tconst humainCodeBaseUrl = getHumainCodeBaseUrl(env);\n\tconst humainCodeApiKey = getHumainCodeApiKey(env);\n\tif (humainCodeBaseUrl && humainCodeApiKey) {\n\t\tpi.registerProvider(HUMAIN_CODE_PROVIDER, {\n\t\t\tname: \"HUMAIN Code\",\n\t\t\tbaseUrl: humainCodeBaseUrl,\n\t\t\tapiKey: humainCodeApiKey,\n\t\t\tapi: \"openai-completions\",\n\t\t\tauthHeader: true,\n\t\t\tmodels: getHumainCodeModels(env),\n\t\t});\n\t}\n\n\tregisterDeployNowBindingProviders(pi, env);\n\n\tpi.registerProvider(HUMAIN_SSO_PROVIDER, {\n\t\tname: \"HUMAIN SSO\",\n\t\toauth: createUnsupportedHumainSsoProvider(),\n\t});\n}\n\nexport function getHumainDefaultPackageSources(): PackageSource[] {\n\treturn [];\n}\n\nexport function createHumainProviderExtensionFactory(\n\tenv: NodeJS.ProcessEnv,\n\thomeDirectory: string = homedir(),\n): ExtensionFactory {\n\treturn async (pi) => {\n\t\tawait registerHumainProviders(pi, env);\n\n\t\tpi.on(\"session_start\", (event, ctx) => {\n\t\t\tif (event.reason === \"startup\") {\n\t\t\t\tctx.ui.setTheme(\"humain-dark\");\n\t\t\t\tcleanupLegacyWorkflowTiers(getLegacyWorkflowTierPaths(homeDirectory));\n\t\t\t}\n\t\t});\n\t};\n}\n\nexport function getHumainBundledExtensionFactories(env: NodeJS.ProcessEnv): ExtensionFactory[] {\n\treturn [\n\t\tcreateHumainProviderExtensionFactory(env),\n\t\tcreateHumainWebAccessExtensionFactory(),\n\t\tcreateHumainMcpAdapterExtensionFactory(),\n\t];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/humain/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { homedir } from \"node:os\";\nimport type { Api, OAuthCredentials } from \"@earendil-works/pi-ai\";\nimport { setBedrockProviderModule } from \"@earendil-works/pi-ai/compat\";\nimport type { ExtensionAPI, ExtensionFactory, ProviderModelConfig } from \"../core/extensions/types.ts\";\nimport type { PackageSource } from \"../core/settings-manager.ts\";\nimport { bedrockProviderModule } from \"./bedrock-provider/vendor/index.bundle.mjs\";\nimport { cleanupLegacyWorkflowTiers, getLegacyWorkflowTierPaths } from \"./legacy-workflow-tiers.ts\";\nimport { createHumainMcpAdapterExtensionFactory } from \"./mcp-adapter.ts\";\nimport { createHumainWebAccessExtensionFactory } from \"./web-access/index.ts\";\n\nexport const HUMAIN_LOCAL_PROVIDER = \"humain-local\";\nexport const HUMAIN_CODE_PROVIDER = \"humain-code\";\nexport const HUMAIN_SSO_PROVIDER = \"humain-sso\";\nexport const HUMAIN_FORGE_CWD_ENV = \"HUMAIN_TERMINAL_FORGE_CWD\";\n\nsetBedrockProviderModule(bedrockProviderModule);\n\nconst LOCAL_MODELS_ENV = \"HUMAIN_TERMINAL_LOCAL_MODELS\";\nconst LOCAL_BASE_URL_ENV = \"HUMAIN_TERMINAL_LOCAL_BASE_URL\";\nconst LEGACY_LOCAL_BASE_URL_ENV = \"HUMAIN_TERMINAL_AI_BASE_URL\";\nconst LOCAL_API_KEY_ENV = \"HUMAIN_TERMINAL_LOCAL_API_KEY\";\nconst LEGACY_LOCAL_API_KEY_ENV = \"HUMAIN_TERMINAL_AI_API_KEY\";\nconst LOCAL_DISCOVERY_TIMEOUT_ENV = \"HUMAIN_TERMINAL_LOCAL_MODELS_DISCOVERY_TIMEOUT_MS\";\nconst HC_BASE_URL_ENV = \"HUMAIN_TERMINAL_HC_BASE_URL\";\nconst HC_API_KEY_ENV = \"HUMAIN_TERMINAL_HC_API_KEY\";\nconst HC_MODELS_ENV = \"HUMAIN_TERMINAL_HC_MODELS\";\nconst HUMAIN_CODE_BASE_URL_ENV = \"HUMAIN_TERMINAL_HUMAIN_CODE_BASE_URL\";\nconst HUMAIN_CODE_API_KEY_ENV = \"HUMAIN_TERMINAL_HUMAIN_CODE_API_KEY\";\nconst HUMAIN_CODE_MODELS_ENV = \"HUMAIN_TERMINAL_HUMAIN_CODE_MODELS\";\nconst DEPLOYNOW_PROXY_SENTINEL = \"deploynow-proxy\";\nconst DEPLOYNOW_BROKER_SENTINEL = \"deploynow-broker\";\nconst DEPLOYNOW_ANTHROPIC_LEGACY_SENTINEL = \"not-a-real-key-routed-via-proxy\";\nconst DEPLOYNOW_PROXY_SENTINELS = new Set([\n\tDEPLOYNOW_PROXY_SENTINEL,\n\tDEPLOYNOW_BROKER_SENTINEL,\n\tDEPLOYNOW_ANTHROPIC_LEGACY_SENTINEL,\n]);\nconst DEPLOYNOW_BEDROCK_BASE_URL_ENV = \"ANTHROPIC_BEDROCK_BASE_URL\";\nconst DEPLOYNOW_ANTHROPIC_BASE_URL_ENV = \"ANTHROPIC_BASE_URL\";\nconst DEPLOYNOW_OPENAI_BASE_URL_ENV = \"OPENAI_BASE_URL\";\nconst AWS_REGION_ENV = \"AWS_REGION\";\nconst AWS_ACCESS_KEY_ID_ENV = \"AWS_ACCESS_KEY_ID\";\nconst AWS_SECRET_ACCESS_KEY_ENV = \"AWS_SECRET_ACCESS_KEY\";\nconst AWS_SESSION_TOKEN_ENV = \"AWS_SESSION_TOKEN\";\nconst ANTHROPIC_API_KEY_ENV = \"ANTHROPIC_API_KEY\";\nconst OPENAI_API_KEY_ENV = \"OPENAI_API_KEY\";\nconst BEDROCK_MODEL_ID_ENV = \"BEDROCK_MODEL_ID\";\nconst OPENAI_MODEL_ID_ENV = \"OPENAI_MODEL_ID\";\nconst ANTHROPIC_MODEL_ID_ENV = \"ANTHROPIC_MODEL_ID\";\nconst FORGE_RUNTIME_MODEL_PROVIDER_ENV = \"FORGE_RUNTIME_MODEL_PROVIDER\";\nconst FORGE_RUNTIME_MODEL_ID_ENV = \"FORGE_RUNTIME_MODEL_ID\";\nconst DEFAULT_LOCAL_CONTEXT_WINDOW = 128000;\nconst DEFAULT_LOCAL_MAX_TOKENS = 16384;\nconst DEFAULT_LOCAL_MODEL_COST = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 };\nconst AMAZON_BEDROCK_PROVIDER = \"amazon-bedrock\";\nconst ANTHROPIC_PROVIDER = \"anthropic\";\nconst OPENAI_PROVIDER = \"openai\";\nconst HUMAIN_SSO_UNSUPPORTED_MESSAGE = \"HUMAIN SSO is not supported yet.\";\n\ninterface DiscoveryModelList {\n\tdata?: Array<{ id?: unknown }>;\n}\n\nconst DEFAULT_HUMAIN_CODE_MODELS = [\"humain-planning\", \"humain-code\", \"humain-review\", \"humain-long-context\"];\n\nfunction readCsvEnv(env: NodeJS.ProcessEnv, key: string): string[] {\n\tconst raw = env[key];\n\tif (!raw) return [];\n\treturn raw\n\t\t.split(\",\")\n\t\t.map((item) => item.trim())\n\t\t.filter((item) => item.length > 0);\n}\n\nfunction readNonEmptyEnv(env: NodeJS.ProcessEnv, key: string): string | undefined {\n\tconst value = env[key]?.trim();\n\treturn value ? value : undefined;\n}\n\nfunction toModelConfig(id: string, api: Api = \"openai-completions\"): ProviderModelConfig {\n\tconst config: ProviderModelConfig = {\n\t\tid,\n\t\tname: id,\n\t\tapi,\n\t\treasoning: false,\n\t\tinput: [\"text\"],\n\t\tcost: DEFAULT_LOCAL_MODEL_COST,\n\t\tcontextWindow: DEFAULT_LOCAL_CONTEXT_WINDOW,\n\t\tmaxTokens: DEFAULT_LOCAL_MAX_TOKENS,\n\t};\n\n\tif (api === \"openai-completions\") {\n\t\tconfig.compat = {\n\t\t\tsupportsStore: false,\n\t\t\tsupportsDeveloperRole: false,\n\t\t\tsupportsReasoningEffort: false,\n\t\t\tsupportsUsageInStreaming: false,\n\t\t\tmaxTokensField: \"max_tokens\",\n\t\t\tsupportsStrictMode: false,\n\t\t\tsupportsLongCacheRetention: false,\n\t\t};\n\t}\n\n\treturn config;\n}\n\nasync function discoverLocalModelIds(env: NodeJS.ProcessEnv): Promise<string[]> {\n\tconst baseUrl = getLocalBaseUrl(env);\n\tif (!baseUrl) return [];\n\tconst timeoutMs = Number(env[LOCAL_DISCOVERY_TIMEOUT_ENV] ?? \"750\");\n\tconst controller = new AbortController();\n\tconst timeout = setTimeout(() => controller.abort(), Number.isFinite(timeoutMs) && timeoutMs > 0 ? timeoutMs : 750);\n\tconst apiKey = getLocalApiKey(env);\n\ttry {\n\t\tconst response = await fetch(new URL(\"models\", baseUrl.endsWith(\"/\") ? baseUrl : `${baseUrl}/`), {\n\t\t\tsignal: controller.signal,\n\t\t\theaders: apiKey ? { Authorization: `Bearer ${apiKey}` } : undefined,\n\t\t});\n\t\tif (!response.ok) return [];\n\t\tconst payload = (await response.json()) as DiscoveryModelList;\n\t\treturn (payload.data ?? [])\n\t\t\t.map((model) => (typeof model.id === \"string\" ? model.id.trim() : \"\"))\n\t\t\t.filter((id) => id.length > 0);\n\t} catch {\n\t\treturn [];\n\t} finally {\n\t\tclearTimeout(timeout);\n\t}\n}\n\nexport async function getHumainLocalModelConfigs(env: NodeJS.ProcessEnv): Promise<ProviderModelConfig[]> {\n\tconst envModelIds = readCsvEnv(env, LOCAL_MODELS_ENV);\n\tconst modelIds = envModelIds.length > 0 ? envModelIds : await discoverLocalModelIds(env);\n\treturn [...new Set(modelIds)].map((id) => toModelConfig(id));\n}\n\nfunction getLocalBaseUrl(env: NodeJS.ProcessEnv): string | undefined {\n\treturn env[LOCAL_BASE_URL_ENV] ?? env[LEGACY_LOCAL_BASE_URL_ENV];\n}\n\nfunction getLocalApiKey(env: NodeJS.ProcessEnv): string | undefined {\n\treturn env[LOCAL_API_KEY_ENV] ?? env[LEGACY_LOCAL_API_KEY_ENV];\n}\n\nfunction getHumainCodeBaseUrl(env: NodeJS.ProcessEnv): string | undefined {\n\treturn env[HUMAIN_CODE_BASE_URL_ENV] ?? env[HC_BASE_URL_ENV];\n}\n\nfunction getHumainCodeApiKey(env: NodeJS.ProcessEnv): string | undefined {\n\treturn env[HUMAIN_CODE_API_KEY_ENV] ?? env[HC_API_KEY_ENV];\n}\n\nfunction isDeployNowProxyCredential(value: string | undefined): boolean {\n\treturn value !== undefined && DEPLOYNOW_PROXY_SENTINELS.has(value);\n}\n\nfunction getDeployNowCredential(env: NodeJS.ProcessEnv, key: string): string {\n\treturn readNonEmptyEnv(env, key) ?? DEPLOYNOW_PROXY_SENTINEL;\n}\n\nfunction getDeployNowBedrockRequestEnv(env: NodeJS.ProcessEnv): Record<string, string> {\n\tconst requestEnv: Record<string, string> = {\n\t\t[AWS_ACCESS_KEY_ID_ENV]: getDeployNowCredential(env, AWS_ACCESS_KEY_ID_ENV),\n\t\t[AWS_SECRET_ACCESS_KEY_ENV]: getDeployNowCredential(env, AWS_SECRET_ACCESS_KEY_ENV),\n\t\t[AWS_REGION_ENV]: readNonEmptyEnv(env, AWS_REGION_ENV) ?? \"\",\n\t};\n\tconst sessionToken = readNonEmptyEnv(env, AWS_SESSION_TOKEN_ENV);\n\tif (sessionToken) {\n\t\trequestEnv[AWS_SESSION_TOKEN_ENV] = sessionToken;\n\t}\n\treturn requestEnv;\n}\n\nfunction hasDeployNowBedrockBindingConfig(env: NodeJS.ProcessEnv): boolean {\n\treturn Boolean(\n\t\treadNonEmptyEnv(env, DEPLOYNOW_BEDROCK_BASE_URL_ENV) &&\n\t\t\treadNonEmptyEnv(env, AWS_REGION_ENV) &&\n\t\t\tisDeployNowProxyCredential(env[AWS_ACCESS_KEY_ID_ENV]) &&\n\t\t\tisDeployNowProxyCredential(env[AWS_SECRET_ACCESS_KEY_ENV]),\n\t);\n}\n\nfunction hasDeployNowAnthropicBindingConfig(env: NodeJS.ProcessEnv): boolean {\n\treturn Boolean(\n\t\treadNonEmptyEnv(env, DEPLOYNOW_ANTHROPIC_BASE_URL_ENV) && isDeployNowProxyCredential(env[ANTHROPIC_API_KEY_ENV]),\n\t);\n}\n\nfunction hasDeployNowOpenAiBindingConfig(env: NodeJS.ProcessEnv): boolean {\n\treturn Boolean(\n\t\treadNonEmptyEnv(env, DEPLOYNOW_OPENAI_BASE_URL_ENV) && isDeployNowProxyCredential(env[OPENAI_API_KEY_ENV]),\n\t);\n}\n\nfunction getDeployNowBedrockModelId(env: NodeJS.ProcessEnv): string | undefined {\n\treturn (\n\t\t(isForgeRuntimeBedrockProvider(env) ? readNonEmptyEnv(env, FORGE_RUNTIME_MODEL_ID_ENV) : undefined) ??\n\t\treadNonEmptyEnv(env, BEDROCK_MODEL_ID_ENV)\n\t);\n}\n\nfunction getDeployNowOpenAiModelId(env: NodeJS.ProcessEnv): string | undefined {\n\treturn (\n\t\t(getForgeRuntimeModelProvider(env) === \"openai\" ? readNonEmptyEnv(env, FORGE_RUNTIME_MODEL_ID_ENV) : undefined) ??\n\t\treadNonEmptyEnv(env, OPENAI_MODEL_ID_ENV)\n\t);\n}\n\nfunction getDeployNowAnthropicModelId(env: NodeJS.ProcessEnv): string | undefined {\n\treturn (\n\t\t(getForgeRuntimeModelProvider(env) === \"anthropic\"\n\t\t\t? readNonEmptyEnv(env, FORGE_RUNTIME_MODEL_ID_ENV)\n\t\t\t: undefined) ?? readNonEmptyEnv(env, ANTHROPIC_MODEL_ID_ENV)\n\t);\n}\n\nfunction getForgeRuntimeModelProvider(env: NodeJS.ProcessEnv): string | undefined {\n\treturn readNonEmptyEnv(env, FORGE_RUNTIME_MODEL_PROVIDER_ENV)?.toLowerCase();\n}\n\nfunction isForgeRuntimeBedrockProvider(env: NodeJS.ProcessEnv): boolean {\n\tconst runtimeProvider = getForgeRuntimeModelProvider(env);\n\treturn runtimeProvider === \"bedrock\" || runtimeProvider === AMAZON_BEDROCK_PROVIDER;\n}\n\nfunction createUnsupportedHumainSsoProvider() {\n\treturn {\n\t\tname: \"HUMAIN SSO\",\n\t\tasync login(): Promise<OAuthCredentials> {\n\t\t\tthrow new Error(HUMAIN_SSO_UNSUPPORTED_MESSAGE);\n\t\t},\n\t\tasync refreshToken(): Promise<OAuthCredentials> {\n\t\t\tthrow new Error(HUMAIN_SSO_UNSUPPORTED_MESSAGE);\n\t\t},\n\t\tgetApiKey(): string {\n\t\t\tthrow new Error(HUMAIN_SSO_UNSUPPORTED_MESSAGE);\n\t\t},\n\t};\n}\n\nfunction getHumainCodeModelIds(env: NodeJS.ProcessEnv): string[] {\n\tconst configuredModels = readCsvEnv(env, HUMAIN_CODE_MODELS_ENV);\n\tconst shorthandModels = configuredModels.length > 0 ? configuredModels : readCsvEnv(env, HC_MODELS_ENV);\n\treturn shorthandModels.length > 0 ? shorthandModels : DEFAULT_HUMAIN_CODE_MODELS;\n}\n\nfunction getHumainCodeModels(env: NodeJS.ProcessEnv): ProviderModelConfig[] {\n\treturn getHumainCodeModelIds(env).map((id) => toModelConfig(id));\n}\n\nfunction registerDeployNowBindingProviders(pi: ExtensionAPI, env: NodeJS.ProcessEnv): void {\n\tconst bedrockBaseUrl = readNonEmptyEnv(env, DEPLOYNOW_BEDROCK_BASE_URL_ENV);\n\tconst bedrockModel = getDeployNowBedrockModelId(env);\n\tif (bedrockBaseUrl && hasDeployNowBedrockBindingConfig(env)) {\n\t\tpi.registerProvider(AMAZON_BEDROCK_PROVIDER, {\n\t\t\tname: \"DeployNow Bedrock Binding\",\n\t\t\tbaseUrl: bedrockBaseUrl,\n\t\t\tapiKey: getDeployNowCredential(env, AWS_ACCESS_KEY_ID_ENV),\n\t\t\tenv: getDeployNowBedrockRequestEnv(env),\n\t\t\tapi: \"bedrock-converse-stream\",\n\t\t\t...(bedrockModel ? { models: [toModelConfig(bedrockModel, \"bedrock-converse-stream\")] } : {}),\n\t\t});\n\t}\n\n\tconst anthropicBaseUrl = readNonEmptyEnv(env, DEPLOYNOW_ANTHROPIC_BASE_URL_ENV);\n\tconst anthropicModel = getDeployNowAnthropicModelId(env);\n\tif (anthropicBaseUrl && hasDeployNowAnthropicBindingConfig(env)) {\n\t\tpi.registerProvider(ANTHROPIC_PROVIDER, {\n\t\t\tname: \"DeployNow Anthropic Binding\",\n\t\t\tbaseUrl: anthropicBaseUrl,\n\t\t\tapiKey: getDeployNowCredential(env, ANTHROPIC_API_KEY_ENV),\n\t\t\tapi: \"anthropic-messages\",\n\t\t\t...(anthropicModel ? { models: [toModelConfig(anthropicModel, \"anthropic-messages\")] } : {}),\n\t\t});\n\t}\n\n\tconst openAiBaseUrl = readNonEmptyEnv(env, DEPLOYNOW_OPENAI_BASE_URL_ENV);\n\tconst openAiModel = getDeployNowOpenAiModelId(env);\n\tif (openAiBaseUrl && hasDeployNowOpenAiBindingConfig(env)) {\n\t\tpi.registerProvider(OPENAI_PROVIDER, {\n\t\t\tname: \"DeployNow OpenAI Binding\",\n\t\t\tbaseUrl: openAiBaseUrl,\n\t\t\tapiKey: getDeployNowCredential(env, OPENAI_API_KEY_ENV),\n\t\t\tapi: \"openai-completions\",\n\t\t\t...(openAiModel ? { models: [toModelConfig(openAiModel, \"openai-completions\")] } : {}),\n\t\t});\n\t}\n}\n\nasync function registerHumainProviders(pi: ExtensionAPI, env: NodeJS.ProcessEnv): Promise<void> {\n\tconst localBaseUrl = getLocalBaseUrl(env);\n\tconst localModels = await getHumainLocalModelConfigs(env);\n\tif (localBaseUrl && localModels.length > 0) {\n\t\tpi.registerProvider(HUMAIN_LOCAL_PROVIDER, {\n\t\t\tname: \"HUMAIN Local\",\n\t\t\tbaseUrl: localBaseUrl,\n\t\t\tapiKey: getLocalApiKey(env) ?? \"local\",\n\t\t\tapi: \"openai-completions\",\n\t\t\tauthHeader: Boolean(getLocalApiKey(env)),\n\t\t\tmodels: localModels,\n\t\t});\n\t}\n\n\tconst humainCodeBaseUrl = getHumainCodeBaseUrl(env);\n\tconst humainCodeApiKey = getHumainCodeApiKey(env);\n\tif (humainCodeBaseUrl && humainCodeApiKey) {\n\t\tpi.registerProvider(HUMAIN_CODE_PROVIDER, {\n\t\t\tname: \"HUMAIN Code\",\n\t\t\tbaseUrl: humainCodeBaseUrl,\n\t\t\tapiKey: humainCodeApiKey,\n\t\t\tapi: \"openai-completions\",\n\t\t\tauthHeader: true,\n\t\t\tmodels: getHumainCodeModels(env),\n\t\t});\n\t}\n\n\tregisterDeployNowBindingProviders(pi, env);\n\n\tpi.registerProvider(HUMAIN_SSO_PROVIDER, {\n\t\tname: \"HUMAIN SSO\",\n\t\toauth: createUnsupportedHumainSsoProvider(),\n\t});\n}\n\nexport function getHumainDefaultPackageSources(): PackageSource[] {\n\treturn [];\n}\n\nexport function createHumainProviderExtensionFactory(\n\tenv: NodeJS.ProcessEnv,\n\thomeDirectory: string = homedir(),\n): ExtensionFactory {\n\treturn async (pi) => {\n\t\tawait registerHumainProviders(pi, env);\n\n\t\tpi.on(\"session_start\", (event, ctx) => {\n\t\t\tif (event.reason === \"startup\") {\n\t\t\t\tctx.ui.setTheme(\"humain-dark\");\n\t\t\t\tcleanupLegacyWorkflowTiers(getLegacyWorkflowTierPaths(homeDirectory));\n\t\t\t}\n\t\t});\n\t};\n}\n\nexport function getHumainBundledExtensionFactories(env: NodeJS.ProcessEnv): ExtensionFactory[] {\n\treturn [\n\t\tcreateHumainProviderExtensionFactory(env),\n\t\tcreateHumainWebAccessExtensionFactory(),\n\t\tcreateHumainMcpAdapterExtensionFactory(),\n\t];\n}\n"]}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@humain/terminal",
|
|
3
|
-
"version": "0.0.3-beta.
|
|
3
|
+
"version": "0.0.3-beta.3",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@humain/terminal",
|
|
9
|
-
"version": "0.0.3-beta.
|
|
9
|
+
"version": "0.0.3-beta.3",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
|
+
"@aws-sdk/client-bedrock-runtime": "3.1048.0",
|
|
12
13
|
"@earendil-works/pi-agent-core": "0.84.1",
|
|
13
14
|
"@earendil-works/pi-ai": "0.84.1",
|
|
14
15
|
"@earendil-works/pi-client": "0.84.1",
|
|
@@ -20,6 +21,7 @@
|
|
|
20
21
|
"@mozilla/readability": "0.6.0",
|
|
21
22
|
"@napi-rs/keyring": "1.3.0",
|
|
22
23
|
"@silvia-odwyer/photon-node": "0.3.4",
|
|
24
|
+
"@smithy/node-http-handler": "4.7.3",
|
|
23
25
|
"chalk": "5.6.2",
|
|
24
26
|
"ajv": "8.20.0",
|
|
25
27
|
"ajv-formats": "3.0.1",
|
|
@@ -30,10 +32,13 @@
|
|
|
30
32
|
"highlight.js": "10.7.3",
|
|
31
33
|
"hosted-git-info": "9.0.3",
|
|
32
34
|
"ignore": "7.0.5",
|
|
35
|
+
"http-proxy-agent": "7.0.2",
|
|
36
|
+
"https-proxy-agent": "7.0.6",
|
|
33
37
|
"jiti": "2.7.0",
|
|
34
38
|
"linkedom": "0.16.11",
|
|
35
39
|
"minimatch": "10.2.5",
|
|
36
40
|
"p-limit": "6.1.0",
|
|
41
|
+
"partial-json": "0.1.7",
|
|
37
42
|
"open": "10.2.0",
|
|
38
43
|
"promise.try": "2.0.1",
|
|
39
44
|
"proper-lockfile": "4.1.2",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@humain/terminal",
|
|
3
|
-
"version": "0.0.3-beta.
|
|
3
|
+
"version": "0.0.3-beta.3",
|
|
4
4
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"humainTerminalConfig": {
|
|
@@ -54,13 +54,14 @@
|
|
|
54
54
|
"clean": "shx rm -rf dist",
|
|
55
55
|
"build": "tsgo -p tsconfig.build.json && shx chmod +x dist/cli.js dist/rpc-entry.js && npm run copy-assets",
|
|
56
56
|
"build:binary": "npm --prefix ../tui run build && npm --prefix ../telemetry run build && npm --prefix ../ai run build && npm --prefix ../agent run build && npm --prefix ../protocol run build && npm --prefix ../client run build && npm run build && bun build --compile --no-compile-autoload-bunfig ./dist/bun/cli.js ./src/utils/image-resize-worker.ts --outfile dist/pi && npm run copy-binary-assets",
|
|
57
|
-
"copy-assets": "shx mkdir -p dist/modes/interactive/theme && shx cp src/modes/interactive/theme/*.json dist/modes/interactive/theme/ && shx mkdir -p dist/modes/interactive/assets && shx cp src/modes/interactive/assets/*.png dist/modes/interactive/assets/ && shx mkdir -p dist/core/export-html/vendor && shx cp src/core/export-html/template.html src/core/export-html/template.css src/core/export-html/template.js dist/core/export-html/ && shx cp src/core/export-html/vendor/*.js dist/core/export-html/vendor/ && shx mkdir -p dist/humain/mcp-adapter/vendor && shx cp -r src/humain/mcp-adapter/vendor/* dist/humain/mcp-adapter/vendor/",
|
|
57
|
+
"copy-assets": "shx mkdir -p dist/modes/interactive/theme && shx cp src/modes/interactive/theme/*.json dist/modes/interactive/theme/ && shx mkdir -p dist/modes/interactive/assets && shx cp src/modes/interactive/assets/*.png dist/modes/interactive/assets/ && shx mkdir -p dist/core/export-html/vendor && shx cp src/core/export-html/template.html src/core/export-html/template.css src/core/export-html/template.js dist/core/export-html/ && shx cp src/core/export-html/vendor/*.js dist/core/export-html/vendor/ && shx mkdir -p dist/humain/mcp-adapter/vendor && shx cp -r src/humain/mcp-adapter/vendor/* dist/humain/mcp-adapter/vendor/ && shx mkdir -p dist/humain/bedrock-provider/vendor && shx cp -r src/humain/bedrock-provider/vendor/* dist/humain/bedrock-provider/vendor/",
|
|
58
58
|
"copy-binary-assets": "shx cp package.json dist/ && shx cp README.md dist/ && shx cp CHANGELOG.md dist/ && shx mkdir -p dist/theme && shx cp src/modes/interactive/theme/*.json dist/theme/ && shx mkdir -p dist/assets && shx cp src/modes/interactive/assets/*.png dist/assets/ && shx mkdir -p dist/export-html/vendor && shx cp src/core/export-html/template.html dist/export-html/ && shx cp src/core/export-html/vendor/*.js dist/export-html/vendor/ && shx cp -r docs dist/ && shx cp -r examples dist/ && shx cp ../../node_modules/@silvia-odwyer/photon-node/photon_rs_bg.wasm dist/",
|
|
59
59
|
"test": "vitest --run",
|
|
60
60
|
"shrinkwrap": "node ../../scripts/generate-coding-agent-shrinkwrap.mjs",
|
|
61
61
|
"prepublishOnly": "npm run clean && npm run build && npm run shrinkwrap"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
+
"@aws-sdk/client-bedrock-runtime": "3.1048.0",
|
|
64
65
|
"@earendil-works/pi-agent-core": "0.84.1",
|
|
65
66
|
"@earendil-works/pi-ai": "0.84.1",
|
|
66
67
|
"@earendil-works/pi-client": "0.84.1",
|
|
@@ -72,6 +73,7 @@
|
|
|
72
73
|
"@mozilla/readability": "0.6.0",
|
|
73
74
|
"@napi-rs/keyring": "1.3.0",
|
|
74
75
|
"@silvia-odwyer/photon-node": "0.3.4",
|
|
76
|
+
"@smithy/node-http-handler": "4.7.3",
|
|
75
77
|
"chalk": "5.6.2",
|
|
76
78
|
"ajv": "8.20.0",
|
|
77
79
|
"ajv-formats": "3.0.1",
|
|
@@ -82,10 +84,13 @@
|
|
|
82
84
|
"highlight.js": "10.7.3",
|
|
83
85
|
"hosted-git-info": "9.0.3",
|
|
84
86
|
"ignore": "7.0.5",
|
|
87
|
+
"http-proxy-agent": "7.0.2",
|
|
88
|
+
"https-proxy-agent": "7.0.6",
|
|
85
89
|
"jiti": "2.7.0",
|
|
86
90
|
"linkedom": "0.16.11",
|
|
87
91
|
"minimatch": "10.2.5",
|
|
88
92
|
"p-limit": "6.1.0",
|
|
93
|
+
"partial-json": "0.1.7",
|
|
89
94
|
"open": "10.2.0",
|
|
90
95
|
"promise.try": "2.0.1",
|
|
91
96
|
"proper-lockfile": "4.1.2",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register-bedrock.d.ts","sourceRoot":"","sources":["../../src/bun/register-bedrock.ts"],"names":[],"mappings":"","sourcesContent":["import { bedrockProviderModule } from \"@earendil-works/pi-ai/bedrock-provider\";\nimport { setBedrockProviderModule } from \"@earendil-works/pi-ai/compat\";\n\nsetBedrockProviderModule(bedrockProviderModule);\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register-bedrock.js","sourceRoot":"","sources":["../../src/bun/register-bedrock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,wBAAwB,CAAC,qBAAqB,CAAC,CAAC","sourcesContent":["import { bedrockProviderModule } from \"@earendil-works/pi-ai/bedrock-provider\";\nimport { setBedrockProviderModule } from \"@earendil-works/pi-ai/compat\";\n\nsetBedrockProviderModule(bedrockProviderModule);\n"]}
|