@runtypelabs/cli 2.25.0 → 2.25.2
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 +250 -19
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -15566,7 +15566,7 @@ function resolveFallback(parsed, context, tracking) {
|
|
|
15566
15566
|
}
|
|
15567
15567
|
var templateEngine = new SimpleTemplateEngine();
|
|
15568
15568
|
|
|
15569
|
-
// ../shared/dist/chunk-
|
|
15569
|
+
// ../shared/dist/chunk-54HZCG2Y.mjs
|
|
15570
15570
|
var tokensSchema = external_exports.object({ input: external_exports.number(), output: external_exports.number() });
|
|
15571
15571
|
var wireStopReasonSchema = external_exports.enum([
|
|
15572
15572
|
"end_turn",
|
|
@@ -15916,12 +15916,15 @@ var unifiedAwaitEventSchema = external_exports.object({
|
|
|
15916
15916
|
origin: external_exports.enum(["webmcp", "sdk"]).optional(),
|
|
15917
15917
|
pageOrigin: external_exports.string().optional(),
|
|
15918
15918
|
// Discriminates an AUTO-RESUMING durable pause (`crawl_pending` /
|
|
15919
|
-
// `durable_poll`, resumed server-side by the crawl / wait-until
|
|
15920
|
-
//
|
|
15921
|
-
//
|
|
15922
|
-
//
|
|
15923
|
-
// (
|
|
15924
|
-
//
|
|
15919
|
+
// `durable_poll`, resumed server-side by the crawl / wait-until Workflow;
|
|
15920
|
+
// `detached`, a Claude Managed watch-budget detach — the stream ends but
|
|
15921
|
+
// the execution continues server-side, so the consumer should hold its
|
|
15922
|
+
// reconnect handle and render "still working") from a CLIENT-RESOLVABLE
|
|
15923
|
+
// local-tool / WebMCP await (absent), so a streaming consumer does not
|
|
15924
|
+
// render a "resume" prompt for a pause that resumes itself. Mirrors the
|
|
15925
|
+
// JSON `pausedReason` discriminator (execution-pipeline.ts); the
|
|
15926
|
+
// server-resumed pauses carry `crawlId` / `stepId` instead of the tool
|
|
15927
|
+
// fields. UX context; never a control signal.
|
|
15925
15928
|
awaitReason: external_exports.string().optional(),
|
|
15926
15929
|
crawlId: external_exports.string().optional(),
|
|
15927
15930
|
stepId: external_exports.string().optional()
|
|
@@ -16428,12 +16431,15 @@ var flowAwaitEventSchema = external_exports.object({
|
|
|
16428
16431
|
origin: external_exports.enum(["webmcp", "sdk"]).optional(),
|
|
16429
16432
|
pageOrigin: external_exports.string().optional(),
|
|
16430
16433
|
// Discriminates an AUTO-RESUMING durable pause (`crawl_pending` /
|
|
16431
|
-
// `durable_poll`, resumed server-side by the crawl / wait-until
|
|
16432
|
-
//
|
|
16433
|
-
// server-
|
|
16434
|
-
//
|
|
16435
|
-
//
|
|
16436
|
-
//
|
|
16434
|
+
// `durable_poll`, resumed server-side by the crawl / wait-until Workflow;
|
|
16435
|
+
// `detached`, a Claude Managed watch-budget detach — the stream ends but the
|
|
16436
|
+
// execution continues server-side and the headless finalize stamps the real
|
|
16437
|
+
// terminal for `?after=` replay) from a CLIENT-RESOLVABLE local-tool /
|
|
16438
|
+
// WebMCP await (absent). The server-resumed pauses carry `crawlId` /
|
|
16439
|
+
// `stepId` instead of the tool fields. Open `z.string()` (not an enum) for
|
|
16440
|
+
// forward-compat — kept in lockstep with the JSON `pausedReason`
|
|
16441
|
+
// discriminator in execution-pipeline.ts. UX context; never a control
|
|
16442
|
+
// signal.
|
|
16437
16443
|
awaitReason: external_exports.string().optional(),
|
|
16438
16444
|
crawlId: external_exports.string().optional(),
|
|
16439
16445
|
stepId: external_exports.string().optional(),
|
|
@@ -16715,6 +16721,117 @@ function neutralizeCsvFormula(value) {
|
|
|
16715
16721
|
if (STRICT_NUMBER.test(value)) return value;
|
|
16716
16722
|
return `'${value}`;
|
|
16717
16723
|
}
|
|
16724
|
+
var agUiRoleSchema = external_exports.enum(["developer", "system", "assistant", "user", "tool"]);
|
|
16725
|
+
var runStartedEventSchema = external_exports.object({
|
|
16726
|
+
type: external_exports.literal("RUN_STARTED"),
|
|
16727
|
+
threadId: external_exports.string(),
|
|
16728
|
+
runId: external_exports.string()
|
|
16729
|
+
});
|
|
16730
|
+
var runFinishedEventSchema = external_exports.object({
|
|
16731
|
+
type: external_exports.literal("RUN_FINISHED"),
|
|
16732
|
+
threadId: external_exports.string(),
|
|
16733
|
+
runId: external_exports.string(),
|
|
16734
|
+
result: external_exports.unknown().optional()
|
|
16735
|
+
});
|
|
16736
|
+
var runErrorEventSchema = external_exports.object({
|
|
16737
|
+
type: external_exports.literal("RUN_ERROR"),
|
|
16738
|
+
message: external_exports.string(),
|
|
16739
|
+
code: external_exports.string().optional()
|
|
16740
|
+
});
|
|
16741
|
+
var stepStartedEventSchema = external_exports.object({
|
|
16742
|
+
type: external_exports.literal("STEP_STARTED"),
|
|
16743
|
+
stepName: external_exports.string()
|
|
16744
|
+
});
|
|
16745
|
+
var stepFinishedEventSchema = external_exports.object({
|
|
16746
|
+
type: external_exports.literal("STEP_FINISHED"),
|
|
16747
|
+
stepName: external_exports.string()
|
|
16748
|
+
});
|
|
16749
|
+
var textMessageStartEventSchema = external_exports.object({
|
|
16750
|
+
type: external_exports.literal("TEXT_MESSAGE_START"),
|
|
16751
|
+
messageId: external_exports.string(),
|
|
16752
|
+
role: agUiRoleSchema
|
|
16753
|
+
});
|
|
16754
|
+
var textMessageContentEventSchema = external_exports.object({
|
|
16755
|
+
type: external_exports.literal("TEXT_MESSAGE_CONTENT"),
|
|
16756
|
+
messageId: external_exports.string(),
|
|
16757
|
+
/** Non-empty incremental text. */
|
|
16758
|
+
delta: external_exports.string()
|
|
16759
|
+
});
|
|
16760
|
+
var textMessageEndEventSchema = external_exports.object({
|
|
16761
|
+
type: external_exports.literal("TEXT_MESSAGE_END"),
|
|
16762
|
+
messageId: external_exports.string()
|
|
16763
|
+
});
|
|
16764
|
+
var toolCallStartEventSchema = external_exports.object({
|
|
16765
|
+
type: external_exports.literal("TOOL_CALL_START"),
|
|
16766
|
+
toolCallId: external_exports.string(),
|
|
16767
|
+
toolCallName: external_exports.string(),
|
|
16768
|
+
parentMessageId: external_exports.string().optional()
|
|
16769
|
+
});
|
|
16770
|
+
var toolCallArgsEventSchema = external_exports.object({
|
|
16771
|
+
type: external_exports.literal("TOOL_CALL_ARGS"),
|
|
16772
|
+
toolCallId: external_exports.string(),
|
|
16773
|
+
/** Incremental (or, for non-streaming providers, complete) JSON-text of args. */
|
|
16774
|
+
delta: external_exports.string()
|
|
16775
|
+
});
|
|
16776
|
+
var toolCallEndEventSchema = external_exports.object({
|
|
16777
|
+
type: external_exports.literal("TOOL_CALL_END"),
|
|
16778
|
+
toolCallId: external_exports.string()
|
|
16779
|
+
});
|
|
16780
|
+
var toolCallResultEventSchema = external_exports.object({
|
|
16781
|
+
type: external_exports.literal("TOOL_CALL_RESULT"),
|
|
16782
|
+
messageId: external_exports.string(),
|
|
16783
|
+
toolCallId: external_exports.string(),
|
|
16784
|
+
content: external_exports.string(),
|
|
16785
|
+
role: external_exports.literal("tool").optional()
|
|
16786
|
+
});
|
|
16787
|
+
var reasoningStartEventSchema = external_exports.object({
|
|
16788
|
+
type: external_exports.literal("REASONING_START"),
|
|
16789
|
+
messageId: external_exports.string()
|
|
16790
|
+
});
|
|
16791
|
+
var reasoningMessageStartEventSchema = external_exports.object({
|
|
16792
|
+
type: external_exports.literal("REASONING_MESSAGE_START"),
|
|
16793
|
+
messageId: external_exports.string(),
|
|
16794
|
+
role: external_exports.literal("reasoning")
|
|
16795
|
+
});
|
|
16796
|
+
var reasoningMessageContentEventSchema = external_exports.object({
|
|
16797
|
+
type: external_exports.literal("REASONING_MESSAGE_CONTENT"),
|
|
16798
|
+
messageId: external_exports.string(),
|
|
16799
|
+
/** Non-empty incremental reasoning text. */
|
|
16800
|
+
delta: external_exports.string()
|
|
16801
|
+
});
|
|
16802
|
+
var reasoningMessageEndEventSchema = external_exports.object({
|
|
16803
|
+
type: external_exports.literal("REASONING_MESSAGE_END"),
|
|
16804
|
+
messageId: external_exports.string()
|
|
16805
|
+
});
|
|
16806
|
+
var reasoningEndEventSchema = external_exports.object({
|
|
16807
|
+
type: external_exports.literal("REASONING_END"),
|
|
16808
|
+
messageId: external_exports.string()
|
|
16809
|
+
});
|
|
16810
|
+
var customEventSchema = external_exports.object({
|
|
16811
|
+
type: external_exports.literal("CUSTOM"),
|
|
16812
|
+
name: external_exports.string(),
|
|
16813
|
+
value: external_exports.unknown()
|
|
16814
|
+
});
|
|
16815
|
+
var agUiSSEEventSchema = external_exports.discriminatedUnion("type", [
|
|
16816
|
+
runStartedEventSchema,
|
|
16817
|
+
runFinishedEventSchema,
|
|
16818
|
+
runErrorEventSchema,
|
|
16819
|
+
stepStartedEventSchema,
|
|
16820
|
+
stepFinishedEventSchema,
|
|
16821
|
+
textMessageStartEventSchema,
|
|
16822
|
+
textMessageContentEventSchema,
|
|
16823
|
+
textMessageEndEventSchema,
|
|
16824
|
+
toolCallStartEventSchema,
|
|
16825
|
+
toolCallArgsEventSchema,
|
|
16826
|
+
toolCallEndEventSchema,
|
|
16827
|
+
toolCallResultEventSchema,
|
|
16828
|
+
reasoningStartEventSchema,
|
|
16829
|
+
reasoningMessageStartEventSchema,
|
|
16830
|
+
reasoningMessageContentEventSchema,
|
|
16831
|
+
reasoningMessageEndEventSchema,
|
|
16832
|
+
reasoningEndEventSchema,
|
|
16833
|
+
customEventSchema
|
|
16834
|
+
]);
|
|
16718
16835
|
var AGENT_CONTENT_CONFIG_KEYS = {
|
|
16719
16836
|
model: true,
|
|
16720
16837
|
systemPrompt: true,
|
|
@@ -21429,13 +21546,13 @@ function collectFlowStructureIssues(flowData, deps, buckets) {
|
|
|
21429
21546
|
{ stepIndex }
|
|
21430
21547
|
);
|
|
21431
21548
|
for (const issue2 of codeResult.issues) {
|
|
21432
|
-
const
|
|
21549
|
+
const location2 = issue2.line ? ` (line ${issue2.line}, column ${issue2.column})` : "";
|
|
21433
21550
|
const issueCode = issue2.code === "SYNTAX_ERROR" ? "CODE_SYNTAX_ERROR" : `CODE_${issue2.code}`;
|
|
21434
21551
|
addIssue(
|
|
21435
21552
|
issue2.severity,
|
|
21436
21553
|
{
|
|
21437
21554
|
code: issueCode,
|
|
21438
|
-
message: `${issue2.message}${
|
|
21555
|
+
message: `${issue2.message}${location2}`,
|
|
21439
21556
|
path: `flowSteps[${stepIndex}].config.script`,
|
|
21440
21557
|
step: stepRef,
|
|
21441
21558
|
details: {
|
|
@@ -38055,12 +38172,48 @@ var aiGraderSchema = external_exports.object({
|
|
|
38055
38172
|
criteria: external_exports.string().min(1),
|
|
38056
38173
|
/** Reference-guided when the case has `expected`. */
|
|
38057
38174
|
useExpected: external_exports.boolean().default(false),
|
|
38058
|
-
/** Defaults to
|
|
38175
|
+
/** Defaults to the Runtype Eval Judge flow's model pair (`EVAL_JUDGE_MODEL` with a cross-provider fallback) at execution time. Ignored when `judgeFlowId` is set (the flow's own steps pin their models). */
|
|
38059
38176
|
model: external_exports.string().optional(),
|
|
38177
|
+
/**
|
|
38178
|
+
* Custom judge flow — the escape hatch when the platform judge prompt isn't
|
|
38179
|
+
* enough (extensions plan §1.2.5). The referenced flow (owned by the
|
|
38180
|
+
* evaluating account) is executed through the normal flow pipeline as the
|
|
38181
|
+
* judge for this grader: it receives the four `EvalJudgeVariables`
|
|
38182
|
+
* (`criteria` / `caseName` / `expected` / `transcript`, see
|
|
38183
|
+
* `eval-judge-flow.ts`) as inputs and its final output must be the same
|
|
38184
|
+
* verdict JSON contract the platform judge returns. Validated at run time:
|
|
38185
|
+
* a missing/inaccessible flow, a failed run, or malformed output resolves to
|
|
38186
|
+
* an `insufficient_evidence` outcome with a visible grader error — a
|
|
38187
|
+
* miswired custom judge warns, it never decides cases.
|
|
38188
|
+
*/
|
|
38189
|
+
judgeFlowId: external_exports.string().min(1).optional(),
|
|
38060
38190
|
/** Pass cutoff for the 1-5 scale. */
|
|
38061
38191
|
threshold: external_exports.number().min(1).max(5).optional(),
|
|
38192
|
+
/**
|
|
38193
|
+
* The platform judge-prompt version that produced this grader's most recent
|
|
38194
|
+
* outcome. Stamped by `grader-executor.ts` at grade time into
|
|
38195
|
+
* `eval_case_scores.grader_snapshot` (design decision: the judge is a
|
|
38196
|
+
* versioned platform prompt, not a persisted flow) — not settable by
|
|
38197
|
+
* callers; any caller-supplied value is overwritten before scoring (or
|
|
38198
|
+
* stripped entirely for `judgeFlowId` graders, whose outcomes the platform
|
|
38199
|
+
* prompt did not produce).
|
|
38200
|
+
*/
|
|
38201
|
+
judgePromptVersion: external_exports.number().int().positive().optional(),
|
|
38062
38202
|
...severityFields
|
|
38063
38203
|
});
|
|
38204
|
+
var JUDGE_VERDICTS = ["pass", "fail", "insufficient_evidence"];
|
|
38205
|
+
var judgeVerdictSchema = external_exports.enum(JUDGE_VERDICTS);
|
|
38206
|
+
var JUDGE_EVIDENCE_KINDS = ["message", "tool_call"];
|
|
38207
|
+
var judgeEvidenceSchema = external_exports.object({
|
|
38208
|
+
kind: external_exports.enum(JUDGE_EVIDENCE_KINDS),
|
|
38209
|
+
/**
|
|
38210
|
+
* Position in the transcript the judge was shown: an index into
|
|
38211
|
+
* `GradingTrace.steps` for `kind: 'message'`, or `GradingTrace.toolCalls`
|
|
38212
|
+
* for `kind: 'tool_call'` — the same ordering the transcript renderer
|
|
38213
|
+
* numbered when building the judge prompt.
|
|
38214
|
+
*/
|
|
38215
|
+
index: external_exports.number().int().nonnegative()
|
|
38216
|
+
});
|
|
38064
38217
|
var graderConfigSchema = external_exports.union([checkGraderSchema, aiGraderSchema]);
|
|
38065
38218
|
var gradersSchema = external_exports.array(graderConfigSchema);
|
|
38066
38219
|
var caseExpectedSchema = external_exports.object({
|
|
@@ -38068,6 +38221,8 @@ var caseExpectedSchema = external_exports.object({
|
|
|
38068
38221
|
json: external_exports.unknown().optional(),
|
|
38069
38222
|
facts: external_exports.array(external_exports.string()).optional()
|
|
38070
38223
|
});
|
|
38224
|
+
var EVAL_CASE_ORIGINS = ["manual", "saved_from_run", "generated", "imported", "fpo"];
|
|
38225
|
+
var evalCaseOriginSchema = external_exports.enum(EVAL_CASE_ORIGINS);
|
|
38071
38226
|
var DEFAULT_MODELS_FOR_NEW_ACCOUNTS = [
|
|
38072
38227
|
// Mixlayer models
|
|
38073
38228
|
{
|
|
@@ -38201,6 +38356,45 @@ function renderDefaultModelStrengthsGuide() {
|
|
|
38201
38356
|
(m2) => `- \`${m2.modelId}\`${m2.isDefault ? " (account default)" : ""} \u2014 ${m2.strengths}`
|
|
38202
38357
|
).join("\n");
|
|
38203
38358
|
}
|
|
38359
|
+
var EVAL_JUDGE_SYSTEM_PROMPT = [
|
|
38360
|
+
"You are Runtype's evaluation expert: a rigorous, impartial judge of AI agent and flow behavior. Your job is to decide whether ONE run of an AI system met ONE plain-language criterion written by the system's builder.",
|
|
38361
|
+
"",
|
|
38362
|
+
'You are given the criterion (what this flow or agent is supposed to do \u2014 the only standard you grade against), the case name, an optional expected answer for reference, and the run transcript: an indexed record of the steps that ran and every tool call with its inputs and outputs (labeled "[message N]" and "[tool_call N]"), followed by the final output.',
|
|
38363
|
+
"",
|
|
38364
|
+
"How to judge:",
|
|
38365
|
+
'1. Read the criterion first and decide what evidence it demands. A process criterion ("confirms X before Y", "never calls Z", "asks first") is judged on the trajectory \u2014 what the system actually did. An outcome criterion ("answers the question", "matches the expected answer", "right tone") is judged on the final output. Many criteria need both.',
|
|
38366
|
+
"2. Judge actions, not claims. If the output says a refund was issued but no refund tool call appears in the trajectory, the action did not happen.",
|
|
38367
|
+
"3. Judge whether a required action occurred when it mattered. Never demand a rigid, exact step ordering unless the criterion explicitly requires one; incidental extra steps or interleaved calls are not failures.",
|
|
38368
|
+
"4. Grade only the criterion you were given. Do not reward or punish anything outside it: not verbosity or brevity, not style, not parts of the run the criterion doesn't mention, and not whether you would have approached the task differently.",
|
|
38369
|
+
"5. When the transcript is truncated or no trajectory was captured, judge what you can see. If what you can see cannot settle the criterion, decline \u2014 do not guess in either direction.",
|
|
38370
|
+
"",
|
|
38371
|
+
"Reason first, then decide: in one paragraph, walk through the specific evidence for and against the criterion BEFORE settling on a verdict, and never rewrite your reasoning to justify a verdict you already picked.",
|
|
38372
|
+
"",
|
|
38373
|
+
"Then return exactly one verdict:",
|
|
38374
|
+
'- "pass" \u2014 the criterion is clearly met on the evidence shown.',
|
|
38375
|
+
'- "fail" \u2014 the criterion is clearly not met on the evidence shown.',
|
|
38376
|
+
'- "insufficient_evidence" \u2014 what you were shown cannot settle this criterion. This is the honest answer, not a failure; use it instead of guessing.',
|
|
38377
|
+
"",
|
|
38378
|
+
'Cite the transcript entries your verdict rests on as an array of {"kind": "message"|"tool_call", "index": N}, using the exact labeled indices. An empty array is correct when the final output alone (which has no labeled index) is the evidence.',
|
|
38379
|
+
"",
|
|
38380
|
+
'Return ONLY a JSON object of the form {"reasoning": "<one paragraph>", "verdict": "pass"|"fail"|"insufficient_evidence", "evidence": [{"kind": "message"|"tool_call", "index": <integer>}]}. Do not include any text outside the JSON object.',
|
|
38381
|
+
"",
|
|
38382
|
+
"Format examples only \u2014 never carry facts from these into a real case:",
|
|
38383
|
+
'{"reasoning": "The agent called verify_identity before issue_refund, satisfying the criterion.", "verdict": "pass", "evidence": [{"kind": "tool_call", "index": 0}, {"kind": "tool_call", "index": 1}]}',
|
|
38384
|
+
'{"reasoning": "The criterion forbids promising a delivery date, but the final output commits to delivery by Friday.", "verdict": "fail", "evidence": []}'
|
|
38385
|
+
].join("\n");
|
|
38386
|
+
var EVAL_JUDGE_USER_PROMPT_TEMPLATE = [
|
|
38387
|
+
"Case: {{caseName}}",
|
|
38388
|
+
"",
|
|
38389
|
+
"Criterion (what this flow/agent is supposed to do):",
|
|
38390
|
+
"{{criteria}}",
|
|
38391
|
+
"",
|
|
38392
|
+
'Expected answer (reference; the output should convey the same facts and conclusion, wording may differ; "(none provided)" when there is no reference):',
|
|
38393
|
+
"{{expected}}",
|
|
38394
|
+
"",
|
|
38395
|
+
"Run transcript (trajectory and final output):",
|
|
38396
|
+
"{{transcript}}"
|
|
38397
|
+
].join("\n");
|
|
38204
38398
|
var userProfileFeaturesSchema = external_exports.object({
|
|
38205
38399
|
enableAgentSkills: external_exports.boolean(),
|
|
38206
38400
|
// Gates the WebMCP-powered dashboard assistant (copilot panel + chat
|
|
@@ -41371,6 +41565,7 @@ var surfaceSchema = external_exports.object({
|
|
|
41371
41565
|
"messaging",
|
|
41372
41566
|
"telegram",
|
|
41373
41567
|
"a2a",
|
|
41568
|
+
"ag-ui",
|
|
41374
41569
|
"hosted-page",
|
|
41375
41570
|
"chrome_extension"
|
|
41376
41571
|
]),
|
|
@@ -42873,7 +43068,8 @@ var PLATFORM_CATALOG = {
|
|
|
42873
43068
|
"messaging",
|
|
42874
43069
|
"telegram",
|
|
42875
43070
|
"a2a",
|
|
42876
|
-
"chrome_extension"
|
|
43071
|
+
"chrome_extension",
|
|
43072
|
+
"ag-ui"
|
|
42877
43073
|
],
|
|
42878
43074
|
availableFlowPrimitives: FLOW_STEP_TYPES.map((stepType) => {
|
|
42879
43075
|
const meta3 = FLOW_STEP_TYPE_METADATA[stepType];
|
|
@@ -42917,6 +43113,11 @@ var PLATFORM_CATALOG = {
|
|
|
42917
43113
|
restBase: "/v1/skills"
|
|
42918
43114
|
}
|
|
42919
43115
|
};
|
|
43116
|
+
function publicSurfaceTypeMetadata() {
|
|
43117
|
+
return Object.fromEntries(
|
|
43118
|
+
Object.entries(SURFACE_TYPE_METADATA).filter(([, info]) => !info.hiddenFromCatalog)
|
|
43119
|
+
);
|
|
43120
|
+
}
|
|
42920
43121
|
var SURFACE_TYPE_METADATA = {
|
|
42921
43122
|
chat: {
|
|
42922
43123
|
description: "Website widget, support bots, conversational interfaces. Uses Persona and can optionally accept WebMCP page tools discovered from document.modelContext.",
|
|
@@ -43312,6 +43513,30 @@ var SURFACE_TYPE_METADATA = {
|
|
|
43312
43513
|
executionHint: "You are running inside a Chrome extension side panel. You may have browser tools (chrome:*) to read the current page, interact with forms, and manage tabs \u2014 use them when the user asks about or wants to act on the page they are viewing. Mutating actions (clicking, filling, navigating) ask the user for confirmation before running."
|
|
43313
43514
|
},
|
|
43314
43515
|
behaviorTypeRef: "runtype://types/surface-configs"
|
|
43516
|
+
},
|
|
43517
|
+
"ag-ui": {
|
|
43518
|
+
description: "AG-UI protocol endpoint (agent-to-user event stream over SSE)",
|
|
43519
|
+
useCases: ["custom agent frontends", "CopilotKit / AG-UI clients", "embedded agent UIs"],
|
|
43520
|
+
examples: ["CopilotKit app", "Custom React agent UI", "AG-UI dojo client"],
|
|
43521
|
+
// Staging-test phase (`enable-ag-ui-surface` flag): keep the type out of
|
|
43522
|
+
// agent-facing catalogs until GA. Runtime trait lookups still resolve.
|
|
43523
|
+
hiddenFromCatalog: true,
|
|
43524
|
+
traits: {
|
|
43525
|
+
streaming: "required",
|
|
43526
|
+
messagesMutable: false,
|
|
43527
|
+
deliveryModel: "real_time",
|
|
43528
|
+
mediaSupport: "none",
|
|
43529
|
+
textMediaDelivery: "none",
|
|
43530
|
+
interactiveUI: "none",
|
|
43531
|
+
inboundMediaSupport: false,
|
|
43532
|
+
consumerType: "machine",
|
|
43533
|
+
reasoningVisibility: "pass_through",
|
|
43534
|
+
markdownDialect: "markdown",
|
|
43535
|
+
threadModel: "flat",
|
|
43536
|
+
senderIdentity: "authenticated",
|
|
43537
|
+
maxResponseLength: null,
|
|
43538
|
+
executionHint: null
|
|
43539
|
+
}
|
|
43315
43540
|
}
|
|
43316
43541
|
};
|
|
43317
43542
|
var EMAIL_HTML_CAPABILITY_HINT = [
|
|
@@ -43320,7 +43545,7 @@ var EMAIL_HTML_CAPABILITY_HINT = [
|
|
|
43320
43545
|
'- Images: embed an image with `<img src="https://..." alt="...">` and it renders inline in the email. (Some clients ask the recipient to load remote images.)'
|
|
43321
43546
|
].join("\n");
|
|
43322
43547
|
var SURFACE_TYPE_GUIDE = (() => {
|
|
43323
|
-
const lines = Object.entries(
|
|
43548
|
+
const lines = Object.entries(publicSurfaceTypeMetadata()).map(([type, info]) => {
|
|
43324
43549
|
return `- **${type}**: ${info.description}`;
|
|
43325
43550
|
});
|
|
43326
43551
|
return `## Surface Type Guide
|
|
@@ -49317,6 +49542,9 @@ logsCommand.command("list").description("Query persisted logs with filtering, se
|
|
|
49317
49542
|
printJson(res);
|
|
49318
49543
|
return;
|
|
49319
49544
|
}
|
|
49545
|
+
if (res.data?.degraded) {
|
|
49546
|
+
console.error(chalk14.yellow("Warning: historical logs are temporarily unavailable; showing recent entries only"));
|
|
49547
|
+
}
|
|
49320
49548
|
const entries = res.data?.entries ?? [];
|
|
49321
49549
|
if (entries.length === 0) {
|
|
49322
49550
|
console.log(chalk14.gray("No logs found"));
|
|
@@ -49409,6 +49637,9 @@ logsCommand.command("stats").description("Aggregate log stats: totals, counts by
|
|
|
49409
49637
|
return;
|
|
49410
49638
|
}
|
|
49411
49639
|
const stats = res.data;
|
|
49640
|
+
if (stats?.degraded) {
|
|
49641
|
+
console.error(chalk14.yellow("Warning: historical log storage is temporarily unavailable; counts cover recent entries only"));
|
|
49642
|
+
}
|
|
49412
49643
|
printDetail("Log Stats", [
|
|
49413
49644
|
{ label: "Total", value: stats.total },
|
|
49414
49645
|
{ label: "By Level", value: formatCounts(stats.byLevel ?? {}) },
|
|
@@ -69676,7 +69907,7 @@ function workerPackageJson(name, runtimeDep) {
|
|
|
69676
69907
|
"@runtypelabs/runtime": runtimeDep
|
|
69677
69908
|
},
|
|
69678
69909
|
devDependencies: {
|
|
69679
|
-
"@cloudflare/workers-types": "^
|
|
69910
|
+
"@cloudflare/workers-types": "^5.0.0",
|
|
69680
69911
|
typescript: "^5.3.3",
|
|
69681
69912
|
wrangler: "^4.0.0"
|
|
69682
69913
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runtypelabs/cli",
|
|
3
|
-
"version": "2.25.
|
|
3
|
+
"version": "2.25.2",
|
|
4
4
|
"description": "Command-line interface for Runtype AI platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"rosie-skills": "0.8.1",
|
|
25
25
|
"yaml": "^2.9.0",
|
|
26
26
|
"@runtypelabs/ink-components": "0.3.4",
|
|
27
|
-
"@runtypelabs/sdk": "5.
|
|
27
|
+
"@runtypelabs/sdk": "5.9.0",
|
|
28
28
|
"@runtypelabs/terminal-animations": "0.2.1"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"tsx": "^4.7.1",
|
|
40
40
|
"typescript": "^6.0.3",
|
|
41
41
|
"vitest": "^4.1.0",
|
|
42
|
-
"@runtypelabs/shared": "1.
|
|
42
|
+
"@runtypelabs/shared": "1.46.0"
|
|
43
43
|
},
|
|
44
44
|
"engines": {
|
|
45
45
|
"node": ">=22.12.0"
|