Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ jobs:
- name: deadcode
run: |
go install golang.org/x/tools/cmd/deadcode@v0.45.0
deadcode ./... 2>&1 | head -50
deadcode ./...

# -------------------------------------------------------------------------
# Duplication detection — jscpd.
Expand All @@ -183,13 +183,13 @@ jobs:
name: duplication
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: '20'
- name: jscpd
run: |
npx jscpd --min-lines 5 --min-tokens 50 --reporters console --blame . 2>&1 | head -50
npx --yes jscpd@5.0.12 --min-lines 5 --min-tokens 50 --reporters console --blame .

# -------------------------------------------------------------------------
# Cross-platform build matrix — only for repos that produce a binary.
Expand Down
36 changes: 28 additions & 8 deletions api/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@ components:
description: The user prompt to send to the agent
session_id:
type: string
description: Reserved for session continuation (currently ignored; every chat creates a fresh engine session)
maxLength: 128
pattern: '^[A-Za-z0-9._-]+$'
description: Durable session ID to continue. The session must already exist; successful continuation returns the same ID.
model:
type: string
description: Optional model override
Expand All @@ -55,10 +57,10 @@ components:
description: Autonomy preset controlling non-interactive permission approval
cwd:
type: string
description: Working directory for the agent session
description: Existing directory associated with session metadata. The daemon executes tools from its startup working directory; it never performs a process-wide chdir per request.
agent:
type: string
description: Named agent persona to run
description: Named Hawk agent persona to apply. Continuations inherit the persisted persona when omitted.

ChatResponse:
type: object
Expand All @@ -79,7 +81,7 @@ components:

Session:
type: object
description: Lightweight in-memory record of a daemon chat session.
description: Lightweight active record for a durably persisted daemon chat session.
properties:
id:
type: string
Expand All @@ -93,6 +95,8 @@ components:
type: integer
cwd:
type: string
agent:
type: string

SessionDetail:
type: object
Expand All @@ -110,6 +114,8 @@ components:
type: string
provider:
type: string
agent:
type: string
cwd:
type: string
name:
Expand Down Expand Up @@ -277,8 +283,9 @@ paths:
tags: [system]
summary: Readiness probe
description: |
Returns 200 when the daemon can serve chat (engine configured),
503 with a reason otherwise.
Returns 200 only when a session factory is configured and Eyrie's local
preflight confirms provider state, catalog, credentials, and model
selection are ready. Returns 503 with the failed dependency otherwise.
security: []
responses:
"200":
Expand All @@ -301,8 +308,10 @@ paths:
description: |
Non-streaming: returns the full response in one JSON object.
Streaming: send `Accept: text/event-stream` to receive Server-Sent Events.
Each request creates a new agent session; there is no standalone
session-creation endpoint.
Omit `session_id` to create and durably persist a new session. Supply a
previously returned `session_id` to load its transcript, append a turn,
and update that same durable session. The returned JSON field and the
`X-Hawk-Session-ID` header identify a retrievable `/v1/sessions/{id}`.
requestBody:
required: true
content:
Expand All @@ -312,6 +321,11 @@ paths:
responses:
"200":
description: Agent response (or SSE stream)
headers:
X-Hawk-Session-ID:
description: Durable session ID created or continued by this request.
schema:
type: string
content:
application/json:
schema:
Expand All @@ -331,6 +345,12 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/Error"
"404":
description: Requested continuation session does not exist
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
"503":
description: Engine not configured
content:
Expand Down
Loading