| import type { RegistryToolListing, ToolAnnotation } from "./route-types.js"; | ||
| /** | ||
| * The skill's leaf name. Intent requires `skills/<name>/SKILL.md` where the | ||
| * frontmatter `name` matches the parent directory, so this drives both the | ||
| * emitted frontmatter and the codegen output path. | ||
| */ | ||
| export declare const SKILL_NAME = "stella-cli"; | ||
| /** | ||
| * Emit the `SKILL.md` markdown for the stella CLI. Pure over the registry | ||
| * inputs plus the compiled `EXIT_CODES` constant. The command tree is derived | ||
| * from `generateRouteMap`, never hand-written. | ||
| */ | ||
| export declare const generateCliSkill: (listings: readonly RegistryToolListing[], annotations: Readonly<Record<string, ToolAnnotation>>) => string; |
| // THE agent-skill emitter (TanStack Intent). Given the same registry inputs as | ||
| // `generateRouteMap` (the `tools/list` projection plus the baked-in Annotation | ||
| // Table) it emits the `SKILL.md` markdown a coding agent loads to drive the | ||
| // stella CLI. Pure and deterministic: same inputs -> byte-identical markdown, | ||
| // no I/O, no `Date.now()`/`Math.random()`. The command tree is walked out of | ||
| // the real `generateRouteMap` output, so the documented surface can never drift | ||
| // from the command surface the CLI actually dispatches. | ||
| import { panic } from "better-result"; | ||
| import { generateRouteMap } from "./generate-route-map.js"; | ||
| import { EXIT_CODES } from "./mcp-constants.js"; | ||
| /** | ||
| * The skill's leaf name. Intent requires `skills/<name>/SKILL.md` where the | ||
| * frontmatter `name` matches the parent directory, so this drives both the | ||
| * emitted frontmatter and the codegen output path. | ||
| */ | ||
| export const SKILL_NAME = "stella-cli"; | ||
| /** | ||
| * Human meaning for each `EXIT_CODES` key. Typed `satisfies | ||
| * Record<keyof typeof EXIT_CODES, string>` so a new exit code fails typecheck | ||
| * here until it is described; the rendered code column is read from | ||
| * `EXIT_CODES` itself, so the table can never drift from the compiled | ||
| * exit-code constant. Declaration order is irrelevant: the table is rendered | ||
| * sorted numerically by exit-code value. | ||
| */ | ||
| const EXIT_CODE_DESCRIPTIONS = { | ||
| ok: "success", | ||
| unexpected: "unexpected internal error", | ||
| validation: "usage or input validation error", | ||
| auth: "authentication required or failed (run `stella auth login`)", | ||
| server: "server or tool error", | ||
| featureDisabled: "feature disabled for this organization", | ||
| notFound: "resource not found", | ||
| aborted: "confirmation aborted (a destructive op was declined)", | ||
| }; | ||
| /** Depth-first walk collecting every leaf spec under a route node. */ | ||
| const collectLeaves = (node, acc) => { | ||
| if (node.kind === "leaf") { | ||
| acc.push(node.spec); | ||
| return; | ||
| } | ||
| for (const child of Object.values(node.children)) { | ||
| collectLeaves(child, acc); | ||
| } | ||
| }; | ||
| const notesFor = (spec) => { | ||
| const parts = []; | ||
| if (spec.destructive) { | ||
| parts.push("destructive (needs `--yes` off a TTY)"); | ||
| } | ||
| if (spec.paginated) { | ||
| parts.push("paginated"); | ||
| } | ||
| if (spec.windowedText) { | ||
| parts.push("windowed text"); | ||
| } | ||
| return parts.join("; "); | ||
| }; | ||
| const commandRows = (tree) => { | ||
| const leaves = []; | ||
| collectLeaves(tree, leaves); | ||
| const rows = leaves.map((spec) => { | ||
| const command = spec.commandPath.join(" "); | ||
| return { | ||
| domain: spec.commandPath[0] ?? command, | ||
| command: `stella ${command}`, | ||
| access: spec.scope ?? "—", | ||
| notes: notesFor(spec), | ||
| }; | ||
| }); | ||
| // Sort for determinism independent of registry/annotation iteration order. | ||
| // Explicit locale keeps the ordering byte-identical across machines; the | ||
| // drift guard diffs the emitted SKILL.md against a committed snapshot. | ||
| return rows.toSorted((a, b) => a.command.localeCompare(b.command, "en")); | ||
| }; | ||
| const renderCommandTable = (rows) => { | ||
| const lines = [ | ||
| "| Domain | Command | Access | Notes |", | ||
| "| --- | --- | --- | --- |", | ||
| ]; | ||
| for (const row of rows) { | ||
| lines.push(`| ${row.domain} | \`${row.command}\` | ${row.access} | ${row.notes} |`); | ||
| } | ||
| return lines.join("\n"); | ||
| }; | ||
| const renderExitCodeTable = () => { | ||
| const lines = ["| Code | Meaning |", "| --- | --- |"]; | ||
| // Iterate `EXIT_CODES` (the source of truth) and look descriptions up | ||
| // through a widened alias, so no cast is needed: exhaustiveness is already | ||
| // compile-forced on the `EXIT_CODE_DESCRIPTIONS` literal by its `satisfies`. | ||
| const descriptions = EXIT_CODE_DESCRIPTIONS; | ||
| const sorted = Object.entries(EXIT_CODES).toSorted(([, a], [, b]) => a - b); | ||
| for (const [key, code] of sorted) { | ||
| const meaning = descriptions[key] ?? panic(`exit code ${key} has no description`); | ||
| lines.push(`| ${code} | ${meaning} |`); | ||
| } | ||
| return lines.join("\n"); | ||
| }; | ||
| /** | ||
| * Emit the `SKILL.md` markdown for the stella CLI. Pure over the registry | ||
| * inputs plus the compiled `EXIT_CODES` constant. The command tree is derived | ||
| * from `generateRouteMap`, never hand-written. | ||
| */ | ||
| export const generateCliSkill = (listings, annotations) => { | ||
| const tree = generateRouteMap(listings, annotations); | ||
| const table = renderCommandTable(commandRows(tree)); | ||
| const exitCodes = renderExitCodeTable(); | ||
| const frontmatter = [ | ||
| "---", | ||
| `name: ${SKILL_NAME}`, | ||
| "description: >-", | ||
| " Drive the stella command-line client (@stll/cli), a legal-workspace CLI whose", | ||
| " command surface is generated from the stella MCP tool registry. Covers install,", | ||
| " OAuth login, the full command tree grouped by domain, JSON output for scripting,", | ||
| " the --input escape hatch for deep payloads, cursor pagination, destructive-op", | ||
| " confirmation, and exit codes.", | ||
| "metadata:", | ||
| " type: reference", | ||
| ' library: "@stll/cli"', | ||
| "---", | ||
| ].join("\n"); | ||
| const body = [ | ||
| "<!-- GENERATED by `bun run codegen` (packages/cli/src/generate-skill.ts). Do not edit by hand. -->", | ||
| "", | ||
| "# stella CLI", | ||
| "", | ||
| "`@stll/cli` is the command-line client for stella, an open-source legal", | ||
| "workspace. Its command surface (`stella <domain> <action>`) is generated from", | ||
| "the stella MCP tool registry, so it mirrors exactly the tools a stella server", | ||
| "exposes. Every command works for humans, scripts, and agents alike.", | ||
| "", | ||
| "## Install", | ||
| "", | ||
| "```sh", | ||
| "npm i -g @stll/cli", | ||
| "```", | ||
| "", | ||
| "## Authenticate", | ||
| "", | ||
| "```sh", | ||
| "stella auth login", | ||
| "```", | ||
| "", | ||
| "Login runs an OAuth 2.1 authorization-code flow with PKCE against the stella", | ||
| "server, using a loopback listener (`http://127.0.0.1/callback`, ephemeral port)", | ||
| "to capture the code. Credentials are stored per server origin, so one machine", | ||
| "can hold sessions for several servers at once. Point at a non-default server", | ||
| "with `--server <url>`; scope the session with `--scopes` (default scopes:", | ||
| "`openid profile email stella:read stella:search`). `stella auth whoami` shows", | ||
| "the active session; `stella auth logout` clears it.", | ||
| "", | ||
| "## Conventions every agent must know", | ||
| "", | ||
| "- **Output format**: table is the default only on a TTY; piped/non-TTY output", | ||
| " defaults to JSON. Force it with `--output json|table` (or `--json` / `--table`).", | ||
| " Always pass `--output json` when scripting or parsing.", | ||
| "- **Deep payloads**: any command accepts `--input '<json>'` for the whole tool", | ||
| " argument object, `--input @file` to read JSON from a file, or `--input -` to", | ||
| " read JSON from stdin. Individual string flags also take gh-style `@file` / `@-`", | ||
| " sugar (use `@@` to pass a literal leading `@`).", | ||
| "- **Array flags** are repeatable: pass the flag once per value.", | ||
| "- **Pagination**: list commands take `--cursor <c>` and `--limit <n>`; `--all`", | ||
| " follows cursors up to bounded ceilings. The `nextCursor` resume hint is written", | ||
| " to stderr (`more: --cursor <c>`) so piped JSON on stdout stays clean.", | ||
| "- **Destructive commands** require `--yes` when there is no TTY to confirm on.", | ||
| "- **MCP resources**: `stella reference list` enumerates static server resources;", | ||
| " `stella reference show <name>` prints one.", | ||
| "", | ||
| "## Exit codes", | ||
| "", | ||
| exitCodes, | ||
| "", | ||
| "## Command tree", | ||
| "", | ||
| "Generated from the MCP tool registry; `Access` is the OAuth scope the command", | ||
| "requires (request it at `stella auth login --scopes`).", | ||
| "", | ||
| table, | ||
| "", | ||
| ].join("\n"); | ||
| return `${frontmatter}\n${body}`; | ||
| }; | ||
| //# sourceMappingURL=generate-skill.js.map |
| {"version":3,"file":"generate-skill.js","sourceRoot":"","sources":["../src/generate-skill.ts"],"names":[],"mappings":"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"} |
| --- | ||
| name: stella-cli | ||
| description: >- | ||
| Drive the stella command-line client (@stll/cli), a legal-workspace CLI whose | ||
| command surface is generated from the stella MCP tool registry. Covers install, | ||
| OAuth login, the full command tree grouped by domain, JSON output for scripting, | ||
| the --input escape hatch for deep payloads, cursor pagination, destructive-op | ||
| confirmation, and exit codes. | ||
| metadata: | ||
| type: reference | ||
| library: "@stll/cli" | ||
| --- | ||
| <!-- GENERATED by `bun run codegen` (packages/cli/src/generate-skill.ts). Do not edit by hand. --> | ||
| # stella CLI | ||
| `@stll/cli` is the command-line client for stella, an open-source legal | ||
| workspace. Its command surface (`stella <domain> <action>`) is generated from | ||
| the stella MCP tool registry, so it mirrors exactly the tools a stella server | ||
| exposes. Every command works for humans, scripts, and agents alike. | ||
| ## Install | ||
| ```sh | ||
| npm i -g @stll/cli | ||
| ``` | ||
| ## Authenticate | ||
| ```sh | ||
| stella auth login | ||
| ``` | ||
| Login runs an OAuth 2.1 authorization-code flow with PKCE against the stella | ||
| server, using a loopback listener (`http://127.0.0.1/callback`, ephemeral port) | ||
| to capture the code. Credentials are stored per server origin, so one machine | ||
| can hold sessions for several servers at once. Point at a non-default server | ||
| with `--server <url>`; scope the session with `--scopes` (default scopes: | ||
| `openid profile email stella:read stella:search`). `stella auth whoami` shows | ||
| the active session; `stella auth logout` clears it. | ||
| ## Conventions every agent must know | ||
| - **Output format**: table is the default only on a TTY; piped/non-TTY output | ||
| defaults to JSON. Force it with `--output json|table` (or `--json` / `--table`). | ||
| Always pass `--output json` when scripting or parsing. | ||
| - **Deep payloads**: any command accepts `--input '<json>'` for the whole tool | ||
| argument object, `--input @file` to read JSON from a file, or `--input -` to | ||
| read JSON from stdin. Individual string flags also take gh-style `@file` / `@-` | ||
| sugar (use `@@` to pass a literal leading `@`). | ||
| - **Array flags** are repeatable: pass the flag once per value. | ||
| - **Pagination**: list commands take `--cursor <c>` and `--limit <n>`; `--all` | ||
| follows cursors up to bounded ceilings. The `nextCursor` resume hint is written | ||
| to stderr (`more: --cursor <c>`) so piped JSON on stdout stays clean. | ||
| - **Destructive commands** require `--yes` when there is no TTY to confirm on. | ||
| - **MCP resources**: `stella reference list` enumerates static server resources; | ||
| `stella reference show <name>` prints one. | ||
| ## Exit codes | ||
| | Code | Meaning | | ||
| | ---- | ----------------------------------------------------------- | | ||
| | 0 | success | | ||
| | 1 | unexpected internal error | | ||
| | 2 | usage or input validation error | | ||
| | 3 | authentication required or failed (run `stella auth login`) | | ||
| | 4 | server or tool error | | ||
| | 5 | feature disabled for this organization | | ||
| | 6 | resource not found | | ||
| | 7 | confirmation aborted (a destructive op was declined) | | ||
| ## Command tree | ||
| Generated from the MCP tool registry; `Access` is the OAuth scope the command | ||
| requires (request it at `stella auth login --scopes`). | ||
| | Domain | Command | Access | Notes | | ||
| | ------------ | --------------------------------------- | --------------- | ------------------------------------- | | ||
| | audit-log | `stella audit-log list` | admin_read | paginated | | ||
| | case-law | `stella case-law read` | read | paginated; windowed text | | ||
| | case-law | `stella case-law search` | search | paginated | | ||
| | clause | `stella clause delete` | knowledge_write | destructive (needs `--yes` off a TTY) | | ||
| | clause | `stella clause list` | read | paginated | | ||
| | clause | `stella clause save` | knowledge_write | | | ||
| | contact | `stella contact delete` | matters_write | destructive (needs `--yes` off a TTY) | | ||
| | contact | `stella contact lookup-registry` | read | | | ||
| | contact | `stella contact read` | read | | | ||
| | contact | `stella contact save` | matters_write | | | ||
| | document | `stella document delete` | documents_write | destructive (needs `--yes` off a TTY) | | ||
| | document | `stella document field set` | documents_write | | | ||
| | document | `stella document list` | read | paginated | | ||
| | document | `stella document properties list` | read | paginated | | ||
| | document | `stella document read` | read | | | ||
| | document | `stella document save` | documents_write | | | ||
| | invoice | `stella invoice list` | read | paginated | | ||
| | legislation | `stella legislation search` | read | paginated | | ||
| | matter | `stella matter delete` | matters_write | destructive (needs `--yes` off a TTY) | | ||
| | matter | `stella matter link-contact` | matters_write | | | ||
| | matter | `stella matter list` | read | paginated | | ||
| | matter | `stella matter save` | matters_write | | | ||
| | organization | `stella organization add-member` | admin_write | | | ||
| | organization | `stella organization remove-member` | admin_write | destructive (needs `--yes` off a TTY) | | ||
| | organization | `stella organization set-jurisdictions` | onboarding | | | ||
| | organization | `stella organization update-settings` | admin_write | | | ||
| | playbook | `stella playbook list` | read | paginated | | ||
| | playbook | `stella playbook run` | knowledge_write | | | ||
| | rate | `stella rate resolve` | read | | | ||
| | search | `stella search matters` | search | paginated | | ||
| | search | `stella search read` | read | paginated; windowed text | | ||
| | task | `stella task list` | read | paginated | | ||
| | task | `stella task save` | matters_write | | | ||
| | template | `stella template fill` | templates | | | ||
| | template | `stella template list` | templates | paginated | | ||
| | template | `stella template save` | templates | | | ||
| | time-entry | `stella time-entry delete` | billing_write | destructive (needs `--yes` off a TTY) | | ||
| | time-entry | `stella time-entry list` | read | paginated | | ||
| | time-entry | `stella time-entry save` | billing_write | | | ||
| | usage | `stella usage get` | read | | |
+12
-1
@@ -11,3 +11,3 @@ #!/usr/bin/env bun | ||
| import { panic } from "better-result"; | ||
| import { readFile, writeFile } from "node:fs/promises"; | ||
| import { mkdir, readFile, writeFile } from "node:fs/promises"; | ||
| import * as v from "valibot"; | ||
@@ -18,2 +18,3 @@ import packageJson from "../package.json" with { type: "json" }; | ||
| import { generateRouteMap } from "./generate-route-map.js"; | ||
| import { generateCliSkill, SKILL_NAME } from "./generate-skill.js"; | ||
| const snapshotUrl = new URL("generated/registry-snapshot.json", import.meta.url); | ||
@@ -57,2 +58,12 @@ const outputUrl = new URL("generated/route-map.ts", import.meta.url); | ||
| const routeMap = generateRouteMap(listings, TOOL_ANNOTATIONS); | ||
| // Emit the TanStack Intent agent skill from the same registry inputs, into the | ||
| // spec-mandated `skills/<name>/SKILL.md` at the package root. Committing it means | ||
| // registry drift shows up as a diff here too (guarded by scripts/verify.sh and | ||
| // the CLI registry snapshot CI step, which git-diff `packages/cli/skills`). | ||
| const skillUrl = new URL(`../skills/${SKILL_NAME}/SKILL.md`, import.meta.url); | ||
| await mkdir(new URL(`../skills/${SKILL_NAME}/`, import.meta.url), { | ||
| recursive: true, | ||
| }); | ||
| await writeFile(skillUrl, generateCliSkill(listings, TOOL_ANNOTATIONS)); | ||
| process.stderr.write(`Wrote ${skillUrl.pathname}\n`); | ||
| const header = `/* eslint-disable unicorn/numeric-separators-style -- generated JSON literals */ | ||
@@ -59,0 +70,0 @@ // GENERATED by \`bun run codegen\` (spec 051 S5.2). Do not edit by hand. |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| export declare const CLI_VERSION = "0.1.0"; | ||
| export declare const CLI_VERSION = "0.1.1"; |
@@ -5,3 +5,3 @@ // GENERATED by `bun run codegen`. Do not edit by hand. | ||
| // (spec 051 addendum) never reads package.json from the published dist. | ||
| export const CLI_VERSION = "0.1.0"; | ||
| export const CLI_VERSION = "0.1.1"; | ||
| //# sourceMappingURL=cli-version.js.map |
+8
-6
| { | ||
| "name": "@stll/cli", | ||
| "version": "0.1.0", | ||
| "version": "0.1.1", | ||
| "description": "Stella command-line client", | ||
@@ -8,3 +8,4 @@ "keywords": [ | ||
| "legal", | ||
| "stella" | ||
| "stella", | ||
| "tanstack-intent" | ||
| ], | ||
@@ -26,8 +27,6 @@ "homepage": "https://github.com/stella/stella/tree/main/packages/cli", | ||
| "dist", | ||
| "README.md" | ||
| "README.md", | ||
| "skills" | ||
| ], | ||
| "type": "module", | ||
| "engines": { | ||
| "node": ">=20" | ||
| }, | ||
| "sideEffects": false, | ||
@@ -64,4 +63,7 @@ "exports": { | ||
| }, | ||
| "engines": { | ||
| "node": ">=20" | ||
| }, | ||
| "main": "./dist/cli.js", | ||
| "types": "./dist/cli.d.ts" | ||
| } |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
693231
3.35%133
3.1%10693
1.95%9
-10%