@caelo-cms/mcp-server 0.10.72 → 0.11.1
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/dist/admin-server.d.ts +8 -8
- package/dist/admin-server.d.ts.map +1 -1
- package/dist/admin-server.js +38 -21
- package/dist/admin-server.js.map +1 -1
- package/dist/surfaces/admin-surface.d.ts +11 -2
- package/dist/surfaces/admin-surface.d.ts.map +1 -1
- package/dist/surfaces/admin-surface.js +26 -2
- package/dist/surfaces/admin-surface.js.map +1 -1
- package/package.json +2 -2
- package/power-catalogue.json +1525 -1765
package/dist/admin-server.d.ts
CHANGED
|
@@ -8,16 +8,16 @@ export interface StartAdminOpts {
|
|
|
8
8
|
/** Poll interval while waiting on an approval; tests shorten it. */
|
|
9
9
|
readonly approvalPollMs?: number;
|
|
10
10
|
/**
|
|
11
|
-
* #678 — how
|
|
12
|
-
* (an upgrade, an activated plugin)
|
|
13
|
-
* `notifications/tools/list_changed`. Default
|
|
14
|
-
* `
|
|
15
|
-
*
|
|
11
|
+
* #678 — how old the catalogue may get before the next use of this server
|
|
12
|
+
* re-reads it, so a changed admin (an upgrade, an activated plugin)
|
|
13
|
+
* reaches the client through `notifications/tools/list_changed`. Default
|
|
14
|
+
* `CAELO_MCP_CATALOGUE_MAX_AGE_MS` or 5 minutes; 0 re-reads on every use.
|
|
15
|
+
* An unknown tool name re-reads regardless.
|
|
16
16
|
*/
|
|
17
|
-
readonly
|
|
17
|
+
readonly catalogueMaxAgeMs?: number;
|
|
18
18
|
}
|
|
19
|
-
/** The
|
|
20
|
-
export declare function
|
|
19
|
+
/** The catalogue's max age: the option, else the env var, else 5 minutes. */
|
|
20
|
+
export declare function resolveCatalogueMaxAgeMs(option: number | undefined, env?: string | undefined): number;
|
|
21
21
|
/**
|
|
22
22
|
* What a client sees of the catalogue; when it changes, the tool list
|
|
23
23
|
* changed. Order-independent so a re-sorted catalogue is not a change.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-server.d.ts","sourceRoot":"","sources":["../src/admin-server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"admin-server.d.ts","sourceRoot":"","sources":["../src/admin-server.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAI/E,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,6BAA6B,CAAC;AAGrC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,oEAAoE;IACpE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAID,6EAA6E;AAC7E,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,GAAE,MAAM,GAAG,SAAsD,GACnE,MAAM,CAIR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAMvE;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAwH7E"}
|
package/dist/admin-server.js
CHANGED
|
@@ -16,8 +16,11 @@
|
|
|
16
16
|
*
|
|
17
17
|
* - the catalogue is fetched live from `/api/mcp/tools` at startup (an
|
|
18
18
|
* admin-scoped token is required; 'chat' tokens get a 401 with the fix)
|
|
19
|
-
* and re-read
|
|
20
|
-
* `notifications/tools/list_changed`, an
|
|
19
|
+
* and re-read on use once it is older than its max age (#678) — a change
|
|
20
|
+
* reaches the client through `notifications/tools/list_changed`, an
|
|
21
|
+
* unknown tool name refreshes too. Never on a timer: every request wakes
|
|
22
|
+
* the admin's Cloud Run instance, and an idle session left open overnight
|
|
23
|
+
* kept it running around the clock;
|
|
21
24
|
* - the work session `caelo_open_session` opened is held in process state
|
|
22
25
|
* so the agent doesn't thread it through every call; it also rides the
|
|
23
26
|
* response so a restarted server can resume a specific session via
|
|
@@ -29,13 +32,13 @@ import { postAdmin, resolveTimeoutMs } from "./http.js";
|
|
|
29
32
|
import { uploadImages } from "./image-upload.js";
|
|
30
33
|
import { createAdminMcpServer, } from "./surfaces/admin-surface.js";
|
|
31
34
|
import { ownVersion } from "./version-handshake.js";
|
|
32
|
-
const
|
|
33
|
-
/** The
|
|
34
|
-
export function
|
|
35
|
+
const DEFAULT_CATALOGUE_MAX_AGE_MS = 5 * 60_000;
|
|
36
|
+
/** The catalogue's max age: the option, else the env var, else 5 minutes. */
|
|
37
|
+
export function resolveCatalogueMaxAgeMs(option, env = process.env.CAELO_MCP_CATALOGUE_MAX_AGE_MS) {
|
|
35
38
|
if (option !== undefined)
|
|
36
39
|
return option;
|
|
37
40
|
const n = env === undefined ? Number.NaN : Number(env);
|
|
38
|
-
return Number.isFinite(n) && n >= 0 ? n :
|
|
41
|
+
return Number.isFinite(n) && n >= 0 ? n : DEFAULT_CATALOGUE_MAX_AGE_MS;
|
|
39
42
|
}
|
|
40
43
|
/**
|
|
41
44
|
* What a client sees of the catalogue; when it changes, the tool list
|
|
@@ -57,8 +60,10 @@ export async function startAdminMcpServer(opts) {
|
|
|
57
60
|
// Fetch the live catalogue up front — a bad URL or a chat-scoped token
|
|
58
61
|
// should fail loudly at startup, not on the first tool call.
|
|
59
62
|
let catalogue = await fetchCatalogue();
|
|
63
|
+
let fetchedAt = Date.now();
|
|
60
64
|
let remoteByName = new Map(catalogue.tools.map((t) => [t.name, t]));
|
|
61
65
|
let signature = catalogueSignature(catalogue.tools);
|
|
66
|
+
const maxAgeMs = resolveCatalogueMaxAgeMs(opts.catalogueMaxAgeMs);
|
|
62
67
|
let currentSession = null;
|
|
63
68
|
let connected = false;
|
|
64
69
|
let refreshing = null;
|
|
@@ -66,15 +71,24 @@ export async function startAdminMcpServer(opts) {
|
|
|
66
71
|
// changes it while this process runs. `listChanged` tells the client to
|
|
67
72
|
// re-list when we say so, instead of the operator reconnecting (/mcp).
|
|
68
73
|
const server = createAdminMcpServer({
|
|
69
|
-
listCatalogue: async () =>
|
|
74
|
+
listCatalogue: async () => {
|
|
75
|
+
// The client is listing right now: answer with the current list.
|
|
76
|
+
if (isStale())
|
|
77
|
+
await refreshCatalogue();
|
|
78
|
+
return catalogue.tools;
|
|
79
|
+
},
|
|
70
80
|
findTool: async (name) => {
|
|
71
81
|
if (!remoteByName.has(name)) {
|
|
72
82
|
// The admin may have gained the tool since we last listed (#678).
|
|
73
83
|
await refreshCatalogue();
|
|
74
84
|
}
|
|
85
|
+
else {
|
|
86
|
+
refreshInBackgroundIfStale();
|
|
87
|
+
}
|
|
75
88
|
return remoteByName.get(name);
|
|
76
89
|
},
|
|
77
90
|
openSession: async (input) => {
|
|
91
|
+
refreshInBackgroundIfStale();
|
|
78
92
|
currentSession = await postAdmin({
|
|
79
93
|
...target,
|
|
80
94
|
path: "/api/mcp/session",
|
|
@@ -103,6 +117,12 @@ export async function startAdminMcpServer(opts) {
|
|
|
103
117
|
timeoutMs: resolveTimeoutMs(30_000),
|
|
104
118
|
}),
|
|
105
119
|
uploadImages: (args) => uploadImages(target, args),
|
|
120
|
+
// #1122 — re-read now; refreshCatalogue notifies over stdio itself
|
|
121
|
+
// when the list changed, so the surface sends nothing more.
|
|
122
|
+
catalogueMayHaveChanged: async () => {
|
|
123
|
+
await refreshCatalogue();
|
|
124
|
+
return false;
|
|
125
|
+
},
|
|
106
126
|
}, {
|
|
107
127
|
serverVersion: ownVersion(),
|
|
108
128
|
approvalWaitMs: resolveApprovalWaitMs,
|
|
@@ -113,6 +133,7 @@ export async function startAdminMcpServer(opts) {
|
|
|
113
133
|
const refreshCatalogue = () => {
|
|
114
134
|
refreshing ??= (async () => {
|
|
115
135
|
const next = await fetchCatalogue();
|
|
136
|
+
fetchedAt = Date.now();
|
|
116
137
|
const nextSignature = catalogueSignature(next.tools);
|
|
117
138
|
if (nextSignature === signature)
|
|
118
139
|
return false;
|
|
@@ -127,20 +148,16 @@ export async function startAdminMcpServer(opts) {
|
|
|
127
148
|
});
|
|
128
149
|
return refreshing;
|
|
129
150
|
};
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
timer?.unref?.();
|
|
141
|
-
server.onclose = () => {
|
|
142
|
-
if (timer)
|
|
143
|
-
clearInterval(timer);
|
|
151
|
+
const isStale = () => Date.now() - fetchedAt >= maxAgeMs;
|
|
152
|
+
/** A call the agent makes anyway carries the re-read; it never waits on it. */
|
|
153
|
+
const refreshInBackgroundIfStale = () => {
|
|
154
|
+
if (!isStale())
|
|
155
|
+
return;
|
|
156
|
+
refreshCatalogue().catch((e) => {
|
|
157
|
+
// stderr: stdout is the stdio transport. A failed refresh keeps the
|
|
158
|
+
// last catalogue; the next use (or an unknown tool) retries.
|
|
159
|
+
console.error(`[caelo-admin-mcp] tool catalogue refresh failed: ${e instanceof Error ? e.message : String(e)}`);
|
|
160
|
+
});
|
|
144
161
|
};
|
|
145
162
|
await server.connect(opts.transport ?? new StdioServerTransport());
|
|
146
163
|
connected = true;
|
package/dist/admin-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-server.js","sourceRoot":"","sources":["../src/admin-server.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC
|
|
1
|
+
{"version":3,"file":"admin-server.js","sourceRoot":"","sources":["../src/admin-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,6 +76,14 @@ export interface AdminSurfaceBackend {
|
|
|
76
76
|
getContext(): Promise<GetContextResponse>;
|
|
77
77
|
/** Reads the operator's decision; the agent can never make it. */
|
|
78
78
|
fetchApprovalOutcome(proposalId: string): Promise<ApprovalOutcome>;
|
|
79
|
+
/**
|
|
80
|
+
* #1122 — a call may have changed the catalogue (a plugin was activated,
|
|
81
|
+
* disabled, uninstalled or reloaded). The stdio shim re-reads its cached
|
|
82
|
+
* copy now and notifies over its own channel when it changed (false); a
|
|
83
|
+
* stateless remote server lists live, so it asks the surface to send
|
|
84
|
+
* `notifications/tools/list_changed` on this request's stream (true).
|
|
85
|
+
*/
|
|
86
|
+
catalogueMayHaveChanged(): Promise<boolean>;
|
|
79
87
|
uploadImages(args: unknown): Promise<CallToolResult>;
|
|
80
88
|
}
|
|
81
89
|
export interface AdminSurfaceOptions {
|
|
@@ -96,8 +104,9 @@ export interface AdminSurfaceOptions {
|
|
|
96
104
|
/** Poll interval while waiting on an approval; tests shorten it. */
|
|
97
105
|
readonly approvalPollMs?: number;
|
|
98
106
|
/**
|
|
99
|
-
* #678 — advertise `tools.listChanged
|
|
100
|
-
* catalogue changes
|
|
107
|
+
* #678 / #1122 — advertise `tools.listChanged`: the shim notifies when its
|
|
108
|
+
* cached catalogue changes, the stateless remote server on the response
|
|
109
|
+
* stream of a call that changed it. Both surfaces set it.
|
|
101
110
|
*/
|
|
102
111
|
readonly listChanged: boolean;
|
|
103
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-surface.d.ts","sourceRoot":"","sources":["../../src/surfaces/admin-surface.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"admin-surface.d.ts","sourceRoot":"","sources":["../../src/surfaces/admin-surface.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAOL,KAAK,gBAAgB,EAGtB,MAAM,wBAAwB,CAAC;AAEhC,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9D,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACnE;AAED,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,sCAAsC;AACtC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;KAC5B,CAAC,CAAC;CACJ;AAED,qFAAqF;AACrF,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,aAAa,IAAI,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAAC;IAChD,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IACxD,iEAAiE;IACjE,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACnE,mEAAmE;IACnE,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3C,WAAW,CAAC,IAAI,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACjC,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1C,kEAAkE;IAClE,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACnE;;;;;;OAMG;IACH,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACvF,wDAAwD;IACxD,QAAQ,CAAC,cAAc,EAAE,MAAM,MAAM,CAAC;IACtC,oEAAoE;IACpE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAwCD,kFAAkF;AAClF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,mBAAmB,GACxB,MAAM,CAsKR"}
|
|
@@ -34,6 +34,17 @@ function outcomeResult(o) {
|
|
|
34
34
|
],
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* #1122 — calls after which the catalogue may differ: an applied proposal of
|
|
39
|
+
* the plugins domain (activate, uninstall, revoke a grant) and a reload.
|
|
40
|
+
* Without a notification the client kept its old tool list until the
|
|
41
|
+
* operator reconnected (`/mcp`), so an activated plugin's tools stayed out
|
|
42
|
+
* of reach although `activate_plugin` promised them for the next turn.
|
|
43
|
+
*/
|
|
44
|
+
const RELOADING_TOOLS = new Set(["reload_plugin"]);
|
|
45
|
+
function changesCatalogue(o) {
|
|
46
|
+
return o.outcome === "applied" && o.domain === "plugins";
|
|
47
|
+
}
|
|
37
48
|
function errorResult(text) {
|
|
38
49
|
return { isError: true, content: [{ type: "text", text }] };
|
|
39
50
|
}
|
|
@@ -71,6 +82,11 @@ export function createAdminMcpServer(backend, opts) {
|
|
|
71
82
|
},
|
|
72
83
|
});
|
|
73
84
|
};
|
|
85
|
+
const announceCatalogueChange = async () => {
|
|
86
|
+
if (await backend.catalogueMayHaveChanged()) {
|
|
87
|
+
await extra.sendNotification({ method: "notifications/tools/list_changed" });
|
|
88
|
+
}
|
|
89
|
+
};
|
|
74
90
|
const awaitOutcome = (proposalId) => waitForApproval({
|
|
75
91
|
fetchOutcome: () => backend.fetchApprovalOutcome(proposalId),
|
|
76
92
|
waitMs: opts.approvalWaitMs(),
|
|
@@ -83,7 +99,10 @@ export function createAdminMcpServer(backend, opts) {
|
|
|
83
99
|
if (!parsed.success) {
|
|
84
100
|
return errorResult(`invalid arguments: ${parsed.error.message}`);
|
|
85
101
|
}
|
|
86
|
-
|
|
102
|
+
const outcome = await awaitOutcome(parsed.data.proposalId);
|
|
103
|
+
if (changesCatalogue(outcome))
|
|
104
|
+
await announceCatalogueChange();
|
|
105
|
+
return outcomeResult(outcome);
|
|
87
106
|
}
|
|
88
107
|
if (name === uploadTool.name)
|
|
89
108
|
return await backend.uploadImages(req.params.arguments);
|
|
@@ -137,7 +156,10 @@ export function createAdminMcpServer(backend, opts) {
|
|
|
137
156
|
// Issue #658 — the call queued a proposal: wait for the operator's
|
|
138
157
|
// decision (bounded) and return it in THIS result, so the agent
|
|
139
158
|
// continues with the outcome instead of a "queued" note.
|
|
140
|
-
const
|
|
159
|
+
const outcome = await awaitOutcome(result.approval.proposalId);
|
|
160
|
+
if (changesCatalogue(outcome))
|
|
161
|
+
await announceCatalogueChange();
|
|
162
|
+
const decided = outcomeResult(outcome);
|
|
141
163
|
return {
|
|
142
164
|
...decided,
|
|
143
165
|
content: [
|
|
@@ -149,6 +171,8 @@ export function createAdminMcpServer(backend, opts) {
|
|
|
149
171
|
],
|
|
150
172
|
};
|
|
151
173
|
}
|
|
174
|
+
if (result.ok && RELOADING_TOOLS.has(name))
|
|
175
|
+
await announceCatalogueChange();
|
|
152
176
|
return {
|
|
153
177
|
...(result.ok ? {} : { isError: true }),
|
|
154
178
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-surface.js","sourceRoot":"","sources":["../../src/surfaces/admin-surface.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EACL,qBAAqB,EAErB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAEL,uBAAuB,EACvB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EAEjB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"admin-surface.js","sourceRoot":"","sources":["../../src/surfaces/admin-surface.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@caelo-cms/mcp-server",
|
|
3
3
|
"mcpName": "io.github.caelo-cms/caelo",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.11.1",
|
|
5
5
|
"private": false,
|
|
6
6
|
"license": "MPL-2.0",
|
|
7
7
|
"description": "MCP servers for Caelo CMS: `caelo_chat` (talk to Caelo's own AI) and the admin-scoped Power-MCP (the full chat-runner tool catalogue, driven by your own agent). Lets Claude Code (or any MCP-aware client) drive a Caelo install from outside the browser.",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"prepublishOnly": "tsc -b --force"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@modelcontextprotocol/sdk": "1.32.
|
|
48
|
+
"@modelcontextprotocol/sdk": "1.32.2",
|
|
49
49
|
"google-auth-library": "11.3.1",
|
|
50
50
|
"zod": "4.6.7"
|
|
51
51
|
},
|