@paperclipai/shared 2026.921.0-beta.0 → 2026.921.0-beta.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/.paperclip-build-complete +1 -1
- package/dist/agent-appearance.d.ts +53 -0
- package/dist/agent-appearance.d.ts.map +1 -0
- package/dist/agent-appearance.js +51 -0
- package/dist/agent-appearance.js.map +1 -0
- package/dist/agent-appearance.test.d.ts +2 -0
- package/dist/agent-appearance.test.d.ts.map +1 -0
- package/dist/agent-appearance.test.js +32 -0
- package/dist/agent-appearance.test.js.map +1 -0
- package/dist/app-definitions/arcade.json +36 -0
- package/dist/app-definitions/composio.json +15 -28
- package/dist/app-definitions/executor.json +36 -0
- package/dist/app-definitions/railway.json +61 -0
- package/dist/app-definitions/youcom.json +100 -0
- package/dist/app-definitions-url.test.js +2 -2
- package/dist/app-definitions-url.test.js.map +1 -1
- package/dist/app-definitions.d.ts.map +1 -1
- package/dist/app-definitions.generated.d.ts.map +1 -1
- package/dist/app-definitions.generated.js +73 -69
- package/dist/app-definitions.generated.js.map +1 -1
- package/dist/app-definitions.js +3 -1
- package/dist/app-definitions.js.map +1 -1
- package/dist/app-definitions.test.js +35 -7
- package/dist/app-definitions.test.js.map +1 -1
- package/{LICENSE → dist/cliplab/LICENSE} +2 -1
- package/dist/cliplab/PROVENANCE.md +18 -0
- package/dist/cliplab/character.d.ts +4 -0
- package/dist/cliplab/character.d.ts.map +1 -0
- package/dist/cliplab/character.js +2324 -0
- package/dist/cliplab/character.js.map +1 -0
- package/dist/cliplab/definition.d.ts +13 -0
- package/dist/cliplab/definition.d.ts.map +1 -0
- package/dist/cliplab/definition.js +28 -0
- package/dist/cliplab/definition.js.map +1 -0
- package/dist/cliplab/face-morph.d.ts +26 -0
- package/dist/cliplab/face-morph.d.ts.map +1 -0
- package/dist/cliplab/face-morph.js +301 -0
- package/dist/cliplab/face-morph.js.map +1 -0
- package/dist/cliplab/gaze.d.ts +42 -0
- package/dist/cliplab/gaze.d.ts.map +1 -0
- package/dist/cliplab/gaze.js +57 -0
- package/dist/cliplab/gaze.js.map +1 -0
- package/dist/cliplab/model.d.ts +176 -0
- package/dist/cliplab/model.d.ts.map +1 -0
- package/dist/cliplab/model.js +337 -0
- package/dist/cliplab/model.js.map +1 -0
- package/dist/cliplab/palette-tokens.d.ts +75 -0
- package/dist/cliplab/palette-tokens.d.ts.map +1 -0
- package/dist/cliplab/palette-tokens.js +76 -0
- package/dist/cliplab/palette-tokens.js.map +1 -0
- package/dist/cliplab/particles.d.ts +15 -0
- package/dist/cliplab/particles.d.ts.map +1 -0
- package/dist/cliplab/particles.js +23 -0
- package/dist/cliplab/particles.js.map +1 -0
- package/dist/cliplab/renderer.d.ts +129 -0
- package/dist/cliplab/renderer.d.ts.map +1 -0
- package/dist/cliplab/renderer.js +762 -0
- package/dist/cliplab/renderer.js.map +1 -0
- package/dist/cliplab/runtime.d.ts +21 -0
- package/dist/cliplab/runtime.d.ts.map +1 -0
- package/dist/cliplab/runtime.js +140 -0
- package/dist/cliplab/runtime.js.map +1 -0
- package/dist/cliplab/static.d.ts +4 -0
- package/dist/cliplab/static.d.ts.map +1 -0
- package/dist/cliplab/static.js +16 -0
- package/dist/cliplab/static.js.map +1 -0
- package/dist/cliplab/svg-canvas.d.ts +56 -0
- package/dist/cliplab/svg-canvas.d.ts.map +1 -0
- package/dist/cliplab/svg-canvas.js +134 -0
- package/dist/cliplab/svg-canvas.js.map +1 -0
- package/dist/cliplab/svg-path.d.ts +24 -0
- package/dist/cliplab/svg-path.d.ts.map +1 -0
- package/dist/cliplab/svg-path.js +151 -0
- package/dist/cliplab/svg-path.js.map +1 -0
- package/dist/cliplab/svg-snapshot.d.ts +28 -0
- package/dist/cliplab/svg-snapshot.d.ts.map +1 -0
- package/dist/cliplab/svg-snapshot.js +168 -0
- package/dist/cliplab/svg-snapshot.js.map +1 -0
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/feature-catalog.d.ts.map +1 -1
- package/dist/feature-catalog.js +7 -0
- package/dist/feature-catalog.js.map +1 -1
- package/dist/frontmatter-runner-contract.test.d.ts +2 -0
- package/dist/frontmatter-runner-contract.test.d.ts.map +1 -0
- package/dist/frontmatter-runner-contract.test.js +10 -0
- package/dist/frontmatter-runner-contract.test.js.map +1 -0
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/issue-thread-interactions.test.js +30 -1
- package/dist/issue-thread-interactions.test.js.map +1 -1
- package/dist/railway-connection.d.ts +20 -0
- package/dist/railway-connection.d.ts.map +1 -0
- package/dist/railway-connection.js +7 -0
- package/dist/railway-connection.js.map +1 -0
- package/dist/remote-mcp-connectors.d.ts +11 -0
- package/dist/remote-mcp-connectors.d.ts.map +1 -0
- package/dist/remote-mcp-connectors.js +14 -0
- package/dist/remote-mcp-connectors.js.map +1 -0
- package/dist/remote-mcp-connectors.test.d.ts +2 -0
- package/dist/remote-mcp-connectors.test.d.ts.map +1 -0
- package/dist/remote-mcp-connectors.test.js +39 -0
- package/dist/remote-mcp-connectors.test.js.map +1 -0
- package/dist/retired-composio.d.ts +7 -0
- package/dist/retired-composio.d.ts.map +1 -0
- package/dist/retired-composio.js +7 -0
- package/dist/retired-composio.js.map +1 -0
- package/dist/self-serve-mcp-research.json +1 -0
- package/dist/types/agent.d.ts +3 -0
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/agent.js.map +1 -1
- package/dist/types/chat-channels.d.ts +21 -0
- package/dist/types/chat-channels.d.ts.map +1 -1
- package/dist/types/chat-github.d.ts +123 -0
- package/dist/types/chat-github.d.ts.map +1 -0
- package/dist/types/chat-github.js +55 -0
- package/dist/types/chat-github.js.map +1 -0
- package/dist/types/company-portability.d.ts +2 -0
- package/dist/types/company-portability.d.ts.map +1 -1
- package/dist/types/company-skill.d.ts +1 -0
- package/dist/types/company-skill.d.ts.map +1 -1
- package/dist/types/cost.d.ts +5 -0
- package/dist/types/cost.d.ts.map +1 -1
- package/dist/types/execution-continuation.d.ts +9 -0
- package/dist/types/execution-continuation.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/instance.d.ts +2 -0
- package/dist/types/instance.d.ts.map +1 -1
- package/dist/types/instance.js.map +1 -1
- package/dist/types/issue.d.ts +7 -0
- package/dist/types/issue.d.ts.map +1 -1
- package/dist/types/routine.d.ts +10 -0
- package/dist/types/routine.d.ts.map +1 -1
- package/dist/types/secrets.d.ts +3 -0
- package/dist/types/secrets.d.ts.map +1 -1
- package/dist/types/tool-access.d.ts +17 -0
- package/dist/types/tool-access.d.ts.map +1 -1
- package/dist/types/work-timeline.d.ts +3 -0
- package/dist/types/work-timeline.d.ts.map +1 -1
- package/dist/types/work-timeline.js +0 -6
- package/dist/types/work-timeline.js.map +1 -1
- package/dist/validators/agent.d.ts +69 -0
- package/dist/validators/agent.d.ts.map +1 -1
- package/dist/validators/agent.js +2 -0
- package/dist/validators/agent.js.map +1 -1
- package/dist/validators/chat-channels.d.ts +11 -0
- package/dist/validators/chat-channels.d.ts.map +1 -1
- package/dist/validators/chat-channels.js +7 -0
- package/dist/validators/chat-channels.js.map +1 -1
- package/dist/validators/chat-github.d.ts +315 -0
- package/dist/validators/chat-github.d.ts.map +1 -0
- package/dist/validators/chat-github.js +149 -0
- package/dist/validators/chat-github.js.map +1 -0
- package/dist/validators/company-portability.d.ts +46 -0
- package/dist/validators/company-portability.d.ts.map +1 -1
- package/dist/validators/company-portability.js +2 -0
- package/dist/validators/company-portability.js.map +1 -1
- package/dist/validators/company-skill.d.ts +1 -0
- package/dist/validators/company-skill.d.ts.map +1 -1
- package/dist/validators/company-skill.js +1 -0
- package/dist/validators/company-skill.js.map +1 -1
- package/dist/validators/index.d.ts +1 -0
- package/dist/validators/index.d.ts.map +1 -1
- package/dist/validators/index.js +1 -0
- package/dist/validators/index.js.map +1 -1
- package/dist/validators/instance.d.ts +3 -0
- package/dist/validators/instance.d.ts.map +1 -1
- package/dist/validators/instance.js +1 -0
- package/dist/validators/instance.js.map +1 -1
- package/dist/validators/issue.d.ts.map +1 -1
- package/dist/validators/issue.js +46 -1
- package/dist/validators/issue.js.map +1 -1
- package/dist/validators/plugin.d.ts +2 -0
- package/dist/validators/plugin.d.ts.map +1 -1
- package/dist/validators/routine.d.ts +6 -0
- package/dist/validators/routine.d.ts.map +1 -1
- package/dist/validators/routine.js +4 -0
- package/dist/validators/routine.js.map +1 -1
- package/dist/validators/tool-access.d.ts +1 -0
- package/dist/validators/tool-access.d.ts.map +1 -1
- package/dist/validators/tool-access.js +8 -2
- package/dist/validators/tool-access.js.map +1 -1
- package/package.json +6 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"sources":"
|
|
1
|
+
{"sources":"f68eee21ef3fff7bcdfa837780ebb54b2e368f2173b0e1d7d5b2a496c7f1be48","outputs":"4c27c4a9cf1eebb42f2f70296a3bd26685ee5850120f626dd3baf2cdf18db79f"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const AGENT_PALETTE_IDS: readonly ["bubblegum-sky", "pink-lemonade", "orchid-peach", "coral-mint", "lime-lagoon", "arctic-blue", "solar-flare", "violet-ember", "deep-tide", "coral-current", "golden-hour", "tangerine-cobalt", "electric-grove", "flamingo-jade", "cherry-pop", "turquoise-cherry", "ultraviolet-tide"];
|
|
3
|
+
export type AgentPaletteId = typeof AGENT_PALETTE_IDS[number];
|
|
4
|
+
export type CharacterPaletteId = AgentPaletteId | "muted-dream";
|
|
5
|
+
export declare const AGENT_AVATAR_SIZES: readonly [16, 20, 24, 32, 40, 48, 64, 96, 128, 256, 512];
|
|
6
|
+
export type AgentAvatarSize = typeof AGENT_AVATAR_SIZES[number];
|
|
7
|
+
export declare const CHARACTER_STATES: readonly ["rest", "idle", "listening", "thinking", "working", "success", "confused", "sleepy", "loading"];
|
|
8
|
+
export type CharacterState = typeof CHARACTER_STATES[number];
|
|
9
|
+
export declare const agentAppearanceSchema: z.ZodObject<{
|
|
10
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
11
|
+
characterVersion: z.ZodLiteral<"cap-v1">;
|
|
12
|
+
paletteId: z.ZodEnum<{
|
|
13
|
+
"arctic-blue": "arctic-blue";
|
|
14
|
+
"bubblegum-sky": "bubblegum-sky";
|
|
15
|
+
"cherry-pop": "cherry-pop";
|
|
16
|
+
"coral-current": "coral-current";
|
|
17
|
+
"coral-mint": "coral-mint";
|
|
18
|
+
"deep-tide": "deep-tide";
|
|
19
|
+
"electric-grove": "electric-grove";
|
|
20
|
+
"flamingo-jade": "flamingo-jade";
|
|
21
|
+
"golden-hour": "golden-hour";
|
|
22
|
+
"lime-lagoon": "lime-lagoon";
|
|
23
|
+
"orchid-peach": "orchid-peach";
|
|
24
|
+
"pink-lemonade": "pink-lemonade";
|
|
25
|
+
"solar-flare": "solar-flare";
|
|
26
|
+
"tangerine-cobalt": "tangerine-cobalt";
|
|
27
|
+
"turquoise-cherry": "turquoise-cherry";
|
|
28
|
+
"ultraviolet-tide": "ultraviolet-tide";
|
|
29
|
+
"violet-ember": "violet-ember";
|
|
30
|
+
}>;
|
|
31
|
+
}, z.core.$strict>;
|
|
32
|
+
export type AgentAppearance = z.infer<typeof agentAppearanceSchema>;
|
|
33
|
+
export declare function appearanceForPalette(paletteId: AgentPaletteId): AgentAppearance;
|
|
34
|
+
/** A persisted choice, never randomize while rendering. */
|
|
35
|
+
export declare function randomAgentAppearance(): AgentAppearance;
|
|
36
|
+
/** Must match the migration: rolling base-31 hash, modulo 17 at every step. */
|
|
37
|
+
export declare function legacyAgentAppearance(id: string): AgentAppearance;
|
|
38
|
+
export declare function resolveAgentAppearance(appearance: unknown, id?: string): AgentAppearance;
|
|
39
|
+
export declare function agentAvatarUrl(appearance: AgentAppearance, size?: AgentAvatarSize, scale?: 1 | 2, pose?: CharacterState, muted?: boolean): string;
|
|
40
|
+
export declare function characterStateForAgent(status: string): CharacterState;
|
|
41
|
+
/** Hydrate compact agent projections without an additional per-agent request. */
|
|
42
|
+
export declare function withAgentAppearance<T extends {
|
|
43
|
+
id: string;
|
|
44
|
+
appearance?: AgentAppearance | null;
|
|
45
|
+
}>(agent: T): T & {
|
|
46
|
+
appearance: {
|
|
47
|
+
schemaVersion: 1;
|
|
48
|
+
characterVersion: "cap-v1";
|
|
49
|
+
paletteId: "arctic-blue" | "bubblegum-sky" | "cherry-pop" | "coral-current" | "coral-mint" | "deep-tide" | "electric-grove" | "flamingo-jade" | "golden-hour" | "lime-lagoon" | "orchid-peach" | "pink-lemonade" | "solar-flare" | "tangerine-cobalt" | "turquoise-cherry" | "ultraviolet-tide" | "violet-ember";
|
|
50
|
+
};
|
|
51
|
+
avatarUrl: string;
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=agent-appearance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-appearance.d.ts","sourceRoot":"","sources":["../src/agent-appearance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB,YAAI,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,CAAU,CAAC;AAClU,MAAM,MAAM,cAAc,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC9D,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,aAAa,CAAC;AAChE,eAAO,MAAM,kBAAkB,YAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAC3F,MAAM,MAAM,eAAe,GAAG,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAChE,eAAO,MAAM,gBAAgB,YAAI,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAC1I,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC7D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;kBAIvB,CAAC;AACZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,cAAc,GAAG,eAAe,CAE/E;AACD,2DAA2D;AAC3D,wBAAgB,qBAAqB,IAAI,eAAe,CAMvD;AACD,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,CAIjE;AACD,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,SAAU,GAAG,eAAe,CAGzF;AACD,wBAAgB,cAAc,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,GAAE,eAAqB,EAAE,KAAK,GAAE,CAAC,GAAG,CAAK,EAAE,IAAI,GAAE,cAAuB,EAAE,KAAK,UAAQ,GAAG,MAAM,CAE/J;AACD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAKrE;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;CAAE,EAAE,KAAK,EAAE,CAAC;;;;;;;EAG1G"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const AGENT_PALETTE_IDS = ["bubblegum-sky", "pink-lemonade", "orchid-peach", "coral-mint", "lime-lagoon", "arctic-blue", "solar-flare", "violet-ember", "deep-tide", "coral-current", "golden-hour", "tangerine-cobalt", "electric-grove", "flamingo-jade", "cherry-pop", "turquoise-cherry", "ultraviolet-tide"];
|
|
3
|
+
export const AGENT_AVATAR_SIZES = [16, 20, 24, 32, 40, 48, 64, 96, 128, 256, 512];
|
|
4
|
+
export const CHARACTER_STATES = ["rest", "idle", "listening", "thinking", "working", "success", "confused", "sleepy", "loading"];
|
|
5
|
+
export const agentAppearanceSchema = z.object({
|
|
6
|
+
schemaVersion: z.literal(1),
|
|
7
|
+
characterVersion: z.literal("cap-v1"),
|
|
8
|
+
paletteId: z.enum(AGENT_PALETTE_IDS),
|
|
9
|
+
}).strict();
|
|
10
|
+
export function appearanceForPalette(paletteId) {
|
|
11
|
+
return { schemaVersion: 1, characterVersion: "cap-v1", paletteId };
|
|
12
|
+
}
|
|
13
|
+
/** A persisted choice, never randomize while rendering. */
|
|
14
|
+
export function randomAgentAppearance() {
|
|
15
|
+
const bytes = new Uint32Array(1);
|
|
16
|
+
// Rejection sampling avoids modulo bias.
|
|
17
|
+
const limit = Math.floor(0x100000000 / AGENT_PALETTE_IDS.length) * AGENT_PALETTE_IDS.length;
|
|
18
|
+
do {
|
|
19
|
+
globalThis.crypto.getRandomValues(bytes);
|
|
20
|
+
} while (bytes[0] >= limit);
|
|
21
|
+
return appearanceForPalette(AGENT_PALETTE_IDS[bytes[0] % AGENT_PALETTE_IDS.length]);
|
|
22
|
+
}
|
|
23
|
+
/** Must match the migration: rolling base-31 hash, modulo 17 at every step. */
|
|
24
|
+
export function legacyAgentAppearance(id) {
|
|
25
|
+
let hash = 0;
|
|
26
|
+
for (const char of id)
|
|
27
|
+
hash = (hash * 31 + char.charCodeAt(0)) % AGENT_PALETTE_IDS.length;
|
|
28
|
+
return appearanceForPalette(AGENT_PALETTE_IDS[hash]);
|
|
29
|
+
}
|
|
30
|
+
export function resolveAgentAppearance(appearance, id = "agent") {
|
|
31
|
+
const parsed = agentAppearanceSchema.safeParse(appearance);
|
|
32
|
+
return parsed.success ? parsed.data : legacyAgentAppearance(id);
|
|
33
|
+
}
|
|
34
|
+
export function agentAvatarUrl(appearance, size = 512, scale = 1, pose = "rest", muted = false) {
|
|
35
|
+
return `/api/agent-avatars/${appearance.characterVersion}/${muted ? "muted-dream" : appearance.paletteId}/${pose}.png?size=${size}&scale=${scale}`;
|
|
36
|
+
}
|
|
37
|
+
export function characterStateForAgent(status) {
|
|
38
|
+
if (status === "running")
|
|
39
|
+
return "working";
|
|
40
|
+
if (status === "error")
|
|
41
|
+
return "confused";
|
|
42
|
+
if (status === "paused" || status === "terminated" || status === "pending_approval")
|
|
43
|
+
return "rest";
|
|
44
|
+
return "idle";
|
|
45
|
+
}
|
|
46
|
+
/** Hydrate compact agent projections without an additional per-agent request. */
|
|
47
|
+
export function withAgentAppearance(agent) {
|
|
48
|
+
const appearance = resolveAgentAppearance(agent.appearance, agent.id);
|
|
49
|
+
return { ...agent, appearance, avatarUrl: agentAvatarUrl(appearance) };
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=agent-appearance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-appearance.js","sourceRoot":"","sources":["../src/agent-appearance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,CAAU,CAAC;AAGlU,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAE3F,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAE1I,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3B,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;CACrC,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,UAAU,oBAAoB,CAAC,SAAyB;IAC5D,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACrE,CAAC;AACD,2DAA2D;AAC3D,MAAM,UAAU,qBAAqB;IACnC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IACjC,yCAAyC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC;IAC5F,GAAG,CAAC;QAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE;IAC3E,OAAO,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AACtF,CAAC;AACD,+EAA+E;AAC/E,MAAM,UAAU,qBAAqB,CAAC,EAAU;IAC9C,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,EAAE;QAAE,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC;IAC1F,OAAO,oBAAoB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,CAAC;AACD,MAAM,UAAU,sBAAsB,CAAC,UAAmB,EAAE,EAAE,GAAG,OAAO;IACtE,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC3D,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC;AACD,MAAM,UAAU,cAAc,CAAC,UAA2B,EAAE,IAAI,GAAoB,GAAG,EAAE,KAAK,GAAU,CAAC,EAAE,IAAI,GAAmB,MAAM,EAAE,KAAK,GAAG,KAAK;IACrJ,OAAO,sBAAsB,UAAU,CAAC,gBAAgB,IAAI,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,aAAa,IAAI,UAAU,KAAK,EAAE,CAAC;AACrJ,CAAC;AACD,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,UAAU,CAAC;IAC1C,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,YAAY,IAAI,MAAM,KAAK,kBAAkB;QAAE,OAAO,MAAM,CAAC;IACnG,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,mBAAmB,CAAgE,KAAQ;IACzG,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACtE,OAAO,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-appearance.test.d.ts","sourceRoot":"","sources":["../src/agent-appearance.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { AGENT_PALETTE_IDS, agentAppearanceSchema, appearanceForPalette, legacyAgentAppearance, randomAgentAppearance, resolveAgentAppearance, agentAvatarUrl } from "./agent-appearance.js";
|
|
3
|
+
import { renderAgentSvg } from "./cliplab/static.js";
|
|
4
|
+
describe("agent appearance", () => {
|
|
5
|
+
it("assigns only the 17 permanent cap palettes", () => {
|
|
6
|
+
for (let i = 0; i < 100; i++)
|
|
7
|
+
expect(AGENT_PALETTE_IDS).toContain(randomAgentAppearance().paletteId);
|
|
8
|
+
expect(agentAppearanceSchema.safeParse({ schemaVersion: 1, characterVersion: "cap-v1", paletteId: "muted-dream" }).success).toBe(false);
|
|
9
|
+
});
|
|
10
|
+
it("preserves a saved appearance and resolves legacy IDs deterministically", () => {
|
|
11
|
+
const appearance = appearanceForPalette("deep-tide");
|
|
12
|
+
expect(resolveAgentAppearance(appearance, "different-id")).toEqual(appearance);
|
|
13
|
+
expect(resolveAgentAppearance(null, "agent-1")).toEqual(legacyAgentAppearance("agent-1"));
|
|
14
|
+
expect(legacyAgentAppearance("agent-1")).toEqual(legacyAgentAppearance("agent-1"));
|
|
15
|
+
expect(agentAvatarUrl(appearance, 24, 2)).toBe("/api/agent-avatars/cap-v1/deep-tide/rest.png?size=24&scale=2");
|
|
16
|
+
});
|
|
17
|
+
it("renders without a browser and preserves logical-size detail at high density", () => {
|
|
18
|
+
const appearance = appearanceForPalette("bubblegum-sky");
|
|
19
|
+
// ClipLab v0.2.0 draws an enlarged compact face from 16px; only 12px and
|
|
20
|
+
// below (not a logical size) is body-only.
|
|
21
|
+
const small = renderAgentSvg(appearance, 16, 2);
|
|
22
|
+
expect(small).toContain('width="32"');
|
|
23
|
+
expect(small).toContain('id="agent-face-visible"');
|
|
24
|
+
const eyes = renderAgentSvg(appearance, 24, 2);
|
|
25
|
+
expect(eyes).toContain('width="48"');
|
|
26
|
+
expect(eyes).toContain('id="agent-face-visible"');
|
|
27
|
+
expect(eyes).not.toContain('id="agent-candle-light"');
|
|
28
|
+
expect(renderAgentSvg(appearance, 48, 1)).toContain('id="agent-candle-light"');
|
|
29
|
+
expect(renderAgentSvg(appearance, 24, 2)).toBe(eyes);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=agent-appearance.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-appearance.test.js","sourceRoot":"","sources":["../src/agent-appearance.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7L,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;YAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,CAAC;QACrG,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1I,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,UAAU,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC/E,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1F,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IACjH,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,UAAU,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAC;QACzD,yEAAyE;QACzE,2CAA2C;QAC3C,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACtD,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAC/E,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"slug": "arcade",
|
|
4
|
+
"name": "Arcade",
|
|
5
|
+
"description": "Use the tools exposed by your Arcade MCP connection.",
|
|
6
|
+
"categories": [
|
|
7
|
+
"productivity"
|
|
8
|
+
],
|
|
9
|
+
"featured": true,
|
|
10
|
+
"branding": {
|
|
11
|
+
"logoUrl": "/brands/apps/arcade.png"
|
|
12
|
+
},
|
|
13
|
+
"urlPatterns": [
|
|
14
|
+
"https://api.arcade.dev/*"
|
|
15
|
+
],
|
|
16
|
+
"methods": [
|
|
17
|
+
{
|
|
18
|
+
"key": "mcp",
|
|
19
|
+
"transport": "mcp_remote",
|
|
20
|
+
"auth": "none",
|
|
21
|
+
"ownershipModes": [
|
|
22
|
+
"dcr",
|
|
23
|
+
"customer"
|
|
24
|
+
],
|
|
25
|
+
"whenToUse": "Use the provider-hosted connection for the quickest setup.",
|
|
26
|
+
"defaults": {},
|
|
27
|
+
"guidanceMd": "Paste your Arcade MCP URL. Sign in if required, or add a token or headers under Advanced authentication.",
|
|
28
|
+
"riskTier": "S3",
|
|
29
|
+
"label": "Connect MCP server",
|
|
30
|
+
"consoleLinks": {
|
|
31
|
+
"docs": "https://docs.arcade.dev/en/operate/governance/mcp-gateways"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"docsUrl": "https://docs.arcade.dev/en/operate/governance/mcp-gateways"
|
|
36
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"slug": "composio",
|
|
4
4
|
"name": "Composio",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Discover and use connected apps through Composio Connect.",
|
|
6
6
|
"categories": [
|
|
7
7
|
"productivity"
|
|
8
8
|
],
|
|
@@ -12,41 +12,28 @@
|
|
|
12
12
|
"darkLogoUrl": "/brands/apps/composio-dark.svg"
|
|
13
13
|
},
|
|
14
14
|
"urlPatterns": [
|
|
15
|
-
"https://backend.composio.dev/*"
|
|
15
|
+
"https://backend.composio.dev/*",
|
|
16
|
+
"https://connect.composio.dev/*",
|
|
17
|
+
"https://mcp.composio.dev/*",
|
|
18
|
+
"https://*.composio.dev/*"
|
|
16
19
|
],
|
|
17
20
|
"methods": [
|
|
18
21
|
{
|
|
19
|
-
"key": "
|
|
20
|
-
"transport": "
|
|
21
|
-
"auth": "
|
|
22
|
+
"key": "mcp",
|
|
23
|
+
"transport": "mcp_remote",
|
|
24
|
+
"auth": "none",
|
|
22
25
|
"ownershipModes": [
|
|
26
|
+
"dcr",
|
|
23
27
|
"customer"
|
|
24
28
|
],
|
|
25
|
-
"whenToUse": "Use
|
|
29
|
+
"whenToUse": "Use the provider-hosted connection for the quickest setup.",
|
|
26
30
|
"defaults": {
|
|
27
|
-
"
|
|
31
|
+
"serverUrl": "https://connect.composio.dev/mcp"
|
|
28
32
|
},
|
|
29
|
-
"guidanceMd": "
|
|
33
|
+
"guidanceMd": "Sign in to Composio Connect, or paste an externally configured MCP session URL and headers.",
|
|
30
34
|
"riskTier": "S3",
|
|
31
|
-
"
|
|
32
|
-
{
|
|
33
|
-
"key": "apiKey",
|
|
34
|
-
"label": "Composio project API key",
|
|
35
|
-
"type": "password",
|
|
36
|
-
"required": true,
|
|
37
|
-
"placeholder": "Paste the Composio API key",
|
|
38
|
-
"secret": true
|
|
39
|
-
}
|
|
40
|
-
],
|
|
41
|
-
"keyPlacement": {
|
|
42
|
-
"location": "header",
|
|
43
|
-
"name": "x-api-key"
|
|
44
|
-
},
|
|
45
|
-
"consoleLinks": {
|
|
46
|
-
"keys": "https://app.composio.dev/",
|
|
47
|
-
"settings": "https://app.composio.dev/",
|
|
48
|
-
"docs": "https://docs.composio.dev/reference/authenticating-to-composio/project-api-key-permissions"
|
|
49
|
-
}
|
|
35
|
+
"label": "Composio Connect"
|
|
50
36
|
}
|
|
51
|
-
]
|
|
37
|
+
],
|
|
38
|
+
"docsUrl": "https://docs.composio.dev/docs/composio-connect"
|
|
52
39
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"slug": "executor",
|
|
4
|
+
"name": "Executor",
|
|
5
|
+
"description": "Use the tools exposed by your Executor MCP connection.",
|
|
6
|
+
"categories": [
|
|
7
|
+
"productivity"
|
|
8
|
+
],
|
|
9
|
+
"featured": true,
|
|
10
|
+
"branding": {
|
|
11
|
+
"logoUrl": "/brands/apps/executor.png"
|
|
12
|
+
},
|
|
13
|
+
"urlPatterns": [
|
|
14
|
+
"https://executor.sh/*"
|
|
15
|
+
],
|
|
16
|
+
"methods": [
|
|
17
|
+
{
|
|
18
|
+
"key": "mcp",
|
|
19
|
+
"transport": "mcp_remote",
|
|
20
|
+
"auth": "none",
|
|
21
|
+
"ownershipModes": [
|
|
22
|
+
"dcr",
|
|
23
|
+
"customer"
|
|
24
|
+
],
|
|
25
|
+
"whenToUse": "Use the provider-hosted connection for the quickest setup.",
|
|
26
|
+
"defaults": {},
|
|
27
|
+
"guidanceMd": "Paste your Executor MCP URL. Sign in if required, or add a token or headers under Advanced authentication.",
|
|
28
|
+
"riskTier": "S3",
|
|
29
|
+
"label": "Connect MCP server",
|
|
30
|
+
"consoleLinks": {
|
|
31
|
+
"docs": "https://executor.sh/docs/mcp-proxy"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"docsUrl": "https://executor.sh/docs/mcp-proxy"
|
|
36
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"slug": "railway",
|
|
4
|
+
"name": "Railway",
|
|
5
|
+
"description": "Inspect services and logs, deploy applications, and run commands in your Railway containers.",
|
|
6
|
+
"categories": [
|
|
7
|
+
"developer"
|
|
8
|
+
],
|
|
9
|
+
"featured": false,
|
|
10
|
+
"branding": {
|
|
11
|
+
"logoUrl": "/brands/apps/railway.svg",
|
|
12
|
+
"darkLogoUrl": "/brands/apps/railway-dark.svg"
|
|
13
|
+
},
|
|
14
|
+
"urlPatterns": [
|
|
15
|
+
"https://mcp.railway.com/"
|
|
16
|
+
],
|
|
17
|
+
"methods": [
|
|
18
|
+
{
|
|
19
|
+
"key": "mcp-oauth",
|
|
20
|
+
"transport": "mcp_remote",
|
|
21
|
+
"auth": "oauth",
|
|
22
|
+
"ownershipModes": [
|
|
23
|
+
"dcr",
|
|
24
|
+
"customer"
|
|
25
|
+
],
|
|
26
|
+
"whenToUse": "Authorize your Railway account in the browser.",
|
|
27
|
+
"defaults": {
|
|
28
|
+
"serverUrl": "https://mcp.railway.com",
|
|
29
|
+
"scopesHint": [
|
|
30
|
+
"openid",
|
|
31
|
+
"offline_access",
|
|
32
|
+
"workspace:member"
|
|
33
|
+
],
|
|
34
|
+
"oauthAuthorizationParams": {
|
|
35
|
+
"prompt": "consent"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"guidanceMd": "Sign in to Railway and select the workspaces your agents may use. Paperclip adds direct service, deployment, and bounded log tools when Railway accepts the connection for API access. Container commands require the separate SSH setup on the connection. Project tokens are not supported by Railway's hosted connection.",
|
|
39
|
+
"riskTier": "S4",
|
|
40
|
+
"label": "Connect Railway",
|
|
41
|
+
"consoleLinks": {
|
|
42
|
+
"docs": "https://docs.railway.com/ai/mcp-server",
|
|
43
|
+
"register": "https://docs.railway.com/integrations/oauth/creating-an-app",
|
|
44
|
+
"settings": "https://railway.com/account"
|
|
45
|
+
},
|
|
46
|
+
"warnings": [
|
|
47
|
+
"Railway enforces the workspaces selected at consent. Selected actions start Allowed; choose Ask first for operations you want to approve.",
|
|
48
|
+
"Logs and container commands can expose application data and secrets. Grant access only to agents trusted with the selected services.",
|
|
49
|
+
"The general Railway agent and committing staged changes are unavailable because their internal changes cannot be individually reviewed in Paperclip.",
|
|
50
|
+
"Live Railway qualification is pending. If Railway rejects API access, reconnect with the required permissions; Paperclip never falls back to another credential."
|
|
51
|
+
],
|
|
52
|
+
"requiredResourceFilters": [
|
|
53
|
+
"workspace",
|
|
54
|
+
"project",
|
|
55
|
+
"environment",
|
|
56
|
+
"service"
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"redirectConstraints": "https-or-loopback-http"
|
|
61
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"slug": "youcom",
|
|
4
|
+
"name": "You.com",
|
|
5
|
+
"description": "Connect You.com's provider-hosted MCP server.",
|
|
6
|
+
"categories": [
|
|
7
|
+
"ai"
|
|
8
|
+
],
|
|
9
|
+
"featured": false,
|
|
10
|
+
"branding": {
|
|
11
|
+
"logoUrl": "/brands/apps/youcom.svg",
|
|
12
|
+
"darkLogoUrl": "/brands/apps/youcom-dark.svg"
|
|
13
|
+
},
|
|
14
|
+
"urlPatterns": [
|
|
15
|
+
"https://api.you.com/*"
|
|
16
|
+
],
|
|
17
|
+
"docsUrl": "https://you.com/docs/build-with-agents/mcp-server",
|
|
18
|
+
"redirectConstraints": "https-or-loopback-http",
|
|
19
|
+
"methods": [
|
|
20
|
+
{
|
|
21
|
+
"key": "mcp-oauth",
|
|
22
|
+
"transport": "mcp_remote",
|
|
23
|
+
"auth": "oauth",
|
|
24
|
+
"ownershipModes": [
|
|
25
|
+
"dcr"
|
|
26
|
+
],
|
|
27
|
+
"whenToUse": "Use browser sign-in for the provider-hosted MCP server.",
|
|
28
|
+
"defaults": {
|
|
29
|
+
"serverUrl": "https://api.you.com/mcp"
|
|
30
|
+
},
|
|
31
|
+
"guidanceMd": "Connect You.com in the browser. A You.com account for browser sign-in, or a You.com API key from you.com/platform for higher rate limits; a keyless free profile is also available.",
|
|
32
|
+
"riskTier": "S2",
|
|
33
|
+
"label": "Sign in with You.com",
|
|
34
|
+
"consoleLinks": {
|
|
35
|
+
"docs": "https://you.com/docs/build-with-agents/mcp-server"
|
|
36
|
+
},
|
|
37
|
+
"warnings": [
|
|
38
|
+
"A You.com account for browser sign-in, or a You.com API key from you.com/platform for higher rate limits; a keyless free profile is also available."
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"key": "mcp-api-key",
|
|
43
|
+
"transport": "mcp_remote",
|
|
44
|
+
"auth": "api_key",
|
|
45
|
+
"ownershipModes": [
|
|
46
|
+
"customer"
|
|
47
|
+
],
|
|
48
|
+
"whenToUse": "Use a restricted customer-owned key when browser sign-in is not suitable.",
|
|
49
|
+
"defaults": {
|
|
50
|
+
"serverUrl": "https://api.you.com/mcp"
|
|
51
|
+
},
|
|
52
|
+
"guidanceMd": "Use a customer-created You.com key. A You.com account for browser sign-in, or a You.com API key from you.com/platform for higher rate limits; a keyless free profile is also available.",
|
|
53
|
+
"riskTier": "S2",
|
|
54
|
+
"label": "Use an API key",
|
|
55
|
+
"credentialFields": [
|
|
56
|
+
{
|
|
57
|
+
"key": "authorization",
|
|
58
|
+
"label": "You.com API key",
|
|
59
|
+
"type": "password",
|
|
60
|
+
"required": true,
|
|
61
|
+
"placeholder": "Paste your You.com API key",
|
|
62
|
+
"secret": true
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"keyPlacement": {
|
|
66
|
+
"location": "header",
|
|
67
|
+
"name": "Authorization",
|
|
68
|
+
"prefix": "Bearer "
|
|
69
|
+
},
|
|
70
|
+
"consoleLinks": {
|
|
71
|
+
"keys": "https://you.com/docs/build-with-agents/mcp-server",
|
|
72
|
+
"docs": "https://you.com/docs/build-with-agents/mcp-server"
|
|
73
|
+
},
|
|
74
|
+
"warnings": [
|
|
75
|
+
"A You.com account for browser sign-in, or a You.com API key from you.com/platform for higher rate limits; a keyless free profile is also available."
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"key": "mcp-free",
|
|
80
|
+
"transport": "mcp_remote",
|
|
81
|
+
"auth": "none",
|
|
82
|
+
"ownershipModes": [
|
|
83
|
+
"customer"
|
|
84
|
+
],
|
|
85
|
+
"whenToUse": "Connect without an account for limited, rate-capped web search.",
|
|
86
|
+
"defaults": {
|
|
87
|
+
"serverUrl": "https://api.you.com/mcp?profile=free"
|
|
88
|
+
},
|
|
89
|
+
"guidanceMd": "Use the keyless free profile. You.com limits the free profile to a reduced read-only tool set.",
|
|
90
|
+
"riskTier": "S2",
|
|
91
|
+
"label": "Use the free profile",
|
|
92
|
+
"consoleLinks": {
|
|
93
|
+
"docs": "https://you.com/docs/build-with-agents/mcp-server"
|
|
94
|
+
},
|
|
95
|
+
"warnings": [
|
|
96
|
+
"The free profile is keyless and exposes a reduced read-only tool set with You.com rate limits."
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
@@ -26,10 +26,10 @@ describe("tool app gallery URL matching", () => {
|
|
|
26
26
|
]));
|
|
27
27
|
expect(getAppDefinitionForUrl("https://drivemcp.googleapis.com/mcp/v1")?.slug).toBe("google-drive");
|
|
28
28
|
});
|
|
29
|
-
it("
|
|
29
|
+
it("offers only direct MCP for Composio", () => {
|
|
30
30
|
const composio = CONNECTABLE_APP_DEFINITIONS.find((app) => app.slug === "composio");
|
|
31
31
|
expect(composio?.methods).toEqual([
|
|
32
|
-
expect.objectContaining({ key: "
|
|
32
|
+
expect.objectContaining({ key: "mcp", transport: "mcp_remote", ownershipModes: ["dcr", "customer"] }),
|
|
33
33
|
]);
|
|
34
34
|
});
|
|
35
35
|
it("keeps every gallery entry reachable through at least one pattern", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-definitions-url.test.js","sourceRoot":"","sources":["../src/app-definitions-url.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,sBAAsB,CAAC,gCAAgC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtF,MAAM,CAAC,sBAAsB,CAAC,oCAAoC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1F,MAAM,CAAC,sBAAsB,CAAC,uDAAuD,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpH,MAAM,CAAC,sBAAsB,CAAC,wCAAwC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvD,MAAM,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrE,MAAM,CAAC,sBAAsB,CAAC,4CAA4C,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;YACxF,OAAO;YACP,cAAc;YACd,aAAa;YACb,eAAe;YACf,eAAe;YACf,iBAAiB;YACjB,aAAa;YACb,eAAe;YACf,yBAAyB;SAC1B,CAAC,CAAC,CAAC;QACJ,MAAM,CAAC,sBAAsB,CAAC,wCAAwC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"app-definitions-url.test.js","sourceRoot":"","sources":["../src/app-definitions-url.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,sBAAsB,CAAC,gCAAgC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtF,MAAM,CAAC,sBAAsB,CAAC,oCAAoC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1F,MAAM,CAAC,sBAAsB,CAAC,uDAAuD,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpH,MAAM,CAAC,sBAAsB,CAAC,wCAAwC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvD,MAAM,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrE,MAAM,CAAC,sBAAsB,CAAC,4CAA4C,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;YACxF,OAAO;YACP,cAAc;YACd,aAAa;YACb,eAAe;YACf,eAAe;YACf,iBAAiB;YACjB,aAAa;YACb,eAAe;YACf,yBAAyB;SAC1B,CAAC,CAAC,CAAC;QACJ,MAAM,CAAC,sBAAsB,CAAC,wCAAwC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,QAAQ,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACpF,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC;YAChC,MAAM,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;SACtG,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,KAAK,MAAM,GAAG,IAAI,2BAA2B,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC,UAAU,EAAE,CAAC;YAC1D,MAAM,CAAC,sBAAsB,CAAC,OAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-definitions.d.ts","sourceRoot":"","sources":["../src/app-definitions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC9F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"app-definitions.d.ts","sourceRoot":"","sources":["../src/app-definitions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC9F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,eAAO,MAAM,qBAAqB,aA6BhC,CAAC;AAEH,eAAO,MAAM,2BAA2B,iBAEvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,aAqBjC,CAAC;AAEH,eAAO,MAAM,qBAAqB,iBAEjC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAKnF,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAE9E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAExE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE9E;AAOD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,WAAW,GAAE,SAAS,aAAa,EAAgC,GAClE,aAAa,GAAG,IAAI,CAUtB;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,aAAa,GAAG,mBAAmB,EAAE,CAKvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,SAAS,mBAAmB,EAAE,GACtC,mBAAmB,GAAG,IAAI,CAmB5B;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,aAAa,EAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,mBAAmB,GAAG,IAAI,CAK5B;AAED,wBAAgB,sCAAsC,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAK9G;AAED,wBAAgB,0CAA0C,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAIlH;AAED,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAM5G;AAED,wBAAgB,qCAAqC,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAiB7G;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAEtF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE7E;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAExF;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE5F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAE5D;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,mBAAmB,EAC3B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAC7C,MAAM,GAAG,IAAI,CAoBf;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYhH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-definitions.generated.d.ts","sourceRoot":"","sources":["../src/app-definitions.generated.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app-definitions.generated.d.ts","sourceRoot":"","sources":["../src/app-definitions.generated.ts"],"names":[],"mappings":"AA0EA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,eAAO,MAAM,eAAe,EAAoS,aAAa,EAAE,CAAC"}
|