agent-orchestrator-mcp-server 0.4.4 → 0.4.6
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/package.json
CHANGED
|
@@ -124,6 +124,7 @@ function formatResponse(configs, fromCache) {
|
|
|
124
124
|
lines.push('- Use `name` values from **MCP Servers** in `start_session` `mcp_servers` parameter');
|
|
125
125
|
lines.push('- Use `git_root` from **Agent Roots** to start sessions with preconfigured defaults');
|
|
126
126
|
lines.push('- If an **Agent Root** has a `default_subdirectory`, pass it as `subdirectory` in `start_session` — do not set `subdirectory` to arbitrary internal paths');
|
|
127
|
+
lines.push("- Pass `default_skills` from **Agent Roots** in the `skills` parameter of `start_session` — sessions won't have skills loaded unless you explicitly pass them");
|
|
127
128
|
lines.push('- Use `id` values from **Stop Conditions** in `start_session` `stop_condition` parameter');
|
|
128
129
|
if (fromCache) {
|
|
129
130
|
lines.push('');
|
|
@@ -12,6 +12,7 @@ export declare const StartSessionSchema: z.ZodObject<{
|
|
|
12
12
|
stop_condition: z.ZodOptional<z.ZodString>;
|
|
13
13
|
execution_provider: z.ZodOptional<z.ZodEnum<["local_filesystem", "remote_sandbox"]>>;
|
|
14
14
|
mcp_servers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
15
|
+
skills: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
15
16
|
config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
16
17
|
custom_metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
17
18
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -25,6 +26,7 @@ export declare const StartSessionSchema: z.ZodObject<{
|
|
|
25
26
|
slug?: string | undefined;
|
|
26
27
|
stop_condition?: string | undefined;
|
|
27
28
|
execution_provider?: "local_filesystem" | "remote_sandbox" | undefined;
|
|
29
|
+
skills?: string[] | undefined;
|
|
28
30
|
config?: Record<string, unknown> | undefined;
|
|
29
31
|
custom_metadata?: Record<string, unknown> | undefined;
|
|
30
32
|
}, {
|
|
@@ -38,6 +40,7 @@ export declare const StartSessionSchema: z.ZodObject<{
|
|
|
38
40
|
slug?: string | undefined;
|
|
39
41
|
stop_condition?: string | undefined;
|
|
40
42
|
execution_provider?: "local_filesystem" | "remote_sandbox" | undefined;
|
|
43
|
+
skills?: string[] | undefined;
|
|
41
44
|
config?: Record<string, unknown> | undefined;
|
|
42
45
|
custom_metadata?: Record<string, unknown> | undefined;
|
|
43
46
|
}>;
|
|
@@ -77,7 +80,7 @@ export declare function startSessionTool(_server: Server, clientFactory: () => I
|
|
|
77
80
|
};
|
|
78
81
|
stop_condition: {
|
|
79
82
|
type: string;
|
|
80
|
-
description: "
|
|
83
|
+
description: "Stop condition ID from get_configs (e.g. \"pr_merged\"). The description is automatically resolved and passed to the agent as context.";
|
|
81
84
|
};
|
|
82
85
|
execution_provider: {
|
|
83
86
|
type: string;
|
|
@@ -91,6 +94,13 @@ export declare function startSessionTool(_server: Server, clientFactory: () => I
|
|
|
91
94
|
};
|
|
92
95
|
description: "List of MCP server names to enable for this session. Example: [\"github-development\", \"slack\"]";
|
|
93
96
|
};
|
|
97
|
+
skills: {
|
|
98
|
+
type: string;
|
|
99
|
+
items: {
|
|
100
|
+
type: string;
|
|
101
|
+
};
|
|
102
|
+
description: "List of skill names to enable for this session. Example: [\"discovery-classify\", \"publish-and-pr\"]";
|
|
103
|
+
};
|
|
94
104
|
config: {
|
|
95
105
|
type: string;
|
|
96
106
|
description: "Additional configuration as a JSON object.";
|
|
@@ -18,9 +18,10 @@ const PARAM_DESCRIPTIONS = {
|
|
|
18
18
|
'(e.g. "Fix login redirect loop on mobile Safari", "Add dark mode toggle to settings page"). ' +
|
|
19
19
|
'Only omit if you truly have zero context about the session purpose, which should be extremely rare.',
|
|
20
20
|
slug: 'URL-friendly identifier for the session. Must be unique.',
|
|
21
|
-
stop_condition: '
|
|
21
|
+
stop_condition: 'Stop condition ID from get_configs (e.g. "pr_merged"). The description is automatically resolved and passed to the agent as context.',
|
|
22
22
|
execution_provider: 'Execution environment. Options: "local_filesystem" (runs locally), "remote_sandbox" (runs in isolated sandbox). Default: "local_filesystem"',
|
|
23
23
|
mcp_servers: 'List of MCP server names to enable for this session. Example: ["github-development", "slack"]',
|
|
24
|
+
skills: 'List of skill names to enable for this session. Example: ["discovery-classify", "publish-and-pr"]',
|
|
24
25
|
config: 'Additional configuration as a JSON object.',
|
|
25
26
|
custom_metadata: 'User-defined metadata as a JSON object. Useful for tracking tickets, projects, etc.',
|
|
26
27
|
};
|
|
@@ -38,6 +39,7 @@ export const StartSessionSchema = z.object({
|
|
|
38
39
|
.optional()
|
|
39
40
|
.describe(PARAM_DESCRIPTIONS.execution_provider),
|
|
40
41
|
mcp_servers: z.array(z.string()).optional().describe(PARAM_DESCRIPTIONS.mcp_servers),
|
|
42
|
+
skills: z.array(z.string()).optional().describe(PARAM_DESCRIPTIONS.skills),
|
|
41
43
|
config: z.record(z.unknown()).optional().describe(PARAM_DESCRIPTIONS.config),
|
|
42
44
|
custom_metadata: z.record(z.unknown()).optional().describe(PARAM_DESCRIPTIONS.custom_metadata),
|
|
43
45
|
});
|
|
@@ -51,10 +53,12 @@ const TOOL_DESCRIPTION = `Start a new agent session in the Agent Orchestrator.
|
|
|
51
53
|
- If a prompt is provided, the agent job is automatically queued to start
|
|
52
54
|
- If no prompt is provided, creates a clone-only session that can be started later with action_session
|
|
53
55
|
|
|
56
|
+
**Defaults from Agent Roots:** When starting a session that matches a preconfigured agent root (from \`get_configs\`), the agent root defines \`default_mcp_servers\` and \`default_skills\`. In most cases, you should pass these defaults through — omitting them means the session won't have MCP servers or skills configured. You can reduce the set (e.g., drop an MCP server you don't need), but when \`ALLOWED_AGENT_ROOTS\` is active, you cannot add servers beyond the defaults. Skills are not constrained — you can augment with additional skills as needed. As a rule of thumb: always pass the defaults unless you have a specific reason to remove something.
|
|
57
|
+
|
|
54
58
|
**Use cases:**
|
|
55
59
|
- Start a new agent task on a repository
|
|
56
60
|
- Create a session to work on a specific branch
|
|
57
|
-
- Set up an agent with specific MCP servers enabled
|
|
61
|
+
- Set up an agent with specific MCP servers and skills enabled
|
|
58
62
|
- Create a session with custom metadata for tracking`;
|
|
59
63
|
export function startSessionTool(_server, clientFactory) {
|
|
60
64
|
return {
|
|
@@ -105,6 +109,11 @@ export function startSessionTool(_server, clientFactory) {
|
|
|
105
109
|
items: { type: 'string' },
|
|
106
110
|
description: PARAM_DESCRIPTIONS.mcp_servers,
|
|
107
111
|
},
|
|
112
|
+
skills: {
|
|
113
|
+
type: 'array',
|
|
114
|
+
items: { type: 'string' },
|
|
115
|
+
description: PARAM_DESCRIPTIONS.skills,
|
|
116
|
+
},
|
|
108
117
|
config: {
|
|
109
118
|
type: 'object',
|
|
110
119
|
description: PARAM_DESCRIPTIONS.config,
|
|
@@ -137,7 +146,21 @@ export function startSessionTool(_server, clientFactory) {
|
|
|
137
146
|
};
|
|
138
147
|
}
|
|
139
148
|
}
|
|
140
|
-
|
|
149
|
+
// Resolve stop_condition ID to its description so the agent receives
|
|
150
|
+
// meaningful context about when to stop, not just an opaque identifier.
|
|
151
|
+
let createArgs = validatedArgs;
|
|
152
|
+
if (validatedArgs.stop_condition) {
|
|
153
|
+
let configs = getConfigsCache();
|
|
154
|
+
if (!configs) {
|
|
155
|
+
configs = await client.getConfigs();
|
|
156
|
+
setConfigsCache(configs);
|
|
157
|
+
}
|
|
158
|
+
const match = configs.stop_conditions.find((sc) => sc.id === validatedArgs.stop_condition);
|
|
159
|
+
if (match) {
|
|
160
|
+
createArgs = { ...validatedArgs, stop_condition: match.description };
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
const session = await client.createSession(createArgs);
|
|
141
164
|
const lines = [
|
|
142
165
|
`## Session Started Successfully`,
|
|
143
166
|
'',
|
package/shared/types.d.ts
CHANGED