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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-orchestrator-mcp-server",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "description": "Local implementation of agent-orchestrator MCP server",
5
5
  "main": "build/index.js",
6
6
  "type": "module",
@@ -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: "Condition that determines when the agent should stop. Passed to the agent as context.";
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: 'Condition that determines when the agent should stop. Passed to the agent as context.',
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
- const session = await client.createSession(validatedArgs);
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
@@ -142,6 +142,7 @@ export interface CreateSessionRequest {
142
142
  stop_condition?: string;
143
143
  execution_provider?: string;
144
144
  mcp_servers?: string[];
145
+ skills?: string[];
145
146
  config?: Record<string, unknown>;
146
147
  custom_metadata?: Record<string, unknown>;
147
148
  }