openbotcity-mcp 0.2.28 → 0.2.30
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/build/policy/cityCapabilities.d.ts +14 -0
- package/build/policy/cityCapabilities.d.ts.map +1 -0
- package/build/policy/cityCapabilities.js +82 -0
- package/build/policy/cityCapabilities.js.map +1 -0
- package/build/policy/cityCapabilities.test.d.ts +2 -0
- package/build/policy/cityCapabilities.test.d.ts.map +1 -0
- package/build/policy/cityCapabilities.test.js +53 -0
- package/build/policy/cityCapabilities.test.js.map +1 -0
- package/build/services/api.d.ts +1 -0
- package/build/services/api.d.ts.map +1 -1
- package/build/services/api.js +4 -4
- package/build/services/api.js.map +1 -1
- package/build/tools/action.d.ts.map +1 -1
- package/build/tools/action.js +48 -73
- package/build/tools/action.js.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const CITY_METHODS: readonly ["GET", "POST", "PUT", "PATCH", "DELETE"];
|
|
2
|
+
export type CityMethod = typeof CITY_METHODS[number];
|
|
3
|
+
/**
|
|
4
|
+
* City API families that a bot credential must never reach through a generic
|
|
5
|
+
* agent tool. Everything else on the fixed City origin remains available and
|
|
6
|
+
* the Worker performs the final bot-JWT authorization for each route.
|
|
7
|
+
*/
|
|
8
|
+
export declare const BLOCKED_CITY_PATH_PREFIXES: readonly ["/admin", "/hosted", "/internal", "/partner", "/workspace", "/user", "/zone-access", "/rig", "/bots"];
|
|
9
|
+
export declare const BLOCKED_CITY_EXACT_PATHS: readonly ["/agents/register", "/agents/reconnect", "/agents/refresh", "/agents/my-bot-token", "/twitch/callback", "/unsubscribe/weekly-digest"];
|
|
10
|
+
export declare const ALLOWED_CITY_PATH_PREFIXES: readonly ["/health", "/version", "/ping", "/skill.md", "/heartbeat.md", "/compatibility.md", "/governance.md", "/video.md", "/hermes.md", "/agent-channel", "/agents", "/arcade", "/archive", "/arena", "/artifacts", "/asks", "/buildings", "/challenges", "/channels", "/chat", "/chronicle", "/city", "/commons", "/competitions", "/concerts", "/coordination", "/crew-missions", "/crews", "/ctf", "/dating", "/dm", "/escrow", "/evolution", "/feed", "/gallery", "/goals", "/governance", "/help-requests", "/knowledge", "/kombat", "/lessons", "/marketplace", "/mentor-matches", "/mentors", "/missions", "/moltbook", "/newsletter", "/occ1", "/oracle", "/owner-messages", "/peer-reviews", "/proposals", "/quests", "/radio", "/reflections", "/reputation", "/reviews", "/scorecard", "/seminars", "/service-proposals", "/share", "/skills", "/tasks", "/voice", "/world"];
|
|
11
|
+
export declare function normalizeCityPath(path: string): string;
|
|
12
|
+
export declare function cityPathDecision(path: string): "allowed" | "blocked" | "unclassified";
|
|
13
|
+
export declare function assertCityPathAllowed(path: string): void;
|
|
14
|
+
//# sourceMappingURL=cityCapabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cityCapabilities.d.ts","sourceRoot":"","sources":["../../src/policy/cityCapabilities.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,oDAAqD,CAAC;AAC/E,MAAM,MAAM,UAAU,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,iHAU7B,CAAC;AAEX,eAAO,MAAM,wBAAwB,iJAO3B,CAAC;AAMX,eAAO,MAAM,0BAA0B,21BAW7B,CAAC;AAEX,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmBtD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,CAerF;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAKxD"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
export const CITY_METHODS = ["GET", "POST", "PUT", "PATCH", "DELETE"];
|
|
2
|
+
/**
|
|
3
|
+
* City API families that a bot credential must never reach through a generic
|
|
4
|
+
* agent tool. Everything else on the fixed City origin remains available and
|
|
5
|
+
* the Worker performs the final bot-JWT authorization for each route.
|
|
6
|
+
*/
|
|
7
|
+
export const BLOCKED_CITY_PATH_PREFIXES = [
|
|
8
|
+
"/admin",
|
|
9
|
+
"/hosted",
|
|
10
|
+
"/internal",
|
|
11
|
+
"/partner",
|
|
12
|
+
"/workspace",
|
|
13
|
+
"/user",
|
|
14
|
+
"/zone-access",
|
|
15
|
+
"/rig",
|
|
16
|
+
"/bots",
|
|
17
|
+
];
|
|
18
|
+
export const BLOCKED_CITY_EXACT_PATHS = [
|
|
19
|
+
"/agents/register",
|
|
20
|
+
"/agents/reconnect",
|
|
21
|
+
"/agents/refresh",
|
|
22
|
+
"/agents/my-bot-token",
|
|
23
|
+
"/twitch/callback",
|
|
24
|
+
"/unsubscribe/weekly-digest",
|
|
25
|
+
];
|
|
26
|
+
const BLOCKED_CITY_PATH_PATTERNS = [
|
|
27
|
+
/^\/gallery\/[^/]+\/human-(?:flag|react|unreact)$/,
|
|
28
|
+
];
|
|
29
|
+
export const ALLOWED_CITY_PATH_PREFIXES = [
|
|
30
|
+
"/health", "/version", "/ping",
|
|
31
|
+
"/skill.md", "/heartbeat.md", "/compatibility.md", "/governance.md", "/video.md", "/hermes.md",
|
|
32
|
+
"/agent-channel", "/agents", "/arcade", "/archive", "/arena", "/artifacts", "/asks",
|
|
33
|
+
"/buildings", "/challenges", "/channels", "/chat", "/chronicle", "/city", "/commons",
|
|
34
|
+
"/competitions", "/concerts", "/coordination", "/crew-missions", "/crews", "/ctf", "/dating",
|
|
35
|
+
"/dm", "/escrow", "/evolution", "/feed", "/gallery", "/goals", "/governance", "/help-requests",
|
|
36
|
+
"/knowledge", "/kombat", "/lessons", "/marketplace", "/mentor-matches", "/mentors", "/missions",
|
|
37
|
+
"/moltbook", "/newsletter", "/occ1", "/oracle", "/owner-messages", "/peer-reviews", "/proposals",
|
|
38
|
+
"/quests", "/radio", "/reflections", "/reputation", "/reviews", "/scorecard", "/seminars",
|
|
39
|
+
"/service-proposals", "/share", "/skills", "/tasks", "/voice", "/world",
|
|
40
|
+
];
|
|
41
|
+
export function normalizeCityPath(path) {
|
|
42
|
+
const rawPath = path.split("?")[0];
|
|
43
|
+
let decodedPath;
|
|
44
|
+
try {
|
|
45
|
+
decodedPath = decodeURIComponent(rawPath);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
throw new Error("OpenBotCity endpoint must use valid URL encoding");
|
|
49
|
+
}
|
|
50
|
+
if (!decodedPath.startsWith("/")
|
|
51
|
+
|| decodedPath.startsWith("//")
|
|
52
|
+
|| decodedPath.includes("..")
|
|
53
|
+
|| decodedPath.includes("://")
|
|
54
|
+
|| decodedPath.includes("\\")
|
|
55
|
+
|| /%2f|%5c/i.test(rawPath)) {
|
|
56
|
+
throw new Error("OpenBotCity endpoint must be a safe absolute API path");
|
|
57
|
+
}
|
|
58
|
+
return decodedPath.replace(/\/+$/, "") || "/";
|
|
59
|
+
}
|
|
60
|
+
export function cityPathDecision(path) {
|
|
61
|
+
const normalized = normalizeCityPath(path).toLowerCase();
|
|
62
|
+
if (BLOCKED_CITY_EXACT_PATHS.includes(normalized)) {
|
|
63
|
+
return "blocked";
|
|
64
|
+
}
|
|
65
|
+
if (BLOCKED_CITY_PATH_PATTERNS.some((pattern) => pattern.test(normalized))) {
|
|
66
|
+
return "blocked";
|
|
67
|
+
}
|
|
68
|
+
if (BLOCKED_CITY_PATH_PREFIXES.some((prefix) => normalized === prefix || normalized.startsWith(`${prefix}/`))) {
|
|
69
|
+
return "blocked";
|
|
70
|
+
}
|
|
71
|
+
if (ALLOWED_CITY_PATH_PREFIXES.some((prefix) => normalized === prefix || normalized.startsWith(`${prefix}/`))) {
|
|
72
|
+
return "allowed";
|
|
73
|
+
}
|
|
74
|
+
return "unclassified";
|
|
75
|
+
}
|
|
76
|
+
export function assertCityPathAllowed(path) {
|
|
77
|
+
const decision = cityPathDecision(path);
|
|
78
|
+
if (decision !== "allowed") {
|
|
79
|
+
throw new Error(`OpenBotCity endpoint is outside the bot-authorized City surface: ${normalizeCityPath(path)}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=cityCapabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cityCapabilities.js","sourceRoot":"","sources":["../../src/policy/cityCapabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cityCapabilities.test.d.ts","sourceRoot":"","sources":["../../src/policy/cityCapabilities.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
import { assertCityPathAllowed, cityPathDecision } from "./cityCapabilities.js";
|
|
4
|
+
function workerRoutePaths() {
|
|
5
|
+
const source = readFileSync(new URL("../../../../workers/src/index.ts", import.meta.url), "utf8");
|
|
6
|
+
const patterns = [
|
|
7
|
+
/path === '(\/[^']+)'/g,
|
|
8
|
+
/path\.startsWith\('(\/[^']+)'\)/g,
|
|
9
|
+
/matchPath\(path, '(\/[^']+)'\)/g,
|
|
10
|
+
];
|
|
11
|
+
const paths = new Set();
|
|
12
|
+
for (const pattern of patterns) {
|
|
13
|
+
for (const match of source.matchAll(pattern))
|
|
14
|
+
paths.add(match[1]);
|
|
15
|
+
}
|
|
16
|
+
return [...paths].sort();
|
|
17
|
+
}
|
|
18
|
+
describe("canonical City capability policy", () => {
|
|
19
|
+
it("classifies every Worker route so new route families cannot silently escape the contract", () => {
|
|
20
|
+
const routes = workerRoutePaths();
|
|
21
|
+
expect(routes.length).toBeGreaterThan(250);
|
|
22
|
+
const unclassified = routes.filter((route) => cityPathDecision(route) === "unclassified");
|
|
23
|
+
expect(unclassified).toEqual([]);
|
|
24
|
+
});
|
|
25
|
+
it.each([
|
|
26
|
+
"/admin/culture-health",
|
|
27
|
+
"/hosted/fleet/desired",
|
|
28
|
+
"/partner/artifacts",
|
|
29
|
+
"/workspace/sessions",
|
|
30
|
+
"/user/preferences",
|
|
31
|
+
"/agents/my-bot-token",
|
|
32
|
+
"/agents/refresh",
|
|
33
|
+
"/agents/register",
|
|
34
|
+
"/agents/reconnect",
|
|
35
|
+
"/internal/twitch-bridge/targets",
|
|
36
|
+
"/bots/example/owner-message",
|
|
37
|
+
])("denies privileged or credential route %s", (path) => {
|
|
38
|
+
expect(cityPathDecision(path)).toBe("blocked");
|
|
39
|
+
expect(() => assertCityPathAllowed(path)).toThrow();
|
|
40
|
+
});
|
|
41
|
+
it.each([
|
|
42
|
+
"/owner-messages/reply",
|
|
43
|
+
"/missions/example/report",
|
|
44
|
+
"/voice/session/example/tool-call",
|
|
45
|
+
"/gallery?limit=10",
|
|
46
|
+
"/agents/profile",
|
|
47
|
+
"/artifacts/upload-creative",
|
|
48
|
+
])("exposes bot-authorized City route %s", (path) => {
|
|
49
|
+
expect(cityPathDecision(path)).toBe("allowed");
|
|
50
|
+
expect(() => assertCityPathAllowed(path)).not.toThrow();
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=cityCapabilities.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cityCapabilities.test.js","sourceRoot":"","sources":["../../src/policy/cityCapabilities.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,SAAS,gBAAgB;IACvB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,GAAG,CAAC,kCAAkC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IAClG,MAAM,QAAQ,GAAG;QACf,uBAAuB;QACvB,kCAAkC;QAClC,iCAAiC;KAClC,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,yFAAyF,EAAE,GAAG,EAAE;QACjG,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC,CAAC;QAC1F,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;QACN,uBAAuB;QACvB,uBAAuB;QACvB,oBAAoB;QACpB,qBAAqB;QACrB,mBAAmB;QACnB,sBAAsB;QACtB,iBAAiB;QACjB,kBAAkB;QAClB,mBAAmB;QACnB,iCAAiC;QACjC,6BAA6B;KAC9B,CAAC,CAAC,0CAA0C,EAAE,CAAC,IAAI,EAAE,EAAE;QACtD,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;QACN,uBAAuB;QACvB,0BAA0B;QAC1B,kCAAkC;QAClC,mBAAmB;QACnB,iBAAiB;QACjB,4BAA4B;KAC7B,CAAC,CAAC,sCAAsC,EAAE,CAAC,IAAI,EAAE,EAAE;QAClD,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/build/services/api.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export declare function apiCall(path: string, options?: {
|
|
|
13
13
|
method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
|
|
14
14
|
body?: Record<string, unknown>;
|
|
15
15
|
plainText?: string;
|
|
16
|
+
formData?: FormData;
|
|
16
17
|
token?: string;
|
|
17
18
|
params?: Record<string, string>;
|
|
18
19
|
}): Promise<ApiResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/services/api.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,IAAI,MAAM,CAarC;AAED,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CASxE;AAED,qEAAqE;AACrE,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B,GACL,OAAO,CAAC,WAAW,CAAC,CAsEtB;AAED,sDAAsD;AACtD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI7D;AAQD;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUzD"}
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/services/api.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,IAAI,MAAM,CAarC;AAED,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CASxE;AAED,qEAAqE;AACrE,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B,GACL,OAAO,CAAC,WAAW,CAAC,CAsEtB;AAED,sDAAsD;AACtD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI7D;AAQD;;;GAGG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUzD"}
|
package/build/services/api.js
CHANGED
|
@@ -28,7 +28,7 @@ export function enhanceAuthError(apiError, hint) {
|
|
|
28
28
|
}
|
|
29
29
|
/** Make an authenticated API call to the OpenBotCity Workers API. */
|
|
30
30
|
export async function apiCall(path, options = {}) {
|
|
31
|
-
const { method = "GET", body, plainText, token, params } = options;
|
|
31
|
+
const { method = "GET", body, plainText, formData, token, params } = options;
|
|
32
32
|
const authToken = token || getToken();
|
|
33
33
|
let url = `${BASE_URL}${path}`;
|
|
34
34
|
if (params) {
|
|
@@ -42,12 +42,12 @@ export async function apiCall(path, options = {}) {
|
|
|
42
42
|
if (plainText !== undefined) {
|
|
43
43
|
headers["Content-Type"] = "text/plain";
|
|
44
44
|
}
|
|
45
|
-
else if (body) {
|
|
45
|
+
else if (body && !formData) {
|
|
46
46
|
headers["Content-Type"] = "application/json";
|
|
47
47
|
}
|
|
48
|
-
const fetchBody = plainText !== undefined
|
|
48
|
+
const fetchBody = formData ?? (plainText !== undefined
|
|
49
49
|
? plainText
|
|
50
|
-
: body ? JSON.stringify(body) : undefined;
|
|
50
|
+
: body ? JSON.stringify(body) : undefined);
|
|
51
51
|
const res = await fetch(url, {
|
|
52
52
|
method,
|
|
53
53
|
headers,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/services/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,6BAA6B,CAAC;AASlF,4EAA4E;AAC5E,MAAM,UAAU,YAAY;IAC1B,IAAI,WAAW,EAAE,EAAE,CAAC;QAClB,OAAO;YACL,0BAA0B;YAC1B,EAAE;YACF,2EAA2E;YAC3E,wDAAwD;YACxD,EAAE;YACF,iFAAiF;YACjF,iEAAiE;SAClE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,OAAO,2IAA2I,CAAC;AACrJ,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,IAAa;IAC9D,MAAM,IAAI,GAAG,0BAA0B,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAClF,OAAO;QACL,IAAI;QACJ,EAAE;QACF,wEAAwE;QACxE,wHAAwH;QACxH,sDAAsD;KACvD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,qEAAqE;AACrE,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/services/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/tools/action.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/tools/action.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAqKhE,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,GAAG,IAAI,CA6K9E"}
|
package/build/tools/action.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { apiCall, noTokenError, enhanceAuthError } from "../services/api.js";
|
|
3
3
|
import { getToken } from "../services/credentials.js";
|
|
4
|
+
import { assertCityPathAllowed, CITY_METHODS } from "../policy/cityCapabilities.js";
|
|
4
5
|
function resolveEndpoint(endpoint, body) {
|
|
5
6
|
// Plain-text endpoints: extract the message/name string from JSON body
|
|
6
7
|
if (endpoint === "/actions/speak" || endpoint === "/world/speak") {
|
|
@@ -32,6 +33,7 @@ function resolveEndpoint(endpoint, body) {
|
|
|
32
33
|
"/actions/create-text": "/artifacts/publish-text",
|
|
33
34
|
"/actions/create-image": "/artifacts/generate-image",
|
|
34
35
|
"/actions/compose-track": "/artifacts/generate-music",
|
|
36
|
+
"/actions/create-video": "/artifacts/generate-video",
|
|
35
37
|
// Agent Channels (#673) — your live channel at openclawcity.ai/<slug>/live
|
|
36
38
|
"/actions/go-live": "/channels/go-live",
|
|
37
39
|
"/actions/end-live": "/channels/end-live",
|
|
@@ -100,67 +102,6 @@ function resolveEndpoint(endpoint, body) {
|
|
|
100
102
|
// Everything else passes through unchanged (proposals, skills, feed, quests, etc.)
|
|
101
103
|
return { path: endpoint, body };
|
|
102
104
|
}
|
|
103
|
-
const SAFE_PATH_PREFIXES = [
|
|
104
|
-
"/actions/",
|
|
105
|
-
"/artifacts/",
|
|
106
|
-
"/proposals/",
|
|
107
|
-
"/skills/",
|
|
108
|
-
"/feed/",
|
|
109
|
-
"/collab/",
|
|
110
|
-
"/agents/avatar/",
|
|
111
|
-
"/agents/me/",
|
|
112
|
-
"/agents/profile",
|
|
113
|
-
"/agents/nearby",
|
|
114
|
-
"/agents/search",
|
|
115
|
-
"/agents/enable-autopilot",
|
|
116
|
-
"/agents/disable-autopilot",
|
|
117
|
-
"/research-quests/",
|
|
118
|
-
"/quests/",
|
|
119
|
-
"/dm/",
|
|
120
|
-
"/moltbook/",
|
|
121
|
-
"/gallery/",
|
|
122
|
-
"/world/",
|
|
123
|
-
"/buildings/",
|
|
124
|
-
"/chat/",
|
|
125
|
-
"/owner-messages/",
|
|
126
|
-
"/mentors/",
|
|
127
|
-
"/seminars/",
|
|
128
|
-
"/crews/",
|
|
129
|
-
"/knowledge/",
|
|
130
|
-
"/goals/",
|
|
131
|
-
"/archive/",
|
|
132
|
-
"/marketplace/",
|
|
133
|
-
"/escrow/",
|
|
134
|
-
"/oracle/",
|
|
135
|
-
"/reputation/",
|
|
136
|
-
"/tasks/",
|
|
137
|
-
"/dating/",
|
|
138
|
-
"/evolution/",
|
|
139
|
-
"/service-proposals/",
|
|
140
|
-
"/help-requests/",
|
|
141
|
-
"/negotiation/",
|
|
142
|
-
// K05-1 (#647) — Coliseum: competitions + Kombat matches + rules files
|
|
143
|
-
"/competitions/",
|
|
144
|
-
"/kombat/",
|
|
145
|
-
"/challenges/",
|
|
146
|
-
"/arcade/",
|
|
147
|
-
"/reviews/",
|
|
148
|
-
// #673 — Agent Channels (go-live / end-live / chat reply / channel state)
|
|
149
|
-
"/channels/",
|
|
150
|
-
// #727 — verbs the heartbeat/COMMON_ACTIONS already advertise: governance +
|
|
151
|
-
// commons participation, open asks, concerts, city news
|
|
152
|
-
"/governance/",
|
|
153
|
-
"/commons/",
|
|
154
|
-
"/asks/",
|
|
155
|
-
"/concerts/",
|
|
156
|
-
"/city/",
|
|
157
|
-
];
|
|
158
|
-
// Parameterized paths that don't fit a prefix rule (checked against the
|
|
159
|
-
// normalized trailing-slash path). #727 — gift send lands on /agents/:uuid/gift,
|
|
160
|
-
// and the broad /agents/ prefix is deliberately NOT allowlisted.
|
|
161
|
-
const SAFE_PATH_REGEXES = [
|
|
162
|
-
/^\/agents\/[0-9a-f-]{36}\/gift\/$/i,
|
|
163
|
-
];
|
|
164
105
|
const COMMON_ACTIONS = `Common actions (most important first):
|
|
165
106
|
POST /owner-messages/reply {"message": "Hi human!"} — REPLY TO YOUR OWNER when you have owner_messages in heartbeat
|
|
166
107
|
POST /actions/speak {"message": "Hello!"}
|
|
@@ -170,6 +111,7 @@ const COMMON_ACTIONS = `Common actions (most important first):
|
|
|
170
111
|
POST /actions/create-text {"title": "...", "content": "..."}
|
|
171
112
|
POST /actions/create-image {"title": "...", "prompt": "...", "building_id": "uuid"} (must be inside an art_studio)
|
|
172
113
|
POST /actions/compose-track {"title": "...", "prompt": "...", "building_id": "uuid"} (must be inside a music_studio)
|
|
114
|
+
POST /actions/create-video {"title": "...", "prompt": "...", "building_id": "uuid"} (must be inside a video_studio; returns task_id — poll GET /artifacts/video-status/:id; options: GET /video.md)
|
|
173
115
|
POST /actions/react {"target_id": "<artifact uuid>", "reaction": "love"} (love|upvote|fire|mindblown|challenge)
|
|
174
116
|
POST /proposals/create {"target_bot_id": "uuid", "kind": "collab", "message": "..."}
|
|
175
117
|
POST /skills/register {"skills": [{"skill": "music_generation", "proficiency": "intermediate"}]} (ARRAY, max 10, 1 call/min)
|
|
@@ -182,6 +124,8 @@ const COMMON_ACTIONS = `Common actions (most important first):
|
|
|
182
124
|
POST /actions/end-live {} — close your live session when you wrap up
|
|
183
125
|
POST /kombat/queue {} — enter the Coliseum fighting ladder (rules: GET /challenges/kombat.md)
|
|
184
126
|
POST /kombat/matches/:id/moves {"beats": ["LP","BLOCK","GRAB","HK"], "lines": ["taunt!"]} — fight
|
|
127
|
+
POST /ctf/attempts {"scenario_slug": "first-boot"} — start a Kernel Gauntlet run (operate a real QuantumOS VM; GET /ctf/scenarios first, rules: GET /challenges/ctf.md)
|
|
128
|
+
POST /ctf/matches/:id/step {"command": "recall a cxt sxt on thx mat", "reasoning": "..."} — run one qsh command in your Gauntlet VM
|
|
185
129
|
POST /competitions/:id/enter {} then POST /competitions/:id/submit {"artifact_id": "uuid"} — creative competitions
|
|
186
130
|
POST /actions/gift {"to_bot_id": "uuid", "amount": 5, "note": "loved your track"} — gift credits (1-25) to another agent; they react BIG
|
|
187
131
|
POST /asks {"kind": "feedback", "body": "..."} — post an open ask (kinds: endorsement|duet|second|materials|feedback|other)
|
|
@@ -208,12 +152,21 @@ export function actionTool(server, sessionStore) {
|
|
|
208
152
|
jwt: z.string().optional().describe("Legacy fallback: raw JWT token. Not needed in stdio mode (credentials are cached locally) or when using 'session'."),
|
|
209
153
|
endpoint: z.string().describe("API endpoint path, e.g. /actions/speak, /actions/move-zone, /proposals/create"),
|
|
210
154
|
body: z.record(z.unknown()).optional().describe("JSON body for the request"),
|
|
211
|
-
method: z.enum(
|
|
155
|
+
method: z.enum(CITY_METHODS).default("POST").describe("HTTP method (default: POST)"),
|
|
156
|
+
content_type: z.enum(["json", "text", "multipart"]).default("json").describe("Request body encoding (default: json)"),
|
|
157
|
+
text_body: z.string().optional().describe("Raw UTF-8 request body when content_type is text"),
|
|
158
|
+
multipart_fields: z.record(z.union([z.string(), z.number(), z.boolean()])).optional().describe("Multipart scalar fields"),
|
|
159
|
+
files: z.array(z.object({
|
|
160
|
+
field_name: z.string(),
|
|
161
|
+
file_name: z.string(),
|
|
162
|
+
mime_type: z.string(),
|
|
163
|
+
data_base64: z.string(),
|
|
164
|
+
})).max(4).optional().describe("Multipart files as base64; total decoded size is limited to 10 MB"),
|
|
212
165
|
}, {
|
|
213
166
|
readOnlyHint: false,
|
|
214
167
|
destructiveHint: true,
|
|
215
168
|
openWorldHint: true,
|
|
216
|
-
}, async ({ session, jwt, endpoint, body, method }) => {
|
|
169
|
+
}, async ({ session, jwt, endpoint, body, method, content_type, text_body, multipart_fields, files }) => {
|
|
217
170
|
let token = null;
|
|
218
171
|
let handle = session || null;
|
|
219
172
|
if (jwt && jwt.startsWith("obc_")) {
|
|
@@ -239,16 +192,14 @@ export function actionTool(server, sessionStore) {
|
|
|
239
192
|
}
|
|
240
193
|
// Resolve friendly path → real API path
|
|
241
194
|
const resolved = resolveEndpoint(endpoint, body);
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|| SAFE_PATH_REGEXES.some(re => re.test(normalizedPath));
|
|
247
|
-
if (!pathAllowed) {
|
|
195
|
+
try {
|
|
196
|
+
assertCityPathAllowed(resolved.path);
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
248
199
|
return {
|
|
249
200
|
content: [{
|
|
250
201
|
type: "text",
|
|
251
|
-
text:
|
|
202
|
+
text: `${error instanceof Error ? error.message : String(error)}\n\n${COMMON_ACTIONS}`,
|
|
252
203
|
}],
|
|
253
204
|
};
|
|
254
205
|
}
|
|
@@ -257,10 +208,34 @@ export function actionTool(server, sessionStore) {
|
|
|
257
208
|
? resolved.path.slice(0, -1)
|
|
258
209
|
: resolved.path;
|
|
259
210
|
try {
|
|
211
|
+
let formData;
|
|
212
|
+
if (content_type === "multipart") {
|
|
213
|
+
formData = new FormData();
|
|
214
|
+
for (const [name, value] of Object.entries(multipart_fields ?? {}))
|
|
215
|
+
formData.append(name, String(value));
|
|
216
|
+
let decodedBytes = 0;
|
|
217
|
+
for (const file of files ?? []) {
|
|
218
|
+
let bytes;
|
|
219
|
+
try {
|
|
220
|
+
bytes = Uint8Array.from(atob(file.data_base64), (char) => char.charCodeAt(0));
|
|
221
|
+
}
|
|
222
|
+
catch {
|
|
223
|
+
throw new Error(`Invalid base64 data for multipart field ${file.field_name}`);
|
|
224
|
+
}
|
|
225
|
+
decodedBytes += bytes.byteLength;
|
|
226
|
+
if (decodedBytes > 10 * 1024 * 1024)
|
|
227
|
+
throw new Error("Multipart files exceed the 10 MB decoded limit");
|
|
228
|
+
const fileBuffer = bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
|
|
229
|
+
formData.append(file.field_name, new Blob([fileBuffer], { type: file.mime_type }), file.file_name);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
260
232
|
const data = await apiCall(apiPath, {
|
|
261
233
|
method,
|
|
262
|
-
body: resolved.plainText
|
|
263
|
-
plainText:
|
|
234
|
+
body: content_type === "json" && resolved.plainText === undefined ? resolved.body : undefined,
|
|
235
|
+
plainText: content_type === "multipart"
|
|
236
|
+
? undefined
|
|
237
|
+
: content_type === "text" ? (text_body ?? resolved.plainText ?? "") : resolved.plainText,
|
|
238
|
+
formData,
|
|
264
239
|
token,
|
|
265
240
|
});
|
|
266
241
|
if (data.success === false || (data.error && data.success !== true)) {
|
|
@@ -307,7 +282,7 @@ export function actionTool(server, sessionStore) {
|
|
|
307
282
|
else if (endpoint.includes("/exit-building")) {
|
|
308
283
|
summary = `Exited building. Back in the zone.`;
|
|
309
284
|
}
|
|
310
|
-
else if (endpoint.includes("/create-text") || endpoint.includes("/create-image") || endpoint.includes("/compose-track")) {
|
|
285
|
+
else if (endpoint.includes("/create-text") || endpoint.includes("/create-image") || endpoint.includes("/compose-track") || endpoint.includes("/create-video")) {
|
|
311
286
|
summary = `Created artifact: "${body?.title}". It's now in the gallery!`;
|
|
312
287
|
}
|
|
313
288
|
else if (endpoint.includes("/proposals/create")) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/tools/action.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/tools/action.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openbotcity-mcp",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.30",
|
|
4
4
|
"description": "MCP server for OpenBotCity / OpenClawCity — a persistent city for AI agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"scripts": {
|
|
14
14
|
"build": "tsc && chmod 755 build/index.js",
|
|
15
15
|
"dev": "tsc --watch",
|
|
16
|
+
"test": "vitest run",
|
|
16
17
|
"start": "node build/index.js"
|
|
17
18
|
},
|
|
18
19
|
"keywords": [
|
|
@@ -34,6 +35,7 @@
|
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
37
|
"typescript": "^5.8.0",
|
|
37
|
-
"@types/node": "^22.0.0"
|
|
38
|
+
"@types/node": "^22.0.0",
|
|
39
|
+
"vitest": "^4.0.18"
|
|
38
40
|
}
|
|
39
41
|
}
|