@runtypelabs/cli 2.45.0 → 2.46.0
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/README.md +2 -3
- package/dist/index.js +22 -4
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -743,9 +743,8 @@ jobs:
|
|
|
743
743
|
RUNTYPE_API_KEY: ${{ secrets.RUNTYPE_API_KEY }}
|
|
744
744
|
```
|
|
745
745
|
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
frees the quota immediately.
|
|
746
|
+
There is no limit on how many preview aliases an agent or organization holds.
|
|
747
|
+
Archiving on pull-request close, as above, and the 14-day expiry retire them.
|
|
749
748
|
|
|
750
749
|
#### Promoting between organizations
|
|
751
750
|
|
package/dist/index.js
CHANGED
|
@@ -11,7 +11,7 @@ import { Box, Text, render, useApp, useInput, useStdout } from "ink";
|
|
|
11
11
|
import open from "open";
|
|
12
12
|
import crypto$1 from "crypto";
|
|
13
13
|
import express from "express";
|
|
14
|
-
import {
|
|
14
|
+
import { ClientTokensNamespace, DEFAULT_STALL_STOP_AFTER, ENSURE_RELEASE_DEPLOY_CONFLICT_MESSAGE, FlowsNamespace, LEDGER_ARTIFACT_LINE_PREFIX, ProductsNamespace, RuntypeApiError, RuntypeClient, SkillsNamespace, SurfacesNamespace, ToolsNamespace, activateAgentPromotion, buildLedgerOffloadReference, compileWorkflowConfig, createClient, defaultWorkflow, defineFlow, defineFpo, defineProduct, defineSkill, defineSurface, defineTool, deployWorkflow, ensureDefaultWorkflowHooks, evaluateGeneratedRuntimeToolProposal, gameWorkflow, getDefaultPlanPath, isBuiltinToolExecuteResponse, isWorkflowHookRef, parseFinalBuffer, parseLedgerArtifactRelativePath, parseOffloadedOutputId, parseSSEChunk, prepareAgentPromotion, processStream, registerWorkflowHook, validateAgentPromotion } from "@runtypelabs/sdk";
|
|
15
15
|
import Conf from "conf";
|
|
16
16
|
import os, { tmpdir } from "os";
|
|
17
17
|
import path$1, { delimiter, dirname as dirname$1, join as join$1, relative as relative$1, resolve as resolve$1, sep as sep$1 } from "path";
|
|
@@ -8234,6 +8234,19 @@ const RUN_COMPLETENESS_VALUES = [
|
|
|
8234
8234
|
/** Which lane produced the header: a Runtype-hosted run, or one exported into ingest. */
|
|
8235
8235
|
const RUN_SOURCES = ["hosted", "ingested"];
|
|
8236
8236
|
const RUN_KINDS = ["agent", "flow"];
|
|
8237
|
+
const runViaSchema = object({
|
|
8238
|
+
kind: _enum([
|
|
8239
|
+
"schedule",
|
|
8240
|
+
"surface",
|
|
8241
|
+
"api",
|
|
8242
|
+
"mcp",
|
|
8243
|
+
"cli",
|
|
8244
|
+
"test",
|
|
8245
|
+
"eval"
|
|
8246
|
+
]).describe("One word for the way the run started."),
|
|
8247
|
+
id: string().nullable().describe("The thing that started it: the schedule id (schedule), product surface id (surface), API key id (api), the acting user id (cli) or eval suite id (eval). Null for mcp and test, and for an api run whose header predates key stamping."),
|
|
8248
|
+
label: string().nullable().describe("Its display name when the API could resolve one: schedule name, surface name, API key name as it was at dispatch, MCP client name, the acting user's first name, or eval suite name. Null when unresolved, for example a deleted schedule.")
|
|
8249
|
+
});
|
|
8237
8250
|
/** The sentence every overlay field repeats, so absence is never read as `false`. */
|
|
8238
8251
|
const ABSENT = "Absent means the overlay did not answer, which is not false and not null.";
|
|
8239
8252
|
const str = (d) => string().nullable().describe(d);
|
|
@@ -8278,6 +8291,7 @@ object({
|
|
|
8278
8291
|
inlineDefinition: boolean().nullable().describe("True when the dispatch carried a complete inline agent definition (name and model) beside or instead of an agentId, so the run executed that inline config and no stored version; such a row stamps no agentVersionId. False when the run executed the saved definition by reference. NULL when the header states nothing: a flow run, a lane that resolves no agent definition, or a row that predates the field."),
|
|
8279
8292
|
requestedFlowId: string().max(128).nullish().describe(`The flow.id an inline /v1/dispatch named when the caller's organization does not own a flow with that id. Such a run executes as the "virtual" flow, so flowId reads "virtual" and this field carries the caller's id (control characters stripped, cut to 128 characters) so the caller can still recognise its runs. It is a label only: it grants nothing, is never used as a sender or resume identity, and is not a list filter; filter with flowId=virtual and match on this field. Absent when the run executed under the id it named.`),
|
|
8280
8293
|
test: boolean().nullable().meta({ deprecated: true }).describe("DEPRECATED: a derived alias of origin, kept for one release — read origin instead. True when the run came from the dashboard, i.e. origin === \"dashboard\"; NULL exactly when origin is NULL. It is never derived from storeResults, which defaults to false across the whole flow lane and which an API caller sets for its own privacy reasons: reading it as \"test\" labelled production runs as tests. A run whose header predates origin therefore reads NULL rather than claiming either answer."),
|
|
8294
|
+
via: runViaSchema.nullish().describe("How the run started, for a Via column. Forward-only for schedule, api key, cli, mcp and eval detail: a header written before those stamps reads null, or falls back to the coarse origin/surface facts when they alone answer it. A label is a snapshot or a lookup and never authority; mcp, cli and sdk are self-declared by the client."),
|
|
8281
8295
|
stopReason: string().nullish().describe("Stop reason from the terminal frame."),
|
|
8282
8296
|
iterations: number$1().nullish().describe("Loop iterations from the terminal frame."),
|
|
8283
8297
|
inputPreview: string().nullish().describe(`The run's first user message, secret-scrubbed and cut to 160 characters, so a list can say what a run was asked to do without reading content. Absent means no input text is recorded for this run, which is not an empty message: the span store holds no run-level input at all, so a run with no control-plane row (a flow leg, a storeResults:false run) has none.`),
|
|
@@ -8328,6 +8342,8 @@ function runListCompactOmitSentence() {
|
|
|
8328
8342
|
const RUN_LIST_VIEWS = ["compact", "full"];
|
|
8329
8343
|
/** Whether the control-plane overlay runs for this page. */
|
|
8330
8344
|
const RUN_LIST_OVERLAY_MODES = ["live", "none"];
|
|
8345
|
+
/** The most runs `includeCount` counts: a bounded probe, never a window-wide COUNT(*). */
|
|
8346
|
+
const RUN_LIST_COUNT_CAP = 1e3;
|
|
8331
8347
|
/**
|
|
8332
8348
|
* The three statuses a header COLUMN can answer. `queued`, `awaiting` and
|
|
8333
8349
|
* `cancelled` are overlay-only, and filtering after the overlay would drop rows
|
|
@@ -8360,7 +8376,8 @@ object({
|
|
|
8360
8376
|
view: _enum(RUN_LIST_VIEWS).optional().describe(runListCompactOmitSentence()),
|
|
8361
8377
|
overlay: _enum(RUN_LIST_OVERLAY_MODES).optional().describe("live adds control-plane fields; defaults to live for a session, none for an API key."),
|
|
8362
8378
|
limit: string().optional().describe(`Page size, at most 100.`),
|
|
8363
|
-
cursor: string().optional().describe("Keyset cursor from a previous page.")
|
|
8379
|
+
cursor: string().optional().describe("Keyset cursor from a previous page."),
|
|
8380
|
+
includeCount: string().optional().describe(`"true" adds pagination.totalCount and pagination.totalCountCapped: the number of runs matching this request's filters within its window, ignoring the cursor and limit, counted up to ${RUN_LIST_COUNT_CAP}. Past that the count stops at ${RUN_LIST_COUNT_CAP} and totalCountCapped is true, so read it as "more than ${RUN_LIST_COUNT_CAP}". Omitted, or any other value, the response carries neither field.`)
|
|
8364
8381
|
});
|
|
8365
8382
|
object({
|
|
8366
8383
|
kind: _enum([
|
|
@@ -23173,7 +23190,9 @@ const capabilitySchema = object({
|
|
|
23173
23190
|
flow: flowDefinitionSchema.optional(),
|
|
23174
23191
|
agent: union([agentDefinitionSchema, agentDefinitionSchemaV2]).optional(),
|
|
23175
23192
|
existingFlowId: string().optional(),
|
|
23176
|
-
existingAgentId: string().optional()
|
|
23193
|
+
existingAgentId: string().optional(),
|
|
23194
|
+
/** Whether the product link is enabled; omitted preserves the live value (new links start enabled). */
|
|
23195
|
+
enabled: boolean().optional()
|
|
23177
23196
|
}).refine((cap) => {
|
|
23178
23197
|
return [
|
|
23179
23198
|
cap.flow,
|
|
@@ -46971,7 +46990,6 @@ function fail$2(headline, error) {
|
|
|
46971
46990
|
const message = error instanceof Error ? error.message : String(error);
|
|
46972
46991
|
console.error(chalk.red(headline));
|
|
46973
46992
|
console.error(chalk.red(message));
|
|
46974
|
-
if (error instanceof AgentAliasPreviewLimitError) console.error(chalk.gray(`${error.active} of ${error.limit} preview aliases active for this ${error.scope}. Archive one with: runtype agents aliases archive <alias> --all`));
|
|
46975
46993
|
process.exit(1);
|
|
46976
46994
|
}
|
|
46977
46995
|
function describeAlias(row) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runtypelabs/cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.46.0",
|
|
4
4
|
"description": "Command-line interface for Runtype AI platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"@modelcontextprotocol/client": "2.0.0",
|
|
12
12
|
"@modelcontextprotocol/core": "2.0.0",
|
|
13
13
|
"@runtypelabs/ink-components": "0.3.9",
|
|
14
|
-
"@runtypelabs/sdk": "10.
|
|
14
|
+
"@runtypelabs/sdk": "10.11.0",
|
|
15
15
|
"@runtypelabs/terminal-animations": "0.2.4",
|
|
16
16
|
"add-mcp": "2.0.0",
|
|
17
17
|
"chalk": "^5.3.0",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@modelcontextprotocol/server": "2.0.0",
|
|
35
35
|
"@runtypelabs/persona": "4.24.0",
|
|
36
|
-
"@runtypelabs/shared": "3.
|
|
36
|
+
"@runtypelabs/shared": "3.71.0",
|
|
37
37
|
"@types/express": "^5.0.6",
|
|
38
38
|
"@types/micromatch": "^4.0.9",
|
|
39
39
|
"@types/node": "^25.3.3",
|