@rosthq/cli 0.7.19 → 0.7.20
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,EAqN3D,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -37741,7 +37741,7 @@ var dryRunTranscriptSchema = external_exports.object({
|
|
|
37741
37741
|
}).strict();
|
|
37742
37742
|
|
|
37743
37743
|
// ../../packages/protocol/src/scrub.ts
|
|
37744
|
-
var SECRET_SHAPED_VALUE = /(sk-ant-|sk-proj-|sk-live-|BEGIN [A-Z ]*PRIVATE KEY|api[_-]?key\s*=|secret\s*=|password\s*=|authorization:\s*bearer\s+|x-api-key\s*:|api[-_ ]?key\s*:\s*\S{3,}|secret\s*:\s*\S{3,}|password\s*:\s*\S{3,}|token\s*:\s*\S{3,})/i;
|
|
37744
|
+
var SECRET_SHAPED_VALUE = /(sk-ant-|sk-proj-|sk-live-|sk-[A-Za-z0-9_-]{12,}|ghp_[A-Za-z0-9_]{12,}|github_pat_[A-Za-z0-9_]{20,}|xox[baprs]-[A-Za-z0-9-]{10,}|BEGIN [A-Z ]*PRIVATE KEY|api[_-]?key\s*=|secret\s*=|password\s*=|authorization:\s*bearer\s+|x-api-key\s*:|api[-_ ]?key\s*:\s*\S{3,}|secret\s*:\s*\S{3,}|password\s*:\s*\S{3,}|token\s*:\s*\S{3,})/i;
|
|
37745
37745
|
var SECRET_KEY = /(api[_-]?key|secret|password|token|authorization|credential|private[_-]?key)/i;
|
|
37746
37746
|
function hasSecretShapedContent(value) {
|
|
37747
37747
|
if (typeof value === "string") {
|
|
@@ -38926,6 +38926,11 @@ var aicosTurnRequestSchema = external_exports.object({
|
|
|
38926
38926
|
routeContext: aicosRouteContextSchema,
|
|
38927
38927
|
model: aicosModelRequestSchema.optional()
|
|
38928
38928
|
}).strict();
|
|
38929
|
+
var aicosNavigationTargetSchema = external_exports.object({
|
|
38930
|
+
href: external_exports.string().trim().min(1).max(500),
|
|
38931
|
+
label: external_exports.string().trim().min(1).max(180),
|
|
38932
|
+
consentRequired: external_exports.literal(true)
|
|
38933
|
+
}).strict();
|
|
38929
38934
|
var aicosTurnResultSchema = external_exports.object({
|
|
38930
38935
|
session: aicosSessionSchema,
|
|
38931
38936
|
messages: external_exports.array(aicosMessageSchema),
|
|
@@ -38933,6 +38938,7 @@ var aicosTurnResultSchema = external_exports.object({
|
|
|
38933
38938
|
executionBackend: aicosLaneSchema,
|
|
38934
38939
|
status: aicosTurnStatusSchema,
|
|
38935
38940
|
pendingTurn: aicosPendingTurnSchema.nullable().default(null),
|
|
38941
|
+
navigation: aicosNavigationTargetSchema.nullable().default(null),
|
|
38936
38942
|
userVisibleNextStep: external_exports.string().min(1),
|
|
38937
38943
|
capabilitySnapshot: aicosCapabilitySnapshotSchema,
|
|
38938
38944
|
context: aicosContextSummarySchema.optional()
|
|
@@ -42216,19 +42222,35 @@ var softwareProjectSummarySchema = external_exports.object({
|
|
|
42216
42222
|
base_branch: external_exports.string().min(1),
|
|
42217
42223
|
repo_ref: external_exports.string().nullable()
|
|
42218
42224
|
});
|
|
42225
|
+
var softwareProjectCreateInputSchema = external_exports.object({
|
|
42226
|
+
name: external_exports.string().trim().min(1).max(200).refine((value) => !hasSecretShapedValue(value), {
|
|
42227
|
+
message: "project name must not contain raw secret material"
|
|
42228
|
+
}),
|
|
42229
|
+
slug: external_exports.string().trim().regex(/^[a-z0-9][a-z0-9-]{0,62}$/).refine((value) => !hasSecretShapedValue(value), {
|
|
42230
|
+
message: "slug must not contain raw secret material"
|
|
42231
|
+
}).optional(),
|
|
42232
|
+
base_branch: external_exports.string().trim().min(1).max(255).refine((value) => !hasSecretShapedValue(value), {
|
|
42233
|
+
message: "base_branch must not contain raw secret material"
|
|
42234
|
+
}).default("main"),
|
|
42235
|
+
repo_ref: external_exports.string().trim().min(1).max(255).refine((value) => !hasSecretShapedValue(value), {
|
|
42236
|
+
message: "repo_ref must be repository metadata, never raw secret material"
|
|
42237
|
+
}).optional()
|
|
42238
|
+
}).strict();
|
|
42239
|
+
var softwareProjectCreateOutputSchema = external_exports.object({
|
|
42240
|
+
project: softwareProjectSummarySchema
|
|
42241
|
+
});
|
|
42219
42242
|
var softwareProjectListInputSchema = external_exports.object({}).strict();
|
|
42220
42243
|
var softwareProjectListOutputSchema = external_exports.object({
|
|
42221
42244
|
projects: external_exports.array(softwareProjectSummarySchema)
|
|
42222
42245
|
});
|
|
42223
42246
|
var VAULT_REF_PROVIDER = /^(?:infisical|doppler|local-dev):\/\/\S+$/;
|
|
42224
|
-
var
|
|
42225
|
-
var softwareVaultRefSchema = external_exports.string().min(1).max(500).regex(VAULT_REF_PROVIDER, "vault_ref must be a provider URI, e.g. infisical://path, doppler://path, or local-dev://path").refine((value) => !RAW_SECRET_SUBSTRING.test(value), {
|
|
42247
|
+
var softwareVaultRefSchema = external_exports.string().min(1).max(500).regex(VAULT_REF_PROVIDER, "vault_ref must be a provider URI, e.g. infisical://path, doppler://path, or local-dev://path").refine((value) => !hasSecretShapedValue(value), {
|
|
42226
42248
|
message: "vault_ref must be a pointer, never raw secret material"
|
|
42227
42249
|
});
|
|
42228
|
-
var softwareSecretKeyNameSchema = external_exports.string().trim().min(1).max(200).refine((value) => !
|
|
42250
|
+
var softwareSecretKeyNameSchema = external_exports.string().trim().min(1).max(200).refine((value) => !hasSecretShapedValue(value), {
|
|
42229
42251
|
message: "key_name must be a config key name, never raw secret material"
|
|
42230
42252
|
});
|
|
42231
|
-
var softwareSecretActionSchema = external_exports.string().trim().min(1).max(120).refine((value) => !
|
|
42253
|
+
var softwareSecretActionSchema = external_exports.string().trim().min(1).max(120).refine((value) => !hasSecretShapedValue(value), {
|
|
42232
42254
|
message: "action must be an action verb, never raw secret material"
|
|
42233
42255
|
});
|
|
42234
42256
|
var softwareTerminationBoundSchema = external_exports.object({
|
|
@@ -42470,7 +42492,7 @@ var softwareConfigSetInputSchema = external_exports.object({
|
|
|
42470
42492
|
if (!value.plain_value || value.vault_ref !== void 0) {
|
|
42471
42493
|
context.addIssue({ code: "custom", message: "plain config requires plain_value and no vault_ref" });
|
|
42472
42494
|
}
|
|
42473
|
-
if (value.plain_value &&
|
|
42495
|
+
if (value.plain_value && hasSecretShapedValue(value.plain_value)) {
|
|
42474
42496
|
context.addIssue({ code: "custom", message: "plain_value must never contain secret material" });
|
|
42475
42497
|
}
|
|
42476
42498
|
}
|
|
@@ -43511,7 +43533,7 @@ The Compass is drafted, then activated by a human through supersession.
|
|
|
43511
43533
|
order: 15,
|
|
43512
43534
|
title: "AICOS chat guide",
|
|
43513
43535
|
summary: "How the AI Chief of Staff chat works in the authenticated app shell and what it can safely do today.",
|
|
43514
|
-
version: "2026-07-04.
|
|
43536
|
+
version: "2026-07-04.10",
|
|
43515
43537
|
public: true,
|
|
43516
43538
|
audiences: ["human", "in_app_agent"],
|
|
43517
43539
|
stages: ["company_setup", "operating_rhythm"],
|
|
@@ -43569,7 +43591,9 @@ AICOS also has an explicit brain selection. Cloud can use the included managed a
|
|
|
43569
43591
|
|
|
43570
43592
|
Runner mode uses the same AICOS sessions and transcript. Interactive chat turns are tracked separately from scheduled work orders: each user message has one user-owned turn execution with a short deadline, so two users' chat messages cannot collapse into the same scheduled-work slot. Scheduled and Forge runner work still use work orders. Runner claim packets carry ids and execution metadata, not the user's free-text request. After claim, the local runner calls the governed AICOS context-load tool, which re-checks seat scope and returns the bounded transcript, session summary, route context, tenant clock, grounding text, and source counts authorized for that turn. The runner treats that loaded tenant clock and context as authoritative instead of substituting its own runtime clock or local files. A runner must be paired, execute-ready, and backed by the live AICOS agent before it can be selected.
|
|
43571
43593
|
|
|
43572
|
-
When a runner claims an interactive AICOS turn, the runner reports start and final result back to {{brand}}. The server appends exactly one assistant transcript message for the result, links that message to run evidence, and treats duplicate or late result reports as idempotent. If a queued, claimed, or running interactive turn passes its short deadline before a runner writes back, the turn is marked offline and the transcript receives a terminal assistant message instead of leaving a permanent "queued" placeholder.
|
|
43594
|
+
When a runner claims an interactive AICOS turn, the runner reports start and final result back to {{brand}}. The server appends exactly one assistant transcript message for the result, links that message to run evidence, and treats duplicate or late result reports as idempotent. If the runner answer includes a validated in-app link, the web panel can surface the same consent-required navigation suggestion once polling sees that the pending turn is terminal. If a queued, claimed, or running interactive turn passes its short deadline before a runner writes back, the turn is marked offline and the transcript receives a terminal assistant message instead of leaving a permanent "queued" placeholder.
|
|
43595
|
+
|
|
43596
|
+
While a runner turn is queued, claimed, or running, the chat panel keeps showing the pending state and polls the session until the answer or terminal status arrives. The composer, model picker, and lane picker are disabled during that active turn so a second browser tab or direct API call cannot overlap another runner turn in the same thread. Terminal runner statuses such as failed, offline, or canceled stay visible only while they are still the latest user turn; if the user continues the conversation in another lane, the stale terminal marker is no longer projected at the bottom of the thread.
|
|
43573
43597
|
|
|
43574
43598
|
MCP mode uses the existing tenant-authorized MCP surfaces. It requires an active seat-scoped MCP token for the AICOS seat and does not grant hidden tenant-admin access or run browser-side MCP tool calls. Users operate MCP AICOS from their authorized agent interface; the web chat remains the same readable thread surface.
|
|
43575
43599
|
|
|
@@ -44392,7 +44416,7 @@ External connectors are being rolled out provider by provider, conservatively (r
|
|
|
44392
44416
|
order: 48,
|
|
44393
44417
|
title: "CLI and MCP installation guide",
|
|
44394
44418
|
summary: "Install the public CLI, register remote token-backed MCP clients, and find the full command and tool catalog.",
|
|
44395
|
-
version: "2026-07-
|
|
44419
|
+
version: "2026-07-04.1",
|
|
44396
44420
|
public: true,
|
|
44397
44421
|
audiences: ["human", "cli", "mcp", "in_app_agent"],
|
|
44398
44422
|
stages: ["company_setup", "staffing"],
|
|
@@ -44869,6 +44893,7 @@ The signed-in app exposes the same Skill command surface under **Skills** in the
|
|
|
44869
44893
|
| \`{{cli}} deliverable list|get|create|attach\` | \`deliverable.list\`, \`deliverable.get\`, \`deliverable.create\`, \`deliverable.attach\` | List, get, create, or attach agent deliverables for a seat. Deliverables are durable work outputs visible across UI, CLI, and MCP. | Tenant (list/get), Seat (create/attach) | \`{{cli}} deliverable list --seat-id <id> --json\`; \`{{cli}} deliverable create --title "Brief" --kind brief\` |
|
|
44870
44894
|
| \`{{cli}} graph show\` | \`graph.get\` | Print a table view of the Responsibility Graph with explicit \`seat_id\` and \`parent_seat_id\` columns. | Tenant | \`{{cli}} graph show\` |
|
|
44871
44895
|
| \`{{cli}} seat list|get|create|rename|reparent|decommission\` | \`graph.get\`, \`seat.get\`, \`seat.create\`, \`seat.rename\`, \`seat.reparent\`, \`seat.decommission\`, \`seat.decommission_preview\` | Work with seats as first-class CLI primitives. \`seat decommission --dry-run\` previews affected occupancies, agents, Charters, tokens, credentials, work orders, and schedules before the human-gated teardown. | Tenant / Seat for targeted mutations | \`{{cli}} seat list\`; \`{{cli}} seat decommission --seat-id <id> --dry-run\` |
|
|
44896
|
+
| \`{{cli}} forge project-create|project-list|request-create|request-list|request-show\` | \`software_factory.project.create\`, \`software_factory.project.list\`, \`software_factory.request.create\`, \`software_factory.request.list\`, \`software_factory.request.show\` | Create/list Forge projects and open/read governed Forge build requests. Project creation is tenant-admin, entitlement-gated, and human-gated; reads and request creation require the Forge add-on. | Tenant / Tenant-admin for create | \`{{cli}} forge project-create --name "Leiluna app" --base-branch main\`; \`{{cli}} forge request-create --software-project-id <id> --title "Add invoice export"\` |
|
|
44872
44897
|
|
|
44873
44898
|
Skills wrapper help:
|
|
44874
44899
|
|
|
@@ -45108,6 +45133,7 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
|
|
|
45108
45133
|
| \`rost_assign_skill_to_seat\` | \`skill.assign_to_seat\` | Propose or human-approve a published Skill version for a Seat after dependency checks. Missing required tools block approval; optional tools warn. | Tenant-admin | Call with \`{"seat_id":"<seat-id>","slug":"invoice-review","status":"proposed","rationale":"Use for AP exception work."}\`. |
|
|
45109
45134
|
| \`rost_revoke_skill_from_seat\` | \`skill.revoke_from_seat\` | Human-gated revocation that stops future Skill use without deleting historical activations. | Tenant-admin | Call with \`{"assignment_id":"<assignment-id>"}\`; non-interactive callers receive a confirmation handoff. |
|
|
45110
45135
|
| \`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 \`{}\`. |
|
|
45136
|
+
| \`rost_create_a_forge_project\` | \`software_factory.project.create\` | Create an active Forge software project before binding repositories or opening build requests. Tenant-admin, human-gated, and entitlement-gated. | Tenant-admin | Call with \`{"name":"Leiluna app","slug":"leiluna-app","base_branch":"main"}\`; non-interactive callers receive a confirmation handoff. |
|
|
45111
45137
|
| \`rost_create_a_forge_build_request\` | \`software_factory.request.create\` | Open a governed Forge build request against a connected software project; records the request plus its initial intake phase run. Requires the Forge add-on; the title is untrusted display text. | Tenant | Call with \`{"software_project_id":"<project-id>","title":"Add invoice export"}\`. |
|
|
45112
45138
|
| \`rost_list_forge_projects\` | \`software_factory.project.list\` | List active Forge software projects so a tenant can choose a project for build requests, GitHub repository bindings, and config. | Tenant | Call with \`{}\`; use the returned \`id\` as \`software_project_id\`. |
|
|
45113
45139
|
| \`rost_list_forge_build_requests\` | \`software_factory.request.list\` | The Forge control-room board: build requests with status, current phase, and risk. Read-only; requires the Forge add-on. | Tenant | Call with \`{}\` or \`{"limit":20}\`. |
|
|
@@ -48314,6 +48340,7 @@ var COMMAND_MANIFEST = [
|
|
|
48314
48340
|
{ "id": "software_factory.github.installation.bind", "namespace": "software_factory", "action": "github.installation.bind", "title": "Bind a Forge GitHub installation", "description": "Bind a GitHub App installation and selected repositories to Forge projects from the authenticated Forge GitHub settings flow. Owner-only and human-gated; webhook payloads never supply tenant authority.", "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": false, "fields": [{ "name": "app_slug", "flag": "app-slug", "type": "string", "required": false }, { "name": "installation_id", "flag": "installation-id", "type": "integer", "required": true }, { "name": "account_login", "flag": "account-login", "type": "string", "required": true }, { "name": "account_id", "flag": "account-id", "type": "integer", "required": true }, { "name": "account_type", "flag": "account-type", "type": "string", "required": true }], "hasComplexInput": true, "help": "Bind a GitHub App installation and selected repositories to Forge projects from the authenticated Forge GitHub settings flow. Owner-only and human-gated." },
|
|
48315
48341
|
{ "id": "software_factory.github.policy.upsert", "namespace": "software_factory", "action": "github.policy.upsert", "title": "Set a Forge GitHub automation policy", "description": "Set the server-side policy for GitHub actions and automation-mode ceilings. Owner-only and human-gated; production deploy remains human-gated.", "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "software_project_id", "flag": "software-project-id", "type": "string", "required": true }, { "name": "authority_profile_id", "flag": "authority-profile-id", "type": "string", "required": false }, { "name": "automation_mode_ceiling", "flag": "automation-mode-ceiling", "type": "enum", "required": false, "enumValues": ["plan_only", "pr_only", "merge_after_checks", "deploy_preview", "deploy_production"] }, { "name": "allowed_actions", "flag": "allowed-actions", "type": "array", "required": true, "itemType": "string" }, { "name": "requires_human_for", "flag": "requires-human-for", "type": "array", "required": true, "itemType": "string" }], "hasComplexInput": false, "help": "Set Forge's server-side GitHub automation policy for actions, mode ceilings, and human-gated operations." },
|
|
48316
48342
|
{ "id": "software_factory.phase.advance", "namespace": "software_factory", "action": "phase.advance", "title": "Advance a Forge build request phase", "description": "Advance a build request to the next phase, enforcing the closed phase state machine server-side (an illegal transition is rejected). Writes a phase-run row and updates the current phase. Entitlement-gated.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "build_request_id", "flag": "build-request-id", "type": "string", "required": true }, { "name": "to_phase", "flag": "to-phase", "type": "enum", "required": true, "enumValues": ["intake", "discovery_scoping", "plan_review", "implementation", "plan_conformance_review", "security_review", "qa_verification", "release_preview", "merge_or_deploy_gate", "closeout"] }, { "name": "owning_seat_id", "flag": "owning-seat-id", "type": "string", "required": false }, { "name": "note", "flag": "note", "type": "string", "required": false }], "hasComplexInput": false, "help": "Advance a build request to its next phase; the server enforces the closed phase state machine and rejects an illegal transition." },
|
|
48343
|
+
{ "id": "software_factory.project.create", "namespace": "software_factory", "action": "project.create", "title": "Create a Forge project", "description": "Create an active Forge software project before binding repositories or opening build requests. Tenant-admin, human-gated, and entitlement-gated.", "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "name", "flag": "name", "type": "string", "required": true }, { "name": "slug", "flag": "slug", "type": "string", "required": false }, { "name": "base_branch", "flag": "base-branch", "type": "string", "required": false }, { "name": "repo_ref", "flag": "repo-ref", "type": "string", "required": false }], "hasComplexInput": false, "help": "Create an active Forge software project before binding repositories or opening build requests. Tenant-admin and human-gated; requires the Forge add-on." },
|
|
48317
48344
|
{ "id": "software_factory.project.list", "namespace": "software_factory", "action": "project.list", "title": "List Forge projects", "description": "List active Forge software projects so a tenant can choose a project for build requests, GitHub repository bindings, and config. Read-only and entitlement-gated.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "List active Forge software projects so a tenant can choose a project for build requests, GitHub repository bindings, and config. Read-only; requires the Forge add-on." },
|
|
48318
48345
|
{ "id": "software_factory.request.create", "namespace": "software_factory", "action": "request.create", "title": "Create a Forge build request", "description": "Open a governed Forge build request against a connected software project. Records the request plus its initial intake phase run. Entitlement-gated (Forge add-on); the title is untrusted display text, never an instruction.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "software_project_id", "flag": "software-project-id", "type": "string", "required": true }, { "name": "title", "flag": "title", "type": "string", "required": true }, { "name": "source_channel", "flag": "source-channel", "type": "enum", "required": false, "enumValues": ["ui", "cli", "github_issue", "linear", "api"] }, { "name": "source_ref", "flag": "source-ref", "type": "string", "required": false }], "hasComplexInput": true, "help": "Open a governed Forge build request against a connected software project; the title is untrusted display text. Requires the Forge add-on." },
|
|
48319
48346
|
{ "id": "software_factory.request.list", "namespace": "software_factory", "action": "request.list", "title": "List Forge build requests", "description": "The Forge control-room board: the tenant's build requests with status, current phase, and risk/automation mode. Read-only, entitlement-gated.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "limit", "flag": "limit", "type": "integer", "required": false }], "hasComplexInput": false, "help": "List Forge build requests (the control-room board) with status, current phase, and risk. Read-only; requires the Forge add-on." },
|
|
@@ -50144,6 +50171,7 @@ function operationUsageLines(bin) {
|
|
|
50144
50171
|
// Local runner service lifecycle (DER-1142). The orchestrator mirrors this
|
|
50145
50172
|
// exact line into the mcp-and-cli-guide so the help/guide parity gate passes.
|
|
50146
50173
|
`${bin} runner install-service|start|stop|restart|status|logs|uninstall --name <name>`,
|
|
50174
|
+
`${bin} forge project-create|project-list|request-create|request-list|request-show`,
|
|
50147
50175
|
`${bin} notification settings|test|errors`,
|
|
50148
50176
|
`${bin} settings get|update|product-learning|agent-policy|rename`,
|
|
50149
50177
|
`${bin} member invite|update|remove`,
|