@runtypelabs/cli 2.40.11 → 2.40.12

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 (2) hide show
  1. package/dist/index.js +27 -11
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -20400,7 +20400,7 @@ var UNSUCCESSFUL_STATUS_SET = new Set(
20400
20400
  UNSUCCESSFUL_AGENT_EXECUTION_STATUSES
20401
20401
  );
20402
20402
 
20403
- // ../shared/dist/chunk-EKFO52SZ.mjs
20403
+ // ../shared/dist/chunk-O334JSPV.mjs
20404
20404
  var CANONICAL_LOG_COLUMN_SET = {
20405
20405
  // @snake-case-ok-start: R2 SQL / Iceberg column naming convention
20406
20406
  event_id: true,
@@ -20413,7 +20413,7 @@ var CANONICAL_LOG_COLUMN_SET = {
20413
20413
  };
20414
20414
  var CANONICAL_LOG_COLUMNS = Object.keys(CANONICAL_LOG_COLUMN_SET);
20415
20415
 
20416
- // ../shared/dist/chunk-AH3ONIQB.mjs
20416
+ // ../shared/dist/chunk-CTJEYKNH.mjs
20417
20417
  var BUILTIN_TOOLS_LEAN = [
20418
20418
  { "id": "gpt-image-2-5", "name": "GPT Image 2.5", "category": "image_generation", "providers": ["multi"], "defaultConfig": { "size": "1024x1024", "quality": "low", "outputFormat": "png", "background": "auto" }, "requiresApiKey": true, "executionHint": "platform", "platformKeySupport": true },
20419
20419
  { "id": "gpt-image-2", "name": "GPT Image 2", "category": "image_generation", "providers": ["multi"], "defaultConfig": { "size": "1024x1024", "quality": "low", "outputFormat": "png", "background": "auto" }, "requiresApiKey": true, "executionHint": "platform", "platformKeySupport": true, "hidden": true, "deprecated": true },
@@ -20424,6 +20424,7 @@ var BUILTIN_TOOLS_LEAN = [
20424
20424
  { "id": "xai_live_search", "name": "xAI Live Search (deprecated)", "category": "web_search", "providers": ["xai"], "defaultConfig": { "mode": "auto", "returnCitations": true, "maxSearchResults": 20 }, "modelCompatibility": [{ "provider": "xai", "models": ["grok-4", "grok-4-fast", "grok-4.1-fast"] }], "requiresApiKey": true, "executionHint": "provider", "platformKeySupport": true, "hidden": true, "deprecated": true },
20425
20425
  { "id": "xai_x_search", "name": "xAI X Search", "category": "web_search", "providers": ["xai"], "defaultConfig": {}, "modelCompatibility": [{ "provider": "xai", "models": ["grok-4", "grok-4-fast"] }], "requiresApiKey": true, "executionHint": "provider", "platformKeySupport": true },
20426
20426
  { "id": "xai_web_search", "name": "xAI Web Search", "category": "web_search", "providers": ["xai"], "defaultConfig": {}, "modelCompatibility": [{ "provider": "xai", "models": ["grok-4", "grok-4-fast"] }], "requiresApiKey": true, "executionHint": "provider", "platformKeySupport": true },
20427
+ { "id": "google_search", "name": "Google Search", "category": "web_search", "providers": ["google"], "defaultConfig": { "includeImageSearch": false }, "modelCompatibility": [{ "provider": "google", "models": ["gemini-2.5-pro", "gemini-2.5-flash", "gemini-3-flash", "gemini-3-pro-preview", "gemini-3.1-pro", "gemini-3-1-flash-lite", "gemini-3.1-flash-lite"] }], "requiresApiKey": true, "executionHint": "provider", "platformKeySupport": true },
20427
20428
  { "id": "exa", "name": "Exa", "category": "web_search", "providers": ["multi"], "defaultConfig": { "searchType": "auto", "numResults": 5, "text": false, "summary": true, "highlights": true }, "requiresApiKey": true, "executionHint": "platform" },
20428
20429
  { "id": "firecrawl", "name": "Firecrawl", "category": "web_scraping", "providers": ["multi"], "defaultConfig": { "formats": ["markdown"], "onlyMainContent": true }, "requiresApiKey": true, "executionHint": "platform" },
20429
20430
  { "id": "massive", "name": "Massive Web Render", "category": "web_scraping", "providers": ["multi"], "defaultConfig": { "format": "markdown" }, "requiresApiKey": true, "executionHint": "platform" },
@@ -20677,7 +20678,7 @@ var BuiltInToolGroup = {
20677
20678
  TEMPORAL: "temporal"
20678
20679
  };
20679
20680
 
20680
- // ../shared/dist/chunk-OYPPCGMC.mjs
20681
+ // ../shared/dist/chunk-EAURMPCP.mjs
20681
20682
  var BUILTIN_TOOLS_REGISTRY = BUILTIN_TOOLS_LEAN;
20682
20683
  function formatSystemToolId(tool) {
20683
20684
  const prefix = tool.idPrefix ?? BuiltInToolIdPrefix.BUILTIN;
@@ -22863,7 +22864,7 @@ function isDataConnectionToolId(toolId) {
22863
22864
  return toolId.startsWith("dc:");
22864
22865
  }
22865
22866
 
22866
- // ../shared/dist/chunk-WY6VMAWI.mjs
22867
+ // ../shared/dist/chunk-HQXZXXZZ.mjs
22867
22868
  function sanitizeToolNameForAiSdk(name) {
22868
22869
  return name.replace(/[^a-zA-Z0-9_]/g, "_").toLowerCase().replace(/_+/g, "_").replace(/^_|_$/g, "");
22869
22870
  }
@@ -22882,10 +22883,22 @@ var DIRECT_PROVIDER_TOOL_OWNERS = /* @__PURE__ */ new Set([
22882
22883
  "openai",
22883
22884
  "xai"
22884
22885
  ]);
22885
- function resolveDirectProviderToolOwner(toolId) {
22886
+ var GATEWAY_CARRIED_PROVIDER_TOOL_OWNERS = /* @__PURE__ */ new Set(["google"]);
22887
+ var PROVIDER_TOOL_OWNERS = /* @__PURE__ */ new Set([
22888
+ ...DIRECT_PROVIDER_TOOL_OWNERS,
22889
+ ...GATEWAY_CARRIED_PROVIDER_TOOL_OWNERS
22890
+ ]);
22891
+ function ownerOf(toolId) {
22886
22892
  const entry = getBuiltInToolById(parseToolInstanceId(toolId).baseId);
22887
22893
  if (entry?.executionHint !== "provider") return void 0;
22888
- const owner = entry.providers?.[0];
22894
+ return entry.providers?.[0];
22895
+ }
22896
+ function resolveProviderToolOwner(toolId) {
22897
+ const owner = ownerOf(toolId);
22898
+ return owner && PROVIDER_TOOL_OWNERS.has(owner) ? owner : void 0;
22899
+ }
22900
+ function resolveDirectProviderToolOwner(toolId) {
22901
+ const owner = ownerOf(toolId);
22889
22902
  return owner && DIRECT_PROVIDER_TOOL_OWNERS.has(owner) ? owner : void 0;
22890
22903
  }
22891
22904
  var DEFAULT_BEDROCK_REGION = "us-east-1";
@@ -33699,16 +33712,19 @@ function validateToolCallStrategyNoneWithTools(flowSteps, buckets) {
33699
33712
  var PROVIDER_TOOLS_MIXED_OWNERS_CODE = "PROVIDER_TOOLS_MIXED_OWNERS";
33700
33713
  function collectProviderToolOwners(toolIds) {
33701
33714
  const toolIdsByOwner = {};
33702
- let winner;
33715
+ let firstOwner;
33716
+ let firstDirectOwner;
33703
33717
  if (Array.isArray(toolIds)) {
33704
33718
  for (const toolId of toolIds) {
33705
33719
  if (typeof toolId !== "string") continue;
33706
- const owner = resolveDirectProviderToolOwner(toolId);
33720
+ const owner = resolveProviderToolOwner(toolId);
33707
33721
  if (!owner) continue;
33708
- winner ?? (winner = owner);
33722
+ firstOwner ?? (firstOwner = owner);
33723
+ firstDirectOwner ?? (firstDirectOwner = resolveDirectProviderToolOwner(toolId));
33709
33724
  (toolIdsByOwner[owner] ?? (toolIdsByOwner[owner] = [])).push(toolId);
33710
33725
  }
33711
33726
  }
33727
+ const winner = firstDirectOwner ?? firstOwner;
33712
33728
  const owners = Object.keys(toolIdsByOwner).sort();
33713
33729
  return {
33714
33730
  owners,
@@ -33720,7 +33736,7 @@ function providerToolsMixedOwnersMessage(grouping) {
33720
33736
  const winner = grouping.winner ?? grouping.owners[0];
33721
33737
  const attached = grouping.owners.map((owner) => `${owner}: ${grouping.toolIdsByOwner[owner].join(", ")}`).join("; ");
33722
33738
  const losers = grouping.owners.filter((owner) => owner !== winner).flatMap((owner) => grouping.toolIdsByOwner[owner]).join(", ");
33723
- return `Provider-native tools from more than one provider are attached (${attached}), but one request reaches one provider, so only the ${winner} tools will run: the request is routed to ${winner} because its tool is listed first, and ${losers} will be sent as an inert function tool or dropped without a signal. Keep the tools of a single provider on this step, or move the other provider's tools to a separate prompt step whose model that provider serves.`;
33739
+ return `Provider-native tools from more than one provider are attached (${attached}), but one request reaches one provider, so only the ${winner} tools will run: the request is routed to ${winner}, and ${losers} will be sent as an inert function tool or dropped without a signal. Keep the tools of a single provider on this step, or move the other provider's tools to a separate prompt step whose model that provider serves.`;
33724
33740
  }
33725
33741
  function validateProviderToolMixedOwners(flowSteps, buckets) {
33726
33742
  for (const [stepIndex, step] of flowSteps.entries()) {
@@ -60656,7 +60672,7 @@ function applyTaskOptions(cmd) {
60656
60672
  "Disable session context indexing and search_session_history tool"
60657
60673
  ).option(
60658
60674
  "-t, --tools <tools...>",
60659
- "Enable built-in tools (e.g., exa, firecrawl, dalle, openai_web_search, anthropic_web_search)"
60675
+ "Enable built-in tools (e.g., exa, firecrawl, dalle, openai_web_search, anthropic_web_search, google_search)"
60660
60676
  ).option("--plain-text", "Disable markdown rendering in output").option(
60661
60677
  "--no-reasoning",
60662
60678
  "Disable model reasoning/thinking (enabled by default for supported models)"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runtypelabs/cli",
3
- "version": "2.40.11",
3
+ "version": "2.40.12",
4
4
  "description": "Command-line interface for Runtype AI platform",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -33,7 +33,7 @@
33
33
  "devDependencies": {
34
34
  "@modelcontextprotocol/server": "2.0.0",
35
35
  "@runtypelabs/persona": "4.22.0",
36
- "@runtypelabs/shared": "3.56.0",
36
+ "@runtypelabs/shared": "3.57.0",
37
37
  "@types/express": "^5.0.6",
38
38
  "@types/micromatch": "^4.0.9",
39
39
  "@types/node": "^25.3.3",