@runtypelabs/cli 2.21.6 → 2.22.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 +174 -33
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -15128,7 +15128,7 @@ function date4(params) {
|
|
|
15128
15128
|
// ../../node_modules/.pnpm/zod@4.4.2/node_modules/zod/v4/classic/external.js
|
|
15129
15129
|
config(en_default());
|
|
15130
15130
|
|
|
15131
|
-
// ../shared/dist/chunk-
|
|
15131
|
+
// ../shared/dist/chunk-IZI2WRCS.mjs
|
|
15132
15132
|
var apiReleaseChannelSchema = external_exports.enum(["staging", "production"]);
|
|
15133
15133
|
var API_ARTIFACT_SCRIPT_PATTERN = /^api-[a-z0-9][a-z0-9-]{0,62}$/;
|
|
15134
15134
|
var apiArtifactScriptNameSchema = external_exports.string().regex(
|
|
@@ -15168,6 +15168,18 @@ var apiRoutingDocSchema = external_exports.object({
|
|
|
15168
15168
|
message: "activeScript may only be null while legacyFallback is true",
|
|
15169
15169
|
path: ["api", "activeScript"]
|
|
15170
15170
|
});
|
|
15171
|
+
var edgeContextPayloadSchema = external_exports.object({
|
|
15172
|
+
/** Resolved Runtype user id (`user_…`). */
|
|
15173
|
+
userId: external_exports.string().min(1),
|
|
15174
|
+
/** Resolved org id (`org_…`); null for a personal (no-org) credential. */
|
|
15175
|
+
orgId: external_exports.string().min(1).nullable(),
|
|
15176
|
+
/** Effective permission scopes for the credential (e.g. `["*"]`). */
|
|
15177
|
+
scopes: external_exports.array(external_exports.string()),
|
|
15178
|
+
/** Token id (one per mint) — replay/audit handle, never reused as a secret. */
|
|
15179
|
+
jti: external_exports.string().min(1),
|
|
15180
|
+
/** Expiry as epoch MILLISECONDS; the token is rejected once `exp <= now`. */
|
|
15181
|
+
exp: external_exports.number().int().positive()
|
|
15182
|
+
});
|
|
15171
15183
|
|
|
15172
15184
|
// ../shared/dist/chunk-KR4LFVFE.mjs
|
|
15173
15185
|
function getNestedValue(obj, path18) {
|
|
@@ -36768,36 +36780,36 @@ var caseExpectedSchema = external_exports.object({
|
|
|
36768
36780
|
});
|
|
36769
36781
|
var DEFAULT_MODELS_FOR_NEW_ACCOUNTS = [
|
|
36770
36782
|
// Mixlayer models
|
|
36771
|
-
{ provider: "runtype", modelId: "qwen/qwen3.
|
|
36772
|
-
{ provider: "runtype", modelId: "qwen3.
|
|
36783
|
+
{ provider: "runtype", modelId: "qwen/qwen3.6-27b", isDefault: false },
|
|
36784
|
+
{ provider: "runtype", modelId: "qwen3.6-plus", isDefault: false },
|
|
36773
36785
|
// General Compute (platform key) - explicit provider prefix, single-provider model
|
|
36774
36786
|
{ provider: "runtype", modelId: "general-compute/minimax-m2.7", isDefault: false },
|
|
36775
36787
|
// Routed models - benefit from automatic provider optimization
|
|
36776
36788
|
// OpenAI models (routed via OpenAI direct, with Vercel fallback)
|
|
36777
|
-
{ provider: "runtype", modelId: "gpt-5.
|
|
36789
|
+
{ provider: "runtype", modelId: "gpt-5.5", isDefault: false },
|
|
36778
36790
|
{ provider: "runtype", modelId: "gpt-5.4-mini", isDefault: false },
|
|
36779
36791
|
{ provider: "runtype", modelId: "gpt-5.4-nano", isDefault: false },
|
|
36780
36792
|
// Anthropic models (routed via Anthropic direct, with Vertex/Bedrock fallback)
|
|
36781
|
-
{ provider: "runtype", modelId: "claude-sonnet-4-6", isDefault: false },
|
|
36782
36793
|
{ provider: "runtype", modelId: "claude-haiku-4-5", isDefault: false },
|
|
36783
|
-
{ provider: "runtype", modelId: "claude-
|
|
36794
|
+
{ provider: "runtype", modelId: "claude-sonnet-4-6", isDefault: false },
|
|
36795
|
+
{ provider: "runtype", modelId: "claude-opus-4-8", isDefault: false },
|
|
36784
36796
|
// Google models (routed via Google direct, with Vertex/Vercel fallback)
|
|
36785
36797
|
{ provider: "runtype", modelId: "gemini-3-1-flash-lite", isDefault: false },
|
|
36798
|
+
{ provider: "runtype", modelId: "gemini-3.5-flash", isDefault: false },
|
|
36786
36799
|
{ provider: "runtype", modelId: "gemini-3-1-flash-image", isDefault: false },
|
|
36787
36800
|
{ provider: "runtype", modelId: "gemini-3.1-pro", isDefault: false },
|
|
36788
|
-
// xAI models (routed via Vercel, with xAI fallback when available)
|
|
36789
|
-
{ provider: "runtype", modelId: "grok-4.3", isDefault: false },
|
|
36790
|
-
{ provider: "runtype", modelId: "grok-4.1-fast-non-reasoning", isDefault: false },
|
|
36791
36801
|
// Inception models (routed via Vercel)
|
|
36792
36802
|
{ provider: "runtype", modelId: "mercury-2", isDefault: false },
|
|
36793
|
-
// Moonshot models (routed via
|
|
36794
|
-
|
|
36795
|
-
//
|
|
36796
|
-
{ provider: "runtype", modelId: "
|
|
36803
|
+
// Moonshot models (routed via Vercel)
|
|
36804
|
+
// Kimi K2.6 is the default model: a reasoning + tool-use + vision model
|
|
36805
|
+
// already trusted as the product-generator default.
|
|
36806
|
+
{ provider: "runtype", modelId: "kimi-k2.6", isDefault: true },
|
|
36807
|
+
// NVIDIA Nemotron Ultra (reasoning + tool-use flagship, routed via Vercel)
|
|
36808
|
+
{ provider: "runtype", modelId: "nemotron-3-ultra-550b-a55b", isDefault: false },
|
|
36797
36809
|
// Google models (routed via Cloudflare Workers AI)
|
|
36798
36810
|
{ provider: "runtype", modelId: "gemma-4-26b-a4b-it", isDefault: false }
|
|
36799
36811
|
];
|
|
36800
|
-
var DEFAULT_MODEL_ID = DEFAULT_MODELS_FOR_NEW_ACCOUNTS.find((m2) => m2.isDefault)?.modelId ?? "
|
|
36812
|
+
var DEFAULT_MODEL_ID = DEFAULT_MODELS_FOR_NEW_ACCOUNTS.find((m2) => m2.isDefault)?.modelId ?? "kimi-k2.6";
|
|
36801
36813
|
var userProfileFeaturesSchema = external_exports.object({
|
|
36802
36814
|
enableAgentSkills: external_exports.boolean(),
|
|
36803
36815
|
// Routed model id the product generator dispatches with. Driven by the
|
|
@@ -52726,6 +52738,32 @@ function listForkCandidates(log) {
|
|
|
52726
52738
|
return candidates;
|
|
52727
52739
|
}
|
|
52728
52740
|
|
|
52741
|
+
// src/marathon/steering-queue.ts
|
|
52742
|
+
function createSteeringQueue(options = {}) {
|
|
52743
|
+
const items = [];
|
|
52744
|
+
const notify = () => {
|
|
52745
|
+
options.onSizeChange?.(items.length);
|
|
52746
|
+
};
|
|
52747
|
+
return {
|
|
52748
|
+
push(message) {
|
|
52749
|
+
items.push(message);
|
|
52750
|
+
notify();
|
|
52751
|
+
},
|
|
52752
|
+
drain() {
|
|
52753
|
+
if (items.length === 0) return [];
|
|
52754
|
+
const drained = items.splice(0);
|
|
52755
|
+
notify();
|
|
52756
|
+
return drained;
|
|
52757
|
+
},
|
|
52758
|
+
size() {
|
|
52759
|
+
return items.length;
|
|
52760
|
+
},
|
|
52761
|
+
isEmpty() {
|
|
52762
|
+
return items.length === 0;
|
|
52763
|
+
}
|
|
52764
|
+
};
|
|
52765
|
+
}
|
|
52766
|
+
|
|
52729
52767
|
// src/ink/marathon/CheckpointPrompt.tsx
|
|
52730
52768
|
import { useState as useState26, useEffect as useEffect21, useRef as useRef8 } from "react";
|
|
52731
52769
|
import { Box as Box23, Text as Text26 } from "ink";
|
|
@@ -55133,14 +55171,12 @@ function MarathonApp({
|
|
|
55133
55171
|
getCallbacks: () => callbacks,
|
|
55134
55172
|
getState: () => getHydratedState(),
|
|
55135
55173
|
drainSteeringQueue: () => {
|
|
55136
|
-
const drained =
|
|
55137
|
-
if (drained.length > 0) setQueuedSteerCount(0);
|
|
55174
|
+
const drained = steeringQueue.drain();
|
|
55138
55175
|
return drained.length > 0 ? drained : void 0;
|
|
55139
55176
|
},
|
|
55140
|
-
hasQueuedSteering: () =>
|
|
55177
|
+
hasQueuedSteering: () => !steeringQueue.isEmpty(),
|
|
55141
55178
|
drainFollowUpQueue: () => {
|
|
55142
|
-
const drained =
|
|
55143
|
-
if (drained.length > 0) setQueuedFollowUpCount(0);
|
|
55179
|
+
const drained = followUpQueue.drain();
|
|
55144
55180
|
return drained.length > 0 ? drained : void 0;
|
|
55145
55181
|
},
|
|
55146
55182
|
appendSessionSnapshot: (snapshot) => {
|
|
@@ -55222,10 +55258,18 @@ function MarathonApp({
|
|
|
55222
55258
|
setEscAbortArmed(false);
|
|
55223
55259
|
}
|
|
55224
55260
|
}, [isAgentWorkingPhase, escAbortArmed]);
|
|
55225
|
-
const steeringQueueRef = useRef9([]);
|
|
55226
|
-
const followUpQueueRef = useRef9([]);
|
|
55227
55261
|
const [queuedSteerCount, setQueuedSteerCount] = useState31(0);
|
|
55228
55262
|
const [queuedFollowUpCount, setQueuedFollowUpCount] = useState31(0);
|
|
55263
|
+
const steeringQueueHolder = useRef9(null);
|
|
55264
|
+
if (steeringQueueHolder.current === null) {
|
|
55265
|
+
steeringQueueHolder.current = createSteeringQueue({ onSizeChange: setQueuedSteerCount });
|
|
55266
|
+
}
|
|
55267
|
+
const steeringQueue = steeringQueueHolder.current;
|
|
55268
|
+
const followUpQueueHolder = useRef9(null);
|
|
55269
|
+
if (followUpQueueHolder.current === null) {
|
|
55270
|
+
followUpQueueHolder.current = createSteeringQueue({ onSizeChange: setQueuedFollowUpCount });
|
|
55271
|
+
}
|
|
55272
|
+
const followUpQueue = followUpQueueHolder.current;
|
|
55229
55273
|
const [showSteerComposer, setShowSteerComposer] = useState31(false);
|
|
55230
55274
|
const [steerDraft, setSteerDraft] = useState31("");
|
|
55231
55275
|
const [activeScreen, setActiveScreen] = useState31("overview");
|
|
@@ -55724,8 +55768,7 @@ function MarathonApp({
|
|
|
55724
55768
|
if (escAbortTimeout.current) clearTimeout(escAbortTimeout.current);
|
|
55725
55769
|
setEscAbortArmed(false);
|
|
55726
55770
|
if (onAbortTurn?.() && !noCheckpoint) {
|
|
55727
|
-
const queued =
|
|
55728
|
-
setQueuedSteerCount(0);
|
|
55771
|
+
const queued = steeringQueue.drain();
|
|
55729
55772
|
const restored = [...queued, steerDraft].map((text) => text.trim()).filter(Boolean).join("\n\n");
|
|
55730
55773
|
setSteerDraft("");
|
|
55731
55774
|
setCheckpointInitialMessage(restored || void 0);
|
|
@@ -56457,11 +56500,9 @@ function MarathonApp({
|
|
|
56457
56500
|
initialDraft: steerDraft,
|
|
56458
56501
|
onSubmit: (message, kind) => {
|
|
56459
56502
|
if (kind === "steer") {
|
|
56460
|
-
|
|
56461
|
-
setQueuedSteerCount(steeringQueueRef.current.length);
|
|
56503
|
+
steeringQueue.push(message);
|
|
56462
56504
|
} else {
|
|
56463
|
-
|
|
56464
|
-
setQueuedFollowUpCount(followUpQueueRef.current.length);
|
|
56505
|
+
followUpQueue.push(message);
|
|
56465
56506
|
}
|
|
56466
56507
|
setSteerDraft("");
|
|
56467
56508
|
setShowSteerComposer(false);
|
|
@@ -59455,7 +59496,40 @@ function resolveModelForPhase(phase, cliOverrides, milestoneModels) {
|
|
|
59455
59496
|
}
|
|
59456
59497
|
return cliOverrides.defaultModel;
|
|
59457
59498
|
}
|
|
59458
|
-
function
|
|
59499
|
+
function resolveMaxTokensForPhase(phase, cliMaxTokens, milestoneMaxTokens, defaultMaxTokens) {
|
|
59500
|
+
if (phase && milestoneMaxTokens?.[phase] !== void 0) return milestoneMaxTokens[phase];
|
|
59501
|
+
if (cliMaxTokens !== void 0) return cliMaxTokens;
|
|
59502
|
+
return defaultMaxTokens;
|
|
59503
|
+
}
|
|
59504
|
+
function resolveTemperatureForPhase(phase, cliTemperature, milestoneTemperature, defaultTemperature) {
|
|
59505
|
+
if (phase && milestoneTemperature?.[phase] !== void 0) return milestoneTemperature[phase];
|
|
59506
|
+
if (cliTemperature !== void 0) return cliTemperature;
|
|
59507
|
+
return defaultTemperature;
|
|
59508
|
+
}
|
|
59509
|
+
function parseMaxTokensFlag(raw) {
|
|
59510
|
+
if (raw === void 0) return void 0;
|
|
59511
|
+
const value = Number(raw);
|
|
59512
|
+
if (!Number.isInteger(value) || value <= 0) {
|
|
59513
|
+
throw new Error(`Invalid --max-tokens "${raw}": expected a positive integer`);
|
|
59514
|
+
}
|
|
59515
|
+
return value;
|
|
59516
|
+
}
|
|
59517
|
+
function parseTemperatureFlag(raw) {
|
|
59518
|
+
if (raw === void 0) return void 0;
|
|
59519
|
+
const value = Number(raw);
|
|
59520
|
+
if (!Number.isFinite(value) || value < 0 || value > 2) {
|
|
59521
|
+
throw new Error(`Invalid --temperature "${raw}": expected a number between 0 and 2`);
|
|
59522
|
+
}
|
|
59523
|
+
return value;
|
|
59524
|
+
}
|
|
59525
|
+
function resolveFallbackOnEmptyForPhase(phase, milestoneFallbackOnEmpty, defaultFallbackOnEmpty) {
|
|
59526
|
+
if (phase && milestoneFallbackOnEmpty?.[phase] !== void 0) {
|
|
59527
|
+
return milestoneFallbackOnEmpty[phase];
|
|
59528
|
+
}
|
|
59529
|
+
return defaultFallbackOnEmpty ?? false;
|
|
59530
|
+
}
|
|
59531
|
+
function resolveErrorHandlingForPhase(phase, cliFallbackModel, milestoneFallbackModels, fallbackOnEmpty) {
|
|
59532
|
+
const triggers = fallbackOnEmpty ? [{ type: "empty-output" }, { type: "error" }] : void 0;
|
|
59459
59533
|
const phaseFallbacks = phase ? milestoneFallbackModels?.[phase] : void 0;
|
|
59460
59534
|
if (phaseFallbacks?.length) {
|
|
59461
59535
|
return {
|
|
@@ -59468,7 +59542,8 @@ function resolveErrorHandlingForPhase(phase, cliFallbackModel, milestoneFallback
|
|
|
59468
59542
|
...fb.temperature !== void 0 ? { temperature: fb.temperature } : {},
|
|
59469
59543
|
...fb.maxTokens !== void 0 ? { maxTokens: fb.maxTokens } : {}
|
|
59470
59544
|
}))
|
|
59471
|
-
]
|
|
59545
|
+
],
|
|
59546
|
+
...triggers ? { triggers } : {}
|
|
59472
59547
|
};
|
|
59473
59548
|
}
|
|
59474
59549
|
if (cliFallbackModel) {
|
|
@@ -59477,7 +59552,8 @@ function resolveErrorHandlingForPhase(phase, cliFallbackModel, milestoneFallback
|
|
|
59477
59552
|
fallbacks: [
|
|
59478
59553
|
{ type: "retry", delay: 5e3 },
|
|
59479
59554
|
{ type: "model", model: cliFallbackModel }
|
|
59480
|
-
]
|
|
59555
|
+
],
|
|
59556
|
+
...triggers ? { triggers } : {}
|
|
59481
59557
|
};
|
|
59482
59558
|
}
|
|
59483
59559
|
return void 0;
|
|
@@ -59632,6 +59708,15 @@ function collectPlaybookWarnings(config3) {
|
|
|
59632
59708
|
);
|
|
59633
59709
|
}
|
|
59634
59710
|
}
|
|
59711
|
+
const emptyDefault = config3.fallbackOnEmpty === true;
|
|
59712
|
+
for (const m2 of config3.milestones) {
|
|
59713
|
+
const enabled = m2.fallbackOnEmpty ?? emptyDefault;
|
|
59714
|
+
if (enabled && !m2.fallbackModels?.length) {
|
|
59715
|
+
warnings.push(
|
|
59716
|
+
`Playbook '${config3.name}': milestone '${m2.name}' enables fallbackOnEmpty but defines no fallbackModels \u2014 empty output has nothing to fall back to.`
|
|
59717
|
+
);
|
|
59718
|
+
}
|
|
59719
|
+
}
|
|
59635
59720
|
return warnings;
|
|
59636
59721
|
}
|
|
59637
59722
|
var PLUGIN_EXTENSIONS = /* @__PURE__ */ new Set([".js", ".mjs", ".cjs"]);
|
|
@@ -59709,17 +59794,29 @@ async function loadPlaybook(nameOrPath, cwd) {
|
|
|
59709
59794
|
});
|
|
59710
59795
|
const milestoneModels = {};
|
|
59711
59796
|
const milestoneFallbackModels = {};
|
|
59797
|
+
const milestoneMaxTokens = {};
|
|
59798
|
+
const milestoneTemperature = {};
|
|
59799
|
+
const milestoneFallbackOnEmpty = {};
|
|
59712
59800
|
for (const m2 of config3.milestones) {
|
|
59713
59801
|
if (m2.model) milestoneModels[m2.name] = m2.model;
|
|
59714
59802
|
if (m2.fallbackModels?.length) {
|
|
59715
59803
|
milestoneFallbackModels[m2.name] = m2.fallbackModels.map(normalizeFallbackModel);
|
|
59716
59804
|
}
|
|
59805
|
+
if (m2.maxTokens !== void 0) milestoneMaxTokens[m2.name] = m2.maxTokens;
|
|
59806
|
+
if (m2.temperature !== void 0) milestoneTemperature[m2.name] = m2.temperature;
|
|
59807
|
+
if (m2.fallbackOnEmpty !== void 0) milestoneFallbackOnEmpty[m2.name] = m2.fallbackOnEmpty;
|
|
59717
59808
|
}
|
|
59718
59809
|
return {
|
|
59719
59810
|
workflow,
|
|
59720
59811
|
milestones: config3.milestones.map((m2) => m2.name),
|
|
59721
59812
|
milestoneModels: Object.keys(milestoneModels).length > 0 ? milestoneModels : void 0,
|
|
59722
59813
|
milestoneFallbackModels: Object.keys(milestoneFallbackModels).length > 0 ? milestoneFallbackModels : void 0,
|
|
59814
|
+
milestoneMaxTokens: Object.keys(milestoneMaxTokens).length > 0 ? milestoneMaxTokens : void 0,
|
|
59815
|
+
milestoneTemperature: Object.keys(milestoneTemperature).length > 0 ? milestoneTemperature : void 0,
|
|
59816
|
+
milestoneFallbackOnEmpty: Object.keys(milestoneFallbackOnEmpty).length > 0 ? milestoneFallbackOnEmpty : void 0,
|
|
59817
|
+
...config3.maxTokens !== void 0 ? { defaultMaxTokens: config3.maxTokens } : {},
|
|
59818
|
+
...config3.temperature !== void 0 ? { defaultTemperature: config3.temperature } : {},
|
|
59819
|
+
...config3.fallbackOnEmpty !== void 0 ? { defaultFallbackOnEmpty: config3.fallbackOnEmpty } : {},
|
|
59723
59820
|
verification: config3.verification,
|
|
59724
59821
|
rules: config3.rules,
|
|
59725
59822
|
policy: config3.policy,
|
|
@@ -60282,6 +60379,12 @@ async function taskAction(agent, options) {
|
|
|
60282
60379
|
let playbookMilestones;
|
|
60283
60380
|
let playbookMilestoneModels;
|
|
60284
60381
|
let playbookMilestoneFallbackModels;
|
|
60382
|
+
let playbookMilestoneMaxTokens;
|
|
60383
|
+
let playbookMilestoneTemperature;
|
|
60384
|
+
let playbookMilestoneFallbackOnEmpty;
|
|
60385
|
+
let playbookDefaultMaxTokens;
|
|
60386
|
+
let playbookDefaultTemperature;
|
|
60387
|
+
let playbookDefaultFallbackOnEmpty;
|
|
60285
60388
|
let playbookPolicy;
|
|
60286
60389
|
if (options.playbook) {
|
|
60287
60390
|
const result = await loadPlaybook(options.playbook);
|
|
@@ -60289,6 +60392,12 @@ async function taskAction(agent, options) {
|
|
|
60289
60392
|
playbookMilestones = result.milestones;
|
|
60290
60393
|
playbookMilestoneModels = result.milestoneModels;
|
|
60291
60394
|
playbookMilestoneFallbackModels = result.milestoneFallbackModels;
|
|
60395
|
+
playbookMilestoneMaxTokens = result.milestoneMaxTokens;
|
|
60396
|
+
playbookMilestoneTemperature = result.milestoneTemperature;
|
|
60397
|
+
playbookMilestoneFallbackOnEmpty = result.milestoneFallbackOnEmpty;
|
|
60398
|
+
playbookDefaultMaxTokens = result.defaultMaxTokens;
|
|
60399
|
+
playbookDefaultTemperature = result.defaultTemperature;
|
|
60400
|
+
playbookDefaultFallbackOnEmpty = result.defaultFallbackOnEmpty;
|
|
60292
60401
|
playbookPolicy = result.policy;
|
|
60293
60402
|
for (const warning of result.warnings) {
|
|
60294
60403
|
if (useStartupShell) {
|
|
@@ -60300,6 +60409,8 @@ async function taskAction(agent, options) {
|
|
|
60300
60409
|
} else {
|
|
60301
60410
|
playbookPolicy = void 0;
|
|
60302
60411
|
}
|
|
60412
|
+
const cliMaxTokens = parseMaxTokensFlag(options.maxTokens);
|
|
60413
|
+
const cliTemperature = parseTemperatureFlag(options.temperature);
|
|
60303
60414
|
if (useStartupShell && !options.model?.trim()) {
|
|
60304
60415
|
if (playbookMilestoneModels && Object.keys(playbookMilestoneModels).length > 0 && startupShellRef.current) {
|
|
60305
60416
|
let editableModels = { ...playbookMilestoneModels };
|
|
@@ -60439,7 +60550,12 @@ ${rulesContext}`;
|
|
|
60439
60550
|
const initialErrorHandling = resolveErrorHandlingForPhase(
|
|
60440
60551
|
currentPhase,
|
|
60441
60552
|
options.fallbackModel,
|
|
60442
|
-
playbookMilestoneFallbackModels
|
|
60553
|
+
playbookMilestoneFallbackModels,
|
|
60554
|
+
resolveFallbackOnEmptyForPhase(
|
|
60555
|
+
currentPhase,
|
|
60556
|
+
playbookMilestoneFallbackOnEmpty,
|
|
60557
|
+
playbookDefaultFallbackOnEmpty
|
|
60558
|
+
)
|
|
60443
60559
|
);
|
|
60444
60560
|
if (initialErrorHandling) {
|
|
60445
60561
|
await client.agents.update(agentId, { config: { errorHandling: initialErrorHandling } }).catch(() => {
|
|
@@ -60773,6 +60889,18 @@ Saving state... done. Session saved to ${filePath}`);
|
|
|
60773
60889
|
},
|
|
60774
60890
|
playbookMilestoneModels
|
|
60775
60891
|
);
|
|
60892
|
+
const phaseMaxTokens = resolveMaxTokensForPhase(
|
|
60893
|
+
resumeState?.workflowPhase,
|
|
60894
|
+
cliMaxTokens,
|
|
60895
|
+
playbookMilestoneMaxTokens,
|
|
60896
|
+
playbookDefaultMaxTokens
|
|
60897
|
+
);
|
|
60898
|
+
const phaseTemperature = resolveTemperatureForPhase(
|
|
60899
|
+
resumeState?.workflowPhase,
|
|
60900
|
+
cliTemperature,
|
|
60901
|
+
playbookMilestoneTemperature,
|
|
60902
|
+
playbookDefaultTemperature
|
|
60903
|
+
);
|
|
60776
60904
|
const effectiveModelForContext = phaseModel || options.model || agentConfigModel || defaultConfiguredModel;
|
|
60777
60905
|
const compactStrategy = resolveCompactStrategyForModel(effectiveModelForContext);
|
|
60778
60906
|
const contextLimitTokens = resolveContextLimitForModel(effectiveModelForContext);
|
|
@@ -60787,6 +60915,8 @@ Saving state... done. Session saved to ${filePath}`);
|
|
|
60787
60915
|
maxSessions: remainingSessions - accumulatedSessions,
|
|
60788
60916
|
maxCost: currentRemainingCost,
|
|
60789
60917
|
model: phaseModel || options.model,
|
|
60918
|
+
...phaseMaxTokens !== void 0 ? { maxTokens: phaseMaxTokens } : {},
|
|
60919
|
+
...phaseTemperature !== void 0 ? { temperature: phaseTemperature } : {},
|
|
60790
60920
|
abortSignal: turnAbortController.signal,
|
|
60791
60921
|
reasoning: !options.noReasoning,
|
|
60792
60922
|
debugMode: options.debug ?? true,
|
|
@@ -60958,7 +61088,12 @@ Saving state... done. Session saved to ${filePath}`);
|
|
|
60958
61088
|
const newErrorHandling = resolveErrorHandlingForPhase(
|
|
60959
61089
|
resumeState.workflowPhase,
|
|
60960
61090
|
options.fallbackModel,
|
|
60961
|
-
playbookMilestoneFallbackModels
|
|
61091
|
+
playbookMilestoneFallbackModels,
|
|
61092
|
+
resolveFallbackOnEmptyForPhase(
|
|
61093
|
+
resumeState.workflowPhase,
|
|
61094
|
+
playbookMilestoneFallbackOnEmpty,
|
|
61095
|
+
playbookDefaultFallbackOnEmpty
|
|
61096
|
+
)
|
|
60962
61097
|
);
|
|
60963
61098
|
client.agents.update(agentId, {
|
|
60964
61099
|
config: { errorHandling: newErrorHandling ?? null }
|
|
@@ -61468,7 +61603,13 @@ function resolveSandboxWorkflowSelection(message, sandboxProvider, resumeState)
|
|
|
61468
61603
|
};
|
|
61469
61604
|
}
|
|
61470
61605
|
function applyTaskOptions(cmd) {
|
|
61471
|
-
return cmd.argument("<agent>", "Agent ID or name").option("-g, --goal <text>", "Goal message for the agent").option("--max-sessions <n>", "Maximum sessions", "50").option("--max-cost <n>", "Budget in USD").option("--model <modelId>", "Model ID to use (overrides agent config)").option(
|
|
61606
|
+
return cmd.argument("<agent>", "Agent ID or name").option("-g, --goal <text>", "Goal message for the agent").option("--max-sessions <n>", "Maximum sessions", "50").option("--max-cost <n>", "Budget in USD").option("--model <modelId>", "Model ID to use (overrides agent config)").option(
|
|
61607
|
+
"--max-tokens <n>",
|
|
61608
|
+
"Max output-token budget per session (overrides agent config; playbook milestones can override per phase)"
|
|
61609
|
+
).option(
|
|
61610
|
+
"--temperature <n>",
|
|
61611
|
+
"Sampling temperature 0-2 per session (overrides agent config; playbook milestones can override per phase)"
|
|
61612
|
+
).option("--name <name>", "Task name (used for state file, defaults to agent name)").option("--session <name>", "Resume a specific session by name").option(
|
|
61472
61613
|
"--state-dir <path>",
|
|
61473
61614
|
"Directory for state files (default: ~/.runtype/projects/<hash>/marathons/)"
|
|
61474
61615
|
).option(
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runtypelabs/cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.22.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.2",
|
|
27
|
-
"@runtypelabs/sdk": "4.
|
|
27
|
+
"@runtypelabs/sdk": "4.19.1",
|
|
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": "^5.3.3",
|
|
41
41
|
"vitest": "^4.1.0",
|
|
42
|
-
"@runtypelabs/shared": "1.33.
|
|
42
|
+
"@runtypelabs/shared": "1.33.2"
|
|
43
43
|
},
|
|
44
44
|
"engines": {
|
|
45
45
|
"node": ">=22.0.0"
|