agent-orchestrator-mcp-server 0.2.4 → 0.3.0
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/README.md +125 -30
- package/build/index.js +4 -4
- package/package.json +1 -1
- package/shared/orchestrator-client/orchestrator-client.d.ts +128 -3
- package/shared/orchestrator-client/orchestrator-client.integration-mock.js +313 -1
- package/shared/orchestrator-client/orchestrator-client.js +205 -0
- package/shared/resources.js +9 -4
- package/shared/tools/action-health.d.ts +58 -0
- package/shared/tools/action-health.js +101 -0
- package/shared/tools/action-notification.d.ts +46 -0
- package/shared/tools/action-notification.js +99 -0
- package/shared/tools/action-session.d.ts +33 -9
- package/shared/tools/action-session.js +177 -15
- package/shared/tools/action-trigger.d.ts +114 -0
- package/shared/tools/action-trigger.js +177 -0
- package/shared/tools/get-notifications.d.ts +70 -0
- package/shared/tools/get-notifications.js +113 -0
- package/shared/tools/get-session.d.ts +8 -0
- package/shared/tools/get-session.js +21 -2
- package/shared/tools/get-system-health.d.ts +38 -0
- package/shared/tools/get-system-health.js +69 -0
- package/shared/tools/get-transcript-archive.d.ts +27 -0
- package/shared/tools/get-transcript-archive.js +64 -0
- package/shared/tools/manage-enqueued-messages.d.ts +94 -0
- package/shared/tools/manage-enqueued-messages.js +259 -0
- package/shared/tools/search-sessions.d.ts +3 -10
- package/shared/tools/search-sessions.js +10 -15
- package/shared/tools/search-triggers.d.ts +78 -0
- package/shared/tools/search-triggers.js +145 -0
- package/shared/tools.d.ts +7 -9
- package/shared/tools.js +105 -32
- package/shared/types.d.ts +162 -1
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const SearchTriggersSchema = z.object({
|
|
3
|
+
id: z.number().optional(),
|
|
4
|
+
trigger_type: z.enum(['slack', 'schedule']).optional(),
|
|
5
|
+
status: z.enum(['enabled', 'disabled']).optional(),
|
|
6
|
+
include_channels: z.boolean().optional(),
|
|
7
|
+
page: z.number().min(1).optional(),
|
|
8
|
+
per_page: z.number().min(1).max(100).optional(),
|
|
9
|
+
});
|
|
10
|
+
const TOOL_DESCRIPTION = `Search and list automation triggers.
|
|
11
|
+
|
|
12
|
+
**Modes:**
|
|
13
|
+
- **Get by ID**: Provide an id to get trigger details with recent sessions
|
|
14
|
+
- **List**: List triggers with optional filters (trigger_type, status, pagination)
|
|
15
|
+
- **Include channels**: Set include_channels=true to also list available Slack channels (useful when creating Slack triggers)
|
|
16
|
+
|
|
17
|
+
**Use cases:**
|
|
18
|
+
- View configured automations (scheduled tasks, Slack integrations)
|
|
19
|
+
- Check trigger status and execution history
|
|
20
|
+
- Discover available Slack channels for new triggers`;
|
|
21
|
+
export function searchTriggersTool(_server, clientFactory) {
|
|
22
|
+
return {
|
|
23
|
+
name: 'search_triggers',
|
|
24
|
+
description: TOOL_DESCRIPTION,
|
|
25
|
+
inputSchema: {
|
|
26
|
+
type: 'object',
|
|
27
|
+
properties: {
|
|
28
|
+
id: {
|
|
29
|
+
type: 'number',
|
|
30
|
+
description: 'Get a specific trigger by ID. Returns trigger details with recent sessions.',
|
|
31
|
+
},
|
|
32
|
+
trigger_type: {
|
|
33
|
+
type: 'string',
|
|
34
|
+
enum: ['slack', 'schedule'],
|
|
35
|
+
description: 'Filter by trigger type.',
|
|
36
|
+
},
|
|
37
|
+
status: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
enum: ['enabled', 'disabled'],
|
|
40
|
+
description: 'Filter by status.',
|
|
41
|
+
},
|
|
42
|
+
include_channels: {
|
|
43
|
+
type: 'boolean',
|
|
44
|
+
description: 'Include available Slack channels. Default: false',
|
|
45
|
+
},
|
|
46
|
+
page: { type: 'number', minimum: 1, description: 'Page number. Default: 1' },
|
|
47
|
+
per_page: {
|
|
48
|
+
type: 'number',
|
|
49
|
+
minimum: 1,
|
|
50
|
+
maximum: 100,
|
|
51
|
+
description: 'Results per page. Default: 25',
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
required: [],
|
|
55
|
+
},
|
|
56
|
+
handler: async (args) => {
|
|
57
|
+
try {
|
|
58
|
+
const validated = SearchTriggersSchema.parse(args);
|
|
59
|
+
const client = clientFactory();
|
|
60
|
+
if (validated.id) {
|
|
61
|
+
const response = await client.getTrigger(validated.id);
|
|
62
|
+
const t = response.trigger;
|
|
63
|
+
const lines = [
|
|
64
|
+
`## Trigger: ${t.name}`,
|
|
65
|
+
'',
|
|
66
|
+
`- **ID:** ${t.id}`,
|
|
67
|
+
`- **Type:** ${t.trigger_type}`,
|
|
68
|
+
`- **Status:** ${t.status}`,
|
|
69
|
+
`- **Agent Root:** ${t.agent_root_name}`,
|
|
70
|
+
`- **Reuse Session:** ${t.reuse_session ? 'Yes' : 'No'}`,
|
|
71
|
+
`- **MCP Servers:** ${t.mcp_servers.length > 0 ? t.mcp_servers.join(', ') : '(none)'}`,
|
|
72
|
+
];
|
|
73
|
+
if (t.stop_condition)
|
|
74
|
+
lines.push(`- **Stop Condition:** ${t.stop_condition}`);
|
|
75
|
+
if (t.schedule_description)
|
|
76
|
+
lines.push(`- **Schedule:** ${t.schedule_description}`);
|
|
77
|
+
lines.push(`- **Sessions Created:** ${t.sessions_created_count}`);
|
|
78
|
+
if (t.last_triggered_at)
|
|
79
|
+
lines.push(`- **Last Triggered:** ${t.last_triggered_at}`);
|
|
80
|
+
lines.push('', '### Prompt Template', '```', t.prompt_template, '```');
|
|
81
|
+
if (t.configuration && Object.keys(t.configuration).length > 0) {
|
|
82
|
+
lines.push('', '### Configuration', '```json', JSON.stringify(t.configuration, null, 2), '```');
|
|
83
|
+
}
|
|
84
|
+
if (response.recent_sessions && response.recent_sessions.length > 0) {
|
|
85
|
+
lines.push('', '### Recent Sessions');
|
|
86
|
+
response.recent_sessions.forEach((s) => {
|
|
87
|
+
lines.push(`- **#${s.id}** ${s.title} (${s.status})`);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
91
|
+
}
|
|
92
|
+
// List triggers
|
|
93
|
+
const response = await client.listTriggers({
|
|
94
|
+
trigger_type: validated.trigger_type,
|
|
95
|
+
status: validated.status,
|
|
96
|
+
page: validated.page,
|
|
97
|
+
per_page: validated.per_page,
|
|
98
|
+
});
|
|
99
|
+
const lines = [];
|
|
100
|
+
if (response.triggers.length === 0) {
|
|
101
|
+
lines.push('## Triggers\n\nNo triggers found.');
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
lines.push(`## Triggers (${response.pagination.total_count} total, page ${response.pagination.page} of ${response.pagination.total_pages})`, '');
|
|
105
|
+
response.triggers.forEach((t) => {
|
|
106
|
+
lines.push(`### ${t.name} (ID: ${t.id})`);
|
|
107
|
+
lines.push(`- **Type:** ${t.trigger_type} | **Status:** ${t.status} | **Sessions:** ${t.sessions_created_count}`);
|
|
108
|
+
if (t.schedule_description)
|
|
109
|
+
lines.push(`- **Schedule:** ${t.schedule_description}`);
|
|
110
|
+
lines.push('');
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
if (validated.include_channels) {
|
|
114
|
+
try {
|
|
115
|
+
const channels = await client.getTriggerChannels();
|
|
116
|
+
lines.push('', '## Available Slack Channels', '');
|
|
117
|
+
if (channels.channels.length === 0) {
|
|
118
|
+
lines.push('No Slack channels available.');
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
channels.channels.forEach((ch) => {
|
|
122
|
+
lines.push(`- **#${ch.name}** (${ch.id}) - ${ch.num_members} members${ch.is_private ? ' [private]' : ''}`);
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
lines.push('', `*Could not fetch Slack channels: ${error instanceof Error ? error.message : 'Unknown error'}*`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return { content: [{ type: 'text', text: lines.join('\n') }] };
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
return {
|
|
134
|
+
content: [
|
|
135
|
+
{
|
|
136
|
+
type: 'text',
|
|
137
|
+
text: `Error searching triggers: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
isError: true,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
}
|
package/shared/tools.d.ts
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
2
2
|
import { ClientFactory } from './server.js';
|
|
3
3
|
/**
|
|
4
|
-
* Available tool groups for agent-orchestrator
|
|
5
|
-
*
|
|
6
|
-
* - 'write': Write operations (start_session, action_session)
|
|
7
|
-
* - 'admin': Administrative operations (reserved for future use)
|
|
4
|
+
* Available tool groups for agent-orchestrator.
|
|
5
|
+
* Each domain has a base group (full access) and a _readonly variant (read-only).
|
|
8
6
|
*/
|
|
9
|
-
export type ToolGroup = '
|
|
7
|
+
export type ToolGroup = 'sessions' | 'sessions_readonly' | 'notifications' | 'notifications_readonly' | 'triggers' | 'triggers_readonly' | 'health' | 'health_readonly';
|
|
10
8
|
/**
|
|
11
|
-
* Parse enabled tool groups from environment variable.
|
|
12
|
-
* @param enabledGroupsParam - Comma-separated list of groups (e.g., "
|
|
9
|
+
* Parse enabled tool groups from environment variable or parameter.
|
|
10
|
+
* @param enabledGroupsParam - Comma-separated list of groups (e.g., "sessions,notifications")
|
|
13
11
|
* @returns Array of enabled tool groups
|
|
14
12
|
*/
|
|
15
13
|
export declare function parseEnabledToolGroups(enabledGroupsParam?: string): ToolGroup[];
|
|
@@ -21,9 +19,9 @@ export declare function parseEnabledToolGroups(enabledGroupsParam?: string): Too
|
|
|
21
19
|
* a factory pattern that accepts the server and clientFactory as parameters.
|
|
22
20
|
*
|
|
23
21
|
* @param clientFactory - Factory function that creates client instances
|
|
24
|
-
* @param enabledGroups - Optional
|
|
22
|
+
* @param enabledGroups - Optional string of enabled tool groups (defaults to all)
|
|
25
23
|
* @returns Function that registers all tools with a server
|
|
26
24
|
*/
|
|
27
|
-
export declare function createRegisterTools(clientFactory: ClientFactory, enabledGroups?:
|
|
25
|
+
export declare function createRegisterTools(clientFactory: ClientFactory, enabledGroups?: string): (server: Server) => void;
|
|
28
26
|
export declare function registerTools(server: Server): void;
|
|
29
27
|
//# sourceMappingURL=tools.d.ts.map
|
package/shared/tools.js
CHANGED
|
@@ -1,51 +1,122 @@
|
|
|
1
1
|
import { ListToolsRequestSchema, CallToolRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
-
//
|
|
3
|
-
import {
|
|
2
|
+
// 13 tools across 4 domains
|
|
3
|
+
import { quickSearchSessionsTool } from './tools/search-sessions.js';
|
|
4
4
|
import { startSessionTool } from './tools/start-session.js';
|
|
5
5
|
import { getSessionTool } from './tools/get-session.js';
|
|
6
6
|
import { actionSessionTool } from './tools/action-session.js';
|
|
7
7
|
import { getConfigsTool } from './tools/get-configs.js';
|
|
8
|
+
import { manageEnqueuedMessagesTool } from './tools/manage-enqueued-messages.js';
|
|
8
9
|
import { sendPushNotificationTool } from './tools/send-push-notification.js';
|
|
9
|
-
|
|
10
|
+
import { getNotificationsTool } from './tools/get-notifications.js';
|
|
11
|
+
import { actionNotificationTool } from './tools/action-notification.js';
|
|
12
|
+
import { searchTriggersTool } from './tools/search-triggers.js';
|
|
13
|
+
import { actionTriggerTool } from './tools/action-trigger.js';
|
|
14
|
+
import { getSystemHealthTool } from './tools/get-system-health.js';
|
|
15
|
+
import { actionHealthTool } from './tools/action-health.js';
|
|
16
|
+
import { getTranscriptArchiveTool } from './tools/get-transcript-archive.js';
|
|
10
17
|
/**
|
|
11
|
-
*
|
|
12
|
-
|
|
18
|
+
* All valid tool groups (base groups and their _readonly variants)
|
|
19
|
+
*/
|
|
20
|
+
const VALID_TOOL_GROUPS = [
|
|
21
|
+
'sessions',
|
|
22
|
+
'sessions_readonly',
|
|
23
|
+
'notifications',
|
|
24
|
+
'notifications_readonly',
|
|
25
|
+
'triggers',
|
|
26
|
+
'triggers_readonly',
|
|
27
|
+
'health',
|
|
28
|
+
'health_readonly',
|
|
29
|
+
];
|
|
30
|
+
/**
|
|
31
|
+
* Base groups (without _readonly suffix) - used for default "all groups" behavior
|
|
32
|
+
*/
|
|
33
|
+
const BASE_TOOL_GROUPS = ['sessions', 'notifications', 'triggers', 'health'];
|
|
34
|
+
/**
|
|
35
|
+
* Parse enabled tool groups from environment variable or parameter.
|
|
36
|
+
* @param enabledGroupsParam - Comma-separated list of groups (e.g., "sessions,notifications")
|
|
13
37
|
* @returns Array of enabled tool groups
|
|
14
38
|
*/
|
|
15
39
|
export function parseEnabledToolGroups(enabledGroupsParam) {
|
|
16
|
-
|
|
17
|
-
|
|
40
|
+
const groupsStr = enabledGroupsParam || process.env.TOOL_GROUPS || '';
|
|
41
|
+
if (!groupsStr) {
|
|
42
|
+
// Default: all base groups enabled (full read+write access)
|
|
43
|
+
return [...BASE_TOOL_GROUPS];
|
|
18
44
|
}
|
|
19
|
-
const
|
|
20
|
-
const validGroups =
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
45
|
+
const groups = groupsStr.split(',').map((g) => g.trim());
|
|
46
|
+
const validGroups = [];
|
|
47
|
+
for (const group of groups) {
|
|
48
|
+
if (VALID_TOOL_GROUPS.includes(group) &&
|
|
49
|
+
!validGroups.includes(group)) {
|
|
50
|
+
validGroups.push(group);
|
|
51
|
+
}
|
|
52
|
+
else if (!VALID_TOOL_GROUPS.includes(group)) {
|
|
53
|
+
console.warn(`Unknown tool group: ${group}`);
|
|
54
|
+
}
|
|
24
55
|
}
|
|
25
56
|
return validGroups;
|
|
26
57
|
}
|
|
27
58
|
/**
|
|
28
59
|
* All available tools with their group assignments.
|
|
29
|
-
* Tools can belong to multiple groups.
|
|
30
60
|
*
|
|
31
|
-
*
|
|
32
|
-
* -
|
|
33
|
-
* -
|
|
34
|
-
* -
|
|
35
|
-
* -
|
|
36
|
-
* -
|
|
37
|
-
* -
|
|
61
|
+
* 14 tools across 4 domains:
|
|
62
|
+
* - quick_search_sessions: Quick title-based search/list/get sessions by ID (sessions, read)
|
|
63
|
+
* - get_session: Get detailed session info with optional logs/transcripts (sessions, read)
|
|
64
|
+
* - get_configs: Fetch all static configuration (sessions, read)
|
|
65
|
+
* - get_transcript_archive: Get transcript archive download URL and metadata (sessions, read)
|
|
66
|
+
* - start_session: Create a new session (sessions, write)
|
|
67
|
+
* - action_session: Perform session actions (sessions, write)
|
|
68
|
+
* - manage_enqueued_messages: Manage session message queue (sessions, write)
|
|
69
|
+
* - get_notifications: Get/list notifications and badge count (notifications, read)
|
|
70
|
+
* - send_push_notification: Send a push notification (notifications, write)
|
|
71
|
+
* - action_notification: Mark read, dismiss notifications (notifications, write)
|
|
72
|
+
* - search_triggers: Search/list automation triggers (triggers, read)
|
|
73
|
+
* - action_trigger: Create, update, delete, toggle triggers (triggers, write)
|
|
74
|
+
* - get_system_health: Get system health report and CLI status (health, read)
|
|
75
|
+
* - action_health: System maintenance actions (health, write)
|
|
38
76
|
*/
|
|
39
77
|
const ALL_TOOLS = [
|
|
40
|
-
//
|
|
41
|
-
{ factory:
|
|
42
|
-
{ factory: getSessionTool,
|
|
43
|
-
{ factory: getConfigsTool,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
{ factory:
|
|
47
|
-
{ factory:
|
|
78
|
+
// Session tools - read operations
|
|
79
|
+
{ factory: quickSearchSessionsTool, group: 'sessions', isWriteOperation: false },
|
|
80
|
+
{ factory: getSessionTool, group: 'sessions', isWriteOperation: false },
|
|
81
|
+
{ factory: getConfigsTool, group: 'sessions', isWriteOperation: false },
|
|
82
|
+
{ factory: getTranscriptArchiveTool, group: 'sessions', isWriteOperation: false },
|
|
83
|
+
// Session tools - write operations
|
|
84
|
+
{ factory: startSessionTool, group: 'sessions', isWriteOperation: true },
|
|
85
|
+
{ factory: actionSessionTool, group: 'sessions', isWriteOperation: true },
|
|
86
|
+
{ factory: manageEnqueuedMessagesTool, group: 'sessions', isWriteOperation: true },
|
|
87
|
+
// Notification tools - read operations
|
|
88
|
+
{ factory: getNotificationsTool, group: 'notifications', isWriteOperation: false },
|
|
89
|
+
// Notification tools - write operations
|
|
90
|
+
{ factory: sendPushNotificationTool, group: 'notifications', isWriteOperation: true },
|
|
91
|
+
{ factory: actionNotificationTool, group: 'notifications', isWriteOperation: true },
|
|
92
|
+
// Trigger tools - read operations
|
|
93
|
+
{ factory: searchTriggersTool, group: 'triggers', isWriteOperation: false },
|
|
94
|
+
// Trigger tools - write operations
|
|
95
|
+
{ factory: actionTriggerTool, group: 'triggers', isWriteOperation: true },
|
|
96
|
+
// Health tools - read operations
|
|
97
|
+
{ factory: getSystemHealthTool, group: 'health', isWriteOperation: false },
|
|
98
|
+
// Health tools - write operations
|
|
99
|
+
{ factory: actionHealthTool, group: 'health', isWriteOperation: true },
|
|
48
100
|
];
|
|
101
|
+
/**
|
|
102
|
+
* Check if a tool should be included based on enabled groups.
|
|
103
|
+
* @param toolDef - The tool definition to check
|
|
104
|
+
* @param enabledGroups - Array of enabled tool groups
|
|
105
|
+
* @returns true if the tool should be included
|
|
106
|
+
*/
|
|
107
|
+
function shouldIncludeTool(toolDef, enabledGroups) {
|
|
108
|
+
const baseGroup = toolDef.group;
|
|
109
|
+
const readonlyGroup = `${baseGroup}_readonly`;
|
|
110
|
+
// Check if the base group (full access) is enabled
|
|
111
|
+
if (enabledGroups.includes(baseGroup)) {
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
// Check if the readonly group is enabled (only include read operations)
|
|
115
|
+
if (enabledGroups.includes(readonlyGroup) && !toolDef.isWriteOperation) {
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
49
120
|
/**
|
|
50
121
|
* Creates a function to register all tools with the server.
|
|
51
122
|
* This pattern uses individual tool files for better modularity and testability.
|
|
@@ -54,14 +125,16 @@ const ALL_TOOLS = [
|
|
|
54
125
|
* a factory pattern that accepts the server and clientFactory as parameters.
|
|
55
126
|
*
|
|
56
127
|
* @param clientFactory - Factory function that creates client instances
|
|
57
|
-
* @param enabledGroups - Optional
|
|
128
|
+
* @param enabledGroups - Optional string of enabled tool groups (defaults to all)
|
|
58
129
|
* @returns Function that registers all tools with a server
|
|
59
130
|
*/
|
|
60
131
|
export function createRegisterTools(clientFactory, enabledGroups) {
|
|
61
|
-
const groups = enabledGroups || parseEnabledToolGroups(process.env.ENABLED_TOOLGROUPS);
|
|
62
132
|
return (server) => {
|
|
63
|
-
|
|
64
|
-
|
|
133
|
+
const enabledToolGroups = parseEnabledToolGroups(enabledGroups);
|
|
134
|
+
// Filter tools based on enabled groups
|
|
135
|
+
const enabledTools = ALL_TOOLS.filter((toolDef) => shouldIncludeTool(toolDef, enabledToolGroups));
|
|
136
|
+
// Create tool instances
|
|
137
|
+
const tools = enabledTools.map((toolDef) => toolDef.factory(server, clientFactory));
|
|
65
138
|
// List available tools
|
|
66
139
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
67
140
|
return {
|
package/shared/types.d.ts
CHANGED
|
@@ -68,7 +68,6 @@ export interface SessionsResponse {
|
|
|
68
68
|
}
|
|
69
69
|
export interface SearchSessionsResponse {
|
|
70
70
|
query: string;
|
|
71
|
-
search_contents: boolean;
|
|
72
71
|
sessions: Session[];
|
|
73
72
|
pagination: Pagination;
|
|
74
73
|
}
|
|
@@ -186,4 +185,166 @@ export interface UpdateSubagentTranscriptRequest {
|
|
|
186
185
|
total_tokens?: number;
|
|
187
186
|
tool_use_count?: number;
|
|
188
187
|
}
|
|
188
|
+
export type EnqueuedMessageStatus = 'pending' | 'processing' | 'sent';
|
|
189
|
+
export interface EnqueuedMessage {
|
|
190
|
+
id: number;
|
|
191
|
+
session_id: number;
|
|
192
|
+
content: string;
|
|
193
|
+
stop_condition: string | null;
|
|
194
|
+
position: number;
|
|
195
|
+
status: EnqueuedMessageStatus;
|
|
196
|
+
created_at: string;
|
|
197
|
+
updated_at: string;
|
|
198
|
+
}
|
|
199
|
+
export interface EnqueuedMessagesResponse {
|
|
200
|
+
enqueued_messages: EnqueuedMessage[];
|
|
201
|
+
pagination: Pagination;
|
|
202
|
+
}
|
|
203
|
+
export interface EnqueuedMessageResponse {
|
|
204
|
+
enqueued_message: EnqueuedMessage;
|
|
205
|
+
}
|
|
206
|
+
export interface EnqueuedMessageInterruptResponse {
|
|
207
|
+
session: Session;
|
|
208
|
+
message: string;
|
|
209
|
+
}
|
|
210
|
+
export type TriggerType = 'slack' | 'schedule';
|
|
211
|
+
export type TriggerStatus = 'enabled' | 'disabled';
|
|
212
|
+
export interface Trigger {
|
|
213
|
+
id: number;
|
|
214
|
+
name: string;
|
|
215
|
+
trigger_type: TriggerType;
|
|
216
|
+
status: TriggerStatus;
|
|
217
|
+
agent_root_name: string;
|
|
218
|
+
prompt_template: string;
|
|
219
|
+
stop_condition: string | null;
|
|
220
|
+
reuse_session: boolean;
|
|
221
|
+
mcp_servers: string[];
|
|
222
|
+
configuration: Record<string, unknown>;
|
|
223
|
+
schedule_description: string | null;
|
|
224
|
+
last_session_id: number | null;
|
|
225
|
+
last_triggered_at: string | null;
|
|
226
|
+
last_polled_at: string | null;
|
|
227
|
+
sessions_created_count: number;
|
|
228
|
+
created_at: string;
|
|
229
|
+
updated_at: string;
|
|
230
|
+
}
|
|
231
|
+
export interface TriggersResponse {
|
|
232
|
+
triggers: Trigger[];
|
|
233
|
+
pagination: Pagination;
|
|
234
|
+
}
|
|
235
|
+
export interface TriggerResponse {
|
|
236
|
+
trigger: Trigger;
|
|
237
|
+
recent_sessions?: Session[];
|
|
238
|
+
}
|
|
239
|
+
export interface TriggerChannelsResponse {
|
|
240
|
+
channels: Array<{
|
|
241
|
+
id: string;
|
|
242
|
+
name: string;
|
|
243
|
+
is_private: boolean;
|
|
244
|
+
num_members: number;
|
|
245
|
+
}>;
|
|
246
|
+
}
|
|
247
|
+
export interface CreateTriggerRequest {
|
|
248
|
+
name: string;
|
|
249
|
+
trigger_type: TriggerType;
|
|
250
|
+
agent_root_name: string;
|
|
251
|
+
prompt_template: string;
|
|
252
|
+
status?: TriggerStatus;
|
|
253
|
+
stop_condition?: string;
|
|
254
|
+
reuse_session?: boolean;
|
|
255
|
+
mcp_servers?: string[];
|
|
256
|
+
configuration?: Record<string, unknown>;
|
|
257
|
+
}
|
|
258
|
+
export interface UpdateTriggerRequest {
|
|
259
|
+
name?: string;
|
|
260
|
+
trigger_type?: TriggerType;
|
|
261
|
+
agent_root_name?: string;
|
|
262
|
+
prompt_template?: string;
|
|
263
|
+
status?: TriggerStatus;
|
|
264
|
+
stop_condition?: string;
|
|
265
|
+
reuse_session?: boolean;
|
|
266
|
+
mcp_servers?: string[];
|
|
267
|
+
configuration?: Record<string, unknown>;
|
|
268
|
+
}
|
|
269
|
+
export interface Notification {
|
|
270
|
+
id: number;
|
|
271
|
+
session_id: number;
|
|
272
|
+
notification_type: string;
|
|
273
|
+
read: boolean;
|
|
274
|
+
stale: boolean;
|
|
275
|
+
created_at: string;
|
|
276
|
+
updated_at: string;
|
|
277
|
+
session?: {
|
|
278
|
+
id: number;
|
|
279
|
+
slug: string | null;
|
|
280
|
+
title: string;
|
|
281
|
+
status: string;
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
export interface NotificationsResponse {
|
|
285
|
+
notifications: Notification[];
|
|
286
|
+
pagination: Pagination;
|
|
287
|
+
}
|
|
288
|
+
export interface NotificationResponse {
|
|
289
|
+
notification: Notification;
|
|
290
|
+
}
|
|
291
|
+
export interface NotificationBadgeResponse {
|
|
292
|
+
pending_count: number;
|
|
293
|
+
}
|
|
294
|
+
export interface NotificationMarkAllReadResponse {
|
|
295
|
+
marked_count: number;
|
|
296
|
+
pending_count: number;
|
|
297
|
+
}
|
|
298
|
+
export interface NotificationDismissAllReadResponse {
|
|
299
|
+
dismissed_count: number;
|
|
300
|
+
pending_count: number;
|
|
301
|
+
}
|
|
302
|
+
export interface HealthReport {
|
|
303
|
+
health_report: Record<string, unknown>;
|
|
304
|
+
timestamp: string;
|
|
305
|
+
rails_env: string;
|
|
306
|
+
ruby_version: string;
|
|
307
|
+
}
|
|
308
|
+
export interface HealthActionResponse {
|
|
309
|
+
[key: string]: unknown;
|
|
310
|
+
}
|
|
311
|
+
export interface CliStatusResponse {
|
|
312
|
+
cli_status: Record<string, unknown>;
|
|
313
|
+
unauthenticated_count: number;
|
|
314
|
+
}
|
|
315
|
+
export interface CliActionResponse {
|
|
316
|
+
queued: boolean;
|
|
317
|
+
message: string;
|
|
318
|
+
[key: string]: unknown;
|
|
319
|
+
}
|
|
320
|
+
export interface ForkSessionResponse {
|
|
321
|
+
session: Session;
|
|
322
|
+
message: string;
|
|
323
|
+
}
|
|
324
|
+
export interface RefreshSessionResponse {
|
|
325
|
+
session: Session;
|
|
326
|
+
message: string;
|
|
327
|
+
}
|
|
328
|
+
export interface RefreshAllSessionsResponse {
|
|
329
|
+
message: string;
|
|
330
|
+
refreshed: number;
|
|
331
|
+
restarted: number;
|
|
332
|
+
continued: number;
|
|
333
|
+
errors: number;
|
|
334
|
+
}
|
|
335
|
+
export interface BulkArchiveResponse {
|
|
336
|
+
archived_count: number;
|
|
337
|
+
errors: Array<{
|
|
338
|
+
id: number;
|
|
339
|
+
error: string;
|
|
340
|
+
}>;
|
|
341
|
+
}
|
|
342
|
+
export interface TranscriptResponse {
|
|
343
|
+
transcript_text: string;
|
|
344
|
+
}
|
|
345
|
+
export interface TranscriptArchiveStatusResponse {
|
|
346
|
+
generated_at: string;
|
|
347
|
+
session_count: number;
|
|
348
|
+
file_size_bytes: number;
|
|
349
|
+
}
|
|
189
350
|
//# sourceMappingURL=types.d.ts.map
|