@runtypelabs/cli 2.36.3 → 2.37.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 (2) hide show
  1. package/dist/index.js +1316 -696
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -610,7 +610,7 @@ var OAuthManager = class {
610
610
  // src/auth/api-key-manager.ts
611
611
  import { RuntypeApiError } from "@runtypelabs/sdk";
612
612
 
613
- // ../shared/dist/chunk-NQDOLEMM.mjs
613
+ // ../shared/dist/chunk-WSSJEVIH.mjs
614
614
  var MODEL_FAMILY_PROVIDER_IDS = {
615
615
  "claude-fable-5": {
616
616
  "anthropic": "claude-fable-5",
@@ -903,11 +903,18 @@ var MODEL_FAMILY_PROVIDER_IDS = {
903
903
  "vercel": "zai/glm-5.2-fast"
904
904
  },
905
905
  "glm-5-3": {
906
+ "mixlayer": "z-ai/glm-5.3",
906
907
  "vercel": "zai/glm-5.3"
907
908
  },
909
+ "glm-5-3-fast": {
910
+ "vercel": "zai/glm-5.3-fast"
911
+ },
908
912
  "glm-5-3-flash": {
909
913
  "vercel": "zai/glm-5.3-flash"
910
914
  },
915
+ "glm-5-3-promo-50": {
916
+ "vercel": "zai/glm-5.3-promo-50"
917
+ },
911
918
  "glm-5.2": {
912
919
  "mixlayer": "z-ai/glm-5.2",
913
920
  "vercel": "zai/glm-5.2"
@@ -916,11 +923,18 @@ var MODEL_FAMILY_PROVIDER_IDS = {
916
923
  "vercel": "zai/glm-5.2-fast"
917
924
  },
918
925
  "glm-5.3": {
926
+ "mixlayer": "z-ai/glm-5.3",
919
927
  "vercel": "zai/glm-5.3"
920
928
  },
929
+ "glm-5.3-fast": {
930
+ "vercel": "zai/glm-5.3-fast"
931
+ },
921
932
  "glm-5.3-flash": {
922
933
  "vercel": "zai/glm-5.3-flash"
923
934
  },
935
+ "glm-5.3-promo-50": {
936
+ "vercel": "zai/glm-5.3-promo-50"
937
+ },
924
938
  "gpt-4-1": {
925
939
  "openai": "gpt-4.1",
926
940
  "vercel": "openai/gpt-4.1"
@@ -1194,6 +1208,13 @@ var MODEL_FAMILY_PROVIDER_IDS = {
1194
1208
  "gpt-5.6-terra-fast": {
1195
1209
  "vercel": "openai/gpt-5.6-terra-fast"
1196
1210
  },
1211
+ "gpt-6-astra": {
1212
+ "openai": "gpt-6-astra",
1213
+ "vercel": "openai/gpt-6-astra"
1214
+ },
1215
+ "gpt-6-astra-fast": {
1216
+ "vercel": "openai/gpt-6-astra-fast"
1217
+ },
1197
1218
  "gpt-image-1-5": {
1198
1219
  "openai": "gpt-image-1.5"
1199
1220
  },
@@ -1379,9 +1400,21 @@ var MODEL_FAMILY_PROVIDER_IDS = {
1379
1400
  "ling-3-0-flash": {
1380
1401
  "vercel": "inclusionai/ling-3.0-flash"
1381
1402
  },
1403
+ "ling-3-0-flash-sante": {
1404
+ "vercel": "inclusionai/ling-3.0-flash-sante"
1405
+ },
1406
+ "ling-3-0-flash-sante-free": {
1407
+ "vercel": "inclusionai/ling-3.0-flash-sante-free"
1408
+ },
1382
1409
  "ling-3.0-flash": {
1383
1410
  "vercel": "inclusionai/ling-3.0-flash"
1384
1411
  },
1412
+ "ling-3.0-flash-sante": {
1413
+ "vercel": "inclusionai/ling-3.0-flash-sante"
1414
+ },
1415
+ "ling-3.0-flash-sante-free": {
1416
+ "vercel": "inclusionai/ling-3.0-flash-sante-free"
1417
+ },
1385
1418
  "llama-3.1-70b": {
1386
1419
  "vercel": "meta/llama-3.1-70b"
1387
1420
  },
@@ -1499,6 +1532,12 @@ var MODEL_FAMILY_PROVIDER_IDS = {
1499
1532
  "muse-spark-1-2-contributor": {
1500
1533
  "vercel": "meta/muse-spark-1.2-contributor"
1501
1534
  },
1535
+ "muse-spark-1-3": {
1536
+ "vercel": "meta/muse-spark-1.3"
1537
+ },
1538
+ "muse-spark-1-3-contributor": {
1539
+ "vercel": "meta/muse-spark-1.3-contributor"
1540
+ },
1502
1541
  "muse-spark-1.1": {
1503
1542
  "vercel": "meta/muse-spark-1.1"
1504
1543
  },
@@ -1508,6 +1547,12 @@ var MODEL_FAMILY_PROVIDER_IDS = {
1508
1547
  "muse-spark-1.2-contributor": {
1509
1548
  "vercel": "meta/muse-spark-1.2-contributor"
1510
1549
  },
1550
+ "muse-spark-1.3": {
1551
+ "vercel": "meta/muse-spark-1.3"
1552
+ },
1553
+ "muse-spark-1.3-contributor": {
1554
+ "vercel": "meta/muse-spark-1.3-contributor"
1555
+ },
1511
1556
  "namazu": {
1512
1557
  "vercel": "sakana/namazu"
1513
1558
  },
@@ -2277,376 +2322,6 @@ var CREATOR_TO_PROVIDER = {
2277
2322
  // Default fallback
2278
2323
  };
2279
2324
 
2280
- // ../shared/dist/chunk-V4HDWTHW.mjs
2281
- var BUILTIN_TOOLS_LEAN = [
2282
- { "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 },
2283
- { "id": "dalle", "name": "DALL-E Image Generation", "category": "image_generation", "providers": ["multi"], "defaultConfig": { "size": "1024x1024", "quality": "standard", "style": "vivid" }, "requiresApiKey": true, "executionHint": "platform", "platformKeySupport": true, "hidden": true, "deprecated": true },
2284
- { "id": "openai_web_search", "name": "OpenAI Web Search", "category": "web_search", "providers": ["openai"], "defaultConfig": { "searchContextSize": "medium", "userLocationType": "none" }, "modelCompatibility": [{ "provider": "openai", "models": ["gpt-4o", "gpt-4o-mini", "gpt-5", "gpt-5-mini", "gpt-5.4", "gpt-5.4-mini"] }], "requiresApiKey": true, "executionHint": "provider" },
2285
- { "id": "anthropic_web_search", "name": "Anthropic Web Search", "category": "web_search", "providers": ["anthropic"], "defaultConfig": { "maxUses": 5 }, "modelCompatibility": [{ "provider": "anthropic", "models": ["claude-opus-4", "claude-sonnet-4", "claude-opus-4-5", "claude-sonnet-4-5", "claude-opus-4-6", "claude-sonnet-4-6", "claude-haiku-4-5"] }], "requiresApiKey": true, "executionHint": "provider" },
2286
- { "id": "anthropic_web_fetch", "name": "Anthropic Web Fetch", "category": "web_search", "providers": ["anthropic"], "defaultConfig": { "maxUses": 1 }, "modelCompatibility": [{ "provider": "anthropic", "models": ["claude-sonnet-4", "claude-sonnet-4-5", "claude-sonnet-4-6"] }], "requiresApiKey": true, "executionHint": "provider" },
2287
- { "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 },
2288
- { "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 },
2289
- { "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 },
2290
- { "id": "exa", "name": "Exa", "category": "web_search", "providers": ["multi"], "defaultConfig": { "searchType": "auto", "numResults": 5, "text": false, "summary": true, "highlights": true }, "requiresApiKey": true, "executionHint": "platform" },
2291
- { "id": "firecrawl", "name": "Firecrawl", "category": "web_scraping", "providers": ["multi"], "defaultConfig": { "formats": ["markdown"], "onlyMainContent": true }, "requiresApiKey": true, "executionHint": "platform" },
2292
- { "id": "massive", "name": "Massive Web Render", "category": "web_scraping", "providers": ["multi"], "defaultConfig": { "format": "markdown" }, "requiresApiKey": true, "executionHint": "platform" },
2293
- { "id": "browser:screenshot", "name": "Browser Screenshot", "category": "browser", "toolGroup": "browser_fetch", "providers": ["multi"], "defaultConfig": { "screenshotOptions": { "type": "png", "fullPage": false } }, "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-screenshot"] },
2294
- { "id": "browser:content", "name": "Browser Content", "category": "browser", "toolGroup": "browser_fetch", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-content"] },
2295
- { "id": "browser:scrape", "name": "Browser Scrape", "category": "browser", "toolGroup": "browser_fetch", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-scrape"] },
2296
- { "id": "browser:json", "name": "Browser JSON", "category": "browser", "toolGroup": "browser_fetch", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-json"] },
2297
- { "id": "browser:markdown", "name": "Browser Markdown", "category": "browser", "toolGroup": "browser_fetch", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-markdown"] },
2298
- { "id": "browser:snapshot", "name": "Browser Snapshot", "category": "browser", "toolGroup": "browser_fetch", "providers": ["multi"], "defaultConfig": { "screenshotOptions": { "type": "png", "fullPage": false } }, "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-snapshot"] },
2299
- { "id": "browser:links", "name": "Browser Links", "category": "browser", "toolGroup": "browser_fetch", "providers": ["multi"], "defaultConfig": { "visibleLinksOnly": false }, "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-links"] },
2300
- { "id": "browser:open", "name": "Browser Open", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-open"] },
2301
- { "id": "browser:navigate", "name": "Browser Navigate", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-navigate"] },
2302
- { "id": "browser:click", "name": "Browser Click", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-click"] },
2303
- { "id": "browser:type", "name": "Browser Type", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-type"] },
2304
- { "id": "browser:scroll", "name": "Browser Scroll", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-scroll"] },
2305
- { "id": "browser:session-screenshot", "name": "Browser Session Screenshot", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-session-screenshot"] },
2306
- { "id": "browser:evaluate", "name": "Browser Evaluate", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-evaluate"] },
2307
- { "id": "browser:session-info", "name": "Browser Session Info", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-session-info"] },
2308
- { "id": "browser:close", "name": "Browser Close", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-close"] },
2309
- { "id": "browser:get_live_view", "name": "Browser Live View", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-get-live-view", "browser:live-view"] },
2310
- { "id": "browser:request_handoff", "name": "Browser Handoff to Human", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-request-handoff", "browser:handoff"] },
2311
- { "id": "browser:get_handoff_state", "name": "Browser Handoff State", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-get-handoff-state", "browser:handoff-state"] },
2312
- { "id": "browser:agent", "name": "Run Browser Agent", "category": "browser", "toolGroup": "browser_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "experimental": true, "aliases": ["browser-agent", "browser:task", "browser-task"] },
2313
- { "id": "vector-search", "name": "Semantic Search", "category": "knowledge_retrieval", "providers": ["multi"], "defaultConfig": { "limit": 5, "threshold": 0.3 }, "requiresApiKey": true, "executionHint": "platform", "hasConfigSchema": true },
2314
- { "id": "search_runtype_docs", "name": "Search Runtype Docs", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false, "experimental": true },
2315
- { "id": "elevenlabs-tts", "name": "ElevenLabs Text-to-Speech", "category": "text_to_speech", "toolGroup": "voice", "providers": ["multi"], "defaultConfig": { "voice_id": "rachel", "model_id": "eleven_multilingual_v2", "stability": 0.5, "similarity_boost": 0.75 }, "requiresApiKey": true, "executionHint": "platform", "platformKeySupport": true, "marginPercent": 20, "hidden": true },
2316
- { "id": "elevenlabs-stt", "name": "ElevenLabs Speech-to-Text", "category": "text_to_speech", "toolGroup": "voice", "providers": ["multi"], "defaultConfig": { "format": "wav", "model_id": "scribe_v2" }, "requiresApiKey": true, "executionHint": "platform", "platformKeySupport": true, "marginPercent": 20, "hidden": true },
2317
- { "id": "emit_artifact_markdown", "name": "Emit Artifact (Markdown)", "category": "artifact", "providers": ["multi"], "executionHint": "platform" },
2318
- { "id": "emit_artifact_component", "name": "Emit Artifact (Component)", "category": "artifact", "providers": ["multi"], "executionHint": "platform" },
2319
- { "id": "get_current_time", "name": "Get Current Time", "category": "temporal", "toolGroup": "temporal", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform" },
2320
- { "id": "convert_time", "name": "Convert Time Between Zones", "category": "temporal", "toolGroup": "temporal", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform" },
2321
- { "id": "time_difference", "name": "Time Difference", "category": "temporal", "toolGroup": "temporal", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform" },
2322
- { "id": "set_timezone", "name": "Set Conversation Timezone", "category": "temporal", "toolGroup": "temporal", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform" },
2323
- { "id": "set_reminder", "name": "Set Reminder", "category": "temporal", "toolGroup": "temporal", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform" },
2324
- { "id": "store_asset", "name": "Store Asset", "category": "file_operations", "toolGroup": "file_outputs", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2325
- { "id": "publish_page", "name": "Publish Page", "category": "file_operations", "toolGroup": "file_outputs", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2326
- { "id": "generate_pdf", "name": "Generate PDF", "category": "file_operations", "toolGroup": "file_outputs", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2327
- { "id": "propose_skill", "name": "Propose Skill", "category": "data_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2328
- { "id": "runtype_record_upsert", "name": "Upsert Record", "category": "data_management", "toolGroup": "record_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2329
- { "id": "runtype_record_batch_upsert", "name": "Batch Upsert Records", "category": "data_management", "toolGroup": "record_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2330
- { "id": "runtype_record_get", "name": "Get Record", "category": "data_management", "toolGroup": "record_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2331
- { "id": "runtype_record_list", "name": "List Records", "category": "data_management", "toolGroup": "record_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2332
- { "id": "runtype_record_delete", "name": "Delete Record", "category": "data_management", "toolGroup": "record_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2333
- { "id": "ucp_discover", "name": "UCP Discover", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2334
- { "id": "ucp_create_checkout", "name": "UCP Create Checkout", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2335
- { "id": "ucp_update_checkout", "name": "UCP Update Checkout", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2336
- { "id": "ucp_get_checkout", "name": "UCP Get Checkout", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2337
- { "id": "ucp_complete_checkout", "name": "UCP Complete Checkout", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2338
- { "id": "ucp_cancel_checkout", "name": "UCP Cancel Checkout", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2339
- { "id": "ucp_create_cart", "name": "UCP Create Cart", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2340
- { "id": "ucp_get_cart", "name": "UCP Get Cart", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2341
- { "id": "ucp_update_cart", "name": "UCP Update Cart", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2342
- { "id": "ucp_cancel_cart", "name": "UCP Cancel Cart", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2343
- { "id": "ucp_search_catalog", "name": "UCP Search Catalog", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2344
- { "id": "ucp_lookup_catalog", "name": "UCP Lookup Catalog", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2345
- { "id": "ucp_get_product", "name": "UCP Get Product", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2346
- { "id": "ucp_get_order", "name": "UCP Get Order", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2347
- { "id": "sandbox:exec", "name": "Sandbox Exec", "category": "sandbox", "toolGroup": "sandbox_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2348
- { "id": "sandbox:run_code", "name": "Sandbox Run Code", "category": "sandbox", "toolGroup": "sandbox_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2349
- { "id": "sandbox:write_file", "name": "Sandbox Write File", "category": "sandbox", "toolGroup": "sandbox_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2350
- { "id": "sandbox:read_file", "name": "Sandbox Read File", "category": "sandbox", "toolGroup": "sandbox_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2351
- { "id": "sandbox:expose_port", "name": "Sandbox Expose Port", "category": "sandbox", "toolGroup": "sandbox_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2352
- { "id": "sandbox:git_checkout", "name": "Sandbox Git Checkout", "category": "sandbox", "toolGroup": "sandbox_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2353
- { "id": "sandbox:create", "name": "Sandbox Create", "category": "sandbox", "toolGroup": "sandbox_session", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2354
- { "id": "sandbox:session_exec", "name": "Sandbox Session Exec", "category": "sandbox", "toolGroup": "sandbox_session", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2355
- { "id": "sandbox:session_run_code", "name": "Sandbox Session Run Code", "category": "sandbox", "toolGroup": "sandbox_session", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2356
- { "id": "sandbox:session_write_file", "name": "Sandbox Session Write File", "category": "sandbox", "toolGroup": "sandbox_session", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2357
- { "id": "sandbox:session_read_file", "name": "Sandbox Session Read File", "category": "sandbox", "toolGroup": "sandbox_session", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2358
- { "id": "sandbox:session_expose_port", "name": "Sandbox Session Expose Port", "category": "sandbox", "toolGroup": "sandbox_session", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2359
- { "id": "sandbox:session_git_checkout", "name": "Sandbox Session Git Checkout", "category": "sandbox", "toolGroup": "sandbox_session", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2360
- { "id": "sandbox:destroy", "name": "Sandbox Destroy", "category": "sandbox", "toolGroup": "sandbox_session", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2361
- { "id": "bash", "name": "Bash", "category": "sandbox", "toolGroup": "sandbox_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "hidden": true },
2362
- { "id": "bash_output", "name": "Bash Output", "category": "sandbox", "toolGroup": "sandbox_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "hidden": true },
2363
- { "id": "kill_process", "name": "Kill Process", "category": "sandbox", "toolGroup": "sandbox_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "hidden": true },
2364
- { "id": "list_processes", "name": "List Processes", "category": "sandbox", "toolGroup": "sandbox_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "hidden": true },
2365
- { "id": "read_file", "name": "Read File", "category": "sandbox", "toolGroup": "sandbox_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "hidden": true },
2366
- { "id": "write_file", "name": "Write File", "category": "sandbox", "toolGroup": "sandbox_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "hidden": true },
2367
- { "id": "edit_file", "name": "Edit File", "category": "sandbox", "toolGroup": "sandbox_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "hidden": true },
2368
- { "id": "expose_port", "name": "Expose Port", "category": "sandbox", "toolGroup": "sandbox_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "hidden": true },
2369
- { "id": "send_email", "name": "Send Email", "category": "messaging", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
2370
- { "id": "save_memory", "name": "Save to Memory", "category": "data_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2371
- { "id": "recall_memory", "name": "Recall from Memory", "category": "data_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2372
- { "id": "memory_summary", "name": "Get Memory Summary", "category": "data_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
2373
- { "id": "orthogonal:agentmail:create_draft", "idPrefix": "platform", "name": "AgentMail Create Draft", "category": "messaging", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2374
- { "id": "orthogonal:agentmail:create_inbox", "idPrefix": "platform", "name": "AgentMail Create Inbox", "category": "messaging", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2375
- { "id": "orthogonal:agentmail:reply_message", "idPrefix": "platform", "name": "AgentMail Reply to Email", "category": "messaging", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2376
- { "id": "orthogonal:agentmail:send_message", "idPrefix": "platform", "name": "AgentMail Send Email", "category": "messaging", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2377
- { "id": "orthogonal:andi:search", "idPrefix": "platform", "name": "Andi Search", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2378
- { "id": "orthogonal:apollo:companies_search", "idPrefix": "platform", "name": "Apollo Companies Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2379
- { "id": "orthogonal:apollo:organization_enrich", "idPrefix": "platform", "name": "Apollo Organization Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2380
- { "id": "orthogonal:apollo:people_match", "idPrefix": "platform", "name": "Apollo People Match", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2381
- { "id": "orthogonal:apollo:people_search", "idPrefix": "platform", "name": "Apollo People Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2382
- { "id": "orthogonal:aviato:company_enrich", "idPrefix": "platform", "name": "Aviato Company Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2383
- { "id": "orthogonal:aviato:company_funding_rounds", "idPrefix": "platform", "name": "Aviato Company Funding Rounds", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2384
- { "id": "orthogonal:aviato:company_search", "idPrefix": "platform", "name": "Aviato Company Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2385
- { "id": "orthogonal:aviato:marketmap_generate", "idPrefix": "platform", "name": "Aviato Market Map Generate", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2386
- { "id": "orthogonal:aviato:person_enrich", "idPrefix": "platform", "name": "Aviato Person Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2387
- { "id": "orthogonal:aviato:person_search", "idPrefix": "platform", "name": "Aviato Person Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2388
- { "id": "orthogonal:brand-dev:ai_query", "idPrefix": "platform", "name": "Brand.dev AI Query", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2389
- { "id": "orthogonal:brand-dev:retrieve", "idPrefix": "platform", "name": "Brand.dev Retrieve", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2390
- { "id": "orthogonal:brand-dev:retrieve_by_name", "idPrefix": "platform", "name": "Brand.dev Retrieve by Name", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2391
- { "id": "orthogonal:brand-dev:screenshot", "idPrefix": "platform", "name": "Brand.dev Screenshot", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2392
- { "id": "orthogonal:contactout:domain_enrich", "idPrefix": "platform", "name": "ContactOut Domain Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2393
- { "id": "orthogonal:contactout:email_enrich", "idPrefix": "platform", "name": "ContactOut Email Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2394
- { "id": "orthogonal:contactout:people_enrich", "idPrefix": "platform", "name": "ContactOut People Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2395
- { "id": "orthogonal:contactout:people_linkedin", "idPrefix": "platform", "name": "ContactOut LinkedIn Lookup", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2396
- { "id": "orthogonal:coresignal:company_enrich", "idPrefix": "platform", "name": "Coresignal Company Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2397
- { "id": "orthogonal:coresignal:company_multi_enrich", "idPrefix": "platform", "name": "Coresignal Company Multi-Source Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2398
- { "id": "orthogonal:coresignal:employee_collect", "idPrefix": "platform", "name": "Coresignal Employee Collect", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2399
- { "id": "orthogonal:crustdata:company_search", "idPrefix": "platform", "name": "Crustdata Company Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2400
- { "id": "orthogonal:crustdata:identify", "idPrefix": "platform", "name": "Crustdata Identify Company", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2401
- { "id": "orthogonal:crustdata:person_enrich", "idPrefix": "platform", "name": "Crustdata Person Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2402
- { "id": "orthogonal:crustdata:person_search", "idPrefix": "platform", "name": "Crustdata Person Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2403
- { "id": "orthogonal:didit:aml", "idPrefix": "platform", "name": "Didit AML Check", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2404
- { "id": "orthogonal:didit:database_validation", "idPrefix": "platform", "name": "Didit Database Validation", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2405
- { "id": "orthogonal:didit:email_send", "idPrefix": "platform", "name": "Didit Send Email", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2406
- { "id": "orthogonal:didit:phone_send", "idPrefix": "platform", "name": "Didit Send SMS / OTP", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2407
- { "id": "orthogonal:dome:crypto_prices_binance", "idPrefix": "platform", "name": "Dome Crypto Prices (Binance)", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2408
- { "id": "orthogonal:dome:kalshi_markets", "idPrefix": "platform", "name": "Dome Kalshi Markets", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2409
- { "id": "orthogonal:dome:polymarket_markets", "idPrefix": "platform", "name": "Dome Polymarket Markets", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2410
- { "id": "orthogonal:exa:answer", "idPrefix": "platform", "name": "Exa Answer", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2411
- { "id": "orthogonal:exa:contents", "idPrefix": "platform", "name": "Exa Contents", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2412
- { "id": "orthogonal:exa:search", "idPrefix": "platform", "name": "Exa Search", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2413
- { "id": "orthogonal:fantastic-jobs:active_ats", "idPrefix": "platform", "name": "Fantastic Jobs ATS Feed", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2414
- { "id": "orthogonal:fantastic-jobs:active_job_boards", "idPrefix": "platform", "name": "Fantastic Jobs Job Board Feed", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2415
- { "id": "orthogonal:fiber:company_search", "idPrefix": "platform", "name": "Fiber Company Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2416
- { "id": "orthogonal:fiber:email_to_person", "idPrefix": "platform", "name": "Fiber Email to Person", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2417
- { "id": "orthogonal:fiber:nl_company_search", "idPrefix": "platform", "name": "Fiber Natural Language Company Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2418
- { "id": "orthogonal:fiber:nl_people_search", "idPrefix": "platform", "name": "Fiber Natural Language People Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2419
- { "id": "orthogonal:fiber:people_search", "idPrefix": "platform", "name": "Fiber People Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2420
- { "id": "orthogonal:fiber:validate_email", "idPrefix": "platform", "name": "Fiber Validate Email", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2421
- { "id": "orthogonal:happenstance:research", "idPrefix": "platform", "name": "Happenstance Person Research", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2422
- { "id": "orthogonal:happenstance:research_status", "idPrefix": "platform", "name": "Happenstance Research Status", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2423
- { "id": "orthogonal:hunter:domain_search", "idPrefix": "platform", "name": "Hunter Domain Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2424
- { "id": "orthogonal:hunter:email_finder", "idPrefix": "platform", "name": "Hunter Email Finder", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2425
- { "id": "orthogonal:hunter:email_verifier", "idPrefix": "platform", "name": "Hunter Email Verifier", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2426
- { "id": "orthogonal:influencers-club:creator_enrich_email", "idPrefix": "platform", "name": "Influencers Club Creator Enrich by Email", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2427
- { "id": "orthogonal:influencers-club:creator_enrich_handle", "idPrefix": "platform", "name": "Influencers Club Creator Enrich by Handle", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2428
- { "id": "orthogonal:influencers-club:discovery", "idPrefix": "platform", "name": "Influencers Club Discovery", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2429
- { "id": "orthogonal:linkup:fetch", "idPrefix": "platform", "name": "LinkUp Fetch", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2430
- { "id": "orthogonal:linkup:search", "idPrefix": "platform", "name": "LinkUp Search", "category": "web_search", "providers": ["multi"], "defaultConfig": { "depth": "standard" }, "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2431
- { "id": "orthogonal:logo:dev_search", "idPrefix": "platform", "name": "Logo.dev Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2432
- { "id": "orthogonal:notte:scrape", "idPrefix": "platform", "name": "Notte Scrape", "category": "browser", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2433
- { "id": "orthogonal:notte:scrape_from_html", "idPrefix": "platform", "name": "Notte Scrape from HTML", "category": "browser", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2434
- { "id": "orthogonal:nyne:company_enrichment", "idPrefix": "platform", "name": "Nyne Company Enrichment", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2435
- { "id": "orthogonal:nyne:company_search", "idPrefix": "platform", "name": "Nyne Company Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2436
- { "id": "orthogonal:nyne:person_enrichment", "idPrefix": "platform", "name": "Nyne Person Enrichment", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2437
- { "id": "orthogonal:nyne:person_search", "idPrefix": "platform", "name": "Nyne Person Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2438
- { "id": "orthogonal:ocean-io:companies_search", "idPrefix": "platform", "name": "Ocean.io Companies Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2439
- { "id": "orthogonal:ocean-io:company_enrich", "idPrefix": "platform", "name": "Ocean.io Company Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2440
- { "id": "orthogonal:ocean-io:people_search", "idPrefix": "platform", "name": "Ocean.io People Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2441
- { "id": "orthogonal:ocean-io:person_enrich", "idPrefix": "platform", "name": "Ocean.io Person Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2442
- { "id": "orthogonal:olostep:answers", "idPrefix": "platform", "name": "Olostep Answers", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2443
- { "id": "orthogonal:olostep:crawls", "idPrefix": "platform", "name": "Olostep Crawl", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2444
- { "id": "orthogonal:olostep:maps", "idPrefix": "platform", "name": "Olostep Map", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2445
- { "id": "orthogonal:olostep:scrapes", "idPrefix": "platform", "name": "Olostep Scrapes", "category": "web_scraping", "providers": ["multi"], "defaultConfig": { "formats": ["markdown"] }, "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2446
- { "id": "orthogonal:openmart:enrich_company", "idPrefix": "platform", "name": "Openmart Enrich Company", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2447
- { "id": "orthogonal:openmart:search", "idPrefix": "platform", "name": "Openmart Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2448
- { "id": "orthogonal:peopledatalabs:company_enrich", "idPrefix": "platform", "name": "People Data Labs Company Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2449
- { "id": "orthogonal:peopledatalabs:company_search", "idPrefix": "platform", "name": "People Data Labs Company Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2450
- { "id": "orthogonal:peopledatalabs:person_enrich", "idPrefix": "platform", "name": "People Data Labs Person Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2451
- { "id": "orthogonal:peopledatalabs:person_search", "idPrefix": "platform", "name": "People Data Labs Person Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2452
- { "id": "orthogonal:perplexity:search", "idPrefix": "platform", "name": "Perplexity Search", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2453
- { "id": "orthogonal:precip:daily", "idPrefix": "platform", "name": "Precip Daily Weather", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2454
- { "id": "orthogonal:precip:hourly", "idPrefix": "platform", "name": "Precip Hourly Weather", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2455
- { "id": "orthogonal:precip:last_48", "idPrefix": "platform", "name": "Precip Last 48h Rainfall", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2456
- { "id": "orthogonal:predictleads:company", "idPrefix": "platform", "name": "PredictLeads Company", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2457
- { "id": "orthogonal:predictleads:discover_companies", "idPrefix": "platform", "name": "PredictLeads Discover Companies", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2458
- { "id": "orthogonal:predictleads:discover_job_openings", "idPrefix": "platform", "name": "PredictLeads Discover Job Openings", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2459
- { "id": "orthogonal:predictleads:discover_news", "idPrefix": "platform", "name": "PredictLeads Discover News Events", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2460
- { "id": "orthogonal:riveter:scrape", "idPrefix": "platform", "name": "Riveter Scrape", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2461
- { "id": "orthogonal:scrapecreators:facebook_ad_library", "idPrefix": "platform", "name": "ScrapeCreators Facebook Ad Library", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2462
- { "id": "orthogonal:scrapecreators:google_search", "idPrefix": "platform", "name": "ScrapeCreators Google Search", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2463
- { "id": "orthogonal:scrapecreators:instagram_profile", "idPrefix": "platform", "name": "ScrapeCreators Instagram Profile", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2464
- { "id": "orthogonal:scrapecreators:linkedin_company", "idPrefix": "platform", "name": "ScrapeCreators LinkedIn Company", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2465
- { "id": "orthogonal:scrapecreators:linkedin_profile", "idPrefix": "platform", "name": "ScrapeCreators LinkedIn Profile", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2466
- { "id": "orthogonal:scrapecreators:reddit_post_comments", "idPrefix": "platform", "name": "ScrapeCreators Reddit Post Comments", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2467
- { "id": "orthogonal:scrapecreators:reddit_search", "idPrefix": "platform", "name": "ScrapeCreators Reddit Search", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2468
- { "id": "orthogonal:scrapecreators:reddit_subreddit", "idPrefix": "platform", "name": "ScrapeCreators Reddit Subreddit", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2469
- { "id": "orthogonal:scrapecreators:tiktok_profile", "idPrefix": "platform", "name": "ScrapeCreators TikTok Profile", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2470
- { "id": "orthogonal:scrapecreators:twitter_profile", "idPrefix": "platform", "name": "ScrapeCreators Twitter/X Profile", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2471
- { "id": "orthogonal:scrapecreators:twitter_tweets", "idPrefix": "platform", "name": "ScrapeCreators Twitter/X Tweets", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2472
- { "id": "orthogonal:scrapecreators:youtube_channel", "idPrefix": "platform", "name": "ScrapeCreators YouTube Channel", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2473
- { "id": "orthogonal:scrapecreators:youtube_video", "idPrefix": "platform", "name": "ScrapeCreators YouTube Video", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2474
- { "id": "orthogonal:scrapegraphai:extract", "idPrefix": "platform", "name": "ScrapeGraphAI Extract", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2475
- { "id": "orthogonal:scrapegraphai:scrape", "idPrefix": "platform", "name": "ScrapeGraphAI Scrape", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2476
- { "id": "orthogonal:scrapegraphai:search", "idPrefix": "platform", "name": "ScrapeGraphAI Search", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2477
- { "id": "orthogonal:sixtyfour:enrich_company", "idPrefix": "platform", "name": "Sixtyfour Enrich Company", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2478
- { "id": "orthogonal:sixtyfour:enrich_lead", "idPrefix": "platform", "name": "Sixtyfour Enrich Lead", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2479
- { "id": "orthogonal:sixtyfour:find_email", "idPrefix": "platform", "name": "Sixtyfour Find Email", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2480
- { "id": "orthogonal:sixtyfour:find_phone", "idPrefix": "platform", "name": "Sixtyfour Find Phone", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2481
- { "id": "orthogonal:tavily:extract", "idPrefix": "platform", "name": "Tavily Extract", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2482
- { "id": "orthogonal:tavily:research", "idPrefix": "platform", "name": "Tavily Research", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2483
- { "id": "orthogonal:tavily:search", "idPrefix": "platform", "name": "Tavily Search", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2484
- { "id": "orthogonal:textbelt:send_sms", "idPrefix": "platform", "name": "Textbelt Send SMS", "category": "messaging", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2485
- { "id": "orthogonal:tomba:domain_search", "idPrefix": "platform", "name": "Tomba Domain Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2486
- { "id": "orthogonal:tomba:email_finder", "idPrefix": "platform", "name": "Tomba Email Finder", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2487
- { "id": "orthogonal:tomba:email_verifier", "idPrefix": "platform", "name": "Tomba Email Verifier", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2488
- { "id": "orthogonal:tomba:enrich", "idPrefix": "platform", "name": "Tomba Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
2489
- { "id": "orthogonal:tomba:linkedin", "idPrefix": "platform", "name": "Tomba LinkedIn Lookup", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" }
2490
- ];
2491
-
2492
- // ../shared/dist/chunk-AMVH26WM.mjs
2493
- var BuiltInToolProvider = {
2494
- OPENAI: "openai",
2495
- ANTHROPIC: "anthropic",
2496
- GOOGLE: "google",
2497
- XAI: "xai",
2498
- MULTI: "multi"
2499
- // Available across multiple providers
2500
- };
2501
- var BuiltInToolIdPrefix = {
2502
- BUILTIN: "builtin",
2503
- PLATFORM: "platform"
2504
- };
2505
-
2506
- // ../shared/dist/chunk-OLHNGSFD.mjs
2507
- function sanitizeToolNameForAiSdk(name) {
2508
- return name.replace(/[^a-zA-Z0-9_]/g, "_").toLowerCase().replace(/_+/g, "_").replace(/^_|_$/g, "");
2509
- }
2510
- function toolNamesCollideForAiSdk(left, right) {
2511
- return sanitizeToolNameForAiSdk(left) === sanitizeToolNameForAiSdk(right);
2512
- }
2513
- var RUNTYPE_SET_STATE_TOOL_NAME = "runtype_set_state";
2514
- function isReservedRuntypeToolName(name) {
2515
- return toolNamesCollideForAiSdk(name, RUNTYPE_SET_STATE_TOOL_NAME);
2516
- }
2517
- function reservedToolNameMessage(subject, name) {
2518
- return `${subject} "${name}" collides with the reserved tool name "${RUNTYPE_SET_STATE_TOOL_NAME}" (the agent state write tool). Tool names are lowercased and non-alphanumeric characters become "_" before the model sees them, so every spelling that normalizes to it is reserved with it. "runtype_" is a reserved tool namespace. Rename the tool.`;
2519
- }
2520
- var BUILTIN_TOOLS_REGISTRY = BUILTIN_TOOLS_LEAN;
2521
- function formatSystemToolId(tool) {
2522
- const prefix = tool.idPrefix ?? BuiltInToolIdPrefix.BUILTIN;
2523
- return `${prefix}:${tool.id}`;
2524
- }
2525
- function getAllBuiltInTools(opts) {
2526
- return BUILTIN_TOOLS_REGISTRY.filter(
2527
- (tool) => !tool.hidden && !(opts?.hideExperimental && tool.experimental)
2528
- );
2529
- }
2530
- function getBuiltInToolById(toolId) {
2531
- const cleanId = toolId.replace(/^(builtin|platform):/, "");
2532
- return BUILTIN_TOOLS_REGISTRY.find(
2533
- (tool) => tool.id === cleanId || tool.aliases?.includes(cleanId)
2534
- );
2535
- }
2536
- function isToolCompatibleWithModel(toolId, modelId, provider) {
2537
- const tool = getBuiltInToolById(toolId);
2538
- if (!tool) return false;
2539
- const providerKey = provider;
2540
- if (!tool.providers.includes(providerKey) && !tool.providers.includes(BuiltInToolProvider.MULTI)) {
2541
- return false;
2542
- }
2543
- if (!tool.modelCompatibility || tool.modelCompatibility.length === 0) {
2544
- return true;
2545
- }
2546
- const compatibility = tool.modelCompatibility.find((c2) => c2.provider === providerKey);
2547
- if (!compatibility) return true;
2548
- if (compatibility.models.length === 0) return true;
2549
- return compatibility.models.some((m2) => modelId.includes(m2));
2550
- }
2551
- var DEFAULT_BEDROCK_REGION = "us-east-1";
2552
- var DEFAULT_VERTEX_LOCATION = "us-central1";
2553
- var PROVIDER_SECRET_SPECS = [
2554
- {
2555
- providerId: "mock",
2556
- matches: (m2) => m2.startsWith("mock/"),
2557
- secretNames: []
2558
- },
2559
- {
2560
- providerId: "google-vertex-anthropic",
2561
- // WHY(docs/why/packages/shared/src.md#must-come-before-google-vertex-shares-vertex-pre): must come before google-vertex (shares vertex prefix) and anthropic (matches */claude-*)
2562
- matches: (m2) => m2.startsWith("vertex-anthropic/"),
2563
- secretNames: ["GOOGLE_VERTEX_PROJECT", "GOOGLE_VERTEX_CREDENTIALS"],
2564
- optionalSettings: [{ name: "GOOGLE_VERTEX_LOCATION", defaultValue: DEFAULT_VERTEX_LOCATION }]
2565
- },
2566
- {
2567
- providerId: "google-vertex",
2568
- // WHY(docs/why/packages/shared/src.md#must-come-before-google-matches-gemini): must come before google (matches */gemini-*)
2569
- matches: (m2) => m2.startsWith("vertex/"),
2570
- secretNames: ["GOOGLE_VERTEX_PROJECT", "GOOGLE_VERTEX_CREDENTIALS"],
2571
- optionalSettings: [{ name: "GOOGLE_VERTEX_LOCATION", defaultValue: DEFAULT_VERTEX_LOCATION }]
2572
- },
2573
- {
2574
- providerId: "vercel-gateway",
2575
- // WHY(docs/why/packages/shared/src.md#must-come-before-openai-since-vercel-openai-gpt): must come before openai, since vercel/openai/gpt-4o would otherwise match openai
2576
- matches: (m2) => m2.startsWith("vercel/") || m2.startsWith("vercel."),
2577
- secretNames: ["VERCEL_AI_GATEWAY_API_KEY"]
2578
- },
2579
- {
2580
- providerId: "cloudflare-gateway",
2581
- // WHY(docs/why/packages/shared/src.md#must-come-before-workers-ai-since-cloudflare-pro): must come before workers-ai, since cloudflare/<provider>/<model> needs gateway routing
2582
- matches: (m2) => m2.startsWith("cloudflare/") || m2.startsWith("cloudflare:"),
2583
- secretNames: ["CF_ACCOUNT_ID", "CF_AI_GATEWAY_ID"]
2584
- },
2585
- {
2586
- providerId: "bedrock",
2587
- matches: (m2) => m2.startsWith("bedrock/"),
2588
- secretNames: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY"],
2589
- optionalSettings: [{ name: "AWS_REGION", defaultValue: DEFAULT_BEDROCK_REGION }]
2590
- },
2591
- {
2592
- providerId: "tinfoil",
2593
- matches: (m2) => m2.startsWith("tinfoil/") || m2.startsWith("tinfoil:"),
2594
- secretNames: ["TINFOIL_API_KEY"]
2595
- },
2596
- {
2597
- providerId: "generic-openai",
2598
- // WHY(docs/why/packages/shared/src.md#must-come-before-openai-since-it-shares-the-open): must come before openai, since it shares the openai substring in its prefix
2599
- matches: (m2) => m2.startsWith("generic-openai/") || m2.startsWith("generic-openai:"),
2600
- secretNames: ["GENERIC_OPENAI_API_KEY", "GENERIC_OPENAI_BASE_URL"]
2601
- },
2602
- {
2603
- providerId: "workers-ai",
2604
- // WHY(docs/why/packages/shared/src.md#uses-a-cf-platform-binding-not-a-secret-so-secre): uses a CF platform binding not a secret, so secretNames is intentionally empty
2605
- matches: (m2) => m2.startsWith("@cf/") || m2.startsWith("workers-ai/"),
2606
- secretNames: []
2607
- },
2608
- {
2609
- providerId: "anthropic",
2610
- matches: (m2) => m2.startsWith("anthropic/") || m2.startsWith("claude-") || m2.includes("/claude-"),
2611
- secretNames: ["ANTHROPIC_API_KEY"]
2612
- },
2613
- {
2614
- providerId: "openai",
2615
- matches: (m2) => m2.startsWith("openai/") || m2.startsWith("gpt-") || m2.startsWith("o1-") || m2.startsWith("o3-") || m2.startsWith("o4-") || m2.includes("/gpt-"),
2616
- secretNames: ["OPENAI_API_KEY"]
2617
- },
2618
- {
2619
- providerId: "google",
2620
- matches: (m2) => m2.startsWith("google/") || m2.startsWith("gemini-") || m2.includes("/gemini-"),
2621
- secretNames: ["GOOGLE_API_KEY"]
2622
- },
2623
- {
2624
- providerId: "mixlayer",
2625
- // WHY(docs/why/packages/shared/src.md#z-ai-is-mixlayers-glm-namespace-distinct-from-ve): z-ai/ is Mixlayer's GLM namespace, distinct from Vercel Gateway's zai/ spelling of the same model
2626
- matches: (m2) => m2.startsWith("mixlayer/") || m2.startsWith("modelsocket/") || m2.startsWith("qwen/") || m2.startsWith("z-ai/") || m2.startsWith("kimi-") || m2.includes("/kimi-") || /(?:^|\/)qwen3[.-]5-\d+b(?:-a\d+b)?$/i.test(m2),
2627
- secretNames: ["MIXLAYER_API_KEY"]
2628
- },
2629
- {
2630
- providerId: "xai",
2631
- matches: (m2) => m2.startsWith("grok-") || m2.startsWith("xai/"),
2632
- secretNames: ["XAI_API_KEY"]
2633
- }
2634
- ];
2635
- function resolveModelSecretNames(model) {
2636
- const lower = model.toLowerCase();
2637
- for (const spec of PROVIDER_SECRET_SPECS) {
2638
- if (spec.matches(lower)) return [...spec.secretNames];
2639
- }
2640
- return [];
2641
- }
2642
- function resolveModelOptionalSettings(model) {
2643
- const lower = model.toLowerCase();
2644
- for (const spec of PROVIDER_SECRET_SPECS) {
2645
- if (spec.matches(lower)) return [...spec.optionalSettings ?? []];
2646
- }
2647
- return [];
2648
- }
2649
-
2650
2325
  // ../../node_modules/.pnpm/zod@4.5.2/node_modules/zod/v4/classic/external.js
2651
2326
  var external_exports = {};
2652
2327
  __export(external_exports, {
@@ -6008,18 +5683,18 @@ var $ZodArray = /* @__PURE__ */ $constructor("$ZodArray", (inst, def) => {
6008
5683
  };
6009
5684
  });
6010
5685
  function handlePropertyResult(result, final, key, input2, optin, optout) {
6011
- const isPresent = key in input2;
5686
+ const isPresent2 = key in input2;
6012
5687
  const isOptionalOut = optout === "optional";
6013
- if (!isPresent && isOptionalOut && optin === "optional") {
5688
+ if (!isPresent2 && isOptionalOut && optin === "optional") {
6014
5689
  return;
6015
5690
  }
6016
5691
  if (result.issues.length) {
6017
- if (optin !== void 0 && isOptionalOut && !isPresent) {
5692
+ if (optin !== void 0 && isOptionalOut && !isPresent2) {
6018
5693
  return;
6019
5694
  }
6020
5695
  final.issues.push(...prefixIssues(key, result.issues));
6021
5696
  }
6022
- if (!isPresent && optin === void 0) {
5697
+ if (!isPresent2 && optin === void 0) {
6023
5698
  if (!result.issues.length) {
6024
5699
  final.issues.push({
6025
5700
  code: "invalid_type",
@@ -6031,7 +5706,7 @@ function handlePropertyResult(result, final, key, input2, optin, optout) {
6031
5706
  return;
6032
5707
  }
6033
5708
  if (result.value === void 0) {
6034
- if (isPresent) {
5709
+ if (isPresent2) {
6035
5710
  final.value[key] = void 0;
6036
5711
  }
6037
5712
  } else {
@@ -6205,7 +5880,7 @@ var $ZodObjectJIT = /* @__PURE__ */ $constructor("$ZodObjectJIT", (inst, def) =>
6205
5880
  continue;
6206
5881
  const id = ids[key];
6207
5882
  const k2 = typeof key === "symbol" ? `syms[${syms.indexOf(key)}]` : esc(key);
6208
- const isPresent = `${k2} in input`;
5883
+ const isPresent2 = `${k2} in input`;
6209
5884
  const schema = shape[key];
6210
5885
  const optin = schema?._zod?.optin;
6211
5886
  const isOptionalIn = optin !== void 0;
@@ -6214,7 +5889,7 @@ var $ZodObjectJIT = /* @__PURE__ */ $constructor("$ZodObjectJIT", (inst, def) =>
6214
5889
  if (isOptionalIn && isOptionalOut) {
6215
5890
  const assign = optin === "optional" ? `${id}_present` : `${id}.value !== undefined || ${id}_present`;
6216
5891
  doc.write(`
6217
- const ${id}_present = ${isPresent};
5892
+ const ${id}_present = ${isPresent2};
6218
5893
  if (!${id}.issues.length || ${id}_present) {
6219
5894
  if (${id}.issues.length) {${prefixStr(id, k2)}
6220
5895
  }
@@ -6227,7 +5902,7 @@ var $ZodObjectJIT = /* @__PURE__ */ $constructor("$ZodObjectJIT", (inst, def) =>
6227
5902
  `);
6228
5903
  } else if (!isOptionalIn) {
6229
5904
  doc.write(`
6230
- const ${id}_present = ${isPresent};
5905
+ const ${id}_present = ${isPresent2};
6231
5906
  if (${id}.issues.length) {${prefixStr(id, k2)}
6232
5907
  }
6233
5908
  if (!${id}_present && !${id}.issues.length) {
@@ -6250,7 +5925,7 @@ var $ZodObjectJIT = /* @__PURE__ */ $constructor("$ZodObjectJIT", (inst, def) =>
6250
5925
  }
6251
5926
 
6252
5927
  if (${id}.value === undefined) {
6253
- if (${isPresent}) {
5928
+ if (${isPresent2}) {
6254
5929
  newResult[${k2}] = undefined;
6255
5930
  }
6256
5931
  } else {
@@ -6710,13 +6385,13 @@ function handleTupleResult(result, final, index) {
6710
6385
  function handleTupleResults(itemResults, final, items, input2, optoutStart) {
6711
6386
  for (let i = 0; i < items.length; i++) {
6712
6387
  const r = itemResults[i];
6713
- const isPresent = i < input2.length;
6714
- if (!isPresent && i >= optoutStart && items[i]._zod.optin === "optional") {
6388
+ const isPresent2 = i < input2.length;
6389
+ if (!isPresent2 && i >= optoutStart && items[i]._zod.optin === "optional") {
6715
6390
  final.value.length = i;
6716
6391
  break;
6717
6392
  }
6718
6393
  if (r.issues.length) {
6719
- if (!isPresent && i >= optoutStart) {
6394
+ if (!isPresent2 && i >= optoutStart) {
6720
6395
  final.value.length = i;
6721
6396
  break;
6722
6397
  }
@@ -21363,6 +21038,645 @@ function date4(params) {
21363
21038
  return _coercedDate(ZodDate, params);
21364
21039
  }
21365
21040
 
21041
+ // ../shared/dist/chunk-ADH7VBQB.mjs
21042
+ var BUILTIN_TOOLS_LEAN = [
21043
+ { "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 },
21044
+ { "id": "dalle", "name": "DALL-E Image Generation", "category": "image_generation", "providers": ["multi"], "defaultConfig": { "size": "1024x1024", "quality": "standard", "style": "vivid" }, "requiresApiKey": true, "executionHint": "platform", "platformKeySupport": true, "hidden": true, "deprecated": true },
21045
+ { "id": "openai_web_search", "name": "OpenAI Web Search", "category": "web_search", "providers": ["openai"], "defaultConfig": { "searchContextSize": "medium", "userLocationType": "none" }, "modelCompatibility": [{ "provider": "openai", "models": ["gpt-4o", "gpt-4o-mini", "gpt-5", "gpt-5-mini", "gpt-5.4", "gpt-5.4-mini"] }], "requiresApiKey": true, "executionHint": "provider" },
21046
+ { "id": "anthropic_web_search", "name": "Anthropic Web Search", "category": "web_search", "providers": ["anthropic"], "defaultConfig": { "maxUses": 5 }, "modelCompatibility": [{ "provider": "anthropic", "models": ["claude-opus-4", "claude-sonnet-4", "claude-opus-4-5", "claude-sonnet-4-5", "claude-opus-4-6", "claude-sonnet-4-6", "claude-haiku-4-5"] }], "requiresApiKey": true, "executionHint": "provider" },
21047
+ { "id": "anthropic_web_fetch", "name": "Anthropic Web Fetch", "category": "web_search", "providers": ["anthropic"], "defaultConfig": { "maxUses": 1 }, "modelCompatibility": [{ "provider": "anthropic", "models": ["claude-sonnet-4", "claude-sonnet-4-5", "claude-sonnet-4-6"] }], "requiresApiKey": true, "executionHint": "provider" },
21048
+ { "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 },
21049
+ { "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 },
21050
+ { "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 },
21051
+ { "id": "exa", "name": "Exa", "category": "web_search", "providers": ["multi"], "defaultConfig": { "searchType": "auto", "numResults": 5, "text": false, "summary": true, "highlights": true }, "requiresApiKey": true, "executionHint": "platform" },
21052
+ { "id": "firecrawl", "name": "Firecrawl", "category": "web_scraping", "providers": ["multi"], "defaultConfig": { "formats": ["markdown"], "onlyMainContent": true }, "requiresApiKey": true, "executionHint": "platform" },
21053
+ { "id": "massive", "name": "Massive Web Render", "category": "web_scraping", "providers": ["multi"], "defaultConfig": { "format": "markdown" }, "requiresApiKey": true, "executionHint": "platform" },
21054
+ { "id": "browser:screenshot", "name": "Browser Screenshot", "category": "browser", "toolGroup": "browser_fetch", "providers": ["multi"], "defaultConfig": { "screenshotOptions": { "type": "png", "fullPage": false } }, "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-screenshot"] },
21055
+ { "id": "browser:content", "name": "Browser Content", "category": "browser", "toolGroup": "browser_fetch", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-content"] },
21056
+ { "id": "browser:scrape", "name": "Browser Scrape", "category": "browser", "toolGroup": "browser_fetch", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-scrape"] },
21057
+ { "id": "browser:json", "name": "Browser JSON", "category": "browser", "toolGroup": "browser_fetch", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-json"] },
21058
+ { "id": "browser:markdown", "name": "Browser Markdown", "category": "browser", "toolGroup": "browser_fetch", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-markdown"] },
21059
+ { "id": "browser:snapshot", "name": "Browser Snapshot", "category": "browser", "toolGroup": "browser_fetch", "providers": ["multi"], "defaultConfig": { "screenshotOptions": { "type": "png", "fullPage": false } }, "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-snapshot"] },
21060
+ { "id": "browser:links", "name": "Browser Links", "category": "browser", "toolGroup": "browser_fetch", "providers": ["multi"], "defaultConfig": { "visibleLinksOnly": false }, "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-links"] },
21061
+ { "id": "browser:open", "name": "Browser Open", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-open"] },
21062
+ { "id": "browser:navigate", "name": "Browser Navigate", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-navigate"] },
21063
+ { "id": "browser:click", "name": "Browser Click", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-click"] },
21064
+ { "id": "browser:type", "name": "Browser Type", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-type"] },
21065
+ { "id": "browser:scroll", "name": "Browser Scroll", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-scroll"] },
21066
+ { "id": "browser:session-screenshot", "name": "Browser Session Screenshot", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-session-screenshot"] },
21067
+ { "id": "browser:evaluate", "name": "Browser Evaluate", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-evaluate"] },
21068
+ { "id": "browser:session-info", "name": "Browser Session Info", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-session-info"] },
21069
+ { "id": "browser:close", "name": "Browser Close", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-close"] },
21070
+ { "id": "browser:get_live_view", "name": "Browser Live View", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-get-live-view", "browser:live-view"] },
21071
+ { "id": "browser:request_handoff", "name": "Browser Handoff to Human", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-request-handoff", "browser:handoff"] },
21072
+ { "id": "browser:get_handoff_state", "name": "Browser Handoff State", "category": "browser", "toolGroup": "browser_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "aliases": ["browser-get-handoff-state", "browser:handoff-state"] },
21073
+ { "id": "browser:agent", "name": "Run Browser Agent", "category": "browser", "toolGroup": "browser_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "experimental": true, "aliases": ["browser-agent", "browser:task", "browser-task"] },
21074
+ { "id": "vector-search", "name": "Semantic Search", "category": "knowledge_retrieval", "providers": ["multi"], "defaultConfig": { "limit": 5, "threshold": 0.3 }, "requiresApiKey": true, "executionHint": "platform", "hasConfigSchema": true },
21075
+ { "id": "search_runtype_docs", "name": "Search Runtype Docs", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false, "experimental": true },
21076
+ { "id": "elevenlabs-tts", "name": "ElevenLabs Text-to-Speech", "category": "text_to_speech", "toolGroup": "voice", "providers": ["multi"], "defaultConfig": { "voice_id": "rachel", "model_id": "eleven_multilingual_v2", "stability": 0.5, "similarity_boost": 0.75 }, "requiresApiKey": true, "executionHint": "platform", "platformKeySupport": true, "marginPercent": 20, "hidden": true },
21077
+ { "id": "elevenlabs-stt", "name": "ElevenLabs Speech-to-Text", "category": "text_to_speech", "toolGroup": "voice", "providers": ["multi"], "defaultConfig": { "format": "wav", "model_id": "scribe_v2" }, "requiresApiKey": true, "executionHint": "platform", "platformKeySupport": true, "marginPercent": 20, "hidden": true },
21078
+ { "id": "emit_artifact_markdown", "name": "Emit Artifact (Markdown)", "category": "artifact", "providers": ["multi"], "executionHint": "platform" },
21079
+ { "id": "emit_artifact_component", "name": "Emit Artifact (Component)", "category": "artifact", "providers": ["multi"], "executionHint": "platform" },
21080
+ { "id": "get_current_time", "name": "Get Current Time", "category": "temporal", "toolGroup": "temporal", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform" },
21081
+ { "id": "convert_time", "name": "Convert Time Between Zones", "category": "temporal", "toolGroup": "temporal", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform" },
21082
+ { "id": "time_difference", "name": "Time Difference", "category": "temporal", "toolGroup": "temporal", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform" },
21083
+ { "id": "set_timezone", "name": "Set Conversation Timezone", "category": "temporal", "toolGroup": "temporal", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform" },
21084
+ { "id": "set_reminder", "name": "Set Reminder", "category": "temporal", "toolGroup": "temporal", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform" },
21085
+ { "id": "store_asset", "name": "Store Asset", "category": "file_operations", "toolGroup": "file_outputs", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21086
+ { "id": "publish_page", "name": "Publish Page", "category": "file_operations", "toolGroup": "file_outputs", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21087
+ { "id": "generate_pdf", "name": "Generate PDF", "category": "file_operations", "toolGroup": "file_outputs", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21088
+ { "id": "propose_skill", "name": "Propose Skill", "category": "data_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21089
+ { "id": "runtype_record_upsert", "name": "Upsert Record", "category": "data_management", "toolGroup": "record_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21090
+ { "id": "runtype_record_batch_upsert", "name": "Batch Upsert Records", "category": "data_management", "toolGroup": "record_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21091
+ { "id": "runtype_record_get", "name": "Get Record", "category": "data_management", "toolGroup": "record_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21092
+ { "id": "runtype_record_list", "name": "List Records", "category": "data_management", "toolGroup": "record_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21093
+ { "id": "runtype_record_delete", "name": "Delete Record", "category": "data_management", "toolGroup": "record_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21094
+ { "id": "ucp_discover", "name": "UCP Discover", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21095
+ { "id": "ucp_create_checkout", "name": "UCP Create Checkout", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21096
+ { "id": "ucp_update_checkout", "name": "UCP Update Checkout", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21097
+ { "id": "ucp_get_checkout", "name": "UCP Get Checkout", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21098
+ { "id": "ucp_complete_checkout", "name": "UCP Complete Checkout", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21099
+ { "id": "ucp_cancel_checkout", "name": "UCP Cancel Checkout", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21100
+ { "id": "ucp_create_cart", "name": "UCP Create Cart", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21101
+ { "id": "ucp_get_cart", "name": "UCP Get Cart", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21102
+ { "id": "ucp_update_cart", "name": "UCP Update Cart", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21103
+ { "id": "ucp_cancel_cart", "name": "UCP Cancel Cart", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21104
+ { "id": "ucp_search_catalog", "name": "UCP Search Catalog", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21105
+ { "id": "ucp_lookup_catalog", "name": "UCP Lookup Catalog", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21106
+ { "id": "ucp_get_product", "name": "UCP Get Product", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21107
+ { "id": "ucp_get_order", "name": "UCP Get Order", "category": "commerce", "toolGroup": "ucp_commerce", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21108
+ { "id": "sandbox:exec", "name": "Sandbox Exec", "category": "sandbox", "toolGroup": "sandbox_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21109
+ { "id": "sandbox:run_code", "name": "Sandbox Run Code", "category": "sandbox", "toolGroup": "sandbox_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21110
+ { "id": "sandbox:write_file", "name": "Sandbox Write File", "category": "sandbox", "toolGroup": "sandbox_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21111
+ { "id": "sandbox:read_file", "name": "Sandbox Read File", "category": "sandbox", "toolGroup": "sandbox_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21112
+ { "id": "sandbox:expose_port", "name": "Sandbox Expose Port", "category": "sandbox", "toolGroup": "sandbox_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21113
+ { "id": "sandbox:git_checkout", "name": "Sandbox Git Checkout", "category": "sandbox", "toolGroup": "sandbox_use", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21114
+ { "id": "sandbox:create", "name": "Sandbox Create", "category": "sandbox", "toolGroup": "sandbox_session", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21115
+ { "id": "sandbox:session_exec", "name": "Sandbox Session Exec", "category": "sandbox", "toolGroup": "sandbox_session", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21116
+ { "id": "sandbox:session_run_code", "name": "Sandbox Session Run Code", "category": "sandbox", "toolGroup": "sandbox_session", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21117
+ { "id": "sandbox:session_write_file", "name": "Sandbox Session Write File", "category": "sandbox", "toolGroup": "sandbox_session", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21118
+ { "id": "sandbox:session_read_file", "name": "Sandbox Session Read File", "category": "sandbox", "toolGroup": "sandbox_session", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21119
+ { "id": "sandbox:session_expose_port", "name": "Sandbox Session Expose Port", "category": "sandbox", "toolGroup": "sandbox_session", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21120
+ { "id": "sandbox:session_git_checkout", "name": "Sandbox Session Git Checkout", "category": "sandbox", "toolGroup": "sandbox_session", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21121
+ { "id": "sandbox:destroy", "name": "Sandbox Destroy", "category": "sandbox", "toolGroup": "sandbox_session", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21122
+ { "id": "bash", "name": "Bash", "category": "sandbox", "toolGroup": "sandbox_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "hidden": true },
21123
+ { "id": "bash_output", "name": "Bash Output", "category": "sandbox", "toolGroup": "sandbox_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "hidden": true },
21124
+ { "id": "kill_process", "name": "Kill Process", "category": "sandbox", "toolGroup": "sandbox_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "hidden": true },
21125
+ { "id": "list_processes", "name": "List Processes", "category": "sandbox", "toolGroup": "sandbox_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "hidden": true },
21126
+ { "id": "read_file", "name": "Read File", "category": "sandbox", "toolGroup": "sandbox_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "hidden": true },
21127
+ { "id": "write_file", "name": "Write File", "category": "sandbox", "toolGroup": "sandbox_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "hidden": true },
21128
+ { "id": "edit_file", "name": "Edit File", "category": "sandbox", "toolGroup": "sandbox_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "hidden": true },
21129
+ { "id": "expose_port", "name": "Expose Port", "category": "sandbox", "toolGroup": "sandbox_agent", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "hidden": true },
21130
+ { "id": "send_email", "name": "Send Email", "category": "messaging", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true },
21131
+ { "id": "save_memory", "name": "Save to Memory", "category": "data_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21132
+ { "id": "recall_memory", "name": "Recall from Memory", "category": "data_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21133
+ { "id": "memory_summary", "name": "Get Memory Summary", "category": "data_management", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": false },
21134
+ { "id": "orthogonal:agentmail:create_draft", "idPrefix": "platform", "name": "AgentMail Create Draft", "category": "messaging", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21135
+ { "id": "orthogonal:agentmail:create_inbox", "idPrefix": "platform", "name": "AgentMail Create Inbox", "category": "messaging", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21136
+ { "id": "orthogonal:agentmail:reply_message", "idPrefix": "platform", "name": "AgentMail Reply to Email", "category": "messaging", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21137
+ { "id": "orthogonal:agentmail:send_message", "idPrefix": "platform", "name": "AgentMail Send Email", "category": "messaging", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21138
+ { "id": "orthogonal:andi:search", "idPrefix": "platform", "name": "Andi Search", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21139
+ { "id": "orthogonal:apollo:companies_search", "idPrefix": "platform", "name": "Apollo Companies Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21140
+ { "id": "orthogonal:apollo:organization_enrich", "idPrefix": "platform", "name": "Apollo Organization Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21141
+ { "id": "orthogonal:apollo:people_match", "idPrefix": "platform", "name": "Apollo People Match", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21142
+ { "id": "orthogonal:apollo:people_search", "idPrefix": "platform", "name": "Apollo People Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21143
+ { "id": "orthogonal:aviato:company_enrich", "idPrefix": "platform", "name": "Aviato Company Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21144
+ { "id": "orthogonal:aviato:company_funding_rounds", "idPrefix": "platform", "name": "Aviato Company Funding Rounds", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21145
+ { "id": "orthogonal:aviato:company_search", "idPrefix": "platform", "name": "Aviato Company Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21146
+ { "id": "orthogonal:aviato:marketmap_generate", "idPrefix": "platform", "name": "Aviato Market Map Generate", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21147
+ { "id": "orthogonal:aviato:person_enrich", "idPrefix": "platform", "name": "Aviato Person Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21148
+ { "id": "orthogonal:aviato:person_search", "idPrefix": "platform", "name": "Aviato Person Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21149
+ { "id": "orthogonal:brand-dev:ai_query", "idPrefix": "platform", "name": "Brand.dev AI Query", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21150
+ { "id": "orthogonal:brand-dev:retrieve", "idPrefix": "platform", "name": "Brand.dev Retrieve", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21151
+ { "id": "orthogonal:brand-dev:retrieve_by_name", "idPrefix": "platform", "name": "Brand.dev Retrieve by Name", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21152
+ { "id": "orthogonal:brand-dev:screenshot", "idPrefix": "platform", "name": "Brand.dev Screenshot", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21153
+ { "id": "orthogonal:contactout:domain_enrich", "idPrefix": "platform", "name": "ContactOut Domain Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21154
+ { "id": "orthogonal:contactout:email_enrich", "idPrefix": "platform", "name": "ContactOut Email Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21155
+ { "id": "orthogonal:contactout:people_enrich", "idPrefix": "platform", "name": "ContactOut People Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21156
+ { "id": "orthogonal:contactout:people_linkedin", "idPrefix": "platform", "name": "ContactOut LinkedIn Lookup", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21157
+ { "id": "orthogonal:coresignal:company_enrich", "idPrefix": "platform", "name": "Coresignal Company Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21158
+ { "id": "orthogonal:coresignal:company_multi_enrich", "idPrefix": "platform", "name": "Coresignal Company Multi-Source Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21159
+ { "id": "orthogonal:coresignal:employee_collect", "idPrefix": "platform", "name": "Coresignal Employee Collect", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21160
+ { "id": "orthogonal:crustdata:company_search", "idPrefix": "platform", "name": "Crustdata Company Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21161
+ { "id": "orthogonal:crustdata:identify", "idPrefix": "platform", "name": "Crustdata Identify Company", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21162
+ { "id": "orthogonal:crustdata:person_enrich", "idPrefix": "platform", "name": "Crustdata Person Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21163
+ { "id": "orthogonal:crustdata:person_search", "idPrefix": "platform", "name": "Crustdata Person Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21164
+ { "id": "orthogonal:didit:aml", "idPrefix": "platform", "name": "Didit AML Check", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21165
+ { "id": "orthogonal:didit:database_validation", "idPrefix": "platform", "name": "Didit Database Validation", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21166
+ { "id": "orthogonal:didit:email_send", "idPrefix": "platform", "name": "Didit Send Email", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21167
+ { "id": "orthogonal:didit:phone_send", "idPrefix": "platform", "name": "Didit Send SMS / OTP", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21168
+ { "id": "orthogonal:dome:crypto_prices_binance", "idPrefix": "platform", "name": "Dome Crypto Prices (Binance)", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21169
+ { "id": "orthogonal:dome:kalshi_markets", "idPrefix": "platform", "name": "Dome Kalshi Markets", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21170
+ { "id": "orthogonal:dome:polymarket_markets", "idPrefix": "platform", "name": "Dome Polymarket Markets", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21171
+ { "id": "orthogonal:exa:answer", "idPrefix": "platform", "name": "Exa Answer", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21172
+ { "id": "orthogonal:exa:contents", "idPrefix": "platform", "name": "Exa Contents", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21173
+ { "id": "orthogonal:exa:search", "idPrefix": "platform", "name": "Exa Search", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21174
+ { "id": "orthogonal:fantastic-jobs:active_ats", "idPrefix": "platform", "name": "Fantastic Jobs ATS Feed", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21175
+ { "id": "orthogonal:fantastic-jobs:active_job_boards", "idPrefix": "platform", "name": "Fantastic Jobs Job Board Feed", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21176
+ { "id": "orthogonal:fiber:company_search", "idPrefix": "platform", "name": "Fiber Company Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21177
+ { "id": "orthogonal:fiber:email_to_person", "idPrefix": "platform", "name": "Fiber Email to Person", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21178
+ { "id": "orthogonal:fiber:nl_company_search", "idPrefix": "platform", "name": "Fiber Natural Language Company Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21179
+ { "id": "orthogonal:fiber:nl_people_search", "idPrefix": "platform", "name": "Fiber Natural Language People Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21180
+ { "id": "orthogonal:fiber:people_search", "idPrefix": "platform", "name": "Fiber People Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21181
+ { "id": "orthogonal:fiber:validate_email", "idPrefix": "platform", "name": "Fiber Validate Email", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21182
+ { "id": "orthogonal:financial-datasets:financial_metrics", "idPrefix": "platform", "name": "Financial Datasets Financial Metrics", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21183
+ { "id": "orthogonal:financial-datasets:financial_statements", "idPrefix": "platform", "name": "Financial Datasets Financial Statements", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21184
+ { "id": "orthogonal:financial-datasets:insider_trades", "idPrefix": "platform", "name": "Financial Datasets Insider Trades", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21185
+ { "id": "orthogonal:financial-datasets:news", "idPrefix": "platform", "name": "Financial Datasets Company News", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21186
+ { "id": "orthogonal:financial-datasets:price_snapshot", "idPrefix": "platform", "name": "Financial Datasets Price Snapshot", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21187
+ { "id": "orthogonal:financial-datasets:prices", "idPrefix": "platform", "name": "Financial Datasets Stock Prices", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21188
+ { "id": "orthogonal:financial-datasets:sec_filings", "idPrefix": "platform", "name": "Financial Datasets SEC Filings", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21189
+ { "id": "orthogonal:happenstance:research", "idPrefix": "platform", "name": "Happenstance Person Research", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21190
+ { "id": "orthogonal:happenstance:research_status", "idPrefix": "platform", "name": "Happenstance Research Status", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21191
+ { "id": "orthogonal:hunter:domain_search", "idPrefix": "platform", "name": "Hunter Domain Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21192
+ { "id": "orthogonal:hunter:email_finder", "idPrefix": "platform", "name": "Hunter Email Finder", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21193
+ { "id": "orthogonal:hunter:email_verifier", "idPrefix": "platform", "name": "Hunter Email Verifier", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21194
+ { "id": "orthogonal:influencers-club:creator_enrich_email", "idPrefix": "platform", "name": "Influencers Club Creator Enrich by Email", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21195
+ { "id": "orthogonal:influencers-club:creator_enrich_handle", "idPrefix": "platform", "name": "Influencers Club Creator Enrich by Handle", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21196
+ { "id": "orthogonal:influencers-club:discovery", "idPrefix": "platform", "name": "Influencers Club Discovery", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21197
+ { "id": "orthogonal:leadsforge:lookalike_preview", "idPrefix": "platform", "name": "Leadsforge Lookalike Preview", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21198
+ { "id": "orthogonal:leadsforge:lookalike_search", "idPrefix": "platform", "name": "Leadsforge Lookalike Companies", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21199
+ { "id": "orthogonal:linkup:fetch", "idPrefix": "platform", "name": "LinkUp Fetch", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21200
+ { "id": "orthogonal:linkup:search", "idPrefix": "platform", "name": "LinkUp Search", "category": "web_search", "providers": ["multi"], "defaultConfig": { "depth": "standard" }, "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21201
+ { "id": "orthogonal:logo:dev_search", "idPrefix": "platform", "name": "Logo.dev Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21202
+ { "id": "orthogonal:notte:scrape", "idPrefix": "platform", "name": "Notte Scrape", "category": "browser", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21203
+ { "id": "orthogonal:notte:scrape_from_html", "idPrefix": "platform", "name": "Notte Scrape from HTML", "category": "browser", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21204
+ { "id": "orthogonal:nyne:company_enrichment", "idPrefix": "platform", "name": "Nyne Company Enrichment", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21205
+ { "id": "orthogonal:nyne:company_search", "idPrefix": "platform", "name": "Nyne Company Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21206
+ { "id": "orthogonal:nyne:person_enrichment", "idPrefix": "platform", "name": "Nyne Person Enrichment", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21207
+ { "id": "orthogonal:nyne:person_search", "idPrefix": "platform", "name": "Nyne Person Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21208
+ { "id": "orthogonal:olostep:answers", "idPrefix": "platform", "name": "Olostep Answers", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21209
+ { "id": "orthogonal:olostep:crawls", "idPrefix": "platform", "name": "Olostep Crawl", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21210
+ { "id": "orthogonal:olostep:maps", "idPrefix": "platform", "name": "Olostep Map", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21211
+ { "id": "orthogonal:olostep:scrapes", "idPrefix": "platform", "name": "Olostep Scrapes", "category": "web_scraping", "providers": ["multi"], "defaultConfig": { "formats": ["markdown"] }, "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21212
+ { "id": "orthogonal:openmart:enrich_company", "idPrefix": "platform", "name": "Openmart Enrich Company", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21213
+ { "id": "orthogonal:openmart:search", "idPrefix": "platform", "name": "Openmart Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21214
+ { "id": "orthogonal:peopledatalabs:company_enrich", "idPrefix": "platform", "name": "People Data Labs Company Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21215
+ { "id": "orthogonal:peopledatalabs:company_search", "idPrefix": "platform", "name": "People Data Labs Company Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21216
+ { "id": "orthogonal:peopledatalabs:person_enrich", "idPrefix": "platform", "name": "People Data Labs Person Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21217
+ { "id": "orthogonal:peopledatalabs:person_search", "idPrefix": "platform", "name": "People Data Labs Person Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21218
+ { "id": "orthogonal:perplexity:search", "idPrefix": "platform", "name": "Perplexity Search", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21219
+ { "id": "orthogonal:precip:daily", "idPrefix": "platform", "name": "Precip Daily Weather", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21220
+ { "id": "orthogonal:precip:hourly", "idPrefix": "platform", "name": "Precip Hourly Weather", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21221
+ { "id": "orthogonal:precip:last_48", "idPrefix": "platform", "name": "Precip Last 48h Rainfall", "category": "third_party_api", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21222
+ { "id": "orthogonal:predictleads:company", "idPrefix": "platform", "name": "PredictLeads Company", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21223
+ { "id": "orthogonal:predictleads:discover_companies", "idPrefix": "platform", "name": "PredictLeads Discover Companies", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21224
+ { "id": "orthogonal:predictleads:discover_job_openings", "idPrefix": "platform", "name": "PredictLeads Discover Job Openings", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21225
+ { "id": "orthogonal:predictleads:discover_news", "idPrefix": "platform", "name": "PredictLeads Discover News Events", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21226
+ { "id": "orthogonal:riveter:scrape", "idPrefix": "platform", "name": "Riveter Scrape", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21227
+ { "id": "orthogonal:scrapecreators:facebook_ad_library", "idPrefix": "platform", "name": "ScrapeCreators Facebook Ad Library", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21228
+ { "id": "orthogonal:scrapecreators:google_search", "idPrefix": "platform", "name": "ScrapeCreators Google Search", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21229
+ { "id": "orthogonal:scrapecreators:instagram_profile", "idPrefix": "platform", "name": "ScrapeCreators Instagram Profile", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21230
+ { "id": "orthogonal:scrapecreators:linkedin_company", "idPrefix": "platform", "name": "ScrapeCreators LinkedIn Company", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21231
+ { "id": "orthogonal:scrapecreators:linkedin_profile", "idPrefix": "platform", "name": "ScrapeCreators LinkedIn Profile", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21232
+ { "id": "orthogonal:scrapecreators:reddit_post_comments", "idPrefix": "platform", "name": "ScrapeCreators Reddit Post Comments", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21233
+ { "id": "orthogonal:scrapecreators:reddit_search", "idPrefix": "platform", "name": "ScrapeCreators Reddit Search", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21234
+ { "id": "orthogonal:scrapecreators:reddit_subreddit", "idPrefix": "platform", "name": "ScrapeCreators Reddit Subreddit", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21235
+ { "id": "orthogonal:scrapecreators:tiktok_profile", "idPrefix": "platform", "name": "ScrapeCreators TikTok Profile", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21236
+ { "id": "orthogonal:scrapecreators:twitter_profile", "idPrefix": "platform", "name": "ScrapeCreators Twitter/X Profile", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21237
+ { "id": "orthogonal:scrapecreators:twitter_tweets", "idPrefix": "platform", "name": "ScrapeCreators Twitter/X Tweets", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21238
+ { "id": "orthogonal:scrapecreators:youtube_channel", "idPrefix": "platform", "name": "ScrapeCreators YouTube Channel", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21239
+ { "id": "orthogonal:scrapecreators:youtube_video", "idPrefix": "platform", "name": "ScrapeCreators YouTube Video", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21240
+ { "id": "orthogonal:scrapegraphai:extract", "idPrefix": "platform", "name": "ScrapeGraphAI Extract", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21241
+ { "id": "orthogonal:scrapegraphai:scrape", "idPrefix": "platform", "name": "ScrapeGraphAI Scrape", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21242
+ { "id": "orthogonal:scrapegraphai:search", "idPrefix": "platform", "name": "ScrapeGraphAI Search", "category": "web_scraping", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21243
+ { "id": "orthogonal:sixtyfour:enrich_company", "idPrefix": "platform", "name": "Sixtyfour Enrich Company", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21244
+ { "id": "orthogonal:sixtyfour:enrich_lead", "idPrefix": "platform", "name": "Sixtyfour Enrich Lead", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21245
+ { "id": "orthogonal:sixtyfour:find_email", "idPrefix": "platform", "name": "Sixtyfour Find Email", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21246
+ { "id": "orthogonal:sixtyfour:find_phone", "idPrefix": "platform", "name": "Sixtyfour Find Phone", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21247
+ { "id": "orthogonal:tavily:extract", "idPrefix": "platform", "name": "Tavily Extract", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21248
+ { "id": "orthogonal:tavily:research", "idPrefix": "platform", "name": "Tavily Research", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21249
+ { "id": "orthogonal:tavily:search", "idPrefix": "platform", "name": "Tavily Search", "category": "web_search", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21250
+ { "id": "orthogonal:textbelt:send_sms", "idPrefix": "platform", "name": "Textbelt Send SMS", "category": "messaging", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21251
+ { "id": "orthogonal:tomba:domain_search", "idPrefix": "platform", "name": "Tomba Domain Search", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21252
+ { "id": "orthogonal:tomba:email_finder", "idPrefix": "platform", "name": "Tomba Email Finder", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21253
+ { "id": "orthogonal:tomba:email_verifier", "idPrefix": "platform", "name": "Tomba Email Verifier", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21254
+ { "id": "orthogonal:tomba:enrich", "idPrefix": "platform", "name": "Tomba Enrich", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" },
21255
+ { "id": "orthogonal:tomba:linkedin", "idPrefix": "platform", "name": "Tomba LinkedIn Lookup", "category": "knowledge_retrieval", "providers": ["multi"], "requiresApiKey": false, "executionHint": "platform", "platformKeySupport": true, "managedExecutionKind": "orthogonal" }
21256
+ ];
21257
+ var MCPServerCategory = {
21258
+ COMMUNICATION: "communication",
21259
+ PRODUCTIVITY: "productivity",
21260
+ DEVELOPMENT: "development",
21261
+ PROJECT_MANAGEMENT: "project_management"
21262
+ };
21263
+ var subagentExecutionModeSchema = external_exports.enum(["attached", "detached"]);
21264
+ var subagentNotificationModeSchema = external_exports.enum(["none", "narrate", "react"]);
21265
+ var subagentExecutionConfigSchema = external_exports.object({
21266
+ /** Attached is the backwards-compatible default. */
21267
+ mode: subagentExecutionModeSchema.optional(),
21268
+ /** Detached tools default to `narrate`; attached tools ignore this field. */
21269
+ notify: subagentNotificationModeSchema.optional(),
21270
+ /** Absolute background-run wall-clock ceiling. */
21271
+ maxBudgetMs: external_exports.number().int().min(1e3).max(864e5).optional(),
21272
+ /** Optional resetting silence budget after observable progress. */
21273
+ noProgressBudgetMs: external_exports.number().int().min(1e3).max(864e5).optional()
21274
+ });
21275
+ var subagentRunHandleSchema = external_exports.object({
21276
+ kind: external_exports.literal("subagent_run"),
21277
+ runId: external_exports.string(),
21278
+ /**
21279
+ * Which durable lane the child executes on. `'durable'` is the ADR 0020
21280
+ * session DO; `'runtype'` is the in-process detached-run DO.
21281
+ */
21282
+ agentType: external_exports.enum(["runtype", "claude_managed", "durable"]),
21283
+ status: external_exports.enum(["queued", "running"]),
21284
+ startedAt: external_exports.string()
21285
+ });
21286
+ var agentSubagentConfigSchema = external_exports.object({
21287
+ /**
21288
+ * Pool of tool IDs the parent is permitted to grant to ad-hoc subagents.
21289
+ * Supports exact IDs, wildcards (`mcp:*`, `builtin:*`, `platform:*`), and
21290
+ * runtime-tool names. Must be a SUBSET of the parent's resolved tools —
21291
+ * validated at dispatch (no privilege escalation).
21292
+ */
21293
+ toolPool: external_exports.array(external_exports.string()),
21294
+ /** Default for spawned subagent loops. Default 5. */
21295
+ defaultMaxTurns: external_exports.number().optional(),
21296
+ /** Hard cap a spawned subagent can request. Default 10. */
21297
+ maxTurnsLimit: external_exports.number().optional(),
21298
+ /** Hard ceiling on total spawns per top-level parent invocation. Default 5. */
21299
+ maxSpawnsPerRun: external_exports.number().optional(),
21300
+ /** Default model for spawned subagents. Defaults to parent's model. */
21301
+ defaultModel: external_exports.string().optional(),
21302
+ /**
21303
+ * Whether a spawned subagent can itself spawn subagents. Default `false`
21304
+ * (Anthropic-aligned). Even when `true`, MAX_NESTED_DEPTH still bounds the
21305
+ * recursion tree.
21306
+ */
21307
+ allowNesting: external_exports.boolean().optional(),
21308
+ /** Default per-spawn timeout. Default 300_000 (5 min). */
21309
+ defaultTimeoutMs: external_exports.number().optional(),
21310
+ /** Execution modes the model may request. Default `['attached']`. */
21311
+ executionModes: external_exports.array(subagentExecutionModeSchema).min(1).optional(),
21312
+ /** Default mode when the model omits `executionMode`. */
21313
+ defaultExecutionMode: subagentExecutionModeSchema.optional(),
21314
+ /** Default completion policy for detached dynamic children. */
21315
+ defaultNotify: subagentNotificationModeSchema.optional(),
21316
+ /** Absolute wall-clock ceiling for detached dynamic children. */
21317
+ detachedMaxBudgetMs: external_exports.number().int().min(1e3).max(864e5).optional(),
21318
+ /** Optional resetting silence budget for detached dynamic children. */
21319
+ detachedNoProgressBudgetMs: external_exports.number().int().min(1e3).max(864e5).optional()
21320
+ });
21321
+ var codeModeConfigSchema = external_exports.object({
21322
+ /** Tool IDs available in the sandbox (subset of agent's tools, supports wildcards like `mcp:*`) */
21323
+ toolPool: external_exports.array(external_exports.string()),
21324
+ /** Optional custom description prefix for the synthesized tool */
21325
+ description: external_exports.string().optional(),
21326
+ /** Sandbox execution timeout in ms (default 60000) */
21327
+ timeoutMs: external_exports.number().optional()
21328
+ });
21329
+ var toolLimitSchema = external_exports.object({
21330
+ maxCalls: external_exports.number().optional(),
21331
+ required: external_exports.boolean().optional()
21332
+ });
21333
+ var approvalConfigSchema = external_exports.object({
21334
+ /** Tools that require user approval before execution.
21335
+ * string[]: tool names/patterns ("send_email", "mcp:*", "builtin:*")
21336
+ * true: all tools require approval
21337
+ * false/undefined: no approval required (default) */
21338
+ require: external_exports.union([external_exports.array(external_exports.string()), external_exports.boolean()]).optional(),
21339
+ /** Timeout in ms for approval response (default: 300000 = 5 min) */
21340
+ timeout: external_exports.number().optional(),
21341
+ /** Whether to ask the model for a per-call justification on approval-gated
21342
+ * tools by injecting a reserved optional `_approvalReason` string into the
21343
+ * model-visible parameters schema. The value is stripped before the tool
21344
+ * executes and surfaced to the approver. Default: true (opt out with false). */
21345
+ requestReason: external_exports.boolean().optional(),
21346
+ // WHY(docs/why/packages/shared/src.md#persistent-always-choices-at-the-human-approval): Persistent "always" choices at the human approval prompt; user-facing options, not auto-behavior.
21347
+ /**
21348
+ * Persistent "always" choices at the human approval prompt; user-facing options, not auto-behavior.
21349
+ * Keys mirror the grant decision enum (alwaysAllow -> 'allow', alwaysDeny -> 'deny').
21350
+ * Default: both off; this is the sole control for persisted approval grants (no Flagship flag).
21351
+ * See docs/features/planning/2026-06-13-cross-session-always-allow-approval-grants.md
21352
+ */
21353
+ choices: external_exports.object({
21354
+ alwaysAllow: external_exports.boolean().optional(),
21355
+ alwaysDeny: external_exports.boolean().optional()
21356
+ }).optional()
21357
+ });
21358
+ var toolSearchConfigSchema = external_exports.object({
21359
+ /** Explicit opt-in/out. When omitted, auto-activates if tool count >= threshold. */
21360
+ enabled: external_exports.boolean().optional(),
21361
+ /** Tool count at which search activates (default: 20) */
21362
+ threshold: external_exports.number().optional(),
21363
+ /** Tool names or IDs that should always be in the hot set */
21364
+ alwaysLoaded: external_exports.array(external_exports.string()).optional()
21365
+ });
21366
+ var agentToolsConfigSchema = external_exports.object({
21367
+ /** IDs of tools to enable (builtin:*, mcp:*, platform:*, platform:orthogonal:*, custom tool IDs) */
21368
+ toolIds: external_exports.array(external_exports.string()).optional(),
21369
+ /** Per-tool parameter configurations, keyed by tool ID */
21370
+ toolConfigs: external_exports.record(external_exports.string(), external_exports.custom()).optional(),
21371
+ /** Inline tool definitions (no DB storage needed) */
21372
+ runtimeTools: external_exports.array(external_exports.custom()).optional(),
21373
+ /** Runtime MCP server connections */
21374
+ mcpServers: external_exports.array(external_exports.custom()).optional(),
21375
+ /** Maximum tool calls per execution (renamed from maxTurns in agents) */
21376
+ maxToolCalls: external_exports.number().optional(),
21377
+ /** Tool calling strategy */
21378
+ toolCallStrategy: external_exports.enum(["auto", "required", "none"]).optional(),
21379
+ /** Per-tool call limits */
21380
+ perToolLimits: external_exports.record(external_exports.string(), toolLimitSchema).optional(),
21381
+ /** Human-in-the-loop approval configuration */
21382
+ approval: approvalConfigSchema.optional(),
21383
+ /**
21384
+ * Opt-in: enables agent-driven dynamic subagent spawning. When set, the
21385
+ * prompt-step tool-prep layer synthesizes a `spawn_subagent` tool into the
21386
+ * AI-SDK tool list with a dynamically-generated description listing the
21387
+ * tools the parent's LLM can grant. See `AgentSubagentConfig` for fields.
21388
+ */
21389
+ subagentConfig: agentSubagentConfigSchema.optional(),
21390
+ /**
21391
+ * Opt-in: enables a synthesized `code_mode` tool that lets agents execute
21392
+ * JavaScript code in a sandboxed V8 isolate with access to a subset of
21393
+ * the agent's tools. The LLM writes code that calls tool functions
21394
+ * deterministically instead of making individual tool calls.
21395
+ */
21396
+ codeModeConfig: codeModeConfigSchema.optional(),
21397
+ // WHY(docs/why/packages/shared/src.md#tool-search-configuration-when-total-tool-count): Tool search configuration; when total tool count exceeds the threshold, deferred loading activates.
21398
+ /**
21399
+ * Tool search configuration; when total tool count exceeds the threshold, deferred loading activates.
21400
+ * Only a hot set of tools is sent to the model each turn; tool_search lets it discover more on demand.
21401
+ * Auto-activates when omitted and total tool count >= 20.
21402
+ * Set enabled: false to force all tools to be sent regardless of count.
21403
+ */
21404
+ toolSearch: toolSearchConfigSchema.optional()
21405
+ });
21406
+ var CreateToolSchema = external_exports.object({
21407
+ name: external_exports.string().min(1).max(100),
21408
+ description: external_exports.string().min(1).max(500),
21409
+ toolType: external_exports.enum(["flow", "custom", "external", "graphql", "mcp", "local", "subagent"]),
21410
+ parametersSchema: external_exports.record(external_exports.string(), external_exports.any()),
21411
+ config: external_exports.record(external_exports.string(), external_exports.any())
21412
+ });
21413
+ var ExecuteToolSchema = external_exports.object({
21414
+ // WHY(docs/why/packages/shared/src.md#toolid-is-optional-here-so-mcp-sdk-callers-sendi): toolId is optional here so MCP/SDK callers sending only {parameters} aren't rejected at validation
21415
+ toolId: external_exports.string().optional(),
21416
+ parameters: external_exports.record(external_exports.string(), external_exports.any()),
21417
+ context: external_exports.object({
21418
+ flowExecutionId: external_exports.string().optional(),
21419
+ stepId: external_exports.string().optional(),
21420
+ userId: external_exports.string()
21421
+ }).optional()
21422
+ });
21423
+ function parseToolInstanceId(toolId) {
21424
+ const hashIndex = toolId.indexOf("#");
21425
+ if (hashIndex === -1) {
21426
+ return { baseId: toolId, instanceId: "" };
21427
+ }
21428
+ return {
21429
+ baseId: toolId.substring(0, hashIndex),
21430
+ instanceId: toolId.substring(hashIndex + 1)
21431
+ };
21432
+ }
21433
+ function isBuiltInToolId(toolId) {
21434
+ return toolId.startsWith("builtin:");
21435
+ }
21436
+ function isPlatformToolId(toolId) {
21437
+ return toolId.startsWith("platform:");
21438
+ }
21439
+ var INTEGRATION_SERVER_IDS = /* @__PURE__ */ new Set([
21440
+ "slack",
21441
+ "google",
21442
+ "linear",
21443
+ "github",
21444
+ "telegram",
21445
+ "imessage",
21446
+ "granola"
21447
+ ]);
21448
+ function isBuiltInIntegrationToolId(toolId) {
21449
+ if (!toolId.startsWith("builtin:")) return false;
21450
+ const { baseId } = parseToolInstanceId(toolId);
21451
+ const parts = baseId.split(":");
21452
+ if (parts.length < 3) return false;
21453
+ return INTEGRATION_SERVER_IDS.has(parts[1]);
21454
+ }
21455
+ function isMCPToolId(toolId) {
21456
+ return toolId.startsWith("mcp:");
21457
+ }
21458
+ var NAMED_TOOL_REF_PREFIX = "tool:";
21459
+ function isNamedToolRef(toolId) {
21460
+ return toolId.startsWith(NAMED_TOOL_REF_PREFIX) && toolId.length > NAMED_TOOL_REF_PREFIX.length;
21461
+ }
21462
+ function parseNamedToolRef(toolId) {
21463
+ if (!isNamedToolRef(toolId)) return null;
21464
+ return { name: toolId.slice(NAMED_TOOL_REF_PREFIX.length) };
21465
+ }
21466
+ function separateToolIds(toolIds) {
21467
+ const builtInToolIds = [];
21468
+ const platformToolIds = [];
21469
+ const integrationToolIds = [];
21470
+ const mcpToolIds = [];
21471
+ const dataConnectionToolIds = [];
21472
+ const namedToolIds = [];
21473
+ const customToolIds = [];
21474
+ for (const toolId of toolIds) {
21475
+ if (isDataConnectionToolId(toolId)) {
21476
+ dataConnectionToolIds.push(toolId);
21477
+ } else if (isPlatformToolId(toolId)) {
21478
+ platformToolIds.push(toolId);
21479
+ } else if (isBuiltInIntegrationToolId(toolId)) {
21480
+ integrationToolIds.push(toolId);
21481
+ } else if (isBuiltInToolId(toolId)) {
21482
+ builtInToolIds.push(toolId);
21483
+ } else if (isMCPToolId(toolId)) {
21484
+ mcpToolIds.push(toolId);
21485
+ } else if (isNamedToolRef(toolId)) {
21486
+ namedToolIds.push(toolId);
21487
+ } else {
21488
+ customToolIds.push(toolId);
21489
+ }
21490
+ }
21491
+ return {
21492
+ builtInToolIds,
21493
+ platformToolIds,
21494
+ integrationToolIds,
21495
+ mcpToolIds,
21496
+ dataConnectionToolIds,
21497
+ namedToolIds,
21498
+ customToolIds
21499
+ };
21500
+ }
21501
+ function isDataConnectionToolId(toolId) {
21502
+ return toolId.startsWith("dc:");
21503
+ }
21504
+
21505
+ // ../shared/dist/chunk-AMVH26WM.mjs
21506
+ var BuiltInToolProvider = {
21507
+ OPENAI: "openai",
21508
+ ANTHROPIC: "anthropic",
21509
+ GOOGLE: "google",
21510
+ XAI: "xai",
21511
+ MULTI: "multi"
21512
+ // Available across multiple providers
21513
+ };
21514
+ var BuiltInToolIdPrefix = {
21515
+ BUILTIN: "builtin",
21516
+ PLATFORM: "platform"
21517
+ };
21518
+
21519
+ // ../shared/dist/chunk-3XRATUCG.mjs
21520
+ function sanitizeToolNameForAiSdk(name) {
21521
+ return name.replace(/[^a-zA-Z0-9_]/g, "_").toLowerCase().replace(/_+/g, "_").replace(/^_|_$/g, "");
21522
+ }
21523
+ function toolNamesCollideForAiSdk(left, right) {
21524
+ return sanitizeToolNameForAiSdk(left) === sanitizeToolNameForAiSdk(right);
21525
+ }
21526
+ var RUNTYPE_SET_STATE_TOOL_NAME = "runtype_set_state";
21527
+ function isReservedRuntypeToolName(name) {
21528
+ return toolNamesCollideForAiSdk(name, RUNTYPE_SET_STATE_TOOL_NAME);
21529
+ }
21530
+ function reservedToolNameMessage(subject, name) {
21531
+ return `${subject} "${name}" collides with the reserved tool name "${RUNTYPE_SET_STATE_TOOL_NAME}" (the agent state write tool). Tool names are lowercased and non-alphanumeric characters become "_" before the model sees them, so every spelling that normalizes to it is reserved with it. "runtype_" is a reserved tool namespace. Rename the tool.`;
21532
+ }
21533
+ var BUILTIN_TOOLS_REGISTRY = BUILTIN_TOOLS_LEAN;
21534
+ function formatSystemToolId(tool) {
21535
+ const prefix = tool.idPrefix ?? BuiltInToolIdPrefix.BUILTIN;
21536
+ return `${prefix}:${tool.id}`;
21537
+ }
21538
+ function getAllBuiltInTools(opts) {
21539
+ return BUILTIN_TOOLS_REGISTRY.filter(
21540
+ (tool) => !tool.hidden && !(opts?.hideExperimental && tool.experimental)
21541
+ );
21542
+ }
21543
+ function getBuiltInToolById(toolId) {
21544
+ const cleanId = toolId.replace(/^(builtin|platform):/, "");
21545
+ return BUILTIN_TOOLS_REGISTRY.find(
21546
+ (tool) => tool.id === cleanId || tool.aliases?.includes(cleanId)
21547
+ );
21548
+ }
21549
+ function isToolCompatibleWithModel(toolId, modelId, provider) {
21550
+ const tool = getBuiltInToolById(toolId);
21551
+ if (!tool) return false;
21552
+ const providerKey = provider;
21553
+ if (!tool.providers.includes(providerKey) && !tool.providers.includes(BuiltInToolProvider.MULTI)) {
21554
+ return false;
21555
+ }
21556
+ if (!tool.modelCompatibility || tool.modelCompatibility.length === 0) {
21557
+ return true;
21558
+ }
21559
+ const compatibility = tool.modelCompatibility.find((c2) => c2.provider === providerKey);
21560
+ if (!compatibility) return true;
21561
+ if (compatibility.models.length === 0) return true;
21562
+ return compatibility.models.some((m2) => modelId.includes(m2));
21563
+ }
21564
+ var DIRECT_PROVIDER_TOOL_OWNERS = /* @__PURE__ */ new Set([
21565
+ "anthropic",
21566
+ "openai",
21567
+ "xai"
21568
+ ]);
21569
+ function resolveDirectProviderToolOwner(toolId) {
21570
+ const entry = getBuiltInToolById(parseToolInstanceId(toolId).baseId);
21571
+ if (entry?.executionHint !== "provider") return void 0;
21572
+ const owner = entry.providers?.[0];
21573
+ return owner && DIRECT_PROVIDER_TOOL_OWNERS.has(owner) ? owner : void 0;
21574
+ }
21575
+ var DEFAULT_BEDROCK_REGION = "us-east-1";
21576
+ var DEFAULT_VERTEX_LOCATION = "us-central1";
21577
+ var PROVIDER_SECRET_SPECS = [
21578
+ {
21579
+ providerId: "mock",
21580
+ matches: (m2) => m2.startsWith("mock/"),
21581
+ secretNames: []
21582
+ },
21583
+ {
21584
+ providerId: "google-vertex-anthropic",
21585
+ // WHY(docs/why/packages/shared/src.md#must-come-before-google-vertex-shares-vertex-pre): must come before google-vertex (shares vertex prefix) and anthropic (matches */claude-*)
21586
+ matches: (m2) => m2.startsWith("vertex-anthropic/"),
21587
+ secretNames: ["GOOGLE_VERTEX_PROJECT", "GOOGLE_VERTEX_CREDENTIALS"],
21588
+ optionalSettings: [{ name: "GOOGLE_VERTEX_LOCATION", defaultValue: DEFAULT_VERTEX_LOCATION }]
21589
+ },
21590
+ {
21591
+ providerId: "google-vertex",
21592
+ // WHY(docs/why/packages/shared/src.md#must-come-before-google-matches-gemini): must come before google (matches */gemini-*)
21593
+ matches: (m2) => m2.startsWith("vertex/"),
21594
+ secretNames: ["GOOGLE_VERTEX_PROJECT", "GOOGLE_VERTEX_CREDENTIALS"],
21595
+ optionalSettings: [{ name: "GOOGLE_VERTEX_LOCATION", defaultValue: DEFAULT_VERTEX_LOCATION }]
21596
+ },
21597
+ {
21598
+ providerId: "vercel-gateway",
21599
+ // WHY(docs/why/packages/shared/src.md#must-come-before-openai-since-vercel-openai-gpt): must come before openai, since vercel/openai/gpt-4o would otherwise match openai
21600
+ matches: (m2) => m2.startsWith("vercel/") || m2.startsWith("vercel."),
21601
+ secretNames: ["VERCEL_AI_GATEWAY_API_KEY"]
21602
+ },
21603
+ {
21604
+ providerId: "cloudflare-gateway",
21605
+ // WHY(docs/why/packages/shared/src.md#must-come-before-workers-ai-since-cloudflare-pro): must come before workers-ai, since cloudflare/<provider>/<model> needs gateway routing
21606
+ matches: (m2) => m2.startsWith("cloudflare/") || m2.startsWith("cloudflare:"),
21607
+ secretNames: ["CF_ACCOUNT_ID", "CF_AI_GATEWAY_ID"]
21608
+ },
21609
+ {
21610
+ providerId: "bedrock",
21611
+ matches: (m2) => m2.startsWith("bedrock/"),
21612
+ secretNames: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY"],
21613
+ optionalSettings: [{ name: "AWS_REGION", defaultValue: DEFAULT_BEDROCK_REGION }]
21614
+ },
21615
+ {
21616
+ providerId: "tinfoil",
21617
+ matches: (m2) => m2.startsWith("tinfoil/") || m2.startsWith("tinfoil:"),
21618
+ secretNames: ["TINFOIL_API_KEY"]
21619
+ },
21620
+ {
21621
+ providerId: "generic-openai",
21622
+ // WHY(docs/why/packages/shared/src.md#must-come-before-openai-since-it-shares-the-open): must come before openai, since it shares the openai substring in its prefix
21623
+ matches: (m2) => m2.startsWith("generic-openai/") || m2.startsWith("generic-openai:"),
21624
+ secretNames: ["GENERIC_OPENAI_API_KEY", "GENERIC_OPENAI_BASE_URL"]
21625
+ },
21626
+ {
21627
+ providerId: "workers-ai",
21628
+ // WHY(docs/why/packages/shared/src.md#uses-a-cf-platform-binding-not-a-secret-so-secre): uses a CF platform binding not a secret, so secretNames is intentionally empty
21629
+ matches: (m2) => m2.startsWith("@cf/") || m2.startsWith("workers-ai/"),
21630
+ secretNames: []
21631
+ },
21632
+ {
21633
+ providerId: "anthropic",
21634
+ matches: (m2) => m2.startsWith("anthropic/") || m2.startsWith("claude-") || m2.includes("/claude-"),
21635
+ secretNames: ["ANTHROPIC_API_KEY"]
21636
+ },
21637
+ {
21638
+ providerId: "openai",
21639
+ matches: (m2) => m2.startsWith("openai/") || m2.startsWith("gpt-") || m2.startsWith("o1-") || m2.startsWith("o3-") || m2.startsWith("o4-") || m2.includes("/gpt-"),
21640
+ secretNames: ["OPENAI_API_KEY"]
21641
+ },
21642
+ {
21643
+ providerId: "google",
21644
+ matches: (m2) => m2.startsWith("google/") || m2.startsWith("gemini-") || m2.includes("/gemini-"),
21645
+ secretNames: ["GOOGLE_API_KEY"]
21646
+ },
21647
+ {
21648
+ providerId: "mixlayer",
21649
+ // WHY(docs/why/packages/shared/src.md#z-ai-is-mixlayers-glm-namespace-distinct-from-ve): z-ai/ is Mixlayer's GLM namespace, distinct from Vercel Gateway's zai/ spelling of the same model
21650
+ matches: (m2) => m2.startsWith("mixlayer/") || m2.startsWith("modelsocket/") || m2.startsWith("qwen/") || m2.startsWith("z-ai/") || m2.startsWith("kimi-") || m2.includes("/kimi-") || /(?:^|\/)qwen3[.-]5-\d+b(?:-a\d+b)?$/i.test(m2),
21651
+ secretNames: ["MIXLAYER_API_KEY"]
21652
+ },
21653
+ {
21654
+ providerId: "xai",
21655
+ matches: (m2) => m2.startsWith("grok-") || m2.startsWith("xai/"),
21656
+ secretNames: ["XAI_API_KEY"]
21657
+ }
21658
+ ];
21659
+ function resolveModelSecretNames(model) {
21660
+ const lower = model.toLowerCase();
21661
+ for (const spec of PROVIDER_SECRET_SPECS) {
21662
+ if (spec.matches(lower)) return [...spec.secretNames];
21663
+ }
21664
+ return [];
21665
+ }
21666
+ function resolveModelOptionalSettings(model) {
21667
+ const lower = model.toLowerCase();
21668
+ for (const spec of PROVIDER_SECRET_SPECS) {
21669
+ if (spec.matches(lower)) return [...spec.optionalSettings ?? []];
21670
+ }
21671
+ return [];
21672
+ }
21673
+
21674
+ // ../shared/dist/chunk-HIIORCZ5.mjs
21675
+ var REPLAY_FROM_START = Object.freeze({
21676
+ row: 0,
21677
+ sub: Number.POSITIVE_INFINITY
21678
+ });
21679
+
21366
21680
  // ../shared/dist/chunk-HD3SKN3O.mjs
21367
21681
  var edgeAuthSnapshotSchema = external_exports.object({
21368
21682
  /**
@@ -21438,17 +21752,10 @@ var resolvedEdgeAuthSnapshotSchema = edgeAuthSnapshotSchema.extend({
21438
21752
  resolvedAt: external_exports.number().int().positive()
21439
21753
  });
21440
21754
 
21441
- // ../shared/dist/chunk-P75VQJDW.mjs
21442
- var AGENT_EXECUTION_STATUSES = [
21443
- "queued",
21444
- "running",
21445
- "paused",
21446
- "completed",
21447
- "failed",
21448
- "cancelled",
21449
- "interrupted"
21450
- ];
21451
- var agentExecutionStatusSchema = external_exports.enum(AGENT_EXECUTION_STATUSES);
21755
+ // ../shared/dist/chunk-4VLXOKEV.mjs
21756
+ var CONTAINER_SANDBOX_INSTANCE_TYPE = "standard-4";
21757
+
21758
+ // ../shared/dist/chunk-PDK72EP7.mjs
21452
21759
  var RUNTYPE_ITERATION = "runtype.iteration";
21453
21760
  var RUNTYPE_TURN_INDEX = "runtype.turn.index";
21454
21761
  var RUNTYPE_LEGACY_ATTRIBUTE_ALIASES = {
@@ -21457,12 +21764,68 @@ var RUNTYPE_LEGACY_ATTRIBUTE_ALIASES = {
21457
21764
  };
21458
21765
  var GEN_AI_TOOL_CALL_ARGUMENTS = "gen_ai.tool.call.arguments";
21459
21766
  var GEN_AI_TOOL_CALL_RESULT = "gen_ai.tool.call.result";
21767
+ var GEN_AI_INPUT_MESSAGES = "gen_ai.input.messages";
21768
+ var GEN_AI_OUTPUT_MESSAGES = "gen_ai.output.messages";
21769
+ var GEN_AI_CONTENT_ATTRIBUTES = {
21770
+ /** Chat history sent to the model, as semconv structured messages. */
21771
+ inputMessages: GEN_AI_INPUT_MESSAGES,
21772
+ /** Messages the model produced (includes reasoning content parts). */
21773
+ outputMessages: GEN_AI_OUTPUT_MESSAGES,
21774
+ /** System instructions, when separate from the input messages. */
21775
+ systemInstructions: "gen_ai.system_instructions",
21776
+ /** `execute_tool` span: the arguments the tool was called with. */
21777
+ toolCallArguments: GEN_AI_TOOL_CALL_ARGUMENTS,
21778
+ /** `execute_tool` span: the result the tool returned. */
21779
+ toolCallResult: GEN_AI_TOOL_CALL_RESULT
21780
+ };
21460
21781
  var GEN_AI_CONTENT_ATTRIBUTE_ALIASES = {
21461
- [GEN_AI_TOOL_CALL_ARGUMENTS]: ["flue.tool.call.arguments"],
21462
- [GEN_AI_TOOL_CALL_RESULT]: ["flue.tool.call.result"]
21782
+ [GEN_AI_INPUT_MESSAGES]: ["ai.prompt.messages", "ai.prompt"],
21783
+ [GEN_AI_OUTPUT_MESSAGES]: ["ai.response.text", "ai.response.object"],
21784
+ [GEN_AI_TOOL_CALL_ARGUMENTS]: ["flue.tool.call.arguments", "ai.toolCall.args"],
21785
+ [GEN_AI_TOOL_CALL_RESULT]: ["flue.tool.call.result", "ai.toolCall.result"]
21463
21786
  };
21787
+ var OPENINFERENCE_CONTENT_PREFIXES = [
21788
+ "llm.input_messages.",
21789
+ "llm.output_messages.",
21790
+ "llm.prompts",
21791
+ "llm.prompt_template.",
21792
+ "llm.choices",
21793
+ "llm.function_call",
21794
+ "retrieval.documents.",
21795
+ "embedding.embeddings.",
21796
+ "input.value",
21797
+ "output.value"
21798
+ ];
21799
+ var AI_SDK_CONTENT_PREFIXES = ["ai.response.toolCalls"];
21800
+ var MASTRA_CONTENT_PREFIXES = ["mastra.metadata.body"];
21801
+ var CLOUDFLARE_AGENTS_CONTENT_PREFIXES = [
21802
+ "cloudflare.agents.metadata.",
21803
+ "cloudflare.agents.runtime_context."
21804
+ ];
21805
+ var GEN_AI_CONTENT_ATTRIBUTE_PREFIXES = [
21806
+ ...OPENINFERENCE_CONTENT_PREFIXES,
21807
+ ...AI_SDK_CONTENT_PREFIXES,
21808
+ ...MASTRA_CONTENT_PREFIXES,
21809
+ ...CLOUDFLARE_AGENTS_CONTENT_PREFIXES
21810
+ ];
21811
+ var GEN_AI_CONTENT_ATTRIBUTE_NAMES = /* @__PURE__ */ new Set([
21812
+ ...Object.values(GEN_AI_CONTENT_ATTRIBUTES),
21813
+ ...Object.values(GEN_AI_CONTENT_ATTRIBUTE_ALIASES).flat()
21814
+ ]);
21815
+
21816
+ // ../shared/dist/chunk-ZDRWUYBY.mjs
21817
+ var AGENT_EXECUTION_STATUSES = [
21818
+ "queued",
21819
+ "running",
21820
+ "paused",
21821
+ "completed",
21822
+ "failed",
21823
+ "cancelled",
21824
+ "interrupted"
21825
+ ];
21826
+ var agentExecutionStatusSchema = external_exports.enum(AGENT_EXECUTION_STATUSES);
21464
21827
 
21465
- // ../shared/dist/chunk-RLFQFNGX.mjs
21828
+ // ../shared/dist/chunk-6UABSJMP.mjs
21466
21829
  var CANONICAL_LOG_COLUMN_SET = {
21467
21830
  // @snake-case-ok-start: R2 SQL / Iceberg column naming convention
21468
21831
  event_id: true,
@@ -21660,7 +22023,7 @@ var WEAVIATE_VECTORIZER_MODELS = Object.freeze({
21660
22023
  })
21661
22024
  });
21662
22025
 
21663
- // ../shared/dist/chunk-IXZSYM4R.mjs
22026
+ // ../shared/dist/chunk-2F2C3Q7I.mjs
21664
22027
  var THINKING_CONTENT_PART_TYPES = [
21665
22028
  "reasoning",
21666
22029
  "thinking",
@@ -21846,254 +22209,7 @@ var recordCollectionSchemaSchema = external_exports.strictObject({
21846
22209
  additionalProperties: external_exports.boolean().optional()
21847
22210
  }).superRefine((schema, ctx) => addSemanticIssues(schema, ctx));
21848
22211
 
21849
- // ../shared/dist/chunk-DVPH4AHH.mjs
21850
- var MCPServerCategory = {
21851
- COMMUNICATION: "communication",
21852
- PRODUCTIVITY: "productivity",
21853
- DEVELOPMENT: "development",
21854
- PROJECT_MANAGEMENT: "project_management"
21855
- };
21856
- var subagentExecutionModeSchema = external_exports.enum(["attached", "detached"]);
21857
- var subagentNotificationModeSchema = external_exports.enum(["none", "narrate", "react"]);
21858
- var subagentExecutionConfigSchema = external_exports.object({
21859
- /** Attached is the backwards-compatible default. */
21860
- mode: subagentExecutionModeSchema.optional(),
21861
- /** Detached tools default to `narrate`; attached tools ignore this field. */
21862
- notify: subagentNotificationModeSchema.optional(),
21863
- /** Absolute background-run wall-clock ceiling. */
21864
- maxBudgetMs: external_exports.number().int().min(1e3).max(864e5).optional(),
21865
- /** Optional resetting silence budget after observable progress. */
21866
- noProgressBudgetMs: external_exports.number().int().min(1e3).max(864e5).optional()
21867
- });
21868
- var subagentRunHandleSchema = external_exports.object({
21869
- kind: external_exports.literal("subagent_run"),
21870
- runId: external_exports.string(),
21871
- /**
21872
- * Which durable lane the child executes on. `'durable'` is the ADR 0020
21873
- * session DO; `'runtype'` is the in-process detached-run DO.
21874
- */
21875
- agentType: external_exports.enum(["runtype", "claude_managed", "durable"]),
21876
- status: external_exports.enum(["queued", "running"]),
21877
- startedAt: external_exports.string()
21878
- });
21879
- var agentSubagentConfigSchema = external_exports.object({
21880
- /**
21881
- * Pool of tool IDs the parent is permitted to grant to ad-hoc subagents.
21882
- * Supports exact IDs, wildcards (`mcp:*`, `builtin:*`, `platform:*`), and
21883
- * runtime-tool names. Must be a SUBSET of the parent's resolved tools —
21884
- * validated at dispatch (no privilege escalation).
21885
- */
21886
- toolPool: external_exports.array(external_exports.string()),
21887
- /** Default for spawned subagent loops. Default 5. */
21888
- defaultMaxTurns: external_exports.number().optional(),
21889
- /** Hard cap a spawned subagent can request. Default 10. */
21890
- maxTurnsLimit: external_exports.number().optional(),
21891
- /** Hard ceiling on total spawns per top-level parent invocation. Default 5. */
21892
- maxSpawnsPerRun: external_exports.number().optional(),
21893
- /** Default model for spawned subagents. Defaults to parent's model. */
21894
- defaultModel: external_exports.string().optional(),
21895
- /**
21896
- * Whether a spawned subagent can itself spawn subagents. Default `false`
21897
- * (Anthropic-aligned). Even when `true`, MAX_NESTED_DEPTH still bounds the
21898
- * recursion tree.
21899
- */
21900
- allowNesting: external_exports.boolean().optional(),
21901
- /** Default per-spawn timeout. Default 300_000 (5 min). */
21902
- defaultTimeoutMs: external_exports.number().optional(),
21903
- /** Execution modes the model may request. Default `['attached']`. */
21904
- executionModes: external_exports.array(subagentExecutionModeSchema).min(1).optional(),
21905
- /** Default mode when the model omits `executionMode`. */
21906
- defaultExecutionMode: subagentExecutionModeSchema.optional(),
21907
- /** Default completion policy for detached dynamic children. */
21908
- defaultNotify: subagentNotificationModeSchema.optional(),
21909
- /** Absolute wall-clock ceiling for detached dynamic children. */
21910
- detachedMaxBudgetMs: external_exports.number().int().min(1e3).max(864e5).optional(),
21911
- /** Optional resetting silence budget for detached dynamic children. */
21912
- detachedNoProgressBudgetMs: external_exports.number().int().min(1e3).max(864e5).optional()
21913
- });
21914
- var codeModeConfigSchema = external_exports.object({
21915
- /** Tool IDs available in the sandbox (subset of agent's tools, supports wildcards like `mcp:*`) */
21916
- toolPool: external_exports.array(external_exports.string()),
21917
- /** Optional custom description prefix for the synthesized tool */
21918
- description: external_exports.string().optional(),
21919
- /** Sandbox execution timeout in ms (default 60000) */
21920
- timeoutMs: external_exports.number().optional()
21921
- });
21922
- var toolLimitSchema = external_exports.object({
21923
- maxCalls: external_exports.number().optional(),
21924
- required: external_exports.boolean().optional()
21925
- });
21926
- var approvalConfigSchema = external_exports.object({
21927
- /** Tools that require user approval before execution.
21928
- * string[]: tool names/patterns ("send_email", "mcp:*", "builtin:*")
21929
- * true: all tools require approval
21930
- * false/undefined: no approval required (default) */
21931
- require: external_exports.union([external_exports.array(external_exports.string()), external_exports.boolean()]).optional(),
21932
- /** Timeout in ms for approval response (default: 300000 = 5 min) */
21933
- timeout: external_exports.number().optional(),
21934
- /** Whether to ask the model for a per-call justification on approval-gated
21935
- * tools by injecting a reserved optional `_approvalReason` string into the
21936
- * model-visible parameters schema. The value is stripped before the tool
21937
- * executes and surfaced to the approver. Default: true (opt out with false). */
21938
- requestReason: external_exports.boolean().optional(),
21939
- // WHY(docs/why/packages/shared/src.md#persistent-always-choices-at-the-human-approval): Persistent "always" choices at the human approval prompt; user-facing options, not auto-behavior.
21940
- /**
21941
- * Persistent "always" choices at the human approval prompt; user-facing options, not auto-behavior.
21942
- * Keys mirror the grant decision enum (alwaysAllow -> 'allow', alwaysDeny -> 'deny').
21943
- * Default: both off; this is the sole control for persisted approval grants (no Flagship flag).
21944
- * See docs/features/planning/2026-06-13-cross-session-always-allow-approval-grants.md
21945
- */
21946
- choices: external_exports.object({
21947
- alwaysAllow: external_exports.boolean().optional(),
21948
- alwaysDeny: external_exports.boolean().optional()
21949
- }).optional()
21950
- });
21951
- var toolSearchConfigSchema = external_exports.object({
21952
- /** Explicit opt-in/out. When omitted, auto-activates if tool count >= threshold. */
21953
- enabled: external_exports.boolean().optional(),
21954
- /** Tool count at which search activates (default: 20) */
21955
- threshold: external_exports.number().optional(),
21956
- /** Tool names or IDs that should always be in the hot set */
21957
- alwaysLoaded: external_exports.array(external_exports.string()).optional()
21958
- });
21959
- var agentToolsConfigSchema = external_exports.object({
21960
- /** IDs of tools to enable (builtin:*, mcp:*, platform:*, platform:orthogonal:*, custom tool IDs) */
21961
- toolIds: external_exports.array(external_exports.string()).optional(),
21962
- /** Per-tool parameter configurations, keyed by tool ID */
21963
- toolConfigs: external_exports.record(external_exports.string(), external_exports.custom()).optional(),
21964
- /** Inline tool definitions (no DB storage needed) */
21965
- runtimeTools: external_exports.array(external_exports.custom()).optional(),
21966
- /** Runtime MCP server connections */
21967
- mcpServers: external_exports.array(external_exports.custom()).optional(),
21968
- /** Maximum tool calls per execution (renamed from maxTurns in agents) */
21969
- maxToolCalls: external_exports.number().optional(),
21970
- /** Tool calling strategy */
21971
- toolCallStrategy: external_exports.enum(["auto", "required", "none"]).optional(),
21972
- /** Per-tool call limits */
21973
- perToolLimits: external_exports.record(external_exports.string(), toolLimitSchema).optional(),
21974
- /** Human-in-the-loop approval configuration */
21975
- approval: approvalConfigSchema.optional(),
21976
- /**
21977
- * Opt-in: enables agent-driven dynamic subagent spawning. When set, the
21978
- * prompt-step tool-prep layer synthesizes a `spawn_subagent` tool into the
21979
- * AI-SDK tool list with a dynamically-generated description listing the
21980
- * tools the parent's LLM can grant. See `AgentSubagentConfig` for fields.
21981
- */
21982
- subagentConfig: agentSubagentConfigSchema.optional(),
21983
- /**
21984
- * Opt-in: enables a synthesized `code_mode` tool that lets agents execute
21985
- * JavaScript code in a sandboxed V8 isolate with access to a subset of
21986
- * the agent's tools. The LLM writes code that calls tool functions
21987
- * deterministically instead of making individual tool calls.
21988
- */
21989
- codeModeConfig: codeModeConfigSchema.optional(),
21990
- // WHY(docs/why/packages/shared/src.md#tool-search-configuration-when-total-tool-count): Tool search configuration; when total tool count exceeds the threshold, deferred loading activates.
21991
- /**
21992
- * Tool search configuration; when total tool count exceeds the threshold, deferred loading activates.
21993
- * Only a hot set of tools is sent to the model each turn; tool_search lets it discover more on demand.
21994
- * Auto-activates when omitted and total tool count >= 20.
21995
- * Set enabled: false to force all tools to be sent regardless of count.
21996
- */
21997
- toolSearch: toolSearchConfigSchema.optional()
21998
- });
21999
- var CreateToolSchema = external_exports.object({
22000
- name: external_exports.string().min(1).max(100),
22001
- description: external_exports.string().min(1).max(500),
22002
- toolType: external_exports.enum(["flow", "custom", "external", "graphql", "mcp", "local", "subagent"]),
22003
- parametersSchema: external_exports.record(external_exports.string(), external_exports.any()),
22004
- config: external_exports.record(external_exports.string(), external_exports.any())
22005
- });
22006
- var ExecuteToolSchema = external_exports.object({
22007
- // WHY(docs/why/packages/shared/src.md#toolid-is-optional-here-so-mcp-sdk-callers-sendi): toolId is optional here so MCP/SDK callers sending only {parameters} aren't rejected at validation
22008
- toolId: external_exports.string().optional(),
22009
- parameters: external_exports.record(external_exports.string(), external_exports.any()),
22010
- context: external_exports.object({
22011
- flowExecutionId: external_exports.string().optional(),
22012
- stepId: external_exports.string().optional(),
22013
- userId: external_exports.string()
22014
- }).optional()
22015
- });
22016
- function parseToolInstanceId(toolId) {
22017
- const hashIndex = toolId.indexOf("#");
22018
- if (hashIndex === -1) {
22019
- return { baseId: toolId, instanceId: "" };
22020
- }
22021
- return {
22022
- baseId: toolId.substring(0, hashIndex),
22023
- instanceId: toolId.substring(hashIndex + 1)
22024
- };
22025
- }
22026
- function isBuiltInToolId(toolId) {
22027
- return toolId.startsWith("builtin:");
22028
- }
22029
- function isPlatformToolId(toolId) {
22030
- return toolId.startsWith("platform:");
22031
- }
22032
- var INTEGRATION_SERVER_IDS = /* @__PURE__ */ new Set([
22033
- "slack",
22034
- "google",
22035
- "linear",
22036
- "github",
22037
- "telegram",
22038
- "imessage",
22039
- "granola"
22040
- ]);
22041
- function isBuiltInIntegrationToolId(toolId) {
22042
- if (!toolId.startsWith("builtin:")) return false;
22043
- const { baseId } = parseToolInstanceId(toolId);
22044
- const parts = baseId.split(":");
22045
- if (parts.length < 3) return false;
22046
- return INTEGRATION_SERVER_IDS.has(parts[1]);
22047
- }
22048
- function isMCPToolId(toolId) {
22049
- return toolId.startsWith("mcp:");
22050
- }
22051
- var NAMED_TOOL_REF_PREFIX = "tool:";
22052
- function isNamedToolRef(toolId) {
22053
- return toolId.startsWith(NAMED_TOOL_REF_PREFIX) && toolId.length > NAMED_TOOL_REF_PREFIX.length;
22054
- }
22055
- function parseNamedToolRef(toolId) {
22056
- if (!isNamedToolRef(toolId)) return null;
22057
- return { name: toolId.slice(NAMED_TOOL_REF_PREFIX.length) };
22058
- }
22059
- function separateToolIds(toolIds) {
22060
- const builtInToolIds = [];
22061
- const platformToolIds = [];
22062
- const integrationToolIds = [];
22063
- const mcpToolIds = [];
22064
- const dataConnectionToolIds = [];
22065
- const namedToolIds = [];
22066
- const customToolIds = [];
22067
- for (const toolId of toolIds) {
22068
- if (isDataConnectionToolId(toolId)) {
22069
- dataConnectionToolIds.push(toolId);
22070
- } else if (isPlatformToolId(toolId)) {
22071
- platformToolIds.push(toolId);
22072
- } else if (isBuiltInIntegrationToolId(toolId)) {
22073
- integrationToolIds.push(toolId);
22074
- } else if (isBuiltInToolId(toolId)) {
22075
- builtInToolIds.push(toolId);
22076
- } else if (isMCPToolId(toolId)) {
22077
- mcpToolIds.push(toolId);
22078
- } else if (isNamedToolRef(toolId)) {
22079
- namedToolIds.push(toolId);
22080
- } else {
22081
- customToolIds.push(toolId);
22082
- }
22083
- }
22084
- return {
22085
- builtInToolIds,
22086
- platformToolIds,
22087
- integrationToolIds,
22088
- mcpToolIds,
22089
- dataConnectionToolIds,
22090
- namedToolIds,
22091
- customToolIds
22092
- };
22093
- }
22094
- function isDataConnectionToolId(toolId) {
22095
- return toolId.startsWith("dc:");
22096
- }
22212
+ // ../shared/dist/chunk-E64JJRRB.mjs
22097
22213
  var AGENT_TRANSIENT_SECRETS_CODE = "RUNTIME_AGENT_TRANSIENT_SECRETS_UNSUPPORTED";
22098
22214
  var FLOW_TRANSIENT_SECRETS_CODE = "RUNTIME_FLOW_TRANSIENT_SECRETS_UNSUPPORTED";
22099
22215
  var DISPATCH_TRANSIENT_SECRETS_RETIRED_NOTE = `Retired on BOTH dispatch targets. A NON-EMPTY map is rejected with 400: ${AGENT_TRANSIENT_SECRETS_CODE} on an agent dispatch, ${FLOW_TRANSIENT_SECRETS_CODE} on a flow dispatch (the flow target used to drop the map silently). An empty map is accepted and does nothing. Store credentials as managed secrets and reference them as {{secret:NAME}}. The field is kept on the wire for compatibility only.`;
@@ -24971,7 +25087,7 @@ function unwrapVectorSourceTemplate(source) {
24971
25087
  return inner;
24972
25088
  }
24973
25089
 
24974
- // ../shared/dist/chunk-2M6BB7GC.mjs
25090
+ // ../shared/dist/chunk-7YPUPF5R.mjs
24975
25091
  var jsonPatchOperationSchema = external_exports.object({
24976
25092
  op: external_exports.enum(["add", "remove", "replace", "move", "copy", "test"]),
24977
25093
  /** JSON Pointer (RFC 6901) into the state document. `''` addresses the root. */
@@ -25425,6 +25541,20 @@ var unifiedErrorEventSchema = external_exports.object({
25425
25541
  error: unifiedErrorPayloadSchema,
25426
25542
  recoverable: external_exports.boolean().optional()
25427
25543
  });
25544
+ var unifiedContextNoticeEventSchema = external_exports.object({
25545
+ ...unifiedBase,
25546
+ type: external_exports.literal("context_notice"),
25547
+ kind: external_exports.literal("compaction"),
25548
+ phase: external_exports.enum(["start", "complete"]),
25549
+ /** Reduction ladder tier: 2 is a threshold compaction, 3 an overflow recovery. */
25550
+ tier: external_exports.number().int().nonnegative(),
25551
+ strategy: external_exports.enum(["provider_native", "summary"]),
25552
+ reason: external_exports.enum(["threshold", "overflow", "manual", "surface_policy", "provider_mismatch"]),
25553
+ epoch: external_exports.number().int().nonnegative(),
25554
+ tokensBefore: external_exports.number().optional(),
25555
+ tokensAfter: external_exports.number().optional(),
25556
+ outcome: external_exports.enum(["ok", "failed", "gap", "skipped"]).optional()
25557
+ });
25428
25558
  var unifiedPingEventSchema = external_exports.object({
25429
25559
  ...unifiedBase,
25430
25560
  type: external_exports.literal("ping"),
@@ -25471,6 +25601,7 @@ var unifiedSSEEventSchema = external_exports.discriminatedUnion("type", [
25471
25601
  unifiedApprovalCompleteEventSchema,
25472
25602
  unifiedAwaitEventSchema,
25473
25603
  unifiedErrorEventSchema,
25604
+ unifiedContextNoticeEventSchema,
25474
25605
  unifiedPingEventSchema,
25475
25606
  unifiedCustomEventSchema
25476
25607
  ]);
@@ -25509,11 +25640,12 @@ var UNIFIED_SSE_EVENT_TYPES = _unifiedTuple([
25509
25640
  "approval_complete",
25510
25641
  "await",
25511
25642
  "error",
25643
+ "context_notice",
25512
25644
  "ping",
25513
25645
  "custom"
25514
25646
  ]);
25515
25647
 
25516
- // ../shared/dist/chunk-B4DUH7XO.mjs
25648
+ // ../shared/dist/chunk-V4LVGBYS.mjs
25517
25649
  var mediaAnnotationsSchema = external_exports.object({
25518
25650
  audience: external_exports.array(external_exports.enum(["user", "assistant"])).optional()
25519
25651
  });
@@ -25711,6 +25843,19 @@ var agentStateDeltaEventSchema = external_exports.object({
25711
25843
  patch: jsonPatchSchema,
25712
25844
  iteration: external_exports.number().optional()
25713
25845
  });
25846
+ var agentContextNoticeEventSchema = external_exports.object({
25847
+ ...baseAgentEvent,
25848
+ type: external_exports.literal("agent_context_notice"),
25849
+ kind: external_exports.literal("compaction"),
25850
+ phase: external_exports.enum(["start", "complete"]),
25851
+ tier: external_exports.number(),
25852
+ strategy: external_exports.enum(["provider_native", "summary"]),
25853
+ reason: external_exports.enum(["threshold", "overflow", "manual", "surface_policy", "provider_mismatch"]),
25854
+ epoch: external_exports.number(),
25855
+ tokensBefore: external_exports.number().optional(),
25856
+ tokensAfter: external_exports.number().optional(),
25857
+ outcome: external_exports.enum(["ok", "failed", "gap", "skipped"]).optional()
25858
+ });
25714
25859
  var agentApprovalStartEventSchema = external_exports.object({
25715
25860
  ...baseAgentEvent,
25716
25861
  type: external_exports.literal("agent_approval_start"),
@@ -25848,6 +25993,7 @@ var agentSSEEventSchema = external_exports.discriminatedUnion("type", [
25848
25993
  agentMediaEventSchema,
25849
25994
  agentStateSnapshotEventSchema,
25850
25995
  agentStateDeltaEventSchema,
25996
+ agentContextNoticeEventSchema,
25851
25997
  agentApprovalStartEventSchema,
25852
25998
  agentApprovalCompleteEventSchema,
25853
25999
  agentAwaitEventSchema,
@@ -26709,10 +26855,6 @@ function speechProfilesSemanticallyEqual(legacy, canonical) {
26709
26855
  const resolved = resolveVoiceSpeechProfile({ speech: canonical });
26710
26856
  return JSON.stringify(legacy) === JSON.stringify(resolved);
26711
26857
  }
26712
- var REPLAY_FROM_START = Object.freeze({
26713
- row: 0,
26714
- sub: Number.POSITIVE_INFINITY
26715
- });
26716
26858
  var agUiEventBase = {
26717
26859
  // INVARIANT: Metadata is absent or an object; an explicit null fails the spec parse.
26718
26860
  metadata: external_exports.record(external_exports.string(), external_exports.unknown()).optional()
@@ -26973,6 +27115,89 @@ function stripTrailingChars(value, char) {
26973
27115
  }
26974
27116
  return end === value.length ? value : value.slice(0, end);
26975
27117
  }
27118
+ var AGENT_ALIAS_MAX_LENGTH = 63;
27119
+ var AGENT_INLINE_DEFINITION_FIELDS = [
27120
+ "claudeManagedConfig",
27121
+ "model",
27122
+ "systemPrompt",
27123
+ "temperature",
27124
+ "topP",
27125
+ "topK",
27126
+ "frequencyPenalty",
27127
+ "presencePenalty",
27128
+ "seed",
27129
+ "maxTokens",
27130
+ "tools",
27131
+ "artifacts",
27132
+ "loopConfig",
27133
+ "advisor",
27134
+ "reasoning",
27135
+ "voice",
27136
+ "errorHandling",
27137
+ "loggingPolicy",
27138
+ "piiRedaction",
27139
+ "temporal",
27140
+ "memory",
27141
+ "sandbox",
27142
+ "tenancyStrategy"
27143
+ ];
27144
+ function isPresent(value) {
27145
+ return value !== void 0 && value !== null;
27146
+ }
27147
+ function hasAgentSelector(agent) {
27148
+ if (!agent) return false;
27149
+ return isPresent(agent.alias) || isPresent(agent.versionId);
27150
+ }
27151
+ function agentSelectorViolation(agent) {
27152
+ if (!agent) return null;
27153
+ const hasAlias = isPresent(agent.alias);
27154
+ const hasVersionId = isPresent(agent.versionId);
27155
+ if (!hasAlias && !hasVersionId) return null;
27156
+ if (hasAlias && hasVersionId) {
27157
+ return {
27158
+ code: "selector_conflict",
27159
+ path: "agent.versionId",
27160
+ message: "An agent selects at most one version: supply agent.alias or agent.versionId, not both."
27161
+ };
27162
+ }
27163
+ if (!isPresent(agent.agentId) && !isPresent(agent.name)) {
27164
+ return {
27165
+ code: "selector_requires_identity",
27166
+ path: "agent.agentId",
27167
+ message: "A version selector needs an agent identity: supply agent.agentId or agent.name alongside it."
27168
+ };
27169
+ }
27170
+ for (const field of AGENT_INLINE_DEFINITION_FIELDS) {
27171
+ if (isPresent(agent[field])) {
27172
+ return {
27173
+ code: "inline_definition_with_selector",
27174
+ path: `agent.${field}`,
27175
+ message: `agent.${field} is an inline definition and cannot be combined with a version selector; the selected version supplies the definition.`
27176
+ };
27177
+ }
27178
+ }
27179
+ if (hasAlias) {
27180
+ const alias = agent.alias;
27181
+ if (typeof alias !== "string" || alias.length === 0 || alias.length > AGENT_ALIAS_MAX_LENGTH) {
27182
+ return {
27183
+ code: "selector_conflict",
27184
+ path: "agent.alias",
27185
+ message: `agent.alias must be a string of at most ${AGENT_ALIAS_MAX_LENGTH} characters.`
27186
+ };
27187
+ }
27188
+ }
27189
+ if (hasVersionId) {
27190
+ const versionId = agent.versionId;
27191
+ if (typeof versionId !== "string" || versionId.length === 0) {
27192
+ return {
27193
+ code: "selector_conflict",
27194
+ path: "agent.versionId",
27195
+ message: "agent.versionId must be a non-empty string."
27196
+ };
27197
+ }
27198
+ }
27199
+ return null;
27200
+ }
26976
27201
  var CLIENT_EXECUTED_TOOL_TYPES = /* @__PURE__ */ new Set(["local", "webmcp"]);
26977
27202
  function isClientExecutedToolType(toolType) {
26978
27203
  return typeof toolType === "string" && CLIENT_EXECUTED_TOOL_TYPES.has(toolType);
@@ -27637,12 +27862,12 @@ var sandboxNetworkAccessSchema = external_exports.union([
27637
27862
  ]);
27638
27863
  var sandboxConfigSchema = external_exports.object({
27639
27864
  enabled: external_exports.boolean(),
27640
- // WORKAROUND(docs/why/packages/shared/src.md#provider-is-inert-except-runtype-sandbox-daytona): provider is INERT except 'runtype-sandbox'; 'daytona' is kept parseable but rejected at runtime
27641
- provider: external_exports.enum(["runtype-sandbox", "daytona"]).optional(),
27642
- // WORKAROUND(docs/why/packages/shared/src.md#named-persistence-is-parseable-but-not-implement): 'named' persistence is parseable but not implemented; runtime silently degrades it to 'ephemeral'
27643
- persistence: external_exports.enum(["ephemeral", "conversation", "named"]).optional(),
27644
- // WORKAROUND(docs/why/packages/shared/src.md#instancetype-is-inert-on-the-agent-sandbox-path): instanceType is INERT on the agent sandbox path; it always provisions standard-4 regardless
27645
- instanceType: external_exports.enum(["standard-1", "standard-2", "standard-3", "standard-4"]).optional(),
27865
+ // INVARIANT: Parsing preserves stored providers; capability validation rejects unsupported enabled values.
27866
+ provider: external_exports.enum(["runtype-sandbox", "daytona"]).optional().describe("Only runtype-sandbox is currently supported. Daytona is retained for stored-config parsing but rejected at authoring/execution."),
27867
+ // INVARIANT: Named persistence remains readable but fails capability validation when enabled.
27868
+ persistence: external_exports.enum(["ephemeral", "conversation", "named"]).optional().describe("Supported: ephemeral or conversation. Named remains parseable for stored configs but cannot be enabled."),
27869
+ // INVARIANT: The hosted provider only provisions standard-4; other enabled sizes fail capability validation.
27870
+ instanceType: external_exports.enum(["standard-1", "standard-2", "standard-3", "standard-4"]).optional().describe("Only standard-4 is supported on the hosted Agent Sandbox path; other sizes cannot be enabled."),
27646
27871
  networkAccess: sandboxNetworkAccessSchema.optional(),
27647
27872
  ttl: external_exports.enum(["5m", "1h", "24h", "unlimited"]).optional(),
27648
27873
  sleepAfter: external_exports.enum(["5m", "15m", "30m", "1h"]).optional(),
@@ -27664,6 +27889,7 @@ var agentDurabilityConfigSchema = external_exports.object({
27664
27889
  maxBudgetMs: external_exports.number().int().min(1e3).max(864e5).nullable().optional(),
27665
27890
  forced: external_exports.enum(["durable", "in_process"]).optional()
27666
27891
  });
27892
+ var turnDurabilityOverrideSchema = agentDurabilityConfigSchema.pick({ forced: true, watchLeaseMs: true }).extend({ watchLeaseMs: external_exports.number().int().min(1e4).max(18e5).optional() }).strict();
27667
27893
  var DEFAULT_TURN_MAX_BUDGET_MS = 30 * 60 * 1e3;
27668
27894
  var agentRuntimeConfigSchema = external_exports.object({
27669
27895
  model: external_exports.string().optional(),
@@ -31934,6 +32160,58 @@ function validateToolCallStrategyNoneWithTools(flowSteps, buckets) {
31934
32160
  );
31935
32161
  }
31936
32162
  }
32163
+ var PROVIDER_TOOLS_MIXED_OWNERS_CODE = "PROVIDER_TOOLS_MIXED_OWNERS";
32164
+ function collectProviderToolOwners(toolIds) {
32165
+ const toolIdsByOwner = {};
32166
+ let winner;
32167
+ if (Array.isArray(toolIds)) {
32168
+ for (const toolId of toolIds) {
32169
+ if (typeof toolId !== "string") continue;
32170
+ const owner = resolveDirectProviderToolOwner(toolId);
32171
+ if (!owner) continue;
32172
+ winner ?? (winner = owner);
32173
+ (toolIdsByOwner[owner] ?? (toolIdsByOwner[owner] = [])).push(toolId);
32174
+ }
32175
+ }
32176
+ const owners = Object.keys(toolIdsByOwner).sort();
32177
+ return {
32178
+ owners,
32179
+ toolIdsByOwner: Object.fromEntries(owners.map((owner) => [owner, toolIdsByOwner[owner]])),
32180
+ winner
32181
+ };
32182
+ }
32183
+ function providerToolsMixedOwnersMessage(grouping) {
32184
+ const winner = grouping.winner ?? grouping.owners[0];
32185
+ const attached = grouping.owners.map((owner) => `${owner}: ${grouping.toolIdsByOwner[owner].join(", ")}`).join("; ");
32186
+ const losers = grouping.owners.filter((owner) => owner !== winner).flatMap((owner) => grouping.toolIdsByOwner[owner]).join(", ");
32187
+ 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.`;
32188
+ }
32189
+ function validateProviderToolMixedOwners(flowSteps, buckets) {
32190
+ for (const [stepIndex, step] of flowSteps.entries()) {
32191
+ if (step.enabled === false) continue;
32192
+ if (step.type !== "prompt") continue;
32193
+ if (!isObjectRecord(step.config)) continue;
32194
+ const tools = step.config.tools;
32195
+ if (!isObjectRecord(tools)) continue;
32196
+ const grouping = collectProviderToolOwners(tools.toolIds ?? tools.tool_ids);
32197
+ if (grouping.owners.length < 2) continue;
32198
+ addIssue(
32199
+ "warning",
32200
+ {
32201
+ code: PROVIDER_TOOLS_MIXED_OWNERS_CODE,
32202
+ message: providerToolsMixedOwnersMessage(grouping),
32203
+ path: `flowSteps[${stepIndex}].config.tools.toolIds`,
32204
+ step: { index: stepIndex, name: step.name, type: step.type },
32205
+ details: {
32206
+ owners: grouping.owners,
32207
+ toolIdsByOwner: grouping.toolIdsByOwner,
32208
+ winner: grouping.winner
32209
+ }
32210
+ },
32211
+ buckets
32212
+ );
32213
+ }
32214
+ }
31937
32215
  var OPTIONAL_PARAM_IN_TOOL_TEMPLATE_CODE = "OPTIONAL_PARAM_IN_TOOL_TEMPLATE";
31938
32216
  var TOOL_TEMPLATE_TOKEN_PATTERN = /\{\{([^{}]+)\}\}/g;
31939
32217
  var TEMPLATE_IDENTIFIER_HEAD_PATTERN = /^[A-Za-z_$][A-Za-z0-9_$]*/;
@@ -33078,6 +33356,7 @@ function collectFlowStructureIssues(flowData, deps, buckets) {
33078
33356
  validateExecuteAgentTemplatedRefs(flowData.flowSteps, buckets, recursiveStepsRejected);
33079
33357
  validateToolCallStrategyMultiStep(flowData.flowSteps, buckets);
33080
33358
  validateToolCallStrategyNoneWithTools(flowData.flowSteps, buckets);
33359
+ validateProviderToolMixedOwners(flowData.flowSteps, buckets);
33081
33360
  validateOptionalParamsInToolTemplates(flowData.flowSteps, buckets);
33082
33361
  validateListRecordsArrayAccess(flowData.flowSteps, buckets);
33083
33362
  validateFetchClassSwallowingFeed(flowData.flowSteps, buckets);
@@ -33224,6 +33503,147 @@ var endUserUsageResponseSchema = external_exports.object({
33224
33503
  executions: external_exports.number().int().nonnegative()
33225
33504
  }).merge(endUserUsageMoneySchema)
33226
33505
  });
33506
+ var PRODUCTION_HEALTH_MAX_DAYS = 90;
33507
+ var PRODUCTION_HEALTH_DEFAULT_DAYS = 7;
33508
+ var INSIGHT_SEVERITIES = ["critical", "warning", "info"];
33509
+ var metricDeltaSchema = external_exports.object({
33510
+ value: external_exports.number().nullable(),
33511
+ previous: external_exports.number().nullable()
33512
+ });
33513
+ var executionCountsSchema = external_exports.object({
33514
+ /** Runs that started inside the current period. */
33515
+ current: external_exports.number().int(),
33516
+ /** Runs that started inside the preceding period of equal length. */
33517
+ previous: external_exports.number().int(),
33518
+ /** Current-period runs that finished successfully. */
33519
+ successes: external_exports.number().int(),
33520
+ /** Current-period runs that ended in an error or lost their stream. */
33521
+ failures: external_exports.number().int(),
33522
+ /** Current-period runs with no verdict: still running, paused mid-run, or cancelled. */
33523
+ unsettled: external_exports.number().int()
33524
+ });
33525
+ var productionHealthQuerySchema = external_exports.object({
33526
+ days: external_exports.coerce.number().int().min(1).max(PRODUCTION_HEALTH_MAX_DAYS).optional().default(PRODUCTION_HEALTH_DEFAULT_DAYS)
33527
+ });
33528
+ var healthInsightSchema = external_exports.object({
33529
+ id: external_exports.string(),
33530
+ severity: external_exports.enum(INSIGHT_SEVERITIES),
33531
+ title: external_exports.string(),
33532
+ detail: external_exports.string(),
33533
+ href: external_exports.string().optional()
33534
+ });
33535
+ var surfaceUsageSchema = external_exports.object({
33536
+ /** Surface the agent executions were attributed to; rows with no surface type are grouped as `unknown`. */
33537
+ surfaceType: external_exports.string(),
33538
+ /** Agent executions on this surface in the current period. Counts agent runs only, not flow runs. */
33539
+ executions: external_exports.number().int(),
33540
+ /** Share of those agent executions that completed. */
33541
+ successRate: external_exports.number().nullable()
33542
+ });
33543
+ var executionCostMetricSchema = metricDeltaSchema.extend({
33544
+ knownValue: external_exports.number(),
33545
+ knownPrevious: external_exports.number(),
33546
+ incompleteRuns: external_exports.number().int(),
33547
+ previousIncompleteRuns: external_exports.number().int()
33548
+ });
33549
+ var productionHealthResponseSchema = external_exports.object({
33550
+ period: external_exports.object({
33551
+ days: external_exports.number().int(),
33552
+ start: external_exports.string(),
33553
+ end: external_exports.string(),
33554
+ previousStart: external_exports.string()
33555
+ }),
33556
+ /**
33557
+ * Run totals across BOTH populations, read from the run ledgers: one row per
33558
+ * run, whatever it did. `agents` is broken out first because an agent turn
33559
+ * drives a flow internally and used to be counted on both lines at once.
33560
+ * Every field is agents plus flows plus historical runs of unknown population.
33561
+ */
33562
+ // WHY(docs/why/apps/api/src/services.md#the-run-ledger-cannot-count-agent-runs): two tables, disjoint by construction
33563
+ executions: executionCountsSchema.extend({
33564
+ /** Agent runs, from `agent_executions` — the only table that holds an externally hosted agent's runs. */
33565
+ agents: executionCountsSchema,
33566
+ /** Flow runs, from `flow_executions` rows that no agent drove. */
33567
+ flows: executionCountsSchema,
33568
+ /** Historical runs whose agent/flow identity cannot safely be recovered. */
33569
+ unclassified: executionCountsSchema
33570
+ }),
33571
+ /** Daily UTC intervals anchored to period.start, counting the same root runs as executions. */
33572
+ activity: external_exports.array(
33573
+ external_exports.object({
33574
+ date: external_exports.string(),
33575
+ agents: external_exports.number().int(),
33576
+ flows: external_exports.number().int(),
33577
+ unclassified: external_exports.number().int()
33578
+ })
33579
+ ).optional(),
33580
+ /**
33581
+ * Successful runs over SETTLED runs. Runs still open, paused, or cancelled
33582
+ * are outside both halves of this division. Null when nothing settled.
33583
+ */
33584
+ successRate: metricDeltaSchema,
33585
+ /**
33586
+ * 95th percentile of a run's wall clock, end to end: context steps, tool
33587
+ * steps and queueing included. Measured over settled runs only. A run that
33588
+ * paused for an approval or a client tool and then resumed carries the wait
33589
+ * inside its wall clock. Null when no settled run recorded a duration.
33590
+ */
33591
+ p95LatencyMs: metricDeltaSchema,
33592
+ /**
33593
+ * Estimated model cost of EVERY run in the period, divided by the successful
33594
+ * ones, so failed runs load the average. Cost includes all observed model invocations,
33595
+ * including retries, fallback, compaction, and descendants. Null when any
33596
+ * run has incomplete model accounting.
33597
+ */
33598
+ // WHY(docs/why/apps/api/src/services.md#production-health-cost-is-model-cost-not-billed-spend): not billed spend, never reconciles
33599
+ modelCostPerSuccess: metricDeltaSchema,
33600
+ /** Estimated model cost across every run in the window, failed runs included. */
33601
+ totalModelCost: metricDeltaSchema,
33602
+ costs: external_exports.object({
33603
+ model: executionCostMetricSchema,
33604
+ tool: executionCostMetricSchema,
33605
+ total: executionCostMetricSchema
33606
+ }),
33607
+ /**
33608
+ * Share of runs where at least one attempt routed to a fallback model instead
33609
+ * of the configured one, over every run in the period. Null while any run has incomplete
33610
+ * model accounting.
33611
+ */
33612
+ fallbackShare: metricDeltaSchema,
33613
+ /**
33614
+ * Eval pass rates. `value` and `previous` are the latest scored run and the previous scored run in
33615
+ * the same suite, compared run over run rather than period over
33616
+ * period, so either may predate the window.
33617
+ */
33618
+ evals: metricDeltaSchema.extend({
33619
+ suiteId: external_exports.string().nullable(),
33620
+ suiteName: external_exports.string().nullable(),
33621
+ /** When the most recent eval run of any kind was created; null if none has ever run. */
33622
+ lastRunAt: external_exports.string().nullable(),
33623
+ /**
33624
+ * When the run behind `value` was created; null while nothing has ever
33625
+ * scored. Older than `lastRunAt` whenever the newest run is still
33626
+ * processing, failed, cancelled, or graded nothing, so this is the only
33627
+ * timestamp a pass rate may be shown beside.
33628
+ */
33629
+ // INVARIANT: value belongs to this run, never to lastRunAt
33630
+ lastScoredRunAt: external_exports.string().nullable(),
33631
+ /**
33632
+ * Whether `lastRunAt` falls inside the current period. Any eval run counts,
33633
+ * including one still processing, cancelled, failed, or with no graders, so
33634
+ * this can be true while `value` is null, and false while `value` is set.
33635
+ */
33636
+ // INVARIANT: recency is asked of every eval run; pass rates come only from runs that scored
33637
+ ranInPeriod: external_exports.boolean()
33638
+ }),
33639
+ agents: external_exports.object({
33640
+ /** Share of agent runs that stopped because they hit the turn ceiling. Counts are in `executions.agents`. */
33641
+ maxTurnsShare: metricDeltaSchema
33642
+ }),
33643
+ surfaces: external_exports.array(surfaceUsageSchema),
33644
+ insights: external_exports.array(healthInsightSchema),
33645
+ generatedAt: external_exports.string()
33646
+ });
33227
33647
  var RUNTIME_ARTIFACT_MANIFEST_VERSION = "2026-06-08";
33228
33648
  var runtimeArtifactResourceTypeSchema = external_exports.enum(["flow", "agent"]);
33229
33649
  var runtimeArtifactEntrypointSchema = external_exports.enum(["flow", "agent"]);
@@ -34878,7 +35298,8 @@ var FORWARDED_CORE_CODES = /* @__PURE__ */ new Set([
34878
35298
  RESERVED_TOOL_NAME_CODE,
34879
35299
  STORE_VECTOR_MODEL_MISSING_CODE,
34880
35300
  TOOL_CALL_STEP_UNKNOWN_CATALOG_TOOL_CODE,
34881
- EXECUTE_AGENT_TEMPLATED_REF_UNRUNNABLE_CODE
35301
+ EXECUTE_AGENT_TEMPLATED_REF_UNRUNNABLE_CODE,
35302
+ PROVIDER_TOOLS_MIXED_OWNERS_CODE
34882
35303
  ]);
34883
35304
  function validateFlowDefinition(flow, capIndex, context) {
34884
35305
  const result = emptyResult();
@@ -34975,7 +35396,14 @@ function appendForwardedCoreIssues(flow, base, result) {
34975
35396
  if (!FORWARDED_CORE_CODES.has(issue2.code)) return;
34976
35397
  const bucket = severity === "error" ? result.errors : result.warnings;
34977
35398
  bucket.push(
34978
- createIssue(severity, issue2.code, issue2.message, reprefixCorePath(issue2.path, base))
35399
+ createIssue(
35400
+ severity,
35401
+ issue2.code,
35402
+ issue2.message,
35403
+ reprefixCorePath(issue2.path, base),
35404
+ void 0,
35405
+ isRecord(issue2.details) ? issue2.details : void 0
35406
+ )
34979
35407
  );
34980
35408
  };
34981
35409
  for (const issue2 of coreResult.errors) push(issue2, "error");
@@ -34985,6 +35413,29 @@ function finalize2(r) {
34985
35413
  r.valid = r.errors.length === 0;
34986
35414
  return r;
34987
35415
  }
35416
+ function getAgentSandboxCapabilityIssues(config3) {
35417
+ if (!config3 || typeof config3 !== "object" || !("enabled" in config3) || config3.enabled !== true)
35418
+ return [];
35419
+ const sandbox = config3;
35420
+ const capabilities = {
35421
+ provider: ["runtype-sandbox"],
35422
+ persistence: ["ephemeral", "conversation"],
35423
+ instanceType: [CONTAINER_SANDBOX_INSTANCE_TYPE]
35424
+ };
35425
+ const issues = [];
35426
+ for (const [field, supported] of Object.entries(capabilities)) {
35427
+ const requested = sandbox[field];
35428
+ if (typeof requested !== "string" || supported.includes(requested)) continue;
35429
+ issues.push({
35430
+ code: "unsupported_sandbox_capability",
35431
+ path: `config.sandbox.${field}`,
35432
+ requested,
35433
+ supported,
35434
+ message: `Agent Sandbox ${field} '${requested}' is unavailable; supported: ${supported.join(", ")}`
35435
+ });
35436
+ }
35437
+ return issues;
35438
+ }
34988
35439
  function reservedToolNameIssue(name, path21) {
34989
35440
  return createIssue(
34990
35441
  "error",
@@ -34993,6 +35444,22 @@ function reservedToolNameIssue(name, path21) {
34993
35444
  path21
34994
35445
  );
34995
35446
  }
35447
+ function providerToolsMixedOwnersIssue(toolIds, path21) {
35448
+ const grouping = collectProviderToolOwners(toolIds);
35449
+ if (grouping.owners.length < 2) return void 0;
35450
+ return createIssue(
35451
+ "warning",
35452
+ PROVIDER_TOOLS_MIXED_OWNERS_CODE,
35453
+ providerToolsMixedOwnersMessage(grouping),
35454
+ path21,
35455
+ void 0,
35456
+ {
35457
+ owners: grouping.owners,
35458
+ toolIdsByOwner: grouping.toolIdsByOwner,
35459
+ winner: grouping.winner
35460
+ }
35461
+ );
35462
+ }
34996
35463
  function validateAgentDefinition(agent, capIndex) {
34997
35464
  const result = emptyResult();
34998
35465
  const base = `capabilities[${capIndex}].agent`;
@@ -35002,6 +35469,12 @@ function validateAgentDefinition(agent, capIndex) {
35002
35469
  );
35003
35470
  }
35004
35471
  if (isNestedFpoAgent(agent)) {
35472
+ for (const issue2 of getAgentSandboxCapabilityIssues(agent.config?.sandbox)) {
35473
+ result.errors.push(createIssue("error", issue2.code, issue2.message, `${base}.${issue2.path}`, void 0, {
35474
+ requested: issue2.requested,
35475
+ supported: issue2.supported
35476
+ }));
35477
+ }
35005
35478
  validateNestedAgent(agent, base, result);
35006
35479
  } else {
35007
35480
  validateFlatAgent(agent, base, result);
@@ -35010,12 +35483,22 @@ function validateAgentDefinition(agent, capIndex) {
35010
35483
  for (const [i, ref] of agent.capabilityToolRefs.entries()) {
35011
35484
  if (!ref.toolName || ref.toolName.trim() === "") {
35012
35485
  result.errors.push(
35013
- createIssue("error", "CAPABILITY_TOOL_REF_NAME_EMPTY", "capabilityToolRefs toolName is required", `${base}.capabilityToolRefs[${i}].toolName`)
35486
+ createIssue(
35487
+ "error",
35488
+ "CAPABILITY_TOOL_REF_NAME_EMPTY",
35489
+ "capabilityToolRefs toolName is required",
35490
+ `${base}.capabilityToolRefs[${i}].toolName`
35491
+ )
35014
35492
  );
35015
35493
  }
35016
35494
  if (!ref.capabilityId || ref.capabilityId.trim() === "") {
35017
35495
  result.errors.push(
35018
- createIssue("error", "CAPABILITY_TOOL_REF_ID_EMPTY", "capabilityToolRefs capabilityId is required", `${base}.capabilityToolRefs[${i}].capabilityId`)
35496
+ createIssue(
35497
+ "error",
35498
+ "CAPABILITY_TOOL_REF_ID_EMPTY",
35499
+ "capabilityToolRefs capabilityId is required",
35500
+ `${base}.capabilityToolRefs[${i}].capabilityId`
35501
+ )
35019
35502
  );
35020
35503
  }
35021
35504
  }
@@ -35033,7 +35516,12 @@ function validateFlatAgent(agent, base, result) {
35033
35516
  for (const [i, tool] of agent.tools.entries()) {
35034
35517
  if (!tool.name || tool.name.trim() === "") {
35035
35518
  result.errors.push(
35036
- createIssue("error", "AGENT_TOOL_NAME_EMPTY", "Agent tool name is required", `${base}.tools[${i}].name`)
35519
+ createIssue(
35520
+ "error",
35521
+ "AGENT_TOOL_NAME_EMPTY",
35522
+ "Agent tool name is required",
35523
+ `${base}.tools[${i}].name`
35524
+ )
35037
35525
  );
35038
35526
  }
35039
35527
  }
@@ -35041,15 +35529,30 @@ function validateFlatAgent(agent, base, result) {
35041
35529
  if (agent.advisor) {
35042
35530
  if (!agent.advisor.model || agent.advisor.model.trim() === "") {
35043
35531
  result.errors.push(
35044
- createIssue("error", "AGENT_ADVISOR_NO_MODEL", "Advisor model is required when advisor is configured", `${base}.advisor.model`)
35532
+ createIssue(
35533
+ "error",
35534
+ "AGENT_ADVISOR_NO_MODEL",
35535
+ "Advisor model is required when advisor is configured",
35536
+ `${base}.advisor.model`
35537
+ )
35045
35538
  );
35046
35539
  }
35047
35540
  }
35541
+ const flatMixedOwners = providerToolsMixedOwnersIssue(
35542
+ agent.toolsConfig?.toolIds,
35543
+ `${base}.toolsConfig.toolIds`
35544
+ );
35545
+ if (flatMixedOwners) result.warnings.push(flatMixedOwners);
35048
35546
  if (agent.toolsConfig?.runtimeTools) {
35049
35547
  for (const [i, tool] of agent.toolsConfig.runtimeTools.entries()) {
35050
35548
  if (!tool.name || tool.name.trim() === "") {
35051
35549
  result.errors.push(
35052
- createIssue("error", "RUNTIME_TOOL_NAME_EMPTY", "Runtime tool name is required", `${base}.toolsConfig.runtimeTools[${i}].name`)
35550
+ createIssue(
35551
+ "error",
35552
+ "RUNTIME_TOOL_NAME_EMPTY",
35553
+ "Runtime tool name is required",
35554
+ `${base}.toolsConfig.runtimeTools[${i}].name`
35555
+ )
35053
35556
  );
35054
35557
  } else if (isReservedRuntypeToolName(tool.name)) {
35055
35558
  result.errors.push(
@@ -35058,7 +35561,12 @@ function validateFlatAgent(agent, base, result) {
35058
35561
  }
35059
35562
  if (tool.toolType === "flow" && (!tool.config?.steps || !Array.isArray(tool.config.steps) || tool.config.steps.length === 0)) {
35060
35563
  result.warnings.push(
35061
- createIssue("warning", "FLOW_RUNTIME_TOOL_NO_STEPS", "Flow runtime tool should have steps in config", `${base}.toolsConfig.runtimeTools[${i}].config.steps`)
35564
+ createIssue(
35565
+ "warning",
35566
+ "FLOW_RUNTIME_TOOL_NO_STEPS",
35567
+ "Flow runtime tool should have steps in config",
35568
+ `${base}.toolsConfig.runtimeTools[${i}].config.steps`
35569
+ )
35062
35570
  );
35063
35571
  }
35064
35572
  }
@@ -35074,15 +35582,30 @@ function validateNestedAgent(agent, base, result) {
35074
35582
  if (config3?.advisor) {
35075
35583
  if (!config3.advisor.model || config3.advisor.model.trim() === "") {
35076
35584
  result.errors.push(
35077
- createIssue("error", "AGENT_ADVISOR_NO_MODEL", "Advisor model is required when advisor is configured", `${base}.config.advisor.model`)
35585
+ createIssue(
35586
+ "error",
35587
+ "AGENT_ADVISOR_NO_MODEL",
35588
+ "Advisor model is required when advisor is configured",
35589
+ `${base}.config.advisor.model`
35590
+ )
35078
35591
  );
35079
35592
  }
35080
35593
  }
35594
+ const nestedMixedOwners = providerToolsMixedOwnersIssue(
35595
+ config3?.tools?.toolIds,
35596
+ `${base}.config.tools.toolIds`
35597
+ );
35598
+ if (nestedMixedOwners) result.warnings.push(nestedMixedOwners);
35081
35599
  if (config3?.tools?.runtimeTools) {
35082
35600
  for (const [i, tool] of config3.tools.runtimeTools.entries()) {
35083
35601
  if (!tool.name || tool.name.trim() === "") {
35084
35602
  result.errors.push(
35085
- createIssue("error", "RUNTIME_TOOL_NAME_EMPTY", "Runtime tool name is required", `${base}.config.tools.runtimeTools[${i}].name`)
35603
+ createIssue(
35604
+ "error",
35605
+ "RUNTIME_TOOL_NAME_EMPTY",
35606
+ "Runtime tool name is required",
35607
+ `${base}.config.tools.runtimeTools[${i}].name`
35608
+ )
35086
35609
  );
35087
35610
  } else if (isReservedRuntypeToolName(tool.name)) {
35088
35611
  result.errors.push(
@@ -35091,7 +35614,12 @@ function validateNestedAgent(agent, base, result) {
35091
35614
  }
35092
35615
  if (tool.toolType === "flow" && (!tool.config?.steps || !Array.isArray(tool.config.steps) || tool.config.steps.length === 0)) {
35093
35616
  result.warnings.push(
35094
- createIssue("warning", "FLOW_RUNTIME_TOOL_NO_STEPS", "Flow runtime tool should have steps in config", `${base}.config.tools.runtimeTools[${i}].config.steps`)
35617
+ createIssue(
35618
+ "warning",
35619
+ "FLOW_RUNTIME_TOOL_NO_STEPS",
35620
+ "Flow runtime tool should have steps in config",
35621
+ `${base}.config.tools.runtimeTools[${i}].config.steps`
35622
+ )
35095
35623
  );
35096
35624
  }
35097
35625
  }
@@ -36551,6 +37079,14 @@ var AgentInputSchema = external_exports.object({
36551
37079
  */
36552
37080
  agentType: external_exports.enum(["runtype", "claude_managed"]).optional(),
36553
37081
  claudeManagedConfig: DispatchClaudeManagedConfigSchema.optional(),
37082
+ /**
37083
+ * Release alias selecting which stored version runs (ADR 0025). Mutually
37084
+ * exclusive with `versionId`. With a selector present and `agentId` absent,
37085
+ * `name` becomes a lookup key rather than an inline agent's name.
37086
+ */
37087
+ alias: external_exports.string().min(1).max(AGENT_ALIAS_MAX_LENGTH).optional(),
37088
+ /** Immutable `agent_versions` id to run. Mutually exclusive with `alias`. */
37089
+ versionId: external_exports.string().min(1).optional(),
36554
37090
  name: external_exports.string().min(1).optional(),
36555
37091
  model: external_exports.string().min(1).optional(),
36556
37092
  systemPrompt: external_exports.string().optional(),
@@ -36612,6 +37148,8 @@ var AgentInputSchema = external_exports.object({
36612
37148
  memory: memoryConfigSchema.optional(),
36613
37149
  // WHY(docs/why/packages/shared/src/api-schemas.md#sandbox-mirrors-the-saved-agent-execute-route-so): sandbox mirrors the saved-agent execute route so both hosted-agent entry points stay in lockstep.
36614
37150
  sandbox: sandboxConfigSchema.optional(),
37151
+ // WHY(ADR-0020): durability mirrors the SAVED agent config, like sandbox above, so a round-tripped config still validates.
37152
+ durability: agentDurabilityConfigSchema.optional(),
36615
37153
  tenancyStrategy: agentRuntimeConfigSchema.shape.tenancyStrategy
36616
37154
  }).superRefine((val, ctx) => {
36617
37155
  const unsupported = val.tenancyStrategy !== void 0 ? [["tenancyStrategy"], "tenancyStrategy is server-authored; save it on an agent"] : val.voice !== void 0 ? [["voice"], "voice is unsupported by agent dispatch"] : val.tools?.toolSearch !== void 0 ? [["tools", "toolSearch"], "toolSearch is unsupported by quick-agent dispatch"] : Object.keys(val.temporal ?? {}).some((key) => key !== "timezone") ? [["temporal"], "Only temporal.timezone is supported by agent dispatch"] : void 0;
@@ -36623,9 +37161,21 @@ var AgentInputSchema = external_exports.object({
36623
37161
  message
36624
37162
  });
36625
37163
  }
37164
+ const selectorViolation = agentSelectorViolation(val);
37165
+ if (selectorViolation) {
37166
+ ctx.addIssue({
37167
+ code: "custom",
37168
+ path: selectorViolation.path.replace(/^agent\./, "").split("."),
37169
+ message: selectorViolation.message
37170
+ });
37171
+ return;
37172
+ }
36626
37173
  if (val.agentId) {
36627
37174
  return;
36628
37175
  }
37176
+ if (hasAgentSelector(val)) {
37177
+ return;
37178
+ }
36629
37179
  if (val.agentType !== "claude_managed") {
36630
37180
  if (!val.name) {
36631
37181
  ctx.addIssue({ code: "custom", path: ["name"], message: "name is required" });
@@ -37314,6 +37864,40 @@ var SANDBOX_TTL_OPTIONS = [
37314
37864
  { label: "2 hours", value: 2 * 60 * 60 },
37315
37865
  { label: "Unlimited", value: null }
37316
37866
  ];
37867
+ var sandboxDeployRetentionSchema = external_exports.enum(["10m", "1h", "24h", "unlimited"]);
37868
+ var sandboxDeploySleepPolicySchema = external_exports.discriminatedUnion("mode", [
37869
+ external_exports.object({ mode: external_exports.literal("never") }).strict(),
37870
+ external_exports.object({ mode: external_exports.literal("idle"), after: external_exports.enum(["5m", "15m", "30m", "1h"]) }).strict()
37871
+ ]);
37872
+ var explicitSandboxDeployRequestSchema = external_exports.object({
37873
+ code: external_exports.string().min(1),
37874
+ packageJson: external_exports.string().optional(),
37875
+ language: external_exports.enum(["javascript", "typescript", "python"]).optional(),
37876
+ port: external_exports.number().int().min(1).max(65535).optional(),
37877
+ sandboxId: external_exports.string().min(1).optional(),
37878
+ startCommand: external_exports.string().optional(),
37879
+ files: external_exports.record(external_exports.string(), external_exports.string()).optional(),
37880
+ retention: sandboxDeployRetentionSchema.optional(),
37881
+ sleepPolicy: sandboxDeploySleepPolicySchema.optional(),
37882
+ managed: external_exports.literal(false).optional()
37883
+ }).passthrough();
37884
+ var daytonaSandboxDeployRequestSchema = explicitSandboxDeployRequestSchema.extend({
37885
+ labels: external_exports.record(external_exports.string(), external_exports.string()).optional(),
37886
+ autoStopInterval: external_exports.number().int().nonnegative().optional(),
37887
+ autoDeleteInterval: external_exports.number().int().min(-1).optional()
37888
+ }).refine((value) => value.sleepPolicy === void 0 || value.autoStopInterval === void 0, {
37889
+ path: ["sleepPolicy"],
37890
+ message: "Specify sleepPolicy or autoStopInterval, not both"
37891
+ });
37892
+ var sandboxDeployEffectivePolicySchema = external_exports.object({
37893
+ retention: sandboxDeployRetentionSchema,
37894
+ origin: external_exports.enum(["explicit", "legacy-default"]),
37895
+ expiresAt: external_exports.string().nullable(),
37896
+ metering: external_exports.enum(["active", "legacy-untracked"]),
37897
+ sleepPolicy: sandboxDeploySleepPolicySchema.optional(),
37898
+ autoStopInterval: external_exports.number().optional(),
37899
+ autoDeleteInterval: external_exports.number().optional()
37900
+ });
37317
37901
  var SANDBOX_RETENTION_DEFAULT_SECONDS = 60 * 60;
37318
37902
  var SANDBOX_BACKUP_UNLIMITED_TTL_SECONDS = 365 * 24 * 60 * 60;
37319
37903
  var APP_MANIFEST_LIMITS = {
@@ -47715,13 +48299,44 @@ function getActiveDeploySandboxPreviewUrl() {
47715
48299
  function setActiveDeploySandboxPreviewUrl(url2) {
47716
48300
  activeDeploySandboxPreviewUrl = url2;
47717
48301
  }
48302
+ var deployLifecycleParameters = {
48303
+ retention: {
48304
+ type: "string",
48305
+ enum: ["10m", "1h", "24h", "unlimited"],
48306
+ description: "Runtype destruction backstop. Omitted: Daytona 10m, Runtype Sandbox unlimited. Provider sleep/loss can end availability earlier."
48307
+ },
48308
+ sleepPolicy: {
48309
+ description: "Idle compute policy, independent of retention. Legacy Runtype Sandbox supports idle only.",
48310
+ oneOf: [
48311
+ { type: "object", properties: { mode: { const: "never" } }, required: ["mode"], additionalProperties: false },
48312
+ { type: "object", properties: { mode: { const: "idle" }, after: { enum: ["5m", "15m", "30m", "1h"] } }, required: ["mode", "after"], additionalProperties: false }
48313
+ ]
48314
+ }
48315
+ };
48316
+ function deployLifecycleOptions(args) {
48317
+ return {
48318
+ ...args.retention !== void 0 ? { retention: args.retention } : {},
48319
+ ...args.sleepPolicy !== void 0 ? { sleepPolicy: args.sleepPolicy } : {}
48320
+ };
48321
+ }
47718
48322
  function createDeploySandboxLocalTool(client, debugMode) {
47719
48323
  return {
47720
- description: "Deploy code to a persistent Daytona sandbox and get a live preview URL. Use this to run web servers, APIs, or UIs that the user can visit in their browser.",
48324
+ description: "Deploy a live Daytona server preview. Retention defaults to ten minutes; provider autostop is independent. The preview URL is not durable hosting.",
47721
48325
  parametersSchema: {
47722
48326
  type: "object",
47723
48327
  properties: {
47724
48328
  code: { type: "string", description: "Code to deploy (written to main file)" },
48329
+ ...deployLifecycleParameters,
48330
+ autoStopInterval: {
48331
+ type: "integer",
48332
+ minimum: 0,
48333
+ description: "Daytona SDK inactivity in minutes; default 120, zero disables. Cannot be combined with sleepPolicy."
48334
+ },
48335
+ autoDeleteInterval: {
48336
+ type: "integer",
48337
+ minimum: -1,
48338
+ description: "Minutes continuously stopped before Daytona deletes: -1 disables, zero deletes on stop. May end availability before Runtype retention."
48339
+ },
47725
48340
  packageJson: {
47726
48341
  type: "object",
47727
48342
  description: 'package.json content as a JSON object, e.g. { "dependencies": { "express": "^4.18.2" } }'
@@ -47754,6 +48369,9 @@ function createDeploySandboxLocalTool(client, debugMode) {
47754
48369
  }
47755
48370
  const request = {
47756
48371
  code,
48372
+ ...deployLifecycleOptions(args),
48373
+ ...typeof args.autoStopInterval === "number" ? { autoStopInterval: args.autoStopInterval } : {},
48374
+ ...typeof args.autoDeleteInterval === "number" ? { autoDeleteInterval: args.autoDeleteInterval } : {},
47757
48375
  ...args.packageJson && typeof args.packageJson === "object" ? { packageJson: JSON.stringify(args.packageJson) } : typeof args.packageJson === "string" ? { packageJson: args.packageJson } : {},
47758
48376
  ...typeof args.language === "string" ? { language: args.language } : {},
47759
48377
  ...typeof args.port === "number" ? { port: args.port } : {},
@@ -47782,6 +48400,7 @@ function createDeploySandboxLocalTool(client, debugMode) {
47782
48400
  sandboxId: result.sandboxId,
47783
48401
  previewUrl: result.previewUrl,
47784
48402
  output: result.output,
48403
+ effectivePolicy: result.effectivePolicy,
47785
48404
  ...result.error ? { error: result.error } : {}
47786
48405
  };
47787
48406
  } catch (error61) {
@@ -47800,11 +48419,12 @@ function createDeploySandboxLocalTool(client, debugMode) {
47800
48419
  var activeCfSandboxId;
47801
48420
  function createDeployCfSandboxLocalTool(client, debugMode) {
47802
48421
  return {
47803
- description: "Deploy code to a persistent Runtype Sandbox container and get a live preview URL. Use this to run web servers, APIs, or UIs that the user can visit in their browser. Supports JavaScript, TypeScript, and Python with npm/pip dependencies.",
48422
+ description: "Deploy a live Runtype Sandbox server preview. Omitted retention preserves the unlimited legacy backstop; explicit lifecycle policy requires rollout enablement. Provider sleep/loss can end availability earlier; the URL is not durable hosting.",
47804
48423
  parametersSchema: {
47805
48424
  type: "object",
47806
48425
  properties: {
47807
48426
  code: { type: "string", description: "Code to deploy (main entry point file)" },
48427
+ ...deployLifecycleParameters,
47808
48428
  packageJson: {
47809
48429
  type: "object",
47810
48430
  description: 'package.json content as a JSON object, e.g. { "dependencies": { "hono": "^4.0.0" } }'
@@ -47837,6 +48457,7 @@ function createDeployCfSandboxLocalTool(client, debugMode) {
47837
48457
  }
47838
48458
  const request = {
47839
48459
  code,
48460
+ ...deployLifecycleOptions(args),
47840
48461
  ...args.packageJson && typeof args.packageJson === "object" ? { packageJson: JSON.stringify(args.packageJson) } : typeof args.packageJson === "string" ? { packageJson: args.packageJson } : {},
47841
48462
  ...typeof args.language === "string" ? { language: args.language } : {},
47842
48463
  ...typeof args.port === "number" ? { port: args.port } : {},
@@ -47864,6 +48485,7 @@ function createDeployCfSandboxLocalTool(client, debugMode) {
47864
48485
  sandboxId: result.sandboxId,
47865
48486
  previewUrl: result.previewUrl,
47866
48487
  output: result.output,
48488
+ effectivePolicy: result.effectivePolicy,
47867
48489
  ...result.error ? { error: result.error } : {}
47868
48490
  };
47869
48491
  } catch (error61) {
@@ -50670,19 +51292,19 @@ function upsertSessionSnapshots(snapshots, nextSnapshot) {
50670
51292
  return result;
50671
51293
  }
50672
51294
  function buildLiveSessionSnapshot(liveState, rawEvents, sessionIndex, model) {
50673
- const isError = liveState.phase === "error";
50674
- const hasLiveState = liveState.phase === "thinking" || isError || Boolean(liveState.content) || Boolean(liveState.reasoning) || liveState.tools.length > 0 || rawEvents.length > 0 || Boolean(liveState.contextCompaction?.active);
51295
+ const isError2 = liveState.phase === "error";
51296
+ const hasLiveState = liveState.phase === "thinking" || isError2 || Boolean(liveState.content) || Boolean(liveState.reasoning) || liveState.tools.length > 0 || rawEvents.length > 0 || Boolean(liveState.contextCompaction?.active);
50675
51297
  if (!hasLiveState) return void 0;
50676
51298
  return {
50677
51299
  sessionIndex,
50678
- status: isError ? "error" : "live",
51300
+ status: isError2 ? "error" : "live",
50679
51301
  model,
50680
51302
  cost: liveState.totalCost,
50681
51303
  content: liveState.content,
50682
51304
  reasoning: liveState.reasoning,
50683
51305
  tools: liveState.tools,
50684
51306
  rawEvents,
50685
- ...isError && liveState.error ? { errorMessage: liveState.error.message } : {}
51307
+ ...isError2 && liveState.error ? { errorMessage: liveState.error.message } : {}
50686
51308
  };
50687
51309
  }
50688
51310
  function copyToClipboard(text) {
@@ -65634,7 +66256,7 @@ async function configureWithFallbackWriter(agent, options) {
65634
66256
  return {
65635
66257
  configured: false,
65636
66258
  changed: false,
65637
- error: `Could not inspect ${MCP_AGENT_DEFINITIONS[agent].displayName}'s MCP configuration: ${getErrorMessage(error61)}`
66259
+ error: `Could not inspect ${MCP_AGENT_DEFINITIONS[agent].displayName}'s MCP configuration: ${getErrorMessage2(error61)}`
65638
66260
  };
65639
66261
  }
65640
66262
  if (inspected.server?.identity === RUNTYPE_MCP_URL) {
@@ -65664,7 +66286,7 @@ async function configureWithFallbackWriter(agent, options) {
65664
66286
  changed: false,
65665
66287
  configPath: inspected.configPath,
65666
66288
  backupPath,
65667
- error: `Could not update ${MCP_AGENT_DEFINITIONS[agent].displayName}'s MCP configuration: ${getErrorMessage(error61)}`
66289
+ error: `Could not update ${MCP_AGENT_DEFINITIONS[agent].displayName}'s MCP configuration: ${getErrorMessage2(error61)}`
65668
66290
  };
65669
66291
  }
65670
66292
  if (!installation.success) {
@@ -65687,7 +66309,7 @@ async function configureWithFallbackWriter(agent, options) {
65687
66309
  changed: false,
65688
66310
  configPath: installation.path,
65689
66311
  backupPath,
65690
- error: `The MCP config could not be verified, so the previous config was restored: ${getErrorMessage(error61)}`
66312
+ error: `The MCP config could not be verified, so the previous config was restored: ${getErrorMessage2(error61)}`
65691
66313
  };
65692
66314
  }
65693
66315
  if (verified.server?.identity !== RUNTYPE_MCP_URL) {
@@ -65707,7 +66329,7 @@ async function configureWithFallbackWriter(agent, options) {
65707
66329
  backupPath
65708
66330
  };
65709
66331
  }
65710
- function getErrorMessage(error61) {
66332
+ function getErrorMessage2(error61) {
65711
66333
  return error61 instanceof Error ? error61.message : String(error61);
65712
66334
  }
65713
66335
  function restoreFallbackConfig(configPath, backupPath) {
@@ -65732,7 +66354,7 @@ async function configureMcpAgent(agent, options = {}) {
65732
66354
  return {
65733
66355
  configured: false,
65734
66356
  changed: false,
65735
- error: `Could not configure ${MCP_AGENT_DEFINITIONS[agent].displayName}: ${getErrorMessage(error61)}`
66357
+ error: `Could not configure ${MCP_AGENT_DEFINITIONS[agent].displayName}: ${getErrorMessage2(error61)}`
65736
66358
  };
65737
66359
  }
65738
66360
  }
@@ -66010,9 +66632,9 @@ import chalk43 from "chalk";
66010
66632
  // ../shared/dist/agent-onboarding-content.mjs
66011
66633
  var AGENT_ONBOARDING_MARKDOWN = `# Runtype for Coding Agents
66012
66634
 
66013
- You are reading the setup script served by \`https://runtype.ai\`. Your durable goal is to leave this coding harness connected to Runtype's hosted MCP server. Use the Runtype CLI as a bridge during this first session; do not treat it as the final integration.
66635
+ Use this guide when the user asks to connect their coding harness to Runtype. If they only ask what Runtype does, explain it without installing software or creating an account. During setup, use the CLI until the hosted MCP tools are available.
66014
66636
 
66015
- Signup never requires a browser. The only things you may ask the user for are their email address and the 6-digit code Runtype emails them. Do not tell the user to open a dashboard, sign-in page, or OAuth window during signup.
66637
+ Signup never requires a browser. Ask only for the email address and emailed 6-digit code during new-account verification. Do not tell the user to open a dashboard, sign-in page, or OAuth window during signup. Existing-account recovery and the harness's MCP OAuth are separate paths below.
66016
66638
 
66017
66639
  ## Golden path \u2014 do exactly this
66018
66640
 
@@ -66025,7 +66647,7 @@ npm install -g @runtypelabs/cli
66025
66647
  runtype auth status
66026
66648
  \`\`\`
66027
66649
 
66028
- If status reports \`authenticated\` with \`accountState: "full"\`, skip to step 3. If it reports a pending signup, its \`next\` field tells you the exact command to resume with.
66650
+ Reuse an installed CLI rather than reinstalling it. If status reports \`authenticated\` with \`accountState: "full"\`, skip to step 3. If it reports a pending signup, follow its \`next\` command instead of registering again. If \`RUNTYPE_API_KEY\` is configured, verify it with \`runtype auth whoami --no-tty\` and reuse that account before following stored signup state: \`auth status\` only inspects stored credentials. Never print the key.
66029
66651
 
66030
66652
  ### 2. Sign the user up from the terminal
66031
66653
 
@@ -66046,7 +66668,7 @@ That completes signup. Every command in this flow prints JSON with a \`next\` fi
66046
66668
  - These commands work without a TTY and never open a browser.
66047
66669
  - \`register\` is safe to re-run; it resumes a pending signup instead of creating a duplicate account.
66048
66670
  - After \`register\` (before \`verify\`) you already hold a temporary credential: CLI commands work with restricted models and quota, and \`verify\` upgrades the same stored login in place. Do not build anything substantial until \`verify\` succeeds.
66049
- - If the email already has a Runtype account, the command reports \`email_already_registered\`. In that case ask the user for an API key from their dashboard (Settings > API keys) and run \`runtype auth login --api-key <key>\` instead. This is the only path where the user touches the dashboard, and only because they already have an account.
66671
+ - If the email already has an account, \`email_already_registered\` means signup cannot claim it. Have the user configure an API key privately in their terminal/environment (\`RUNTYPE_API_KEY\` or \`runtype auth login --api-key <key>\`), then run \`runtype auth whoami --no-tty\` to verify the effective credential. Do not ask them to paste a key into chat or register a replacement account.
66050
66672
  - A wrong code returns \`otp_invalid\` \u2014 ask the user to re-check and run \`runtype auth verify\` again. An expired code returns \`otp_expired\` \u2014 re-send with \`runtype auth claim <email>\`. Codes expire after 10 minutes and lock after 5 wrong attempts, so confirm the code with the user rather than guessing; after a lockout or expiry, re-send with \`runtype auth claim <email>\`.
66051
66673
 
66052
66674
  ### 3. Install skills and the MCP connection
@@ -66055,7 +66677,7 @@ That completes signup. Every command in this flow prints JSON with a \`next\` fi
66055
66677
  runtype install-mcp
66056
66678
  \`\`\`
66057
66679
 
66058
- This command detects the current coding harness, installs the Runtype agent skills for it, and writes the user-level hosted MCP configuration. If it asks which harness to configure, select the harness running this session. If it reports an OAuth action for the harness's own MCP connection, relay that instruction to the user for later \u2014 it happens on the harness's schedule, not during signup. That harness-side OAuth may open a browser when the user runs it; that is fine and expected \u2014 the no-browser rule above applies to Runtype signup, not to the harness's own connection ceremony.
66680
+ This detects one coding harness, installs its Runtype skills, and writes user-level hosted MCP configuration. If selection is ambiguous, use \`--agent <id>\` for the current harness. Relay any harness-owned OAuth action to the user; it may open a browser and is separate from browserless signup.
66059
66681
 
66060
66682
  ### 4. Keep working in this session with the CLI
66061
66683
 
@@ -66063,13 +66685,10 @@ Do not stop just because the new MCP connection is not visible yet. Use CLI comm
66063
66685
 
66064
66686
  \`\`\`bash
66065
66687
  runtype auth whoami
66066
- runtype agents list
66067
- runtype flows list
66068
- runtype products list
66069
66688
  runtype --help
66070
66689
  \`\`\`
66071
66690
 
66072
- The CLI also supports dispatch, records, validation, product setup, and other account operations. Read command help before mutating resources, and report concrete IDs and URLs to the user. If you need Runtype MCP tools before the restart, the CLI bridges them: \`runtype mcp tools\` lists them and \`runtype mcp call <tool>\` invokes one \u2014 same hosted tools, no restart needed.
66691
+ Continue the user's task, not an unsolicited inventory of their account. Read command help before mutations. \`runtype mcp tools\` lists hosted tools and \`runtype mcp call <tool>\` invokes one without a restart; use this bridge for build instructions, schemas, validation, and setup checks too.
66073
66692
 
66074
66693
  ### 5. Tell the user to restart or reload the harness
66075
66694
 
@@ -66083,7 +66702,7 @@ If an action remains, report that exact action instead of using the success word
66083
66702
 
66084
66703
  ### 6. Switch to MCP after restart
66085
66704
 
66086
- In the next session, use Runtype MCP first. Do not fall back to the CLI just because it worked previously. Start by calling:
66705
+ Once the tools appear, use Runtype MCP first. Do not fall back to the CLI just because it worked previously. For a product build, call \`get_build_instructions\` with:
66087
66706
 
66088
66707
  \`\`\`json
66089
66708
  {
@@ -66092,7 +66711,7 @@ In the next session, use Runtype MCP first. Do not fall back to the CLI just bec
66092
66711
  }
66093
66712
  \`\`\`
66094
66713
 
66095
- with \`get_build_instructions\`. Then use \`get_platform_documentation\` for exact schemas and catalogs, create or update resources with MCP tools, validate them, and test the result with a real run.
66714
+ For a bare flow use \`task: "generate-flow"\`; for scoping use \`"explain-capabilities"\`. Read-only account operations do not need build instructions. Fetch only relevant schema topics, validate before creating or updating, and test safely before reporting success.
66096
66715
 
66097
66716
  ## If the install needs recovery
66098
66717
 
@@ -66116,10 +66735,11 @@ The signup commands wrap the agent auth protocol documented at \`https://runtype
66116
66735
  - \`runtype auth register --email <email>\` \u2014 create the account and send the code (one step)
66117
66736
  - \`runtype auth claim <email>\` \u2014 re-send or change the email for a pending signup
66118
66737
  - \`runtype auth verify <code>\` \u2014 finish signup with the 6-digit code
66119
- - \`runtype auth login --api-key <key>\` \u2014 existing accounts only
66120
- - \`runtype auth status\` / \`runtype auth whoami\` \u2014 inspect the current login
66738
+ - \`runtype auth login --api-key <key>\` \u2014 privately store an existing credential; not an account-creation command
66739
+ - \`runtype auth status\` \u2014 inspect stored login and pending signup state
66740
+ - \`runtype auth whoami --no-tty\` \u2014 verify the effective credential (environment key first, then stored login)
66121
66741
 
66122
- A user-supplied \`RUNTYPE_API_KEY\` environment variable also authenticates every CLI command without a stored login. Never print a credential into the transcript or write one into a committed file.
66742
+ A user-supplied \`RUNTYPE_API_KEY\` environment variable also authenticates API-backed CLI commands without a stored login; \`auth status\` still describes only the stored state. Never print a credential into the transcript or write one into a committed file.
66123
66743
 
66124
66744
  Browser login (\`runtype auth login\` with no flags) exists for humans running the CLI in their own interactive terminal. Do not use it from a coding harness.
66125
66745
 
@@ -66129,11 +66749,11 @@ Browser login (\`runtype auth login\` with no flags) exists for humans running t
66129
66749
  - Use \`get_platform_documentation\` instead of inventing payload shapes.
66130
66750
  - Let the installed Runtype skills route task-specific work: product builds, live account operations, Persona embeds, templates, and SDK/CLI workflows.
66131
66751
  - If the user gives you a \`use.runtype.com/now?...\`, example, or template/FPO link, use the Runtype template skill and MCP tools rather than opening the login-gated dashboard page.
66132
- - Validate before shipping and test with a real execution.
66752
+ - Validate before creating/updating. Check product setup, then test with safe inputs and authorized side effects. Report what passed and what remains blocked or untested.
66133
66753
 
66134
66754
  Runtype MCP can create and operate agents, flows, products, records, secrets, evals, and surfaces; attach built-in, HTTP, MCP, flow, and subagent tools; and ship chat, API, webhook, messaging, schedule, MCP, and hosted-page experiences.
66135
66755
 
66136
- Docs: [runtype.com](https://runtype.com)
66756
+ Docs: [docs.runtype.com](https://docs.runtype.com)
66137
66757
  Dashboard: [use.runtype.com](https://use.runtype.com)
66138
66758
  API: [api.runtype.com](https://api.runtype.com)
66139
66759
  `;