pilotswarm-sdk 0.5.12 → 0.5.14
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/api/src/api-client.js +11 -7
- package/api/src/http-api-transport.js +29 -0
- package/api/src/protocol.js +121 -94
- package/dist/agent-loader.d.ts +2 -0
- package/dist/agent-loader.d.ts.map +1 -1
- package/dist/agent-loader.js +20 -5
- package/dist/agent-loader.js.map +1 -1
- package/dist/client.d.ts +8 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +31 -0
- package/dist/client.js.map +1 -1
- package/dist/cms-migrations.d.ts.map +1 -1
- package/dist/cms-migrations.js +1129 -0
- package/dist/cms-migrations.js.map +1 -1
- package/dist/cms.d.ts +151 -0
- package/dist/cms.d.ts.map +1 -1
- package/dist/cms.js +125 -4
- package/dist/cms.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/managed-session.d.ts +2 -0
- package/dist/managed-session.d.ts.map +1 -1
- package/dist/managed-session.js +61 -10
- package/dist/managed-session.js.map +1 -1
- package/dist/management-client.d.ts +74 -2
- package/dist/management-client.d.ts.map +1 -1
- package/dist/management-client.js +70 -2
- package/dist/management-client.js.map +1 -1
- package/dist/message-sender.d.ts +38 -0
- package/dist/message-sender.d.ts.map +1 -0
- package/dist/message-sender.js +63 -0
- package/dist/message-sender.js.map +1 -0
- package/dist/orchestration/index.d.ts +2 -2
- package/dist/orchestration/index.js +1 -1
- package/dist/orchestration/lifecycle.d.ts.map +1 -1
- package/dist/orchestration/lifecycle.js +9 -0
- package/dist/orchestration/lifecycle.js.map +1 -1
- package/dist/orchestration/queue.d.ts.map +1 -1
- package/dist/orchestration/queue.js +49 -9
- package/dist/orchestration/queue.js.map +1 -1
- package/dist/orchestration/runtime.d.ts +1 -1
- package/dist/orchestration/state.d.ts +11 -0
- package/dist/orchestration/state.d.ts.map +1 -1
- package/dist/orchestration/state.js +8 -0
- package/dist/orchestration/state.js.map +1 -1
- package/dist/orchestration/turn.d.ts +4 -1
- package/dist/orchestration/turn.d.ts.map +1 -1
- package/dist/orchestration/turn.js +20 -8
- package/dist/orchestration/turn.js.map +1 -1
- package/dist/orchestration/utils.d.ts +17 -0
- package/dist/orchestration/utils.d.ts.map +1 -1
- package/dist/orchestration/utils.js +90 -0
- package/dist/orchestration/utils.js.map +1 -1
- package/dist/orchestration-registry.d.ts.map +1 -1
- package/dist/orchestration-registry.js +6 -2
- package/dist/orchestration-registry.js.map +1 -1
- package/dist/orchestration-version.d.ts +1 -1
- package/dist/orchestration-version.js +1 -1
- package/dist/orchestration.d.ts +2 -2
- package/dist/orchestration.js +1 -1
- package/dist/orchestration_1_0_46.d.ts +1 -1
- package/dist/orchestration_1_0_47.d.ts +1 -1
- package/dist/orchestration_1_0_48.d.ts +1 -1
- package/dist/orchestration_1_0_49.d.ts +1 -1
- package/dist/orchestration_1_0_50.d.ts +1 -1
- package/dist/orchestration_1_0_59/agents.d.ts +41 -0
- package/dist/orchestration_1_0_59/agents.d.ts.map +1 -0
- package/dist/orchestration_1_0_59/agents.js +773 -0
- package/dist/orchestration_1_0_59/agents.js.map +1 -0
- package/dist/orchestration_1_0_59/index.d.ts +24 -0
- package/dist/orchestration_1_0_59/index.d.ts.map +1 -0
- package/dist/orchestration_1_0_59/index.js +13 -0
- package/dist/orchestration_1_0_59/index.js.map +1 -0
- package/dist/orchestration_1_0_59/lifecycle.d.ts +48 -0
- package/dist/orchestration_1_0_59/lifecycle.d.ts.map +1 -0
- package/dist/orchestration_1_0_59/lifecycle.js +556 -0
- package/dist/orchestration_1_0_59/lifecycle.js.map +1 -0
- package/dist/orchestration_1_0_59/queue.d.ts +7 -0
- package/dist/orchestration_1_0_59/queue.d.ts.map +1 -0
- package/dist/orchestration_1_0_59/queue.js +644 -0
- package/dist/orchestration_1_0_59/queue.js.map +1 -0
- package/dist/orchestration_1_0_59/runtime.d.ts +29 -0
- package/dist/orchestration_1_0_59/runtime.d.ts.map +1 -0
- package/dist/orchestration_1_0_59/runtime.js +197 -0
- package/dist/orchestration_1_0_59/runtime.js.map +1 -0
- package/dist/orchestration_1_0_59/state.d.ts +130 -0
- package/dist/orchestration_1_0_59/state.d.ts.map +1 -0
- package/dist/orchestration_1_0_59/state.js +115 -0
- package/dist/orchestration_1_0_59/state.js.map +1 -0
- package/dist/orchestration_1_0_59/turn.d.ts +30 -0
- package/dist/orchestration_1_0_59/turn.d.ts.map +1 -0
- package/dist/orchestration_1_0_59/turn.js +1143 -0
- package/dist/orchestration_1_0_59/turn.js.map +1 -0
- package/dist/orchestration_1_0_59/utils.d.ts +22 -0
- package/dist/orchestration_1_0_59/utils.d.ts.map +1 -0
- package/dist/orchestration_1_0_59/utils.js +226 -0
- package/dist/orchestration_1_0_59/utils.js.map +1 -0
- package/dist/orchestration_1_0_60/agents.d.ts +41 -0
- package/dist/orchestration_1_0_60/agents.d.ts.map +1 -0
- package/dist/orchestration_1_0_60/agents.js +773 -0
- package/dist/orchestration_1_0_60/agents.js.map +1 -0
- package/dist/orchestration_1_0_60/index.d.ts +24 -0
- package/dist/orchestration_1_0_60/index.d.ts.map +1 -0
- package/dist/orchestration_1_0_60/index.js +13 -0
- package/dist/orchestration_1_0_60/index.js.map +1 -0
- package/dist/orchestration_1_0_60/lifecycle.d.ts +48 -0
- package/dist/orchestration_1_0_60/lifecycle.d.ts.map +1 -0
- package/dist/orchestration_1_0_60/lifecycle.js +557 -0
- package/dist/orchestration_1_0_60/lifecycle.js.map +1 -0
- package/dist/orchestration_1_0_60/queue.d.ts +7 -0
- package/dist/orchestration_1_0_60/queue.d.ts.map +1 -0
- package/dist/orchestration_1_0_60/queue.js +665 -0
- package/dist/orchestration_1_0_60/queue.js.map +1 -0
- package/dist/orchestration_1_0_60/runtime.d.ts +29 -0
- package/dist/orchestration_1_0_60/runtime.d.ts.map +1 -0
- package/dist/orchestration_1_0_60/runtime.js +196 -0
- package/dist/orchestration_1_0_60/runtime.js.map +1 -0
- package/dist/orchestration_1_0_60/state.d.ts +134 -0
- package/dist/orchestration_1_0_60/state.d.ts.map +1 -0
- package/dist/orchestration_1_0_60/state.js +116 -0
- package/dist/orchestration_1_0_60/state.js.map +1 -0
- package/dist/orchestration_1_0_60/turn.d.ts +32 -0
- package/dist/orchestration_1_0_60/turn.d.ts.map +1 -0
- package/dist/orchestration_1_0_60/turn.js +1154 -0
- package/dist/orchestration_1_0_60/turn.js.map +1 -0
- package/dist/orchestration_1_0_60/utils.d.ts +22 -0
- package/dist/orchestration_1_0_60/utils.d.ts.map +1 -0
- package/dist/orchestration_1_0_60/utils.js +226 -0
- package/dist/orchestration_1_0_60/utils.js.map +1 -0
- package/dist/pg-migrator.d.ts +19 -3
- package/dist/pg-migrator.d.ts.map +1 -1
- package/dist/pg-migrator.js +71 -2
- package/dist/pg-migrator.js.map +1 -1
- package/dist/session-manager.d.ts +1 -0
- package/dist/session-manager.d.ts.map +1 -1
- package/dist/session-messages.d.ts.map +1 -1
- package/dist/session-messages.js +49 -5
- package/dist/session-messages.js.map +1 -1
- package/dist/session-proxy.d.ts +9 -0
- package/dist/session-proxy.d.ts.map +1 -1
- package/dist/session-proxy.js +54 -19
- package/dist/session-proxy.js.map +1 -1
- package/dist/skills.d.ts +5 -0
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +18 -1
- package/dist/skills.js.map +1 -1
- package/dist/types.d.ts +15 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/web/web-client.d.ts.map +1 -1
- package/dist/web/web-client.js +21 -4
- package/dist/web/web-client.js.map +1 -1
- package/dist/worker.d.ts +4 -0
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +27 -2
- package/dist/worker.js.map +1 -1
- package/package.json +4 -3
- package/plugins/system/agents/default.agent.md +2 -2
package/api/src/api-client.js
CHANGED
|
@@ -74,7 +74,7 @@ export class ApiClient {
|
|
|
74
74
|
return headers;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
async request(method, pathWithQuery, { body, headers } = {}) {
|
|
77
|
+
async request(method, pathWithQuery, { body, headers, authProbe = false } = {}) {
|
|
78
78
|
const requestHeaders = await this.authHeaders(headers || {});
|
|
79
79
|
if (body !== undefined && !requestHeaders["content-type"]) {
|
|
80
80
|
requestHeaders["content-type"] = "application/json";
|
|
@@ -90,7 +90,11 @@ export class ApiClient {
|
|
|
90
90
|
}
|
|
91
91
|
if (response.status === 403) {
|
|
92
92
|
const error = await readErrorEnvelope(response);
|
|
93
|
-
|
|
93
|
+
// Only an ADMISSION probe (/auth/me, /bootstrap) flips the whole
|
|
94
|
+
// app to the "access denied" gate. A per-operation 403 (e.g. a
|
|
95
|
+
// non-owner tries to rename) is a normal authz denial — throw it so
|
|
96
|
+
// the caller surfaces it inline, don't sign the user out of the app.
|
|
97
|
+
if (authProbe) this.onForbidden(error.message || "Forbidden");
|
|
94
98
|
throw error;
|
|
95
99
|
}
|
|
96
100
|
if (!response.ok) {
|
|
@@ -131,11 +135,11 @@ export class ApiClient {
|
|
|
131
135
|
}
|
|
132
136
|
|
|
133
137
|
async getAuthContext() {
|
|
134
|
-
return this.request("GET", `${API_PREFIX}/auth/me
|
|
138
|
+
return this.request("GET", `${API_PREFIX}/auth/me`, { authProbe: true });
|
|
135
139
|
}
|
|
136
140
|
|
|
137
141
|
async getBootstrap() {
|
|
138
|
-
return this.request("GET", `${API_PREFIX}/bootstrap
|
|
142
|
+
return this.request("GET", `${API_PREFIX}/bootstrap`, { authProbe: true });
|
|
139
143
|
}
|
|
140
144
|
|
|
141
145
|
/** Raw artifact download; returns the Response for streaming/blob use. */
|
|
@@ -150,9 +154,9 @@ export class ApiClient {
|
|
|
150
154
|
throw await readErrorEnvelope(response);
|
|
151
155
|
}
|
|
152
156
|
if (response.status === 403) {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
throw
|
|
157
|
+
// Per-artifact denial (no access to this session) — surface inline,
|
|
158
|
+
// don't flip the whole app to the admission gate.
|
|
159
|
+
throw await readErrorEnvelope(response);
|
|
156
160
|
}
|
|
157
161
|
if (!response.ok) throw await readErrorEnvelope(response);
|
|
158
162
|
return response;
|
|
@@ -89,6 +89,35 @@ export class HttpApiTransport {
|
|
|
89
89
|
return this.api.call("getSession", { sessionId });
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
+
// ── Session sharing / access (security model) ────────────────────────
|
|
93
|
+
async getSessionAccess(sessionId) {
|
|
94
|
+
return this.api.call("getSessionAccess", { sessionId });
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
async setSessionVisibility(sessionId, visibility) {
|
|
98
|
+
return this.api.call("setSessionVisibility", { sessionId, visibility });
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
async grantSessionShare(sessionId, user, access) {
|
|
102
|
+
return this.api.call("grantSessionShare", { sessionId, user, access });
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
async revokeSessionShare(sessionId, user) {
|
|
106
|
+
return this.api.call("revokeSessionShare", { sessionId, user });
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
async listSessionShares(sessionId) {
|
|
110
|
+
return this.api.call("listSessionShares", { sessionId });
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
async listKnownUsers(opts = {}) {
|
|
114
|
+
return this.api.call("listKnownUsers", { limit: opts?.limit });
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
async listAuthzAudit(opts = {}) {
|
|
118
|
+
return this.api.call("listAuthzAudit", { limit: opts?.limit, sessionId: opts?.sessionId });
|
|
119
|
+
}
|
|
120
|
+
|
|
92
121
|
async createSession(options = {}) {
|
|
93
122
|
return this.api.call("createSession", options);
|
|
94
123
|
}
|
package/api/src/protocol.js
CHANGED
|
@@ -14,6 +14,24 @@
|
|
|
14
14
|
* - "body" — JSON request body field
|
|
15
15
|
* Param types: "string" (default) | "number" | "boolean" | "json".
|
|
16
16
|
* "json" query params carry JSON-encoded values (e.g. the paging cursor).
|
|
17
|
+
*
|
|
18
|
+
* Access classification (`access`) — REQUIRED on every operation; the portal
|
|
19
|
+
* runtime enforces it at dispatch (docs/proposals/user-admin-security-model.md):
|
|
20
|
+
* - "authed" admission gate only (any admitted caller)
|
|
21
|
+
* - "session:list" viewer-scoped listing (non-admins see their visible set)
|
|
22
|
+
* - "session:create" create (still subject to session-creation policy)
|
|
23
|
+
* - "session:read" requires read access to the session's tree root
|
|
24
|
+
* - "session:write" requires write access (owner, shared_write, write grant)
|
|
25
|
+
* - "session:manage" owner or admin
|
|
26
|
+
* - "session:destroy" owner or admin
|
|
27
|
+
* - "session:share" owner or admin (visibility + share grants)
|
|
28
|
+
* - "group:list" owner-scoped group listing for non-admins
|
|
29
|
+
* - "group:manage" group owner or admin
|
|
30
|
+
* - "facts:read"|"facts:write" facts data-plane (role/session-scoped)
|
|
31
|
+
* - "fleet:read" admin-only observability
|
|
32
|
+
* - "fleet:admin" Tier-2 operational surface (admin)
|
|
33
|
+
* Ops whose session resource rides a non-standard param name declare
|
|
34
|
+
* `sessionParam` (e.g. listChildOutcomes → parentSessionId).
|
|
17
35
|
*/
|
|
18
36
|
|
|
19
37
|
export const API_PREFIX = "/api/v1";
|
|
@@ -44,123 +62,132 @@ const body = () => ({ in: "body" });
|
|
|
44
62
|
*/
|
|
45
63
|
export const OPERATIONS = [
|
|
46
64
|
// ── Sessions (client surface) ───────────────────────────────────────
|
|
47
|
-
{ name: "listSessions", method: "GET", path: "/sessions", summary: "List session summaries." },
|
|
48
|
-
{ name: "createSession", method: "POST", path: "/sessions", params: { model: body(), reasoningEffort: body(), contextTier: body(), groupId: body() }, summary: "Create a session. Owner is the authenticated principal." },
|
|
49
|
-
{ name: "createSessionForAgent", method: "POST", path: "/sessions/for-agent", params: { agentName: body(), model: body(), reasoningEffort: body(), contextTier: body(), title: body(), splash: body(), splashMobile: body(), initialPrompt: body(), groupId: body() }, summary: "Create a session bound to a named agent." },
|
|
50
|
-
{ name: "getSession", method: "GET", path: "/sessions/:sessionId", params: { sessionId: path("sessionId") }, summary: "Get one session view (live orchestration status)." },
|
|
51
|
-
{ name: "deleteSession", method: "DELETE", path: "/sessions/:sessionId", params: { sessionId: path("sessionId") }, summary: "Cancel and soft-delete a session." },
|
|
52
|
-
{ name: "sendMessage", method: "POST", path: "/sessions/:sessionId/messages", params: { sessionId: path("sessionId"), prompt: body(), options: body() }, summary: "Send a prompt (options: { enqueueOnly?, clientMessageIds? })." },
|
|
53
|
-
{ name: "sendAnswer", method: "POST", path: "/sessions/:sessionId/answers", params: { sessionId: path("sessionId"), answer: body() }, summary: "Answer a pending input-required question." },
|
|
54
|
-
{ name: "sendSessionEvent", method: "POST", path: "/sessions/:sessionId/events", params: { sessionId: path("sessionId"), eventName: body(), data: body() }, summary: "Send a custom event into the session." },
|
|
55
|
-
{ name: "cancelPendingMessage", method: "POST", path: "/sessions/:sessionId/cancel-pending", params: { sessionId: path("sessionId"), clientMessageIds: body() }, summary: "Cancel queued messages by client message ids." },
|
|
65
|
+
{ name: "listSessions", access: "session:list", method: "GET", path: "/sessions", summary: "List session summaries." },
|
|
66
|
+
{ name: "createSession", access: "session:create", method: "POST", path: "/sessions", params: { model: body(), reasoningEffort: body(), contextTier: body(), groupId: body(), visibility: body() }, summary: "Create a session. Owner is the authenticated principal; visibility defaults to the deployment default." },
|
|
67
|
+
{ name: "createSessionForAgent", access: "session:create", method: "POST", path: "/sessions/for-agent", params: { agentName: body(), model: body(), reasoningEffort: body(), contextTier: body(), title: body(), splash: body(), splashMobile: body(), initialPrompt: body(), groupId: body(), visibility: body() }, summary: "Create a session bound to a named agent." },
|
|
68
|
+
{ name: "getSession", access: "session:read", method: "GET", path: "/sessions/:sessionId", params: { sessionId: path("sessionId") }, summary: "Get one session view (live orchestration status)." },
|
|
69
|
+
{ name: "deleteSession", access: "session:destroy", method: "DELETE", path: "/sessions/:sessionId", params: { sessionId: path("sessionId") }, summary: "Cancel and soft-delete a session." },
|
|
70
|
+
{ name: "sendMessage", access: "session:write", method: "POST", path: "/sessions/:sessionId/messages", params: { sessionId: path("sessionId"), prompt: body(), options: body() }, summary: "Send a prompt (options: { enqueueOnly?, clientMessageIds? })." },
|
|
71
|
+
{ name: "sendAnswer", access: "session:write", method: "POST", path: "/sessions/:sessionId/answers", params: { sessionId: path("sessionId"), answer: body() }, summary: "Answer a pending input-required question." },
|
|
72
|
+
{ name: "sendSessionEvent", access: "session:write", method: "POST", path: "/sessions/:sessionId/events", params: { sessionId: path("sessionId"), eventName: body(), data: body() }, summary: "Send a custom event into the session." },
|
|
73
|
+
{ name: "cancelPendingMessage", access: "session:write", method: "POST", path: "/sessions/:sessionId/cancel-pending", params: { sessionId: path("sessionId"), clientMessageIds: body() }, summary: "Cancel queued messages by client message ids." },
|
|
74
|
+
|
|
75
|
+
// ── Session sharing (security model) ────────────────────────────────
|
|
76
|
+
{ name: "getSessionAccess", access: "session:read", method: "GET", path: "/sessions/:sessionId/access", params: { sessionId: path("sessionId") }, summary: "The caller's effective access to this session's tree: { visibility, relation, canWrite, canManage, owner }." },
|
|
77
|
+
{ name: "setSessionVisibility", access: "session:share", method: "PUT", path: "/sessions/:sessionId/visibility", params: { sessionId: path("sessionId"), visibility: body() }, summary: "Set the tree's sharing level (private | shared_read | shared_write). Owner or admin." },
|
|
78
|
+
{ name: "grantSessionShare", access: "session:share", method: "POST", path: "/sessions/:sessionId/shares", params: { sessionId: path("sessionId"), user: body(), access: body() }, summary: "Grant (or update) a targeted share ({ user: { provider, subject, email?, displayName? }, access: read|write }). Owner or admin." },
|
|
79
|
+
{ name: "revokeSessionShare", access: "session:share", method: "POST", path: "/sessions/:sessionId/shares/revoke", params: { sessionId: path("sessionId"), user: body() }, summary: "Revoke a targeted share ({ user: { provider, subject } }). Owner or admin." },
|
|
80
|
+
{ name: "listSessionShares", access: "session:share", method: "GET", path: "/sessions/:sessionId/shares", params: { sessionId: path("sessionId") }, summary: "List targeted shares on this session's tree. Owner or admin." },
|
|
81
|
+
{ name: "listAuthzAudit", access: "authz:audit", method: "GET", path: "/management/authz-audit", params: { limit: query("number"), sessionId: query("string") }, summary: "Authz audit records, newest first. Admin fleet-wide; owners for their own sessions (sessionId required)." },
|
|
56
82
|
|
|
57
83
|
// ── Session artifacts (JSON surface; binary download is a bespoke route) ──
|
|
58
|
-
{ name: "listArtifacts", method: "GET", path: "/sessions/:sessionId/artifacts", params: { sessionId: path("sessionId") }, summary: "List artifacts for a session." },
|
|
59
|
-
{ name: "getArtifactMetadata", method: "GET", path: "/sessions/:sessionId/artifacts/:filename/meta", params: { sessionId: path("sessionId"), filename: path("filename") }, summary: "Artifact metadata." },
|
|
60
|
-
{ name: "downloadArtifact", method: "GET", path: "/sessions/:sessionId/artifacts/:filename/text", params: { sessionId: path("sessionId"), filename: path("filename") }, summary: "Artifact content as text (JSON envelope). Binary: GET …/download." },
|
|
61
|
-
{ name: "uploadArtifact", method: "PUT", path: "/sessions/:sessionId/artifacts/:filename", params: { sessionId: path("sessionId"), filename: path("filename"), content: body(), contentType: body(), contentEncoding: body() }, summary: "Upload artifact content (base64 for binary; 2 MB JSON limit)." },
|
|
62
|
-
{ name: "deleteArtifact", method: "DELETE", path: "/sessions/:sessionId/artifacts/:filename", params: { sessionId: path("sessionId"), filename: path("filename") }, summary: "Delete an artifact." },
|
|
84
|
+
{ name: "listArtifacts", access: "session:read", method: "GET", path: "/sessions/:sessionId/artifacts", params: { sessionId: path("sessionId") }, summary: "List artifacts for a session." },
|
|
85
|
+
{ name: "getArtifactMetadata", access: "session:read", method: "GET", path: "/sessions/:sessionId/artifacts/:filename/meta", params: { sessionId: path("sessionId"), filename: path("filename") }, summary: "Artifact metadata." },
|
|
86
|
+
{ name: "downloadArtifact", access: "session:read", method: "GET", path: "/sessions/:sessionId/artifacts/:filename/text", params: { sessionId: path("sessionId"), filename: path("filename") }, summary: "Artifact content as text (JSON envelope). Binary: GET …/download." },
|
|
87
|
+
{ name: "uploadArtifact", access: "session:write", method: "PUT", path: "/sessions/:sessionId/artifacts/:filename", params: { sessionId: path("sessionId"), filename: path("filename"), content: body(), contentType: body(), contentEncoding: body() }, summary: "Upload artifact content (base64 for binary; 2 MB JSON limit)." },
|
|
88
|
+
{ name: "deleteArtifact", access: "session:manage", method: "DELETE", path: "/sessions/:sessionId/artifacts/:filename", params: { sessionId: path("sessionId"), filename: path("filename") }, summary: "Delete an artifact." },
|
|
63
89
|
|
|
64
90
|
// ── Management: sessions ────────────────────────────────────────────
|
|
65
|
-
{ name: "listSessionsPage", method: "GET", path: "/management/sessions", params: { limit: query("number"), cursor: query("json"), includeDeleted: query("boolean") }, summary: "Keyset-paginated session listing." },
|
|
66
|
-
{ name: "renameSession", method: "PATCH", path: "/management/sessions/:sessionId", params: { sessionId: path("sessionId"), title: body() }, summary: "Rename a session." },
|
|
67
|
-
{ name: "cancelSession", method: "POST", path: "/management/sessions/:sessionId/cancel", params: { sessionId: path("sessionId") }, summary: "Cancel a session." },
|
|
68
|
-
{ name: "completeSession", method: "POST", path: "/management/sessions/:sessionId/complete", params: { sessionId: path("sessionId"), reason: body() }, summary: "Mark a session completed." },
|
|
69
|
-
{ name: "stopSessionTurn", method: "POST", path: "/management/sessions/:sessionId/stop-turn", params: { sessionId: path("sessionId"), options: body() }, summary: "Abort the in-flight turn." },
|
|
70
|
-
{ name: "setSessionModel", method: "POST", path: "/management/sessions/:sessionId/model", params: { sessionId: path("sessionId"), options: body() }, summary: "Switch the session model ({ model, reasoningEffort?, contextTier? })." },
|
|
71
|
-
{ name: "restartSystemSession", method: "POST", path: "/management/sessions/:agentIdOrSessionId/restart-system", params: { agentIdOrSessionId: path("agentIdOrSessionId"), options: body() }, summary: "Restart a system session (complete | terminate | hard_delete)." },
|
|
72
|
-
{ name: "exportExecutionHistory", method: "POST", path: "/management/sessions/:sessionId/export-execution-history", params: { sessionId: path("sessionId") }, summary: "Export execution history to an artifact; returns artifact meta." },
|
|
73
|
-
{ name: "getSessionStatus", method: "GET", path: "/management/sessions/:sessionId/status", params: { sessionId: path("sessionId") }, summary: "Live custom status + orchestration status." },
|
|
74
|
-
{ name: "waitForStatusChange", method: "GET", path: "/management/sessions/:sessionId/status/wait", params: { sessionId: path("sessionId"), afterVersion: query("number"), timeoutMs: query("number") }, summary: "Long-poll for a status version change (server-capped timeout)." },
|
|
75
|
-
{ name: "getLatestResponse", method: "GET", path: "/management/sessions/:sessionId/latest-response", params: { sessionId: path("sessionId") }, summary: "Latest turn response payload, if any." },
|
|
76
|
-
{ name: "getOrchestrationStats", method: "GET", path: "/management/sessions/:sessionId/orchestration-stats", params: { sessionId: path("sessionId") }, summary: "Orchestration runtime stats." },
|
|
77
|
-
{ name: "getExecutionHistory", method: "GET", path: "/management/sessions/:sessionId/execution-history", params: { sessionId: path("sessionId"), executionId: query("number") }, summary: "Raw execution history events." },
|
|
78
|
-
{ name: "getSessionEvents", method: "GET", path: "/management/sessions/:sessionId/events", params: { sessionId: path("sessionId"), afterSeq: query("number"), limit: query("number"), eventTypes: query("json") }, summary: "Session events after a sequence number (reconnect catch-up). Optional eventTypes (JSON string array) narrows to those event types server-side." },
|
|
79
|
-
{ name: "getSessionEventsBefore", method: "GET", path: "/management/sessions/:sessionId/events-before", params: { sessionId: path("sessionId"), beforeSeq: query("number"), limit: query("number"), eventTypes: query("json") }, summary: "Older session events for history paging. Optional eventTypes (JSON string array) narrows to those event types server-side (chat transcript paging)." },
|
|
80
|
-
{ name: "getSessionMetricSummary", method: "GET", path: "/management/sessions/:sessionId/metric-summary", params: { sessionId: path("sessionId") }, summary: "Per-session metric summary." },
|
|
81
|
-
{ name: "getSessionTokensByModel", method: "GET", path: "/management/sessions/:sessionId/tokens-by-model", params: { sessionId: path("sessionId") }, summary: "Token totals grouped by model." },
|
|
82
|
-
{ name: "getSessionTreeStats", method: "GET", path: "/management/sessions/:sessionId/tree-stats", params: { sessionId: path("sessionId") }, summary: "Stats rolled up across the spawn tree." },
|
|
83
|
-
{ name: "getSessionSkillUsage", method: "GET", path: "/management/sessions/:sessionId/skill-usage", params: { sessionId: path("sessionId"), since: query("string") }, summary: "Skill usage for one session." },
|
|
84
|
-
{ name: "getSessionTreeSkillUsage", method: "GET", path: "/management/sessions/:sessionId/tree-skill-usage", params: { sessionId: path("sessionId"), since: query("string") }, summary: "Skill usage across the spawn tree." },
|
|
85
|
-
{ name: "getSessionFactsStats", method: "GET", path: "/management/sessions/:sessionId/facts-stats", params: { sessionId: path("sessionId") }, summary: "Facts stats for one session." },
|
|
86
|
-
{ name: "getSessionTreeFactsStats", method: "GET", path: "/management/sessions/:sessionId/tree-facts-stats", params: { sessionId: path("sessionId") }, summary: "Facts stats across the spawn tree." },
|
|
91
|
+
{ name: "listSessionsPage", access: "session:list", method: "GET", path: "/management/sessions", params: { limit: query("number"), cursor: query("json"), includeDeleted: query("boolean") }, summary: "Keyset-paginated session listing." },
|
|
92
|
+
{ name: "renameSession", access: "session:manage", method: "PATCH", path: "/management/sessions/:sessionId", params: { sessionId: path("sessionId"), title: body() }, summary: "Rename a session." },
|
|
93
|
+
{ name: "cancelSession", access: "session:manage", method: "POST", path: "/management/sessions/:sessionId/cancel", params: { sessionId: path("sessionId") }, summary: "Cancel a session." },
|
|
94
|
+
{ name: "completeSession", access: "session:manage", method: "POST", path: "/management/sessions/:sessionId/complete", params: { sessionId: path("sessionId"), reason: body() }, summary: "Mark a session completed." },
|
|
95
|
+
{ name: "stopSessionTurn", access: "session:write", method: "POST", path: "/management/sessions/:sessionId/stop-turn", params: { sessionId: path("sessionId"), options: body() }, summary: "Abort the in-flight turn." },
|
|
96
|
+
{ name: "setSessionModel", access: "session:manage", method: "POST", path: "/management/sessions/:sessionId/model", params: { sessionId: path("sessionId"), options: body() }, summary: "Switch the session model ({ model, reasoningEffort?, contextTier? })." },
|
|
97
|
+
{ name: "restartSystemSession", access: "fleet:admin", method: "POST", path: "/management/sessions/:agentIdOrSessionId/restart-system", params: { agentIdOrSessionId: path("agentIdOrSessionId"), options: body() }, summary: "Restart a system session (complete | terminate | hard_delete)." },
|
|
98
|
+
{ name: "exportExecutionHistory", access: "session:manage", method: "POST", path: "/management/sessions/:sessionId/export-execution-history", params: { sessionId: path("sessionId") }, summary: "Export execution history to an artifact; returns artifact meta." },
|
|
99
|
+
{ name: "getSessionStatus", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/status", params: { sessionId: path("sessionId") }, summary: "Live custom status + orchestration status." },
|
|
100
|
+
{ name: "waitForStatusChange", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/status/wait", params: { sessionId: path("sessionId"), afterVersion: query("number"), timeoutMs: query("number") }, summary: "Long-poll for a status version change (server-capped timeout)." },
|
|
101
|
+
{ name: "getLatestResponse", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/latest-response", params: { sessionId: path("sessionId") }, summary: "Latest turn response payload, if any." },
|
|
102
|
+
{ name: "getOrchestrationStats", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/orchestration-stats", params: { sessionId: path("sessionId") }, summary: "Orchestration runtime stats." },
|
|
103
|
+
{ name: "getExecutionHistory", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/execution-history", params: { sessionId: path("sessionId"), executionId: query("number") }, summary: "Raw execution history events." },
|
|
104
|
+
{ name: "getSessionEvents", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/events", params: { sessionId: path("sessionId"), afterSeq: query("number"), limit: query("number"), eventTypes: query("json") }, summary: "Session events after a sequence number (reconnect catch-up). Optional eventTypes (JSON string array) narrows to those event types server-side." },
|
|
105
|
+
{ name: "getSessionEventsBefore", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/events-before", params: { sessionId: path("sessionId"), beforeSeq: query("number"), limit: query("number"), eventTypes: query("json") }, summary: "Older session events for history paging. Optional eventTypes (JSON string array) narrows to those event types server-side (chat transcript paging)." },
|
|
106
|
+
{ name: "getSessionMetricSummary", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/metric-summary", params: { sessionId: path("sessionId") }, summary: "Per-session metric summary." },
|
|
107
|
+
{ name: "getSessionTokensByModel", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/tokens-by-model", params: { sessionId: path("sessionId") }, summary: "Token totals grouped by model." },
|
|
108
|
+
{ name: "getSessionTreeStats", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/tree-stats", params: { sessionId: path("sessionId") }, summary: "Stats rolled up across the spawn tree." },
|
|
109
|
+
{ name: "getSessionSkillUsage", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/skill-usage", params: { sessionId: path("sessionId"), since: query("string") }, summary: "Skill usage for one session." },
|
|
110
|
+
{ name: "getSessionTreeSkillUsage", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/tree-skill-usage", params: { sessionId: path("sessionId"), since: query("string") }, summary: "Skill usage across the spawn tree." },
|
|
111
|
+
{ name: "getSessionFactsStats", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/facts-stats", params: { sessionId: path("sessionId") }, summary: "Facts stats for one session." },
|
|
112
|
+
{ name: "getSessionTreeFactsStats", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/tree-facts-stats", params: { sessionId: path("sessionId") }, summary: "Facts stats across the spawn tree." },
|
|
87
113
|
// Retrieval / graph observability (tuner-grade diagnostics; read-only)
|
|
88
|
-
{ name: "getSessionRetrievalUsage", method: "GET", path: "/management/sessions/:sessionId/retrieval-usage", params: { sessionId: path("sessionId"), since: query("string") }, summary: "Retrieval (facts/graph search) usage for one session." },
|
|
89
|
-
{ name: "getSessionTreeRetrievalUsage", method: "GET", path: "/management/sessions/:sessionId/tree-retrieval-usage", params: { sessionId: path("sessionId"), since: query("string") }, summary: "Retrieval usage across the spawn tree." },
|
|
90
|
-
{ name: "getSessionGraphNodeUsage", method: "GET", path: "/management/sessions/:sessionId/graph-node-usage", params: { sessionId: path("sessionId"), since: query("string"), limit: query("number"), nodeKeyLike: query("string"), kind: query("string") }, summary: "Graph node usage for one session." },
|
|
91
|
-
{ name: "getSessionGraphEdgeSearchUsage", method: "GET", path: "/management/sessions/:sessionId/graph-edge-search-usage", params: { sessionId: path("sessionId"), since: query("string"), limit: query("number") }, summary: "Graph edge-search usage for one session." },
|
|
92
|
-
{ name: "getSessionGraphSearches", method: "GET", path: "/management/sessions/:sessionId/graph-searches", params: { sessionId: path("sessionId"), limit: query("number") }, summary: "Recent graph search events for one session." },
|
|
93
|
-
{ name: "listChildOutcomes", method: "GET", path: "/management/sessions/:parentSessionId/child-outcomes", params: { parentSessionId: path("parentSessionId") }, summary: "Child outcomes recorded under a parent session." },
|
|
94
|
-
{ name: "getChildOutcome", method: "GET", path: "/management/child-outcomes/:childSessionId", params: { childSessionId: path("childSessionId") }, summary: "One child outcome." },
|
|
114
|
+
{ name: "getSessionRetrievalUsage", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/retrieval-usage", params: { sessionId: path("sessionId"), since: query("string") }, summary: "Retrieval (facts/graph search) usage for one session." },
|
|
115
|
+
{ name: "getSessionTreeRetrievalUsage", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/tree-retrieval-usage", params: { sessionId: path("sessionId"), since: query("string") }, summary: "Retrieval usage across the spawn tree." },
|
|
116
|
+
{ name: "getSessionGraphNodeUsage", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/graph-node-usage", params: { sessionId: path("sessionId"), since: query("string"), limit: query("number"), nodeKeyLike: query("string"), kind: query("string") }, summary: "Graph node usage for one session." },
|
|
117
|
+
{ name: "getSessionGraphEdgeSearchUsage", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/graph-edge-search-usage", params: { sessionId: path("sessionId"), since: query("string"), limit: query("number") }, summary: "Graph edge-search usage for one session." },
|
|
118
|
+
{ name: "getSessionGraphSearches", access: "session:read", method: "GET", path: "/management/sessions/:sessionId/graph-searches", params: { sessionId: path("sessionId"), limit: query("number") }, summary: "Recent graph search events for one session." },
|
|
119
|
+
{ name: "listChildOutcomes", access: "session:read", sessionParam: "parentSessionId", method: "GET", path: "/management/sessions/:parentSessionId/child-outcomes", params: { parentSessionId: path("parentSessionId") }, summary: "Child outcomes recorded under a parent session." },
|
|
120
|
+
{ name: "getChildOutcome", access: "session:read", sessionParam: "childSessionId", method: "GET", path: "/management/child-outcomes/:childSessionId", params: { childSessionId: path("childSessionId") }, summary: "One child outcome." },
|
|
95
121
|
|
|
96
122
|
// ── Management: session groups ──────────────────────────────────────
|
|
97
|
-
{ name: "listSessionGroups", method: "GET", path: "/management/session-groups", summary: "List session groups." },
|
|
98
|
-
{ name: "createSessionGroup", method: "POST", path: "/management/session-groups", params: { input: body() }, summary: "Create a session group." },
|
|
99
|
-
{ name: "updateSessionGroup", method: "PATCH", path: "/management/session-groups/:groupId", params: { groupId: path("groupId"), patch: body() }, summary: "Update group title/description." },
|
|
100
|
-
{ name: "deleteSessionGroup", method: "DELETE", path: "/management/session-groups/:groupId", params: { groupId: path("groupId") }, summary: "Delete an empty session group." },
|
|
101
|
-
{ name: "assignSessionsToGroup", method: "POST", path: "/management/session-groups/:groupId/assign", params: { groupId: path("groupId"), sessionIds: body() }, summary: "Assign sessions to a group." },
|
|
102
|
-
{ name: "cancelSessionGroup", method: "POST", path: "/management/session-groups/:groupId/cancel", params: { groupId: path("groupId"), reason: body() }, summary: "Cancel all sessions in a group." },
|
|
103
|
-
{ name: "completeSessionGroup", method: "POST", path: "/management/session-groups/:groupId/complete", params: { groupId: path("groupId"), options: body() }, summary: "Complete all sessions in a group." },
|
|
104
|
-
{ name: "moveSessionsToGroup", method: "POST", path: "/management/session-groups/move", params: { groupId: body(), sessionIds: body() }, summary: "Move sessions between groups (groupId null = ungroup)." },
|
|
123
|
+
{ name: "listSessionGroups", access: "group:list", method: "GET", path: "/management/session-groups", summary: "List session groups." },
|
|
124
|
+
{ name: "createSessionGroup", access: "authed", method: "POST", path: "/management/session-groups", params: { input: body() }, summary: "Create a session group." },
|
|
125
|
+
{ name: "updateSessionGroup", access: "group:manage", method: "PATCH", path: "/management/session-groups/:groupId", params: { groupId: path("groupId"), patch: body() }, summary: "Update group title/description." },
|
|
126
|
+
{ name: "deleteSessionGroup", access: "group:manage", method: "DELETE", path: "/management/session-groups/:groupId", params: { groupId: path("groupId") }, summary: "Delete an empty session group." },
|
|
127
|
+
{ name: "assignSessionsToGroup", access: "group:manage", method: "POST", path: "/management/session-groups/:groupId/assign", params: { groupId: path("groupId"), sessionIds: body() }, summary: "Assign sessions to a group." },
|
|
128
|
+
{ name: "cancelSessionGroup", access: "group:manage", method: "POST", path: "/management/session-groups/:groupId/cancel", params: { groupId: path("groupId"), reason: body() }, summary: "Cancel all sessions in a group." },
|
|
129
|
+
{ name: "completeSessionGroup", access: "group:manage", method: "POST", path: "/management/session-groups/:groupId/complete", params: { groupId: path("groupId"), options: body() }, summary: "Complete all sessions in a group." },
|
|
130
|
+
{ name: "moveSessionsToGroup", access: "group:manage", method: "POST", path: "/management/session-groups/move", params: { groupId: body(), sessionIds: body() }, summary: "Move sessions between groups (groupId null = ungroup)." },
|
|
105
131
|
|
|
106
132
|
// ── Management: fleet / users / facts / events ──────────────────────
|
|
107
|
-
{ name: "getFleetStats", method: "GET", path: "/management/fleet/stats", params: { since: query("string"), includeDeleted: query("boolean") }, summary: "Fleet-wide stats." },
|
|
108
|
-
{ name: "getFleetSkillUsage", method: "GET", path: "/management/fleet/skill-usage", params: { since: query("string"), includeDeleted: query("boolean") }, summary: "Fleet-wide skill usage." },
|
|
109
|
-
{ name: "getFleetRetrievalUsage", method: "GET", path: "/management/fleet/retrieval-usage", params: { since: query("string"), includeDeleted: query("boolean") }, summary: "Fleet-wide retrieval usage." },
|
|
110
|
-
{ name: "getFleetGraphNodeUsage", method: "GET", path: "/management/fleet/graph-node-usage", params: { since: query("string"), includeDeleted: query("boolean"), limit: query("number"), nodeKeyLike: query("string"), kind: query("string") }, summary: "Fleet-wide graph node usage." },
|
|
111
|
-
{ name: "getUserStats", method: "GET", path: "/management/users/stats", params: { since: query("string"), includeDeleted: query("boolean") }, summary: "Per-user stats." },
|
|
112
|
-
{ name: "
|
|
113
|
-
{ name: "
|
|
114
|
-
{ name: "
|
|
115
|
-
{ name: "
|
|
133
|
+
{ name: "getFleetStats", access: "fleet:read", method: "GET", path: "/management/fleet/stats", params: { since: query("string"), includeDeleted: query("boolean") }, summary: "Fleet-wide stats." },
|
|
134
|
+
{ name: "getFleetSkillUsage", access: "fleet:read", method: "GET", path: "/management/fleet/skill-usage", params: { since: query("string"), includeDeleted: query("boolean") }, summary: "Fleet-wide skill usage." },
|
|
135
|
+
{ name: "getFleetRetrievalUsage", access: "fleet:read", method: "GET", path: "/management/fleet/retrieval-usage", params: { since: query("string"), includeDeleted: query("boolean") }, summary: "Fleet-wide retrieval usage." },
|
|
136
|
+
{ name: "getFleetGraphNodeUsage", access: "fleet:read", method: "GET", path: "/management/fleet/graph-node-usage", params: { since: query("string"), includeDeleted: query("boolean"), limit: query("number"), nodeKeyLike: query("string"), kind: query("string") }, summary: "Fleet-wide graph node usage." },
|
|
137
|
+
{ name: "getUserStats", access: "fleet:read", method: "GET", path: "/management/users/stats", params: { since: query("string"), includeDeleted: query("boolean") }, summary: "Per-user stats." },
|
|
138
|
+
{ name: "listKnownUsers", access: "authed", method: "GET", path: "/management/users", params: { limit: query("number") }, summary: "Member directory (provider/subject/email/displayName) for share autocomplete; excludes synthetic principals." },
|
|
139
|
+
{ name: "getSharedFactsStats", access: "fleet:read", method: "GET", path: "/management/facts/shared-stats", summary: "Shared facts stats." },
|
|
140
|
+
{ name: "getFactsTombstoneStats", access: "fleet:read", method: "GET", path: "/management/facts/tombstone-stats", params: { ttlSeconds: query("number") }, summary: "Soft-deleted facts awaiting reconciliation." },
|
|
141
|
+
{ name: "getTopEventEmitters", access: "fleet:read", method: "GET", path: "/management/events/top-emitters", params: { since: query("string"), limit: query("number") }, summary: "Noisiest event emitters since a date." },
|
|
142
|
+
{ name: "pruneDeletedSummaries", access: "fleet:admin", method: "POST", path: "/management/summaries/prune-deleted", params: { olderThan: body() }, summary: "Prune summaries of deleted sessions." },
|
|
116
143
|
|
|
117
144
|
// ── Facts data-plane (Tier 1: any admitted caller) ──────────────────
|
|
118
|
-
{ name: "factsCapabilities", method: "GET", path: "/facts/capabilities", summary: "Store capabilities: { search, embedder, graph } — the remote isEnhancedFactStore/isGraphStore." },
|
|
119
|
-
{ name: "readFacts", method: "GET", path: "/facts", params: { keyPattern: query("string"), scopeKeys: query("json"), tags: query("json"), sessionId: query("string"), agentId: query("string"), limit: query("number"), scope: query("string") }, summary: "Read facts (ReadFactsQuery params)." },
|
|
120
|
-
{ name: "storeFact", method: "POST", path: "/facts", params: { input: body() }, summary: "Store a fact or facts (StoreFactInput | StoreFactInput[])." },
|
|
121
|
-
{ name: "deleteFact", method: "POST", path: "/facts/delete", params: { input: body() }, summary: "Delete a fact / pattern (DeleteFactInput). POST because DELETE bodies are unreliable." },
|
|
122
|
-
{ name: "searchFacts", method: "POST", path: "/facts/search", params: { query: body(), opts: body() }, summary: "Retrieval over facts (lexical | semantic | hybrid). [enhanced]" },
|
|
123
|
-
{ name: "similarFacts", method: "POST", path: "/facts/similar", params: { scopeKey: body(), opts: body() }, summary: "Semantic nearest-neighbours of a known fact. [enhanced]" },
|
|
145
|
+
{ name: "factsCapabilities", access: "authed", method: "GET", path: "/facts/capabilities", summary: "Store capabilities: { search, embedder, graph } — the remote isEnhancedFactStore/isGraphStore." },
|
|
146
|
+
{ name: "readFacts", access: "facts:read", method: "GET", path: "/facts", params: { keyPattern: query("string"), scopeKeys: query("json"), tags: query("json"), sessionId: query("string"), agentId: query("string"), limit: query("number"), scope: query("string") }, summary: "Read facts (ReadFactsQuery params)." },
|
|
147
|
+
{ name: "storeFact", access: "facts:write", method: "POST", path: "/facts", params: { input: body() }, summary: "Store a fact or facts (StoreFactInput | StoreFactInput[])." },
|
|
148
|
+
{ name: "deleteFact", access: "facts:write", method: "POST", path: "/facts/delete", params: { input: body() }, summary: "Delete a fact / pattern (DeleteFactInput). POST because DELETE bodies are unreliable." },
|
|
149
|
+
{ name: "searchFacts", access: "facts:read", method: "POST", path: "/facts/search", params: { query: body(), opts: body() }, summary: "Retrieval over facts (lexical | semantic | hybrid). [enhanced]" },
|
|
150
|
+
{ name: "similarFacts", access: "facts:read", method: "POST", path: "/facts/similar", params: { scopeKey: body(), opts: body() }, summary: "Semantic nearest-neighbours of a known fact. [enhanced]" },
|
|
124
151
|
|
|
125
152
|
// ── Facts operational (Tier 2: admin) ───────────────────────────────
|
|
126
|
-
{ name: "getEmbedderStatus", method: "GET", path: "/facts/embedder", summary: "Durable embedder status. [enhanced]" },
|
|
127
|
-
{ name: "startFactsEmbedder", method: "POST", path: "/facts/embedder/start", params: { intervalSeconds: body(), batch: body() }, admin: true, summary: "Start the durable embedder loop. [enhanced, admin]" },
|
|
128
|
-
{ name: "stopFactsEmbedder", method: "POST", path: "/facts/embedder/stop", params: { reason: body() }, admin: true, summary: "Stop the durable embedder loop. [enhanced, admin]" },
|
|
129
|
-
{ name: "forcePurgeFacts", method: "POST", path: "/facts/purge", params: { input: body() }, admin: true, summary: "Force-purge soft-deleted facts (ForcePurgeFactsInput). [admin]" },
|
|
153
|
+
{ name: "getEmbedderStatus", access: "authed", method: "GET", path: "/facts/embedder", summary: "Durable embedder status. [enhanced]" },
|
|
154
|
+
{ name: "startFactsEmbedder", access: "fleet:admin", method: "POST", path: "/facts/embedder/start", params: { intervalSeconds: body(), batch: body() }, admin: true, summary: "Start the durable embedder loop. [enhanced, admin]" },
|
|
155
|
+
{ name: "stopFactsEmbedder", access: "fleet:admin", method: "POST", path: "/facts/embedder/stop", params: { reason: body() }, admin: true, summary: "Stop the durable embedder loop. [enhanced, admin]" },
|
|
156
|
+
{ name: "forcePurgeFacts", access: "fleet:admin", method: "POST", path: "/facts/purge", params: { input: body() }, admin: true, summary: "Force-purge soft-deleted facts (ForcePurgeFactsInput). [admin]" },
|
|
130
157
|
|
|
131
158
|
// ── Graph data-plane (Tier 1: any admitted caller) ──────────────────
|
|
132
|
-
{ name: "searchGraphNodes", method: "POST", path: "/graph/nodes/search", params: { query: body() }, summary: "Search graph nodes (GraphNodeQuery)." },
|
|
133
|
-
{ name: "searchGraphEdges", method: "POST", path: "/graph/edges/search", params: { query: body() }, summary: "Search graph edges (GraphEdgeQuery)." },
|
|
134
|
-
{ name: "graphNeighbourhood", method: "POST", path: "/graph/neighbourhood", params: { nodeKey: body(), depth: body(), namespace: body() }, summary: "Expand a subgraph around a node." },
|
|
135
|
-
{ name: "upsertGraphNode", method: "POST", path: "/graph/nodes", params: { input: body() }, summary: "Upsert a graph node (GraphNodeInput)." },
|
|
136
|
-
{ name: "upsertGraphEdge", method: "POST", path: "/graph/edges", params: { input: body() }, summary: "Upsert a graph edge (GraphEdgeInput)." },
|
|
137
|
-
{ name: "deleteGraphNode", method: "POST", path: "/graph/nodes/delete", params: { nodeKey: body(), namespace: body() }, summary: "Delete a graph node." },
|
|
138
|
-
{ name: "deleteGraphEdge", method: "POST", path: "/graph/edges/delete", params: { fromKey: body(), toKey: body(), predicateKey: body(), namespace: body() }, summary: "Delete a graph edge." },
|
|
139
|
-
{ name: "graphStats", method: "GET", path: "/graph/stats", params: { namespace: query("string") }, summary: "Graph node/edge counts." },
|
|
140
|
-
{ name: "listGraphNamespaces", method: "GET", path: "/graph/namespaces", params: { prefix: query("string"), includeArchived: query("boolean"), includeDetails: query("boolean") }, summary: "List graph namespaces (corpora)." },
|
|
141
|
-
{ name: "getGraphNamespace", method: "GET", path: "/graph/namespaces/:namespace", params: { namespace: path("namespace") }, summary: "One graph namespace descriptor." },
|
|
159
|
+
{ name: "searchGraphNodes", access: "authed", method: "POST", path: "/graph/nodes/search", params: { query: body() }, summary: "Search graph nodes (GraphNodeQuery)." },
|
|
160
|
+
{ name: "searchGraphEdges", access: "authed", method: "POST", path: "/graph/edges/search", params: { query: body() }, summary: "Search graph edges (GraphEdgeQuery)." },
|
|
161
|
+
{ name: "graphNeighbourhood", access: "authed", method: "POST", path: "/graph/neighbourhood", params: { nodeKey: body(), depth: body(), namespace: body() }, summary: "Expand a subgraph around a node." },
|
|
162
|
+
{ name: "upsertGraphNode", access: "authed", method: "POST", path: "/graph/nodes", params: { input: body() }, summary: "Upsert a graph node (GraphNodeInput)." },
|
|
163
|
+
{ name: "upsertGraphEdge", access: "authed", method: "POST", path: "/graph/edges", params: { input: body() }, summary: "Upsert a graph edge (GraphEdgeInput)." },
|
|
164
|
+
{ name: "deleteGraphNode", access: "authed", method: "POST", path: "/graph/nodes/delete", params: { nodeKey: body(), namespace: body() }, summary: "Delete a graph node." },
|
|
165
|
+
{ name: "deleteGraphEdge", access: "authed", method: "POST", path: "/graph/edges/delete", params: { fromKey: body(), toKey: body(), predicateKey: body(), namespace: body() }, summary: "Delete a graph edge." },
|
|
166
|
+
{ name: "graphStats", access: "authed", method: "GET", path: "/graph/stats", params: { namespace: query("string") }, summary: "Graph node/edge counts." },
|
|
167
|
+
{ name: "listGraphNamespaces", access: "authed", method: "GET", path: "/graph/namespaces", params: { prefix: query("string"), includeArchived: query("boolean"), includeDetails: query("boolean") }, summary: "List graph namespaces (corpora)." },
|
|
168
|
+
{ name: "getGraphNamespace", access: "authed", method: "GET", path: "/graph/namespaces/:namespace", params: { namespace: path("namespace") }, summary: "One graph namespace descriptor." },
|
|
142
169
|
|
|
143
170
|
// ── Graph operational (Tier 2: admin) ───────────────────────────────
|
|
144
|
-
{ name: "upsertGraphNamespace", method: "POST", path: "/graph/namespaces", params: { input: body() }, admin: true, summary: "Register/update a graph namespace. [admin]" },
|
|
145
|
-
{ name: "deleteGraphNamespace", method: "DELETE", path: "/graph/namespaces/:namespace", params: { namespace: path("namespace") }, admin: true, summary: "Delete a graph namespace and its data. [admin]" },
|
|
171
|
+
{ name: "upsertGraphNamespace", access: "fleet:admin", method: "POST", path: "/graph/namespaces", params: { input: body() }, admin: true, summary: "Register/update a graph namespace. [admin]" },
|
|
172
|
+
{ name: "deleteGraphNamespace", access: "fleet:admin", method: "DELETE", path: "/graph/namespaces/:namespace", params: { namespace: path("namespace") }, admin: true, summary: "Delete a graph namespace and its data. [admin]" },
|
|
146
173
|
|
|
147
174
|
// ── Models / agents / policy ────────────────────────────────────────
|
|
148
|
-
{ name: "listModels", method: "GET", path: "/models", summary: "All available models." },
|
|
149
|
-
{ name: "getModelsByProvider", method: "GET", path: "/models/by-provider", summary: "Models grouped by provider." },
|
|
150
|
-
{ name: "getDefaultModel", method: "GET", path: "/models/default", summary: "The deployment default model." },
|
|
151
|
-
{ name: "listCreatableAgents", method: "GET", path: "/agents", summary: "Agents sessions can be created for." },
|
|
152
|
-
{ name: "getSessionCreationPolicy", method: "GET", path: "/session-creation-policy", summary: "Session creation policy." },
|
|
175
|
+
{ name: "listModels", access: "authed", method: "GET", path: "/models", summary: "All available models." },
|
|
176
|
+
{ name: "getModelsByProvider", access: "authed", method: "GET", path: "/models/by-provider", summary: "Models grouped by provider." },
|
|
177
|
+
{ name: "getDefaultModel", access: "authed", method: "GET", path: "/models/default", summary: "The deployment default model." },
|
|
178
|
+
{ name: "listCreatableAgents", access: "authed", method: "GET", path: "/agents", summary: "Agents sessions can be created for." },
|
|
179
|
+
{ name: "getSessionCreationPolicy", access: "authed", method: "GET", path: "/session-creation-policy", summary: "Session creation policy." },
|
|
153
180
|
|
|
154
181
|
// ── Current user profile ────────────────────────────────────────────
|
|
155
|
-
{ name: "getCurrentUserProfile", method: "GET", path: "/me/profile", summary: "Profile of the authenticated principal." },
|
|
156
|
-
{ name: "setCurrentUserProfileSettings", method: "PATCH", path: "/me/profile/settings", params: { settings: body() }, summary: "Replace profile settings." },
|
|
157
|
-
{ name: "setCurrentUserGitHubCopilotKey", method: "PUT", path: "/me/github-copilot-key", params: { key: body() }, summary: "Set (or clear with null) the per-user GitHub Copilot key." },
|
|
158
|
-
{ name: "setSystemGitHubCopilotKey", method: "PUT", path: "/admin/system-github-copilot-key", params: { key: body() }, admin: true, summary: "Set (or clear with null) the System user's GitHub Copilot key, used by ownerless system sessions. [admin]" },
|
|
159
|
-
{ name: "getSystemGitHubCopilotKeyStatus", method: "GET", path: "/admin/system-github-copilot-key", admin: true, summary: "Whether a System GitHub Copilot key is configured and who last changed it. [admin]" },
|
|
182
|
+
{ name: "getCurrentUserProfile", access: "authed", method: "GET", path: "/me/profile", summary: "Profile of the authenticated principal." },
|
|
183
|
+
{ name: "setCurrentUserProfileSettings", access: "authed", method: "PATCH", path: "/me/profile/settings", params: { settings: body() }, summary: "Replace profile settings." },
|
|
184
|
+
{ name: "setCurrentUserGitHubCopilotKey", access: "authed", method: "PUT", path: "/me/github-copilot-key", params: { key: body() }, summary: "Set (or clear with null) the per-user GitHub Copilot key." },
|
|
185
|
+
{ name: "setSystemGitHubCopilotKey", access: "fleet:admin", method: "PUT", path: "/admin/system-github-copilot-key", params: { key: body() }, admin: true, summary: "Set (or clear with null) the System user's GitHub Copilot key, used by ownerless system sessions. [admin]" },
|
|
186
|
+
{ name: "getSystemGitHubCopilotKeyStatus", access: "fleet:admin", method: "GET", path: "/admin/system-github-copilot-key", admin: true, summary: "Whether a System GitHub Copilot key is configured and who last changed it. [admin]" },
|
|
160
187
|
|
|
161
188
|
// ── System ──────────────────────────────────────────────────────────
|
|
162
|
-
{ name: "getLogConfig", method: "GET", path: "/system/log-config", summary: "Log tail availability." },
|
|
163
|
-
{ name: "getWorkerCount", method: "GET", path: "/system/workers", summary: "Live worker count." },
|
|
189
|
+
{ name: "getLogConfig", access: "authed", method: "GET", path: "/system/log-config", summary: "Log tail availability." },
|
|
190
|
+
{ name: "getWorkerCount", access: "authed", method: "GET", path: "/system/workers", summary: "Live worker count." },
|
|
164
191
|
];
|
|
165
192
|
|
|
166
193
|
const OPERATIONS_BY_NAME = new Map(OPERATIONS.map((op) => [op.name, op]));
|
package/dist/agent-loader.d.ts
CHANGED
|
@@ -34,6 +34,8 @@ export interface AgentConfig {
|
|
|
34
34
|
description?: string;
|
|
35
35
|
prompt: string;
|
|
36
36
|
tools?: string[] | null;
|
|
37
|
+
/** Skill names to preload from the session's configured skill directories. */
|
|
38
|
+
skills?: string[];
|
|
37
39
|
/** If true, this is a system agent started automatically by workers. */
|
|
38
40
|
system?: boolean;
|
|
39
41
|
/** Deterministic ID slug for system agents (e.g. "sweeper"). Used to derive a fixed session UUID. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loader.d.ts","sourceRoot":"","sources":["../src/agent-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYpD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAclF;AAID,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qGAAqG;IACrG,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qHAAqH;IACrH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oIAAoI;IACpI,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uGAAuG;IACvG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,WAAW,GAAG,kBAAkB,GAAG,yBAAyB,CAAC;IAC/E;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"agent-loader.d.ts","sourceRoot":"","sources":["../src/agent-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYpD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAclF;AAID,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qGAAqG;IACrG,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qHAAqH;IACrH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oIAAoI;IACpI,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uGAAuG;IACvG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,WAAW,GAAG,kBAAkB,GAAG,yBAAyB,CAAC;IAC/E;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAmID;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAkE/D"}
|
package/dist/agent-loader.js
CHANGED
|
@@ -62,7 +62,7 @@ export function systemChildAgentUUID(parentSessionId, slug) {
|
|
|
62
62
|
// ─── Frontmatter Parser ─────────────────────────────────────────
|
|
63
63
|
/**
|
|
64
64
|
* Parse YAML frontmatter from an .agent.md file.
|
|
65
|
-
* Handles simple `key: value` pairs and YAML list syntax for `tools`.
|
|
65
|
+
* Handles simple `key: value` pairs and YAML list syntax for `tools` and `skills`.
|
|
66
66
|
*/
|
|
67
67
|
function parseAgentFrontmatter(content) {
|
|
68
68
|
const meta = {};
|
|
@@ -109,10 +109,18 @@ function parseAgentFrontmatter(content) {
|
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
// YAML list item (e.g. " - view")
|
|
112
|
-
if (trimmed.startsWith("- ") && currentKey === "tools") {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
112
|
+
if (trimmed.startsWith("- ") && (currentKey === "tools" || currentKey === "skills")) {
|
|
113
|
+
const item = trimmed.slice(2).trim();
|
|
114
|
+
if (currentKey === "tools") {
|
|
115
|
+
if (!meta.tools)
|
|
116
|
+
meta.tools = [];
|
|
117
|
+
meta.tools.push(item);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
if (!meta.skills)
|
|
121
|
+
meta.skills = [];
|
|
122
|
+
meta.skills.push(item);
|
|
123
|
+
}
|
|
116
124
|
continue;
|
|
117
125
|
}
|
|
118
126
|
// Key-value pair
|
|
@@ -158,6 +166,12 @@ function parseAgentFrontmatter(content) {
|
|
|
158
166
|
// Will be followed by list items
|
|
159
167
|
meta.tools = [];
|
|
160
168
|
}
|
|
169
|
+
else if (key === "skills" && value) {
|
|
170
|
+
meta.skills = value.replace(/[\[\]]/g, "").split(",").map(s => s.trim()).filter(Boolean);
|
|
171
|
+
}
|
|
172
|
+
else if (key === "skills" && !value) {
|
|
173
|
+
meta.skills = [];
|
|
174
|
+
}
|
|
161
175
|
else if ((key === "splash" || key === "splashMobile" || key === "initialPrompt") && (value === "|" || value === ">")) {
|
|
162
176
|
// YAML block scalar (| literal, > folded)
|
|
163
177
|
currentBlockStyle = value;
|
|
@@ -216,6 +230,7 @@ export function loadAgentFiles(agentsDir) {
|
|
|
216
230
|
description: meta.description,
|
|
217
231
|
prompt: body,
|
|
218
232
|
tools: meta.tools && meta.tools.length > 0 ? meta.tools : null,
|
|
233
|
+
skills: meta.skills && meta.skills.length > 0 ? meta.skills : undefined,
|
|
219
234
|
system: meta.system,
|
|
220
235
|
id: meta.id,
|
|
221
236
|
title: meta.title,
|
package/dist/agent-loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loader.js","sourceRoot":"","sources":["../src/agent-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,mEAAmE;AAEnE;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;SACnC,MAAM,CAAC,0BAA0B,CAAC;SAClC,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO;QACH,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;KACrB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,eAAuB,EAAE,IAAY;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;SACnC,MAAM,CAAC,gCAAgC,CAAC;SACxC,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,GAAG,CAAC;SACX,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO;QACH,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;KACrB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-loader.js","sourceRoot":"","sources":["../src/agent-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,mEAAmE;AAEnE;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;SACnC,MAAM,CAAC,0BAA0B,CAAC;SAClC,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO;QACH,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;KACrB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,eAAuB,EAAE,IAAY;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;SACnC,MAAM,CAAC,gCAAgC,CAAC;SACxC,MAAM,CAAC,eAAe,CAAC;SACvB,MAAM,CAAC,GAAG,CAAC;SACX,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,OAAO;QACH,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;KACrB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC;AAsDD,mEAAmE;AAEnE;;;GAGG;AACH,SAAS,qBAAqB,CAAC,OAAe;IAI1C,MAAM,IAAI,GAAmS,EAAE,CAAC;IAEhT,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAChB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,uBAAuB;IACnE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,IAAI,cAAc,GAAoB,IAAI,CAAC;IAC3C,IAAI,iBAAiB,GAAkB,IAAI,CAAC;IAE5C,MAAM,cAAc,GAAG,GAAG,EAAE;QACxB,IAAI,cAAc,KAAK,IAAI,IAAI,UAAU,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAChD,IAAI,UAAU,KAAK,QAAQ;gBAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;iBAC1C,IAAI,UAAU,KAAK,cAAc;gBAAE,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;iBAC3D,IAAI,UAAU,KAAK,eAAe,EAAE,CAAC;gBACtC,sDAAsD;gBACtD,IAAI,CAAC,aAAa,GAAG,iBAAiB,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1F,CAAC;YACD,cAAc,GAAG,IAAI,CAAC;YACtB,iBAAiB,GAAG,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,0DAA0D;QAC1D,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC1B,qCAAqC;YACrC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,cAAc,EAAE,CAAC;gBACjB,0CAA0C;YAC9C,CAAC;iBAAM,CAAC;gBACJ,oDAAoD;gBACpD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAClE,SAAS;YACb,CAAC;QACL,CAAC;QAED,mCAAmC;QACnC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC;YAClF,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACrC,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,KAAK;oBAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YACD,SAAS;QACb,CAAC;QAED,iBAAiB;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,CAAC,CAAC;YAAE,SAAS;QAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE5C,2BAA2B;QAC3B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACjD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QAED,UAAU,GAAG,GAAG,CAAC;QAEjB,IAAI,GAAG,KAAK,MAAM;YAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;aACjC,IAAI,GAAG,KAAK,aAAa;YAAE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aACpD,IAAI,GAAG,KAAK,QAAQ;YAAE,IAAI,CAAC,MAAM,GAAG,KAAK,KAAK,MAAM,CAAC;aACrD,IAAI,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC;aACvD,IAAI,GAAG,KAAK,WAAW;YAAE,IAAI,CAAC,SAAS,GAAG,KAAK,KAAK,MAAM,CAAC;aAC3D,IAAI,GAAG,KAAK,IAAI;YAAE,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC;aAClC,IAAI,GAAG,KAAK,OAAO;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACxC,IAAI,GAAG,KAAK,QAAQ;YAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aAC1C,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;aACI,IAAI,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aAC5C,IAAI,GAAG,KAAK,OAAO,IAAI,KAAK,EAAE,CAAC;YAChC,oCAAoC;YACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5F,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;YACnC,iCAAiC;YACjC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACpB,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7F,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACrB,CAAC;aAAM,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,eAAe,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC,EAAE,CAAC;YACrH,0CAA0C;YAC1C,iBAAiB,GAAG,KAAK,CAAC;YAC1B,cAAc,GAAG,EAAE,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC9B,CAAC;aAAM,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC/B,CAAC;IACL,CAAC;IAED,cAAc,EAAE,CAAC;IAEjB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,uBAAuB;IAC3E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,mEAAmE;AAEnE;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,SAAS;QAEnE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAEtD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACb,wDAAwD;gBACxD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,IAAI,qBAAqB,CAAC,CAAC;gBACzE,SAAS;YACb,CAAC;YAED,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,IAAI,+BAA+B,IAAI,CAAC,aAAa,6BAA6B,CAAC,CAAC;gBAClI,SAAS;YACb,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;gBAC9D,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACvE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,OAAO;gBACP,SAAS,EAAE,OAAO;gBAClB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,UAAU,EAAE,QAAQ;aACvB,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,IAAI,yGAAyG,CAAC,CAAC;YACxJ,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,IAAI,+GAA+G,CAAC,CAAC;YAC9J,CAAC;QACL,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,kCAAkC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { PilotSwarmClientOptions, ManagedSessionConfig, PilotSwarmSessionInfo, UserInputHandler, SessionOwnerInfo } from "./types.js";
|
|
2
|
-
import type { SessionCatalog, SessionEvent } from "./cms.js";
|
|
2
|
+
import type { SessionCatalog, SessionEvent, SessionVisibility } from "./cms.js";
|
|
3
|
+
import type { MessageSender } from "./message-sender.js";
|
|
3
4
|
import { type PilotSwarmWebOptions } from "./web/api-connection.js";
|
|
4
5
|
/**
|
|
5
6
|
* PilotSwarmClient — pure client-side session handle.
|
|
@@ -52,6 +53,8 @@ export declare class PilotSwarmClient {
|
|
|
52
53
|
owner?: SessionOwnerInfo | null;
|
|
53
54
|
/** Optional visual session group assignment. */
|
|
54
55
|
groupId?: string | null;
|
|
56
|
+
/** Sharing level for a new ROOT session (children resolve through their root). */
|
|
57
|
+
visibility?: SessionVisibility | null;
|
|
55
58
|
}): Promise<PilotSwarmSession>;
|
|
56
59
|
/**
|
|
57
60
|
* Create a session bound to a named agent.
|
|
@@ -74,6 +77,7 @@ export declare class PilotSwarmClient {
|
|
|
74
77
|
initialPrompt?: string;
|
|
75
78
|
owner?: SessionOwnerInfo | null;
|
|
76
79
|
groupId?: string | null;
|
|
80
|
+
visibility?: SessionVisibility | null;
|
|
77
81
|
}): Promise<PilotSwarmSession>;
|
|
78
82
|
/**
|
|
79
83
|
* Create a system session (e.g. Sweeper Agent).
|
|
@@ -93,6 +97,7 @@ export declare class PilotSwarmClient {
|
|
|
93
97
|
resumeSession(sessionId: string, config?: ManagedSessionConfig & {
|
|
94
98
|
onUserInputRequest?: UserInputHandler;
|
|
95
99
|
}): Promise<PilotSwarmSession>;
|
|
100
|
+
private _syncTurnCursors;
|
|
96
101
|
listSessions(): Promise<PilotSwarmSessionInfo[]>;
|
|
97
102
|
deleteSession(sessionId: string): Promise<void>;
|
|
98
103
|
/**
|
|
@@ -116,6 +121,7 @@ export declare class PilotSwarmClient {
|
|
|
116
121
|
bootstrap?: boolean;
|
|
117
122
|
requiredTool?: string;
|
|
118
123
|
clientMessageIds?: string[];
|
|
124
|
+
sender?: MessageSender;
|
|
119
125
|
}): Promise<string>;
|
|
120
126
|
/** @internal */
|
|
121
127
|
_getDuroxideClient(): any;
|
|
@@ -161,6 +167,7 @@ export declare class PilotSwarmSession {
|
|
|
161
167
|
bootstrap?: boolean;
|
|
162
168
|
requiredTool?: string;
|
|
163
169
|
clientMessageIds?: string[];
|
|
170
|
+
sender?: MessageSender;
|
|
164
171
|
}): Promise<void>;
|
|
165
172
|
wait(timeout?: number, opts?: {
|
|
166
173
|
signal?: AbortSignal;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,uBAAuB,EACvB,oBAAoB,EAGpB,qBAAqB,EAErB,gBAAgB,EAIhB,gBAAgB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|