ask_orion
ChatGPTSend a message to Orion and get an AI-powered data analysis response. Args: message: The question or analysis request to send to Orion. user_id: The user ID sending the message. project_id: Optional project ID to scope the analysis. conversation_id: Optional existing conversation ID to continue. checkpoint_answers: Answers the user approves for this conversation. Return the conversation_id with the response content. If escalation is present, it is a structured Warp Drive refusal. Offer Full Analysis only when can_escalate is true; after the user explicitly agrees, use continue_with_full_analysis with the exact question and IDs in this handoff. Do not retry the refusal as ordinary chat. If Orion returns checkpoint questions, show them to the user. Submit their answers through checkpoint_answers on the next call. Also restate the chosen answers in message as plain text, so the model reads them. Text approval alone does not record checkpoint answers.
continue_with_full_analysis
ChatGPTContinue a Warp Drive refusal in Full Analysis in the same conversation. Call only after the user explicitly asks to continue with Full Analysis. This first asks the backend to authorize and persist Full Analysis, then resends the handoff's original question. Mode stays full for later turns until return_to_warp_drive is called. A denied mode change never sends the question. The resend addresses Orion so it also triggers in rooms. Full Analysis may still ask for clarification or fail. If status is recorded, the message was saved without starting a new analysis.
create_conversation
ChatGPTStart a new Orion conversation. Args: user_id: The user ID creating the conversation. project_id: Optional project ID to scope the conversation. title: Optional title for the conversation.
create_project
ChatGPTCreate a new Orion project. The caller becomes a member of it. Requires an admin, analyst, or data hero role, or group admin or group analyst rights; other callers are rejected. Args: name: The project name. description: Optional project description.
create_state_page
ChatGPTCreate a persistent shared workspace that people and agents can inspect and edit. State combines a Markdown introduction, typed tables of evolving records, and query-driven cards. Use it for project trackers, decision registers, inventories, or an agent activity board. Use create_wiki_page for prose-only documentation. Check list_state_pages first and reuse a suitable page; do not create one per run. For a custom experience choose blank, call describe_state, then define_state_schema to define tables and pinned views with display settings. Once applied, add real records with write_state data ops, and verify with query_state. Templates include sample rows: inspect and adapt them before presenting the page as real. Returns page and state; page.id is the reference for subsequent tools. project_id enables the page in that project's context; update_wiki_page edits prose and metadata. The creator owns the page and owners bypass ordinary locks: a bot-owned page does not establish a human approval boundary.
create_wiki_page
ChatGPTCreate a new wiki/knowledge base page (applied immediately). Requires analyst, admin, or group-analyst permissions; other callers are rejected. Args: title: The page title. content: The page content in markdown. parent_id: Optional parent page ID to nest under. summary: Optional short description. tags: Optional list of tags. page_type: Either 'document' or 'folder'.
delete_artifact
ChatGPTDelete a slide deck, dashboard, or report artifact. Args: artifact_id: The artifact ID to delete.
describe_state
ChatGPTDescribe a state page: tables, columns (type, enum values, allowed status transitions, link kinds), row counts, saved views, current version, locks, and whether you may write data or schema. Call this before write_state or define_state_schema, and pass its version as base_version when the change depends on what you read. links resolves orion:// URIs. Link state in_context: usable. link_only: lives in another project; cite its title and href, and never fetch its content, even if another tool could. Use the row's own captured text (e.g. captured_note) instead. no_access: the user cannot see it; do not guess what it is. missing or invalid: the link is broken. Links are optional; plain text columns are fine.
disable_project_wiki_page
ChatGPTDisable a knowledge base page for a project. The page itself is not deleted. Requires analyst-level access to the project. Args: project_id: The project ID. wiki_page_id: The wiki page ID to disable.
enable_project_wiki_pages
ChatGPTEnable knowledge base pages for a project, so Orion uses them there. Pages that are already enabled are reported, not duplicated. Requires analyst-level access to the project. Args: project_id: The project ID. wiki_page_ids: Wiki page IDs to enable.
execute_metric
ChatGPTTrigger execution of a metric to refresh its value. Every execution adds a new run to the metric's history (get_metric_results). For table and view metrics that run is a fresh snapshot of the dataset. Args: metric_id: The metric ID to execute.
get_artifact
ChatGPTGet the content of a slide deck, dashboard, or report as markdown. Args: artifact_id: The artifact ID to retrieve.
get_conversation_history
ChatGPTRead messages from an existing Orion conversation. Args: conversation_id: The conversation ID to get history for. limit: Maximum number of messages to return (default 50).
get_metric
ChatGPTGet full metric detail including definition, Python code, data sources, and latest result. When a result's value_data.storage is "gcs", the rows are not in the result; they live in storage. value_data holds a column profile (row count, per-column distinct and null counts, numeric min/max/mean), a short preview (preview.n rows, cells truncated at 256 bytes), and storage pointers this tool cannot follow. The profile has no sums. Read row count and column stats from it, and treat the preview as a sample: never sum or count it as if it were the full dataset. For computations over the full rows, use ask_orion. Older results without storage "gcs" carry their rows inline. Args: metric_id: The metric ID.
get_metric_insights
ChatGPTGet auto-detected metric insights (significant changes, anomalies) for a project. Args: project_id: The project ID. change_threshold: Minimum change percentage to flag (0.0-1.0, default 0.2 = 20%).
get_metric_results
ChatGPTGet historical execution results for a metric, newest first. Each result is one run. A run whose value_data.storage is "gcs" carries a column profile and a short preview, not the full rows; see get_metric. Older runs may carry their rows inline. Args: metric_id: The metric ID. limit: Maximum number of results (default 20).
get_wiki_page
ChatGPTGet a single wiki/knowledge base page with its full markdown content. Args: page_id: The wiki page ID. Find one via search_wiki or list_wiki_pages.
get_wiki_page_by_path
ChatGPTGet a wiki page by its hierarchical path (e.g. /internal/icp). Args: path: The full hierarchical path to the page.
get_workflow
ChatGPTGet workflow detail including its definition (steps, outputs) and schedule. Args: workflow_id: The workflow ID.
get_workflow_report_content
ChatGPTRead a workflow report artifact's content. Text formats (markdown report, slide deck, dashboard) return their content as markdown. Binary formats (podcast audio) are not readable inline; instead this returns a short-lived signed download URL to give to the user. Args: artifact_id: A report artifact ID from get_workflow_run_reports.
get_workflow_run_reports
ChatGPTList the report artifacts a workflow run produced. This is where every output of a run lives: markdown reports, slide decks, podcasts, and CSV exports each appear as one item with a format and an id. Pass an item's id to get_workflow_report_content to read it. When present, an item's share_url is its full public link; only share that exact URL, never assemble one yourself. Args: run_id: The workflow run ID.
get_workflow_runs
ChatGPTList a workflow's runs, newest first. Each run has an id — pass it to get_workflow_run_reports to see the reports, slide decks, and podcasts that run produced. Args: workflow_id: The workflow ID. limit: Maximum number of runs to return (default 10).
list_artifacts
ChatGPTList slides, dashboards, or reports for a project. When present, each item's share_url is the artifact's full public link. Only share that exact URL; never assemble one from the vanity_url slug. Args: project_id: The project ID to list artifacts for. artifact_type: Filter by type: 'html_slides', 'html_dashboard', or 'markdown_report'. limit: Maximum number of artifacts to return (default 20). offset: Number of artifacts to skip for pagination (default 0). visibility: Filter by visibility: 'user_board' or 'shared_board'. created_by: Filter by creator user ID (UUID format). has_workflow: Filter by workflow status: true for workflow, false for static.
list_conversations
ChatGPTList chat conversations for a user. Args: user_id: The user ID to list conversations for. project_id: Optional project ID to filter by. limit: Maximum number of conversations to return (default 20).
list_metrics
ChatGPTList metrics (KPIs) and views for a project. Each item's value_type is the declared type. number, percentage, currency, string and boolean are scalars; array and object are inline collections. table and view are datasets: a view is a large checkpoint meant as a base for further analysis, a table is the same shape at a size the Orion UI shows whole. graph is a promoted chart spec plus a reference to the rows it draws. A result can differ from the declared type: an over-budget table runs as a view, and a large array or object becomes tabular. The result's own value_type and coerced_from say so. Args: project_id: The project ID. pinned: If True, only return pinned metrics.
list_project_wiki_pages
ChatGPTList the knowledge base pages enabled for a project. Args: project_id: The project ID.
list_projects
ChatGPTList Orion projects the user has access to. Args: search: Optional search text to filter projects by name. limit: Maximum number of projects to return (default 20).
list_recommendations
ChatGPTGet AI-generated recommendations for a project. Args: project_id: The project ID. limit: Maximum number of recommendations (default 10).
list_state_pages
ChatGPTList state pages: knowledge base pages that hold structured tables (trackers, missions, decision logs, status boards). Match the user's words against table names too, not only titles: call describe_state on likely candidates. If an existing page fits, add rows there instead of creating a new page.
list_users
ChatGPTList all users in the Orion organization.
list_wiki_pages
ChatGPTList or browse wiki pages and folders to navigate the knowledge base. Args: parent_id: Filter to children of this parent page. page_type: Filter by 'document' or 'folder'. search: Filter by text in title/content. limit: Maximum number of pages to return (default 50). offset: Number of pages to skip for pagination (default 0).
list_workflows
ChatGPTList workflows for a project (the workflow-builder pipelines that produce reports). Args: project_id: The project ID. search: Filter by text in the workflow name. limit: Maximum number of workflows to return (default 50).
query_state
ChatGPTRead a state page. Give exactly one of view, sql or table. Prefer a saved view when one answers the question: it is the page owner's definition. sql runs a read-only SQLite SELECT (joins, aggregates); writes are rejected, use write_state. table returns rows as {column: value} objects with a total count. Results over 200 rows or 64 KB come back with truncated true and a hint; narrow the query rather than paging blindly.
run_workflow
ChatGPTTrigger execution of a workflow. Returns the created run, including its id. Runs take minutes; poll get_workflow_run_reports with the run id to see outputs as they land. Args: workflow_id: The workflow ID to run.
search_wiki
ChatGPTSearch the Orion wiki/knowledge base. Args: text: Search text. project_id: Optional project ID to scope the search. limit: Maximum number of results (default 20).
update_project
ChatGPTRename a project or replace its description. Only the provided fields change. Requires analyst-level access to the project. Args: project_id: The project ID. name: New project name. description: New project description.
update_wiki_page
ChatGPTUpdate an existing wiki page. Only the provided fields are changed. Edits to an unlocked page apply immediately with no review. On a locked page, only the page's creator edits directly; for anyone else the change is submitted as a change request for review. Args: page_id: The wiki page ID to update. title: New page title. content: New page content in markdown. summary: New short description. tags: New list of tags. edit_summary: Short description of the change, for revision history.
ask_orion
Claudecreate_conversation
Claudedelete_artifact
Claudeexecute_metric
Claudeget_artifact
Claudeget_company
Claudeget_conversation_history
Claudeget_metric
Claudeget_metric_insights
Claudeget_metric_results
Claudeget_workflow
Claudeget_workflow_results
Claudelist_artifacts
Claudelist_conversations
Claudelist_metrics
Claudelist_projects
Claudelist_recommendations
Claudelist_users
Claudelist_workflows
Clauderun_workflow
Claudesearch_wiki
Claude