opencode-plugin-tsaperture 0.3.5 → 0.3.7

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/README.md CHANGED
@@ -55,7 +55,7 @@ Contents:
55
55
 
56
56
  ### API compatibility
57
57
 
58
- The plugin reads Aperture provider compatibility metadata and registers each provider with the matching OpenCode provider package. It supports both OpenAI-compatible chat providers and Anthropic Messages API providers, including Aperture routes where the same model is only available through one API flavor.
58
+ The plugin reads Aperture provider compatibility metadata and registers each provider with the matching OpenCode provider package and endpoint. It supports OpenAI Responses and Chat Completions, Anthropic Messages, Google Vertex, Amazon Bedrock, and Gemini Generate Content routes.
59
59
 
60
60
  ### Models.dev enrichment
61
61
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,qBAAqB,CAAC;AAgzB1D,eAAO,MAAM,uBAAuB,EAAE,MA8brC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,qBAAqB,CAAC;AA2tB1D,eAAO,MAAM,uBAAuB,EAAE,MAicrC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -4,12 +4,15 @@ import { join } from "path";
4
4
  import { readFile } from "fs/promises";
5
5
  import { platform } from "process";
6
6
  import { createRequire } from "module";
7
+ const STARTUP_MODEL_STABILIZATION_DEADLINE_MS = 4_000;
8
+ const STARTUP_FETCH_TIMEOUT_MS = 2_000;
9
+ const STARTUP_POLL_INTERVAL_MS = 250;
10
+ const STARTUP_MIN_FETCH_TIMEOUT_MS = 750;
11
+ const INTERACTIVE_FETCH_TIMEOUT_MS = 5_000;
12
+ const MODELS_DEV_FETCH_TIMEOUT_MS = 3_000;
7
13
  function normalizeBaseUrl(baseUrl) {
8
14
  return baseUrl.replace(/\/+$/, "").replace(/\/v1$/, "");
9
15
  }
10
- const PROVIDER_DISPLAY_NAMES = {
11
- deepseek: "DeepSeek",
12
- };
13
16
  function slugifyProviderSegment(value) {
14
17
  const normalized = value
15
18
  .trim()
@@ -20,15 +23,7 @@ function slugifyProviderSegment(value) {
20
23
  }
21
24
  function getProviderDisplayName(providerID) {
22
25
  const slug = slugifyProviderSegment(providerID);
23
- return PROVIDER_DISPLAY_NAMES[slug]
24
- ?? (providerID.trim() || slug);
25
- }
26
- function inferProviderIDFromModel(model) {
27
- const id = model.id.toLowerCase();
28
- if (id.startsWith("deepseek-")) {
29
- return "deepseek";
30
- }
31
- return undefined;
26
+ return providerID.trim() || slug;
32
27
  }
33
28
  function normalizeModelLookup(value) {
34
29
  return value
@@ -76,49 +71,85 @@ function findModelsDevEntry(model, catalog, apertureProvider) {
76
71
  }
77
72
  return exactMatches.length === 1 ? exactMatches[0] : undefined;
78
73
  }
79
- function getProviderWireAPI(provider) {
80
- const compatibility = provider?.compatibility;
81
- if (compatibility?.openai_chat || compatibility?.openai_responses) {
82
- return "openai";
83
- }
84
- if (compatibility?.anthropic_messages) {
85
- return "anthropic";
86
- }
87
- return "openai";
74
+ function getApertureProtocol(compatibility) {
75
+ if (compatibility?.openai_responses)
76
+ return "openai_responses";
77
+ if (compatibility?.anthropic_messages)
78
+ return "anthropic_messages";
79
+ if (compatibility?.openai_chat)
80
+ return "openai_chat";
81
+ if (compatibility?.google_generate_content || compatibility?.google_raw_predict)
82
+ return "google_vertex";
83
+ if (compatibility?.bedrock_model_invoke || compatibility?.bedrock_converse)
84
+ return "bedrock";
85
+ if (compatibility?.gemini_generate_content)
86
+ return "gemini_generate_content";
87
+ return "openai_chat";
88
88
  }
89
89
  function getProviderGroup(model, providers) {
90
90
  const providerID = model.metadata?.provider?.id?.trim();
91
91
  const providerName = model.metadata?.provider?.name?.trim();
92
- const inferredProviderID = inferProviderIDFromModel(model);
93
- const providerSegment = providerName || providerID || inferredProviderID;
94
- const routeProviderID = providerID || inferredProviderID || providerName;
92
+ const providerSegment = providerName || providerID;
93
+ const routeProviderID = providerID || providerName;
95
94
  const displayName = providerName || (providerSegment ? getProviderDisplayName(providerSegment) : undefined);
96
95
  const providerMetadata = routeProviderID ? providers?.get(routeProviderID) : undefined;
97
- const wireAPI = getProviderWireAPI(providerMetadata);
96
+ const protocol = getApertureProtocol(providerMetadata?.compatibility);
98
97
  if (!providerSegment || !displayName) {
99
98
  return {
100
99
  id: "aperture",
101
100
  name: "Aperture",
102
- wireAPI,
101
+ protocol,
103
102
  };
104
103
  }
105
104
  return {
106
105
  id: `aperture-${slugifyProviderSegment(providerSegment)}`,
107
106
  name: `Aperture/${displayName}`,
108
107
  routeProviderID,
109
- wireAPI,
108
+ protocol,
110
109
  };
111
110
  }
112
111
  function getModelProviderKey(model, providers) {
113
112
  const group = getProviderGroup(model, providers);
114
- return `${group.id}:${group.wireAPI}:${model.id}`;
113
+ return `${group.id}:${group.protocol}:${model.id}`;
115
114
  }
116
115
  function getApertureRouteModelID(model, providers) {
117
116
  const routeProviderID = getProviderGroup(model, providers).routeProviderID;
118
117
  return routeProviderID ? `${routeProviderID}/${model.id}` : model.id;
119
118
  }
120
- function getProviderNpmPackage(wireAPI) {
121
- return wireAPI === "anthropic" ? "@ai-sdk/anthropic" : "@ai-sdk/openai-compatible";
119
+ function getProviderSDKConfig(protocol, baseUrl, apiKey) {
120
+ const key = apiKey || "not-required";
121
+ switch (protocol) {
122
+ case "openai_responses":
123
+ return { npm: "@ai-sdk/openai", options: { baseURL: `${baseUrl}/v1`, apiKey: key } };
124
+ case "anthropic_messages":
125
+ return { npm: "@ai-sdk/anthropic", options: { baseURL: `${baseUrl}/v1`, apiKey: key } };
126
+ case "openai_chat":
127
+ return { npm: "@ai-sdk/openai-compatible", options: { baseURL: `${baseUrl}/v1`, apiKey: key } };
128
+ case "google_vertex":
129
+ // apiKey selects Vertex express mode; Aperture rewrites the placeholder project and region.
130
+ return {
131
+ npm: "@ai-sdk/google-vertex",
132
+ options: {
133
+ baseURL: `${baseUrl}/v1/projects/_aperture_auto_vertex_project_id_/locations/_aperture_auto_vertex_region_/publishers/google`,
134
+ apiKey: key,
135
+ },
136
+ };
137
+ case "bedrock":
138
+ // Generated provider IDs bypass OpenCode's built-in Bedrock loader, so configure the SDK directly.
139
+ return {
140
+ npm: "@ai-sdk/amazon-bedrock",
141
+ options: apiKey
142
+ ? { baseURL: `${baseUrl}/bedrock`, region: "us-east-1", apiKey }
143
+ : {
144
+ baseURL: `${baseUrl}/bedrock`,
145
+ region: "us-east-1",
146
+ accessKeyId: "not-needed",
147
+ secretAccessKey: "not-needed",
148
+ },
149
+ };
150
+ case "gemini_generate_content":
151
+ return { npm: "@ai-sdk/google", options: { baseURL: `${baseUrl}/v1beta`, apiKey: key } };
152
+ }
122
153
  }
123
154
  function getCatalogReasoningVariants(model) {
124
155
  const effort = model.reasoning_options?.find((option) => option.type === "effort");
@@ -133,97 +164,6 @@ function getCatalogReasoningVariants(model) {
133
164
  { reasoningEffort: value },
134
165
  ]));
135
166
  }
136
- function getReasoningVariants(model, defaults) {
137
- const catalogVariants = getCatalogReasoningVariants(model);
138
- if (catalogVariants && Object.keys(catalogVariants).length > 0) {
139
- return catalogVariants;
140
- }
141
- if (!defaults.reasoning) {
142
- return undefined;
143
- }
144
- const id = model.id.toLowerCase();
145
- if (id.includes("deepseek-chat") ||
146
- id.includes("deepseek-reasoner") ||
147
- id.includes("deepseek-r1") ||
148
- id.includes("deepseek-v3") ||
149
- id.includes("minimax") ||
150
- id.includes("glm") ||
151
- id.includes("kimi") ||
152
- id.includes("k2p") ||
153
- id.includes("qwen") ||
154
- id.includes("big-pickle")) {
155
- return undefined;
156
- }
157
- if (id.includes("grok") && id.includes("grok-3-mini")) {
158
- return {
159
- low: { reasoningEffort: "low" },
160
- high: { reasoningEffort: "high" },
161
- };
162
- }
163
- if (id.includes("grok")) {
164
- return undefined;
165
- }
166
- if (id.includes("claude")) {
167
- const output = defaults.limit?.output ?? 32_000;
168
- return {
169
- high: {
170
- thinking: {
171
- type: "enabled",
172
- budgetTokens: Math.min(16_000, Math.floor(output / 2 - 1)),
173
- },
174
- },
175
- max: {
176
- thinking: {
177
- type: "enabled",
178
- budgetTokens: Math.min(31_999, output - 1),
179
- },
180
- },
181
- };
182
- }
183
- if (id.includes("gemini")) {
184
- if (id.includes("2.5")) {
185
- return {
186
- high: {
187
- thinkingConfig: {
188
- includeThoughts: true,
189
- thinkingBudget: 16_000,
190
- },
191
- },
192
- max: {
193
- thinkingConfig: {
194
- includeThoughts: true,
195
- thinkingBudget: 24_576,
196
- },
197
- },
198
- };
199
- }
200
- const levels = id.includes("3.1") ? ["low", "medium", "high"] : ["low", "high"];
201
- return Object.fromEntries(levels.map((effort) => [
202
- effort,
203
- {
204
- thinkingConfig: {
205
- includeThoughts: true,
206
- thinkingLevel: effort,
207
- },
208
- },
209
- ]));
210
- }
211
- return Object.fromEntries(["low", "medium", "high"].map((effort) => [
212
- effort,
213
- { reasoningEffort: effort },
214
- ]));
215
- }
216
- function isKimiModel(model) {
217
- const id = model.id.toLowerCase();
218
- const providerID = model.metadata?.provider?.id?.toLowerCase();
219
- const providerName = model.metadata?.provider?.name?.toLowerCase();
220
- return id.includes("kimi")
221
- || id.includes("k2p")
222
- || providerID === "kimi"
223
- || providerID === "kimi-for-coding"
224
- || providerName === "kimi"
225
- || providerName === "kimi-for-coding";
226
- }
227
167
  function getModelsDevDefaults(entry) {
228
168
  const defaults = {
229
169
  family: entry.model.family,
@@ -238,53 +178,41 @@ function getModelsDevDefaults(entry) {
238
178
  modalities: entry.model.modalities,
239
179
  interleaved: entry.model.interleaved,
240
180
  };
241
- const variants = getReasoningVariants(entry.model, defaults);
242
- if (variants && Object.keys(variants).length > 0) {
181
+ const variants = getCatalogReasoningVariants(entry.model);
182
+ if (variants) {
243
183
  defaults.variants = variants;
244
184
  }
245
185
  return Object.fromEntries(Object.entries(defaults).filter(([, value]) => value !== undefined));
246
186
  }
247
- function getOperationalDefaults(model) {
248
- return isKimiModel(model) ? {
249
- headers: {
250
- "User-Agent": "KimiCLI/1.3",
251
- },
252
- } : {};
253
- }
254
187
  function getModelDefaults(model, catalog, providers) {
255
188
  const routeProviderID = getProviderGroup(model, providers).routeProviderID;
256
189
  const apertureProvider = routeProviderID ? providers?.get(routeProviderID) : undefined;
257
190
  const modelsDevEntry = findModelsDevEntry(model, catalog, apertureProvider);
258
191
  if (modelsDevEntry) {
259
- return mergeModelConfig(getModelsDevDefaults(modelsDevEntry), getOperationalDefaults(model));
192
+ return {
193
+ defaults: getModelsDevDefaults(modelsDevEntry),
194
+ matchedModelsDev: true,
195
+ };
260
196
  }
261
- return mergeModelConfig({
262
- limit: {
263
- context: 128_000,
264
- output: 8_192,
265
- },
266
- reasoning: false,
267
- temperature: true,
268
- tool_call: true,
269
- modalities: {
270
- input: ["text"],
271
- output: ["text"],
272
- },
273
- interleaved: {
274
- field: "reasoning_content",
275
- },
276
- options: {
277
- thinking: {
278
- type: "enabled",
197
+ return {
198
+ defaults: {
199
+ limit: {
200
+ context: 128_000,
201
+ output: 8_192,
202
+ },
203
+ reasoning: false,
204
+ temperature: true,
205
+ tool_call: true,
206
+ modalities: {
207
+ input: ["text"],
208
+ output: ["text"],
209
+ },
210
+ interleaved: {
211
+ field: "reasoning_content",
279
212
  },
280
213
  },
281
- }, getOperationalDefaults(model));
282
- }
283
- function getDefaultReleaseDate(created) {
284
- if (!created || created <= 0) {
285
- return "";
286
- }
287
- return new Date(created * 1000).toISOString().slice(0, 10);
214
+ matchedModelsDev: false,
215
+ };
288
216
  }
289
217
  function mergeThinkingConfig(defaults, existing) {
290
218
  if (!defaults && !existing) {
@@ -351,7 +279,7 @@ function mergeModelConfig(defaults, existing = {}) {
351
279
  * consecutive fetches return the same IDs) or the deadline is exceeded.
352
280
  * Transient fetch errors are retried within the deadline.
353
281
  */
354
- async function waitForStableModels(baseUrl, apiKey, logger, { pollIntervalMs = 500, deadlineMs = 10_000, fetchTimeoutMs = 5_000, minFetchTimeoutMs = 2_000, previousModels = [], previousProviders = new Map(), } = {}) {
282
+ async function waitForStableModels(baseUrl, apiKey, logger, { pollIntervalMs = STARTUP_POLL_INTERVAL_MS, deadlineMs = STARTUP_MODEL_STABILIZATION_DEADLINE_MS, fetchTimeoutMs = STARTUP_FETCH_TIMEOUT_MS, minFetchTimeoutMs = STARTUP_MIN_FETCH_TIMEOUT_MS, previousModels = [], previousProviders = new Map(), } = {}) {
355
283
  const deadline = Date.now() + deadlineMs;
356
284
  let previousIds = previousModels.length > 0
357
285
  ? previousModels.map((model) => getModelProviderKey(model, previousProviders)).sort().join("\n")
@@ -394,7 +322,7 @@ async function waitForStableModels(baseUrl, apiKey, logger, { pollIntervalMs = 5
394
322
  }
395
323
  return { models: lastGoodResult, providers: lastGoodProviders, providersDegraded: lastGoodProvidersDegraded };
396
324
  }
397
- async function fetchApertureProviders(baseUrl, apiKey, logger, timeoutMs = 15_000) {
325
+ async function fetchApertureProviders(baseUrl, apiKey, logger, timeoutMs = INTERACTIVE_FETCH_TIMEOUT_MS) {
398
326
  const controller = new AbortController();
399
327
  const timer = setTimeout(() => controller.abort(), timeoutMs);
400
328
  const url = `${baseUrl}/api/providers`;
@@ -420,7 +348,7 @@ async function fetchApertureProviders(baseUrl, apiKey, logger, timeoutMs = 15_00
420
348
  clearTimeout(timer);
421
349
  }
422
350
  }
423
- async function fetchApertureModels(baseUrl, apiKey, logger, timeoutMs = 15_000, providers = new Map()) {
351
+ async function fetchApertureModels(baseUrl, apiKey, logger, timeoutMs = INTERACTIVE_FETCH_TIMEOUT_MS, providers = new Map()) {
424
352
  const controller = new AbortController();
425
353
  const timer = setTimeout(() => controller.abort(), timeoutMs);
426
354
  const url = `${baseUrl}/v1/models`;
@@ -468,7 +396,7 @@ async function readModelsDevCatalog(path, logger) {
468
396
  return undefined;
469
397
  }
470
398
  }
471
- async function fetchModelsDevCatalog(url, logger, timeoutMs = 10_000) {
399
+ async function fetchModelsDevCatalog(url, logger, timeoutMs = MODELS_DEV_FETCH_TIMEOUT_MS) {
472
400
  const controller = new AbortController();
473
401
  const timer = setTimeout(() => controller.abort(), timeoutMs);
474
402
  const baseUrl = url.replace(/\/+$/, "");
@@ -546,57 +474,22 @@ async function loadApertureConfig(logger) {
546
474
  }
547
475
  export const TailscaleAperturePlugin = async (input, options) => {
548
476
  const client = input.client;
477
+ function writeLog(level, message, args) {
478
+ client.app.log({
479
+ body: {
480
+ service: "TailscaleAperture",
481
+ level,
482
+ message,
483
+ extra: args.length > 0 ? { args: args.map((a) => a instanceof Error ? a.stack || a.message : String(a)) } : undefined,
484
+ },
485
+ }).catch(() => { });
486
+ }
549
487
  const logger = {
550
- log: (message, ...args) => {
551
- client.app.log({
552
- body: {
553
- service: "TailscaleAperture",
554
- level: "info",
555
- message,
556
- extra: args.length > 0 ? { args: args.map((a) => a instanceof Error ? a.stack || a.message : String(a)) } : undefined,
557
- },
558
- }).catch(() => { });
559
- },
560
- warn: (message, ...args) => {
561
- client.app.log({
562
- body: {
563
- service: "TailscaleAperture",
564
- level: "warn",
565
- message,
566
- extra: args.length > 0 ? { args: args.map((a) => a instanceof Error ? a.stack || a.message : String(a)) } : undefined,
567
- },
568
- }).catch(() => { });
569
- },
570
- error: (message, ...args) => {
571
- client.app.log({
572
- body: {
573
- service: "TailscaleAperture",
574
- level: "error",
575
- message,
576
- extra: args.length > 0 ? { args: args.map((a) => a instanceof Error ? a.stack || a.message : String(a)) } : undefined,
577
- },
578
- }).catch(() => { });
579
- },
580
- info: (message, ...args) => {
581
- client.app.log({
582
- body: {
583
- service: "TailscaleAperture",
584
- level: "info",
585
- message,
586
- extra: args.length > 0 ? { args: args.map((a) => a instanceof Error ? a.stack || a.message : String(a)) } : undefined,
587
- },
588
- }).catch(() => { });
589
- },
590
- debug: (message, ...args) => {
591
- client.app.log({
592
- body: {
593
- service: "TailscaleAperture",
594
- level: "debug",
595
- message,
596
- extra: args.length > 0 ? { args: args.map((a) => a instanceof Error ? a.stack || a.message : String(a)) } : undefined,
597
- },
598
- }).catch(() => { });
599
- },
488
+ log: (message, ...args) => writeLog("info", message, args),
489
+ info: (message, ...args) => writeLog("info", message, args),
490
+ warn: (message, ...args) => writeLog("warn", message, args),
491
+ error: (message, ...args) => writeLog("error", message, args),
492
+ debug: (message, ...args) => writeLog("debug", message, args),
600
493
  };
601
494
  const require = createRequire(import.meta.url);
602
495
  const pkg = require("../package.json");
@@ -711,9 +604,13 @@ export const TailscaleAperturePlugin = async (input, options) => {
711
604
  let modelsDevCatalog;
712
605
  let modelsLoaded = false;
713
606
  let modelLoadPromise;
607
+ const warnedModelsDevFallbacks = new Set();
714
608
  function formatError(error) {
715
609
  return error instanceof Error ? error.message : String(error);
716
610
  }
611
+ function formatDuration(ms) {
612
+ return ms === undefined ? "unknown" : `${ms}ms`;
613
+ }
717
614
  async function printErrorToChat(message) {
718
615
  try {
719
616
  const sessionsResult = await client.session.list({
@@ -773,7 +670,7 @@ export const TailscaleAperturePlugin = async (input, options) => {
773
670
  const providerResult = await fetchApertureProviders(baseUrl, apiKey, logger);
774
671
  discoveredProviders = providerResult.providers;
775
672
  providerMetadataDegraded = providerResult.degraded;
776
- discoveredModels = await fetchApertureModels(baseUrl, apiKey, logger, 15_000, discoveredProviders);
673
+ discoveredModels = await fetchApertureModels(baseUrl, apiKey, logger, INTERACTIVE_FETCH_TIMEOUT_MS, discoveredProviders);
777
674
  warnProviderMetadataDegraded();
778
675
  return discoveredModels;
779
676
  }
@@ -821,26 +718,33 @@ export const TailscaleAperturePlugin = async (input, options) => {
821
718
  const modelsObj = {
822
719
  ...(existingProvider.models ?? {}),
823
720
  };
721
+ const configuredApiKey = existingProvider.options?.apiKey ?? baseProvider.options?.apiKey ?? apiKey;
722
+ const sdk = getProviderSDKConfig(group.protocol, baseUrl, typeof configuredApiKey === "string" ? configuredApiKey : apiKey);
824
723
  config.provider[group.id] = {
825
724
  ...baseProvider,
826
725
  ...existingProvider,
827
726
  npm: existingProvider.npm
828
- ?? (group.wireAPI === "openai" ? baseProvider.npm : undefined)
829
- ?? getProviderNpmPackage(group.wireAPI),
727
+ ?? (group.protocol === "openai_chat" || group.protocol === "openai_responses" ? baseProvider.npm : undefined)
728
+ ?? sdk.npm,
830
729
  name: existingProvider.name ?? group.name,
831
730
  options: {
832
731
  ...baseProvider.options,
833
732
  ...existingProvider.options,
834
- baseURL: `${baseUrl}/v1`,
835
- apiKey: existingProvider.options?.apiKey ?? baseProvider.options?.apiKey ?? apiKey,
733
+ ...sdk.options,
836
734
  },
837
735
  models: modelsObj,
838
736
  };
839
737
  for (const model of models) {
840
738
  const existingModel = modelsObj[model.id] ?? {};
739
+ const routeModelID = getApertureRouteModelID(model, discoveredProviders);
740
+ const modelDefaults = getModelDefaults(model, modelsDevCatalog, discoveredProviders);
741
+ if (!modelDefaults.matchedModelsDev && !warnedModelsDevFallbacks.has(routeModelID)) {
742
+ warnedModelsDevFallbacks.add(routeModelID);
743
+ logger.warn(`[TailscaleAperture] Model ${routeModelID} could not be matched to Models.dev specs; using conservative defaults`);
744
+ }
841
745
  modelsObj[model.id] = {
842
- ...mergeModelConfig(getModelDefaults(model, modelsDevCatalog, discoveredProviders), existingModel),
843
- id: existingModel.id ?? getApertureRouteModelID(model, discoveredProviders),
746
+ ...mergeModelConfig(modelDefaults.defaults, existingModel),
747
+ id: existingModel.id ?? routeModelID,
844
748
  name: existingModel.name ?? model.id,
845
749
  };
846
750
  }
@@ -881,18 +785,42 @@ export const TailscaleAperturePlugin = async (input, options) => {
881
785
  throw error;
882
786
  }
883
787
  }
884
- const startupModels = loadModelsOnStartup();
885
- const startupModelsDevCatalog = loadModelsDevCatalog(modelsDevConfig, logger).then((catalog) => {
886
- modelsDevCatalog = catalog;
887
- if (catalog) {
888
- logger.log(`[TailscaleAperture] Loaded Models.dev catalog with ${Object.keys(catalog).length} providers`);
788
+ const startupStartedAt = Date.now();
789
+ let startupModelsDurationMs;
790
+ let startupModelsDevDurationMs;
791
+ const startupModels = (async () => {
792
+ const startedAt = Date.now();
793
+ try {
794
+ return await loadModelsOnStartup();
795
+ }
796
+ finally {
797
+ startupModelsDurationMs = Date.now() - startedAt;
798
+ logger.info(`[TailscaleAperture] Startup step Aperture model discovery finished in ${formatDuration(startupModelsDurationMs)}`);
799
+ }
800
+ })();
801
+ const startupModelsDevCatalog = (async () => {
802
+ const startedAt = Date.now();
803
+ try {
804
+ const catalog = await loadModelsDevCatalog(modelsDevConfig, logger);
805
+ modelsDevCatalog = catalog;
806
+ if (catalog) {
807
+ logger.log(`[TailscaleAperture] Loaded Models.dev catalog with ${Object.keys(catalog).length} providers`);
808
+ }
809
+ return catalog;
810
+ }
811
+ finally {
812
+ startupModelsDevDurationMs = Date.now() - startedAt;
813
+ logger.info(`[TailscaleAperture] Startup step Models.dev catalog load finished in ${formatDuration(startupModelsDevDurationMs)}`);
889
814
  }
890
- return catalog;
891
- });
815
+ })();
892
816
  return {
893
817
  config: async (config) => {
818
+ const configWaitStartedAt = Date.now();
894
819
  try {
895
820
  await Promise.all([startupModels, startupModelsDevCatalog]);
821
+ const configWaitDurationMs = Date.now() - configWaitStartedAt;
822
+ const startupDurationMs = Date.now() - startupStartedAt;
823
+ logger.info(`[TailscaleAperture] Startup finished in ${formatDuration(startupDurationMs)} (Aperture models: ${formatDuration(startupModelsDurationMs)}, Models.dev catalog: ${formatDuration(startupModelsDevDurationMs)}, config wait: ${formatDuration(configWaitDurationMs)})`);
896
824
  mutateConfig(config);
897
825
  }
898
826
  catch (error) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "opencode-plugin-tsaperture",
3
- "version": "0.3.5",
4
- "packageManager": "pnpm@11.7.0",
3
+ "version": "0.3.7",
4
+ "packageManager": "pnpm@11.8.0",
5
5
  "description": "OpenCode plugin to automatically populate models from Tailscale Aperture API",
6
6
  "homepage": "https://github.com/SharkyRawr/opencode-plugin-tsaperture",
7
7
  "repository": {
@@ -24,6 +24,7 @@
24
24
  },
25
25
  "scripts": {
26
26
  "build": "tsc",
27
+ "test": "pnpm build && node --test test/protocols.test.mjs",
27
28
  "watch": "tsc --watch"
28
29
  },
29
30
  "keywords": [