@runtypelabs/cli 2.33.6 → 2.33.8
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 +132 -18
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -15351,7 +15351,7 @@ var recordCollectionSchemaSchema = external_exports.strictObject({
|
|
|
15351
15351
|
additionalProperties: external_exports.boolean().optional()
|
|
15352
15352
|
}).superRefine((schema, ctx) => addSemanticIssues(schema, ctx));
|
|
15353
15353
|
|
|
15354
|
-
// ../shared/dist/chunk-
|
|
15354
|
+
// ../shared/dist/chunk-4QUV4KXF.mjs
|
|
15355
15355
|
var MCPServerCategory = {
|
|
15356
15356
|
COMMUNICATION: "communication",
|
|
15357
15357
|
PRODUCTIVITY: "productivity",
|
|
@@ -15771,7 +15771,7 @@ var SURFACE_TYPE_METADATA = {
|
|
|
15771
15771
|
interactiveUI: "forms",
|
|
15772
15772
|
inboundMediaSupport: true,
|
|
15773
15773
|
consumerType: "human",
|
|
15774
|
-
approvalAnswerable:
|
|
15774
|
+
approvalAnswerable: true,
|
|
15775
15775
|
reasoningVisibility: "always_strip",
|
|
15776
15776
|
markdownDialect: "mrkdwn",
|
|
15777
15777
|
threadModel: "threaded",
|
|
@@ -15926,7 +15926,7 @@ var SURFACE_TYPE_METADATA = {
|
|
|
15926
15926
|
interactiveUI: "buttons",
|
|
15927
15927
|
inboundMediaSupport: true,
|
|
15928
15928
|
consumerType: "human",
|
|
15929
|
-
approvalAnswerable:
|
|
15929
|
+
approvalAnswerable: true,
|
|
15930
15930
|
reasoningVisibility: "always_strip",
|
|
15931
15931
|
markdownDialect: "html",
|
|
15932
15932
|
threadModel: "flat",
|
|
@@ -15948,6 +15948,9 @@ var SURFACE_TYPE_METADATA = {
|
|
|
15948
15948
|
interactiveUI: "none",
|
|
15949
15949
|
inboundMediaSupport: false,
|
|
15950
15950
|
consumerType: "human",
|
|
15951
|
+
// Generic/internal messaging has no concrete provider interaction on
|
|
15952
|
+
// which a human can answer. Slack and Telegram declare their own
|
|
15953
|
+
// attended status and Agent Loop-only advisory overlay separately.
|
|
15951
15954
|
approvalAnswerable: false,
|
|
15952
15955
|
reasoningVisibility: "always_strip",
|
|
15953
15956
|
markdownDialect: "none",
|
|
@@ -38455,6 +38458,33 @@ function sanitizeCodeToolIdentifier(name) {
|
|
|
38455
38458
|
if (/^[0-9]/.test(safe)) safe = "_" + safe;
|
|
38456
38459
|
return safe;
|
|
38457
38460
|
}
|
|
38461
|
+
var DEFAULT_SANDBOX_PROVIDER = "cloudflare-worker";
|
|
38462
|
+
var SANDBOX_PROVIDER_LANGUAGES = Object.assign(
|
|
38463
|
+
/* @__PURE__ */ Object.create(null),
|
|
38464
|
+
{
|
|
38465
|
+
quickjs: ["javascript"],
|
|
38466
|
+
"cloudflare-worker": ["javascript"],
|
|
38467
|
+
"runtype-sandbox": ["javascript", "typescript", "python"],
|
|
38468
|
+
"cloudflare-sandbox": ["javascript", "typescript", "python"],
|
|
38469
|
+
daytona: ["javascript", "typescript", "python"]
|
|
38470
|
+
}
|
|
38471
|
+
);
|
|
38472
|
+
function resolveSandboxProvider(provider) {
|
|
38473
|
+
return typeof provider === "string" ? provider : DEFAULT_SANDBOX_PROVIDER;
|
|
38474
|
+
}
|
|
38475
|
+
function lookupLanguages(provider) {
|
|
38476
|
+
const resolved = resolveSandboxProvider(provider);
|
|
38477
|
+
if (!Object.prototype.hasOwnProperty.call(SANDBOX_PROVIDER_LANGUAGES, resolved)) return void 0;
|
|
38478
|
+
const languages = SANDBOX_PROVIDER_LANGUAGES[resolved];
|
|
38479
|
+
return Array.isArray(languages) ? languages : void 0;
|
|
38480
|
+
}
|
|
38481
|
+
function isJsOnlySandboxProvider(provider) {
|
|
38482
|
+
const languages = lookupLanguages(provider);
|
|
38483
|
+
return languages !== void 0 && languages.length === 1 && languages[0] === "javascript";
|
|
38484
|
+
}
|
|
38485
|
+
function supportsCodeModeToolPool(provider) {
|
|
38486
|
+
return resolveSandboxProvider(provider) === "cloudflare-worker";
|
|
38487
|
+
}
|
|
38458
38488
|
function snakeToCamel(str) {
|
|
38459
38489
|
return str.replace(/_([a-z])/g, (_2, letter) => letter.toUpperCase());
|
|
38460
38490
|
}
|
|
@@ -38569,6 +38599,42 @@ function validateSandboxNetworkAccess(config3, stepIndex, stepRef, buckets) {
|
|
|
38569
38599
|
buckets
|
|
38570
38600
|
);
|
|
38571
38601
|
}
|
|
38602
|
+
function validateTransformLanguageProviderPair(config3, stepIndex, stepRef, buckets) {
|
|
38603
|
+
const language = typeof config3.language === "string" ? config3.language : void 0;
|
|
38604
|
+
if (!language || language === "javascript") return;
|
|
38605
|
+
const provider = resolveSandboxProvider(config3.sandboxProvider);
|
|
38606
|
+
if (!isJsOnlySandboxProvider(provider)) return;
|
|
38607
|
+
addIssue(
|
|
38608
|
+
"warning",
|
|
38609
|
+
{
|
|
38610
|
+
code: "TRANSFORM_LANGUAGE_PROVIDER_MISMATCH",
|
|
38611
|
+
message: `Step requests language "${language}" but sandboxProvider "${provider}" only runs JavaScript. Switch to the "runtype-sandbox" or "daytona" provider to run this language, or set language to "javascript".`,
|
|
38612
|
+
path: `flowSteps[${stepIndex}].config.language`,
|
|
38613
|
+
step: stepRef,
|
|
38614
|
+
details: { language, sandboxProvider: provider }
|
|
38615
|
+
},
|
|
38616
|
+
buckets
|
|
38617
|
+
);
|
|
38618
|
+
}
|
|
38619
|
+
function validateTransformToolPoolProvider(config3, stepIndex, stepRef, buckets) {
|
|
38620
|
+
const tools = isObjectRecord(config3.tools) ? config3.tools : void 0;
|
|
38621
|
+
if (!tools) return;
|
|
38622
|
+
const poolSize = (Array.isArray(tools.runtimeTools) ? tools.runtimeTools.length : 0) + (Array.isArray(tools.toolIds) ? tools.toolIds.length : 0) + (Array.isArray(tools.mcpServers) ? tools.mcpServers.length : 0);
|
|
38623
|
+
if (poolSize === 0) return;
|
|
38624
|
+
const provider = resolveSandboxProvider(config3.sandboxProvider);
|
|
38625
|
+
if (supportsCodeModeToolPool(provider)) return;
|
|
38626
|
+
addIssue(
|
|
38627
|
+
"warning",
|
|
38628
|
+
{
|
|
38629
|
+
code: "TRANSFORM_POOL_TOOLS_ON_CONTAINER_PROVIDER",
|
|
38630
|
+
message: `Step configures tools but sandboxProvider "${provider}" cannot bind a code-mode tool pool, so the tools are not callable from this script and any call to one fails at runtime. Use the "cloudflare-worker" provider to call tools from a transform-data step, or remove the tools.`,
|
|
38631
|
+
path: `flowSteps[${stepIndex}].config.tools`,
|
|
38632
|
+
step: stepRef,
|
|
38633
|
+
details: { sandboxProvider: provider, poolSize }
|
|
38634
|
+
},
|
|
38635
|
+
buckets
|
|
38636
|
+
);
|
|
38637
|
+
}
|
|
38572
38638
|
function validateCodeToolNameCollisions(toolNames, stepRef, code, preSeededCount = 0) {
|
|
38573
38639
|
const seen = /* @__PURE__ */ new Map();
|
|
38574
38640
|
for (const [i, tool] of toolNames.entries()) {
|
|
@@ -39997,6 +40063,8 @@ function collectFlowStructureIssues(flowData, deps, buckets) {
|
|
|
39997
40063
|
const sandboxProvider = config3.sandboxProvider || "cloudflare-worker";
|
|
39998
40064
|
const resolvedProvider = sandboxProvider === "cloudflare-sandbox" ? "runtype-sandbox" : sandboxProvider;
|
|
39999
40065
|
validateSandboxNetworkAccess(config3, stepIndex, stepRef, buckets);
|
|
40066
|
+
validateTransformLanguageProviderPair(config3, stepIndex, stepRef, buckets);
|
|
40067
|
+
validateTransformToolPoolProvider(config3, stepIndex, stepRef, buckets);
|
|
40000
40068
|
if (resolvedProvider === "runtype-sandbox" && !config3.language) {
|
|
40001
40069
|
addIssue(
|
|
40002
40070
|
"warning",
|
|
@@ -40456,7 +40524,7 @@ var API_INPROCESS_CAPABILITY_MATRIX = {
|
|
|
40456
40524
|
// `vendored-export` (it rides the same host `CodeModeExecutor` seam as
|
|
40457
40525
|
// `transformDataCodeModeTools`) — see {@link VENDORED_EXPORT_REFOLDS}.
|
|
40458
40526
|
// Rollback lever: revert the bit to `true` (plus its test).
|
|
40459
|
-
version: "2026-08-
|
|
40527
|
+
version: "2026-08-11.1",
|
|
40460
40528
|
unsupportedStepTypes: ["wait-until", "crawl"],
|
|
40461
40529
|
unsupportedFeatures: {
|
|
40462
40530
|
approvalSteps: true,
|
|
@@ -40515,7 +40583,34 @@ var API_INPROCESS_CAPABILITY_MATRIX = {
|
|
|
40515
40583
|
// decision attribution but no longer folds.
|
|
40516
40584
|
// Rollback lever: revert this bit to `true` (plus its test).
|
|
40517
40585
|
transformDataMcpServers: false,
|
|
40518
|
-
|
|
40586
|
+
// SUPPORTED as of 2026-08-11 (#6521): `TransformSandboxRouter`
|
|
40587
|
+
// (`apps/api/src/lib/runtime/transform-sandbox-router.ts`) selects a
|
|
40588
|
+
// concrete executor per `execute()` call from the step's own
|
|
40589
|
+
// `sandboxProvider`, so a container-backed or Daytona `transform-data` step
|
|
40590
|
+
// now has a faithful runtime-lane execution. The api owns the router (it
|
|
40591
|
+
// holds the SANDBOX binding and the Daytona credentials), which is why the
|
|
40592
|
+
// `vendored-export` matrix RE-FOLDS this bit rather than inheriting the
|
|
40593
|
+
// graduation — see {@link VENDORED_EXPORT_REFOLDS}.
|
|
40594
|
+
//
|
|
40595
|
+
// The fold does NOT disappear: `transformDataHasUnsupportedExecution`
|
|
40596
|
+
// (`apps/api/src/lib/runtime/flow-eligibility-facts.ts`) narrowed to the
|
|
40597
|
+
// shapes the router still throws on — an unroutable provider, and a non-JS
|
|
40598
|
+
// `language` on a JS-only provider (which legacy runs as JavaScript
|
|
40599
|
+
// because it never forwards `language` to those branches). Both would
|
|
40600
|
+
// otherwise land as `success: true` with a null output, since
|
|
40601
|
+
// `transform-data` default-continues.
|
|
40602
|
+
//
|
|
40603
|
+
// Rollback lever: flip this bit back to `true` (plus its test). That
|
|
40604
|
+
// re-folds every container/Daytona transform to legacy without touching
|
|
40605
|
+
// the router or the narrowed predicate.
|
|
40606
|
+
unsupportedTransformExecution: false,
|
|
40607
|
+
// NOT graduated, and not graduating with its sibling: these are the shapes
|
|
40608
|
+
// the router THROWS on, which `transform-data`'s default-continue turns
|
|
40609
|
+
// into `success: true` + null rather than a visible failure. Keeping this
|
|
40610
|
+
// bit `true` is what stops the graduation above from being a silent data
|
|
40611
|
+
// bug for `python` + `cloudflare-worker` (which legacy runs as JavaScript
|
|
40612
|
+
// today). See {@link FlowEligibilityFacts.hasUnroutableTransformExecution}.
|
|
40613
|
+
unroutableTransformExecution: true,
|
|
40519
40614
|
// #6023 leg 1 (2026-08-05): a custom runtime tool requesting code_mode / a
|
|
40520
40615
|
// non-JS language / a container-backed sandbox provider has no runtime-lane
|
|
40521
40616
|
// port — `runCustom` ignores all three and silently misexecutes as JS. Same
|
|
@@ -40609,7 +40704,7 @@ var VENDORED_EXPORT_CAPABILITY_MATRIX = {
|
|
|
40609
40704
|
// Bumped 2026-08-08.1: `transformDataMcpServers` graduated on the base and
|
|
40610
40705
|
// becomes the fourth documented re-fold here — the discovered tools still
|
|
40611
40706
|
// need the host `CodeModeExecutor` to be bound as sandbox callables.
|
|
40612
|
-
version: "2026-08-
|
|
40707
|
+
version: "2026-08-11.1",
|
|
40613
40708
|
unsupportedStepTypes: [
|
|
40614
40709
|
// ── Carried over from api-inprocess: durable-host-only step types. A
|
|
40615
40710
|
// self-contained container has no durable host (BYOC §3.3 / S0 — the
|
|
@@ -40738,8 +40833,19 @@ var VENDORED_EXPORT_CAPABILITY_MATRIX = {
|
|
|
40738
40833
|
// `CodeModeExecutor` seam as the sibling bit above — discovery itself is
|
|
40739
40834
|
// portable, the BINDING is not. Same graduation lever.
|
|
40740
40835
|
transformDataMcpServers: true,
|
|
40836
|
+
// VENDORED RE-FOLD (as of 2026-08-11, when the base graduated on #6521):
|
|
40837
|
+
// api-inprocess reaches container / Daytona `transform-data` execution
|
|
40838
|
+
// through `TransformSandboxRouter`, which needs the api's `SANDBOX` service
|
|
40839
|
+
// binding and api-resolved Daytona credentials. An export bundle has
|
|
40840
|
+
// neither, and `.claude/rules/runtime.md` forbids in-runtime dispatch
|
|
40841
|
+
// across providers, so the runtime's ONE wired executor would run the
|
|
40842
|
+
// step's container/Python source on whatever JS-only sandbox the export
|
|
40843
|
+
// carries. Graduation lever: a portable provider-routing fulfillment in the
|
|
40844
|
+
// standard export — then flip to false and drop from
|
|
40845
|
+
// {@link VENDORED_EXPORT_REFOLDS}.
|
|
40741
40846
|
unsupportedTransformExecution: true,
|
|
40742
|
-
//
|
|
40847
|
+
// Inherited from the base, which never graduates it.
|
|
40848
|
+
unroutableTransformExecution: true,
|
|
40743
40849
|
customToolExecution: true,
|
|
40744
40850
|
// api-inprocess fold (#6023 leg 1); carried over.
|
|
40745
40851
|
// `promptMcpServers` inherits the base SUPPORTED (`false`). The runtime owns
|
|
@@ -41330,11 +41436,9 @@ var userProfileFeaturesSchema = external_exports.object({
|
|
|
41330
41436
|
// ungated: they already require per-agent `config.voice.enabled` opt-in,
|
|
41331
41437
|
// which production users can only set once this flag exposes the UI.
|
|
41332
41438
|
enableVoice: external_exports.boolean(),
|
|
41333
|
-
//
|
|
41334
|
-
// (
|
|
41335
|
-
// the
|
|
41336
|
-
// rule enables it). When false the dashboard renders byte-identical to today
|
|
41337
|
-
// (personal sentinel, personal/team chooser, personal Schematic identify).
|
|
41439
|
+
// Workspace model is permanently enabled post-migration — the API always
|
|
41440
|
+
// returns `true`. Kept on the wire (rather than dropped) for compatibility
|
|
41441
|
+
// with deployed SPA bundles and the published SDK that still read this field.
|
|
41338
41442
|
enableWorkspaceModel: external_exports.boolean(),
|
|
41339
41443
|
// Gates the End users subview in Settings → Usage. Driven by the
|
|
41340
41444
|
// `enable-end-user-usage-analytics` Flagship rollout flag.
|
|
@@ -41344,12 +41448,11 @@ var userProfileFeaturesSchema = external_exports.object({
|
|
|
41344
41448
|
// boolean flag (fail-closed in production until a rule enables it; non-prod
|
|
41345
41449
|
// defaults on). The whole /v1/oauth-clients surface 404s when this is off.
|
|
41346
41450
|
enableSelfServeOauthClients: external_exports.boolean(),
|
|
41347
|
-
// Durable server-side workspace migration state. `workspaceModelReady`
|
|
41348
|
-
//
|
|
41349
|
-
//
|
|
41350
|
-
//
|
|
41351
|
-
//
|
|
41352
|
-
// already-migrated users remain distinguishable.
|
|
41451
|
+
// Durable server-side workspace migration state. `workspaceModelReady` means
|
|
41452
|
+
// the user's workspace pointer is set. `workspaceModelEligible` is a
|
|
41453
|
+
// compatibility constant that is always `true` now that the eligibility
|
|
41454
|
+
// marker column has been dropped. Both are kept on the wire for compatibility
|
|
41455
|
+
// with deployed SPA bundles and the published SDK.
|
|
41353
41456
|
workspaceModelReady: external_exports.boolean(),
|
|
41354
41457
|
workspaceModelEligible: external_exports.boolean()
|
|
41355
41458
|
});
|
|
@@ -41474,6 +41577,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
|
|
|
41474
41577
|
"togetherai": "togetherai/deepseek-ai/DeepSeek-V4-Pro",
|
|
41475
41578
|
"vercel": "deepseek/deepseek-v4-pro"
|
|
41476
41579
|
},
|
|
41580
|
+
"deepseek-v4-pro-0813": {
|
|
41581
|
+
"vercel": "deepseek/deepseek-v4-pro-0813"
|
|
41582
|
+
},
|
|
41477
41583
|
"devstral-2": {
|
|
41478
41584
|
"vercel": "mistral/devstral-2"
|
|
41479
41585
|
},
|
|
@@ -41901,6 +42007,10 @@ var MODEL_FAMILY_PROVIDER_IDS = {
|
|
|
41901
42007
|
"vercel": "xai/grok-4.5",
|
|
41902
42008
|
"xai": "grok-4.5"
|
|
41903
42009
|
},
|
|
42010
|
+
"grok-4-6": {
|
|
42011
|
+
"vercel": "xai/grok-4.6",
|
|
42012
|
+
"xai": "grok-4.6"
|
|
42013
|
+
},
|
|
41904
42014
|
"grok-4.20-0309-non-reasoning": {
|
|
41905
42015
|
"xai": "grok-4.20-0309-non-reasoning"
|
|
41906
42016
|
},
|
|
@@ -41927,6 +42037,10 @@ var MODEL_FAMILY_PROVIDER_IDS = {
|
|
|
41927
42037
|
"vercel": "xai/grok-4.5",
|
|
41928
42038
|
"xai": "grok-4.5"
|
|
41929
42039
|
},
|
|
42040
|
+
"grok-4.6": {
|
|
42041
|
+
"vercel": "xai/grok-4.6",
|
|
42042
|
+
"xai": "grok-4.6"
|
|
42043
|
+
},
|
|
41930
42044
|
"grok-build-0-1": {
|
|
41931
42045
|
"vercel": "xai/grok-build-0.1",
|
|
41932
42046
|
"xai": "grok-build-0.1"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runtypelabs/cli",
|
|
3
|
-
"version": "2.33.
|
|
3
|
+
"version": "2.33.8",
|
|
4
4
|
"description": "Command-line interface for Runtype AI platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"react": "^19.2.8",
|
|
27
27
|
"rosie-skills": "0.8.1",
|
|
28
28
|
"yaml": "^2.9.0",
|
|
29
|
+
"@runtypelabs/sdk": "7.2.1",
|
|
29
30
|
"@runtypelabs/ink-components": "0.3.6",
|
|
30
|
-
"@runtypelabs/terminal-animations": "0.2.3"
|
|
31
|
-
"@runtypelabs/sdk": "7.1.0"
|
|
31
|
+
"@runtypelabs/terminal-animations": "0.2.3"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@modelcontextprotocol/server": "2.0.0",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"tsx": "^4.7.1",
|
|
44
44
|
"typescript": "^6.0.3",
|
|
45
45
|
"vitest": "^4.1.0",
|
|
46
|
-
"@runtypelabs/shared": "3.
|
|
46
|
+
"@runtypelabs/shared": "3.21.1"
|
|
47
47
|
},
|
|
48
48
|
"engines": {
|
|
49
49
|
"node": ">=22.12.0"
|