@runtypelabs/cli 2.16.1 → 2.16.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.
Files changed (2) hide show
  1. package/dist/index.js +97 -9
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -15259,6 +15259,28 @@ var agentReflectionEventSchema = external_exports.object({
15259
15259
  iteration: external_exports.number(),
15260
15260
  reflection: external_exports.string().optional()
15261
15261
  });
15262
+ var agentSkillLoadedEventSchema = external_exports.object({
15263
+ ...baseAgentEvent,
15264
+ type: external_exports.literal("agent_skill_loaded"),
15265
+ iteration: external_exports.number(),
15266
+ toolCallId: external_exports.string(),
15267
+ /** Skill slug (the part after `skill:`). */
15268
+ skill: external_exports.string(),
15269
+ /** Names of the capability tools this skill activated for later turns. */
15270
+ activatedCapabilities: external_exports.array(external_exports.string())
15271
+ });
15272
+ var agentSkillProposedEventSchema = external_exports.object({
15273
+ ...baseAgentEvent,
15274
+ type: external_exports.literal("agent_skill_proposed"),
15275
+ iteration: external_exports.number(),
15276
+ toolCallId: external_exports.string(),
15277
+ /** Proposed skill slug. */
15278
+ skill: external_exports.string(),
15279
+ /** Review outcome: queued for review, or auto-published under the opt-out. */
15280
+ outcome: external_exports.enum(["pending_approval", "auto_published"]),
15281
+ /** Proposal audit-row id (for the dashboard review queue). */
15282
+ proposalId: external_exports.string().optional()
15283
+ });
15262
15284
  var agentCompleteEventSchema = external_exports.object({
15263
15285
  ...baseAgentEvent,
15264
15286
  type: external_exports.literal("agent_complete"),
@@ -15307,6 +15329,8 @@ var agentSSEEventSchema = external_exports.discriminatedUnion("type", [
15307
15329
  agentAwaitEventSchema,
15308
15330
  agentIterationCompleteEventSchema,
15309
15331
  agentReflectionEventSchema,
15332
+ agentSkillLoadedEventSchema,
15333
+ agentSkillProposedEventSchema,
15310
15334
  agentCompleteEventSchema,
15311
15335
  agentErrorEventSchema,
15312
15336
  agentPingEventSchema
@@ -28839,6 +28863,42 @@ var CORE_BUILTIN_TOOLS_REGISTRY = [
28839
28863
  platformKeySupport: true,
28840
28864
  requiresApiKey: false
28841
28865
  },
28866
+ // Skills — deployed-agent self-authoring (data plane). Proposing a skill is
28867
+ // a fire-and-forget review-queue write; it does NOT pause the loop. The
28868
+ // skill is persisted for FUTURE runs (review-by-default), not activated in
28869
+ // the current one. See `.claude/rules/api.md#agent-skills-two-plane-governance`.
28870
+ {
28871
+ id: "propose_skill",
28872
+ name: "Propose Skill",
28873
+ description: "Author a new reusable skill (a loadable instruction bundle, optionally referencing flows/agents/tools) and submit it for human review. Use this to capture a procedure you worked out so it can be loaded on demand in future runs. The proposal is queued for review by default and does NOT change the current run. Returns immediately.",
28874
+ category: BuiltInToolCategory.DATA_MANAGEMENT,
28875
+ providers: [BuiltInToolProvider.MULTI],
28876
+ parametersSchema: {
28877
+ type: "object",
28878
+ properties: {
28879
+ name: {
28880
+ type: "string",
28881
+ description: "Skill slug \u2014 lowercase letters, digits, underscore/hyphen, must start with a letter (\u226464 chars)."
28882
+ },
28883
+ description: {
28884
+ type: "string",
28885
+ description: "One-paragraph description of when this skill is relevant (\u22641024 chars). This is what a future agent reads to decide whether to load it."
28886
+ },
28887
+ body: {
28888
+ type: "string",
28889
+ description: "The skill instructions (markdown). The procedure to follow when loaded."
28890
+ },
28891
+ capabilities: {
28892
+ type: "object",
28893
+ description: "Optional capability bindings: { flowIds?, agentIds?, toolIds?, inlineTools? }. Referencing capabilities makes this a capability-bearing proposal (always reviewed). mcpServers are not supported."
28894
+ }
28895
+ },
28896
+ required: ["name", "description", "body"]
28897
+ },
28898
+ executionHint: "platform",
28899
+ requiresApiKey: false,
28900
+ platformKeySupport: false
28901
+ },
28842
28902
  // Record Management Tools — CRUD operations on Runtype records
28843
28903
  {
28844
28904
  id: "runtype_record_upsert",
@@ -31777,7 +31837,7 @@ var MODEL_FAMILY_PROVIDER_IDS = {
31777
31837
  "vercel": "google/gemini-2.5-pro"
31778
31838
  },
31779
31839
  "gemini-3-1-flash-image": {
31780
- "vercel": "google/gemini-3.1-flash-image-preview"
31840
+ "vercel": "google/gemini-3.1-flash-image"
31781
31841
  },
31782
31842
  "gemini-3-1-flash-lite": {
31783
31843
  "vercel": "google/gemini-3.1-flash-lite"
@@ -31798,8 +31858,8 @@ var MODEL_FAMILY_PROVIDER_IDS = {
31798
31858
  "gemini-3-pro-image": {
31799
31859
  "vercel": "google/gemini-3-pro-image"
31800
31860
  },
31801
- "gemini-3.1-flash-image-preview": {
31802
- "vercel": "google/gemini-3.1-flash-image-preview"
31861
+ "gemini-3.1-flash-image": {
31862
+ "vercel": "google/gemini-3.1-flash-image"
31803
31863
  },
31804
31864
  "gemini-3.1-flash-lite": {
31805
31865
  "vercel": "google/gemini-3.1-flash-lite"
@@ -32565,6 +32625,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
32565
32625
  "qwen3-7-max": {
32566
32626
  "vercel": "alibaba/qwen3.7-max"
32567
32627
  },
32628
+ "qwen3-7-plus": {
32629
+ "vercel": "alibaba/qwen3.7-plus"
32630
+ },
32568
32631
  "qwen3-coder": {
32569
32632
  "vercel": "alibaba/qwen3-coder"
32570
32633
  },
@@ -32650,6 +32713,9 @@ var MODEL_FAMILY_PROVIDER_IDS = {
32650
32713
  "qwen3.7-max": {
32651
32714
  "vercel": "alibaba/qwen3.7-max"
32652
32715
  },
32716
+ "qwen3.7-plus": {
32717
+ "vercel": "alibaba/qwen3.7-plus"
32718
+ },
32653
32719
  "seed-1-6": {
32654
32720
  "vercel": "bytedance/seed-1.6"
32655
32721
  },
@@ -35190,6 +35256,23 @@ var platformCatalogSchema = external_exports.object({
35190
35256
  maxFlowsPerProduct: external_exports.number().int().positive(),
35191
35257
  maxStepsPerFlow: external_exports.number().int().positive(),
35192
35258
  maxSurfacesPerProduct: external_exports.number().int().positive()
35259
+ }),
35260
+ /**
35261
+ * Agent Skills — loadable SKILL.md context bundles a deployed agent pulls into
35262
+ * its working context on demand. Distinct from A2A AgentSkill (agent-card
35263
+ * roles). Flag-gated, so it's described here rather than listed as a fixed
35264
+ * catalog (skills are user-authored, not a built-in set).
35265
+ */
35266
+ agentSkills: external_exports.object({
35267
+ /** Rollout flag controlling availability; off in production until ramped. */
35268
+ rolloutFlag: external_exports.string(),
35269
+ description: external_exports.string(),
35270
+ /** How an agent acquires a bound skill at runtime. */
35271
+ loadModel: external_exports.string(),
35272
+ /** One-line summary of the two-plane governance split. */
35273
+ governance: external_exports.string(),
35274
+ /** REST base path for the admin/control plane. */
35275
+ restBase: external_exports.string()
35193
35276
  })
35194
35277
  });
35195
35278
  var PLATFORM_CATALOG = {
@@ -35299,6 +35382,13 @@ var PLATFORM_CATALOG = {
35299
35382
  maxFlowsPerProduct: 10,
35300
35383
  maxStepsPerFlow: 40,
35301
35384
  maxSurfacesPerProduct: 8
35385
+ },
35386
+ agentSkills: {
35387
+ rolloutFlag: "enable-agent-skills",
35388
+ description: "Loadable SKILL.md context bundles (Anthropic frontmatter + a runtype: capability block) that a deployed agent pulls into its working context on demand.",
35389
+ loadModel: "A bound skill is surfaced as a `skill:<slug>` virtual tool \u2014 the model loads it on demand (L1 description in the tool list \u2192 L2 markdown body returned on call); bound capabilities activate for later turns.",
35390
+ governance: "Two-plane: admin/control plane (REST /v1/skills, scoped by SKILLS:READ/WRITE, no review queue) vs deployed-agent/data plane (propose_skill, review-by-default via /v1/skill-proposals).",
35391
+ restBase: "/v1/skills"
35302
35392
  }
35303
35393
  };
35304
35394
  var SURFACE_TYPE_METADATA = {
@@ -35647,6 +35737,7 @@ var PLATFORM_FEATURES_SUMMARY = (() => {
35647
35737
  - **Built-in tools**: GPT Image 2 image generation, provider-native web search (OpenAI web search, Anthropic web search/fetch, xAI Live Search for Grok-3 series, xAI X Search / Web Search agentic tools for Grok-4 series), Exa (AI search), Firecrawl (simple web scraping), Browser Run tools (rendered markdown, HTML, screenshots, snapshots, selector scraping, JSON extraction, link harvesting \u2014 stateless), Browser Session tools (persistent interactive browsing: open, navigate, click, type, scroll, screenshot, evaluate, close), Browser Agent (autonomous higher-level alternative \u2014 give a natural-language goal plus a startUrl or sessionId and the agent navigates/clicks/extracts on its own), Store Asset (host any file from a URL or base64 inline content \u2014 returns a permanent public or signed private URL, downloads as attachment), Publish Page (host HTML that renders inline in the browser at a shareable 7-day /preview/ URL under a locked-down CSP), vector search, UCP commerce tools (discovery, catalog, cart, checkout, orders for any UCP-enabled merchant)
35648
35738
  - **Integrations**: ${integrations}
35649
35739
  - **Flow step types**: prompt, ${stepTypes}
35740
+ - **Agent Skills**: loadable SKILL.md context bundles an agent pulls in on demand via a \`skill:<slug>\` tool (L1 description \u2192 L2 body), optionally binding flows/subagents/tools. Gated behind the \`enable-agent-skills\` rollout flag. See the Agent Skills guide.
35650
35741
  - **Available models**: ${models}
35651
35742
  - **Surface types**: ${PLATFORM_CATALOG.availableSurfaceTypes.join(", ")}
35652
35743
  - **Limits**: max ${PLATFORM_CATALOG.limits.maxFlowsPerProduct} flows/product, max ${PLATFORM_CATALOG.limits.maxStepsPerFlow} steps/flow, max ${PLATFORM_CATALOG.limits.maxSurfacesPerProduct} surfaces/product`;
@@ -35779,6 +35870,7 @@ var DOCUMENTATION_TOPIC_MAP = {
35779
35870
  "types-entities": "runtype://types/entities",
35780
35871
  "orthogonal-tools": "runtype://catalog/orthogonal-tools",
35781
35872
  "builtin-tools": "runtype://catalog/builtin-tools",
35873
+ "agent-skills": "runtype://catalog/skills",
35782
35874
  "external-tools": "runtype://guide/external-tools",
35783
35875
  "dashboard-links": "runtype://catalog/dashboard-links",
35784
35876
  "mock-ecommerce": "runtype://catalog/mock-ecommerce",
@@ -37745,8 +37837,7 @@ flowsCommand.command("list").description("List all flows").option("--limit <n>",
37745
37837
  title: "Your Flows",
37746
37838
  columns: [
37747
37839
  { key: "id", color: "green" },
37748
- { key: "name" },
37749
- { key: "description", color: "gray" }
37840
+ { key: "name" }
37750
37841
  ],
37751
37842
  emptyMessage: "No flows found",
37752
37843
  total: getTotalCount(data.pagination)
@@ -37780,8 +37871,7 @@ flowsCommand.command("list").description("List all flows").option("--limit <n>",
37780
37871
  return React2.createElement(EntityCard, {
37781
37872
  fields: [
37782
37873
  { label: "ID", value: flow.id, color: "green" },
37783
- { label: "Name", value: flow.name },
37784
- { label: "Description", value: flow.description, color: "gray" }
37874
+ { label: "Name", value: flow.name }
37785
37875
  ]
37786
37876
  });
37787
37877
  },
@@ -37805,7 +37895,6 @@ flowsCommand.command("get <id>").description("Get flow details").option("--json"
37805
37895
  printDetail("Flow", [
37806
37896
  { label: "ID", value: data.id },
37807
37897
  { label: "Name", value: data.name },
37808
- { label: "Description", value: data.description },
37809
37898
  { label: "Steps", value: data.stepCount ?? data.flowSteps?.length }
37810
37899
  ]);
37811
37900
  } catch (error51) {
@@ -37832,7 +37921,6 @@ flowsCommand.command("get <id>").description("Get flow details").option("--json"
37832
37921
  fields: [
37833
37922
  { label: "ID", value: flow.id, color: "green" },
37834
37923
  { label: "Name", value: flow.name },
37835
- { label: "Description", value: flow.description },
37836
37924
  { label: "Steps", value: flow.stepCount ?? flow.flowSteps?.length }
37837
37925
  ]
37838
37926
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runtypelabs/cli",
3
- "version": "2.16.1",
3
+ "version": "2.16.2",
4
4
  "description": "Command-line interface for Runtype AI platform",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -22,7 +22,7 @@
22
22
  "rosie-skills": "0.8.1",
23
23
  "yaml": "^2.8.3",
24
24
  "@runtypelabs/ink-components": "0.3.2",
25
- "@runtypelabs/sdk": "3.0.0",
25
+ "@runtypelabs/sdk": "4.0.0",
26
26
  "@runtypelabs/terminal-animations": "0.2.1"
27
27
  },
28
28
  "devDependencies": {
@@ -36,7 +36,7 @@
36
36
  "tsx": "^4.7.1",
37
37
  "typescript": "^5.3.3",
38
38
  "vitest": "^4.1.0",
39
- "@runtypelabs/shared": "1.6.2"
39
+ "@runtypelabs/shared": "1.7.0"
40
40
  },
41
41
  "engines": {
42
42
  "node": ">=22.0.0"