@hilbras/omnihilbras 0.8.0 → 0.9.1

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.
@@ -35,7 +35,7 @@ export const CLINE_OAUTH = {
35
35
  };
36
36
  const defaultRefreshSkewMs = 60_000;
37
37
  /** Reported to Cline as this client's version. */
38
- const omnihilbrasVersion = '0.8.0';
38
+ const omnihilbrasVersion = '0.9.1';
39
39
  /** Cline only accepts WorkOS JWTs with an explicit prefix. */
40
40
  export function toClineAccessToken(token) {
41
41
  const trimmed = token.trim();
@@ -0,0 +1,102 @@
1
+ import type { HttpTransport } from '../transport.js';
2
+ import type { ChatChunk, ChatRequest, ChatResponse, CredentialValidation, Model, ProviderAdapter, ProviderCredential, ProviderRequestContext } from '../types.js';
3
+ /**
4
+ * OpenCode Console is the credential that reaches OpenCode's free Zen models. An API
5
+ * key is refused by every lane with `OpenCode's free tier can only be used from within
6
+ * OpenCode`, so this provider signs in through the same device flow the OpenCode client
7
+ * runs for itself.
8
+ *
9
+ * A signed-in session also changes the endpoints. `GET /api/config` returns the live
10
+ * provider config, and its base URL is not the public `/zen/v1` one: the catalog is
11
+ * served from `/inference/openai/v1`, `/inference/anthropic/v1` and
12
+ * `/inference/google/v1beta`, with a different subset of models on each. Which lane a
13
+ * model uses is therefore a property of the model, read from the server rather than
14
+ * hardcoded here.
15
+ */
16
+ export declare const OPENCODE_CONSOLE: {
17
+ readonly server: "https://console.opencode.ai";
18
+ /**
19
+ * The Console serves its API from `server` but its web pages from `opencode.ai`.
20
+ * `verification_uri` comes back relative, and joining it to the API host produces
21
+ * `/console/console/device`, which renders a blank page.
22
+ */
23
+ readonly webOrigin: "https://opencode.ai";
24
+ readonly clientId: "opencode-cli";
25
+ readonly deviceCodePath: "/auth/device/code";
26
+ readonly deviceTokenPath: "/auth/device/token";
27
+ readonly userPath: "/api/user";
28
+ readonly orgsPath: "/api/orgs";
29
+ readonly configPath: "/api/config";
30
+ readonly grantType: "urn:ietf:params:oauth:grant-type:device_code";
31
+ };
32
+ export declare const opencodeConsoleProviderId = "opencode-console";
33
+ /**
34
+ * Exchanges a refresh token for a new access token.
35
+ *
36
+ * The Console refresh grant takes the same path as the device grant, distinguished only
37
+ * by `grant_type`, and answers 200 with the token pair.
38
+ */
39
+ export declare function refreshOpencodeConsoleCredential(credential: ProviderCredential, transport?: HttpTransport): Promise<ProviderCredential>;
40
+ /** True when the access token is at or past expiry, with a minute of slack. */
41
+ export declare function opencodeConsoleCredentialExpired(credential: ProviderCredential | undefined, now?: number): boolean;
42
+ export type OpencodeConsoleAdapterOptions = {
43
+ transport?: HttpTransport;
44
+ /** Called with a renewed credential so the caller can persist it. */
45
+ onTokensRefreshed?: (credential: ProviderCredential) => void | Promise<void>;
46
+ now?: () => number;
47
+ };
48
+ export declare class OpencodeConsoleAdapter implements ProviderAdapter {
49
+ readonly id = "opencode-console";
50
+ readonly name = "OpenCode Console";
51
+ readonly capabilities: {
52
+ readonly chat: true;
53
+ readonly streaming: true;
54
+ readonly models: true;
55
+ };
56
+ private readonly transport;
57
+ private readonly onTokensRefreshed?;
58
+ private readonly now;
59
+ /** Lanes keyed by the access token they were read with, so a renewal invalidates them. */
60
+ private lanes;
61
+ /** Renewed credentials, keyed by the token they replaced. */
62
+ private renewed;
63
+ constructor(options?: OpencodeConsoleAdapterOptions);
64
+ listModels(context?: ProviderRequestContext): Promise<Model[]>;
65
+ /**
66
+ * Reads `/api/user`, which is free and never bills, so a health check costs nothing
67
+ * and still proves the session is live.
68
+ */
69
+ validateCredential(credential: ProviderCredential | undefined): Promise<CredentialValidation>;
70
+ chat(request: ChatRequest, context?: ProviderRequestContext): Promise<ChatResponse>;
71
+ streamChat(request: ChatRequest, context?: ProviderRequestContext): AsyncIterable<ChatChunk>;
72
+ /**
73
+ * The lane adapters accept a bare token and reject anything else, so an OAuth access
74
+ * token is handed across in the shape they take. Their credential contract is left
75
+ * alone rather than widened for one caller.
76
+ */
77
+ private laneCredential;
78
+ private laneUnsupported;
79
+ healthCheck(context?: ProviderRequestContext): Promise<{
80
+ status: 'healthy' | 'degraded' | 'unavailable';
81
+ checkedAt: string;
82
+ message?: string;
83
+ }>;
84
+ /**
85
+ * Renews the session when it is at or past expiry, then persists the result. A
86
+ * failure here is a sign-in problem, not a provider problem, so it is raised as one.
87
+ *
88
+ * A request resolves the credential more than once — once to read the lanes and once
89
+ * to send — so a renewal is memoised against the token it replaced. Without that, one
90
+ * request would burn two refresh grants and the second would invalidate the first.
91
+ */
92
+ private credential;
93
+ private headers;
94
+ private resolveLanes;
95
+ private laneFor;
96
+ /**
97
+ * Builds the adapter for a lane. The org header rides on the config rather than the
98
+ * request, because that is the only place either adapter accepts extra headers.
99
+ */
100
+ private laneAdapter;
101
+ }
102
+ //# sourceMappingURL=opencode-console.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-console.d.ts","sourceRoot":"","sources":["../../src/adapters/opencode-console.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAElK;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB;;IAE3B;;;;OAIG;;;;;;;;;CASK,CAAC;AAEX,eAAO,MAAM,yBAAyB,qBAAqB,CAAC;AA4C5D;;;;;GAKG;AACH,wBAAsB,gCAAgC,CACpD,UAAU,EAAE,kBAAkB,EAC9B,SAAS,GAAE,aAAwC,GAClD,OAAO,CAAC,kBAAkB,CAAC,CAqC7B;AAED,+EAA+E;AAC/E,wBAAgB,gCAAgC,CAAC,UAAU,EAAE,kBAAkB,GAAG,SAAS,EAAE,GAAG,SAAa,GAAG,OAAO,CAItH;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,sBAAuB,YAAW,eAAe;IAC5D,QAAQ,CAAC,EAAE,sBAA6B;IACxC,QAAQ,CAAC,IAAI,sBAAsB;IACnC,QAAQ,CAAC,YAAY;;;;MAA0D;IAE/E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAA2D;IAC9F,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,0FAA0F;IAC1F,OAAO,CAAC,KAAK,CAA0D;IACvE,6DAA6D;IAC7D,OAAO,CAAC,OAAO,CAAyC;gBAE5C,OAAO,GAAE,6BAAkC;IAMjD,UAAU,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAQxE;;;OAGG;IACG,kBAAkB,CAAC,UAAU,EAAE,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgB7F,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,YAAY,CAAC;IAOtF,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,sBAA2B,GAAG,aAAa,CAAC,SAAS,CAAC;IAOvG;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,eAAe;IAOjB,WAAW,CAAC,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAazJ;;;;;;;OAOG;YACW,UAAU;IAYxB,OAAO,CAAC,OAAO;YAUD,YAAY;YAyBZ,OAAO;IAmBrB;;;OAGG;IACH,OAAO,CAAC,WAAW;CAqBpB"}
@@ -0,0 +1,286 @@
1
+ import { ProviderError } from '../errors.js';
2
+ import { FetchHttpTransport } from '../transport.js';
3
+ import { AnthropicAdapter } from './anthropic.js';
4
+ import { OpenAICompatibleAdapter } from './openai-compatible.js';
5
+ /**
6
+ * OpenCode Console is the credential that reaches OpenCode's free Zen models. An API
7
+ * key is refused by every lane with `OpenCode's free tier can only be used from within
8
+ * OpenCode`, so this provider signs in through the same device flow the OpenCode client
9
+ * runs for itself.
10
+ *
11
+ * A signed-in session also changes the endpoints. `GET /api/config` returns the live
12
+ * provider config, and its base URL is not the public `/zen/v1` one: the catalog is
13
+ * served from `/inference/openai/v1`, `/inference/anthropic/v1` and
14
+ * `/inference/google/v1beta`, with a different subset of models on each. Which lane a
15
+ * model uses is therefore a property of the model, read from the server rather than
16
+ * hardcoded here.
17
+ */
18
+ export const OPENCODE_CONSOLE = {
19
+ server: 'https://console.opencode.ai',
20
+ /**
21
+ * The Console serves its API from `server` but its web pages from `opencode.ai`.
22
+ * `verification_uri` comes back relative, and joining it to the API host produces
23
+ * `/console/console/device`, which renders a blank page.
24
+ */
25
+ webOrigin: 'https://opencode.ai',
26
+ clientId: 'opencode-cli',
27
+ deviceCodePath: '/auth/device/code',
28
+ deviceTokenPath: '/auth/device/token',
29
+ userPath: '/api/user',
30
+ orgsPath: '/api/orgs',
31
+ configPath: '/api/config',
32
+ grantType: 'urn:ietf:params:oauth:grant-type:device_code',
33
+ };
34
+ export const opencodeConsoleProviderId = 'opencode-console';
35
+ const configTtlMs = 10 * 60_000;
36
+ /** True when the lane speaks the Anthropic Messages shape. */
37
+ function isAnthropicLane(lane) {
38
+ return lane.includes('/inference/anthropic/');
39
+ }
40
+ /** True when the lane speaks the Google GenAI shape. */
41
+ function isGoogleLane(lane) {
42
+ return lane.includes('/inference/google/');
43
+ }
44
+ function orgHeaderValue(credential) {
45
+ return credential?.type === 'oauth' ? credential.orgId : undefined;
46
+ }
47
+ function bearer(credential) {
48
+ if (!credential || credential.type === 'none')
49
+ return '';
50
+ return credential.value ?? '';
51
+ }
52
+ /**
53
+ * Exchanges a refresh token for a new access token.
54
+ *
55
+ * The Console refresh grant takes the same path as the device grant, distinguished only
56
+ * by `grant_type`, and answers 200 with the token pair.
57
+ */
58
+ export async function refreshOpencodeConsoleCredential(credential, transport = new FetchHttpTransport()) {
59
+ if (credential.type !== 'oauth' || !credential.refreshToken) {
60
+ throw new ProviderError('AUTHENTICATION_FAILED', 'This OpenCode Console session cannot be renewed. Sign in again.', {
61
+ providerId: opencodeConsoleProviderId,
62
+ publicMessage: 'This OpenCode Console session cannot be renewed. Sign in again.',
63
+ });
64
+ }
65
+ const response = await transport.request({
66
+ method: 'POST',
67
+ providerId: opencodeConsoleProviderId,
68
+ url: `${OPENCODE_CONSOLE.server}${OPENCODE_CONSOLE.deviceTokenPath}`,
69
+ headers: { 'content-type': 'application/json', accept: 'application/json' },
70
+ body: JSON.stringify({
71
+ grant_type: 'refresh_token',
72
+ refresh_token: credential.refreshToken,
73
+ client_id: OPENCODE_CONSOLE.clientId,
74
+ }),
75
+ });
76
+ const access = response.data?.access_token;
77
+ if (typeof access !== 'string' || !access) {
78
+ throw new ProviderError('AUTHENTICATION_FAILED', 'OpenCode Console did not return a renewed session. Sign in again.', {
79
+ providerId: opencodeConsoleProviderId,
80
+ publicMessage: 'OpenCode Console did not return a renewed session. Sign in again.',
81
+ });
82
+ }
83
+ const expiresIn = typeof response.data?.expires_in === 'number' ? response.data.expires_in : undefined;
84
+ const rotated = typeof response.data?.refresh_token === 'string' ? response.data.refresh_token : undefined;
85
+ return {
86
+ type: 'oauth',
87
+ value: access,
88
+ ...(rotated ? { refreshToken: rotated } : credential.refreshToken ? { refreshToken: credential.refreshToken } : {}),
89
+ ...(expiresIn === undefined ? {} : { expiresAt: new Date(Date.now() + expiresIn * 1000).toISOString() }),
90
+ ...(credential.email ? { email: credential.email } : {}),
91
+ ...(credential.orgId ? { orgId: credential.orgId } : {}),
92
+ ...(credential.orgName ? { orgName: credential.orgName } : {}),
93
+ ...(credential.accountId ? { accountId: credential.accountId } : {}),
94
+ };
95
+ }
96
+ /** True when the access token is at or past expiry, with a minute of slack. */
97
+ export function opencodeConsoleCredentialExpired(credential, now = Date.now()) {
98
+ if (credential?.type !== 'oauth' || !credential.expiresAt)
99
+ return false;
100
+ const expiry = Date.parse(credential.expiresAt);
101
+ return Number.isFinite(expiry) && expiry - 60_000 <= now;
102
+ }
103
+ export class OpencodeConsoleAdapter {
104
+ id = opencodeConsoleProviderId;
105
+ name = 'OpenCode Console';
106
+ capabilities = { chat: true, streaming: true, models: true };
107
+ transport;
108
+ onTokensRefreshed;
109
+ now;
110
+ /** Lanes keyed by the access token they were read with, so a renewal invalidates them. */
111
+ lanes = new Map();
112
+ /** Renewed credentials, keyed by the token they replaced. */
113
+ renewed = new Map();
114
+ constructor(options = {}) {
115
+ this.transport = options.transport ?? new FetchHttpTransport();
116
+ this.onTokensRefreshed = options.onTokensRefreshed;
117
+ this.now = options.now ?? (() => Date.now());
118
+ }
119
+ async listModels(context = {}) {
120
+ const credential = await this.credential(context);
121
+ const lanes = await this.resolveLanes(credential, context.signal);
122
+ return [...lanes.byModel.keys()]
123
+ .filter((id) => id.length > 0)
124
+ .map((id) => ({ id, providerId: this.id, displayName: id }));
125
+ }
126
+ /**
127
+ * Reads `/api/user`, which is free and never bills, so a health check costs nothing
128
+ * and still proves the session is live.
129
+ */
130
+ async validateCredential(credential) {
131
+ if (credential?.type === 'none' || !bearer(credential)) {
132
+ throw new ProviderError('AUTHENTICATION_FAILED', 'Sign in to OpenCode Console to use this provider.', {
133
+ providerId: this.id,
134
+ publicMessage: 'Sign in to OpenCode Console to use this provider.',
135
+ });
136
+ }
137
+ const response = await this.transport.request({
138
+ method: 'GET',
139
+ providerId: this.id,
140
+ url: `${OPENCODE_CONSOLE.server}${OPENCODE_CONSOLE.userPath}`,
141
+ headers: this.headers(credential),
142
+ });
143
+ return { status: 'valid', checkedAt: new Date().toISOString(), ...(response.data?.email ? { account: response.data.email } : {}) };
144
+ }
145
+ async chat(request, context = {}) {
146
+ const { lane, orgId } = await this.laneFor(request.model, context);
147
+ const adapter = this.laneAdapter(lane, orgId);
148
+ if (!adapter.chat)
149
+ throw this.laneUnsupported(lane);
150
+ return adapter.chat(request, { ...context, credential: this.laneCredential(await this.credential(context)) });
151
+ }
152
+ async *streamChat(request, context = {}) {
153
+ const { lane, orgId } = await this.laneFor(request.model, context);
154
+ const adapter = this.laneAdapter(lane, orgId);
155
+ if (!adapter.streamChat)
156
+ throw this.laneUnsupported(lane);
157
+ yield* adapter.streamChat(request, { ...context, credential: this.laneCredential(await this.credential(context)) });
158
+ }
159
+ /**
160
+ * The lane adapters accept a bare token and reject anything else, so an OAuth access
161
+ * token is handed across in the shape they take. Their credential contract is left
162
+ * alone rather than widened for one caller.
163
+ */
164
+ laneCredential(credential) {
165
+ if (!credential || credential.type === 'none')
166
+ return { type: 'none' };
167
+ return { type: 'api-key', value: credential.value };
168
+ }
169
+ laneUnsupported(lane) {
170
+ return new ProviderError('NOT_SUPPORTED', `No adapter speaks the OpenCode Console lane ${lane}.`, {
171
+ providerId: this.id,
172
+ publicMessage: 'That OpenCode Console model is served from a lane this gateway does not implement yet.',
173
+ });
174
+ }
175
+ async healthCheck(context = {}) {
176
+ try {
177
+ await this.validateCredential(context.credential);
178
+ return { status: 'healthy', checkedAt: new Date().toISOString() };
179
+ }
180
+ catch (error) {
181
+ return {
182
+ status: 'unavailable',
183
+ checkedAt: new Date().toISOString(),
184
+ message: error instanceof Error ? error.message : 'The OpenCode Console session could not be checked.',
185
+ };
186
+ }
187
+ }
188
+ /**
189
+ * Renews the session when it is at or past expiry, then persists the result. A
190
+ * failure here is a sign-in problem, not a provider problem, so it is raised as one.
191
+ *
192
+ * A request resolves the credential more than once — once to read the lanes and once
193
+ * to send — so a renewal is memoised against the token it replaced. Without that, one
194
+ * request would burn two refresh grants and the second would invalidate the first.
195
+ */
196
+ async credential(context) {
197
+ const current = context.credential;
198
+ if (!opencodeConsoleCredentialExpired(current, this.now()))
199
+ return current;
200
+ const replaced = bearer(current);
201
+ const memo = this.renewed.get(replaced);
202
+ if (memo)
203
+ return memo;
204
+ const renewed = await refreshOpencodeConsoleCredential(current, this.transport);
205
+ this.renewed.set(replaced, renewed);
206
+ await this.onTokensRefreshed?.(renewed);
207
+ return renewed;
208
+ }
209
+ headers(credential) {
210
+ const org = orgHeaderValue(credential);
211
+ return {
212
+ accept: 'application/json',
213
+ 'content-type': 'application/json',
214
+ Authorization: `Bearer ${bearer(credential)}`,
215
+ ...(org ? { 'x-opencode-org-id': org } : {}),
216
+ };
217
+ }
218
+ async resolveLanes(credential, signal) {
219
+ const key = bearer(credential);
220
+ const cached = this.lanes.get(key);
221
+ if (cached && this.now() - cached.at < configTtlMs)
222
+ return cached.lanes;
223
+ const response = await this.transport.request({
224
+ method: 'GET',
225
+ providerId: this.id,
226
+ url: `${OPENCODE_CONSOLE.server}${OPENCODE_CONSOLE.configPath}`,
227
+ headers: this.headers(credential),
228
+ ...(signal ? { signal } : {}),
229
+ });
230
+ const provider = response.data?.config?.provider?.opencode;
231
+ const base = typeof provider?.api === 'string' ? provider.api : '';
232
+ const byModel = new Map();
233
+ for (const [id, model] of Object.entries(provider?.models ?? {})) {
234
+ const lane = model?.provider?.api;
235
+ if (typeof lane === 'string' && lane)
236
+ byModel.set(id, lane);
237
+ else if (base)
238
+ byModel.set(id, base);
239
+ }
240
+ const orgId = provider?.options?.headers?.['x-opencode-org-id'] ?? orgHeaderValue(credential);
241
+ const lanes = { base, byModel, ...(orgId ? { orgId } : {}) };
242
+ this.lanes.set(key, { at: this.now(), lanes });
243
+ return lanes;
244
+ }
245
+ async laneFor(model, context) {
246
+ const id = model.includes('/') ? model.slice(model.lastIndexOf('/') + 1) : model;
247
+ const lanes = await this.resolveLanes(await this.credential(context), context.signal);
248
+ const lane = lanes.byModel.get(id) ?? lanes.base;
249
+ if (!lane) {
250
+ throw new ProviderError('NOT_SUPPORTED', `OpenCode Console did not list a lane for ${model}.`, {
251
+ providerId: this.id,
252
+ publicMessage: `OpenCode Console did not list a lane for ${model}.`,
253
+ });
254
+ }
255
+ if (isGoogleLane(lane)) {
256
+ throw new ProviderError('NOT_SUPPORTED', `OpenCode Console serves ${model} from a Google GenAI lane, which this gateway does not implement.`, {
257
+ providerId: this.id,
258
+ publicMessage: `${model} is served from a Google GenAI lane, which this gateway does not implement yet.`,
259
+ });
260
+ }
261
+ return { lane, ...(lanes.orgId ? { orgId: lanes.orgId } : {}) };
262
+ }
263
+ /**
264
+ * Builds the adapter for a lane. The org header rides on the config rather than the
265
+ * request, because that is the only place either adapter accepts extra headers.
266
+ */
267
+ laneAdapter(lane, orgId) {
268
+ const headers = orgId ? { 'x-opencode-org-id': orgId } : undefined;
269
+ if (isAnthropicLane(lane)) {
270
+ return new AnthropicAdapter({
271
+ baseUrl: lane,
272
+ ...(headers ? { headers } : {}),
273
+ transport: this.transport,
274
+ });
275
+ }
276
+ return new OpenAICompatibleAdapter({
277
+ id: this.id,
278
+ name: this.name,
279
+ // The OpenAI-compatible adapter appends the chat path to the base.
280
+ baseUrl: lane.replace(/\/chat\/completions$/, ''),
281
+ auth: { header: 'Authorization', prefix: 'Bearer' },
282
+ ...(headers ? { headers } : {}),
283
+ }, { transport: this.transport });
284
+ }
285
+ }
286
+ //# sourceMappingURL=opencode-console.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-console.js","sourceRoot":"","sources":["../../src/adapters/opencode-console.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -11,5 +11,6 @@ export * from './streaming.js';
11
11
  export * from './transport.js';
12
12
  export * from './types.js';
13
13
  export * from './adapters/zen.js';
14
+ export * from './adapters/opencode-console.js';
14
15
  export * from './url.js';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -11,5 +11,6 @@ export * from './streaming.js';
11
11
  export * from './transport.js';
12
12
  export * from './types.js';
13
13
  export * from './adapters/zen.js';
14
+ export * from './adapters/opencode-console.js';
14
15
  export * from './url.js';
15
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,UAAU,CAAC"}
package/dist/types.d.ts CHANGED
@@ -99,12 +99,19 @@ export type ProviderCredential = {
99
99
  * current access token; `refreshToken` and `expiresAt` let an adapter renew it
100
100
  * without asking the user to sign in again.
101
101
  */
102
+ /**
103
+ * `orgId` and `orgName` are set by providers that scope a session to an
104
+ * organization and expect it echoed on every request, such as OpenCode Console.
105
+ */
102
106
  | {
103
107
  type: 'oauth';
104
108
  value: string;
105
109
  refreshToken?: string;
106
110
  expiresAt?: string;
107
111
  email?: string;
112
+ orgId?: string;
113
+ orgName?: string;
114
+ accountId?: string;
108
115
  } | {
109
116
  type: 'none';
110
117
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hilbras/omnihilbras",
3
- "version": "0.8.0",
3
+ "version": "0.9.1",
4
4
  "description": "Typed provider SDK for the OmniHilbras gateway: normalized chat, streaming, model listing, and capability contracts for OpenAI, Anthropic, Gemini, and OpenAI-compatible providers.",
5
5
  "license": "MIT",
6
6
  "author": "Hilbras",