@runtypelabs/cli 2.32.3 → 2.32.5

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 +1406 -218
  2. package/package.json +5 -5
package/dist/index.js CHANGED
@@ -619,7 +619,7 @@ import { RuntypeApiError } from "@runtypelabs/sdk";
619
619
  // src/lib/sdk-client.ts
620
620
  import { createClient } from "@runtypelabs/sdk";
621
621
 
622
- // ../shared/dist/chunk-R7RM64AL.mjs
622
+ // ../shared/dist/chunk-ZUODFMLO.mjs
623
623
  var DEFAULT_MODELS_FOR_NEW_ACCOUNTS = [
624
624
  // Mixlayer models
625
625
  {
@@ -633,23 +633,23 @@ var DEFAULT_MODELS_FOR_NEW_ACCOUNTS = [
633
633
  // OpenAI models (routed via OpenAI direct, with Vercel fallback)
634
634
  {
635
635
  provider: "runtype",
636
- modelId: "gpt-5.5",
636
+ modelId: "gpt-5.6-sol",
637
637
  isDefault: false,
638
638
  strengths: "Top-tier general reasoning and tool-use with excellent structured-output reliability, vision, and a 1M context \u2014 a strong pick for complex, correctness-sensitive steps.",
639
639
  bestFor: ["default", "deep-reasoning", "agentic-tools", "vision", "long-context"]
640
640
  },
641
641
  {
642
642
  provider: "runtype",
643
- modelId: "gpt-5.4-mini",
643
+ modelId: "gpt-5.6-terra",
644
644
  isDefault: false,
645
645
  strengths: "Fast and affordable with dependable JSON formatting \u2014 a good fit for mid-complexity task steps.",
646
646
  bestFor: ["fast-cheap", "default"]
647
647
  },
648
648
  {
649
649
  provider: "runtype",
650
- modelId: "gpt-5.4-nano",
650
+ modelId: "gpt-5.6-luna",
651
651
  isDefault: false,
652
- strengths: "Cheapest and fastest GPT-5 tier \u2014 reserve for trivial deterministic transforms, routing, and classification, not complex authoring.",
652
+ strengths: "Cheapest and fastest GPT-5.6 tier \u2014 reserve for trivial deterministic transforms, routing, and classification, not complex authoring.",
653
653
  bestFor: ["fast-cheap"]
654
654
  },
655
655
  // Anthropic models (routed via Anthropic direct, with Vertex/Bedrock fallback)
@@ -669,57 +669,26 @@ var DEFAULT_MODELS_FOR_NEW_ACCOUNTS = [
669
669
  },
670
670
  {
671
671
  provider: "runtype",
672
- modelId: "claude-opus-4-8",
672
+ modelId: "claude-opus-5",
673
673
  isDefault: false,
674
674
  strengths: "Deepest reasoning and planning for hard analysis and multi-constraint synthesis, with vision and a 1M context \u2014 premium-priced, so reserve for genuinely difficult steps.",
675
675
  bestFor: ["deep-reasoning", "vision", "long-context"]
676
676
  },
677
677
  // Google models (routed via Google direct, with Vertex/Vercel fallback)
678
- {
679
- provider: "runtype",
680
- modelId: "gemini-3-1-flash-lite",
681
- isDefault: false,
682
- strengths: "Very fast and very cheap with full multimodal input (vision and audio), good structured output, and a 1M context \u2014 ideal for high-volume, simple steps.",
683
- bestFor: ["fast-cheap", "vision", "long-context"]
684
- },
685
678
  {
686
679
  provider: "runtype",
687
680
  modelId: "gemini-3.6-flash",
688
- isDefault: false,
689
- strengths: "Fast, low-cost, and natively multimodal with good reasoning, tool-use, and a 1M context \u2014 a strong choice for vision and high-throughput steps.",
681
+ isDefault: true,
682
+ strengths: "Fast, low-cost, and natively multimodal with good reasoning, tool-use, and a 1M context \u2014 the account default and a strong choice for vision and high-throughput steps.",
690
683
  bestFor: ["default", "vision", "fast-cheap", "agentic-tools", "long-context"]
691
684
  },
692
- {
693
- provider: "runtype",
694
- modelId: "gemini-3-1-flash-image",
695
- isDefault: false,
696
- strengths: "Specialised for image generation and editing (image output) \u2014 use for steps that produce images, not text reasoning.",
697
- bestFor: ["image-generation"]
698
- },
699
- {
700
- provider: "runtype",
701
- modelId: "gemini-3.1-pro",
702
- isDefault: false,
703
- strengths: "Google's frontier tier: strong reasoning, a 1M context, and multimodal input \u2014 for complex analytical or long-document steps.",
704
- bestFor: ["deep-reasoning", "vision", "long-context"]
705
- },
706
- // Inception models (routed via Vercel)
707
- {
708
- provider: "runtype",
709
- modelId: "mercury-2",
710
- isDefault: false,
711
- strengths: "Diffusion-based LLM optimised for very low latency \u2014 good when speed matters more than deep reasoning.",
712
- bestFor: ["fast-cheap"]
713
- },
714
685
  // Moonshot models (routed via Vercel)
715
- // Kimi K2.6 is the default model: a reasoning + tool-use + vision model
716
- // already trusted as the product-generator default.
717
686
  {
718
687
  provider: "runtype",
719
- modelId: "kimi-k2.6",
720
- isDefault: true,
721
- strengths: "Capable open agentic model with reasoning, tool-use, and vision at strong value \u2014 the current account default and a dependable general workhorse.",
722
- bestFor: ["default", "agentic-tools", "vision"]
688
+ modelId: "kimi-k2.7-code",
689
+ isDefault: false,
690
+ strengths: "Specialised coding workhorse with strong tool-use, low cost, and a 1M context \u2014 ideal for code generation, debugging, and multi-file editing workflows.",
691
+ bestFor: ["agentic-tools", "long-context"]
723
692
  },
724
693
  // NVIDIA Nemotron Ultra (reasoning + tool-use flagship, routed via Vercel)
725
694
  {
@@ -729,13 +698,13 @@ var DEFAULT_MODELS_FOR_NEW_ACCOUNTS = [
729
698
  strengths: "Large open-weight reasoning and tool-use flagship with a 1M context at a low price \u2014 strong analytical depth where an open model is preferred.",
730
699
  bestFor: ["deep-reasoning", "agentic-tools", "long-context"]
731
700
  },
732
- // Google models (routed via Cloudflare Workers AI)
701
+ // DeepSeek models (routed via Vercel)
733
702
  {
734
703
  provider: "runtype",
735
- modelId: "gemma-4-26b-a4b-it",
704
+ modelId: "deepseek-v4-flash",
736
705
  isDefault: false,
737
- strengths: "Lightweight open-weight instruct model served free on Workers AI \u2014 fine for straightforward general tasks at zero cost.",
738
- bestFor: ["fast-cheap"]
706
+ strengths: "Fast, low-cost model with strong reasoning, tool-use, vision, and a 1M context \u2014 optimal on cost-for-task while delivering near-frontier performance across a wide range of work.",
707
+ bestFor: ["default", "fast-cheap", "deep-reasoning", "agentic-tools", "long-context"]
739
708
  },
740
709
  // Z.ai GLM-5.2 (agentic coding flagship, routed via Cloudflare Workers AI,
741
710
  // Vercel fallback). The bare routed name resolves to `@cf/zai-org/glm-5.2`.
@@ -15395,7 +15364,7 @@ var edgeContextPayloadSchema = external_exports.object({
15395
15364
  // ../shared/dist/chunk-SCJRL6LP.mjs
15396
15365
  var MAX_DURABLE_POLL_ATTEMPTS = 1e3;
15397
15366
 
15398
- // ../shared/dist/chunk-UB6BK3TZ.mjs
15367
+ // ../shared/dist/chunk-FSHR33DZ.mjs
15399
15368
  function getNestedValue(obj, path20) {
15400
15369
  let normalizedPath = path20;
15401
15370
  normalizedPath = normalizedPath.replace(/^\$\.?/, "");
@@ -15786,7 +15755,17 @@ function resolveFallback(parsed, context, tracking, options = {}) {
15786
15755
  }
15787
15756
  var templateEngine = new SimpleTemplateEngine();
15788
15757
 
15789
- // ../shared/dist/chunk-MN4NECP7.mjs
15758
+ // ../shared/dist/chunk-SL33IVSJ.mjs
15759
+ var jsonPatchOperationSchema = external_exports.object({
15760
+ op: external_exports.enum(["add", "remove", "replace", "move", "copy", "test"]),
15761
+ /** JSON Pointer (RFC 6901) into the state document. `''` addresses the root. */
15762
+ path: external_exports.string(),
15763
+ /** Operand for `add` / `replace` / `test`. */
15764
+ value: external_exports.unknown().optional(),
15765
+ /** Source pointer for `move` / `copy`. */
15766
+ from: external_exports.string().optional()
15767
+ });
15768
+ var jsonPatchSchema = external_exports.array(jsonPatchOperationSchema);
15790
15769
  var tokensSchema = external_exports.object({ input: external_exports.number(), output: external_exports.number() });
15791
15770
  var wireStopReasonSchema = external_exports.enum([
15792
15771
  "end_turn",
@@ -16074,11 +16053,36 @@ var unifiedSourceEventSchema = external_exports.object({
16074
16053
  title: external_exports.string().optional(),
16075
16054
  sourceType: external_exports.string().optional()
16076
16055
  }).passthrough();
16056
+ var unifiedStateSnapshotEventSchema = external_exports.object({
16057
+ ...unifiedBase,
16058
+ type: external_exports.literal("state_snapshot"),
16059
+ /** The complete state document (open JSON, verbatim). */
16060
+ state: external_exports.record(external_exports.string(), external_exports.unknown()),
16061
+ iteration: external_exports.number().optional()
16062
+ });
16063
+ var unifiedStateDeltaEventSchema = external_exports.object({
16064
+ ...unifiedBase,
16065
+ type: external_exports.literal("state_delta"),
16066
+ patch: jsonPatchSchema,
16067
+ iteration: external_exports.number().optional()
16068
+ });
16077
16069
  var unifiedToolStartEventSchema = external_exports.object({
16078
16070
  ...unifiedBase,
16079
16071
  type: external_exports.literal("tool_start"),
16080
16072
  toolCallId: external_exports.string(),
16081
16073
  toolName: external_exports.string(),
16074
+ /**
16075
+ * Both engines emit ten values here: `flow`, `mcp`, `builtin`, `custom`,
16076
+ * `external`, `advisor`, `data_connection`, `local`, `subagent`, `search`
16077
+ * (D-060 — the wire label matches the dispatch label, with `a2a` folded to
16078
+ * `external` and `skill` to `custom` on both lanes).
16079
+ *
16080
+ * Deliberately an OPEN string rather than an enum: legacy also emits
16081
+ * surface-specific values that are not tool kinds at all — `'a2a'` from the
16082
+ * A2A-surface `tool_call` fold in `unified-event-stream.ts`, and
16083
+ * `'integration'` from the legacy integration-tool materializer. Consumers
16084
+ * must tolerate an unrecognized label rather than reject the frame.
16085
+ */
16082
16086
  toolType: external_exports.string(),
16083
16087
  iteration: external_exports.number().optional(),
16084
16088
  stepId: external_exports.string().optional(),
@@ -16242,6 +16246,8 @@ var unifiedSSEEventSchema = external_exports.discriminatedUnion("type", [
16242
16246
  unifiedArtifactUpdateEventSchema,
16243
16247
  unifiedArtifactCompleteEventSchema,
16244
16248
  unifiedSourceEventSchema,
16249
+ unifiedStateSnapshotEventSchema,
16250
+ unifiedStateDeltaEventSchema,
16245
16251
  unifiedToolStartEventSchema,
16246
16252
  unifiedToolInputDeltaEventSchema,
16247
16253
  unifiedToolInputCompleteEventSchema,
@@ -16278,6 +16284,8 @@ var UNIFIED_SSE_EVENT_TYPES = _unifiedTuple([
16278
16284
  "artifact_update",
16279
16285
  "artifact_complete",
16280
16286
  "source",
16287
+ "state_snapshot",
16288
+ "state_delta",
16281
16289
  "tool_start",
16282
16290
  "tool_input_delta",
16283
16291
  "tool_input_complete",
@@ -16401,6 +16409,10 @@ var agentToolStartEventSchema = external_exports.object({
16401
16409
  iteration: external_exports.number(),
16402
16410
  toolCallId: external_exports.string(),
16403
16411
  toolName: external_exports.string(),
16412
+ // Keep in lockstep with the wire vocabulary (D-060): the runtime's
16413
+ // AgentToolType (unified-event-emitter.ts) and the SDK's AgentToolStartEvent
16414
+ // union (packages/client/src/endpoints.ts). Both lanes emit
16415
+ // data_connection/local/subagent/search verbatim.
16404
16416
  toolType: external_exports.enum([
16405
16417
  "flow",
16406
16418
  "mcp",
@@ -16409,7 +16421,9 @@ var agentToolStartEventSchema = external_exports.object({
16409
16421
  "external",
16410
16422
  "advisor",
16411
16423
  "subagent",
16412
- "local"
16424
+ "local",
16425
+ "data_connection",
16426
+ "search"
16413
16427
  ]),
16414
16428
  parameters: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
16415
16429
  hiddenParameterNames: external_exports.array(external_exports.string()).optional(),
@@ -16464,6 +16478,19 @@ var agentMediaEventSchema = external_exports.object({
16464
16478
  toolName: external_exports.string(),
16465
16479
  media: external_exports.array(mediaContentPartSchema)
16466
16480
  });
16481
+ var agentStateSnapshotEventSchema = external_exports.object({
16482
+ ...baseAgentEvent,
16483
+ type: external_exports.literal("agent_state_snapshot"),
16484
+ /** The complete state document. Verbatim — never summarized. */
16485
+ state: external_exports.record(external_exports.string(), external_exports.unknown()),
16486
+ iteration: external_exports.number().optional()
16487
+ });
16488
+ var agentStateDeltaEventSchema = external_exports.object({
16489
+ ...baseAgentEvent,
16490
+ type: external_exports.literal("agent_state_delta"),
16491
+ patch: jsonPatchSchema,
16492
+ iteration: external_exports.number().optional()
16493
+ });
16467
16494
  var agentApprovalStartEventSchema = external_exports.object({
16468
16495
  ...baseAgentEvent,
16469
16496
  type: external_exports.literal("agent_approval_start"),
@@ -16609,6 +16636,8 @@ var agentSSEEventSchema = external_exports.discriminatedUnion("type", [
16609
16636
  agentToolInputCompleteEventSchema,
16610
16637
  agentToolCompleteEventSchema,
16611
16638
  agentMediaEventSchema,
16639
+ agentStateSnapshotEventSchema,
16640
+ agentStateDeltaEventSchema,
16612
16641
  agentApprovalStartEventSchema,
16613
16642
  agentApprovalCompleteEventSchema,
16614
16643
  agentAwaitEventSchema,
@@ -16857,6 +16886,8 @@ var toolStartEventSchema = external_exports.object({
16857
16886
  toolCallId: external_exports.string().optional(),
16858
16887
  name: external_exports.string().optional(),
16859
16888
  toolName: external_exports.string().optional(),
16889
+ // Keep in lockstep with the wire vocabulary (D-060) — see
16890
+ // agentToolStartEventSchema.toolType above.
16860
16891
  toolType: external_exports.enum([
16861
16892
  "flow",
16862
16893
  "mcp",
@@ -16865,7 +16896,9 @@ var toolStartEventSchema = external_exports.object({
16865
16896
  "external",
16866
16897
  "advisor",
16867
16898
  "subagent",
16868
- "local"
16899
+ "local",
16900
+ "data_connection",
16901
+ "search"
16869
16902
  ]),
16870
16903
  stepId: external_exports.string().optional(),
16871
16904
  parameters: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
@@ -17436,6 +17469,14 @@ var toolCallResultEventSchema = external_exports.object({
17436
17469
  content: external_exports.string(),
17437
17470
  role: external_exports.literal("tool").optional()
17438
17471
  });
17472
+ var stateSnapshotEventSchema = external_exports.object({
17473
+ type: external_exports.literal("STATE_SNAPSHOT"),
17474
+ snapshot: external_exports.record(external_exports.string(), external_exports.unknown())
17475
+ });
17476
+ var stateDeltaEventSchema = external_exports.object({
17477
+ type: external_exports.literal("STATE_DELTA"),
17478
+ delta: jsonPatchSchema
17479
+ });
17439
17480
  var reasoningStartEventSchema = external_exports.object({
17440
17481
  type: external_exports.literal("REASONING_START"),
17441
17482
  messageId: external_exports.string()
@@ -17477,6 +17518,8 @@ var agUiSSEEventSchema = external_exports.discriminatedUnion("type", [
17477
17518
  toolCallArgsEventSchema,
17478
17519
  toolCallEndEventSchema,
17479
17520
  toolCallResultEventSchema,
17521
+ stateSnapshotEventSchema,
17522
+ stateDeltaEventSchema,
17480
17523
  reasoningStartEventSchema,
17481
17524
  reasoningMessageStartEventSchema,
17482
17525
  reasoningMessageContentEventSchema,
@@ -18356,7 +18399,9 @@ var generateEmbeddingConfigSchema = external_exports.object({
18356
18399
  textTemplate: external_exports.string().optional(),
18357
18400
  batchSize: external_exports.number().int().positive().optional(),
18358
18401
  outputVariable: external_exports.string().min(1, "Output variable is required"),
18359
- streamOutput: external_exports.boolean().optional()
18402
+ streamOutput: external_exports.boolean().optional(),
18403
+ errorHandling: contextErrorHandlingConfigSchema.optional(),
18404
+ defaultValue: external_exports.any().optional()
18360
18405
  });
18361
18406
  var vectorSearchConfigSchema = external_exports.object({
18362
18407
  query: external_exports.string().min(1, "Query is required"),
@@ -18377,7 +18422,9 @@ var vectorSearchConfigSchema = external_exports.object({
18377
18422
  outputVariable: external_exports.string().min(1, "Output variable is required"),
18378
18423
  streamOutput: external_exports.boolean().optional(),
18379
18424
  includeEmbedding: external_exports.boolean().optional(),
18380
- includeMetadata: external_exports.boolean().optional()
18425
+ includeMetadata: external_exports.boolean().optional(),
18426
+ errorHandling: contextErrorHandlingConfigSchema.optional(),
18427
+ defaultValue: external_exports.any().optional()
18381
18428
  });
18382
18429
  var toolCallConfigSchema = external_exports.object({
18383
18430
  toolId: external_exports.string().min(1, "Tool ID is required"),
@@ -21429,6 +21476,36 @@ function validateVariableReferences(flowSteps, buckets, skipStepIndices, declare
21429
21476
  }
21430
21477
  }
21431
21478
  }
21479
+ var RESERVED_IDENTITY_VARIABLE_CODE = "RESERVED_IDENTITY_VARIABLE";
21480
+ var RESERVED_IDENTITY_FIELDS = [
21481
+ { root: "_tenant", field: "projectedId", suggest: "id" },
21482
+ { root: "_endUser", field: "projectedId", suggest: "id" }
21483
+ ];
21484
+ function validateReservedIdentityVariables(flowSteps, buckets, skipStepIndices) {
21485
+ for (const [stepIndex, step] of flowSteps.entries()) {
21486
+ if (skipStepIndices?.has(stepIndex)) continue;
21487
+ if (step.enabled === false) continue;
21488
+ for (const { variable, fieldPath } of extractVariableReferences(step.config)) {
21489
+ const segments = variable.split(".");
21490
+ const reserved = RESERVED_IDENTITY_FIELDS.find(
21491
+ (entry) => segments[0] === entry.root && segments[1] === entry.field
21492
+ );
21493
+ if (!reserved) continue;
21494
+ const suggestion = `${reserved.root}.${reserved.suggest}`;
21495
+ addIssue(
21496
+ "recommendation",
21497
+ {
21498
+ code: RESERVED_IDENTITY_VARIABLE_CODE,
21499
+ message: `Variable "{{${variable}}}" is host-side plumbing, not part of the ${reserved.root} template contract. The durable projection id scopes records, secrets, and approval grants server-side and is deliberately kept out of prompts, so this reference resolves to an empty value. Use "{{${suggestion}}}" instead.`,
21500
+ path: `flowSteps[${stepIndex}].config.${fieldPath}`,
21501
+ step: { index: stepIndex, name: step.name, type: step.type },
21502
+ details: { variable, suggestion: `{{${suggestion}}}` }
21503
+ },
21504
+ buckets
21505
+ );
21506
+ }
21507
+ }
21508
+ }
21432
21509
  function promptResponseFormatIsNonJson(responseFormat) {
21433
21510
  if (typeof responseFormat !== "string") return true;
21434
21511
  return responseFormat.trim().toLowerCase() !== "json";
@@ -22325,6 +22402,7 @@ function collectFlowStructureIssues(flowData, deps, buckets) {
22325
22402
  conditionalStepsExceedingDepth,
22326
22403
  deps.declaredFlowInputs
22327
22404
  );
22405
+ validateReservedIdentityVariables(flowData.flowSteps, buckets, conditionalStepsExceedingDepth);
22328
22406
  validateUpsertRecordSourceShape(flowData.flowSteps, buckets);
22329
22407
  validateStoreVectorSource(flowData.flowSteps, buckets, deps.declaredFlowInputs);
22330
22408
  validateConditionExpressions(flowData.flowSteps, buckets, conditionalStepsExceedingDepth);
@@ -22382,6 +22460,77 @@ var AGENT_EXECUTION_STATUSES = [
22382
22460
  "interrupted"
22383
22461
  ];
22384
22462
  var agentExecutionStatusSchema = external_exports.enum(AGENT_EXECUTION_STATUSES);
22463
+ var EMBEDDING_COST_PER_1K_TOKENS = Object.freeze({
22464
+ "text-embedding-3-small": 2e-5,
22465
+ // $0.02 per 1M tokens
22466
+ "text-embedding-3-large": 13e-5
22467
+ // $0.13 per 1M tokens
22468
+ });
22469
+ var END_USER_USAGE_PERIODS = ["billing_period", "7d", "30d", "90d"];
22470
+ var endUserUsageQuerySchema = external_exports.object({
22471
+ productId: external_exports.string().min(1),
22472
+ productTenantId: external_exports.string().min(1).optional(),
22473
+ period: external_exports.enum(END_USER_USAGE_PERIODS).optional(),
22474
+ days: external_exports.coerce.number().int().min(1).max(93).optional(),
22475
+ sort: external_exports.enum(["spend", "executions"]).default("spend"),
22476
+ limit: external_exports.coerce.number().int().min(1).max(200).default(50)
22477
+ }).refine((value) => !(value.period && value.days), {
22478
+ message: "Use either period or days, not both",
22479
+ path: ["days"]
22480
+ });
22481
+ var endUserUsageMoneySchema = external_exports.object({
22482
+ spendThousandthsCent: external_exports.number().int().nonnegative(),
22483
+ spendDollars: external_exports.number().nonnegative()
22484
+ });
22485
+ var endUserUsageResponseSchema = external_exports.object({
22486
+ generatedAt: external_exports.string(),
22487
+ period: external_exports.object({
22488
+ startDate: external_exports.string(),
22489
+ endDate: external_exports.string(),
22490
+ days: external_exports.number().int().positive(),
22491
+ preset: external_exports.enum(END_USER_USAGE_PERIODS).optional()
22492
+ }),
22493
+ scope: external_exports.object({
22494
+ productId: external_exports.string(),
22495
+ productTenantId: external_exports.string().nullable()
22496
+ }),
22497
+ /**
22498
+ * Distinct tenant ids with usage in the window, computed independently of
22499
+ * the `productTenantId` filter (most spend first, capped at 200), so a
22500
+ * tenant picker stays complete while a tenant-scoped page is shown.
22501
+ */
22502
+ tenantIds: external_exports.array(external_exports.string()),
22503
+ retention: external_exports.object({
22504
+ attributionStartedAt: external_exports.string().nullable(),
22505
+ earliestAvailableAt: external_exports.string().nullable(),
22506
+ retentionDays: external_exports.literal(93)
22507
+ }),
22508
+ totals: external_exports.object({
22509
+ executions: external_exports.number().int().nonnegative()
22510
+ }).merge(endUserUsageMoneySchema),
22511
+ coverage: external_exports.object({
22512
+ attributedExecutions: external_exports.number().int().nonnegative(),
22513
+ unattributedExecutions: external_exports.number().int().nonnegative(),
22514
+ attributedSpendThousandthsCent: external_exports.number().int().nonnegative(),
22515
+ unattributedSpendThousandthsCent: external_exports.number().int().nonnegative()
22516
+ }),
22517
+ endUsers: external_exports.array(
22518
+ external_exports.object({
22519
+ endUser: external_exports.object({
22520
+ id: external_exports.string(),
22521
+ name: external_exports.string().nullable(),
22522
+ email: external_exports.string().nullable(),
22523
+ productTenantId: external_exports.string().nullable()
22524
+ }),
22525
+ executions: external_exports.number().int().nonnegative(),
22526
+ costPerExecutionDollars: external_exports.number().nonnegative().nullable(),
22527
+ lastSeenAt: external_exports.string()
22528
+ }).merge(endUserUsageMoneySchema)
22529
+ ),
22530
+ unattributed: external_exports.object({
22531
+ executions: external_exports.number().int().nonnegative()
22532
+ }).merge(endUserUsageMoneySchema)
22533
+ });
22385
22534
  var DEFAULT_BEDROCK_REGION = "us-east-1";
22386
22535
  var DEFAULT_VERTEX_LOCATION = "us-central1";
22387
22536
  var PROVIDER_SECRET_SPECS = [
@@ -22600,13 +22749,15 @@ var runtimeArtifactManifestSchema = external_exports.object({
22600
22749
  var KNOWN_FLOW_STEP_TYPES = new Set(FLOW_STEP_TYPES);
22601
22750
  var API_INPROCESS_CAPABILITY_MATRIX = {
22602
22751
  target: "api-inprocess",
22603
- // Bumped 2026-07-30: the IMPLICIT platform-default fallback candidate no
22604
- // longer folds (see `implicitPlatformFallback` below). Carries forward
22752
+ // Bumped 2026-07-31: adds the §A1 `unmaterializedPromptToolRefs` fold (prompt
22753
+ // `toolIds` classes with no runtime lane). Carries forward 2026-07-30: the
22754
+ // IMPLICIT platform-default fallback candidate no longer folds (see
22755
+ // `implicitPlatformFallback` below). Carries forward
22605
22756
  // 2026-07-29.4: api-hosted runtime fulfills managed fetch methods through
22606
22757
  // ManagedFetchExecutor (the managed-fetch fact remains for attribution). The
22607
22758
  // EXPLICIT Layer-2 fallback fold and the remaining parity-audit folds are
22608
22759
  // unchanged.
22609
- version: "2026-07-30.1",
22760
+ version: "2026-07-31.1",
22610
22761
  unsupportedStepTypes: ["wait-until", "crawl"],
22611
22762
  unsupportedFeatures: {
22612
22763
  approvalSteps: true,
@@ -22637,11 +22788,15 @@ var API_INPROCESS_CAPABILITY_MATRIX = {
22637
22788
  unsupportedTransformExecution: true,
22638
22789
  promptMcpServers: true,
22639
22790
  promptArtifacts: true,
22640
- // EXPLICIT author-configured Layer-2 chains stay unsupported: the runtime
22641
- // flow engine cannot run them and cannot synthesize their `usedFallback` /
22642
- // `fallbackModel` / `fallbackExecutions` attribution, so a folded flow would
22643
- // both change behavior and undercount fallback usage.
22644
- fallbackErrorHandling: true,
22791
+ // SUPPORTED as of the fallback-chain port: the runtime flow engine now
22792
+ // executes EXPLICIT author-configured Layer-2 chains and synthesizes their
22793
+ // `usedFallback` / `fallbackModel` / `fallbackExecutions` attribution, so
22794
+ // such a flow stays on the runtime lane instead of folding to legacy. The
22795
+ // `hasFallbackErrorHandling` fact is still computed — it gates the stricter
22796
+ // durable-continuation path (`runtime-durable-continuation.ts`) and provides
22797
+ // decision attribution. Rollback lever: flip this bit to `true` (plus its
22798
+ // test) to restore the fold.
22799
+ fallbackErrorHandling: false,
22645
22800
  // SUPPORTED as of 2026-07-30: the IMPLICIT platform-default chain (the
22646
22801
  // orchestrator's synthesized same-model-next-provider + cross-model rungs
22647
22802
  // for a prompt with NO explicit `errorHandling`) does not fold the flow to
@@ -22658,7 +22813,16 @@ var API_INPROCESS_CAPABILITY_MATRIX = {
22658
22813
  // produce a WRONG result. `hasImplicitPlatformFallbackCandidate` is still
22659
22814
  // computed for decision attribution. Rollback lever: flip this bit to `true`
22660
22815
  // (plus its test) to restore the fold.
22661
- implicitPlatformFallback: false
22816
+ implicitPlatformFallback: false,
22817
+ // §A1 parity-audit BRIDGE fold: a prompt step's `toolIds` carrying a
22818
+ // reference class the runtime lane can neither materialize at export nor
22819
+ // late-resolve at the prompt seam (DB typeids, `tool:<name>` named refs,
22820
+ // `dc:` data connections). The runtime filters those out of the model
22821
+ // request silently, so the fold is what keeps a configured tool from
22822
+ // vanishing. Rollback/graduation lever: as each class gains a lane the fact
22823
+ // stops firing on its own (it reads the post-export definition); flip this
22824
+ // bit to `false` only once EVERY class has one.
22825
+ unmaterializedPromptToolRefs: true
22662
22826
  }
22663
22827
  };
22664
22828
  var DURABLE_HOSTED_STEP_TYPES = /* @__PURE__ */ new Set(["wait-until", "crawl"]);
@@ -22882,7 +23046,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
22882
23046
  "verified": true,
22883
23047
  "listPrice": "0",
22884
23048
  "listPriceThousandths": 0,
22885
- "catalogVersion": "2026-05-21T03:13:45.963Z",
23049
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
22886
23050
  "params": [
22887
23051
  {
22888
23052
  "toolName": "inboxId",
@@ -22985,7 +23149,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
22985
23149
  "verified": true,
22986
23150
  "listPrice": "2",
22987
23151
  "listPriceThousandths": 2e5,
22988
- "catalogVersion": "2026-05-21T03:13:45.963Z",
23152
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
22989
23153
  "params": [
22990
23154
  {
22991
23155
  "toolName": "username",
@@ -23117,7 +23281,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
23117
23281
  "verified": true,
23118
23282
  "listPrice": "0.01",
23119
23283
  "listPriceThousandths": 1e3,
23120
- "catalogVersion": "2026-05-21T03:13:45.963Z",
23284
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
23121
23285
  "params": [
23122
23286
  {
23123
23287
  "toolName": "inboxId",
@@ -23308,7 +23472,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
23308
23472
  "verified": true,
23309
23473
  "listPrice": "0.01",
23310
23474
  "listPriceThousandths": 1e3,
23311
- "catalogVersion": "2026-05-21T03:13:45.963Z",
23475
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
23312
23476
  "params": [
23313
23477
  {
23314
23478
  "toolName": "inboxId",
@@ -23503,7 +23667,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
23503
23667
  "docsUrl": "https://www.andi.co/api",
23504
23668
  "listPrice": "0.01",
23505
23669
  "listPriceThousandths": 1e3,
23506
- "catalogVersion": "2026-05-21T03:13:45.963Z",
23670
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
23507
23671
  "params": [
23508
23672
  {
23509
23673
  "toolName": "q",
@@ -23711,7 +23875,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
23711
23875
  "verified": true,
23712
23876
  "listPrice": "0.01",
23713
23877
  "listPriceThousandths": 1e3,
23714
- "catalogVersion": "2026-05-21T03:13:45.963Z",
23878
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
23715
23879
  "params": [
23716
23880
  {
23717
23881
  "toolName": "organizationLocations",
@@ -23796,7 +23960,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
23796
23960
  "verified": true,
23797
23961
  "listPrice": "0.01",
23798
23962
  "listPriceThousandths": 1e3,
23799
- "catalogVersion": "2026-05-21T03:13:45.963Z",
23963
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
23800
23964
  "params": [
23801
23965
  {
23802
23966
  "toolName": "domain",
@@ -23869,7 +24033,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
23869
24033
  "docsUrl": "https://apolloio.github.io/apollo-api-docs",
23870
24034
  "listPrice": "0.01",
23871
24035
  "listPriceThousandths": 1e3,
23872
- "catalogVersion": "2026-05-21T03:13:45.963Z",
24036
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
23873
24037
  "params": [
23874
24038
  {
23875
24039
  "toolName": "email",
@@ -24011,7 +24175,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
24011
24175
  "verified": true,
24012
24176
  "listPrice": "0",
24013
24177
  "listPriceThousandths": 0,
24014
- "catalogVersion": "2026-05-21T03:13:45.963Z",
24178
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
24015
24179
  "params": [
24016
24180
  {
24017
24181
  "toolName": "personTitles",
@@ -24166,7 +24330,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
24166
24330
  "verified": true,
24167
24331
  "listPrice": "0.12",
24168
24332
  "listPriceThousandths": 12e3,
24169
- "catalogVersion": "2026-05-21T03:13:45.963Z",
24333
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
24170
24334
  "params": [
24171
24335
  {
24172
24336
  "toolName": "id",
@@ -24333,11 +24497,15 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
24333
24497
  },
24334
24498
  "page": {
24335
24499
  "type": "number",
24336
- "description": "Page number"
24500
+ "description": "Page number For later pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
24337
24501
  },
24338
24502
  "perPage": {
24339
24503
  "type": "number",
24340
24504
  "description": "Results per page (max 100)"
24505
+ },
24506
+ "parentRequestId": {
24507
+ "type": "string",
24508
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
24341
24509
  }
24342
24510
  },
24343
24511
  "required": [
@@ -24356,7 +24524,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
24356
24524
  "verified": true,
24357
24525
  "listPrice": "0.08",
24358
24526
  "listPriceThousandths": 8e3,
24359
- "catalogVersion": "2026-05-21T03:13:45.963Z",
24527
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
24360
24528
  "params": [
24361
24529
  {
24362
24530
  "toolName": "id",
@@ -24400,7 +24568,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
24400
24568
  "location": "query",
24401
24569
  "type": "number",
24402
24570
  "required": true,
24403
- "description": "Page number"
24571
+ "description": "Page number For later pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
24404
24572
  },
24405
24573
  {
24406
24574
  "toolName": "perPage",
@@ -24445,7 +24613,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
24445
24613
  "verified": true,
24446
24614
  "listPrice": "0.02",
24447
24615
  "listPriceThousandths": 2e3,
24448
- "catalogVersion": "2026-05-21T03:13:45.963Z",
24616
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
24449
24617
  "params": [
24450
24618
  {
24451
24619
  "toolName": "dsl",
@@ -24496,7 +24664,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
24496
24664
  "verified": true,
24497
24665
  "listPrice": "0.2",
24498
24666
  "listPriceThousandths": 2e4,
24499
- "catalogVersion": "2026-05-21T03:13:45.963Z",
24667
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
24500
24668
  "params": [
24501
24669
  {
24502
24670
  "toolName": "name",
@@ -24595,7 +24763,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
24595
24763
  "verified": true,
24596
24764
  "listPrice": "0.03",
24597
24765
  "listPriceThousandths": 3e3,
24598
- "catalogVersion": "2026-05-21T03:13:45.963Z",
24766
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
24599
24767
  "params": [
24600
24768
  {
24601
24769
  "toolName": "id",
@@ -24732,7 +24900,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
24732
24900
  "verified": true,
24733
24901
  "listPrice": "0.02",
24734
24902
  "listPriceThousandths": 2e3,
24735
- "catalogVersion": "2026-05-21T03:13:45.963Z",
24903
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
24736
24904
  "params": [
24737
24905
  {
24738
24906
  "toolName": "dsl",
@@ -24795,7 +24963,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
24795
24963
  "docsUrl": "https://docs.brand.dev/api-reference/ai-data-extraction/query-website-data-using-ai",
24796
24964
  "listPrice": "0.03",
24797
24965
  "listPriceThousandths": 3e3,
24798
- "catalogVersion": "2026-05-21T03:13:45.963Z",
24966
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
24799
24967
  "params": [
24800
24968
  {
24801
24969
  "toolName": "domain",
@@ -24878,7 +25046,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
24878
25046
  "docsUrl": "https://docs.brand.dev/api-reference/retrieve-brand/retrieve-brand-data-by-domain",
24879
25047
  "listPrice": "0.03",
24880
25048
  "listPriceThousandths": 3e3,
24881
- "catalogVersion": "2026-05-21T03:13:45.963Z",
25049
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
24882
25050
  "params": [
24883
25051
  {
24884
25052
  "toolName": "domain",
@@ -24961,7 +25129,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
24961
25129
  "docsUrl": "https://docs.brand.dev/api-reference/retrieve-brand/retrieve-brand-data-by-company-name",
24962
25130
  "listPrice": "0.03",
24963
25131
  "listPriceThousandths": 3e3,
24964
- "catalogVersion": "2026-05-21T03:13:45.963Z",
25132
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
24965
25133
  "params": [
24966
25134
  {
24967
25135
  "toolName": "name",
@@ -25044,7 +25212,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25044
25212
  "docsUrl": "https://docs.brand.dev/api-reference/screenshot-styleguide/take-screenshot-of-website",
25045
25213
  "listPrice": "0.03",
25046
25214
  "listPriceThousandths": 3e3,
25047
- "catalogVersion": "2026-05-21T03:13:45.963Z",
25215
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
25048
25216
  "params": [
25049
25217
  {
25050
25218
  "toolName": "domain",
@@ -25115,7 +25283,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25115
25283
  "verified": true,
25116
25284
  "listPrice": "0.03",
25117
25285
  "listPriceThousandths": 3e3,
25118
- "catalogVersion": "2026-05-21T03:13:45.963Z",
25286
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
25119
25287
  "params": [
25120
25288
  {
25121
25289
  "toolName": "domains",
@@ -25163,7 +25331,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25163
25331
  "verified": true,
25164
25332
  "listPrice": "0.33",
25165
25333
  "listPriceThousandths": 33e3,
25166
- "catalogVersion": "2026-05-21T03:13:45.963Z",
25334
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
25167
25335
  "params": [
25168
25336
  {
25169
25337
  "toolName": "email",
@@ -25256,7 +25424,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25256
25424
  "verified": true,
25257
25425
  "listPrice": "0.55",
25258
25426
  "listPriceThousandths": 55e3,
25259
- "catalogVersion": "2026-05-21T03:13:45.963Z",
25427
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
25260
25428
  "params": [
25261
25429
  {
25262
25430
  "toolName": "fullName",
@@ -25383,7 +25551,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25383
25551
  "verified": true,
25384
25552
  "listPrice": "0.03",
25385
25553
  "listPriceThousandths": 3e3,
25386
- "catalogVersion": "2026-05-21T03:13:45.963Z",
25554
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
25387
25555
  "params": [
25388
25556
  {
25389
25557
  "toolName": "profile",
@@ -25443,7 +25611,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25443
25611
  "docsUrl": "https://docs.coresignal.com/company-api/clean-company-api",
25444
25612
  "listPrice": "0.042",
25445
25613
  "listPriceThousandths": 4200,
25446
- "catalogVersion": "2026-05-21T03:13:45.963Z",
25614
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
25447
25615
  "params": [
25448
25616
  {
25449
25617
  "toolName": "website",
@@ -25490,7 +25658,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25490
25658
  "docsUrl": "https://docs.coresignal.com/company-api/multi-source-company-api",
25491
25659
  "listPrice": "0.084",
25492
25660
  "listPriceThousandths": 8400,
25493
- "catalogVersion": "2026-05-21T03:13:45.963Z",
25661
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
25494
25662
  "params": [
25495
25663
  {
25496
25664
  "toolName": "website",
@@ -25537,7 +25705,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25537
25705
  "docsUrl": "https://docs.coresignal.com/employee-api/base-employee-api",
25538
25706
  "listPrice": "0.042",
25539
25707
  "listPriceThousandths": 4200,
25540
- "catalogVersion": "2026-05-21T03:13:45.963Z",
25708
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
25541
25709
  "params": [
25542
25710
  {
25543
25711
  "toolName": "profileUrl",
@@ -25572,7 +25740,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25572
25740
  },
25573
25741
  "cursor": {
25574
25742
  "type": "string",
25575
- "description": "Pagination cursor from previous response (next_cursor field)."
25743
+ "description": "Pagination cursor from previous response (next_cursor field). For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
25576
25744
  },
25577
25745
  "sorts": {
25578
25746
  "type": "array",
@@ -25580,6 +25748,10 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25580
25748
  "items": {
25581
25749
  "type": "string"
25582
25750
  }
25751
+ },
25752
+ "parentRequestId": {
25753
+ "type": "string",
25754
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
25583
25755
  }
25584
25756
  },
25585
25757
  "required": [
@@ -25597,7 +25769,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25597
25769
  "verified": true,
25598
25770
  "listPrice": "0.22",
25599
25771
  "listPriceThousandths": 22e3,
25600
- "catalogVersion": "2026-05-21T03:13:45.963Z",
25772
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
25601
25773
  "params": [
25602
25774
  {
25603
25775
  "toolName": "filters",
@@ -25621,7 +25793,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25621
25793
  "location": "body",
25622
25794
  "type": "string",
25623
25795
  "required": false,
25624
- "description": "Pagination cursor from previous response (next_cursor field)."
25796
+ "description": "Pagination cursor from previous response (next_cursor field). For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
25625
25797
  },
25626
25798
  {
25627
25799
  "toolName": "sorts",
@@ -25684,7 +25856,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25684
25856
  "verified": true,
25685
25857
  "listPrice": "0.22",
25686
25858
  "listPriceThousandths": 22e3,
25687
- "catalogVersion": "2026-05-21T03:13:45.963Z",
25859
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
25688
25860
  "params": [
25689
25861
  {
25690
25862
  "toolName": "queryCompanyName",
@@ -25779,7 +25951,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25779
25951
  "verified": true,
25780
25952
  "listPrice": "1.563",
25781
25953
  "listPriceThousandths": 156300,
25782
- "catalogVersion": "2026-05-21T03:13:45.963Z",
25954
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
25783
25955
  "params": [
25784
25956
  {
25785
25957
  "toolName": "linkedinProfileUrl",
@@ -25838,11 +26010,15 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25838
26010
  },
25839
26011
  "cursor": {
25840
26012
  "type": "string",
25841
- "description": "Pagination cursor from previous response (next_cursor field)."
26013
+ "description": "Pagination cursor from previous response (next_cursor field). For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
25842
26014
  },
25843
26015
  "postProcessing": {
25844
26016
  "type": "object",
25845
26017
  "description": "Additional filtering options applied to search results."
26018
+ },
26019
+ "parentRequestId": {
26020
+ "type": "string",
26021
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
25846
26022
  }
25847
26023
  },
25848
26024
  "required": [
@@ -25860,7 +26036,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25860
26036
  "verified": true,
25861
26037
  "listPrice": "0.66",
25862
26038
  "listPriceThousandths": 66e3,
25863
- "catalogVersion": "2026-05-21T03:13:45.963Z",
26039
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
25864
26040
  "params": [
25865
26041
  {
25866
26042
  "toolName": "filters",
@@ -25884,7 +26060,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25884
26060
  "location": "body",
25885
26061
  "type": "string",
25886
26062
  "required": false,
25887
- "description": "Pagination cursor from previous response (next_cursor field)."
26063
+ "description": "Pagination cursor from previous response (next_cursor field). For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
25888
26064
  },
25889
26065
  {
25890
26066
  "toolName": "postProcessing",
@@ -25987,7 +26163,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
25987
26163
  "docsUrl": "https://docs.didit.me/reference/aml-screening-standalone-api",
25988
26164
  "listPrice": "0.36",
25989
26165
  "listPriceThousandths": 36e3,
25990
- "catalogVersion": "2026-05-21T03:13:45.963Z",
26166
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
25991
26167
  "params": [
25992
26168
  {
25993
26169
  "toolName": "fullName",
@@ -26184,7 +26360,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
26184
26360
  "docsUrl": "https://docs.didit.me/reference/database-validation-api",
26185
26361
  "listPrice": "0.31",
26186
26362
  "listPriceThousandths": 31e3,
26187
- "catalogVersion": "2026-05-21T03:13:45.963Z",
26363
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
26188
26364
  "params": [
26189
26365
  {
26190
26366
  "toolName": "issuingState",
@@ -26315,7 +26491,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
26315
26491
  "docsUrl": "https://docs.didit.me/reference/send-email-verification-code-api",
26316
26492
  "listPrice": "0.04",
26317
26493
  "listPriceThousandths": 4e3,
26318
- "catalogVersion": "2026-05-21T03:13:45.963Z",
26494
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
26319
26495
  "params": [
26320
26496
  {
26321
26497
  "toolName": "email",
@@ -26398,7 +26574,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
26398
26574
  "docsUrl": "https://docs.didit.me/reference/send-phone-verification-code-api",
26399
26575
  "listPrice": "0.3",
26400
26576
  "listPriceThousandths": 3e4,
26401
- "catalogVersion": "2026-05-21T03:13:45.963Z",
26577
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
26402
26578
  "params": [
26403
26579
  {
26404
26580
  "toolName": "phoneNumber",
@@ -26485,7 +26661,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
26485
26661
  "docsUrl": "https://docs.domeapi.io/api-reference/endpoint/get-binance-crypto-prices",
26486
26662
  "listPrice": "0.01",
26487
26663
  "listPriceThousandths": 1e3,
26488
- "catalogVersion": "2026-05-21T03:13:45.963Z",
26664
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
26489
26665
  "params": [
26490
26666
  {
26491
26667
  "toolName": "currency",
@@ -26592,7 +26768,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
26592
26768
  "docsUrl": "https://docs.domeapi.io/api-reference/endpoint/get-kalshi-markets",
26593
26769
  "listPrice": "0.01",
26594
26770
  "listPriceThousandths": 1e3,
26595
- "catalogVersion": "2026-05-21T03:13:45.963Z",
26771
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
26596
26772
  "params": [
26597
26773
  {
26598
26774
  "toolName": "marketTicker",
@@ -26737,7 +26913,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
26737
26913
  "docsUrl": "https://docs.domeapi.io/api-reference/endpoint/get-markets",
26738
26914
  "listPrice": "0.01",
26739
26915
  "listPriceThousandths": 1e3,
26740
- "catalogVersion": "2026-05-21T03:13:45.963Z",
26916
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
26741
26917
  "params": [
26742
26918
  {
26743
26919
  "toolName": "marketSlug",
@@ -26872,7 +27048,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
26872
27048
  "docsUrl": "https://exa.ai/docs/reference/answer",
26873
27049
  "listPrice": "0.01",
26874
27050
  "listPriceThousandths": 1e3,
26875
- "catalogVersion": "2026-05-21T03:13:45.963Z",
27051
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
26876
27052
  "params": [
26877
27053
  {
26878
27054
  "toolName": "query",
@@ -26981,7 +27157,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
26981
27157
  "docsUrl": "https://exa.ai/docs/reference/get-contents",
26982
27158
  "listPrice": "0.01",
26983
27159
  "listPriceThousandths": 1e3,
26984
- "catalogVersion": "2026-05-21T03:13:45.963Z",
27160
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
26985
27161
  "params": [
26986
27162
  {
26987
27163
  "toolName": "urls",
@@ -27186,7 +27362,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27186
27362
  "docsUrl": "https://exa.ai/docs/reference/search",
27187
27363
  "listPrice": "0.01",
27188
27364
  "listPriceThousandths": 1e3,
27189
- "catalogVersion": "2026-05-21T03:13:45.963Z",
27365
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
27190
27366
  "params": [
27191
27367
  {
27192
27368
  "toolName": "query",
@@ -27326,6 +27502,658 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27326
27502
  ]
27327
27503
  }
27328
27504
  },
27505
+ {
27506
+ "id": "orthogonal:fantastic-jobs:active_ats",
27507
+ "idPrefix": "platform",
27508
+ "name": "Fantastic Jobs ATS Feed",
27509
+ "description": "Get new job postings from 54 ATS platforms (company career pages), refreshed hourly, with title, location, and other filters via Fantastic Jobs.",
27510
+ "category": "knowledge_retrieval",
27511
+ "providers": [
27512
+ "multi"
27513
+ ],
27514
+ "parametersSchema": {
27515
+ "type": "object",
27516
+ "properties": {
27517
+ "timeFrame": {
27518
+ "type": "string",
27519
+ "description": "Required. Time window: 1h, 24h, 7d, or 6m"
27520
+ },
27521
+ "limit": {
27522
+ "type": "number",
27523
+ "description": "Results per page (1-100, default 100)"
27524
+ },
27525
+ "offset": {
27526
+ "type": "string",
27527
+ "description": "Pagination offset For later offset pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
27528
+ },
27529
+ "cursor": {
27530
+ "type": "string",
27531
+ "description": "Cursor pagination. Pass last job id for next page For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
27532
+ },
27533
+ "title": {
27534
+ "type": "string",
27535
+ "description": "Natural-language title search. Quotes for exact phrase, OR for alternatives"
27536
+ },
27537
+ "location": {
27538
+ "type": "string",
27539
+ "description": "Natural-language location search. Use full country names"
27540
+ },
27541
+ "description": {
27542
+ "type": "string",
27543
+ "description": "Search on title and description combined"
27544
+ },
27545
+ "descriptionFormat": {
27546
+ "type": "string",
27547
+ "description": "text or html. Omit to exclude description field"
27548
+ },
27549
+ "source": {
27550
+ "type": "string",
27551
+ "description": "Comma-separated ATS sources (greenhouse, lever.co, workday, etc.)"
27552
+ },
27553
+ "organization": {
27554
+ "type": "string",
27555
+ "description": "Filter by exact organization name(s), comma-separated"
27556
+ },
27557
+ "organizationSlug": {
27558
+ "type": "string",
27559
+ "description": "Filter by LinkedIn org slug(s), comma-separated"
27560
+ },
27561
+ "organizationIndustry": {
27562
+ "type": "string",
27563
+ "description": "Filter by exact LinkedIn industry name"
27564
+ },
27565
+ "domain": {
27566
+ "type": "string",
27567
+ "description": "Filter by employer domain(s)"
27568
+ },
27569
+ "includeBasicOrganizationDetails": {
27570
+ "type": "string",
27571
+ "description": "Set true to include inline LinkedIn company fields"
27572
+ },
27573
+ "aiExperienceLevel": {
27574
+ "type": "string",
27575
+ "description": "AI-derived: 0-2, 2-5, 5-10, 10+"
27576
+ },
27577
+ "aiWorkArrangement": {
27578
+ "type": "string",
27579
+ "description": "AI-derived: On-site, Hybrid, Remote OK, Remote Solely"
27580
+ },
27581
+ "aiEmploymentType": {
27582
+ "type": "string",
27583
+ "description": "AI-derived: FULL_TIME, PART_TIME, CONTRACTOR, INTERN, etc."
27584
+ },
27585
+ "aiTaxonomiesAPrimary": {
27586
+ "type": "string",
27587
+ "description": "Match primary AI taxonomy only"
27588
+ },
27589
+ "aiTaxonomiesA": {
27590
+ "type": "string",
27591
+ "description": "Match any assigned AI taxonomy"
27592
+ },
27593
+ "hasSalary": {
27594
+ "type": "string",
27595
+ "description": "Set true for jobs with salary info only"
27596
+ },
27597
+ "datePostedGte": {
27598
+ "type": "string",
27599
+ "description": "Jobs posted on or after this date (ISO 8601)"
27600
+ },
27601
+ "datePostedLt": {
27602
+ "type": "string",
27603
+ "description": "Jobs posted before this date (ISO 8601)"
27604
+ },
27605
+ "organizationHeadcountGte": {
27606
+ "type": "string",
27607
+ "description": "Min LinkedIn employee count"
27608
+ },
27609
+ "organizationHeadcountLt": {
27610
+ "type": "string",
27611
+ "description": "Max LinkedIn employee count"
27612
+ },
27613
+ "organizationAgency": {
27614
+ "type": "string",
27615
+ "description": "only or exclude recruitment agencies"
27616
+ },
27617
+ "aiVisaSponsorship": {
27618
+ "type": "string",
27619
+ "description": "only or exclude visa sponsorship listings"
27620
+ },
27621
+ "id": {
27622
+ "type": "string",
27623
+ "description": "Filter by internal Fantastic.jobs ID(s)"
27624
+ },
27625
+ "parentRequestId": {
27626
+ "type": "string",
27627
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
27628
+ }
27629
+ },
27630
+ "required": [
27631
+ "limit",
27632
+ "timeFrame"
27633
+ ]
27634
+ },
27635
+ "requiresApiKey": false,
27636
+ "executionHint": "platform",
27637
+ "platformKeySupport": true,
27638
+ "managedExecution": {
27639
+ "kind": "orthogonal",
27640
+ "apiSlug": "fantastic-jobs",
27641
+ "pathTemplate": "/v1/active-ats",
27642
+ "method": "GET",
27643
+ "verified": true,
27644
+ "listPrice": "0.4",
27645
+ "listPriceThousandths": 4e4,
27646
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
27647
+ "params": [
27648
+ {
27649
+ "toolName": "timeFrame",
27650
+ "wireName": "time_frame",
27651
+ "location": "query",
27652
+ "type": "string",
27653
+ "required": true,
27654
+ "description": "Required. Time window: 1h, 24h, 7d, or 6m"
27655
+ },
27656
+ {
27657
+ "toolName": "limit",
27658
+ "wireName": "limit",
27659
+ "location": "query",
27660
+ "type": "number",
27661
+ "required": true,
27662
+ "description": "Results per page (1-100, default 100)"
27663
+ },
27664
+ {
27665
+ "toolName": "offset",
27666
+ "wireName": "offset",
27667
+ "location": "query",
27668
+ "type": "string",
27669
+ "required": false,
27670
+ "description": "Pagination offset For later offset pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
27671
+ },
27672
+ {
27673
+ "toolName": "cursor",
27674
+ "wireName": "cursor",
27675
+ "location": "query",
27676
+ "type": "string",
27677
+ "required": false,
27678
+ "description": "Cursor pagination. Pass last job id for next page For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
27679
+ },
27680
+ {
27681
+ "toolName": "title",
27682
+ "wireName": "title",
27683
+ "location": "query",
27684
+ "type": "string",
27685
+ "required": false,
27686
+ "description": "Natural-language title search. Quotes for exact phrase, OR for alternatives"
27687
+ },
27688
+ {
27689
+ "toolName": "location",
27690
+ "wireName": "location",
27691
+ "location": "query",
27692
+ "type": "string",
27693
+ "required": false,
27694
+ "description": "Natural-language location search. Use full country names"
27695
+ },
27696
+ {
27697
+ "toolName": "description",
27698
+ "wireName": "description",
27699
+ "location": "query",
27700
+ "type": "string",
27701
+ "required": false,
27702
+ "description": "Search on title and description combined"
27703
+ },
27704
+ {
27705
+ "toolName": "descriptionFormat",
27706
+ "wireName": "description_format",
27707
+ "location": "query",
27708
+ "type": "string",
27709
+ "required": false,
27710
+ "description": "text or html. Omit to exclude description field"
27711
+ },
27712
+ {
27713
+ "toolName": "source",
27714
+ "wireName": "source",
27715
+ "location": "query",
27716
+ "type": "string",
27717
+ "required": false,
27718
+ "description": "Comma-separated ATS sources (greenhouse, lever.co, workday, etc.)"
27719
+ },
27720
+ {
27721
+ "toolName": "organization",
27722
+ "wireName": "organization",
27723
+ "location": "query",
27724
+ "type": "string",
27725
+ "required": false,
27726
+ "description": "Filter by exact organization name(s), comma-separated"
27727
+ },
27728
+ {
27729
+ "toolName": "organizationSlug",
27730
+ "wireName": "organization_slug",
27731
+ "location": "query",
27732
+ "type": "string",
27733
+ "required": false,
27734
+ "description": "Filter by LinkedIn org slug(s), comma-separated"
27735
+ },
27736
+ {
27737
+ "toolName": "organizationIndustry",
27738
+ "wireName": "organization_industry",
27739
+ "location": "query",
27740
+ "type": "string",
27741
+ "required": false,
27742
+ "description": "Filter by exact LinkedIn industry name"
27743
+ },
27744
+ {
27745
+ "toolName": "domain",
27746
+ "wireName": "domain",
27747
+ "location": "query",
27748
+ "type": "string",
27749
+ "required": false,
27750
+ "description": "Filter by employer domain(s)"
27751
+ },
27752
+ {
27753
+ "toolName": "includeBasicOrganizationDetails",
27754
+ "wireName": "include_basic_organization_details",
27755
+ "location": "query",
27756
+ "type": "string",
27757
+ "required": false,
27758
+ "description": "Set true to include inline LinkedIn company fields"
27759
+ },
27760
+ {
27761
+ "toolName": "aiExperienceLevel",
27762
+ "wireName": "ai_experience_level",
27763
+ "location": "query",
27764
+ "type": "string",
27765
+ "required": false,
27766
+ "description": "AI-derived: 0-2, 2-5, 5-10, 10+"
27767
+ },
27768
+ {
27769
+ "toolName": "aiWorkArrangement",
27770
+ "wireName": "ai_work_arrangement",
27771
+ "location": "query",
27772
+ "type": "string",
27773
+ "required": false,
27774
+ "description": "AI-derived: On-site, Hybrid, Remote OK, Remote Solely"
27775
+ },
27776
+ {
27777
+ "toolName": "aiEmploymentType",
27778
+ "wireName": "ai_employment_type",
27779
+ "location": "query",
27780
+ "type": "string",
27781
+ "required": false,
27782
+ "description": "AI-derived: FULL_TIME, PART_TIME, CONTRACTOR, INTERN, etc."
27783
+ },
27784
+ {
27785
+ "toolName": "aiTaxonomiesAPrimary",
27786
+ "wireName": "ai_taxonomies_a_primary",
27787
+ "location": "query",
27788
+ "type": "string",
27789
+ "required": false,
27790
+ "description": "Match primary AI taxonomy only"
27791
+ },
27792
+ {
27793
+ "toolName": "aiTaxonomiesA",
27794
+ "wireName": "ai_taxonomies_a",
27795
+ "location": "query",
27796
+ "type": "string",
27797
+ "required": false,
27798
+ "description": "Match any assigned AI taxonomy"
27799
+ },
27800
+ {
27801
+ "toolName": "hasSalary",
27802
+ "wireName": "has_salary",
27803
+ "location": "query",
27804
+ "type": "string",
27805
+ "required": false,
27806
+ "description": "Set true for jobs with salary info only"
27807
+ },
27808
+ {
27809
+ "toolName": "datePostedGte",
27810
+ "wireName": "date_posted_gte",
27811
+ "location": "query",
27812
+ "type": "string",
27813
+ "required": false,
27814
+ "description": "Jobs posted on or after this date (ISO 8601)"
27815
+ },
27816
+ {
27817
+ "toolName": "datePostedLt",
27818
+ "wireName": "date_posted_lt",
27819
+ "location": "query",
27820
+ "type": "string",
27821
+ "required": false,
27822
+ "description": "Jobs posted before this date (ISO 8601)"
27823
+ },
27824
+ {
27825
+ "toolName": "organizationHeadcountGte",
27826
+ "wireName": "organization_headcount_gte",
27827
+ "location": "query",
27828
+ "type": "string",
27829
+ "required": false,
27830
+ "description": "Min LinkedIn employee count"
27831
+ },
27832
+ {
27833
+ "toolName": "organizationHeadcountLt",
27834
+ "wireName": "organization_headcount_lt",
27835
+ "location": "query",
27836
+ "type": "string",
27837
+ "required": false,
27838
+ "description": "Max LinkedIn employee count"
27839
+ },
27840
+ {
27841
+ "toolName": "organizationAgency",
27842
+ "wireName": "organization_agency",
27843
+ "location": "query",
27844
+ "type": "string",
27845
+ "required": false,
27846
+ "description": "only or exclude recruitment agencies"
27847
+ },
27848
+ {
27849
+ "toolName": "aiVisaSponsorship",
27850
+ "wireName": "ai_visa_sponsorship",
27851
+ "location": "query",
27852
+ "type": "string",
27853
+ "required": false,
27854
+ "description": "only or exclude visa sponsorship listings"
27855
+ },
27856
+ {
27857
+ "toolName": "id",
27858
+ "wireName": "id",
27859
+ "location": "query",
27860
+ "type": "string",
27861
+ "required": false,
27862
+ "description": "Filter by internal Fantastic.jobs ID(s)"
27863
+ }
27864
+ ]
27865
+ }
27866
+ },
27867
+ {
27868
+ "id": "orthogonal:fantastic-jobs:active_job_boards",
27869
+ "idPrefix": "platform",
27870
+ "name": "Fantastic Jobs Job Board Feed",
27871
+ "description": "Get new job postings from LinkedIn, Wellfound, and Y Combinator job boards via Fantastic Jobs.",
27872
+ "category": "knowledge_retrieval",
27873
+ "providers": [
27874
+ "multi"
27875
+ ],
27876
+ "parametersSchema": {
27877
+ "type": "object",
27878
+ "properties": {
27879
+ "timeFrame": {
27880
+ "type": "string",
27881
+ "description": "Required. Time window: 1h, 24h, 7d, or 6m"
27882
+ },
27883
+ "limit": {
27884
+ "type": "number",
27885
+ "description": "Results per page (1-100, default 100)"
27886
+ },
27887
+ "offset": {
27888
+ "type": "string",
27889
+ "description": "Pagination offset For later offset pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
27890
+ },
27891
+ "cursor": {
27892
+ "type": "string",
27893
+ "description": "Cursor pagination For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
27894
+ },
27895
+ "title": {
27896
+ "type": "string",
27897
+ "description": "Natural-language title search"
27898
+ },
27899
+ "location": {
27900
+ "type": "string",
27901
+ "description": "Natural-language location search"
27902
+ },
27903
+ "description": {
27904
+ "type": "string",
27905
+ "description": "Search on title and description combined"
27906
+ },
27907
+ "descriptionFormat": {
27908
+ "type": "string",
27909
+ "description": "text or html"
27910
+ },
27911
+ "source": {
27912
+ "type": "string",
27913
+ "description": "linkedin, wellfound, ycombinator"
27914
+ },
27915
+ "organization": {
27916
+ "type": "string",
27917
+ "description": "Filter by exact org name(s)"
27918
+ },
27919
+ "organizationSlug": {
27920
+ "type": "string",
27921
+ "description": "Filter by LinkedIn org slug(s)"
27922
+ },
27923
+ "organizationIndustry": {
27924
+ "type": "string",
27925
+ "description": "Filter by LinkedIn industry"
27926
+ },
27927
+ "aiExperienceLevel": {
27928
+ "type": "string",
27929
+ "description": "AI-derived: 0-2, 2-5, 5-10, 10+"
27930
+ },
27931
+ "aiWorkArrangement": {
27932
+ "type": "string",
27933
+ "description": "AI-derived: On-site, Hybrid, Remote OK, Remote Solely"
27934
+ },
27935
+ "aiEmploymentType": {
27936
+ "type": "string",
27937
+ "description": "AI-derived: FULL_TIME, PART_TIME, CONTRACTOR, etc."
27938
+ },
27939
+ "hasSalary": {
27940
+ "type": "string",
27941
+ "description": "Set true for jobs with salary info only"
27942
+ },
27943
+ "excludeAtsDuplicate": {
27944
+ "type": "string",
27945
+ "description": "Set true to drop LinkedIn jobs matching ATS postings"
27946
+ },
27947
+ "excludeRecruiterFields": {
27948
+ "type": "string",
27949
+ "description": "Set true to exclude recruiter fields"
27950
+ },
27951
+ "seniority": {
27952
+ "type": "string",
27953
+ "description": "LinkedIn seniority: Entry level, Mid-Senior level, Director, etc."
27954
+ },
27955
+ "linkedinId": {
27956
+ "type": "string",
27957
+ "description": "Filter by LinkedIn job posting ID(s)"
27958
+ },
27959
+ "id": {
27960
+ "type": "string",
27961
+ "description": "Filter by internal Fantastic.jobs ID(s)"
27962
+ },
27963
+ "parentRequestId": {
27964
+ "type": "string",
27965
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
27966
+ }
27967
+ },
27968
+ "required": [
27969
+ "limit",
27970
+ "timeFrame"
27971
+ ]
27972
+ },
27973
+ "requiresApiKey": false,
27974
+ "executionHint": "platform",
27975
+ "platformKeySupport": true,
27976
+ "managedExecution": {
27977
+ "kind": "orthogonal",
27978
+ "apiSlug": "fantastic-jobs",
27979
+ "pathTemplate": "/v1/active-jb",
27980
+ "method": "GET",
27981
+ "verified": true,
27982
+ "listPrice": "0.4",
27983
+ "listPriceThousandths": 4e4,
27984
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
27985
+ "params": [
27986
+ {
27987
+ "toolName": "timeFrame",
27988
+ "wireName": "time_frame",
27989
+ "location": "query",
27990
+ "type": "string",
27991
+ "required": true,
27992
+ "description": "Required. Time window: 1h, 24h, 7d, or 6m"
27993
+ },
27994
+ {
27995
+ "toolName": "limit",
27996
+ "wireName": "limit",
27997
+ "location": "query",
27998
+ "type": "number",
27999
+ "required": true,
28000
+ "description": "Results per page (1-100, default 100)"
28001
+ },
28002
+ {
28003
+ "toolName": "offset",
28004
+ "wireName": "offset",
28005
+ "location": "query",
28006
+ "type": "string",
28007
+ "required": false,
28008
+ "description": "Pagination offset For later offset pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
28009
+ },
28010
+ {
28011
+ "toolName": "cursor",
28012
+ "wireName": "cursor",
28013
+ "location": "query",
28014
+ "type": "string",
28015
+ "required": false,
28016
+ "description": "Cursor pagination For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
28017
+ },
28018
+ {
28019
+ "toolName": "title",
28020
+ "wireName": "title",
28021
+ "location": "query",
28022
+ "type": "string",
28023
+ "required": false,
28024
+ "description": "Natural-language title search"
28025
+ },
28026
+ {
28027
+ "toolName": "location",
28028
+ "wireName": "location",
28029
+ "location": "query",
28030
+ "type": "string",
28031
+ "required": false,
28032
+ "description": "Natural-language location search"
28033
+ },
28034
+ {
28035
+ "toolName": "description",
28036
+ "wireName": "description",
28037
+ "location": "query",
28038
+ "type": "string",
28039
+ "required": false,
28040
+ "description": "Search on title and description combined"
28041
+ },
28042
+ {
28043
+ "toolName": "descriptionFormat",
28044
+ "wireName": "description_format",
28045
+ "location": "query",
28046
+ "type": "string",
28047
+ "required": false,
28048
+ "description": "text or html"
28049
+ },
28050
+ {
28051
+ "toolName": "source",
28052
+ "wireName": "source",
28053
+ "location": "query",
28054
+ "type": "string",
28055
+ "required": false,
28056
+ "description": "linkedin, wellfound, ycombinator"
28057
+ },
28058
+ {
28059
+ "toolName": "organization",
28060
+ "wireName": "organization",
28061
+ "location": "query",
28062
+ "type": "string",
28063
+ "required": false,
28064
+ "description": "Filter by exact org name(s)"
28065
+ },
28066
+ {
28067
+ "toolName": "organizationSlug",
28068
+ "wireName": "organization_slug",
28069
+ "location": "query",
28070
+ "type": "string",
28071
+ "required": false,
28072
+ "description": "Filter by LinkedIn org slug(s)"
28073
+ },
28074
+ {
28075
+ "toolName": "organizationIndustry",
28076
+ "wireName": "organization_industry",
28077
+ "location": "query",
28078
+ "type": "string",
28079
+ "required": false,
28080
+ "description": "Filter by LinkedIn industry"
28081
+ },
28082
+ {
28083
+ "toolName": "aiExperienceLevel",
28084
+ "wireName": "ai_experience_level",
28085
+ "location": "query",
28086
+ "type": "string",
28087
+ "required": false,
28088
+ "description": "AI-derived: 0-2, 2-5, 5-10, 10+"
28089
+ },
28090
+ {
28091
+ "toolName": "aiWorkArrangement",
28092
+ "wireName": "ai_work_arrangement",
28093
+ "location": "query",
28094
+ "type": "string",
28095
+ "required": false,
28096
+ "description": "AI-derived: On-site, Hybrid, Remote OK, Remote Solely"
28097
+ },
28098
+ {
28099
+ "toolName": "aiEmploymentType",
28100
+ "wireName": "ai_employment_type",
28101
+ "location": "query",
28102
+ "type": "string",
28103
+ "required": false,
28104
+ "description": "AI-derived: FULL_TIME, PART_TIME, CONTRACTOR, etc."
28105
+ },
28106
+ {
28107
+ "toolName": "hasSalary",
28108
+ "wireName": "has_salary",
28109
+ "location": "query",
28110
+ "type": "string",
28111
+ "required": false,
28112
+ "description": "Set true for jobs with salary info only"
28113
+ },
28114
+ {
28115
+ "toolName": "excludeAtsDuplicate",
28116
+ "wireName": "exclude_ats_duplicate",
28117
+ "location": "query",
28118
+ "type": "string",
28119
+ "required": false,
28120
+ "description": "Set true to drop LinkedIn jobs matching ATS postings"
28121
+ },
28122
+ {
28123
+ "toolName": "excludeRecruiterFields",
28124
+ "wireName": "exclude_recruiter_fields",
28125
+ "location": "query",
28126
+ "type": "string",
28127
+ "required": false,
28128
+ "description": "Set true to exclude recruiter fields"
28129
+ },
28130
+ {
28131
+ "toolName": "seniority",
28132
+ "wireName": "seniority",
28133
+ "location": "query",
28134
+ "type": "string",
28135
+ "required": false,
28136
+ "description": "LinkedIn seniority: Entry level, Mid-Senior level, Director, etc."
28137
+ },
28138
+ {
28139
+ "toolName": "linkedinId",
28140
+ "wireName": "linkedin_id",
28141
+ "location": "query",
28142
+ "type": "string",
28143
+ "required": false,
28144
+ "description": "Filter by LinkedIn job posting ID(s)"
28145
+ },
28146
+ {
28147
+ "toolName": "id",
28148
+ "wireName": "id",
28149
+ "location": "query",
28150
+ "type": "string",
28151
+ "required": false,
28152
+ "description": "Filter by internal Fantastic.jobs ID(s)"
28153
+ }
28154
+ ]
28155
+ }
28156
+ },
27329
28157
  {
27330
28158
  "id": "orthogonal:fiber:company_search",
27331
28159
  "idPrefix": "platform",
@@ -27348,7 +28176,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27348
28176
  },
27349
28177
  "cursor": {
27350
28178
  "type": "string",
27351
- "description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results."
28179
+ "description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results. For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
27352
28180
  },
27353
28181
  "companyExclusionListIDs": {
27354
28182
  "type": "array",
@@ -27356,6 +28184,10 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27356
28184
  "items": {
27357
28185
  "type": "string"
27358
28186
  }
28187
+ },
28188
+ "parentRequestId": {
28189
+ "type": "string",
28190
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
27359
28191
  }
27360
28192
  },
27361
28193
  "required": [
@@ -27375,7 +28207,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27375
28207
  "docsUrl": "https://api.fiber.ai/docs/#tag/search/POST/v1/company-search",
27376
28208
  "listPrice": "0.01",
27377
28209
  "listPriceThousandths": 1e3,
27378
- "catalogVersion": "2026-05-21T03:13:45.963Z",
28210
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
27379
28211
  "params": [
27380
28212
  {
27381
28213
  "toolName": "searchParams",
@@ -27399,7 +28231,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27399
28231
  "location": "body",
27400
28232
  "type": "string",
27401
28233
  "required": false,
27402
- "description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results."
28234
+ "description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results. For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
27403
28235
  },
27404
28236
  {
27405
28237
  "toolName": "companyExclusionListIDs",
@@ -27450,7 +28282,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27450
28282
  "docsUrl": "https://api.fiber.ai/docs/#tag/email-lookup/POST/v1/email-to-person/single",
27451
28283
  "listPrice": "0.04",
27452
28284
  "listPriceThousandths": 4e3,
27453
- "catalogVersion": "2026-05-21T03:13:45.963Z",
28285
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
27454
28286
  "params": [
27455
28287
  {
27456
28288
  "toolName": "email",
@@ -27492,7 +28324,11 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27492
28324
  },
27493
28325
  "cursor": {
27494
28326
  "type": "string",
27495
- "description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results."
28327
+ "description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results. For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
28328
+ },
28329
+ "parentRequestId": {
28330
+ "type": "string",
28331
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
27496
28332
  }
27497
28333
  },
27498
28334
  "required": [
@@ -27512,7 +28348,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27512
28348
  "docsUrl": "https://api.fiber.ai/docs/#tag/agentic-search/POST/v1/natural-language-search/companies",
27513
28349
  "listPrice": "0.54",
27514
28350
  "listPriceThousandths": 54e3,
27515
- "catalogVersion": "2026-05-21T03:13:45.963Z",
28351
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
27516
28352
  "params": [
27517
28353
  {
27518
28354
  "toolName": "query",
@@ -27535,7 +28371,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27535
28371
  "location": "body",
27536
28372
  "type": "string",
27537
28373
  "required": false,
27538
- "description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results."
28374
+ "description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results. For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
27539
28375
  }
27540
28376
  ]
27541
28377
  }
@@ -27569,7 +28405,11 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27569
28405
  },
27570
28406
  "cursor": {
27571
28407
  "type": "string",
27572
- "description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results."
28408
+ "description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results. For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
28409
+ },
28410
+ "parentRequestId": {
28411
+ "type": "string",
28412
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
27573
28413
  }
27574
28414
  },
27575
28415
  "required": [
@@ -27589,7 +28429,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27589
28429
  "docsUrl": "https://api.fiber.ai/docs/#tag/agentic-search/POST/v1/natural-language-search/profiles",
27590
28430
  "listPrice": "0.54",
27591
28431
  "listPriceThousandths": 54e3,
27592
- "catalogVersion": "2026-05-21T03:13:45.963Z",
28432
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
27593
28433
  "params": [
27594
28434
  {
27595
28435
  "toolName": "query",
@@ -27628,7 +28468,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27628
28468
  "location": "body",
27629
28469
  "type": "string",
27630
28470
  "required": false,
27631
- "description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results."
28471
+ "description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results. For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
27632
28472
  }
27633
28473
  ]
27634
28474
  }
@@ -27655,7 +28495,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27655
28495
  },
27656
28496
  "cursor": {
27657
28497
  "type": "string",
27658
- "description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results."
28498
+ "description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results. For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
27659
28499
  },
27660
28500
  "currentCompanies": {
27661
28501
  "type": "array",
@@ -27677,6 +28517,10 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27677
28517
  "items": {
27678
28518
  "type": "string"
27679
28519
  }
28520
+ },
28521
+ "parentRequestId": {
28522
+ "type": "string",
28523
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
27680
28524
  }
27681
28525
  },
27682
28526
  "required": []
@@ -27694,7 +28538,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27694
28538
  "docsUrl": "https://api.fiber.ai/docs/#tag/search/POST/v1/people-search",
27695
28539
  "listPrice": "0.01",
27696
28540
  "listPriceThousandths": 1e3,
27697
- "catalogVersion": "2026-05-21T03:13:45.963Z",
28541
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
27698
28542
  "params": [
27699
28543
  {
27700
28544
  "toolName": "searchParams",
@@ -27718,7 +28562,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27718
28562
  "location": "body",
27719
28563
  "type": "string",
27720
28564
  "required": false,
27721
- "description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results."
28565
+ "description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results. For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
27722
28566
  },
27723
28567
  {
27724
28568
  "toolName": "currentCompanies",
@@ -27781,7 +28625,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27781
28625
  "docsUrl": "https://api.fiber.ai/docs/#tag/validation/POST/v1/validate-email/single",
27782
28626
  "listPrice": "0.02",
27783
28627
  "listPriceThousandths": 2e3,
27784
- "catalogVersion": "2026-05-21T03:13:45.963Z",
28628
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
27785
28629
  "params": [
27786
28630
  {
27787
28631
  "toolName": "email",
@@ -27826,7 +28670,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27826
28670
  "verified": true,
27827
28671
  "listPrice": "0.3",
27828
28672
  "listPriceThousandths": 3e4,
27829
- "catalogVersion": "2026-05-21T03:13:45.963Z",
28673
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
27830
28674
  "params": [
27831
28675
  {
27832
28676
  "toolName": "description",
@@ -27871,7 +28715,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27871
28715
  "verified": true,
27872
28716
  "listPrice": "0",
27873
28717
  "listPriceThousandths": 0,
27874
- "catalogVersion": "2026-05-21T03:13:45.963Z",
28718
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
27875
28719
  "params": [
27876
28720
  {
27877
28721
  "toolName": "researchId",
@@ -27906,7 +28750,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27906
28750
  },
27907
28751
  "offset": {
27908
28752
  "type": "number",
27909
- "description": "Skip N emails"
28753
+ "description": "Skip N emails For later offset pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
27910
28754
  },
27911
28755
  "type": {
27912
28756
  "type": "string",
@@ -27919,6 +28763,10 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27919
28763
  "department": {
27920
28764
  "type": "string",
27921
28765
  "description": "Filter by department (sales, marketing, etc)"
28766
+ },
28767
+ "parentRequestId": {
28768
+ "type": "string",
28769
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
27922
28770
  }
27923
28771
  },
27924
28772
  "required": [
@@ -27936,7 +28784,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27936
28784
  "verified": false,
27937
28785
  "listPrice": "0.01",
27938
28786
  "listPriceThousandths": 1e3,
27939
- "catalogVersion": "2026-05-21T03:13:45.963Z",
28787
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
27940
28788
  "params": [
27941
28789
  {
27942
28790
  "toolName": "domain",
@@ -27960,7 +28808,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
27960
28808
  "location": "query",
27961
28809
  "type": "number",
27962
28810
  "required": false,
27963
- "description": "Skip N emails"
28811
+ "description": "Skip N emails For later offset pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
27964
28812
  },
27965
28813
  {
27966
28814
  "toolName": "type",
@@ -28039,7 +28887,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
28039
28887
  "verified": false,
28040
28888
  "listPrice": "0.01",
28041
28889
  "listPriceThousandths": 1e3,
28042
- "catalogVersion": "2026-05-21T03:13:45.963Z",
28890
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
28043
28891
  "params": [
28044
28892
  {
28045
28893
  "toolName": "domain",
@@ -28124,7 +28972,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
28124
28972
  "verified": false,
28125
28973
  "listPrice": "0.01",
28126
28974
  "listPriceThousandths": 1e3,
28127
- "catalogVersion": "2026-05-21T03:13:45.963Z",
28975
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
28128
28976
  "params": [
28129
28977
  {
28130
28978
  "toolName": "email",
@@ -28169,7 +29017,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
28169
29017
  "verified": true,
28170
29018
  "listPrice": "0.033",
28171
29019
  "listPriceThousandths": 3300,
28172
- "catalogVersion": "2026-05-21T03:13:45.963Z",
29020
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
28173
29021
  "params": [
28174
29022
  {
28175
29023
  "toolName": "email",
@@ -28231,7 +29079,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
28231
29079
  "verified": true,
28232
29080
  "listPrice": "0.66",
28233
29081
  "listPriceThousandths": 66e3,
28234
- "catalogVersion": "2026-05-21T03:13:45.963Z",
29082
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
28235
29083
  "params": [
28236
29084
  {
28237
29085
  "toolName": "handle",
@@ -28320,7 +29168,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
28320
29168
  "verified": true,
28321
29169
  "listPrice": "0.03",
28322
29170
  "listPriceThousandths": 3e3,
28323
- "catalogVersion": "2026-05-21T03:13:45.963Z",
29171
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
28324
29172
  "params": [
28325
29173
  {
28326
29174
  "toolName": "platform",
@@ -28403,7 +29251,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
28403
29251
  "docsUrl": "https://docs.linkup.so/pages/documentation/api-reference/endpoint/post-fetch",
28404
29252
  "listPrice": "0.01",
28405
29253
  "listPriceThousandths": 1e3,
28406
- "catalogVersion": "2026-05-21T03:13:45.963Z",
29254
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
28407
29255
  "params": [
28408
29256
  {
28409
29257
  "toolName": "url",
@@ -28533,7 +29381,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
28533
29381
  "docsUrl": "https://docs.linkup.so/pages/documentation/api-reference/endpoint/post-search",
28534
29382
  "listPrice": "0.01",
28535
29383
  "listPriceThousandths": 1e3,
28536
- "catalogVersion": "2026-05-21T03:13:45.963Z",
29384
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
28537
29385
  "params": [
28538
29386
  {
28539
29387
  "toolName": "q",
@@ -28672,7 +29520,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
28672
29520
  "verified": false,
28673
29521
  "listPrice": "0.01",
28674
29522
  "listPriceThousandths": 1e3,
28675
- "catalogVersion": "2026-05-21T03:13:45.963Z",
29523
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
28676
29524
  "params": [
28677
29525
  {
28678
29526
  "toolName": "q",
@@ -28727,7 +29575,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
28727
29575
  "verified": true,
28728
29576
  "listPrice": "0.01",
28729
29577
  "listPriceThousandths": 1e3,
28730
- "catalogVersion": "2026-05-21T03:13:45.963Z",
29578
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
28731
29579
  "params": [
28732
29580
  {
28733
29581
  "toolName": "url",
@@ -28783,7 +29631,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
28783
29631
  "verified": true,
28784
29632
  "listPrice": "0.002",
28785
29633
  "listPriceThousandths": 200,
28786
- "catalogVersion": "2026-05-21T03:13:45.963Z",
29634
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
28787
29635
  "params": [
28788
29636
  {
28789
29637
  "toolName": "frames",
@@ -28830,7 +29678,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
28830
29678
  "docsUrl": "https://api.nyne.ai/documentation/company/enrichment",
28831
29679
  "listPrice": "0",
28832
29680
  "listPriceThousandths": 0,
28833
- "catalogVersion": "2026-05-21T03:13:45.963Z",
29681
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
28834
29682
  "params": [
28835
29683
  {
28836
29684
  "toolName": "requestId",
@@ -28877,7 +29725,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
28877
29725
  "docsUrl": "https://api.nyne.ai/documentation/company/search",
28878
29726
  "listPrice": "0",
28879
29727
  "listPriceThousandths": 0,
28880
- "catalogVersion": "2026-05-21T03:13:45.963Z",
29728
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
28881
29729
  "params": [
28882
29730
  {
28883
29731
  "toolName": "requestId",
@@ -28924,7 +29772,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
28924
29772
  "docsUrl": "https://api.nyne.ai/documentation/person/enrichment",
28925
29773
  "listPrice": "0",
28926
29774
  "listPriceThousandths": 0,
28927
- "catalogVersion": "2026-05-21T03:13:45.963Z",
29775
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
28928
29776
  "params": [
28929
29777
  {
28930
29778
  "toolName": "requestId",
@@ -28971,7 +29819,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
28971
29819
  "docsUrl": "https://api.nyne.ai/documentation/person/search",
28972
29820
  "listPrice": "0",
28973
29821
  "listPriceThousandths": 0,
28974
- "catalogVersion": "2026-05-21T03:13:45.963Z",
29822
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
28975
29823
  "params": [
28976
29824
  {
28977
29825
  "toolName": "requestId",
@@ -29033,7 +29881,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
29033
29881
  "verified": true,
29034
29882
  "listPrice": "0.018",
29035
29883
  "listPriceThousandths": 1800,
29036
- "catalogVersion": "2026-05-21T03:13:45.963Z",
29884
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
29037
29885
  "params": [
29038
29886
  {
29039
29887
  "toolName": "size",
@@ -29122,7 +29970,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
29122
29970
  "verified": true,
29123
29971
  "listPrice": "0.01",
29124
29972
  "listPriceThousandths": 1e3,
29125
- "catalogVersion": "2026-05-21T03:13:45.963Z",
29973
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
29126
29974
  "params": [
29127
29975
  {
29128
29976
  "toolName": "company",
@@ -29208,7 +30056,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
29208
30056
  "verified": true,
29209
30057
  "listPrice": "0.018",
29210
30058
  "listPriceThousandths": 1800,
29211
- "catalogVersion": "2026-05-21T03:13:45.963Z",
30059
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
29212
30060
  "params": [
29213
30061
  {
29214
30062
  "toolName": "size",
@@ -29305,7 +30153,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
29305
30153
  "verified": true,
29306
30154
  "listPrice": "0.01",
29307
30155
  "listPriceThousandths": 1e3,
29308
- "catalogVersion": "2026-05-21T03:13:45.963Z",
30156
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
29309
30157
  "params": [
29310
30158
  {
29311
30159
  "toolName": "person",
@@ -29364,7 +30212,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
29364
30212
  "docsUrl": "https://docs.olostep.com/api-reference/answers/create",
29365
30213
  "listPrice": "0.05",
29366
30214
  "listPriceThousandths": 5e3,
29367
- "catalogVersion": "2026-05-21T03:13:45.963Z",
30215
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
29368
30216
  "params": [
29369
30217
  {
29370
30218
  "toolName": "task",
@@ -29466,7 +30314,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
29466
30314
  "docsUrl": "https://docs.olostep.com/api-reference/crawls/create",
29467
30315
  "listPrice": "0.05",
29468
30316
  "listPriceThousandths": 5e3,
29469
- "catalogVersion": "2026-05-21T03:13:45.963Z",
30317
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
29470
30318
  "params": [
29471
30319
  {
29472
30320
  "toolName": "startUrl",
@@ -29623,7 +30471,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
29623
30471
  "docsUrl": "https://docs.olostep.com/api-reference/maps/create",
29624
30472
  "listPrice": "0.01",
29625
30473
  "listPriceThousandths": 1e3,
29626
- "catalogVersion": "2026-05-21T03:13:45.963Z",
30474
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
29627
30475
  "params": [
29628
30476
  {
29629
30477
  "toolName": "url",
@@ -29788,7 +30636,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
29788
30636
  "docsUrl": "https://docs.olostep.com/api/scrape",
29789
30637
  "listPrice": "0.01",
29790
30638
  "listPriceThousandths": 1e3,
29791
- "catalogVersion": "2026-05-21T03:13:45.963Z",
30639
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
29792
30640
  "params": [
29793
30641
  {
29794
30642
  "toolName": "url",
@@ -29936,7 +30784,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
29936
30784
  "verified": true,
29937
30785
  "listPrice": "0.01",
29938
30786
  "listPriceThousandths": 1e3,
29939
- "catalogVersion": "2026-05-21T03:13:45.963Z",
30787
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
29940
30788
  "params": [
29941
30789
  {
29942
30790
  "toolName": "companyWebsite",
@@ -30007,7 +30855,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
30007
30855
  "verified": true,
30008
30856
  "listPrice": "0.01",
30009
30857
  "listPriceThousandths": 1e3,
30010
- "catalogVersion": "2026-05-21T03:13:45.963Z",
30858
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
30011
30859
  "params": [
30012
30860
  {
30013
30861
  "toolName": "query",
@@ -30111,7 +30959,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
30111
30959
  "verified": true,
30112
30960
  "listPrice": "0.11",
30113
30961
  "listPriceThousandths": 11e3,
30114
- "catalogVersion": "2026-05-21T03:13:45.963Z",
30962
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
30115
30963
  "params": [
30116
30964
  {
30117
30965
  "toolName": "name",
@@ -30220,7 +31068,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
30220
31068
  "verified": true,
30221
31069
  "listPrice": "0.11",
30222
31070
  "listPriceThousandths": 11e3,
30223
- "catalogVersion": "2026-05-21T03:13:45.963Z",
31071
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
30224
31072
  "params": [
30225
31073
  {
30226
31074
  "toolName": "pretty",
@@ -30355,7 +31203,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
30355
31203
  "verified": true,
30356
31204
  "listPrice": "0.35",
30357
31205
  "listPriceThousandths": 35e3,
30358
- "catalogVersion": "2026-05-21T03:13:45.963Z",
31206
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
30359
31207
  "params": [
30360
31208
  {
30361
31209
  "toolName": "name",
@@ -30516,7 +31364,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
30516
31364
  "verified": true,
30517
31365
  "listPrice": "0.35",
30518
31366
  "listPriceThousandths": 35e3,
30519
- "catalogVersion": "2026-05-21T03:13:45.963Z",
31367
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
30520
31368
  "params": [
30521
31369
  {
30522
31370
  "toolName": "pretty",
@@ -30669,7 +31517,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
30669
31517
  "docsUrl": "https://docs.perplexity.ai/api-reference/search-post",
30670
31518
  "listPrice": "0.01",
30671
31519
  "listPriceThousandths": 1e3,
30672
- "catalogVersion": "2026-05-21T03:13:45.963Z",
31520
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
30673
31521
  "params": [
30674
31522
  {
30675
31523
  "toolName": "query",
@@ -30821,7 +31669,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
30821
31669
  "docsUrl": "https://api-docs.precip.ai/api/precipitation-data#daily-precipitation-data",
30822
31670
  "listPrice": "0.01",
30823
31671
  "listPriceThousandths": 1e3,
30824
- "catalogVersion": "2026-05-21T03:13:45.963Z",
31672
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
30825
31673
  "params": [
30826
31674
  {
30827
31675
  "toolName": "start",
@@ -30919,7 +31767,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
30919
31767
  "docsUrl": "https://api-docs.precip.ai/api/precipitation-data#hourly-precipitation-data",
30920
31768
  "listPrice": "0.01",
30921
31769
  "listPriceThousandths": 1e3,
30922
- "catalogVersion": "2026-05-21T03:13:45.963Z",
31770
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
30923
31771
  "params": [
30924
31772
  {
30925
31773
  "toolName": "start",
@@ -31009,7 +31857,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31009
31857
  "docsUrl": "https://api-docs.precip.ai/api/precipitation-data#last-48-hours-precipitation-data",
31010
31858
  "listPrice": "0.01",
31011
31859
  "listPriceThousandths": 1e3,
31012
- "catalogVersion": "2026-05-21T03:13:45.963Z",
31860
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
31013
31861
  "params": [
31014
31862
  {
31015
31863
  "toolName": "longitude",
@@ -31074,7 +31922,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31074
31922
  "verified": true,
31075
31923
  "listPrice": "0.04",
31076
31924
  "listPriceThousandths": 4e3,
31077
- "catalogVersion": "2026-05-21T03:13:45.963Z",
31925
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
31078
31926
  "params": [
31079
31927
  {
31080
31928
  "toolName": "idOrDomain",
@@ -31106,10 +31954,15 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31106
31954
  "type": "string"
31107
31955
  },
31108
31956
  "page": {
31109
- "type": "number"
31957
+ "type": "number",
31958
+ "description": "For later pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
31110
31959
  },
31111
31960
  "limit": {
31112
31961
  "type": "number"
31962
+ },
31963
+ "parentRequestId": {
31964
+ "type": "string",
31965
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
31113
31966
  }
31114
31967
  },
31115
31968
  "required": [
@@ -31128,7 +31981,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31128
31981
  "verified": true,
31129
31982
  "listPrice": "0.04",
31130
31983
  "listPriceThousandths": 4e3,
31131
- "catalogVersion": "2026-05-21T03:13:45.963Z",
31984
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
31132
31985
  "params": [
31133
31986
  {
31134
31987
  "toolName": "location",
@@ -31149,7 +32002,8 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31149
32002
  "wireName": "page",
31150
32003
  "location": "query",
31151
32004
  "type": "number",
31152
- "required": false
32005
+ "required": false,
32006
+ "description": "For later pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
31153
32007
  },
31154
32008
  {
31155
32009
  "toolName": "limit",
@@ -31182,10 +32036,15 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31182
32036
  "description": "Location (required if onet_codes not provided)"
31183
32037
  },
31184
32038
  "page": {
31185
- "type": "number"
32039
+ "type": "number",
32040
+ "description": "For later pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
31186
32041
  },
31187
32042
  "limit": {
31188
32043
  "type": "number"
32044
+ },
32045
+ "parentRequestId": {
32046
+ "type": "string",
32047
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
31189
32048
  }
31190
32049
  },
31191
32050
  "required": []
@@ -31201,7 +32060,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31201
32060
  "verified": true,
31202
32061
  "listPrice": "0.04",
31203
32062
  "listPriceThousandths": 4e3,
31204
- "catalogVersion": "2026-05-21T03:13:45.963Z",
32063
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
31205
32064
  "params": [
31206
32065
  {
31207
32066
  "toolName": "onetCodes",
@@ -31224,7 +32083,8 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31224
32083
  "wireName": "page",
31225
32084
  "location": "query",
31226
32085
  "type": "number",
31227
- "required": false
32086
+ "required": false,
32087
+ "description": "For later pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
31228
32088
  },
31229
32089
  {
31230
32090
  "toolName": "limit",
@@ -31249,7 +32109,8 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31249
32109
  "type": "object",
31250
32110
  "properties": {
31251
32111
  "page": {
31252
- "type": "number"
32112
+ "type": "number",
32113
+ "description": "For later pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
31253
32114
  },
31254
32115
  "categories": {
31255
32116
  "type": "string"
@@ -31259,6 +32120,10 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31259
32120
  },
31260
32121
  "limit": {
31261
32122
  "type": "number"
32123
+ },
32124
+ "parentRequestId": {
32125
+ "type": "string",
32126
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
31262
32127
  }
31263
32128
  },
31264
32129
  "required": []
@@ -31274,14 +32139,15 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31274
32139
  "verified": true,
31275
32140
  "listPrice": "0.04",
31276
32141
  "listPriceThousandths": 4e3,
31277
- "catalogVersion": "2026-05-21T03:13:45.963Z",
32142
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
31278
32143
  "params": [
31279
32144
  {
31280
32145
  "toolName": "page",
31281
32146
  "wireName": "page",
31282
32147
  "location": "query",
31283
32148
  "type": "number",
31284
- "required": false
32149
+ "required": false,
32150
+ "description": "For later pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
31285
32151
  },
31286
32152
  {
31287
32153
  "toolName": "categories",
@@ -31349,7 +32215,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31349
32215
  "docsUrl": "https://docs.riveterhq.com/#tag/tools/post/scrape",
31350
32216
  "listPrice": "0.01",
31351
32217
  "listPriceThousandths": 1e3,
31352
- "catalogVersion": "2026-05-21T03:13:45.963Z",
32218
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
31353
32219
  "params": [
31354
32220
  {
31355
32221
  "toolName": "url",
@@ -31428,11 +32294,15 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31428
32294
  },
31429
32295
  "cursor": {
31430
32296
  "type": "string",
31431
- "description": "Cursor for pagination"
32297
+ "description": "Cursor for pagination For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
31432
32298
  },
31433
32299
  "trim": {
31434
32300
  "type": "string",
31435
32301
  "description": "Set to true for a trimmed response"
32302
+ },
32303
+ "parentRequestId": {
32304
+ "type": "string",
32305
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
31436
32306
  }
31437
32307
  },
31438
32308
  "required": [
@@ -31450,7 +32320,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31450
32320
  "verified": true,
31451
32321
  "listPrice": "0.02",
31452
32322
  "listPriceThousandths": 2e3,
31453
- "catalogVersion": "2026-05-21T03:13:45.963Z",
32323
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
31454
32324
  "params": [
31455
32325
  {
31456
32326
  "toolName": "query",
@@ -31530,7 +32400,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31530
32400
  "location": "query",
31531
32401
  "type": "string",
31532
32402
  "required": false,
31533
- "description": "Cursor for pagination"
32403
+ "description": "Cursor for pagination For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
31534
32404
  },
31535
32405
  {
31536
32406
  "toolName": "trim",
@@ -31579,7 +32449,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31579
32449
  "verified": true,
31580
32450
  "listPrice": "0.02",
31581
32451
  "listPriceThousandths": 2e3,
31582
- "catalogVersion": "2026-05-21T03:13:45.963Z",
32452
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
31583
32453
  "params": [
31584
32454
  {
31585
32455
  "toolName": "query",
@@ -31636,7 +32506,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31636
32506
  "verified": true,
31637
32507
  "listPrice": "0.02",
31638
32508
  "listPriceThousandths": 2e3,
31639
- "catalogVersion": "2026-05-21T03:13:45.963Z",
32509
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
31640
32510
  "params": [
31641
32511
  {
31642
32512
  "toolName": "handle",
@@ -31689,7 +32559,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31689
32559
  "verified": true,
31690
32560
  "listPrice": "0.02",
31691
32561
  "listPriceThousandths": 2e3,
31692
- "catalogVersion": "2026-05-21T03:13:45.963Z",
32562
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
31693
32563
  "params": [
31694
32564
  {
31695
32565
  "toolName": "url",
@@ -31734,7 +32604,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31734
32604
  "verified": true,
31735
32605
  "listPrice": "0.02",
31736
32606
  "listPriceThousandths": 2e3,
31737
- "catalogVersion": "2026-05-21T03:13:45.963Z",
32607
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
31738
32608
  "params": [
31739
32609
  {
31740
32610
  "toolName": "url",
@@ -31747,6 +32617,176 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31747
32617
  ]
31748
32618
  }
31749
32619
  },
32620
+ {
32621
+ "id": "orthogonal:scrapecreators:reddit_post_comments",
32622
+ "idPrefix": "platform",
32623
+ "name": "ScrapeCreators Reddit Post Comments",
32624
+ "description": "Get the comment thread for a Reddit post by URL via ScrapeCreators.",
32625
+ "category": "web_scraping",
32626
+ "providers": [
32627
+ "multi"
32628
+ ],
32629
+ "parametersSchema": {
32630
+ "type": "object",
32631
+ "properties": {
32632
+ "url": {
32633
+ "type": "string",
32634
+ "description": "Reddit post URL"
32635
+ },
32636
+ "cursor": {
32637
+ "type": "string",
32638
+ "description": "Cursor to get more comments, or replies. For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
32639
+ },
32640
+ "trim": {
32641
+ "type": "boolean",
32642
+ "description": "Set to true for a trimmed down version of the response"
32643
+ },
32644
+ "parentRequestId": {
32645
+ "type": "string",
32646
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
32647
+ }
32648
+ },
32649
+ "required": [
32650
+ "url"
32651
+ ]
32652
+ },
32653
+ "requiresApiKey": false,
32654
+ "executionHint": "platform",
32655
+ "platformKeySupport": true,
32656
+ "managedExecution": {
32657
+ "kind": "orthogonal",
32658
+ "apiSlug": "scrapecreators",
32659
+ "pathTemplate": "/v1/reddit/post/comments",
32660
+ "method": "GET",
32661
+ "verified": true,
32662
+ "listPrice": "0.02",
32663
+ "listPriceThousandths": 2e3,
32664
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
32665
+ "params": [
32666
+ {
32667
+ "toolName": "url",
32668
+ "wireName": "url",
32669
+ "location": "query",
32670
+ "type": "string",
32671
+ "required": true,
32672
+ "description": "Reddit post URL"
32673
+ },
32674
+ {
32675
+ "toolName": "cursor",
32676
+ "wireName": "cursor",
32677
+ "location": "query",
32678
+ "type": "string",
32679
+ "required": false,
32680
+ "description": "Cursor to get more comments, or replies. For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
32681
+ },
32682
+ {
32683
+ "toolName": "trim",
32684
+ "wireName": "trim",
32685
+ "location": "query",
32686
+ "type": "boolean",
32687
+ "required": false,
32688
+ "description": "Set to true for a trimmed down version of the response"
32689
+ }
32690
+ ]
32691
+ }
32692
+ },
32693
+ {
32694
+ "id": "orthogonal:scrapecreators:reddit_search",
32695
+ "idPrefix": "platform",
32696
+ "name": "ScrapeCreators Reddit Search",
32697
+ "description": "Search Reddit posts by keyword, with sort and timeframe filters, via ScrapeCreators.",
32698
+ "category": "web_scraping",
32699
+ "providers": [
32700
+ "multi"
32701
+ ],
32702
+ "parametersSchema": {
32703
+ "type": "object",
32704
+ "properties": {
32705
+ "query": {
32706
+ "type": "string",
32707
+ "description": "Search query"
32708
+ },
32709
+ "sort": {
32710
+ "type": "string",
32711
+ "description": "Sort by"
32712
+ },
32713
+ "timeframe": {
32714
+ "type": "string",
32715
+ "description": "Timeframe"
32716
+ },
32717
+ "after": {
32718
+ "type": "string",
32719
+ "description": "Used to paginate to next page For later pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
32720
+ },
32721
+ "trim": {
32722
+ "type": "boolean",
32723
+ "description": "Set to true for a trimmed down version of the response"
32724
+ },
32725
+ "parentRequestId": {
32726
+ "type": "string",
32727
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
32728
+ }
32729
+ },
32730
+ "required": [
32731
+ "query"
32732
+ ]
32733
+ },
32734
+ "requiresApiKey": false,
32735
+ "executionHint": "platform",
32736
+ "platformKeySupport": true,
32737
+ "managedExecution": {
32738
+ "kind": "orthogonal",
32739
+ "apiSlug": "scrapecreators",
32740
+ "pathTemplate": "/v1/reddit/search",
32741
+ "method": "GET",
32742
+ "verified": true,
32743
+ "listPrice": "0.02",
32744
+ "listPriceThousandths": 2e3,
32745
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
32746
+ "params": [
32747
+ {
32748
+ "toolName": "query",
32749
+ "wireName": "query",
32750
+ "location": "query",
32751
+ "type": "string",
32752
+ "required": true,
32753
+ "description": "Search query"
32754
+ },
32755
+ {
32756
+ "toolName": "sort",
32757
+ "wireName": "sort",
32758
+ "location": "query",
32759
+ "type": "string",
32760
+ "required": false,
32761
+ "description": "Sort by"
32762
+ },
32763
+ {
32764
+ "toolName": "timeframe",
32765
+ "wireName": "timeframe",
32766
+ "location": "query",
32767
+ "type": "string",
32768
+ "required": false,
32769
+ "description": "Timeframe"
32770
+ },
32771
+ {
32772
+ "toolName": "after",
32773
+ "wireName": "after",
32774
+ "location": "query",
32775
+ "type": "string",
32776
+ "required": false,
32777
+ "description": "Used to paginate to next page For later pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
32778
+ },
32779
+ {
32780
+ "toolName": "trim",
32781
+ "wireName": "trim",
32782
+ "location": "query",
32783
+ "type": "boolean",
32784
+ "required": false,
32785
+ "description": "Set to true for a trimmed down version of the response"
32786
+ }
32787
+ ]
32788
+ }
32789
+ },
31750
32790
  {
31751
32791
  "id": "orthogonal:scrapecreators:reddit_subreddit",
31752
32792
  "idPrefix": "platform",
@@ -31773,11 +32813,15 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31773
32813
  },
31774
32814
  "after": {
31775
32815
  "type": "string",
31776
- "description": "Cursor for pagination"
32816
+ "description": "Cursor for pagination For later pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
31777
32817
  },
31778
32818
  "trim": {
31779
32819
  "type": "string",
31780
32820
  "description": "Set to true for a trimmed response"
32821
+ },
32822
+ "parentRequestId": {
32823
+ "type": "string",
32824
+ "description": "Continuation billing id for pagination. On later page, offset, or cursor calls of the same logical search, pass the requestId field from the first call's result (keeping non-pagination parameters unchanged) so the continuation is not billed as a new request."
31781
32825
  }
31782
32826
  },
31783
32827
  "required": [
@@ -31795,7 +32839,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31795
32839
  "verified": true,
31796
32840
  "listPrice": "0.02",
31797
32841
  "listPriceThousandths": 2e3,
31798
- "catalogVersion": "2026-05-21T03:13:45.963Z",
32842
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
31799
32843
  "params": [
31800
32844
  {
31801
32845
  "toolName": "subreddit",
@@ -31827,7 +32871,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31827
32871
  "location": "query",
31828
32872
  "type": "string",
31829
32873
  "required": false,
31830
- "description": "Cursor for pagination"
32874
+ "description": "Cursor for pagination For later pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
31831
32875
  },
31832
32876
  {
31833
32877
  "toolName": "trim",
@@ -31872,7 +32916,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31872
32916
  "verified": true,
31873
32917
  "listPrice": "0.02",
31874
32918
  "listPriceThousandths": 2e3,
31875
- "catalogVersion": "2026-05-21T03:13:45.963Z",
32919
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
31876
32920
  "params": [
31877
32921
  {
31878
32922
  "toolName": "handle",
@@ -31917,7 +32961,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31917
32961
  "verified": true,
31918
32962
  "listPrice": "0.02",
31919
32963
  "listPriceThousandths": 2e3,
31920
- "catalogVersion": "2026-05-21T03:13:45.963Z",
32964
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
31921
32965
  "params": [
31922
32966
  {
31923
32967
  "toolName": "handle",
@@ -31966,7 +33010,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
31966
33010
  "verified": true,
31967
33011
  "listPrice": "0.02",
31968
33012
  "listPriceThousandths": 2e3,
31969
- "catalogVersion": "2026-05-21T03:13:45.963Z",
33013
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
31970
33014
  "params": [
31971
33015
  {
31972
33016
  "toolName": "handle",
@@ -32025,7 +33069,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
32025
33069
  "verified": true,
32026
33070
  "listPrice": "0.02",
32027
33071
  "listPriceThousandths": 2e3,
32028
- "catalogVersion": "2026-05-21T03:13:45.963Z",
33072
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
32029
33073
  "params": [
32030
33074
  {
32031
33075
  "toolName": "channelId",
@@ -32086,7 +33130,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
32086
33130
  "verified": true,
32087
33131
  "listPrice": "0.02",
32088
33132
  "listPriceThousandths": 2e3,
32089
- "catalogVersion": "2026-05-21T03:13:45.963Z",
33133
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
32090
33134
  "params": [
32091
33135
  {
32092
33136
  "toolName": "url",
@@ -32159,7 +33203,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
32159
33203
  "verified": true,
32160
33204
  "listPrice": "0.025",
32161
33205
  "listPriceThousandths": 2500,
32162
- "catalogVersion": "2026-05-21T03:13:45.963Z",
33206
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
32163
33207
  "params": [
32164
33208
  {
32165
33209
  "toolName": "prompt",
@@ -32275,7 +33319,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
32275
33319
  "verified": true,
32276
33320
  "listPrice": "0.005",
32277
33321
  "listPriceThousandths": 500,
32278
- "catalogVersion": "2026-05-21T03:13:45.963Z",
33322
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
32279
33323
  "params": [
32280
33324
  {
32281
33325
  "toolName": "url",
@@ -32376,7 +33420,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
32376
33420
  "verified": true,
32377
33421
  "listPrice": "0.075",
32378
33422
  "listPriceThousandths": 7500,
32379
- "catalogVersion": "2026-05-21T03:13:45.963Z",
33423
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
32380
33424
  "params": [
32381
33425
  {
32382
33426
  "toolName": "query",
@@ -32508,7 +33552,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
32508
33552
  "docsUrl": "https://docs.sixtyfour.ai/api-reference/endpoint/enrich-company",
32509
33553
  "listPrice": "0.1",
32510
33554
  "listPriceThousandths": 1e4,
32511
- "catalogVersion": "2026-05-21T03:13:45.963Z",
33555
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
32512
33556
  "params": [
32513
33557
  {
32514
33558
  "toolName": "targetCompany",
@@ -32604,7 +33648,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
32604
33648
  "docsUrl": "https://docs.sixtyfour.ai/api-reference/endpoint/enrich-lead",
32605
33649
  "listPrice": "0.1",
32606
33650
  "listPriceThousandths": 1e4,
32607
- "catalogVersion": "2026-05-21T03:13:45.963Z",
33651
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
32608
33652
  "params": [
32609
33653
  {
32610
33654
  "toolName": "leadInfo",
@@ -32671,7 +33715,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
32671
33715
  "docsUrl": "https://docs.sixtyfour.ai/api-reference/endpoint/find-email",
32672
33716
  "listPrice": "0.05",
32673
33717
  "listPriceThousandths": 5e3,
32674
- "catalogVersion": "2026-05-21T03:13:45.963Z",
33718
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
32675
33719
  "params": [
32676
33720
  {
32677
33721
  "toolName": "lead",
@@ -32746,7 +33790,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
32746
33790
  "docsUrl": "https://docs.sixtyfour.ai/api-reference/endpoint/find-phone",
32747
33791
  "listPrice": "0.3",
32748
33792
  "listPriceThousandths": 3e4,
32749
- "catalogVersion": "2026-05-21T03:13:45.963Z",
33793
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
32750
33794
  "params": [
32751
33795
  {
32752
33796
  "toolName": "lead",
@@ -32864,7 +33908,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
32864
33908
  "docsUrl": "https://docs.tavily.com/documentation/api-reference/endpoint/extract",
32865
33909
  "listPrice": "0.01",
32866
33910
  "listPriceThousandths": 1e3,
32867
- "catalogVersion": "2026-05-21T03:13:45.963Z",
33911
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
32868
33912
  "params": [
32869
33913
  {
32870
33914
  "toolName": "urls",
@@ -32983,7 +34027,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
32983
34027
  "docsUrl": "https://docs.tavily.com/documentation/api-reference/endpoint/research",
32984
34028
  "listPrice": "0.5",
32985
34029
  "listPriceThousandths": 5e4,
32986
- "catalogVersion": "2026-05-21T03:13:45.963Z",
34030
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
32987
34031
  "params": [
32988
34032
  {
32989
34033
  "toolName": "input",
@@ -33132,7 +34176,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
33132
34176
  "docsUrl": "https://docs.tavily.com/documentation/api-reference/endpoint/search",
33133
34177
  "listPrice": "0.01",
33134
34178
  "listPriceThousandths": 1e3,
33135
- "catalogVersion": "2026-05-21T03:13:45.963Z",
34179
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
33136
34180
  "params": [
33137
34181
  {
33138
34182
  "toolName": "query",
@@ -33324,7 +34368,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
33324
34368
  "docsUrl": "https://docs.textbelt.com",
33325
34369
  "listPrice": "0.025",
33326
34370
  "listPriceThousandths": 2500,
33327
- "catalogVersion": "2026-05-21T03:13:45.963Z",
34371
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
33328
34372
  "params": [
33329
34373
  {
33330
34374
  "toolName": "phone",
@@ -33422,7 +34466,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
33422
34466
  "verified": true,
33423
34467
  "listPrice": "0.01",
33424
34468
  "listPriceThousandths": 1e3,
33425
- "catalogVersion": "2026-05-21T03:13:45.963Z",
34469
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
33426
34470
  "params": [
33427
34471
  {
33428
34472
  "toolName": "domain",
@@ -33528,7 +34572,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
33528
34572
  "verified": true,
33529
34573
  "listPrice": "0.01",
33530
34574
  "listPriceThousandths": 1e3,
33531
- "catalogVersion": "2026-05-21T03:13:45.963Z",
34575
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
33532
34576
  "params": [
33533
34577
  {
33534
34578
  "toolName": "domain",
@@ -33613,7 +34657,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
33613
34657
  "verified": true,
33614
34658
  "listPrice": "0.01",
33615
34659
  "listPriceThousandths": 1e3,
33616
- "catalogVersion": "2026-05-21T03:13:45.963Z",
34660
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
33617
34661
  "params": [
33618
34662
  {
33619
34663
  "toolName": "email",
@@ -33662,7 +34706,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
33662
34706
  "verified": true,
33663
34707
  "listPrice": "0.01",
33664
34708
  "listPriceThousandths": 1e3,
33665
- "catalogVersion": "2026-05-21T03:13:45.963Z",
34709
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
33666
34710
  "params": [
33667
34711
  {
33668
34712
  "toolName": "email",
@@ -33719,7 +34763,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
33719
34763
  "verified": true,
33720
34764
  "listPrice": "0.01",
33721
34765
  "listPriceThousandths": 1e3,
33722
- "catalogVersion": "2026-05-21T03:13:45.963Z",
34766
+ "catalogVersion": "2026-08-03T01:40:35.149Z",
33723
34767
  "params": [
33724
34768
  {
33725
34769
  "toolName": "url",
@@ -33742,12 +34786,27 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
33742
34786
  }
33743
34787
  ];
33744
34788
  var ORTHOGONAL_API_NAMES = {
34789
+ "abstract-avatars": "Abstract Avatars",
34790
+ "abstract-company-enrichment": "Abstract Company Enrichment",
34791
+ "abstract-email-reputation": "Abstract Email Reputation",
34792
+ "abstract-exchange-rates": "Abstract Exchange Rates",
34793
+ "abstract-iban-validation": "Abstract IBAN Validation",
34794
+ "abstract-image-processing": "Abstract Image Processing",
34795
+ "abstract-ip-intelligence": "Abstract IP Intelligence",
34796
+ "abstract-phone-intelligence": "Abstract Phone Intelligence",
34797
+ "abstract-public-holidays": "Abstract Public Holidays",
34798
+ "abstract-timezone": "Abstract Timezone",
34799
+ "abstract-vat-validation": "Abstract VAT Validation",
34800
+ "abstract-web-scraping": "Abstract Web Scraping",
34801
+ "abstract-website-screenshot": "Abstract Website Screenshot",
33745
34802
  "agentmail": "AgentMail",
34803
+ "agentphone": "AgentPhone",
33746
34804
  "andi": "Andi Search API",
33747
34805
  "apollo": "Apollo API",
33748
34806
  "aviato": "Aviato",
33749
34807
  "baseten": "Baseten Model APIs",
33750
34808
  "brand-dev": "Brand.dev API",
34809
+ "bytemine": "Bytemine",
33751
34810
  "captaindata": "CaptainData",
33752
34811
  "company-enrich": "Company Enrich",
33753
34812
  "contactout": "ContactOut",
@@ -33759,12 +34818,16 @@ var ORTHOGONAL_API_NAMES = {
33759
34818
  "edges": "Edges",
33760
34819
  "elevenlabs": "ElevenLabs",
33761
34820
  "exa": "Exa API",
34821
+ "fantastic-jobs": "Fantastic Jobs",
33762
34822
  "fiber": "Fiber AI API",
34823
+ "findymail": "Findymail",
33763
34824
  "fundable": "Fundable",
33764
34825
  "happenstance": "Happenstance",
33765
34826
  "hunter": "Hunter",
34827
+ "icypeas": "Icypeas",
33766
34828
  "influencers-club": "Influencers Club",
33767
34829
  "jina-s": "Jina Search Foundation API",
34830
+ "join-massive": "Join Massive",
33768
34831
  "linkup": "Linkup API",
33769
34832
  "logo": "Logo.dev",
33770
34833
  "nano-banana": "Nano Banana",
@@ -33773,21 +34836,21 @@ var ORTHOGONAL_API_NAMES = {
33773
34836
  "nyne": "Nyne.ai",
33774
34837
  "ocean-io": "Ocean.io",
33775
34838
  "olostep": "Olostep API",
33776
- "openai": "OpenAI",
33777
34839
  "openfunnel": "OpenFunnel",
33778
34840
  "openmart": "Openmart",
33779
- "parallel": "Parallel API",
33780
34841
  "peopledatalabs": "People Data Labs",
33781
34842
  "perplexity": "Perplexity API",
33782
34843
  "precip": "Precip AI - Hyperlocal Weather Data API",
33783
34844
  "predictleads": "PredictLeads",
33784
34845
  "riveter": "Riveter API",
34846
+ "rocketreach": "RocketReach",
33785
34847
  "scrapecreators": "Scrape Creators",
33786
34848
  "scrapegraphai": "ScrapeGraphAI",
33787
34849
  "searchapi": "SearchAPI",
33788
34850
  "seltz": "Seltz",
33789
34851
  "serper": "Serper",
33790
34852
  "serper-scrape": "Serper Scrape",
34853
+ "signalbase": "Signalbase",
33791
34854
  "sixtyfour": "Sixtyfour API",
33792
34855
  "tako": "Tako",
33793
34856
  "tavily": "Tavily API",
@@ -37122,7 +38185,7 @@ var CORE_BUILTIN_TOOLS_REGISTRY = [
37122
38185
  {
37123
38186
  id: "bash",
37124
38187
  name: "Bash",
37125
- description: 'Run a shell command on your Linux computer (Node 22, Python 3.12, git, pnpm, uv, ripgrep preinstalled). Commands run in /workspace; files you write there are available to later commands, but system-level changes outside /workspace may not persist. Combined stdout/stderr is returned. Prefer searching over dumping: use `rg`/`grep` to find the lines you need and `head`/`tail`/`sed -n` to read slices, rather than printing whole files or verbose logs. Output is capped (head + tail) and the full output is spilled to a file in the sandbox that you can grep \u2014 so re-running a noisy command to "see the rest" wastes time; grep the spilled file instead. Pass slow_ok=true for commands that take a while (installs, builds, test suites).',
38188
+ description: "Run a shell command on your Linux computer (Node 22, Python 3.12, git, pnpm, uv, ripgrep preinstalled). Commands run in /workspace; files you write there are available to later commands, but system-level changes outside /workspace may not persist. Combined stdout/stderr is returned. Prefer searching over dumping: use `rg`/`grep` to find the lines you need and `head`/`tail`/`sed -n` to read slices. Output is capped. If the command is still running at timeout_ms, it is NOT killed: bash returns a durable process_id and partial output. When the result has a deliveryId, pass it as ack_delivery_id on the next bash_output poll so newer output can advance. Poll only new output with bash_output, stop it with kill_process, or inspect handles with list_processes. Use run_in_background=true to yield immediately.",
37126
38189
  category: BuiltInToolCategory.SANDBOX,
37127
38190
  toolGroup: BuiltInToolGroup.SANDBOX_AGENT,
37128
38191
  providers: [BuiltInToolProvider.MULTI],
@@ -37137,6 +38200,21 @@ var CORE_BUILTIN_TOOLS_REGISTRY = [
37137
38200
  slow_ok: {
37138
38201
  type: "boolean",
37139
38202
  description: "Allow a longer timeout for commands expected to take a while (installs, builds, tests). Defaults to false (short timeout)."
38203
+ },
38204
+ timeout_ms: {
38205
+ type: "number",
38206
+ description: "Milliseconds to wait before yielding a still-running process handle and partial output. The process is not killed. Clamped to at most 30000, or 240000 when slow_ok is true; defaults to that maximum."
38207
+ },
38208
+ run_in_background: {
38209
+ type: "boolean",
38210
+ description: "Start the command and yield its process_id immediately instead of waiting. Defaults to false."
38211
+ },
38212
+ process_id: {
38213
+ type: "string",
38214
+ description: "Optional caller-chosen durable process id (letters, numbers, dots, underscores, and hyphens). Omit to generate one.",
38215
+ minLength: 1,
38216
+ maxLength: 96,
38217
+ pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*$"
37140
38218
  }
37141
38219
  },
37142
38220
  required: ["command"]
@@ -37146,6 +38224,78 @@ var CORE_BUILTIN_TOOLS_REGISTRY = [
37146
38224
  platformKeySupport: true,
37147
38225
  hidden: true
37148
38226
  },
38227
+ {
38228
+ id: "bash_output",
38229
+ name: "Bash Output",
38230
+ description: "Read only the new combined stdout/stderr produced after the last acknowledged delivery of a background bash process. Pass the previous successful bash or bash_output result's deliveryId as ack_delivery_id on the next poll; unacknowledged output is replayed so an API timeout cannot lose it. Acknowledge a terminal result's final delivery with one more poll so its bounded history record can retire. Returns status and an actual exitCode only after the process is terminal. Output is bounded and untrusted.",
38231
+ category: BuiltInToolCategory.SANDBOX,
38232
+ toolGroup: BuiltInToolGroup.SANDBOX_AGENT,
38233
+ providers: [BuiltInToolProvider.MULTI],
38234
+ parametersSchema: {
38235
+ type: "object",
38236
+ properties: {
38237
+ process_id: {
38238
+ type: "string",
38239
+ description: "Durable process id returned by bash.",
38240
+ minLength: 1,
38241
+ maxLength: 96,
38242
+ pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*$"
38243
+ },
38244
+ ack_delivery_id: {
38245
+ type: "string",
38246
+ description: "deliveryId from the most recent successful bash or bash_output result for this process. Acknowledges that batch before reading newer output. Omit when no deliveryId has been received.",
38247
+ minLength: 1,
38248
+ maxLength: 64
38249
+ }
38250
+ },
38251
+ required: ["process_id"]
38252
+ },
38253
+ executionHint: "platform",
38254
+ requiresApiKey: false,
38255
+ platformKeySupport: true,
38256
+ hidden: true
38257
+ },
38258
+ {
38259
+ id: "kill_process",
38260
+ name: "Kill Process",
38261
+ description: "Stop a managed background process and its descendant process tree. Returns durable terminal status; use bash_output afterward to consume any unread final output.",
38262
+ category: BuiltInToolCategory.SANDBOX,
38263
+ toolGroup: BuiltInToolGroup.SANDBOX_AGENT,
38264
+ providers: [BuiltInToolProvider.MULTI],
38265
+ parametersSchema: {
38266
+ type: "object",
38267
+ properties: {
38268
+ process_id: {
38269
+ type: "string",
38270
+ description: "Durable process id returned by bash.",
38271
+ minLength: 1,
38272
+ maxLength: 96,
38273
+ pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*$"
38274
+ }
38275
+ },
38276
+ required: ["process_id"]
38277
+ },
38278
+ executionHint: "platform",
38279
+ requiresApiKey: false,
38280
+ platformKeySupport: true,
38281
+ hidden: true
38282
+ },
38283
+ {
38284
+ id: "list_processes",
38285
+ name: "List Processes",
38286
+ description: "List managed background bash handles and durable running/terminal status. Also returns the newest bounded post-mortem drained from a supervised setup command before forced termination. Post-mortem command/output fields are untrusted and secret-scrubbed. Does not replay managed-process output; call bash_output for delta-only logs.",
38287
+ category: BuiltInToolCategory.SANDBOX,
38288
+ toolGroup: BuiltInToolGroup.SANDBOX_AGENT,
38289
+ providers: [BuiltInToolProvider.MULTI],
38290
+ parametersSchema: {
38291
+ type: "object",
38292
+ properties: {}
38293
+ },
38294
+ executionHint: "platform",
38295
+ requiresApiKey: false,
38296
+ platformKeySupport: true,
38297
+ hidden: true
38298
+ },
37149
38299
  {
37150
38300
  id: "read_file",
37151
38301
  name: "Read File",
@@ -39322,6 +40472,9 @@ var userProfileFeaturesSchema = external_exports.object({
39322
40472
  // rule enables it). When false the dashboard renders byte-identical to today
39323
40473
  // (personal sentinel, personal/team chooser, personal Schematic identify).
39324
40474
  enableWorkspaceModel: external_exports.boolean(),
40475
+ // Gates the End users subview in Settings → Usage. Driven by the
40476
+ // `enable-end-user-usage-analytics` Flagship rollout flag.
40477
+ enableEndUserUsageAnalytics: external_exports.boolean(),
39325
40478
  // Gates the "OAuth apps" settings tab in the dashboard (self-serve OAuth
39326
40479
  // client registration). Driven by the `enable-self-serve-oauth-clients`
39327
40480
  // boolean flag (fail-closed in production until a rule enables it; non-prod
@@ -39456,6 +40609,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
39456
40609
  "deepseek-v4-flash": {
39457
40610
  "vercel": "deepseek/deepseek-v4-flash"
39458
40611
  },
40612
+ "deepseek-v4-flash-0731": {
40613
+ "vercel": "deepseek/deepseek-v4-flash-0731"
40614
+ },
39459
40615
  "deepseek-v4-pro": {
39460
40616
  "togetherai": "togetherai/deepseek-ai/DeepSeek-V4-Pro",
39461
40617
  "vercel": "deepseek/deepseek-v4-pro"
@@ -39933,6 +41089,12 @@ var MODEL_FAMILY_PROVIDER_IDS = {
39933
41089
  "grok-voice-think-fast-1.0": {
39934
41090
  "vercel": "xai/grok-voice-think-fast-1.0"
39935
41091
  },
41092
+ "grok-voice-think-fast-2-0": {
41093
+ "vercel": "xai/grok-voice-think-fast-2.0"
41094
+ },
41095
+ "grok-voice-think-fast-2.0": {
41096
+ "vercel": "xai/grok-voice-think-fast-2.0"
41097
+ },
39936
41098
  "hy3": {
39937
41099
  "vercel": "tencent/hy3"
39938
41100
  },
@@ -39940,6 +41102,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
39940
41102
  "togetherai": "togetherai/thinkingmachines/Inkling",
39941
41103
  "vercel": "thinkingmachines/inkling"
39942
41104
  },
41105
+ "inkling-small": {
41106
+ "vercel": "thinkingmachines/inkling-small"
41107
+ },
39943
41108
  "interfaze-beta": {
39944
41109
  "vercel": "interfaze/interfaze-beta"
39945
41110
  },
@@ -40287,6 +41452,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
40287
41452
  "togetherai": "togetherai/Qwen/Qwen3.6-Plus",
40288
41453
  "vercel": "alibaba/qwen3.6-plus"
40289
41454
  },
41455
+ "qwen3-7-flash": {
41456
+ "vercel": "alibaba/qwen3.7-flash"
41457
+ },
40290
41458
  "qwen3-7-max": {
40291
41459
  "togetherai": "togetherai/Qwen/Qwen3.7-Max",
40292
41460
  "vercel": "alibaba/qwen3.7-max"
@@ -40373,6 +41541,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
40373
41541
  "qwen3.6-plus": {
40374
41542
  "vercel": "alibaba/qwen3.6-plus"
40375
41543
  },
41544
+ "qwen3.7-flash": {
41545
+ "vercel": "alibaba/qwen3.7-flash"
41546
+ },
40376
41547
  "qwen3.7-max": {
40377
41548
  "vercel": "alibaba/qwen3.7-max"
40378
41549
  },
@@ -40501,9 +41672,6 @@ var MANUAL_PROVIDER_MAP_OVERRIDES = {
40501
41672
  "llama-3-3-70b": {
40502
41673
  "togetherai": "togetherai/meta-llama/Meta-Llama-3.3-70B-Instruct-Turbo"
40503
41674
  },
40504
- "kimi-k2.5": {
40505
- "workers-ai": "@cf/moonshotai/kimi-k2.5"
40506
- },
40507
41675
  "kimi-k2.6": {
40508
41676
  "workers-ai": "@cf/moonshotai/kimi-k2.6"
40509
41677
  },
@@ -40517,6 +41685,7 @@ var MANUAL_PROVIDER_MAP_OVERRIDES = {
40517
41685
  "workers-ai": "@cf/google/gemma-4-26b-a4b-it"
40518
41686
  },
40519
41687
  "gpt-oss-120b": {
41688
+ "tinfoil": "tinfoil/gpt-oss-120b",
40520
41689
  "workers-ai": "@cf/openai/gpt-oss-120b"
40521
41690
  },
40522
41691
  // GPT-5.4 Nano's normalized family alias should use the same CF gateway
@@ -41695,7 +42864,7 @@ var agentRuntimeConfigSchema = external_exports.object({
41695
42864
  // lock-down gate pre-engine. Single-sourced as `tenancyStrategySchema` in
41696
42865
  // `./tenancy-strategy`; the expansion + gate logic lives in apps/api.
41697
42866
  tenancyStrategy: tenancyStrategySchema.optional()
41698
- });
42867
+ }).strict();
41699
42868
  var identityAdapterKindSchema = external_exports.enum(["oidc-jwt", "session", "custom"]);
41700
42869
  var ASYMMETRIC_JWT_ALGORITHMS = [
41701
42870
  "RS256",
@@ -45749,6 +46918,7 @@ var AgentInputSchema = external_exports.object({
45749
46918
  frequencyPenalty: external_exports.number().min(-2).max(2).optional(),
45750
46919
  presencePenalty: external_exports.number().min(-2).max(2).optional(),
45751
46920
  seed: external_exports.number().int().optional(),
46921
+ maxTokens: agentRuntimeConfigSchema.shape.maxTokens,
45752
46922
  tools: external_exports.object({
45753
46923
  toolIds: external_exports.array(external_exports.string()).optional(),
45754
46924
  toolConfigs: external_exports.record(external_exports.string(), external_exports.record(external_exports.string(), external_exports.any())).optional(),
@@ -45782,7 +46952,8 @@ var AgentInputSchema = external_exports.object({
45782
46952
  toolPool: external_exports.array(external_exports.string()),
45783
46953
  description: external_exports.string().optional(),
45784
46954
  timeoutMs: external_exports.number().int().min(1e3).max(6e5).optional()
45785
- }).optional()
46955
+ }).optional(),
46956
+ toolSearch: toolSearchConfigSchema.optional()
45786
46957
  }).optional(),
45787
46958
  artifacts: VirtualAgentArtifactConfigSchema.optional(),
45788
46959
  loopConfig: AgentLoopConfigSchema.optional(),
@@ -45790,13 +46961,29 @@ var AgentInputSchema = external_exports.object({
45790
46961
  model: external_exports.string(),
45791
46962
  systemPrompt: external_exports.string().optional()
45792
46963
  }).optional().nullable(),
46964
+ reasoning: agentRuntimeConfigSchema.shape.reasoning,
46965
+ voice: agentRuntimeConfigSchema.shape.voice,
46966
+ errorHandling: agentRuntimeConfigSchema.shape.errorHandling,
46967
+ loggingPolicy: agentRuntimeConfigSchema.shape.loggingPolicy,
46968
+ piiRedaction: agentRuntimeConfigSchema.shape.piiRedaction,
46969
+ temporal: agentRuntimeConfigSchema.shape.temporal,
45793
46970
  memory: memoryConfigSchema.optional(),
45794
46971
  // Agent Sandbox (Linux computer). When enabled (and the enable-agent-sandbox
45795
46972
  // flag is on), dispatch injects the sandbox builtin tools + system-prompt
45796
46973
  // frame — mirroring the saved-agent execute route so the two hosted-agent
45797
46974
  // entry points stay in lockstep.
45798
- sandbox: sandboxConfigSchema.optional()
46975
+ sandbox: sandboxConfigSchema.optional(),
46976
+ tenancyStrategy: agentRuntimeConfigSchema.shape.tenancyStrategy
45799
46977
  }).superRefine((val, ctx) => {
46978
+ 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;
46979
+ if (unsupported) {
46980
+ const [path20, message] = unsupported;
46981
+ ctx.addIssue({
46982
+ code: "custom",
46983
+ path: path20,
46984
+ message
46985
+ });
46986
+ }
45800
46987
  if (val.agentId) {
45801
46988
  return;
45802
46989
  }
@@ -46555,6 +47742,8 @@ function normalizeCategoryToken(value) {
46555
47742
  return value.toLowerCase().replace(/[^a-z0-9]/g, "");
46556
47743
  }
46557
47744
  var HARD_BLOCK_NEEDLES = SKILL_SCAN_HARD_BLOCK_CATEGORIES.map(normalizeCategoryToken);
47745
+ var DEFAULT_STEP_TIMEOUT_MS = 5 * 60 * 1e3;
47746
+ var DEFAULT_FLOW_TIMEOUT_MS = 15 * 60 * 1e3;
46558
47747
 
46559
47748
  // src/config/env.ts
46560
47749
  function getApiUrl() {
@@ -48118,7 +49307,8 @@ flowsCommand.command("run <id>").description("Execute a flow via dispatch").opti
48118
49307
  if (!apiKey) return;
48119
49308
  const client = createCliClient(apiKey);
48120
49309
  const payload = {
48121
- flow: { id: flowId }
49310
+ flow: { id: flowId },
49311
+ options: { streamResponse: options.stream }
48122
49312
  };
48123
49313
  if (options.record) {
48124
49314
  payload.record = { id: options.record };
@@ -48159,10 +49349,7 @@ Error: ${err.message}`));
48159
49349
  } else {
48160
49350
  console.log(chalk5.gray("Executing flow..."));
48161
49351
  try {
48162
- const result = await client.dispatch.execute({
48163
- ...payload,
48164
- options: { streamResponse: false }
48165
- });
49352
+ const result = await client.dispatch.execute(payload);
48166
49353
  console.log(chalk5.green("Flow execution complete"));
48167
49354
  printJson(result);
48168
49355
  } catch (error51) {
@@ -49795,7 +50982,8 @@ promptsCommand.command("test <id>").description("Test a prompt with input").opti
49795
50982
  }
49796
50983
  }
49797
50984
  ]
49798
- }
50985
+ },
50986
+ options: { streamResponse: options.stream }
49799
50987
  };
49800
50988
  if (options.input) {
49801
50989
  payload.messages = [{ role: "user", content: options.input }];
@@ -49827,7 +51015,6 @@ Error: ${err.message}`));
49827
51015
  } else {
49828
51016
  console.log(chalk8.gray("Testing prompt..."));
49829
51017
  try {
49830
- payload.streamResponse = false;
49831
51018
  const result = await client.post("/dispatch", payload);
49832
51019
  console.log(chalk8.green("Prompt test complete"));
49833
51020
  if (options.json) {
@@ -66443,7 +67630,8 @@ agentsCommand.command("execute <id>").description("Execute an agent").requiredOp
66443
67630
  if (!apiKey) return;
66444
67631
  const client = createCliClient(apiKey);
66445
67632
  const payload = {
66446
- messages: [{ role: "user", content: options.message }]
67633
+ messages: [{ role: "user", content: options.message }],
67634
+ streamResponse: options.stream
66447
67635
  };
66448
67636
  if (options.stream) {
66449
67637
  console.log(chalk25.gray("Starting agent..."));