callman-mcp 0.1.0
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/CHANGELOG.md +28 -0
- package/LICENSE +21 -0
- package/README.md +203 -0
- package/dist/client/api.d.ts +109 -0
- package/dist/client/api.d.ts.map +1 -0
- package/dist/client/api.js +180 -0
- package/dist/client/api.js.map +1 -0
- package/dist/client/errors.d.ts +27 -0
- package/dist/client/errors.d.ts.map +1 -0
- package/dist/client/errors.js +98 -0
- package/dist/client/errors.js.map +1 -0
- package/dist/client/http.d.ts +34 -0
- package/dist/client/http.d.ts.map +1 -0
- package/dist/client/http.js +121 -0
- package/dist/client/http.js.map +1 -0
- package/dist/client/types.d.ts +327 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +5 -0
- package/dist/client/types.js.map +1 -0
- package/dist/config.d.ts +20 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +69 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +35 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +91 -0
- package/dist/context.js.map +1 -0
- package/dist/domain/diagram/build.d.ts +260 -0
- package/dist/domain/diagram/build.d.ts.map +1 -0
- package/dist/domain/diagram/build.js +160 -0
- package/dist/domain/diagram/build.js.map +1 -0
- package/dist/domain/diagram/layout.d.ts +17 -0
- package/dist/domain/diagram/layout.d.ts.map +1 -0
- package/dist/domain/diagram/layout.js +61 -0
- package/dist/domain/diagram/layout.js.map +1 -0
- package/dist/domain/diagram/patch.d.ts +330 -0
- package/dist/domain/diagram/patch.d.ts.map +1 -0
- package/dist/domain/diagram/patch.js +176 -0
- package/dist/domain/diagram/patch.js.map +1 -0
- package/dist/domain/diagram/summarize.d.ts +41 -0
- package/dist/domain/diagram/summarize.d.ts.map +1 -0
- package/dist/domain/diagram/summarize.js +47 -0
- package/dist/domain/diagram/summarize.js.map +1 -0
- package/dist/domain/importDetect.d.ts +6 -0
- package/dist/domain/importDetect.d.ts.map +1 -0
- package/dist/domain/importDetect.js +32 -0
- package/dist/domain/importDetect.js.map +1 -0
- package/dist/domain/requestShape.d.ts +796 -0
- package/dist/domain/requestShape.d.ts.map +1 -0
- package/dist/domain/requestShape.js +250 -0
- package/dist/domain/requestShape.js.map +1 -0
- package/dist/domain/resolve.d.ts +30 -0
- package/dist/domain/resolve.d.ts.map +1 -0
- package/dist/domain/resolve.js +56 -0
- package/dist/domain/resolve.js.map +1 -0
- package/dist/domain/scenario/build.d.ts +270 -0
- package/dist/domain/scenario/build.d.ts.map +1 -0
- package/dist/domain/scenario/build.js +135 -0
- package/dist/domain/scenario/build.js.map +1 -0
- package/dist/domain/scenario/summarize.d.ts +206 -0
- package/dist/domain/scenario/summarize.d.ts.map +1 -0
- package/dist/domain/scenario/summarize.js +138 -0
- package/dist/domain/scenario/summarize.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +142 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/cache.d.ts +12 -0
- package/dist/lib/cache.d.ts.map +1 -0
- package/dist/lib/cache.js +40 -0
- package/dist/lib/cache.js.map +1 -0
- package/dist/lib/ids.d.ts +5 -0
- package/dist/lib/ids.d.ts.map +1 -0
- package/dist/lib/ids.js +19 -0
- package/dist/lib/ids.js.map +1 -0
- package/dist/lib/log.d.ts +10 -0
- package/dist/lib/log.d.ts.map +1 -0
- package/dist/lib/log.js +25 -0
- package/dist/lib/log.js.map +1 -0
- package/dist/lib/mask.d.ts +24 -0
- package/dist/lib/mask.d.ts.map +1 -0
- package/dist/lib/mask.js +63 -0
- package/dist/lib/mask.js.map +1 -0
- package/dist/lib/pagination.d.ts +21 -0
- package/dist/lib/pagination.d.ts.map +1 -0
- package/dist/lib/pagination.js +40 -0
- package/dist/lib/pagination.js.map +1 -0
- package/dist/lib/truncate.d.ts +25 -0
- package/dist/lib/truncate.d.ts.map +1 -0
- package/dist/lib/truncate.js +45 -0
- package/dist/lib/truncate.js.map +1 -0
- package/dist/main.d.ts +9 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +12 -0
- package/dist/main.js.map +1 -0
- package/dist/prompts/index.d.ts +4 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +72 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/resources/docs/diagramSchema.d.ts +2 -0
- package/dist/resources/docs/diagramSchema.d.ts.map +1 -0
- package/dist/resources/docs/diagramSchema.js +65 -0
- package/dist/resources/docs/diagramSchema.js.map +1 -0
- package/dist/resources/docs/overview.d.ts +2 -0
- package/dist/resources/docs/overview.d.ts.map +1 -0
- package/dist/resources/docs/overview.js +46 -0
- package/dist/resources/docs/overview.js.map +1 -0
- package/dist/resources/docs/requestSchema.d.ts +2 -0
- package/dist/resources/docs/requestSchema.d.ts.map +1 -0
- package/dist/resources/docs/requestSchema.js +70 -0
- package/dist/resources/docs/requestSchema.js.map +1 -0
- package/dist/resources/generated/aiPacks.d.ts +3 -0
- package/dist/resources/generated/aiPacks.d.ts.map +1 -0
- package/dist/resources/generated/aiPacks.js +11 -0
- package/dist/resources/generated/aiPacks.js.map +1 -0
- package/dist/resources/index.d.ts +4 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +114 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/run/executeCollection.d.ts +19 -0
- package/dist/run/executeCollection.d.ts.map +1 -0
- package/dist/run/executeCollection.js +89 -0
- package/dist/run/executeCollection.js.map +1 -0
- package/dist/run/loadBundle.d.ts +9 -0
- package/dist/run/loadBundle.d.ts.map +1 -0
- package/dist/run/loadBundle.js +242 -0
- package/dist/run/loadBundle.js.map +1 -0
- package/dist/run/resolveTemplate.d.ts +2 -0
- package/dist/run/resolveTemplate.d.ts.map +1 -0
- package/dist/run/resolveTemplate.js +12 -0
- package/dist/run/resolveTemplate.js.map +1 -0
- package/dist/run/summarize.d.ts +73 -0
- package/dist/run/summarize.d.ts.map +1 -0
- package/dist/run/summarize.js +69 -0
- package/dist/run/summarize.js.map +1 -0
- package/dist/run/types.d.ts +46 -0
- package/dist/run/types.d.ts.map +1 -0
- package/dist/run/types.js +2 -0
- package/dist/run/types.js.map +1 -0
- package/dist/server.d.ts +23 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +25 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/catalog.d.ts +18 -0
- package/dist/tools/catalog.d.ts.map +1 -0
- package/dist/tools/catalog.js +66 -0
- package/dist/tools/catalog.js.map +1 -0
- package/dist/tools/collections.d.ts +4 -0
- package/dist/tools/collections.d.ts.map +1 -0
- package/dist/tools/collections.js +201 -0
- package/dist/tools/collections.js.map +1 -0
- package/dist/tools/diagrams.d.ts +4 -0
- package/dist/tools/diagrams.d.ts.map +1 -0
- package/dist/tools/diagrams.js +226 -0
- package/dist/tools/diagrams.js.map +1 -0
- package/dist/tools/environments.d.ts +4 -0
- package/dist/tools/environments.d.ts.map +1 -0
- package/dist/tools/environments.js +150 -0
- package/dist/tools/environments.js.map +1 -0
- package/dist/tools/import.d.ts +6 -0
- package/dist/tools/import.d.ts.map +1 -0
- package/dist/tools/import.js +144 -0
- package/dist/tools/import.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +26 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/lookups.d.ts +33 -0
- package/dist/tools/lookups.d.ts.map +1 -0
- package/dist/tools/lookups.js +132 -0
- package/dist/tools/lookups.js.map +1 -0
- package/dist/tools/meta.d.ts +4 -0
- package/dist/tools/meta.d.ts.map +1 -0
- package/dist/tools/meta.js +78 -0
- package/dist/tools/meta.js.map +1 -0
- package/dist/tools/requests.d.ts +4 -0
- package/dist/tools/requests.d.ts.map +1 -0
- package/dist/tools/requests.js +247 -0
- package/dist/tools/requests.js.map +1 -0
- package/dist/tools/run.d.ts +4 -0
- package/dist/tools/run.d.ts.map +1 -0
- package/dist/tools/run.js +167 -0
- package/dist/tools/run.js.map +1 -0
- package/dist/tools/scenarios.d.ts +4 -0
- package/dist/tools/scenarios.d.ts.map +1 -0
- package/dist/tools/scenarios.js +242 -0
- package/dist/tools/scenarios.js.map +1 -0
- package/dist/tools/shared.d.ts +20 -0
- package/dist/tools/shared.d.ts.map +1 -0
- package/dist/tools/shared.js +74 -0
- package/dist/tools/shared.js.map +1 -0
- package/dist/tools/workspaces.d.ts +4 -0
- package/dist/tools/workspaces.d.ts.map +1 -0
- package/dist/tools/workspaces.js +80 -0
- package/dist/tools/workspaces.js.map +1 -0
- package/dist-cjs/client/api.js +183 -0
- package/dist-cjs/client/errors.js +104 -0
- package/dist-cjs/client/http.js +124 -0
- package/dist-cjs/client/types.js +5 -0
- package/dist-cjs/config.js +73 -0
- package/dist-cjs/context.js +94 -0
- package/dist-cjs/domain/diagram/build.js +164 -0
- package/dist-cjs/domain/diagram/layout.js +98 -0
- package/dist-cjs/domain/diagram/patch.js +179 -0
- package/dist-cjs/domain/diagram/summarize.js +52 -0
- package/dist-cjs/domain/importDetect.js +40 -0
- package/dist-cjs/domain/requestShape.js +260 -0
- package/dist-cjs/domain/resolve.js +63 -0
- package/dist-cjs/domain/scenario/build.js +140 -0
- package/dist-cjs/domain/scenario/summarize.js +144 -0
- package/dist-cjs/lib/cache.js +43 -0
- package/dist-cjs/lib/ids.js +24 -0
- package/dist-cjs/lib/log.js +28 -0
- package/dist-cjs/lib/mask.js +72 -0
- package/dist-cjs/lib/pagination.js +48 -0
- package/dist-cjs/lib/truncate.js +52 -0
- package/dist-cjs/main.js +31 -0
- package/dist-cjs/package.json +3 -0
- package/dist-cjs/prompts/index.js +75 -0
- package/dist-cjs/resources/docs/diagramSchema.js +67 -0
- package/dist-cjs/resources/docs/overview.js +48 -0
- package/dist-cjs/resources/docs/requestSchema.js +72 -0
- package/dist-cjs/resources/generated/aiPacks.js +13 -0
- package/dist-cjs/resources/index.js +117 -0
- package/dist-cjs/run/executeCollection.js +93 -0
- package/dist-cjs/run/loadBundle.js +246 -0
- package/dist-cjs/run/resolveTemplate.js +15 -0
- package/dist-cjs/run/summarize.js +73 -0
- package/dist-cjs/run/types.js +2 -0
- package/dist-cjs/server.js +28 -0
- package/dist-cjs/tools/catalog.js +69 -0
- package/dist-cjs/tools/collections.js +204 -0
- package/dist-cjs/tools/diagrams.js +229 -0
- package/dist-cjs/tools/environments.js +153 -0
- package/dist-cjs/tools/import.js +147 -0
- package/dist-cjs/tools/index.js +31 -0
- package/dist-cjs/tools/lookups.js +149 -0
- package/dist-cjs/tools/meta.js +81 -0
- package/dist-cjs/tools/requests.js +250 -0
- package/dist-cjs/tools/run.js +203 -0
- package/dist-cjs/tools/scenarios.js +245 -0
- package/dist-cjs/tools/shared.js +81 -0
- package/dist-cjs/tools/workspaces.js +83 -0
- package/package.json +80 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// Errors from the Callman API, carrying the backend's error code so tools can
|
|
2
|
+
// turn them into actionable text for the model (see `hintFor`).
|
|
3
|
+
export class CallmanApiError extends Error {
|
|
4
|
+
status;
|
|
5
|
+
code;
|
|
6
|
+
details;
|
|
7
|
+
method;
|
|
8
|
+
path;
|
|
9
|
+
constructor(input) {
|
|
10
|
+
super(input.message);
|
|
11
|
+
this.name = "CallmanApiError";
|
|
12
|
+
this.status = input.status;
|
|
13
|
+
this.code = input.code;
|
|
14
|
+
this.details = input.details;
|
|
15
|
+
this.method = input.method;
|
|
16
|
+
this.path = input.path;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export class CallmanNetworkError extends Error {
|
|
20
|
+
apiUrl;
|
|
21
|
+
cause;
|
|
22
|
+
constructor(apiUrl, message, cause) {
|
|
23
|
+
super(message);
|
|
24
|
+
this.name = "CallmanNetworkError";
|
|
25
|
+
this.apiUrl = apiUrl;
|
|
26
|
+
this.cause = cause;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
// Raised by tools before any API call: bad references, missing scopes known
|
|
30
|
+
// up front, disabled features, ambiguous names. `data` is surfaced verbatim
|
|
31
|
+
// in structuredContent so the model can act (e.g. pick a candidate).
|
|
32
|
+
export class ToolInputError extends Error {
|
|
33
|
+
code;
|
|
34
|
+
data;
|
|
35
|
+
constructor(code, message, data) {
|
|
36
|
+
super(message);
|
|
37
|
+
this.name = "ToolInputError";
|
|
38
|
+
this.code = code;
|
|
39
|
+
this.data = data;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const SCOPE_HINT = "Create a token with that permission in the Callman desktop app (Settings → AI tools → New token) and update the CALLMAN_TOKEN in your MCP config.";
|
|
43
|
+
export const hintFor = (error) => {
|
|
44
|
+
switch (error.code) {
|
|
45
|
+
case "PAT_SCOPE_MISSING": {
|
|
46
|
+
const required = Array.isArray(error.details?.required)
|
|
47
|
+
? (error.details.required ?? []).join(" or ")
|
|
48
|
+
: "an additional scope";
|
|
49
|
+
return `The token lacks the permission ${required}. ${SCOPE_HINT}`;
|
|
50
|
+
}
|
|
51
|
+
case "PAT_ROUTE_FORBIDDEN":
|
|
52
|
+
return "This area of Callman is not available to AI tools yet (mocks, connections, history, UI tests, admin). Use the desktop app for it.";
|
|
53
|
+
case "FEATURE_DISABLED":
|
|
54
|
+
return "AI tools are switched off for this account by an administrator (feature flag mcp). Ask them to enable it in the admin panel.";
|
|
55
|
+
case "SECRET_MASKED_VALUE_REJECTED":
|
|
56
|
+
return "A masked value (••••) was sent back as if it were real. Read the value with get_environment reveal:true (needs environments:reveal) or set a new real value.";
|
|
57
|
+
case "SCENARIO_VERSION_CONFLICT":
|
|
58
|
+
return "Someone changed the scenario since it was read. Re-read it with get_scenario, reapply your change on the current version, then call update_scenario with the new expectedVersion (or force:true to overwrite).";
|
|
59
|
+
case "DIAGRAM_DOCUMENT_INVALID":
|
|
60
|
+
return "The diagram document was rejected by the server's validator; fix the listed errors (unknown component types are listed under unknownTypes — read callman://diagram/components).";
|
|
61
|
+
case "PERSONAL_TOKEN_LIMIT":
|
|
62
|
+
return "You have reached the maximum number of active personal tokens. Revoke an old one in Settings → AI tools.";
|
|
63
|
+
case "WORKSPACE_MEMBER_USER_NOT_FOUND":
|
|
64
|
+
return "No Callman account exists for that email, and the server does not send invitations. Ask the person to sign up (cloud) or sign in once (on-prem, LDAP), then add them again.";
|
|
65
|
+
case "WORKSPACE_MEMBER_EXISTS":
|
|
66
|
+
return "That person is already a member of the workspace. Use list_workspace_members to see their role.";
|
|
67
|
+
case "WORKSPACE_MEMBER_REMOVE_FORBIDDEN":
|
|
68
|
+
return "That member cannot be removed (the last owner of a workspace must stay).";
|
|
69
|
+
case "VALIDATION_ERROR":
|
|
70
|
+
return "The request body did not pass validation — check the listed fields against callman://docs/request-schema.";
|
|
71
|
+
case "WORKSPACE_ACCESS_DENIED":
|
|
72
|
+
case "WORKSPACE_NOT_FOUND":
|
|
73
|
+
case "WORKSPACE_ID_REQUIRED":
|
|
74
|
+
case "WORKSPACE_REQUIRED":
|
|
75
|
+
return "Pass `workspace` (name or id) to the tool, or set CALLMAN_WORKSPACE_ID in the MCP config. Call list_workspaces to see the options.";
|
|
76
|
+
default:
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
switch (error.status) {
|
|
80
|
+
case 401:
|
|
81
|
+
return "The token was rejected (missing, expired or revoked). Create a new token in the Callman desktop app (Settings → AI tools) and set CALLMAN_TOKEN in your MCP config.";
|
|
82
|
+
case 403:
|
|
83
|
+
return "Your workspace role does not allow this (viewers cannot write). Ask a workspace owner for the editor role, or pick another workspace.";
|
|
84
|
+
case 404:
|
|
85
|
+
return "Nothing matched that id. Use the list_* / search_* tools to find the right item — names work as references too.";
|
|
86
|
+
case 409:
|
|
87
|
+
return "That name already exists. Pick another name or reuse the existing item (list it first).";
|
|
88
|
+
case 413:
|
|
89
|
+
return "The payload is too large for the server. Split the import or reduce the document.";
|
|
90
|
+
case 429:
|
|
91
|
+
return "Rate limit reached for this token. Wait for the Retry-After period and try again with fewer calls.";
|
|
92
|
+
default:
|
|
93
|
+
return error.status >= 500
|
|
94
|
+
? "The Callman server returned an error. Try again; if it persists, check the server logs."
|
|
95
|
+
: "See the error details.";
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/client/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Logger } from "../lib/log.js";
|
|
2
|
+
export interface HttpClientOptions {
|
|
3
|
+
apiUrl: string;
|
|
4
|
+
token: string | null;
|
|
5
|
+
fetch?: typeof fetch;
|
|
6
|
+
timeoutMs?: number;
|
|
7
|
+
userAgent?: string;
|
|
8
|
+
logger?: Logger;
|
|
9
|
+
}
|
|
10
|
+
export interface RequestOptions {
|
|
11
|
+
query?: Record<string, string | number | boolean | null | undefined>;
|
|
12
|
+
body?: unknown;
|
|
13
|
+
workspaceId?: string | null;
|
|
14
|
+
retries?: number;
|
|
15
|
+
timeoutMs?: number;
|
|
16
|
+
}
|
|
17
|
+
export declare class CallmanHttpClient {
|
|
18
|
+
readonly apiUrl: string;
|
|
19
|
+
private readonly token;
|
|
20
|
+
private readonly fetchImpl;
|
|
21
|
+
private readonly timeoutMs;
|
|
22
|
+
private readonly userAgent;
|
|
23
|
+
private readonly logger;
|
|
24
|
+
constructor(options: HttpClientOptions);
|
|
25
|
+
get hasToken(): boolean;
|
|
26
|
+
buildUrl(path: string, query?: RequestOptions["query"]): string;
|
|
27
|
+
request<T>(method: string, path: string, options?: RequestOptions): Promise<T>;
|
|
28
|
+
requestRaw(method: string, path: string, options?: RequestOptions): Promise<{
|
|
29
|
+
status: number;
|
|
30
|
+
data: unknown;
|
|
31
|
+
}>;
|
|
32
|
+
private once;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/client/http.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAS5C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACrE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgBD,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,OAAO,EAAE,iBAAiB;IAStC,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,MAAM;IASzD,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAMlF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;YAmB1G,IAAI;CAoEnB"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { CallmanApiError, CallmanNetworkError } from "./errors.js";
|
|
2
|
+
import { silentLogger } from "../lib/log.js";
|
|
3
|
+
const isEnvelope = (value) => typeof value === "object" && value !== null && "success" in value;
|
|
4
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
5
|
+
export class CallmanHttpClient {
|
|
6
|
+
apiUrl;
|
|
7
|
+
token;
|
|
8
|
+
fetchImpl;
|
|
9
|
+
timeoutMs;
|
|
10
|
+
userAgent;
|
|
11
|
+
logger;
|
|
12
|
+
constructor(options) {
|
|
13
|
+
this.apiUrl = options.apiUrl.replace(/\/+$/, "");
|
|
14
|
+
this.token = options.token;
|
|
15
|
+
this.fetchImpl = options.fetch ?? globalThis.fetch;
|
|
16
|
+
this.timeoutMs = options.timeoutMs ?? 30_000;
|
|
17
|
+
this.userAgent = options.userAgent ?? "callman-mcp";
|
|
18
|
+
this.logger = options.logger ?? silentLogger;
|
|
19
|
+
}
|
|
20
|
+
get hasToken() {
|
|
21
|
+
return Boolean(this.token);
|
|
22
|
+
}
|
|
23
|
+
buildUrl(path, query) {
|
|
24
|
+
const url = new URL(`${this.apiUrl}/api${path.startsWith("/") ? path : `/${path}`}`);
|
|
25
|
+
for (const [key, value] of Object.entries(query ?? {})) {
|
|
26
|
+
if (value === undefined || value === null)
|
|
27
|
+
continue;
|
|
28
|
+
url.searchParams.set(key, String(value));
|
|
29
|
+
}
|
|
30
|
+
return url.toString();
|
|
31
|
+
}
|
|
32
|
+
async request(method, path, options = {}) {
|
|
33
|
+
const { status, data } = await this.requestRaw(method, path, options);
|
|
34
|
+
if (status === 204)
|
|
35
|
+
return undefined;
|
|
36
|
+
return data;
|
|
37
|
+
}
|
|
38
|
+
async requestRaw(method, path, options = {}) {
|
|
39
|
+
const url = this.buildUrl(path, options.query);
|
|
40
|
+
const retries = options.retries ?? (method === "GET" ? 2 : 0);
|
|
41
|
+
let attempt = 0;
|
|
42
|
+
for (;;) {
|
|
43
|
+
try {
|
|
44
|
+
return await this.once(method, path, url, options);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
const retryable = error instanceof CallmanNetworkError ||
|
|
48
|
+
(error instanceof CallmanApiError && error.status >= 500 && error.status !== 501);
|
|
49
|
+
if (!retryable || attempt >= retries)
|
|
50
|
+
throw error;
|
|
51
|
+
attempt += 1;
|
|
52
|
+
this.logger.debug(`retrying ${method} ${path} (attempt ${attempt + 1})`);
|
|
53
|
+
await sleep(200 * attempt);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async once(method, path, url, options) {
|
|
58
|
+
const headers = {
|
|
59
|
+
Accept: "application/json",
|
|
60
|
+
"User-Agent": this.userAgent,
|
|
61
|
+
};
|
|
62
|
+
if (this.token)
|
|
63
|
+
headers.Authorization = `Bearer ${this.token}`;
|
|
64
|
+
if (options.workspaceId)
|
|
65
|
+
headers["x-workspace-id"] = options.workspaceId;
|
|
66
|
+
if (options.body !== undefined)
|
|
67
|
+
headers["Content-Type"] = "application/json";
|
|
68
|
+
let response;
|
|
69
|
+
try {
|
|
70
|
+
response = await this.fetchImpl(url, {
|
|
71
|
+
method,
|
|
72
|
+
headers,
|
|
73
|
+
body: options.body === undefined ? undefined : JSON.stringify(options.body),
|
|
74
|
+
signal: AbortSignal.timeout(options.timeoutMs ?? this.timeoutMs),
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
79
|
+
throw new CallmanNetworkError(this.apiUrl, `Could not reach ${this.apiUrl} (${message}). Check CALLMAN_API_URL — on-prem servers need the same address the desktop app uses, reachable from this machine.`, error);
|
|
80
|
+
}
|
|
81
|
+
let parsed = null;
|
|
82
|
+
const text = await response.text();
|
|
83
|
+
if (text) {
|
|
84
|
+
try {
|
|
85
|
+
parsed = JSON.parse(text);
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
parsed = null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (!response.ok) {
|
|
92
|
+
const envelope = isEnvelope(parsed) ? parsed : null;
|
|
93
|
+
const retryAfter = response.headers.get("retry-after");
|
|
94
|
+
throw new CallmanApiError({
|
|
95
|
+
status: response.status,
|
|
96
|
+
code: envelope?.code ?? (response.status === 404 && !envelope ? "ROUTE_NOT_FOUND" : `HTTP_${response.status}`),
|
|
97
|
+
message: envelope?.message ?? envelope?.error ?? `HTTP ${response.status}`,
|
|
98
|
+
details: retryAfter ? { ...(asRecord(envelope?.details) ?? {}), retryAfterSeconds: Number(retryAfter) } : envelope?.details,
|
|
99
|
+
method,
|
|
100
|
+
path,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
if (response.status === 204 || parsed === null)
|
|
104
|
+
return { status: response.status, data: null };
|
|
105
|
+
if (!isEnvelope(parsed))
|
|
106
|
+
return { status: response.status, data: parsed };
|
|
107
|
+
if (parsed.success === false) {
|
|
108
|
+
throw new CallmanApiError({
|
|
109
|
+
status: response.status,
|
|
110
|
+
code: parsed.code ?? "UNEXPECTED_FAILURE",
|
|
111
|
+
message: parsed.message ?? parsed.error ?? "Request failed",
|
|
112
|
+
details: parsed.details,
|
|
113
|
+
method,
|
|
114
|
+
path,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
return { status: response.status, data: parsed.data ?? null };
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
const asRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value) ? value : null;
|
|
121
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/client/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
export interface KeyValuePair {
|
|
2
|
+
key: string;
|
|
3
|
+
value: string;
|
|
4
|
+
enabled?: boolean;
|
|
5
|
+
description?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface PathVariable {
|
|
8
|
+
key: string;
|
|
9
|
+
value?: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface Paginated<T> {
|
|
13
|
+
items: T[];
|
|
14
|
+
pagination: {
|
|
15
|
+
page: number;
|
|
16
|
+
limit: number;
|
|
17
|
+
totalItems: number;
|
|
18
|
+
totalPages: number;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export type WorkspaceRole = "owner" | "editor" | "viewer";
|
|
22
|
+
export interface Workspace {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
slug?: string;
|
|
26
|
+
description?: string | null;
|
|
27
|
+
role: WorkspaceRole;
|
|
28
|
+
memberCount?: number;
|
|
29
|
+
createdAt?: string;
|
|
30
|
+
updatedAt?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface WorkspaceMember {
|
|
33
|
+
id: string;
|
|
34
|
+
workspaceId: string;
|
|
35
|
+
userId: string;
|
|
36
|
+
email: string;
|
|
37
|
+
role: WorkspaceRole;
|
|
38
|
+
status: "active" | "invited";
|
|
39
|
+
}
|
|
40
|
+
export interface PersonalTokenMe {
|
|
41
|
+
token: {
|
|
42
|
+
id: string;
|
|
43
|
+
name: string;
|
|
44
|
+
kind: "personal" | "workspace";
|
|
45
|
+
scopes: string[];
|
|
46
|
+
expiresAt: string | null;
|
|
47
|
+
lastUsedAt: string | null;
|
|
48
|
+
};
|
|
49
|
+
user: {
|
|
50
|
+
id: string;
|
|
51
|
+
email: string;
|
|
52
|
+
displayName: string | null;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export interface Collection {
|
|
56
|
+
id: string;
|
|
57
|
+
workspaceId: string;
|
|
58
|
+
name: string;
|
|
59
|
+
ownerId: string;
|
|
60
|
+
members?: string[];
|
|
61
|
+
runnerSettings?: {
|
|
62
|
+
database?: boolean;
|
|
63
|
+
kafka?: boolean;
|
|
64
|
+
redis?: boolean;
|
|
65
|
+
};
|
|
66
|
+
role?: "owner" | "member";
|
|
67
|
+
isStarred?: boolean;
|
|
68
|
+
requestCount?: number;
|
|
69
|
+
folderCount?: number;
|
|
70
|
+
createdAt?: string;
|
|
71
|
+
updatedAt?: string;
|
|
72
|
+
}
|
|
73
|
+
export interface Folder {
|
|
74
|
+
id: string;
|
|
75
|
+
name: string;
|
|
76
|
+
collectionId: string;
|
|
77
|
+
parentId: string | null;
|
|
78
|
+
sortOrder?: number;
|
|
79
|
+
}
|
|
80
|
+
export interface FolderTreeNode extends Folder {
|
|
81
|
+
children: FolderTreeNode[];
|
|
82
|
+
}
|
|
83
|
+
export interface FolderTree {
|
|
84
|
+
collectionId: string;
|
|
85
|
+
tree: FolderTreeNode[];
|
|
86
|
+
}
|
|
87
|
+
export interface RequestTreeItem {
|
|
88
|
+
id: string;
|
|
89
|
+
name: string;
|
|
90
|
+
method: string;
|
|
91
|
+
url: string;
|
|
92
|
+
folderId: string | null;
|
|
93
|
+
collectionId: string;
|
|
94
|
+
sortOrder?: number;
|
|
95
|
+
isEnabledInRunner?: boolean;
|
|
96
|
+
}
|
|
97
|
+
export interface RequestAuth {
|
|
98
|
+
type: "none" | "bearer" | "basic" | "apikey" | "oauth2";
|
|
99
|
+
bearerToken?: string;
|
|
100
|
+
basicUsername?: string;
|
|
101
|
+
basicPassword?: string;
|
|
102
|
+
apiKeyKey?: string;
|
|
103
|
+
apiKeyValue?: string;
|
|
104
|
+
apiKeyLocation?: "header" | "query";
|
|
105
|
+
oauth2?: Record<string, unknown>;
|
|
106
|
+
}
|
|
107
|
+
export interface ApiRequest extends RequestTreeItem {
|
|
108
|
+
workspaceId: string;
|
|
109
|
+
headers: KeyValuePair[];
|
|
110
|
+
query: KeyValuePair[];
|
|
111
|
+
pathVariables?: PathVariable[];
|
|
112
|
+
body: unknown;
|
|
113
|
+
auth?: RequestAuth;
|
|
114
|
+
database?: unknown;
|
|
115
|
+
kafka?: unknown;
|
|
116
|
+
redis?: unknown;
|
|
117
|
+
dbAssertions?: unknown[];
|
|
118
|
+
preRequestScript?: string;
|
|
119
|
+
postResponseScript?: string;
|
|
120
|
+
testsScript?: string;
|
|
121
|
+
kafkaScript?: string;
|
|
122
|
+
createdAt?: string;
|
|
123
|
+
updatedAt?: string;
|
|
124
|
+
}
|
|
125
|
+
export interface Environment {
|
|
126
|
+
id: string;
|
|
127
|
+
workspaceId: string;
|
|
128
|
+
name: string;
|
|
129
|
+
variables: Array<KeyValuePair & {
|
|
130
|
+
valueMasked?: boolean;
|
|
131
|
+
}>;
|
|
132
|
+
createdAt?: string;
|
|
133
|
+
updatedAt?: string;
|
|
134
|
+
}
|
|
135
|
+
export interface GlobalVariable {
|
|
136
|
+
id: string;
|
|
137
|
+
key: string;
|
|
138
|
+
value: string;
|
|
139
|
+
valueMasked?: boolean;
|
|
140
|
+
}
|
|
141
|
+
export type ScenarioReviewStatus = "draft" | "pending_review" | "approved" | "changes_requested";
|
|
142
|
+
export type ScenarioPriority = "critical" | "high" | "medium" | "low";
|
|
143
|
+
export interface ScenarioNode {
|
|
144
|
+
id: string;
|
|
145
|
+
type: string;
|
|
146
|
+
position: {
|
|
147
|
+
x: number;
|
|
148
|
+
y: number;
|
|
149
|
+
};
|
|
150
|
+
data: {
|
|
151
|
+
label?: string;
|
|
152
|
+
config: Record<string, unknown>;
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
export interface ScenarioEdge {
|
|
156
|
+
id: string;
|
|
157
|
+
source: string;
|
|
158
|
+
target: string;
|
|
159
|
+
type?: "default" | "yes" | "no" | "error";
|
|
160
|
+
}
|
|
161
|
+
export interface ScenarioEnvironment {
|
|
162
|
+
id: string;
|
|
163
|
+
name: string;
|
|
164
|
+
variables: Array<{
|
|
165
|
+
id: string;
|
|
166
|
+
key: string;
|
|
167
|
+
value: string;
|
|
168
|
+
enabled: boolean;
|
|
169
|
+
valueMasked?: boolean;
|
|
170
|
+
}>;
|
|
171
|
+
}
|
|
172
|
+
export interface Scenario {
|
|
173
|
+
id: string;
|
|
174
|
+
name: string;
|
|
175
|
+
description: string | null;
|
|
176
|
+
priority: ScenarioPriority;
|
|
177
|
+
workspaceId: string;
|
|
178
|
+
folderId: string | null;
|
|
179
|
+
groupId?: string | null;
|
|
180
|
+
groupName?: string | null;
|
|
181
|
+
version: number;
|
|
182
|
+
nodes: ScenarioNode[];
|
|
183
|
+
edges: ScenarioEdge[];
|
|
184
|
+
environments: ScenarioEnvironment[];
|
|
185
|
+
dataset?: {
|
|
186
|
+
columns: string[];
|
|
187
|
+
rows: Array<Record<string, string>>;
|
|
188
|
+
} | null;
|
|
189
|
+
reviewStatus: ScenarioReviewStatus;
|
|
190
|
+
approvedVersion?: number | null;
|
|
191
|
+
permissions?: {
|
|
192
|
+
canEdit?: boolean;
|
|
193
|
+
canDelete?: boolean;
|
|
194
|
+
canRun?: boolean;
|
|
195
|
+
canSubmit?: boolean;
|
|
196
|
+
};
|
|
197
|
+
graph?: {
|
|
198
|
+
startNodeIds: string[];
|
|
199
|
+
warnings: string[];
|
|
200
|
+
};
|
|
201
|
+
createdAt?: string;
|
|
202
|
+
updatedAt?: string;
|
|
203
|
+
}
|
|
204
|
+
export interface ScenarioFolder {
|
|
205
|
+
id: string;
|
|
206
|
+
name: string;
|
|
207
|
+
workspaceId: string;
|
|
208
|
+
groupId?: string | null;
|
|
209
|
+
}
|
|
210
|
+
export interface ScenarioRunSummary {
|
|
211
|
+
totalNodes: number;
|
|
212
|
+
successfulNodes: number;
|
|
213
|
+
failedNodes: number;
|
|
214
|
+
skippedNodes: number;
|
|
215
|
+
retriedNodes: number;
|
|
216
|
+
totalTests: number;
|
|
217
|
+
passedTests: number;
|
|
218
|
+
failedTests: number;
|
|
219
|
+
finalNode: string | null;
|
|
220
|
+
failedNode: string | null;
|
|
221
|
+
}
|
|
222
|
+
export type ScenarioRunStatus = "queued" | "running" | "success" | "failed" | "completed_with_failures" | "stopped";
|
|
223
|
+
export interface ScenarioRunTrigger {
|
|
224
|
+
reportId: string;
|
|
225
|
+
status: ScenarioRunStatus;
|
|
226
|
+
summary?: ScenarioRunSummary;
|
|
227
|
+
}
|
|
228
|
+
export interface ScenarioRunListItem {
|
|
229
|
+
reportId: string;
|
|
230
|
+
status: ScenarioRunStatus;
|
|
231
|
+
startedAt: string;
|
|
232
|
+
durationMs: number;
|
|
233
|
+
failedNode: string | null;
|
|
234
|
+
triggerType: string;
|
|
235
|
+
}
|
|
236
|
+
export interface ScenarioNodeResult {
|
|
237
|
+
stepId?: string;
|
|
238
|
+
nodeId: string;
|
|
239
|
+
label: string;
|
|
240
|
+
type: string;
|
|
241
|
+
status: string;
|
|
242
|
+
durationMs: number | null;
|
|
243
|
+
attempts?: number;
|
|
244
|
+
retryCount?: number;
|
|
245
|
+
statusCode?: number | null;
|
|
246
|
+
error?: {
|
|
247
|
+
message: string | null;
|
|
248
|
+
} | null;
|
|
249
|
+
scriptResults?: Array<{
|
|
250
|
+
name: string;
|
|
251
|
+
status: "PASS" | "FAIL";
|
|
252
|
+
message?: string;
|
|
253
|
+
}>;
|
|
254
|
+
contractResults?: Array<{
|
|
255
|
+
name?: string;
|
|
256
|
+
status?: string;
|
|
257
|
+
message?: string;
|
|
258
|
+
}>;
|
|
259
|
+
assertionSummary?: unknown;
|
|
260
|
+
conditionResult?: boolean | null;
|
|
261
|
+
response?: unknown;
|
|
262
|
+
outputSnapshot?: unknown;
|
|
263
|
+
logs?: Array<{
|
|
264
|
+
level?: string;
|
|
265
|
+
message?: string;
|
|
266
|
+
}>;
|
|
267
|
+
}
|
|
268
|
+
export interface ScenarioRunReport {
|
|
269
|
+
id: string;
|
|
270
|
+
scenarioId: string;
|
|
271
|
+
scenarioName: string;
|
|
272
|
+
scenarioVersion: number;
|
|
273
|
+
status: ScenarioRunStatus;
|
|
274
|
+
triggerType: string;
|
|
275
|
+
startedAt: string;
|
|
276
|
+
endedAt: string;
|
|
277
|
+
durationMs: number;
|
|
278
|
+
summary: ScenarioRunSummary;
|
|
279
|
+
nodeResults: ScenarioNodeResult[];
|
|
280
|
+
iterations?: unknown[] | null;
|
|
281
|
+
}
|
|
282
|
+
export interface Diagram {
|
|
283
|
+
id: string;
|
|
284
|
+
name: string;
|
|
285
|
+
ownerId: string;
|
|
286
|
+
owner?: {
|
|
287
|
+
id?: string;
|
|
288
|
+
email?: string;
|
|
289
|
+
displayName?: string | null;
|
|
290
|
+
} | null;
|
|
291
|
+
canEdit: boolean;
|
|
292
|
+
sharedWorkspaceIds: string[];
|
|
293
|
+
editorIds: string[];
|
|
294
|
+
document: unknown;
|
|
295
|
+
createdAt?: string;
|
|
296
|
+
updatedAt?: string;
|
|
297
|
+
}
|
|
298
|
+
export interface ImportResult {
|
|
299
|
+
collection: Collection;
|
|
300
|
+
importedCounts: {
|
|
301
|
+
folders: number;
|
|
302
|
+
requests: number;
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
export interface ScenarioImportResult {
|
|
306
|
+
scenario: Scenario;
|
|
307
|
+
warnings: string[];
|
|
308
|
+
}
|
|
309
|
+
export interface PipelineBundle {
|
|
310
|
+
collection: Record<string, unknown>;
|
|
311
|
+
environment: {
|
|
312
|
+
id: string;
|
|
313
|
+
name: string;
|
|
314
|
+
variables: Record<string, string>;
|
|
315
|
+
} | null;
|
|
316
|
+
connections?: Array<{
|
|
317
|
+
id: string;
|
|
318
|
+
type: string;
|
|
319
|
+
provider: string;
|
|
320
|
+
name: string;
|
|
321
|
+
config: Record<string, unknown>;
|
|
322
|
+
}>;
|
|
323
|
+
}
|
|
324
|
+
export interface FeatureMap {
|
|
325
|
+
features: Record<string, boolean>;
|
|
326
|
+
}
|
|
327
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,6EAA6E;AAC7E,oDAAoD"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const DEFAULT_CLOUD_API_URL = "https://api.callman.io";
|
|
2
|
+
export type LogLevel = "silent" | "error" | "warn" | "info" | "debug";
|
|
3
|
+
export interface CallmanMcpConfig {
|
|
4
|
+
apiUrl: string;
|
|
5
|
+
token: string | null;
|
|
6
|
+
defaultWorkspaceId: string | null;
|
|
7
|
+
allowLocalRun: boolean;
|
|
8
|
+
logLevel: LogLevel;
|
|
9
|
+
timeoutMs: number;
|
|
10
|
+
runTimeoutMs: number;
|
|
11
|
+
maxBodyBytes: number;
|
|
12
|
+
}
|
|
13
|
+
export interface ConfigSources {
|
|
14
|
+
env: Record<string, string | undefined>;
|
|
15
|
+
readTokenFile?: (path: string) => string;
|
|
16
|
+
}
|
|
17
|
+
export declare const MAX_BODY_BYTES_LIMIT: number;
|
|
18
|
+
export declare const normalizeApiUrl: (raw: string) => string;
|
|
19
|
+
export declare const resolveConfig: ({ env, readTokenFile }: ConfigSources) => CallmanMcpConfig;
|
|
20
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAE9D,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAExC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC1C;AAGD,eAAO,MAAM,oBAAoB,QAAa,CAAC;AAoB/C,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,KAAG,MAQ7C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,wBAAwB,aAAa,KAAG,gBAuBrE,CAAC"}
|