@rosthq/cli 0.5.1 → 0.5.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 +15 -13
- package/dist/index.js.map +2 -2
- package/dist/redact.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -27775,7 +27775,7 @@ function date4(params) {
|
|
|
27775
27775
|
config(en_default());
|
|
27776
27776
|
|
|
27777
27777
|
// src/redact.ts
|
|
27778
|
-
var KEYED_SECRET_PATTERN = /((?:authorization|token|secret|password|api[_-]?key|connection[_-]?string|database[_-]?url)["'
|
|
27778
|
+
var KEYED_SECRET_PATTERN = /((?:authorization|token|secret|password|api[_-]?key|connection[_-]?string|database[_-]?url)["']?\s*[:=]\s*["']?)([^\s"',}]+)/gi;
|
|
27779
27779
|
function redactSecrets(value) {
|
|
27780
27780
|
return value.replace(/(Bearer\s+)([A-Za-z0-9._~+/=-]+)/gi, "$1[redacted]").replace(KEYED_SECRET_PATTERN, "$1[redacted]").replace(/([a-z][a-z0-9+.-]*:\/\/[^:@/\s]+:)([^@/\s]+)(@)/gi, "$1[redacted]$3");
|
|
27781
27781
|
}
|
|
@@ -42110,11 +42110,13 @@ Agents can recommend, draft, prepare, check, classify, summarize, and execute ap
|
|
|
42110
42110
|
A seat-scoped MCP token or the CLI runs the hand-shaped protocol. The server still checks the seat's manifest, Charter, task ownership, and tenant boundary.
|
|
42111
42111
|
|
|
42112
42112
|
1. Context: \`rost_get_context\` (or read \`rost://seat/<seat-id>/context\`) \u2014 Charter, Compass, goals, open tasks, open issues, protocol.
|
|
42113
|
-
2. Tasks: \`rost_get_tasks\` / \`{{cli}} task list
|
|
42114
|
-
3. Report: \`rost_report_status\` / \`{{cli}} status record
|
|
42115
|
-
4. Finish: \`rost_complete_task\` / \`{{cli}} task complete
|
|
42113
|
+
2. Tasks: \`rost_get_tasks\` / \`{{cli}} task list --seat <seat-id>\`, then \`rost_accept_task\` / \`rost_decline_task\` (with a \`reason\`).
|
|
42114
|
+
3. Report: \`rost_report_status\` / \`{{cli}} status record --seat <seat-id>\` as work progresses; \`rost_log_work\` to record evidence.
|
|
42115
|
+
4. Finish: \`rost_complete_task\` / \`{{cli}} task complete --seat <seat-id>\` with evidence.
|
|
42116
42116
|
5. Surface problems: \`rost_file_issue\` (Friction) and \`rost_escalate\` when the work exceeds autonomous scope.
|
|
42117
42117
|
|
|
42118
|
+
A seat-scoped MCP token already carries the seat, so its tools (\`rost_get_tasks\`, \u2026) need no seat argument. A tenant or owner CLI **session** does not, so pass \`--seat <seat-id>\` on seat-operating wrappers (an owner can target any seat in the tenant; a member only a seat they occupy). See "Seat scope" below.
|
|
42119
|
+
|
|
42118
42120
|
\`task.accept\`, \`task.decline\`, and \`task.complete\` are \`human_required\` for the acting human on the seat; \`status.record\`, \`work.log\`, and \`escalation.raise\` are not gated. An agent never approves a confirmation on behalf of a human.
|
|
42119
42121
|
|
|
42120
42122
|
## What humans should review
|
|
@@ -43706,7 +43708,7 @@ A consultancy's purpose might be "Make expert tax guidance affordable for first-
|
|
|
43706
43708
|
],
|
|
43707
43709
|
body: `# Charter authoring deep-dive
|
|
43708
43710
|
|
|
43709
|
-
A Charter is a seat's executable operating contract. On the CLI and MCP path you author the **full document** and submit it directly with \`charter.update_draft\` (edit an existing draft) or \`charter.set\` (create-or-replace in one call). The server validates the whole document against the Charter schema and stores it; it does not re-synthesize it. Read the exact contract first with \`command.describe\` (\`{{cli}} command schema charter.update_draft\`), which returns the JSON Schema and a validated worked example. The companion charter-design-playbook covers the narrative; this guide covers every field of the document.
|
|
43711
|
+
A Charter is a seat's executable operating contract. On the CLI and MCP path you author the **full document** and submit it directly with \`charter.update_draft\` (edit an existing draft) or \`charter.set\` (create-or-replace in one call). The server validates the whole document against the Charter schema and stores it; it does not re-synthesize it. Two internal-ish fields (\`unanswered_boundaries\`, \`seat_type_recommendation\`) are optional \u2014 omit them and the server fills them conservatively; everything else you author. Read the exact contract first with \`command.describe\` (\`{{cli}} command schema charter.update_draft\`), which returns the JSON Schema and a validated worked example. The companion charter-design-playbook covers the narrative; this guide covers every field of the document.
|
|
43710
43712
|
|
|
43711
43713
|
## Field-by-field
|
|
43712
43714
|
|
|
@@ -43720,8 +43722,8 @@ A Charter is a seat's executable operating contract. On the CLI and MCP path you
|
|
|
43720
43722
|
- **measurables** (1+) \u2014 each \`{ name, target, cadence, source }\`. A measurable must measure the accountability, not vanity. \`cadence\` is \`daily|weekly|monthly|quarterly\`; \`source\` is \`human|agent|integration\`. Agent-sourced readings are unconfirmed until a human confirms them.
|
|
43721
43723
|
- **permission_manifest** \u2014 each \`{ tool, scope, granted, rationale }\`. Map each accountability to the narrowest tool scope that performs it. Prefer draft/read scopes; a send or spend scope is a deliberate, justified grant. The manifest is what the tool-guard enforces and what a human signs.
|
|
43722
43724
|
- **budget** \u2014 \`{ monthly_usd, approval_required_over_usd, notes }\`. \`monthly_usd\` may be \`null\` (no autonomous budget). \`approval_required_over_usd: 0\` means any spend needs approval. State the rule in \`notes\`.
|
|
43723
|
-
- **unanswered_boundaries** \u2014 the open questions about this seat's authority you have not resolved. Naming them keeps them conservative instead of silently autonomous.
|
|
43724
|
-
- **seat_type_recommendation** \u2014 \`{ recommendation, rationale, confidence }\` where recommendation is \`human|agent|hybrid\`. Reason from the work: high-volume, rule-bound, reviewable work suits an agent under a Steward; judgment-heavy or relationship work stays human; split work is hybrid.
|
|
43725
|
+
- **unanswered_boundaries** (optional) \u2014 the open questions about this seat's authority you have not resolved. Naming them keeps them conservative instead of silently autonomous. **You may omit this field**; the server defaults it to \`[]\` (and still records any boundary you flag inline via \`unanswered_boundary: true\` on an authority item).
|
|
43726
|
+
- **seat_type_recommendation** (optional) \u2014 \`{ recommendation, rationale, confidence }\` where recommendation is \`human|agent|hybrid\`. Reason from the work: high-volume, rule-bound, reviewable work suits an agent under a Steward; judgment-heavy or relationship work stays human; split work is hybrid. **You may omit this field**; the server defaults conservatively to \`human\` until a human decides otherwise. Supply it when you have a clear recommendation.
|
|
43725
43727
|
|
|
43726
43728
|
## The full JSON shape
|
|
43727
43729
|
|
|
@@ -43752,17 +43754,17 @@ A Charter is a seat's executable operating contract. On the CLI and MCP path you
|
|
|
43752
43754
|
"permission_manifest": [
|
|
43753
43755
|
{ "tool": "ap.invoices.read", "scope": "Read inbound invoices and the vendor ledger.", "granted": true, "rationale": "Needed to draft entries from source invoices." }
|
|
43754
43756
|
],
|
|
43755
|
-
"budget": { "monthly_usd": null, "approval_required_over_usd": 0, "notes": "No autonomous spend; any spend requires Steward approval until a budget is set." }
|
|
43756
|
-
"unanswered_boundaries": ["Approval threshold for auto-posting"],
|
|
43757
|
-
"seat_type_recommendation": { "recommendation": "agent", "rationale": "High-volume, rule-bound, fully reviewable work suits a draft-and-confirm agent under a human Steward.", "confidence": 0.8 }
|
|
43757
|
+
"budget": { "monthly_usd": null, "approval_required_over_usd": 0, "notes": "No autonomous spend; any spend requires Steward approval until a budget is set." }
|
|
43758
43758
|
}
|
|
43759
43759
|
\`\`\`
|
|
43760
43760
|
|
|
43761
|
+
This worked document **omits** \`unanswered_boundaries\` and \`seat_type_recommendation\` \u2014 both are optional. The server fills them conservatively on submit (\`unanswered_boundaries\` defaults to \`[]\`, picking up anything you flagged inline with \`unanswered_boundary: true\`; \`seat_type_recommendation\` defaults to \`human\`). Supply either field when you have a concrete value and it is respected as-is. Everything else is required.
|
|
43762
|
+
|
|
43761
43763
|
## Three worked seats
|
|
43762
43764
|
|
|
43763
|
-
- **Human seat (Head of Sales).** Purpose centers on judgment and relationships. Almost everything is autonomous within budget; approval covers discounts past a threshold; escalate covers contract terms outside policy. Measurables are human-sourced (pipeline, close rate). \`seat_type_recommendation
|
|
43764
|
-
- **Agent seat (AP intake clerk).** The example above. Tight autonomous scope (draft only), approval for posting/sending, escalation for unknown vendors and large amounts, an explicit draft-only permission manifest, and \`approval_required_over_usd: 0\`. \`seat_type_recommendation\` is
|
|
43765
|
-
- **Hybrid seat (Customer success).** Split the work: the agent drafts renewal summaries and flags at-risk accounts autonomously; the human owns the renewal conversation and any concession. Approval covers anything customer-facing being sent; escalate covers churn risk and credits. \`seat_type_recommendation\`
|
|
43765
|
+
- **Human seat (Head of Sales).** Purpose centers on judgment and relationships. Almost everything is autonomous within budget; approval covers discounts past a threshold; escalate covers contract terms outside policy. Measurables are human-sourced (pipeline, close rate). Supply \`seat_type_recommendation: { "recommendation": "human", \u2026 }\`, or omit it \u2014 the server defaults to \`human\`.
|
|
43766
|
+
- **Agent seat (AP intake clerk).** The example above. Tight autonomous scope (draft only), approval for posting/sending, escalation for unknown vendors and large amounts, an explicit draft-only permission manifest, and \`approval_required_over_usd: 0\`. Supply \`seat_type_recommendation: { "recommendation": "agent", \u2026 }\` so the seat is recommended as an agent under a human Steward.
|
|
43767
|
+
- **Hybrid seat (Customer success).** Split the work: the agent drafts renewal summaries and flags at-risk accounts autonomously; the human owns the renewal conversation and any concession. Approval covers anything customer-facing being sent; escalate covers churn risk and credits. Supply \`seat_type_recommendation\` as \`hybrid\` with a rationale naming the handoff.
|
|
43766
43768
|
|
|
43767
43769
|
## Authoring workflow and the human gate
|
|
43768
43770
|
|