@blockrun/clawrouter 0.12.131 → 0.12.132

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/dist/index.js CHANGED
@@ -81254,50 +81254,49 @@ var plugin = {
81254
81254
  return;
81255
81255
  }
81256
81256
  installSkillsToWorkspace(api.logger);
81257
- if (isCompletionMode()) {
81258
- api.registerProvider(blockrunProvider);
81259
- return;
81260
- }
81261
81257
  const proc = process;
81262
81258
  const alreadyRegistered = !!proc.__clawrouterRegistered;
81263
81259
  proc.__clawrouterRegistered = true;
81264
- if (!alreadyRegistered) {
81265
- api.registerProvider(blockrunProvider);
81266
- api.registerImageGenerationProvider(buildImageGenerationProvider());
81267
- api.registerMusicGenerationProvider(buildMusicGenerationProvider());
81268
- injectModelsConfig(api.logger);
81269
- injectAuthProfile(api.logger);
81270
- const runtimePort = getProxyPort();
81271
- if (!api.config.models) {
81272
- api.config.models = { providers: {} };
81273
- }
81274
- if (!api.config.models.providers) {
81275
- api.config.models.providers = {};
81276
- }
81277
- api.config.models.providers.blockrun = {
81278
- baseUrl: `http://127.0.0.1:${runtimePort}/v1`,
81279
- api: "openai-completions",
81280
- // apiKey is required by pi-coding-agent's ModelRegistry for providers with models.
81281
- apiKey: "x402-proxy-handles-auth",
81282
- models: OPENCLAW_MODELS
81283
- };
81284
- api.logger.info("BlockRun provider registered (55+ models via x402)");
81285
- try {
81286
- const proxyBaseUrl = `http://127.0.0.1:${runtimePort}`;
81287
- const partnerTools = buildPartnerTools(proxyBaseUrl);
81288
- for (const tool of partnerTools) {
81289
- api.registerTool(tool);
81290
- }
81291
- if (partnerTools.length > 0) {
81292
- api.logger.info(
81293
- `Registered ${partnerTools.length} partner tool(s): ${partnerTools.map((t) => t.name).join(", ")}`
81294
- );
81295
- }
81296
- } catch (err) {
81297
- api.logger.warn(
81298
- `Failed to register partner tools: ${err instanceof Error ? err.message : String(err)}`
81260
+ if (isCompletionMode()) {
81261
+ if (!alreadyRegistered) api.registerProvider(blockrunProvider);
81262
+ return;
81263
+ }
81264
+ if (alreadyRegistered) return;
81265
+ api.registerProvider(blockrunProvider);
81266
+ api.registerImageGenerationProvider(buildImageGenerationProvider());
81267
+ api.registerMusicGenerationProvider(buildMusicGenerationProvider());
81268
+ injectModelsConfig(api.logger);
81269
+ injectAuthProfile(api.logger);
81270
+ const runtimePort = getProxyPort();
81271
+ if (!api.config.models) {
81272
+ api.config.models = { providers: {} };
81273
+ }
81274
+ if (!api.config.models.providers) {
81275
+ api.config.models.providers = {};
81276
+ }
81277
+ api.config.models.providers.blockrun = {
81278
+ baseUrl: `http://127.0.0.1:${runtimePort}/v1`,
81279
+ api: "openai-completions",
81280
+ // apiKey is required by pi-coding-agent's ModelRegistry for providers with models.
81281
+ apiKey: "x402-proxy-handles-auth",
81282
+ models: OPENCLAW_MODELS
81283
+ };
81284
+ api.logger.info("BlockRun provider registered (55+ models via x402)");
81285
+ try {
81286
+ const proxyBaseUrl = `http://127.0.0.1:${runtimePort}`;
81287
+ const partnerTools = buildPartnerTools(proxyBaseUrl);
81288
+ for (const tool of partnerTools) {
81289
+ api.registerTool(tool);
81290
+ }
81291
+ if (partnerTools.length > 0) {
81292
+ api.logger.info(
81293
+ `Registered ${partnerTools.length} partner tool(s): ${partnerTools.map((t) => t.name).join(", ")}`
81299
81294
  );
81300
81295
  }
81296
+ } catch (err) {
81297
+ api.logger.warn(
81298
+ `Failed to register partner tools: ${err instanceof Error ? err.message : String(err)}`
81299
+ );
81301
81300
  }
81302
81301
  api.registerCommand({
81303
81302
  name: "partners",
@@ -81334,7 +81333,6 @@ var plugin = {
81334
81333
  api.registerCommand(createStatsCommand());
81335
81334
  api.registerCommand(createExcludeCommand());
81336
81335
  api.logger.info("Commands registered: /wallet, /blockrun, /stats, /exclude");
81337
- if (alreadyRegistered) return;
81338
81336
  api.registerService({
81339
81337
  id: "clawrouter-proxy",
81340
81338
  start: () => {
@@ -81377,12 +81375,34 @@ var plugin = {
81377
81375
  api.logger.info("Not in gateway mode \u2014 proxy will start when gateway runs");
81378
81376
  return;
81379
81377
  }
81380
- startProxyInBackground(api).then(async () => {
81381
- const port = getProxyPort();
81382
- const healthy = await waitForProxyHealth(port, 15e3);
81383
- if (!healthy) {
81384
- api.logger.warn(`Proxy health check timed out, commands may not work immediately`);
81378
+ const proxyPort = getProxyPort();
81379
+ const portProbe = import("net").then(
81380
+ (net) => new Promise((resolve) => {
81381
+ const sock = net.connect({ host: "127.0.0.1", port: proxyPort }, () => {
81382
+ sock.destroy();
81383
+ resolve(true);
81384
+ });
81385
+ sock.on("error", () => resolve(false));
81386
+ sock.setTimeout(500, () => {
81387
+ sock.destroy();
81388
+ resolve(false);
81389
+ });
81390
+ })
81391
+ );
81392
+ portProbe.then((portInUse) => {
81393
+ if (portInUse) {
81394
+ api.logger.info(
81395
+ `Port ${proxyPort} already in use \u2014 skipping proxy startup (another instance running)`
81396
+ );
81397
+ return;
81385
81398
  }
81399
+ return startProxyInBackground(api).then(async () => {
81400
+ const port = getProxyPort();
81401
+ const healthy = await waitForProxyHealth(port, 15e3);
81402
+ if (!healthy) {
81403
+ api.logger.warn(`Proxy health check timed out, commands may not work immediately`);
81404
+ }
81405
+ });
81386
81406
  }).catch((err) => {
81387
81407
  api.logger.error(
81388
81408
  `Failed to start BlockRun proxy: ${err instanceof Error ? err.message : String(err)}`