agent-composer 0.1.2 → 0.1.4
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/composer.config.schema.json +23 -0
- package/dist/config/schema.d.ts +35 -0
- package/dist/config/schema.js +15 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/providers/AnthropicCompatibleProvider.d.ts +15 -0
- package/dist/providers/AnthropicCompatibleProvider.js +20 -2
- package/dist/providers/AnthropicCompatibleProvider.js.map +1 -1
- package/dist/registry.js +2 -0
- package/dist/registry.js.map +1 -1
- package/package.json +1 -1
- package/plugin/composer-mastermind/skills/composer-mastermind/SKILL.md +28 -0
|
@@ -72,6 +72,29 @@
|
|
|
72
72
|
"items": { "type": "string" },
|
|
73
73
|
"minItems": 1,
|
|
74
74
|
"description": "argv array for CLIProvider, e.g. [\"agy\",\"--dangerously-skip-permissions\",\"-p\"]. Passed to child_process.execFile — NEVER shell-interpolated."
|
|
75
|
+
},
|
|
76
|
+
"maxTokens": {
|
|
77
|
+
"type": "integer",
|
|
78
|
+
"minimum": 1,
|
|
79
|
+
"description": "Per-role override for the provider's default max output tokens. When `thinking.budgetTokens` is set this must be greater than it. Added 2026-05-25 for v0.1.3."
|
|
80
|
+
},
|
|
81
|
+
"thinking": {
|
|
82
|
+
"type": "object",
|
|
83
|
+
"additionalProperties": false,
|
|
84
|
+
"required": ["type"],
|
|
85
|
+
"description": "Extended-thinking knob for Anthropic-compat providers (GLM glm-5.1, glm-4.6+, Claude). Ignored by other providers. Added 2026-05-25 for v0.1.3.",
|
|
86
|
+
"properties": {
|
|
87
|
+
"type": {
|
|
88
|
+
"type": "string",
|
|
89
|
+
"enum": ["enabled", "disabled"],
|
|
90
|
+
"description": "enabled: include the `thinking` block on every call. disabled: explicitly opt out."
|
|
91
|
+
},
|
|
92
|
+
"budgetTokens": {
|
|
93
|
+
"type": "integer",
|
|
94
|
+
"minimum": 1024,
|
|
95
|
+
"description": "Max tokens the model may spend on internal reasoning. Required when type=enabled. Anthropic SDK minimum is 1024."
|
|
96
|
+
}
|
|
97
|
+
}
|
|
75
98
|
}
|
|
76
99
|
}
|
|
77
100
|
}
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -6,6 +6,13 @@ export declare const ProviderIdSchema: z.ZodEnum<{
|
|
|
6
6
|
mock: "mock";
|
|
7
7
|
}>;
|
|
8
8
|
export type ProviderIdParsed = z.infer<typeof ProviderIdSchema>;
|
|
9
|
+
export declare const ThinkingConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
10
|
+
type: z.ZodLiteral<"enabled">;
|
|
11
|
+
budgetTokens: z.ZodNumber;
|
|
12
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13
|
+
type: z.ZodLiteral<"disabled">;
|
|
14
|
+
}, z.core.$strict>], "type">;
|
|
15
|
+
export type ThinkingConfig = z.infer<typeof ThinkingConfigSchema>;
|
|
9
16
|
export declare const RoleConfigSchema: z.ZodObject<{
|
|
10
17
|
provider: z.ZodEnum<{
|
|
11
18
|
anthropic: "anthropic";
|
|
@@ -17,6 +24,13 @@ export declare const RoleConfigSchema: z.ZodObject<{
|
|
|
17
24
|
baseUrl: z.ZodOptional<z.ZodURL>;
|
|
18
25
|
model: z.ZodOptional<z.ZodString>;
|
|
19
26
|
cli: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
27
|
+
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
28
|
+
thinking: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
29
|
+
type: z.ZodLiteral<"enabled">;
|
|
30
|
+
budgetTokens: z.ZodNumber;
|
|
31
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
32
|
+
type: z.ZodLiteral<"disabled">;
|
|
33
|
+
}, z.core.$strict>], "type">>;
|
|
20
34
|
}, z.core.$strict>;
|
|
21
35
|
export type RoleConfig = z.infer<typeof RoleConfigSchema>;
|
|
22
36
|
export declare const RoleNameSchema: z.ZodEnum<{
|
|
@@ -54,6 +68,13 @@ export declare const ComposerConfigSchema: z.ZodObject<{
|
|
|
54
68
|
baseUrl: z.ZodOptional<z.ZodURL>;
|
|
55
69
|
model: z.ZodOptional<z.ZodString>;
|
|
56
70
|
cli: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
71
|
+
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
72
|
+
thinking: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
73
|
+
type: z.ZodLiteral<"enabled">;
|
|
74
|
+
budgetTokens: z.ZodNumber;
|
|
75
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
76
|
+
type: z.ZodLiteral<"disabled">;
|
|
77
|
+
}, z.core.$strict>], "type">>;
|
|
57
78
|
}, z.core.$strict>;
|
|
58
79
|
coder: z.ZodObject<{
|
|
59
80
|
provider: z.ZodEnum<{
|
|
@@ -66,6 +87,13 @@ export declare const ComposerConfigSchema: z.ZodObject<{
|
|
|
66
87
|
baseUrl: z.ZodOptional<z.ZodURL>;
|
|
67
88
|
model: z.ZodOptional<z.ZodString>;
|
|
68
89
|
cli: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
90
|
+
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
91
|
+
thinking: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
92
|
+
type: z.ZodLiteral<"enabled">;
|
|
93
|
+
budgetTokens: z.ZodNumber;
|
|
94
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
95
|
+
type: z.ZodLiteral<"disabled">;
|
|
96
|
+
}, z.core.$strict>], "type">>;
|
|
69
97
|
}, z.core.$strict>;
|
|
70
98
|
reviewer: z.ZodObject<{
|
|
71
99
|
provider: z.ZodEnum<{
|
|
@@ -78,6 +106,13 @@ export declare const ComposerConfigSchema: z.ZodObject<{
|
|
|
78
106
|
baseUrl: z.ZodOptional<z.ZodURL>;
|
|
79
107
|
model: z.ZodOptional<z.ZodString>;
|
|
80
108
|
cli: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
109
|
+
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
110
|
+
thinking: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
111
|
+
type: z.ZodLiteral<"enabled">;
|
|
112
|
+
budgetTokens: z.ZodNumber;
|
|
113
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
114
|
+
type: z.ZodLiteral<"disabled">;
|
|
115
|
+
}, z.core.$strict>], "type">>;
|
|
81
116
|
}, z.core.$strict>;
|
|
82
117
|
}, z.core.$strict>;
|
|
83
118
|
spendAuthorization: z.ZodOptional<z.ZodObject<{
|
package/dist/config/schema.js
CHANGED
|
@@ -7,6 +7,19 @@ export const ProviderIdSchema = z.enum([
|
|
|
7
7
|
"cli",
|
|
8
8
|
"mock",
|
|
9
9
|
]);
|
|
10
|
+
export const ThinkingConfigSchema = z.discriminatedUnion("type", [
|
|
11
|
+
z
|
|
12
|
+
.object({
|
|
13
|
+
type: z.literal("enabled"),
|
|
14
|
+
budgetTokens: z.number().int().min(1024),
|
|
15
|
+
})
|
|
16
|
+
.strict(),
|
|
17
|
+
z
|
|
18
|
+
.object({
|
|
19
|
+
type: z.literal("disabled"),
|
|
20
|
+
})
|
|
21
|
+
.strict(),
|
|
22
|
+
]);
|
|
10
23
|
export const RoleConfigSchema = z
|
|
11
24
|
.object({
|
|
12
25
|
provider: ProviderIdSchema,
|
|
@@ -14,6 +27,8 @@ export const RoleConfigSchema = z
|
|
|
14
27
|
baseUrl: z.url().optional(),
|
|
15
28
|
model: z.string().min(1).optional(),
|
|
16
29
|
cli: z.array(z.string().min(1)).min(1).optional(),
|
|
30
|
+
maxTokens: z.number().int().min(1).optional(),
|
|
31
|
+
thinking: ThinkingConfigSchema.optional(),
|
|
17
32
|
})
|
|
18
33
|
.strict();
|
|
19
34
|
export const RoleNameSchema = z.enum(["researcher", "coder", "reviewer"]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,0EAA0E;AAE1E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IACrC,WAAW;IACX,mBAAmB;IACnB,KAAK;IACL,MAAM;CACP,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,0EAA0E;AAE1E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC;IACrC,WAAW;IACX,mBAAmB;IACnB,KAAK;IACL,MAAM;CACP,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC/D,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC1B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;KACzC,CAAC;SACD,MAAM,EAAE;IACX,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;KAC5B,CAAC;SACD,MAAM,EAAE;CACZ,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7C,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE;CAC1C,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAG1E,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,IAAI,CAAC;IACjD,aAAa;IACb,MAAM;IACN,MAAM;CACP,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACtC,MAAM,CAAC;IACN,IAAI,EAAE,4BAA4B;IAClC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACrD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CACnD,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN,UAAU,EAAE,gBAAgB;QAC5B,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,gBAAgB;KAC3B,CAAC;SACD,MAAM,EAAE;IACX,kBAAkB,EAAE,wBAAwB,CAAC,QAAQ,EAAE;CACxD,CAAC;KACD,MAAM,EAAE,CAAC"}
|
|
@@ -5,6 +5,12 @@ export interface AnthropicLike {
|
|
|
5
5
|
create: (params: AnthropicCreateParams) => Promise<AnthropicCreateResult>;
|
|
6
6
|
};
|
|
7
7
|
}
|
|
8
|
+
export type ThinkingParam = {
|
|
9
|
+
type: "enabled";
|
|
10
|
+
budget_tokens: number;
|
|
11
|
+
} | {
|
|
12
|
+
type: "disabled";
|
|
13
|
+
};
|
|
8
14
|
export interface AnthropicCreateParams {
|
|
9
15
|
model: string;
|
|
10
16
|
max_tokens: number;
|
|
@@ -15,6 +21,7 @@ export interface AnthropicCreateParams {
|
|
|
15
21
|
text: string;
|
|
16
22
|
}>;
|
|
17
23
|
}>;
|
|
24
|
+
thinking?: ThinkingParam;
|
|
18
25
|
}
|
|
19
26
|
export interface AnthropicCreateResult {
|
|
20
27
|
content: ReadonlyArray<{
|
|
@@ -31,6 +38,13 @@ export interface AnthropicCompatibleProviderOptions {
|
|
|
31
38
|
apiKey: string;
|
|
32
39
|
model: string;
|
|
33
40
|
defaultMaxTokens?: number;
|
|
41
|
+
/** Extended-thinking knob; omit to disable. When type=enabled, budgetTokens is required. */
|
|
42
|
+
thinking?: {
|
|
43
|
+
type: "enabled";
|
|
44
|
+
budgetTokens: number;
|
|
45
|
+
} | {
|
|
46
|
+
type: "disabled";
|
|
47
|
+
};
|
|
34
48
|
/** Override Anthropic SDK construction. Used by tests. */
|
|
35
49
|
clientFactory?: (opts: {
|
|
36
50
|
baseURL: string;
|
|
@@ -42,6 +56,7 @@ export declare class AnthropicCompatibleProvider implements IProvider {
|
|
|
42
56
|
readonly modelLabel: string;
|
|
43
57
|
private readonly client;
|
|
44
58
|
private readonly defaultMaxTokens;
|
|
59
|
+
private readonly thinking?;
|
|
45
60
|
constructor(opts: AnthropicCompatibleProviderOptions);
|
|
46
61
|
healthCheck(): Promise<boolean>;
|
|
47
62
|
execute(input: IProviderExecuteInput): Promise<IProviderExecuteOutput>;
|
|
@@ -9,6 +9,7 @@ export class AnthropicCompatibleProvider {
|
|
|
9
9
|
modelLabel;
|
|
10
10
|
client;
|
|
11
11
|
defaultMaxTokens;
|
|
12
|
+
thinking;
|
|
12
13
|
constructor(opts) {
|
|
13
14
|
if (!opts.baseUrl)
|
|
14
15
|
throw new Error("AnthropicCompatibleProvider: baseUrl required");
|
|
@@ -18,6 +19,20 @@ export class AnthropicCompatibleProvider {
|
|
|
18
19
|
throw new Error("AnthropicCompatibleProvider: model required");
|
|
19
20
|
this.modelLabel = opts.model;
|
|
20
21
|
this.defaultMaxTokens = opts.defaultMaxTokens ?? DEFAULT_MAX_TOKENS;
|
|
22
|
+
if (opts.thinking) {
|
|
23
|
+
if (opts.thinking.type === "enabled") {
|
|
24
|
+
if (typeof opts.thinking.budgetTokens !== "number" || opts.thinking.budgetTokens < 1024) {
|
|
25
|
+
throw new Error("AnthropicCompatibleProvider: thinking.budgetTokens must be >=1024 when type=enabled (Anthropic SDK minimum)");
|
|
26
|
+
}
|
|
27
|
+
if (opts.thinking.budgetTokens >= this.defaultMaxTokens) {
|
|
28
|
+
throw new Error(`AnthropicCompatibleProvider: thinking.budgetTokens (${opts.thinking.budgetTokens}) must be less than max_tokens (${this.defaultMaxTokens}); set role.maxTokens higher`);
|
|
29
|
+
}
|
|
30
|
+
this.thinking = { type: "enabled", budget_tokens: opts.thinking.budgetTokens };
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.thinking = { type: "disabled" };
|
|
34
|
+
}
|
|
35
|
+
}
|
|
21
36
|
const factory = opts.clientFactory ?? DEFAULT_FACTORY;
|
|
22
37
|
this.client = factory({ baseURL: opts.baseUrl, apiKey: opts.apiKey });
|
|
23
38
|
}
|
|
@@ -32,11 +47,14 @@ export class AnthropicCompatibleProvider {
|
|
|
32
47
|
userContent.push({ type: "text", text: `Context:\n${input.context}` });
|
|
33
48
|
}
|
|
34
49
|
userContent.push({ type: "text", text: input.prompt });
|
|
35
|
-
const
|
|
50
|
+
const params = {
|
|
36
51
|
model: this.modelLabel,
|
|
37
52
|
max_tokens: input.maxTokens ?? this.defaultMaxTokens,
|
|
38
53
|
messages: [{ role: "user", content: userContent }],
|
|
39
|
-
}
|
|
54
|
+
};
|
|
55
|
+
if (this.thinking)
|
|
56
|
+
params.thinking = this.thinking;
|
|
57
|
+
const msg = await this.client.messages.create(params);
|
|
40
58
|
const text = msg.content
|
|
41
59
|
.map((b) => (b.type === "text" && typeof b.text === "string" ? b.text : ""))
|
|
42
60
|
.join("");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnthropicCompatibleProvider.js","sourceRoot":"","sources":["../../src/providers/AnthropicCompatibleProvider.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,gEAAgE;AAChE,yEAAyE;AAEzE,OAAO,SAAS,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"AnthropicCompatibleProvider.js","sourceRoot":"","sources":["../../src/providers/AnthropicCompatibleProvider.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.js
CHANGED
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,EAAE;AACF,sEAAsE;AACtE,kEAAkE;AAClE,0BAA0B;AAG1B,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAOzD;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AAEjD,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD,YAAY,UAAkB;QAC5B,KAAK,CACH,aAAa,UAAU,oHAAoH,CAC5I,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,UAAkB,EAAE,KAAa;QAC3C,KAAK,CACH,aAAa,UAAU,eAAe,KAAK,6CAA6C,CACzF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,gBAAgB;IAGE;IAFZ,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAExD,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,kBAAkB,CAAC,IAAc;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,aAAa,CAAC,UAAsB;QAC1C,QAAQ,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC5B,KAAK,MAAM;gBACT,OAAO,IAAI,YAAY,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;YAE5D,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,UAAU,CAAC,OAAO;oBAAE,MAAM,IAAI,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC/E,IAAI,CAAC,UAAU,CAAC,SAAS;oBAAE,MAAM,IAAI,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;gBACnF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBACjD,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,mBAAmB,CAC3B,WAAW,EACX,WAAW,UAAU,CAAC,SAAS,kCAAkC,CAClE,CAAC;gBACJ,CAAC;gBACD,iEAAiE;gBACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAChD,MAAM,KAAK,GACT,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC5E,UAAU,CAAC,KAAK;oBAChB,uBAAuB,CAAC;gBAC1B,OAAO,IAAI,2BAA2B,CAAC;oBACrC,OAAO,EAAE,UAAU,CAAC,OAAO;oBAC3B,MAAM;oBACN,KAAK;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -80,6 +80,34 @@ and do not count toward these caps. Mock providers are always free.
|
|
|
80
80
|
- When reporting worker results, quote one key line or give a
|
|
81
81
|
one-sentence outcome — never paste the full worker output back.
|
|
82
82
|
|
|
83
|
+
# Other MCPs (token-heavy upstreams)
|
|
84
|
+
|
|
85
|
+
Composer's `mcp__composer__*` tools route to GLM/agy automatically.
|
|
86
|
+
**Other MCP servers do NOT** — calling them from the main session dumps
|
|
87
|
+
the raw payload into your context.
|
|
88
|
+
|
|
89
|
+
Rule of thumb: when a single `mcp__<server>__<tool>` call is expected
|
|
90
|
+
to return more than ~1k tokens, **dispatch via `Task` to the
|
|
91
|
+
`general-purpose` (or `Explore`) subagent** so the raw payload stays in
|
|
92
|
+
the subagent's context and only the summary returns to you.
|
|
93
|
+
|
|
94
|
+
| MCP / tool family | Expected payload | Default behaviour |
|
|
95
|
+
|---|---|---|
|
|
96
|
+
| `mcp__chrome-devtools__take_snapshot`, `list_console_messages`, `lighthouse_audit`, `performance_*` | large (KB-MB) | DISPATCH |
|
|
97
|
+
| `mcp__sequel-mcp__query` / `execute` on real tables | unknown — assume large | DISPATCH unless you wrote `LIMIT 10` |
|
|
98
|
+
| `mcp__ferris-search__*`, `mcp__web-reader__*`, `mcp__zread__read_file`, full-article fetchers | large | DISPATCH |
|
|
99
|
+
| `mcp__fff__grep` / `find_files`, `mcp__textlog__*` previews, MCP `list_*` / `get_default_*` | small/bounded | INLINE OK |
|
|
100
|
+
| `mcp__plugin_claude-mem_mcp-search__get_observations` (one ID) | small | INLINE OK |
|
|
101
|
+
| `mcp__plugin_claude-mem_mcp-search__smart_search` / `query_corpus` | medium-large | DISPATCH if browsing |
|
|
102
|
+
|
|
103
|
+
Dispatch prompt template: "Call `mcp__<server>__<tool>` with `<args>`.
|
|
104
|
+
Return only `<the specific fields the plan needs>` — no raw payload, no
|
|
105
|
+
re-pasting." Make the worker do the filtering, not you.
|
|
106
|
+
|
|
107
|
+
Composer does NOT yet proxy other MCPs (Path C in the roadmap). Until
|
|
108
|
+
it does, this manual dispatch is the only way to keep the main session
|
|
109
|
+
from drowning in upstream payloads.
|
|
110
|
+
|
|
83
111
|
# Prior learnings
|
|
84
112
|
|
|
85
113
|
@.claude/learnings/index.md
|