@rosthq/cli 0.5.15 → 0.5.16

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 CHANGED
@@ -41637,7 +41637,7 @@ The Compass is drafted, then activated by a human through supersession.
41637
41637
  order: 20,
41638
41638
  title: "Responsibility Graph playbook",
41639
41639
  summary: "How to build a functions-first graph with seats, owners, Stewards, vacancies, and clean authority.",
41640
- version: "2026-06-18.2",
41640
+ version: "2026-06-20.2",
41641
41641
  public: true,
41642
41642
  audiences: ["human", "cli", "mcp", "in_app_agent"],
41643
41643
  stages: ["graph_design", "staffing"],
@@ -41689,7 +41689,13 @@ The graph is also where you land after onboarding \u2014 it is the mission contr
41689
41689
  - **Structure** \u2014 seat type and reporting lines.
41690
41690
  - **Cascade** \u2014 whether each seat's goal branch is on track.
41691
41691
  - **Signal** \u2014 the worst measurable state per seat.
41692
- - **Scoreboard** \u2014 two live numbers on every seat: work done (agent runs) and cost over the last 30 days. A seat whose cost is a clear outlier above the rest of the fleet is flagged as cost drift (labelled, not colour-only). Human seats and seats with no runs read calmly as no agent cost rather than a bare zero. For a small fleet the Scoreboard also leads with a two-tile summary \u2014 total work and total cost \u2014 framed as the single question that matters: is it earning its keep.
41692
+ - **Scoreboard** \u2014 direct work and direct cost on each seat, plus a separate team/subtree rollup for manager seats. The tenant summary counts direct agent work once, so a parent seat's team cost does not double-count the same run again. A seat whose direct cost is a clear outlier above the rest of the fleet is flagged as cost drift (labelled, not colour-only). Human seats and seats with no direct or team runs read calmly rather than showing a bare zero. For a small fleet the Scoreboard also leads with a two-tile summary \u2014 total work and total cost \u2014 framed as the single question that matters: is it earning its keep.
41693
+
41694
+ The graph also carries a mission-control panel. It pulls the same operational state visible on the agent and setup-health surfaces: held actions that need steward decisions, failed runs, open Friction, pending Signal readings, stale agents, and setup recommendations. Each item can focus the affected seat on the canvas and links to the route where the operator can act.
41695
+
41696
+ ## Review an agent seat's delivered work
41697
+
41698
+ Agent seat pages show the operator-facing output trail, not just low-level run telemetry. The completed work area combines explicit \`agent_deliverables\`, successful \`work.log\` evidence, and recent successful run summaries into one readable list. Each item shows what was delivered, when it happened, what kind of work it was, and safe evidence links labelled as internal, Linear, GitHub, or external. Secret-shaped values are redacted before display, and run or task context is shown only when it belongs to the same seat.
41693
41699
 
41694
41700
  ## First-pass structure
41695
41701
 
@@ -42053,7 +42059,7 @@ The dry run is a real sandbox rehearsal, not a stamp. It executes a mock-provide
42053
42059
  order: 80,
42054
42060
  title: "Sync rhythm playbook",
42055
42061
  summary: "How Signal, Friction, Cascade, and Sync Briefs turn weekly meetings into decision time.",
42056
- version: "2026-06-20.1",
42062
+ version: "2026-06-20.2",
42057
42063
  public: true,
42058
42064
  audiences: ["human", "cli", "mcp", "in_app_agent"],
42059
42065
  stages: ["operating_rhythm"],
@@ -42100,6 +42106,10 @@ The Sync Brief should answer:
42100
42106
 
42101
42107
  On screen the brief reads in plain terms: Signal exceptions, goal progress, task review, ranked Friction, and agent activity. Where a section has no source data, it lists gaps to confirm \u2014 the missing inputs a human should know about before the meeting \u2014 rather than a blank section.
42102
42108
 
42109
+ Before the first brief exists, the Sync pages are readiness views. They show the next scheduled compile and the source areas that will feed it: Signal, Cascade, Tasks, Friction, and Agents. Use those links to add the missing source data; there is no manual compile button until the system has an idempotent persisted operation to run.
42110
+
42111
+ The same readiness model appears around the meeting loop. Steward shows the governance loop even when no decision is waiting: which agent seats are stewarded, how many escalations are open, and recent raised/decided counts. Tasks explains when nothing is due and points to recently completed or agent-blocked work when it exists. The agent fleet shows configuration completeness per staffed agent seat \u2014 steward chain, lane/trigger/substrate, credentials, tools, model, dry run, and go-live \u2014 with links to the exact setup surface rather than a generic action button.
42112
+
42103
42113
  ## During Sync
42104
42114
 
42105
42115
  Start with the exceptions, not a tour of every seat. Resolve the highest-value Friction first. Convert decisions into handoffs with owners and dates. Clarify Charters when ownership is ambiguous.
@@ -42307,7 +42317,7 @@ There is exactly one way to give a connected tool its credential, and it is the
42307
42317
  order: 47,
42308
42318
  title: "Available tools guide",
42309
42319
  summary: "How to think about tool categories available to seats and what each category should be used for.",
42310
- version: "2026-06-20.3",
42320
+ version: "2026-06-20.4",
42311
42321
  public: true,
42312
42322
  audiences: ["human", "cli", "mcp", "in_app_agent"],
42313
42323
  stages: ["staffing"],
@@ -42341,6 +42351,10 @@ There is exactly one way to give a connected tool its credential, and it is the
42341
42351
 
42342
42352
  Start from the seat's responsibility, not the tool list. If a tool does not directly support a responsibility or measurable, do not connect it yet.
42343
42353
 
42354
+ ## Skills and tool dependencies
42355
+
42356
+ Skills are reusable procedures a seat can learn from; they are not tools and they never grant authority. A skill package may declare required or optional tool dependencies so setup can identify blockers before assignment. Those dependencies are checked against the discoverable \`tool.catalog\` ids and scope tiers, then compared to the seat's Charter permission manifest. Missing required tools block approval; optional tools produce setup warnings. A published skill version is immutable, so later corrections create a new version instead of rewriting what a run may have used.
42357
+
42344
42358
  ## How agents should request tools
42345
42359
 
42346
42360
  Agents should explain the job, the required tool category, the minimum permission needed, and the escalation boundary. Humans approve or decline the request.
@@ -42356,7 +42370,7 @@ External connectors are being rolled out provider by provider, conservatively (r
42356
42370
  order: 48,
42357
42371
  title: "CLI and MCP installation guide",
42358
42372
  summary: "Install the public CLI, register remote token-backed MCP clients, and find the full command and tool catalog.",
42359
- version: "2026-06-20.8",
42373
+ version: "2026-06-20.10",
42360
42374
  public: true,
42361
42375
  audiences: ["human", "cli", "mcp", "in_app_agent"],
42362
42376
  stages: ["company_setup", "staffing"],
@@ -42774,6 +42788,7 @@ These ergonomic wrappers (including the \`{{cli}} agent\` group) require **{{cli
42774
42788
  | \`{{cli}} member invite|update|remove\` | \`member.invite\`, \`member.update\`, \`member.remove\` | Manage tenant members. | Tenant | \`{{cli}} member invite --email ops@example.com --role member\` |
42775
42789
  | \`{{cli}} agent templates|create|setup|tools|dry-run|go-live|status|run-now|fleet-digest|get-run|show\` | \`agent_template.list\`, \`agent.create_from_template\`, \`agent.create_custom\`, \`agent_setup.get\`, \`agent_setup.update\`, \`agent.configure_tools\`, \`agent.run_dry_run\`, \`agent.go_live\`, \`agent.status\`, \`agent.run_now\`, \`agent.fleet_digest\`, \`agent.get_run\`, \`agent.show_markdown\` | Run the full agent setup and operation flow: list templates, create a draft from a template or guided custom answers (with \`--model\` and \`--effort\`), read or answer setup state, connect or decline tools, dry-run, go live, run on demand, capture the fleet-health digest, read one run's transcript/error diagnostics, and show a markdown readout. Create and go-live stop at human gates; the dry-run is ungated by human approval but requires a signed manifest first. | Tenant and seat | \`{{cli}} agent fleet-digest --json\` |
42776
42790
  | \`{{cli}} tools list\` | \`tool.catalog\` | List the discoverable tool catalog the builder reads (id, scope tiers, credential requirement, access policy, and execution-boundary guidance). | Tenant | \`{{cli}} tools list --json\` |
42791
+ | \`{{cli}} skills list|get|file|assigned|check-dependencies\` | \`skill.list\`, \`skill.get\`, \`skill.file.get\`, \`skill.assigned.list\`, \`skill.check_dependencies\` | Discover reusable Skills, read descriptors and stored package files, list approved Seat assignments, and compare required/optional tool dependencies with a Seat's signed Charter manifest. Skills are instructions, not authority. | Tenant and seat | \`{{cli}} skills list --json\`; \`{{cli}} skills file --slug invoice-review --path SKILL.md\` |
42777
42792
  | \`{{cli}} model list\` | \`model.catalog\` | List guided model tiers with recommendations, token prices, cost bands, best-fit work, and model ids for \`--model\`. | Tenant | \`{{cli}} model list --json\` |
42778
42793
  | \`{{cli}} compass show\` | \`compass.show_markdown\` | Render the current Compass as a clean markdown card for review. | Tenant | \`{{cli}} compass show --markdown\` |
42779
42794
  | \`{{cli}} charter show\` | \`charter.show_markdown\` | Render a seat's Charter as a clean markdown card for review. | Tenant | \`{{cli}} charter show --seat-id <id> --markdown\` |
@@ -42800,7 +42815,7 @@ This catalog is the canonical machine surface \u2014 the \`rost_*\` tools your M
42800
42815
  3. **\`{{cli}} model list\` / \`model.catalog\`** (MCP \`rost_list_model_catalog\`) \u2014 the guided model-tier catalog the builder reads for recommendations, effort, token prices, cost bands, and model id selection.
42801
42816
  4. **The "Available tools guide"** (in the sidebar) \u2014 covers tool *categories* and governance, not a callable surface. See the available-tools-guide.
42802
42817
 
42803
- Sections below: Command discovery (2) \xB7 Public reference (3) \xB7 Tenant-admin tools (grouped by domain) \xB7 Seat-scoped operating tools (9) \xB7 MCP operation resources (9).
42818
+ Sections below: Command discovery (2) \xB7 Public reference (3) \xB7 Tenant-admin tools (grouped by domain) \xB7 Seat-scoped operating tools (9) \xB7 MCP operation resources (13).
42804
42819
 
42805
42820
  ### Command discovery tools
42806
42821
 
@@ -42852,7 +42867,7 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
42852
42867
  | \`rost_approve_pending_confirmation\` | \`confirmation.approve\` | Approve a pending confirmation. | Tenant | Call with \`{"confirmation_id":"<confirmation-id>"}\`. |
42853
42868
  | \`rost_reject_pending_confirmation\` | \`confirmation.reject\` | Reject a pending confirmation. | Tenant | Call with \`{"confirmation_id":"<confirmation-id>"}\`. |
42854
42869
  | \`rost_draft_compass\` | \`compass.draft\` | Create a Compass draft. | Tenant | Call with a concise Compass document. |
42855
- | \`rost_update_compass_draft\` | \`compass.update_draft\` | Replace a Compass draft document. | Tenant | Call with \`draft_id\` and updated document. |
42870
+ | \`rost_update_compass_draft\` | \`compass.update_draft\` | Replace a Compass draft document. | Tenant | Call with the \`compass_version_id\` from \`compass.draft\` as \`draft_id\` and the updated document. |
42856
42871
  | \`rost_approve_compass_version\` | \`compass.approve_version\` | Activate a Compass version by supersession. | Tenant | Call after human review. |
42857
42872
  | \`rost_reject_compass_draft\` | \`compass.reject_draft\` | Reject and remove a Compass draft. | Tenant | Call when the draft should not proceed. |
42858
42873
  | \`rost_answer_compass_gap\` | \`compass.answer_gap\` | Record a human answer for a Compass gap. | Tenant | Call with \`gap_id\` and answer text. |
@@ -42938,6 +42953,11 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
42938
42953
  | \`rost_show_charter_as_markdown\` | \`charter.show_markdown\` | Render a seat's active or latest Charter as a clean markdown card for review. | Tenant | Call with \`{"seat_id":"<seat-id>"}\`. |
42939
42954
  | \`rost_show_agent_setup_as_markdown\` | \`agent.show_markdown\` | Render a seat's agent setup, model, steward, tools, and Charter as a clean markdown card for review. | Tenant | Call with \`{"seat_id":"<seat-id>"}\`. |
42940
42955
  | \`rost_list_tool_catalog\` | \`tool.catalog\` | List the discoverable tool catalog the agent builder reads \u2014 id, prescriptive description, scope tiers, credential requirement, access policy, and execution-boundary guidance. | Tenant | Call with \`{}\` or \`{"provider":"google"}\`. |
42956
+ | \`rost_list_skills\` | \`skill.list\` | List tenant Skills with application descriptors, dependency metadata, source status, latest version, and assigned Seat count. Seat-scoped reads are available through \`rost://skills\`. | Tenant-admin | Call with \`{}\` or \`{"query":"invoice"}\`. |
42957
+ | \`rost_get_skill\` | \`skill.get\` | Read one Skill descriptor and latest stored version metadata. Seat-scoped reads are available through \`rost://skills/{slug}\`. | Tenant-admin | Call with \`{"slug":"invoice-review"}\`. |
42958
+ | \`rost_get_skill_file\` | \`skill.file.get\` | Read stored Skill package file content by slug and package path; paths resolve only inside the stored package payload. Seat-scoped reads are available through \`rost://skills/{slug}/files/{path}\`. | Tenant-admin | Call with \`{"slug":"invoice-review","path":"SKILL.md"}\`. |
42959
+ | \`rost_list_assigned_skills\` | \`skill.assigned.list\` | List approved Skill assignments for a Seat, including immutable version, dependency status, rationale, and approval time. Seat-scoped reads are available through \`rost://seat/{id}/skills\`. | Tenant-admin | Call with \`{"seat_id":"<seat-id>"}\`. |
42960
+ | \`rost_check_skill_dependencies\` | \`skill.check_dependencies\` | Compare a Skill version's required and optional tools with a Seat's active or draft Charter permission manifest. Returns ready/blocked/warning and suggested \`agent.configure_tools\` input; it never grants permissions. | Tenant-admin | Call with \`{"seat_id":"<seat-id>","slug":"invoice-review"}\`. |
42941
42961
  | \`rost_list_model_catalog\` | \`model.catalog\` | List guided model tiers \u2014 recommendations, token prices, cost bands, best-fit work, and model ids for \`--model\`. | Tenant | Call with \`{}\`. |
42942
42962
 
42943
42963
  ### Seat-scoped operating tools
@@ -42967,9 +42987,13 @@ These read-only resources bundle the facts the UI shows so an agent can avoid gu
42967
42987
  | \`rost://seat/{id}/context\` | A seat's Compass, Charter, goals, measurables, open tasks, open issues, and protocol. | Seat (own seat) or tenant-admin (any seat) | Read \`rost://seat/<seat-id>/context\` for the acting seat. |
42968
42988
  | \`rost://compass/current\` | Active and draft Compass versions plus source documents. | Tenant-admin | Read before drafting Compass changes. |
42969
42989
  | \`rost://sync/latest\` | The most recent compiled Sync Brief and its agenda. | Tenant-admin | Read before running the weekly Sync. |
42990
+ | \`rost://skills\` | Tenant Skills library for tenant-admin tokens; assigned published Skills for seat tokens. | Tenant-admin or seat | Read before creating, assigning, or loading Skill instructions. |
42991
+ | \`rost://skills/{slug}\` | One Skill descriptor and latest stored version metadata. | Tenant-admin or assigned seat | Read \`rost://skills/<slug>\` before loading the full file. |
42992
+ | \`rost://skills/{slug}/files/{path}\` | Stored Skill package file content by package path; never server filesystem paths. | Tenant-admin or assigned seat | Read \`rost://skills/<slug>/files/SKILL.md\`. |
42970
42993
  | \`rost://agents/templates\` | Stock agent templates: responsibilities, default tools, safety boundaries, and dry-run rehearsal. | Tenant-admin | Read before creating an agent from a template. |
42971
42994
  | \`rost://agent-setup/{id}\` | A draft agent setup's mode, parent, steward, lane, schedule, tool decisions, dry-run, blockers, and next action. | Tenant-admin | Read \`rost://agent-setup/<setup-id>\` to resume a draft. |
42972
42995
  | \`rost://seat/{id}/agent-status\` | A seat's agent occupancy, lane, schedule, live state, steward chain, and dry-run result. | Seat (own seat) or tenant-admin (any seat) | Read \`rost://seat/<seat-id>/agent-status\` for the acting seat. |
42996
+ | \`rost://seat/{id}/skills\` | Approved Skill assignments for a Seat, including immutable version and dependency status. | Seat (own seat) or tenant-admin (any seat) | Read \`rost://seat/<seat-id>/skills\` before a run loads Skills. |
42973
42997
  | \`rost://operations/reference-map\` | Machine-facing map of which guide to read before each workflow. | Any valid MCP token | Read first when planning a CLI/MCP workflow. |
42974
42998
 
42975
42999
  ## Troubleshooting
@@ -43120,7 +43144,7 @@ Retrieve the narrowest relevant guide before making a setup recommendation. Pref
43120
43144
  order: 60,
43121
43145
  title: "Cascade guide",
43122
43146
  summary: "How to connect company goals to seat-level work without turning {{brand}} into a project-management tool.",
43123
- version: "2026-06-18.1",
43147
+ version: "2026-06-20.1",
43124
43148
  public: true,
43125
43149
  audiences: ["human", "cli", "mcp", "in_app_agent"],
43126
43150
  stages: ["operating_rhythm"],
@@ -43156,11 +43180,23 @@ Cascade connects company direction to seat-level commitments. It is a goal tree,
43156
43180
  ## Good Cascade structure
43157
43181
 
43158
43182
  - Company goals connect back to the Compass.
43159
- - Team or function goals connect to company goals.
43183
+ - Team or function goals connect to company goals. This is the accountable human layer for most agent work.
43184
+ - Agent execution goals connect below the human or function goal they advance, unless the agent seat is intentionally accountable for that outcome.
43160
43185
  - Seat commitments connect to the goal they advance.
43161
43186
  - Each commitment has one owning seat.
43162
43187
  - Status is evidence-based where possible.
43163
43188
 
43189
+ ## Setup-health recommendations
43190
+
43191
+ Cascade warnings are advisory, not blockers. They point to setup that should be reviewed before the next Sync:
43192
+
43193
+ - Uncovered Compass objective: the objective has no active child seat goal.
43194
+ - Objective skips accountable function: current child goals are agent-owned without a human or function goal between Compass and execution.
43195
+ - Seat missing cycle goals: an active seat has no current-cycle goal.
43196
+ - Seat missing active Charter: an active seat has no approved Charter.
43197
+ - Agent goal missing human accountability parent: an agent-owned goal has no human or hybrid goal in its ancestry.
43198
+ - Orphaned goal branch: the owner seat or parent chain no longer reaches an active Compass objective.
43199
+
43164
43200
  ## What does not belong
43165
43201
 
43166
43202
  Do not put every task into Cascade. Small errands, private notes, and work with no strategic connection should stay out. Cascade should answer whether the company is moving toward its stated outcomes.
@@ -43920,7 +43956,7 @@ Agents should not teach EOS as EOS. They should use {{brand}}'s method. When a u
43920
43956
  order: 11,
43921
43957
  title: "Compass authoring guide",
43922
43958
  summary: "Field-by-field guidance for authoring a strong Compass document directly, with the full JSON contract and worked examples.",
43923
- version: "2026-06-16.1",
43959
+ version: "2026-06-20.1",
43924
43960
  public: true,
43925
43961
  audiences: ["cli", "mcp", "in_app_agent"],
43926
43962
  stages: ["company_setup"],
@@ -44028,7 +44064,7 @@ A consultancy's purpose might be "Make expert tax guidance affordable for first-
44028
44064
 
44029
44065
  1. \`compass.draft\` \u2014 submit the document above. Drafting is safe for an agent; it returns a \`compass_version_id\`.
44030
44066
  2. \`compass.list_gaps\` \u2014 see what is unanswered. \`compass.answer_gap\` records a human's answer and produces a fresh draft.
44031
- 3. \`compass.update_draft\` \u2014 revise the draft as answers arrive.
44067
+ 3. \`compass.update_draft\` \u2014 revise the draft as answers arrive. Pass the same \`compass_version_id\` from \`compass.draft\` as \`draft_id\`; the command replaces that unpublished draft in place and returns the draft row's current version number. If the id is missing, belongs to another tenant, or is already approved or rejected, start from \`compass.get_current\` instead of retrying blindly.
44032
44068
  4. \`compass.approve_version\` \u2014 activation by supersession. This is \`human_required\`: a human approves it. Prepare the draft and surface the approve link; do not approve on a human's behalf. See the confirmations guide.`
44033
44069
  },
44034
44070
  {
@@ -46091,6 +46127,113 @@ function toolsUsage(bin) {
46091
46127
  return `Usage: ${bin} tools list [--provider <name>] [--json]
46092
46128
  ${bin} tools list \u2014 the discoverable tool catalog the builder reads; live handlers execute only behind signed manifests, guards, credentials, and bindings.`;
46093
46129
  }
46130
+ function formatSkillList(output) {
46131
+ const skills = asArray(asRecord(output).skills);
46132
+ if (skills.length === 0) {
46133
+ return "No skills found.";
46134
+ }
46135
+ return [
46136
+ "# Skills",
46137
+ ...skills.map((entry) => {
46138
+ const r = asRecord(entry);
46139
+ return `- \`${field(r, "slug")}\` v${field(r, "latest_version")} [${field(r, "status")} \xB7 ${field(r, "visibility")} \xB7 assigned ${field(r, "assigned_seat_count")}]
46140
+ ${field(r, "description")}`;
46141
+ })
46142
+ ].join("\n");
46143
+ }
46144
+ function formatSkillDetail(output) {
46145
+ const skill = asRecord(asRecord(output).skill);
46146
+ const required2 = asArray(skill.required_tools).map((entry) => field(asRecord(entry), "tool")).join(", ") || "none";
46147
+ const optional2 = asArray(skill.optional_tools).map((entry) => field(asRecord(entry), "tool")).join(", ") || "none";
46148
+ const files = asArray(skill.files).map((entry) => field(asRecord(entry), "path")).join(", ") || "SKILL.md";
46149
+ return [
46150
+ `# ${field(skill, "name")} (\`${field(skill, "slug")}\`)`,
46151
+ `${field(skill, "description")}`,
46152
+ `version: ${field(skill, "latest_version")} (${field(skill, "latest_version_id")})`,
46153
+ `required tools: ${required2}`,
46154
+ `optional tools: ${optional2}`,
46155
+ `files: SKILL.md${files === "SKILL.md" ? "" : `, ${files}`}`
46156
+ ].join("\n");
46157
+ }
46158
+ function formatAssignedSkills(output) {
46159
+ const record2 = asRecord(output);
46160
+ const assignments = asArray(record2.assignments);
46161
+ if (assignments.length === 0) {
46162
+ return `No assigned skills${record2.seat_id ? ` for seat ${field(record2, "seat_id")}` : ""}.`;
46163
+ }
46164
+ return [
46165
+ `# Assigned skills${record2.seat_id ? ` for ${field(record2, "seat_id")}` : ""}`,
46166
+ ...assignments.map((entry) => {
46167
+ const r = asRecord(entry);
46168
+ return `- \`${field(r, "slug")}\` v${field(r, "version")} \u2192 seat ${field(r, "seat_id")} (${field(r, "assignment_id")})
46169
+ ${field(r, "rationale")}`;
46170
+ })
46171
+ ].join("\n");
46172
+ }
46173
+ function formatDependencyCheck(output) {
46174
+ const record2 = asRecord(output);
46175
+ const render = (label, items) => {
46176
+ if (items.length === 0) {
46177
+ return `${label}: none`;
46178
+ }
46179
+ return [
46180
+ `${label}:`,
46181
+ ...items.map((entry) => {
46182
+ const r = asRecord(entry);
46183
+ return `- \`${field(r, "tool")}\` ${field(r, "status")} (needs ${field(r, "min_scope_tier")}, has ${field(r, "current_scope_tier")})`;
46184
+ })
46185
+ ].join("\n");
46186
+ };
46187
+ return [
46188
+ `Skill dependencies: ${field(record2, "status")}`,
46189
+ `skill_version_id: ${field(record2, "skill_version_id")}`,
46190
+ `seat_id: ${field(record2, "seat_id")}`,
46191
+ render("required", asArray(record2.required)),
46192
+ render("optional", asArray(record2.optional))
46193
+ ].join("\n");
46194
+ }
46195
+ var skillsWrapper = (context, args) => dispatch(context, "skills", args, {
46196
+ list: (ctx, rest) => {
46197
+ const parsed = parseFlags(rest, /* @__PURE__ */ new Set(["include-archived"]));
46198
+ const body = withOptional({}, {
46199
+ status: optionalValue(parsed, "status"),
46200
+ visibility: optionalValue(parsed, "visibility"),
46201
+ query: optionalValue(parsed, "query"),
46202
+ include_archived: parsed.flags.has("include-archived") ? true : void 0
46203
+ });
46204
+ return execute(ctx, parsed, "skill.list", body, formatSkillList);
46205
+ },
46206
+ get: (ctx, rest) => {
46207
+ const parsed = parseFlags(rest);
46208
+ return execute(ctx, parsed, "skill.get", { slug: requireValue2(parsed, "slug") }, formatSkillDetail);
46209
+ },
46210
+ file: (ctx, rest) => {
46211
+ const parsed = parseFlags(rest);
46212
+ const body = { slug: requireValue2(parsed, "slug"), path: requireValue2(parsed, "path") };
46213
+ return execute(ctx, parsed, "skill.file.get", body, (output) => field(asRecord(output), "content"));
46214
+ },
46215
+ assigned: (ctx, rest) => {
46216
+ const parsed = parseFlags(rest);
46217
+ const body = withOptional({}, { seat_id: optionalValue(parsed, "seat-id") });
46218
+ return execute(ctx, parsed, "skill.assigned.list", body, formatAssignedSkills);
46219
+ },
46220
+ "check-dependencies": (ctx, rest) => {
46221
+ const parsed = parseFlags(rest);
46222
+ const body = withOptional({ seat_id: requireValue2(parsed, "seat-id") }, {
46223
+ slug: optionalValue(parsed, "slug"),
46224
+ skill_version_id: optionalValue(parsed, "skill-version-id")
46225
+ });
46226
+ return execute(ctx, parsed, "skill.check_dependencies", body, formatDependencyCheck);
46227
+ }
46228
+ }, skillsUsage(context.binName));
46229
+ function skillsUsage(bin) {
46230
+ return `Usage: ${bin} skills list|get|file|assigned|check-dependencies [--json]
46231
+ ${bin} skills list [--status draft|pending_review|published|archived] [--visibility private|seat|tenant] [--query <text>]
46232
+ ${bin} skills get --slug <slug>
46233
+ ${bin} skills file --slug <slug> --path SKILL.md
46234
+ ${bin} skills assigned [--seat-id <id>] [--seat <id>]
46235
+ ${bin} skills check-dependencies --seat-id <id> (--slug <slug>|--skill-version-id <id>)`;
46236
+ }
46094
46237
  var modelWrapper = (context, args) => dispatch(context, "model", args, {
46095
46238
  list: (ctx, rest) => {
46096
46239
  const parsed = parseFlags(rest);
@@ -46165,6 +46308,7 @@ var OPERATION_GROUPS = [
46165
46308
  "member",
46166
46309
  "agent",
46167
46310
  "tools",
46311
+ "skills",
46168
46312
  "model",
46169
46313
  "compass",
46170
46314
  "charter"
@@ -46184,6 +46328,7 @@ var wrappers = {
46184
46328
  member: memberWrapper,
46185
46329
  agent: agentWrapper,
46186
46330
  tools: toolsWrapper,
46331
+ skills: skillsWrapper,
46187
46332
  model: modelWrapper,
46188
46333
  compass: compassWrapper,
46189
46334
  charter: charterWrapper
@@ -46206,6 +46351,7 @@ var groupUsageBuilders = {
46206
46351
  member: memberUsage,
46207
46352
  agent: agentUsage,
46208
46353
  tools: toolsUsage,
46354
+ skills: skillsUsage,
46209
46355
  model: modelUsage,
46210
46356
  compass: compassUsage,
46211
46357
  charter: charterUsage
@@ -46236,6 +46382,7 @@ function operationUsageLines(bin) {
46236
46382
  `${bin} member invite|update|remove`,
46237
46383
  `${bin} agent templates|create|setup|tools|dry-run|go-live|status|run-now|fleet-digest|get-run|show`,
46238
46384
  `${bin} tools list`,
46385
+ `${bin} skills list|get|file|assigned|check-dependencies`,
46239
46386
  `${bin} model list`,
46240
46387
  `${bin} compass show`,
46241
46388
  `${bin} charter show`