agent-orchestrator-mcp-server 0.4.5 → 0.4.7
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('');
|
|
@@ -46,7 +46,7 @@ export declare function getSessionTool(_server: Server, clientFactory: () => IAg
|
|
|
46
46
|
};
|
|
47
47
|
include_transcript: {
|
|
48
48
|
type: string;
|
|
49
|
-
description: "Include the full transcript
|
|
49
|
+
description: "Include the full transcript inline. Default: false. WARNING: can be very large and may overwhelm your context window. When false, the transcript file path is returned instead so you can grep/tail it efficiently (see tool description for tips).";
|
|
50
50
|
};
|
|
51
51
|
transcript_format: {
|
|
52
52
|
type: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
const PARAM_DESCRIPTIONS = {
|
|
3
3
|
id: 'Session ID (numeric) or slug (string). Examples: "1", "fix-auth-bug-20250115"',
|
|
4
|
-
include_transcript: 'Include the full transcript
|
|
4
|
+
include_transcript: 'Include the full transcript inline. Default: false. WARNING: can be very large and may overwhelm your context window. When false, the transcript file path is returned instead so you can grep/tail it efficiently (see tool description for tips).',
|
|
5
5
|
transcript_format: 'Format for transcript retrieval: "text" (human-readable) or "json" (structured). Only used when include_transcript is true. When specified, fetches transcript via dedicated endpoint instead of inline.',
|
|
6
6
|
include_logs: 'Include logs for the session. Default: false. Use logs_page and logs_per_page for pagination.',
|
|
7
7
|
logs_page: 'Page number for logs pagination. Default: 1',
|
|
@@ -35,10 +35,12 @@ export const GetSessionSchema = z.object({
|
|
|
35
35
|
const TOOL_DESCRIPTION = `Get detailed information about a specific agent session.
|
|
36
36
|
|
|
37
37
|
**Returns:** Complete session details including status, configuration, metadata, and optionally:
|
|
38
|
-
- Full session transcript
|
|
38
|
+
- Full session transcript (WARNING: can be very large)
|
|
39
39
|
- Session logs (paginated)
|
|
40
40
|
- Subagent transcripts (paginated)
|
|
41
41
|
|
|
42
|
+
**Transcript access:** By default (include_transcript=false), the response includes the transcript file path instead of the full content. You can then efficiently grep, tail, or read specific sections of that file — for example, read the last ~100 lines to see the most recent messages. This avoids overwhelming your context window with massive transcripts.
|
|
43
|
+
|
|
42
44
|
**Use cases:**
|
|
43
45
|
- View detailed session information
|
|
44
46
|
- Check session status and progress (use transcript to determine if a "needs_input" session has completed its task or needs follow-up)
|
|
@@ -114,6 +116,14 @@ function formatSessionDetails(session, includeTranscript) {
|
|
|
114
116
|
lines.push(session.transcript);
|
|
115
117
|
lines.push('```');
|
|
116
118
|
}
|
|
119
|
+
// When transcript is not included inline, provide file path hints for efficient access
|
|
120
|
+
if (!includeTranscript && session.session_id) {
|
|
121
|
+
lines.push('');
|
|
122
|
+
lines.push('### Transcript File');
|
|
123
|
+
lines.push(`- **Path pattern:** \`~/.claude/projects/*/${session.session_id}.jsonl\``);
|
|
124
|
+
lines.push(`- **Find exact path:** \`ls ~/.claude/projects/*/${session.session_id}.jsonl\``);
|
|
125
|
+
lines.push('- **Tip:** Once you have the exact path, read the last ~100 lines to see the most recent messages, or grep for specific keywords. This avoids loading the entire transcript into your context window.');
|
|
126
|
+
}
|
|
117
127
|
return lines.join('\n');
|
|
118
128
|
}
|
|
119
129
|
function formatLogs(logs, pagination) {
|
|
@@ -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
|
}>;
|
|
@@ -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.";
|
|
@@ -21,6 +21,7 @@ const PARAM_DESCRIPTIONS = {
|
|
|
21
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,
|
package/shared/types.d.ts
CHANGED