@av-pi-studio/protocol 0.0.115 → 0.0.117
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/client-capabilities.d.ts +1 -0
- package/dist/client-capabilities.js +3 -0
- package/dist/messages.d.ts +13384 -0
- package/dist/messages.js +164 -1
- package/fixtures/external-clients/.signatures.json +559 -0
- package/fixtures/external-clients/CHANGELOG.md +18 -0
- package/fixtures/external-clients/README.md +94 -0
- package/fixtures/external-clients/agent_archived.json +17 -0
- package/fixtures/external-clients/agent_deleted.json +16 -0
- package/fixtures/external-clients/agent_session_stats_request.json +17 -0
- package/fixtures/external-clients/agent_session_stats_response.json +30 -0
- package/fixtures/external-clients/agent_status.json +17 -0
- package/fixtures/external-clients/agent_stream.assistant_message.json +29 -0
- package/fixtures/external-clients/agent_stream.compaction.json +29 -0
- package/fixtures/external-clients/agent_stream.error.json +22 -0
- package/fixtures/external-clients/agent_stream.reasoning.json +22 -0
- package/fixtures/external-clients/agent_stream.tool_call.json +27 -0
- package/fixtures/external-clients/agent_stream.tool_call.partial.json +28 -0
- package/fixtures/external-clients/agent_stream.turn_canceled.json +22 -0
- package/fixtures/external-clients/agent_stream.turn_completed.json +22 -0
- package/fixtures/external-clients/agent_stream.turn_failed.json +23 -0
- package/fixtures/external-clients/agent_stream.turn_started.json +22 -0
- package/fixtures/external-clients/agent_stream.user_message.json +28 -0
- package/fixtures/external-clients/agent_timeline_reset.json +17 -0
- package/fixtures/external-clients/agent_ui_list_request.json +17 -0
- package/fixtures/external-clients/agent_ui_list_response.json +50 -0
- package/fixtures/external-clients/agent_ui_request.confirm.json +24 -0
- package/fixtures/external-clients/agent_ui_request.editor.json +24 -0
- package/fixtures/external-clients/agent_ui_request.input.json +24 -0
- package/fixtures/external-clients/agent_ui_request.notify.json +23 -0
- package/fixtures/external-clients/agent_ui_request.select.json +24 -0
- package/fixtures/external-clients/agent_ui_request.setStatus.json +24 -0
- package/fixtures/external-clients/agent_ui_request.setStatus.removed.json +23 -0
- package/fixtures/external-clients/agent_ui_resolved.aborted.json +18 -0
- package/fixtures/external-clients/agent_ui_resolved.answered.json +18 -0
- package/fixtures/external-clients/agent_ui_resolved.cancelled.json +18 -0
- package/fixtures/external-clients/agent_ui_resolved.timeout.json +18 -0
- package/fixtures/external-clients/agent_ui_respond_request.confirm.json +20 -0
- package/fixtures/external-clients/agent_ui_respond_request.select.json +20 -0
- package/fixtures/external-clients/agent_ui_respond_response.not_found.json +20 -0
- package/fixtures/external-clients/agent_ui_respond_response.ok.json +19 -0
- package/fixtures/external-clients/agent_update.json +18 -0
- package/fixtures/external-clients/agent_update.model.json +18 -0
- package/fixtures/external-clients/daemon_log_lines.json +23 -0
- package/fixtures/external-clients/daemon_logs_subscribe_request.json +18 -0
- package/fixtures/external-clients/daemon_logs_subscribe_response.json +34 -0
- package/fixtures/external-clients/daemon_logs_unsubscribe_request.json +16 -0
- package/fixtures/external-clients/daemon_logs_unsubscribe_response.json +19 -0
- package/fixtures/external-clients/daemon_status_request.json +16 -0
- package/fixtures/external-clients/daemon_status_response.json +60 -0
- package/fixtures/external-clients/daemon_status_subscribe_request.json +16 -0
- package/fixtures/external-clients/daemon_status_subscribe_response.json +64 -0
- package/fixtures/external-clients/daemon_status_unsubscribe_request.json +16 -0
- package/fixtures/external-clients/daemon_status_unsubscribe_response.json +19 -0
- package/fixtures/external-clients/daemon_status_update.json +58 -0
- package/fixtures/external-clients/fetch_agent_timeline_request.json +19 -0
- package/fixtures/external-clients/fetch_agent_timeline_response.json +55 -0
- package/fixtures/external-clients/health.json +16 -0
- package/fixtures/external-clients/hello.json +19 -0
- package/fixtures/external-clients/interrupt_agent.json +17 -0
- package/fixtures/external-clients/interrupt_response.json +18 -0
- package/fixtures/external-clients/list_agents_request.json +16 -0
- package/fixtures/external-clients/list_agents_response.json +39 -0
- package/fixtures/external-clients/manifest.json +321 -0
- package/fixtures/external-clients/ping.json +14 -0
- package/fixtures/external-clients/pong.json +16 -0
- package/fixtures/external-clients/rpc_error.json +18 -0
- package/fixtures/external-clients/status.server_info.json +27 -0
- package/package.json +5 -3
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "agent_ui_request",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "Non-dialog notification (expectsResponse false); never answerable.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 1,
|
|
7
|
+
"requiresFeature": "extensionUi",
|
|
8
|
+
"volatile": ["/message/requestId", "/message/agentId", "/message/createdAt"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "agent_ui_request",
|
|
13
|
+
"requestId": "00000000-0000-4000-8000-000000000001",
|
|
14
|
+
"agentId": "00000000-0000-4000-8000-000000000002",
|
|
15
|
+
"method": "notify",
|
|
16
|
+
"expectsResponse": false,
|
|
17
|
+
"payload": {
|
|
18
|
+
"message": "Done"
|
|
19
|
+
},
|
|
20
|
+
"createdAt": 1767225600000
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "agent_ui_request",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "Answerable dialog: pick one option (expectsResponse true).",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 1,
|
|
7
|
+
"requiresFeature": "extensionUi",
|
|
8
|
+
"volatile": ["/message/requestId", "/message/agentId", "/message/createdAt"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "agent_ui_request",
|
|
13
|
+
"requestId": "00000000-0000-4000-8000-000000000001",
|
|
14
|
+
"agentId": "00000000-0000-4000-8000-000000000002",
|
|
15
|
+
"method": "select",
|
|
16
|
+
"expectsResponse": true,
|
|
17
|
+
"payload": {
|
|
18
|
+
"title": "Pick one",
|
|
19
|
+
"options": ["a", "b"]
|
|
20
|
+
},
|
|
21
|
+
"createdAt": 1767225600000
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "agent_ui_request",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "Retained surface update keyed by surfaceKey (expectsResponse false); last value wins.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 1,
|
|
7
|
+
"requiresFeature": "extensionUi",
|
|
8
|
+
"volatile": ["/message/requestId", "/message/agentId", "/message/createdAt"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "agent_ui_request",
|
|
13
|
+
"requestId": "00000000-0000-4000-8000-000000000001",
|
|
14
|
+
"agentId": "00000000-0000-4000-8000-000000000002",
|
|
15
|
+
"method": "setStatus",
|
|
16
|
+
"expectsResponse": false,
|
|
17
|
+
"payload": {
|
|
18
|
+
"statusText": "building"
|
|
19
|
+
},
|
|
20
|
+
"surfaceKey": "status:build",
|
|
21
|
+
"createdAt": 1767225600000
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "agent_ui_request",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "Clears a retained surface (removed: true, empty payload).",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 1,
|
|
7
|
+
"requiresFeature": "extensionUi",
|
|
8
|
+
"volatile": ["/message/requestId", "/message/agentId", "/message/createdAt"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "agent_ui_request",
|
|
13
|
+
"requestId": "00000000-0000-4000-8000-000000000001",
|
|
14
|
+
"agentId": "00000000-0000-4000-8000-000000000002",
|
|
15
|
+
"method": "setStatus",
|
|
16
|
+
"expectsResponse": false,
|
|
17
|
+
"payload": {},
|
|
18
|
+
"surfaceKey": "status:build",
|
|
19
|
+
"removed": true,
|
|
20
|
+
"createdAt": 1767225600000
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "agent_ui_resolved",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "A dialog is no longer answerable (reason aborted).",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 1,
|
|
7
|
+
"requiresFeature": "extensionUi",
|
|
8
|
+
"volatile": ["/message/requestId", "/message/agentId"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "agent_ui_resolved",
|
|
13
|
+
"requestId": "00000000-0000-4000-8000-000000000001",
|
|
14
|
+
"agentId": "00000000-0000-4000-8000-000000000002",
|
|
15
|
+
"reason": "aborted"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "agent_ui_resolved",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "A dialog is no longer answerable (reason answered).",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 1,
|
|
7
|
+
"requiresFeature": "extensionUi",
|
|
8
|
+
"volatile": ["/message/requestId", "/message/agentId"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "agent_ui_resolved",
|
|
13
|
+
"requestId": "00000000-0000-4000-8000-000000000001",
|
|
14
|
+
"agentId": "00000000-0000-4000-8000-000000000002",
|
|
15
|
+
"reason": "answered"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "agent_ui_resolved",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "A dialog was cancelled (reason cancelled). Documented reason; no daemon code path emits it today.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 1,
|
|
7
|
+
"requiresFeature": "extensionUi",
|
|
8
|
+
"volatile": ["/message/requestId", "/message/agentId"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "agent_ui_resolved",
|
|
13
|
+
"requestId": "req-1",
|
|
14
|
+
"agentId": "agent-1",
|
|
15
|
+
"reason": "cancelled"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "agent_ui_resolved",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "A dialog is no longer answerable (reason timeout).",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 1,
|
|
7
|
+
"requiresFeature": "extensionUi",
|
|
8
|
+
"volatile": ["/message/requestId", "/message/agentId"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "agent_ui_resolved",
|
|
13
|
+
"requestId": "00000000-0000-4000-8000-000000000001",
|
|
14
|
+
"agentId": "00000000-0000-4000-8000-000000000002",
|
|
15
|
+
"reason": "timeout"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "agent_ui_respond_request",
|
|
3
|
+
"direction": "client_to_server",
|
|
4
|
+
"description": "Answer a pending confirm dialog.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 1,
|
|
7
|
+
"requiresFeature": "extensionUi",
|
|
8
|
+
"volatile": ["/message/requestId", "/message/uiRequestId"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "agent_ui_respond_request",
|
|
13
|
+
"requestId": "req-1",
|
|
14
|
+
"uiRequestId": "ui-req-1",
|
|
15
|
+
"response": {
|
|
16
|
+
"confirmed": true
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "agent_ui_respond_request",
|
|
3
|
+
"direction": "client_to_server",
|
|
4
|
+
"description": "Answer a pending select dialog with the chosen option.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 1,
|
|
7
|
+
"requiresFeature": "extensionUi",
|
|
8
|
+
"volatile": ["/message/requestId", "/message/uiRequestId"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "agent_ui_respond_request",
|
|
13
|
+
"requestId": "req-1",
|
|
14
|
+
"uiRequestId": "ui-req-1",
|
|
15
|
+
"response": {
|
|
16
|
+
"value": "a"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "agent_ui_respond_response",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "The dialog id is unknown or already resolved.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 1,
|
|
7
|
+
"requiresFeature": "extensionUi",
|
|
8
|
+
"volatile": ["/message/requestId"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "agent_ui_respond_response",
|
|
13
|
+
"payload": {
|
|
14
|
+
"ok": false,
|
|
15
|
+
"error": "not_found"
|
|
16
|
+
},
|
|
17
|
+
"requestId": "req-1"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "agent_ui_respond_response",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "The answer was accepted.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 1,
|
|
7
|
+
"requiresFeature": "extensionUi",
|
|
8
|
+
"volatile": ["/message/requestId"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "agent_ui_respond_response",
|
|
13
|
+
"payload": {
|
|
14
|
+
"ok": true
|
|
15
|
+
},
|
|
16
|
+
"requestId": "req-1"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "agent_update",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "Agent status/label/title change broadcast. A family of partial updates: only changed fields are present.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 1,
|
|
7
|
+
"requiresFeature": null,
|
|
8
|
+
"volatile": ["/message/agentId", "/message/status"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "agent_update",
|
|
13
|
+
"agentId": "00000000-0000-4000-8000-000000000001",
|
|
14
|
+
"status": "initializing",
|
|
15
|
+
"labels": {}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "agent_update",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "Model change broadcast (emitted beyond the Zod schema: model, modelProvider, optional thinkingLevel).",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 1,
|
|
7
|
+
"requiresFeature": null,
|
|
8
|
+
"volatile": ["/message/agentId", "/message/model", "/message/modelProvider"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "agent_update",
|
|
13
|
+
"agentId": "00000000-0000-4000-8000-000000000001",
|
|
14
|
+
"model": "mock-2",
|
|
15
|
+
"modelProvider": "mock"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "daemon_log_lines",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "Flat log push to subscribed sessions only, flushed within ~100 ms; dropped is incremental; carries no requestId.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 2,
|
|
7
|
+
"requiresFeature": "daemonObservability",
|
|
8
|
+
"volatile": ["/message/lines/0/time", "/message/lines/0/level", "/message/lines/0/msg"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "daemon_log_lines",
|
|
13
|
+
"lines": [
|
|
14
|
+
{
|
|
15
|
+
"time": 1767225600000,
|
|
16
|
+
"level": "info",
|
|
17
|
+
"msg": "external fixture log line"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"dropped": 0
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "daemon_logs_subscribe_request",
|
|
3
|
+
"direction": "client_to_server",
|
|
4
|
+
"description": "Subscribe this session to the daemon log tail at minLevel or above; tail asks for a backlog of up to that many newest lines.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 2,
|
|
7
|
+
"requiresFeature": "daemonObservability",
|
|
8
|
+
"volatile": ["/message/requestId"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "daemon_logs_subscribe_request",
|
|
13
|
+
"requestId": "req-1",
|
|
14
|
+
"minLevel": "info",
|
|
15
|
+
"tail": 1
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "daemon_logs_subscribe_response",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "Subscription accepted: the level in force and the requested backlog (one representative line); dropped counts lines the rate cap discarded.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 2,
|
|
7
|
+
"requiresFeature": "daemonObservability",
|
|
8
|
+
"volatile": [
|
|
9
|
+
"/message/requestId",
|
|
10
|
+
"/message/payload/lines/0/time",
|
|
11
|
+
"/message/payload/lines/0/level",
|
|
12
|
+
"/message/payload/lines/0/msg"
|
|
13
|
+
],
|
|
14
|
+
"frame": {
|
|
15
|
+
"type": "session",
|
|
16
|
+
"message": {
|
|
17
|
+
"type": "daemon_logs_subscribe_response",
|
|
18
|
+
"payload": {
|
|
19
|
+
"ok": true,
|
|
20
|
+
"minLevel": "info",
|
|
21
|
+
"effectiveLevel": "info",
|
|
22
|
+
"lines": [
|
|
23
|
+
{
|
|
24
|
+
"time": 1767225600000,
|
|
25
|
+
"level": "info",
|
|
26
|
+
"msg": "external fixture log line"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"dropped": 0
|
|
30
|
+
},
|
|
31
|
+
"requestId": "req-1"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "daemon_logs_unsubscribe_request",
|
|
3
|
+
"direction": "client_to_server",
|
|
4
|
+
"description": "Stop the log push for this session.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 2,
|
|
7
|
+
"requiresFeature": "daemonObservability",
|
|
8
|
+
"volatile": ["/message/requestId"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "daemon_logs_unsubscribe_request",
|
|
13
|
+
"requestId": "req-1"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "daemon_logs_unsubscribe_response",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "Log subscription removed.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 2,
|
|
7
|
+
"requiresFeature": "daemonObservability",
|
|
8
|
+
"volatile": ["/message/requestId"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "daemon_logs_unsubscribe_response",
|
|
13
|
+
"payload": {
|
|
14
|
+
"ok": true
|
|
15
|
+
},
|
|
16
|
+
"requestId": "req-1"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "daemon_status_request",
|
|
3
|
+
"direction": "client_to_server",
|
|
4
|
+
"description": "One-shot daemon status snapshot request (read-only, authenticated sessions only).",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 2,
|
|
7
|
+
"requiresFeature": "daemonObservability",
|
|
8
|
+
"volatile": ["/message/requestId"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "daemon_status_request",
|
|
13
|
+
"requestId": "req-1"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "daemon_status_response",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "Process/version/memory/CPU/agent-count/connected-client snapshot (the clients array holds one representative element).",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 2,
|
|
7
|
+
"requiresFeature": "daemonObservability",
|
|
8
|
+
"volatile": [
|
|
9
|
+
"/message/requestId",
|
|
10
|
+
"/message/payload/version",
|
|
11
|
+
"/message/payload/startedAt",
|
|
12
|
+
"/message/payload/uptimeMs",
|
|
13
|
+
"/message/payload/pid",
|
|
14
|
+
"/message/payload/nodeVersion",
|
|
15
|
+
"/message/payload/memory/rss",
|
|
16
|
+
"/message/payload/memory/heapUsed",
|
|
17
|
+
"/message/payload/memory/heapTotal",
|
|
18
|
+
"/message/payload/cpuPercent",
|
|
19
|
+
"/message/payload/eventLoopLagMs",
|
|
20
|
+
"/message/payload/agentsByStatus/idle",
|
|
21
|
+
"/message/payload/clients/0/clientId",
|
|
22
|
+
"/message/payload/clients/0/appVersion",
|
|
23
|
+
"/message/payload/clients/0/connectedAt",
|
|
24
|
+
"/message/payload/clients/0/remoteAddress"
|
|
25
|
+
],
|
|
26
|
+
"frame": {
|
|
27
|
+
"type": "session",
|
|
28
|
+
"message": {
|
|
29
|
+
"type": "daemon_status_response",
|
|
30
|
+
"payload": {
|
|
31
|
+
"version": "0.0.115",
|
|
32
|
+
"startedAt": 1767225600000,
|
|
33
|
+
"uptimeMs": 7520.5,
|
|
34
|
+
"pid": 4242,
|
|
35
|
+
"nodeVersion": "v24.0.0",
|
|
36
|
+
"memory": {
|
|
37
|
+
"rss": 172122112,
|
|
38
|
+
"heapUsed": 65642672,
|
|
39
|
+
"heapTotal": 115298304
|
|
40
|
+
},
|
|
41
|
+
"cpuPercent": 1.5,
|
|
42
|
+
"eventLoopLagMs": 0.5,
|
|
43
|
+
"agentsByStatus": {
|
|
44
|
+
"idle": 2
|
|
45
|
+
},
|
|
46
|
+
"clients": [
|
|
47
|
+
{
|
|
48
|
+
"clientId": "client-1",
|
|
49
|
+
"clientType": "cli",
|
|
50
|
+
"appVersion": "pistudiodashboard/0.1.0",
|
|
51
|
+
"connectedAt": 1767225600000,
|
|
52
|
+
"remoteAddress": "127.0.0.1",
|
|
53
|
+
"transport": "direct"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"requestId": "req-1"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "daemon_status_subscribe_request",
|
|
3
|
+
"direction": "client_to_server",
|
|
4
|
+
"description": "Subscribe this session to a status push every intervalMs.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 2,
|
|
7
|
+
"requiresFeature": "daemonObservability",
|
|
8
|
+
"volatile": ["/message/requestId"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "daemon_status_subscribe_request",
|
|
13
|
+
"requestId": "req-1"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "daemon_status_subscribe_response",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "Subscription accepted; carries the push interval and an immediate snapshot.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 2,
|
|
7
|
+
"requiresFeature": "daemonObservability",
|
|
8
|
+
"volatile": [
|
|
9
|
+
"/message/requestId",
|
|
10
|
+
"/message/payload/status/version",
|
|
11
|
+
"/message/payload/status/startedAt",
|
|
12
|
+
"/message/payload/status/uptimeMs",
|
|
13
|
+
"/message/payload/status/pid",
|
|
14
|
+
"/message/payload/status/nodeVersion",
|
|
15
|
+
"/message/payload/status/memory/rss",
|
|
16
|
+
"/message/payload/status/memory/heapUsed",
|
|
17
|
+
"/message/payload/status/memory/heapTotal",
|
|
18
|
+
"/message/payload/status/cpuPercent",
|
|
19
|
+
"/message/payload/status/eventLoopLagMs",
|
|
20
|
+
"/message/payload/status/agentsByStatus/idle",
|
|
21
|
+
"/message/payload/status/clients/0/clientId",
|
|
22
|
+
"/message/payload/status/clients/0/appVersion",
|
|
23
|
+
"/message/payload/status/clients/0/connectedAt",
|
|
24
|
+
"/message/payload/status/clients/0/remoteAddress"
|
|
25
|
+
],
|
|
26
|
+
"frame": {
|
|
27
|
+
"type": "session",
|
|
28
|
+
"message": {
|
|
29
|
+
"type": "daemon_status_subscribe_response",
|
|
30
|
+
"payload": {
|
|
31
|
+
"ok": true,
|
|
32
|
+
"intervalMs": 5000,
|
|
33
|
+
"status": {
|
|
34
|
+
"version": "0.0.115",
|
|
35
|
+
"startedAt": 1767225600000,
|
|
36
|
+
"uptimeMs": 7520.5,
|
|
37
|
+
"pid": 4242,
|
|
38
|
+
"nodeVersion": "v24.0.0",
|
|
39
|
+
"memory": {
|
|
40
|
+
"rss": 172122112,
|
|
41
|
+
"heapUsed": 65642672,
|
|
42
|
+
"heapTotal": 115298304
|
|
43
|
+
},
|
|
44
|
+
"cpuPercent": 1.5,
|
|
45
|
+
"eventLoopLagMs": 0.5,
|
|
46
|
+
"agentsByStatus": {
|
|
47
|
+
"idle": 2
|
|
48
|
+
},
|
|
49
|
+
"clients": [
|
|
50
|
+
{
|
|
51
|
+
"clientId": "client-1",
|
|
52
|
+
"clientType": "cli",
|
|
53
|
+
"appVersion": "pistudiodashboard/0.1.0",
|
|
54
|
+
"connectedAt": 1767225600000,
|
|
55
|
+
"remoteAddress": "127.0.0.1",
|
|
56
|
+
"transport": "direct"
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"requestId": "req-1"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "daemon_status_unsubscribe_request",
|
|
3
|
+
"direction": "client_to_server",
|
|
4
|
+
"description": "Stop the status push for this session.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 2,
|
|
7
|
+
"requiresFeature": "daemonObservability",
|
|
8
|
+
"volatile": ["/message/requestId"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "daemon_status_unsubscribe_request",
|
|
13
|
+
"requestId": "req-1"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "daemon_status_unsubscribe_response",
|
|
3
|
+
"direction": "server_to_client",
|
|
4
|
+
"description": "Status subscription removed.",
|
|
5
|
+
"since": "0.0.115",
|
|
6
|
+
"stage": 2,
|
|
7
|
+
"requiresFeature": "daemonObservability",
|
|
8
|
+
"volatile": ["/message/requestId"],
|
|
9
|
+
"frame": {
|
|
10
|
+
"type": "session",
|
|
11
|
+
"message": {
|
|
12
|
+
"type": "daemon_status_unsubscribe_response",
|
|
13
|
+
"payload": {
|
|
14
|
+
"ok": true
|
|
15
|
+
},
|
|
16
|
+
"requestId": "req-1"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|