chore: v2.8.13 — Artifacts reinstall/edit/installs, agent steps in chat, pick a local file to attach, Windows paths as links
- Chat: an Agent step shows its task, status and tool calls and opens its conversation in place; Windows paths (E:\…, C:/…) in replies open as files - Prompt: attach a file on this computer by path (native picker), clearer too-large messages - Artifacts: edit title/description and a skill's files (new snapshot), Reinstall, install history, Hub-only rows, skills installed into ~/.claude/skills and ~/.agents/skills - Files: batch upload of small files in one extract - AI Tools: npm install falls back to --prefix ~/.local when the global prefix is not writable
This commit is contained in:
+183
-1
@@ -3,7 +3,7 @@
|
||||
openapi: 3.0.3
|
||||
info:
|
||||
title: Agent Dashboard for Claude Code API
|
||||
version: 2.8.12
|
||||
version: 2.8.13
|
||||
description: HTTP API for real-time Claude Code session monitoring, agent lifecycle tracking, analytics, pricing, hooks ingestion, and workflow intelligence.
|
||||
contact:
|
||||
name: Nguyễn Ngọc Trí Vĩ
|
||||
@@ -466,6 +466,10 @@ components:
|
||||
subagent_type:
|
||||
type: string
|
||||
nullable: true
|
||||
tool_use_id:
|
||||
type: string
|
||||
nullable: true
|
||||
description: The Agent/Task tool_use that launched this subagent, from its meta file (Claude Code subagents only).
|
||||
has_transcript:
|
||||
type: boolean
|
||||
db_agent_id:
|
||||
@@ -15912,6 +15916,94 @@ paths:
|
||||
responses:
|
||||
'201':
|
||||
description: Done.
|
||||
/api/lanes/{id}/fs/upload-check:
|
||||
post:
|
||||
tags:
|
||||
- Files
|
||||
summary: 'Before a batch: the names already taken, and whether a batch can go there'
|
||||
description: 'On a workspace (`?session=` / `?source=` pick the session worktree / extra folder, like the git reads). `taken`: which of `paths` (relative to `dir`) exist; `batch: false` = send the files one by one (a member''s folder whose `write-as` predates `extract`). 400 EBADPATH/EBADNAME, 403 ESECRET/EFOREIGN/EREADONLY (another user''s home)/EBADORIGIN, 404 ENOFILE/ENOHOME, 409 EEXISTS (with `error.names`)/EUPGRADE/EMEMBERGONE, 413 ETOOBIG.'
|
||||
operationId: laneFsUploadCheck
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: integer
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required:
|
||||
- paths
|
||||
properties:
|
||||
dir:
|
||||
type: string
|
||||
default: ''
|
||||
paths:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: '`{taken, batch}`'
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
taken:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
batch:
|
||||
type: boolean
|
||||
/api/lanes/{id}/fs/upload-batch:
|
||||
post:
|
||||
tags:
|
||||
- Files
|
||||
summary: Upload many small files in one request (≤ 5,000 files, 16 MB each, 256 MB in all)
|
||||
description: 'On a workspace (`?session=` / `?source=` pick the session worktree / extra folder, like the git reads). Body: a 4-byte big-endian length, that many bytes of JSON `{files: [{path, size, mtime?}]}` (paths relative to `dir`), then each file''s bytes in that order. Planned whole before the first write — a taken name under `conflict=fail` is ONE 409 naming them all; a member''s batch is one `write-as extract` (409 EUPGRADE until `agenthub server install-system` is re-run). 400 EBADBODY for a malformed or short body. 400 EBADPATH/EBADNAME, 403 ESECRET/EFOREIGN/EREADONLY (another user''s home)/EBADORIGIN, 404 ENOFILE/ENOHOME, 409 EEXISTS (with `error.names`)/EUPGRADE/EMEMBERGONE, 413 ETOOBIG.'
|
||||
operationId: laneFsUploadBatch
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: integer
|
||||
- name: dir
|
||||
in: query
|
||||
schema:
|
||||
type: string
|
||||
default: ''
|
||||
- name: conflict
|
||||
in: query
|
||||
schema:
|
||||
$ref: '#/components/schemas/FsConflict'
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/octet-stream:
|
||||
schema:
|
||||
type: string
|
||||
format: binary
|
||||
responses:
|
||||
'201':
|
||||
description: '`{saved, skipped, paths}`'
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
saved:
|
||||
type: integer
|
||||
skipped:
|
||||
type: integer
|
||||
paths:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
/api/lanes/{id}/fs/zip:
|
||||
get:
|
||||
tags:
|
||||
@@ -16265,6 +16357,96 @@ paths:
|
||||
responses:
|
||||
'201':
|
||||
description: Done.
|
||||
/api/homes/{who}/fs/upload-check:
|
||||
post:
|
||||
tags:
|
||||
- Files
|
||||
summary: 'Before a batch: the names already taken, and whether a batch can go there'
|
||||
description: 'On a user''s home. Every dot entry at the top of the home is hidden and refused. `taken`: which of `paths` (relative to `dir`) exist; `batch: false` = send the files one by one (a member''s folder whose `write-as` predates `extract`). 400 EBADPATH/EBADNAME, 403 ESECRET/EFOREIGN/EREADONLY (another user''s home)/EBADORIGIN, 404 ENOFILE/ENOHOME, 409 EEXISTS (with `error.names`)/EUPGRADE/EMEMBERGONE, 413 ETOOBIG.'
|
||||
operationId: homeFsUploadCheck
|
||||
parameters:
|
||||
- name: who
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
description: '`me`, or another user''s name (an admin''s read-only view).'
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required:
|
||||
- paths
|
||||
properties:
|
||||
dir:
|
||||
type: string
|
||||
default: ''
|
||||
paths:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: '`{taken, batch}`'
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
taken:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
batch:
|
||||
type: boolean
|
||||
/api/homes/{who}/fs/upload-batch:
|
||||
post:
|
||||
tags:
|
||||
- Files
|
||||
summary: Upload many small files in one request (≤ 5,000 files, 16 MB each, 256 MB in all)
|
||||
description: 'On a user''s home. Every dot entry at the top of the home is hidden and refused. Body: a 4-byte big-endian length, that many bytes of JSON `{files: [{path, size, mtime?}]}` (paths relative to `dir`), then each file''s bytes in that order. Planned whole before the first write — a taken name under `conflict=fail` is ONE 409 naming them all; a member''s batch is one `write-as extract` (409 EUPGRADE until `agenthub server install-system` is re-run). 400 EBADBODY for a malformed or short body. 400 EBADPATH/EBADNAME, 403 ESECRET/EFOREIGN/EREADONLY (another user''s home)/EBADORIGIN, 404 ENOFILE/ENOHOME, 409 EEXISTS (with `error.names`)/EUPGRADE/EMEMBERGONE, 413 ETOOBIG.'
|
||||
operationId: homeFsUploadBatch
|
||||
parameters:
|
||||
- name: who
|
||||
in: path
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
description: '`me`, or another user''s name (an admin''s read-only view).'
|
||||
- name: dir
|
||||
in: query
|
||||
schema:
|
||||
type: string
|
||||
default: ''
|
||||
- name: conflict
|
||||
in: query
|
||||
schema:
|
||||
$ref: '#/components/schemas/FsConflict'
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/octet-stream:
|
||||
schema:
|
||||
type: string
|
||||
format: binary
|
||||
responses:
|
||||
'201':
|
||||
description: '`{saved, skipped, paths}`'
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
saved:
|
||||
type: integer
|
||||
skipped:
|
||||
type: integer
|
||||
paths:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
/api/homes/{who}/fs/zip:
|
||||
get:
|
||||
tags:
|
||||
|
||||
Reference in New Issue
Block a user