@rosthq/cli 0.7.121 → 0.7.122
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-manifest.d.ts","sourceRoot":"","sources":["../../src/generated/command-manifest.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,eAAO,MAAM,gBAAgB,EAAE,SAAS,oBAAoB,
|
|
1
|
+
{"version":3,"file":"command-manifest.d.ts","sourceRoot":"","sources":["../../src/generated/command-manifest.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,eAAO,MAAM,gBAAgB,EAAE,SAAS,oBAAoB,EAuS3D,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -36766,6 +36766,82 @@ var charterApproveInputSchema = external_exports.object({
|
|
|
36766
36766
|
message: "Provide seat_id or charter_version_id.",
|
|
36767
36767
|
path: ["seat_id"]
|
|
36768
36768
|
});
|
|
36769
|
+
var charterSignalDeclarationNameSchema = external_exports.string().trim().min(1).max(120);
|
|
36770
|
+
var charterSignalResolutionSchema = external_exports.discriminatedUnion("action", [
|
|
36771
|
+
external_exports.object({
|
|
36772
|
+
declaration_name: charterSignalDeclarationNameSchema,
|
|
36773
|
+
action: external_exports.literal("adopt_existing"),
|
|
36774
|
+
measurable_id: uuidSchema18
|
|
36775
|
+
}).strict(),
|
|
36776
|
+
external_exports.object({
|
|
36777
|
+
declaration_name: charterSignalDeclarationNameSchema,
|
|
36778
|
+
action: external_exports.literal("move_existing"),
|
|
36779
|
+
measurable_id: uuidSchema18
|
|
36780
|
+
}).strict(),
|
|
36781
|
+
external_exports.object({
|
|
36782
|
+
declaration_name: charterSignalDeclarationNameSchema,
|
|
36783
|
+
action: external_exports.literal("create_new")
|
|
36784
|
+
}).strict()
|
|
36785
|
+
]);
|
|
36786
|
+
var charterReconcileSignalsInputSchema = external_exports.object({
|
|
36787
|
+
charter_version_id: uuidSchema18,
|
|
36788
|
+
// The stale-draft guard: `charter_versions.edit_revision` starts at 1, so 0 is
|
|
36789
|
+
// never a real revision.
|
|
36790
|
+
expected_edit_revision: external_exports.number().int().min(1),
|
|
36791
|
+
signal_resolutions: external_exports.array(charterSignalResolutionSchema).min(1),
|
|
36792
|
+
apply_seat_type: external_exports.boolean().default(false)
|
|
36793
|
+
}).strict();
|
|
36794
|
+
var charterSignalGoalBindingSchema = external_exports.object({
|
|
36795
|
+
goal_id: uuidSchema18,
|
|
36796
|
+
goal_title: external_exports.string(),
|
|
36797
|
+
// Null for a company objective, which owns no Seat. A `drives_status` binding on a
|
|
36798
|
+
// seatless goal can never match a destination Seat, so movement fails closed.
|
|
36799
|
+
goal_seat_id: uuidSchema18.nullable(),
|
|
36800
|
+
role: external_exports.enum(["drives_status", "informs"])
|
|
36801
|
+
}).strict();
|
|
36802
|
+
var charterSignalCandidateSchema = external_exports.object({
|
|
36803
|
+
measurable_id: uuidSchema18,
|
|
36804
|
+
owner_seat_id: uuidSchema18,
|
|
36805
|
+
owner_seat_name: external_exports.string(),
|
|
36806
|
+
stored_source: external_exports.enum(["human", "agent", "integration"]),
|
|
36807
|
+
reading_count: external_exports.number().int().min(0),
|
|
36808
|
+
latest_reading: external_exports.object({
|
|
36809
|
+
value: external_exports.number(),
|
|
36810
|
+
period_start: external_exports.string(),
|
|
36811
|
+
confirmed: external_exports.boolean()
|
|
36812
|
+
}).strict().nullable(),
|
|
36813
|
+
goal_bindings: external_exports.array(charterSignalGoalBindingSchema),
|
|
36814
|
+
// Bindings in ANY status, draft included — "a connected source is bound", not "a source is
|
|
36815
|
+
// actively feeding it". The preview's warning copy is worded to match.
|
|
36816
|
+
source_binding_count: external_exports.number().int().min(0),
|
|
36817
|
+
// What choosing THIS candidate would cost or carry. Present on every candidate, including
|
|
36818
|
+
// each side of an ambiguous match, which is where the differences decide the answer.
|
|
36819
|
+
warnings: external_exports.array(external_exports.string())
|
|
36820
|
+
}).strict();
|
|
36821
|
+
var charterSignalReconciliationItemSchema = external_exports.object({
|
|
36822
|
+
declaration_name: external_exports.string(),
|
|
36823
|
+
status: external_exports.enum(["linked", "candidate", "ambiguous", "missing"]),
|
|
36824
|
+
linked_measurable_id: uuidSchema18.nullable(),
|
|
36825
|
+
candidates: external_exports.array(charterSignalCandidateSchema),
|
|
36826
|
+
// A DERIVED suggestion, never an applied one: `null` whenever a human must choose
|
|
36827
|
+
// (ambiguous), whenever nothing matches (missing), or when the declaration is already
|
|
36828
|
+
// linked. Approval still requires the explicit action.
|
|
36829
|
+
recommended_action: external_exports.enum(["adopt_existing", "move_existing"]).nullable(),
|
|
36830
|
+
// What this choice would cost or carry — a cadence the reading history locks, a
|
|
36831
|
+
// status-driving goal on another Seat that blocks a move. Empty when nothing is at risk.
|
|
36832
|
+
warnings: external_exports.array(external_exports.string())
|
|
36833
|
+
}).strict();
|
|
36834
|
+
var charterPreviewSignalReconciliationInputSchema = external_exports.object({
|
|
36835
|
+
charter_version_id: uuidSchema18
|
|
36836
|
+
}).strict();
|
|
36837
|
+
var charterPreviewSignalReconciliationOutputSchema = external_exports.object({
|
|
36838
|
+
charter_version_id: uuidSchema18,
|
|
36839
|
+
seat_id: uuidSchema18,
|
|
36840
|
+
// Pass this back as `expected_edit_revision` when reconciling, so a draft edited after
|
|
36841
|
+
// the preview cannot be reconciled against a stale reading of it.
|
|
36842
|
+
edit_revision: external_exports.number().int().min(1),
|
|
36843
|
+
items: external_exports.array(charterSignalReconciliationItemSchema)
|
|
36844
|
+
}).strict();
|
|
36769
36845
|
var charterDraftAllInputSchema = external_exports.object({}).strict();
|
|
36770
36846
|
var charterDraftSkipReasonSchema = external_exports.enum(["seat_not_active", "charter_exists"]);
|
|
36771
36847
|
var charterDraftAllOutputSchema = withCommandEffect({
|
|
@@ -52403,11 +52479,11 @@ When operating through CLI or MCP, create fewer seats first and ask for confirma
|
|
|
52403
52479
|
order: 30,
|
|
52404
52480
|
title: "Charter design playbook",
|
|
52405
52481
|
summary: "How to draft strong Charters that work for human, agent, and hybrid seats.",
|
|
52406
|
-
version: "2026-07-
|
|
52482
|
+
version: "2026-07-29.1",
|
|
52407
52483
|
public: true,
|
|
52408
52484
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
52409
52485
|
stages: ["charter_design", "staffing"],
|
|
52410
|
-
relatedCommandIds: ["charter.draft", "charter.draft_all", "charter.update_draft", "charter.approve", "charter.skip", "charter.apply_seat_type_recommendation", "charter.sign_manifest", "charter.list", "charter.get", "confirmation.approve"],
|
|
52486
|
+
relatedCommandIds: ["charter.draft", "charter.draft_all", "charter.update_draft", "charter.approve", "charter.preview_signal_reconciliation", "charter.reconcile_signals", "charter.skip", "charter.apply_seat_type_recommendation", "charter.sign_manifest", "charter.list", "charter.get", "confirmation.approve"],
|
|
52411
52487
|
legal: {
|
|
52412
52488
|
publicRisk: "low",
|
|
52413
52489
|
notes: [
|
|
@@ -52465,6 +52541,14 @@ In the app, \`/charters\` is both a drafting queue and a governance library. It
|
|
|
52465
52541
|
|
|
52466
52542
|
Daily and weekly measurable rows can carry Signal metadata: unit, numeric target, direction, cadence, and source. When a human approves a Charter, those structured measurables materialize into tenant Signal definitions for that seat. Free-text, monthly, and quarterly measurable prose remains accountability text until a human converts it into a supported structured Signal or creates the Signal separately.
|
|
52467
52543
|
|
|
52544
|
+
## When a declared Signal already exists
|
|
52545
|
+
|
|
52546
|
+
Preview first. Approval requires an explicit choice for a declaration that COLLIDES with an active exact-name Signal and is not already linked to one: adopt it if it is already owned by the Charter Seat, move it if another Seat owns it, or deliberately create a second Signal. A declaration nothing matches is created automatically, and one already linked to a Signal takes no choice. Adoption and movement preserve the Signal ID, readings, and compatible goal bindings.
|
|
52547
|
+
|
|
52548
|
+
\`charter.preview_signal_reconciliation\` is the owner-only dry run: per declaration it reports whether the declaration is already linked, which existing Signals match its name, who owns them, how much reading history and how many goal links they carry, the action that fits, and what that action would cost. \`charter.reconcile_signals\` then approves the Charter carrying one explicit decision per COLLIDING, UNLINKED declaration, and takes the \`edit_revision\` the preview returned so a draft edited in between is refused rather than reconciled against a stale reading.
|
|
52549
|
+
|
|
52550
|
+
Both commands are owner-only. Ordinary \`charter.approve\` stays seat-scoped and cannot take ownership of another Seat's Signal: when a declared name collides, it refuses and says an owner must decide. A Signal that already sets the status of a goal owned by another Seat cannot be moved until that goal's status driver is rebound \u2014 informative goal indicators survive a move.
|
|
52551
|
+
|
|
52468
52552
|
## When to stop for confirmation
|
|
52469
52553
|
|
|
52470
52554
|
\`charter.approve\`, \`charter.skip\`, \`charter.apply_seat_type_recommendation\`, and \`charter.sign_manifest\` are \`human_required\`. Over MCP \`rost_approve_charter\` returns a pending confirmation, not an activation. Approving a Charter, signing a permission manifest, or expanding authority is a human act recorded against \`decided_by\`. An agent prepares the draft and surfaces the approve link; it does not approve. See the confirmations guide.
|
|
@@ -53080,7 +53164,7 @@ External connectors are being rolled out provider by provider, conservatively (r
|
|
|
53080
53164
|
order: 48,
|
|
53081
53165
|
title: "CLI and MCP installation guide",
|
|
53082
53166
|
summary: "Install the public CLI, register remote token-backed MCP clients, and find the full command and tool catalog.",
|
|
53083
|
-
version: "2026-07-
|
|
53167
|
+
version: "2026-07-29.1",
|
|
53084
53168
|
public: true,
|
|
53085
53169
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
53086
53170
|
stages: ["company_setup", "staffing"],
|
|
@@ -53790,6 +53874,8 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
|
|
|
53790
53874
|
| \`rost_update_charter_draft\` | \`charter.update_draft\` | Update a draft Charter document. | Seat or tenant-admin | Call with \`charter_version_id\` and the full \`doc\`. |
|
|
53791
53875
|
| \`rost_set_charter\` | \`charter.set\` | Create or replace a seat's draft Charter from a full document in one call. | Seat or tenant-admin | Call with \`seat_id\` and \`doc\`; \`approve\` activates it (human gate). |
|
|
53792
53876
|
| \`rost_approve_charter\` | \`charter.approve\` | Approve a draft Charter as a human owner. | Seat or tenant-admin | Expect confirmation when authority changes. |
|
|
53877
|
+
| \`rost_preview_charter_signal_reconciliation\` | \`charter.preview_signal_reconciliation\` | Owner-only dry run of how a draft Charter's declared Signals resolve against the Signals the company already tracks. | Tenant-admin | Call with \`charter_version_id\`; reads only, and returns the \`edit_revision\` to reconcile with. |
|
|
53878
|
+
| \`rost_reconcile_charter_signals\` | \`charter.reconcile_signals\` | Owner-only Charter approval carrying an explicit adopt / move / create decision per colliding Signal declaration. | Tenant-admin | Preview first; pass its \`edit_revision\` and one resolution per colliding, unlinked declaration. |
|
|
53793
53879
|
| \`rost_skip_charter_draft\` | \`charter.skip\` | Mark a Charter draft as skipped. | Seat or tenant-admin | Call only when a human defers the seat. |
|
|
53794
53880
|
| \`rost_apply_charter_seat_type_recommendation\` | \`charter.apply_seat_type_recommendation\` | Apply a Charter's seat-type recommendation. | Seat or tenant-admin | Call after reviewing the draft. |
|
|
53795
53881
|
| \`rost_sign_charter_manifest\` | \`charter.sign_manifest\` | Request human confirmation for a permission manifest. | Seat or tenant-admin | Use after tool permissions are reviewed. |
|
|
@@ -58233,6 +58319,8 @@ var COMMAND_MANIFEST = [
|
|
|
58233
58319
|
{ "id": "charter.draft_all", "namespace": "charter", "action": "draft_all", "title": "Draft all charters", "description": "Draft Charters for every eligible seat in a tenant.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "Draft Charters in onboarding order after the Responsibility Graph has enough seat clarity.", "example": {} },
|
|
58234
58320
|
{ "id": "charter.get", "namespace": "charter", "action": "get", "title": "Get Charter", "description": "Return a Charter version with its supersession history and latest dry-run status.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "charter_version_id", "flag": "charter-version-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Read a Charter with its supersession history and dry-run status before approving or signing a manifest." },
|
|
58235
58321
|
{ "id": "charter.list", "namespace": "charter", "action": "list", "title": "List Charters", "description": "List Charter versions in the tenant, optionally filtered by seat or status.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": false }, { "name": "status", "flag": "status", "type": "enum", "required": false, "enumValues": ["draft", "active", "superseded"] }], "hasComplexInput": false, "help": "List Charter versions to find the right draft or active version id before reading or amending it." },
|
|
58322
|
+
{ "id": "charter.preview_signal_reconciliation", "namespace": "charter", "action": "preview_signal_reconciliation", "title": "Preview Charter Signal reconciliation", "description": "Owner-only dry run: for each Signal a draft Charter declares, show whether it is already linked, which existing Signals match its name, who owns them, how much reading history and how many goal links they carry, the action that fits, and what it would cost. Reads only \u2014 nothing is changed. Approval needs an explicit choice only for a declaration that COLLIDES with an existing Signal and is not already linked: a declaration nothing matches is created automatically, and one already linked to a Signal takes no choice.", "requiredScope": "tenant_admin", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "charter_version_id", "flag": "charter-version-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Preview first. Approval requires an explicit choice when an exact-name active Signal exists: adopt it if it is already owned by the Charter Seat, move it if another Seat owns it, or deliberately create a second Signal. Adoption and movement preserve the Signal ID, readings, and compatible goal bindings." },
|
|
58323
|
+
{ "id": "charter.reconcile_signals", "namespace": "charter", "action": "reconcile_signals", "title": "Reconcile Charter Signals", "description": "Owner-only: approve a draft Charter with an explicit decision for each declared Signal that collides with one the company already tracks and is not already linked to one \u2014 adopt the existing Signal when this Seat owns it, move it to this Seat, or deliberately create a second one. Adoption and movement keep the Signal's id, its readings, and its compatible goal links. Preview first, and pass that preview's edit_revision.", "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "charter_version_id", "flag": "charter-version-id", "type": "string", "required": true }, { "name": "expected_edit_revision", "flag": "expected-edit-revision", "type": "integer", "required": true }, { "name": "apply_seat_type", "flag": "apply-seat-type", "type": "boolean", "required": false }], "hasComplexInput": true, "help": "Owner-only Charter approval carrying one explicit decision per COLLIDING, UNLINKED Signal declaration \u2014 a declaration nothing matches is created automatically, and an already-linked one takes no choice. Take the preview first and pass its edit_revision; adoption and movement keep the Signal's id, readings, and compatible goal bindings, and a cross-Seat status driver blocks a move." },
|
|
58236
58324
|
{ "id": "charter.set", "namespace": "charter", "action": "set", "title": "Set charter", "description": "Create or replace a seat's draft Charter from a full document in one call; approve activates it as a human owner.", "requiredScope": "seat", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "approve", "flag": "approve", "type": "boolean", "required": false }], "hasComplexInput": true, "help": "Create or replace a seat's draft Charter from a full document in one call; read the charter authoring deep-dive first. Approving activates the seat's contract and is a human decision.", "example": { "seat_id": "0190aaaa-aaaa-7aaa-8aaa-aaaaaaaaaaaa", "doc": { "payload_version": 1, "purpose": "AP intake clerk: draft accounts-payable invoice entries from inbound vendor emails for human review.", "accountabilities": [{ "title": "Draft every inbound invoice", "description": "Convert each inbound vendor invoice into a draft AP entry with the correct vendor, amount, and GL coding within one business day." }, { "title": "Flag discrepancies", "description": "Surface duplicate, mismatched, or out-of-policy invoices as Friction issues instead of drafting them silently." }], "decision_authority": { "autonomous": [{ "action": "Draft AP entries and propose GL coding from inbound invoices", "condition": "Allowed when the vendor is known and the amount is within the standard purchase range.", "rationale": "Drafting is reversible and reviewed by a human before posting.", "unanswered_boundary": false }], "approval": [{ "action": "Post an invoice or send any vendor-facing message", "condition": "Require explicit human approval before posting or sending.", "rationale": "Posting and sending are durable, money-moving actions.", "unanswered_boundary": false }], "escalate": [{ "action": "Unknown vendor, payment over the approval threshold, or a suspected duplicate", "condition": "Always escalate to the Steward before acting.", "rationale": "Conservative default for ambiguous, irreversible, or financial exposure.", "unanswered_boundary": true }] }, "escalation_rules": ["Escalate any invoice over $5,000 or from a vendor not already in the ledger.", "Escalate when an invoice appears to duplicate one already drafted or posted."], "measurables": [{ "name": "Invoices drafted within one business day", "target": "100%", "cadence": "weekly", "source": "agent" }, { "name": "Discrepancies caught before posting", "target": "\u2265 95%", "cadence": "monthly", "source": "human" }], "permission_manifest": [{ "tool": "ap.invoices.read", "scope": "Read inbound invoices and the vendor ledger.", "granted": true, "rationale": "Needed to draft entries from source invoices." }, { "tool": "email.draft", "scope": "Draft vendor replies for human review; never send.", "granted": true, "rationale": "Lets the seat prepare clarifications without taking a send action." }], "budget": { "monthly_usd": null, "approval_required_over_usd": 0, "notes": "No autonomous spend; any spend requires Steward approval until a budget is set." }, "unanswered_boundaries": ["Approval threshold for auto-posting", "Vendor onboarding authority"], "seat_type_recommendation": { "recommendation": "agent", "rationale": "The work is high-volume, rule-bound, and fully reviewable, which suits a draft-and-confirm agent under a human Steward.", "confidence": 0.8 } }, "approve": false } },
|
|
58237
58325
|
{ "id": "charter.show_markdown", "namespace": "charter", "action": "show_markdown", "title": "Show Charter as markdown", "description": "Compose a seat's active or latest Charter into a clean, human-skimmable markdown card for review.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Render a seat's active or latest Charter as a clean markdown card to show your human a quick review." },
|
|
58238
58326
|
{ "id": "charter.sign_manifest", "namespace": "charter", "action": "sign_manifest", "title": "Sign charter manifest", "description": "Request human confirmation for a Charter permission manifest.", "requiredScope": "seat", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "charter_version_id", "flag": "charter-version-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Sign tool manifests only when the Charter explains why the tool is needed and how it is bounded." },
|