The `plan` skill now expresses a plan's open questions, propositions and clarifications as an ask-form field spec in a fenced json block under `## Questions`. The backend parses it (reusing forms.valid_fields), the plan page renders it with the same controls the conversation forms use, answers are kept in localStorage per plan, and Submit & work drops the implement-this-plan prompt into the composer with the decisions appended.
11129 lines
266 KiB
JSON
11129 lines
266 KiB
JSON
{
|
|
"openapi": "3.1.0",
|
|
"info": {
|
|
"title": "ai-agent",
|
|
"version": "0.1.0"
|
|
},
|
|
"paths": {
|
|
"/api/bundle": {
|
|
"get": {
|
|
"summary": "Bundle",
|
|
"description": "The whole file catalog \u2014 metadata only, served from the index DB.\n\nThis used to read every context file's content per request (a 16 MB,\n12-second response the app shell fetched on every load). File *content* now\nloads lazily through ``GET /api/file`` when a file is opened; the words /\nchars / token stats come from the ``files`` table, which the indexer keeps\nfresh (recomputed only when a file's content actually changes).",
|
|
"operationId": "bundle_api_bundle_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Bundle"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/file": {
|
|
"get": {
|
|
"summary": "Get File",
|
|
"operationId": "get_file_api_file_get",
|
|
"parameters": [
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FileEntry"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"summary": "Put File",
|
|
"operationId": "put_file_api_file_put",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SaveBody"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FileEntry"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ui-state/{key}": {
|
|
"get": {
|
|
"summary": "Get Ui State",
|
|
"operationId": "get_ui_state_api_ui_state__key__get",
|
|
"parameters": [
|
|
{
|
|
"name": "key",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Key"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UiStateValue"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"summary": "Put Ui State",
|
|
"operationId": "put_ui_state_api_ui_state__key__put",
|
|
"parameters": [
|
|
{
|
|
"name": "key",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Key"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UiStateBody"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OkResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"summary": "Delete Ui State",
|
|
"operationId": "delete_ui_state_api_ui_state__key__delete",
|
|
"parameters": [
|
|
{
|
|
"name": "key",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Key"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OkResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/dashboard": {
|
|
"get": {
|
|
"summary": "Dashboard",
|
|
"description": "Skill-usage analytics + cost rollups for the homepage.",
|
|
"operationId": "dashboard_api_dashboard_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Dashboard"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/skills": {
|
|
"get": {
|
|
"summary": "Skills List",
|
|
"description": "Card metadata + usage/cost stats for every skill, last-used first.\n\nThe list is the **union** of the skills on disk and the ones the transcripts\nsaw invoked: a built-in or plugin skill (``code-review``, ``artifact-design``)\nhas no ``SKILL.md`` in this repo but still earned its calls, so it appears\nwith ``sourceKind: \"builtin\"`` and no editor link.",
|
|
"operationId": "skills_list_api_skills_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SkillsResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversations": {
|
|
"get": {
|
|
"summary": "Conversations List",
|
|
"description": "List parsed transcripts (newest first) for the conversation viewer.\n\nPaginated: ``limit`` caps the page (0 = everything), ``before`` is the\n``endedAt`` cursor of the previous page's last card, and ``archived``\nfilters hidden conversations server-side (``false`` \u2014 the default view \u2014\nexcludes them; ``all`` includes them). ``full=1`` adds the per-card\n``usage``/``byToolSub`` blocks the analytics dashboard aggregates.",
|
|
"operationId": "conversations_list_api_conversations_get",
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 50,
|
|
"title": "Limit"
|
|
}
|
|
},
|
|
{
|
|
"name": "before",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Before"
|
|
}
|
|
},
|
|
{
|
|
"name": "archived",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"default": "false",
|
|
"title": "Archived"
|
|
}
|
|
},
|
|
{
|
|
"name": "full",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"title": "Full"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConversationsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/subagents": {
|
|
"get": {
|
|
"summary": "Subagents List",
|
|
"description": "Every subagent (sidechain) transcript as a flat lite ref carrying its\nparent conversation id. The top-level conversation list hides sidechains;\nthis is the one place they're enumerated \u2014 the graph view's node source.\nAll from the in-process summaries cache (+ cached meta.json reads).",
|
|
"operationId": "subagents_list_api_subagents_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SubagentsResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversation-summary": {
|
|
"get": {
|
|
"summary": "Conversation Summary",
|
|
"description": "One conversation's list card \u2014 what an SSE `transcript` ping patches\ninto the cached list, so a live turn costs a few KB instead of a full\nlist refetch.",
|
|
"operationId": "conversation_summary_api_conversation_summary_get",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConversationSummary"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/notifications": {
|
|
"get": {
|
|
"summary": "Notifications Feed",
|
|
"description": "Feed source for the notification history: every conversation that\nrecorded a push, with just the fields the feed needs. Replaces walking the\nwhole conversation list client-side.",
|
|
"operationId": "notifications_feed_api_notifications_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotificationsResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/notifications/unread": {
|
|
"get": {
|
|
"summary": "Notifications Unread",
|
|
"description": "Unread notifications (not yet opened in the UI), newest first.\n\nPure read: fetching this NEVER marks anything read \u2014 the phone can list and\nread these aloud without \"consuming\" them; only the UI (or an explicit\n``POST /api/notifications/seen``) advances the read ledger. This is the\nendpoint the desk phone hits with its read-only API key.",
|
|
"operationId": "notifications_unread_api_notifications_unread_get",
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 20,
|
|
"title": "Limit"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UnreadNotificationsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/notifications/seen": {
|
|
"post": {
|
|
"summary": "Notifications Mark Seen",
|
|
"description": "Mark notification ids as read (opened/dismissed in the UI). Mutating \u2014\nrefused to a read-only API-key caller by the gate, so the phone can't use\nit. Passing no ids with ``all=true`` marks the whole current feed read.",
|
|
"operationId": "notifications_mark_seen_api_notifications_seen_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotifSeenBody"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OkResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/notifications/seed": {
|
|
"post": {
|
|
"summary": "Notifications Seed",
|
|
"description": "Adopt the given ids (or the whole current feed) as the read baseline \u2014\nthe first-sync op so history isn't reported as unread.",
|
|
"operationId": "notifications_seed_api_notifications_seed_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotifSeenBody"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OkResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/search-index": {
|
|
"get": {
|
|
"summary": "Search Index",
|
|
"description": "Full-text search corpus: every conversation's user/assistant text blocks.\n\nShipped once to the client, which runs a fuzzy search (Fuse.js) over it. Each\nmessage carries its ordinal `i`, which matches the `mi` on the detail thread's\ntext items, so a hit can deep-link to `/conversation/<id>?m=<i>` and scroll to\nthe exact message.",
|
|
"operationId": "search_index_api_search_index_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SearchIndexResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversation": {
|
|
"get": {
|
|
"summary": "Conversation Detail",
|
|
"description": "Full parsed thread (tools collapsible client-side) + per-turn usage.",
|
|
"operationId": "conversation_detail_api_conversation_get",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConversationDetail"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversation-commits": {
|
|
"get": {
|
|
"summary": "Conversation Commits",
|
|
"description": "The commits a conversation produced (cached), tagged with their repo.",
|
|
"operationId": "conversation_commits_api_conversation_commits_get",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConversationCommits"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/commit-diff": {
|
|
"get": {
|
|
"summary": "Commit Diff",
|
|
"description": "Structured per-file hunk diff of a single commit within a repo token.",
|
|
"operationId": "commit_diff_api_commit_diff_get",
|
|
"parameters": [
|
|
{
|
|
"name": "repo",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Repo"
|
|
}
|
|
},
|
|
{
|
|
"name": "sha",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Sha"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DiffResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/diff-blob": {
|
|
"get": {
|
|
"summary": "Diff Blob",
|
|
"description": "Raw bytes of a file inside a diff \u2014 the image side rendered in the viewer.\n\n``repo`` is a diff repo token (``project:`` / ``service:`` / ``super:_``),\n``path`` is repo-relative. With ``sha`` the file is read at that rev (e.g. the\ncommit's tip for an added image, or ``<sha>^`` for a deleted one); without it\nthe current working-tree copy is served (conversation / uncommitted diffs).",
|
|
"operationId": "diff_blob_api_diff_blob_get",
|
|
"parameters": [
|
|
{
|
|
"name": "repo",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Repo"
|
|
}
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
}
|
|
},
|
|
{
|
|
"name": "sha",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sha"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversation-uncommitted-diff": {
|
|
"get": {
|
|
"summary": "Conversation Uncommitted Diff",
|
|
"description": "The conversation's current not-yet-committed changes, replayed from the\ntranscript's accumulated edits/creates/deletes (see editsdiff). ``stats``\nstrips the hunks \u2014 the detail panel only needs paths and +/\u2212 counts.",
|
|
"operationId": "conversation_uncommitted_diff_api_conversation_uncommitted_diff_get",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "stats",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"title": "Stats"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DiffResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversation-diff": {
|
|
"get": {
|
|
"summary": "Conversation Diff",
|
|
"description": "Aggregated net diff across all of a conversation's commits.",
|
|
"operationId": "conversation_diff_api_conversation_diff_get",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DiffResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversation-meta": {
|
|
"get": {
|
|
"summary": "Conversation Meta",
|
|
"description": "The raw action-metadata sidecar (keyed by session id).",
|
|
"operationId": "conversation_meta_api_conversation_meta_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConversationMetaResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"summary": "Update Conversation Meta",
|
|
"operationId": "update_conversation_meta_api_conversation_meta_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MetaPatch"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MetaUpdateResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/conversations/archive-old": {
|
|
"post": {
|
|
"summary": "Archive Old Conversations",
|
|
"description": "Archive (hide) every conversation that ended before the start of yesterday.\n\nBulk cleanup for the drawer: keeps today's and yesterday's transcripts\nvisible and folds everything older behind the \"show archived\" toggle.",
|
|
"operationId": "archive_old_conversations_api_conversations_archive_old_post",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ArchiveOldResult"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/models": {
|
|
"get": {
|
|
"summary": "List Models",
|
|
"description": "The models a session can be spawned/resumed on (a tag each in the composer).\n\nFetched from the Anthropic API and cached in-process (see models.py), so the\npicker follows new releases without a redeploy. `default` is what a run uses\nwhen no model tag is picked.",
|
|
"operationId": "list_models_api_models_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ModelsResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/spawn": {
|
|
"post": {
|
|
"summary": "Spawn Conversation",
|
|
"description": "Kick off a new headless agent session on the host (see _send_message).",
|
|
"operationId": "spawn_conversation_api_spawn_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpawnBody"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpawnResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/resume": {
|
|
"post": {
|
|
"summary": "Resume Conversation",
|
|
"description": "Continue an existing conversation with a new user turn (see _send_message).\n\nRuns ``claude -p <prompt> --resume <sessionId>`` in the session's original\ncwd; resume reuses the session id, so Claude appends the new turns to the\nsame transcript the viewer is already watching and the open conversation\nstreams the continuation live. A still-running session is stopped first \u2014\nsending a message always wins.",
|
|
"operationId": "resume_conversation_api_resume_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ResumeBody"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpawnResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/fork": {
|
|
"post": {
|
|
"summary": "Fork Conversation",
|
|
"description": "Branch a new conversation off an existing one at a user message.\n\nThe new session's history is the source transcript up to (excluding) user\nmessage ``mi``; ``prompt`` (the edited message) is then sent as its next\nturn. Neither CLI can truncate at a message (`claude --fork-session` only\nclones whole sessions), so the host sidecar does transcript surgery: it\ncopies the first ``cutLine`` lines of the source session file under a\nfresh session id and resumes that \u2014 see sidecar ``/fork``. ``cutText`` and\n``cutUserOrd`` let the sidecar/runner verify they're slicing the same\nmessage this viewer showed (the archive is an append-only copy of the\nlive file, so the line indices match; the canary catches drift).",
|
|
"operationId": "fork_conversation_api_fork_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ForkBody"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpawnResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/interrupt": {
|
|
"post": {
|
|
"summary": "Interrupt Conversation",
|
|
"description": "Stop a running Claude session this viewer spawned.\n\nProxies to the host sidecar, which sends the run's process group a SIGINT \u2014\nexactly like pressing Esc in a terminal. Claude aborts the turn and records a\n``[Request interrupted by user]`` marker in the transcript, which the parser\nthen surfaces as the ``interrupted`` state. We also stamp the metadata\nimmediately so the UI flips before that marker has synced.",
|
|
"operationId": "interrupt_conversation_api_interrupt_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InterruptBody"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InterruptResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/cron": {
|
|
"get": {
|
|
"summary": "Cron Jobs",
|
|
"description": "Every cron job, with its computed next fire time and run history.",
|
|
"operationId": "cron_jobs_api_cron_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CronJobsResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"summary": "Cron Create",
|
|
"description": "Create a job. The prompt file is created (a stub carrying the default\nrun-config frontmatter) if it doesn't exist yet, so the editor always opens\non something and the harness/model/effort keys are there to edit.",
|
|
"operationId": "cron_create_api_cron_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CronCreateBody"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CronJob"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/cron/{job_id}": {
|
|
"put": {
|
|
"summary": "Cron Update",
|
|
"operationId": "cron_update_api_cron__job_id__put",
|
|
"parameters": [
|
|
{
|
|
"name": "job_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Job Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CronPatchBody"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CronJob"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"summary": "Cron Delete",
|
|
"description": "Remove a job. Its prompt file is left in place (it's repo content).",
|
|
"operationId": "cron_delete_api_cron__job_id__delete",
|
|
"parameters": [
|
|
{
|
|
"name": "job_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Job Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OkResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/cron/{job_id}/run": {
|
|
"post": {
|
|
"summary": "Cron Run Now",
|
|
"description": "Fire a job immediately (manual run \u2014 works even when disabled).",
|
|
"operationId": "cron_run_now_api_cron__job_id__run_post",
|
|
"parameters": [
|
|
{
|
|
"name": "job_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Job Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpawnResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/cron/{job_id}/prompt": {
|
|
"get": {
|
|
"summary": "Cron Prompt",
|
|
"description": "The job's prompt file content (the editable text in Settings \u2192 Cron).",
|
|
"operationId": "cron_prompt_api_cron__job_id__prompt_get",
|
|
"parameters": [
|
|
{
|
|
"name": "job_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Job Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CronPromptFile"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"summary": "Cron Prompt Save",
|
|
"operationId": "cron_prompt_save_api_cron__job_id__prompt_put",
|
|
"parameters": [
|
|
{
|
|
"name": "job_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Job Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CronPromptBody"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CronPromptFile"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/webhooks": {
|
|
"get": {
|
|
"summary": "Webhooks Get",
|
|
"operationId": "webhooks_get_api_webhooks_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WebhooksResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"summary": "Webhooks Put",
|
|
"operationId": "webhooks_put_api_webhooks_put",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WebhooksBody"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WebhooksResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/webhooks/{webhook_id}/test": {
|
|
"post": {
|
|
"summary": "Webhook Test",
|
|
"description": "Send a test push through one webhook (regardless of enabled/events).",
|
|
"operationId": "webhook_test_api_webhooks__webhook_id__test_post",
|
|
"parameters": [
|
|
{
|
|
"name": "webhook_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Webhook Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotifyResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/notify": {
|
|
"post": {
|
|
"summary": "Notify Push",
|
|
"description": "Record a push notification and forward it to the subscribed webhooks.",
|
|
"operationId": "notify_push_api_notify_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotifyBody"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotifyResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ask": {
|
|
"post": {
|
|
"summary": "Ask Push",
|
|
"description": "Create an ask (choice question), forward it to the webhooks, return its\nid. The HA integration renders the tappable notification and POSTs the\nanswer back to /api/ask/{id}/answer; callers long-poll GET /api/ask/{id}.",
|
|
"operationId": "ask_push_api_ask_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AskBody"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotifyResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ask/{ask_id}": {
|
|
"get": {
|
|
"summary": "Ask Get",
|
|
"description": "The ask's current state; ``waitSecs`` long-polls for the answer.",
|
|
"operationId": "ask_get_api_ask__ask_id__get",
|
|
"parameters": [
|
|
{
|
|
"name": "ask_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Ask Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "waitSecs",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "number",
|
|
"default": 0,
|
|
"title": "Waitsecs"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AskRecord"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/ask/{ask_id}/answer": {
|
|
"post": {
|
|
"summary": "Ask Answer",
|
|
"description": "Callback for the HA integration: record which button was tapped.",
|
|
"operationId": "ask_answer_api_ask__ask_id__answer_post",
|
|
"parameters": [
|
|
{
|
|
"name": "ask_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Ask Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AskAnswerBody"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AskRecord"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/notify-log": {
|
|
"get": {
|
|
"summary": "Notify Log",
|
|
"description": "The first-class notification/ask log, newest first.",
|
|
"operationId": "notify_log_api_notify_log_get",
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 200,
|
|
"title": "Limit"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NotifyLogResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/forms": {
|
|
"post": {
|
|
"summary": "Form Create",
|
|
"description": "Create a form (the ask-form skill's entry point) and return it.\n\nThe caller then sends its own push notification linking to the\nconversation with ``?form=<id>`` and long-polls GET /api/forms/{id}.",
|
|
"operationId": "form_create_api_forms_post",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FormCreateBody"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FormRecord"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"summary": "Forms List",
|
|
"description": "Forms, newest first; ``session`` filters to one conversation.",
|
|
"operationId": "forms_list_api_forms_get",
|
|
"parameters": [
|
|
{
|
|
"name": "session",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"default": "",
|
|
"title": "Session"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 100,
|
|
"title": "Limit"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FormsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/forms/{form_id}": {
|
|
"get": {
|
|
"summary": "Form Get",
|
|
"description": "The form's current state; ``waitSecs`` long-polls for a submit.",
|
|
"operationId": "form_get_api_forms__form_id__get",
|
|
"parameters": [
|
|
{
|
|
"name": "form_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Form Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "waitSecs",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "number",
|
|
"default": 0,
|
|
"title": "Waitsecs"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FormRecord"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/forms/{form_id}/submit": {
|
|
"post": {
|
|
"summary": "Form Submit",
|
|
"description": "Record the user's answers (from the PWA's form card / modal).",
|
|
"operationId": "form_submit_api_forms__form_id__submit_post",
|
|
"parameters": [
|
|
{
|
|
"name": "form_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Form Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FormSubmitBody"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FormRecord"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/forms/{form_id}/cancel": {
|
|
"post": {
|
|
"summary": "Form Cancel",
|
|
"description": "Dismiss a form unanswered (the card's Cancel button, or the agent\ngiving up on the wait).",
|
|
"operationId": "form_cancel_api_forms__form_id__cancel_post",
|
|
"parameters": [
|
|
{
|
|
"name": "form_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Form Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FormRecord"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/projects": {
|
|
"get": {
|
|
"summary": "Projects List",
|
|
"description": "Card metadata for every directory under projects/ (newest commit first).\n\nEach card carries a compact ``costs`` rollup (total $/tokens + conversation\ncount) aggregated from every conversation attributed to the project.",
|
|
"operationId": "projects_list_api_projects_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProjectsResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/project": {
|
|
"get": {
|
|
"summary": "Project Detail",
|
|
"description": "Full metadata + key-file contents (README/CLAUDE.md/index meta/og) for one project.\n\nAlso attaches a ``costs`` block: total/mean/median spend across the project's\nconversations, a per-token-type breakdown, and mean cost per line of code.",
|
|
"operationId": "project_detail_api_project_get",
|
|
"parameters": [
|
|
{
|
|
"name": "slug",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Slug"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProjectDetail"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/project-env": {
|
|
"get": {
|
|
"summary": "Project Env",
|
|
"description": "Key/value view of a project's `.env`. Vars below a `# --- secrets ---`\ncomment are secrets: their keys are listed but values never leave disk.",
|
|
"operationId": "project_env_api_project_env_get",
|
|
"parameters": [
|
|
{
|
|
"name": "slug",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Slug"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProjectEnvResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"put": {
|
|
"summary": "Project Env Save",
|
|
"description": "Apply key/value edits to a project's `.env`, preserving comments, order\nand the secrets section. Unsets run first, then sets.",
|
|
"operationId": "project_env_save_api_project_env_put",
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EnvSaveBody"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProjectEnvResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/project-asset": {
|
|
"get": {
|
|
"summary": "Project Asset",
|
|
"description": "Serve a whitelisted image asset (e.g. og-image) from a project dir.",
|
|
"operationId": "project_asset_api_project_asset_get",
|
|
"parameters": [
|
|
{
|
|
"name": "slug",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Slug"
|
|
}
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/artefact": {
|
|
"get": {
|
|
"summary": "Artefact Asset",
|
|
"description": "Serve one generated artefact from a project/service's `.ai/artefacts/`\ntree (``path`` is ``<date>/<sessionId>/<file>``, relative to that tree).",
|
|
"operationId": "artefact_asset_api_artefact_get",
|
|
"parameters": [
|
|
{
|
|
"name": "kind",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Kind"
|
|
}
|
|
},
|
|
{
|
|
"name": "slug",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Slug"
|
|
}
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/screenshot": {
|
|
"get": {
|
|
"summary": "Screenshot Asset",
|
|
"description": "Serve a captured screenshot image from docs/screenshots/ (read-only).\n\n``path`` is the image's location relative to the screenshots root\n(``<project>/<name>_<ts>.jpeg``). A leading ``docs/screenshots/`` prefix,\nif present, is stripped so the raw path printed by the skill also works.",
|
|
"operationId": "screenshot_asset_api_screenshot_get",
|
|
"parameters": [
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/data-asset": {
|
|
"get": {
|
|
"summary": "Data Asset",
|
|
"description": "Serve an image or video artifact from the repo's root `data/` tree (read-only).\n\n``path`` is the file's location relative to ``data/`` (a leading ``data/``\nprefix, if present, is stripped so the raw repo-relative path also works).\nUsed to preview media the agent ``Read`` from under ``data/`` inline in the\nconversation viewer \u2014 see the CLAUDE.md convention to write artifacts there.",
|
|
"operationId": "data_asset_api_data_asset_get",
|
|
"parameters": [
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/scratchpad-asset": {
|
|
"get": {
|
|
"summary": "Scratchpad Asset",
|
|
"description": "Serve an image or video from Claude Code's session scratchpad tree.\n\n``path`` is relative to the scratchpad root \u2014 ``<encoded-cwd>/<sessionId>/\nscratchpad/<file>`` \u2014 so a run's throwaway media previews inline in the\nthread without having to be copied into a project's ``.ai/artefacts/``.\nThe mount is read-only and only media extensions are served.",
|
|
"operationId": "scratchpad_asset_api_scratchpad_asset_get",
|
|
"parameters": [
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/upload": {
|
|
"post": {
|
|
"summary": "Upload Files",
|
|
"description": "Store one or more composer attachments and describe where they landed.\n\nEach upload is written to ``UPLOADS_DIR/<batch>/<safe-name>``. The returned\n``repoPath`` is what the composer injects into the prompt (the session reads\nit from the repo working dir); ``url`` is the backend serve route the thread\nviewer renders the file from.",
|
|
"operationId": "upload_files_api_upload_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_upload_files_api_upload_post"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UploadResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/upload-file": {
|
|
"get": {
|
|
"summary": "Upload File Asset",
|
|
"description": "Serve a previously uploaded composer attachment (raw bytes, inline).",
|
|
"operationId": "upload_file_asset_api_upload_file_get",
|
|
"parameters": [
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/avatar/manifest": {
|
|
"get": {
|
|
"summary": "Avatar Manifest",
|
|
"description": "The imported custom avatar set's manifest (empty {} if none), with each\nclip src pointing at /api/avatar-asset so the frontend can render it.",
|
|
"operationId": "avatar_manifest_api_avatar_manifest_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/avatar-asset": {
|
|
"get": {
|
|
"summary": "Avatar Asset",
|
|
"description": "Serve one strip from the imported custom avatar set (inline image).",
|
|
"operationId": "avatar_asset_api_avatar_asset_get",
|
|
"parameters": [
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/avatar/import": {
|
|
"post": {
|
|
"summary": "Avatar Import",
|
|
"description": "Import a custom avatar set from a sprite-editor \"Export set\" zip.\n\nValidates the zip has a manifest.json plus one strip per referenced clip,\nthen unpacks a clean copy into CUSTOM_AVATAR_DIR (replacing any previous\nset) and returns the served manifest. Rejects anything that isn't a small\nzip of a manifest + raster strips \u2014 no path traversal, no oversized members,\nnothing executable ever written.",
|
|
"operationId": "avatar_import_api_avatar_import_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_avatar_import_api_avatar_import_post"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/avatar/custom": {
|
|
"delete": {
|
|
"summary": "Avatar Clear",
|
|
"description": "Remove the imported custom avatar set.",
|
|
"operationId": "avatar_clear_api_avatar_custom_delete",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/services": {
|
|
"get": {
|
|
"summary": "Services List",
|
|
"description": "Card metadata for every service dir (containers/urls/auth, newest first).",
|
|
"operationId": "services_list_api_services_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServicesResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/service": {
|
|
"get": {
|
|
"summary": "Service Detail",
|
|
"description": "Full parse of one service: containers, Traefik routers, env keys, tree.",
|
|
"operationId": "service_detail_api_service_get",
|
|
"parameters": [
|
|
{
|
|
"name": "slug",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Slug"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ServiceDetail"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/service-file": {
|
|
"get": {
|
|
"summary": "Service File",
|
|
"description": "A single whitelisted text file's contents from a service dir (512 KB cap).",
|
|
"operationId": "service_file_api_service_file_get",
|
|
"parameters": [
|
|
{
|
|
"name": "slug",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Slug"
|
|
}
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/goals": {
|
|
"get": {
|
|
"summary": "Goals List",
|
|
"description": "Every project/service that keeps a GOAL.md, as a board.\n\nOne card per goal-bearing unit: its checklist progress, the version\nmilestones off its ``## Horizons``, the themed wishlist groups, the\ngoal-keeper's in-flight ``## Being worked on`` claims, and how many agent\nsessions are running on it right now.\n\nSorted by most-recent conversation (the unit you last touched is the one\nyou most likely want to push), with never-worked-on goals last.",
|
|
"operationId": "goals_list_api_goals_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GoalsResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/goal-work": {
|
|
"post": {
|
|
"summary": "Goal Work",
|
|
"description": "Spawn a goal-keeper session pointed at one unit's GOAL.md.\n\nThe \"Work\" button on the Goals page (no ``item``) and the per-item Work\nbutton on a detail page's checklist (``item`` set). Same machinery as any\nother spawn (`_send_message` \u2192 host sidecar), the difference being the\nprompt: it invokes the `goal-keeper` agent scoped to a single directory\ninstead of letting it choose among every GOAL.md in the repo, and it tells\nthe agent to claim its item in ``## Being worked on`` first \u2014 which is what\nstops two agents launched from this page landing on the same checkbox. When\n``item`` is given the agent is told to work *that* item rather than pick one.",
|
|
"operationId": "goal_work_api_goal_work_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GoalWorkBody"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpawnResult"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/memories": {
|
|
"get": {
|
|
"summary": "Memories List",
|
|
"description": "All memory summaries (projects + links derived), newest-updated first.",
|
|
"operationId": "memories_list_api_memories_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemoriesResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/memory": {
|
|
"get": {
|
|
"summary": "Memory Detail",
|
|
"description": "One memory + its body, with the conversations that created / read it.",
|
|
"operationId": "memory_detail_api_memory_get",
|
|
"parameters": [
|
|
{
|
|
"name": "slug",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Slug"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemoryDetail"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/plans": {
|
|
"get": {
|
|
"summary": "Plans List",
|
|
"description": "All plan summaries (data/plans/*.md), newest-updated first.",
|
|
"operationId": "plans_list_api_plans_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PlansResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/plan": {
|
|
"get": {
|
|
"summary": "Plan Detail",
|
|
"description": "One plan + body, with the ACTUAL cost/time/tokens joined from the linked\nconversation transcripts (shown next to the plan's own estimate).",
|
|
"operationId": "plan_detail_api_plan_get",
|
|
"parameters": [
|
|
{
|
|
"name": "slug",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Slug"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PlanDetail"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/templates": {
|
|
"get": {
|
|
"summary": "Templates List",
|
|
"description": "List every scaffold under projects/templates/ with stack tags + stats.",
|
|
"operationId": "templates_list_api_templates_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TemplatesResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/template": {
|
|
"get": {
|
|
"summary": "Template Detail",
|
|
"description": "One template: README, npm scripts, deps and a nested file tree.",
|
|
"operationId": "template_detail_api_template_get",
|
|
"parameters": [
|
|
{
|
|
"name": "name",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TemplateDetail"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/template-file": {
|
|
"get": {
|
|
"summary": "Template File",
|
|
"description": "A single text file's contents from within a template (512 KB cap).",
|
|
"operationId": "template_file_api_template_file_get",
|
|
"parameters": [
|
|
{
|
|
"name": "name",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
}
|
|
},
|
|
{
|
|
"name": "path",
|
|
"in": "query",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/events": {
|
|
"get": {
|
|
"summary": "Events",
|
|
"description": "Server-Sent Events: ``meta`` / ``transcript`` change pings for the UI.",
|
|
"operationId": "events_api_events_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/deploy-status": {
|
|
"get": {
|
|
"summary": "Deploy Status",
|
|
"description": "Current blue-green deploy snapshot (or ``null`` when none is in flight).\n\nWritten by ``services/ai-agent/deploy.sh`` into the data dir; polled by the\n:class:`DeployWatcher`, which pings a ``deploy`` SSE event on any change.",
|
|
"operationId": "deploy_status_api_deploy_status_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeployStatus"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/health": {
|
|
"get": {
|
|
"summary": "Health",
|
|
"operationId": "health_api_health_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/{full_path}": {
|
|
"get": {
|
|
"summary": "Spa",
|
|
"operationId": "spa__full_path__get",
|
|
"parameters": [
|
|
{
|
|
"name": "full_path",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"title": "Full Path"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"ArchiveOldResult": {
|
|
"properties": {
|
|
"archived": {
|
|
"type": "integer",
|
|
"title": "Archived"
|
|
},
|
|
"cutoff": {
|
|
"type": "string",
|
|
"title": "Cutoff"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"archived",
|
|
"cutoff"
|
|
],
|
|
"title": "ArchiveOldResult"
|
|
},
|
|
"ArtefactItem": {
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"title": "Kind"
|
|
},
|
|
"slug": {
|
|
"type": "string",
|
|
"title": "Slug"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"date": {
|
|
"type": "string",
|
|
"title": "Date"
|
|
},
|
|
"path": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"title": "Url"
|
|
},
|
|
"bytes": {
|
|
"type": "integer",
|
|
"title": "Bytes"
|
|
},
|
|
"mtime": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mtime"
|
|
},
|
|
"video": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Video"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"kind",
|
|
"slug",
|
|
"name",
|
|
"date",
|
|
"path",
|
|
"url",
|
|
"bytes"
|
|
],
|
|
"title": "ArtefactItem",
|
|
"description": "One generated artefact (screenshot, render, export) found under a\nproject/service's ``.ai/artefacts/<date>/<sessionId>/`` folder."
|
|
},
|
|
"AskAnswerBody": {
|
|
"properties": {
|
|
"index": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Index"
|
|
},
|
|
"label": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Label"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "AskAnswerBody"
|
|
},
|
|
"AskBody": {
|
|
"properties": {
|
|
"question": {
|
|
"type": "string",
|
|
"title": "Question"
|
|
},
|
|
"options": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Options"
|
|
},
|
|
"type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Type"
|
|
},
|
|
"url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Url"
|
|
},
|
|
"image": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Image"
|
|
},
|
|
"icon": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Icon"
|
|
},
|
|
"color": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Color"
|
|
},
|
|
"timeoutSecs": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Timeoutsecs"
|
|
},
|
|
"sessionId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sessionid"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"question",
|
|
"options"
|
|
],
|
|
"title": "AskBody"
|
|
},
|
|
"AskRecord": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"const": "ask",
|
|
"title": "Kind"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"body": {
|
|
"type": "string",
|
|
"title": "Body"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"title": "Type"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"title": "Url"
|
|
},
|
|
"at": {
|
|
"type": "string",
|
|
"title": "At"
|
|
},
|
|
"sessionId": {
|
|
"type": "string",
|
|
"title": "Sessionid"
|
|
},
|
|
"delivered": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DeliveryStatus"
|
|
},
|
|
"type": "array",
|
|
"title": "Delivered"
|
|
},
|
|
"options": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Options"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"pending",
|
|
"answered",
|
|
"expired"
|
|
],
|
|
"title": "Status"
|
|
},
|
|
"answer": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Answer"
|
|
},
|
|
"answerIndex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Answerindex"
|
|
},
|
|
"answeredAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Answeredat"
|
|
},
|
|
"expiresAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Expiresat"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"kind",
|
|
"title",
|
|
"body",
|
|
"type",
|
|
"url",
|
|
"at",
|
|
"sessionId",
|
|
"delivered",
|
|
"options",
|
|
"status"
|
|
],
|
|
"title": "AskRecord",
|
|
"description": "An ask (choice question) with its lifecycle state."
|
|
},
|
|
"Body_avatar_import_api_avatar_import_post": {
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"format": "binary",
|
|
"title": "File"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"file"
|
|
],
|
|
"title": "Body_avatar_import_api_avatar_import_post"
|
|
},
|
|
"Body_upload_files_api_upload_post": {
|
|
"properties": {
|
|
"files": {
|
|
"items": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
},
|
|
"type": "array",
|
|
"title": "Files"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"files"
|
|
],
|
|
"title": "Body_upload_files_api_upload_post"
|
|
},
|
|
"Bundle": {
|
|
"properties": {
|
|
"workspace": {
|
|
"type": "string",
|
|
"title": "Workspace"
|
|
},
|
|
"totals": {
|
|
"$ref": "#/components/schemas/Totals"
|
|
},
|
|
"files": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/FileEntry"
|
|
},
|
|
"type": "array",
|
|
"title": "Files"
|
|
},
|
|
"pricing": {
|
|
"$ref": "#/components/schemas/Pricing"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"workspace",
|
|
"totals",
|
|
"files",
|
|
"pricing"
|
|
],
|
|
"title": "Bundle"
|
|
},
|
|
"CommitRef": {
|
|
"properties": {
|
|
"sha": {
|
|
"type": "string",
|
|
"title": "Sha"
|
|
},
|
|
"short": {
|
|
"type": "string",
|
|
"title": "Short"
|
|
},
|
|
"date": {
|
|
"type": "string",
|
|
"title": "Date"
|
|
},
|
|
"author": {
|
|
"type": "string",
|
|
"title": "Author"
|
|
},
|
|
"subject": {
|
|
"type": "string",
|
|
"title": "Subject"
|
|
},
|
|
"additions": {
|
|
"type": "integer",
|
|
"title": "Additions"
|
|
},
|
|
"deletions": {
|
|
"type": "integer",
|
|
"title": "Deletions"
|
|
},
|
|
"files": {
|
|
"type": "integer",
|
|
"title": "Files"
|
|
},
|
|
"repo": {
|
|
"type": "string",
|
|
"title": "Repo"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"sha",
|
|
"short",
|
|
"date",
|
|
"author",
|
|
"subject",
|
|
"additions",
|
|
"deletions",
|
|
"files",
|
|
"repo"
|
|
],
|
|
"title": "CommitRef"
|
|
},
|
|
"ConvMeta": {
|
|
"properties": {
|
|
"state": {
|
|
"type": "string",
|
|
"title": "State"
|
|
},
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Title"
|
|
},
|
|
"projects": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Projects"
|
|
},
|
|
"services": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Services"
|
|
},
|
|
"worktrees": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/WorktreeInfo"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Worktrees"
|
|
},
|
|
"committed": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Committed"
|
|
},
|
|
"pushed": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Pushed"
|
|
},
|
|
"merged": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Merged"
|
|
},
|
|
"deployed": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Deployed"
|
|
},
|
|
"notified": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Notified"
|
|
},
|
|
"notifications": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ConvNotification"
|
|
},
|
|
"type": "array",
|
|
"title": "Notifications"
|
|
},
|
|
"archived": {
|
|
"type": "boolean",
|
|
"title": "Archived",
|
|
"default": false
|
|
},
|
|
"harness": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Harness"
|
|
},
|
|
"thinking": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Thinking"
|
|
},
|
|
"effort": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Effort"
|
|
},
|
|
"forkedFrom": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ForkedFrom"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"cron": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/CronRef"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"state",
|
|
"projects",
|
|
"services",
|
|
"notifications"
|
|
],
|
|
"title": "ConvMeta"
|
|
},
|
|
"ConvNotification": {
|
|
"properties": {
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Title"
|
|
},
|
|
"body": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Body"
|
|
},
|
|
"type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Type"
|
|
},
|
|
"url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Url"
|
|
},
|
|
"at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "ConvNotification"
|
|
},
|
|
"ConversationCommits": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"commits": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/CommitRef"
|
|
},
|
|
"type": "array",
|
|
"title": "Commits"
|
|
},
|
|
"repos": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Repos"
|
|
},
|
|
"filesChanged": {
|
|
"type": "integer",
|
|
"title": "Fileschanged"
|
|
},
|
|
"additions": {
|
|
"type": "integer",
|
|
"title": "Additions"
|
|
},
|
|
"deletions": {
|
|
"type": "integer",
|
|
"title": "Deletions"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"commits",
|
|
"repos",
|
|
"filesChanged",
|
|
"additions",
|
|
"deletions"
|
|
],
|
|
"title": "ConversationCommits"
|
|
},
|
|
"ConversationDetail": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"sessionId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sessionid"
|
|
},
|
|
"project": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project"
|
|
},
|
|
"cwd": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cwd"
|
|
},
|
|
"gitBranch": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Gitbranch"
|
|
},
|
|
"model": {
|
|
"type": "string",
|
|
"title": "Model"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Models"
|
|
},
|
|
"efforts": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Efforts"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"userTurns": {
|
|
"type": "integer",
|
|
"title": "Userturns"
|
|
},
|
|
"assistantTurns": {
|
|
"type": "integer",
|
|
"title": "Assistantturns"
|
|
},
|
|
"messages": {
|
|
"type": "integer",
|
|
"title": "Messages"
|
|
},
|
|
"startedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Startedat"
|
|
},
|
|
"endedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Endedat"
|
|
},
|
|
"tokens": {
|
|
"type": "integer",
|
|
"title": "Tokens"
|
|
},
|
|
"cost": {
|
|
"type": "number",
|
|
"title": "Cost"
|
|
},
|
|
"usage": {
|
|
"$ref": "#/components/schemas/Usage"
|
|
},
|
|
"byTool": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/ToolUsage"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Bytool"
|
|
},
|
|
"byToolSub": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/ToolUsage"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Bytoolsub"
|
|
},
|
|
"subagentCount": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Subagentcount"
|
|
},
|
|
"subagentTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Subagenttokens"
|
|
},
|
|
"subagentCost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Subagentcost"
|
|
},
|
|
"runningAgents": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/RunningAgent"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Runningagents"
|
|
},
|
|
"contextTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Contexttokens"
|
|
},
|
|
"contextModel": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Contextmodel"
|
|
},
|
|
"firstContextTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Firstcontexttokens"
|
|
},
|
|
"firstMessageTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Firstmessagetokens"
|
|
},
|
|
"tasks": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/Task"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tasks"
|
|
},
|
|
"meta": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ConvMeta"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"thread": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ThreadItem"
|
|
},
|
|
"type": "array",
|
|
"title": "Thread"
|
|
},
|
|
"turns": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TurnUsage"
|
|
},
|
|
"type": "array",
|
|
"title": "Turns"
|
|
},
|
|
"memoriesRead": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/MemorySummary"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Memoriesread"
|
|
},
|
|
"memoriesCreated": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/MemorySummary"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Memoriescreated"
|
|
},
|
|
"subagents": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/SubagentRef"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Subagents"
|
|
},
|
|
"parentConversation": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ParentConvRef"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"plans": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/PlanSummary"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Plans"
|
|
},
|
|
"artefacts": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ArtefactItem"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Artefacts"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"model",
|
|
"title",
|
|
"userTurns",
|
|
"assistantTurns",
|
|
"messages",
|
|
"tokens",
|
|
"cost",
|
|
"usage",
|
|
"thread",
|
|
"turns"
|
|
],
|
|
"title": "ConversationDetail"
|
|
},
|
|
"ConversationMetaResponse": {
|
|
"properties": {
|
|
"meta": {
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/ConvMeta"
|
|
},
|
|
"type": "object",
|
|
"title": "Meta"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"meta"
|
|
],
|
|
"title": "ConversationMetaResponse"
|
|
},
|
|
"ConversationSummary": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"sessionId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sessionid"
|
|
},
|
|
"project": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project"
|
|
},
|
|
"cwd": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cwd"
|
|
},
|
|
"gitBranch": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Gitbranch"
|
|
},
|
|
"model": {
|
|
"type": "string",
|
|
"title": "Model"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Models"
|
|
},
|
|
"efforts": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Efforts"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"userTurns": {
|
|
"type": "integer",
|
|
"title": "Userturns"
|
|
},
|
|
"assistantTurns": {
|
|
"type": "integer",
|
|
"title": "Assistantturns"
|
|
},
|
|
"messages": {
|
|
"type": "integer",
|
|
"title": "Messages"
|
|
},
|
|
"startedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Startedat"
|
|
},
|
|
"endedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Endedat"
|
|
},
|
|
"tokens": {
|
|
"type": "integer",
|
|
"title": "Tokens"
|
|
},
|
|
"cost": {
|
|
"type": "number",
|
|
"title": "Cost"
|
|
},
|
|
"usage": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Usage"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"byTool": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/ToolUsage"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Bytool"
|
|
},
|
|
"byToolSub": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/ToolUsage"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Bytoolsub"
|
|
},
|
|
"subagentCount": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Subagentcount"
|
|
},
|
|
"subagentTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Subagenttokens"
|
|
},
|
|
"subagentCost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Subagentcost"
|
|
},
|
|
"runningAgents": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/RunningAgent"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Runningagents"
|
|
},
|
|
"contextTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Contexttokens"
|
|
},
|
|
"contextModel": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Contextmodel"
|
|
},
|
|
"firstContextTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Firstcontexttokens"
|
|
},
|
|
"firstMessageTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Firstmessagetokens"
|
|
},
|
|
"tasks": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/Task"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tasks"
|
|
},
|
|
"meta": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ConvMeta"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"model",
|
|
"title",
|
|
"userTurns",
|
|
"assistantTurns",
|
|
"messages",
|
|
"tokens",
|
|
"cost"
|
|
],
|
|
"title": "ConversationSummary"
|
|
},
|
|
"ConversationsResponse": {
|
|
"properties": {
|
|
"conversations": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ConversationSummary"
|
|
},
|
|
"type": "array",
|
|
"title": "Conversations"
|
|
},
|
|
"count": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Count"
|
|
},
|
|
"nextBefore": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Nextbefore"
|
|
},
|
|
"pricing": {
|
|
"$ref": "#/components/schemas/Pricing"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"conversations",
|
|
"pricing"
|
|
],
|
|
"title": "ConversationsResponse"
|
|
},
|
|
"CronCreateBody": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"schedule": {
|
|
"type": "string",
|
|
"title": "Schedule"
|
|
},
|
|
"promptFile": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Promptfile"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"title": "Enabled",
|
|
"default": true
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"schedule"
|
|
],
|
|
"title": "CronCreateBody"
|
|
},
|
|
"CronJob": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"schedule": {
|
|
"type": "string",
|
|
"title": "Schedule"
|
|
},
|
|
"promptFile": {
|
|
"type": "string",
|
|
"title": "Promptfile"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"title": "Enabled"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"runConfig": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/CronRunConfig"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"createdAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Createdat"
|
|
},
|
|
"lastStatus": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Laststatus"
|
|
},
|
|
"nextRun": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Nextrun"
|
|
},
|
|
"history": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object",
|
|
"title": "History"
|
|
},
|
|
"runs": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/CronRun"
|
|
},
|
|
"type": "array",
|
|
"title": "Runs"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"schedule",
|
|
"promptFile",
|
|
"enabled",
|
|
"history",
|
|
"runs"
|
|
],
|
|
"title": "CronJob"
|
|
},
|
|
"CronJobsResponse": {
|
|
"properties": {
|
|
"jobs": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/CronJob"
|
|
},
|
|
"type": "array",
|
|
"title": "Jobs"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"jobs"
|
|
],
|
|
"title": "CronJobsResponse"
|
|
},
|
|
"CronPatchBody": {
|
|
"properties": {
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
},
|
|
"schedule": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Schedule"
|
|
},
|
|
"promptFile": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Promptfile"
|
|
},
|
|
"enabled": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Enabled"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "CronPatchBody"
|
|
},
|
|
"CronPromptBody": {
|
|
"properties": {
|
|
"content": {
|
|
"type": "string",
|
|
"title": "Content"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"content"
|
|
],
|
|
"title": "CronPromptBody"
|
|
},
|
|
"CronPromptFile": {
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
},
|
|
"content": {
|
|
"type": "string",
|
|
"title": "Content"
|
|
},
|
|
"exists": {
|
|
"type": "boolean",
|
|
"title": "Exists"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"path",
|
|
"content",
|
|
"exists"
|
|
],
|
|
"title": "CronPromptFile"
|
|
},
|
|
"CronRef": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "CronRef",
|
|
"description": "The cron job that spawned a conversation (see cron.py) \u2014 rendered as a\ntag on the card/detail linking back to Settings \u2192 Cron."
|
|
},
|
|
"CronRun": {
|
|
"properties": {
|
|
"at": {
|
|
"type": "string",
|
|
"title": "At"
|
|
},
|
|
"sessionId": {
|
|
"type": "string",
|
|
"title": "Sessionid"
|
|
},
|
|
"conversationId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Conversationid"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"at",
|
|
"sessionId"
|
|
],
|
|
"title": "CronRun",
|
|
"description": "One recorded firing of a cron job \u2014 the history mapping's entry enriched\nwith the conversation id the session landed on (once its transcript\nsynced), so the UI can link straight to it."
|
|
},
|
|
"CronRunConfig": {
|
|
"properties": {
|
|
"harness": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Harness"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"effort": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Effort"
|
|
},
|
|
"thinking": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Thinking"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "CronRunConfig",
|
|
"description": "How a job's firings are launched, read out of the prompt file's YAML\nfrontmatter (``cron.run_config``). Every field is optional: None means the\nkey isn't set and the spawn path's own default applies."
|
|
},
|
|
"Dashboard": {
|
|
"properties": {
|
|
"pricing": {
|
|
"$ref": "#/components/schemas/Pricing"
|
|
},
|
|
"totals": {
|
|
"$ref": "#/components/schemas/DashboardTotals"
|
|
},
|
|
"skills": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SkillStat"
|
|
},
|
|
"type": "array",
|
|
"title": "Skills"
|
|
},
|
|
"topFiles": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TopFile"
|
|
},
|
|
"type": "array",
|
|
"title": "Topfiles"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"pricing",
|
|
"totals",
|
|
"skills",
|
|
"topFiles"
|
|
],
|
|
"title": "Dashboard"
|
|
},
|
|
"DashboardTotals": {
|
|
"properties": {
|
|
"files": {
|
|
"type": "integer",
|
|
"title": "Files"
|
|
},
|
|
"tokens": {
|
|
"type": "integer",
|
|
"title": "Tokens"
|
|
},
|
|
"cost": {
|
|
"type": "number",
|
|
"title": "Cost"
|
|
},
|
|
"estimated": {
|
|
"type": "integer",
|
|
"title": "Estimated"
|
|
},
|
|
"skills": {
|
|
"type": "integer",
|
|
"title": "Skills"
|
|
},
|
|
"invocations": {
|
|
"type": "integer",
|
|
"title": "Invocations"
|
|
},
|
|
"skillSpend": {
|
|
"type": "number",
|
|
"title": "Skillspend"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"files",
|
|
"tokens",
|
|
"cost",
|
|
"estimated",
|
|
"skills",
|
|
"invocations",
|
|
"skillSpend"
|
|
],
|
|
"title": "DashboardTotals"
|
|
},
|
|
"DeliveryStatus": {
|
|
"properties": {
|
|
"webhook": {
|
|
"type": "string",
|
|
"title": "Webhook"
|
|
},
|
|
"ok": {
|
|
"type": "boolean",
|
|
"title": "Ok"
|
|
},
|
|
"status": {
|
|
"type": "integer",
|
|
"title": "Status"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"webhook",
|
|
"ok",
|
|
"status"
|
|
],
|
|
"title": "DeliveryStatus",
|
|
"description": "One webhook's delivery outcome for a forwarded notification."
|
|
},
|
|
"DeployStatus": {
|
|
"properties": {
|
|
"label": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Label"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"running",
|
|
"done",
|
|
"failed"
|
|
],
|
|
"title": "Status"
|
|
},
|
|
"phaseNum": {
|
|
"type": "integer",
|
|
"title": "Phasenum"
|
|
},
|
|
"totalPhases": {
|
|
"type": "integer",
|
|
"title": "Totalphases"
|
|
},
|
|
"phase": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Phase"
|
|
},
|
|
"steps": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DeployStep"
|
|
},
|
|
"type": "array",
|
|
"title": "Steps"
|
|
},
|
|
"startedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Startedat"
|
|
},
|
|
"updatedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updatedat"
|
|
},
|
|
"sessionId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sessionid"
|
|
},
|
|
"convUrl": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Convurl"
|
|
},
|
|
"convTitle": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Convtitle"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"status",
|
|
"phaseNum",
|
|
"totalPhases",
|
|
"steps"
|
|
],
|
|
"title": "DeployStatus",
|
|
"description": "Snapshot of the in-flight ai-agent deploy (``deploy.sh``), or ``null``.\n\nWritten by the host-side deploy script into the data dir and polled by the\nbackend, which pings a ``deploy`` SSE event on change. Drives the sticky\nin-app deploy banner (worktree label + a dot-per-phase timeline)."
|
|
},
|
|
"DeployStep": {
|
|
"properties": {
|
|
"n": {
|
|
"type": "integer",
|
|
"title": "N"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"title": "Label"
|
|
},
|
|
"state": {
|
|
"type": "string",
|
|
"enum": [
|
|
"pending",
|
|
"active",
|
|
"done",
|
|
"failed"
|
|
],
|
|
"title": "State"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"n",
|
|
"label",
|
|
"state"
|
|
],
|
|
"title": "DeployStep",
|
|
"description": "One phase of the blue-green deploy, with its rendered dot state."
|
|
},
|
|
"DiffHunk": {
|
|
"properties": {
|
|
"header": {
|
|
"type": "string",
|
|
"title": "Header"
|
|
},
|
|
"oldStart": {
|
|
"type": "integer",
|
|
"title": "Oldstart"
|
|
},
|
|
"oldLines": {
|
|
"type": "integer",
|
|
"title": "Oldlines"
|
|
},
|
|
"newStart": {
|
|
"type": "integer",
|
|
"title": "Newstart"
|
|
},
|
|
"newLines": {
|
|
"type": "integer",
|
|
"title": "Newlines"
|
|
},
|
|
"lines": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DiffLine"
|
|
},
|
|
"type": "array",
|
|
"title": "Lines"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"header",
|
|
"oldStart",
|
|
"oldLines",
|
|
"newStart",
|
|
"newLines",
|
|
"lines"
|
|
],
|
|
"title": "DiffHunk"
|
|
},
|
|
"DiffLine": {
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"add",
|
|
"del",
|
|
"ctx"
|
|
],
|
|
"title": "Type"
|
|
},
|
|
"oldNo": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Oldno"
|
|
},
|
|
"newNo": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Newno"
|
|
},
|
|
"text": {
|
|
"type": "string",
|
|
"title": "Text"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"type",
|
|
"text"
|
|
],
|
|
"title": "DiffLine"
|
|
},
|
|
"DiffResult": {
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"subtitle": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Subtitle"
|
|
},
|
|
"files": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/FileDiff"
|
|
},
|
|
"type": "array",
|
|
"title": "Files"
|
|
},
|
|
"additions": {
|
|
"type": "integer",
|
|
"title": "Additions"
|
|
},
|
|
"deletions": {
|
|
"type": "integer",
|
|
"title": "Deletions"
|
|
},
|
|
"commits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/CommitRef"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Commits"
|
|
},
|
|
"approx": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Approx"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"title",
|
|
"files",
|
|
"additions",
|
|
"deletions"
|
|
],
|
|
"title": "DiffResult"
|
|
},
|
|
"EnvSaveBody": {
|
|
"properties": {
|
|
"slug": {
|
|
"type": "string",
|
|
"title": "Slug"
|
|
},
|
|
"set": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/EnvSetItem"
|
|
},
|
|
"type": "array",
|
|
"title": "Set",
|
|
"default": []
|
|
},
|
|
"unset": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Unset",
|
|
"default": []
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"slug"
|
|
],
|
|
"title": "EnvSaveBody"
|
|
},
|
|
"EnvSetItem": {
|
|
"properties": {
|
|
"key": {
|
|
"type": "string",
|
|
"title": "Key"
|
|
},
|
|
"value": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Value"
|
|
},
|
|
"secret": {
|
|
"type": "boolean",
|
|
"title": "Secret",
|
|
"default": false
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"key"
|
|
],
|
|
"title": "EnvSetItem"
|
|
},
|
|
"FeedNotification": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"convId": {
|
|
"type": "string",
|
|
"title": "Convid"
|
|
},
|
|
"convTitle": {
|
|
"type": "string",
|
|
"title": "Convtitle"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"body": {
|
|
"type": "string",
|
|
"title": "Body"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"title": "Type"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"title": "Url"
|
|
},
|
|
"at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "At"
|
|
},
|
|
"projects": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Projects"
|
|
},
|
|
"services": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Services"
|
|
},
|
|
"kind": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Kind"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"convId",
|
|
"convTitle",
|
|
"title",
|
|
"body",
|
|
"type",
|
|
"url",
|
|
"projects",
|
|
"services"
|
|
],
|
|
"title": "FeedNotification",
|
|
"description": "A flat notification feed item (the server-side mirror of the frontend's\nFeedNotif), as returned by ``/api/notifications/unread``."
|
|
},
|
|
"FileDiff": {
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
},
|
|
"oldPath": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Oldpath"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"added",
|
|
"deleted",
|
|
"modified",
|
|
"renamed"
|
|
],
|
|
"title": "Status"
|
|
},
|
|
"additions": {
|
|
"type": "integer",
|
|
"title": "Additions"
|
|
},
|
|
"deletions": {
|
|
"type": "integer",
|
|
"title": "Deletions"
|
|
},
|
|
"binary": {
|
|
"type": "boolean",
|
|
"title": "Binary"
|
|
},
|
|
"truncated": {
|
|
"type": "boolean",
|
|
"title": "Truncated"
|
|
},
|
|
"hunks": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DiffHunk"
|
|
},
|
|
"type": "array",
|
|
"title": "Hunks"
|
|
},
|
|
"repo": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Repo"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"path",
|
|
"status",
|
|
"additions",
|
|
"deletions",
|
|
"binary",
|
|
"truncated",
|
|
"hunks"
|
|
],
|
|
"title": "FileDiff"
|
|
},
|
|
"FileEntry": {
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"ext": {
|
|
"type": "string",
|
|
"title": "Ext"
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"claude-md",
|
|
"skill-md",
|
|
"markdown",
|
|
"script",
|
|
"config",
|
|
"other"
|
|
],
|
|
"title": "Kind"
|
|
},
|
|
"isMarkdown": {
|
|
"type": "boolean",
|
|
"title": "Ismarkdown"
|
|
},
|
|
"bytes": {
|
|
"type": "integer",
|
|
"title": "Bytes"
|
|
},
|
|
"words": {
|
|
"type": "integer",
|
|
"title": "Words"
|
|
},
|
|
"chars": {
|
|
"type": "integer",
|
|
"title": "Chars"
|
|
},
|
|
"tokens": {
|
|
"type": "integer",
|
|
"title": "Tokens"
|
|
},
|
|
"cost": {
|
|
"type": "number",
|
|
"title": "Cost"
|
|
},
|
|
"estimated": {
|
|
"type": "boolean",
|
|
"title": "Estimated"
|
|
},
|
|
"editable": {
|
|
"type": "boolean",
|
|
"title": "Editable"
|
|
},
|
|
"content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Content"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"path",
|
|
"name",
|
|
"ext",
|
|
"kind",
|
|
"isMarkdown",
|
|
"bytes",
|
|
"words",
|
|
"chars",
|
|
"tokens",
|
|
"cost",
|
|
"estimated",
|
|
"editable"
|
|
],
|
|
"title": "FileEntry"
|
|
},
|
|
"ForkBody": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"mi": {
|
|
"type": "integer",
|
|
"title": "Mi"
|
|
},
|
|
"prompt": {
|
|
"type": "string",
|
|
"title": "Prompt"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"harness": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Harness"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"mi",
|
|
"prompt"
|
|
],
|
|
"title": "ForkBody"
|
|
},
|
|
"ForkedFrom": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"sessionId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sessionid"
|
|
},
|
|
"mi": {
|
|
"type": "integer",
|
|
"title": "Mi"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"mi"
|
|
],
|
|
"title": "ForkedFrom",
|
|
"description": "Where a forked conversation branched off: the source conversation and\nthe user-message ordinal (``mi``) whose edit created the fork."
|
|
},
|
|
"FormCreateBody": {
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"fields": {
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array",
|
|
"title": "Fields"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Type"
|
|
},
|
|
"url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Url"
|
|
},
|
|
"sessionId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sessionid"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"title",
|
|
"fields"
|
|
],
|
|
"title": "FormCreateBody"
|
|
},
|
|
"FormField": {
|
|
"properties": {
|
|
"key": {
|
|
"type": "string",
|
|
"title": "Key"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"title": "Label"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"text",
|
|
"textarea",
|
|
"number",
|
|
"select",
|
|
"multiselect",
|
|
"radio",
|
|
"checkbox",
|
|
"slider",
|
|
"file",
|
|
"date"
|
|
],
|
|
"title": "Type"
|
|
},
|
|
"required": {
|
|
"type": "boolean",
|
|
"title": "Required"
|
|
},
|
|
"placeholder": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Placeholder"
|
|
},
|
|
"help": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Help"
|
|
},
|
|
"accept": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Accept"
|
|
},
|
|
"options": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/FormFieldOption"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Options"
|
|
},
|
|
"min": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Min"
|
|
},
|
|
"max": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max"
|
|
},
|
|
"step": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Step"
|
|
},
|
|
"multiple": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Multiple"
|
|
},
|
|
"default": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"key",
|
|
"label",
|
|
"type",
|
|
"required"
|
|
],
|
|
"title": "FormField",
|
|
"description": "One field of a form spec (see forms.FIELD_TYPES)."
|
|
},
|
|
"FormFieldOption": {
|
|
"properties": {
|
|
"value": {
|
|
"type": "string",
|
|
"title": "Value"
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"title": "Label"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"value",
|
|
"label"
|
|
],
|
|
"title": "FormFieldOption"
|
|
},
|
|
"FormRecord": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"title": "Description"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"title": "Type"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"title": "Url"
|
|
},
|
|
"sessionId": {
|
|
"type": "string",
|
|
"title": "Sessionid"
|
|
},
|
|
"at": {
|
|
"type": "string",
|
|
"title": "At"
|
|
},
|
|
"fields": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/FormField"
|
|
},
|
|
"type": "array",
|
|
"title": "Fields"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"pending",
|
|
"submitted",
|
|
"cancelled"
|
|
],
|
|
"title": "Status"
|
|
},
|
|
"answers": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Answers"
|
|
},
|
|
"submittedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Submittedat"
|
|
},
|
|
"cancelledAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cancelledat"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"title",
|
|
"description",
|
|
"type",
|
|
"url",
|
|
"sessionId",
|
|
"at",
|
|
"fields",
|
|
"status"
|
|
],
|
|
"title": "FormRecord",
|
|
"description": "A form with its lifecycle state; ``answers`` keyed by field key."
|
|
},
|
|
"FormSubmitBody": {
|
|
"properties": {
|
|
"answers": {
|
|
"additionalProperties": true,
|
|
"type": "object",
|
|
"title": "Answers"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"answers"
|
|
],
|
|
"title": "FormSubmitBody"
|
|
},
|
|
"FormsResponse": {
|
|
"properties": {
|
|
"forms": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/FormRecord"
|
|
},
|
|
"type": "array",
|
|
"title": "Forms"
|
|
},
|
|
"count": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Count"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"forms"
|
|
],
|
|
"title": "FormsResponse"
|
|
},
|
|
"GoalBoardEntry": {
|
|
"properties": {
|
|
"done": {
|
|
"type": "integer",
|
|
"title": "Done"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"project",
|
|
"service"
|
|
],
|
|
"title": "Kind"
|
|
},
|
|
"dir": {
|
|
"type": "string",
|
|
"title": "Dir"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"title": "Description"
|
|
},
|
|
"url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Url"
|
|
},
|
|
"updatedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updatedat"
|
|
},
|
|
"milestones": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/GoalMilestone"
|
|
},
|
|
"type": "array",
|
|
"title": "Milestones"
|
|
},
|
|
"themes": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/GoalTheme"
|
|
},
|
|
"type": "array",
|
|
"title": "Themes"
|
|
},
|
|
"claims": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/GoalClaim"
|
|
},
|
|
"type": "array",
|
|
"title": "Claims"
|
|
},
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/GoalChecklistItem"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"itemsTruncated": {
|
|
"type": "integer",
|
|
"title": "Itemstruncated"
|
|
},
|
|
"agents": {
|
|
"type": "integer",
|
|
"title": "Agents"
|
|
},
|
|
"runningConversations": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/RunningConversation"
|
|
},
|
|
"type": "array",
|
|
"title": "Runningconversations"
|
|
},
|
|
"conversations": {
|
|
"type": "integer",
|
|
"title": "Conversations"
|
|
},
|
|
"lastConversationAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Lastconversationat"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"done",
|
|
"total",
|
|
"kind",
|
|
"dir",
|
|
"name",
|
|
"description",
|
|
"milestones",
|
|
"themes",
|
|
"claims",
|
|
"items",
|
|
"itemsTruncated",
|
|
"agents",
|
|
"runningConversations",
|
|
"conversations"
|
|
],
|
|
"title": "GoalBoardEntry"
|
|
},
|
|
"GoalChecklistItem": {
|
|
"properties": {
|
|
"text": {
|
|
"type": "string",
|
|
"title": "Text"
|
|
},
|
|
"plain": {
|
|
"type": "string",
|
|
"title": "Plain"
|
|
},
|
|
"checked": {
|
|
"type": "boolean",
|
|
"title": "Checked"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"text",
|
|
"plain",
|
|
"checked"
|
|
],
|
|
"title": "GoalChecklistItem"
|
|
},
|
|
"GoalClaim": {
|
|
"properties": {
|
|
"text": {
|
|
"type": "string",
|
|
"title": "Text"
|
|
},
|
|
"since": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Since"
|
|
},
|
|
"stale": {
|
|
"type": "boolean",
|
|
"title": "Stale"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"text",
|
|
"stale"
|
|
],
|
|
"title": "GoalClaim"
|
|
},
|
|
"GoalDetail": {
|
|
"properties": {
|
|
"done": {
|
|
"type": "integer",
|
|
"title": "Done"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"content": {
|
|
"type": "string",
|
|
"title": "Content"
|
|
},
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/GoalChecklistItem"
|
|
},
|
|
"type": "array",
|
|
"title": "Items"
|
|
},
|
|
"claims": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/GoalClaim"
|
|
},
|
|
"type": "array",
|
|
"title": "Claims"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"done",
|
|
"total",
|
|
"content",
|
|
"items",
|
|
"claims"
|
|
],
|
|
"title": "GoalDetail"
|
|
},
|
|
"GoalMilestone": {
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Version"
|
|
},
|
|
"current": {
|
|
"type": "boolean",
|
|
"title": "Current"
|
|
},
|
|
"done": {
|
|
"type": "integer",
|
|
"title": "Done"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
},
|
|
"hasTasks": {
|
|
"type": "boolean",
|
|
"title": "Hastasks"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"title",
|
|
"current",
|
|
"done",
|
|
"total",
|
|
"hasTasks"
|
|
],
|
|
"title": "GoalMilestone"
|
|
},
|
|
"GoalSummary": {
|
|
"properties": {
|
|
"done": {
|
|
"type": "integer",
|
|
"title": "Done"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"done",
|
|
"total"
|
|
],
|
|
"title": "GoalSummary"
|
|
},
|
|
"GoalTheme": {
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"done": {
|
|
"type": "integer",
|
|
"title": "Done"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"title",
|
|
"done",
|
|
"total"
|
|
],
|
|
"title": "GoalTheme"
|
|
},
|
|
"GoalWorkBody": {
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"title": "Kind"
|
|
},
|
|
"dir": {
|
|
"type": "string",
|
|
"title": "Dir"
|
|
},
|
|
"item": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Item"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"kind",
|
|
"dir"
|
|
],
|
|
"title": "GoalWorkBody"
|
|
},
|
|
"GoalsResponse": {
|
|
"properties": {
|
|
"goals": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/GoalBoardEntry"
|
|
},
|
|
"type": "array",
|
|
"title": "Goals"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"goals"
|
|
],
|
|
"title": "GoalsResponse"
|
|
},
|
|
"HTTPValidationError": {
|
|
"properties": {
|
|
"detail": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ValidationError"
|
|
},
|
|
"type": "array",
|
|
"title": "Detail"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "HTTPValidationError"
|
|
},
|
|
"HomepageMeta": {
|
|
"properties": {
|
|
"label": {
|
|
"type": "string",
|
|
"title": "Label"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"icon": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Icon"
|
|
},
|
|
"href": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Href"
|
|
},
|
|
"group": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Group"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"label"
|
|
],
|
|
"title": "HomepageMeta"
|
|
},
|
|
"IndexMeta": {
|
|
"properties": {
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Title"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"ogImage": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ogimage"
|
|
},
|
|
"ogUrl": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ogurl"
|
|
},
|
|
"themeColor": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Themecolor"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "IndexMeta"
|
|
},
|
|
"InterruptBody": {
|
|
"properties": {
|
|
"sessionId": {
|
|
"type": "string",
|
|
"title": "Sessionid"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"sessionId"
|
|
],
|
|
"title": "InterruptBody"
|
|
},
|
|
"InterruptResult": {
|
|
"properties": {
|
|
"sessionId": {
|
|
"type": "string",
|
|
"title": "Sessionid"
|
|
},
|
|
"ok": {
|
|
"type": "boolean",
|
|
"title": "Ok"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"sessionId",
|
|
"ok"
|
|
],
|
|
"title": "InterruptResult"
|
|
},
|
|
"KeyFile": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"bytes": {
|
|
"type": "integer",
|
|
"title": "Bytes"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"bytes"
|
|
],
|
|
"title": "KeyFile"
|
|
},
|
|
"MemoriesResponse": {
|
|
"properties": {
|
|
"memories": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MemorySummary"
|
|
},
|
|
"type": "array",
|
|
"title": "Memories"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"memories"
|
|
],
|
|
"title": "MemoriesResponse"
|
|
},
|
|
"MemoryConvRef": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"sessionId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sessionid"
|
|
},
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Title"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"endedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Endedat"
|
|
},
|
|
"cost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cost"
|
|
},
|
|
"tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tokens"
|
|
},
|
|
"meta": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ConvMeta"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "MemoryConvRef"
|
|
},
|
|
"MemoryDetail": {
|
|
"properties": {
|
|
"slug": {
|
|
"type": "string",
|
|
"title": "Slug"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"title": "Description"
|
|
},
|
|
"type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Type"
|
|
},
|
|
"originSessionId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Originsessionid"
|
|
},
|
|
"projects": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Projects"
|
|
},
|
|
"services": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Services"
|
|
},
|
|
"links": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Links"
|
|
},
|
|
"words": {
|
|
"type": "integer",
|
|
"title": "Words"
|
|
},
|
|
"bytes": {
|
|
"type": "integer",
|
|
"title": "Bytes"
|
|
},
|
|
"updatedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updatedat"
|
|
},
|
|
"content": {
|
|
"type": "string",
|
|
"title": "Content"
|
|
},
|
|
"createdIn": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MemoryConvRef"
|
|
},
|
|
"type": "array",
|
|
"title": "Createdin"
|
|
},
|
|
"readIn": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MemoryConvRef"
|
|
},
|
|
"type": "array",
|
|
"title": "Readin"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"slug",
|
|
"name",
|
|
"description",
|
|
"projects",
|
|
"services",
|
|
"links",
|
|
"words",
|
|
"bytes",
|
|
"content",
|
|
"createdIn",
|
|
"readIn"
|
|
],
|
|
"title": "MemoryDetail"
|
|
},
|
|
"MemorySummary": {
|
|
"properties": {
|
|
"slug": {
|
|
"type": "string",
|
|
"title": "Slug"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"title": "Description"
|
|
},
|
|
"type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Type"
|
|
},
|
|
"originSessionId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Originsessionid"
|
|
},
|
|
"projects": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Projects"
|
|
},
|
|
"services": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Services"
|
|
},
|
|
"links": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Links"
|
|
},
|
|
"words": {
|
|
"type": "integer",
|
|
"title": "Words"
|
|
},
|
|
"bytes": {
|
|
"type": "integer",
|
|
"title": "Bytes"
|
|
},
|
|
"updatedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updatedat"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"slug",
|
|
"name",
|
|
"description",
|
|
"projects",
|
|
"services",
|
|
"links",
|
|
"words",
|
|
"bytes"
|
|
],
|
|
"title": "MemorySummary"
|
|
},
|
|
"MetaPatch": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Title"
|
|
},
|
|
"projects": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Projects"
|
|
},
|
|
"services": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Services"
|
|
},
|
|
"state": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "State"
|
|
},
|
|
"committed": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Committed"
|
|
},
|
|
"pushed": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Pushed"
|
|
},
|
|
"merged": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Merged"
|
|
},
|
|
"deployed": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Deployed"
|
|
},
|
|
"notified": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Notified"
|
|
},
|
|
"notification": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Notification"
|
|
},
|
|
"worktree": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Worktree"
|
|
},
|
|
"archived": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Archived"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "MetaPatch"
|
|
},
|
|
"MetaUpdateResult": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/ConvMeta"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"meta"
|
|
],
|
|
"title": "MetaUpdateResult"
|
|
},
|
|
"ModelInfo": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"displayName": {
|
|
"type": "string",
|
|
"title": "Displayname"
|
|
},
|
|
"family": {
|
|
"type": "string",
|
|
"title": "Family"
|
|
},
|
|
"version": {
|
|
"type": "string",
|
|
"title": "Version"
|
|
},
|
|
"alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Alias"
|
|
},
|
|
"latest": {
|
|
"type": "boolean",
|
|
"title": "Latest",
|
|
"default": false
|
|
},
|
|
"harness": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Harness"
|
|
},
|
|
"provider": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
},
|
|
"label": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Label"
|
|
},
|
|
"contextWindow": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Contextwindow"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"displayName",
|
|
"family",
|
|
"version"
|
|
],
|
|
"title": "ModelInfo",
|
|
"description": "One pickable model (a model tag in the composer)."
|
|
},
|
|
"ModelsResponse": {
|
|
"properties": {
|
|
"models": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ModelInfo"
|
|
},
|
|
"type": "array",
|
|
"title": "Models"
|
|
},
|
|
"default": {
|
|
"type": "string",
|
|
"title": "Default"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"models",
|
|
"default"
|
|
],
|
|
"title": "ModelsResponse"
|
|
},
|
|
"NotifConversation": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"endedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Endedat"
|
|
},
|
|
"projects": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Projects"
|
|
},
|
|
"services": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Services"
|
|
},
|
|
"notifications": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ConvNotification"
|
|
},
|
|
"type": "array",
|
|
"title": "Notifications"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"title",
|
|
"projects",
|
|
"services",
|
|
"notifications"
|
|
],
|
|
"title": "NotifConversation",
|
|
"description": "A conversation that recorded notify-done pushes, feed-relevant bits only."
|
|
},
|
|
"NotifSeenBody": {
|
|
"properties": {
|
|
"ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ids"
|
|
},
|
|
"all": {
|
|
"type": "boolean",
|
|
"title": "All",
|
|
"default": false
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "NotifSeenBody"
|
|
},
|
|
"NotificationsResponse": {
|
|
"properties": {
|
|
"conversations": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/NotifConversation"
|
|
},
|
|
"type": "array",
|
|
"title": "Conversations"
|
|
},
|
|
"count": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Count"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"conversations"
|
|
],
|
|
"title": "NotificationsResponse"
|
|
},
|
|
"NotifyBody": {
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"message": {
|
|
"type": "string",
|
|
"title": "Message"
|
|
},
|
|
"type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Type"
|
|
},
|
|
"url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Url"
|
|
},
|
|
"image": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Image"
|
|
},
|
|
"icon": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Icon"
|
|
},
|
|
"color": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Color"
|
|
},
|
|
"channel": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Channel"
|
|
},
|
|
"importance": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Importance"
|
|
},
|
|
"vibrationPattern": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vibrationpattern"
|
|
},
|
|
"tag": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tag"
|
|
},
|
|
"persistent": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Persistent"
|
|
},
|
|
"actions": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Actions"
|
|
},
|
|
"spoken": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Spoken"
|
|
},
|
|
"sessionId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sessionid"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"title",
|
|
"message"
|
|
],
|
|
"title": "NotifyBody"
|
|
},
|
|
"NotifyLogEntry": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"notify",
|
|
"ask"
|
|
],
|
|
"title": "Kind"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"body": {
|
|
"type": "string",
|
|
"title": "Body"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"title": "Type"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"title": "Url"
|
|
},
|
|
"at": {
|
|
"type": "string",
|
|
"title": "At"
|
|
},
|
|
"sessionId": {
|
|
"type": "string",
|
|
"title": "Sessionid"
|
|
},
|
|
"delivered": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DeliveryStatus"
|
|
},
|
|
"type": "array",
|
|
"title": "Delivered"
|
|
},
|
|
"options": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Options"
|
|
},
|
|
"status": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"pending",
|
|
"answered",
|
|
"expired"
|
|
]
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Status"
|
|
},
|
|
"answer": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Answer"
|
|
},
|
|
"answerIndex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Answerindex"
|
|
},
|
|
"answeredAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Answeredat"
|
|
},
|
|
"expiresAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Expiresat"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"kind",
|
|
"title",
|
|
"body",
|
|
"type",
|
|
"url",
|
|
"at",
|
|
"sessionId",
|
|
"delivered"
|
|
],
|
|
"title": "NotifyLogEntry",
|
|
"description": "One recorded notification (kind \"notify\") or ask (kind \"ask\")."
|
|
},
|
|
"NotifyLogResponse": {
|
|
"properties": {
|
|
"notifications": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/NotifyLogEntry"
|
|
},
|
|
"type": "array",
|
|
"title": "Notifications"
|
|
},
|
|
"count": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Count"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"notifications"
|
|
],
|
|
"title": "NotifyLogResponse"
|
|
},
|
|
"NotifyResult": {
|
|
"properties": {
|
|
"ok": {
|
|
"type": "boolean",
|
|
"title": "Ok"
|
|
},
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"delivered": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DeliveryStatus"
|
|
},
|
|
"type": "array",
|
|
"title": "Delivered"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"ok",
|
|
"id",
|
|
"delivered"
|
|
],
|
|
"title": "NotifyResult"
|
|
},
|
|
"OgImage": {
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"url",
|
|
"asset"
|
|
],
|
|
"title": "Kind"
|
|
},
|
|
"src": {
|
|
"type": "string",
|
|
"title": "Src"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"kind",
|
|
"src"
|
|
],
|
|
"title": "OgImage"
|
|
},
|
|
"OkResponse": {
|
|
"properties": {
|
|
"ok": {
|
|
"type": "boolean",
|
|
"title": "Ok"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"ok"
|
|
],
|
|
"title": "OkResponse"
|
|
},
|
|
"ParentConvRef": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Title"
|
|
},
|
|
"toolUseId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tooluseid"
|
|
},
|
|
"agentType": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agenttype"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "ParentConvRef"
|
|
},
|
|
"PlanActual": {
|
|
"properties": {
|
|
"cost": {
|
|
"type": "number",
|
|
"title": "Cost"
|
|
},
|
|
"tokens": {
|
|
"type": "integer",
|
|
"title": "Tokens"
|
|
},
|
|
"durationMs": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Durationms"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"cost",
|
|
"tokens"
|
|
],
|
|
"title": "PlanActual"
|
|
},
|
|
"PlanConvRef": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"sessionId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sessionid"
|
|
},
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Title"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"startedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Startedat"
|
|
},
|
|
"endedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Endedat"
|
|
},
|
|
"cost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cost"
|
|
},
|
|
"tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tokens"
|
|
},
|
|
"durationMs": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Durationms"
|
|
},
|
|
"meta": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ConvMeta"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "PlanConvRef"
|
|
},
|
|
"PlanDetail": {
|
|
"properties": {
|
|
"slug": {
|
|
"type": "string",
|
|
"title": "Slug"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"title": "Status"
|
|
},
|
|
"created": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created"
|
|
},
|
|
"updatedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updatedat"
|
|
},
|
|
"sessionId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sessionid"
|
|
},
|
|
"conversationIds": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Conversationids"
|
|
},
|
|
"projects": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Projects"
|
|
},
|
|
"services": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Services"
|
|
},
|
|
"estCost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Estcost"
|
|
},
|
|
"estTimeMinutes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Esttimeminutes"
|
|
},
|
|
"estTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Esttokens"
|
|
},
|
|
"files": {
|
|
"type": "integer",
|
|
"title": "Files"
|
|
},
|
|
"steps": {
|
|
"type": "integer",
|
|
"title": "Steps"
|
|
},
|
|
"questions": {
|
|
"type": "integer",
|
|
"title": "Questions",
|
|
"default": 0
|
|
},
|
|
"content": {
|
|
"type": "string",
|
|
"title": "Content"
|
|
},
|
|
"fileList": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PlanFile"
|
|
},
|
|
"type": "array",
|
|
"title": "Filelist"
|
|
},
|
|
"stepList": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PlanStep"
|
|
},
|
|
"type": "array",
|
|
"title": "Steplist"
|
|
},
|
|
"conversations": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PlanConvRef"
|
|
},
|
|
"type": "array",
|
|
"title": "Conversations"
|
|
},
|
|
"actual": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PlanActual"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"questionForm": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PlanQuestionForm"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"slug",
|
|
"title",
|
|
"status",
|
|
"conversationIds",
|
|
"projects",
|
|
"services",
|
|
"files",
|
|
"steps",
|
|
"content",
|
|
"fileList",
|
|
"stepList",
|
|
"conversations"
|
|
],
|
|
"title": "PlanDetail"
|
|
},
|
|
"PlanFile": {
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"title": "File"
|
|
},
|
|
"change": {
|
|
"type": "string",
|
|
"title": "Change"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"file",
|
|
"change"
|
|
],
|
|
"title": "PlanFile"
|
|
},
|
|
"PlanQuestionForm": {
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"title": "Description"
|
|
},
|
|
"fields": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/FormField"
|
|
},
|
|
"type": "array",
|
|
"title": "Fields"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"title",
|
|
"description",
|
|
"fields"
|
|
],
|
|
"title": "PlanQuestionForm",
|
|
"description": "The plan's open questions, as an ask-form field spec (the ``## Questions``\nsection's fenced JSON). Answered client-side on the plan page \u2014 answers live\nin the browser and feed the \"implement this plan\" prompt."
|
|
},
|
|
"PlanStep": {
|
|
"properties": {
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"detail": {
|
|
"type": "string",
|
|
"title": "Detail"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"title",
|
|
"detail"
|
|
],
|
|
"title": "PlanStep"
|
|
},
|
|
"PlanSummary": {
|
|
"properties": {
|
|
"slug": {
|
|
"type": "string",
|
|
"title": "Slug"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"title": "Status"
|
|
},
|
|
"created": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created"
|
|
},
|
|
"updatedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updatedat"
|
|
},
|
|
"sessionId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sessionid"
|
|
},
|
|
"conversationIds": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Conversationids"
|
|
},
|
|
"projects": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Projects"
|
|
},
|
|
"services": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Services"
|
|
},
|
|
"estCost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Estcost"
|
|
},
|
|
"estTimeMinutes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Esttimeminutes"
|
|
},
|
|
"estTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Esttokens"
|
|
},
|
|
"files": {
|
|
"type": "integer",
|
|
"title": "Files"
|
|
},
|
|
"steps": {
|
|
"type": "integer",
|
|
"title": "Steps"
|
|
},
|
|
"questions": {
|
|
"type": "integer",
|
|
"title": "Questions",
|
|
"default": 0
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"slug",
|
|
"title",
|
|
"status",
|
|
"conversationIds",
|
|
"projects",
|
|
"services",
|
|
"files",
|
|
"steps"
|
|
],
|
|
"title": "PlanSummary"
|
|
},
|
|
"PlansResponse": {
|
|
"properties": {
|
|
"plans": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PlanSummary"
|
|
},
|
|
"type": "array",
|
|
"title": "Plans"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"plans"
|
|
],
|
|
"title": "PlansResponse"
|
|
},
|
|
"Pricing": {
|
|
"properties": {
|
|
"model": {
|
|
"type": "string",
|
|
"title": "Model"
|
|
},
|
|
"inputPerMTok": {
|
|
"type": "number",
|
|
"title": "Inputpermtok"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"model",
|
|
"inputPerMTok"
|
|
],
|
|
"title": "Pricing"
|
|
},
|
|
"ProjectByType": {
|
|
"properties": {
|
|
"input": {
|
|
"$ref": "#/components/schemas/TokenTypeSpend"
|
|
},
|
|
"output": {
|
|
"$ref": "#/components/schemas/TokenTypeSpend"
|
|
},
|
|
"cacheRead": {
|
|
"$ref": "#/components/schemas/TokenTypeSpend"
|
|
},
|
|
"cacheWrite": {
|
|
"$ref": "#/components/schemas/TokenTypeSpend"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"input",
|
|
"output",
|
|
"cacheRead",
|
|
"cacheWrite"
|
|
],
|
|
"title": "ProjectByType"
|
|
},
|
|
"ProjectCommit": {
|
|
"properties": {
|
|
"hash": {
|
|
"type": "string",
|
|
"title": "Hash"
|
|
},
|
|
"date": {
|
|
"type": "string",
|
|
"title": "Date"
|
|
},
|
|
"subject": {
|
|
"type": "string",
|
|
"title": "Subject"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"hash",
|
|
"date",
|
|
"subject"
|
|
],
|
|
"title": "ProjectCommit"
|
|
},
|
|
"ProjectCostDetail": {
|
|
"properties": {
|
|
"cost": {
|
|
"type": "number",
|
|
"title": "Cost"
|
|
},
|
|
"tokens": {
|
|
"type": "integer",
|
|
"title": "Tokens"
|
|
},
|
|
"conversations": {
|
|
"type": "integer",
|
|
"title": "Conversations"
|
|
},
|
|
"meanCost": {
|
|
"type": "number",
|
|
"title": "Meancost"
|
|
},
|
|
"medianCost": {
|
|
"type": "number",
|
|
"title": "Mediancost"
|
|
},
|
|
"meanTokens": {
|
|
"type": "number",
|
|
"title": "Meantokens"
|
|
},
|
|
"medianTokens": {
|
|
"type": "number",
|
|
"title": "Mediantokens"
|
|
},
|
|
"byType": {
|
|
"$ref": "#/components/schemas/ProjectByType"
|
|
},
|
|
"loc": {
|
|
"type": "integer",
|
|
"title": "Loc"
|
|
},
|
|
"meanCostPerLoc": {
|
|
"type": "number",
|
|
"title": "Meancostperloc"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"cost",
|
|
"tokens",
|
|
"conversations",
|
|
"meanCost",
|
|
"medianCost",
|
|
"meanTokens",
|
|
"medianTokens",
|
|
"byType",
|
|
"loc",
|
|
"meanCostPerLoc"
|
|
],
|
|
"title": "ProjectCostDetail"
|
|
},
|
|
"ProjectCostSummary": {
|
|
"properties": {
|
|
"cost": {
|
|
"type": "number",
|
|
"title": "Cost"
|
|
},
|
|
"tokens": {
|
|
"type": "integer",
|
|
"title": "Tokens"
|
|
},
|
|
"conversations": {
|
|
"type": "integer",
|
|
"title": "Conversations"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"cost",
|
|
"tokens",
|
|
"conversations"
|
|
],
|
|
"title": "ProjectCostSummary"
|
|
},
|
|
"ProjectDetail": {
|
|
"properties": {
|
|
"dir": {
|
|
"type": "string",
|
|
"title": "Dir"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"title": "Description"
|
|
},
|
|
"version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Version"
|
|
},
|
|
"url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Url"
|
|
},
|
|
"stack": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Stack"
|
|
},
|
|
"keywords": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Keywords"
|
|
},
|
|
"hasPackageJson": {
|
|
"type": "boolean",
|
|
"title": "Haspackagejson"
|
|
},
|
|
"goal": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/GoalDetail"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"updatedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updatedat"
|
|
},
|
|
"costs": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ProjectCostDetail"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"readme": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Readme"
|
|
},
|
|
"claudeMd": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Claudemd"
|
|
},
|
|
"indexMeta": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/IndexMeta"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"ogImage": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/OgImage"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"scripts": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Scripts"
|
|
},
|
|
"keyFiles": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyFile"
|
|
},
|
|
"type": "array",
|
|
"title": "Keyfiles"
|
|
},
|
|
"commits": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ProjectCommit"
|
|
},
|
|
"type": "array",
|
|
"title": "Commits"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"dir",
|
|
"name",
|
|
"description",
|
|
"stack",
|
|
"keywords",
|
|
"hasPackageJson",
|
|
"scripts",
|
|
"keyFiles",
|
|
"commits"
|
|
],
|
|
"title": "ProjectDetail"
|
|
},
|
|
"ProjectEnvResponse": {
|
|
"properties": {
|
|
"slug": {
|
|
"type": "string",
|
|
"title": "Slug"
|
|
},
|
|
"exists": {
|
|
"type": "boolean",
|
|
"title": "Exists"
|
|
},
|
|
"vars": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ProjectEnvVar"
|
|
},
|
|
"type": "array",
|
|
"title": "Vars"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"slug",
|
|
"exists",
|
|
"vars"
|
|
],
|
|
"title": "ProjectEnvResponse"
|
|
},
|
|
"ProjectEnvVar": {
|
|
"properties": {
|
|
"key": {
|
|
"type": "string",
|
|
"title": "Key"
|
|
},
|
|
"value": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Value"
|
|
},
|
|
"secret": {
|
|
"type": "boolean",
|
|
"title": "Secret"
|
|
},
|
|
"hasValue": {
|
|
"type": "boolean",
|
|
"title": "Hasvalue"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"key",
|
|
"secret",
|
|
"hasValue"
|
|
],
|
|
"title": "ProjectEnvVar"
|
|
},
|
|
"ProjectSummary": {
|
|
"properties": {
|
|
"dir": {
|
|
"type": "string",
|
|
"title": "Dir"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"title": "Description"
|
|
},
|
|
"version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Version"
|
|
},
|
|
"url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Url"
|
|
},
|
|
"stack": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Stack"
|
|
},
|
|
"keywords": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Keywords"
|
|
},
|
|
"hasPackageJson": {
|
|
"type": "boolean",
|
|
"title": "Haspackagejson"
|
|
},
|
|
"goal": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/GoalSummary"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"updatedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updatedat"
|
|
},
|
|
"costs": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ProjectCostSummary"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"dir",
|
|
"name",
|
|
"description",
|
|
"stack",
|
|
"keywords",
|
|
"hasPackageJson"
|
|
],
|
|
"title": "ProjectSummary"
|
|
},
|
|
"ProjectsResponse": {
|
|
"properties": {
|
|
"projects": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ProjectSummary"
|
|
},
|
|
"type": "array",
|
|
"title": "Projects"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"projects"
|
|
],
|
|
"title": "ProjectsResponse"
|
|
},
|
|
"ResumeBody": {
|
|
"properties": {
|
|
"sessionId": {
|
|
"type": "string",
|
|
"title": "Sessionid"
|
|
},
|
|
"prompt": {
|
|
"type": "string",
|
|
"title": "Prompt"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"cwd": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cwd"
|
|
},
|
|
"harness": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Harness"
|
|
},
|
|
"thinking": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Thinking"
|
|
},
|
|
"effort": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Effort"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"sessionId",
|
|
"prompt"
|
|
],
|
|
"title": "ResumeBody"
|
|
},
|
|
"RunningAgent": {
|
|
"properties": {
|
|
"toolUseId": {
|
|
"type": "string",
|
|
"title": "Tooluseid"
|
|
},
|
|
"agentType": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agenttype"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"startedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Startedat"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"toolUseId"
|
|
],
|
|
"title": "RunningAgent",
|
|
"description": "A Task/Agent call that hasn't returned \u2014 i.e. a subagent still running."
|
|
},
|
|
"RunningConversation": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"startedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Startedat"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"title"
|
|
],
|
|
"title": "RunningConversation"
|
|
},
|
|
"SaveBody": {
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
},
|
|
"content": {
|
|
"type": "string",
|
|
"title": "Content"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"path",
|
|
"content"
|
|
],
|
|
"title": "SaveBody"
|
|
},
|
|
"SearchConv": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"project": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project"
|
|
},
|
|
"model": {
|
|
"type": "string",
|
|
"title": "Model"
|
|
},
|
|
"endedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Endedat"
|
|
},
|
|
"msgs": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SearchMsg"
|
|
},
|
|
"type": "array",
|
|
"title": "Msgs"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"title",
|
|
"model",
|
|
"msgs"
|
|
],
|
|
"title": "SearchConv"
|
|
},
|
|
"SearchIndexResponse": {
|
|
"properties": {
|
|
"conversations": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SearchConv"
|
|
},
|
|
"type": "array",
|
|
"title": "Conversations"
|
|
},
|
|
"count": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Count"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"conversations"
|
|
],
|
|
"title": "SearchIndexResponse"
|
|
},
|
|
"SearchMsg": {
|
|
"properties": {
|
|
"i": {
|
|
"type": "integer",
|
|
"title": "I"
|
|
},
|
|
"role": {
|
|
"type": "string",
|
|
"enum": [
|
|
"user",
|
|
"assistant"
|
|
],
|
|
"title": "Role"
|
|
},
|
|
"text": {
|
|
"type": "string",
|
|
"title": "Text"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"i",
|
|
"role",
|
|
"text"
|
|
],
|
|
"title": "SearchMsg"
|
|
},
|
|
"ServiceContainer": {
|
|
"properties": {
|
|
"key": {
|
|
"type": "string",
|
|
"title": "Key"
|
|
},
|
|
"containerName": {
|
|
"type": "string",
|
|
"title": "Containername"
|
|
},
|
|
"image": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Image"
|
|
},
|
|
"build": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Build"
|
|
},
|
|
"profiles": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Profiles"
|
|
},
|
|
"restart": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Restart"
|
|
},
|
|
"networkMode": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Networkmode"
|
|
},
|
|
"networks": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Networks"
|
|
},
|
|
"ports": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Ports"
|
|
},
|
|
"dependsOn": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Dependson"
|
|
},
|
|
"envKeys": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Envkeys"
|
|
},
|
|
"envFiles": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Envfiles"
|
|
},
|
|
"volumes": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ServiceVolume"
|
|
},
|
|
"type": "array",
|
|
"title": "Volumes"
|
|
},
|
|
"hasHealthcheck": {
|
|
"type": "boolean",
|
|
"title": "Hashealthcheck"
|
|
},
|
|
"composeFile": {
|
|
"type": "string",
|
|
"title": "Composefile"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"key",
|
|
"containerName",
|
|
"profiles",
|
|
"networks",
|
|
"ports",
|
|
"dependsOn",
|
|
"envKeys",
|
|
"envFiles",
|
|
"volumes",
|
|
"hasHealthcheck",
|
|
"composeFile"
|
|
],
|
|
"title": "ServiceContainer"
|
|
},
|
|
"ServiceDetail": {
|
|
"properties": {
|
|
"dir": {
|
|
"type": "string",
|
|
"title": "Dir"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"title": "Description"
|
|
},
|
|
"icon": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Icon"
|
|
},
|
|
"group": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Group"
|
|
},
|
|
"urls": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Urls"
|
|
},
|
|
"containers": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Containers"
|
|
},
|
|
"containerCount": {
|
|
"type": "integer",
|
|
"title": "Containercount"
|
|
},
|
|
"images": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Images"
|
|
},
|
|
"profiles": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Profiles"
|
|
},
|
|
"auth": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"auth",
|
|
"public",
|
|
"api",
|
|
"mixed"
|
|
]
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Auth"
|
|
},
|
|
"hasCompose": {
|
|
"type": "boolean",
|
|
"title": "Hascompose"
|
|
},
|
|
"hasTraefik": {
|
|
"type": "boolean",
|
|
"title": "Hastraefik"
|
|
},
|
|
"goal": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/GoalDetail"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"updatedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updatedat"
|
|
},
|
|
"containersDetail": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ServiceContainer"
|
|
},
|
|
"type": "array",
|
|
"title": "Containersdetail"
|
|
},
|
|
"composeFiles": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Composefiles"
|
|
},
|
|
"topNetworks": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Topnetworks"
|
|
},
|
|
"routers": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ServiceRouter"
|
|
},
|
|
"type": "array",
|
|
"title": "Routers"
|
|
},
|
|
"traefikServices": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TraefikService"
|
|
},
|
|
"type": "array",
|
|
"title": "Traefikservices"
|
|
},
|
|
"middlewares": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Middlewares"
|
|
},
|
|
"envKeys": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Envkeys"
|
|
},
|
|
"homepage": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/HomepageMeta"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"readme": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Readme"
|
|
},
|
|
"claudeMd": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Claudemd"
|
|
},
|
|
"keyFiles": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyFile"
|
|
},
|
|
"type": "array",
|
|
"title": "Keyfiles"
|
|
},
|
|
"commits": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ProjectCommit"
|
|
},
|
|
"type": "array",
|
|
"title": "Commits"
|
|
},
|
|
"tree": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ServiceTreeNode"
|
|
},
|
|
"type": "array",
|
|
"title": "Tree"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"dir",
|
|
"name",
|
|
"description",
|
|
"urls",
|
|
"containers",
|
|
"containerCount",
|
|
"images",
|
|
"profiles",
|
|
"hasCompose",
|
|
"hasTraefik",
|
|
"containersDetail",
|
|
"composeFiles",
|
|
"topNetworks",
|
|
"routers",
|
|
"traefikServices",
|
|
"middlewares",
|
|
"envKeys",
|
|
"keyFiles",
|
|
"commits",
|
|
"tree"
|
|
],
|
|
"title": "ServiceDetail"
|
|
},
|
|
"ServiceRouter": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http",
|
|
"tcp"
|
|
],
|
|
"title": "Kind"
|
|
},
|
|
"rule": {
|
|
"type": "string",
|
|
"title": "Rule"
|
|
},
|
|
"hosts": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Hosts"
|
|
},
|
|
"url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Url"
|
|
},
|
|
"entryPoints": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Entrypoints"
|
|
},
|
|
"service": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Service"
|
|
},
|
|
"middlewares": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Middlewares"
|
|
},
|
|
"tls": {
|
|
"type": "boolean",
|
|
"title": "Tls"
|
|
},
|
|
"priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Priority"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"kind",
|
|
"rule",
|
|
"hosts",
|
|
"entryPoints",
|
|
"middlewares",
|
|
"tls"
|
|
],
|
|
"title": "ServiceRouter"
|
|
},
|
|
"ServiceSummary": {
|
|
"properties": {
|
|
"dir": {
|
|
"type": "string",
|
|
"title": "Dir"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"title": "Description"
|
|
},
|
|
"icon": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Icon"
|
|
},
|
|
"group": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Group"
|
|
},
|
|
"urls": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Urls"
|
|
},
|
|
"containers": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Containers"
|
|
},
|
|
"containerCount": {
|
|
"type": "integer",
|
|
"title": "Containercount"
|
|
},
|
|
"images": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Images"
|
|
},
|
|
"profiles": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Profiles"
|
|
},
|
|
"auth": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"auth",
|
|
"public",
|
|
"api",
|
|
"mixed"
|
|
]
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Auth"
|
|
},
|
|
"hasCompose": {
|
|
"type": "boolean",
|
|
"title": "Hascompose"
|
|
},
|
|
"hasTraefik": {
|
|
"type": "boolean",
|
|
"title": "Hastraefik"
|
|
},
|
|
"goal": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/GoalSummary"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"updatedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updatedat"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"dir",
|
|
"name",
|
|
"description",
|
|
"urls",
|
|
"containers",
|
|
"containerCount",
|
|
"images",
|
|
"profiles",
|
|
"hasCompose",
|
|
"hasTraefik"
|
|
],
|
|
"title": "ServiceSummary"
|
|
},
|
|
"ServiceTreeNode": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"path": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dir",
|
|
"file"
|
|
],
|
|
"title": "Type"
|
|
},
|
|
"size": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Size"
|
|
},
|
|
"text": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Text"
|
|
},
|
|
"secret": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Secret"
|
|
},
|
|
"children": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ServiceTreeNode"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Children"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"path",
|
|
"type"
|
|
],
|
|
"title": "ServiceTreeNode"
|
|
},
|
|
"ServiceVolume": {
|
|
"properties": {
|
|
"source": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Source"
|
|
},
|
|
"target": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Target"
|
|
},
|
|
"mode": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mode"
|
|
},
|
|
"readOnly": {
|
|
"type": "boolean",
|
|
"title": "Readonly"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"readOnly"
|
|
],
|
|
"title": "ServiceVolume"
|
|
},
|
|
"ServicesResponse": {
|
|
"properties": {
|
|
"services": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ServiceSummary"
|
|
},
|
|
"type": "array",
|
|
"title": "Services"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"services"
|
|
],
|
|
"title": "ServicesResponse"
|
|
},
|
|
"SkillStat": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"title": "Count"
|
|
},
|
|
"lastUsed": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Lastused"
|
|
},
|
|
"contextTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Contexttokens"
|
|
},
|
|
"contextCost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Contextcost"
|
|
},
|
|
"estSpend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Estspend"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"count"
|
|
],
|
|
"title": "SkillStat"
|
|
},
|
|
"SkillSummary": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"title": "Title"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"title": "Description"
|
|
},
|
|
"dir": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Dir"
|
|
},
|
|
"path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Path"
|
|
},
|
|
"source": {
|
|
"type": "string",
|
|
"title": "Source"
|
|
},
|
|
"sourceKind": {
|
|
"type": "string",
|
|
"title": "Sourcekind"
|
|
},
|
|
"files": {
|
|
"type": "integer",
|
|
"title": "Files"
|
|
},
|
|
"updatedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updatedat"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"title": "Count"
|
|
},
|
|
"lastUsed": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Lastused"
|
|
},
|
|
"conversations": {
|
|
"type": "integer",
|
|
"title": "Conversations"
|
|
},
|
|
"contextTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Contexttokens"
|
|
},
|
|
"contextCost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Contextcost"
|
|
},
|
|
"estSpend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Estspend"
|
|
},
|
|
"sessionCost": {
|
|
"type": "number",
|
|
"title": "Sessioncost"
|
|
},
|
|
"sessionTokens": {
|
|
"type": "integer",
|
|
"title": "Sessiontokens"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"title",
|
|
"description",
|
|
"source",
|
|
"sourceKind",
|
|
"files",
|
|
"count",
|
|
"conversations",
|
|
"sessionCost",
|
|
"sessionTokens"
|
|
],
|
|
"title": "SkillSummary",
|
|
"description": "One skill card: what it is on disk + what its use has cost."
|
|
},
|
|
"SkillsResponse": {
|
|
"properties": {
|
|
"skills": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SkillSummary"
|
|
},
|
|
"type": "array",
|
|
"title": "Skills"
|
|
},
|
|
"totals": {
|
|
"$ref": "#/components/schemas/SkillsTotals"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"skills",
|
|
"totals"
|
|
],
|
|
"title": "SkillsResponse"
|
|
},
|
|
"SkillsTotals": {
|
|
"properties": {
|
|
"skills": {
|
|
"type": "integer",
|
|
"title": "Skills"
|
|
},
|
|
"used": {
|
|
"type": "integer",
|
|
"title": "Used"
|
|
},
|
|
"invocations": {
|
|
"type": "integer",
|
|
"title": "Invocations"
|
|
},
|
|
"contextCost": {
|
|
"type": "number",
|
|
"title": "Contextcost"
|
|
},
|
|
"estSpend": {
|
|
"type": "number",
|
|
"title": "Estspend"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"skills",
|
|
"used",
|
|
"invocations",
|
|
"contextCost",
|
|
"estSpend"
|
|
],
|
|
"title": "SkillsTotals"
|
|
},
|
|
"SpawnBody": {
|
|
"properties": {
|
|
"prompt": {
|
|
"type": "string",
|
|
"title": "Prompt"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"harness": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Harness"
|
|
},
|
|
"thinking": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Thinking"
|
|
},
|
|
"effort": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Effort"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"prompt"
|
|
],
|
|
"title": "SpawnBody"
|
|
},
|
|
"SpawnResult": {
|
|
"properties": {
|
|
"sessionId": {
|
|
"type": "string",
|
|
"title": "Sessionid"
|
|
},
|
|
"pid": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Pid"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"sessionId"
|
|
],
|
|
"title": "SpawnResult"
|
|
},
|
|
"SubagentListItem": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"parentId": {
|
|
"type": "string",
|
|
"title": "Parentid"
|
|
},
|
|
"agentType": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agenttype"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Title"
|
|
},
|
|
"tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tokens"
|
|
},
|
|
"cost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cost"
|
|
},
|
|
"state": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "State"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"parentId"
|
|
],
|
|
"title": "SubagentListItem",
|
|
"description": "A flat subagent (sidechain) ref with its parent conversation id \u2014 the\ngraph view's node source (the top-level conversation list hides these)."
|
|
},
|
|
"SubagentRef": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"agentType": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agenttype"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"title": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Title"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tokens"
|
|
},
|
|
"cost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cost"
|
|
},
|
|
"messages": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Messages"
|
|
},
|
|
"state": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "State"
|
|
},
|
|
"startedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Startedat"
|
|
},
|
|
"endedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Endedat"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "SubagentRef"
|
|
},
|
|
"SubagentsResponse": {
|
|
"properties": {
|
|
"subagents": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SubagentListItem"
|
|
},
|
|
"type": "array",
|
|
"title": "Subagents"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"subagents"
|
|
],
|
|
"title": "SubagentsResponse"
|
|
},
|
|
"Task": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"subject": {
|
|
"type": "string",
|
|
"title": "Subject"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"title": "Status"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"subject",
|
|
"status"
|
|
],
|
|
"title": "Task",
|
|
"description": "One task from the conversation's task list (TaskCreate/TaskUpdate, or the\nolder TodoWrite). ``status`` is one of pending / in_progress / completed /\ncancelled."
|
|
},
|
|
"TemplateDetail": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"title": "Description"
|
|
},
|
|
"stack": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Stack"
|
|
},
|
|
"fileCount": {
|
|
"type": "integer",
|
|
"title": "Filecount"
|
|
},
|
|
"sizeBytes": {
|
|
"type": "integer",
|
|
"title": "Sizebytes"
|
|
},
|
|
"readme": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Readme"
|
|
},
|
|
"scripts": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object",
|
|
"title": "Scripts"
|
|
},
|
|
"dependencies": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Dependencies"
|
|
},
|
|
"tree": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TemplateTreeNode"
|
|
},
|
|
"type": "array",
|
|
"title": "Tree"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"description",
|
|
"stack",
|
|
"fileCount",
|
|
"sizeBytes",
|
|
"scripts",
|
|
"dependencies",
|
|
"tree"
|
|
],
|
|
"title": "TemplateDetail"
|
|
},
|
|
"TemplateSummary": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"title": "Description"
|
|
},
|
|
"stack": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Stack"
|
|
},
|
|
"fileCount": {
|
|
"type": "integer",
|
|
"title": "Filecount"
|
|
},
|
|
"sizeBytes": {
|
|
"type": "integer",
|
|
"title": "Sizebytes"
|
|
},
|
|
"hasReadme": {
|
|
"type": "boolean",
|
|
"title": "Hasreadme"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"description",
|
|
"stack",
|
|
"fileCount",
|
|
"sizeBytes",
|
|
"hasReadme"
|
|
],
|
|
"title": "TemplateSummary"
|
|
},
|
|
"TemplateTreeNode": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"path": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"dir",
|
|
"file"
|
|
],
|
|
"title": "Type"
|
|
},
|
|
"size": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Size"
|
|
},
|
|
"text": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Text"
|
|
},
|
|
"children": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/TemplateTreeNode"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Children"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"path",
|
|
"type"
|
|
],
|
|
"title": "TemplateTreeNode"
|
|
},
|
|
"TemplatesResponse": {
|
|
"properties": {
|
|
"templates": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TemplateSummary"
|
|
},
|
|
"type": "array",
|
|
"title": "Templates"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"templates"
|
|
],
|
|
"title": "TemplatesResponse"
|
|
},
|
|
"ThreadItem": {
|
|
"properties": {
|
|
"role": {
|
|
"type": "string",
|
|
"enum": [
|
|
"user",
|
|
"assistant",
|
|
"tool"
|
|
],
|
|
"title": "Role"
|
|
},
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"text",
|
|
"thinking",
|
|
"tool_use",
|
|
"tool_result",
|
|
"interrupted",
|
|
"paused",
|
|
"turn"
|
|
],
|
|
"title": "Kind"
|
|
},
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
},
|
|
"input": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input"
|
|
},
|
|
"text": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Text"
|
|
},
|
|
"isError": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Iserror"
|
|
},
|
|
"result": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Result"
|
|
},
|
|
"out": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Out"
|
|
},
|
|
"turnTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Turntokens"
|
|
},
|
|
"turnCost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Turncost"
|
|
},
|
|
"turnCacheTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Turncachetokens"
|
|
},
|
|
"turnCacheCost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Turncachecost"
|
|
},
|
|
"turnBucket": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Turnbucket"
|
|
},
|
|
"turnContextCost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Turncontextcost"
|
|
},
|
|
"turnContextTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Turncontexttokens"
|
|
},
|
|
"firstContextTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Firstcontexttokens"
|
|
},
|
|
"firstMessageTokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Firstmessagetokens"
|
|
},
|
|
"mi": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mi"
|
|
},
|
|
"ts": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ts"
|
|
},
|
|
"toolUseId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tooluseid"
|
|
},
|
|
"subagent": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/SubagentRef"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"agentRunning": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agentrunning"
|
|
},
|
|
"durationMs": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Durationms"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"resultChars": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Resultchars"
|
|
},
|
|
"resultLines": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Resultlines"
|
|
},
|
|
"skillBody": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Skillbody"
|
|
},
|
|
"skillPath": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Skillpath"
|
|
},
|
|
"deployedUrl": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Deployedurl"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"role",
|
|
"kind"
|
|
],
|
|
"title": "ThreadItem"
|
|
},
|
|
"TokenTypeSpend": {
|
|
"properties": {
|
|
"tokens": {
|
|
"type": "integer",
|
|
"title": "Tokens"
|
|
},
|
|
"cost": {
|
|
"type": "number",
|
|
"title": "Cost"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"tokens",
|
|
"cost"
|
|
],
|
|
"title": "TokenTypeSpend"
|
|
},
|
|
"ToolUsage": {
|
|
"properties": {
|
|
"tokens": {
|
|
"type": "integer",
|
|
"title": "Tokens"
|
|
},
|
|
"cost": {
|
|
"type": "number",
|
|
"title": "Cost"
|
|
},
|
|
"output": {
|
|
"type": "integer",
|
|
"title": "Output"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"tokens",
|
|
"cost",
|
|
"output"
|
|
],
|
|
"title": "ToolUsage"
|
|
},
|
|
"TopFile": {
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"title": "Path"
|
|
},
|
|
"tokens": {
|
|
"type": "integer",
|
|
"title": "Tokens"
|
|
},
|
|
"cost": {
|
|
"type": "number",
|
|
"title": "Cost"
|
|
},
|
|
"estimated": {
|
|
"type": "boolean",
|
|
"title": "Estimated"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"path",
|
|
"tokens",
|
|
"cost",
|
|
"estimated"
|
|
],
|
|
"title": "TopFile"
|
|
},
|
|
"Totals": {
|
|
"properties": {
|
|
"files": {
|
|
"type": "integer",
|
|
"title": "Files"
|
|
},
|
|
"mdFiles": {
|
|
"type": "integer",
|
|
"title": "Mdfiles"
|
|
},
|
|
"words": {
|
|
"type": "integer",
|
|
"title": "Words"
|
|
},
|
|
"chars": {
|
|
"type": "integer",
|
|
"title": "Chars"
|
|
},
|
|
"tokens": {
|
|
"type": "integer",
|
|
"title": "Tokens"
|
|
},
|
|
"cost": {
|
|
"type": "number",
|
|
"title": "Cost"
|
|
},
|
|
"estimated": {
|
|
"type": "integer",
|
|
"title": "Estimated"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"files",
|
|
"mdFiles",
|
|
"words",
|
|
"chars",
|
|
"tokens",
|
|
"cost",
|
|
"estimated"
|
|
],
|
|
"title": "Totals"
|
|
},
|
|
"TraefikService": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"servers": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Servers"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"servers"
|
|
],
|
|
"title": "TraefikService"
|
|
},
|
|
"TurnUsage": {
|
|
"properties": {
|
|
"input": {
|
|
"type": "integer",
|
|
"title": "Input"
|
|
},
|
|
"output": {
|
|
"type": "integer",
|
|
"title": "Output"
|
|
},
|
|
"cacheRead": {
|
|
"type": "integer",
|
|
"title": "Cacheread"
|
|
},
|
|
"cacheWriteTokens": {
|
|
"type": "integer",
|
|
"title": "Cachewritetokens"
|
|
},
|
|
"cacheWriteUnits": {
|
|
"type": "integer",
|
|
"title": "Cachewriteunits"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"input",
|
|
"output",
|
|
"cacheRead",
|
|
"cacheWriteTokens",
|
|
"cacheWriteUnits"
|
|
],
|
|
"title": "TurnUsage"
|
|
},
|
|
"UiStateBody": {
|
|
"properties": {
|
|
"value": {
|
|
"type": "string",
|
|
"title": "Value"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"value"
|
|
],
|
|
"title": "UiStateBody"
|
|
},
|
|
"UiStateValue": {
|
|
"properties": {
|
|
"value": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Value"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "UiStateValue"
|
|
},
|
|
"UnreadNotificationsResponse": {
|
|
"properties": {
|
|
"notifications": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/FeedNotification"
|
|
},
|
|
"type": "array",
|
|
"title": "Notifications"
|
|
},
|
|
"count": {
|
|
"type": "integer",
|
|
"title": "Count"
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"title": "Total"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"notifications",
|
|
"count",
|
|
"total"
|
|
],
|
|
"title": "UnreadNotificationsResponse"
|
|
},
|
|
"UploadResult": {
|
|
"properties": {
|
|
"files": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/UploadedFile"
|
|
},
|
|
"type": "array",
|
|
"title": "Files"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"files"
|
|
],
|
|
"title": "UploadResult"
|
|
},
|
|
"UploadedFile": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"size": {
|
|
"type": "integer",
|
|
"title": "Size"
|
|
},
|
|
"contentType": {
|
|
"type": "string",
|
|
"title": "Contenttype"
|
|
},
|
|
"repoPath": {
|
|
"type": "string",
|
|
"title": "Repopath"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"title": "Url"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name",
|
|
"size",
|
|
"contentType",
|
|
"repoPath",
|
|
"url"
|
|
],
|
|
"title": "UploadedFile"
|
|
},
|
|
"Usage": {
|
|
"properties": {
|
|
"input": {
|
|
"type": "integer",
|
|
"title": "Input"
|
|
},
|
|
"output": {
|
|
"type": "integer",
|
|
"title": "Output"
|
|
},
|
|
"cacheRead": {
|
|
"type": "integer",
|
|
"title": "Cacheread"
|
|
},
|
|
"cacheWriteTokens": {
|
|
"type": "integer",
|
|
"title": "Cachewritetokens"
|
|
},
|
|
"cacheWriteUnits": {
|
|
"type": "integer",
|
|
"title": "Cachewriteunits"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"input",
|
|
"output",
|
|
"cacheRead",
|
|
"cacheWriteTokens",
|
|
"cacheWriteUnits"
|
|
],
|
|
"title": "Usage"
|
|
},
|
|
"ValidationError": {
|
|
"properties": {
|
|
"loc": {
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "integer"
|
|
}
|
|
]
|
|
},
|
|
"type": "array",
|
|
"title": "Location"
|
|
},
|
|
"msg": {
|
|
"type": "string",
|
|
"title": "Message"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"title": "Error Type"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"loc",
|
|
"msg",
|
|
"type"
|
|
],
|
|
"title": "ValidationError"
|
|
},
|
|
"Webhook": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"title": "Id"
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"title": "Url"
|
|
},
|
|
"events": {
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"notify",
|
|
"ask"
|
|
]
|
|
},
|
|
"type": "array",
|
|
"title": "Events"
|
|
},
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"title": "Enabled"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"url",
|
|
"events",
|
|
"enabled"
|
|
],
|
|
"title": "Webhook"
|
|
},
|
|
"WebhooksBody": {
|
|
"properties": {
|
|
"webhooks": {
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array",
|
|
"title": "Webhooks"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"webhooks"
|
|
],
|
|
"title": "WebhooksBody"
|
|
},
|
|
"WebhooksResponse": {
|
|
"properties": {
|
|
"webhooks": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/Webhook"
|
|
},
|
|
"type": "array",
|
|
"title": "Webhooks"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"webhooks"
|
|
],
|
|
"title": "WebhooksResponse"
|
|
},
|
|
"WorktreeInfo": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"title": "Name"
|
|
},
|
|
"dir": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Dir"
|
|
},
|
|
"createdAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Createdat"
|
|
},
|
|
"removedAt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Removedat"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"title": "WorktreeInfo"
|
|
}
|
|
}
|
|
}
|
|
} |