@runtypelabs/cli 2.24.0 → 2.24.1
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 +41 -9
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -549,7 +549,7 @@ import { RuntypeApiError } from "@runtypelabs/sdk";
|
|
|
549
549
|
// src/lib/sdk-client.ts
|
|
550
550
|
import { createClient } from "@runtypelabs/sdk";
|
|
551
551
|
|
|
552
|
-
// ../shared/dist/chunk-
|
|
552
|
+
// ../shared/dist/chunk-6FWWIIGE.mjs
|
|
553
553
|
var travrseConfig = {
|
|
554
554
|
name: "Travrse",
|
|
555
555
|
nameLower: "travrse",
|
|
@@ -573,7 +573,7 @@ var runtypeConfig = {
|
|
|
573
573
|
name: "Runtype",
|
|
574
574
|
nameLower: "runtype",
|
|
575
575
|
tagline: "Your AI Product Platform",
|
|
576
|
-
description: "
|
|
576
|
+
description: "The fastest way to ship agentic products. Prototype in minutes, prove it with evals, and ship to every surface on our cloud or yours.",
|
|
577
577
|
url: "https://www.runtype.com",
|
|
578
578
|
website: "https://runtype.com",
|
|
579
579
|
domain: "runtype.com",
|
|
@@ -15566,7 +15566,7 @@ function resolveFallback(parsed, context, tracking) {
|
|
|
15566
15566
|
}
|
|
15567
15567
|
var templateEngine = new SimpleTemplateEngine();
|
|
15568
15568
|
|
|
15569
|
-
// ../shared/dist/chunk-
|
|
15569
|
+
// ../shared/dist/chunk-ONVX3P3J.mjs
|
|
15570
15570
|
var tokensSchema = external_exports.object({ input: external_exports.number(), output: external_exports.number() });
|
|
15571
15571
|
var wireStopReasonSchema = external_exports.enum([
|
|
15572
15572
|
"end_turn",
|
|
@@ -15904,7 +15904,17 @@ var unifiedAwaitEventSchema = external_exports.object({
|
|
|
15904
15904
|
parameters: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
|
|
15905
15905
|
awaitedAt: external_exports.string().optional(),
|
|
15906
15906
|
origin: external_exports.enum(["webmcp", "sdk"]).optional(),
|
|
15907
|
-
pageOrigin: external_exports.string().optional()
|
|
15907
|
+
pageOrigin: external_exports.string().optional(),
|
|
15908
|
+
// Discriminates an AUTO-RESUMING durable pause (`crawl_pending` /
|
|
15909
|
+
// `durable_poll`, resumed server-side by the crawl / wait-until
|
|
15910
|
+
// Workflow) from a CLIENT-RESOLVABLE local-tool / WebMCP await (absent), so a
|
|
15911
|
+
// streaming consumer does not render a "resume" prompt for a pause that
|
|
15912
|
+
// resumes itself. Mirrors the JSON `pausedReason` discriminator
|
|
15913
|
+
// (execution-pipeline.ts); the server-resumed pauses carry `crawlId` /
|
|
15914
|
+
// `stepId` instead of the tool fields. UX context; never a control signal.
|
|
15915
|
+
awaitReason: external_exports.string().optional(),
|
|
15916
|
+
crawlId: external_exports.string().optional(),
|
|
15917
|
+
stepId: external_exports.string().optional()
|
|
15908
15918
|
});
|
|
15909
15919
|
var unifiedErrorEventSchema = external_exports.object({
|
|
15910
15920
|
...unifiedBase,
|
|
@@ -16400,7 +16410,17 @@ var flowAwaitEventSchema = external_exports.object({
|
|
|
16400
16410
|
parameters: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
|
|
16401
16411
|
awaitedAt: external_exports.string(),
|
|
16402
16412
|
origin: external_exports.enum(["webmcp", "sdk"]).optional(),
|
|
16403
|
-
pageOrigin: external_exports.string().optional()
|
|
16413
|
+
pageOrigin: external_exports.string().optional(),
|
|
16414
|
+
// Discriminates an AUTO-RESUMING durable pause (`crawl_pending` /
|
|
16415
|
+
// `durable_poll`, resumed server-side by the crawl / wait-until
|
|
16416
|
+
// Workflow) from a CLIENT-RESOLVABLE local-tool / WebMCP await (absent). The
|
|
16417
|
+
// server-resumed pauses carry `crawlId` / `stepId` instead of the tool fields.
|
|
16418
|
+
// Open `z.string()` (not an enum) for forward-compat — kept in lockstep with
|
|
16419
|
+
// the JSON `pausedReason` discriminator in execution-pipeline.ts. UX context;
|
|
16420
|
+
// never a control signal.
|
|
16421
|
+
awaitReason: external_exports.string().optional(),
|
|
16422
|
+
crawlId: external_exports.string().optional(),
|
|
16423
|
+
stepId: external_exports.string().optional()
|
|
16404
16424
|
});
|
|
16405
16425
|
var stepStartEventSchema = external_exports.object({
|
|
16406
16426
|
...baseFlowEvent,
|
|
@@ -33327,7 +33347,7 @@ var CORE_BUILTIN_TOOLS_REGISTRY = [
|
|
|
33327
33347
|
{
|
|
33328
33348
|
id: "exa",
|
|
33329
33349
|
name: "Exa",
|
|
33330
|
-
description: "Search the web using neural and keyword algorithms. Returns relevant content with optional summaries, highlights, and full text.",
|
|
33350
|
+
description: "Search the web using neural and keyword algorithms. Returns relevant content with optional summaries, highlights, and full text. Tuned for retrieval and not blocked by anti-bot defenses, so prefer this over the raw fetch-url/crawl flow steps for research against sites that block datacenter traffic.",
|
|
33331
33351
|
category: BuiltInToolCategory.WEB_SEARCH,
|
|
33332
33352
|
providers: [BuiltInToolProvider.MULTI],
|
|
33333
33353
|
parametersSchema: {
|
|
@@ -33402,7 +33422,7 @@ var CORE_BUILTIN_TOOLS_REGISTRY = [
|
|
|
33402
33422
|
{
|
|
33403
33423
|
id: "firecrawl",
|
|
33404
33424
|
name: "Firecrawl",
|
|
33405
|
-
description: "Scrape and extract content from a URL as markdown. Provide a url and optional formats array.",
|
|
33425
|
+
description: "Scrape and extract content from a URL as markdown. Provide a url and optional formats array. Handles rendering and anti-bot measures, so prefer this over a raw HTTP fetch when a site blocks, rate-limits, or challenges datacenter (non-human) traffic.",
|
|
33406
33426
|
category: BuiltInToolCategory.WEB_SCRAPING,
|
|
33407
33427
|
providers: [BuiltInToolProvider.MULTI],
|
|
33408
33428
|
parametersSchema: {
|
|
@@ -42146,10 +42166,10 @@ var FLOW_STEP_TYPE_METADATA = {
|
|
|
42146
42166
|
configHints: "vectorsSource, destination, idTemplate, outputVariable"
|
|
42147
42167
|
},
|
|
42148
42168
|
crawl: {
|
|
42149
|
-
description: "Crawl a website and extract content
|
|
42169
|
+
description: "Crawl a website with Cloudflare Browser Rendering and extract page content as markdown. Renders the SEED page fully; at depth >= 1 it enumerates child links WITHOUT rendering them (1 rendered seed record + N empty-markdown child records) and follows only ABSOLUTE link hrefs (relative links like item?id= are never followed). Writes { crawlId, status, result, resultPages[] } to outputVariable \u2014 flatten resultPages[].records[] (each { url, status, markdown?, metadata? }) to read every page. GOTCHA: the URL query string is DROPPED (https://site/item?id=42 crawls https://site/item) \u2014 for query-string URLs, JSON APIs, SPAs, or single detail/comment pages use fetch-url or the builtin:firecrawl scrape tool instead (firecrawl preserves query strings). ASYNC by default: with no streaming consumer (MCP run_flow/dispatch) the flow durably PAUSES while a Workflow polls; if the crawl exceeds completionTimeoutMs (default 120000 = 2 min) the step SILENTLY resumes with output = null. For real crawls raise completionTimeoutMs (e.g. 600000) and set pollIntervalMs (e.g. 5000), or set asyncCrawl:false to poll inline within the request (good for smoke tests).",
|
|
42150
42170
|
category: "integration",
|
|
42151
42171
|
isPrompt: false,
|
|
42152
|
-
configHints:
|
|
42172
|
+
configHints: 'url (required; query string is dropped), outputVariable (required), depth (0 = seed-only render, recommended), limit, formats (e.g. ["markdown"]), render, options ({ includePatterns, excludePatterns, allowSubdomains, allowExternalLinks, ignoreSitemap, sitemapOnly }), waitForSelector, completionTimeoutMs (default 120000; raise for slow crawls), pollIntervalMs, asyncCrawl (false = synchronous inline polling), errorHandling ({ onError: "continue"|"fail" } OBJECT, not a bare string), defaultValue. Pattern for "index + detail/comment pages": crawl the index with depth 0, transform-data to extract the links/ids from result markdown, then an agent prompt step (mode: "agent") with tools.toolIds ["builtin:firecrawl"] to fetch each query-string detail URL.'
|
|
42153
42173
|
},
|
|
42154
42174
|
"paginate-api": {
|
|
42155
42175
|
description: "Fetch paginated data from an API endpoint across multiple pages.",
|
|
@@ -42867,6 +42887,7 @@ ${orthogonalLines.join("\n")}
|
|
|
42867
42887
|
- **Web search (provider-native, inline citations)** \u2192 see Provider-Native Search section above
|
|
42868
42888
|
- **Web search (standalone, AI-powered)** \u2192 \`builtin:exa\`
|
|
42869
42889
|
- **Simple web scraping to markdown** \u2192 \`builtin:firecrawl\`
|
|
42890
|
+
- **Research/scraping a site that blocks bots** \u2192 prefer \`builtin:firecrawl\` or \`builtin:exa\` over the raw \`fetch-url\`/\`crawl\` flow steps. Those steps request from datacenter IPs flagged as non-human traffic, so sites behind a WAF/anti-bot service often return a 403, CAPTCHA, or empty body. A mixed approach (fetch first, fall back to Firecrawl/Exa on a block) is the most reliable.
|
|
42870
42891
|
- **Rendered web pages, screenshots, structured extraction, or link harvesting** \u2192 \`builtin:browser:markdown\`, \`builtin:browser:snapshot\`, \`builtin:browser:json\`, \`builtin:browser:scrape\`, \`builtin:browser:links\` (stateless, one-shot \u2014 cheap, no session overhead)
|
|
42871
42892
|
- **Autonomous browsing (just want the outcome \u2014 extract data, complete a form, find info on a page)** \u2192 \`builtin:browser:agent\` with a natural-language \`goal\` plus \`startUrl\` (fresh browser) or \`sessionId\` (continue an existing session). Stagehand handles observe/act/extract; you get back text or, with an \`outputSchema\`, structured JSON. Try this BEFORE reaching for the manual session tools below.
|
|
42872
42893
|
- **Interactive browsing (precise control over individual actions)** \u2192 \`builtin:browser:open\` to start a session, then \`builtin:browser:click\`, \`builtin:browser:type\`, \`builtin:browser:scroll\`, \`builtin:browser:session-screenshot\`, \`builtin:browser:evaluate\`, \`builtin:browser:navigate\`, and \`builtin:browser:close\` when done. Session tools maintain cookies and page state across calls but cost more than stateless tools \u2014 prefer stateless tools when a single page read suffices.
|
|
@@ -42932,6 +42953,7 @@ Tools are added to prompt steps via \`tools: { toolIds: ["<id>"] }\`. The AI mod
|
|
|
42932
42953
|
- **Web search (provider-native, inline citations)** \u2192 see the Provider-Native Search section
|
|
42933
42954
|
- **Web search (standalone, AI-powered)** \u2192 \`builtin:exa\`
|
|
42934
42955
|
- **Simple web scraping to markdown** \u2192 \`builtin:firecrawl\`
|
|
42956
|
+
- **Research/scraping a site that blocks bots** \u2192 prefer \`builtin:firecrawl\` or \`builtin:exa\` over the raw \`fetch-url\`/\`crawl\` flow steps. Those steps request from datacenter IPs flagged as non-human traffic, so sites behind a WAF/anti-bot service often return a 403, CAPTCHA, or empty body. A mixed approach (fetch first, fall back to Firecrawl/Exa on a block) is the most reliable.
|
|
42935
42957
|
- **Rendered web pages, screenshots, structured extraction, or link harvesting** \u2192 \`builtin:browser:markdown\`, \`builtin:browser:snapshot\`, \`builtin:browser:json\`, \`builtin:browser:scrape\`, \`builtin:browser:links\` (stateless, one-shot)
|
|
42936
42958
|
- **Autonomous browsing (just want the outcome)** \u2192 \`builtin:browser:agent\` with a natural-language \`goal\` plus \`startUrl\` or \`sessionId\` \u2014 try this BEFORE the manual session tools
|
|
42937
42959
|
- **Interactive browsing (precise control)** \u2192 \`builtin:browser:open\`, then \`builtin:browser:click\` / \`type\` / \`scroll\` / \`session-screenshot\` / \`evaluate\` / \`navigate\`, and \`builtin:browser:close\` when done
|
|
@@ -43952,6 +43974,15 @@ var RuntimeProxyToolConfigSchema = external_exports.object({
|
|
|
43952
43974
|
toolCallStrategy: external_exports.enum(["auto", "required", "none"]).optional(),
|
|
43953
43975
|
onToolError: external_exports.enum(["fail", "continue", "retry"]).optional()
|
|
43954
43976
|
});
|
|
43977
|
+
var RuntimeProxyProviderTransportSchema = external_exports.object({
|
|
43978
|
+
mixlayer: external_exports.object({
|
|
43979
|
+
modelApi: external_exports.enum(["chat", "responses"]).optional(),
|
|
43980
|
+
responsesTransport: external_exports.enum(["http", "websocket"]).optional()
|
|
43981
|
+
}).optional(),
|
|
43982
|
+
openai: external_exports.object({
|
|
43983
|
+
responsesTransport: external_exports.enum(["http", "websocket"]).optional()
|
|
43984
|
+
}).optional()
|
|
43985
|
+
});
|
|
43955
43986
|
var RuntimeProxyRequestSchema = external_exports.object({
|
|
43956
43987
|
model: external_exports.string().min(1),
|
|
43957
43988
|
prompt: external_exports.string().default(""),
|
|
@@ -43968,6 +43999,7 @@ var RuntimeProxyRequestSchema = external_exports.object({
|
|
|
43968
43999
|
seed: external_exports.number().int().optional(),
|
|
43969
44000
|
tools: external_exports.array(RuntimeProxyToolSchema).optional(),
|
|
43970
44001
|
providerTools: external_exports.array(RuntimeProxyProviderToolSchema).optional(),
|
|
44002
|
+
providerTransport: RuntimeProxyProviderTransportSchema.optional(),
|
|
43971
44003
|
toolConfiguration: RuntimeProxyToolConfigSchema.optional()
|
|
43972
44004
|
}).optional().default({})
|
|
43973
44005
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runtypelabs/cli",
|
|
3
|
-
"version": "2.24.
|
|
3
|
+
"version": "2.24.1",
|
|
4
4
|
"description": "Command-line interface for Runtype AI platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"rosie-skills": "0.8.1",
|
|
25
25
|
"yaml": "^2.9.0",
|
|
26
26
|
"@runtypelabs/ink-components": "0.3.4",
|
|
27
|
-
"@runtypelabs/sdk": "5.
|
|
27
|
+
"@runtypelabs/sdk": "5.7.0",
|
|
28
28
|
"@runtypelabs/terminal-animations": "0.2.1"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"tsx": "^4.7.1",
|
|
40
40
|
"typescript": "^6.0.3",
|
|
41
41
|
"vitest": "^4.1.0",
|
|
42
|
-
"@runtypelabs/shared": "1.
|
|
42
|
+
"@runtypelabs/shared": "1.43.1"
|
|
43
43
|
},
|
|
44
44
|
"engines": {
|
|
45
45
|
"node": ">=22.0.0"
|