@sentropic/llm-mesh 0.1.0
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/LICENSE +59 -0
- package/README.md +15 -0
- package/dist/adapter-auth.d.ts +6 -0
- package/dist/adapter-auth.d.ts.map +1 -0
- package/dist/adapter-auth.js +38 -0
- package/dist/adapter-auth.js.map +1 -0
- package/dist/adapter-core.d.ts +42 -0
- package/dist/adapter-core.d.ts.map +1 -0
- package/dist/adapter-core.js +51 -0
- package/dist/adapter-core.js.map +1 -0
- package/dist/adapters.d.ts +40 -0
- package/dist/adapters.d.ts.map +1 -0
- package/dist/adapters.js +39 -0
- package/dist/adapters.js.map +1 -0
- package/dist/auth.d.ts +92 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +80 -0
- package/dist/auth.js.map +1 -0
- package/dist/capabilities.d.ts +60 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +15 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/catalog.d.ts +253 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/catalog.js +261 -0
- package/dist/catalog.js.map +1 -0
- package/dist/errors.d.ts +22 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +85 -0
- package/dist/errors.js.map +1 -0
- package/dist/generation.d.ts +63 -0
- package/dist/generation.d.ts.map +1 -0
- package/dist/generation.js +2 -0
- package/dist/generation.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/mesh.d.ts +37 -0
- package/dist/mesh.d.ts.map +1 -0
- package/dist/mesh.js +109 -0
- package/dist/mesh.js.map +1 -0
- package/dist/messages.d.ts +38 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +2 -0
- package/dist/messages.js.map +1 -0
- package/dist/providers.d.ts +25 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +31 -0
- package/dist/providers.js.map +1 -0
- package/dist/registry.d.ts +37 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +26 -0
- package/dist/registry.js.map +1 -0
- package/dist/streaming.d.ts +72 -0
- package/dist/streaming.d.ts.map +1 -0
- package/dist/streaming.js +11 -0
- package/dist/streaming.js.map +1 -0
- package/dist/tools.d.ts +112 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +2 -0
- package/dist/tools.js.map +1 -0
- package/package.json +33 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
MIT License with Commercial Use Restrictions
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Fabien Antoine
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person or organization
|
|
6
|
+
obtaining a copy of this software and associated documentation files (the
|
|
7
|
+
"Software"), to use, copy, modify, merge, publish, distribute, sublicense,
|
|
8
|
+
and/or sell copies of the Software, subject to the following conditions.
|
|
9
|
+
|
|
10
|
+
EVALUATION AND TESTING EXCEPTION (ALL ENTITIES):
|
|
11
|
+
Notwithstanding the restrictions below, all entities (including for-profit
|
|
12
|
+
companies and service companies) are granted free use of this Software for
|
|
13
|
+
evaluation and testing purposes without restriction. This includes internal
|
|
14
|
+
testing, proof-of-concept development, and non-production evaluation.
|
|
15
|
+
|
|
16
|
+
1. The above copyright notice and this permission notice shall be included in
|
|
17
|
+
all copies or substantial portions of the Software.
|
|
18
|
+
|
|
19
|
+
2. FREE USE GRANTED:
|
|
20
|
+
|
|
21
|
+
a) Non-Profit Organizations:
|
|
22
|
+
Non-profit organizations, charities, and associations without commercial
|
|
23
|
+
purpose are granted free use of this Software without restriction.
|
|
24
|
+
|
|
25
|
+
b) Public Administrations:
|
|
26
|
+
Government agencies, public administrations, and public sector
|
|
27
|
+
organizations are granted free use of this Software without restriction.
|
|
28
|
+
|
|
29
|
+
3. COMMERCIAL USE RESTRICTIONS:
|
|
30
|
+
|
|
31
|
+
Any use of this Software (including internal use) by or for a for-profit
|
|
32
|
+
entity, or in the course of any commercial activity, requires prior written
|
|
33
|
+
permission from the copyright holder (Fabien Antoine), except for the
|
|
34
|
+
Evaluation and Testing Exception above.
|
|
35
|
+
|
|
36
|
+
For the avoidance of doubt, "commercial activity" includes any activity
|
|
37
|
+
carried out for commercial advantage or monetary compensation, whether or
|
|
38
|
+
not the Software is directly revenue-generating, and includes providing paid
|
|
39
|
+
services that use or incorporate the Software.
|
|
40
|
+
|
|
41
|
+
4. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
42
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
43
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
44
|
+
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
45
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
46
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
47
|
+
DEALINGS IN THE SOFTWARE.
|
|
48
|
+
|
|
49
|
+
5. CONTACT INFORMATION:
|
|
50
|
+
|
|
51
|
+
For commercial use inquiries, please contact:
|
|
52
|
+
Fabien Antoine
|
|
53
|
+
https://www.linkedin.com/in/fabien-antoine-ia
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
This license is based on the MIT License but includes additional restrictions
|
|
58
|
+
for commercial use. The source code remains open and accessible, but commercial
|
|
59
|
+
entities must obtain permission before use.
|
package/README.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# @sentropic/llm-mesh
|
|
2
|
+
|
|
3
|
+
Provider-agnostic TypeScript contracts for Sentropic model access.
|
|
4
|
+
|
|
5
|
+
This package boundary is the BR-14c model-access runtime extraction. It defines public provider/model IDs, capability metadata, normalized generation and streaming shapes, tool-use types, structured-output flags, authentication source types, deterministic provider adapter scaffolds, and retryable error metadata. BR-14c also cuts the Sentropic application LLM runtime over to this package and prepares the package for npm publication.
|
|
6
|
+
|
|
7
|
+
## Public Scope
|
|
8
|
+
|
|
9
|
+
- Providers: OpenAI, Google Gemini, Anthropic Claude, Mistral, Cohere.
|
|
10
|
+
- Auth sources: direct token, user token, workspace token, environment token, Codex account.
|
|
11
|
+
- Future account transport extension points: Gemini Code Assist and Claude Code.
|
|
12
|
+
- Normalized stream events: `reasoning_delta`, `content_delta`, `tool_call_start`, `tool_call_delta`, `tool_call_result`, `status`, `error`, `done`.
|
|
13
|
+
- Provider adapters: OpenAI, Gemini, Anthropic Claude, Mistral, and Cohere scaffolds accept injected clients for deterministic tests; they do not perform live SDK calls by default.
|
|
14
|
+
|
|
15
|
+
Application wiring, encrypted storage, quotas, retries, UI behavior, and concrete live provider credential storage remain outside this package contract. The application runtime may provide those integrations through the package's resolver and adapter hooks.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-auth.d.ts","sourceRoot":"","sources":["../src/adapter-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAsB,MAAM,WAAW,CAAC;AAW/D,eAAO,MAAM,yBAAyB,WAC5B,SAAS,KAChB;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAkCjC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { getSecretAuthMaterial } from './auth.js';
|
|
2
|
+
const hasText = (value) => {
|
|
3
|
+
return typeof value === 'string' && value.trim().length > 0;
|
|
4
|
+
};
|
|
5
|
+
const unwrapAuthMaterial = (input) => {
|
|
6
|
+
return getSecretAuthMaterial(input);
|
|
7
|
+
};
|
|
8
|
+
export const validateAdapterAuthSource = (input) => {
|
|
9
|
+
const source = unwrapAuthMaterial(input);
|
|
10
|
+
if (!source || source.type === 'none') {
|
|
11
|
+
return { ok: false, message: 'Provider auth source is not configured' };
|
|
12
|
+
}
|
|
13
|
+
if (source.type === 'direct-token') {
|
|
14
|
+
return hasText(source.token)
|
|
15
|
+
? { ok: true }
|
|
16
|
+
: { ok: false, message: 'Direct provider token is empty' };
|
|
17
|
+
}
|
|
18
|
+
if (source.type === 'user-token' || source.type === 'workspace-token') {
|
|
19
|
+
return hasText(source.token) || hasText(source.tokenRef)
|
|
20
|
+
? { ok: true }
|
|
21
|
+
: { ok: false, message: `${source.type} is missing token or tokenRef` };
|
|
22
|
+
}
|
|
23
|
+
if (source.type === 'environment-token') {
|
|
24
|
+
return hasText(source.token) || hasText(source.envVar)
|
|
25
|
+
? { ok: true }
|
|
26
|
+
: { ok: false, message: 'Environment token source is missing envVar' };
|
|
27
|
+
}
|
|
28
|
+
if (source.type === 'codex-account') {
|
|
29
|
+
return hasText(source.accessToken)
|
|
30
|
+
? { ok: true }
|
|
31
|
+
: { ok: false, message: 'Codex account access token is empty' };
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
ok: false,
|
|
35
|
+
message: `${source.provider} account transport is planned, not executable`,
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=adapter-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-auth.js","sourceRoot":"","sources":["../src/adapter-auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,OAAO,GAAG,CAAC,KAAgC,EAAW,EAAE;IAC5D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAAkC,EAAE;IAC/E,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,KAAiB,EACkB,EAAE;IACrC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACtC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;IAC1E,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YAC1B,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;YACd,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;IAC/D,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACtE,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;YACtD,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;YACd,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,+BAA+B,EAAE,CAAC;IAC5E,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;YACpD,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;YACd,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC;IAC3E,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;YAChC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE;YACd,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC;IACpE,CAAC;IAED,OAAO;QACL,EAAE,EAAE,KAAK;QACT,OAAO,EAAE,GAAG,MAAM,CAAC,QAAQ,+CAA+C;KAC3E,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { AuthInput } from './auth.js';
|
|
2
|
+
import { type ModelProfile, type ProviderDescriptor } from './catalog.js';
|
|
3
|
+
import type { GenerateRequest, GenerateResponse, StreamRequest, StreamResult } from './generation.js';
|
|
4
|
+
import type { ProviderId } from './providers.js';
|
|
5
|
+
import type { ProviderAdapter, ProviderRuntimeContext } from './registry.js';
|
|
6
|
+
import { type NormalizedProviderError, type ProviderErrorNormalizationOptions } from './errors.js';
|
|
7
|
+
export interface ProviderAdapterClient {
|
|
8
|
+
generate(request: GenerateRequest, context?: ProviderRuntimeContext): Promise<GenerateResponse>;
|
|
9
|
+
stream(request: StreamRequest, context?: ProviderRuntimeContext): Promise<StreamResult>;
|
|
10
|
+
}
|
|
11
|
+
export interface ProviderAdapterOptions<Client extends ProviderAdapterClient = ProviderAdapterClient> {
|
|
12
|
+
client?: Client;
|
|
13
|
+
provider?: ProviderDescriptor;
|
|
14
|
+
models?: readonly ModelProfile[];
|
|
15
|
+
errorOptions?: ProviderErrorNormalizationOptions;
|
|
16
|
+
validateAuth?: (source?: AuthInput) => {
|
|
17
|
+
ok: boolean;
|
|
18
|
+
message?: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export declare class ProviderAdapterNotConfiguredError extends Error {
|
|
22
|
+
readonly providerId: ProviderId;
|
|
23
|
+
readonly operation: 'generate' | 'stream';
|
|
24
|
+
readonly code = "adapter_not_configured";
|
|
25
|
+
constructor(providerId: ProviderId, operation: 'generate' | 'stream');
|
|
26
|
+
}
|
|
27
|
+
export declare abstract class BaseProviderAdapter<Client extends ProviderAdapterClient = ProviderAdapterClient> implements ProviderAdapter {
|
|
28
|
+
readonly provider: ProviderDescriptor;
|
|
29
|
+
private readonly client?;
|
|
30
|
+
private readonly models;
|
|
31
|
+
private readonly options;
|
|
32
|
+
protected constructor(providerId: ProviderId, options?: ProviderAdapterOptions<Client>);
|
|
33
|
+
listModels(): readonly ModelProfile[];
|
|
34
|
+
generate(request: GenerateRequest, context?: ProviderRuntimeContext): Promise<GenerateResponse>;
|
|
35
|
+
stream(request: StreamRequest, context?: ProviderRuntimeContext): Promise<StreamResult>;
|
|
36
|
+
validateAuth(source?: AuthInput): {
|
|
37
|
+
ok: boolean;
|
|
38
|
+
message?: string;
|
|
39
|
+
};
|
|
40
|
+
normalizeError(error: unknown): NormalizedProviderError;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=adapter-core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-core.d.ts","sourceRoot":"","sources":["../src/adapter-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE7E,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,iCAAiC,EACvC,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CACN,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7B,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACzF;AAED,MAAM,WAAW,sBAAsB,CAAC,MAAM,SAAS,qBAAqB,GAAG,qBAAqB;IAClG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,MAAM,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,iCAAiC,CAAC;IACjD,YAAY,CAAC,EAAE,CACb,MAAM,CAAC,EAAE,SAAS,KACf;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC;AAED,qBAAa,iCAAkC,SAAQ,KAAK;IAIxD,QAAQ,CAAC,UAAU,EAAE,UAAU;IAC/B,QAAQ,CAAC,SAAS,EAAE,UAAU,GAAG,QAAQ;IAJ3C,QAAQ,CAAC,IAAI,4BAA4B;gBAG9B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,GAAG,QAAQ;CAK5C;AAED,8BAAsB,mBAAmB,CAAC,MAAM,SAAS,qBAAqB,GAAG,qBAAqB,CACpG,YAAW,eAAe;IAE1B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IAEzD,SAAS,aACP,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,sBAAsB,CAAC,MAAM,CAAM;IAQ9C,UAAU,IAAI,SAAS,YAAY,EAAE;IAI/B,QAAQ,CACZ,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAOtB,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC;IAO7F,YAAY,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAInE,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB;CAMxD"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { getProviderProfile, listModelProfilesByProvider, } from './catalog.js';
|
|
2
|
+
import { validateAdapterAuthSource } from './adapter-auth.js';
|
|
3
|
+
import { normalizeProviderError, } from './errors.js';
|
|
4
|
+
export class ProviderAdapterNotConfiguredError extends Error {
|
|
5
|
+
providerId;
|
|
6
|
+
operation;
|
|
7
|
+
code = 'adapter_not_configured';
|
|
8
|
+
constructor(providerId, operation) {
|
|
9
|
+
super(`${providerId} adapter ${operation} client is not configured`);
|
|
10
|
+
this.providerId = providerId;
|
|
11
|
+
this.operation = operation;
|
|
12
|
+
this.name = 'ProviderAdapterNotConfiguredError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class BaseProviderAdapter {
|
|
16
|
+
provider;
|
|
17
|
+
client;
|
|
18
|
+
models;
|
|
19
|
+
options;
|
|
20
|
+
constructor(providerId, options = {}) {
|
|
21
|
+
this.provider = options.provider ?? getProviderProfile(providerId);
|
|
22
|
+
this.models = options.models ?? listModelProfilesByProvider(providerId);
|
|
23
|
+
this.client = options.client;
|
|
24
|
+
this.options = options;
|
|
25
|
+
}
|
|
26
|
+
listModels() {
|
|
27
|
+
return this.models;
|
|
28
|
+
}
|
|
29
|
+
async generate(request, context) {
|
|
30
|
+
if (!this.client) {
|
|
31
|
+
throw new ProviderAdapterNotConfiguredError(this.provider.providerId, 'generate');
|
|
32
|
+
}
|
|
33
|
+
return await this.client.generate(request, context);
|
|
34
|
+
}
|
|
35
|
+
async stream(request, context) {
|
|
36
|
+
if (!this.client) {
|
|
37
|
+
throw new ProviderAdapterNotConfiguredError(this.provider.providerId, 'stream');
|
|
38
|
+
}
|
|
39
|
+
return await this.client.stream(request, context);
|
|
40
|
+
}
|
|
41
|
+
validateAuth(source) {
|
|
42
|
+
return this.options.validateAuth?.(source) ?? validateAdapterAuthSource(source);
|
|
43
|
+
}
|
|
44
|
+
normalizeError(error) {
|
|
45
|
+
return normalizeProviderError(this.provider.providerId, error, {
|
|
46
|
+
defaultMessage: `${this.provider.label} request failed`,
|
|
47
|
+
...this.options.errorOptions,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=adapter-core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-core.js","sourceRoot":"","sources":["../src/adapter-core.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,2BAA2B,GAG5B,MAAM,cAAc,CAAC;AAStB,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EACL,sBAAsB,GAGvB,MAAM,aAAa,CAAC;AAoBrB,MAAM,OAAO,iCAAkC,SAAQ,KAAK;IAI/C;IACA;IAJF,IAAI,GAAG,wBAAwB,CAAC;IAEzC,YACW,UAAsB,EACtB,SAAgC;QAEzC,KAAK,CAAC,GAAG,UAAU,YAAY,SAAS,2BAA2B,CAAC,CAAC;QAH5D,eAAU,GAAV,UAAU,CAAY;QACtB,cAAS,GAAT,SAAS,CAAuB;QAGzC,IAAI,CAAC,IAAI,GAAG,mCAAmC,CAAC;IAClD,CAAC;CACF;AAED,MAAM,OAAgB,mBAAmB;IAG9B,QAAQ,CAAqB;IACrB,MAAM,CAAU;IAChB,MAAM,CAA0B;IAChC,OAAO,CAAiC;IAEzD,YACE,UAAsB,EACtB,UAA0C,EAAE;QAE5C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,2BAA2B,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,OAAwB,EACxB,OAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,iCAAiC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAsB,EAAE,OAAgC;QACnE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,iCAAiC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,YAAY,CAAC,MAAkB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClF,CAAC;IAED,cAAc,CAAC,KAAc;QAC3B,OAAO,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE;YAC7D,cAAc,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,iBAAiB;YACvD,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY;SAC7B,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ProviderAdapter } from './registry.js';
|
|
2
|
+
import { BaseProviderAdapter, type ProviderAdapterClient, type ProviderAdapterOptions } from './adapter-core.js';
|
|
3
|
+
export * from './adapter-core.js';
|
|
4
|
+
export * from './adapter-auth.js';
|
|
5
|
+
export interface OpenAIAdapterClient extends ProviderAdapterClient {
|
|
6
|
+
}
|
|
7
|
+
export interface GeminiAdapterClient extends ProviderAdapterClient {
|
|
8
|
+
}
|
|
9
|
+
export interface AnthropicAdapterClient extends ProviderAdapterClient {
|
|
10
|
+
}
|
|
11
|
+
export type ClaudeAdapterClient = AnthropicAdapterClient;
|
|
12
|
+
export interface MistralAdapterClient extends ProviderAdapterClient {
|
|
13
|
+
}
|
|
14
|
+
export interface CohereAdapterClient extends ProviderAdapterClient {
|
|
15
|
+
}
|
|
16
|
+
export declare class OpenAIAdapter extends BaseProviderAdapter<OpenAIAdapterClient> {
|
|
17
|
+
constructor(options?: ProviderAdapterOptions<OpenAIAdapterClient>);
|
|
18
|
+
}
|
|
19
|
+
export declare class GeminiAdapter extends BaseProviderAdapter<GeminiAdapterClient> {
|
|
20
|
+
constructor(options?: ProviderAdapterOptions<GeminiAdapterClient>);
|
|
21
|
+
}
|
|
22
|
+
export declare class AnthropicAdapter extends BaseProviderAdapter<AnthropicAdapterClient> {
|
|
23
|
+
constructor(options?: ProviderAdapterOptions<AnthropicAdapterClient>);
|
|
24
|
+
}
|
|
25
|
+
export declare const ClaudeAdapter: typeof AnthropicAdapter;
|
|
26
|
+
export declare class MistralAdapter extends BaseProviderAdapter<MistralAdapterClient> {
|
|
27
|
+
constructor(options?: ProviderAdapterOptions<MistralAdapterClient>);
|
|
28
|
+
}
|
|
29
|
+
export declare class CohereAdapter extends BaseProviderAdapter<CohereAdapterClient> {
|
|
30
|
+
constructor(options?: ProviderAdapterOptions<CohereAdapterClient>);
|
|
31
|
+
}
|
|
32
|
+
export interface DefaultProviderAdapterClients {
|
|
33
|
+
openai?: OpenAIAdapterClient;
|
|
34
|
+
gemini?: GeminiAdapterClient;
|
|
35
|
+
anthropic?: AnthropicAdapterClient;
|
|
36
|
+
mistral?: MistralAdapterClient;
|
|
37
|
+
cohere?: CohereAdapterClient;
|
|
38
|
+
}
|
|
39
|
+
export declare const createDefaultProviderAdapters: (clients?: DefaultProviderAdapterClients) => readonly ProviderAdapter[];
|
|
40
|
+
//# sourceMappingURL=adapters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AAE3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAElC,MAAM,WAAW,mBAAoB,SAAQ,qBAAqB;CAAG;AACrE,MAAM,WAAW,mBAAoB,SAAQ,qBAAqB;CAAG;AACrE,MAAM,WAAW,sBAAuB,SAAQ,qBAAqB;CAAG;AACxE,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AACzD,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;CAAG;AACtE,MAAM,WAAW,mBAAoB,SAAQ,qBAAqB;CAAG;AAErE,qBAAa,aAAc,SAAQ,mBAAmB,CAAC,mBAAmB,CAAC;gBAC7D,OAAO,GAAE,sBAAsB,CAAC,mBAAmB,CAAM;CAGtE;AAED,qBAAa,aAAc,SAAQ,mBAAmB,CAAC,mBAAmB,CAAC;gBAC7D,OAAO,GAAE,sBAAsB,CAAC,mBAAmB,CAAM;CAGtE;AAED,qBAAa,gBAAiB,SAAQ,mBAAmB,CAAC,sBAAsB,CAAC;gBACnE,OAAO,GAAE,sBAAsB,CAAC,sBAAsB,CAAM;CAGzE;AAED,eAAO,MAAM,aAAa,yBAAmB,CAAC;AAE9C,qBAAa,cAAe,SAAQ,mBAAmB,CAAC,oBAAoB,CAAC;gBAC/D,OAAO,GAAE,sBAAsB,CAAC,oBAAoB,CAAM;CAGvE;AAED,qBAAa,aAAc,SAAQ,mBAAmB,CAAC,mBAAmB,CAAC;gBAC7D,OAAO,GAAE,sBAAsB,CAAC,mBAAmB,CAAM;CAGtE;AAED,MAAM,WAAW,6BAA6B;IAC5C,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,eAAO,MAAM,6BAA6B,aAC/B,6BAA6B,KACrC,SAAS,eAAe,EAQ1B,CAAC"}
|
package/dist/adapters.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BaseProviderAdapter, } from './adapter-core.js';
|
|
2
|
+
export * from './adapter-core.js';
|
|
3
|
+
export * from './adapter-auth.js';
|
|
4
|
+
export class OpenAIAdapter extends BaseProviderAdapter {
|
|
5
|
+
constructor(options = {}) {
|
|
6
|
+
super('openai', options);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class GeminiAdapter extends BaseProviderAdapter {
|
|
10
|
+
constructor(options = {}) {
|
|
11
|
+
super('gemini', options);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export class AnthropicAdapter extends BaseProviderAdapter {
|
|
15
|
+
constructor(options = {}) {
|
|
16
|
+
super('anthropic', options);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export const ClaudeAdapter = AnthropicAdapter;
|
|
20
|
+
export class MistralAdapter extends BaseProviderAdapter {
|
|
21
|
+
constructor(options = {}) {
|
|
22
|
+
super('mistral', options);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export class CohereAdapter extends BaseProviderAdapter {
|
|
26
|
+
constructor(options = {}) {
|
|
27
|
+
super('cohere', options);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export const createDefaultProviderAdapters = (clients = {}) => {
|
|
31
|
+
return [
|
|
32
|
+
new OpenAIAdapter({ client: clients.openai }),
|
|
33
|
+
new GeminiAdapter({ client: clients.gemini }),
|
|
34
|
+
new AnthropicAdapter({ client: clients.anthropic }),
|
|
35
|
+
new MistralAdapter({ client: clients.mistral }),
|
|
36
|
+
new CohereAdapter({ client: clients.cohere }),
|
|
37
|
+
];
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=adapters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,GAGpB,MAAM,mBAAmB,CAAC;AAE3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AASlC,MAAM,OAAO,aAAc,SAAQ,mBAAwC;IACzE,YAAY,UAAuD,EAAE;QACnE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,mBAAwC;IACzE,YAAY,UAAuD,EAAE;QACnE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,mBAA2C;IAC/E,YAAY,UAA0D,EAAE;QACtE,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAE9C,MAAM,OAAO,cAAe,SAAQ,mBAAyC;IAC3E,YAAY,UAAwD,EAAE;QACpE,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,mBAAwC;IACzE,YAAY,UAAuD,EAAE;QACnE,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF;AAUD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,UAAyC,EAAE,EACf,EAAE;IAC9B,OAAO;QACL,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAC7C,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAC7C,IAAI,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QACnD,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;KAC9C,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/auth.d.ts
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { ModelId, ProviderId } from './providers.js';
|
|
2
|
+
export declare const tokenAuthSourceTypes: readonly ["direct-token", "user-token", "workspace-token", "environment-token"];
|
|
3
|
+
export type TokenAuthSourceType = (typeof tokenAuthSourceTypes)[number];
|
|
4
|
+
export declare const accountTransportProviderIds: readonly ["codex", "gemini-code-assist", "claude-code"];
|
|
5
|
+
export type AccountTransportProviderId = (typeof accountTransportProviderIds)[number];
|
|
6
|
+
export type AuthSourceType = TokenAuthSourceType | 'codex-account' | 'account-transport' | 'none';
|
|
7
|
+
export interface AuthDescriptor {
|
|
8
|
+
sourceType: AuthSourceType;
|
|
9
|
+
label?: string;
|
|
10
|
+
accountProviderId?: AccountTransportProviderId | (string & {});
|
|
11
|
+
accountId?: string | null;
|
|
12
|
+
accountLabel?: string | null;
|
|
13
|
+
expiresAt?: string | null;
|
|
14
|
+
hasRefreshToken?: boolean;
|
|
15
|
+
redactedFingerprint?: string;
|
|
16
|
+
metadata?: Record<string, unknown>;
|
|
17
|
+
}
|
|
18
|
+
interface AuthMaterialBase {
|
|
19
|
+
descriptor?: Partial<AuthDescriptor>;
|
|
20
|
+
}
|
|
21
|
+
export interface DirectTokenAuthMaterial extends AuthMaterialBase {
|
|
22
|
+
type: 'direct-token';
|
|
23
|
+
token: string;
|
|
24
|
+
label?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface UserTokenAuthMaterial extends AuthMaterialBase {
|
|
27
|
+
type: 'user-token';
|
|
28
|
+
userId: string;
|
|
29
|
+
token?: string;
|
|
30
|
+
tokenRef?: string;
|
|
31
|
+
label?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface WorkspaceTokenAuthMaterial extends AuthMaterialBase {
|
|
34
|
+
type: 'workspace-token';
|
|
35
|
+
workspaceId: string;
|
|
36
|
+
token?: string;
|
|
37
|
+
tokenRef?: string;
|
|
38
|
+
label?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface EnvironmentTokenAuthMaterial extends AuthMaterialBase {
|
|
41
|
+
type: 'environment-token';
|
|
42
|
+
envVar: string;
|
|
43
|
+
token?: string;
|
|
44
|
+
label?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface CodexAccountAuthMaterial extends AuthMaterialBase {
|
|
47
|
+
type: 'codex-account';
|
|
48
|
+
provider: 'codex';
|
|
49
|
+
accessToken: string;
|
|
50
|
+
refreshToken?: string;
|
|
51
|
+
idToken?: string;
|
|
52
|
+
accountId?: string | null;
|
|
53
|
+
accountLabel?: string | null;
|
|
54
|
+
expiresAt?: string | null;
|
|
55
|
+
}
|
|
56
|
+
export interface FutureAccountTransportAuthMaterial extends AuthMaterialBase {
|
|
57
|
+
type: 'account-transport';
|
|
58
|
+
provider: Exclude<AccountTransportProviderId, 'codex'> | (string & {});
|
|
59
|
+
status: 'planned';
|
|
60
|
+
accessToken?: string;
|
|
61
|
+
refreshToken?: string;
|
|
62
|
+
accountId?: string | null;
|
|
63
|
+
accountLabel?: string | null;
|
|
64
|
+
headers?: Record<string, string>;
|
|
65
|
+
metadata?: Record<string, unknown>;
|
|
66
|
+
}
|
|
67
|
+
export interface NoAuthMaterial extends AuthMaterialBase {
|
|
68
|
+
type: 'none';
|
|
69
|
+
}
|
|
70
|
+
export type SecretAuthMaterial = DirectTokenAuthMaterial | UserTokenAuthMaterial | WorkspaceTokenAuthMaterial | EnvironmentTokenAuthMaterial | CodexAccountAuthMaterial | FutureAccountTransportAuthMaterial | NoAuthMaterial;
|
|
71
|
+
export type AuthSource = SecretAuthMaterial;
|
|
72
|
+
export interface AuthResolutionRequest {
|
|
73
|
+
providerId: ProviderId;
|
|
74
|
+
modelId?: ModelId;
|
|
75
|
+
userId?: string | null;
|
|
76
|
+
workspaceId?: string | null;
|
|
77
|
+
preferredSources?: readonly AuthSourceType[];
|
|
78
|
+
requestToken?: string | null;
|
|
79
|
+
metadata?: Record<string, unknown>;
|
|
80
|
+
}
|
|
81
|
+
export interface AuthResolution {
|
|
82
|
+
material: SecretAuthMaterial;
|
|
83
|
+
descriptor: AuthDescriptor;
|
|
84
|
+
}
|
|
85
|
+
export type AuthResolver = (request: AuthResolutionRequest) => AuthResolution | Promise<AuthResolution>;
|
|
86
|
+
export type AuthInput = SecretAuthMaterial | AuthResolution;
|
|
87
|
+
export declare const futureAccountTransportProviderIds: readonly ["gemini-code-assist", "claude-code"];
|
|
88
|
+
export declare const getSecretAuthMaterial: (input?: AuthInput) => SecretAuthMaterial | undefined;
|
|
89
|
+
export declare const describeAuthMaterial: (material: SecretAuthMaterial) => AuthDescriptor;
|
|
90
|
+
export declare const getAuthDescriptor: (input?: AuthInput) => AuthDescriptor | undefined;
|
|
91
|
+
export {};
|
|
92
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/auth.js
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export const tokenAuthSourceTypes = [
|
|
2
|
+
'direct-token',
|
|
3
|
+
'user-token',
|
|
4
|
+
'workspace-token',
|
|
5
|
+
'environment-token',
|
|
6
|
+
];
|
|
7
|
+
export const accountTransportProviderIds = [
|
|
8
|
+
'codex',
|
|
9
|
+
'gemini-code-assist',
|
|
10
|
+
'claude-code',
|
|
11
|
+
];
|
|
12
|
+
export const futureAccountTransportProviderIds = [
|
|
13
|
+
'gemini-code-assist',
|
|
14
|
+
'claude-code',
|
|
15
|
+
];
|
|
16
|
+
export const getSecretAuthMaterial = (input) => {
|
|
17
|
+
return input && 'material' in input ? input.material : input;
|
|
18
|
+
};
|
|
19
|
+
export const describeAuthMaterial = (material) => {
|
|
20
|
+
const baseDescriptor = material.descriptor ?? {};
|
|
21
|
+
switch (material.type) {
|
|
22
|
+
case 'direct-token':
|
|
23
|
+
return {
|
|
24
|
+
sourceType: material.type,
|
|
25
|
+
...(material.label ? { label: material.label } : {}),
|
|
26
|
+
...baseDescriptor,
|
|
27
|
+
};
|
|
28
|
+
case 'user-token':
|
|
29
|
+
return {
|
|
30
|
+
sourceType: material.type,
|
|
31
|
+
...(material.label ? { label: material.label } : {}),
|
|
32
|
+
...baseDescriptor,
|
|
33
|
+
};
|
|
34
|
+
case 'workspace-token':
|
|
35
|
+
return {
|
|
36
|
+
sourceType: material.type,
|
|
37
|
+
...(material.label ? { label: material.label } : {}),
|
|
38
|
+
...baseDescriptor,
|
|
39
|
+
};
|
|
40
|
+
case 'environment-token':
|
|
41
|
+
return {
|
|
42
|
+
sourceType: material.type,
|
|
43
|
+
...(material.label ? { label: material.label } : {}),
|
|
44
|
+
...baseDescriptor,
|
|
45
|
+
};
|
|
46
|
+
case 'codex-account':
|
|
47
|
+
return {
|
|
48
|
+
sourceType: material.type,
|
|
49
|
+
accountProviderId: material.provider,
|
|
50
|
+
...(material.accountId ? { accountId: material.accountId } : {}),
|
|
51
|
+
...(material.accountLabel ? { accountLabel: material.accountLabel } : {}),
|
|
52
|
+
...(material.expiresAt ? { expiresAt: material.expiresAt } : {}),
|
|
53
|
+
...(material.refreshToken ? { hasRefreshToken: true } : {}),
|
|
54
|
+
...baseDescriptor,
|
|
55
|
+
};
|
|
56
|
+
case 'account-transport':
|
|
57
|
+
return {
|
|
58
|
+
sourceType: material.type,
|
|
59
|
+
accountProviderId: material.provider,
|
|
60
|
+
...(material.accountId ? { accountId: material.accountId } : {}),
|
|
61
|
+
...(material.accountLabel ? { accountLabel: material.accountLabel } : {}),
|
|
62
|
+
...(material.refreshToken ? { hasRefreshToken: true } : {}),
|
|
63
|
+
...baseDescriptor,
|
|
64
|
+
};
|
|
65
|
+
case 'none':
|
|
66
|
+
return {
|
|
67
|
+
sourceType: material.type,
|
|
68
|
+
...baseDescriptor,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
export const getAuthDescriptor = (input) => {
|
|
73
|
+
if (!input) {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
return 'material' in input
|
|
77
|
+
? input.descriptor
|
|
78
|
+
: describeAuthMaterial(input);
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { AccountTransportProviderId, TokenAuthSourceType } from './auth.js';
|
|
2
|
+
import type { ReasoningTier } from './providers.js';
|
|
3
|
+
export type CapabilitySupport = 'supported' | 'unsupported' | 'partial' | 'unknown';
|
|
4
|
+
export type ToolChoiceMode = 'auto' | 'required' | 'none';
|
|
5
|
+
export type StructuredOutputStrategy = 'json-object' | 'json-schema' | 'tool-call';
|
|
6
|
+
export type JsonSchemaSupportLevel = 'none' | 'json-schema' | 'json-schema-subset' | 'tool-input-schema';
|
|
7
|
+
export interface ToolUseCapabilities {
|
|
8
|
+
support: CapabilitySupport;
|
|
9
|
+
parallelCalls: CapabilitySupport;
|
|
10
|
+
streamedArgumentDeltas: CapabilitySupport;
|
|
11
|
+
resultContinuation: CapabilitySupport;
|
|
12
|
+
toolChoice: readonly ToolChoiceMode[];
|
|
13
|
+
}
|
|
14
|
+
export interface StreamingCapabilities {
|
|
15
|
+
support: CapabilitySupport;
|
|
16
|
+
nativeProviderChunks: CapabilitySupport;
|
|
17
|
+
}
|
|
18
|
+
export interface JsonSchemaCapabilities {
|
|
19
|
+
support: CapabilitySupport;
|
|
20
|
+
level: JsonSchemaSupportLevel;
|
|
21
|
+
strict: boolean;
|
|
22
|
+
unsupportedKeywords?: readonly string[];
|
|
23
|
+
stringEnumsOnly?: boolean;
|
|
24
|
+
maxDepth?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface StructuredOutputCapabilities {
|
|
27
|
+
support: CapabilitySupport;
|
|
28
|
+
strategies: readonly StructuredOutputStrategy[];
|
|
29
|
+
jsonSchema: JsonSchemaCapabilities;
|
|
30
|
+
}
|
|
31
|
+
export interface ReasoningCapabilities {
|
|
32
|
+
support: CapabilitySupport;
|
|
33
|
+
tier: ReasoningTier;
|
|
34
|
+
controls: CapabilitySupport;
|
|
35
|
+
visibleSummaries: CapabilitySupport;
|
|
36
|
+
hiddenSignatures: CapabilitySupport;
|
|
37
|
+
tokenUsageAccounting: CapabilitySupport;
|
|
38
|
+
}
|
|
39
|
+
export interface ModalityCapabilities {
|
|
40
|
+
input: readonly ('text' | 'image' | 'audio' | 'file')[];
|
|
41
|
+
output: readonly ('text' | 'json' | 'tool-call')[];
|
|
42
|
+
}
|
|
43
|
+
export interface AuthCapabilities {
|
|
44
|
+
tokenSources: readonly TokenAuthSourceType[];
|
|
45
|
+
accountTransports: readonly AccountTransportProviderId[];
|
|
46
|
+
}
|
|
47
|
+
export interface ProviderCapabilities {
|
|
48
|
+
tools: ToolUseCapabilities;
|
|
49
|
+
streaming: StreamingCapabilities;
|
|
50
|
+
structuredOutput: StructuredOutputCapabilities;
|
|
51
|
+
reasoning: ReasoningCapabilities;
|
|
52
|
+
modalities: ModalityCapabilities;
|
|
53
|
+
auth: AuthCapabilities;
|
|
54
|
+
}
|
|
55
|
+
export interface ModelCapabilities extends ProviderCapabilities {
|
|
56
|
+
contextWindowTokens?: number;
|
|
57
|
+
maxOutputTokens?: number;
|
|
58
|
+
}
|
|
59
|
+
export declare const geminiUnsupportedJsonSchemaKeywords: readonly ["additionalProperties", "unevaluatedProperties", "patternProperties", "propertyNames", "contains", "dependencies", "dependentRequired", "dependentSchemas", "$schema", "$id", "$anchor", "$comment"];
|
|
60
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpF,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAE1D,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG,aAAa,GAAG,WAAW,CAAC;AAEnF,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,aAAa,GACb,oBAAoB,GACpB,mBAAmB,CAAC;AAExB,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;IACjC,sBAAsB,EAAE,iBAAiB,CAAC;IAC1C,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,oBAAoB,EAAE,iBAAiB,CAAC;CACzC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,sBAAsB,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAChD,UAAU,EAAE,sBAAsB,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,oBAAoB,EAAE,iBAAiB,CAAC;CACzC;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC;IACxD,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC7C,iBAAiB,EAAE,SAAS,0BAA0B,EAAE,CAAC;CAC1D;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,SAAS,EAAE,qBAAqB,CAAC;IACjC,gBAAgB,EAAE,4BAA4B,CAAC;IAC/C,SAAS,EAAE,qBAAqB,CAAC;IACjC,UAAU,EAAE,oBAAoB,CAAC;IACjC,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,mCAAmC,gNAatC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const geminiUnsupportedJsonSchemaKeywords = [
|
|
2
|
+
'additionalProperties',
|
|
3
|
+
'unevaluatedProperties',
|
|
4
|
+
'patternProperties',
|
|
5
|
+
'propertyNames',
|
|
6
|
+
'contains',
|
|
7
|
+
'dependencies',
|
|
8
|
+
'dependentRequired',
|
|
9
|
+
'dependentSchemas',
|
|
10
|
+
'$schema',
|
|
11
|
+
'$id',
|
|
12
|
+
'$anchor',
|
|
13
|
+
'$comment',
|
|
14
|
+
];
|
|
15
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AA+EA,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,sBAAsB;IACtB,uBAAuB;IACvB,mBAAmB;IACnB,eAAe;IACf,UAAU;IACV,cAAc;IACd,mBAAmB;IACnB,kBAAkB;IAClB,SAAS;IACT,KAAK;IACL,SAAS;IACT,UAAU;CACF,CAAC"}
|