Skip to content
Start free

Tool reference

This page is generated from the committed CLI route tree and tool-registry snapshot. It includes curated MCP tools, discriminator subcommands, and every generated stella capability <domain> <action> command that the CLI exposes.

Access is the tool’s declared behavior: read tools never change state; write tools do and ordinary writes may execute immediately; destructive writes delete or irreversibly change data and require explicit confirmation. Some additional writes can also request server-side confirmation based on their target.

ToolCLI commandAccessWhat it does
List matters
list_matters
stella matter listreadList the matters you can access, or get one matter's overview. Omit matter_id to list accessible matters (filter with status, page with cursor); list first when the user does not name a matter or you need matter IDs for follow-up tools. Pass matter_id to return that matter's overview instead: counts, recent entities, linked contacts, and members.
Save matter
save_matter
stella matter savewriteCreate, update, archive, or unarchive a matter. Omit matter_id to create a new matter (name required; pass client_id to attach a client contact). Pass matter_id to update an existing matter: set name, reference, or billing_reference, and/or set status to 'archived' or 'active' to archive or unarchive it. Returns the matter ID.
Delete matter
delete_matter
stella matter deletedestructivePermanently delete a matter and all its documents, tasks, fields, and chat history. This is irreversible.
Link contact to matter
link_matter_contact
stella matter link-contactwriteLink a contact to a matter in a party role (opposing party/counsel, co-counsel, witness, expert witness, third party, judge, mediator, or other), or remove such a link. Pass contact_id with role to link. To unlink, pass matter_contact_id (precise, from list_matters) or contact_id alone; contact_id alone is rejected when the contact holds several roles on the matter.
Search across matters
search_across_matters
stella search mattersreadSearch across all accessible matters. Use this when the user explicitly asks to search outside a single matter or you do not yet know the right matter.
Search case law
search_case_law
stella case-law searchreadSearch case law within one country. `queries` carries several phrasings of one question and merges their results; matchedQueries names the phrasings that returned each hit. `limit` is the merged page, split evenly across them. Filters: court, language, dates, decision type, source_id (a `facets.source` bucket's `value`). `sort` defaults to 'relevance'. Facets and total describe ONE query's whole set: first page of a single-query call only, null otherwise. Function words are not required terms; `searches[]` gives each phrasing's `queryUsed` and warnings, and `strict` requires every word. Each hit carries citationAuthority (the score the ranking blends in), matchingPassages (at least 1) and a route-independent resourceName. read_case_law_citations gives the polarity of the citing decisions.
Look up case law by identifier
lookup_case_law
stella case-law lookupreadResolve case references to decisions: docket numbers as the courts write them (a trailing sheet number is ignored) and ECLIs. Answered from the identity columns, never by ranking text, so a hit is the decision named, not one citing it. Every `identifiers[]` entry is answered on its own, in input order, under `status`: `found` carries that decision's id, resourceName, appUrl, docket, court, date and ECLI; `ambiguous` carries the candidates: a docket is unique to a court, not to the corpus, and picking one would cite the wrong court; `not_found` says what to call instead; `lookup_failed` means the read did not complete, so retry that entry. Use this when the user names a case; use search_case_law when they describe one. Pass a `found` decisionId to read_case_law_decision for the text.
Read case-law decision
read_case_law_decision
stella case-law readreadRead case-law decisions by id. Every `decision_ids[]` entry is answered on its own, in input order, under `status`: `found` carries the decision (metadata, text fields, plain text, source URLs, resourceName, citation ids), while `not_found` (no such public decision) and `pending` (its publisher document is not stored yet) carry a message. Prefer one batched call over one per decision; the call's text budget is shared, so read one id alone for a whole decision's text. It does NOT say how the citing courts treated a decision: its citation entries carry no treatment and no surrounding text. For that call read_case_law_citations ({ decision_id: '<uuid>', direction: 'cited_by' }). Long text and citation lists come back in windows; pass an entry's nextCursor back as cursor with that one id.
Read case-law citations
read_case_law_citations
stella case-law citationsreadHow the decisions citing one stood to it, or what it cited. One page of citations, each with a polarity and an excerpt of the paragraph the citation sits in. `cited_by` returns the decisions that cite this one, `cites` the ones it cites; neither means agreement. `polarity` is one of negative, neutral, positive, supportive, unclassified: a stance, not a doctrinal act, so it never says followed, distinguished or overruled. 'unclassified' means none was read. `passage.text` is at most 1200 characters centred on the citation, cut when `passage.truncated`; `passage.mention` is 'sole', 'classified_section' (the mention the polarity was read from), or 'latest_of_several' (it may not be). Example: { decision_id: '<uuid>', direction: 'cited_by', limit: 20 }. Pass the returned nextCursor back as cursor.
Read content across matters
read_content_across_matters
stella document contentreadRead a document's content, found anywhere in your accessible matters. DOCX files are converted to Markdown with structure preserved (headings, tables, lists); other formats return their extracted plain text. Use after search_across_matters. Long documents are returned in windows; pass the returned nextCursor back as cursor to read more.
List documents
list_documents
stella document listreadList the documents and folders in a matter. Use 'flat' mode to enumerate every document and folder in the matter, or 'children' mode to walk the folder tree one level at a time (pass parent_id to list a folder's direct children, or omit it for the matter root). Returns each entity's id, name, kind (document or folder), and parentId. Read a document's metadata, fields, or versions with read_document.
Read document
read_document
stella document readreadRead a document's metadata and field values by entity ID. By default returns the current version's name, kind, and field/property values. The default response also reports contentState and searchIndexState, including an actionable remediation or escalation requirement when document text processing is required. Pass version_id to inspect a specific version instead. Pass version_id and compare_with_version_id to get a plain-text line diff between two versions. Pass include_versions to also return the version history. To read the document's extracted text content, use read_content_across_matters.
Save document
save_document
stella document savewriteCreate a document or folder, or update an existing one. Omit entity_id to create: pass matter_id and name, optionally a parent_id folder and kind ('document' by default, or 'folder'). Creating makes an empty named entity; uploading file content is a separate step. Pass entity_id to update: set name to rename; parent_id to move it into a folder or move_to_root to move it to the matter root; version_id with label and/or description to annotate a version. An update needs at least one change. Returns the entity ID.
Compare document versions
compare_documents
stella document comparewriteCreate a tracked-changes DOCX redline. source versions compares an explicit stored base with up to 8 targets; source previous compares one stored version with its predecessor; source uploads compares two .docx files stella does not hold, staged by open_file_comparison, prepare_file_comparison_from_links or prepare_file_comparison. base_tracked_changes and target_tracked_changes handle tracked changes each side already carries: accept (the usual choice) compares its final text. output_mode preview compares without writing; download returns each redline as an expiring link, not a version; version saves each redline as a derived version and needs a stored source. Results are independent, so read every status. Show the user each redline's openUrl or download link.
Prepare file comparison
prepare_file_comparison
stella document comparison preparewriteReserve upload slots for redlining two .docx files that are not stored in stella, for a client that can PUT the bytes itself (the CLI, a script). In a chat, prefer open_file_comparison, whose panel uploads from the user's browser, or prepare_file_comparison_from_links when the files are reachable by HTTPS link. Both files must be .docx and at most 50 MB. PUT each file's bytes to its url with the returned headers sent verbatim: the URL is signed against that exact size and checksum. Then call compare_documents with the echoed next.source, within the hour. The staged files and the redline are temporary and never become a document, a version, or matter content.
Prepare file comparison from links
prepare_file_comparison_from_links
stella document comparison prepare-from-linkswriteStage two .docx files for redlining from HTTPS links the server can download, so no bytes pass through the client. Each file is at most 50 MB and must be a .docx. Then call compare_documents with the echoed next.source, within the hour. The staged files and the redline are temporary and never become a document, a version, or matter content.
Delete document
delete_document
stella document deletedestructiveDelete a document and all its versions, or delete a single version when version_id is provided (the current version is promoted to the next latest; the only remaining version cannot be deleted). This is irreversible.
List properties
list_properties
stella document properties listreadList the property (column) definitions of a matter. Returns each property's id, name, value type (text, single-select, multi-select, date, int, or file), status, and writeMethod. Use set_field_value for scalar properties. Arbitrary file-property cells are not writable; document upload/version tools replace only a document's primary file.
Set field value
set_field_value
stella document field setwriteSet a document's value for a property (a cell in the matter's table). Pass the document entity_id, the property_id (from list_properties), and a content object whose 'type' matches the property's value type: text (value: string), single-select (value: string or null), multi-select (value: array of strings), date (value: ISO YYYY-MM-DD or null), or int (value: integer, optional currency: 3-letter ISO code). An empty value clears the cell.
Read contact
read_contact
stella contact readreadRead a contact by ID. Use this after matter overview or entity metadata surfaces a contact the user wants to inspect more closely.
List contacts
list_contacts
stella contact listreadList or search the organization's internal contact directory. Returns internal contact IDs accepted by read_contact, save_contact, and link_matter_contact. Use q to search display names and type to filter people or organizations.
Save contact
save_contact
stella contact savewriteCreate or update a contact (a person or organization in the address book, shared across the whole organization). Omit contact_id to create (type required, plus display_name or the name parts it is derived from); pass contact_id to update. String fields other than display_name accept null to clear them.
Delete contact
delete_contact
stella contact deletedestructivePermanently delete a contact from the organization address book. Rejected while the contact is still the client of any matter. This is irreversible.
Look up business registry
lookup_business_registry
stella contact lookup-registryreadLook up a company in a public business register (ARES, Brreg, Companies House, EDGAR, GCIS, KRS, ORSR, PRH, recherche-entreprises, or VIES). Pass a canonical identifier (company/registration number, VAT number) for an exact match, or a company name to search where the register supports it. Returns registered names, addresses, and registry-specific details. Result IDs belong to the external registry, not stella's contact directory; create a contact with save_contact before using read_contact.
Set practice jurisdictions
set_practice_jurisdictions
stella organization set-jurisdictionswriteSet the practice jurisdictions for the user's stella organization. Call this when the org's practice jurisdictions are empty (e.g., the user signed up via an OAuth client and skipped onboarding). Pass an array of {country_code, is_primary}; exactly one entry should be primary.
Manage organization
manage_organization
stella organization add-memberwriteManage organization members and non-secret settings. Member actions require matter_id and user_id. update_org_settings controls matter numbering, prompt caching, and document processing. Manage provider secrets in the dashboard.
Manage organization
manage_organization
stella organization remove-memberdestructiveManage organization members and non-secret settings. Member actions require matter_id and user_id. update_org_settings controls matter numbering, prompt caching, and document processing. Manage provider secrets in the dashboard.
Manage organization
manage_organization
stella organization update-settingswriteManage organization members and non-secret settings. Member actions require matter_id and user_id. update_org_settings controls matter numbering, prompt caching, and document processing. Manage provider secrets in the dashboard.
Search legislation
search_legislation
stella legislation searchreadSearch the stella legislation corpus within one country: consolidated statutes, each with its ELI, title, language, document type, publication status, effective date and a matched snippet. Filters: document type, status, language, and an effective-date range (ISO YYYY-MM-DD). No facets are returned and `total` is not counted, so page with the returned nextCursor instead of reasoning about a result count. A hit is metadata only: pass its `eli` to read_statute for the text, the outline of anchors and the consolidated versions.
Read statute
read_statute
stella legislation readreadRead one statute by ELI as it stood on a date: `as_of` picks the consolidation in force that day, and omitting it reads the text in force today. Returns that consolidation's metadata and validity window, `versions` (the newest page of the work's consolidations), `outline` (its heading anchors, the input read_statute_provisions takes) and its plain text. Long text comes back in windows; pass the returned nextCursor back as cursor to read more. A source that bars AI use of its wording still answers with metadata, versions and outline, and `textWithheldReason` in place of the text.
Read statute provisions
read_statute_provisions
stella legislation provisionsreadRead named provisions of one or more statutes in one call: each `items[]` entry is { eli, anchor } plus an optional as_of and language. An anchor is the publisher's own (par_1729, par_1729-odst_1) and read_statute's `outline` lists them. Every entry is answered separately, in input order, under `status`: `found` carries the provision's text, while `not_found` (no such ELI), `uncovered_date` (no consolidation covers that day), `provision_not_found` (that consolidation has no such anchor) and `text_withheld` (the source bars AI use of its wording) each carry a message. Prefer one batched call over one call per provision.
Read provision history
read_provision_history
stella legislation historyreadHow one provision's wording changed: its text in each consolidation of the work, newest validity window first, so two wordings can be compared without downloading whole statutes. Takes the work's `eli` and an `anchor` from read_statute's outline. A consolidation that does not carry the anchor is left out of `items`. Pass the returned nextCursor back as cursor for older windows.
Search BOE legislation
search_boe_legislation
stella legislation boe-searchreadSearch and read Spanish consolidated legislation from the BOE. In search mode, pass query (free text) and/or filters (title, department_code, legal_range_code, matter_code, date_from/date_to as YYYYMMDD); at least one filter is required. In read mode, pass law_id (e.g. BOE-A-1889-4763) to return the law with its block structure; add full_text to include the consolidated text, block_id to return one text block, or relation_type to list related laws instead. Returns public statutory data.
List templates
list_templates
stella template listreadList the document templates in this organization (NDAs, powers of attorney, leases), or describe one template's fillable fields. Omit template_id to list templates: each template's id, name, field count, tags, and usage guidance (whenToUse / whenNotToUse); prefer a template whose whenToUse matches the request and skip any whose whenNotToUse applies. Pass template_id to return that template's full field configuration, in the shape the field reference documents (see stella://reference/template-fields), its named conditions and formula fields, and the configure_template_fields call to make next. `arrays` marks {% for %} fields as arrays of objects, not dotted keys.
Fill template
fill_template
stella template fillwriteFill a template and return the rendered text; pass output_mode='docx' for base64 bytes. Call list_templates first, then pass its field paths in values. Registry, composite, formula, and AI fields resolve automatically. Unknown keys fail unless allow_unused_values is true. Missing required values always fail. Unfilled placeholders or failed AI drafts fail unless completion_mode is allow_partial. Errors name exact paths; never guess required values. Output includes completionStatus.
Save filled template
save_filled_template
stella template save-filled new-documentwriteFill a registered template and persist its DOCX in a matter. Use create_document (optionally with parent_id) or create_version with entity_id. Call list_templates for field paths; never guess required values. Missing required values always fail. Unfilled placeholders or failed AI drafts stop writes unless completion_mode is allow_partial. Returns document/version ids and fill diagnostics.
Save filled template
save_filled_template
stella template save-filled new-versionwriteFill a registered template and persist its DOCX in a matter. Use create_document (optionally with parent_id) or create_version with entity_id. Call list_templates for field paths; never guess required values. Missing required values always fail. Unfilled placeholders or failed AI drafts stop writes unless completion_mode is allow_partial. Returns document/version ids and fill diagnostics.
Create template
create_template
stella template createwriteCreate a template from a DOCX, or publish a new version of one. To create, pass a name and the document. To publish over an existing template, pass its template_id with the document; template_id with only a name renames it. Same-name templates are never merged: only template_id matches an existing one. For the document, pass file (preferred, up to 50 MB) or the original bytes as docx_base64 (max 196608 bytes decoded within the 524288-byte MCP request frame); never retype the file or strip parts out to fit. Read stella://reference/template-markers before authoring: markers are the docxtpl dialect of Jinja, and a value marker's filters ARE its field's configuration. Returns the template id, its fields, arrays, conditions, computed values and warnings; configure_template_fields writes those filters.
Configure template fields
configure_template_fields
stella template configure-fieldswriteConfigure an existing template's fields: who fills each one, its input control, options and validation. The configuration lives in the document, so this rewrites what carries each field (its markers at every occurrence, the {% if %} tags a rule replaces, the keyed markers that render a registry hit) and publishes the result. Pass template_id and one entry per field path; every path must be one the document already carries, and a property you leave out keeps what the marker says. Read stella://reference/template-fields first. Returns the template's full field configuration afterwards, plus the entries that could not be applied.
Preview template conditions
preview_template_conditions
stella template preview-conditionsreadAsk what current values decide without filling. Returns every AI condition with `path`, `label`, and either `state: "decided"`, its `value`, `decided_by` (`user` or `decision_model`), and `probability` for model answers; or `state: "undecided"` and `reason` (`no_decision_model`, `below_floor`, `failed`). Only the decision model runs; fill may later use the generative model. A boolean in `values` wins. Nothing is written.
List tasks
list_tasks
stella task listreadList tasks, or read one task in detail. Pass task_id for one task's fields, assignees, and linked entities. Otherwise pass matter_id to list one matter's tasks, or omit it to list tasks across every matter you can read; filter by status, due date (date_from/date_to, ISO YYYY-MM-DD), or assignee. Soonest due first, undated last. Each task names its matter (id, name, reference).
Save task
save_task
stella task savewriteCreate or update a task, and manage its assignees and entity links. Omit task_id to create a task (matter_id and name required). Pass task_id to update: set name, item_type, status, priority, or due_date (ISO YYYY-MM-DD, null to clear); add or remove one assignee (add_assignee_user_id / remove_assignee_user_id); link the task to another entity (link_entity_id) or remove a link (unlink_link_id). Returns the task ID.
Delete task
delete_task
stella task deletedestructivePermanently delete a task from its matter, together with its links, assignees and audit-visible field values. Refused while the matter is archived. This is irreversible.
List clauses
list_clauses
stella clause listreadList the clause library for this organization, or read one clause in detail. Pass clause_id to get a clause's body, description, usage notes, variants, and version history; add version_id to read one version's body. Otherwise list clauses (newest first), optionally filtered by category_id or a text query, and set include_categories to also return the category tree. Returns each clause's id, title, category, language, and current version.
Save clause
save_clause
stella clause savewriteCreate or update a clause in the organization's clause library. Omit clause_id to create (title and body required); pass clause_id to update. body is an ordered array of paragraphs, each with text and optional style, level, runs, list_kind, list_level, is_directive, directive_kind, and directive_expression. category_id, language, description, usage_notes, and metadata accept null to clear them on update. Set snapshot_version true on an update to also append a version snapshot of the body. Returns the clause id.
Delete clause
delete_clause
stella clause deletedestructivePermanently delete a clause and all its variants and versions from the organization's clause library. This is irreversible.
List playbooks
list_playbooks
stella playbook listreadList the review playbooks in this organization, or read one in detail. Pass playbook_id to get a playbook's positions (the issues it reviews, their questions, tiered rules, and ideal language), scope, and description. Otherwise list playbooks (newest first). Returns each playbook's id, name, and description.
Save playbook
save_playbook
stella playbook savewriteCreate a review playbook, or add, change, and remove positions in one. Omit playbook_id to create (name required); pass playbook_id and expected_updated_at to update. positions lists only what is added or changed, never the whole playbook: an entry with source_id replaces that stored position whole, an entry without one is added. Entries are checked one by one; a refused entry comes back in issues with the fix and the rest are saved. A saved playbook is a draft that a person approves in the editor before it can run. Returns the playbook id, the updatedAt to pass as the next expected_updated_at, and each written position's sourceId.
Run playbook
run_playbook
stella playbook runwriteRun a review playbook over a matter's documents. Materializes the playbook's extraction and verdict columns onto the matter's table and starts the AI review; findings populate asynchronously. Pass matter_id and playbook_id. Returns the number of columns queued for review.
List time entries
list_time_entries
stella time-entry listreadList time entries in a matter, or read one entry in detail. Pass time_entry_id to get a single entry. Otherwise pass matter_id to list the matter's entries, optionally filtered by entity_id (the item the time was logged against), user_id, a date-worked range (date_from/date_to, ISO YYYY-MM-DD), and status. Returns each entry's id, entity, user, date, minutes, rate (minor currency units), currency, narrative, and status. The response includes visibility: all_entries for billing reviewers, or own_entries when the caller can see only their own time; own_entries is not a matter total.
Save time entry
save_time_entry
stella time-entry savewriteCreate or update a time entry. Omit time_entry_id to create (matter_id, date_worked, timezone_id, duration_minutes, and narrative required; entity_id is optional context). Pass time_entry_id to update: set date_worked (with timezone_id), duration_minutes, narrative, invoice_narrative, billable, no_charge, entity_id (move the entry), task_code, and/or activity_code. The timekeeper's effective rate is resolved server-side. Durations are whole minutes. Returns the time entry ID.
Delete time entry
delete_time_entry
stella time-entry deletedestructiveDelete a time entry. A draft entry is permanently deleted; an approved entry is written off instead (kept for the audit trail, excluded from billing). A billed entry cannot be deleted until its invoice is reverted. Returns whether the entry was hard-deleted.
Resolve billing rate
resolve_rate
stella rate resolvereadResolve the effective hourly rate for a user on a given date in a matter, using its default rate table (user-specific rate first, then the table default). Returns the hourly rate in integer minor currency units (e.g. cents) and the currency, or nulls when no rate applies.
List invoices
list_invoices
stella invoice listreadList invoices in a matter, or read one invoice in detail. Pass invoice_id to get a single invoice with its line items (time entries and expenses). Otherwise pass matter_id to list the matter's invoices. Returns each invoice's id, number, reference, status, dates, currency, and total (integer minor currency units).
Get usage
get_usage
stella usage getreadRead the organization's current usage entitlement: plan, seats, billing period, and how many usage units (AI credits) remain this period. Returns { entitlement: null } when the organization has no active plan. Requires organization-settings management access.
List audit log
list_audit_log
stella audit-log listreadRead the organization's audit trail (compliance view). Returns audit entries newest first, each with its action, resource type and id, actor user id, matter, timestamp, and change detail. Filter by matter_id, action, resource_type (with optional resource_id), user_id, and a created-at range (from/to, ISO date-time). Paginate with limit and cursor. Requires organization audit-log access.
Prepare feedback
prepare_feedback
stella feedback preparereadDraft a bug, idea, missing-capability or docs report for the stella maintainers and get it back sanitized. Sends nothing: emails, UUIDs and ULIDs, secret-looking tokens, non-allowlisted URLs and IP addresses are redacted server-side, and the result is the report for you to show the human verbatim. Once they approve it, call submit_feedback with that same report and confirm: true. Describe the problem, then what you expected against what happened, then the steps. Refer to people by role, never by name. Never paste document text, matter or client names, or ids. Put the requestId of a failed call in context.request_id. The reporter's identity is stored privately and is never published.
Submit feedback
submit_feedback
stella feedback submitwriteFile the report prepared by prepare_feedback with the stella maintainers. This sends the content out of the workspace: it is stored, emailed to the maintainers, and may be posted as a public issue, so it is refused without confirm: true. emails, UUIDs and ULIDs, secret-looking tokens, non-allowlisted URLs and IP addresses are redacted server-side again here, and the reporter's identity is stored privately and never published. Returns a receipt to give the human. Re-sending identical content within a day returns the original receipt and sends nothing.
List capabilities
list_capabilities
stella capability listreadList the automatable capabilities beyond the curated tools: every safe backend operation (CRUD, exports, processing triggers) reachable through invoke_capability. Paginated; filter by domain (the id prefix, e.g. "time-entries") or access (read/write). Each item gives the capability id, description, access/destructive, its transport (whether this path can run it, which field takes a file, and what to use instead), handlerKind (workspace or root), and every OAuth scope it needs. Use describe_capability for the full input schema.
Describe capability
describe_capability
stella capability describereadDescribe one capability in full: its live input JSON Schema (body/params/query), required OAuth scopes, member permissions, whether it is destructive, its handler kind (workspace/root), its disposition, and its transport (whether this path can run it, which field takes a file, and what to use instead). Call this before invoke_capability to learn exactly what input to pass.
Invoke capability
invoke_capability
stella capability invokewriteInvoke one capability by id (from list_capabilities/describe_capability). Pass its input under input: { body, params, query } (no other top-level argument is accepted); matter-scoped capabilities take the target matter as input.params.matterId. Real authority is enforced per capability: the session must hold the capability's scope and your member role its permissions. Set validate_only: true to check input without running it; destructive capabilities require confirm: true after human approval.
audit-logs.list
capability:audit-logs.list
stella capability audit-logs listreadRead the organization's audit trail (compliance view). Returns audit entries newest first, each with its action, resource type and id, actor user id, matter, timestamp, and change detail. Filter by matterId, action, resourceType (with optional resourceId), userId, and a created-at range (from/to, ISO date-time). Paginate with limit and cursor. Requires organization audit-log access.
billing-codes.create
capability:billing-codes.create
stella capability billing-codes createwriteAdd one task or activity billing code to a matter's code list. The code string must be unique within the matter for its type, so the same literal may exist once as a task code and once as an activity code; a duplicate of the same type is refused, and the matter has a fixed cap on how many codes it may hold.
billing-codes.delete
capability:billing-codes.delete
stella capability billing-codes deletedestructivePermanently delete one billing code (a task or activity code) from a matter's code list. Time entries already recorded under it keep their stored code string, so past entries are not rewritten; the code just stops being offered.
billing-codes.list
capability:billing-codes.list
stella capability billing-codes listreadList a matter's task and activity billing codes, ordered by sort order then code, with cursor pagination. Filter by type (task or activity) and by whether the code is still active.
billing-codes.update
capability:billing-codes.update
stella capability billing-codes updatewriteChange one billing code's code string, label, sort order, or active flag in a matter. Only the fields you pass are written, the code string must stay unique within the matter for its type, and deactivating a code stops it being offered without rewriting entries already recorded under it.
case-law.analysis.generate
capability:case-law.analysis.generate
stella capability case-law analysis-generatewriteRead the structural analysis of one court decision, starting generation when there is none yet. Returns status done with the stored analysis, generating while a run is in flight (poll until it is done), or error when the decision is unknown or its text could not be parsed. Generation runs in the background and a call made while one is already running does not start a second.
case-law.ingestion.status
capability:case-law.ingestion.status
stella capability case-law ingestion-statusreadReport case-law corpus ingestion health for operators. Per source: adapter key and whether an adapter is still registered for it, enabled flag, sync cursor, decisions held against the total the publisher reports, decisions inserted in the last hour and last day, failures and the top error types in the last day, the last ingestion event, and standing reconciliation counts (slices surveyed, short slices, parked and terminal items). Requires organization audit-log access.
case-law.matter-links.batch.create
capability:case-law.matter-links.batch.create
stella capability case-law matter-links-batch-createwriteLink a selection of case-law decisions to the current matter in one call, each with an optional note. Best effort and idempotent: the response reports every decision asked for, under `linked` (newly pinned), `existing` (already pinned, returned unchanged with the note recorded earlier) or `rejected` with a reason — `not_found` for a decision that is not in the corpus, `limit` for one that would push the matter past its maximum number of links. A decision already pinned never counts against that maximum. The whole call is one transaction: either every link it reports lands, or none does. Repeat the call with the same items safely; the second call reports them as `existing`. At most as many items as the matter may hold links.
case-law.matter-links.create
capability:case-law.matter-links.create
stella capability case-law matter-links-createwriteLink one case-law decision from the corpus to the current matter, with an optional note. A decision that is not in the corpus is a 404; a decision already linked to this matter returns the existing link unchanged, note included, even when the matter is full, because re-linking adds nothing. The call is refused only when it would add a link past the matter's maximum. To link a selection at once, use the batch call instead of repeating this one.
case-law.matter-links.delete
capability:case-law.matter-links.delete
stella capability case-law matter-links-deletedestructiveUnlink one case-law decision from a matter, deleting the link and the note recorded on it. The decision itself stays in the case-law corpus and can be linked again.
case-law.matter-links.list
capability:case-law.matter-links.list
stella capability case-law matter-links-listreadList the case-law decisions linked to the current matter, newest link first, each with its note and the decision's row facts: case number, slug, ECLI, court, country, language, the decision's other language versions, date, type, citation count and headnote preview. Returns the whole set up to the per-matter link cap; there is no pagination.
catalogue.install-skill
capability:catalogue.install-skill
stella capability catalogue install-skillwriteInstall one catalogue skill into the organization by slug, at team scope (the default) or private scope. Team scope requires admin or owner. The skill is stored as bundled content, so it cannot be edited afterwards. Refused when that slug is already installed at the same scope, or when the scope's skill limit is reached.
catalogue.list-catalogue
capability:catalogue.list-catalogue
stella capability catalogue list-cataloguereadList the tool catalogue for the signed-in user's organization: curated skills, MCP connectors, and native tools, plus the organization's own custom skills and custom MCP connectors as synthetic entries. Each entry reports its install state, whether it is enabled, whether it is locked (a baseline capability that cannot be toggled), whether it is recommended for the organization's practice jurisdictions, and the handles the uninstall paths need. The practice jurisdictions behind those recommendations are returned alongside.
chat.delete-thread
capability:chat.delete-thread
stella capability chat delete-threaddestructivePermanently delete one of your own chat threads with its messages and the files uploaded to it; the stored file objects are deleted, not just dereferenced. Succeeds silently when the thread does not exist or belongs to someone else.
chat.export.create
capability:chat.export.create
stella capability chat export-createwriteExport one assistant chat message as a DOCX document with the selected citation style. Returns a short-lived download URL.
chat.fork.create
capability:chat.fork.create
stella capability chat fork-createwriteFork one of your own chat threads into a new thread that keeps the history up to a chosen answer, so another direction or model can be explored without touching the original. The boundary must be an assistant message: a fork branches off an answer, not off an ask. The new thread id is minted by the caller, which makes a retried fork return the existing copy instead of duplicating it. Attachments are duplicated, never shared: deleting either thread leaves the other's files intact. The fork records where it came from and starts with no compaction state of its own.
chat.get-messages
capability:chat.get-messages
stella capability chat get-messagesreadRead the most recent page of one of your own chat threads, together with the thread's context matters, model and reasoning-effort settings, anonymization flag, whether web search is available and enabled, and an estimate of the model context the next send would carry. Pass matterId for a matter-scoped thread and omit it for a global one; a scope that contradicts the stored thread is rejected. With allowMissingThread, a thread that does not exist yet returns an empty draft instead of a 404. Page further back with chat.get-older-messages.
chat.get-older-messages
capability:chat.get-older-messages
stella capability chat get-older-messagesreadPage backwards through one of your own chat threads using the olderCursor a previous read returned. Returns only the message page and the next cursor, without the thread settings and context estimate that chat.get-messages carries. The thread must be yours and the matterId scope must match the one it was created in.
chat.get-threads
capability:chat.get-threads
stella capability chat get-threadsreadList your own chat threads, most recently active first, split into global threads and groups per matter. Threads with no messages, and threads belonging to a matter that is being deleted, are left out. search matches the thread title or the matter name; paginate with limit and cursor.
chat.rename-thread
capability:chat.rename-thread
stella capability chat rename-threadwriteSet the title of one of your own chat threads. The new title is marked as user-chosen, so automatic title generation can never overwrite it afterwards. A thread that does not exist in the requested scope is a 404: this never creates one.
chat.update-thread
capability:chat.update-thread
stella capability chat update-threadwriteTurn web search on or off for one of your own chat threads. Unlike chat.rename-thread this is an upsert: when no thread exists under that id it is created as an empty placeholder carrying the flag, so a draft can record the setting before its first message is sent.
clauses.categories-create
capability:clauses.categories-create
stella capability clauses categories-createwriteCreate a category in the organization's clause library taxonomy, optionally under a parent category. Refused once the organization holds its maximum number of categories, or when the named parent does not exist.
clauses.categories-delete
capability:clauses.categories-delete
stella capability clauses categories-deletedestructiveDelete one category from the organization's clause library taxonomy. No clause is deleted: clauses filed under the category become uncategorized, and its child categories are re-parented to its own parent.
clauses.categories-list
capability:clauses.categories-list
stella capability clauses categories-listreadList the organization's clause categories in sort order, each with its id, parent, name, description, and sort order. The taxonomy is capped per organization and comes back whole; there is no pagination.
clauses.categories-update
capability:clauses.categories-update
stella capability clauses categories-updatewriteRename or re-describe one clause category, move it under a different parent (or to the root by passing null), or change its sort order. Only the fields you pass are written. A category cannot become its own parent, and a move that would make the tree circular is refused.
clauses.create
capability:clauses.create
stella capability clauses createwriteCreate a clause in the organization's clause library: a title and an ordered body of paragraphs, plus optional category, language, description, usage notes, and metadata. The clause starts at version 1 with a matching version snapshot. Refused when the organization is at its clause limit or the category does not exist.
clauses.delete
capability:clauses.delete
stella capability clauses deletedestructivePermanently delete a clause and all its variants and versions from the organization's clause library. This is irreversible.
clauses.get
capability:clauses.get
stella capability clauses getreadRead one clause in full: its body, category, language, description, usage notes, metadata, and current version number, plus every variant in sort order and the list of its stored versions. Use clauses.read-version for the body of a particular version.
clauses.list
capability:clauses.list
stella capability clauses listreadList the organization's clause library. Without q, clauses come back newest first with cursor pagination; with q they are matched on the title as a substring or on the clause text as a prefix search, ordered by title, and no cursor is returned. Filter by categoryId. Items carry title, category, language, description, and current version but not the body: read that with clauses.get.
clauses.read-version
capability:clauses.read-version
stella capability clauses read-versionreadRead the stored body of one specific clause version, with its version number and creation time. Use clauses.get for the clause's current body and its version list, and clauses.versions-restore to bring an old version back into use.
clauses.rewrite
capability:clauses.rewrite
stella capability clauses rewritewriteRewrite the prose of a clause body with the model, following a free-text instruction plus the clause title and usage notes when supplied. The body goes in and the revised body comes back, so this works on an unsaved draft as well; nothing is stored. The model is instructed to keep paragraph order, lists, and every {{ }} template marker, and to change ordinary paragraph text only, but the result is not verified against the original, so review a rewrite before saving one that carries markers. A changed paragraph loses its inline formatting. Consumes AI usage.
clauses.template-slot-preview
capability:clauses.template-slot-preview
stella capability clauses template-slot-previewreadResolve one template's clause slots to the plain text of the clauses linked to them, keyed by slot name, using the same version and variant rules the fill path applies, so the preview matches the filled document. Slots that are unlinked, or whose target version cannot be resolved, are left out and keep their marker visible.
clauses.update
capability:clauses.update
stella capability clauses updatewriteChange a clause's title, category, language, body, description, usage notes, or metadata; only the fields you pass are written. By default a new body is saved as the working copy without touching history. Pass snapshotVersion true to also append a version snapshot and move the current version forward: that is skipped when the body is identical to the latest snapshot, and refused when the clause is at its version limit.
clauses.variants-create
capability:clauses.variants-create
stella capability clauses variants-createwriteAdd a variant, an alternative wording of a clause carrying its own label, to one clause. Refused when the clause does not exist in this organization or already holds its maximum number of variants.
clauses.variants-delete
capability:clauses.variants-delete
stella capability clauses variants-deletedestructivePermanently delete one variant (an alternative wording) of a clause, leaving the clause and its other variants in place. Templates that used the variant fall back to the clause itself and keep only a stale label snapshot of what was removed.
clauses.variants-list
capability:clauses.variants-list
stella capability clauses variants-listreadList one clause's variants in sort order, each with its label, body, and position. A clause that does not belong to this organization is a 404.
clauses.variants-update
capability:clauses.variants-update
stella capability clauses variants-updatewriteChange one variant's label, body, or position within its clause; only the fields you pass are written.
clauses.versions-diff
capability:clauses.versions-diff
stella capability clauses versions-diffreadReturn a plain-text, line-level diff between one stored clause version and the clause's current body. An empty segment list means the two are identical. This is what backs the what-changed disclosure shown on a template link pointing at an outdated version.
clauses.versions-restore
capability:clauses.versions-restore
stella capability clauses versions-restorewriteRestore a stored clause version by copying its body onto the clause as a new version. History is append-only: the older versions stay and the version number moves forward rather than back. The body is read server-side from the version id, never supplied by the caller. Refused when the clause is at its version limit.
clauses.versions-summarize
capability:clauses.versions-summarize
stella capability clauses versions-summarizewriteSummarize in prose what changed between one stored clause version and the clause's current body, over the same diff clauses.versions-diff returns. Returns summary null when the two are identical, skipping the model call. Consumes AI usage.
contacts.business-registries-lookup
capability:contacts.business-registries-lookup
stella capability contacts business-registries-lookupreadLook up a company in a public business register (ARES, Brreg, Companies House, EDGAR, GCIS, KRS, ORSR, PRH, recherche-entreprises, or VIES). Pass a canonical identifier (company/registration number, VAT number) for an exact match, or a company name to search where the register supports it. Returns registered names, addresses, and registry-specific details.
contacts.create
capability:contacts.create
stella capability contacts createwriteCreate a contact in the organization address book. type (person or organization), displayName, and the contact id are supplied in the body; names, emails, phones, addresses, tags, registration and tax numbers, bank and billing details, default hourly rate, payment terms, and originating or responsible attorneys are optional. Refused once the organization holds its maximum number of contacts, or when an attorney id is not a member of the organization.
contacts.delete
capability:contacts.delete
stella capability contacts deletedestructivePermanently delete a contact from the organization address book. Rejected while the contact is still the client of any matter. This is irreversible.
contacts.get
capability:contacts.get
stella capability contacts getreadRead a contact by ID.
contacts.import
capability:contacts.import
stella capability contacts importwriteImport a reviewed batch of up to 500 contacts into the organization address book. Supply a caller-generated importRequestId: replaying it with the same rows returns the original result, while changing the rows is rejected. taxIdScheme selects tax-id validation (none, or br_cpf_cnpj checksums with duplicate detection). Rows failing the import rules, duplicates, and over-limit rows are skipped; all accepted rows commit atomically.
contacts.list
capability:contacts.list
stella capability contacts listreadList the organization address book alphabetically by display name, with cursor pagination. Filter by type (person or organization) and by q, which matches a substring of the display name only. Each item carries the names, emails, phones, tags, and the number of matters the contact is the client of. Use contacts.search for a short unpaginated lookup that also matches first, last, and organization names.
contacts.search
capability:contacts.search
stella capability contacts searchreadLook up contacts by name, for a picker: q matches a substring of the display name, first name, last name, or organization name, normalized so Arabic spellings match, optionally narrowed by type. Returns at most 20 contacts ordered by display name with no cursor; use contacts.list to page the whole address book.
contacts.update
capability:contacts.update
stella capability contacts updatewriteChange a contact in the organization address book, writing only the fields you pass and clearing a nullable one when you pass null. metadata is merged into the stored object rather than replacing it. An attorney id that is not a member of the organization is refused, and an unknown contact is a 404.
document-translations.prepare
capability:document-translations.prepare
stella capability document-translations preparereadInspect the current DOCX version and prepare its comment requirements for translation.
document-translations.runs.create
capability:document-translations.runs.create
stella capability document-translations runs-createwriteStart a background document translation and save only the completed output as a new document.
document-translations.runs.get
capability:document-translations.runs.get
stella capability document-translations runs-getreadRead a document translation run and its progress.
document-types.create
capability:document-types.create
stella capability document-types createwriteAdd one document type to the organization's classification list. Its key is slugified from the label and de-duplicated automatically, and the type is appended at the end of the display order. Refused once the organization holds the maximum number of document types.
document-types.delete
capability:document-types.delete
stella capability document-types deletedestructiveRemove one document type from the organization's classification list so it can no longer be assigned. Documents already classified as that type keep their stored label; the call is refused while any playbook is scoped to the type.
document-types.list
capability:document-types.list
stella capability document-types listreadList the organization's document types in display order, each with its id, immutable key, label, and sort order. The starter taxonomy is seeded when the organization is created, so this only ever reads. The list is bounded and returned whole rather than paginated.
document-types.reorder
capability:document-types.reorder
stella capability document-types reorderwriteSet the display order of the organization's document types: each id's position in orderedIds becomes its sort order. Ids that do not belong to the organization are ignored, and any type you leave out of the list keeps the sort order it already had. Ordering is cosmetic, so no audit event is recorded.
document-types.update
capability:document-types.update
stella capability document-types updatewriteRename one document type. Only the label changes: the key is immutable, and the display order is set through document-types.reorder.
documents.compare
capability:documents.compare
stella capability documents comparewriteCreate tracked-changes DOCX redlines between stored versions of one document in a matter. Select an explicit base and up to 8 targets, or compare one target with its immediate predecessor. Strict mode refuses an unverified redline; best-effort returns it with explicit verification failures. Output preview compares without writing; output download writes each redline to temporary storage and returns an expiring link without saving it to the document; output version explicitly saves each successful redline as a derived document version without replacing the current version. The operation may partially succeed across multiple targets, so inspect every result status. Saving the same comparison inputs again returns the same derived version; retrying a lost response does not create a duplicate. Folio-exact review preserves both document endpoints; compatibility reports when pending history requires Folio and may be discarded by Word on save. Created results include an openUrl and a temporary DOCX download URL; downloadable results carry the temporary link alone. Show these links to the user; if download delivery is unavailable, the redline is already saved: open it in stella instead of creating it again.
entities.bilingual.create
capability:entities.bilingual.create
stella capability entities bilingual-createwriteCreate a two-column bilingual copy of a DOCX document (source text on the left, a copy to translate on the right) as a new document.
entities.clip
capability:entities.clip
stella capability entities clipwriteSave an external source as a link entity in the current matter: a title and url, plus optional snippet, citation, jurisdiction, and source type. No file is stored, only the reference and its metadata. Refused once the matter holds its maximum number of entities.
entities.copy-to-matter
capability:entities.copy-to-matter
stella capability entities copy-to-matterdestructiveCopy a document or folder subtree into another matter, or move it with deleteSource, which permanently deletes the source documents and their no-longer-referenced files. A copy starts a new version history; a move carries the existing one across, so every printed reference keeps resolving. Fields whose property has no counterpart in the target matter are dropped rather than remapped, so a move can lose column values; read-only entities are refused.
entities.create
capability:entities.create
stella capability entities createwriteCreate an empty document, folder, or task in a matter (kind defaults to document) with a name and an optional parent folder. Nothing is attached: use entities.upload or the uploads flow to bring in a file, and entities.create-blank-document for a document that starts from an empty DOCX. Refused when the matter is at its entity limit or the parent is not a usable folder in this matter.
entities.create-blank-document
capability:entities.create-blank-document
stella capability entities create-blank-documentwriteCreate a document in a matter whose file is a fresh empty DOCX built from the stella template, optionally inside a parent folder. Returns the entity, its file field, and the file name, so it can be opened in the editor straight away. Use entities.create for a document with no file at all.
entities.create-from-legal-source
capability:entities.create-from-legal-source
stella capability entities create-from-legal-sourcewriteCompile a plain-text legal draft written in stella's legal-source markup into a DOCX and store it as a new document in the current matter. Returns the new entity and its file field plus a ready-made link and mention for chat. Refused with a structural-repair error when the source cannot be compiled, and when the generated file exceeds the document size limit or the matter is at its entity limit.
entities.delete
capability:entities.delete
stella capability entities deletedestructivePermanently delete documents, folders, or tasks from one matter, together with their versions, field values, and stored files. Refused while any of them is read-only or has a document-processing run in flight; unlike entities.delete-version this is a real delete, not a tombstone.
entities.delete-version
capability:entities.delete-version
stella capability entities delete-versiondestructiveTombstone one version of a document: it disappears from listings, downloads, and restores, but the row and its stored file are retained for chain of custody. Deleting the current version promotes the next surviving one; the last remaining version, a read-only document, and a version still being processed are refused.
entities.duplicate
capability:entities.duplicate
stella capability entities duplicatewriteCopy one document, or a folder with its whole subtree, inside the same matter, placing the copy alongside the original. Stored files are copied too, so the copies own their own bytes and get their own text extraction and PDF and thumbnail derivatives. Use entities.copy-to-matter to copy into a different matter.
entities.get
capability:entities.get
stella capability entities getreadRead one document, folder, or task in a matter: its kind, name, current version id, creation time and document reference, that version's field values, and which field is the current text-extraction source. Use entities.read-version-by-id to read a historical version, and entities.read-versions for the version list.
entities.list
capability:entities.list
stella capability entities listreadList a matter's documents, folders, and tasks as table rows, using the same filters, sorts, and search the matter's views use, with cursor pagination. fieldMode and fieldIds choose which column values come back, excludedKinds drops kinds you do not want, and previewableForAi keeps only documents whose content a model can read. Use entities.read-filesystem-tree for the same query shaped as a folder tree, and entities.get to read one row in full.
entities.list-files
capability:entities.list-files
stella capability entities list-filesreadList every document in a matter that has an uploaded file, oldest first with cursor pagination, each with its entity id, name, parent folder, file name, and media type. Documents without a file, and folders and tasks, are left out; use entities.list for the full table with column values.
entities.list-folders
capability:entities.list-folders
stella capability entities list-foldersreadList the folders of a matter, oldest first with cursor pagination, each with its id, name, and parent folder. Documents and tasks are left out; use entities.read-filesystem-tree for the folder tree with the documents in it.
entities.move
capability:entities.move
stella capability entities movewriteMove one document, folder, or task into another folder of the same matter, or out to the matter root by passing parentId null. The target must be a folder in this matter, a folder may not be moved into itself or into one of its own descendants, and a read-only entity is refused.
entities.ocr.create
capability:entities.ocr.create
stella capability entities ocr-createwriteQueue an unencrypted PDF field for the next searchable-text recognition batch. Returns the durable run and reports when that source was already processed.
entities.organize-suggestions
capability:entities.organize-suggestions
stella capability entities organize-suggestionswritePropose a folder placement and a tidied file name for up to 100 documents of a matter, given the folders that already exist plus an optional locale and free-text instructions. Returns one suggestion per file (folder path, suggested name, detected date, document type) and the empty folders it suggests removing. Suggestions only: nothing is moved, renamed, or deleted, so apply what you want with entities.move and entities.rename. Per-document summaries are generated and cached where missing, and the call consumes AI usage.
entities.read-filesystem-tree
capability:entities.read-filesystem-tree
stella capability entities read-filesystem-treereadRead a matter's folders and documents as one unpaginated tree, using the same filters, sorts, and search as the table listings; tasks are excluded. When a filter or search hides intermediate folders, their parent links come back separately as ancestorLinks, so a matched row's full path can still be resolved without those folders entering the tree itself.
entities.read-summaries
capability:entities.read-summaries
stella capability entities read-summariesreadList a matter's documents, folders, and tasks as bare id and name pairs, newest first with cursor pagination. The cheapest listing available: no column values, no file metadata, no filters. Use entities.read-summaries-count for the total and entities.list when you need column values or filtering.
entities.read-summaries-count
capability:entities.read-summaries-count
stella capability entities read-summaries-countreadCount all documents, folders, and tasks in a matter. The companion total for entities.read-summaries, whose pages carry no count of their own.
entities.read-version-by-id
capability:entities.read-version-by-id
stella capability entities read-version-by-idreadRead one specific version of a document in a matter: its version number, stamp, creation time, and the field values stored on that version. A version tombstoned by entities.delete-version reads as not found. Use entities.get for the current version.
entities.read-versions
capability:entities.read-versions
stella capability entities read-versionsreadList one document's version history, newest first, with a before cursor for older pages. Each version carries its number, stamp, label, description, the words added and removed against its predecessor, its author, and the file attached to it; tombstoned versions are left out. The response also names the entity's current version.
entities.read-window
capability:entities.read-window
stella capability entities read-windowreadRead a window of a matter's documents, folders, and tasks with the same filters, sorts, search, and field selection as entities.list, plus the find filter, but with the page bounds the virtualized table scrolls by (200 rows by default). Prefer entities.list unless you are filling a table viewport.
entities.rename
capability:entities.rename
stella capability entities renamewriteRename one document, folder, or task in a matter. For a document the stored file name is renamed to match, so the table's file column stays in step with the entity name. A read-only entity is refused.
entities.restore-version
capability:entities.restore-version
stella capability entities restore-versionwriteRestore a historical document version by copying it into a new current version; the prior history remains intact.
entities.update-version-description
capability:entities.update-version-description
stella capability entities update-version-descriptionwriteSet or clear the free-text description on one version of a document, up to 1024 characters. An annotation only: no file and no field value changes. A version tombstoned by entities.delete-version is refused. Use entities.update-version-label for the short label instead.
entities.update-version-label
capability:entities.update-version-label
stella capability entities update-version-labelwriteSet or clear the short label on one version of a document, up to 128 characters, for marking a version as a draft, an execution copy, and so on. An annotation only, like entities.update-version-description, which carries the longer note. A tombstoned version is refused.
entities.version-diff
capability:entities.version-diff
stella capability entities version-diffreadReturn a plain-text, line-level diff of one document version's DOCX against its immediate predecessor; the first version is diffed against an empty document. Both texts are resolved server-side from the ids, and an empty segment list means nothing changed. Use documents.compare for a DOCX redline between versions you choose.
entities.version-summarize
capability:entities.version-summarize
stella capability entities version-summarizewriteSummarize in prose what changed between one document version and its predecessor, over the same server-resolved text diff entities.version-diff returns. Returns summary null for identical versions, skipping the model call entirely. Consumes AI usage.
entity-views.create
capability:entity-views.create
stella capability entity-views createwriteSave a personal Table or Kanban view across accessible matters. Layout filters and sorts use the same contract as matter views.
entity-views.delete
capability:entity-views.delete
stella capability entity-views deletedestructiveDelete one personal cross-matter view. This does not delete its records or proposals.
entity-views.list
capability:entity-views.list
stella capability entity-views listreadList the current user's saved cross-matter views in tab order. The complete list is bounded by the per-user creation limit.
entity-views.reorder
capability:entity-views.reorder
stella capability entity-views reorderwriteReorder every personal cross-matter view. Supply each of the user's view IDs exactly once.
entity-views.rows.list
capability:entity-views.rows.list
stella capability entity-views rows-listreadRead a table or Kanban window across accessible matters, with the same filters, sorts, fields and cursors as a matter view. With `inboxView`, the window also holds the caller's Inbox signals for that view, ordered by the same sorts under one cursor, and limits tasks to the view's lifecycle slice. Task rows carry their governed-work risk as of `asOf`.
entity-views.update
capability:entity-views.update
stella capability entity-views updatewriteChange the name or layout of one personal cross-matter view. Other users' views cannot be changed.
expenses.create
capability:expenses.create
stella capability expenses createwriteRecord a disbursement in the current matter against a work item (matterId: the document, folder, or task the cost belongs to). amount is an integer in minor currency units with a 3-letter currency; dateIncurred is read in the timezoneId you pass and is refused when it is in the future or older than the entry-age limit. The expense starts as a draft.
expenses.delete
capability:expenses.delete
stella capability expenses deletedestructiveDelete an expense: a draft expense is permanently deleted, and any other unbilled expense is written off instead (kept for the audit trail, excluded from billing). A billed expense is refused until its invoice is reverted; the return value says which of the two happened.
expenses.list
capability:expenses.list
stella capability expenses listreadList expenses in a matter, earliest date first, with cursor pagination. Filter by userId, work item (matterId), a date-incurred range (dateFrom/dateTo, ISO YYYY-MM-DD), status, category, and billable. Each item carries the amount in minor currency units, currency, category, markup percentage, status, and the recording user's name.
expenses.update
capability:expenses.update
stella capability expenses updatewriteChange a draft or approved expense in a matter: its date, amount, currency, category, description, invoice description, billable flag, markup, work item, or status (draft or approved). A billed or written-off expense is refused; use expenses.delete to write off an unbilled one.
fields.kanban-placement.update
capability:fields.kanban-placement.update
stella capability fields kanban-placement-updatewriteMove one entity across writable Kanban axes in one transaction. The request may change a task status, up to two property values, or both.
fields.mark-column-flag
capability:fields.mark-column-flag
stella capability fields mark-column-flagwriteSet or clear the verified or locked flag on one column's cells across every document a filter selects in a matter, working in batches until the whole selection is covered. Folders and tasks are never touched. Returns how many cells changed plus an addedAt stamp: pass that stamp back as onlyAddedAt with set false to undo exactly this mark and leave flags from other marks alone. Pass groupByPropertyId and groupValue to restrict the batch to one group of a grouped view.
fields.update-cell-metadata
capability:fields.update-cell-metadata
stella capability fields update-cell-metadatawriteSet the manual flags and lock state of one cell, meaning one document's value for one property. manualFlags is merged against baseManualFlags rather than overwritten, so flags added or removed by someone else since you read the cell survive; when no flags remain and the cell is not locked, the metadata row is deleted. Use fields.upsert-by-id to change the cell's value itself, and fields.mark-column-flag to flag a whole column at once.
fields.upsert-by-id
capability:fields.upsert-by-id
stella capability fields upsert-by-idwriteSet a document's value for a property (a cell in the matter's table). Pass the document entityId, the propertyId (from list_properties), and a content object whose 'type' matches the property's value type: text (value: string), single-select (value: string or null), multi-select (value: array of strings), date (value: ISO YYYY-MM-DD or null), or int (value: integer, optional currency: 3-letter ISO code). An empty value clears the cell.
flows.create
capability:flows.create
stella capability flows createwriteCreate an automation flow definition in the organization: name, description, ordered steps, a trigger, and whether it is enabled. The definition is validated before it is stored, and a schedule trigger is registered with the scheduler afterwards. Refused once the organization holds its maximum number of flows.
flows.delete
capability:flows.delete
stella capability flows deletedestructivePermanently delete one automation flow definition from the organization and remove its schedule trigger. Past runs survive on their own definition snapshot; an enabled flow with runs in flight is deleted without warning.
flows.get
capability:flows.get
stella capability flows getreadRead one flow definition: its name, description, steps, trigger, and enabled flag. Use flows.list to browse the organization's flows and flows.run-detail to read a run of one.
flows.list
capability:flows.list
stella capability flows listreadList flow definitions available to the organization, with optional status filtering and pagination.
flows.run-cancel
capability:flows.run-cancel
stella capability flows run-cancelwriteCancel a flow run that is still in progress in a matter, returning the run id and the status it settled on. Work already committed by steps that finished is not undone.
flows.run-detail
capability:flows.run-detail
stella capability flows run-detailreadRead one flow run, including its current status, inputs, outputs, steps, and review state.
flows.run-list
capability:flows.run-list
stella capability flows run-listreadList flow runs in a matter, including lifecycle state and pagination metadata.
flows.run-review
capability:flows.run-review
stella capability flows run-reviewwriteResolve a flow run waiting at a review gate: pass decision approved or rejected, with an optional note. The run continues or stops accordingly, and its id and new status come back.
flows.run-start
capability:flows.run-start
stella capability flows run-startwriteStart a manual flow run in a matter using a flow definition and optional input documents. Returns the run ID and initial status.
flows.update
capability:flows.update
stella capability flows updatewriteReplace one flow definition's name, description, steps, trigger, and enabled flag. The whole definition is revalidated and written, so this is not a partial update. The scheduler row is reconciled afterwards, so changing or removing a schedule trigger, or disabling the flow, also stops it from firing.
invoices.add-entries
capability:invoices.add-entries
stella capability invoices add-entrieswriteAttach approved, billable, not-yet-invoiced time entries and expenses to a draft invoice, marking them billed and recomputing the invoice total. Every entry must match the invoice currency, because an invoice is single-currency and nothing is converted. Only draft invoices accept entries, and a concurrent change to the same entries fails with a retryable conflict rather than attaching part of the set.
invoices.create
capability:invoices.create
stella capability invoices createwriteCreate a draft invoice from approved, billable, not-yet-invoiced time entries in a matter, marking them billed and setting the total from their billed minutes and recorded rates. Every entry must already carry the invoice currency, since nothing is converted, and the invoice number must not already be in use. Expenses are added afterwards with invoices.add-entries.
invoices.delete
capability:invoices.delete
stella capability invoices deletedestructiveDelete a draft invoice and return every time entry and expense on it to approved, unbilled status so they can be invoiced again. Only draft invoices can be deleted: a sent, paid, or void invoice is refused.
invoices.get
capability:invoices.get
stella capability invoices getreadRead one invoice with its full line detail: every attached time entry with its work item, every attached expense with its work item, plus status, dates, currency, and total. Use invoices.list for a paginated summary without line items.
invoices.list
capability:invoices.list
stella capability invoices listreadList a matter's invoices oldest first with cursor pagination, returning each invoice's number, reference, status, dates, currency, and total, but not its line items. Use invoices.get to read the attached time entries and expenses.
invoices.remove-entries
capability:invoices.remove-entries
stella capability invoices remove-entrieswriteDetach time entries and expenses from a draft invoice, returning them to approved, unbilled status and recomputing the invoice total. Reversible: the same entries can be attached again with invoices.add-entries, and nothing is deleted. Only draft invoices may be changed, and ids that are not on this invoice are skipped without an error.
invoices.transition
capability:invoices.transition
stella capability invoices transitionwriteMove an invoice through its lifecycle with one action: finalize (draft to finalized), send (finalized to sent), mark_paid (sent to paid), revert_to_draft (finalized back to draft), or void (from finalized, sent, or paid). Voiding also releases every attached time entry and expense back to approved, unbilled status and clears the paid timestamp. An action the invoice's current status does not allow is refused.
invoices.update
capability:invoices.update
stella capability invoices updatewriteChange a draft invoice's number, invoice date, due date, reference, notes, or currency. Only draft invoices can be edited, and the currency cannot change while any time entry or expense is still attached to the invoice.
legislation.boe-get-law
capability:legislation.boe-get-law
stella capability legislation boe-get-lawreadRead one consolidated Spanish law from the BOE by its BOE-X-YYYY-N identifier. The metadata, analysis, fullText, and eli flags select which blocks the BOE returns; this queries the BOE service directly rather than the stella legislation corpus.
legislation.boe-law-structure
capability:legislation.boe-law-structure
stella capability legislation boe-law-structurereadRead the block outline of one consolidated Spanish BOE law: its parts, articles, and provisions with the block ids that address them. Use legislation.boe-text-block to fetch the text of a single block.
legislation.boe-related-laws
capability:legislation.boe-related-laws
stella capability legislation boe-related-lawsreadList the Spanish BOE laws related to one law, narrowed by relationType: modifies, modifiedBy, derogates, derogatedBy, or all (the default).
legislation.boe-search
capability:legislation.boe-search
stella capability legislation boe-searchreadSearch Spanish consolidated legislation on the BOE. At least one filter is required: free text, title, department code, legal-range code (law rank), subject-matter code, or a publication date range as YYYYMMDD. Paginate with limit and the opaque cursor. This queries the BOE service live; use the search_legislation tool to search the stella legislation corpus instead.
legislation.boe-text-block
capability:legislation.boe-text-block
stella capability legislation boe-text-blockreadRead the text of one block of a consolidated Spanish BOE law, addressed by the law identifier and a block id taken from legislation.boe-law-structure.
legislation.borme-summary
capability:legislation.borme-summary
stella capability legislation borme-summaryreadRead the BORME summary the Spanish commercial registry gazette published on one date, given as YYYYMMDD.
legislation.get
capability:legislation.get
stella capability legislation getreadRead one legislation document from the stella corpus by id: its ELI, title, country, language, document type, status, effective and version-validity dates, source links, full text, and parsed structure. Only documents from sources cleared for redistribution are returned; anything else reads as not found.
legislation.search
capability:legislation.search
stella capability legislation searchreadFull-text search the stella legislation corpus, returning ranked results with a highlighted snippet and each document's ELI, title, country, language, type, status, and effective date. Filter by jurisdiction, document type, status, source, language, and effective-date range; paginate with limit and cursor. Admitted jurisdiction codes (uppercase): CZE. Omit jurisdiction to search all admitted jurisdictions. Only admitted jurisdictions and sources cleared for redistribution are searched. Read a hit in full with legislation.read; use legislation.boe-search to query the Spanish BOE service directly instead.
lists.columns.create
capability:lists.columns.create
stella capability lists columns-createwriteAdd a column to a list by binding one of the matter's properties to it, with an optional position and a required flag. The list must be active and the property must belong to the same matter. A property can be bound only once per list: binding it again returns the existing column rather than creating a second one, except once the list holds its maximum number of columns, where the cap is checked first and the call is refused.
lists.create
capability:lists.create
stella capability lists createwriteCreate a list in a matter from a name and an optional description; it starts active and empty. Refused once the matter holds its maximum number of lists. Add structure afterwards with lists.sections.create and lists.columns.create.
lists.generation-candidates.acceptance.create
capability:lists.generation-candidates.acceptance.create
stella capability lists generation-candidates-acceptance-createwriteAccept one candidate from a generation run: create the item it proposes as a task in the matter, optionally in a named section, and copy the candidate's sources onto the new item with their locators and quotes. The candidate is claimed before the item is created, so two concurrent accepts cannot both produce one, and the run flips to committed once no candidate is left pending. A candidate whose sources have disappeared is refused and the reserved item is cleaned up.
lists.generation-candidates.create
capability:lists.generation-candidates.create
stella capability lists generation-candidates-createwriteSubmit the candidates a generation run produced: per candidate a name, description, item type, status, priority, due date, suggested assignees, and the sources it was drawn from, each naming a document version with a locator and optional quote. Every source must be one of the run's own source versions. The run moves from running to review; candidates stay proposals until they are accepted or rejected.
lists.generation-candidates.list
capability:lists.generation-candidates.list
stella capability lists generation-candidates-listreadList one generation run's candidates in proposal order with cursor pagination: the proposed item fields, the candidate's status, the item it was accepted as when it has one, and the sources it cites. The run's own status is returned alongside the page.
lists.generation-candidates.rejection.create
capability:lists.generation-candidates.rejection.create
stella capability lists generation-candidates-rejection-createwriteReject one pending candidate of a generation run so it is never turned into a list item. Only a pending candidate can be rejected; the run flips to committed once nothing is left pending. Nothing is deleted: the candidate stays in the run with status rejected.
lists.generations.create
capability:lists.generations.create
stella capability lists generations-createwriteStart a generation run over a list: an instruction plus the document versions to read, each named by its entity and version id and each appearing once. Every source must be a live document version in this matter. Returns the run id with status running; the candidates it produces are submitted separately and leave the run in review.
lists.generations.list
capability:lists.generations.list
stella capability lists generations-listreadList one list's generation runs, newest first, with cursor pagination: each run's status, its instruction, and its created, updated, and completed timestamps.
lists.get
capability:lists.get
stella capability lists getreadRead one list with its sections in order, its columns (each bound property with its position and required flag), and how many items it holds. The items themselves come from lists.items.list.
lists.items.activity.list
capability:lists.items.activity.list
stella capability lists items-activity-listreadRead one list item's activity trail, newest first with cursor pagination: the audit entries recorded against the item and against the task behind it, each with its action, the actor's name, the recorded changes, and the operation label.
lists.items.comments.create
capability:lists.items.comments.create
stella capability lists items-comments-createwriteAdd a comment to one list item. The comment is stored against the item and shows up in its activity trail.
lists.items.list
capability:lists.items.list
stella capability lists items-listreadList one list's items in list order with cursor pagination. Each item carries its name, item type, task status, priority, due date, section, position, description, and review status, plus the values it holds for the properties the list binds as columns.
lists.items.reviews.update
capability:lists.items.reviews.update
stella capability lists items-reviews-updatewriteRecord a review decision on one list item, with an optional note. The item's review status becomes that decision and the decision is appended to the item's review history; an unrecognized decision is refused.
lists.items.sources.create
capability:lists.items.sources.create
stella capability lists items-sources-createwriteAttach a source to one list item: the document version it comes from plus a locator (the whole document, a DOCX block, or a PDF page) and an optional quote. The source must be a live document version in this matter. A new source starts unverified; change that with lists.items.sources.verification.update.
lists.items.sources.list
capability:lists.items.sources.list
stella capability lists items-sources-listreadList the sources attached to one list item with cursor pagination, each with the document version it points at, its locator, its quote, and its verification status with who verified it and when.
lists.items.sources.verification.update
capability:lists.items.sources.verification.update
stella capability lists items-sources-verification-updatewriteSet the verification status of one source attached to a list item. Any status other than unverified records who set it and when; setting it back to unverified clears both.
lists.items.update
capability:lists.items.update
stella capability lists items-updatewriteChange one list item's section, its ordering position within the list, or its description; only the fields you pass are written, and a section that does not belong to this list is refused. The item's name, status, priority, and due date live on the task behind it, so change those with tasks.update.
lists.list
capability:lists.list
stella capability lists listreadList a matter's lists, newest first, with cursor pagination, filtered by status (active by default, archived on request). Each entry carries the name, description, status, and timestamps.
lists.sections.create
capability:lists.sections.create
stella capability lists sections-createwriteAdd a section to an active list, with a name and an optional ordering position. Refused when the list is not active or already holds its maximum number of sections.
lists.update
capability:lists.update
stella capability lists updatewriteRename a list, change its description, or move it between active and archived. Only the fields you pass are written, an unrecognized status is refused, and a call that changes nothing is a no-op rather than an error.
matters.anonymization-allowlist.create
capability:matters.anonymization-allowlist.create
stella capability matters anonymization-allowlist-createwriteAdd a never-mask entry to a matter's anonymization allowlist, so a term that detection finds is left in the clear. scope workspace covers the whole matter; scope document covers one document and needs an entityId belonging to this matter. Only matter-scoped entries can be created here, never organization-wide ones. A term already listed is a no-op, until the matter reaches its allowlist limit: the cap is checked before the duplicate is detected, so replaying an existing entry is refused there rather than reported as a no-op.
matters.anonymization-allowlist.delete
capability:matters.anonymization-allowlist.delete
stella capability matters anonymization-allowlist-deletedestructiveRemove one anonymization allowlist entry from a matter, so the term it exempted is masked again from the next detection run on. Only entries scoped to this matter can be removed here, never organization-wide ones, and output already anonymized is not revisited.
matters.anonymization-allowlist.list
capability:matters.anonymization-allowlist.list
stella capability matters anonymization-allowlist-listreadRead the never-mask entries that apply in a matter: the organization-wide ones plus the matter's own and, when entityId is given, that document's own, merged into one list so a detection run can be filtered in a single pass.
matters.anonymization-terms.create
capability:matters.anonymization-terms.create
stella capability matters anonymization-terms-createwriteAdd always-mask terms to a matter's anonymization gazetteer, each with a canonical form, a label, and optional spelling variants. Idempotent per canonical form: a term the matter already holds is left as it is and not counted as inserted. Refused when the batch would push the matter past its term limit. Organization-wide terms are managed separately.
matters.anonymization-terms.delete
capability:matters.anonymization-terms.delete
stella capability matters anonymization-terms-deletedestructiveRemove one always-mask term from a matter's anonymization gazetteer, so it is no longer force-masked and is redacted only when detection finds it on its own. Only entries scoped to this matter can be removed here, never organization-wide ones; text already sent to a provider is unaffected.
matters.anonymization-terms.list
capability:matters.anonymization-terms.list
stella capability matters anonymization-terms-listreadRead a matter's own always-mask terms with their canonical form, label, variants, and enabled flag. Organization-wide terms are not included; read those with organization-settings.read-anonymization-blacklist.
matters.archive
capability:matters.archive
stella capability matters archivewriteArchive a matter: it stops being writable and is cleared from members' last-visited matter. Reversible with matters.unarchive, and nothing is deleted. Refused while document processing is running in the matter or any timer is still running there.
matters.cell-retry
capability:matters.cell-retry
stella capability matters cell-retrywriteRe-run the AI extraction for one cell, meaning one document's value for one AI column, in a matter. Refused when the property is not AI-extracted, when the document is read-only, when the cell is locked, and while another workflow is already running in the matter.
matters.create
capability:matters.create
stella capability matters createwriteCreate a new matter (name required; pass clientId to attach a client contact). Returns the matter ID.
matters.delete
capability:matters.delete
stella capability matters deletedestructivePermanently delete a matter and all its documents, tasks, fields, and chat history. This is irreversible.
matters.duplicate
capability:matters.duplicate
stella capability matters duplicatewriteCopy a matter into a new one: its columns with their dependencies, views, members, party contacts, client, billing reference, colour, and lead. With includeContent true its documents, folders, tasks, and their stored files are copied as well; with false the new matter starts empty. The copy takes the organization's next matter number and its name gains a numeric suffix when earlier copies exist. Refused once the organization is at its matter limit.
matters.list
capability:matters.list
stella capability matters listreadList the matters you can access.
matters.matter-contacts-create
capability:matters.matter-contacts-create
stella capability matters matter-contacts-createwriteLink a contact to a matter in a party role (opposing party/counsel, co-counsel, witness, expert witness, third party, judge, mediator, or other). Pass contactId with role to link.
matters.matter-contacts-delete
capability:matters.matter-contacts-delete
stella capability matters matter-contacts-deletedestructiveRemove one contact from a matter's party list, deleting the link with the party role and notes recorded on it. The contact stays in the organization address book; use contacts.delete to remove it from there.
matters.matter-members-add
capability:matters.matter-members-add
stella capability matters matter-members-addwriteAdd one member of the organization to a matter, granting them access to it. A user who is already a member is a 409, and the call is refused once the matter holds its maximum number of members. Revoke access with matters.matter-members-remove.
matters.matter-members-remove
capability:matters.matter-members-remove
stella capability matters matter-members-removedestructiveRemove one member from a matter, revoking their live access and cancelling their open desktop editing sessions. Their active work obligations are unassigned rather than deleted; refused when they are the matter's last member, when a timer of theirs is still running, or when they own more work obligations than one call may unassign at once.
matters.read-justifications
capability:matters.read-justifications
stella capability matters read-justificationsreadRead the stored justifications for the current versions of up to one page of documents in a matter: per extracted cell, the explanation the model gave, the bounding boxes on the source file, and the file fields those boxes belong to.
matters.read-workflow-status
capability:matters.read-workflow-status
stella capability matters read-workflow-statusreadReport whether an extraction workflow is running in a matter and describe its most recent run: scope, status, how many targets it covers and how many are done, error code, and start and finish times.
matters.read-workflow-target-count
capability:matters.read-workflow-target-count
stella capability matters read-workflow-target-countreadCount the documents an extraction workflow would process in a matter, optionally narrowed to a set of entity ids. Use it before matters.workflow-start to size the run.
matters.search-preview.get
capability:matters.search-preview.get
stella capability matters search-preview-getreadReturn bounded task and document highlights for a matter search-result preview.
matters.unarchive
capability:matters.unarchive
stella capability matters unarchivewriteReturn an archived matter to active so it is writable again. The counterpart of matters.archive: a matter that is not archived is left exactly as it is.
matters.update
capability:matters.update
stella capability matters updatewriteChange a matter: its name, reference, billing reference, colour, or lead (who must already be a member of it). Only the fields you pass are written. Attaching a client to a personal matter is a one-way promotion and must go through promote, which takes the client contact and optionally the members to share it with at the same time; a bare clientId on a personal matter, and any attempt to re-promote a matter that already has a client, are refused.
matters.workflow-start
capability:matters.workflow-start
stella capability matters workflow-startwriteStart an extraction workflow in a matter, filling the AI columns of the documents that need it. Narrow it with entityIds and propertyIds, set the processing order with entityIdsOrder, and choose serviceTier standard or flex, where flex is the cheaper deferred tier and is refused when the configured provider does not offer it. Returns the run's status, including already-running when one is in flight.
organization-settings.document-ocr-availability.get
capability:organization-settings.document-ocr-availability.get
stella capability organization-settings document-ocr-availability-getreadReport whether a document OCR worker is currently ready to accept work.
organization-settings.get
capability:organization-settings.get
stella capability organization-settings getreadRead the organization's general settings: document processing mode, matter-number pattern and padding, practice jurisdictions, prompt caching, and memory extraction. An organization that has never saved settings gets the defaults rather than an error.
organization-settings.preview
capability:organization-settings.preview
stella capability organization-settings previewreadPreview the matter number a pattern would produce next: the pattern and padding are validated, the counter for the scope that pattern falls in is read, and the rendered reference is returned with the sequence value it would take. Nothing is stored and no counter is advanced.
organization-settings.read-ai-availability
capability:organization-settings.read-ai-availability
stella capability organization-settings read-ai-availabilityreadReport whether AI is usable in this organization: whether the deployment provides a model, whether the organization has configured its own provider, whether either of those makes AI available at all, and whether the reduced-cost deferred service tier can be used. Booleans only, so any member may read it.
organization-settings.read-anonymization-blacklist
capability:organization-settings.read-anonymization-blacklist
stella capability organization-settings read-anonymization-blacklistreadRead the organization-wide always-mask terms: each entry's canonical form, label, spelling variants, and enabled flag. Matter-scoped terms live in the same table but are never returned here; read those with matters.anonymization-terms.list.
organization-settings.read-deepl-availability
capability:organization-settings.read-deepl-availability
stella capability organization-settings read-deepl-availabilityreadReport whether the organization has a translation provider key configured, as a single boolean. Nothing about the key itself, not even a masked preview, is returned here.
organization-settings.update
capability:organization-settings.update
stella capability organization-settings updatewriteChange the organization's general settings: document processing mode, matter-number pattern and padding, prompt caching, and memory extraction. Only the fields you pass are written and the matter-number pattern is validated against its padding first. Turning document processing off is refused while an automatic run is still going. Practice jurisdictions are set through organization-settings.update-practice-jurisdictions.
organization-settings.update-anonymization-blacklist
capability:organization-settings.update-anonymization-blacklist
stella capability organization-settings update-anonymization-blacklistwriteReplace the organization-wide always-mask list with the entries you pass: terms not in the list are deleted, terms already present are updated, and the rest are inserted, so this is a whole-list replacement rather than a merge, and an empty list clears every organization-wide term. Matter-scoped terms in the same table are left untouched.
organization-settings.update-practice-jurisdictions
capability:organization-settings.update-practice-jurisdictions
stella capability organization-settings update-practice-jurisdictionswriteSet the practice jurisdictions for the user's stella organization. Call this when the org's practice jurisdictions are empty (e.g., the user signed up via an OAuth client and skipped onboarding). Pass an array of {countryCode, isPrimary}; exactly one entry should be primary.
playbooks.approve
capability:playbooks.approve
stella capability playbooks approvewriteApprove a playbook definition: snapshot its current name, description, scope, and positions as a new immutable version, then mark the definition approved. Runs pin the latest approved version, so this is what publishes edits to reviews. Pass expectedUpdatedAt as a concurrency token; a definition that changed since you read it is a conflict. Approving an already-approved playbook is allowed and simply appends another version.
playbooks.auto-run
capability:playbooks.auto-run
stella capability playbooks auto-runwriteRun every applicable playbook over a matter in one pass and materialize their columns onto its table: a playbook with no document-type scope always applies, one scoped to a document type only when that type is present among the matter's classified documents. Each playbook pins its own latest approved version and opens its own per-document runs; a playbook that hits a limit is skipped while the rest continue. Returns how many playbooks ran, how many columns were materialized, and how many document runs opened. Use playbooks.run for a single playbook.
playbooks.create
capability:playbooks.create
stella capability playbooks createwriteCreate a playbook definition in the organization from a name, an optional description, an optional document-type scope, and its positions. The positions are validated and the automatic questions derived from their tier rules before storage. It starts as a draft: approve it with playbooks.approve before runs will use it.
playbooks.delete
capability:playbooks.delete
stella capability playbooks deletedestructivePermanently delete a playbook definition and every approved version of it from the organization. Columns the playbook materialized into matters are kept: they keep their extracted answers and verdicts and continue to work as ordinary columns, no longer owned by any playbook. Recorded review findings are kept as well. There is no in-use check.
playbooks.from-run
capability:playbooks.from-run
stella capability playbooks from-runwriteSave the position list a completed document review ran against as a new draft playbook in the organization, taking the same create path a hand-authored playbook takes (validation, the per-organization limit, the draft status). Position ids are preserved, so decisions already taken on those positions stay attached to them.
playbooks.from-starter
capability:playbooks.from-starter
stella capability playbooks from-starterwriteCreate or reopen the organization's playbook from a bundled starter, cloning its positions with fresh ids on first use and otherwise taking exactly the path playbooks.create takes, including validation, the per-organization limit, and the draft status. Repeated use of one starter returns the existing playbook instead of creating a copy. Browse the starters with playbooks.list-starters.
playbooks.get
capability:playbooks.get
stella capability playbooks getreadRead one playbook definition in full: its name, description, document-type scope, positions, status, approval metadata, and how the organization has decided each position across past reviews. Use playbooks.list for the paginated overview.
playbooks.list
capability:playbooks.list
stella capability playbooks listreadList the organization's playbook definitions with cursor pagination, each with its scope, status, and approval metadata. Read one playbook's positions in full with playbooks.get.
playbooks.list-starters
capability:playbooks.list-starters
stella capability playbooks list-startersreadList the bundled starter playbooks available to instantiate: each starter's id, name, description, target document type, and how many positions it holds. Metadata only, enough to render a picker; create one with playbooks.from-starter.
playbooks.list-versions
capability:playbooks.list-versions
stella capability playbooks list-versionsreadList one playbook's approval history, newest version first: the version number, the name it carried at that version, when it was created, and by whom. A version is only written when a playbook is approved, so the list is capped rather than cursor-paginated.
playbooks.recent.list
capability:playbooks.recent.list
stella capability playbooks recent-listreadList the current user's recently used playbooks in the active organization.
playbooks.restore-version
capability:playbooks.restore-version
stella capability playbooks restore-versionwriteRestore a stored playbook version by copying its name, description, scope, and positions back onto the definition. A restore counts as an edit: the playbook returns to draft with its approval metadata cleared, so it must be approved again before runs pick it up, and the stored version itself is left untouched.
playbooks.run
capability:playbooks.run
stella capability playbooks runwriteRun a review playbook over a matter's documents. Every DOCX document is reviewed against the playbook's latest approved version, and each document's findings are recorded against its own pinned version. Pass matterId, playbookId, and the projection: "columns" also materializes the playbook's extraction and verdict columns onto the table, "none" materializes none. Findings populate asynchronously.
playbooks.update
capability:playbooks.update
stella capability playbooks updatewriteReplace a playbook definition's name, description, scope, and positions; the positions are validated and their automatic questions re-derived. Any edit invalidates a prior approval, so the playbook drops back to draft with its approval metadata cleared and runs keep using the last approved version until it is approved again. Pass expectedUpdatedAt as a concurrency token; a definition changed since you read it is a conflict, and the new updatedAt comes back for the next save.
properties.create
capability:properties.create
stella capability properties createwriteAdd one property (a column) to a matter: its name, value type, and either an AI prompt tool, optionally depending on other columns, or a manual-input tool. An AI column is created stale, so its values are produced by the next run rather than immediately. Refused when the matter is at its property limit, when a dependency is not a property of this matter, or when the matter already has a document-type classifier column.
properties.create-batch
capability:properties.create-batch
stella capability properties create-batchwriteAdd up to ten properties (columns) to a matter in a single transaction, under the same rules as properties.create: all of them land or none do, the resulting count must stay within the matter's property limit, every dependency must be a property of this matter, and at most one document-type classifier may exist. Returns the new property ids.
properties.delete
capability:properties.delete
stella capability properties deletedestructivePermanently delete one custom property (column) from a matter, with every value stored under it on every document version, plus its cell metadata and list placements. System properties, file properties, and properties another property depends on are refused.
properties.list
capability:properties.list
stella capability properties listreadList the property (column) definitions of a matter. Returns each property's id, name, value type (text, single-select, multi-select, date, or int), and status. Use the returned property id with set_field_value to set a document's value for that property.
properties.preview
capability:properties.preview
stella capability properties previewwriteRun a column prompt against one document without creating the column or storing anything, so a prompt can be tried before it is saved. Pass the prompt, the value type, the entityId to run it against, any select options, and the columns it depends on. Returns status ready with the generated value, skipped when the dependency values are missing or unusable on that document, unsupported when the document cannot be processed, or empty when the model returned nothing. Consumes AI usage.
properties.suggest-prompt
capability:properties.suggest-prompt
stella capability properties suggest-promptwriteDraft or refine a column's extraction prompt with the model, from the column name, value type, select options, a free-text instruction, and optionally the prompt as it stands. Returns one single-line prompt of at most 280 characters and stores nothing. Consumes AI usage.
properties.update
capability:properties.update
stella capability properties updatewriteReplace one property's name, value type, and tool (an AI prompt with its dependencies, or manual input) in a matter. A change that affects extraction marks the column, and every column that transitively depends on it, stale so the next run recomputes them. Refused on a circular dependency, on a second document-type classifier, on a file property without a manual-input tool, and on a select fallback that is not one of the supplied options. The dependency rows of a playbook-materialized manual column are preserved rather than rewritten.
rates.create
capability:rates.create
stella capability rates createwriteCreate a rate table, a named set of hourly rates in a single currency, in a matter. Pass isDefault to make it the matter's default, which clears the flag on the previous default; matters have a fixed cap on how many rate tables they may hold. Add the rates themselves with rates.entries-create.
rates.delete
capability:rates.delete
stella capability rates deletedestructivePermanently delete one rate table from a matter and, with it, every per-user rate line it holds. The matter's default rate table is refused until another table is made the default; time entries already recorded keep the rate they were billed at.
rates.entries-create
capability:rates.entries-create
stella capability rates entries-createwriteAdd one rate line to a rate table: an hourly rate in integer minor currency units, effective from a date and optionally until another. Pass userId for a person-specific rate or omit it for the table's fallback rate. Refused when the date range overlaps an existing line for the same user, when userId is not a member of the organization, or when the table is at its line limit.
rates.entries-delete
capability:rates.entries-delete
stella capability rates entries-deletedestructiveDelete a single user's rate line (hourly rate and effective dates) from a rate table, leaving the table and its other lines in place. Use rates.delete to remove the whole table instead.
rates.entries-read
capability:rates.entries-read
stella capability rates entries-readreadList the rate lines of one rate table, earliest effective-from first, with cursor pagination. Each line carries the hourly rate in minor currency units, its effective dates, and the user it applies to (null for the table's fallback rate). A rate table that does not exist in this matter returns an empty page rather than an error.
rates.entries-update
capability:rates.entries-update
stella capability rates entries-updatewriteChange one rate line's hourly rate or effective dates in a rate table. Changing the dates re-checks for overlap against the other lines for the same user and is refused on a conflict; the user a line applies to cannot be changed here.
rates.list
capability:rates.list
stella capability rates listreadList a matter's rate tables oldest first with cursor pagination, returning each table's name, currency, default flag, and how many rate lines it holds. Use rates.entries-read for the lines themselves and rates.resolve for the rate that actually applies to a user on a date.
rates.resolve
capability:rates.resolve
stella capability rates resolvereadResolve the effective hourly rate for a user on a given date in a matter, using the matter's default rate table (user-specific rate first, then the table default). Returns the hourly rate in integer minor currency units (e.g. cents) and the currency, or nulls when no rate applies.
rates.update
capability:rates.update
stella capability rates updatewriteRename a rate table, change its currency, or make it the matter's default, which clears the flag on the previous default. Unsetting the flag on the only default table is refused, so a matter that has a default keeps one; a matter whose tables were all created without the flag has none, and rate resolution handles that. Rates already recorded on time entries are not rewritten.
reports.clone-builtin
capability:reports.clone-builtin
stella capability reports clone-builtinwriteCopy one built-in report template into the organization so it can be edited in Template Studio and picked like any other template. Pass the built-in's key. The clone keeps the built-in's fill manifest verbatim, so it fills identically, and its name gains a (copy) suffix when a template of that name already exists.
reports.export-view
capability:reports.export-view
stella capability reports export-viewwriteStart an asynchronous DOCX or PDF export of a matter view using a selected report template. Returns an export ID to poll.
reports.list-exports
capability:reports.list-exports
stella capability reports list-exportsreadList report exports requested by the current user in a matter, newest first with cursor pagination.
reports.list-templates
capability:reports.list-templates
stella capability reports list-templatesreadList built-in and organization report templates available for exporting a matter view.
reports.read-export
capability:reports.read-export
stella capability reports read-exportwriteRead a report export's status. Completed downloads include a short-lived URL; workspace exports include the created document ID.
signals.acceptances.create
capability:signals.acceptances.create
stella capability signals acceptances-createwriteAccept an inbox signal by taking one of its suggestions. Task and deadline suggestions are created here; for the others the client performs the action and reports what it produced.
signals.assignments.create
capability:signals.assignments.create
stella capability signals assignments-createwriteAssign an open inbox signal to an organization member, or clear the assignment with null.
signals.dismissals.create
capability:signals.dismissals.create
stella capability signals dismissals-createwriteDismiss an inbox signal with an optional reason; the reason is kept for tuning the producer that emitted it.
signals.get
capability:signals.get
stella capability signals getreadRead one inbox signal with its evidence and suggestions; 404 when it is not visible to the caller.
signals.list
capability:signals.list
stella capability signals listreadList inbox signals visible to the caller: open by default, or snoozed or resolved via `view`; filter by matter, origin, severity, or assignment.
signals.requests.create
capability:signals.requests.create
stella capability signals requests-createwritePost a manual request into the inbox: a piece of work for the legal team, optionally scoped to a matter and assigned to a colleague.
signals.snoozes.create
capability:signals.snoozes.create
stella capability signals snoozes-createwriteSnooze an inbox signal until a later time; it returns to the open feed once that time passes.
skills.comments.create
capability:skills.comments.create
stella capability skills comments-createwriteComment on a character range of one revision of an agent skill, or of a proposal's body. Pass exactly one of revisionId and proposalId; a comment on a proposal is also anchored to the revision that proposal branched from. The quoted source text is captured from the range so the comment survives the text moving on.
skills.comments.delete
capability:skills.comments.delete
stella capability skills comments-deletedestructiveDelete a comment on an agent skill. Only its author or someone who may edit the skill can.
skills.comments.list
capability:skills.comments.list
stella capability skills comments-listreadList the comments anchored to an agent skill, oldest first, across its revisions and proposals. Each carries the character range and the quoted text it was written against, and whether it has been resolved.
skills.comments.update
capability:skills.comments.update
stella capability skills comments-updatewriteResolve or reopen a comment on an agent skill. Anyone who can see the skill can, not only the comment's author.
skills.create
capability:skills.create
stella capability skills createwriteAuthor an agent skill from text: name, description, instruction body, and an optional slash command. Team scope requires admin or owner, private scope is your own. A command must be lowercase letters, digits, hyphens, or underscores, must not be one of the reserved commands, and must be free in the organization, as must the skill name. Refused once the per-user or per-organization skill limit is reached. Use skills.upload or skills.import-url for a packaged skill instead.
skills.delete
capability:skills.delete
stella capability skills deletedestructivePermanently delete an agent skill from the organization, with every resource file attached to it. Team skills may only be deleted by an admin or owner and private skills only by their author; bundled skills, which cannot be edited, can still be deleted here.
skills.discover
capability:skills.discover
stella capability skills discoverwriteDiscover importable skills from a GitHub repository or SKILL.md URL.
skills.from-blueprint
capability:skills.from-blueprint
stella capability skills from-blueprintwriteCreate an editable draft skill from one of the bundled blueprints, a SKILL.md skeleton with placeholder resource files. The draft is installed disabled and under a fresh slug, so the same blueprint can be used more than once, and stays fully editable afterwards. Team scope requires admin or owner.
skills.generate-draft
capability:skills.generate-draft
stella capability skills generate-draftwriteDraft a skill bundle with the model: returns SKILL.md markdown plus up to eight companion files under references/, prompts/, or knowledge/. Pass intent, optionally examples, and, to revise an existing draft, previousDraft with previousResources and feedback. Nothing is stored: pass the result to skills.create and the resource endpoints to keep it. Consumes AI usage.
skills.get
capability:skills.get
stella capability skills getreadRead one agent skill in full: its instruction body, scope, origin, version, license, compatibility, source URL, slash command, and every resource file with its content. A team skill is readable by every member of the organization; a private one only by its author.
skills.import
capability:skills.import
stella capability skills importwriteImport one or more discovered skills from source URLs into the selected scope.
skills.import-url
capability:skills.import-url
stella capability skills import-urlwriteFetch and install one agent skill from a URL pointing at a SKILL.md file or a skill package. It is stored with a url origin, so it stays editable afterwards. Team scope requires admin or owner. To pull several skills out of a repository, use skills.discover and then skills.import instead.
skills.list
capability:skills.list
stella capability skills listreadList the agent skills visible to you, the organization's team skills plus your own private ones, enabled first and then by scope and name, with cursor pagination, alongside the deployment's built-in skills. Instruction bodies come back only for skills that carry a slash command; read one skill in full with skills.get. Also reports whether you may manage team skills.
skills.list-commands
capability:skills.list-commands
stella capability skills list-commandsreadList the enabled skills that carry a slash command, shaped for the chat composer's command menu: id, scope, name, description, command, and the full instruction body to insert on pick. Capped at 250 rows and not paginated; use skills.list for the whole catalogue.
skills.proposals.create
capability:skills.proposals.create
stella capability skills proposals-createwriteOpen a draft change proposal against an agent skill, branched from its newest revision. Omit body to start from that revision's text. The skill itself is untouched until someone with edit rights accepts the proposal; bundled skills are refused.
skills.proposals.delete
capability:skills.proposals.delete
stella capability skills proposals-deletedestructiveDelete a change proposal for an agent skill, along with the comments anchored to it. The skill and its revisions are untouched. Only the author or someone who may edit the skill can.
skills.proposals.from-comments.create
capability:skills.proposals.from-comments.create
stella capability skills proposals-from-comments-createwriteTurn reviewer comments on an agent skill into a draft change proposal: the model rewrites SKILL.md so each comment is addressed, and the result is stored as a draft branched from the skill's newest revision. Pass commentIds to apply specific comments, or omit it to apply every unresolved comment on that revision. The skill itself is untouched until someone with edit rights accepts the proposal, the comments stay unresolved, and bundled skills are refused. Consumes AI usage.
skills.proposals.get
capability:skills.proposals.get
stella capability skills proposals-getreadRead one change proposal for an agent skill, with its proposed body and the body of the revision it branched from, so the two can be diffed.
skills.proposals.list
capability:skills.proposals.list
stella capability skills proposals-listreadList the change proposals raised against an agent skill, newest first and without their bodies. baseIsCurrent reports whether a proposal still branches from the skill's newest revision.
skills.proposals.review
capability:skills.proposals.review
stella capability skills proposals-reviewwriteAccept or reject a change proposal for an agent skill. Accepting writes the proposed body to the skill and records the revision it produced; rejecting leaves the skill untouched. Either way the decision is final. Requires the rights to edit the skill itself.
skills.proposals.update
capability:skills.proposals.update
stella capability skills proposals-updatewriteEdit a change proposal for an agent skill: its proposed body, its summary, or whether it is still a draft or now up for review. Only the author or someone who may edit the skill can, and only until the proposal is decided.
skills.resources.create
capability:skills.resources.create
stella capability skills resources-createwriteAdd one text file to an agent skill at a path such as references/checklist.md, taking its kind from the path unless you pass one. A path already used in the skill is a 409, a skill at its file limit is refused, and bundled skills cannot be edited. Team skills require admin or owner, private ones their author. Use skills.resources.upload for a DOCX or PDF whose text must be extracted first.
skills.resources.delete
capability:skills.resources.delete
stella capability skills resources-deletedestructiveDelete one resource file from an agent skill, addressed by its path; the skill and its other resources are untouched. Bundled skills are read-only and are refused.
skills.resources.rename
capability:skills.resources.rename
stella capability skills resources-renamewriteMove one file of an agent skill to a new path, re-deriving its kind from that path and leaving the content untouched. A path identical to the old one, a path already used by another file in the same skill, and a bundled skill are all refused.
skills.resources.rewrite
capability:skills.resources.rewrite
stella capability skills resources-rewritewriteRewrite one file of an agent skill with the model, from a free-text instruction and the file's current content. Returns the proposed content without saving it: persist it with skills.resources.update. Consumes AI usage.
skills.resources.update
capability:skills.resources.update
stella capability skills resources-updatewriteReplace the content of one file of an agent skill, addressed by its path. The path and kind stay as they are; use skills.resources.rename to change them. Bundled skills are read-only, team skills require admin or owner, and private ones their author.
skills.revisions.get
capability:skills.revisions.get
stella capability skills revisions-getreadRead one recorded revision of an agent skill in full, including the instruction body as it stood at that point.
skills.revisions.list
capability:skills.revisions.list
stella capability skills revisions-listreadList the recorded revisions of an agent skill, newest first, without their bodies. Every body change records one, including the edits that accepting a proposal makes.
skills.seed
capability:skills.seed
stella capability skills seedwriteInstall the four default slash-command skills (summarize, risks, compare, draft) as private skills for the signed-in user in the active organization. Returns seeded false and writes nothing when that user already has any authored skill with a command in this organization, so defaults someone deleted are not put back.
skills.update
capability:skills.update
stella capability skills updatewriteChange an agent skill: enable or disable it, or edit its name, description, instruction body, version, or slash command. Pass command as null to clear it; at least one field is required. Enabling and disabling works on any skill you may manage, but editing the content of a bundled skill is refused. A rename also moves the slug, and a name or command already taken in the organization is a 409.
style-sets.create-from-editor
capability:style-sets.create-from-editor
stella capability style-sets create-from-editorwriteCreate an organization style set from explicit editor settings applied to the built-in stella preset, with no DOCX involved. Returns the new style set's id, name, and updatedAt.
style-sets.delete
capability:style-sets.delete
stella capability style-sets deletedestructivePermanently delete an organization style set and the stored package file behind it. Documents and templates already created from the style set are unaffected, because they copied its styles at creation time.
style-sets.download
capability:style-sets.download
stella capability style-sets downloadreadMint a short-lived download URL for one organization style set's stored DOCX package, recording the download in the audit trail. A style set that is unknown or already deleted is a 404.
style-sets.list
capability:style-sets.list
stella capability style-sets listreadList the organization's style sets, most recently updated first, with cursor pagination; deleted ones are left out. Each item carries the name, file name, size in bytes, and timestamps, and the response also reports the maximum number of style sets the organization may hold.
style-sets.read-editor
capability:style-sets.read-editor
stella capability style-sets read-editorreadRead one organization style set as editor settings: its name, updatedAt, and the style settings parsed out of the stored DOCX package. Pass that updatedAt back to style-sets.update-from-editor as expectedUpdatedAt so a concurrent edit is not silently overwritten.
style-sets.read-stella-editor
capability:style-sets.read-stella-editor
stella capability style-sets read-stella-editorreadRead the built-in stella style preset as editor settings, the starting point for a new style set. Takes no arguments and reads no stored data.
style-sets.update
capability:style-sets.update
stella capability style-sets updatewriteRename one organization style set; its export file name follows the new name. The stored style package is untouched, so use style-sets.replace or style-sets.update-from-editor to change the styles themselves.
style-sets.update-from-editor
capability:style-sets.update-from-editor
stella capability style-sets update-from-editorwriteRewrite one style set's package from explicit editor settings, using its current package as the base, and set its name at the same time. Pass expectedUpdatedAt from style-sets.read-editor so an edit made in the meantime is rejected instead of overwritten.
tasks.assignees-add
capability:tasks.assignees-add
stella capability tasks assignees-addwriteAssign one member of the matter to a task, in a role that defaults to assignee. Repeating an assignment updates that user's role instead of duplicating it. Refused when the user is not a member of this matter and when the task is read-only. Remove an assignment with tasks.assignees-remove.
tasks.assignees-remove
capability:tasks.assignees-remove
stella capability tasks assignees-removedestructiveUnassign one user from a task. Idempotent: removing a user who is not assigned still succeeds, and nothing stops a task from ending up with no assignee; a read-only task is refused.
tasks.assignees.move
capability:tasks.assignees.move
stella capability tasks assignees-movewriteReassign a task from one member to another in one atomic step: removes fromUserId (when not null) and adds toUserId (when not null) together, so a failed add can never leave the task with neither assignee. At least one of the two must be non-null. Refused when a new toUserId is not a member of this matter and when the task is read-only.
tasks.calendar
capability:tasks.calendar
stella capability tasks calendarreadRead a matter's tasks that fall inside a date-time window, shaped for a calendar. datePropertyIds chooses which date fields place an item, including the built-in created, updated, due, and start dates; endDatePropertyId supplies the end of a range. Filters and sorts follow the same contract as the table views.
tasks.create
capability:tasks.create
stella capability tasks createwriteCreate a task in the current matter: name plus optional parent, status, priority, due date, assignees, calendar fields for an agenda item (kind, start, end, occurrence, reminder, all-day, time zone, location, meeting URL, attendees, recurrence), list placement, and, where the deployment enables governed work, its owner and target and deadline dates. Change one afterwards with tasks.update.
tasks.entity-links-create
capability:tasks.entity-links-create
stella capability tasks entity-links-createwriteLink a task to another document, folder, or task, with a link type that defaults to related. Both ends must be in this matter, an entity cannot be linked to itself, and a read-only entity is refused. Remove the link with tasks.entity-links-delete.
tasks.entity-links-delete
capability:tasks.entity-links-delete
stella capability tasks entity-links-deletedestructiveRemove one link between a task and another document, folder, or task, addressed by the link id. Both linked items survive; a link with a task on neither end, and a read-only task, are refused.
tasks.entity-links-read
capability:tasks.entity-links-read
stella capability tasks entity-links-readreadList every link one task has, in both directions, each with the entity at the other end and its kind. Change them with tasks.entity-links-create and tasks.entity-links-delete.
tasks.get
capability:tasks.get
stella capability tasks getreadRead one task in full: its own fields, its assignees with their users, its governed-work ownership with the most recent lifecycle events, its child tasks with their assignees, its links in both directions, and who created it.
tasks.update
capability:tasks.update
stella capability tasks updatewriteChange one task in a matter: name, status, priority, due date, list item type, sort order, or the calendar fields of an agenda item (kind, start, end, occurrence, reminder, all-day, time zone, location, meeting URL, availability, sensitivity, organizer, attendees, recurrence). Only the fields you pass are written and a read-only task is refused. Where governed work is enabled a status change also records a lifecycle event, and workflowReason carries the explanation stored with it.
template-packs.get
capability:template-packs.get
stella capability template-packs getreadRead one bundled template pack: attribution (drafters, reviewers, converters), license and license URL, source, disclaimer, review date, jurisdictions, languages, and every template with its README, field list and, when already installed in the organization, the installed template id. Also reports whether the organization hides pack offers.
template-packs.installs.create
capability:template-packs.installs.create
stella capability template-packs installs-createwriteCopy templates from a bundled pack into the organization's template library as ordinary templates with a first version; each records the pack, version, slug, content hash, license and authors it came from. Pass the pack id and the template slugs. A template already installed from the same pack is reported as such and not copied again, so a request that failed part way through can simply be repeated. Owners and admins only.
template-packs.list
capability:template-packs.list
stella capability template-packs listreadList the template packs bundled with this deployment, ranked for the organization: packs covering one of its practice jurisdictions first, then jurisdiction-agnostic packs, then the rest, with packs in the caller's language ahead within each group. Each pack carries its attribution, license, jurisdictions, languages, template list and how many of its templates are already installed. Also reports whether the organization hides pack offers and whether the caller may install.
template-packs.visibility.update
capability:template-packs.visibility.update
stella capability template-packs visibility-updatewriteHide or show the bundled template-pack catalogue for the organization. Pass hidden true to stop offering packs in the template library; templates already installed are unaffected. Owners and admins only.
template-recipes.create
capability:template-recipes.create
stella capability template-recipes createwriteCreate a template recipe, a named reusable block of pre-configured template fields, from a name, an optional description, and a definition object that is structurally validated before it is stored. Refused once the organization holds its maximum number of recipes.
template-recipes.delete
capability:template-recipes.delete
stella capability template-recipes deletedestructivePermanently delete one template recipe (a reusable, pre-configured block of template fields) from the organization. Templates already built with it keep the fields that were inserted, and there is no in-use check.
template-recipes.list
capability:template-recipes.list
stella capability template-recipes listreadList the organization's template recipes alphabetically by name, each with its id, description, and full definition. Recipes are capped per organization, so the whole set comes back in one response without a cursor.
templates.binding-catalog
capability:templates.binding-catalog
stella capability templates binding-catalogreadList the data-binding options a template field can be bound to: every (source, field) pair in the binding taxonomy with its label key. The catalog is static and identical for every matter in the organization; it takes no arguments and reads no stored data.
templates.categories-create
capability:templates.categories-create
stella capability templates categories-createwriteCreate a category in the organization's template category tree, optionally under a parent category.
templates.categories-delete
capability:templates.categories-delete
stella capability templates categories-deletedestructiveDelete one category from the organization's template category tree. No template is deleted: templates filed under the category become uncategorized, and its child categories are promoted to its own parent.
templates.categories-list
capability:templates.categories-list
stella capability templates categories-listreadList the organization's template categories with their parents, descriptions, and sort order, enough to render the whole tree. The set is bounded per organization and returned whole, without a cursor.
templates.categories-update
capability:templates.categories-update
stella capability templates categories-updatewriteRename or re-describe one template category, move it under a different parent (or to the root by passing null), or change its sort order. Only the fields you pass are written, and a move that would make the tree circular is refused.
templates.check
capability:templates.check
stella capability templates checkreadRun the authoring checks over one stored template and return their findings: broken marker structure and invalid markers, markers with no manifest field and manifest fields with no marker, clause slots with no linked clause and links with no slot, fields missing a label or input type, selects with no options, and formulas or conditions referring to unknown paths. Read-only: it reports, it never repairs.
templates.clause-slots
capability:templates.clause-slots
stella capability templates clause-slotsreadList the clause slots of one template together with the resolved body of the clause linked to each, using the same resolution the fill path runs, so a fill form can show what will be inserted and adjust it for that fill. Slots with no linked clause are left out; those fill as unmatched placeholders.
templates.clauses-link
capability:templates.clauses-link
stella capability templates clauses-linkwriteLink a clause from the library into a template, optionally pinning one of its variants and naming the clause slot it fills. The link records the clause's version as it is now, so later edits to the clause do not reach the template until it is synced. Refused once the template holds its maximum number of clause links.
templates.clauses-list
capability:templates.clauses-list
stella capability templates clauses-listreadList the clauses linked to one template: each link's id, clause, pinned variant and version, slot name, sort order, and whether the pinned version has fallen behind the clause's current one.
templates.clauses-slot-update
capability:templates.clauses-slot-update
stella capability templates clauses-slot-updatewriteAssign one clause link of a template to a named clause slot, or clear the assignment by passing null. The clause, its pinned version, and its variant are untouched: only which slot the link fills changes.
templates.clauses-sync
capability:templates.clauses-sync
stella capability templates clauses-syncwriteRe-pin one clause link of a template to its clause's current version, so the next fill inserts the newest wording. The link's slot and variant stay as they are. Use templates.clauses-sync-all to do this for every outdated link at once.
templates.clauses-sync-all
capability:templates.clauses-sync-all
stella capability templates clauses-sync-allwriteRe-pin every outdated clause link of one template to its clause's current version in a single transaction, auditing each link as if it had been synced on its own. Links already on the current version are left untouched.
templates.clauses-unlink
capability:templates.clauses-unlink
stella capability templates clauses-unlinkwriteRemove one clause link from a template, with its pinned version, variant, and slot assignment. Reversible: nothing leaves the clause library and the same clause can be linked again with templates.clauses-link. The template's own document is not rewritten, so the slot marker stays in it.
templates.condition-decisions.get
capability:templates.condition-decisions.get
stella capability templates condition-decisions-getreadAsk the organization's decision model about every AI-decided boolean condition of a stored template, given the values entered so far, and return what it decided with its probability and confidence. Nothing is filled and no document is produced; the generative model is never called, so a condition the decision model leaves undecided is reported as such (the fill itself still falls back to the generative model). values is an object mapping each field path to its value.
templates.create-blank
capability:templates.create-blank
stella capability templates create-blankwriteCreate an empty template from the stella base DOCX, with a name and an optional category. It carries no fields yet: add markers by editing the document and storing it with templates.save-document. Use templates.create to upload a DOCX that already has {{field}} markers.
templates.create-from-style-set
capability:templates.create-from-style-set
stella capability templates create-from-style-setwriteCreate an empty template whose document is built from one of the organization's style sets, so it starts in that house style, with a name and an optional category. Like templates.create-blank it carries no fields until a document is saved onto it.
templates.delete
capability:templates.delete
stella capability templates deletedestructivePermanently delete an organization template with its version history, its clause slots, and the stored file of every version. Recorded fills of the template survive as history, but the template and its files cannot be recovered.
templates.fill-preview
capability:templates.fill-preview
stella capability templates fill-previewreadRun the full fill of a stored template with the given values and return text instead of a file: the filled paragraphs, the character count, placeholders no value matched, values no marker used, and any structural errors. It does the same work as a real fill, AI-drafted fields included, so it is not a cheap dry run. values is an object mapping each field path to its value. Use templates.fill-by-id to download the document.
templates.fill-to-matter
capability:templates.fill-to-matter
stella capability templates fill-to-matterwriteFill a stored template and save the result as a new document in a matter rather than returning bytes. Same values and clauseOverrides contract as templates.fill-by-id, plus an optional document name (the .docx extension is appended when missing) and a parent folder; the created entity is returned.
templates.get
capability:templates.get
stella capability templates getreadRead one template's record: name, file name, size, manifest, field count, tags, languages, whenToUse and whenNotToUse guidance, usage counters, and a short-lived presigned URL for its current DOCX. The download grant is recorded in the audit trail.
templates.list
capability:templates.list
stella capability templates listreadList the document templates in this organization (NDAs, powers of attorney, leases): each template's id, name, field count, tags, and usage guidance (whenToUse / whenNotToUse); prefer a template whose whenToUse matches the request and skip any whose whenNotToUse applies.
templates.lookup-formats.create
capability:templates.lookup-formats.create
stella capability templates lookup-formats-createwriteSave a reusable company specification format for colleagues in the active organization.
templates.lookup-formats.default.update
capability:templates.lookup-formats.default.update
stella capability templates lookup-formats-default-updatewriteChoose or clear the default company specification format for a business registry in the active organization.
templates.lookup-formats.delete
capability:templates.lookup-formats.delete
stella capability templates lookup-formats-deletedestructiveDelete a shared company specification format from the active organization.
templates.lookup-formats.list
capability:templates.lookup-formats.list
stella capability templates lookup-formats-listreadList shared company specification formats and the default for a business registry in the active organization.
templates.lookup-formats.my-default.update
capability:templates.lookup-formats.my-default.update
stella capability templates lookup-formats-my-default-updatewriteChoose or clear your own default company specification format for a business registry, overriding the organization's default for you alone.
templates.lookup-preview
capability:templates.lookup-preview
stella capability templates lookup-previewreadPreview a registry-lookup field: resolve a company number against the chosen public register and render the field's format string over the hit, returning the text with its bold and italic markers left in place for the client to interpret. Refused when the number is not plausible for that register or required credentials are missing, and a 404 when the company is not found. Outcomes are cached per register and number, and no model is involved.
templates.prefill
capability:templates.prefill
stella capability templates prefillwriteSuggest values for one stored template's fields from source material: an uploaded DOCX or PDF, pasted text, or the stored extracted text of up to five documents picked from a matter, in any combination. Returns a suggestion per field with the snippet it came from; nothing is written to the template and no document is filled. Pass timezone so dates are anchored to your calendar day rather than the server's. Consumes AI usage.
templates.preview
capability:templates.preview
stella capability templates previewreadRead one stored template as text for display: its paragraphs tagged with header, body, or footer origin, the character count, the structural marker errors positioned against those paragraphs, and the names of its clause slots.
templates.suggest-fields
capability:templates.suggest-fields
stella capability templates suggest-fieldswriteAsk the model which literal values in a slice of template text (a whole document or just a selection) should become fillable fields, with optional extra instructions. Returns raw suggestions of literal text, proposed field path, and input type for a human to accept or reject; unlike templates.prepare it never rewrites the document. Consumes AI usage.
templates.update
capability:templates.update
stella capability templates updatewriteChange a template's record: name, category, tags, languages, whenToUse and whenNotToUse guidance. Only the fields you pass are written. The fields a template asks for live in its document, so change those by storing a new body with templates.save-document or by calling configure_template_fields.
templates.versions-diff
capability:templates.versions-diff
stella capability templates versions-diffreadReturn a plain-text, line-level diff of one template version against its predecessor; the first version is diffed against an empty document. Both texts are resolved server-side from the ids, and an empty segment list means nothing changed.
templates.versions-get
capability:templates.versions-get
stella capability templates versions-getreadRead one stored template version: its number, field count, creation time, and a short-lived presigned URL to download that version's DOCX. The download grant is recorded in the audit trail.
templates.versions-list
capability:templates.versions-list
stella capability templates versions-listreadList one template's versions, newest first, with cursor pagination. Each entry carries its version number, field count, creation time, and the author's name and image, which are blank for a version saved by someone who has left the organization.
templates.versions-summarize
capability:templates.versions-summarize
stella capability templates versions-summarizewriteSummarize in prose what changed in one template version compared with its predecessor, over the same diff templates.versions-diff returns. Returns summary null when the two are identical, skipping the model call. Consumes AI usage.
time-entries.batch-delete
capability:time-entries.batch-delete
stella capability time-entries batch-deletedestructiveDelete or write off many time entries in one matter at once: draft entries are permanently deleted and every other unbilled entry is written off. Billed, already written-off, and unknown ids are skipped without an error and there is no per-entry ownership check, so the returned count is the only report of what happened.
time-entries.batch-update
capability:time-entries.batch-update
stella capability time-entries batch-updatewriteApply one action to up to 200 time entries in a matter at once: approve, revert_to_draft, mark_billable, or mark_non_billable. Entries that are not in the action's starting state are skipped and only the number of changed rows is returned. Approval is refused while any selected entry has a running timer or a billable entry has no rate; mark_billable re-resolves each entry's rate and is refused when one of them has no effective rate.
time-entries.create
capability:time-entries.create
stella capability time-entries createwriteCreate a time entry in the current matter. dateWorked, timezoneId, durationMinutes, and narrative are required; workItemId is optional. The timekeeper's effective matter rate is resolved server-side. durations are whole minutes. Returns the time entry ID.
time-entries.delete
capability:time-entries.delete
stella capability time-entries deletedestructiveDelete a time entry. A draft entry is permanently deleted; an approved entry is written off instead (kept for the audit trail, excluded from billing). A billed entry cannot be deleted until its invoice is reverted. Returns whether the entry was hard-deleted.
time-entries.export-csv
capability:time-entries.export-csv
stella capability time-entries export-csvreadExport a matter's time entries as CSV text, one row per entry with date, timekeeper name, work item, minutes, rate, amount, billable flag, status, task and activity codes, and narratives. Filter by date-worked range, status, and work item. Unlike the LEDES export this includes non-billable and written-off entries; the row count is capped.
time-entries.export-ledes
capability:time-entries.export-ledes
stella capability time-entries export-ledesreadExport a matter's time entries as a LEDES 1998B e-billing file. Only billable, charged, not-written-off entries are included, so the selection is narrower than the CSV export of the same filters. Refused when an included entry has no effective rate, or when the selection spans more than one currency, which the format cannot represent.
time-entries.get
capability:time-entries.get
stella capability time-entries getreadRead one time entry in a matter by id, with its minutes, rate, currency, narratives, billing status, source, task and activity codes, timer timestamps, and the timekeeper's name. A caller without time-entry approval access can only read their own entries; another user's entry is reported as not found.
time-entries.list
capability:time-entries.list
stella capability time-entries listreadList time entries in a matter, optionally filtered by workItemId (the document, folder, or task providing context), userId or scope=me, a date-worked range (dateFrom/dateTo, ISO YYYY-MM-DD), and status. Returns each entry's id, entity, user, date, minutes, rate (minor currency units), currency, narrative, and status.
time-entries.split
capability:time-entries.split
stella capability time-entries splitwriteSplit one time entry across several work items by percentage, between 2 and 10 parts totalling 100. The original entry is deleted and replaced by new entries that share a splitGroupId and inherit its date, rate, narrative, codes, and status, with the minutes apportioned and re-rounded to the billing increment. A billed or written-off entry, and a duration too short to divide, are refused.
time-entries.suggestions.decisions.create
capability:time-entries.suggestions.decisions.create
stella capability time-entries suggestions-decisions-createwriteDecide on a suggested time entry from time-entries.suggestions.list. `decision.type: accept` records a time entry with the given minutes and narrative (source `suggested`) and keeps the suggestion's evidence with the decision; it fails with 409 when the fingerprint is no longer pending for that day. `decision.type: dismiss` hides the suggestion for good and is idempotent: repeating it returns the decision already stored, including an earlier accept.
time-entries.suggestions.list
capability:time-entries.suggestions.list
stella capability time-entries suggestions-listreadList suggested time entries for one day in the current matter, drawn from the signed-in user's own activity here: chat messages they sent and records they created, edited, or downloaded. Each item carries a fingerprint, the observed span, engaged minutes, and the evidence behind it. Items the user already accepted or dismissed are omitted. Accept one with time-entries.suggestions.accept or hide it with time-entries.suggestions.dismiss.
time-entries.summary.get
capability:time-entries.summary.get
stella capability time-entries summary-getreadSummarize time in the current matter for a bounded date range; team scope requires time-entry approval access.
time-entries.timer-start
capability:time-entries.timer-start
stella capability time-entries timer-startwriteStart a running timer for the signed-in user in the current matter, creating a draft time entry dated today in the timezoneId you pass and optionally attached to a work item. The user's effective rate is resolved at start and an entry with no resolvable rate is recorded as non-billable. Refused when the user already has a running timer.
time-entries.timer-stop
capability:time-entries.timer-stop
stella capability time-entries timer-stopwriteStop the signed-in user's running timer in the current matter, writing the elapsed minutes onto its draft time entry and rounding the billed minutes up to the billing increment. Fails when that user has no running timer in this matter.
time-entries.update
capability:time-entries.update
stella capability time-entries updatewriteChange one time entry's date worked, duration, narratives, billable and no-charge flags, work item, or task and activity codes. Editing someone else's entry, or any entry past draft, requires time-entry approval access, and billed or written-off entries are always refused. Making an entry billable or moving its date re-resolves the rate and fails when none applies. The write is conditional on the entry being unchanged since it was read, so a concurrent edit returns a conflict instead of overwriting.
uploads.create
capability:uploads.create
stella capability uploads createwriteStep 1 of 3 of the file-upload flow: reserve an upload and mint a short-lived presigned S3 PUT URL. This is the ONLY way to get a file into stella from an agent surface; the multipart endpoints cannot be called with JSON. Pass purpose plus the file metadata: name, mimeType, size in bytes, and sha256Hex (lowercase hex SHA-256 of the exact bytes). purpose is entity_create (with propertyId, optional parentId) to add a new document, entity_version (with entityId) to add a version to an existing one, or agent_skill (with scope team or private) for a skill pack. Returns uploadId, url, expiresAt, and headers. Step 2: PUT the bytes to url with those headers verbatim -- the URL is signed against the exact size and checksum, so any deviation is rejected. Step 3: call uploads.update with the uploadId to commit the record. Call uploads.delete instead if the PUT fails.
uploads.delete
capability:uploads.delete
stella capability uploads deletedestructiveAbandon an upload reserved by uploads.create, discarding the staged object. Call this when the presigned PUT fails or the upload is no longer wanted, so the staged bytes are not left to expire on their own. Idempotent: aborting an already aborted upload succeeds. Fails if the upload was already finalized -- delete the resulting entity or skill instead.
uploads.update
capability:uploads.update
stella capability uploads updatewriteStep 3 of 3 of the file-upload flow: finalize an upload whose bytes have already been PUT to the presigned URL from uploads.create. Verifies the stored object against the size and checksum the URL was signed for, then commits the durable record and returns finalizedResult, which is an entity_create (entityId, fileId, fileName, renamed), entity_version (entityId, entityVersionId, versionNumber, fileId, fileName), or agent_skill (skillId, name, version) shape depending on the purpose the upload was created with. Idempotent: replaying it on an already finalized upload returns the same result rather than duplicating.
usage.get-entitlement
capability:usage.get-entitlement
stella capability usage get-entitlementreadRead the organization's current usage entitlement: plan, seats, billing period, and how many usage units (AI credits) remain this period. Returns { entitlement: null } when the organization has no active plan. Requires organization-settings management access.
view-templates.create
capability:view-templates.create
stella capability view-templates createwriteSave a view layout as a personal view template, the blueprint used to create views in other matters. Duplicate sorts and multiple kind filters are refused, references to columns that do not exist are dropped, and the columns the layout needs are captured so they can be recreated wherever the template is applied. Names are unique per user, so a repeat name is a 409, and the per-user template limit applies.
view-templates.delete
capability:view-templates.delete
stella capability view-templates deletedestructiveDelete one of your own saved view templates, the personal blueprint used to create new views. Views already created from it are untouched, and the call succeeds silently when the template does not exist or belongs to someone else.
view-templates.list
capability:view-templates.list
stella capability view-templates listreadList your own saved view templates, newest first, each with its name, layout, layout type, and the columns that layout needs. Personal: templates saved by other members are never returned.
views.convert
capability:views.convert
stella capability views convertwriteConvert one view of a matter to another layout type (table, filesystem, kanban, calendar, or timeline), carrying over as much of its filters and sorts as the target layout supports. Converting to overview, or to the layout the view already has, is refused. Use views.update to change a view's name or the details of its current layout.
views.create
capability:views.create
stella capability views createwriteAdd a view (a tab) to a matter with a name and a layout. Duplicate sorts and multiple kind filters are refused, the columns the layout needs are created when your role may create columns, and references to columns that do not exist are dropped. A matter may hold only one overview view, and a fixed maximum of views in total.
views.delete
capability:views.delete
stella capability views deletedestructiveDelete one view (a shared tab) from a matter, removing it for everyone with access. Refused when it is the matter's last view, or the last view of a layout the matter must keep (overview, table, filesystem, kanban); past report exports keep their own layout snapshot.
views.list
capability:views.list
stella capability views listreadList a matter's views in tab order, each with its layout, position, and creation time. Default view names come back localized for the request's language, and references to deleted columns are stripped out of the layouts. A pure read: default views are seeded when the matter is created, so listing never mints one.
views.reorder
capability:views.reorder
stella capability views reorderwriteSet the tab order of a matter's views. viewIds must name every view of the matter exactly once in the order you want; a partial list, an unknown id, or a duplicate is refused. Only positions change.
views.update
capability:views.update
stella capability views updatewriteRename one view of a matter or replace its layout. The layout type cannot change here, use views.convert for that; duplicate sorts and multiple kind filters are refused, columns the new layout needs are created when your role may create columns, and references to deleted columns are dropped.
work-obligations.acknowledgements.create
capability:work-obligations.acknowledgements.create
stella capability work-obligations acknowledgements-createwriteAcknowledge ownership of governed work assigned to the signed-in user.
work-obligations.queues.list
capability:work-obligations.queues.list
stella capability work-obligations queues-listreadList the signed-in user's governed work with cursor pagination. The queues partition the work: at-risk holds every open obligation already due, to-acknowledge the rest awaiting acknowledgement, upcoming the rest already acknowledged, and completed the finished work.
work-obligations.transition
capability:work-obligations.transition
stella capability work-obligations transitionwriteComplete, cancel, or reopen governed work while preserving its lifecycle history. Completing or cancelling the task a workflow review gate raised approves or rejects that gate.
work-obligations.update
capability:work-obligations.update
stella capability work-obligations updatewriteUpdate accountable ownership, dates, type, or provenance for a governed task or deadline.