@teith/openclaw-runware-provider 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAcD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,EAAE,CAAC,CAkDzB;AA8JD,wBAAgB,UAAU,IAAI,IAAI,CAGjC"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAcD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,EAAE,CAAC,CA2BzB;AAyFD,wBAAgB,UAAU,IAAI,IAAI,CAGjC"}
package/dist/catalog.js CHANGED
@@ -1,6 +1,5 @@
1
- console.log(`[runware-diag] catalog.ts module loaded at ${new Date().toISOString()}`);
2
1
  const CACHE_TTL_MS = 5 * 60 * 1000;
3
- const FETCH_TIMEOUT_MS = 7000;
2
+ const FETCH_TIMEOUT_MS = 5000;
4
3
  const FIRST_FETCH_MAX_ATTEMPTS = 3;
5
4
  const RETRY_BACKOFF_BASE_MS = 500;
6
5
  let cache = null;
@@ -8,34 +7,23 @@ let inflight = null;
8
7
  export async function fetchModels(baseUrl, apiKey) {
9
8
  const now = Date.now();
10
9
  if (cache && now - cache.fetchedAt < CACHE_TTL_MS) {
11
- console.log(`[runware-diag] fetchModels: CACHE HIT, age=${((now - cache.fetchedAt) / 1000).toFixed(1)}s, count=${cache.models.length}`);
12
10
  return cache.models;
13
11
  }
14
- if (inflight) {
15
- console.log(`[runware-diag] fetchModels: INFLIGHT, returning shared promise`);
12
+ if (inflight)
16
13
  return inflight;
17
- }
18
- // Retry only on the first successful fetch (no cache). Once we have any
19
- // cache, the catch path returns stale data on failure, so retrying here
20
- // would just delay that fallback. The first call is the one that matters:
21
- // it's on openclaw's startup critical path, and a single 5s timeout against
22
- // a cold TLS handshake to Runware is the proximate cause of the "Runware
23
- // models missing after gateway restart" bug.
14
+ // Retry only on the first fetch (no cache). Once we have any cache, the
15
+ // catch path returns stale data on failure, so retrying would just delay
16
+ // the fallback.
24
17
  const maxAttempts = cache ? 1 : FIRST_FETCH_MAX_ATTEMPTS;
25
- console.log(`[runware-diag] fetchModels: cache=${cache ? `stale (age ${((now - cache.fetchedAt) / 1000).toFixed(1)}s)` : "empty"}, starting fetch with maxAttempts=${maxAttempts}, baseUrl=${baseUrl}`);
26
18
  inflight = (async () => {
27
19
  try {
28
20
  const models = await fetchWithRetries(baseUrl, apiKey, maxAttempts);
29
21
  cache = { models, fetchedAt: Date.now() };
30
- console.log(`[runware-diag] fetchModels: fetch SUCCESS, cached ${models.length} models`);
31
22
  return models;
32
23
  }
33
24
  catch (err) {
34
- if (cache) {
35
- console.warn(`[runware-diag] fetchModels: fetch FAILED, returning stale cache of ${cache.models.length} models: ${err instanceof Error ? err.message : err}`);
25
+ if (cache)
36
26
  return cache.models;
37
- }
38
- console.error(`[runware-diag] fetchModels: fetch FAILED and NO CACHE — propagating error: ${err instanceof Error ? err.message : err}`);
39
27
  throw err;
40
28
  }
41
29
  finally {
@@ -48,20 +36,12 @@ async function fetchWithRetries(baseUrl, apiKey, maxAttempts) {
48
36
  let lastErr;
49
37
  for (let attempt = 1; attempt <= maxAttempts; attempt++) {
50
38
  try {
51
- const models = await fetchFromUpstream(baseUrl, apiKey);
52
- if (attempt > 1) {
53
- console.log(`[runware-catalog] /v1/models succeeded on attempt ${attempt}/${maxAttempts}`);
54
- }
55
- return models;
39
+ return await fetchFromUpstream(baseUrl, apiKey);
56
40
  }
57
41
  catch (err) {
58
42
  lastErr = err;
59
- const msg = err instanceof Error ? err.message : String(err);
60
- if (attempt === maxAttempts) {
61
- console.warn(`[runware-catalog] /v1/models failed on attempt ${attempt}/${maxAttempts} (giving up): ${msg}`);
43
+ if (attempt === maxAttempts)
62
44
  break;
63
- }
64
- console.warn(`[runware-catalog] /v1/models failed on attempt ${attempt}/${maxAttempts}, retrying: ${msg}`);
65
45
  // Exponential backoff: 500ms, 1500ms, 3500ms, ...
66
46
  const delay = RETRY_BACKOFF_BASE_MS * (2 ** attempt - 1);
67
47
  await new Promise((resolve) => setTimeout(resolve, delay));
@@ -75,59 +55,19 @@ async function fetchFromUpstream(baseUrl, apiKey) {
75
55
  const url = `${baseUrl.replace(/\/+$/, "")}/models`;
76
56
  const controller = new AbortController();
77
57
  const timeout = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
78
- const startedAt = Date.now();
79
- console.log(`[runware-diag] fetchFromUpstream: GET ${url} (apiKey length=${apiKey.length}, timeout=${FETCH_TIMEOUT_MS}ms)`);
80
58
  try {
81
59
  const res = await fetch(url, {
82
60
  headers: { Authorization: `Bearer ${apiKey}`, Accept: "application/json" },
83
61
  signal: controller.signal,
84
62
  });
85
- const elapsed = Date.now() - startedAt;
86
- console.log(`[runware-diag] fetchFromUpstream: response in ${elapsed}ms, status=${res.status} ${res.statusText}`);
87
63
  if (!res.ok) {
88
- // res.text() can throw synchronously (test mocks without a text()
89
- // method, body already consumed elsewhere) — that TypeError isn't
90
- // caught by .catch() because no promise was returned. Wrap in
91
- // try/catch so we still throw the status-based error below
92
- // instead of shadowing it with "res.text is not a function".
93
- let errBody = "";
94
- try {
95
- errBody = await res.text();
96
- }
97
- catch {
98
- // body unreadable; status-based error below still surfaces
99
- }
100
- if (errBody) {
101
- console.warn(`[runware-diag] fetchFromUpstream: non-OK body (first 200 chars): ${errBody.slice(0, 200)}`);
102
- }
103
64
  throw new Error(`Runware /models returned ${res.status} ${res.statusText}`);
104
65
  }
105
66
  const body = (await res.json());
106
- const bodyKeys = Object.keys(body).join(",");
107
67
  const data = Array.isArray(body.data) ? body.data : [];
108
- const firstItemKeys = data.length > 0 && data[0] && typeof data[0] === "object"
109
- ? Object.keys(data[0]).join(",")
110
- : "(none)";
111
- console.log(`[runware-diag] fetchFromUpstream: body keys=[${bodyKeys}], data.length=${data.length}, first item keys=[${firstItemKeys}]`);
112
- if (data.length === 0) {
113
- // Surface what came back so we can see if Runware sent {data: null},
114
- // {models: [...]} (wrong key), an error envelope, etc.
115
- const bodyStr = JSON.stringify(body).slice(0, 500);
116
- console.warn(`[runware-diag] fetchFromUpstream: data array is EMPTY. Body snippet: ${bodyStr}`);
117
- }
118
- const parsed = data.map(parseRunwareModel);
119
- const valid = parsed.filter((m) => m !== null);
120
- if (parsed.length !== valid.length) {
121
- console.warn(`[runware-diag] fetchFromUpstream: dropped ${parsed.length - valid.length}/${parsed.length} models in parse (missing/invalid id)`);
122
- }
123
- if (valid.length > 0) {
124
- const sample = valid
125
- .slice(0, 5)
126
- .map((m) => m.id)
127
- .join(", ");
128
- console.log(`[runware-diag] fetchFromUpstream: parsed ${valid.length} models, sample ids: ${sample}`);
129
- }
130
- return valid;
68
+ return data
69
+ .map(parseRunwareModel)
70
+ .filter((m) => m !== null);
131
71
  }
132
72
  finally {
133
73
  clearTimeout(timeout);
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,wBAAwB,GAAG,CAAC,CAAC;AACnC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAuBlC,IAAI,KAAK,GAAsB,IAAI,CAAC;AACpC,IAAI,QAAQ,GAAmC,IAAI,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,MAAc;IAEd,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IAED,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,wEAAwE;IACxE,yEAAyE;IACzE,gBAAgB;IAChB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC;IAEzD,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACpE,KAAK,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC,MAAM,CAAC;YAC/B,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,OAAe,EACf,MAAc,EACd,WAAmB;IAEnB,IAAI,OAAgB,CAAC;IACrB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,GAAG,GAAG,CAAC;YACd,IAAI,OAAO,KAAK,WAAW;gBAAE,MAAM;YACnC,kDAAkD;YAClD,MAAM,KAAK,GAAG,qBAAqB,GAAG,CAAC,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;YACzD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,MAAM,OAAO,YAAY,KAAK;QAC5B,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,OAAe,EACf,MAAc;IAEd,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAEvE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;YAC1E,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAmB,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI;aACR,GAAG,CAAC,iBAAiB,CAAC;aACtB,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAClD,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAY;IACrC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/D,MAAM,MAAM,GAAiB,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1C,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,QAAQ,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;QACjE,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,cAAc,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,iBAAiB,KAAK,QAAQ,IAAI,CAAC,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;QACvE,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,iBAAiB,CAAC;IAC/C,CAAC;IACD,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAkC,CAAC;QAC/C,MAAM,UAAU,GAAG,CAAC,GAAW,EAAsB,EAAE;YACrD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAW,CAAC;gBAC3D,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,CAAY;oBACjD,CAAC,CAAC,GAAG,CAAC;YAChB,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;QACnD,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;QAClD,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC;QACrD,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,aAAa,GAAG,SAAS,CAAC;QAC9D,IAAI,UAAU,KAAK,SAAS;YAAE,MAAM,CAAC,cAAc,GAAG,UAAU,CAAC;IACnE,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,eAAe,GAAI,CAAC,CAAC,gBAA8B;aACvD,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,KAAK,GAAG,IAAI,CAAC;IACb,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgBrE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,QAAA,MAAM,KAAK,EAAE,WAiFZ,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AASrE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,QAAA,MAAM,KAAK,EAAE,WAkCZ,CAAC;AAEF,eAAe,KAAK,CAAC"}
package/dist/index.js CHANGED
@@ -1,18 +1,8 @@
1
- console.log("═══════════════════════════════════════════════════\n" +
2
- ` Runware OpenClaw Provider v0.4.2 (debug build)\n` +
3
- ` index.ts loaded at: ${new Date().toISOString()}\n` +
4
- "═══════════════════════════════════════════════════");
5
- import { API_KEY_ENV_VAR, BASE_URL_ENV_VAR, PROVIDER_ID, PROVIDER_LABEL, buildCatalogRows, buildProvider, prewarmCatalog, resolveApiKey, resolveBaseUrl, } from "./models.js";
1
+ import { API_KEY_ENV_VAR, BASE_URL_ENV_VAR, PROVIDER_ID, PROVIDER_LABEL, buildCatalogRows, buildProvider, resolveApiKey, resolveBaseUrl, } from "./models.js";
6
2
  import { startCostMetricPoller } from "./cost-metric.js";
7
3
  // See cost-metric.ts. Idempotent across both entry files via
8
4
  // globalThis-stored state — whichever module openclaw loads first wins.
9
5
  startCostMetricPoller();
10
- // Pre-fetch /v1/models in the background so the catalog cache is populated
11
- // (or in flight) by the time openclaw calls catalog.run. Without this, the
12
- // first model-list request sits on the gateway-startup critical path and
13
- // frequently times out on a cold TLS handshake to Runware, leaving openclaw
14
- // with an empty catalog. See models.ts → prewarmCatalog() for rationale.
15
- prewarmCatalog();
16
6
  const PLUGIN_ID = "runware-openclaw-provider";
17
7
  /**
18
8
  * Plugin entry that openclaw's plugin loader invokes after `npm install`-ing
@@ -40,7 +30,6 @@ const entry = {
40
30
  name: PROVIDER_LABEL,
41
31
  description: "Runware — unified OpenAI-compatible access to Claude, GPT, Gemini, Qwen, GLM, MiniMax, Kimi, and Gemma.",
42
32
  register(api) {
43
- console.log(`[runware-diag] index.ts register(api) CALLED by openclaw at ${new Date().toISOString()} — registering provider + catalog provider hooks`);
44
33
  api.registerProvider({
45
34
  id: PROVIDER_ID,
46
35
  label: PROVIDER_LABEL,
@@ -50,25 +39,11 @@ const entry = {
50
39
  catalog: {
51
40
  order: "simple",
52
41
  run: async (ctx) => {
53
- const cid = Math.random().toString(36).slice(2, 8);
54
- console.log(`[runware-diag] registerProvider.catalog.run[${cid}] called, ctx.env keys=[${Object.keys(ctx.env ?? {}).join(",") || "(none)"}], has resolveProviderApiKey=${typeof ctx.resolveProviderApiKey === "function"}`);
55
42
  const apiKey = resolveApiKey(ctx);
56
- if (!apiKey) {
57
- console.warn(`[runware-diag] registerProvider.catalog.run[${cid}]: no apiKey, returning null`);
43
+ if (!apiKey)
58
44
  return null;
59
- }
60
- try {
61
- const provider = await buildProvider(apiKey, resolveBaseUrl(ctx.env));
62
- console.log(`[runware-diag] registerProvider.catalog.run[${cid}]: SUCCESS, returning provider with ${provider.models.length} models`);
63
- return { provider };
64
- }
65
- catch (err) {
66
- // fetchModels already retried with backoff. If we still failed
67
- // every attempt, return null so openclaw treats the catalog as
68
- // unpopulated rather than letting the throw bubble up.
69
- console.error(`[runware-diag] registerProvider.catalog.run[${cid}]: FAILED after retries: ${err instanceof Error ? err.message : err}`);
70
- return null;
71
- }
45
+ const provider = await buildProvider(apiKey, resolveBaseUrl(ctx.env));
46
+ return { provider };
72
47
  },
73
48
  },
74
49
  });
@@ -76,25 +51,12 @@ const entry = {
76
51
  provider: PROVIDER_ID,
77
52
  kinds: ["text"],
78
53
  liveCatalog: async (ctx) => {
79
- const cid = Math.random().toString(36).slice(2, 8);
80
- console.log(`[runware-diag] liveCatalog[${cid}] called, ctx.env keys=[${Object.keys(ctx.env ?? {}).join(",") || "(none)"}]`);
81
54
  const apiKey = resolveApiKey(ctx);
82
- if (!apiKey) {
83
- console.warn(`[runware-diag] liveCatalog[${cid}]: no apiKey, returning null`);
84
- return null;
85
- }
86
- try {
87
- const rows = await buildCatalogRows(apiKey, resolveBaseUrl(ctx.env));
88
- console.log(`[runware-diag] liveCatalog[${cid}]: SUCCESS, returning ${rows.length} rows`);
89
- return rows;
90
- }
91
- catch (err) {
92
- console.error(`[runware-diag] liveCatalog[${cid}]: FAILED after retries: ${err instanceof Error ? err.message : err}`);
55
+ if (!apiKey)
93
56
  return null;
94
- }
57
+ return buildCatalogRows(apiKey, resolveBaseUrl(ctx.env));
95
58
  },
96
59
  });
97
- console.log(`[runware-diag] index.ts register(api): all hooks registered`);
98
60
  },
99
61
  };
100
62
  export default entry;
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":"AAAA,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,6DAA6D;AAC7D,wEAAwE;AACxE,qBAAqB,EAAE,CAAC;AAExB,MAAM,SAAS,GAAG,2BAA2B,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,KAAK,GAAgB;IACzB,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,cAAc;IACpB,WAAW,EACT,yGAAyG;IAE3G,QAAQ,CAAC,GAAG;QACV,GAAG,CAAC,gBAAgB,CAAC;YACnB,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,cAAc;YACrB,QAAQ,EAAE,yBAAyB;YACnC,OAAO,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;YAC5C,IAAI,EAAE,EAAE;YACR,OAAO,EAAE;gBACP,KAAK,EAAE,QAAQ;gBACf,GAAG,EAAE,KAAK,EAAE,GAAmB,EAAE,EAAE;oBACjC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;oBAClC,IAAI,CAAC,MAAM;wBAAE,OAAO,IAAI,CAAC;oBACzB,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtE,OAAO,EAAE,QAAQ,EAAE,CAAC;gBACtB,CAAC;aACF;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,4BAA4B,CAAC;YAC/B,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,CAAC,MAAM,CAAC;YACf,WAAW,EAAE,KAAK,EAAE,GAAmB,EAAE,EAAE;gBACzC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,CAAC,MAAM;oBAAE,OAAO,IAAI,CAAC;gBACzB,OAAO,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,eAAe,KAAK,CAAC"}
package/dist/models.d.ts CHANGED
@@ -107,6 +107,5 @@ export declare function buildProvider(apiKey: string, baseUrl: string): Promise<
107
107
  * response.
108
108
  */
109
109
  export declare function buildCatalogRows(apiKey: string, baseUrl: string): Promise<ModelCatalogRow[]>;
110
- export declare function prewarmCatalog(): void;
111
110
  export {};
112
111
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD,eAAO,MAAM,WAAW,YAAY,CAAC;AACrC,eAAO,MAAM,cAAc,YAAY,CAAC;AACxC,eAAO,MAAM,gBAAgB,8BAA8B,CAAC;AAC5D,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAGnD,eAAO,MAAM,sBAAsB,SAAU,CAAC;AAC9C,eAAO,MAAM,kBAAkB,QAAS,CAAC;AACzC,QAAA,MAAM,YAAY;;;;CAAwD,CAAC;AAG3E,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,OAAO,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,oBAAoB,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQlD;AAMD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAI/E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE;IACjC,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C,GAAG,MAAM,GAAG,SAAS,CAqBrB;AA2CD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC,CAuBxB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,EAAE,CAAC,CAM5B;AA2BD,wBAAgB,cAAc,IAAI,IAAI,CA2BrC"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD,eAAO,MAAM,WAAW,YAAY,CAAC;AACrC,eAAO,MAAM,cAAc,YAAY,CAAC;AACxC,eAAO,MAAM,gBAAgB,8BAA8B,CAAC;AAC5D,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAGnD,eAAO,MAAM,sBAAsB,SAAU,CAAC;AAC9C,eAAO,MAAM,kBAAkB,QAAS,CAAC;AACzC,QAAA,MAAM,YAAY;;;;CAAwD,CAAC;AAG3E,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,OAAO,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,oBAAoB,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQlD;AAMD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAI/E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE;IACjC,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C,GAAG,MAAM,GAAG,SAAS,CAKrB;AA2CD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC,CASxB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,EAAE,CAAC,CAG5B"}
package/dist/models.js CHANGED
@@ -9,7 +9,6 @@
9
9
  * Runware hasn't published those limits fall back to conservative
10
10
  * provider defaults so OpenClaw never sees a missing value.
11
11
  */
12
- console.log(`[runware-diag] models.ts module loaded`);
13
12
  import { fetchModels } from "./catalog.js";
14
13
  export const PROVIDER_ID = "runware";
15
14
  export const PROVIDER_LABEL = "Runware";
@@ -67,20 +66,11 @@ export function resolveBaseUrl(env) {
67
66
  * managed deployment, where the user configured the key via the wizard).
68
67
  */
69
68
  export function resolveApiKey(ctx) {
70
- const fromCtx = ctx.env?.[API_KEY_ENV_VAR];
71
- const fromProc = process.env[API_KEY_ENV_VAR];
72
- const fromEnv = fromCtx ?? fromProc;
73
- if (typeof fromEnv === "string" && fromEnv.length > 0) {
74
- console.log(`[runware-diag] resolveApiKey: from ${fromCtx ? "ctx.env" : "process.env"} (length=${fromEnv.length})`);
69
+ const fromEnv = ctx.env?.[API_KEY_ENV_VAR] ?? process.env[API_KEY_ENV_VAR];
70
+ if (typeof fromEnv === "string" && fromEnv.length > 0)
75
71
  return fromEnv;
76
- }
77
72
  const fromAuth = ctx.resolveProviderApiKey?.(PROVIDER_ID).apiKey;
78
- if (typeof fromAuth === "string" && fromAuth.length > 0) {
79
- console.log(`[runware-diag] resolveApiKey: from ctx.resolveProviderApiKey (length=${fromAuth.length})`);
80
- return fromAuth;
81
- }
82
- console.warn(`[runware-diag] resolveApiKey: NOT FOUND. ctx.env has key=${ctx.env !== undefined && API_KEY_ENV_VAR in ctx.env}, process.env has key=${process.env[API_KEY_ENV_VAR] !== undefined}, ctx.resolveProviderApiKey=${typeof ctx.resolveProviderApiKey === "function"}`);
83
- return undefined;
73
+ return typeof fromAuth === "string" && fromAuth.length > 0 ? fromAuth : undefined;
84
74
  }
85
75
  function buildModelInput(model) {
86
76
  return model.inputModalities?.includes("image") ? ["text", "image"] : ["text"];
@@ -126,21 +116,13 @@ function buildCatalogRow(model) {
126
116
  * `/v1/models` from Runware via the TTL cache in `catalog.ts`.
127
117
  */
128
118
  export async function buildProvider(apiKey, baseUrl) {
129
- console.log(`[runware-diag] buildProvider: invoked with baseUrl=${baseUrl}, apiKey length=${apiKey.length}`);
130
119
  const models = await fetchModels(baseUrl, apiKey);
131
- const entries = models.map(buildModelEntry);
132
- console.log(`[runware-diag] buildProvider: returning ProviderShape with ${entries.length} models${entries.length > 0
133
- ? ` (sample: ${entries
134
- .slice(0, 5)
135
- .map((m) => m.id)
136
- .join(", ")})`
137
- : ""}`);
138
120
  return {
139
121
  baseUrl,
140
122
  apiKey,
141
123
  api: "openai-completions",
142
124
  timeoutSeconds: REQUEST_TIMEOUT_SECONDS,
143
- models: entries,
125
+ models: models.map(buildModelEntry),
144
126
  };
145
127
  }
146
128
  /**
@@ -150,53 +132,7 @@ export async function buildProvider(apiKey, baseUrl) {
150
132
  * response.
151
133
  */
152
134
  export async function buildCatalogRows(apiKey, baseUrl) {
153
- console.log(`[runware-diag] buildCatalogRows: invoked with baseUrl=${baseUrl}`);
154
135
  const models = await fetchModels(baseUrl, apiKey);
155
- const rows = models.map(buildCatalogRow);
156
- console.log(`[runware-diag] buildCatalogRows: returning ${rows.length} rows`);
157
- return rows;
158
- }
159
- /**
160
- * Kick off a background `/v1/models` fetch at module load so the catalog
161
- * cache is populated (or in-flight) by the time openclaw calls
162
- * `catalog.run`. Idempotent — `fetchModels` deduplicates concurrent calls
163
- * via its inflight promise, and a populated cache short-circuits
164
- * subsequent calls — so it's safe to invoke from multiple entry files
165
- * (index.ts and provider-discovery.ts).
166
- *
167
- * This is the main mitigation for "openclaw starts up and Runware's
168
- * model list is missing": the first /v1/models call is the slow one
169
- * (cold DNS, TLS handshake) and is the one most likely to time out
170
- * before openclaw's catalog resolution window closes. Pre-warming
171
- * moves that latency off the critical path — by the time openclaw asks
172
- * for the catalog the fetch is either complete (cache hit) or in flight
173
- * (inflight dedup), so the worst case is now "wait for one in-flight
174
- * request" instead of "start a new request from cold under whatever
175
- * deadline openclaw has".
176
- *
177
- * If RUNWARE_API_KEY isn't in env yet (out-of-cluster dev, unusually
178
- * early module load), the prewarm silently skips and the next
179
- * `catalog.run` invocation resolves the key from its `ctx` argument
180
- * — fetchWithRetries still gives us 3 attempts at that point.
181
- */
182
- let prewarmStarted = false;
183
- export function prewarmCatalog() {
184
- if (prewarmStarted)
185
- return;
186
- const apiKey = resolveApiKey({ env: process.env });
187
- if (!apiKey) {
188
- console.log("[runware-catalog] prewarm skipped — RUNWARE_API_KEY not in env yet");
189
- return;
190
- }
191
- prewarmStarted = true;
192
- const baseUrl = resolveBaseUrl(process.env);
193
- fetchModels(baseUrl, apiKey).then((models) => console.log(`[runware-catalog] prewarm loaded ${models.length} models`), (err) => {
194
- // Reset the flag so the next entry-point's prewarmCatalog() call
195
- // (or the catalog.run hook) re-attempts the fetch. fetchModels'
196
- // own retry loop already burned its attempts; on persistent failure
197
- // we let catalog.run fall through to its empty-provider path.
198
- prewarmStarted = false;
199
- console.warn(`[runware-catalog] prewarm failed (will retry on catalog.run): ${err instanceof Error ? err.message : err}`);
200
- });
136
+ return models.map(buildCatalogRow);
201
137
  }
202
138
  //# sourceMappingURL=models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider-discovery.d.ts","sourceRoot":"","sources":["../src/provider-discovery.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,gBAAgB,EAOjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAmBjD;;;;;;;;;;;;;;GAcG;AAEH,UAAU,YAAY;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE;AAYD,iBAAe,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,aAAa,CAAA;CAAE,CAAC,CA8CxF;AAED,QAAA,MAAM,wBAAwB;;;;;;;;;;CAU7B,CAAC;AAMF,eAAe,wBAAwB,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"provider-discovery.d.ts","sourceRoot":"","sources":["../src/provider-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,gBAAgB,EAMjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAUjD;;;;;;;;;;;;;;GAcG;AAEH,UAAU,YAAY;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE;AAYD,iBAAe,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,aAAa,CAAA;CAAE,CAAC,CAUxF;AAED,QAAA,MAAM,wBAAwB;;;;;;;;;;CAU7B,CAAC;AAEF,eAAe,wBAAwB,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,8 +1,4 @@
1
- console.log("═══════════════════════════════════════════════════\n" +
2
- ` Runware OpenClaw Provider v0.4.2 (debug build)\n` +
3
- ` provider-discovery.ts loaded at: ${new Date().toISOString()}\n` +
4
- "═══════════════════════════════════════════════════");
5
- import { API_KEY_ENV_VAR, BASE_URL_ENV_VAR, DEFAULT_BASE_URL, PROVIDER_ID, PROVIDER_LABEL, buildProvider, prewarmCatalog, resolveApiKey, resolveBaseUrl, } from "./models.js";
1
+ import { API_KEY_ENV_VAR, BASE_URL_ENV_VAR, DEFAULT_BASE_URL, PROVIDER_ID, PROVIDER_LABEL, buildProvider, resolveApiKey, resolveBaseUrl, } from "./models.js";
6
2
  import { startCostMetricPoller } from "./cost-metric.js";
7
3
  // Emit `openclaw.cost.usd` OpenTelemetry counter from runware transcript
8
4
  // entries. Compensates for openclaw's broken diagnostic-path pricing
@@ -10,14 +6,6 @@ import { startCostMetricPoller } from "./cost-metric.js";
10
6
  // cost-metric.ts for the full rationale. Idempotent: also called from
11
7
  // index.ts, second call is a no-op.
12
8
  startCostMetricPoller();
13
- // Pre-fetch /v1/models in the background so the catalog cache is populated
14
- // (or in flight) by the time openclaw calls catalog.run. Without this the
15
- // first /v1/models request sits on the gateway-startup critical path and
16
- // frequently times out on a cold TLS handshake to Runware, leaving openclaw
17
- // with an empty Runware catalog until a fresh restart succeeds. See
18
- // models.ts → prewarmCatalog() for rationale. Idempotent: also called from
19
- // index.ts, second call short-circuits on the prewarmStarted flag.
20
- prewarmCatalog();
21
9
  function emptyProvider(baseUrl) {
22
10
  return {
23
11
  baseUrl,
@@ -28,8 +16,6 @@ function emptyProvider(baseUrl) {
28
16
  };
29
17
  }
30
18
  async function runwareCatalogRun(ctx) {
31
- const cid = Math.random().toString(36).slice(2, 8);
32
- console.log(`[runware-diag] runwareCatalogRun[${cid}] CALLED at ${new Date().toISOString()}, ctx.env keys=[${Object.keys(ctx.env ?? {}).join(",") || "(none)"}], has resolveProviderApiKey=${typeof ctx.resolveProviderApiKey === "function"}`);
33
19
  const baseUrl = resolveBaseUrl(ctx.env);
34
20
  const apiKey = resolveApiKey(ctx);
35
21
  // No API key reachable yet (e.g. the gateway is starting up before the
@@ -37,33 +23,9 @@ async function runwareCatalogRun(ctx) {
37
23
  // an empty provider shape so openclaw treats the catalog as "known but
38
24
  // currently unpopulated" rather than crashing. The next invocation will
39
25
  // re-resolve and fill in models once the key is present.
40
- if (!apiKey) {
41
- console.warn(`[runware-diag] runwareCatalogRun[${cid}]: NO API KEY, returning EMPTY provider — openclaw will see 0 models`);
26
+ if (!apiKey)
42
27
  return { provider: emptyProvider(baseUrl) };
43
- }
44
- try {
45
- const provider = await buildProvider(apiKey, baseUrl);
46
- console.log(`[runware-diag] runwareCatalogRun[${cid}]: RETURNING provider with ${provider.models.length} models${provider.models.length > 0
47
- ? `, sample: ${provider.models
48
- .slice(0, 5)
49
- .map((m) => m.id)
50
- .join(", ")}`
51
- : " — openclaw will see EMPTY DROPDOWN"}`);
52
- return { provider };
53
- }
54
- catch (err) {
55
- // fetchModels already retried with exponential backoff (catalog.ts).
56
- // If we still failed every attempt, return an empty provider so
57
- // openclaw treats the catalog as "unpopulated, will retry" rather
58
- // than letting the throw bubble up — historically that bubble was
59
- // the proximate cause of "Runware models missing" after a gateway
60
- // restart, because the first cold-start /v1/models call timed out
61
- // and there was no recovery path. The next catalog.run invocation
62
- // will retry; if a concurrent retry is already in flight the
63
- // inflight dedup in fetchModels makes both share one upstream call.
64
- console.error(`[runware-diag] runwareCatalogRun[${cid}]: FAILED after retries, returning EMPTY provider: ${err instanceof Error ? err.message : err}`);
65
- return { provider: emptyProvider(baseUrl) };
66
- }
28
+ return { provider: await buildProvider(apiKey, baseUrl) };
67
29
  }
68
30
  const runwareProviderDiscovery = {
69
31
  id: PROVIDER_ID,
@@ -76,7 +38,6 @@ const runwareProviderDiscovery = {
76
38
  run: runwareCatalogRun,
77
39
  },
78
40
  };
79
- console.log(`[runware-diag] provider-discovery.ts default export READY: id=${runwareProviderDiscovery.id}, label=${runwareProviderDiscovery.label}, catalog.order=${runwareProviderDiscovery.catalog.order}, envVars=[${runwareProviderDiscovery.envVars.join(",")}]`);
80
41
  export default runwareProviderDiscovery;
81
42
  export { DEFAULT_BASE_URL };
82
43
  //# sourceMappingURL=provider-discovery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-discovery.js","sourceRoot":"","sources":["../src/provider-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-discovery.js","sourceRoot":"","sources":["../src/provider-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,aAAa,EACb,aAAa,EACb,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,yEAAyE;AACzE,qEAAqE;AACrE,+DAA+D;AAC/D,sEAAsE;AACtE,oCAAoC;AACpC,qBAAqB,EAAE,CAAC;AAuBxB,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO;QACL,OAAO;QACP,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,oBAAoB;QACzB,cAAc,EAAE,GAAG;QACnB,MAAM,EAAE,EAAE;KACX,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAiB;IAChD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC,uEAAuE;IACvE,0EAA0E;IAC1E,uEAAuE;IACvE,wEAAwE;IACxE,yDAAyD;IACzD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;IACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,wBAAwB,GAAG;IAC/B,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,cAAc;IACrB,QAAQ,EAAE,yBAAyB;IACnC,OAAO,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC5C,IAAI,EAAE,EAAE;IACR,OAAO,EAAE;QACP,KAAK,EAAE,MAAe;QACtB,GAAG,EAAE,iBAAiB;KACvB;CACF,CAAC;AAEF,eAAe,wBAAwB,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teith/openclaw-runware-provider",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "description": "OpenClaw provider plugin for Runware — unified OpenAI-compatible access to Claude, GPT, Gemini, Qwen, GLM, MiniMax, Kimi, and Gemma.",
5
5
  "license": "MIT",
6
6
  "type": "module",