manifest: {
id: "chat";
panel: {
entry: "@mlx-bun/module-chat/panel";
path: "/chat";
tag: "mlx-chat-panel";
title: "Chat";
workspace: true;
};
requires: readonly ["modelHost", "storage", "registry"];
routes: readonly [
{
id: "sessions-search";
method: "GET";
mount: "root";
path: "/api/sessions/search";
response: "json";
summary: "Search saved chats by title and content (`q`); read-only";
},
{
id: "sessions-export";
method: "GET";
mount: "root";
path: "/api/sessions/export";
response: "json";
summary: "One saved chat's raw entries (`path`, under the session directory); read-only";
},
{
id: "approvals";
method: "GET";
mount: "root";
path: "/api/settings/tool-approvals";
response: "json";
summary: "The tools the user chose to always allow";
},
{
id: "approvals-revoke";
method: "DELETE";
mount: "root";
path: "/api/settings/tool-approvals";
response: "json";
summary: "Forget one always-allow choice (`tool` in the JSON body)";
},
];
sockets: readonly [
{
id: "chat";
mount: "root";
path: "/ws/chat";
summary: "One chat session per connection: prompts, streamed tokens, tool cards and approvals, saved-chat management";
},
];
storage: readonly [
{
key: "sessions";
kind: "directory";
path: "sessions";
purpose: "Saved chats, one Pi JSONL file each (also read by the memory pipeline)";
},
{
key: "agent";
kind: "directory";
path: "pi-sessions";
purpose: "The Pi agent's own directory";
},
{
key: "approvals";
kind: "file";
path: "tool-approvals.json";
purpose: "Tools the user chose to always allow, mode 0600";
},
];
summary: "The default assistant: a Pi agent over the served model, on a WebSocket per browser tab, with recent chats, tool approvals, and the tools other modules contribute.";
title: "Chat";
} = ...
Type Declaration
-
Readonlyid: "chat"
-
Readonlypanel: {
entry: "@mlx-bun/module-chat/panel";
path: "/chat";
tag: "mlx-chat-panel";
title: "Chat";
workspace: true;
}
-
Readonlyrequires: readonly ["modelHost", "storage", "registry"]
-
Readonlyroutes: readonly [
{
id: "sessions-search";
method: "GET";
mount: "root";
path: "/api/sessions/search";
response: "json";
summary: "Search saved chats by title and content (`q`); read-only";
},
{
id: "sessions-export";
method: "GET";
mount: "root";
path: "/api/sessions/export";
response: "json";
summary: "One saved chat's raw entries (`path`, under the session directory); read-only";
},
{
id: "approvals";
method: "GET";
mount: "root";
path: "/api/settings/tool-approvals";
response: "json";
summary: "The tools the user chose to always allow";
},
{
id: "approvals-revoke";
method: "DELETE";
mount: "root";
path: "/api/settings/tool-approvals";
response: "json";
summary: "Forget one always-allow choice (`tool` in the JSON body)";
},
]
-
Readonlysockets: readonly [
{
id: "chat";
mount: "root";
path: "/ws/chat";
summary: "One chat session per connection: prompts, streamed tokens, tool cards and approvals, saved-chat management";
},
]
-
Readonlystorage: readonly [
{
key: "sessions";
kind: "directory";
path: "sessions";
purpose: "Saved chats, one Pi JSONL file each (also read by the memory pipeline)";
},
{
key: "agent";
kind: "directory";
path: "pi-sessions";
purpose: "The Pi agent's own directory";
},
{
key: "approvals";
kind: "file";
path: "tool-approvals.json";
purpose: "Tools the user chose to always allow, mode 0600";
},
]
-
Readonlysummary: "The default assistant: a Pi agent over the served model, on a WebSocket per browser tab, with recent chats, tool approvals, and the tools other modules contribute."
-
Readonlytitle: "Chat"