@vymalo/opencode-oauth2 0.14.1 → 0.15.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.
Files changed (47) hide show
  1. package/dist/cache.d.ts +14 -3
  2. package/dist/cache.js +32 -86
  3. package/dist/cache.js.map +1 -1
  4. package/dist/config.d.ts +3 -37
  5. package/dist/config.js +39 -136
  6. package/dist/config.js.map +1 -1
  7. package/dist/lib.d.ts +2 -2
  8. package/dist/lib.js +1 -1
  9. package/dist/lib.js.map +1 -1
  10. package/dist/model-discovery.d.ts +2 -2
  11. package/dist/model-discovery.js +1 -1
  12. package/dist/opencode.d.ts +1 -1
  13. package/dist/opencode.js +1 -1
  14. package/dist/opencode.js.map +1 -1
  15. package/dist/plugin.d.ts +4 -2
  16. package/dist/plugin.js +62 -31
  17. package/dist/plugin.js.map +1 -1
  18. package/dist/scheduler.d.ts +1 -1
  19. package/dist/types.d.ts +1 -7
  20. package/package.json +3 -2
  21. package/dist/logging.d.ts +0 -13
  22. package/dist/logging.js +0 -64
  23. package/dist/logging.js.map +0 -1
  24. package/dist/oauth/browser.d.ts +0 -1
  25. package/dist/oauth/browser.js +0 -33
  26. package/dist/oauth/browser.js.map +0 -1
  27. package/dist/oauth/client.d.ts +0 -56
  28. package/dist/oauth/client.js +0 -424
  29. package/dist/oauth/client.js.map +0 -1
  30. package/dist/oauth/device-code.d.ts +0 -28
  31. package/dist/oauth/device-code.js +0 -247
  32. package/dist/oauth/device-code.js.map +0 -1
  33. package/dist/oauth/discovery.d.ts +0 -8
  34. package/dist/oauth/discovery.js +0 -38
  35. package/dist/oauth/discovery.js.map +0 -1
  36. package/dist/oauth/http-utils.d.ts +0 -33
  37. package/dist/oauth/http-utils.js +0 -118
  38. package/dist/oauth/http-utils.js.map +0 -1
  39. package/dist/oauth/local-callback.d.ts +0 -10
  40. package/dist/oauth/local-callback.js +0 -84
  41. package/dist/oauth/local-callback.js.map +0 -1
  42. package/dist/oauth/pkce.d.ts +0 -5
  43. package/dist/oauth/pkce.js +0 -17
  44. package/dist/oauth/pkce.js.map +0 -1
  45. package/dist/oauth/subject-token.d.ts +0 -20
  46. package/dist/oauth/subject-token.js +0 -81
  47. package/dist/oauth/subject-token.js.map +0 -1
package/dist/cache.d.ts CHANGED
@@ -1,9 +1,20 @@
1
- import type { Logger } from "./logging.js";
1
+ import { type Logger } from "@vymalo/opencode-auth-core/lib";
2
2
  import type { CachedServerState } from "./types.js";
3
+ /**
4
+ * oauth2 keeps its own per-server model-sync state (a fused `CachedServerState`
5
+ * of models + token), written through auth-core's generic, atomic, identity-
6
+ * keyed `FileCacheStore`. The state *shape* and validation are oauth2's; the
7
+ * disk IO (per-writer temp + rename, `0o600`) is the shared implementation, so
8
+ * there is no second copy of the atomic-write logic.
9
+ *
10
+ * The on-disk location is deliberately preserved as
11
+ * `<root>/opencode-oauth2/<namespace>` — NOT under auth-core's folder — so
12
+ * existing installs keep their cached sessions (models + OAuth token) across
13
+ * the upgrade and users are not forced to re-login.
14
+ */
3
15
  export declare function resolveCacheDir(namespace: string): string;
4
16
  export declare class FileCacheStore {
5
- private readonly baseDir;
6
- private readonly logger?;
17
+ private readonly store;
7
18
  constructor(baseDir: string, logger?: Logger | undefined);
8
19
  ensureReady(): Promise<void>;
9
20
  loadServerState(serverId: string): Promise<CachedServerState | undefined>;
package/dist/cache.js CHANGED
@@ -1,22 +1,19 @@
1
- import { chmod, mkdir, readFile, rename, unlink, writeFile } from "node:fs/promises";
2
- import { constants as fsConstants } from "node:fs";
3
- import { randomUUID } from "node:crypto";
4
- import { dirname, join } from "node:path";
5
- import { homedir } from "node:os";
6
- function resolveDefaultCacheRoot() {
7
- if (process.platform === "win32") {
8
- return process.env.LOCALAPPDATA ?? join(homedir(), "AppData", "Local");
9
- }
10
- if (process.platform === "darwin") {
11
- return join(homedir(), "Library", "Caches");
12
- }
13
- return process.env.XDG_CACHE_HOME ?? join(homedir(), ".cache");
14
- }
1
+ import { join } from "node:path";
2
+ import { FileCacheStore as AuthCacheStore, resolveCacheRoot } from "@vymalo/opencode-auth-core/lib";
3
+ /**
4
+ * oauth2 keeps its own per-server model-sync state (a fused `CachedServerState`
5
+ * of models + token), written through auth-core's generic, atomic, identity-
6
+ * keyed `FileCacheStore`. The state *shape* and validation are oauth2's; the
7
+ * disk IO (per-writer temp + rename, `0o600`) is the shared implementation, so
8
+ * there is no second copy of the atomic-write logic.
9
+ *
10
+ * The on-disk location is deliberately preserved as
11
+ * `<root>/opencode-oauth2/<namespace>` NOT under auth-core's folder — so
12
+ * existing installs keep their cached sessions (models + OAuth token) across
13
+ * the upgrade and users are not forced to re-login.
14
+ */
15
15
  export function resolveCacheDir(namespace) {
16
- return join(resolveDefaultCacheRoot(), "opencode-oauth2", namespace);
17
- }
18
- function statePath(baseDir, serverId) {
19
- return join(baseDir, `${serverId}.json`);
16
+ return join(resolveCacheRoot(), "opencode-oauth2", namespace);
20
17
  }
21
18
  function hasValidTokenShape(token) {
22
19
  if (!token || typeof token !== "object" || Array.isArray(token)) {
@@ -34,82 +31,31 @@ function hasValidTokenShape(token) {
34
31
  return true;
35
32
  }
36
33
  export class FileCacheStore {
37
- baseDir;
38
- logger;
34
+ store;
39
35
  constructor(baseDir, logger) {
40
- this.baseDir = baseDir;
41
- this.logger = logger;
36
+ this.store = new AuthCacheStore(baseDir, logger);
42
37
  }
43
38
  async ensureReady() {
44
- await mkdir(this.baseDir, {
45
- recursive: true,
46
- mode: 448
47
- });
39
+ await this.store.ensureReady();
48
40
  }
49
41
  async loadServerState(serverId) {
50
- const filePath = statePath(this.baseDir, serverId);
51
- try {
52
- const content = await readFile(filePath, "utf8");
53
- const parsed = JSON.parse(content);
54
- if (!parsed || parsed.serverId !== serverId) {
55
- return undefined;
56
- }
57
- if (!Array.isArray(parsed.models) || !Array.isArray(parsed.rawModels)) {
58
- return undefined;
59
- }
60
- if (parsed.token && !hasValidTokenShape(parsed.token)) {
61
- this.logger?.trace("oauth2_cache_token_dropped_invalid_shape", { serverId });
62
- parsed.token = undefined;
63
- }
64
- this.logger?.trace("oauth2_cache_file_read", {
65
- serverId,
66
- modelCount: Array.isArray(parsed.models) ? parsed.models.length : 0,
67
- hasToken: Boolean(parsed.token)
68
- });
69
- return parsed;
70
- } catch (error) {
71
- if (typeof error === "object" && error && "code" in error && error.code === "ENOENT") {
72
- this.logger?.trace("oauth2_cache_file_missing", { serverId });
73
- return undefined;
74
- }
75
- throw error;
42
+ const parsed = await this.store.load(serverId);
43
+ if (!parsed) {
44
+ return undefined;
76
45
  }
46
+ if (!parsed || parsed.serverId !== serverId) {
47
+ return undefined;
48
+ }
49
+ if (!Array.isArray(parsed.models) || !Array.isArray(parsed.rawModels)) {
50
+ return undefined;
51
+ }
52
+ if (parsed.token && !hasValidTokenShape(parsed.token)) {
53
+ parsed.token = undefined;
54
+ }
55
+ return parsed;
77
56
  }
78
57
  async saveServerState(state) {
79
- const filePath = statePath(this.baseDir, state.serverId);
80
- // Unique per-write temp name. A shared `${filePath}.tmp` collides when
81
- // several opencode instances boot at once (the desktop app restores every
82
- // project window in parallel) and all sync the same provider: one process'
83
- // rename consumes the temp file the other is about to rename, surfacing as
84
- // `sync_failed … ENOENT … rename '<serverId>.json.tmp' -> '<serverId>.json'`.
85
- // pid + uuid makes each writer's temp file private; rename stays atomic so
86
- // last-writer-wins on the final path. See docs/troubleshooting.md.
87
- const tempPath = `${filePath}.${process.pid}.${randomUUID()}.tmp`;
88
- await mkdir(dirname(filePath), {
89
- recursive: true,
90
- mode: 448
91
- });
92
- const serialized = JSON.stringify(state, null, 2);
93
- try {
94
- await writeFile(tempPath, serialized, {
95
- encoding: "utf8",
96
- mode: 384,
97
- flag: fsConstants.O_CREAT | fsConstants.O_TRUNC | fsConstants.O_WRONLY
98
- });
99
- await rename(tempPath, filePath);
100
- this.logger?.trace("oauth2_cache_file_written", {
101
- serverId: state.serverId,
102
- modelCount: Array.isArray(state.models) ? state.models.length : 0,
103
- hasToken: Boolean(state.token)
104
- });
105
- } catch (error) {
106
- // Best-effort cleanup so a failed write never strands an orphan temp file.
107
- await unlink(tempPath).catch(() => {});
108
- throw error;
109
- }
110
- try {
111
- await chmod(filePath, 384);
112
- } catch {}
58
+ await this.store.save(state.serverId, state);
113
59
  }
114
60
  }
115
61
 
package/dist/cache.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","names":[],"sources":["../src/cache.ts"],"version":3,"file":"cache.js","sourceRoot":""}
1
+ {"mappings":"AAAA,SAAS,YAAY;AAErB,SACE,kBAAkB,gBAClB,wBAEK;;;;;;;;;;;;;AAeP,OAAO,SAAS,gBAAgB,WAA2B;CACzD,OAAO,KAAK,iBAAiB,GAAG,mBAAmB,SAAS;AAC9D;AAEA,SAAS,mBAAmB,OAAyB;CACnD,IAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAAG;EAC/D,OAAO;CACT;CAEA,MAAM,YAAY;CAClB,IACE,OAAO,UAAU,gBAAgB,YACjC,UAAU,YAAY,WAAW,KACjC,OAAO,UAAU,cAAc,YAC/B,UAAU,UAAU,WAAW,GAC/B;EACA,OAAO;CACT;;;CAIA,IAAI,UAAU,iBAAiB,WAAW;EACxC,OAAO,OAAO,UAAU,iBAAiB,YAAY,UAAU,aAAa,SAAS;CACvF;CACA,OAAO;AACT;AAEA,OAAO,MAAM,eAAe;CAC1B,AAAiB;CAEjB,YAAY,SAAiB,QAA6B;EACxD,KAAK,QAAQ,IAAI,eAAe,SAAS,MAAM;CACjD;CAEA,MAAM,cAA6B;EACjC,MAAM,KAAK,MAAM,YAAY;CAC/B;CAEA,MAAM,gBAAgB,UAA0D;EAC9E,MAAM,SAAS,MAAM,KAAK,MAAM,KAAwB,QAAQ;EAChE,IAAI,CAAC,QAAQ;GACX,OAAO;EACT;EAEA,IAAI,CAAC,UAAU,OAAO,aAAa,UAAU;GAC3C,OAAO;EACT;EAEA,IAAI,CAAC,MAAM,QAAQ,OAAO,MAAM,KAAK,CAAC,MAAM,QAAQ,OAAO,SAAS,GAAG;GACrE,OAAO;EACT;EAEA,IAAI,OAAO,SAAS,CAAC,mBAAmB,OAAO,KAAK,GAAG;GACrD,OAAO,QAAQ;EACjB;EAEA,OAAO;CACT;CAEA,MAAM,gBAAgB,OAAyC;EAC7D,MAAM,KAAK,MAAM,KAAK,MAAM,UAAU,KAAK;CAC7C;AACF","names":[],"sources":["../src/cache.ts"],"version":3,"file":"cache.js","sourceRoot":""}
package/dist/config.d.ts CHANGED
@@ -1,41 +1,7 @@
1
- import type { LogLevel } from "./logging.js";
1
+ import { DEFAULT_AUTH_FLOW, DEFAULT_HTTP_TIMEOUT_MS, DEFAULT_K8S_SA_TOKEN_PATH, DEFAULT_LOG_LEVEL, DEFAULT_TOKEN_EXPIRY_SKEW_MS, validateAuthConfig, type AuthServerConfig, type OAuthAuthFlow, type SubjectTokenSource } from "@vymalo/opencode-auth-core/lib";
2
+ import type { LogLevel } from "@vymalo/opencode-auth-core/lib";
3
+ export { DEFAULT_AUTH_FLOW, DEFAULT_HTTP_TIMEOUT_MS, DEFAULT_K8S_SA_TOKEN_PATH, DEFAULT_LOG_LEVEL, DEFAULT_TOKEN_EXPIRY_SKEW_MS, type AuthServerConfig, type OAuthAuthFlow, type SubjectTokenSource, validateAuthConfig };
2
4
  export declare const DEFAULT_SYNC_INTERVAL_MINUTES = 60;
3
- export declare const DEFAULT_HTTP_TIMEOUT_MS = 15e3;
4
- export declare const DEFAULT_TOKEN_EXPIRY_SKEW_MS = 3e4;
5
- export declare const DEFAULT_LOG_LEVEL: LogLevel;
6
- export type OAuthAuthFlow = "authorization_code" | "device_code" | "client_credentials" | "jwt_bearer" | "token_exchange";
7
- export declare const DEFAULT_AUTH_FLOW: OAuthAuthFlow;
8
- /**
9
- * Where to read the platform-supplied JWT that the plugin presents as the
10
- * subject token / assertion for the `jwt_bearer` and `token_exchange` flows.
11
- *
12
- * - `github_actions` — fetches the OIDC token from the GitHub Actions runtime
13
- * via `ACTIONS_ID_TOKEN_REQUEST_URL` + `ACTIONS_ID_TOKEN_REQUEST_TOKEN`,
14
- * with the workflow-declared `audience`. The `id-token: write` permission
15
- * is required on the job.
16
- * - `kubernetes_sa` — reads a projected service-account token from the pod
17
- * filesystem. Default path `/var/run/secrets/tokens/oauth2/token`; mount a
18
- * `projected.sources.serviceAccountToken` volume with the OIDC issuer as
19
- * the audience.
20
- * - `file` — reads any JWT from disk. Useful when an external sidecar
21
- * refreshes the token to a fixed path.
22
- * - `env` — reads the JWT from a named environment variable. Mostly useful
23
- * for tests and ad-hoc shells.
24
- */
25
- export type SubjectTokenSource = {
26
- type: "github_actions";
27
- audience: string;
28
- } | {
29
- type: "kubernetes_sa";
30
- tokenPath?: string;
31
- } | {
32
- type: "file";
33
- path: string;
34
- } | {
35
- type: "env";
36
- var: string;
37
- };
38
- export declare const DEFAULT_K8S_SA_TOKEN_PATH = "/var/run/secrets/tokens/oauth2/token";
39
5
  export interface OAuthServerConfigInput {
40
6
  id: string;
41
7
  name?: string;
package/dist/config.js CHANGED
@@ -1,30 +1,12 @@
1
+ import { DEFAULT_AUTH_FLOW, DEFAULT_HTTP_TIMEOUT_MS, DEFAULT_K8S_SA_TOKEN_PATH, DEFAULT_LOG_LEVEL, DEFAULT_TOKEN_EXPIRY_SKEW_MS, validateAuthConfig } from "@vymalo/opencode-auth-core/lib";
2
+ export { DEFAULT_AUTH_FLOW, DEFAULT_HTTP_TIMEOUT_MS, DEFAULT_K8S_SA_TOKEN_PATH, DEFAULT_LOG_LEVEL, DEFAULT_TOKEN_EXPIRY_SKEW_MS, validateAuthConfig };
1
3
  export const DEFAULT_SYNC_INTERVAL_MINUTES = 60;
2
- export const DEFAULT_HTTP_TIMEOUT_MS = 15e3;
3
- export const DEFAULT_TOKEN_EXPIRY_SKEW_MS = 3e4;
4
- export const DEFAULT_LOG_LEVEL = "info";
5
- export const DEFAULT_AUTH_FLOW = "authorization_code";
6
- export const DEFAULT_K8S_SA_TOKEN_PATH = "/var/run/secrets/tokens/oauth2/token";
7
4
  function ensureString(value, path) {
8
5
  if (typeof value !== "string" || value.trim().length === 0) {
9
6
  throw new Error(`${path} must be a non-empty string`);
10
7
  }
11
8
  return value.trim();
12
9
  }
13
- function ensureStringArray(value, path) {
14
- if (!Array.isArray(value) || value.length === 0) {
15
- throw new Error(`${path} must be a non-empty array of strings`);
16
- }
17
- return value.map((item, index) => ensureString(item, `${path}[${index}]`));
18
- }
19
- function validateRedirectPort(value, path) {
20
- if (value === undefined || value === null) {
21
- return undefined;
22
- }
23
- if (typeof value !== "number" || !Number.isInteger(value) || value <= 0 || value >= 65536) {
24
- throw new Error(`${path} must be a positive integer less than 65536`);
25
- }
26
- return value;
27
- }
28
10
  function validateLogLevel(value, path) {
29
11
  if (value === undefined || value === null) {
30
12
  return DEFAULT_LOG_LEVEL;
@@ -34,132 +16,53 @@ function validateLogLevel(value, path) {
34
16
  }
35
17
  throw new Error(`${path} must be one of "trace" | "debug" | "info" | "warn" | "error" (received ${JSON.stringify(value)})`);
36
18
  }
37
- function validatePkce(value, path) {
38
- if (value === undefined || value === null) {
39
- return true;
40
- }
41
- if (typeof value !== "boolean") {
42
- throw new Error(`${path} must be a boolean (received ${JSON.stringify(value)})`);
43
- }
44
- return value;
45
- }
46
- function validateAuthFlow(value, path) {
47
- if (value === undefined || value === null) {
48
- return DEFAULT_AUTH_FLOW;
49
- }
50
- if (value === "authorization_code" || value === "device_code" || value === "client_credentials" || value === "jwt_bearer" || value === "token_exchange") {
51
- return value;
52
- }
53
- throw new Error(`${path} must be one of "authorization_code" | "device_code" | "client_credentials" | "jwt_bearer" | "token_exchange" (received ${JSON.stringify(value)})`);
54
- }
55
- function validateSubjectTokenSource(value, path) {
56
- if (value === undefined || value === null) {
57
- return undefined;
58
- }
59
- if (typeof value !== "object" || Array.isArray(value)) {
60
- throw new Error(`${path} must be an object`);
61
- }
62
- const record = value;
63
- const type = record.type;
64
- switch (type) {
65
- case "github_actions": {
66
- const audience = record.audience;
67
- if (typeof audience !== "string" || audience.trim().length === 0) {
68
- throw new Error(`${path}.audience must be a non-empty string when type is "github_actions"`);
69
- }
70
- return {
71
- type: "github_actions",
72
- audience: audience.trim()
73
- };
74
- }
75
- case "kubernetes_sa": {
76
- const tokenPath = record.tokenPath;
77
- if (tokenPath !== undefined && tokenPath !== null) {
78
- if (typeof tokenPath !== "string" || tokenPath.trim().length === 0) {
79
- throw new Error(`${path}.tokenPath must be a non-empty string when provided`);
80
- }
81
- return {
82
- type: "kubernetes_sa",
83
- tokenPath: tokenPath.trim()
84
- };
85
- }
86
- return { type: "kubernetes_sa" };
87
- }
88
- case "file": {
89
- const filePath = record.path;
90
- if (typeof filePath !== "string" || filePath.trim().length === 0) {
91
- throw new Error(`${path}.path must be a non-empty string when type is "file"`);
92
- }
93
- return {
94
- type: "file",
95
- path: filePath.trim()
96
- };
97
- }
98
- case "env": {
99
- const varName = record.var;
100
- if (typeof varName !== "string" || varName.trim().length === 0) {
101
- throw new Error(`${path}.var must be a non-empty string when type is "env"`);
102
- }
103
- return {
104
- type: "env",
105
- var: varName.trim()
106
- };
107
- }
108
- default: throw new Error(`${path}.type must be one of "github_actions" | "kubernetes_sa" | "file" | "env" (received ${JSON.stringify(type)})`);
109
- }
19
+ function toAuthInput(input) {
20
+ return {
21
+ id: input.id,
22
+ issuer: input.issuer,
23
+ clientId: input.clientId,
24
+ clientSecret: input.clientSecret,
25
+ scopes: input.scopes,
26
+ authorizationEndpoint: input.authorizationEndpoint,
27
+ tokenEndpoint: input.tokenEndpoint,
28
+ deviceAuthorizationEndpoint: input.deviceAuthorizationEndpoint,
29
+ jwksUri: input.jwksUri,
30
+ redirectPort: input.redirectPort,
31
+ authFlow: input.authFlow,
32
+ pkce: input.pkce,
33
+ subjectTokenSource: input.subjectTokenSource,
34
+ tokenExchangeAudience: input.tokenExchangeAudience
35
+ };
110
36
  }
111
37
  function normalizeServerConfig(input, index) {
112
38
  const path = `servers[${index}]`;
113
- const id = ensureString(input.id, `${path}.id`);
114
- const name = input.name && input.name.trim().length > 0 ? input.name.trim() : id;
115
- const issuer = ensureString(input.issuer, `${path}.issuer`);
39
+ // The auth subset (issuer/client/scopes/endpoints/flows/subject-token-source,
40
+ // PKCE, redirect-port bounds, and the flow-required clientSecret /
41
+ // subjectTokenSource checks) is owned by auth-core's validateAuthConfig so
42
+ // it lives in exactly one place. oauth2 layers its model-sync fields on top.
43
+ const auth = validateAuthConfig(toAuthInput(input));
44
+ const name = input.name && input.name.trim().length > 0 ? input.name.trim() : auth.id;
116
45
  const baseURL = ensureString(input.baseURL, `${path}.baseURL`);
117
- const clientId = ensureString(input.clientId, `${path}.clientId`);
118
- const scopes = ensureStringArray(input.scopes, `${path}.scopes`);
119
46
  const syncIntervalMinutes = typeof input.syncIntervalMinutes === "number" && Number.isFinite(input.syncIntervalMinutes) && input.syncIntervalMinutes > 0 ? input.syncIntervalMinutes : DEFAULT_SYNC_INTERVAL_MINUTES;
120
- const redirectPort = validateRedirectPort(input.redirectPort, `${path}.redirectPort`);
121
- const authFlow = validateAuthFlow(input.authFlow, `${path}.authFlow`);
122
- const pkce = validatePkce(input.pkce, `${path}.pkce`);
123
- const subjectTokenSource = validateSubjectTokenSource(input.subjectTokenSource, `${path}.subjectTokenSource`);
124
- let clientSecret;
125
- if (input.clientSecret !== undefined && input.clientSecret !== null) {
126
- if (typeof input.clientSecret !== "string" || input.clientSecret.length === 0) {
127
- throw new Error(`${path}.clientSecret must be a non-empty string when provided`);
128
- }
129
- clientSecret = input.clientSecret;
130
- }
131
- if (authFlow === "client_credentials" && !clientSecret) {
132
- throw new Error(`${path}.clientSecret is required when authFlow is "client_credentials"`);
133
- }
134
- if ((authFlow === "jwt_bearer" || authFlow === "token_exchange") && !subjectTokenSource) {
135
- throw new Error(`${path}.subjectTokenSource is required when authFlow is "${authFlow}" — set it to {type: "github_actions" | "kubernetes_sa" | "file" | "env", ...}`);
136
- }
137
- let tokenExchangeAudience;
138
- if (input.tokenExchangeAudience !== undefined && input.tokenExchangeAudience !== null) {
139
- if (typeof input.tokenExchangeAudience !== "string" || input.tokenExchangeAudience.trim().length === 0) {
140
- throw new Error(`${path}.tokenExchangeAudience must be a non-empty string when provided`);
141
- }
142
- tokenExchangeAudience = input.tokenExchangeAudience.trim();
143
- }
144
47
  return {
145
- id,
48
+ id: auth.id,
146
49
  name,
147
- issuer,
50
+ issuer: auth.issuer,
148
51
  baseURL,
149
- clientId,
150
- clientSecret,
151
- scopes,
52
+ clientId: auth.clientId,
53
+ clientSecret: auth.clientSecret,
54
+ scopes: auth.scopes,
152
55
  syncIntervalMinutes,
153
56
  nameOverrides: input.nameOverrides ?? {},
154
- authorizationEndpoint: input.authorizationEndpoint,
155
- tokenEndpoint: input.tokenEndpoint,
156
- deviceAuthorizationEndpoint: input.deviceAuthorizationEndpoint,
157
- jwksUri: input.jwksUri,
158
- redirectPort,
159
- authFlow,
160
- pkce,
161
- subjectTokenSource,
162
- tokenExchangeAudience
57
+ authorizationEndpoint: auth.authorizationEndpoint,
58
+ tokenEndpoint: auth.tokenEndpoint,
59
+ deviceAuthorizationEndpoint: auth.deviceAuthorizationEndpoint,
60
+ jwksUri: auth.jwksUri,
61
+ redirectPort: auth.redirectPort,
62
+ authFlow: auth.authFlow,
63
+ pkce: auth.pkce,
64
+ subjectTokenSource: auth.subjectTokenSource,
65
+ tokenExchangeAudience: auth.tokenExchangeAudience
163
66
  };
164
67
  }
165
68
  export function validateConfig(input) {
@@ -1 +1 @@
1
- {"mappings":"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","names":[],"sources":["../src/config.ts"],"version":3,"file":"config.js","sourceRoot":""}
1
+ {"mappings":"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","names":[],"sources":["../src/config.ts"],"version":3,"file":"config.js","sourceRoot":""}
package/dist/lib.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  export { DEFAULT_HTTP_TIMEOUT_MS, DEFAULT_LOG_LEVEL, DEFAULT_SYNC_INTERVAL_MINUTES, type OAuth2ModelSyncConfig, type OAuth2ModelSyncConfigInput, type OAuthServerConfig, type OAuthServerConfigInput, validateConfig } from "./config.js";
2
- export { createJsonConsoleLogger, type LogLevel, type Logger } from "./logging.js";
2
+ export { createJsonConsoleLogger, type LogLevel, type Logger, type TokenSet } from "@vymalo/opencode-auth-core/lib";
3
3
  export { buildModelsUrl, fetchModels } from "./model-discovery.js";
4
4
  export { diffModels, normalizeModelId, normalizeModelList } from "./model-normalization.js";
5
5
  export { OAuth2ModelSyncPlugin, type PluginOptions } from "./plugin.js";
6
6
  export { resolveCacheDir, FileCacheStore } from "./cache.js";
7
7
  export { createOpencodeOauth2Plugin } from "./opencode.js";
8
8
  export type { OpenCodePluginFactoryOptions } from "./opencode.js";
9
- export type { CachedServerState, ModelDiff, NormalizedModel, RawModel, ServerSnapshot, TokenSet } from "./types.js";
9
+ export type { CachedServerState, ModelDiff, NormalizedModel, RawModel, ServerSnapshot } from "./types.js";
package/dist/lib.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { DEFAULT_HTTP_TIMEOUT_MS, DEFAULT_LOG_LEVEL, DEFAULT_SYNC_INTERVAL_MINUTES, validateConfig } from "./config.js";
2
- export { createJsonConsoleLogger } from "./logging.js";
2
+ export { createJsonConsoleLogger } from "@vymalo/opencode-auth-core/lib";
3
3
  export { buildModelsUrl, fetchModels } from "./model-discovery.js";
4
4
  export { diffModels, normalizeModelId, normalizeModelList } from "./model-normalization.js";
5
5
  export { OAuth2ModelSyncPlugin } from "./plugin.js";
package/dist/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"AAAA,SACE,yBACA,mBACA,+BAKA,sBACK;AAEP,SAAS,+BAA2D;AAEpE,SAAS,gBAAgB,mBAAmB;AAE5C,SAAS,YAAY,kBAAkB,0BAA0B;AAEjE,SAAS,6BAAiD;AAE1D,SAAS,iBAAiB,sBAAsB;AAEhD,SAAS,kCAAkC","names":[],"sources":["../src/lib.ts"],"version":3,"file":"lib.js","sourceRoot":""}
1
+ {"mappings":"AAAA,SACE,yBACA,mBACA,+BAKA,sBACK;AAEP,SACE,+BAIK;AAEP,SAAS,gBAAgB,mBAAmB;AAE5C,SAAS,YAAY,kBAAkB,0BAA0B;AAEjE,SAAS,6BAAiD;AAE1D,SAAS,iBAAiB,sBAAsB;AAEhD,SAAS,kCAAkC","names":[],"sources":["../src/lib.ts"],"version":3,"file":"lib.js","sourceRoot":""}
@@ -1,5 +1,5 @@
1
- import type { Logger } from "./logging.js";
2
- import type { RawModel, TokenSet } from "./types.js";
1
+ import type { Logger, TokenSet } from "@vymalo/opencode-auth-core/lib";
2
+ import type { RawModel } from "./types.js";
3
3
  export interface ModelDiscoveryOptions {
4
4
  fetchImpl?: typeof fetch;
5
5
  timeoutMs?: number;
@@ -1,4 +1,4 @@
1
- import { readResponseBodyPreview, redactUrl, scrubSecrets } from "./oauth/http-utils.js";
1
+ import { readResponseBodyPreview, redactUrl, scrubSecrets } from "@vymalo/opencode-auth-core/lib";
2
2
  export function buildModelsUrl(baseURL) {
3
3
  const url = new URL(baseURL);
4
4
  const path = url.pathname.replace(/\/+$/, "");
@@ -1,5 +1,5 @@
1
1
  import type { Plugin } from "@opencode-ai/plugin";
2
- import { type Logger, type LogLevel } from "./logging.js";
2
+ import { type Logger, type LogLevel } from "@vymalo/opencode-auth-core/lib";
3
3
  /**
4
4
  * Map OpenCode's host-level `config.logLevel` (uppercase `"DEBUG" | "INFO" |
5
5
  * "WARN" | "ERROR"`) to this plugin's internal `LogLevel`. Unknown / missing
package/dist/opencode.js CHANGED
@@ -1,5 +1,5 @@
1
+ import { createJsonConsoleLogger, LOG_LEVEL_PRIORITY } from "@vymalo/opencode-auth-core/lib";
1
2
  import { DEFAULT_LOG_LEVEL } from "./config.js";
2
- import { createJsonConsoleLogger, LOG_LEVEL_PRIORITY } from "./logging.js";
3
3
  import { OAuth2ModelSyncPlugin } from "./plugin.js";
4
4
  import { createResponsesRepairFetch } from "./responses-repair.js";
5
5
  /**
@@ -1 +1 @@
1
- {"mappings":"AAEA,SACE,yBAKK;AACP,SACE,yBAEA,0BAGK;AACP,SAAS,6BAA6B;AACtC,SAAS,kCAAkC;;;;;;;;;;;;;AAe3C,OAAO,SAAS,qBAAqB,OAAsC;CACzE,IAAI,OAAO,UAAU,UAAU;EAC7B,OAAO;CACT;CACA,QAAQ,MAAM,YAAY,GAA1B;EACE,KAAK,SACH,OAAO;EACT,KAAK,QACH,OAAO;EACT,KAAK,QACH,OAAO;EACT,KAAK,SACH,OAAO;EACT,SACE,OAAO;CACX;AACF;AAEA,MAAM,wBAAwB;;;;;;AAM9B,MAAM,uBAAuB;;;;;;AAM7B,MAAM,gCAAgC;AACtC,MAAM,qBAAqB,CAAC,UAAU,iBAAiB;AACvD,MAAM,sBAAsB;AAE5B,SAAS,mBAAmB,aAA0C;CACpE,OAAO,cAAc,uBAAuB;AAC9C;;;;;;;;AASA,SAAS,yBACP,SACA,aACA,YACA,QACyB;CACzB,IAAI,CAAC,aAAa;;;;;EAKhB,IAAI,SAAS,QAAQ,MAAM,MAAM,+BAA+B;GAC9D,MAAM,UAAU,EAAE,GAAG,QAAQ;GAC7B,OAAO,QAAQ;GACf,OAAO;EACT;EACA,OAAO;CACT;CAEA,OAAO,MAAM,wCAAwC,EAAE,WAAW,CAAC;CAEnE,MAAM,OAAgC,EAAE,GAAG,QAAQ;;;;CAKnD,IAAI,CAAC,SAAS,KAAK,MAAM,GAAG;EAC1B,KAAK,SAAS;CAChB;;;;;;CAOA,MAAM,WAAW,OAAO,KAAK,UAAU,aAAc,KAAK,QAAyB;CACnF,KAAK,QAAQ,2BAA2B,QAAQ;CAEhD,OAAO;AACT;AA0BA,SAAS,UAAU,OAAgB,QAAqC;CACtE,IAAI,UAAU,aAAa,UAAU,MAAM;EACzC,OAAO;CACT;CACA,IAAI,OAAO,UAAU,WAAW;EAC9B,MAAM,IAAI,MAAM,GAAG,OAAO,+BAA+B,KAAK,UAAU,KAAK,EAAE,EAAE;CACnF;CACA,OAAO;AACT;AAEA,SAAS,WAAW,OAAgB,QAA2C;CAC7E,IAAI,UAAU,aAAa,UAAU,MAAM;EACzC,OAAO;CACT;CACA,IACE,UAAU,wBACV,UAAU,iBACV,UAAU,wBACV,UAAU,gBACV,UAAU,kBACV;EACA,OAAO;CACT;CACA,MAAM,IAAI,MACR,GAAG,OAAO,mIAAmI,KAAK,UAAU,KAAK,EAAE,EACrK;AACF;AAEA,SAAS,eAAe,OAAgB,QAAoC;CAC1E,IAAI,UAAU,aAAa,UAAU,MAAM;EACzC,OAAO;CACT;CACA,IAAI,OAAO,UAAU,YAAY,MAAM,WAAW,GAAG;EACnD,MAAM,IAAI,MAAM,GAAG,OAAO,uDAAuD;CACnF;CACA,OAAO;AACT;AAEA,SAAS,eAAe,OAAgB,QAAoC;CAC1E,IAAI,UAAU,aAAa,UAAU,MAAM;EACzC,OAAO;CACT;CACA,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,KAAK,KAAK,QAAQ,KAAK,QAAQ,OAAO;EACtF,OAAO;CACT;CACA,MAAM,IAAI,MACR,GAAG,OAAO,2DAA2D,KAAK,UAAU,KAAK,EAAE,EAC7F;AACF;AAmBA,SAAS,SAAS,OAAqD;CACrE,IAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAAG;EAC/D,OAAO;CACT;CAEA,OAAO;AACT;AAEA,SAAS,SAAS,OAAoC;CACpD,OAAO,OAAO,UAAU,YAAY,MAAM,KAAK,CAAC,CAAC,SAAS,IAAI,MAAM,KAAK,IAAI;AAC/E;AAEA,SAAS,cAAc,OAAsC;CAC3D,IAAI,MAAM,QAAQ,KAAK,GAAG;EACxB,MAAM,aAAa,MAChB,KAAK,UAAU,SAAS,KAAK,CAAC,CAAC,CAC/B,QAAQ,UAA2B,QAAQ,KAAK,CAAC;EAEpD,OAAO,WAAW,SAAS,IAAI,aAAa;CAC9C;CAEA,IAAI,OAAO,UAAU,UAAU;EAC7B,MAAM,aAAa,MAChB,MAAM,SAAS,CAAC,CAChB,KAAK,UAAU,MAAM,KAAK,CAAC,CAAC,CAC5B,QAAQ,UAAU,MAAM,SAAS,CAAC;EAErC,OAAO,WAAW,SAAS,IAAI,aAAa;CAC9C;CAEA,OAAO;AACT;AAEA,SAAS,YAAY,OAAoD;CACvE,MAAM,SAAS,SAAS,KAAK;CAC7B,IAAI,CAAC,QAAQ;EACX,OAAO;CACT;CAEA,MAAM,aAAqC,CAAC;CAC5C,KAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,QAAQ,MAAM,GAAG;EAC/C,MAAM,OAAO,SAAS,GAAG;EACzB,IAAI,CAAC,MAAM;GACT;EACF;EAEA,WAAW,OAAO;CACpB;CAEA,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,SAAS,IAAI,aAAa;AAC3D;AAEA,SAAS,oBAAoB,UAAsE;CACjG,MAAM,UAAU,SAAS,SAAS,OAAO;CACzC,IAAI,CAAC,SAAS;EACZ,OAAO;CACT;CAEA,IAAI;CACJ,KAAK,MAAM,OAAO,oBAAoB;EACpC,MAAM,SAAS,QAAQ,IAAI;EAC3B,IAAI,KAAK;GACP;EACF;CACF;CAEA,IAAI,CAAC,KAAK;EACR,OAAO;CACT;CAEA,MAAM,SAAS,SAAS,IAAI,MAAM;CAClC,MAAM,WAAW,SAAS,IAAI,QAAQ;CACtC,MAAM,SAAS,cAAc,IAAI,MAAM;CAEvC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ;EACnC,OAAO;CACT;CAEA,MAAM,sBACJ,OAAO,IAAI,wBAAwB,YACnC,OAAO,SAAS,IAAI,mBAAmB,KACvC,IAAI,sBAAsB,IACtB,IAAI,sBACJ;CAEN,OAAO;EACL;EACA;EACA,cAAc,eAAe,IAAI,cAAc,yBAAyB;EACxE;EACA;EACA,eAAe,YAAY,IAAI,aAAa;EAC5C,uBAAuB,SAAS,IAAI,qBAAqB;EACzD,eAAe,SAAS,IAAI,aAAa;EACzC,6BAA6B,SAAS,IAAI,2BAA2B;EACrE,SAAS,SAAS,IAAI,OAAO;EAC7B,cAAc,eAAe,IAAI,cAAc,yBAAyB;EACxE,UAAU,WAAW,IAAI,UAAU,yBAAyB;EAC5D,MAAM,UAAU,IAAI,MAAM,8BAA8B;;;;EAIxD,oBAAoB,IAAI;EACxB,uBAAuB,SAAS,IAAI,qBAAqB;EACzD,aAAa,UAAU,IAAI,aAAa,qCAAqC;CAC/E;AACF;AAEA,SAAS,yBACP,QACA,QAC0B;CAC1B,MAAM,OAAO,SAAS,MAAM;CAC5B,MAAM,eAAe,SAAS,MAAM,YAAY;CAChD,MAAM,kBAAkB,SAAS,cAAc,eAAe;CAC9D,MAAM,UAAU,iBAAiB;CAEjC,IAAI,CAAC,MAAM,QAAQ,OAAO,GAAG;EAC3B,OAAO,CAAC;CACV;CAEA,MAAM,SAAmC,CAAC;CAC1C,KAAK,MAAM,CAAC,OAAO,cAAc,QAAQ,QAAQ,GAAG;EAClD,MAAM,QAAQ,SAAS,SAAS;EAChC,IAAI,CAAC,OAAO;GACV,OAAO,KAAK,gCAAgC,EAAE,MAAM,CAAC;GACrD;EACF;EAEA,MAAM,KAAK,SAAS,MAAM,EAAE;EAC5B,MAAM,OAAO,SAAS,MAAM,IAAI,KAAK;EACrC,MAAM,SAAS,SAAS,MAAM,MAAM;EACpC,MAAM,UAAU,SAAS,MAAM,OAAO;EACtC,MAAM,WAAW,SAAS,MAAM,QAAQ;EACxC,MAAM,SAAS,cAAc,MAAM,MAAM;EAEzC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ;GACtD,OAAO,KAAK,uCAAuC;IAAE;IAAO,IAAI,MAAM;GAAU,CAAC;GACjF;EACF;EAEA,MAAM,sBACJ,OAAO,MAAM,wBAAwB,YACrC,OAAO,SAAS,MAAM,mBAAmB,KACzC,MAAM,sBAAsB,IACxB,MAAM,sBACN;EAEN,MAAM,cAAc,wCAAwC,MAAM,QAAQ,GAAG;EAE7E,OAAO,KAAK;GACV;GACA,MAAM,QAAQ;GACd;GACA;GACA;GACA,cAAc,eAAe,MAAM,cAAc,WAAW;GAC5D;GACA;GACA,eAAe,YAAY,MAAM,aAAa;GAC9C,uBAAuB,SAAS,MAAM,qBAAqB;GAC3D,eAAe,SAAS,MAAM,aAAa;GAC3C,6BAA6B,SAAS,MAAM,2BAA2B;GACvE,SAAS,SAAS,MAAM,OAAO;GAC/B,cAAc,eAAe,MAAM,cAAc,WAAW;GAC5D,UAAU,WAAW,MAAM,UAAU,WAAW;GAChD,MAAM,UAAU,MAAM,MAAM,GAAG,YAAY,MAAM;GACjD,oBAAoB,MAAM;GAC1B,uBAAuB,SAAS,MAAM,qBAAqB;GAC3D,aAAa,UAAU,MAAM,aAAa,GAAG,YAAY,aAAa;EACxE,CAAC;CACH;CAEA,OAAO;AACT;AAEA,SAAS,wBAAwB,QAAwB,QAAkC;CACzF,MAAM,YAAa,OAAO,aAAa,CAAC;CACxC,MAAM,OAAO,IAAI,IAAoC;CAErD,KAAK,MAAM,UAAU,yBAAyB,QAAQ,MAAM,GAAG;EAC7D,MAAM,iBAAkB,UAAU,OAAO,QAAQ,CAAC;EAClD,MAAM,kBAAkB,SAAS,eAAe,OAAO,KAAK,CAAC;EAE7D,eAAe,MAAM,mBAAmB,OAAO,WAAW;EAC1D,eAAe,OAAO,SAAS,eAAe,IAAI,KAAK,OAAO,QAAQ,OAAO;EAC7E,eAAe,UAAU,yBACvB;GAAE,GAAG;GAAiB,SAAS,OAAO;EAAQ,GAC9C,OAAO,aACP,OAAO,IACP,MACF;EAEA,KAAK,IAAI,OAAO,IAAI;GAClB,GAAG;GACH,MAAM,eAAe,QAAQ,OAAO,QAAQ,OAAO;EACrD,CAAC;CACH;CAEA,KAAK,MAAM,CAAC,YAAY,mBAAmB,OAAO,QAAQ,SAAS,GAAG;EACpE,MAAM,YAAY,oBAAoB,cAAc;EACpD,IAAI,CAAC,WAAW;GACd;EACF;EAEA,MAAM,UAAU,SAAS,eAAe,OAAO,KAAK,CAAC;EACrD,MAAM,UAAU,SAAS,QAAQ,OAAO;EACxC,IAAI,CAAC,SAAS;GACZ,OAAO,KAAK,oCAAoC,EAAE,WAAW,CAAC;GAC9D;EACF;EAEA,MAAM,eAAe,SAAS,eAAe,IAAI,KAAK;EACtD,eAAe,MAAM,mBAAmB,UAAU,WAAW;EAC7D,eAAe,OAAO;EACtB,eAAe,UAAU,yBACvB;GAAE,GAAG;GAAS;EAAQ,GACtB,UAAU,aACV,YACA,MACF;EAEA,KAAK,IAAI,YAAY;GACnB,IAAI;GACJ,MAAM;GACN,QAAQ,UAAU;GAClB;GACA,UAAU,UAAU;GACpB,cAAc,UAAU;GACxB,QAAQ,UAAU;GAClB,qBAAqB,UAAU;GAC/B,eAAe,UAAU;GACzB,uBAAuB,UAAU;GACjC,eAAe,UAAU;GACzB,6BAA6B,UAAU;GACvC,SAAS,UAAU;GACnB,cAAc,UAAU;GACxB,UAAU,UAAU;GACpB,MAAM,UAAU;GAChB,oBAAoB,UAAU;GAC9B,uBAAuB,UAAU;GACjC,aAAa,UAAU;EACzB,CAAC;CACH;CAEA,OAAO,EAAE,SAAS,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE;AACvC;AAEA,SAAS,iBAAiB,QAA4C;CACpE,MAAM,SAAS,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,EAAE,EAAE,CAAC;CAC1E,OAAO,KAAK,UAAU,MAAM;AAC9B;AAEA,SAAS,sBACP,gBACA,QACM;CACN,MAAM,iBAAkB,eAAe,UAAU,CAAC;CAClD,MAAM,SAA8C,EAAE,GAAG,eAAe;CAExE,KAAK,MAAM,SAAS,QAAQ;EAC1B,MAAM,gBAAgB,eAAe,MAAM,OAAO,CAAC;EACnD,OAAO,MAAM,MAAM;GACjB,GAAG;GACH,IAAI,MAAM;GACV,MAAM,MAAM;EACd;CACF;CAEA,eAAe,SAAS;AAC1B;AAEA,eAAe,sBACb,gBACA,YACA,SACA,QACe;CACf,MAAM,UAAW,eAAe,YAAY,CAAC;CAC7C,MAAM,UAAW,AAAC,QAAiD,YAAY,CAAC;;;;CAIhF,MAAM,cAAc,OAAO,KAAK,OAAO,CAAC,CAAC,MAAM,MAAM,EAAE,YAAY,MAAM,eAAe;CACxF,IAAI,aAAa;EACf,OAAO,MAAM,8CAA8C,EAAE,WAAW,CAAC;EACzE;CACF;;;;;;;;;CAUA,OAAO,MAAM,mCAAmC,EAAE,WAAW,CAAC;CAC9D,IAAI;CACJ,IAAI;EACF,QAAQ,MAAM,QAAQ,kBAAkB,YAAY,EAAE,aAAa,MAAM,CAAC;CAC5E,SAAS,OAAO;EACd,OAAO,MAAM,8CAA8C;GACzD;GACA,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EAC9D,CAAC;EACD;CACF;CAEA,IAAI,CAAC,MAAM,aAAa;;;EAGtB,OAAO,MAAM,iDAAiD,EAAE,WAAW,CAAC;EAC5E;CACF;CAEA,QAAQ,gBAAgB,GAAG,MAAM,aAAa,SAAS,GAAG,MAAM;CAChE,OAAO,MAAM,gDAAgD,EAAE,WAAW,CAAC;AAC7E;AAEA,SAAS,qBAAqB,QAA+B,aAAqC;;;;CAIhG,MAAM,WAAW,wBAAwB,OAAO;;;;;CAKhD,MAAM,aAAa,qBAAqB,KAAK,QAAQ,IAAI,6BAA6B,EAAE;CAExF,MAAM,SACJ,OACA,OACA,WACG;EACH,IAAI,mBAAmB,SAAS,mBAAmB,YAAY,IAAI;GACjE;EACF;EAEA,IAAI,cAAc,UAAU,UAAU,UAAU,SAAS;GACvD,SAAS,MAAM,CAAC,OAAO,MAAM;EAC/B;;;;;;EAOA,MAAM,YAAY,UAAU,UAAU,UAAU;EAEhD,KAAK,OAAO,IACT,IAAI,EACH,MAAM;GACJ,SAAS;GACT,OAAO;GACP,SAAS;GACT,OAAO;EACT,EACF,CAAC,CAAC,CACD,YAAY;;EAEb,CAAC;CACL;CAEA,OAAO;EACL,MAAM,OAAO,QAAQ;GACnB,MAAM,SAAS,OAAO,MAAM;EAC9B;EACA,MAAM,OAAO,QAAQ;GACnB,MAAM,SAAS,OAAO,MAAM;EAC9B;EACA,KAAK,OAAO,QAAQ;GAClB,MAAM,QAAQ,OAAO,MAAM;EAC7B;EACA,KAAK,OAAO,QAAQ;GAClB,MAAM,QAAQ,OAAO,MAAM;EAC7B;EACA,MAAM,OAAO,QAAQ;GACnB,MAAM,SAAS,OAAO,MAAM;EAC9B;CACF;AACF;AAEA,OAAO,SAAS,2BACd,iBAA+C,CAAC,GACxC;CACR,OAAO,OAAO,EAAE,aAAa;;;;;EAK3B,IAAI,kBAA4B;EAChC,MAAM,SAAS,eAAe,UAAU,qBAAqB,cAAc,eAAe;EAE1F,MAAM,QAAsB;GAC1B,SAAS;GACT,WAAW;GACX,oBAAoB,IAAI,IAAY;EACtC;EAEA,OAAO;GACL,QAAQ,OAAO,WAAW;;;;;IAKxB,kBAAkB,qBAAqB,OAAO,QAAQ,KAAK;IAC3D,OAAO,MAAM,4BAA4B;KACvC,UAAU;KACV,cAAc,OAAO,OAAO,aAAa,WAAW,OAAO,WAAW;IACxE,CAAC;IACD,MAAM,UAAU,wBAAwB,QAAQ,MAAM;IACtD,OAAO,MAAM,0CAA0C;KACrD,cAAc,QAAQ,QAAQ;KAC9B,aAAa,QAAQ,QAAQ,KAAK,WAAW,OAAO,EAAE;IACxD,CAAC;IAED,IAAI,QAAQ,QAAQ,WAAW,GAAG;KAChC,OAAO,MAAM,2CAA2C,CAAC,CAAC;KAC1D,MAAM,SAAS,KAAK;KACpB,MAAM,UAAU;KAChB,MAAM,YAAY;KAClB,MAAM,qBAAqB,IAAI,IAAY;KAC3C;IACF;IAEA,MAAM,eAA2C;KAC/C,SAAS,QAAQ;KACjB,gBAAgB;KAChB,UAAU;IACZ;IAEA,MAAM,YAAY,iBAAiB,YAAY;IAC/C,IAAI,CAAC,MAAM,WAAW,MAAM,cAAc,WAAW;KACnD,OAAO,MAAM,0BAA0B;MACrC,QAAQ,MAAM,UAAU,sBAAsB;MAC9C,aAAa,aAAa,QAAQ;KACpC,CAAC;KACD,MAAM,SAAS,KAAK;KAEpB,MAAM,UAAU,IAAI,sBAAsB,cAAc;MACtD;MACA,WAAW,eAAe;MAC1B,oBAAoB,eAAe;MACnC,UAAU,eAAe;KAC3B,CAAC;KAED,MAAM,MAAM,QAAQ,WAAW;KAC/B,MAAM,MAAM,QAAQ,MAAM,EAAE,QAAQ,KAAK,CAAC;KAC1C,MAAM,YAAY;IACpB,OAAO;KACL,OAAO,MAAM,yBAAyB,EAAE,aAAa,aAAa,QAAQ,OAAO,CAAC;IACpF;IAEA,MAAM,qBAAqB,IAAI,IAAY,QAAQ,QAAQ,KAAK,WAAW,OAAO,EAAE,CAAC;IAErF,MAAM,YAAa,OAAO,aAAa,CAAC;IACxC,MAAM,UAAU,MAAM;;;;;;IAMtB,MAAM,QAAQ,IACZ,CAAC,GAAG,MAAM,kBAAkB,CAAC,CAAC,KAAK,eAAe;KAChD,MAAM,iBAAiB,UAAU;KACjC,IAAI,CAAC,gBAAgB;MACnB,OAAO;KACT;KAEA,MAAM,SAAS,QAAQ,gBAAgB,UAAU;KACjD,OAAO,MAAM,sCAAsC;MACjD;MACA,YAAY,OAAO;KACrB,CAAC;KACD,IAAI,OAAO,SAAS,GAAG;MACrB,sBAAsB,gBAAgB,MAAM;KAC9C;;;;;;;;KASA,OAAO,sBAAsB,gBAAgB,YAAY,SAAS,MAAM;IAC1E,CAAC,CACH;IACA,OAAO,MAAM,+BAA+B,EAC1C,cAAc,MAAM,mBAAmB,KACzC,CAAC;GACH;GACA,gBAAgB,OAAO,OAAO,WAAW;IACvC,MAAM,aAAa,MAAM,OAAO,cAAc,MAAM,UAAU,MAAM;IACpE,IAAI,CAAC,cAAc,CAAC,MAAM,WAAW,CAAC,MAAM,mBAAmB,IAAI,UAAU,GAAG;KAC9E,OAAO,MAAM,+BAA+B;MAC1C;MACA,SAAS,aAAa,MAAM,mBAAmB,IAAI,UAAU,IAAI;KACnE,CAAC;KACD;IACF;IAEA,OAAO,MAAM,oCAAoC,EAAE,WAAW,CAAC;IAC/D,MAAM,QAAQ,MAAM,MAAM,QAAQ,kBAAkB,UAAU;IAC9D,OAAO,QAAQ,gBAAgB,GAAG,MAAM,aAAa,SAAS,GAAG,MAAM;IACvE,OAAO,MAAM,uCAAuC;KAClD;KACA,SAAS,QAAQ,MAAM,WAAW;KAClC,WAAW,MAAM,aAAa;IAChC,CAAC;IAED,IAAI,MAAM,QAAQ,gBAAgB,UAAU,CAAC,CAAC,WAAW,GAAG;KAC1D,OAAO,MAAM,iCAAiC,EAAE,WAAW,CAAC;KAC5D,KAAK,MAAM,QAAQ,WAAW,UAAU;IAC1C;GACF;EACF;CACF;AACF;AAEA,OAAO,MAAM,uBAA+B,2BAA2B;AAEvE,eAAe","names":[],"sources":["../src/opencode.ts"],"version":3,"file":"opencode.js","sourceRoot":""}
1
+ {"mappings":"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","names":[],"sources":["../src/opencode.ts"],"version":3,"file":"opencode.js","sourceRoot":""}
package/dist/plugin.d.ts CHANGED
@@ -1,6 +1,6 @@
1
+ import { type Logger, type TokenSet } from "@vymalo/opencode-auth-core/lib";
1
2
  import { type OAuth2ModelSyncConfigInput } from "./config.js";
2
- import { type Logger } from "./logging.js";
3
- import type { NormalizedModel, ServerSnapshot, TokenSet } from "./types.js";
3
+ import type { NormalizedModel, ServerSnapshot } from "./types.js";
4
4
  interface StartOptions {
5
5
  warmup?: boolean;
6
6
  /**
@@ -28,6 +28,8 @@ export declare class OAuth2ModelSyncPlugin {
28
28
  private initialized;
29
29
  private started;
30
30
  constructor(configInput: OAuth2ModelSyncConfigInput, options?: PluginOptions);
31
+ private buildTokenRuntime;
32
+ private ensureTokenRuntime;
31
33
  initialize(): Promise<void>;
32
34
  start(options?: StartOptions): Promise<void>;
33
35
  stop(): void;