@runtypelabs/cli 2.33.9 → 2.33.11
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 +210 -40
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -15130,7 +15130,7 @@ function date4(params) {
|
|
|
15130
15130
|
// ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js
|
|
15131
15131
|
config(en_default());
|
|
15132
15132
|
|
|
15133
|
-
// ../shared/dist/chunk-
|
|
15133
|
+
// ../shared/dist/chunk-KMIBIAMG.mjs
|
|
15134
15134
|
var AGENT_EXECUTION_STATUSES = [
|
|
15135
15135
|
"queued",
|
|
15136
15136
|
"running",
|
|
@@ -15148,7 +15148,7 @@ var RUNTYPE_LEGACY_ATTRIBUTE_ALIASES = {
|
|
|
15148
15148
|
[RUNTYPE_TURN_INDEX]: ["runtype.agent.turnIndex"]
|
|
15149
15149
|
};
|
|
15150
15150
|
|
|
15151
|
-
// ../shared/dist/chunk-
|
|
15151
|
+
// ../shared/dist/chunk-BB6EPGHC.mjs
|
|
15152
15152
|
var DEFAULT_BEDROCK_REGION = "us-east-1";
|
|
15153
15153
|
var DEFAULT_VERTEX_LOCATION = "us-central1";
|
|
15154
15154
|
var PROVIDER_SECRET_SPECS = [
|
|
@@ -15473,6 +15473,10 @@ var MODEL_FAMILY_PROVIDER_IDS = {
|
|
|
15473
15473
|
"google": "gemini-3.6-flash",
|
|
15474
15474
|
"vercel": "google/gemini-3.6-flash"
|
|
15475
15475
|
},
|
|
15476
|
+
"gemini-3-7-flash": {
|
|
15477
|
+
"google": "gemini-3.7-flash",
|
|
15478
|
+
"vercel": "google/gemini-3.7-flash"
|
|
15479
|
+
},
|
|
15476
15480
|
"gemini-3-flash": {
|
|
15477
15481
|
"google": "gemini-3-flash-preview"
|
|
15478
15482
|
},
|
|
@@ -15523,6 +15527,10 @@ var MODEL_FAMILY_PROVIDER_IDS = {
|
|
|
15523
15527
|
"google": "gemini-3.6-flash",
|
|
15524
15528
|
"vercel": "google/gemini-3.6-flash"
|
|
15525
15529
|
},
|
|
15530
|
+
"gemini-3.7-flash": {
|
|
15531
|
+
"google": "gemini-3.7-flash",
|
|
15532
|
+
"vercel": "google/gemini-3.7-flash"
|
|
15533
|
+
},
|
|
15526
15534
|
"gemini-embedding-001": {
|
|
15527
15535
|
"google": "gemini-embedding-001"
|
|
15528
15536
|
},
|
|
@@ -16260,6 +16268,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
|
|
|
16260
16268
|
"qwen3-7-plus": {
|
|
16261
16269
|
"vercel": "alibaba/qwen3.7-plus"
|
|
16262
16270
|
},
|
|
16271
|
+
"qwen3-8-2-4t-a95b": {
|
|
16272
|
+
"vercel": "alibaba/qwen3.8-2.4t-a95b"
|
|
16273
|
+
},
|
|
16263
16274
|
"qwen3-8-max": {
|
|
16264
16275
|
"vercel": "alibaba/qwen3.8-max"
|
|
16265
16276
|
},
|
|
@@ -16351,6 +16362,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
|
|
|
16351
16362
|
"qwen3.7-plus": {
|
|
16352
16363
|
"vercel": "alibaba/qwen3.7-plus"
|
|
16353
16364
|
},
|
|
16365
|
+
"qwen3.8-2.4t-a95b": {
|
|
16366
|
+
"vercel": "alibaba/qwen3.8-2.4t-a95b"
|
|
16367
|
+
},
|
|
16354
16368
|
"qwen3.8-max": {
|
|
16355
16369
|
"vercel": "alibaba/qwen3.8-max"
|
|
16356
16370
|
},
|
|
@@ -16520,6 +16534,29 @@ var MANUAL_PROVIDER_MAP_OVERRIDES = {
|
|
|
16520
16534
|
"mixlayer": "z-ai/glm-5.2",
|
|
16521
16535
|
"vercel": "zai/glm-5.2"
|
|
16522
16536
|
},
|
|
16537
|
+
// DeepSeek V4 Pro: Cloudflare only publishes the date-pinned build, so every
|
|
16538
|
+
// id form's Workers AI id carries the `-0813` suffix.
|
|
16539
|
+
//
|
|
16540
|
+
// The two bare families merge over a generated map that already supplies their
|
|
16541
|
+
// `vercel` id, so only the Workers AI id needs declaring. The two SLASH forms
|
|
16542
|
+
// have no generated entry at all, so their `vercel` id must be declared
|
|
16543
|
+
// explicitly: `getDefaultProviderMapping` would otherwise synthesize
|
|
16544
|
+
// `deepseek/deepseek/deepseek-v4-pro` (it prepends the inferred creator to the
|
|
16545
|
+
// whole id), sending the fallback rung to a listing that does not exist.
|
|
16546
|
+
"deepseek-v4-pro": {
|
|
16547
|
+
"workers-ai": "@cf/deepseek-ai/deepseek-v4-pro-0813"
|
|
16548
|
+
},
|
|
16549
|
+
"deepseek-v4-pro-0813": {
|
|
16550
|
+
"workers-ai": "@cf/deepseek-ai/deepseek-v4-pro-0813"
|
|
16551
|
+
},
|
|
16552
|
+
"deepseek/deepseek-v4-pro": {
|
|
16553
|
+
"workers-ai": "@cf/deepseek-ai/deepseek-v4-pro-0813",
|
|
16554
|
+
"vercel": "deepseek/deepseek-v4-pro"
|
|
16555
|
+
},
|
|
16556
|
+
"deepseek/deepseek-v4-pro-0813": {
|
|
16557
|
+
"workers-ai": "@cf/deepseek-ai/deepseek-v4-pro-0813",
|
|
16558
|
+
"vercel": "deepseek/deepseek-v4-pro-0813"
|
|
16559
|
+
},
|
|
16523
16560
|
// MiniMax M2.7: Vercel's gateway-form id.
|
|
16524
16561
|
"minimax-m2.7": {
|
|
16525
16562
|
"vercel": "minimax/minimax-m2.7"
|
|
@@ -16645,7 +16682,7 @@ var CREATOR_TO_PROVIDER = {
|
|
|
16645
16682
|
// Default fallback
|
|
16646
16683
|
};
|
|
16647
16684
|
|
|
16648
|
-
// ../shared/dist/chunk-
|
|
16685
|
+
// ../shared/dist/chunk-CZYEGUYG.mjs
|
|
16649
16686
|
var apiReleaseChannelSchema = external_exports.enum(["staging", "production"]);
|
|
16650
16687
|
var API_ARTIFACT_SCRIPT_PATTERN = /^api-[a-z0-9][a-z0-9-]{0,62}$/;
|
|
16651
16688
|
var apiArtifactScriptNameSchema = external_exports.string().regex(
|
|
@@ -16679,7 +16716,26 @@ var apiRoutingDocSchema = external_exports.object({
|
|
|
16679
16716
|
canary: apiCanaryConfigSchema.nullable(),
|
|
16680
16717
|
pinsEnabled: external_exports.boolean(),
|
|
16681
16718
|
legacyFallback: external_exports.boolean(),
|
|
16682
|
-
headerOverride: apiHeaderOverrideModeSchema
|
|
16719
|
+
headerOverride: apiHeaderOverrideModeSchema,
|
|
16720
|
+
/**
|
|
16721
|
+
* OTLP fast lane: when true, the dispatch worker terminates
|
|
16722
|
+
* `/v1/otel/*` at the standalone `runtype-otel-ingest` worker instead of
|
|
16723
|
+
* resolving an API artifact (apps/api-dispatch/src/otel-lane.ts;
|
|
16724
|
+
* docs/features/planning/2026-08-12-otel-ingest-worker.md, increment 3).
|
|
16725
|
+
*
|
|
16726
|
+
* OPTIONAL and absent-means-off, deliberately: every doc persisted in a
|
|
16727
|
+
* RoutingStateDO or ROUTING_KV snapshot before this field existed, and
|
|
16728
|
+
* every control-plane pusher that predates it, must keep parsing and
|
|
16729
|
+
* keep routing exactly as it did. Absent → the lane is inert and
|
|
16730
|
+
* `/v1/otel/*` resolves through the normal pointer/passthrough path, so
|
|
16731
|
+
* the dark launch has no flag-day.
|
|
16732
|
+
*
|
|
16733
|
+
* NOTE for producers that REBUILD the doc from parts rather than
|
|
16734
|
+
* spreading the live one (`buildRoutingDoc` in
|
|
16735
|
+
* apps/api/src/services/api-release-service.ts): carry this field
|
|
16736
|
+
* forward, or an unrelated pointer flip silently turns the lane off.
|
|
16737
|
+
*/
|
|
16738
|
+
otelIngest: external_exports.boolean().optional()
|
|
16683
16739
|
})
|
|
16684
16740
|
}).refine((doc) => doc.api.activeScript !== null || doc.api.legacyFallback, {
|
|
16685
16741
|
message: "activeScript may only be null while legacyFallback is true",
|
|
@@ -34801,7 +34857,7 @@ function isToolCompatibleWithModel(toolId, modelId, provider) {
|
|
|
34801
34857
|
return compatibility.models.some((m2) => modelId.includes(m2));
|
|
34802
34858
|
}
|
|
34803
34859
|
|
|
34804
|
-
// ../shared/dist/chunk-
|
|
34860
|
+
// ../shared/dist/chunk-JZ6OUYPZ.mjs
|
|
34805
34861
|
var DEFAULT_MODELS_FOR_NEW_ACCOUNTS = [
|
|
34806
34862
|
// Mixlayer models
|
|
34807
34863
|
{
|
|
@@ -34859,7 +34915,7 @@ var DEFAULT_MODELS_FOR_NEW_ACCOUNTS = [
|
|
|
34859
34915
|
// Google models (routed via Google direct, with Vertex/Vercel fallback)
|
|
34860
34916
|
{
|
|
34861
34917
|
provider: "runtype",
|
|
34862
|
-
modelId: "gemini-3.
|
|
34918
|
+
modelId: "gemini-3.7-flash",
|
|
34863
34919
|
isDefault: true,
|
|
34864
34920
|
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.",
|
|
34865
34921
|
bestFor: ["default", "vision", "fast-cheap", "agentic-tools", "long-context"]
|
|
@@ -35333,7 +35389,7 @@ function resolveFallback(parsed, context, tracking, options = {}) {
|
|
|
35333
35389
|
}
|
|
35334
35390
|
var templateEngine = new SimpleTemplateEngine();
|
|
35335
35391
|
|
|
35336
|
-
// ../shared/dist/chunk-
|
|
35392
|
+
// ../shared/dist/chunk-K74FEBL5.mjs
|
|
35337
35393
|
var jsonPatchOperationSchema = external_exports.object({
|
|
35338
35394
|
op: external_exports.enum(["add", "remove", "replace", "move", "copy", "test"]),
|
|
35339
35395
|
/** JSON Pointer (RFC 6901) into the state document. `''` addresses the root. */
|
|
@@ -35594,7 +35650,9 @@ var unifiedMediaCompleteEventSchema = external_exports.object({
|
|
|
35594
35650
|
});
|
|
35595
35651
|
var unifiedArtifactStartEventSchema = external_exports.object({
|
|
35596
35652
|
type: external_exports.literal("artifact_start"),
|
|
35597
|
-
|
|
35653
|
+
// Non-empty by contract: an id-less artifact frame cannot be correlated
|
|
35654
|
+
// or closed by a consumer (parity finding H24).
|
|
35655
|
+
id: external_exports.string().min(1),
|
|
35598
35656
|
artifactType: external_exports.enum(["markdown", "component"]),
|
|
35599
35657
|
title: external_exports.string().optional(),
|
|
35600
35658
|
component: external_exports.string().optional(),
|
|
@@ -35610,14 +35668,18 @@ var unifiedArtifactStartEventSchema = external_exports.object({
|
|
|
35610
35668
|
});
|
|
35611
35669
|
var unifiedArtifactDeltaEventSchema = external_exports.object({
|
|
35612
35670
|
type: external_exports.literal("artifact_delta"),
|
|
35613
|
-
|
|
35671
|
+
// Non-empty by contract: an id-less artifact frame cannot be correlated
|
|
35672
|
+
// or closed by a consumer (parity finding H24).
|
|
35673
|
+
id: external_exports.string().min(1),
|
|
35614
35674
|
delta: external_exports.string(),
|
|
35615
35675
|
executionId: external_exports.string().optional(),
|
|
35616
35676
|
seq: external_exports.number().optional()
|
|
35617
35677
|
});
|
|
35618
35678
|
var unifiedArtifactUpdateEventSchema = external_exports.object({
|
|
35619
35679
|
type: external_exports.literal("artifact_update"),
|
|
35620
|
-
|
|
35680
|
+
// Non-empty by contract: an id-less artifact frame cannot be correlated
|
|
35681
|
+
// or closed by a consumer (parity finding H24).
|
|
35682
|
+
id: external_exports.string().min(1),
|
|
35621
35683
|
component: external_exports.string(),
|
|
35622
35684
|
props: external_exports.record(external_exports.string(), external_exports.unknown()),
|
|
35623
35685
|
executionId: external_exports.string().optional(),
|
|
@@ -35625,7 +35687,9 @@ var unifiedArtifactUpdateEventSchema = external_exports.object({
|
|
|
35625
35687
|
});
|
|
35626
35688
|
var unifiedArtifactCompleteEventSchema = external_exports.object({
|
|
35627
35689
|
type: external_exports.literal("artifact_complete"),
|
|
35628
|
-
|
|
35690
|
+
// Non-empty by contract: an id-less artifact frame cannot be correlated
|
|
35691
|
+
// or closed by a consumer (parity finding H24).
|
|
35692
|
+
id: external_exports.string().min(1),
|
|
35629
35693
|
executionId: external_exports.string().optional(),
|
|
35630
35694
|
seq: external_exports.number().optional()
|
|
35631
35695
|
});
|
|
@@ -35909,7 +35973,7 @@ var UNIFIED_SSE_EVENT_TYPES = _unifiedTuple([
|
|
|
35909
35973
|
"custom"
|
|
35910
35974
|
]);
|
|
35911
35975
|
|
|
35912
|
-
// ../shared/dist/chunk-
|
|
35976
|
+
// ../shared/dist/chunk-P77RRB4I.mjs
|
|
35913
35977
|
var mediaAnnotationsSchema = external_exports.object({
|
|
35914
35978
|
audience: external_exports.array(external_exports.enum(["user", "assistant"])).optional()
|
|
35915
35979
|
});
|
|
@@ -41670,11 +41734,37 @@ function collectFlowStructureIssues(flowData, deps, buckets) {
|
|
|
41670
41734
|
);
|
|
41671
41735
|
}
|
|
41672
41736
|
const idToStepIndexes = /* @__PURE__ */ new Map();
|
|
41737
|
+
const collectStepId = (id, topLevelIndex) => {
|
|
41738
|
+
if (typeof id !== "string" || id.length === 0) return;
|
|
41739
|
+
const existing = idToStepIndexes.get(id) || [];
|
|
41740
|
+
existing.push(topLevelIndex);
|
|
41741
|
+
idToStepIndexes.set(id, existing);
|
|
41742
|
+
};
|
|
41743
|
+
const walkNestedStepIds = (node, topLevelIndex, depth) => {
|
|
41744
|
+
if (!isObjectRecord(node)) return;
|
|
41745
|
+
if (node.type !== "conditional" || !isObjectRecord(node.config)) return;
|
|
41746
|
+
if (depth >= MAX_CONDITIONAL_NESTING_DEPTH) return;
|
|
41747
|
+
const config3 = node.config;
|
|
41748
|
+
const visit = (nested) => {
|
|
41749
|
+
if (!isObjectRecord(nested)) return;
|
|
41750
|
+
collectStepId(nested.id, topLevelIndex);
|
|
41751
|
+
walkNestedStepIds(nested, topLevelIndex, depth + 1);
|
|
41752
|
+
};
|
|
41753
|
+
if (Array.isArray(config3.branches)) {
|
|
41754
|
+
for (const branch of config3.branches) {
|
|
41755
|
+
if (!isObjectRecord(branch) || !Array.isArray(branch.steps)) continue;
|
|
41756
|
+
for (const nested of branch.steps) visit(nested);
|
|
41757
|
+
}
|
|
41758
|
+
}
|
|
41759
|
+
for (const key of CONDITIONAL_BRANCH_STEP_KEYS) {
|
|
41760
|
+
const arr = config3[key];
|
|
41761
|
+
if (!Array.isArray(arr)) continue;
|
|
41762
|
+
for (const nested of arr) visit(nested);
|
|
41763
|
+
}
|
|
41764
|
+
};
|
|
41673
41765
|
for (const [index, step] of flowData.flowSteps.entries()) {
|
|
41674
|
-
|
|
41675
|
-
|
|
41676
|
-
existing.push(index);
|
|
41677
|
-
idToStepIndexes.set(step.id, existing);
|
|
41766
|
+
collectStepId(step.id, index);
|
|
41767
|
+
walkNestedStepIds(step, index, 0);
|
|
41678
41768
|
}
|
|
41679
41769
|
for (const [id, indexes] of idToStepIndexes.entries()) {
|
|
41680
41770
|
if (indexes.length <= 1) continue;
|
|
@@ -42163,11 +42253,42 @@ var API_INPROCESS_CAPABILITY_MATRIX = {
|
|
|
42163
42253
|
// `vendored-export` (it rides the same host `CodeModeExecutor` seam as
|
|
42164
42254
|
// `transformDataCodeModeTools`) — see {@link VENDORED_EXPORT_REFOLDS}.
|
|
42165
42255
|
// Rollback lever: revert the bit to `true` (plus its test).
|
|
42166
|
-
|
|
42256
|
+
// Bumped 2026-08-14.1: graduates `approvalSteps` (the `fold-approval-steps`
|
|
42257
|
+
// item). The runtime flow lane now ARMS a prompt step's own
|
|
42258
|
+
// `config.tools.approval` (`stepAuthoredApprovalPolicy` +
|
|
42259
|
+
// `resolveSeamApprovalConfig` in `packages/runtime/src/engine/flow-engine.ts`)
|
|
42260
|
+
// and PAUSES on it (`flow-stream.ts` -> `approval_start` + an
|
|
42261
|
+
// `approval-paused` outcome -> `saveRuntimeApprovalPauseState` ->
|
|
42262
|
+
// `runRuntimeFlowContinuation`). The `hasApprovalSteps` FACT is still computed
|
|
42263
|
+
// for decision attribution AND for the SURFACE gate that replaced this bit: a
|
|
42264
|
+
// host that cannot answer an approval prompt does not declare
|
|
42265
|
+
// `approvalPauseHosting` and folds with `ineligible:surface-approval-pause`
|
|
42266
|
+
// (`playground-flow-dispatch.ts`). Rollback lever: revert this bit to `true`
|
|
42267
|
+
// (plus its tests) — the surface gate is independent and can stay.
|
|
42268
|
+
// Bumped 2026-08-16.1: graduates `batchInputMode` (the `fold-batch-input-mode`
|
|
42269
|
+
// item, D-095). The fold rested on a mis-stated premise: its comment described
|
|
42270
|
+
// batch EXECUTION (#6091 — the record-batch surface, which has no cross-record
|
|
42271
|
+
// conversational context and routes through its own eligibility probe), but the
|
|
42272
|
+
// FACT fires on STEP-level `config.inputMode === 'batch'`, a field that exists
|
|
42273
|
+
// on exactly three step schemas (`generate-embedding`, `store-vector`,
|
|
42274
|
+
// `upsert-record`) and never on a prompt step. All three runtime executors
|
|
42275
|
+
// already implement the batch branch
|
|
42276
|
+
// (`packages/runtime/src/engine/context-steps/{generate-embedding,store-vector,
|
|
42277
|
+
// upsert-record}.ts`), and `apps/api/src/lib/flow-execution/` has ZERO
|
|
42278
|
+
// `inputMode` references — so the bit folded a capability the runtime lane
|
|
42279
|
+
// already had. The `hasBatchInputMode` FACT stays computed for decision
|
|
42280
|
+
// attribution. Rollback lever: revert this bit to `true` (plus its tests).
|
|
42281
|
+
version: "2026-08-16.1",
|
|
42167
42282
|
unsupportedStepTypes: ["wait-until", "crawl"],
|
|
42168
42283
|
unsupportedFeatures: {
|
|
42169
|
-
approvalSteps:
|
|
42170
|
-
|
|
42284
|
+
approvalSteps: false,
|
|
42285
|
+
// SUPPORTED as of 2026-08-16.1 (D-095): step-level `inputMode: 'batch'` on
|
|
42286
|
+
// `generate-embedding` / `store-vector` / `upsert-record` runs on the
|
|
42287
|
+
// runtime flow lane through each executor's own batch branch — the same
|
|
42288
|
+
// per-item fan-out, chunking, and summary shape the api executors produce.
|
|
42289
|
+
// `hasBatchInputMode` stays computed for decision attribution.
|
|
42290
|
+
// Rollback lever: revert this bit to `true` (plus its tests).
|
|
42291
|
+
batchInputMode: false,
|
|
42171
42292
|
claudeManagedAgent: true,
|
|
42172
42293
|
inexpressibleVectorStep: true,
|
|
42173
42294
|
unresolvableAgentRef: true,
|
|
@@ -42343,7 +42464,18 @@ var VENDORED_EXPORT_CAPABILITY_MATRIX = {
|
|
|
42343
42464
|
// Bumped 2026-08-08.1: `transformDataMcpServers` graduated on the base and
|
|
42344
42465
|
// becomes the fourth documented re-fold here — the discovered tools still
|
|
42345
42466
|
// need the host `CodeModeExecutor` to be bound as sandbox callables.
|
|
42346
|
-
|
|
42467
|
+
// Bumped 2026-08-14.1: `approvalSteps` graduated on the base and becomes a
|
|
42468
|
+
// documented re-fold here — the ENGINE half is portable, the api-owned
|
|
42469
|
+
// approval-resume PLANE is not.
|
|
42470
|
+
// Bumped 2026-08-16.1: `batchInputMode` graduated on the base and is INHERITED
|
|
42471
|
+
// here rather than re-folded — the batch branches are pure engine (per-item
|
|
42472
|
+
// fan-out over the SAME `RecordStore` / `VectorStore` / `EmbeddingProvider`
|
|
42473
|
+
// seams single mode already uses; no host executor is involved), so a
|
|
42474
|
+
// container that runs the step at all runs its batch branch. The bit is also
|
|
42475
|
+
// inert on this matrix by construction: `inputMode` exists on exactly
|
|
42476
|
+
// `generate-embedding` / `store-vector` / `upsert-record`, and all three are
|
|
42477
|
+
// already in `unsupportedStepTypes` below, so the step-type fold fires first.
|
|
42478
|
+
version: "2026-08-16.1",
|
|
42347
42479
|
unsupportedStepTypes: [
|
|
42348
42480
|
// ── Carried over from api-inprocess: durable-host-only step types. A
|
|
42349
42481
|
// self-contained container has no durable host (BYOC §3.3 / S0 — the
|
|
@@ -42375,6 +42507,23 @@ var VENDORED_EXPORT_CAPABILITY_MATRIX = {
|
|
|
42375
42507
|
// customer-wired VectorStore / EmbeddingProvider can host these; the
|
|
42376
42508
|
// container ships neither. Graduation lever: bundle a pgvector
|
|
42377
42509
|
// VectorStore + a provider-backed EmbeddingProvider in the export.
|
|
42510
|
+
//
|
|
42511
|
+
// TRIPWIRE for whoever pulls that lever (D-095 item 3, 2026-08-16): the
|
|
42512
|
+
// `inexpressibleVectorStepIds` FACT is target-SHARED, and it narrowed to
|
|
42513
|
+
// admit record-coupled `vector-search` onto the api lane. That narrowing is
|
|
42514
|
+
// inert HERE only because the step type is folded on this line — remove the
|
|
42515
|
+
// line and a record/pgvector search becomes eligible for a container that
|
|
42516
|
+
// has no `records` table. A bundled generic pgvector index is NOT that
|
|
42517
|
+
// fulfilment. Graduating `vector-search` therefore also owes either a
|
|
42518
|
+
// vendored re-fold bit (the {@link VENDORED_EXPORT_REFOLDS} pattern) or a
|
|
42519
|
+
// container-side `records` fulfilment.
|
|
42520
|
+
//
|
|
42521
|
+
// This tripwire is EXECUTABLE, not just prose: the "folds a record-coupled
|
|
42522
|
+
// vector-search even though api-inprocess now admits it" case in
|
|
42523
|
+
// `runtime-eligibility.test.ts` fails if this entry is removed. The
|
|
42524
|
+
// full-surface test below cannot catch it — it iterates
|
|
42525
|
+
// `unsupportedStepTypes` itself, so a deleted entry simply stops being
|
|
42526
|
+
// asserted.
|
|
42378
42527
|
"generate-embedding",
|
|
42379
42528
|
"vector-search",
|
|
42380
42529
|
"store-vector",
|
|
@@ -42409,14 +42558,37 @@ var VENDORED_EXPORT_CAPABILITY_MATRIX = {
|
|
|
42409
42558
|
// which are strictly stricter.
|
|
42410
42559
|
unsupportedFeatures: {
|
|
42411
42560
|
...API_INPROCESS_CAPABILITY_MATRIX.unsupportedFeatures,
|
|
42561
|
+
// VENDORED RE-FOLD (2026-08-14.1, no longer carried over): api-inprocess
|
|
42562
|
+
// graduated `approvalSteps` because the API host owns the approval-resume
|
|
42563
|
+
// plane (`ApprovalResumeStore` + KV `ResumeState` + the `/approve`
|
|
42564
|
+
// continuation leg). A self-contained container wires none of it and the
|
|
42565
|
+
// runtime's default `ApprovalResumeStore` is the fail-closed NoOp, so an
|
|
42566
|
+
// armed gate pauses into a prompt nobody can answer. See
|
|
42567
|
+
// {@link VENDORED_EXPORT_REFOLDS} for the graduation lever.
|
|
42412
42568
|
approvalSteps: true,
|
|
42413
|
-
//
|
|
42414
|
-
|
|
42415
|
-
//
|
|
42569
|
+
// `batchInputMode` INHERITS the base SUPPORTED (`false`) as of 2026-08-16.1
|
|
42570
|
+
// (D-095) and is deliberately NOT restated as a literal — the 2026-08-06.3
|
|
42571
|
+
// re-decision pass exists because a restated literal went stale when its
|
|
42572
|
+
// base graduated. Two independent reasons it is not a re-fold: (1) the batch
|
|
42573
|
+
// branches are ENGINE-owned — a per-item loop over the same `RecordStore` /
|
|
42574
|
+
// `VectorStore` / `EmbeddingProvider` seams single mode uses, with no host
|
|
42575
|
+
// executor seam of the `CodeModeExecutor` / `ManagedFetchExecutor` /
|
|
42576
|
+
// `TransformSandboxRouter` kind {@link VENDORED_EXPORT_REFOLDS} exists for;
|
|
42577
|
+
// (2) it cannot change a decision here anyway, since `inputMode` exists only
|
|
42578
|
+
// on `generate-embedding` / `store-vector` / `upsert-record` and all three
|
|
42579
|
+
// are folded by `unsupportedStepTypes` above.
|
|
42416
42580
|
claudeManagedAgent: true,
|
|
42417
42581
|
// api-inprocess fold; exported execute-agent rejects claude_managed/external (BYOC §3.6, D-030/D-031).
|
|
42582
|
+
// api-inprocess fold; no vector seam in a self-contained container. The BIT
|
|
42583
|
+
// is unchanged by D-095 item 3, but the FACT feeding it narrowed on
|
|
42584
|
+
// 2026-08-16 to admit record-coupled `vector-search`. Re-fold check
|
|
42585
|
+
// performed and recorded rather than assumed: no re-fold entry is added,
|
|
42586
|
+
// because `vector-search` / `store-vector` are already in
|
|
42587
|
+
// `unsupportedStepTypes` above, so the step-type fold fires first and the
|
|
42588
|
+
// narrowing cannot change a decision on this target. Same reasoning
|
|
42589
|
+
// `batchInputMode` carries. The tripwire guarding that argument sits on the
|
|
42590
|
+
// step-type entries themselves.
|
|
42418
42591
|
inexpressibleVectorStep: true,
|
|
42419
|
-
// api-inprocess fold; no vector seam in a self-contained container.
|
|
42420
42592
|
unresolvableAgentRef: true,
|
|
42421
42593
|
// api-inprocess fold; execute-agent resolves only against the embedded registry (ADR 0014).
|
|
42422
42594
|
// Nested-prompt dispatch is ENGINE-owned and works identically in a
|
|
@@ -43014,11 +43186,6 @@ var userProfileFeaturesSchema = external_exports.object({
|
|
|
43014
43186
|
// this staging-only experiment in production. The command hands off to the
|
|
43015
43187
|
// standalone Runtown app rather than mounting it inside the dashboard.
|
|
43016
43188
|
enableRuntown: external_exports.boolean(),
|
|
43017
|
-
// Gates the dashboard skill "Security scan" affordance (the
|
|
43018
|
-
// `POST /v1/skills/scan` verdict UI). Driven by the `enable-skill-scanner`
|
|
43019
|
-
// boolean flag (fail-closed until a rule enables it). The scan ROUTE stays
|
|
43020
|
-
// reachable; this only hides the UI while the scanner rollout completes.
|
|
43021
|
-
enableSkillScanner: external_exports.boolean(),
|
|
43022
43189
|
// Gates the Massive Web Render surfaces in the dashboard (Settings
|
|
43023
43190
|
// integration card + the fetch-url step's Massive mode option). Driven by
|
|
43024
43191
|
// the `enable-massive-web-render` boolean flag (fail-closed in production
|
|
@@ -45621,6 +45788,17 @@ var credentialProxyConfigSchema = external_exports.object({
|
|
|
45621
45788
|
injectionConfig: external_exports.record(external_exports.string(), external_exports.unknown()).default({}),
|
|
45622
45789
|
envVarName: external_exports.string().optional()
|
|
45623
45790
|
});
|
|
45791
|
+
var CANONICAL_LOG_COLUMN_SET = {
|
|
45792
|
+
// @snake-case-ok-start: R2 SQL / Iceberg column naming convention
|
|
45793
|
+
event_id: true,
|
|
45794
|
+
retention_class: true,
|
|
45795
|
+
retention_key: true,
|
|
45796
|
+
canonicalized_at: true,
|
|
45797
|
+
source_ingest_id: true,
|
|
45798
|
+
source_ingest_ts: true
|
|
45799
|
+
// @snake-case-ok-end
|
|
45800
|
+
};
|
|
45801
|
+
var CANONICAL_LOG_COLUMNS = Object.keys(CANONICAL_LOG_COLUMN_SET);
|
|
45624
45802
|
var LOCAL_INFERENCE_PROTOCOL_VERSION = 1;
|
|
45625
45803
|
var LocalInferenceSurfaceSchema = external_exports.enum(["playground", "flows", "agents"]);
|
|
45626
45804
|
var LocalModelCapabilitiesSchema = external_exports.object({
|
|
@@ -46238,6 +46416,9 @@ var RuntimeProxyProviderTransportSchema = external_exports.object({
|
|
|
46238
46416
|
var RuntimeProxyRequestSchema = external_exports.object({
|
|
46239
46417
|
model: external_exports.string().min(1),
|
|
46240
46418
|
prompt: external_exports.string().default(""),
|
|
46419
|
+
executionId: external_exports.string().min(1).max(255).optional(),
|
|
46420
|
+
modelCallId: external_exports.string().min(1).max(512).optional(),
|
|
46421
|
+
credentialFallbackReason: external_exports.enum(["model-selected-platform", "no-user-credential"]).optional(),
|
|
46241
46422
|
options: external_exports.object({
|
|
46242
46423
|
systemPrompt: external_exports.string().optional(),
|
|
46243
46424
|
messages: external_exports.array(RuntimeProxyMessageSchema).optional(),
|
|
@@ -46852,17 +47033,6 @@ var appRoutingDocSchema = external_exports.object({
|
|
|
46852
47033
|
}).optional(),
|
|
46853
47034
|
updatedAt: external_exports.string()
|
|
46854
47035
|
});
|
|
46855
|
-
var SKILL_SCAN_HARD_BLOCK_CATEGORIES = [
|
|
46856
|
-
"credential_exfiltration",
|
|
46857
|
-
"prompt_injection",
|
|
46858
|
-
"mcp_tool_poisoning",
|
|
46859
|
-
"data_exfiltration",
|
|
46860
|
-
"privilege_escalation"
|
|
46861
|
-
];
|
|
46862
|
-
function normalizeCategoryToken(value) {
|
|
46863
|
-
return value.toLowerCase().replace(/[^a-z0-9]/g, "");
|
|
46864
|
-
}
|
|
46865
|
-
var HARD_BLOCK_NEEDLES = SKILL_SCAN_HARD_BLOCK_CATEGORIES.map(normalizeCategoryToken);
|
|
46866
47036
|
var DEFAULT_STEP_TIMEOUT_MS = 5 * 60 * 1e3;
|
|
46867
47037
|
var DEFAULT_FLOW_TIMEOUT_MS = 15 * 60 * 1e3;
|
|
46868
47038
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runtypelabs/cli",
|
|
3
|
-
"version": "2.33.
|
|
3
|
+
"version": "2.33.11",
|
|
4
4
|
"description": "Command-line interface for Runtype AI platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"rosie-skills": "0.8.1",
|
|
28
28
|
"yaml": "^2.9.0",
|
|
29
29
|
"@runtypelabs/ink-components": "0.3.6",
|
|
30
|
-
"@runtypelabs/sdk": "
|
|
30
|
+
"@runtypelabs/sdk": "8.0.0",
|
|
31
31
|
"@runtypelabs/terminal-animations": "0.2.3"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
@@ -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.25.0"
|
|
47
47
|
},
|
|
48
48
|
"engines": {
|
|
49
49
|
"node": ">=22.12.0"
|