@runtypelabs/cli 2.32.4 → 2.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1406 -327
- package/package.json +9 -9
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __require = /* @__PURE__ */ ((x2) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x2, {
|
|
5
|
-
get: (a,
|
|
5
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
6
6
|
}) : x2)(function(x2) {
|
|
7
7
|
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
8
8
|
throw Error('Dynamic require of "' + x2 + '" is not supported');
|
|
@@ -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-
|
|
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.
|
|
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.
|
|
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.
|
|
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-
|
|
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:
|
|
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.
|
|
720
|
-
isDefault:
|
|
721
|
-
strengths: "
|
|
722
|
-
bestFor: ["
|
|
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
|
-
//
|
|
701
|
+
// DeepSeek models (routed via Vercel)
|
|
733
702
|
{
|
|
734
703
|
provider: "runtype",
|
|
735
|
-
modelId: "
|
|
704
|
+
modelId: "deepseek-v4-flash",
|
|
736
705
|
isDefault: false,
|
|
737
|
-
strengths: "
|
|
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`.
|
|
@@ -1897,20 +1866,20 @@ function safeExtend(schema, shape) {
|
|
|
1897
1866
|
});
|
|
1898
1867
|
return clone(schema, def);
|
|
1899
1868
|
}
|
|
1900
|
-
function merge(a,
|
|
1869
|
+
function merge(a, b) {
|
|
1901
1870
|
if (a._zod.def.checks?.length) {
|
|
1902
1871
|
throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");
|
|
1903
1872
|
}
|
|
1904
1873
|
const def = mergeDefs(a._zod.def, {
|
|
1905
1874
|
get shape() {
|
|
1906
|
-
const _shape = { ...a._zod.def.shape, ...
|
|
1875
|
+
const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };
|
|
1907
1876
|
assignProp(this, "shape", _shape);
|
|
1908
1877
|
return _shape;
|
|
1909
1878
|
},
|
|
1910
1879
|
get catchall() {
|
|
1911
|
-
return
|
|
1880
|
+
return b._zod.def.catchall;
|
|
1912
1881
|
},
|
|
1913
|
-
checks:
|
|
1882
|
+
checks: b._zod.def.checks ?? []
|
|
1914
1883
|
});
|
|
1915
1884
|
return clone(a, def);
|
|
1916
1885
|
}
|
|
@@ -2113,7 +2082,7 @@ function hexToUint8Array(hex3) {
|
|
|
2113
2082
|
return bytes;
|
|
2114
2083
|
}
|
|
2115
2084
|
function uint8ArrayToHex(bytes) {
|
|
2116
|
-
return Array.from(bytes).map((
|
|
2085
|
+
return Array.from(bytes).map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
2117
2086
|
}
|
|
2118
2087
|
var Class = class {
|
|
2119
2088
|
constructor(..._args) {
|
|
@@ -2250,7 +2219,7 @@ function toDotPath(_path) {
|
|
|
2250
2219
|
}
|
|
2251
2220
|
function prettifyError(error51) {
|
|
2252
2221
|
const lines = [];
|
|
2253
|
-
const issues = [...error51.issues].sort((a,
|
|
2222
|
+
const issues = [...error51.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);
|
|
2254
2223
|
for (const issue2 of issues) {
|
|
2255
2224
|
lines.push(`\u2716 ${issue2.message}`);
|
|
2256
2225
|
if (issue2.path?.length)
|
|
@@ -4225,19 +4194,19 @@ var $ZodIntersection = /* @__PURE__ */ $constructor("$ZodIntersection", (inst, d
|
|
|
4225
4194
|
return handleIntersectionResults(payload, left, right);
|
|
4226
4195
|
};
|
|
4227
4196
|
});
|
|
4228
|
-
function mergeValues(a,
|
|
4229
|
-
if (a ===
|
|
4197
|
+
function mergeValues(a, b) {
|
|
4198
|
+
if (a === b) {
|
|
4230
4199
|
return { valid: true, data: a };
|
|
4231
4200
|
}
|
|
4232
|
-
if (a instanceof Date &&
|
|
4201
|
+
if (a instanceof Date && b instanceof Date && +a === +b) {
|
|
4233
4202
|
return { valid: true, data: a };
|
|
4234
4203
|
}
|
|
4235
|
-
if (isPlainObject(a) && isPlainObject(
|
|
4236
|
-
const bKeys = Object.keys(
|
|
4204
|
+
if (isPlainObject(a) && isPlainObject(b)) {
|
|
4205
|
+
const bKeys = Object.keys(b);
|
|
4237
4206
|
const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);
|
|
4238
|
-
const newObj = { ...a, ...
|
|
4207
|
+
const newObj = { ...a, ...b };
|
|
4239
4208
|
for (const key of sharedKeys) {
|
|
4240
|
-
const sharedValue = mergeValues(a[key],
|
|
4209
|
+
const sharedValue = mergeValues(a[key], b[key]);
|
|
4241
4210
|
if (!sharedValue.valid) {
|
|
4242
4211
|
return {
|
|
4243
4212
|
valid: false,
|
|
@@ -4248,14 +4217,14 @@ function mergeValues(a, b2) {
|
|
|
4248
4217
|
}
|
|
4249
4218
|
return { valid: true, data: newObj };
|
|
4250
4219
|
}
|
|
4251
|
-
if (Array.isArray(a) && Array.isArray(
|
|
4252
|
-
if (a.length !==
|
|
4220
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
4221
|
+
if (a.length !== b.length) {
|
|
4253
4222
|
return { valid: false, mergeErrorPath: [] };
|
|
4254
4223
|
}
|
|
4255
4224
|
const newArray = [];
|
|
4256
4225
|
for (let index = 0; index < a.length; index++) {
|
|
4257
4226
|
const itemA = a[index];
|
|
4258
|
-
const itemB =
|
|
4227
|
+
const itemB = b[index];
|
|
4259
4228
|
const sharedValue = mergeValues(itemA, itemB);
|
|
4260
4229
|
if (!sharedValue.valid) {
|
|
4261
4230
|
return {
|
|
@@ -12894,14 +12863,14 @@ var intersectionProcessor = (schema, ctx, json2, params) => {
|
|
|
12894
12863
|
...params,
|
|
12895
12864
|
path: [...params.path, "allOf", 0]
|
|
12896
12865
|
});
|
|
12897
|
-
const
|
|
12866
|
+
const b = process2(def.right, ctx, {
|
|
12898
12867
|
...params,
|
|
12899
12868
|
path: [...params.path, "allOf", 1]
|
|
12900
12869
|
});
|
|
12901
12870
|
const isSimpleIntersection = (val) => "allOf" in val && Object.keys(val).length === 1;
|
|
12902
12871
|
const allOf = [
|
|
12903
12872
|
...isSimpleIntersection(a) ? a.allOf : [a],
|
|
12904
|
-
...isSimpleIntersection(
|
|
12873
|
+
...isSimpleIntersection(b) ? b.allOf : [b]
|
|
12905
12874
|
];
|
|
12906
12875
|
json2.allOf = allOf;
|
|
12907
12876
|
};
|
|
@@ -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-
|
|
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,7 @@ function resolveFallback(parsed, context, tracking, options = {}) {
|
|
|
15786
15755
|
}
|
|
15787
15756
|
var templateEngine = new SimpleTemplateEngine();
|
|
15788
15757
|
|
|
15789
|
-
// ../shared/dist/chunk-
|
|
15758
|
+
// ../shared/dist/chunk-SL33IVSJ.mjs
|
|
15790
15759
|
var jsonPatchOperationSchema = external_exports.object({
|
|
15791
15760
|
op: external_exports.enum(["add", "remove", "replace", "move", "copy", "test"]),
|
|
15792
15761
|
/** JSON Pointer (RFC 6901) into the state document. `''` addresses the root. */
|
|
@@ -16102,6 +16071,18 @@ var unifiedToolStartEventSchema = external_exports.object({
|
|
|
16102
16071
|
type: external_exports.literal("tool_start"),
|
|
16103
16072
|
toolCallId: external_exports.string(),
|
|
16104
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
|
+
*/
|
|
16105
16086
|
toolType: external_exports.string(),
|
|
16106
16087
|
iteration: external_exports.number().optional(),
|
|
16107
16088
|
stepId: external_exports.string().optional(),
|
|
@@ -16428,6 +16409,10 @@ var agentToolStartEventSchema = external_exports.object({
|
|
|
16428
16409
|
iteration: external_exports.number(),
|
|
16429
16410
|
toolCallId: external_exports.string(),
|
|
16430
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.
|
|
16431
16416
|
toolType: external_exports.enum([
|
|
16432
16417
|
"flow",
|
|
16433
16418
|
"mcp",
|
|
@@ -16436,7 +16421,9 @@ var agentToolStartEventSchema = external_exports.object({
|
|
|
16436
16421
|
"external",
|
|
16437
16422
|
"advisor",
|
|
16438
16423
|
"subagent",
|
|
16439
|
-
"local"
|
|
16424
|
+
"local",
|
|
16425
|
+
"data_connection",
|
|
16426
|
+
"search"
|
|
16440
16427
|
]),
|
|
16441
16428
|
parameters: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
|
|
16442
16429
|
hiddenParameterNames: external_exports.array(external_exports.string()).optional(),
|
|
@@ -16899,6 +16886,8 @@ var toolStartEventSchema = external_exports.object({
|
|
|
16899
16886
|
toolCallId: external_exports.string().optional(),
|
|
16900
16887
|
name: external_exports.string().optional(),
|
|
16901
16888
|
toolName: external_exports.string().optional(),
|
|
16889
|
+
// Keep in lockstep with the wire vocabulary (D-060) — see
|
|
16890
|
+
// agentToolStartEventSchema.toolType above.
|
|
16902
16891
|
toolType: external_exports.enum([
|
|
16903
16892
|
"flow",
|
|
16904
16893
|
"mcp",
|
|
@@ -16907,7 +16896,9 @@ var toolStartEventSchema = external_exports.object({
|
|
|
16907
16896
|
"external",
|
|
16908
16897
|
"advisor",
|
|
16909
16898
|
"subagent",
|
|
16910
|
-
"local"
|
|
16899
|
+
"local",
|
|
16900
|
+
"data_connection",
|
|
16901
|
+
"search"
|
|
16911
16902
|
]),
|
|
16912
16903
|
stepId: external_exports.string().optional(),
|
|
16913
16904
|
parameters: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
|
|
@@ -18408,7 +18399,9 @@ var generateEmbeddingConfigSchema = external_exports.object({
|
|
|
18408
18399
|
textTemplate: external_exports.string().optional(),
|
|
18409
18400
|
batchSize: external_exports.number().int().positive().optional(),
|
|
18410
18401
|
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
18411
|
-
streamOutput: external_exports.boolean().optional()
|
|
18402
|
+
streamOutput: external_exports.boolean().optional(),
|
|
18403
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
18404
|
+
defaultValue: external_exports.any().optional()
|
|
18412
18405
|
});
|
|
18413
18406
|
var vectorSearchConfigSchema = external_exports.object({
|
|
18414
18407
|
query: external_exports.string().min(1, "Query is required"),
|
|
@@ -18429,7 +18422,9 @@ var vectorSearchConfigSchema = external_exports.object({
|
|
|
18429
18422
|
outputVariable: external_exports.string().min(1, "Output variable is required"),
|
|
18430
18423
|
streamOutput: external_exports.boolean().optional(),
|
|
18431
18424
|
includeEmbedding: external_exports.boolean().optional(),
|
|
18432
|
-
includeMetadata: external_exports.boolean().optional()
|
|
18425
|
+
includeMetadata: external_exports.boolean().optional(),
|
|
18426
|
+
errorHandling: contextErrorHandlingConfigSchema.optional(),
|
|
18427
|
+
defaultValue: external_exports.any().optional()
|
|
18433
18428
|
});
|
|
18434
18429
|
var toolCallConfigSchema = external_exports.object({
|
|
18435
18430
|
toolId: external_exports.string().min(1, "Tool ID is required"),
|
|
@@ -21101,28 +21096,28 @@ function formatPath(path20) {
|
|
|
21101
21096
|
return acc ? `${acc}.${key}` : key;
|
|
21102
21097
|
}, "");
|
|
21103
21098
|
}
|
|
21104
|
-
function compareIssuePath(a,
|
|
21105
|
-
if (!a && !
|
|
21099
|
+
function compareIssuePath(a, b) {
|
|
21100
|
+
if (!a && !b) return 0;
|
|
21106
21101
|
if (!a) return 1;
|
|
21107
|
-
if (!
|
|
21108
|
-
return a.localeCompare(
|
|
21102
|
+
if (!b) return -1;
|
|
21103
|
+
return a.localeCompare(b);
|
|
21109
21104
|
}
|
|
21110
21105
|
function sortIssues(issues) {
|
|
21111
|
-
return [...issues].sort((a,
|
|
21106
|
+
return [...issues].sort((a, b) => {
|
|
21112
21107
|
const aStepIndex = a.step?.index ?? Number.MAX_SAFE_INTEGER;
|
|
21113
|
-
const bStepIndex =
|
|
21108
|
+
const bStepIndex = b.step?.index ?? Number.MAX_SAFE_INTEGER;
|
|
21114
21109
|
if (aStepIndex !== bStepIndex) {
|
|
21115
21110
|
return aStepIndex - bStepIndex;
|
|
21116
21111
|
}
|
|
21117
|
-
const pathCompare = compareIssuePath(a.path,
|
|
21112
|
+
const pathCompare = compareIssuePath(a.path, b.path);
|
|
21118
21113
|
if (pathCompare !== 0) {
|
|
21119
21114
|
return pathCompare;
|
|
21120
21115
|
}
|
|
21121
|
-
const codeCompare = a.code.localeCompare(
|
|
21116
|
+
const codeCompare = a.code.localeCompare(b.code);
|
|
21122
21117
|
if (codeCompare !== 0) {
|
|
21123
21118
|
return codeCompare;
|
|
21124
21119
|
}
|
|
21125
|
-
return a.message.localeCompare(
|
|
21120
|
+
return a.message.localeCompare(b.message);
|
|
21126
21121
|
});
|
|
21127
21122
|
}
|
|
21128
21123
|
function addIssue(level, issue2, buckets) {
|
|
@@ -21481,6 +21476,36 @@ function validateVariableReferences(flowSteps, buckets, skipStepIndices, declare
|
|
|
21481
21476
|
}
|
|
21482
21477
|
}
|
|
21483
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
|
+
}
|
|
21484
21509
|
function promptResponseFormatIsNonJson(responseFormat) {
|
|
21485
21510
|
if (typeof responseFormat !== "string") return true;
|
|
21486
21511
|
return responseFormat.trim().toLowerCase() !== "json";
|
|
@@ -22377,6 +22402,7 @@ function collectFlowStructureIssues(flowData, deps, buckets) {
|
|
|
22377
22402
|
conditionalStepsExceedingDepth,
|
|
22378
22403
|
deps.declaredFlowInputs
|
|
22379
22404
|
);
|
|
22405
|
+
validateReservedIdentityVariables(flowData.flowSteps, buckets, conditionalStepsExceedingDepth);
|
|
22380
22406
|
validateUpsertRecordSourceShape(flowData.flowSteps, buckets);
|
|
22381
22407
|
validateStoreVectorSource(flowData.flowSteps, buckets, deps.declaredFlowInputs);
|
|
22382
22408
|
validateConditionExpressions(flowData.flowSteps, buckets, conditionalStepsExceedingDepth);
|
|
@@ -22434,6 +22460,12 @@ var AGENT_EXECUTION_STATUSES = [
|
|
|
22434
22460
|
"interrupted"
|
|
22435
22461
|
];
|
|
22436
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
|
+
});
|
|
22437
22469
|
var END_USER_USAGE_PERIODS = ["billing_period", "7d", "30d", "90d"];
|
|
22438
22470
|
var endUserUsageQuerySchema = external_exports.object({
|
|
22439
22471
|
productId: external_exports.string().min(1),
|
|
@@ -22717,15 +22749,16 @@ var runtimeArtifactManifestSchema = external_exports.object({
|
|
|
22717
22749
|
var KNOWN_FLOW_STEP_TYPES = new Set(FLOW_STEP_TYPES);
|
|
22718
22750
|
var API_INPROCESS_CAPABILITY_MATRIX = {
|
|
22719
22751
|
target: "api-inprocess",
|
|
22720
|
-
// Bumped 2026-
|
|
22721
|
-
// `
|
|
22722
|
-
//
|
|
22723
|
-
//
|
|
22752
|
+
// Bumped 2026-08-03: adds the §A1 `promptCodeModeTools` fold (a prompt step's
|
|
22753
|
+
// `config.tools.codeModeConfig` has no runtime flow-lane port). Carries
|
|
22754
|
+
// forward 2026-07-31: the `unmaterializedPromptToolRefs` fold. Carries
|
|
22755
|
+
// forward 2026-07-30: the IMPLICIT platform-default fallback candidate no
|
|
22756
|
+
// longer folds (see `implicitPlatformFallback` below). Carries forward
|
|
22724
22757
|
// 2026-07-29.4: api-hosted runtime fulfills managed fetch methods through
|
|
22725
22758
|
// ManagedFetchExecutor (the managed-fetch fact remains for attribution). The
|
|
22726
22759
|
// EXPLICIT Layer-2 fallback fold and the remaining parity-audit folds are
|
|
22727
22760
|
// unchanged.
|
|
22728
|
-
version: "2026-
|
|
22761
|
+
version: "2026-08-03.1",
|
|
22729
22762
|
unsupportedStepTypes: ["wait-until", "crawl"],
|
|
22730
22763
|
unsupportedFeatures: {
|
|
22731
22764
|
approvalSteps: true,
|
|
@@ -22756,6 +22789,15 @@ var API_INPROCESS_CAPABILITY_MATRIX = {
|
|
|
22756
22789
|
unsupportedTransformExecution: true,
|
|
22757
22790
|
promptMcpServers: true,
|
|
22758
22791
|
promptArtifacts: true,
|
|
22792
|
+
// §A1 parity-audit BRIDGE fold (2026-08-03): a PROMPT step's
|
|
22793
|
+
// `config.tools.codeModeConfig` with a non-empty `toolPool`. The
|
|
22794
|
+
// `transformDataCodeModeTools` fold above covers only a TRANSFORM-DATA
|
|
22795
|
+
// step's `config.tools` bag; a prompt step's code_mode synthesizer (the
|
|
22796
|
+
// legacy `buildSynthesizedCodeModeTool`) has no runtime flow-lane port, so
|
|
22797
|
+
// an unfolded prompt would run on the runtime lane with its code_mode tool
|
|
22798
|
+
// pool silently absent. Routes to legacy until the prompt-step code_mode
|
|
22799
|
+
// synthesizer is ported.
|
|
22800
|
+
promptCodeModeTools: true,
|
|
22759
22801
|
// SUPPORTED as of the fallback-chain port: the runtime flow engine now
|
|
22760
22802
|
// executes EXPLICIT author-configured Layer-2 chains and synthesizes their
|
|
22761
22803
|
// `usedFallback` / `fallbackModel` / `fallbackExecutions` attribution, so
|
|
@@ -23014,7 +23056,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
23014
23056
|
"verified": true,
|
|
23015
23057
|
"listPrice": "0",
|
|
23016
23058
|
"listPriceThousandths": 0,
|
|
23017
|
-
"catalogVersion": "2026-
|
|
23059
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
23018
23060
|
"params": [
|
|
23019
23061
|
{
|
|
23020
23062
|
"toolName": "inboxId",
|
|
@@ -23117,7 +23159,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
23117
23159
|
"verified": true,
|
|
23118
23160
|
"listPrice": "2",
|
|
23119
23161
|
"listPriceThousandths": 2e5,
|
|
23120
|
-
"catalogVersion": "2026-
|
|
23162
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
23121
23163
|
"params": [
|
|
23122
23164
|
{
|
|
23123
23165
|
"toolName": "username",
|
|
@@ -23249,7 +23291,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
23249
23291
|
"verified": true,
|
|
23250
23292
|
"listPrice": "0.01",
|
|
23251
23293
|
"listPriceThousandths": 1e3,
|
|
23252
|
-
"catalogVersion": "2026-
|
|
23294
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
23253
23295
|
"params": [
|
|
23254
23296
|
{
|
|
23255
23297
|
"toolName": "inboxId",
|
|
@@ -23440,7 +23482,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
23440
23482
|
"verified": true,
|
|
23441
23483
|
"listPrice": "0.01",
|
|
23442
23484
|
"listPriceThousandths": 1e3,
|
|
23443
|
-
"catalogVersion": "2026-
|
|
23485
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
23444
23486
|
"params": [
|
|
23445
23487
|
{
|
|
23446
23488
|
"toolName": "inboxId",
|
|
@@ -23635,7 +23677,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
23635
23677
|
"docsUrl": "https://www.andi.co/api",
|
|
23636
23678
|
"listPrice": "0.01",
|
|
23637
23679
|
"listPriceThousandths": 1e3,
|
|
23638
|
-
"catalogVersion": "2026-
|
|
23680
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
23639
23681
|
"params": [
|
|
23640
23682
|
{
|
|
23641
23683
|
"toolName": "q",
|
|
@@ -23843,7 +23885,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
23843
23885
|
"verified": true,
|
|
23844
23886
|
"listPrice": "0.01",
|
|
23845
23887
|
"listPriceThousandths": 1e3,
|
|
23846
|
-
"catalogVersion": "2026-
|
|
23888
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
23847
23889
|
"params": [
|
|
23848
23890
|
{
|
|
23849
23891
|
"toolName": "organizationLocations",
|
|
@@ -23928,7 +23970,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
23928
23970
|
"verified": true,
|
|
23929
23971
|
"listPrice": "0.01",
|
|
23930
23972
|
"listPriceThousandths": 1e3,
|
|
23931
|
-
"catalogVersion": "2026-
|
|
23973
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
23932
23974
|
"params": [
|
|
23933
23975
|
{
|
|
23934
23976
|
"toolName": "domain",
|
|
@@ -24001,7 +24043,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
24001
24043
|
"docsUrl": "https://apolloio.github.io/apollo-api-docs",
|
|
24002
24044
|
"listPrice": "0.01",
|
|
24003
24045
|
"listPriceThousandths": 1e3,
|
|
24004
|
-
"catalogVersion": "2026-
|
|
24046
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
24005
24047
|
"params": [
|
|
24006
24048
|
{
|
|
24007
24049
|
"toolName": "email",
|
|
@@ -24143,7 +24185,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
24143
24185
|
"verified": true,
|
|
24144
24186
|
"listPrice": "0",
|
|
24145
24187
|
"listPriceThousandths": 0,
|
|
24146
|
-
"catalogVersion": "2026-
|
|
24188
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
24147
24189
|
"params": [
|
|
24148
24190
|
{
|
|
24149
24191
|
"toolName": "personTitles",
|
|
@@ -24298,7 +24340,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
24298
24340
|
"verified": true,
|
|
24299
24341
|
"listPrice": "0.12",
|
|
24300
24342
|
"listPriceThousandths": 12e3,
|
|
24301
|
-
"catalogVersion": "2026-
|
|
24343
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
24302
24344
|
"params": [
|
|
24303
24345
|
{
|
|
24304
24346
|
"toolName": "id",
|
|
@@ -24465,11 +24507,15 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
24465
24507
|
},
|
|
24466
24508
|
"page": {
|
|
24467
24509
|
"type": "number",
|
|
24468
|
-
"description": "Page number"
|
|
24510
|
+
"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."
|
|
24469
24511
|
},
|
|
24470
24512
|
"perPage": {
|
|
24471
24513
|
"type": "number",
|
|
24472
24514
|
"description": "Results per page (max 100)"
|
|
24515
|
+
},
|
|
24516
|
+
"parentRequestId": {
|
|
24517
|
+
"type": "string",
|
|
24518
|
+
"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."
|
|
24473
24519
|
}
|
|
24474
24520
|
},
|
|
24475
24521
|
"required": [
|
|
@@ -24488,7 +24534,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
24488
24534
|
"verified": true,
|
|
24489
24535
|
"listPrice": "0.08",
|
|
24490
24536
|
"listPriceThousandths": 8e3,
|
|
24491
|
-
"catalogVersion": "2026-
|
|
24537
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
24492
24538
|
"params": [
|
|
24493
24539
|
{
|
|
24494
24540
|
"toolName": "id",
|
|
@@ -24532,7 +24578,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
24532
24578
|
"location": "query",
|
|
24533
24579
|
"type": "number",
|
|
24534
24580
|
"required": true,
|
|
24535
|
-
"description": "Page number"
|
|
24581
|
+
"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."
|
|
24536
24582
|
},
|
|
24537
24583
|
{
|
|
24538
24584
|
"toolName": "perPage",
|
|
@@ -24577,7 +24623,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
24577
24623
|
"verified": true,
|
|
24578
24624
|
"listPrice": "0.02",
|
|
24579
24625
|
"listPriceThousandths": 2e3,
|
|
24580
|
-
"catalogVersion": "2026-
|
|
24626
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
24581
24627
|
"params": [
|
|
24582
24628
|
{
|
|
24583
24629
|
"toolName": "dsl",
|
|
@@ -24628,7 +24674,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
24628
24674
|
"verified": true,
|
|
24629
24675
|
"listPrice": "0.2",
|
|
24630
24676
|
"listPriceThousandths": 2e4,
|
|
24631
|
-
"catalogVersion": "2026-
|
|
24677
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
24632
24678
|
"params": [
|
|
24633
24679
|
{
|
|
24634
24680
|
"toolName": "name",
|
|
@@ -24727,7 +24773,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
24727
24773
|
"verified": true,
|
|
24728
24774
|
"listPrice": "0.03",
|
|
24729
24775
|
"listPriceThousandths": 3e3,
|
|
24730
|
-
"catalogVersion": "2026-
|
|
24776
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
24731
24777
|
"params": [
|
|
24732
24778
|
{
|
|
24733
24779
|
"toolName": "id",
|
|
@@ -24864,7 +24910,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
24864
24910
|
"verified": true,
|
|
24865
24911
|
"listPrice": "0.02",
|
|
24866
24912
|
"listPriceThousandths": 2e3,
|
|
24867
|
-
"catalogVersion": "2026-
|
|
24913
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
24868
24914
|
"params": [
|
|
24869
24915
|
{
|
|
24870
24916
|
"toolName": "dsl",
|
|
@@ -24927,7 +24973,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
24927
24973
|
"docsUrl": "https://docs.brand.dev/api-reference/ai-data-extraction/query-website-data-using-ai",
|
|
24928
24974
|
"listPrice": "0.03",
|
|
24929
24975
|
"listPriceThousandths": 3e3,
|
|
24930
|
-
"catalogVersion": "2026-
|
|
24976
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
24931
24977
|
"params": [
|
|
24932
24978
|
{
|
|
24933
24979
|
"toolName": "domain",
|
|
@@ -25010,7 +25056,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25010
25056
|
"docsUrl": "https://docs.brand.dev/api-reference/retrieve-brand/retrieve-brand-data-by-domain",
|
|
25011
25057
|
"listPrice": "0.03",
|
|
25012
25058
|
"listPriceThousandths": 3e3,
|
|
25013
|
-
"catalogVersion": "2026-
|
|
25059
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
25014
25060
|
"params": [
|
|
25015
25061
|
{
|
|
25016
25062
|
"toolName": "domain",
|
|
@@ -25093,7 +25139,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25093
25139
|
"docsUrl": "https://docs.brand.dev/api-reference/retrieve-brand/retrieve-brand-data-by-company-name",
|
|
25094
25140
|
"listPrice": "0.03",
|
|
25095
25141
|
"listPriceThousandths": 3e3,
|
|
25096
|
-
"catalogVersion": "2026-
|
|
25142
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
25097
25143
|
"params": [
|
|
25098
25144
|
{
|
|
25099
25145
|
"toolName": "name",
|
|
@@ -25176,7 +25222,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25176
25222
|
"docsUrl": "https://docs.brand.dev/api-reference/screenshot-styleguide/take-screenshot-of-website",
|
|
25177
25223
|
"listPrice": "0.03",
|
|
25178
25224
|
"listPriceThousandths": 3e3,
|
|
25179
|
-
"catalogVersion": "2026-
|
|
25225
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
25180
25226
|
"params": [
|
|
25181
25227
|
{
|
|
25182
25228
|
"toolName": "domain",
|
|
@@ -25247,7 +25293,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25247
25293
|
"verified": true,
|
|
25248
25294
|
"listPrice": "0.03",
|
|
25249
25295
|
"listPriceThousandths": 3e3,
|
|
25250
|
-
"catalogVersion": "2026-
|
|
25296
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
25251
25297
|
"params": [
|
|
25252
25298
|
{
|
|
25253
25299
|
"toolName": "domains",
|
|
@@ -25295,7 +25341,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25295
25341
|
"verified": true,
|
|
25296
25342
|
"listPrice": "0.33",
|
|
25297
25343
|
"listPriceThousandths": 33e3,
|
|
25298
|
-
"catalogVersion": "2026-
|
|
25344
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
25299
25345
|
"params": [
|
|
25300
25346
|
{
|
|
25301
25347
|
"toolName": "email",
|
|
@@ -25388,7 +25434,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25388
25434
|
"verified": true,
|
|
25389
25435
|
"listPrice": "0.55",
|
|
25390
25436
|
"listPriceThousandths": 55e3,
|
|
25391
|
-
"catalogVersion": "2026-
|
|
25437
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
25392
25438
|
"params": [
|
|
25393
25439
|
{
|
|
25394
25440
|
"toolName": "fullName",
|
|
@@ -25515,7 +25561,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25515
25561
|
"verified": true,
|
|
25516
25562
|
"listPrice": "0.03",
|
|
25517
25563
|
"listPriceThousandths": 3e3,
|
|
25518
|
-
"catalogVersion": "2026-
|
|
25564
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
25519
25565
|
"params": [
|
|
25520
25566
|
{
|
|
25521
25567
|
"toolName": "profile",
|
|
@@ -25575,7 +25621,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25575
25621
|
"docsUrl": "https://docs.coresignal.com/company-api/clean-company-api",
|
|
25576
25622
|
"listPrice": "0.042",
|
|
25577
25623
|
"listPriceThousandths": 4200,
|
|
25578
|
-
"catalogVersion": "2026-
|
|
25624
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
25579
25625
|
"params": [
|
|
25580
25626
|
{
|
|
25581
25627
|
"toolName": "website",
|
|
@@ -25622,7 +25668,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25622
25668
|
"docsUrl": "https://docs.coresignal.com/company-api/multi-source-company-api",
|
|
25623
25669
|
"listPrice": "0.084",
|
|
25624
25670
|
"listPriceThousandths": 8400,
|
|
25625
|
-
"catalogVersion": "2026-
|
|
25671
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
25626
25672
|
"params": [
|
|
25627
25673
|
{
|
|
25628
25674
|
"toolName": "website",
|
|
@@ -25669,7 +25715,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25669
25715
|
"docsUrl": "https://docs.coresignal.com/employee-api/base-employee-api",
|
|
25670
25716
|
"listPrice": "0.042",
|
|
25671
25717
|
"listPriceThousandths": 4200,
|
|
25672
|
-
"catalogVersion": "2026-
|
|
25718
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
25673
25719
|
"params": [
|
|
25674
25720
|
{
|
|
25675
25721
|
"toolName": "profileUrl",
|
|
@@ -25704,7 +25750,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25704
25750
|
},
|
|
25705
25751
|
"cursor": {
|
|
25706
25752
|
"type": "string",
|
|
25707
|
-
"description": "Pagination cursor from previous response (next_cursor field)."
|
|
25753
|
+
"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."
|
|
25708
25754
|
},
|
|
25709
25755
|
"sorts": {
|
|
25710
25756
|
"type": "array",
|
|
@@ -25712,6 +25758,10 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25712
25758
|
"items": {
|
|
25713
25759
|
"type": "string"
|
|
25714
25760
|
}
|
|
25761
|
+
},
|
|
25762
|
+
"parentRequestId": {
|
|
25763
|
+
"type": "string",
|
|
25764
|
+
"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."
|
|
25715
25765
|
}
|
|
25716
25766
|
},
|
|
25717
25767
|
"required": [
|
|
@@ -25729,7 +25779,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25729
25779
|
"verified": true,
|
|
25730
25780
|
"listPrice": "0.22",
|
|
25731
25781
|
"listPriceThousandths": 22e3,
|
|
25732
|
-
"catalogVersion": "2026-
|
|
25782
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
25733
25783
|
"params": [
|
|
25734
25784
|
{
|
|
25735
25785
|
"toolName": "filters",
|
|
@@ -25753,7 +25803,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25753
25803
|
"location": "body",
|
|
25754
25804
|
"type": "string",
|
|
25755
25805
|
"required": false,
|
|
25756
|
-
"description": "Pagination cursor from previous response (next_cursor field)."
|
|
25806
|
+
"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."
|
|
25757
25807
|
},
|
|
25758
25808
|
{
|
|
25759
25809
|
"toolName": "sorts",
|
|
@@ -25816,7 +25866,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25816
25866
|
"verified": true,
|
|
25817
25867
|
"listPrice": "0.22",
|
|
25818
25868
|
"listPriceThousandths": 22e3,
|
|
25819
|
-
"catalogVersion": "2026-
|
|
25869
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
25820
25870
|
"params": [
|
|
25821
25871
|
{
|
|
25822
25872
|
"toolName": "queryCompanyName",
|
|
@@ -25911,7 +25961,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25911
25961
|
"verified": true,
|
|
25912
25962
|
"listPrice": "1.563",
|
|
25913
25963
|
"listPriceThousandths": 156300,
|
|
25914
|
-
"catalogVersion": "2026-
|
|
25964
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
25915
25965
|
"params": [
|
|
25916
25966
|
{
|
|
25917
25967
|
"toolName": "linkedinProfileUrl",
|
|
@@ -25970,11 +26020,15 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25970
26020
|
},
|
|
25971
26021
|
"cursor": {
|
|
25972
26022
|
"type": "string",
|
|
25973
|
-
"description": "Pagination cursor from previous response (next_cursor field)."
|
|
26023
|
+
"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."
|
|
25974
26024
|
},
|
|
25975
26025
|
"postProcessing": {
|
|
25976
26026
|
"type": "object",
|
|
25977
26027
|
"description": "Additional filtering options applied to search results."
|
|
26028
|
+
},
|
|
26029
|
+
"parentRequestId": {
|
|
26030
|
+
"type": "string",
|
|
26031
|
+
"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."
|
|
25978
26032
|
}
|
|
25979
26033
|
},
|
|
25980
26034
|
"required": [
|
|
@@ -25992,7 +26046,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
25992
26046
|
"verified": true,
|
|
25993
26047
|
"listPrice": "0.66",
|
|
25994
26048
|
"listPriceThousandths": 66e3,
|
|
25995
|
-
"catalogVersion": "2026-
|
|
26049
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
25996
26050
|
"params": [
|
|
25997
26051
|
{
|
|
25998
26052
|
"toolName": "filters",
|
|
@@ -26016,7 +26070,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
26016
26070
|
"location": "body",
|
|
26017
26071
|
"type": "string",
|
|
26018
26072
|
"required": false,
|
|
26019
|
-
"description": "Pagination cursor from previous response (next_cursor field)."
|
|
26073
|
+
"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."
|
|
26020
26074
|
},
|
|
26021
26075
|
{
|
|
26022
26076
|
"toolName": "postProcessing",
|
|
@@ -26119,7 +26173,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
26119
26173
|
"docsUrl": "https://docs.didit.me/reference/aml-screening-standalone-api",
|
|
26120
26174
|
"listPrice": "0.36",
|
|
26121
26175
|
"listPriceThousandths": 36e3,
|
|
26122
|
-
"catalogVersion": "2026-
|
|
26176
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
26123
26177
|
"params": [
|
|
26124
26178
|
{
|
|
26125
26179
|
"toolName": "fullName",
|
|
@@ -26316,7 +26370,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
26316
26370
|
"docsUrl": "https://docs.didit.me/reference/database-validation-api",
|
|
26317
26371
|
"listPrice": "0.31",
|
|
26318
26372
|
"listPriceThousandths": 31e3,
|
|
26319
|
-
"catalogVersion": "2026-
|
|
26373
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
26320
26374
|
"params": [
|
|
26321
26375
|
{
|
|
26322
26376
|
"toolName": "issuingState",
|
|
@@ -26447,7 +26501,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
26447
26501
|
"docsUrl": "https://docs.didit.me/reference/send-email-verification-code-api",
|
|
26448
26502
|
"listPrice": "0.04",
|
|
26449
26503
|
"listPriceThousandths": 4e3,
|
|
26450
|
-
"catalogVersion": "2026-
|
|
26504
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
26451
26505
|
"params": [
|
|
26452
26506
|
{
|
|
26453
26507
|
"toolName": "email",
|
|
@@ -26530,7 +26584,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
26530
26584
|
"docsUrl": "https://docs.didit.me/reference/send-phone-verification-code-api",
|
|
26531
26585
|
"listPrice": "0.3",
|
|
26532
26586
|
"listPriceThousandths": 3e4,
|
|
26533
|
-
"catalogVersion": "2026-
|
|
26587
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
26534
26588
|
"params": [
|
|
26535
26589
|
{
|
|
26536
26590
|
"toolName": "phoneNumber",
|
|
@@ -26617,7 +26671,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
26617
26671
|
"docsUrl": "https://docs.domeapi.io/api-reference/endpoint/get-binance-crypto-prices",
|
|
26618
26672
|
"listPrice": "0.01",
|
|
26619
26673
|
"listPriceThousandths": 1e3,
|
|
26620
|
-
"catalogVersion": "2026-
|
|
26674
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
26621
26675
|
"params": [
|
|
26622
26676
|
{
|
|
26623
26677
|
"toolName": "currency",
|
|
@@ -26724,7 +26778,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
26724
26778
|
"docsUrl": "https://docs.domeapi.io/api-reference/endpoint/get-kalshi-markets",
|
|
26725
26779
|
"listPrice": "0.01",
|
|
26726
26780
|
"listPriceThousandths": 1e3,
|
|
26727
|
-
"catalogVersion": "2026-
|
|
26781
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
26728
26782
|
"params": [
|
|
26729
26783
|
{
|
|
26730
26784
|
"toolName": "marketTicker",
|
|
@@ -26869,7 +26923,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
26869
26923
|
"docsUrl": "https://docs.domeapi.io/api-reference/endpoint/get-markets",
|
|
26870
26924
|
"listPrice": "0.01",
|
|
26871
26925
|
"listPriceThousandths": 1e3,
|
|
26872
|
-
"catalogVersion": "2026-
|
|
26926
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
26873
26927
|
"params": [
|
|
26874
26928
|
{
|
|
26875
26929
|
"toolName": "marketSlug",
|
|
@@ -27004,7 +27058,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27004
27058
|
"docsUrl": "https://exa.ai/docs/reference/answer",
|
|
27005
27059
|
"listPrice": "0.01",
|
|
27006
27060
|
"listPriceThousandths": 1e3,
|
|
27007
|
-
"catalogVersion": "2026-
|
|
27061
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
27008
27062
|
"params": [
|
|
27009
27063
|
{
|
|
27010
27064
|
"toolName": "query",
|
|
@@ -27113,7 +27167,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27113
27167
|
"docsUrl": "https://exa.ai/docs/reference/get-contents",
|
|
27114
27168
|
"listPrice": "0.01",
|
|
27115
27169
|
"listPriceThousandths": 1e3,
|
|
27116
|
-
"catalogVersion": "2026-
|
|
27170
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
27117
27171
|
"params": [
|
|
27118
27172
|
{
|
|
27119
27173
|
"toolName": "urls",
|
|
@@ -27318,7 +27372,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27318
27372
|
"docsUrl": "https://exa.ai/docs/reference/search",
|
|
27319
27373
|
"listPrice": "0.01",
|
|
27320
27374
|
"listPriceThousandths": 1e3,
|
|
27321
|
-
"catalogVersion": "2026-
|
|
27375
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
27322
27376
|
"params": [
|
|
27323
27377
|
{
|
|
27324
27378
|
"toolName": "query",
|
|
@@ -27458,6 +27512,658 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27458
27512
|
]
|
|
27459
27513
|
}
|
|
27460
27514
|
},
|
|
27515
|
+
{
|
|
27516
|
+
"id": "orthogonal:fantastic-jobs:active_ats",
|
|
27517
|
+
"idPrefix": "platform",
|
|
27518
|
+
"name": "Fantastic Jobs ATS Feed",
|
|
27519
|
+
"description": "Get new job postings from 54 ATS platforms (company career pages), refreshed hourly, with title, location, and other filters via Fantastic Jobs.",
|
|
27520
|
+
"category": "knowledge_retrieval",
|
|
27521
|
+
"providers": [
|
|
27522
|
+
"multi"
|
|
27523
|
+
],
|
|
27524
|
+
"parametersSchema": {
|
|
27525
|
+
"type": "object",
|
|
27526
|
+
"properties": {
|
|
27527
|
+
"timeFrame": {
|
|
27528
|
+
"type": "string",
|
|
27529
|
+
"description": "Required. Time window: 1h, 24h, 7d, or 6m"
|
|
27530
|
+
},
|
|
27531
|
+
"limit": {
|
|
27532
|
+
"type": "number",
|
|
27533
|
+
"description": "Results per page (1-100, default 100)"
|
|
27534
|
+
},
|
|
27535
|
+
"offset": {
|
|
27536
|
+
"type": "string",
|
|
27537
|
+
"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."
|
|
27538
|
+
},
|
|
27539
|
+
"cursor": {
|
|
27540
|
+
"type": "string",
|
|
27541
|
+
"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."
|
|
27542
|
+
},
|
|
27543
|
+
"title": {
|
|
27544
|
+
"type": "string",
|
|
27545
|
+
"description": "Natural-language title search. Quotes for exact phrase, OR for alternatives"
|
|
27546
|
+
},
|
|
27547
|
+
"location": {
|
|
27548
|
+
"type": "string",
|
|
27549
|
+
"description": "Natural-language location search. Use full country names"
|
|
27550
|
+
},
|
|
27551
|
+
"description": {
|
|
27552
|
+
"type": "string",
|
|
27553
|
+
"description": "Search on title and description combined"
|
|
27554
|
+
},
|
|
27555
|
+
"descriptionFormat": {
|
|
27556
|
+
"type": "string",
|
|
27557
|
+
"description": "text or html. Omit to exclude description field"
|
|
27558
|
+
},
|
|
27559
|
+
"source": {
|
|
27560
|
+
"type": "string",
|
|
27561
|
+
"description": "Comma-separated ATS sources (greenhouse, lever.co, workday, etc.)"
|
|
27562
|
+
},
|
|
27563
|
+
"organization": {
|
|
27564
|
+
"type": "string",
|
|
27565
|
+
"description": "Filter by exact organization name(s), comma-separated"
|
|
27566
|
+
},
|
|
27567
|
+
"organizationSlug": {
|
|
27568
|
+
"type": "string",
|
|
27569
|
+
"description": "Filter by LinkedIn org slug(s), comma-separated"
|
|
27570
|
+
},
|
|
27571
|
+
"organizationIndustry": {
|
|
27572
|
+
"type": "string",
|
|
27573
|
+
"description": "Filter by exact LinkedIn industry name"
|
|
27574
|
+
},
|
|
27575
|
+
"domain": {
|
|
27576
|
+
"type": "string",
|
|
27577
|
+
"description": "Filter by employer domain(s)"
|
|
27578
|
+
},
|
|
27579
|
+
"includeBasicOrganizationDetails": {
|
|
27580
|
+
"type": "string",
|
|
27581
|
+
"description": "Set true to include inline LinkedIn company fields"
|
|
27582
|
+
},
|
|
27583
|
+
"aiExperienceLevel": {
|
|
27584
|
+
"type": "string",
|
|
27585
|
+
"description": "AI-derived: 0-2, 2-5, 5-10, 10+"
|
|
27586
|
+
},
|
|
27587
|
+
"aiWorkArrangement": {
|
|
27588
|
+
"type": "string",
|
|
27589
|
+
"description": "AI-derived: On-site, Hybrid, Remote OK, Remote Solely"
|
|
27590
|
+
},
|
|
27591
|
+
"aiEmploymentType": {
|
|
27592
|
+
"type": "string",
|
|
27593
|
+
"description": "AI-derived: FULL_TIME, PART_TIME, CONTRACTOR, INTERN, etc."
|
|
27594
|
+
},
|
|
27595
|
+
"aiTaxonomiesAPrimary": {
|
|
27596
|
+
"type": "string",
|
|
27597
|
+
"description": "Match primary AI taxonomy only"
|
|
27598
|
+
},
|
|
27599
|
+
"aiTaxonomiesA": {
|
|
27600
|
+
"type": "string",
|
|
27601
|
+
"description": "Match any assigned AI taxonomy"
|
|
27602
|
+
},
|
|
27603
|
+
"hasSalary": {
|
|
27604
|
+
"type": "string",
|
|
27605
|
+
"description": "Set true for jobs with salary info only"
|
|
27606
|
+
},
|
|
27607
|
+
"datePostedGte": {
|
|
27608
|
+
"type": "string",
|
|
27609
|
+
"description": "Jobs posted on or after this date (ISO 8601)"
|
|
27610
|
+
},
|
|
27611
|
+
"datePostedLt": {
|
|
27612
|
+
"type": "string",
|
|
27613
|
+
"description": "Jobs posted before this date (ISO 8601)"
|
|
27614
|
+
},
|
|
27615
|
+
"organizationHeadcountGte": {
|
|
27616
|
+
"type": "string",
|
|
27617
|
+
"description": "Min LinkedIn employee count"
|
|
27618
|
+
},
|
|
27619
|
+
"organizationHeadcountLt": {
|
|
27620
|
+
"type": "string",
|
|
27621
|
+
"description": "Max LinkedIn employee count"
|
|
27622
|
+
},
|
|
27623
|
+
"organizationAgency": {
|
|
27624
|
+
"type": "string",
|
|
27625
|
+
"description": "only or exclude recruitment agencies"
|
|
27626
|
+
},
|
|
27627
|
+
"aiVisaSponsorship": {
|
|
27628
|
+
"type": "string",
|
|
27629
|
+
"description": "only or exclude visa sponsorship listings"
|
|
27630
|
+
},
|
|
27631
|
+
"id": {
|
|
27632
|
+
"type": "string",
|
|
27633
|
+
"description": "Filter by internal Fantastic.jobs ID(s)"
|
|
27634
|
+
},
|
|
27635
|
+
"parentRequestId": {
|
|
27636
|
+
"type": "string",
|
|
27637
|
+
"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."
|
|
27638
|
+
}
|
|
27639
|
+
},
|
|
27640
|
+
"required": [
|
|
27641
|
+
"limit",
|
|
27642
|
+
"timeFrame"
|
|
27643
|
+
]
|
|
27644
|
+
},
|
|
27645
|
+
"requiresApiKey": false,
|
|
27646
|
+
"executionHint": "platform",
|
|
27647
|
+
"platformKeySupport": true,
|
|
27648
|
+
"managedExecution": {
|
|
27649
|
+
"kind": "orthogonal",
|
|
27650
|
+
"apiSlug": "fantastic-jobs",
|
|
27651
|
+
"pathTemplate": "/v1/active-ats",
|
|
27652
|
+
"method": "GET",
|
|
27653
|
+
"verified": true,
|
|
27654
|
+
"listPrice": "0.4",
|
|
27655
|
+
"listPriceThousandths": 4e4,
|
|
27656
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
27657
|
+
"params": [
|
|
27658
|
+
{
|
|
27659
|
+
"toolName": "timeFrame",
|
|
27660
|
+
"wireName": "time_frame",
|
|
27661
|
+
"location": "query",
|
|
27662
|
+
"type": "string",
|
|
27663
|
+
"required": true,
|
|
27664
|
+
"description": "Required. Time window: 1h, 24h, 7d, or 6m"
|
|
27665
|
+
},
|
|
27666
|
+
{
|
|
27667
|
+
"toolName": "limit",
|
|
27668
|
+
"wireName": "limit",
|
|
27669
|
+
"location": "query",
|
|
27670
|
+
"type": "number",
|
|
27671
|
+
"required": true,
|
|
27672
|
+
"description": "Results per page (1-100, default 100)"
|
|
27673
|
+
},
|
|
27674
|
+
{
|
|
27675
|
+
"toolName": "offset",
|
|
27676
|
+
"wireName": "offset",
|
|
27677
|
+
"location": "query",
|
|
27678
|
+
"type": "string",
|
|
27679
|
+
"required": false,
|
|
27680
|
+
"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."
|
|
27681
|
+
},
|
|
27682
|
+
{
|
|
27683
|
+
"toolName": "cursor",
|
|
27684
|
+
"wireName": "cursor",
|
|
27685
|
+
"location": "query",
|
|
27686
|
+
"type": "string",
|
|
27687
|
+
"required": false,
|
|
27688
|
+
"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."
|
|
27689
|
+
},
|
|
27690
|
+
{
|
|
27691
|
+
"toolName": "title",
|
|
27692
|
+
"wireName": "title",
|
|
27693
|
+
"location": "query",
|
|
27694
|
+
"type": "string",
|
|
27695
|
+
"required": false,
|
|
27696
|
+
"description": "Natural-language title search. Quotes for exact phrase, OR for alternatives"
|
|
27697
|
+
},
|
|
27698
|
+
{
|
|
27699
|
+
"toolName": "location",
|
|
27700
|
+
"wireName": "location",
|
|
27701
|
+
"location": "query",
|
|
27702
|
+
"type": "string",
|
|
27703
|
+
"required": false,
|
|
27704
|
+
"description": "Natural-language location search. Use full country names"
|
|
27705
|
+
},
|
|
27706
|
+
{
|
|
27707
|
+
"toolName": "description",
|
|
27708
|
+
"wireName": "description",
|
|
27709
|
+
"location": "query",
|
|
27710
|
+
"type": "string",
|
|
27711
|
+
"required": false,
|
|
27712
|
+
"description": "Search on title and description combined"
|
|
27713
|
+
},
|
|
27714
|
+
{
|
|
27715
|
+
"toolName": "descriptionFormat",
|
|
27716
|
+
"wireName": "description_format",
|
|
27717
|
+
"location": "query",
|
|
27718
|
+
"type": "string",
|
|
27719
|
+
"required": false,
|
|
27720
|
+
"description": "text or html. Omit to exclude description field"
|
|
27721
|
+
},
|
|
27722
|
+
{
|
|
27723
|
+
"toolName": "source",
|
|
27724
|
+
"wireName": "source",
|
|
27725
|
+
"location": "query",
|
|
27726
|
+
"type": "string",
|
|
27727
|
+
"required": false,
|
|
27728
|
+
"description": "Comma-separated ATS sources (greenhouse, lever.co, workday, etc.)"
|
|
27729
|
+
},
|
|
27730
|
+
{
|
|
27731
|
+
"toolName": "organization",
|
|
27732
|
+
"wireName": "organization",
|
|
27733
|
+
"location": "query",
|
|
27734
|
+
"type": "string",
|
|
27735
|
+
"required": false,
|
|
27736
|
+
"description": "Filter by exact organization name(s), comma-separated"
|
|
27737
|
+
},
|
|
27738
|
+
{
|
|
27739
|
+
"toolName": "organizationSlug",
|
|
27740
|
+
"wireName": "organization_slug",
|
|
27741
|
+
"location": "query",
|
|
27742
|
+
"type": "string",
|
|
27743
|
+
"required": false,
|
|
27744
|
+
"description": "Filter by LinkedIn org slug(s), comma-separated"
|
|
27745
|
+
},
|
|
27746
|
+
{
|
|
27747
|
+
"toolName": "organizationIndustry",
|
|
27748
|
+
"wireName": "organization_industry",
|
|
27749
|
+
"location": "query",
|
|
27750
|
+
"type": "string",
|
|
27751
|
+
"required": false,
|
|
27752
|
+
"description": "Filter by exact LinkedIn industry name"
|
|
27753
|
+
},
|
|
27754
|
+
{
|
|
27755
|
+
"toolName": "domain",
|
|
27756
|
+
"wireName": "domain",
|
|
27757
|
+
"location": "query",
|
|
27758
|
+
"type": "string",
|
|
27759
|
+
"required": false,
|
|
27760
|
+
"description": "Filter by employer domain(s)"
|
|
27761
|
+
},
|
|
27762
|
+
{
|
|
27763
|
+
"toolName": "includeBasicOrganizationDetails",
|
|
27764
|
+
"wireName": "include_basic_organization_details",
|
|
27765
|
+
"location": "query",
|
|
27766
|
+
"type": "string",
|
|
27767
|
+
"required": false,
|
|
27768
|
+
"description": "Set true to include inline LinkedIn company fields"
|
|
27769
|
+
},
|
|
27770
|
+
{
|
|
27771
|
+
"toolName": "aiExperienceLevel",
|
|
27772
|
+
"wireName": "ai_experience_level",
|
|
27773
|
+
"location": "query",
|
|
27774
|
+
"type": "string",
|
|
27775
|
+
"required": false,
|
|
27776
|
+
"description": "AI-derived: 0-2, 2-5, 5-10, 10+"
|
|
27777
|
+
},
|
|
27778
|
+
{
|
|
27779
|
+
"toolName": "aiWorkArrangement",
|
|
27780
|
+
"wireName": "ai_work_arrangement",
|
|
27781
|
+
"location": "query",
|
|
27782
|
+
"type": "string",
|
|
27783
|
+
"required": false,
|
|
27784
|
+
"description": "AI-derived: On-site, Hybrid, Remote OK, Remote Solely"
|
|
27785
|
+
},
|
|
27786
|
+
{
|
|
27787
|
+
"toolName": "aiEmploymentType",
|
|
27788
|
+
"wireName": "ai_employment_type",
|
|
27789
|
+
"location": "query",
|
|
27790
|
+
"type": "string",
|
|
27791
|
+
"required": false,
|
|
27792
|
+
"description": "AI-derived: FULL_TIME, PART_TIME, CONTRACTOR, INTERN, etc."
|
|
27793
|
+
},
|
|
27794
|
+
{
|
|
27795
|
+
"toolName": "aiTaxonomiesAPrimary",
|
|
27796
|
+
"wireName": "ai_taxonomies_a_primary",
|
|
27797
|
+
"location": "query",
|
|
27798
|
+
"type": "string",
|
|
27799
|
+
"required": false,
|
|
27800
|
+
"description": "Match primary AI taxonomy only"
|
|
27801
|
+
},
|
|
27802
|
+
{
|
|
27803
|
+
"toolName": "aiTaxonomiesA",
|
|
27804
|
+
"wireName": "ai_taxonomies_a",
|
|
27805
|
+
"location": "query",
|
|
27806
|
+
"type": "string",
|
|
27807
|
+
"required": false,
|
|
27808
|
+
"description": "Match any assigned AI taxonomy"
|
|
27809
|
+
},
|
|
27810
|
+
{
|
|
27811
|
+
"toolName": "hasSalary",
|
|
27812
|
+
"wireName": "has_salary",
|
|
27813
|
+
"location": "query",
|
|
27814
|
+
"type": "string",
|
|
27815
|
+
"required": false,
|
|
27816
|
+
"description": "Set true for jobs with salary info only"
|
|
27817
|
+
},
|
|
27818
|
+
{
|
|
27819
|
+
"toolName": "datePostedGte",
|
|
27820
|
+
"wireName": "date_posted_gte",
|
|
27821
|
+
"location": "query",
|
|
27822
|
+
"type": "string",
|
|
27823
|
+
"required": false,
|
|
27824
|
+
"description": "Jobs posted on or after this date (ISO 8601)"
|
|
27825
|
+
},
|
|
27826
|
+
{
|
|
27827
|
+
"toolName": "datePostedLt",
|
|
27828
|
+
"wireName": "date_posted_lt",
|
|
27829
|
+
"location": "query",
|
|
27830
|
+
"type": "string",
|
|
27831
|
+
"required": false,
|
|
27832
|
+
"description": "Jobs posted before this date (ISO 8601)"
|
|
27833
|
+
},
|
|
27834
|
+
{
|
|
27835
|
+
"toolName": "organizationHeadcountGte",
|
|
27836
|
+
"wireName": "organization_headcount_gte",
|
|
27837
|
+
"location": "query",
|
|
27838
|
+
"type": "string",
|
|
27839
|
+
"required": false,
|
|
27840
|
+
"description": "Min LinkedIn employee count"
|
|
27841
|
+
},
|
|
27842
|
+
{
|
|
27843
|
+
"toolName": "organizationHeadcountLt",
|
|
27844
|
+
"wireName": "organization_headcount_lt",
|
|
27845
|
+
"location": "query",
|
|
27846
|
+
"type": "string",
|
|
27847
|
+
"required": false,
|
|
27848
|
+
"description": "Max LinkedIn employee count"
|
|
27849
|
+
},
|
|
27850
|
+
{
|
|
27851
|
+
"toolName": "organizationAgency",
|
|
27852
|
+
"wireName": "organization_agency",
|
|
27853
|
+
"location": "query",
|
|
27854
|
+
"type": "string",
|
|
27855
|
+
"required": false,
|
|
27856
|
+
"description": "only or exclude recruitment agencies"
|
|
27857
|
+
},
|
|
27858
|
+
{
|
|
27859
|
+
"toolName": "aiVisaSponsorship",
|
|
27860
|
+
"wireName": "ai_visa_sponsorship",
|
|
27861
|
+
"location": "query",
|
|
27862
|
+
"type": "string",
|
|
27863
|
+
"required": false,
|
|
27864
|
+
"description": "only or exclude visa sponsorship listings"
|
|
27865
|
+
},
|
|
27866
|
+
{
|
|
27867
|
+
"toolName": "id",
|
|
27868
|
+
"wireName": "id",
|
|
27869
|
+
"location": "query",
|
|
27870
|
+
"type": "string",
|
|
27871
|
+
"required": false,
|
|
27872
|
+
"description": "Filter by internal Fantastic.jobs ID(s)"
|
|
27873
|
+
}
|
|
27874
|
+
]
|
|
27875
|
+
}
|
|
27876
|
+
},
|
|
27877
|
+
{
|
|
27878
|
+
"id": "orthogonal:fantastic-jobs:active_job_boards",
|
|
27879
|
+
"idPrefix": "platform",
|
|
27880
|
+
"name": "Fantastic Jobs Job Board Feed",
|
|
27881
|
+
"description": "Get new job postings from LinkedIn, Wellfound, and Y Combinator job boards via Fantastic Jobs.",
|
|
27882
|
+
"category": "knowledge_retrieval",
|
|
27883
|
+
"providers": [
|
|
27884
|
+
"multi"
|
|
27885
|
+
],
|
|
27886
|
+
"parametersSchema": {
|
|
27887
|
+
"type": "object",
|
|
27888
|
+
"properties": {
|
|
27889
|
+
"timeFrame": {
|
|
27890
|
+
"type": "string",
|
|
27891
|
+
"description": "Required. Time window: 1h, 24h, 7d, or 6m"
|
|
27892
|
+
},
|
|
27893
|
+
"limit": {
|
|
27894
|
+
"type": "number",
|
|
27895
|
+
"description": "Results per page (1-100, default 100)"
|
|
27896
|
+
},
|
|
27897
|
+
"offset": {
|
|
27898
|
+
"type": "string",
|
|
27899
|
+
"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."
|
|
27900
|
+
},
|
|
27901
|
+
"cursor": {
|
|
27902
|
+
"type": "string",
|
|
27903
|
+
"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."
|
|
27904
|
+
},
|
|
27905
|
+
"title": {
|
|
27906
|
+
"type": "string",
|
|
27907
|
+
"description": "Natural-language title search"
|
|
27908
|
+
},
|
|
27909
|
+
"location": {
|
|
27910
|
+
"type": "string",
|
|
27911
|
+
"description": "Natural-language location search"
|
|
27912
|
+
},
|
|
27913
|
+
"description": {
|
|
27914
|
+
"type": "string",
|
|
27915
|
+
"description": "Search on title and description combined"
|
|
27916
|
+
},
|
|
27917
|
+
"descriptionFormat": {
|
|
27918
|
+
"type": "string",
|
|
27919
|
+
"description": "text or html"
|
|
27920
|
+
},
|
|
27921
|
+
"source": {
|
|
27922
|
+
"type": "string",
|
|
27923
|
+
"description": "linkedin, wellfound, ycombinator"
|
|
27924
|
+
},
|
|
27925
|
+
"organization": {
|
|
27926
|
+
"type": "string",
|
|
27927
|
+
"description": "Filter by exact org name(s)"
|
|
27928
|
+
},
|
|
27929
|
+
"organizationSlug": {
|
|
27930
|
+
"type": "string",
|
|
27931
|
+
"description": "Filter by LinkedIn org slug(s)"
|
|
27932
|
+
},
|
|
27933
|
+
"organizationIndustry": {
|
|
27934
|
+
"type": "string",
|
|
27935
|
+
"description": "Filter by LinkedIn industry"
|
|
27936
|
+
},
|
|
27937
|
+
"aiExperienceLevel": {
|
|
27938
|
+
"type": "string",
|
|
27939
|
+
"description": "AI-derived: 0-2, 2-5, 5-10, 10+"
|
|
27940
|
+
},
|
|
27941
|
+
"aiWorkArrangement": {
|
|
27942
|
+
"type": "string",
|
|
27943
|
+
"description": "AI-derived: On-site, Hybrid, Remote OK, Remote Solely"
|
|
27944
|
+
},
|
|
27945
|
+
"aiEmploymentType": {
|
|
27946
|
+
"type": "string",
|
|
27947
|
+
"description": "AI-derived: FULL_TIME, PART_TIME, CONTRACTOR, etc."
|
|
27948
|
+
},
|
|
27949
|
+
"hasSalary": {
|
|
27950
|
+
"type": "string",
|
|
27951
|
+
"description": "Set true for jobs with salary info only"
|
|
27952
|
+
},
|
|
27953
|
+
"excludeAtsDuplicate": {
|
|
27954
|
+
"type": "string",
|
|
27955
|
+
"description": "Set true to drop LinkedIn jobs matching ATS postings"
|
|
27956
|
+
},
|
|
27957
|
+
"excludeRecruiterFields": {
|
|
27958
|
+
"type": "string",
|
|
27959
|
+
"description": "Set true to exclude recruiter fields"
|
|
27960
|
+
},
|
|
27961
|
+
"seniority": {
|
|
27962
|
+
"type": "string",
|
|
27963
|
+
"description": "LinkedIn seniority: Entry level, Mid-Senior level, Director, etc."
|
|
27964
|
+
},
|
|
27965
|
+
"linkedinId": {
|
|
27966
|
+
"type": "string",
|
|
27967
|
+
"description": "Filter by LinkedIn job posting ID(s)"
|
|
27968
|
+
},
|
|
27969
|
+
"id": {
|
|
27970
|
+
"type": "string",
|
|
27971
|
+
"description": "Filter by internal Fantastic.jobs ID(s)"
|
|
27972
|
+
},
|
|
27973
|
+
"parentRequestId": {
|
|
27974
|
+
"type": "string",
|
|
27975
|
+
"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."
|
|
27976
|
+
}
|
|
27977
|
+
},
|
|
27978
|
+
"required": [
|
|
27979
|
+
"limit",
|
|
27980
|
+
"timeFrame"
|
|
27981
|
+
]
|
|
27982
|
+
},
|
|
27983
|
+
"requiresApiKey": false,
|
|
27984
|
+
"executionHint": "platform",
|
|
27985
|
+
"platformKeySupport": true,
|
|
27986
|
+
"managedExecution": {
|
|
27987
|
+
"kind": "orthogonal",
|
|
27988
|
+
"apiSlug": "fantastic-jobs",
|
|
27989
|
+
"pathTemplate": "/v1/active-jb",
|
|
27990
|
+
"method": "GET",
|
|
27991
|
+
"verified": true,
|
|
27992
|
+
"listPrice": "0.4",
|
|
27993
|
+
"listPriceThousandths": 4e4,
|
|
27994
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
27995
|
+
"params": [
|
|
27996
|
+
{
|
|
27997
|
+
"toolName": "timeFrame",
|
|
27998
|
+
"wireName": "time_frame",
|
|
27999
|
+
"location": "query",
|
|
28000
|
+
"type": "string",
|
|
28001
|
+
"required": true,
|
|
28002
|
+
"description": "Required. Time window: 1h, 24h, 7d, or 6m"
|
|
28003
|
+
},
|
|
28004
|
+
{
|
|
28005
|
+
"toolName": "limit",
|
|
28006
|
+
"wireName": "limit",
|
|
28007
|
+
"location": "query",
|
|
28008
|
+
"type": "number",
|
|
28009
|
+
"required": true,
|
|
28010
|
+
"description": "Results per page (1-100, default 100)"
|
|
28011
|
+
},
|
|
28012
|
+
{
|
|
28013
|
+
"toolName": "offset",
|
|
28014
|
+
"wireName": "offset",
|
|
28015
|
+
"location": "query",
|
|
28016
|
+
"type": "string",
|
|
28017
|
+
"required": false,
|
|
28018
|
+
"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."
|
|
28019
|
+
},
|
|
28020
|
+
{
|
|
28021
|
+
"toolName": "cursor",
|
|
28022
|
+
"wireName": "cursor",
|
|
28023
|
+
"location": "query",
|
|
28024
|
+
"type": "string",
|
|
28025
|
+
"required": false,
|
|
28026
|
+
"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."
|
|
28027
|
+
},
|
|
28028
|
+
{
|
|
28029
|
+
"toolName": "title",
|
|
28030
|
+
"wireName": "title",
|
|
28031
|
+
"location": "query",
|
|
28032
|
+
"type": "string",
|
|
28033
|
+
"required": false,
|
|
28034
|
+
"description": "Natural-language title search"
|
|
28035
|
+
},
|
|
28036
|
+
{
|
|
28037
|
+
"toolName": "location",
|
|
28038
|
+
"wireName": "location",
|
|
28039
|
+
"location": "query",
|
|
28040
|
+
"type": "string",
|
|
28041
|
+
"required": false,
|
|
28042
|
+
"description": "Natural-language location search"
|
|
28043
|
+
},
|
|
28044
|
+
{
|
|
28045
|
+
"toolName": "description",
|
|
28046
|
+
"wireName": "description",
|
|
28047
|
+
"location": "query",
|
|
28048
|
+
"type": "string",
|
|
28049
|
+
"required": false,
|
|
28050
|
+
"description": "Search on title and description combined"
|
|
28051
|
+
},
|
|
28052
|
+
{
|
|
28053
|
+
"toolName": "descriptionFormat",
|
|
28054
|
+
"wireName": "description_format",
|
|
28055
|
+
"location": "query",
|
|
28056
|
+
"type": "string",
|
|
28057
|
+
"required": false,
|
|
28058
|
+
"description": "text or html"
|
|
28059
|
+
},
|
|
28060
|
+
{
|
|
28061
|
+
"toolName": "source",
|
|
28062
|
+
"wireName": "source",
|
|
28063
|
+
"location": "query",
|
|
28064
|
+
"type": "string",
|
|
28065
|
+
"required": false,
|
|
28066
|
+
"description": "linkedin, wellfound, ycombinator"
|
|
28067
|
+
},
|
|
28068
|
+
{
|
|
28069
|
+
"toolName": "organization",
|
|
28070
|
+
"wireName": "organization",
|
|
28071
|
+
"location": "query",
|
|
28072
|
+
"type": "string",
|
|
28073
|
+
"required": false,
|
|
28074
|
+
"description": "Filter by exact org name(s)"
|
|
28075
|
+
},
|
|
28076
|
+
{
|
|
28077
|
+
"toolName": "organizationSlug",
|
|
28078
|
+
"wireName": "organization_slug",
|
|
28079
|
+
"location": "query",
|
|
28080
|
+
"type": "string",
|
|
28081
|
+
"required": false,
|
|
28082
|
+
"description": "Filter by LinkedIn org slug(s)"
|
|
28083
|
+
},
|
|
28084
|
+
{
|
|
28085
|
+
"toolName": "organizationIndustry",
|
|
28086
|
+
"wireName": "organization_industry",
|
|
28087
|
+
"location": "query",
|
|
28088
|
+
"type": "string",
|
|
28089
|
+
"required": false,
|
|
28090
|
+
"description": "Filter by LinkedIn industry"
|
|
28091
|
+
},
|
|
28092
|
+
{
|
|
28093
|
+
"toolName": "aiExperienceLevel",
|
|
28094
|
+
"wireName": "ai_experience_level",
|
|
28095
|
+
"location": "query",
|
|
28096
|
+
"type": "string",
|
|
28097
|
+
"required": false,
|
|
28098
|
+
"description": "AI-derived: 0-2, 2-5, 5-10, 10+"
|
|
28099
|
+
},
|
|
28100
|
+
{
|
|
28101
|
+
"toolName": "aiWorkArrangement",
|
|
28102
|
+
"wireName": "ai_work_arrangement",
|
|
28103
|
+
"location": "query",
|
|
28104
|
+
"type": "string",
|
|
28105
|
+
"required": false,
|
|
28106
|
+
"description": "AI-derived: On-site, Hybrid, Remote OK, Remote Solely"
|
|
28107
|
+
},
|
|
28108
|
+
{
|
|
28109
|
+
"toolName": "aiEmploymentType",
|
|
28110
|
+
"wireName": "ai_employment_type",
|
|
28111
|
+
"location": "query",
|
|
28112
|
+
"type": "string",
|
|
28113
|
+
"required": false,
|
|
28114
|
+
"description": "AI-derived: FULL_TIME, PART_TIME, CONTRACTOR, etc."
|
|
28115
|
+
},
|
|
28116
|
+
{
|
|
28117
|
+
"toolName": "hasSalary",
|
|
28118
|
+
"wireName": "has_salary",
|
|
28119
|
+
"location": "query",
|
|
28120
|
+
"type": "string",
|
|
28121
|
+
"required": false,
|
|
28122
|
+
"description": "Set true for jobs with salary info only"
|
|
28123
|
+
},
|
|
28124
|
+
{
|
|
28125
|
+
"toolName": "excludeAtsDuplicate",
|
|
28126
|
+
"wireName": "exclude_ats_duplicate",
|
|
28127
|
+
"location": "query",
|
|
28128
|
+
"type": "string",
|
|
28129
|
+
"required": false,
|
|
28130
|
+
"description": "Set true to drop LinkedIn jobs matching ATS postings"
|
|
28131
|
+
},
|
|
28132
|
+
{
|
|
28133
|
+
"toolName": "excludeRecruiterFields",
|
|
28134
|
+
"wireName": "exclude_recruiter_fields",
|
|
28135
|
+
"location": "query",
|
|
28136
|
+
"type": "string",
|
|
28137
|
+
"required": false,
|
|
28138
|
+
"description": "Set true to exclude recruiter fields"
|
|
28139
|
+
},
|
|
28140
|
+
{
|
|
28141
|
+
"toolName": "seniority",
|
|
28142
|
+
"wireName": "seniority",
|
|
28143
|
+
"location": "query",
|
|
28144
|
+
"type": "string",
|
|
28145
|
+
"required": false,
|
|
28146
|
+
"description": "LinkedIn seniority: Entry level, Mid-Senior level, Director, etc."
|
|
28147
|
+
},
|
|
28148
|
+
{
|
|
28149
|
+
"toolName": "linkedinId",
|
|
28150
|
+
"wireName": "linkedin_id",
|
|
28151
|
+
"location": "query",
|
|
28152
|
+
"type": "string",
|
|
28153
|
+
"required": false,
|
|
28154
|
+
"description": "Filter by LinkedIn job posting ID(s)"
|
|
28155
|
+
},
|
|
28156
|
+
{
|
|
28157
|
+
"toolName": "id",
|
|
28158
|
+
"wireName": "id",
|
|
28159
|
+
"location": "query",
|
|
28160
|
+
"type": "string",
|
|
28161
|
+
"required": false,
|
|
28162
|
+
"description": "Filter by internal Fantastic.jobs ID(s)"
|
|
28163
|
+
}
|
|
28164
|
+
]
|
|
28165
|
+
}
|
|
28166
|
+
},
|
|
27461
28167
|
{
|
|
27462
28168
|
"id": "orthogonal:fiber:company_search",
|
|
27463
28169
|
"idPrefix": "platform",
|
|
@@ -27480,7 +28186,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27480
28186
|
},
|
|
27481
28187
|
"cursor": {
|
|
27482
28188
|
"type": "string",
|
|
27483
|
-
"description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results."
|
|
28189
|
+
"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."
|
|
27484
28190
|
},
|
|
27485
28191
|
"companyExclusionListIDs": {
|
|
27486
28192
|
"type": "array",
|
|
@@ -27488,6 +28194,10 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27488
28194
|
"items": {
|
|
27489
28195
|
"type": "string"
|
|
27490
28196
|
}
|
|
28197
|
+
},
|
|
28198
|
+
"parentRequestId": {
|
|
28199
|
+
"type": "string",
|
|
28200
|
+
"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."
|
|
27491
28201
|
}
|
|
27492
28202
|
},
|
|
27493
28203
|
"required": [
|
|
@@ -27507,7 +28217,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27507
28217
|
"docsUrl": "https://api.fiber.ai/docs/#tag/search/POST/v1/company-search",
|
|
27508
28218
|
"listPrice": "0.01",
|
|
27509
28219
|
"listPriceThousandths": 1e3,
|
|
27510
|
-
"catalogVersion": "2026-
|
|
28220
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
27511
28221
|
"params": [
|
|
27512
28222
|
{
|
|
27513
28223
|
"toolName": "searchParams",
|
|
@@ -27531,7 +28241,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27531
28241
|
"location": "body",
|
|
27532
28242
|
"type": "string",
|
|
27533
28243
|
"required": false,
|
|
27534
|
-
"description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results."
|
|
28244
|
+
"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."
|
|
27535
28245
|
},
|
|
27536
28246
|
{
|
|
27537
28247
|
"toolName": "companyExclusionListIDs",
|
|
@@ -27582,7 +28292,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27582
28292
|
"docsUrl": "https://api.fiber.ai/docs/#tag/email-lookup/POST/v1/email-to-person/single",
|
|
27583
28293
|
"listPrice": "0.04",
|
|
27584
28294
|
"listPriceThousandths": 4e3,
|
|
27585
|
-
"catalogVersion": "2026-
|
|
28295
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
27586
28296
|
"params": [
|
|
27587
28297
|
{
|
|
27588
28298
|
"toolName": "email",
|
|
@@ -27624,7 +28334,11 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27624
28334
|
},
|
|
27625
28335
|
"cursor": {
|
|
27626
28336
|
"type": "string",
|
|
27627
|
-
"description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results."
|
|
28337
|
+
"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."
|
|
28338
|
+
},
|
|
28339
|
+
"parentRequestId": {
|
|
28340
|
+
"type": "string",
|
|
28341
|
+
"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
28342
|
}
|
|
27629
28343
|
},
|
|
27630
28344
|
"required": [
|
|
@@ -27644,7 +28358,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27644
28358
|
"docsUrl": "https://api.fiber.ai/docs/#tag/agentic-search/POST/v1/natural-language-search/companies",
|
|
27645
28359
|
"listPrice": "0.54",
|
|
27646
28360
|
"listPriceThousandths": 54e3,
|
|
27647
|
-
"catalogVersion": "2026-
|
|
28361
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
27648
28362
|
"params": [
|
|
27649
28363
|
{
|
|
27650
28364
|
"toolName": "query",
|
|
@@ -27667,7 +28381,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27667
28381
|
"location": "body",
|
|
27668
28382
|
"type": "string",
|
|
27669
28383
|
"required": false,
|
|
27670
|
-
"description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results."
|
|
28384
|
+
"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."
|
|
27671
28385
|
}
|
|
27672
28386
|
]
|
|
27673
28387
|
}
|
|
@@ -27701,7 +28415,11 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27701
28415
|
},
|
|
27702
28416
|
"cursor": {
|
|
27703
28417
|
"type": "string",
|
|
27704
|
-
"description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results."
|
|
28418
|
+
"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."
|
|
28419
|
+
},
|
|
28420
|
+
"parentRequestId": {
|
|
28421
|
+
"type": "string",
|
|
28422
|
+
"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."
|
|
27705
28423
|
}
|
|
27706
28424
|
},
|
|
27707
28425
|
"required": [
|
|
@@ -27721,7 +28439,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27721
28439
|
"docsUrl": "https://api.fiber.ai/docs/#tag/agentic-search/POST/v1/natural-language-search/profiles",
|
|
27722
28440
|
"listPrice": "0.54",
|
|
27723
28441
|
"listPriceThousandths": 54e3,
|
|
27724
|
-
"catalogVersion": "2026-
|
|
28442
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
27725
28443
|
"params": [
|
|
27726
28444
|
{
|
|
27727
28445
|
"toolName": "query",
|
|
@@ -27760,7 +28478,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27760
28478
|
"location": "body",
|
|
27761
28479
|
"type": "string",
|
|
27762
28480
|
"required": false,
|
|
27763
|
-
"description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results."
|
|
28481
|
+
"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."
|
|
27764
28482
|
}
|
|
27765
28483
|
]
|
|
27766
28484
|
}
|
|
@@ -27787,7 +28505,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27787
28505
|
},
|
|
27788
28506
|
"cursor": {
|
|
27789
28507
|
"type": "string",
|
|
27790
|
-
"description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results."
|
|
28508
|
+
"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."
|
|
27791
28509
|
},
|
|
27792
28510
|
"currentCompanies": {
|
|
27793
28511
|
"type": "array",
|
|
@@ -27809,6 +28527,10 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27809
28527
|
"items": {
|
|
27810
28528
|
"type": "string"
|
|
27811
28529
|
}
|
|
28530
|
+
},
|
|
28531
|
+
"parentRequestId": {
|
|
28532
|
+
"type": "string",
|
|
28533
|
+
"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."
|
|
27812
28534
|
}
|
|
27813
28535
|
},
|
|
27814
28536
|
"required": []
|
|
@@ -27826,7 +28548,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27826
28548
|
"docsUrl": "https://api.fiber.ai/docs/#tag/search/POST/v1/people-search",
|
|
27827
28549
|
"listPrice": "0.01",
|
|
27828
28550
|
"listPriceThousandths": 1e3,
|
|
27829
|
-
"catalogVersion": "2026-
|
|
28551
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
27830
28552
|
"params": [
|
|
27831
28553
|
{
|
|
27832
28554
|
"toolName": "searchParams",
|
|
@@ -27850,7 +28572,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27850
28572
|
"location": "body",
|
|
27851
28573
|
"type": "string",
|
|
27852
28574
|
"required": false,
|
|
27853
|
-
"description": "A pagination cursor returned from a previous search response. Use this to fetch the next page of results."
|
|
28575
|
+
"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."
|
|
27854
28576
|
},
|
|
27855
28577
|
{
|
|
27856
28578
|
"toolName": "currentCompanies",
|
|
@@ -27913,7 +28635,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27913
28635
|
"docsUrl": "https://api.fiber.ai/docs/#tag/validation/POST/v1/validate-email/single",
|
|
27914
28636
|
"listPrice": "0.02",
|
|
27915
28637
|
"listPriceThousandths": 2e3,
|
|
27916
|
-
"catalogVersion": "2026-
|
|
28638
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
27917
28639
|
"params": [
|
|
27918
28640
|
{
|
|
27919
28641
|
"toolName": "email",
|
|
@@ -27958,7 +28680,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
27958
28680
|
"verified": true,
|
|
27959
28681
|
"listPrice": "0.3",
|
|
27960
28682
|
"listPriceThousandths": 3e4,
|
|
27961
|
-
"catalogVersion": "2026-
|
|
28683
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
27962
28684
|
"params": [
|
|
27963
28685
|
{
|
|
27964
28686
|
"toolName": "description",
|
|
@@ -28003,7 +28725,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
28003
28725
|
"verified": true,
|
|
28004
28726
|
"listPrice": "0",
|
|
28005
28727
|
"listPriceThousandths": 0,
|
|
28006
|
-
"catalogVersion": "2026-
|
|
28728
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
28007
28729
|
"params": [
|
|
28008
28730
|
{
|
|
28009
28731
|
"toolName": "researchId",
|
|
@@ -28038,7 +28760,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
28038
28760
|
},
|
|
28039
28761
|
"offset": {
|
|
28040
28762
|
"type": "number",
|
|
28041
|
-
"description": "Skip N emails"
|
|
28763
|
+
"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."
|
|
28042
28764
|
},
|
|
28043
28765
|
"type": {
|
|
28044
28766
|
"type": "string",
|
|
@@ -28051,6 +28773,10 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
28051
28773
|
"department": {
|
|
28052
28774
|
"type": "string",
|
|
28053
28775
|
"description": "Filter by department (sales, marketing, etc)"
|
|
28776
|
+
},
|
|
28777
|
+
"parentRequestId": {
|
|
28778
|
+
"type": "string",
|
|
28779
|
+
"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."
|
|
28054
28780
|
}
|
|
28055
28781
|
},
|
|
28056
28782
|
"required": [
|
|
@@ -28068,7 +28794,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
28068
28794
|
"verified": false,
|
|
28069
28795
|
"listPrice": "0.01",
|
|
28070
28796
|
"listPriceThousandths": 1e3,
|
|
28071
|
-
"catalogVersion": "2026-
|
|
28797
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
28072
28798
|
"params": [
|
|
28073
28799
|
{
|
|
28074
28800
|
"toolName": "domain",
|
|
@@ -28092,7 +28818,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
28092
28818
|
"location": "query",
|
|
28093
28819
|
"type": "number",
|
|
28094
28820
|
"required": false,
|
|
28095
|
-
"description": "Skip N emails"
|
|
28821
|
+
"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."
|
|
28096
28822
|
},
|
|
28097
28823
|
{
|
|
28098
28824
|
"toolName": "type",
|
|
@@ -28171,7 +28897,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
28171
28897
|
"verified": false,
|
|
28172
28898
|
"listPrice": "0.01",
|
|
28173
28899
|
"listPriceThousandths": 1e3,
|
|
28174
|
-
"catalogVersion": "2026-
|
|
28900
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
28175
28901
|
"params": [
|
|
28176
28902
|
{
|
|
28177
28903
|
"toolName": "domain",
|
|
@@ -28256,7 +28982,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
28256
28982
|
"verified": false,
|
|
28257
28983
|
"listPrice": "0.01",
|
|
28258
28984
|
"listPriceThousandths": 1e3,
|
|
28259
|
-
"catalogVersion": "2026-
|
|
28985
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
28260
28986
|
"params": [
|
|
28261
28987
|
{
|
|
28262
28988
|
"toolName": "email",
|
|
@@ -28301,7 +29027,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
28301
29027
|
"verified": true,
|
|
28302
29028
|
"listPrice": "0.033",
|
|
28303
29029
|
"listPriceThousandths": 3300,
|
|
28304
|
-
"catalogVersion": "2026-
|
|
29030
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
28305
29031
|
"params": [
|
|
28306
29032
|
{
|
|
28307
29033
|
"toolName": "email",
|
|
@@ -28363,7 +29089,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
28363
29089
|
"verified": true,
|
|
28364
29090
|
"listPrice": "0.66",
|
|
28365
29091
|
"listPriceThousandths": 66e3,
|
|
28366
|
-
"catalogVersion": "2026-
|
|
29092
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
28367
29093
|
"params": [
|
|
28368
29094
|
{
|
|
28369
29095
|
"toolName": "handle",
|
|
@@ -28452,7 +29178,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
28452
29178
|
"verified": true,
|
|
28453
29179
|
"listPrice": "0.03",
|
|
28454
29180
|
"listPriceThousandths": 3e3,
|
|
28455
|
-
"catalogVersion": "2026-
|
|
29181
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
28456
29182
|
"params": [
|
|
28457
29183
|
{
|
|
28458
29184
|
"toolName": "platform",
|
|
@@ -28535,7 +29261,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
28535
29261
|
"docsUrl": "https://docs.linkup.so/pages/documentation/api-reference/endpoint/post-fetch",
|
|
28536
29262
|
"listPrice": "0.01",
|
|
28537
29263
|
"listPriceThousandths": 1e3,
|
|
28538
|
-
"catalogVersion": "2026-
|
|
29264
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
28539
29265
|
"params": [
|
|
28540
29266
|
{
|
|
28541
29267
|
"toolName": "url",
|
|
@@ -28665,7 +29391,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
28665
29391
|
"docsUrl": "https://docs.linkup.so/pages/documentation/api-reference/endpoint/post-search",
|
|
28666
29392
|
"listPrice": "0.01",
|
|
28667
29393
|
"listPriceThousandths": 1e3,
|
|
28668
|
-
"catalogVersion": "2026-
|
|
29394
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
28669
29395
|
"params": [
|
|
28670
29396
|
{
|
|
28671
29397
|
"toolName": "q",
|
|
@@ -28804,7 +29530,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
28804
29530
|
"verified": false,
|
|
28805
29531
|
"listPrice": "0.01",
|
|
28806
29532
|
"listPriceThousandths": 1e3,
|
|
28807
|
-
"catalogVersion": "2026-
|
|
29533
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
28808
29534
|
"params": [
|
|
28809
29535
|
{
|
|
28810
29536
|
"toolName": "q",
|
|
@@ -28859,7 +29585,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
28859
29585
|
"verified": true,
|
|
28860
29586
|
"listPrice": "0.01",
|
|
28861
29587
|
"listPriceThousandths": 1e3,
|
|
28862
|
-
"catalogVersion": "2026-
|
|
29588
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
28863
29589
|
"params": [
|
|
28864
29590
|
{
|
|
28865
29591
|
"toolName": "url",
|
|
@@ -28915,7 +29641,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
28915
29641
|
"verified": true,
|
|
28916
29642
|
"listPrice": "0.002",
|
|
28917
29643
|
"listPriceThousandths": 200,
|
|
28918
|
-
"catalogVersion": "2026-
|
|
29644
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
28919
29645
|
"params": [
|
|
28920
29646
|
{
|
|
28921
29647
|
"toolName": "frames",
|
|
@@ -28962,7 +29688,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
28962
29688
|
"docsUrl": "https://api.nyne.ai/documentation/company/enrichment",
|
|
28963
29689
|
"listPrice": "0",
|
|
28964
29690
|
"listPriceThousandths": 0,
|
|
28965
|
-
"catalogVersion": "2026-
|
|
29691
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
28966
29692
|
"params": [
|
|
28967
29693
|
{
|
|
28968
29694
|
"toolName": "requestId",
|
|
@@ -29009,7 +29735,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
29009
29735
|
"docsUrl": "https://api.nyne.ai/documentation/company/search",
|
|
29010
29736
|
"listPrice": "0",
|
|
29011
29737
|
"listPriceThousandths": 0,
|
|
29012
|
-
"catalogVersion": "2026-
|
|
29738
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
29013
29739
|
"params": [
|
|
29014
29740
|
{
|
|
29015
29741
|
"toolName": "requestId",
|
|
@@ -29056,7 +29782,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
29056
29782
|
"docsUrl": "https://api.nyne.ai/documentation/person/enrichment",
|
|
29057
29783
|
"listPrice": "0",
|
|
29058
29784
|
"listPriceThousandths": 0,
|
|
29059
|
-
"catalogVersion": "2026-
|
|
29785
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
29060
29786
|
"params": [
|
|
29061
29787
|
{
|
|
29062
29788
|
"toolName": "requestId",
|
|
@@ -29103,7 +29829,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
29103
29829
|
"docsUrl": "https://api.nyne.ai/documentation/person/search",
|
|
29104
29830
|
"listPrice": "0",
|
|
29105
29831
|
"listPriceThousandths": 0,
|
|
29106
|
-
"catalogVersion": "2026-
|
|
29832
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
29107
29833
|
"params": [
|
|
29108
29834
|
{
|
|
29109
29835
|
"toolName": "requestId",
|
|
@@ -29165,7 +29891,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
29165
29891
|
"verified": true,
|
|
29166
29892
|
"listPrice": "0.018",
|
|
29167
29893
|
"listPriceThousandths": 1800,
|
|
29168
|
-
"catalogVersion": "2026-
|
|
29894
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
29169
29895
|
"params": [
|
|
29170
29896
|
{
|
|
29171
29897
|
"toolName": "size",
|
|
@@ -29254,7 +29980,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
29254
29980
|
"verified": true,
|
|
29255
29981
|
"listPrice": "0.01",
|
|
29256
29982
|
"listPriceThousandths": 1e3,
|
|
29257
|
-
"catalogVersion": "2026-
|
|
29983
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
29258
29984
|
"params": [
|
|
29259
29985
|
{
|
|
29260
29986
|
"toolName": "company",
|
|
@@ -29340,7 +30066,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
29340
30066
|
"verified": true,
|
|
29341
30067
|
"listPrice": "0.018",
|
|
29342
30068
|
"listPriceThousandths": 1800,
|
|
29343
|
-
"catalogVersion": "2026-
|
|
30069
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
29344
30070
|
"params": [
|
|
29345
30071
|
{
|
|
29346
30072
|
"toolName": "size",
|
|
@@ -29437,7 +30163,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
29437
30163
|
"verified": true,
|
|
29438
30164
|
"listPrice": "0.01",
|
|
29439
30165
|
"listPriceThousandths": 1e3,
|
|
29440
|
-
"catalogVersion": "2026-
|
|
30166
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
29441
30167
|
"params": [
|
|
29442
30168
|
{
|
|
29443
30169
|
"toolName": "person",
|
|
@@ -29496,7 +30222,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
29496
30222
|
"docsUrl": "https://docs.olostep.com/api-reference/answers/create",
|
|
29497
30223
|
"listPrice": "0.05",
|
|
29498
30224
|
"listPriceThousandths": 5e3,
|
|
29499
|
-
"catalogVersion": "2026-
|
|
30225
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
29500
30226
|
"params": [
|
|
29501
30227
|
{
|
|
29502
30228
|
"toolName": "task",
|
|
@@ -29598,7 +30324,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
29598
30324
|
"docsUrl": "https://docs.olostep.com/api-reference/crawls/create",
|
|
29599
30325
|
"listPrice": "0.05",
|
|
29600
30326
|
"listPriceThousandths": 5e3,
|
|
29601
|
-
"catalogVersion": "2026-
|
|
30327
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
29602
30328
|
"params": [
|
|
29603
30329
|
{
|
|
29604
30330
|
"toolName": "startUrl",
|
|
@@ -29755,7 +30481,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
29755
30481
|
"docsUrl": "https://docs.olostep.com/api-reference/maps/create",
|
|
29756
30482
|
"listPrice": "0.01",
|
|
29757
30483
|
"listPriceThousandths": 1e3,
|
|
29758
|
-
"catalogVersion": "2026-
|
|
30484
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
29759
30485
|
"params": [
|
|
29760
30486
|
{
|
|
29761
30487
|
"toolName": "url",
|
|
@@ -29920,7 +30646,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
29920
30646
|
"docsUrl": "https://docs.olostep.com/api/scrape",
|
|
29921
30647
|
"listPrice": "0.01",
|
|
29922
30648
|
"listPriceThousandths": 1e3,
|
|
29923
|
-
"catalogVersion": "2026-
|
|
30649
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
29924
30650
|
"params": [
|
|
29925
30651
|
{
|
|
29926
30652
|
"toolName": "url",
|
|
@@ -30068,7 +30794,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
30068
30794
|
"verified": true,
|
|
30069
30795
|
"listPrice": "0.01",
|
|
30070
30796
|
"listPriceThousandths": 1e3,
|
|
30071
|
-
"catalogVersion": "2026-
|
|
30797
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
30072
30798
|
"params": [
|
|
30073
30799
|
{
|
|
30074
30800
|
"toolName": "companyWebsite",
|
|
@@ -30139,7 +30865,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
30139
30865
|
"verified": true,
|
|
30140
30866
|
"listPrice": "0.01",
|
|
30141
30867
|
"listPriceThousandths": 1e3,
|
|
30142
|
-
"catalogVersion": "2026-
|
|
30868
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
30143
30869
|
"params": [
|
|
30144
30870
|
{
|
|
30145
30871
|
"toolName": "query",
|
|
@@ -30243,7 +30969,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
30243
30969
|
"verified": true,
|
|
30244
30970
|
"listPrice": "0.11",
|
|
30245
30971
|
"listPriceThousandths": 11e3,
|
|
30246
|
-
"catalogVersion": "2026-
|
|
30972
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
30247
30973
|
"params": [
|
|
30248
30974
|
{
|
|
30249
30975
|
"toolName": "name",
|
|
@@ -30352,7 +31078,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
30352
31078
|
"verified": true,
|
|
30353
31079
|
"listPrice": "0.11",
|
|
30354
31080
|
"listPriceThousandths": 11e3,
|
|
30355
|
-
"catalogVersion": "2026-
|
|
31081
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
30356
31082
|
"params": [
|
|
30357
31083
|
{
|
|
30358
31084
|
"toolName": "pretty",
|
|
@@ -30487,7 +31213,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
30487
31213
|
"verified": true,
|
|
30488
31214
|
"listPrice": "0.35",
|
|
30489
31215
|
"listPriceThousandths": 35e3,
|
|
30490
|
-
"catalogVersion": "2026-
|
|
31216
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
30491
31217
|
"params": [
|
|
30492
31218
|
{
|
|
30493
31219
|
"toolName": "name",
|
|
@@ -30648,7 +31374,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
30648
31374
|
"verified": true,
|
|
30649
31375
|
"listPrice": "0.35",
|
|
30650
31376
|
"listPriceThousandths": 35e3,
|
|
30651
|
-
"catalogVersion": "2026-
|
|
31377
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
30652
31378
|
"params": [
|
|
30653
31379
|
{
|
|
30654
31380
|
"toolName": "pretty",
|
|
@@ -30801,7 +31527,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
30801
31527
|
"docsUrl": "https://docs.perplexity.ai/api-reference/search-post",
|
|
30802
31528
|
"listPrice": "0.01",
|
|
30803
31529
|
"listPriceThousandths": 1e3,
|
|
30804
|
-
"catalogVersion": "2026-
|
|
31530
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
30805
31531
|
"params": [
|
|
30806
31532
|
{
|
|
30807
31533
|
"toolName": "query",
|
|
@@ -30953,7 +31679,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
30953
31679
|
"docsUrl": "https://api-docs.precip.ai/api/precipitation-data#daily-precipitation-data",
|
|
30954
31680
|
"listPrice": "0.01",
|
|
30955
31681
|
"listPriceThousandths": 1e3,
|
|
30956
|
-
"catalogVersion": "2026-
|
|
31682
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
30957
31683
|
"params": [
|
|
30958
31684
|
{
|
|
30959
31685
|
"toolName": "start",
|
|
@@ -31051,7 +31777,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31051
31777
|
"docsUrl": "https://api-docs.precip.ai/api/precipitation-data#hourly-precipitation-data",
|
|
31052
31778
|
"listPrice": "0.01",
|
|
31053
31779
|
"listPriceThousandths": 1e3,
|
|
31054
|
-
"catalogVersion": "2026-
|
|
31780
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
31055
31781
|
"params": [
|
|
31056
31782
|
{
|
|
31057
31783
|
"toolName": "start",
|
|
@@ -31141,7 +31867,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31141
31867
|
"docsUrl": "https://api-docs.precip.ai/api/precipitation-data#last-48-hours-precipitation-data",
|
|
31142
31868
|
"listPrice": "0.01",
|
|
31143
31869
|
"listPriceThousandths": 1e3,
|
|
31144
|
-
"catalogVersion": "2026-
|
|
31870
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
31145
31871
|
"params": [
|
|
31146
31872
|
{
|
|
31147
31873
|
"toolName": "longitude",
|
|
@@ -31206,7 +31932,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31206
31932
|
"verified": true,
|
|
31207
31933
|
"listPrice": "0.04",
|
|
31208
31934
|
"listPriceThousandths": 4e3,
|
|
31209
|
-
"catalogVersion": "2026-
|
|
31935
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
31210
31936
|
"params": [
|
|
31211
31937
|
{
|
|
31212
31938
|
"toolName": "idOrDomain",
|
|
@@ -31238,10 +31964,15 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31238
31964
|
"type": "string"
|
|
31239
31965
|
},
|
|
31240
31966
|
"page": {
|
|
31241
|
-
"type": "number"
|
|
31967
|
+
"type": "number",
|
|
31968
|
+
"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."
|
|
31242
31969
|
},
|
|
31243
31970
|
"limit": {
|
|
31244
31971
|
"type": "number"
|
|
31972
|
+
},
|
|
31973
|
+
"parentRequestId": {
|
|
31974
|
+
"type": "string",
|
|
31975
|
+
"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."
|
|
31245
31976
|
}
|
|
31246
31977
|
},
|
|
31247
31978
|
"required": [
|
|
@@ -31260,7 +31991,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31260
31991
|
"verified": true,
|
|
31261
31992
|
"listPrice": "0.04",
|
|
31262
31993
|
"listPriceThousandths": 4e3,
|
|
31263
|
-
"catalogVersion": "2026-
|
|
31994
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
31264
31995
|
"params": [
|
|
31265
31996
|
{
|
|
31266
31997
|
"toolName": "location",
|
|
@@ -31281,7 +32012,8 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31281
32012
|
"wireName": "page",
|
|
31282
32013
|
"location": "query",
|
|
31283
32014
|
"type": "number",
|
|
31284
|
-
"required": false
|
|
32015
|
+
"required": false,
|
|
32016
|
+
"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
32017
|
},
|
|
31286
32018
|
{
|
|
31287
32019
|
"toolName": "limit",
|
|
@@ -31314,10 +32046,15 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31314
32046
|
"description": "Location (required if onet_codes not provided)"
|
|
31315
32047
|
},
|
|
31316
32048
|
"page": {
|
|
31317
|
-
"type": "number"
|
|
32049
|
+
"type": "number",
|
|
32050
|
+
"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."
|
|
31318
32051
|
},
|
|
31319
32052
|
"limit": {
|
|
31320
32053
|
"type": "number"
|
|
32054
|
+
},
|
|
32055
|
+
"parentRequestId": {
|
|
32056
|
+
"type": "string",
|
|
32057
|
+
"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."
|
|
31321
32058
|
}
|
|
31322
32059
|
},
|
|
31323
32060
|
"required": []
|
|
@@ -31333,7 +32070,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31333
32070
|
"verified": true,
|
|
31334
32071
|
"listPrice": "0.04",
|
|
31335
32072
|
"listPriceThousandths": 4e3,
|
|
31336
|
-
"catalogVersion": "2026-
|
|
32073
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
31337
32074
|
"params": [
|
|
31338
32075
|
{
|
|
31339
32076
|
"toolName": "onetCodes",
|
|
@@ -31356,7 +32093,8 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31356
32093
|
"wireName": "page",
|
|
31357
32094
|
"location": "query",
|
|
31358
32095
|
"type": "number",
|
|
31359
|
-
"required": false
|
|
32096
|
+
"required": false,
|
|
32097
|
+
"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."
|
|
31360
32098
|
},
|
|
31361
32099
|
{
|
|
31362
32100
|
"toolName": "limit",
|
|
@@ -31381,7 +32119,8 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31381
32119
|
"type": "object",
|
|
31382
32120
|
"properties": {
|
|
31383
32121
|
"page": {
|
|
31384
|
-
"type": "number"
|
|
32122
|
+
"type": "number",
|
|
32123
|
+
"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."
|
|
31385
32124
|
},
|
|
31386
32125
|
"categories": {
|
|
31387
32126
|
"type": "string"
|
|
@@ -31391,6 +32130,10 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31391
32130
|
},
|
|
31392
32131
|
"limit": {
|
|
31393
32132
|
"type": "number"
|
|
32133
|
+
},
|
|
32134
|
+
"parentRequestId": {
|
|
32135
|
+
"type": "string",
|
|
32136
|
+
"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."
|
|
31394
32137
|
}
|
|
31395
32138
|
},
|
|
31396
32139
|
"required": []
|
|
@@ -31406,14 +32149,15 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31406
32149
|
"verified": true,
|
|
31407
32150
|
"listPrice": "0.04",
|
|
31408
32151
|
"listPriceThousandths": 4e3,
|
|
31409
|
-
"catalogVersion": "2026-
|
|
32152
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
31410
32153
|
"params": [
|
|
31411
32154
|
{
|
|
31412
32155
|
"toolName": "page",
|
|
31413
32156
|
"wireName": "page",
|
|
31414
32157
|
"location": "query",
|
|
31415
32158
|
"type": "number",
|
|
31416
|
-
"required": false
|
|
32159
|
+
"required": false,
|
|
32160
|
+
"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."
|
|
31417
32161
|
},
|
|
31418
32162
|
{
|
|
31419
32163
|
"toolName": "categories",
|
|
@@ -31481,7 +32225,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31481
32225
|
"docsUrl": "https://docs.riveterhq.com/#tag/tools/post/scrape",
|
|
31482
32226
|
"listPrice": "0.01",
|
|
31483
32227
|
"listPriceThousandths": 1e3,
|
|
31484
|
-
"catalogVersion": "2026-
|
|
32228
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
31485
32229
|
"params": [
|
|
31486
32230
|
{
|
|
31487
32231
|
"toolName": "url",
|
|
@@ -31560,11 +32304,15 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31560
32304
|
},
|
|
31561
32305
|
"cursor": {
|
|
31562
32306
|
"type": "string",
|
|
31563
|
-
"description": "Cursor for pagination"
|
|
32307
|
+
"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."
|
|
31564
32308
|
},
|
|
31565
32309
|
"trim": {
|
|
31566
32310
|
"type": "string",
|
|
31567
32311
|
"description": "Set to true for a trimmed response"
|
|
32312
|
+
},
|
|
32313
|
+
"parentRequestId": {
|
|
32314
|
+
"type": "string",
|
|
32315
|
+
"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."
|
|
31568
32316
|
}
|
|
31569
32317
|
},
|
|
31570
32318
|
"required": [
|
|
@@ -31582,7 +32330,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31582
32330
|
"verified": true,
|
|
31583
32331
|
"listPrice": "0.02",
|
|
31584
32332
|
"listPriceThousandths": 2e3,
|
|
31585
|
-
"catalogVersion": "2026-
|
|
32333
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
31586
32334
|
"params": [
|
|
31587
32335
|
{
|
|
31588
32336
|
"toolName": "query",
|
|
@@ -31662,7 +32410,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31662
32410
|
"location": "query",
|
|
31663
32411
|
"type": "string",
|
|
31664
32412
|
"required": false,
|
|
31665
|
-
"description": "Cursor for pagination"
|
|
32413
|
+
"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."
|
|
31666
32414
|
},
|
|
31667
32415
|
{
|
|
31668
32416
|
"toolName": "trim",
|
|
@@ -31711,7 +32459,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31711
32459
|
"verified": true,
|
|
31712
32460
|
"listPrice": "0.02",
|
|
31713
32461
|
"listPriceThousandths": 2e3,
|
|
31714
|
-
"catalogVersion": "2026-
|
|
32462
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
31715
32463
|
"params": [
|
|
31716
32464
|
{
|
|
31717
32465
|
"toolName": "query",
|
|
@@ -31768,7 +32516,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31768
32516
|
"verified": true,
|
|
31769
32517
|
"listPrice": "0.02",
|
|
31770
32518
|
"listPriceThousandths": 2e3,
|
|
31771
|
-
"catalogVersion": "2026-
|
|
32519
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
31772
32520
|
"params": [
|
|
31773
32521
|
{
|
|
31774
32522
|
"toolName": "handle",
|
|
@@ -31821,7 +32569,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31821
32569
|
"verified": true,
|
|
31822
32570
|
"listPrice": "0.02",
|
|
31823
32571
|
"listPriceThousandths": 2e3,
|
|
31824
|
-
"catalogVersion": "2026-
|
|
32572
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
31825
32573
|
"params": [
|
|
31826
32574
|
{
|
|
31827
32575
|
"toolName": "url",
|
|
@@ -31866,7 +32614,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31866
32614
|
"verified": true,
|
|
31867
32615
|
"listPrice": "0.02",
|
|
31868
32616
|
"listPriceThousandths": 2e3,
|
|
31869
|
-
"catalogVersion": "2026-
|
|
32617
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
31870
32618
|
"params": [
|
|
31871
32619
|
{
|
|
31872
32620
|
"toolName": "url",
|
|
@@ -31879,6 +32627,176 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31879
32627
|
]
|
|
31880
32628
|
}
|
|
31881
32629
|
},
|
|
32630
|
+
{
|
|
32631
|
+
"id": "orthogonal:scrapecreators:reddit_post_comments",
|
|
32632
|
+
"idPrefix": "platform",
|
|
32633
|
+
"name": "ScrapeCreators Reddit Post Comments",
|
|
32634
|
+
"description": "Get the comment thread for a Reddit post by URL via ScrapeCreators.",
|
|
32635
|
+
"category": "web_scraping",
|
|
32636
|
+
"providers": [
|
|
32637
|
+
"multi"
|
|
32638
|
+
],
|
|
32639
|
+
"parametersSchema": {
|
|
32640
|
+
"type": "object",
|
|
32641
|
+
"properties": {
|
|
32642
|
+
"url": {
|
|
32643
|
+
"type": "string",
|
|
32644
|
+
"description": "Reddit post URL"
|
|
32645
|
+
},
|
|
32646
|
+
"cursor": {
|
|
32647
|
+
"type": "string",
|
|
32648
|
+
"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."
|
|
32649
|
+
},
|
|
32650
|
+
"trim": {
|
|
32651
|
+
"type": "boolean",
|
|
32652
|
+
"description": "Set to true for a trimmed down version of the response"
|
|
32653
|
+
},
|
|
32654
|
+
"parentRequestId": {
|
|
32655
|
+
"type": "string",
|
|
32656
|
+
"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."
|
|
32657
|
+
}
|
|
32658
|
+
},
|
|
32659
|
+
"required": [
|
|
32660
|
+
"url"
|
|
32661
|
+
]
|
|
32662
|
+
},
|
|
32663
|
+
"requiresApiKey": false,
|
|
32664
|
+
"executionHint": "platform",
|
|
32665
|
+
"platformKeySupport": true,
|
|
32666
|
+
"managedExecution": {
|
|
32667
|
+
"kind": "orthogonal",
|
|
32668
|
+
"apiSlug": "scrapecreators",
|
|
32669
|
+
"pathTemplate": "/v1/reddit/post/comments",
|
|
32670
|
+
"method": "GET",
|
|
32671
|
+
"verified": true,
|
|
32672
|
+
"listPrice": "0.02",
|
|
32673
|
+
"listPriceThousandths": 2e3,
|
|
32674
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
32675
|
+
"params": [
|
|
32676
|
+
{
|
|
32677
|
+
"toolName": "url",
|
|
32678
|
+
"wireName": "url",
|
|
32679
|
+
"location": "query",
|
|
32680
|
+
"type": "string",
|
|
32681
|
+
"required": true,
|
|
32682
|
+
"description": "Reddit post URL"
|
|
32683
|
+
},
|
|
32684
|
+
{
|
|
32685
|
+
"toolName": "cursor",
|
|
32686
|
+
"wireName": "cursor",
|
|
32687
|
+
"location": "query",
|
|
32688
|
+
"type": "string",
|
|
32689
|
+
"required": false,
|
|
32690
|
+
"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."
|
|
32691
|
+
},
|
|
32692
|
+
{
|
|
32693
|
+
"toolName": "trim",
|
|
32694
|
+
"wireName": "trim",
|
|
32695
|
+
"location": "query",
|
|
32696
|
+
"type": "boolean",
|
|
32697
|
+
"required": false,
|
|
32698
|
+
"description": "Set to true for a trimmed down version of the response"
|
|
32699
|
+
}
|
|
32700
|
+
]
|
|
32701
|
+
}
|
|
32702
|
+
},
|
|
32703
|
+
{
|
|
32704
|
+
"id": "orthogonal:scrapecreators:reddit_search",
|
|
32705
|
+
"idPrefix": "platform",
|
|
32706
|
+
"name": "ScrapeCreators Reddit Search",
|
|
32707
|
+
"description": "Search Reddit posts by keyword, with sort and timeframe filters, via ScrapeCreators.",
|
|
32708
|
+
"category": "web_scraping",
|
|
32709
|
+
"providers": [
|
|
32710
|
+
"multi"
|
|
32711
|
+
],
|
|
32712
|
+
"parametersSchema": {
|
|
32713
|
+
"type": "object",
|
|
32714
|
+
"properties": {
|
|
32715
|
+
"query": {
|
|
32716
|
+
"type": "string",
|
|
32717
|
+
"description": "Search query"
|
|
32718
|
+
},
|
|
32719
|
+
"sort": {
|
|
32720
|
+
"type": "string",
|
|
32721
|
+
"description": "Sort by"
|
|
32722
|
+
},
|
|
32723
|
+
"timeframe": {
|
|
32724
|
+
"type": "string",
|
|
32725
|
+
"description": "Timeframe"
|
|
32726
|
+
},
|
|
32727
|
+
"after": {
|
|
32728
|
+
"type": "string",
|
|
32729
|
+
"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."
|
|
32730
|
+
},
|
|
32731
|
+
"trim": {
|
|
32732
|
+
"type": "boolean",
|
|
32733
|
+
"description": "Set to true for a trimmed down version of the response"
|
|
32734
|
+
},
|
|
32735
|
+
"parentRequestId": {
|
|
32736
|
+
"type": "string",
|
|
32737
|
+
"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."
|
|
32738
|
+
}
|
|
32739
|
+
},
|
|
32740
|
+
"required": [
|
|
32741
|
+
"query"
|
|
32742
|
+
]
|
|
32743
|
+
},
|
|
32744
|
+
"requiresApiKey": false,
|
|
32745
|
+
"executionHint": "platform",
|
|
32746
|
+
"platformKeySupport": true,
|
|
32747
|
+
"managedExecution": {
|
|
32748
|
+
"kind": "orthogonal",
|
|
32749
|
+
"apiSlug": "scrapecreators",
|
|
32750
|
+
"pathTemplate": "/v1/reddit/search",
|
|
32751
|
+
"method": "GET",
|
|
32752
|
+
"verified": true,
|
|
32753
|
+
"listPrice": "0.02",
|
|
32754
|
+
"listPriceThousandths": 2e3,
|
|
32755
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
32756
|
+
"params": [
|
|
32757
|
+
{
|
|
32758
|
+
"toolName": "query",
|
|
32759
|
+
"wireName": "query",
|
|
32760
|
+
"location": "query",
|
|
32761
|
+
"type": "string",
|
|
32762
|
+
"required": true,
|
|
32763
|
+
"description": "Search query"
|
|
32764
|
+
},
|
|
32765
|
+
{
|
|
32766
|
+
"toolName": "sort",
|
|
32767
|
+
"wireName": "sort",
|
|
32768
|
+
"location": "query",
|
|
32769
|
+
"type": "string",
|
|
32770
|
+
"required": false,
|
|
32771
|
+
"description": "Sort by"
|
|
32772
|
+
},
|
|
32773
|
+
{
|
|
32774
|
+
"toolName": "timeframe",
|
|
32775
|
+
"wireName": "timeframe",
|
|
32776
|
+
"location": "query",
|
|
32777
|
+
"type": "string",
|
|
32778
|
+
"required": false,
|
|
32779
|
+
"description": "Timeframe"
|
|
32780
|
+
},
|
|
32781
|
+
{
|
|
32782
|
+
"toolName": "after",
|
|
32783
|
+
"wireName": "after",
|
|
32784
|
+
"location": "query",
|
|
32785
|
+
"type": "string",
|
|
32786
|
+
"required": false,
|
|
32787
|
+
"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."
|
|
32788
|
+
},
|
|
32789
|
+
{
|
|
32790
|
+
"toolName": "trim",
|
|
32791
|
+
"wireName": "trim",
|
|
32792
|
+
"location": "query",
|
|
32793
|
+
"type": "boolean",
|
|
32794
|
+
"required": false,
|
|
32795
|
+
"description": "Set to true for a trimmed down version of the response"
|
|
32796
|
+
}
|
|
32797
|
+
]
|
|
32798
|
+
}
|
|
32799
|
+
},
|
|
31882
32800
|
{
|
|
31883
32801
|
"id": "orthogonal:scrapecreators:reddit_subreddit",
|
|
31884
32802
|
"idPrefix": "platform",
|
|
@@ -31905,11 +32823,15 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31905
32823
|
},
|
|
31906
32824
|
"after": {
|
|
31907
32825
|
"type": "string",
|
|
31908
|
-
"description": "Cursor for pagination"
|
|
32826
|
+
"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."
|
|
31909
32827
|
},
|
|
31910
32828
|
"trim": {
|
|
31911
32829
|
"type": "string",
|
|
31912
32830
|
"description": "Set to true for a trimmed response"
|
|
32831
|
+
},
|
|
32832
|
+
"parentRequestId": {
|
|
32833
|
+
"type": "string",
|
|
32834
|
+
"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."
|
|
31913
32835
|
}
|
|
31914
32836
|
},
|
|
31915
32837
|
"required": [
|
|
@@ -31927,7 +32849,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31927
32849
|
"verified": true,
|
|
31928
32850
|
"listPrice": "0.02",
|
|
31929
32851
|
"listPriceThousandths": 2e3,
|
|
31930
|
-
"catalogVersion": "2026-
|
|
32852
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
31931
32853
|
"params": [
|
|
31932
32854
|
{
|
|
31933
32855
|
"toolName": "subreddit",
|
|
@@ -31959,7 +32881,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
31959
32881
|
"location": "query",
|
|
31960
32882
|
"type": "string",
|
|
31961
32883
|
"required": false,
|
|
31962
|
-
"description": "Cursor for pagination"
|
|
32884
|
+
"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."
|
|
31963
32885
|
},
|
|
31964
32886
|
{
|
|
31965
32887
|
"toolName": "trim",
|
|
@@ -32004,7 +32926,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
32004
32926
|
"verified": true,
|
|
32005
32927
|
"listPrice": "0.02",
|
|
32006
32928
|
"listPriceThousandths": 2e3,
|
|
32007
|
-
"catalogVersion": "2026-
|
|
32929
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
32008
32930
|
"params": [
|
|
32009
32931
|
{
|
|
32010
32932
|
"toolName": "handle",
|
|
@@ -32049,7 +32971,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
32049
32971
|
"verified": true,
|
|
32050
32972
|
"listPrice": "0.02",
|
|
32051
32973
|
"listPriceThousandths": 2e3,
|
|
32052
|
-
"catalogVersion": "2026-
|
|
32974
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
32053
32975
|
"params": [
|
|
32054
32976
|
{
|
|
32055
32977
|
"toolName": "handle",
|
|
@@ -32098,7 +33020,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
32098
33020
|
"verified": true,
|
|
32099
33021
|
"listPrice": "0.02",
|
|
32100
33022
|
"listPriceThousandths": 2e3,
|
|
32101
|
-
"catalogVersion": "2026-
|
|
33023
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
32102
33024
|
"params": [
|
|
32103
33025
|
{
|
|
32104
33026
|
"toolName": "handle",
|
|
@@ -32157,7 +33079,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
32157
33079
|
"verified": true,
|
|
32158
33080
|
"listPrice": "0.02",
|
|
32159
33081
|
"listPriceThousandths": 2e3,
|
|
32160
|
-
"catalogVersion": "2026-
|
|
33082
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
32161
33083
|
"params": [
|
|
32162
33084
|
{
|
|
32163
33085
|
"toolName": "channelId",
|
|
@@ -32218,7 +33140,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
32218
33140
|
"verified": true,
|
|
32219
33141
|
"listPrice": "0.02",
|
|
32220
33142
|
"listPriceThousandths": 2e3,
|
|
32221
|
-
"catalogVersion": "2026-
|
|
33143
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
32222
33144
|
"params": [
|
|
32223
33145
|
{
|
|
32224
33146
|
"toolName": "url",
|
|
@@ -32291,7 +33213,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
32291
33213
|
"verified": true,
|
|
32292
33214
|
"listPrice": "0.025",
|
|
32293
33215
|
"listPriceThousandths": 2500,
|
|
32294
|
-
"catalogVersion": "2026-
|
|
33216
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
32295
33217
|
"params": [
|
|
32296
33218
|
{
|
|
32297
33219
|
"toolName": "prompt",
|
|
@@ -32407,7 +33329,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
32407
33329
|
"verified": true,
|
|
32408
33330
|
"listPrice": "0.005",
|
|
32409
33331
|
"listPriceThousandths": 500,
|
|
32410
|
-
"catalogVersion": "2026-
|
|
33332
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
32411
33333
|
"params": [
|
|
32412
33334
|
{
|
|
32413
33335
|
"toolName": "url",
|
|
@@ -32508,7 +33430,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
32508
33430
|
"verified": true,
|
|
32509
33431
|
"listPrice": "0.075",
|
|
32510
33432
|
"listPriceThousandths": 7500,
|
|
32511
|
-
"catalogVersion": "2026-
|
|
33433
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
32512
33434
|
"params": [
|
|
32513
33435
|
{
|
|
32514
33436
|
"toolName": "query",
|
|
@@ -32640,7 +33562,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
32640
33562
|
"docsUrl": "https://docs.sixtyfour.ai/api-reference/endpoint/enrich-company",
|
|
32641
33563
|
"listPrice": "0.1",
|
|
32642
33564
|
"listPriceThousandths": 1e4,
|
|
32643
|
-
"catalogVersion": "2026-
|
|
33565
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
32644
33566
|
"params": [
|
|
32645
33567
|
{
|
|
32646
33568
|
"toolName": "targetCompany",
|
|
@@ -32736,7 +33658,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
32736
33658
|
"docsUrl": "https://docs.sixtyfour.ai/api-reference/endpoint/enrich-lead",
|
|
32737
33659
|
"listPrice": "0.1",
|
|
32738
33660
|
"listPriceThousandths": 1e4,
|
|
32739
|
-
"catalogVersion": "2026-
|
|
33661
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
32740
33662
|
"params": [
|
|
32741
33663
|
{
|
|
32742
33664
|
"toolName": "leadInfo",
|
|
@@ -32803,7 +33725,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
32803
33725
|
"docsUrl": "https://docs.sixtyfour.ai/api-reference/endpoint/find-email",
|
|
32804
33726
|
"listPrice": "0.05",
|
|
32805
33727
|
"listPriceThousandths": 5e3,
|
|
32806
|
-
"catalogVersion": "2026-
|
|
33728
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
32807
33729
|
"params": [
|
|
32808
33730
|
{
|
|
32809
33731
|
"toolName": "lead",
|
|
@@ -32878,7 +33800,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
32878
33800
|
"docsUrl": "https://docs.sixtyfour.ai/api-reference/endpoint/find-phone",
|
|
32879
33801
|
"listPrice": "0.3",
|
|
32880
33802
|
"listPriceThousandths": 3e4,
|
|
32881
|
-
"catalogVersion": "2026-
|
|
33803
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
32882
33804
|
"params": [
|
|
32883
33805
|
{
|
|
32884
33806
|
"toolName": "lead",
|
|
@@ -32996,7 +33918,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
32996
33918
|
"docsUrl": "https://docs.tavily.com/documentation/api-reference/endpoint/extract",
|
|
32997
33919
|
"listPrice": "0.01",
|
|
32998
33920
|
"listPriceThousandths": 1e3,
|
|
32999
|
-
"catalogVersion": "2026-
|
|
33921
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
33000
33922
|
"params": [
|
|
33001
33923
|
{
|
|
33002
33924
|
"toolName": "urls",
|
|
@@ -33115,7 +34037,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
33115
34037
|
"docsUrl": "https://docs.tavily.com/documentation/api-reference/endpoint/research",
|
|
33116
34038
|
"listPrice": "0.5",
|
|
33117
34039
|
"listPriceThousandths": 5e4,
|
|
33118
|
-
"catalogVersion": "2026-
|
|
34040
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
33119
34041
|
"params": [
|
|
33120
34042
|
{
|
|
33121
34043
|
"toolName": "input",
|
|
@@ -33264,7 +34186,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
33264
34186
|
"docsUrl": "https://docs.tavily.com/documentation/api-reference/endpoint/search",
|
|
33265
34187
|
"listPrice": "0.01",
|
|
33266
34188
|
"listPriceThousandths": 1e3,
|
|
33267
|
-
"catalogVersion": "2026-
|
|
34189
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
33268
34190
|
"params": [
|
|
33269
34191
|
{
|
|
33270
34192
|
"toolName": "query",
|
|
@@ -33456,7 +34378,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
33456
34378
|
"docsUrl": "https://docs.textbelt.com",
|
|
33457
34379
|
"listPrice": "0.025",
|
|
33458
34380
|
"listPriceThousandths": 2500,
|
|
33459
|
-
"catalogVersion": "2026-
|
|
34381
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
33460
34382
|
"params": [
|
|
33461
34383
|
{
|
|
33462
34384
|
"toolName": "phone",
|
|
@@ -33554,7 +34476,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
33554
34476
|
"verified": true,
|
|
33555
34477
|
"listPrice": "0.01",
|
|
33556
34478
|
"listPriceThousandths": 1e3,
|
|
33557
|
-
"catalogVersion": "2026-
|
|
34479
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
33558
34480
|
"params": [
|
|
33559
34481
|
{
|
|
33560
34482
|
"toolName": "domain",
|
|
@@ -33660,7 +34582,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
33660
34582
|
"verified": true,
|
|
33661
34583
|
"listPrice": "0.01",
|
|
33662
34584
|
"listPriceThousandths": 1e3,
|
|
33663
|
-
"catalogVersion": "2026-
|
|
34585
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
33664
34586
|
"params": [
|
|
33665
34587
|
{
|
|
33666
34588
|
"toolName": "domain",
|
|
@@ -33745,7 +34667,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
33745
34667
|
"verified": true,
|
|
33746
34668
|
"listPrice": "0.01",
|
|
33747
34669
|
"listPriceThousandths": 1e3,
|
|
33748
|
-
"catalogVersion": "2026-
|
|
34670
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
33749
34671
|
"params": [
|
|
33750
34672
|
{
|
|
33751
34673
|
"toolName": "email",
|
|
@@ -33794,7 +34716,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
33794
34716
|
"verified": true,
|
|
33795
34717
|
"listPrice": "0.01",
|
|
33796
34718
|
"listPriceThousandths": 1e3,
|
|
33797
|
-
"catalogVersion": "2026-
|
|
34719
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
33798
34720
|
"params": [
|
|
33799
34721
|
{
|
|
33800
34722
|
"toolName": "email",
|
|
@@ -33851,7 +34773,7 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
33851
34773
|
"verified": true,
|
|
33852
34774
|
"listPrice": "0.01",
|
|
33853
34775
|
"listPriceThousandths": 1e3,
|
|
33854
|
-
"catalogVersion": "2026-
|
|
34776
|
+
"catalogVersion": "2026-08-03T01:40:35.149Z",
|
|
33855
34777
|
"params": [
|
|
33856
34778
|
{
|
|
33857
34779
|
"toolName": "url",
|
|
@@ -33874,12 +34796,27 @@ var ORTHOGONAL_PLATFORM_TOOLS = [
|
|
|
33874
34796
|
}
|
|
33875
34797
|
];
|
|
33876
34798
|
var ORTHOGONAL_API_NAMES = {
|
|
34799
|
+
"abstract-avatars": "Abstract Avatars",
|
|
34800
|
+
"abstract-company-enrichment": "Abstract Company Enrichment",
|
|
34801
|
+
"abstract-email-reputation": "Abstract Email Reputation",
|
|
34802
|
+
"abstract-exchange-rates": "Abstract Exchange Rates",
|
|
34803
|
+
"abstract-iban-validation": "Abstract IBAN Validation",
|
|
34804
|
+
"abstract-image-processing": "Abstract Image Processing",
|
|
34805
|
+
"abstract-ip-intelligence": "Abstract IP Intelligence",
|
|
34806
|
+
"abstract-phone-intelligence": "Abstract Phone Intelligence",
|
|
34807
|
+
"abstract-public-holidays": "Abstract Public Holidays",
|
|
34808
|
+
"abstract-timezone": "Abstract Timezone",
|
|
34809
|
+
"abstract-vat-validation": "Abstract VAT Validation",
|
|
34810
|
+
"abstract-web-scraping": "Abstract Web Scraping",
|
|
34811
|
+
"abstract-website-screenshot": "Abstract Website Screenshot",
|
|
33877
34812
|
"agentmail": "AgentMail",
|
|
34813
|
+
"agentphone": "AgentPhone",
|
|
33878
34814
|
"andi": "Andi Search API",
|
|
33879
34815
|
"apollo": "Apollo API",
|
|
33880
34816
|
"aviato": "Aviato",
|
|
33881
34817
|
"baseten": "Baseten Model APIs",
|
|
33882
34818
|
"brand-dev": "Brand.dev API",
|
|
34819
|
+
"bytemine": "Bytemine",
|
|
33883
34820
|
"captaindata": "CaptainData",
|
|
33884
34821
|
"company-enrich": "Company Enrich",
|
|
33885
34822
|
"contactout": "ContactOut",
|
|
@@ -33891,12 +34828,16 @@ var ORTHOGONAL_API_NAMES = {
|
|
|
33891
34828
|
"edges": "Edges",
|
|
33892
34829
|
"elevenlabs": "ElevenLabs",
|
|
33893
34830
|
"exa": "Exa API",
|
|
34831
|
+
"fantastic-jobs": "Fantastic Jobs",
|
|
33894
34832
|
"fiber": "Fiber AI API",
|
|
34833
|
+
"findymail": "Findymail",
|
|
33895
34834
|
"fundable": "Fundable",
|
|
33896
34835
|
"happenstance": "Happenstance",
|
|
33897
34836
|
"hunter": "Hunter",
|
|
34837
|
+
"icypeas": "Icypeas",
|
|
33898
34838
|
"influencers-club": "Influencers Club",
|
|
33899
34839
|
"jina-s": "Jina Search Foundation API",
|
|
34840
|
+
"join-massive": "Join Massive",
|
|
33900
34841
|
"linkup": "Linkup API",
|
|
33901
34842
|
"logo": "Logo.dev",
|
|
33902
34843
|
"nano-banana": "Nano Banana",
|
|
@@ -33905,21 +34846,21 @@ var ORTHOGONAL_API_NAMES = {
|
|
|
33905
34846
|
"nyne": "Nyne.ai",
|
|
33906
34847
|
"ocean-io": "Ocean.io",
|
|
33907
34848
|
"olostep": "Olostep API",
|
|
33908
|
-
"openai": "OpenAI",
|
|
33909
34849
|
"openfunnel": "OpenFunnel",
|
|
33910
34850
|
"openmart": "Openmart",
|
|
33911
|
-
"parallel": "Parallel API",
|
|
33912
34851
|
"peopledatalabs": "People Data Labs",
|
|
33913
34852
|
"perplexity": "Perplexity API",
|
|
33914
34853
|
"precip": "Precip AI - Hyperlocal Weather Data API",
|
|
33915
34854
|
"predictleads": "PredictLeads",
|
|
33916
34855
|
"riveter": "Riveter API",
|
|
34856
|
+
"rocketreach": "RocketReach",
|
|
33917
34857
|
"scrapecreators": "Scrape Creators",
|
|
33918
34858
|
"scrapegraphai": "ScrapeGraphAI",
|
|
33919
34859
|
"searchapi": "SearchAPI",
|
|
33920
34860
|
"seltz": "Seltz",
|
|
33921
34861
|
"serper": "Serper",
|
|
33922
34862
|
"serper-scrape": "Serper Scrape",
|
|
34863
|
+
"signalbase": "Signalbase",
|
|
33923
34864
|
"sixtyfour": "Sixtyfour API",
|
|
33924
34865
|
"tako": "Tako",
|
|
33925
34866
|
"tavily": "Tavily API",
|
|
@@ -37254,7 +38195,7 @@ var CORE_BUILTIN_TOOLS_REGISTRY = [
|
|
|
37254
38195
|
{
|
|
37255
38196
|
id: "bash",
|
|
37256
38197
|
name: "Bash",
|
|
37257
|
-
description:
|
|
38198
|
+
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.",
|
|
37258
38199
|
category: BuiltInToolCategory.SANDBOX,
|
|
37259
38200
|
toolGroup: BuiltInToolGroup.SANDBOX_AGENT,
|
|
37260
38201
|
providers: [BuiltInToolProvider.MULTI],
|
|
@@ -37269,6 +38210,21 @@ var CORE_BUILTIN_TOOLS_REGISTRY = [
|
|
|
37269
38210
|
slow_ok: {
|
|
37270
38211
|
type: "boolean",
|
|
37271
38212
|
description: "Allow a longer timeout for commands expected to take a while (installs, builds, tests). Defaults to false (short timeout)."
|
|
38213
|
+
},
|
|
38214
|
+
timeout_ms: {
|
|
38215
|
+
type: "number",
|
|
38216
|
+
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."
|
|
38217
|
+
},
|
|
38218
|
+
run_in_background: {
|
|
38219
|
+
type: "boolean",
|
|
38220
|
+
description: "Start the command and yield its process_id immediately instead of waiting. Defaults to false."
|
|
38221
|
+
},
|
|
38222
|
+
process_id: {
|
|
38223
|
+
type: "string",
|
|
38224
|
+
description: "Optional caller-chosen durable process id (letters, numbers, dots, underscores, and hyphens). Omit to generate one.",
|
|
38225
|
+
minLength: 1,
|
|
38226
|
+
maxLength: 96,
|
|
38227
|
+
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*$"
|
|
37272
38228
|
}
|
|
37273
38229
|
},
|
|
37274
38230
|
required: ["command"]
|
|
@@ -37278,6 +38234,78 @@ var CORE_BUILTIN_TOOLS_REGISTRY = [
|
|
|
37278
38234
|
platformKeySupport: true,
|
|
37279
38235
|
hidden: true
|
|
37280
38236
|
},
|
|
38237
|
+
{
|
|
38238
|
+
id: "bash_output",
|
|
38239
|
+
name: "Bash Output",
|
|
38240
|
+
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.",
|
|
38241
|
+
category: BuiltInToolCategory.SANDBOX,
|
|
38242
|
+
toolGroup: BuiltInToolGroup.SANDBOX_AGENT,
|
|
38243
|
+
providers: [BuiltInToolProvider.MULTI],
|
|
38244
|
+
parametersSchema: {
|
|
38245
|
+
type: "object",
|
|
38246
|
+
properties: {
|
|
38247
|
+
process_id: {
|
|
38248
|
+
type: "string",
|
|
38249
|
+
description: "Durable process id returned by bash.",
|
|
38250
|
+
minLength: 1,
|
|
38251
|
+
maxLength: 96,
|
|
38252
|
+
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*$"
|
|
38253
|
+
},
|
|
38254
|
+
ack_delivery_id: {
|
|
38255
|
+
type: "string",
|
|
38256
|
+
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.",
|
|
38257
|
+
minLength: 1,
|
|
38258
|
+
maxLength: 64
|
|
38259
|
+
}
|
|
38260
|
+
},
|
|
38261
|
+
required: ["process_id"]
|
|
38262
|
+
},
|
|
38263
|
+
executionHint: "platform",
|
|
38264
|
+
requiresApiKey: false,
|
|
38265
|
+
platformKeySupport: true,
|
|
38266
|
+
hidden: true
|
|
38267
|
+
},
|
|
38268
|
+
{
|
|
38269
|
+
id: "kill_process",
|
|
38270
|
+
name: "Kill Process",
|
|
38271
|
+
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.",
|
|
38272
|
+
category: BuiltInToolCategory.SANDBOX,
|
|
38273
|
+
toolGroup: BuiltInToolGroup.SANDBOX_AGENT,
|
|
38274
|
+
providers: [BuiltInToolProvider.MULTI],
|
|
38275
|
+
parametersSchema: {
|
|
38276
|
+
type: "object",
|
|
38277
|
+
properties: {
|
|
38278
|
+
process_id: {
|
|
38279
|
+
type: "string",
|
|
38280
|
+
description: "Durable process id returned by bash.",
|
|
38281
|
+
minLength: 1,
|
|
38282
|
+
maxLength: 96,
|
|
38283
|
+
pattern: "^[A-Za-z0-9][A-Za-z0-9._-]*$"
|
|
38284
|
+
}
|
|
38285
|
+
},
|
|
38286
|
+
required: ["process_id"]
|
|
38287
|
+
},
|
|
38288
|
+
executionHint: "platform",
|
|
38289
|
+
requiresApiKey: false,
|
|
38290
|
+
platformKeySupport: true,
|
|
38291
|
+
hidden: true
|
|
38292
|
+
},
|
|
38293
|
+
{
|
|
38294
|
+
id: "list_processes",
|
|
38295
|
+
name: "List Processes",
|
|
38296
|
+
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.",
|
|
38297
|
+
category: BuiltInToolCategory.SANDBOX,
|
|
38298
|
+
toolGroup: BuiltInToolGroup.SANDBOX_AGENT,
|
|
38299
|
+
providers: [BuiltInToolProvider.MULTI],
|
|
38300
|
+
parametersSchema: {
|
|
38301
|
+
type: "object",
|
|
38302
|
+
properties: {}
|
|
38303
|
+
},
|
|
38304
|
+
executionHint: "platform",
|
|
38305
|
+
requiresApiKey: false,
|
|
38306
|
+
platformKeySupport: true,
|
|
38307
|
+
hidden: true
|
|
38308
|
+
},
|
|
37281
38309
|
{
|
|
37282
38310
|
id: "read_file",
|
|
37283
38311
|
name: "Read File",
|
|
@@ -39591,6 +40619,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
|
|
|
39591
40619
|
"deepseek-v4-flash": {
|
|
39592
40620
|
"vercel": "deepseek/deepseek-v4-flash"
|
|
39593
40621
|
},
|
|
40622
|
+
"deepseek-v4-flash-0731": {
|
|
40623
|
+
"vercel": "deepseek/deepseek-v4-flash-0731"
|
|
40624
|
+
},
|
|
39594
40625
|
"deepseek-v4-pro": {
|
|
39595
40626
|
"togetherai": "togetherai/deepseek-ai/DeepSeek-V4-Pro",
|
|
39596
40627
|
"vercel": "deepseek/deepseek-v4-pro"
|
|
@@ -40068,6 +41099,12 @@ var MODEL_FAMILY_PROVIDER_IDS = {
|
|
|
40068
41099
|
"grok-voice-think-fast-1.0": {
|
|
40069
41100
|
"vercel": "xai/grok-voice-think-fast-1.0"
|
|
40070
41101
|
},
|
|
41102
|
+
"grok-voice-think-fast-2-0": {
|
|
41103
|
+
"vercel": "xai/grok-voice-think-fast-2.0"
|
|
41104
|
+
},
|
|
41105
|
+
"grok-voice-think-fast-2.0": {
|
|
41106
|
+
"vercel": "xai/grok-voice-think-fast-2.0"
|
|
41107
|
+
},
|
|
40071
41108
|
"hy3": {
|
|
40072
41109
|
"vercel": "tencent/hy3"
|
|
40073
41110
|
},
|
|
@@ -40075,6 +41112,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
|
|
|
40075
41112
|
"togetherai": "togetherai/thinkingmachines/Inkling",
|
|
40076
41113
|
"vercel": "thinkingmachines/inkling"
|
|
40077
41114
|
},
|
|
41115
|
+
"inkling-small": {
|
|
41116
|
+
"vercel": "thinkingmachines/inkling-small"
|
|
41117
|
+
},
|
|
40078
41118
|
"interfaze-beta": {
|
|
40079
41119
|
"vercel": "interfaze/interfaze-beta"
|
|
40080
41120
|
},
|
|
@@ -40422,6 +41462,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
|
|
|
40422
41462
|
"togetherai": "togetherai/Qwen/Qwen3.6-Plus",
|
|
40423
41463
|
"vercel": "alibaba/qwen3.6-plus"
|
|
40424
41464
|
},
|
|
41465
|
+
"qwen3-7-flash": {
|
|
41466
|
+
"vercel": "alibaba/qwen3.7-flash"
|
|
41467
|
+
},
|
|
40425
41468
|
"qwen3-7-max": {
|
|
40426
41469
|
"togetherai": "togetherai/Qwen/Qwen3.7-Max",
|
|
40427
41470
|
"vercel": "alibaba/qwen3.7-max"
|
|
@@ -40508,6 +41551,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
|
|
|
40508
41551
|
"qwen3.6-plus": {
|
|
40509
41552
|
"vercel": "alibaba/qwen3.6-plus"
|
|
40510
41553
|
},
|
|
41554
|
+
"qwen3.7-flash": {
|
|
41555
|
+
"vercel": "alibaba/qwen3.7-flash"
|
|
41556
|
+
},
|
|
40511
41557
|
"qwen3.7-max": {
|
|
40512
41558
|
"vercel": "alibaba/qwen3.7-max"
|
|
40513
41559
|
},
|
|
@@ -40636,9 +41682,6 @@ var MANUAL_PROVIDER_MAP_OVERRIDES = {
|
|
|
40636
41682
|
"llama-3-3-70b": {
|
|
40637
41683
|
"togetherai": "togetherai/meta-llama/Meta-Llama-3.3-70B-Instruct-Turbo"
|
|
40638
41684
|
},
|
|
40639
|
-
"kimi-k2.5": {
|
|
40640
|
-
"workers-ai": "@cf/moonshotai/kimi-k2.5"
|
|
40641
|
-
},
|
|
40642
41685
|
"kimi-k2.6": {
|
|
40643
41686
|
"workers-ai": "@cf/moonshotai/kimi-k2.6"
|
|
40644
41687
|
},
|
|
@@ -40652,6 +41695,7 @@ var MANUAL_PROVIDER_MAP_OVERRIDES = {
|
|
|
40652
41695
|
"workers-ai": "@cf/google/gemma-4-26b-a4b-it"
|
|
40653
41696
|
},
|
|
40654
41697
|
"gpt-oss-120b": {
|
|
41698
|
+
"tinfoil": "tinfoil/gpt-oss-120b",
|
|
40655
41699
|
"workers-ai": "@cf/openai/gpt-oss-120b"
|
|
40656
41700
|
},
|
|
40657
41701
|
// GPT-5.4 Nano's normalized family alias should use the same CF gateway
|
|
@@ -41830,7 +42874,7 @@ var agentRuntimeConfigSchema = external_exports.object({
|
|
|
41830
42874
|
// lock-down gate pre-engine. Single-sourced as `tenancyStrategySchema` in
|
|
41831
42875
|
// `./tenancy-strategy`; the expansion + gate logic lives in apps/api.
|
|
41832
42876
|
tenancyStrategy: tenancyStrategySchema.optional()
|
|
41833
|
-
});
|
|
42877
|
+
}).strict();
|
|
41834
42878
|
var identityAdapterKindSchema = external_exports.enum(["oidc-jwt", "session", "custom"]);
|
|
41835
42879
|
var ASYMMETRIC_JWT_ALGORITHMS = [
|
|
41836
42880
|
"RS256",
|
|
@@ -44796,7 +45840,7 @@ var TOOL_CATALOG_FOR_FLOW_GENERATION = (() => {
|
|
|
44796
45840
|
const toolName = tool.id.replace(`orthogonal:${slug}:`, "");
|
|
44797
45841
|
vendorGroups.get(slug).push(toolName);
|
|
44798
45842
|
}
|
|
44799
|
-
const orthogonalLines = Array.from(vendorGroups.entries()).sort(([a], [
|
|
45843
|
+
const orthogonalLines = Array.from(vendorGroups.entries()).sort(([a], [b]) => a.localeCompare(b)).map(([slug, tools]) => {
|
|
44800
45844
|
const vendorName = ORTHOGONAL_API_NAMES[slug] ?? slug;
|
|
44801
45845
|
return `- **${vendorName}** (\`platform:orthogonal:${slug}:<tool>\`): ${tools.join(", ")}`;
|
|
44802
45846
|
});
|
|
@@ -48528,7 +49572,8 @@ import chalk6 from "chalk";
|
|
|
48528
49572
|
import React3 from "react";
|
|
48529
49573
|
import { render as render3 } from "ink";
|
|
48530
49574
|
import { useState as useState4, useEffect as useEffect5 } from "react";
|
|
48531
|
-
import { writeFileSync } from "fs";
|
|
49575
|
+
import { writeFileSync, mkdirSync } from "fs";
|
|
49576
|
+
import { dirname as dirname2 } from "path";
|
|
48532
49577
|
|
|
48533
49578
|
// src/lib/terminal-image.ts
|
|
48534
49579
|
var ESC = "\x1B";
|
|
@@ -49327,6 +50372,31 @@ recordsCommand.command("export").description("Export records to a file").option(
|
|
|
49327
50372
|
process.exit(1);
|
|
49328
50373
|
}
|
|
49329
50374
|
});
|
|
50375
|
+
recordsCommand.command("typegen").description(
|
|
50376
|
+
"Generate TypeScript types for your schematized record collections. Writes a .d.ts that augments the @runtypelabs/sdk RecordCollections map so client.records.from(slug) types record metadata. Commit the file and re-run this in CI, diffing against the committed copy (e.g. `runtype records typegen -o runtype-records.d.ts && git diff --exit-code runtype-records.d.ts`), to catch collection-schema drift."
|
|
50377
|
+
).option(
|
|
50378
|
+
"-o, --output <file>",
|
|
50379
|
+
"Write the declarations to a file (default: print to stdout)"
|
|
50380
|
+
).action(async (options) => {
|
|
50381
|
+
const apiKey = await ensureAuth();
|
|
50382
|
+
if (!apiKey) return;
|
|
50383
|
+
const client = createCliClient(apiKey);
|
|
50384
|
+
try {
|
|
50385
|
+
const dts = await client.collections.typegen();
|
|
50386
|
+
if (options.output) {
|
|
50387
|
+
const dir = dirname2(options.output);
|
|
50388
|
+
if (dir && dir !== ".") mkdirSync(dir, { recursive: true });
|
|
50389
|
+
writeFileSync(options.output, dts);
|
|
50390
|
+
console.log(chalk6.green(`Wrote record collection types to ${options.output}`));
|
|
50391
|
+
return;
|
|
50392
|
+
}
|
|
50393
|
+
process.stdout.write(dts);
|
|
50394
|
+
} catch (error51) {
|
|
50395
|
+
const message = error51 instanceof Error ? error51.message : "Unknown error";
|
|
50396
|
+
console.error(chalk6.red(`Failed to generate record types: ${message}`));
|
|
50397
|
+
process.exit(1);
|
|
50398
|
+
}
|
|
50399
|
+
});
|
|
49330
50400
|
function csvEscape(value) {
|
|
49331
50401
|
const text = neutralizeCsvFormula(value);
|
|
49332
50402
|
if (text.includes(",") || text.includes('"') || text.includes("\n")) {
|
|
@@ -50437,18 +51507,18 @@ batchCommand.command("summary").description("Show a summary of active and recent
|
|
|
50437
51507
|
console.log(` Recently completed: ${data.recentlyCompleted}`);
|
|
50438
51508
|
if (data.batches.length > 0) {
|
|
50439
51509
|
console.log(chalk9.cyan("\nActive Batches:"));
|
|
50440
|
-
for (const
|
|
51510
|
+
for (const b of data.batches) {
|
|
50441
51511
|
console.log(
|
|
50442
|
-
` ${chalk9.green(
|
|
51512
|
+
` ${chalk9.green(b.id)} ${b.flowName ?? ""} \u2014 ${b.status} (${b.processedRecords}/${b.totalRecords}, ${b.progress}%)`
|
|
50443
51513
|
);
|
|
50444
51514
|
}
|
|
50445
51515
|
}
|
|
50446
51516
|
if (data.recent.length > 0) {
|
|
50447
51517
|
console.log(chalk9.cyan("\nRecently Completed:"));
|
|
50448
|
-
for (const
|
|
50449
|
-
const statusColor =
|
|
51518
|
+
for (const b of data.recent) {
|
|
51519
|
+
const statusColor = b.status === "completed" ? chalk9.green(b.status) : chalk9.red(b.status);
|
|
50450
51520
|
console.log(
|
|
50451
|
-
` ${chalk9.green(
|
|
51521
|
+
` ${chalk9.green(b.id)} ${b.flowName ?? ""} \u2014 ${statusColor} (${b.processedRecords}/${b.totalRecords})`
|
|
50452
51522
|
);
|
|
50453
51523
|
}
|
|
50454
51524
|
}
|
|
@@ -50477,18 +51547,18 @@ batchCommand.command("summary").description("Show a summary of active and recent
|
|
|
50477
51547
|
{ label: "Active", value: data.activeBatches, color: "green" },
|
|
50478
51548
|
{ label: "Recently completed", value: data.recentlyCompleted }
|
|
50479
51549
|
];
|
|
50480
|
-
for (const
|
|
51550
|
+
for (const b of data.batches) {
|
|
50481
51551
|
fields.push({
|
|
50482
|
-
label:
|
|
50483
|
-
value: `${
|
|
51552
|
+
label: b.id,
|
|
51553
|
+
value: `${b.flowName ?? ""} \u2014 ${b.status} (${b.processedRecords}/${b.totalRecords}, ${b.progress}%)`,
|
|
50484
51554
|
color: "yellow"
|
|
50485
51555
|
});
|
|
50486
51556
|
}
|
|
50487
|
-
for (const
|
|
51557
|
+
for (const b of data.recent) {
|
|
50488
51558
|
fields.push({
|
|
50489
|
-
label:
|
|
50490
|
-
value: `${
|
|
50491
|
-
color:
|
|
51559
|
+
label: b.id,
|
|
51560
|
+
value: `${b.flowName ?? ""} \u2014 ${b.status} (${b.processedRecords}/${b.totalRecords})`,
|
|
51561
|
+
color: b.status === "completed" ? "green" : "red"
|
|
50492
51562
|
});
|
|
50493
51563
|
}
|
|
50494
51564
|
setResultNode(React6.createElement(EntityCard, { fields }));
|
|
@@ -52258,9 +53328,9 @@ Histogram (${histogram.length} buckets):`));
|
|
|
52258
53328
|
if (histogram.length === 0) {
|
|
52259
53329
|
console.log(chalk15.gray(" No data"));
|
|
52260
53330
|
} else {
|
|
52261
|
-
for (const
|
|
52262
|
-
const errPart =
|
|
52263
|
-
console.log(` ${chalk15.dim(
|
|
53331
|
+
for (const b of histogram) {
|
|
53332
|
+
const errPart = b.errors > 0 ? chalk15.red(` (${b.errors} errors)`) : "";
|
|
53333
|
+
console.log(` ${chalk15.dim(b.bucket)} ${b.count}${errPart}`);
|
|
52264
53334
|
}
|
|
52265
53335
|
}
|
|
52266
53336
|
} catch (error51) {
|
|
@@ -52282,7 +53352,7 @@ Histogram (${histogram.length} buckets):`));
|
|
|
52282
53352
|
const stats = res.data;
|
|
52283
53353
|
const histogram = stats.histogram ?? [];
|
|
52284
53354
|
const histogramSummary = histogram.length === 0 ? "No data" : histogram.map(
|
|
52285
|
-
(
|
|
53355
|
+
(b) => `${b.bucket}: ${b.count}${b.errors > 0 ? ` (${b.errors} err)` : ""}`
|
|
52286
53356
|
).join("\n");
|
|
52287
53357
|
setResultNode(
|
|
52288
53358
|
React11.createElement(EntityCard, {
|
|
@@ -56328,7 +57398,7 @@ function extractTrackedFiles(snapshots, liveTools, planPath) {
|
|
|
56328
57398
|
result.push({ path: planPath, type: "plan" });
|
|
56329
57399
|
}
|
|
56330
57400
|
const sorted = Array.from(fileMap.values()).sort(
|
|
56331
|
-
(a,
|
|
57401
|
+
(a, b) => (b.lastTouchedAt ?? 0) - (a.lastTouchedAt ?? 0)
|
|
56332
57402
|
);
|
|
56333
57403
|
result.push(...sorted);
|
|
56334
57404
|
return result;
|
|
@@ -57559,7 +58629,7 @@ function ModelPicker({ currentModel, onSelect, onCancel, models }) {
|
|
|
57559
58629
|
[contentWidth]
|
|
57560
58630
|
);
|
|
57561
58631
|
const sorted = useMemo7(
|
|
57562
|
-
() => [...availableModels].sort((a,
|
|
58632
|
+
() => [...availableModels].sort((a, b) => a.group.localeCompare(b.group)),
|
|
57563
58633
|
[availableModels]
|
|
57564
58634
|
);
|
|
57565
58635
|
const filtered = useMemo7(() => {
|
|
@@ -61938,7 +63008,7 @@ function getSanitizedEnv() {
|
|
|
61938
63008
|
return clean;
|
|
61939
63009
|
}
|
|
61940
63010
|
function redactSecrets(output, secrets) {
|
|
61941
|
-
const sorted = secrets.filter((s) => s.length >= 8).sort((a,
|
|
63011
|
+
const sorted = secrets.filter((s) => s.length >= 8).sort((a, b) => b.length - a.length);
|
|
61942
63012
|
let redacted = output;
|
|
61943
63013
|
for (const secret of sorted) {
|
|
61944
63014
|
redacted = redacted.replaceAll(secret, "[REDACTED]");
|
|
@@ -62871,7 +63941,7 @@ function buildTree(dirPath, maxDepth, depth = 0) {
|
|
|
62871
63941
|
return [`${" ".repeat(depth)}[error reading ${normalizeToolPath(dirPath)}: ${message}]`];
|
|
62872
63942
|
}
|
|
62873
63943
|
const lines = [];
|
|
62874
|
-
for (const entry of entries.sort((a,
|
|
63944
|
+
for (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {
|
|
62875
63945
|
const entryPath = path10.join(dirPath, entry.name);
|
|
62876
63946
|
if (shouldIgnoreRepoEntry(entryPath)) continue;
|
|
62877
63947
|
lines.push(`${" ".repeat(depth)}- ${entry.name}${entry.isDirectory() ? "/" : ""}`);
|
|
@@ -63126,7 +64196,7 @@ function createDefaultLocalTools(context) {
|
|
|
63126
64196
|
});
|
|
63127
64197
|
}
|
|
63128
64198
|
});
|
|
63129
|
-
const matches = candidates.sort((a,
|
|
64199
|
+
const matches = candidates.sort((a, b) => b.score - a.score || a.text.localeCompare(b.text)).map((candidate) => candidate.text).filter((text, index, array2) => array2.indexOf(text) === index).slice(0, maxResults);
|
|
63130
64200
|
return matches.length > 0 ? matches.join("\n") : `No matches found for "${query}" under ${normalizeToolPath(startPath.resolvedPath)}`;
|
|
63131
64201
|
}
|
|
63132
64202
|
},
|
|
@@ -63175,7 +64245,7 @@ function createDefaultLocalTools(context) {
|
|
|
63175
64245
|
});
|
|
63176
64246
|
}
|
|
63177
64247
|
});
|
|
63178
|
-
const rankedMatches = matches.sort((a,
|
|
64248
|
+
const rankedMatches = matches.sort((a, b) => b.score - a.score || a.path.localeCompare(b.path)).map((match) => match.path).slice(0, maxResults);
|
|
63179
64249
|
return rankedMatches.length > 0 ? rankedMatches.join("\n") : `No files matched "${pattern}" under ${normalizeToolPath(startPath.resolvedPath)}`;
|
|
63180
64250
|
}
|
|
63181
64251
|
},
|
|
@@ -67430,8 +68500,8 @@ import React20 from "react";
|
|
|
67430
68500
|
import { render as render20 } from "ink";
|
|
67431
68501
|
import { useState as useState37, useEffect as useEffect31 } from "react";
|
|
67432
68502
|
import { Text as Text34 } from "ink";
|
|
67433
|
-
import { readFileSync as readFileSync16, writeFileSync as writeFileSync6, mkdirSync as
|
|
67434
|
-
import { dirname as
|
|
68503
|
+
import { readFileSync as readFileSync16, writeFileSync as writeFileSync6, mkdirSync as mkdirSync9 } from "fs";
|
|
68504
|
+
import { dirname as dirname9, relative as relative6, resolve as resolve10 } from "path";
|
|
67435
68505
|
|
|
67436
68506
|
// src/lib/eval-discovery.ts
|
|
67437
68507
|
import { readdirSync as readdirSync6 } from "fs";
|
|
@@ -67698,14 +68768,14 @@ evalCommand.command("list").description("List eval batches").option("--flow <id>
|
|
|
67698
68768
|
total,
|
|
67699
68769
|
emptyMessage: "No eval batches found",
|
|
67700
68770
|
renderCard: (item) => {
|
|
67701
|
-
const
|
|
67702
|
-
const name =
|
|
67703
|
-
const progress =
|
|
67704
|
-
const statusColor =
|
|
68771
|
+
const b = item;
|
|
68772
|
+
const name = b.name || b.id;
|
|
68773
|
+
const progress = b.totalRecords ? `${b.completedRecords ?? 0}/${b.totalRecords}` : "";
|
|
68774
|
+
const statusColor = b.status === "completed" ? "green" : "yellow";
|
|
67705
68775
|
return React20.createElement(
|
|
67706
68776
|
Text34,
|
|
67707
68777
|
{ color: statusColor },
|
|
67708
|
-
` ${
|
|
68778
|
+
` ${b.id} ${name} [${b.status}] ${progress}`
|
|
67709
68779
|
);
|
|
67710
68780
|
}
|
|
67711
68781
|
});
|
|
@@ -67987,7 +69057,7 @@ evalCommand.command("run [idOrDirPrefix]").description(
|
|
|
67987
69057
|
try {
|
|
67988
69058
|
const xml = buildJUnitXml(outcomes.map(toJUnitSuite));
|
|
67989
69059
|
const outPath = resolve10(options.junit);
|
|
67990
|
-
|
|
69060
|
+
mkdirSync9(dirname9(outPath), { recursive: true });
|
|
67991
69061
|
writeFileSync6(outPath, xml, "utf-8");
|
|
67992
69062
|
console.log(chalk28.gray(`JUnit results written to ${options.junit}`));
|
|
67993
69063
|
} catch (error51) {
|
|
@@ -68872,19 +69942,19 @@ import { execFileSync } from "child_process";
|
|
|
68872
69942
|
// src/lib/persona-init.ts
|
|
68873
69943
|
init_credential_store();
|
|
68874
69944
|
|
|
68875
|
-
// ../../node_modules/.pnpm/@runtypelabs+persona@4.
|
|
68876
|
-
var
|
|
68877
|
-
var
|
|
68878
|
-
function
|
|
68879
|
-
return e?.cdnBase?.trim().replace(/\/+$/, "").replace(/[\\'"<>`]/g, (r) => `%${r.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`) || `https://cdn.jsdelivr.net/npm/@runtypelabs/persona@${
|
|
69945
|
+
// ../../node_modules/.pnpm/@runtypelabs+persona@4.15.0/node_modules/@runtypelabs/persona/dist/codegen.js
|
|
69946
|
+
var S = "4.15.0";
|
|
69947
|
+
var x = S;
|
|
69948
|
+
function $(e) {
|
|
69949
|
+
return e?.cdnBase?.trim().replace(/\/+$/, "").replace(/[\\'"<>`]/g, (r) => `%${r.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`) || `https://cdn.jsdelivr.net/npm/@runtypelabs/persona@${x}/dist`;
|
|
68880
69950
|
}
|
|
68881
69951
|
function u(e) {
|
|
68882
69952
|
if (e !== void 0) return typeof e == "string" ? e : Array.isArray(e) ? `[${e.map((i) => i.toString()).join(", ")}]` : e.toString();
|
|
68883
69953
|
}
|
|
68884
|
-
function
|
|
69954
|
+
function v(e) {
|
|
68885
69955
|
if (e) return { getHeaders: u(e.getHeaders), onFeedback: u(e.onFeedback), onCopy: u(e.onCopy), requestMiddleware: u(e.requestMiddleware), actionHandlers: u(e.actionHandlers), actionParsers: u(e.actionParsers), postprocessMessage: u(e.postprocessMessage), contextProviders: u(e.contextProviders), streamParser: u(e.streamParser) };
|
|
68886
69956
|
}
|
|
68887
|
-
var
|
|
69957
|
+
var A = `({ text, message }: any) => {
|
|
68888
69958
|
const jsonSource = (message as any).rawContent || text || message.content;
|
|
68889
69959
|
if (!jsonSource || typeof jsonSource !== 'string') return null;
|
|
68890
69960
|
let cleanJson = jsonSource
|
|
@@ -68898,7 +69968,7 @@ var x = `({ text, message }: any) => {
|
|
|
68898
69968
|
} catch (e) { return null; }
|
|
68899
69969
|
return null;
|
|
68900
69970
|
}`;
|
|
68901
|
-
var
|
|
69971
|
+
var j = `function(ctx) {
|
|
68902
69972
|
var jsonSource = ctx.message.rawContent || ctx.text || ctx.message.content;
|
|
68903
69973
|
if (!jsonSource || typeof jsonSource !== 'string') return null;
|
|
68904
69974
|
var cleanJson = jsonSource
|
|
@@ -68912,7 +69982,7 @@ var A = `function(ctx) {
|
|
|
68912
69982
|
} catch (e) { return null; }
|
|
68913
69983
|
return null;
|
|
68914
69984
|
}`;
|
|
68915
|
-
var
|
|
69985
|
+
var O = `(action: any, context: any) => {
|
|
68916
69986
|
if (action.type !== 'nav_then_click') return;
|
|
68917
69987
|
const payload = action.payload || action.raw || {};
|
|
68918
69988
|
const url = payload?.page;
|
|
@@ -68930,7 +70000,7 @@ var j = `(action: any, context: any) => {
|
|
|
68930
70000
|
window.location.href = targetUrl;
|
|
68931
70001
|
return { handled: true, displayText: text };
|
|
68932
70002
|
}`;
|
|
68933
|
-
var
|
|
70003
|
+
var E = `function(action, context) {
|
|
68934
70004
|
if (action.type !== 'nav_then_click') return;
|
|
68935
70005
|
var payload = action.payload || action.raw || {};
|
|
68936
70006
|
var url = payload.page;
|
|
@@ -68948,27 +70018,27 @@ var O = `function(action, context) {
|
|
|
68948
70018
|
window.location.href = targetUrl;
|
|
68949
70019
|
return { handled: true, displayText: text };
|
|
68950
70020
|
}`;
|
|
68951
|
-
var
|
|
70021
|
+
var _ = `(parsed: any) => {
|
|
68952
70022
|
if (!parsed || typeof parsed !== 'object') return null;
|
|
68953
70023
|
if (parsed.action === 'nav_then_click') return 'Navigating...';
|
|
68954
70024
|
if (parsed.action === 'message') return parsed.text || '';
|
|
68955
70025
|
if (parsed.action === 'message_and_click') return parsed.text || 'Processing...';
|
|
68956
70026
|
return parsed.text || null;
|
|
68957
70027
|
}`;
|
|
68958
|
-
var
|
|
70028
|
+
var T = `function(parsed) {
|
|
68959
70029
|
if (!parsed || typeof parsed !== 'object') return null;
|
|
68960
70030
|
if (parsed.action === 'nav_then_click') return 'Navigating...';
|
|
68961
70031
|
if (parsed.action === 'message') return parsed.text || '';
|
|
68962
70032
|
if (parsed.action === 'message_and_click') return parsed.text || 'Processing...';
|
|
68963
70033
|
return parsed.text || null;
|
|
68964
70034
|
}`;
|
|
68965
|
-
function
|
|
70035
|
+
function M(e) {
|
|
68966
70036
|
if (!e) return null;
|
|
68967
70037
|
let i = e.toString();
|
|
68968
70038
|
return i.includes("createJsonStreamParser") || i.includes("partial-json") ? "json" : i.includes("createRegexJsonParser") || i.includes("regex") ? "regex-json" : i.includes("createXmlParser") || i.includes("<text>") ? "xml" : null;
|
|
68969
70039
|
}
|
|
68970
70040
|
function h(e) {
|
|
68971
|
-
return e.parserType ??
|
|
70041
|
+
return e.parserType ?? M(e.streamParser) ?? "plain";
|
|
68972
70042
|
}
|
|
68973
70043
|
function g(e, i) {
|
|
68974
70044
|
let r = [];
|
|
@@ -68993,6 +70063,15 @@ function f(e, i) {
|
|
|
68993
70063
|
return r;
|
|
68994
70064
|
}
|
|
68995
70065
|
function y(e, i) {
|
|
70066
|
+
if (!e.suggestions) return [];
|
|
70067
|
+
let r = JSON.stringify(e.suggestions, null, 2).split(`
|
|
70068
|
+
`);
|
|
70069
|
+
return r.map((s, a) => {
|
|
70070
|
+
let t = a === 0 ? `${i}suggestions: ` : i, n = a === r.length - 1 ? "," : "";
|
|
70071
|
+
return `${t}${s}${n}`;
|
|
70072
|
+
});
|
|
70073
|
+
}
|
|
70074
|
+
function C(e, i) {
|
|
68996
70075
|
let r = [];
|
|
68997
70076
|
if (e.layout) {
|
|
68998
70077
|
let s = e.layout.header && Object.keys(e.layout.header).some((t) => t !== "render"), a = e.layout.messages && Object.keys(e.layout.messages).some((t) => t !== "renderUserMessage" && t !== "renderAssistantMessage");
|
|
@@ -69008,11 +70087,11 @@ function y(e, i) {
|
|
|
69008
70087
|
}
|
|
69009
70088
|
return r;
|
|
69010
70089
|
}
|
|
69011
|
-
function
|
|
70090
|
+
function w(e, i) {
|
|
69012
70091
|
let r = [];
|
|
69013
70092
|
return e && (e.getHeaders && r.push(`${i}getHeaders: ${e.getHeaders},`), e.requestMiddleware && r.push(`${i}requestMiddleware: ${e.requestMiddleware},`), e.actionParsers && r.push(`${i}actionParsers: ${e.actionParsers},`), e.actionHandlers && r.push(`${i}actionHandlers: ${e.actionHandlers},`), e.contextProviders && r.push(`${i}contextProviders: ${e.contextProviders},`), e.streamParser && r.push(`${i}streamParser: ${e.streamParser},`)), r;
|
|
69014
70093
|
}
|
|
69015
|
-
function
|
|
70094
|
+
function k(e, i, r) {
|
|
69016
70095
|
Object.entries(i).forEach(([s, a]) => {
|
|
69017
70096
|
if (!(a === void 0 || typeof a == "function")) {
|
|
69018
70097
|
if (Array.isArray(a)) {
|
|
@@ -69020,7 +70099,7 @@ function E(e, i, r) {
|
|
|
69020
70099
|
return;
|
|
69021
70100
|
}
|
|
69022
70101
|
if (a && typeof a == "object") {
|
|
69023
|
-
e.push(`${r}${s}: {`),
|
|
70102
|
+
e.push(`${r}${s}: {`), k(e, a, `${r} `), e.push(`${r}},`);
|
|
69024
70103
|
return;
|
|
69025
70104
|
}
|
|
69026
70105
|
e.push(`${r}${s}: ${JSON.stringify(a)},`);
|
|
@@ -69028,18 +70107,18 @@ function E(e, i, r) {
|
|
|
69028
70107
|
});
|
|
69029
70108
|
}
|
|
69030
70109
|
function d(e, i, r, s) {
|
|
69031
|
-
r && (e.push(`${s}${i}: {`),
|
|
70110
|
+
r && (e.push(`${s}${i}: {`), k(e, r, `${s} `), e.push(`${s}},`));
|
|
69032
70111
|
}
|
|
69033
70112
|
function c(e) {
|
|
69034
70113
|
return (e?.target ?? "body").replace(/\\/g, "\\\\").replace(/'/g, "\\'");
|
|
69035
70114
|
}
|
|
69036
|
-
function
|
|
70115
|
+
function R(e, i = "esm", r) {
|
|
69037
70116
|
let s = { ...e };
|
|
69038
70117
|
delete s.postprocessMessage, delete s.initialMessages;
|
|
69039
|
-
let a = r ? { ...r, hooks:
|
|
69040
|
-
return i === "esm" ?
|
|
70118
|
+
let a = r ? { ...r, hooks: v(r.hooks) } : void 0;
|
|
70119
|
+
return i === "esm" ? W(s, a) : i === "script-installer" ? D(s, a) : i === "script-advanced" ? F(s, a) : i === "react-component" ? H(s, a) : i === "react-advanced" ? N(s, a) : J(s, a);
|
|
69041
70120
|
}
|
|
69042
|
-
function
|
|
70121
|
+
function W(e, i) {
|
|
69043
70122
|
let r = i?.hooks, s = h(e), a = s !== "plain", t = ["import '@runtypelabs/persona/widget.css';", "import { initAgentWidget, markdownPostprocessor } from '@runtypelabs/persona';", "", "initAgentWidget({", ` target: '${c(i)}',`, " config: {"];
|
|
69044
70123
|
return e.apiUrl && t.push(` apiUrl: "${e.apiUrl}",`), e.clientToken && t.push(` clientToken: "${e.clientToken}",`), e.agentId && t.push(` agentId: "${e.agentId}",`), e.target && t.push(` target: "${e.target}",`), e.flowId && t.push(` flowId: "${e.flowId}",`), a && t.push(` parserType: "${s}",`), e.theme && typeof e.theme == "object" && Object.keys(e.theme).length > 0 && d(t, "theme", e.theme, " "), e.launcher && d(t, "launcher", e.launcher, " "), e.copy && (t.push(" copy: {"), Object.entries(e.copy).forEach(([n, o]) => {
|
|
69045
70124
|
t.push(` ${n}: "${o}",`);
|
|
@@ -69051,12 +70130,12 @@ function R(e, i) {
|
|
|
69051
70130
|
typeof o == "string" ? t.push(` ${n}: "${o}",`) : typeof o == "boolean" && t.push(` ${n}: ${o},`);
|
|
69052
70131
|
}), t.push(" },")), e.features && (t.push(" features: {"), Object.entries(e.features).forEach(([n, o]) => {
|
|
69053
70132
|
t.push(` ${n}: ${o},`);
|
|
69054
|
-
}), t.push(" },")), e.suggestionChips && e.suggestionChips.length > 0 && (t.push(" suggestionChips: ["), e.suggestionChips.forEach((n) => {
|
|
70133
|
+
}), t.push(" },")), t.push(...y(e, " ")), e.suggestionChips && e.suggestionChips.length > 0 && (t.push(" suggestionChips: ["), e.suggestionChips.forEach((n) => {
|
|
69055
70134
|
t.push(` "${n}",`);
|
|
69056
|
-
}), t.push(" ],")), e.suggestionChipsConfig && (t.push(" suggestionChipsConfig: {"), e.suggestionChipsConfig.fontFamily && t.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`), e.suggestionChipsConfig.fontWeight && t.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`), e.suggestionChipsConfig.paddingX && t.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`), e.suggestionChipsConfig.paddingY && t.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`), t.push(" },")), t.push(...g(e, " ")), t.push(...m(e, " ", r)), t.push(...f(e, " ")), t.push(...
|
|
70135
|
+
}), t.push(" ],")), e.suggestionChipsConfig && (t.push(" suggestionChipsConfig: {"), e.suggestionChipsConfig.fontFamily && t.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`), e.suggestionChipsConfig.fontWeight && t.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`), e.suggestionChipsConfig.paddingX && t.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`), e.suggestionChipsConfig.paddingY && t.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`), t.push(" },")), t.push(...g(e, " ")), t.push(...m(e, " ", r)), t.push(...f(e, " ")), t.push(...C(e, " ")), t.push(...w(r, " ")), e.debug && t.push(` debug: ${e.debug},`), r?.postprocessMessage ? t.push(` postprocessMessage: ${r.postprocessMessage}`) : t.push(" postprocessMessage: ({ text }) => markdownPostprocessor(text)"), t.push(" }"), t.push("});"), t.join(`
|
|
69057
70136
|
`);
|
|
69058
70137
|
}
|
|
69059
|
-
function
|
|
70138
|
+
function H(e, i) {
|
|
69060
70139
|
let r = i?.hooks, s = h(e), a = s !== "plain", t = ["// ChatWidget.tsx", "'use client'; // Required for Next.js - remove for Vite/CRA", "", "import { useEffect } from 'react';", "import '@runtypelabs/persona/widget.css';", "import { initAgentWidget, markdownPostprocessor } from '@runtypelabs/persona';", "import type { AgentWidgetInitHandle } from '@runtypelabs/persona';", "", "export function ChatWidget() {", " useEffect(() => {", " let handle: AgentWidgetInitHandle | null = null;", "", " handle = initAgentWidget({", ` target: '${c(i)}',`, " config: {"];
|
|
69061
70140
|
return e.apiUrl && t.push(` apiUrl: "${e.apiUrl}",`), e.clientToken && t.push(` clientToken: "${e.clientToken}",`), e.agentId && t.push(` agentId: "${e.agentId}",`), e.target && t.push(` target: "${e.target}",`), e.flowId && t.push(` flowId: "${e.flowId}",`), a && t.push(` parserType: "${s}",`), e.theme && typeof e.theme == "object" && Object.keys(e.theme).length > 0 && d(t, "theme", e.theme, " "), e.launcher && d(t, "launcher", e.launcher, " "), e.copy && (t.push(" copy: {"), Object.entries(e.copy).forEach(([n, o]) => {
|
|
69062
70141
|
t.push(` ${n}: "${o}",`);
|
|
@@ -69068,12 +70147,12 @@ function W(e, i) {
|
|
|
69068
70147
|
typeof o == "string" ? t.push(` ${n}: "${o}",`) : typeof o == "boolean" && t.push(` ${n}: ${o},`);
|
|
69069
70148
|
}), t.push(" },")), e.features && (t.push(" features: {"), Object.entries(e.features).forEach(([n, o]) => {
|
|
69070
70149
|
t.push(` ${n}: ${o},`);
|
|
69071
|
-
}), t.push(" },")), e.suggestionChips && e.suggestionChips.length > 0 && (t.push(" suggestionChips: ["), e.suggestionChips.forEach((n) => {
|
|
70150
|
+
}), t.push(" },")), t.push(...y(e, " ")), e.suggestionChips && e.suggestionChips.length > 0 && (t.push(" suggestionChips: ["), e.suggestionChips.forEach((n) => {
|
|
69072
70151
|
t.push(` "${n}",`);
|
|
69073
|
-
}), t.push(" ],")), e.suggestionChipsConfig && (t.push(" suggestionChipsConfig: {"), e.suggestionChipsConfig.fontFamily && t.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`), e.suggestionChipsConfig.fontWeight && t.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`), e.suggestionChipsConfig.paddingX && t.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`), e.suggestionChipsConfig.paddingY && t.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`), t.push(" },")), t.push(...g(e, " ")), t.push(...m(e, " ", r)), t.push(...f(e, " ")), t.push(...
|
|
70152
|
+
}), t.push(" ],")), e.suggestionChipsConfig && (t.push(" suggestionChipsConfig: {"), e.suggestionChipsConfig.fontFamily && t.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`), e.suggestionChipsConfig.fontWeight && t.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`), e.suggestionChipsConfig.paddingX && t.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`), e.suggestionChipsConfig.paddingY && t.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`), t.push(" },")), t.push(...g(e, " ")), t.push(...m(e, " ", r)), t.push(...f(e, " ")), t.push(...C(e, " ")), t.push(...w(r, " ")), e.debug && t.push(` debug: ${e.debug},`), r?.postprocessMessage ? t.push(` postprocessMessage: ${r.postprocessMessage}`) : t.push(" postprocessMessage: ({ text }) => markdownPostprocessor(text)"), t.push(" }"), t.push(" });"), t.push(""), t.push(" // Cleanup on unmount"), t.push(" return () => {"), t.push(" if (handle) {"), t.push(" handle.destroy();"), t.push(" }"), t.push(" };"), t.push(" }, []);"), t.push(""), t.push(" return null; // Widget injects itself into the DOM"), t.push("}"), t.push(""), t.push("// Usage in your app:"), t.push("// import { ChatWidget } from './components/ChatWidget';"), t.push("//"), t.push("// export default function App() {"), t.push("// return ("), t.push("// <div>"), t.push("// {/* Your app content */}"), t.push("// <ChatWidget />"), t.push("// </div>"), t.push("// );"), t.push("// }"), t.join(`
|
|
69074
70153
|
`);
|
|
69075
70154
|
}
|
|
69076
|
-
function
|
|
70155
|
+
function N(e, i) {
|
|
69077
70156
|
let r = i?.hooks, s = ["// ChatWidgetAdvanced.tsx", "'use client'; // Required for Next.js - remove for Vite/CRA", "", "import { useEffect } from 'react';", "import '@runtypelabs/persona/widget.css';", "import {", " initAgentWidget,", " createFlexibleJsonStreamParser,", " defaultJsonActionParser,", " defaultActionHandlers,", " markdownPostprocessor", "} from '@runtypelabs/persona';", "import type { AgentWidgetInitHandle } from '@runtypelabs/persona';", "", "const STORAGE_KEY = 'chat-widget-state';", "const PROCESSED_ACTIONS_KEY = 'chat-widget-processed-actions';", "", "// Types for DOM elements", "interface PageElement {", " type: string;", " tagName: string;", " selector: string;", " innerText: string;", " href?: string;", "}", "", "interface DOMContext {", " page_elements: PageElement[];", " page_element_count: number;", " element_types: Record<string, number>;", " page_url: string;", " page_title: string;", " timestamp: string;", "}", "", "// DOM context provider - extracts page elements for AI context", "const collectDOMContext = (): DOMContext => {", " const selectors = {", ` products: '[data-product-id], .product-card, .product-item, [role="article"]',`, ` buttons: 'button, [role="button"], .btn',`, " links: 'a[href]',", " inputs: 'input, textarea, select'", " };", "", " const elements: PageElement[] = [];", " Object.entries(selectors).forEach(([type, selector]) => {", " document.querySelectorAll(selector).forEach((element) => {", " if (!(element instanceof HTMLElement)) return;", " ", " // Exclude elements within the widget", " const widgetHost = element.closest('.persona-host');", " if (widgetHost) return;", " ", " const text = element.innerText?.trim();", " if (!text) return;", "", " const selectorString =", " element.id ? `#${element.id}` :", " element.getAttribute('data-testid') ? `[data-testid=\"${element.getAttribute('data-testid')}\"]` :", " element.getAttribute('data-product-id') ? `[data-product-id=\"${element.getAttribute('data-product-id')}\"]` :", " element.tagName.toLowerCase();", "", " const elementData: PageElement = {", " type,", " tagName: element.tagName.toLowerCase(),", " selector: selectorString,", " innerText: text.substring(0, 200)", " };", "", " if (type === 'links' && element instanceof HTMLAnchorElement && element.href) {", " elementData.href = element.href;", " }", "", " elements.push(elementData);", " });", " });", "", " const counts = elements.reduce((acc, el) => {", " acc[el.type] = (acc[el.type] || 0) + 1;", " return acc;", " }, {} as Record<string, number>);", "", " return {", " page_elements: elements.slice(0, 50),", " page_element_count: elements.length,", " element_types: counts,", " page_url: window.location.href,", " page_title: document.title,", " timestamp: new Date().toISOString()", " };", "};", "", "export function ChatWidgetAdvanced() {", " useEffect(() => {", " let handle: AgentWidgetInitHandle | null = null;", "", " // Load saved state", " const loadSavedMessages = () => {", " const savedState = localStorage.getItem(STORAGE_KEY);", " if (savedState) {", " try {", " const { messages } = JSON.parse(savedState);", " return messages || [];", " } catch (e) {", " console.error('Failed to load saved state:', e);", " }", " }", " return [];", " };", "", " handle = initAgentWidget({", ` target: '${c(i)}',`, " config: {"];
|
|
69078
70157
|
return e.apiUrl && s.push(` apiUrl: "${e.apiUrl}",`), e.clientToken && s.push(` clientToken: "${e.clientToken}",`), e.agentId && s.push(` agentId: "${e.agentId}",`), e.target && s.push(` target: "${e.target}",`), e.flowId && s.push(` flowId: "${e.flowId}",`), e.theme && typeof e.theme == "object" && Object.keys(e.theme).length > 0 && d(s, "theme", e.theme, " "), e.launcher && d(s, "launcher", e.launcher, " "), e.copy && (s.push(" copy: {"), Object.entries(e.copy).forEach(([a, t]) => {
|
|
69079
70158
|
s.push(` ${a}: "${t}",`);
|
|
@@ -69085,14 +70164,14 @@ function H(e, i) {
|
|
|
69085
70164
|
typeof t == "string" ? s.push(` ${a}: "${t}",`) : typeof t == "boolean" && s.push(` ${a}: ${t},`);
|
|
69086
70165
|
}), s.push(" },")), e.features && (s.push(" features: {"), Object.entries(e.features).forEach(([a, t]) => {
|
|
69087
70166
|
s.push(` ${a}: ${t},`);
|
|
69088
|
-
}), s.push(" },")), e.suggestionChips && e.suggestionChips.length > 0 && (s.push(" suggestionChips: ["), e.suggestionChips.forEach((a) => {
|
|
70167
|
+
}), s.push(" },")), s.push(...y(e, " ")), e.suggestionChips && e.suggestionChips.length > 0 && (s.push(" suggestionChips: ["), e.suggestionChips.forEach((a) => {
|
|
69089
70168
|
s.push(` "${a}",`);
|
|
69090
|
-
}), s.push(" ],")), e.suggestionChipsConfig && (s.push(" suggestionChipsConfig: {"), e.suggestionChipsConfig.fontFamily && s.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`), e.suggestionChipsConfig.fontWeight && s.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`), e.suggestionChipsConfig.paddingX && s.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`), e.suggestionChipsConfig.paddingY && s.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`), s.push(" },")), s.push(...g(e, " ")), s.push(...m(e, " ", r)), s.push(...f(e, " ")), s.push(...
|
|
70169
|
+
}), s.push(" ],")), e.suggestionChipsConfig && (s.push(" suggestionChipsConfig: {"), e.suggestionChipsConfig.fontFamily && s.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`), e.suggestionChipsConfig.fontWeight && s.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`), e.suggestionChipsConfig.paddingX && s.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`), e.suggestionChipsConfig.paddingY && s.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`), s.push(" },")), s.push(...g(e, " ")), s.push(...m(e, " ", r)), s.push(...f(e, " ")), s.push(...C(e, " ")), r?.getHeaders && s.push(` getHeaders: ${r.getHeaders},`), r?.contextProviders && s.push(` contextProviders: ${r.contextProviders},`), e.debug && s.push(` debug: ${e.debug},`), s.push(" initialMessages: loadSavedMessages(),"), r?.streamParser ? s.push(` streamParser: ${r.streamParser},`) : (s.push(" // Flexible JSON stream parser for handling structured actions"), s.push(` streamParser: () => createFlexibleJsonStreamParser(${_}),`)), r?.actionParsers ? (s.push(" // Action parsers (custom merged with defaults)"), s.push(` actionParsers: [...(${r.actionParsers}), defaultJsonActionParser,`), s.push(" // Built-in parser for markdown-wrapped JSON"), s.push(` ${A}`), s.push(" ],")) : (s.push(" // Action parsers to detect JSON actions in responses"), s.push(" actionParsers: ["), s.push(" defaultJsonActionParser,"), s.push(" // Parser for markdown-wrapped JSON"), s.push(` ${A}`), s.push(" ],")), r?.actionHandlers ? (s.push(" // Action handlers (custom merged with defaults)"), s.push(` actionHandlers: [...(${r.actionHandlers}),`), s.push(" defaultActionHandlers.message,"), s.push(" defaultActionHandlers.messageAndClick,"), s.push(" // Built-in handler for nav_then_click action"), s.push(` ${O}`), s.push(" ],")) : (s.push(" // Action handlers for navigation and other actions"), s.push(" actionHandlers: ["), s.push(" defaultActionHandlers.message,"), s.push(" defaultActionHandlers.messageAndClick,"), s.push(" // Handler for nav_then_click action"), s.push(` ${O}`), s.push(" ],")), r?.postprocessMessage ? s.push(` postprocessMessage: ${r.postprocessMessage},`) : s.push(" postprocessMessage: ({ text }) => markdownPostprocessor(text),"), r?.requestMiddleware ? (s.push(" // Request middleware (custom merged with DOM context)"), s.push(" requestMiddleware: ({ payload, config }) => {"), s.push(` const customResult = (${r.requestMiddleware})({ payload, config });`), s.push(" const merged = customResult || payload;"), s.push(" return {"), s.push(" ...merged,"), s.push(" metadata: { ...merged.metadata, ...collectDOMContext() }"), s.push(" };"), s.push(" }")) : (s.push(" requestMiddleware: ({ payload }) => {"), s.push(" return {"), s.push(" ...payload,"), s.push(" metadata: collectDOMContext()"), s.push(" };"), s.push(" }")), s.push(" }"), s.push(" });"), s.push(""), s.push(" // Save state on message events"), s.push(" const handleMessage = () => {"), s.push(" const session = handle?.getSession?.();"), s.push(" if (session) {"), s.push(" localStorage.setItem(STORAGE_KEY, JSON.stringify({"), s.push(" messages: session.messages,"), s.push(" timestamp: new Date().toISOString()"), s.push(" }));"), s.push(" }"), s.push(" };"), s.push(""), s.push(" // Clear state on clear chat"), s.push(" const handleClearChat = () => {"), s.push(" localStorage.removeItem(STORAGE_KEY);"), s.push(" localStorage.removeItem(PROCESSED_ACTIONS_KEY);"), s.push(" };"), s.push(""), s.push(" window.addEventListener('persona:message', handleMessage);"), s.push(" window.addEventListener('persona:clear-chat', handleClearChat);"), s.push(""), s.push(" // Cleanup on unmount"), s.push(" return () => {"), s.push(" window.removeEventListener('persona:message', handleMessage);"), s.push(" window.removeEventListener('persona:clear-chat', handleClearChat);"), s.push(" if (handle) {"), s.push(" handle.destroy();"), s.push(" }"), s.push(" };"), s.push(" }, []);"), s.push(""), s.push(" return null; // Widget injects itself into the DOM"), s.push("}"), s.push(""), s.push("// Usage: Collects DOM context for AI-powered navigation"), s.push("// Features:"), s.push("// - Extracts page elements (products, buttons, links)"), s.push("// - Persists chat history across page loads"), s.push("// - Handles navigation actions (nav_then_click)"), s.push("// - Processes structured JSON actions from AI"), s.push("//"), s.push("// Example usage in Next.js:"), s.push("// import { ChatWidgetAdvanced } from './components/ChatWidgetAdvanced';"), s.push("//"), s.push("// export default function RootLayout({ children }) {"), s.push("// return ("), s.push('// <html lang="en">'), s.push("// <body>"), s.push("// {children}"), s.push("// <ChatWidgetAdvanced />"), s.push("// </body>"), s.push("// </html>"), s.push("// );"), s.push("// }"), s.join(`
|
|
69091
70170
|
`);
|
|
69092
70171
|
}
|
|
69093
|
-
function
|
|
70172
|
+
function P(e) {
|
|
69094
70173
|
let i = h(e), r = i !== "plain", s = {};
|
|
69095
|
-
if (e.apiUrl && (s.apiUrl = e.apiUrl), e.clientToken && (s.clientToken = e.clientToken), e.agentId && (s.agentId = e.agentId), e.target && (s.target = e.target), e.flowId && (s.flowId = e.flowId), r && (s.parserType = i), e.theme && (s.theme = e.theme), e.launcher && (s.launcher = e.launcher), e.copy && (s.copy = e.copy), e.sendButton && (s.sendButton = e.sendButton), e.voiceRecognition && (s.voiceRecognition = e.voiceRecognition), e.statusIndicator && (s.statusIndicator = e.statusIndicator), e.features && (s.features = e.features), e.suggestionChips?.length > 0 && (s.suggestionChips = e.suggestionChips), e.suggestionChipsConfig && (s.suggestionChipsConfig = e.suggestionChipsConfig), e.debug && (s.debug = e.debug), e.toolCall) {
|
|
70174
|
+
if (e.apiUrl && (s.apiUrl = e.apiUrl), e.clientToken && (s.clientToken = e.clientToken), e.agentId && (s.agentId = e.agentId), e.target && (s.target = e.target), e.flowId && (s.flowId = e.flowId), r && (s.parserType = i), e.theme && (s.theme = e.theme), e.launcher && (s.launcher = e.launcher), e.copy && (s.copy = e.copy), e.sendButton && (s.sendButton = e.sendButton), e.voiceRecognition && (s.voiceRecognition = e.voiceRecognition), e.statusIndicator && (s.statusIndicator = e.statusIndicator), e.features && (s.features = e.features), e.suggestions && (s.suggestions = e.suggestions), e.suggestionChips?.length > 0 && (s.suggestionChips = e.suggestionChips), e.suggestionChipsConfig && (s.suggestionChipsConfig = e.suggestionChipsConfig), e.debug && (s.debug = e.debug), e.toolCall) {
|
|
69096
70175
|
let a = {};
|
|
69097
70176
|
Object.entries(e.toolCall).forEach(([t, n]) => {
|
|
69098
70177
|
typeof n == "string" && (a[t] = n);
|
|
@@ -69122,8 +70201,8 @@ function k(e) {
|
|
|
69122
70201
|
if (n !== "renderUserMessage" && n !== "renderAssistantMessage") if (n === "avatar" && typeof o == "object" && o !== null) t.avatar = o;
|
|
69123
70202
|
else if (n === "timestamp" && typeof o == "object" && o !== null) {
|
|
69124
70203
|
let p = {};
|
|
69125
|
-
Object.entries(o).forEach(([l,
|
|
69126
|
-
l !== "format" && (typeof
|
|
70204
|
+
Object.entries(o).forEach(([l, b]) => {
|
|
70205
|
+
l !== "format" && (typeof b == "string" || typeof b == "boolean") && (p[l] = b);
|
|
69127
70206
|
}), Object.keys(p).length > 0 && (t.timestamp = p);
|
|
69128
70207
|
} else (typeof o == "string" || typeof o == "boolean") && (t[n] = o);
|
|
69129
70208
|
}), Object.keys(t).length > 0 && (a.messages = t);
|
|
@@ -69132,12 +70211,12 @@ function k(e) {
|
|
|
69132
70211
|
}
|
|
69133
70212
|
return s;
|
|
69134
70213
|
}
|
|
69135
|
-
function N(e, i) {
|
|
69136
|
-
let r = k(e), a = !!(i?.windowKey || i?.target) ? { config: r, ...i?.windowKey ? { windowKey: i.windowKey } : {}, ...i?.target ? { target: i.target } : {} } : r, t = JSON.stringify(a, null, 0).replace(/'/g, "'");
|
|
69137
|
-
return `<script src="${b(i)}/install.global.js" data-config='${t}'></script>`;
|
|
69138
|
-
}
|
|
69139
70214
|
function D(e, i) {
|
|
69140
|
-
let r =
|
|
70215
|
+
let r = P(e), a = !!(i?.windowKey || i?.target) ? { config: r, ...i?.windowKey ? { windowKey: i.windowKey } : {}, ...i?.target ? { target: i.target } : {} } : r, t = JSON.stringify(a, null, 0).replace(/'/g, "'");
|
|
70216
|
+
return `<script src="${$(i)}/install.global.js" data-config='${t}'></script>`;
|
|
70217
|
+
}
|
|
70218
|
+
function J(e, i) {
|
|
70219
|
+
let r = i?.hooks, s = h(e), a = s !== "plain", t = $(i), n = ["<!-- Load CSS -->", `<link rel="stylesheet" href="${t}/widget.css" />`, "", "<!-- Load JavaScript -->", `<script src="${t}/index.global.js"></script>`, "", "<!-- Initialize widget -->", "<script>", " var handle = window.AgentWidget.initAgentWidget({", ` target: '${c(i)}',`, ...i?.windowKey ? [` windowKey: '${i.windowKey}',`] : [], " config: {"];
|
|
69141
70220
|
return e.apiUrl && n.push(` apiUrl: "${e.apiUrl}",`), e.clientToken && n.push(` clientToken: "${e.clientToken}",`), e.agentId && n.push(` agentId: "${e.agentId}",`), e.target && n.push(` target: "${e.target}",`), e.flowId && n.push(` flowId: "${e.flowId}",`), a && n.push(` parserType: "${s}",`), e.theme && typeof e.theme == "object" && Object.keys(e.theme).length > 0 && d(n, "theme", e.theme, " "), e.launcher && d(n, "launcher", e.launcher, " "), e.copy && (n.push(" copy: {"), Object.entries(e.copy).forEach(([o, p]) => {
|
|
69142
70221
|
n.push(` ${o}: "${p}",`);
|
|
69143
70222
|
}), n.push(" },")), e.sendButton && (n.push(" sendButton: {"), Object.entries(e.sendButton).forEach(([o, p]) => {
|
|
@@ -69148,16 +70227,16 @@ function D(e, i) {
|
|
|
69148
70227
|
typeof p == "string" ? n.push(` ${o}: "${p}",`) : typeof p == "boolean" && n.push(` ${o}: ${p},`);
|
|
69149
70228
|
}), n.push(" },")), e.features && (n.push(" features: {"), Object.entries(e.features).forEach(([o, p]) => {
|
|
69150
70229
|
n.push(` ${o}: ${p},`);
|
|
69151
|
-
}), n.push(" },")), e.suggestionChips && e.suggestionChips.length > 0 && (n.push(" suggestionChips: ["), e.suggestionChips.forEach((o) => {
|
|
70230
|
+
}), n.push(" },")), n.push(...y(e, " ")), e.suggestionChips && e.suggestionChips.length > 0 && (n.push(" suggestionChips: ["), e.suggestionChips.forEach((o) => {
|
|
69152
70231
|
n.push(` "${o}",`);
|
|
69153
|
-
}), n.push(" ],")), e.suggestionChipsConfig && (n.push(" suggestionChipsConfig: {"), e.suggestionChipsConfig.fontFamily && n.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`), e.suggestionChipsConfig.fontWeight && n.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`), e.suggestionChipsConfig.paddingX && n.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`), e.suggestionChipsConfig.paddingY && n.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`), n.push(" },")), n.push(...g(e, " ")), n.push(...m(e, " ", r)), n.push(...f(e, " ")), n.push(...
|
|
70232
|
+
}), n.push(" ],")), e.suggestionChipsConfig && (n.push(" suggestionChipsConfig: {"), e.suggestionChipsConfig.fontFamily && n.push(` fontFamily: "${e.suggestionChipsConfig.fontFamily}",`), e.suggestionChipsConfig.fontWeight && n.push(` fontWeight: "${e.suggestionChipsConfig.fontWeight}",`), e.suggestionChipsConfig.paddingX && n.push(` paddingX: "${e.suggestionChipsConfig.paddingX}",`), e.suggestionChipsConfig.paddingY && n.push(` paddingY: "${e.suggestionChipsConfig.paddingY}",`), n.push(" },")), n.push(...g(e, " ")), n.push(...m(e, " ", r)), n.push(...f(e, " ")), n.push(...C(e, " ")), n.push(...w(r, " ")), e.debug && n.push(` debug: ${e.debug},`), r?.postprocessMessage ? n.push(` postprocessMessage: ${r.postprocessMessage}`) : n.push(" postprocessMessage: ({ text }) => window.AgentWidget.markdownPostprocessor(text)"), n.push(" }"), n.push(" });"), n.push("</script>"), n.join(`
|
|
69154
70233
|
`);
|
|
69155
70234
|
}
|
|
69156
70235
|
function F(e, i) {
|
|
69157
|
-
let r = i?.hooks, s =
|
|
70236
|
+
let r = i?.hooks, s = P(e), t = ["<script>", "(function() {", " 'use strict';", "", " // Configuration", ` var CONFIG = ${JSON.stringify(s, null, 2).split(`
|
|
69158
70237
|
`).map((n, o) => o === 0 ? n : " " + n).join(`
|
|
69159
|
-
`)};`, "", " // Constants", ` var CDN_BASE = '${
|
|
69160
|
-
return r?.getHeaders && (t.push(` widgetConfig.getHeaders = ${r.getHeaders};`), t.push("")), r?.contextProviders && (t.push(` widgetConfig.contextProviders = ${r.contextProviders};`), t.push("")), r?.streamParser ? t.push(` widgetConfig.streamParser = ${r.streamParser};`) : (t.push(" // Flexible JSON stream parser for handling structured actions"), t.push(" widgetConfig.streamParser = function() {"), t.push(` return agentWidget.createFlexibleJsonStreamParser(${
|
|
70238
|
+
`)};`, "", " // Constants", ` var CDN_BASE = '${$(i)}';`, " var STORAGE_KEY = 'chat-widget-state';", " var PROCESSED_ACTIONS_KEY = 'chat-widget-processed-actions';", "", " // DOM context provider - extracts page elements for AI context", " var domContextProvider = function() {", " var selectors = {", ` products: '[data-product-id], .product-card, .product-item, [role="article"]',`, ` buttons: 'button, [role="button"], .btn',`, " links: 'a[href]',", " inputs: 'input, textarea, select'", " };", "", " var elements = [];", " Object.entries(selectors).forEach(function(entry) {", " var type = entry[0], selector = entry[1];", " document.querySelectorAll(selector).forEach(function(element) {", " if (!(element instanceof HTMLElement)) return;", " var widgetHost = element.closest('.persona-host');", " if (widgetHost) return;", " var text = element.innerText ? element.innerText.trim() : '';", " if (!text) return;", "", " var selectorString = element.id ? '#' + element.id :", ` element.getAttribute('data-testid') ? '[data-testid="' + element.getAttribute('data-testid') + '"]' :`, ` element.getAttribute('data-product-id') ? '[data-product-id="' + element.getAttribute('data-product-id') + '"]' :`, " element.tagName.toLowerCase();", "", " var elementData = {", " type: type,", " tagName: element.tagName.toLowerCase(),", " selector: selectorString,", " innerText: text.substring(0, 200)", " };", "", " if (type === 'links' && element instanceof HTMLAnchorElement && element.href) {", " elementData.href = element.href;", " }", " elements.push(elementData);", " });", " });", "", " var counts = elements.reduce(function(acc, el) {", " acc[el.type] = (acc[el.type] || 0) + 1;", " return acc;", " }, {});", "", " return {", " page_elements: elements.slice(0, 50),", " page_element_count: elements.length,", " element_types: counts,", " page_url: window.location.href,", " page_title: document.title,", " timestamp: new Date().toISOString()", " };", " };", "", " // Load CSS dynamically", " var loadCSS = function() {", " if (document.querySelector('link[data-persona]')) return;", " var link = document.createElement('link');", " link.rel = 'stylesheet';", " link.href = CDN_BASE + '/widget.css';", " link.setAttribute('data-persona', 'true');", " document.head.appendChild(link);", " };", "", " // Load JS dynamically", " var loadJS = function(callback) {", " if (window.AgentWidget) { callback(); return; }", " var script = document.createElement('script');", " script.src = CDN_BASE + '/index.global.js';", " script.onload = callback;", " script.onerror = function() { console.error('Failed to load AgentWidget'); };", " document.head.appendChild(script);", " };", "", " // Create widget config with advanced features", " var createWidgetConfig = function(agentWidget) {", " var widgetConfig = Object.assign({}, CONFIG);", ""];
|
|
70239
|
+
return r?.getHeaders && (t.push(` widgetConfig.getHeaders = ${r.getHeaders};`), t.push("")), r?.contextProviders && (t.push(` widgetConfig.contextProviders = ${r.contextProviders};`), t.push("")), r?.streamParser ? t.push(` widgetConfig.streamParser = ${r.streamParser};`) : (t.push(" // Flexible JSON stream parser for handling structured actions"), t.push(" widgetConfig.streamParser = function() {"), t.push(` return agentWidget.createFlexibleJsonStreamParser(${T});`), t.push(" };")), t.push(""), r?.actionParsers ? (t.push(" // Action parsers (custom merged with defaults)"), t.push(` var customParsers = ${r.actionParsers};`), t.push(" widgetConfig.actionParsers = customParsers.concat(["), t.push(" agentWidget.defaultJsonActionParser,"), t.push(` ${j}`), t.push(" ]);")) : (t.push(" // Action parsers to detect JSON actions in responses"), t.push(" widgetConfig.actionParsers = ["), t.push(" agentWidget.defaultJsonActionParser,"), t.push(` ${j}`), t.push(" ];")), t.push(""), r?.actionHandlers ? (t.push(" // Action handlers (custom merged with defaults)"), t.push(` var customHandlers = ${r.actionHandlers};`), t.push(" widgetConfig.actionHandlers = customHandlers.concat(["), t.push(" agentWidget.defaultActionHandlers.message,"), t.push(" agentWidget.defaultActionHandlers.messageAndClick,"), t.push(` ${E}`), t.push(" ]);")) : (t.push(" // Action handlers for navigation and other actions"), t.push(" widgetConfig.actionHandlers = ["), t.push(" agentWidget.defaultActionHandlers.message,"), t.push(" agentWidget.defaultActionHandlers.messageAndClick,"), t.push(` ${E}`), t.push(" ];")), t.push(""), r?.requestMiddleware ? (t.push(" // Request middleware (custom merged with DOM context)"), t.push(" widgetConfig.requestMiddleware = function(ctx) {"), t.push(` var customResult = (${r.requestMiddleware})(ctx);`), t.push(" var merged = customResult || ctx.payload;"), t.push(" return Object.assign({}, merged, { metadata: Object.assign({}, merged.metadata, domContextProvider()) });"), t.push(" };")) : (t.push(" // Send DOM context with each request"), t.push(" widgetConfig.requestMiddleware = function(ctx) {"), t.push(" return Object.assign({}, ctx.payload, { metadata: domContextProvider() });"), t.push(" };")), t.push(""), r?.postprocessMessage ? t.push(` widgetConfig.postprocessMessage = ${r.postprocessMessage};`) : (t.push(" // Markdown postprocessor"), t.push(" widgetConfig.postprocessMessage = function(ctx) {"), t.push(" return agentWidget.markdownPostprocessor(ctx.text);"), t.push(" };")), t.push(""), (r?.onFeedback || r?.onCopy) && (t.push(" // Message action callbacks"), t.push(" widgetConfig.messageActions = widgetConfig.messageActions || {};"), r?.onFeedback && t.push(` widgetConfig.messageActions.onFeedback = ${r.onFeedback};`), r?.onCopy && t.push(` widgetConfig.messageActions.onCopy = ${r.onCopy};`), t.push("")), t.push(" return widgetConfig;", " };", "", " // Initialize widget", " var init = function() {", " var agentWidget = window.AgentWidget;", " if (!agentWidget) {", " console.error('AgentWidget not loaded');", " return;", " }", "", " var widgetConfig = createWidgetConfig(agentWidget);", "", " // Load saved state", " var savedState = localStorage.getItem(STORAGE_KEY);", " if (savedState) {", " try {", " var parsed = JSON.parse(savedState);", " widgetConfig.initialMessages = parsed.messages || [];", " } catch (e) {", " console.error('Failed to load saved state:', e);", " }", " }", "", " // Initialize widget", " var handle = agentWidget.initAgentWidget({", ` target: '${c(i)}',`, " useShadowDom: false,", ...i?.windowKey ? [` windowKey: '${i.windowKey}',`] : [], " config: widgetConfig", " });", "", " // Save state on message events", " window.addEventListener('persona:message', function() {", " var session = handle.getSession ? handle.getSession() : null;", " if (session) {", " localStorage.setItem(STORAGE_KEY, JSON.stringify({", " messages: session.messages,", " timestamp: new Date().toISOString()", " }));", " }", " });", "", " // Clear state on clear chat", " window.addEventListener('persona:clear-chat', function() {", " localStorage.removeItem(STORAGE_KEY);", " localStorage.removeItem(PROCESSED_ACTIONS_KEY);", " });", " };", "", " // Wait for framework hydration to complete (Next.js, Nuxt, etc.)", " // This prevents the framework from removing dynamically added CSS during reconciliation", " var waitForHydration = function(callback) {", " var executed = false;", " ", " var execute = function() {", " if (executed) return;", " executed = true;", " callback();", " };", "", " var afterDom = function() {", " // Strategy 1: Use requestIdleCallback if available (best for detecting idle after hydration)", " if (typeof requestIdleCallback !== 'undefined') {", " requestIdleCallback(function() {", " // Double requestAnimationFrame ensures at least one full paint cycle completed", " requestAnimationFrame(function() {", " requestAnimationFrame(execute);", " });", " }, { timeout: 3000 }); // Max wait 3 seconds, then proceed anyway", " } else {", " // Strategy 2: Fallback for Safari (no requestIdleCallback)", " // 300ms is typically enough for hydration on most pages", " setTimeout(execute, 300);", " }", " };", "", " if (document.readyState === 'loading') {", " document.addEventListener('DOMContentLoaded', afterDom);", " } else {", " // DOM already ready, but still wait for potential hydration", " afterDom();", " }", " };", "", " // Boot sequence: wait for hydration, then load CSS and JS, then initialize", " // This prevents Next.js/Nuxt/etc. from removing dynamically added CSS during reconciliation", " waitForHydration(function() {", " loadCSS();", " loadJS(function() {", " init();", " });", " });", "})();", "</script>"), t.join(`
|
|
69161
70240
|
`);
|
|
69162
70241
|
}
|
|
69163
70242
|
|
|
@@ -69197,14 +70276,14 @@ function buildWidgetConfig(input) {
|
|
|
69197
70276
|
function generatePersonaInitSnippet(input, personaFormat) {
|
|
69198
70277
|
const widgetConfig = buildWidgetConfig(input);
|
|
69199
70278
|
const target = input.targetSelector?.trim();
|
|
69200
|
-
return
|
|
70279
|
+
return R(
|
|
69201
70280
|
widgetConfig,
|
|
69202
70281
|
personaFormat,
|
|
69203
70282
|
target ? { target } : void 0
|
|
69204
70283
|
);
|
|
69205
70284
|
}
|
|
69206
70285
|
function getPersonaInstallerScriptUrl() {
|
|
69207
|
-
const snippet =
|
|
70286
|
+
const snippet = R(
|
|
69208
70287
|
{
|
|
69209
70288
|
apiUrl: "https://api.runtype.com",
|
|
69210
70289
|
clientToken: "ct_test_demo_00000000000000000000000000000000",
|
|
@@ -69383,7 +70462,7 @@ async function runPersonaInit(options) {
|
|
|
69383
70462
|
// src/lib/persona-demo.ts
|
|
69384
70463
|
import { createServer } from "http";
|
|
69385
70464
|
import { createServer as createNetServer } from "net";
|
|
69386
|
-
import { existsSync as existsSync13, mkdirSync as
|
|
70465
|
+
import { existsSync as existsSync13, mkdirSync as mkdirSync10, readFileSync as readFileSync17, writeFileSync as writeFileSync7 } from "fs";
|
|
69387
70466
|
import path16 from "path";
|
|
69388
70467
|
var PERSONA_DEMO_DEFAULT_DIR = "persona-demo";
|
|
69389
70468
|
var PERSONA_DEMO_DEFAULT_PORT = 43110;
|
|
@@ -69419,7 +70498,7 @@ function ensurePersonaDemoCanWrite(directory, force) {
|
|
|
69419
70498
|
}
|
|
69420
70499
|
function writePersonaDemoPage(options) {
|
|
69421
70500
|
ensurePersonaDemoCanWrite(options.directory, options.force);
|
|
69422
|
-
|
|
70501
|
+
mkdirSync10(options.directory, { recursive: true });
|
|
69423
70502
|
const filePath = personaDemoIndexPath(options.directory);
|
|
69424
70503
|
const readmePath = personaDemoReadmePath(options.directory);
|
|
69425
70504
|
writeFileSync7(filePath, `${options.html.trim()}
|
|
@@ -73265,7 +74344,7 @@ import { Command as Command32 } from "commander";
|
|
|
73265
74344
|
import chalk40 from "chalk";
|
|
73266
74345
|
|
|
73267
74346
|
// src/lib/skills-install.ts
|
|
73268
|
-
import { mkdirSync as
|
|
74347
|
+
import { mkdirSync as mkdirSync12, readFileSync as readFileSync19, writeFileSync as writeFileSync9 } from "fs";
|
|
73269
74348
|
import path18 from "path";
|
|
73270
74349
|
import readline4 from "readline";
|
|
73271
74350
|
import chalk39 from "chalk";
|
|
@@ -73289,7 +74368,7 @@ function readSkillsInstallMetadata() {
|
|
|
73289
74368
|
}
|
|
73290
74369
|
function writeSkillsInstallMetadata(metadata) {
|
|
73291
74370
|
try {
|
|
73292
|
-
|
|
74371
|
+
mkdirSync12(path18.dirname(metadataPath()), { recursive: true });
|
|
73293
74372
|
writeFileSync9(metadataPath(), JSON.stringify(metadata, null, 2));
|
|
73294
74373
|
} catch {
|
|
73295
74374
|
}
|
|
@@ -74916,7 +75995,7 @@ import { spawn as spawn2 } from "child_process";
|
|
|
74916
75995
|
import {
|
|
74917
75996
|
closeSync,
|
|
74918
75997
|
existsSync as existsSync18,
|
|
74919
|
-
mkdirSync as
|
|
75998
|
+
mkdirSync as mkdirSync13,
|
|
74920
75999
|
openSync,
|
|
74921
76000
|
readFileSync as readFileSync22,
|
|
74922
76001
|
readdirSync as readdirSync8,
|
|
@@ -74927,7 +76006,7 @@ import {
|
|
|
74927
76006
|
writeFileSync as writeFileSync10
|
|
74928
76007
|
} from "fs";
|
|
74929
76008
|
import { constants as osConstants } from "os";
|
|
74930
|
-
import { dirname as
|
|
76009
|
+
import { dirname as dirname11, isAbsolute as isAbsolute4, join as join16, relative as relative8, resolve as resolve12, sep as sep6 } from "path";
|
|
74931
76010
|
|
|
74932
76011
|
// src/lib/update-check.ts
|
|
74933
76012
|
import chalk44 from "chalk";
|
|
@@ -74954,10 +76033,10 @@ function parseVersion(version2) {
|
|
|
74954
76033
|
}
|
|
74955
76034
|
function compareVersions(left, right) {
|
|
74956
76035
|
const a = parseVersion(left);
|
|
74957
|
-
const
|
|
74958
|
-
if (!a || !
|
|
76036
|
+
const b = parseVersion(right);
|
|
76037
|
+
if (!a || !b) return 0;
|
|
74959
76038
|
for (let index = 0; index < 3; index++) {
|
|
74960
|
-
const diff = a[index] -
|
|
76039
|
+
const diff = a[index] - b[index];
|
|
74961
76040
|
if (diff !== 0) return diff;
|
|
74962
76041
|
}
|
|
74963
76042
|
return 0;
|
|
@@ -75115,7 +76194,7 @@ function getManagedCliState(homeDir = getRuntypeHomeDir()) {
|
|
|
75115
76194
|
}
|
|
75116
76195
|
}
|
|
75117
76196
|
function writeManagedCliState(paths, state) {
|
|
75118
|
-
|
|
76197
|
+
mkdirSync13(paths.root, { recursive: true });
|
|
75119
76198
|
const temporaryPath = `${paths.state}.${process.pid}.${Date.now()}.tmp`;
|
|
75120
76199
|
try {
|
|
75121
76200
|
writeFileSync10(temporaryPath, `${JSON.stringify(state, null, 2)}
|
|
@@ -75152,12 +76231,12 @@ function isPathInside(parent, child) {
|
|
|
75152
76231
|
return relativePath === "" || !relativePath.startsWith("..") && !isAbsolute4(relativePath);
|
|
75153
76232
|
}
|
|
75154
76233
|
function isSourceCheckout(entrypoint) {
|
|
75155
|
-
let current =
|
|
76234
|
+
let current = dirname11(entrypoint);
|
|
75156
76235
|
for (let depth = 0; depth < 8; depth += 1) {
|
|
75157
76236
|
if (existsSync18(join16(current, ".git")) || existsSync18(join16(current, "pnpm-workspace.yaml"))) {
|
|
75158
76237
|
return true;
|
|
75159
76238
|
}
|
|
75160
|
-
const parent =
|
|
76239
|
+
const parent = dirname11(current);
|
|
75161
76240
|
if (parent === current) break;
|
|
75162
76241
|
current = parent;
|
|
75163
76242
|
}
|
|
@@ -75169,7 +76248,7 @@ function findProjectRoot(cwd) {
|
|
|
75169
76248
|
if (existsSync18(join16(current, "package.json")) || existsSync18(join16(current, "pnpm-workspace.yaml"))) {
|
|
75170
76249
|
return current;
|
|
75171
76250
|
}
|
|
75172
|
-
const parent =
|
|
76251
|
+
const parent = dirname11(current);
|
|
75173
76252
|
if (parent === current) return void 0;
|
|
75174
76253
|
current = parent;
|
|
75175
76254
|
}
|
|
@@ -75298,7 +76377,7 @@ var defaultCommandRunner = async (command, args, options = {}) => new Promise((r
|
|
|
75298
76377
|
});
|
|
75299
76378
|
});
|
|
75300
76379
|
function acquireUpdateLock(paths, now) {
|
|
75301
|
-
|
|
76380
|
+
mkdirSync13(paths.root, { recursive: true });
|
|
75302
76381
|
const tryAcquire = () => {
|
|
75303
76382
|
try {
|
|
75304
76383
|
const descriptor = openSync(paths.lock, "wx", 384);
|
|
@@ -75387,10 +76466,10 @@ async function installAndActivateCliVersion(version2, options = {}) {
|
|
|
75387
76466
|
const temporaryRoot = join16(paths.versions, `.${version2}-${process.pid}-${now.getTime()}`);
|
|
75388
76467
|
let installed = false;
|
|
75389
76468
|
try {
|
|
75390
|
-
|
|
76469
|
+
mkdirSync13(paths.versions, { recursive: true });
|
|
75391
76470
|
if (!isHealthyManagedVersion(paths, version2)) {
|
|
75392
76471
|
rmSync2(temporaryRoot, { force: true, recursive: true });
|
|
75393
|
-
|
|
76472
|
+
mkdirSync13(temporaryRoot, { recursive: true });
|
|
75394
76473
|
const npmCommand = options.npmCommand ?? (process.platform === "win32" ? "npm.cmd" : "npm");
|
|
75395
76474
|
const installResult = await commandRunner(
|
|
75396
76475
|
npmCommand,
|
|
@@ -75490,7 +76569,7 @@ function spawnAutoUpdateWorker(version2, context = {}) {
|
|
|
75490
76569
|
const entrypoint = context.entrypoint ?? process.argv[1];
|
|
75491
76570
|
if (!entrypoint || !existsSync18(entrypoint)) return false;
|
|
75492
76571
|
const paths = getManagedCliPaths();
|
|
75493
|
-
|
|
76572
|
+
mkdirSync13(paths.root, { recursive: true });
|
|
75494
76573
|
const logDescriptor = openSync(paths.log, "a", 384);
|
|
75495
76574
|
try {
|
|
75496
76575
|
const child = spawn2(process.execPath, [entrypoint, INTERNAL_AUTO_UPDATE_ARG, version2], {
|