@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.
Files changed (2) hide show
  1. package/dist/index.js +210 -40
  2. 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-2I6N7MAS.mjs
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-AUQYO6W2.mjs
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-IZI2WRCS.mjs
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-ZUODFMLO.mjs
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.6-flash",
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-XKOLWBNC.mjs
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
- id: external_exports.string(),
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
- id: external_exports.string(),
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
- id: external_exports.string(),
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
- id: external_exports.string(),
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-H7KYB7QQ.mjs
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
- if (typeof step.id !== "string" || step.id.length === 0) continue;
41675
- const existing = idToStepIndexes.get(step.id) || [];
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
- version: "2026-08-11.1",
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: true,
42170
- batchInputMode: true,
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
- version: "2026-08-11.1",
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
- // api-inprocess fold; the runtime flow engine derives no approval config. Graduation: port the approval rail.
42414
- batchInputMode: true,
42415
- // api-inprocess fold; batch has no conversational context (BYOC §3.2).
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.9",
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": "7.3.0",
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.23.0"
46
+ "@runtypelabs/shared": "3.25.0"
47
47
  },
48
48
  "engines": {
49
49
  "node": ">=22.12.0"