awb-agent-manager 1.0.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/LICENSE +21 -0
- package/README.md +246 -0
- package/dist/lib/agent-lockfile.d.ts +37 -0
- package/dist/lib/agent-lockfile.js +205 -0
- package/dist/lib/agent-lockfile.js.map +1 -0
- package/dist/lib/agent-manager-commands.d.ts +34 -0
- package/dist/lib/agent-manager-commands.js +531 -0
- package/dist/lib/agent-manager-commands.js.map +1 -0
- package/dist/lib/base-session-manager.d.ts +127 -0
- package/dist/lib/base-session-manager.js +667 -0
- package/dist/lib/base-session-manager.js.map +1 -0
- package/dist/lib/chat-attachment-prep.d.ts +35 -0
- package/dist/lib/chat-attachment-prep.js +180 -0
- package/dist/lib/chat-attachment-prep.js.map +1 -0
- package/dist/lib/chat-session-manager.d.ts +29 -0
- package/dist/lib/chat-session-manager.js +400 -0
- package/dist/lib/chat-session-manager.js.map +1 -0
- package/dist/lib/circuit-breaker.d.ts +34 -0
- package/dist/lib/circuit-breaker.js +146 -0
- package/dist/lib/circuit-breaker.js.map +1 -0
- package/dist/lib/cli-adapters/antigravity.d.ts +15 -0
- package/dist/lib/cli-adapters/antigravity.js +114 -0
- package/dist/lib/cli-adapters/antigravity.js.map +1 -0
- package/dist/lib/cli-adapters/base.d.ts +115 -0
- package/dist/lib/cli-adapters/base.js +111 -0
- package/dist/lib/cli-adapters/base.js.map +1 -0
- package/dist/lib/cli-adapters/claude.d.ts +19 -0
- package/dist/lib/cli-adapters/claude.js +233 -0
- package/dist/lib/cli-adapters/claude.js.map +1 -0
- package/dist/lib/cli-adapters/codex.d.ts +14 -0
- package/dist/lib/cli-adapters/codex.js +152 -0
- package/dist/lib/cli-adapters/codex.js.map +1 -0
- package/dist/lib/cli-adapters/deepseek.d.ts +15 -0
- package/dist/lib/cli-adapters/deepseek.js +70 -0
- package/dist/lib/cli-adapters/deepseek.js.map +1 -0
- package/dist/lib/cli-adapters/index.d.ts +8 -0
- package/dist/lib/cli-adapters/index.js +27 -0
- package/dist/lib/cli-adapters/index.js.map +1 -0
- package/dist/lib/cli-adapters/model-introspect.d.ts +3 -0
- package/dist/lib/cli-adapters/model-introspect.js +65 -0
- package/dist/lib/cli-adapters/model-introspect.js.map +1 -0
- package/dist/lib/cli-error-signatures.d.ts +9 -0
- package/dist/lib/cli-error-signatures.js +22 -0
- package/dist/lib/cli-error-signatures.js.map +1 -0
- package/dist/lib/cli-output-summary.d.ts +2 -0
- package/dist/lib/cli-output-summary.js +104 -0
- package/dist/lib/cli-output-summary.js.map +1 -0
- package/dist/lib/cli-resolver.d.ts +2 -0
- package/dist/lib/cli-resolver.js +177 -0
- package/dist/lib/cli-resolver.js.map +1 -0
- package/dist/lib/config.d.ts +13 -0
- package/dist/lib/config.js +124 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/constants.d.ts +36 -0
- package/dist/lib/constants.js +51 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/environment-provisioner.d.ts +31 -0
- package/dist/lib/environment-provisioner.js +182 -0
- package/dist/lib/environment-provisioner.js.map +1 -0
- package/dist/lib/error-log-uploader.d.ts +19 -0
- package/dist/lib/error-log-uploader.js +138 -0
- package/dist/lib/error-log-uploader.js.map +1 -0
- package/dist/lib/event-dispatcher.d.ts +149 -0
- package/dist/lib/event-dispatcher.js +799 -0
- package/dist/lib/event-dispatcher.js.map +1 -0
- package/dist/lib/event-log-recorder.d.ts +11 -0
- package/dist/lib/event-log-recorder.js +77 -0
- package/dist/lib/event-log-recorder.js.map +1 -0
- package/dist/lib/event-stream.d.ts +26 -0
- package/dist/lib/event-stream.js +177 -0
- package/dist/lib/event-stream.js.map +1 -0
- package/dist/lib/fs-browser.d.ts +30 -0
- package/dist/lib/fs-browser.js +287 -0
- package/dist/lib/fs-browser.js.map +1 -0
- package/dist/lib/host-mcp/logs.d.ts +19 -0
- package/dist/lib/host-mcp/logs.js +102 -0
- package/dist/lib/host-mcp/logs.js.map +1 -0
- package/dist/lib/host-mcp/platform.d.ts +24 -0
- package/dist/lib/host-mcp/platform.js +133 -0
- package/dist/lib/host-mcp/platform.js.map +1 -0
- package/dist/lib/host-mcp/screens.d.ts +22 -0
- package/dist/lib/host-mcp/screens.js +172 -0
- package/dist/lib/host-mcp/screens.js.map +1 -0
- package/dist/lib/host-mcp/server.d.ts +3 -0
- package/dist/lib/host-mcp/server.js +233 -0
- package/dist/lib/host-mcp/server.js.map +1 -0
- package/dist/lib/host-mcp/tools.d.ts +172 -0
- package/dist/lib/host-mcp/tools.js +1241 -0
- package/dist/lib/host-mcp/tools.js.map +1 -0
- package/dist/lib/instance-heartbeat.d.ts +55 -0
- package/dist/lib/instance-heartbeat.js +118 -0
- package/dist/lib/instance-heartbeat.js.map +1 -0
- package/dist/lib/legacy-import.d.ts +17 -0
- package/dist/lib/legacy-import.js +70 -0
- package/dist/lib/legacy-import.js.map +1 -0
- package/dist/lib/logging.d.ts +3 -0
- package/dist/lib/logging.js +65 -0
- package/dist/lib/logging.js.map +1 -0
- package/dist/lib/managed-agent-context.d.ts +25 -0
- package/dist/lib/managed-agent-context.js +33 -0
- package/dist/lib/managed-agent-context.js.map +1 -0
- package/dist/lib/managed-agent-store.d.ts +34 -0
- package/dist/lib/managed-agent-store.js +160 -0
- package/dist/lib/managed-agent-store.js.map +1 -0
- package/dist/lib/managed-agents.d.ts +24 -0
- package/dist/lib/managed-agents.js +87 -0
- package/dist/lib/managed-agents.js.map +1 -0
- package/dist/lib/mcp-client.d.ts +8 -0
- package/dist/lib/mcp-client.js +122 -0
- package/dist/lib/mcp-client.js.map +1 -0
- package/dist/lib/orphan-cleanup.d.ts +6 -0
- package/dist/lib/orphan-cleanup.js +108 -0
- package/dist/lib/orphan-cleanup.js.map +1 -0
- package/dist/lib/presence-heartbeat.d.ts +8 -0
- package/dist/lib/presence-heartbeat.js +61 -0
- package/dist/lib/presence-heartbeat.js.map +1 -0
- package/dist/lib/prompts.d.ts +29 -0
- package/dist/lib/prompts.js +208 -0
- package/dist/lib/prompts.js.map +1 -0
- package/dist/lib/rest.d.ts +61 -0
- package/dist/lib/rest.js +307 -0
- package/dist/lib/rest.js.map +1 -0
- package/dist/lib/run-provisioner.d.ts +21 -0
- package/dist/lib/run-provisioner.js +115 -0
- package/dist/lib/run-provisioner.js.map +1 -0
- package/dist/lib/self-path.d.ts +7 -0
- package/dist/lib/self-path.js +29 -0
- package/dist/lib/self-path.js.map +1 -0
- package/dist/lib/self-update.d.ts +46 -0
- package/dist/lib/self-update.js +482 -0
- package/dist/lib/self-update.js.map +1 -0
- package/dist/lib/service-install.d.ts +23 -0
- package/dist/lib/service-install.js +673 -0
- package/dist/lib/service-install.js.map +1 -0
- package/dist/lib/setup.d.ts +16 -0
- package/dist/lib/setup.js +157 -0
- package/dist/lib/setup.js.map +1 -0
- package/dist/lib/subagent-manager.d.ts +84 -0
- package/dist/lib/subagent-manager.js +793 -0
- package/dist/lib/subagent-manager.js.map +1 -0
- package/dist/lib/subagent-monitor.d.ts +43 -0
- package/dist/lib/subagent-monitor.js +229 -0
- package/dist/lib/subagent-monitor.js.map +1 -0
- package/dist/lib/ticket-session-manager.d.ts +23 -0
- package/dist/lib/ticket-session-manager.js +471 -0
- package/dist/lib/ticket-session-manager.js.map +1 -0
- package/dist/lib/worktree-manager.d.ts +39 -0
- package/dist/lib/worktree-manager.js +226 -0
- package/dist/lib/worktree-manager.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.js +670 -0
- package/dist/main.js.map +1 -0
- package/dist/package.json +57 -0
- package/package.json +57 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { renderAttachmentBlock, } from './chat-attachment-prep.js';
|
|
2
|
+
function appendBaseRepoBlock(lines, baseRepo, baseBranch) {
|
|
3
|
+
const branch = (baseBranch || baseRepo?.default_branch || '').trim();
|
|
4
|
+
if (!baseRepo && !branch)
|
|
5
|
+
return;
|
|
6
|
+
lines.push('');
|
|
7
|
+
lines.push('Base repository:');
|
|
8
|
+
if (baseRepo?.name)
|
|
9
|
+
lines.push(`- Name: ${baseRepo.name}`);
|
|
10
|
+
if (baseRepo?.url)
|
|
11
|
+
lines.push(`- URL: ${baseRepo.url}`);
|
|
12
|
+
if (branch)
|
|
13
|
+
lines.push(`- Base branch: ${branch}`);
|
|
14
|
+
lines.push('- Before editing code, ensure your working_dir is a clone of this repository, then `git fetch` and check out the base branch (creating a fresh feature branch off it for your changes).');
|
|
15
|
+
}
|
|
16
|
+
export function composeTriggerPrompt(ticket, _rolePrompt, ticketPrompt, fallbackTicketId, columnPrompt, extraInstructions) {
|
|
17
|
+
const lines = [];
|
|
18
|
+
lines.push('You are an AWB subagent responding to an assigned trigger.');
|
|
19
|
+
lines.push('');
|
|
20
|
+
if (ticket) {
|
|
21
|
+
lines.push(`Ticket ID: ${ticket.id}`);
|
|
22
|
+
if (ticket.title)
|
|
23
|
+
lines.push(`Title: ${ticket.title}`);
|
|
24
|
+
if (ticket.description) {
|
|
25
|
+
lines.push('');
|
|
26
|
+
lines.push('Description:');
|
|
27
|
+
lines.push(ticket.description);
|
|
28
|
+
}
|
|
29
|
+
if (columnPrompt && columnPrompt.content) {
|
|
30
|
+
lines.push('');
|
|
31
|
+
lines.push(`Column workflow guide (${columnPrompt.name || 'column_prompt'}):`);
|
|
32
|
+
lines.push(columnPrompt.content);
|
|
33
|
+
}
|
|
34
|
+
if (ticketPrompt) {
|
|
35
|
+
lines.push('');
|
|
36
|
+
lines.push('Ticket instructions:');
|
|
37
|
+
lines.push(ticketPrompt);
|
|
38
|
+
}
|
|
39
|
+
else if (ticket.prompt_text) {
|
|
40
|
+
lines.push('');
|
|
41
|
+
lines.push('Ticket instructions:');
|
|
42
|
+
lines.push(ticket.prompt_text);
|
|
43
|
+
}
|
|
44
|
+
appendBaseRepoBlock(lines, ticket.base_repo ?? null, ticket.base_branch ?? null);
|
|
45
|
+
const comments = Array.isArray(ticket.comments)
|
|
46
|
+
? ticket.comments.slice(-5)
|
|
47
|
+
: [];
|
|
48
|
+
if (comments.length > 0) {
|
|
49
|
+
lines.push('');
|
|
50
|
+
lines.push('Recent comments (newest last):');
|
|
51
|
+
for (const c of comments) {
|
|
52
|
+
const who = c.author_name || c.agent_name || 'unknown';
|
|
53
|
+
const when = c.created_at || '';
|
|
54
|
+
const body = (c.body || c.content || '').slice(0, 2000);
|
|
55
|
+
lines.push(`- [${when}] ${who}: ${body}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
lines.push(`Ticket ID: ${fallbackTicketId || 'unknown'}`);
|
|
61
|
+
lines.push('(Fresh ticket context fetch failed — using embedded trigger payload only.)');
|
|
62
|
+
if (columnPrompt && columnPrompt.content) {
|
|
63
|
+
lines.push('');
|
|
64
|
+
lines.push(`Column workflow guide (${columnPrompt.name || 'column_prompt'}):`);
|
|
65
|
+
lines.push(columnPrompt.content);
|
|
66
|
+
}
|
|
67
|
+
if (ticketPrompt) {
|
|
68
|
+
lines.push('');
|
|
69
|
+
lines.push('Ticket instructions:');
|
|
70
|
+
lines.push(ticketPrompt);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
lines.push('');
|
|
74
|
+
lines.push('Instructions:');
|
|
75
|
+
lines.push('- Use AWB MCP tools (mcp__awb__*) to perform the work.');
|
|
76
|
+
lines.push('- Claim the ticket if not already claimed.');
|
|
77
|
+
lines.push('- Leave a comment on the ticket when done describing what you did.');
|
|
78
|
+
lines.push('- Move the ticket to the next column when the work is complete.');
|
|
79
|
+
if (extraInstructions) {
|
|
80
|
+
lines.push('');
|
|
81
|
+
lines.push(extraInstructions);
|
|
82
|
+
}
|
|
83
|
+
return lines.join('\n');
|
|
84
|
+
}
|
|
85
|
+
function chatReplyInstructions(usesNativeMcp, roomId) {
|
|
86
|
+
if (usesNativeMcp) {
|
|
87
|
+
return [
|
|
88
|
+
`- Reply ONLY via the mcp__awb__send_chat_room_message MCP tool (room_id: "${roomId}").`,
|
|
89
|
+
'- Do NOT print your reply to stdout — it must go through send_chat_room_message so the user sees it in the web UI.',
|
|
90
|
+
];
|
|
91
|
+
}
|
|
92
|
+
return [
|
|
93
|
+
'- Reply with plain text as your final message. The agent manager captures your output and posts it to the chat room for you.',
|
|
94
|
+
'- Do NOT try to call any MCP tool to send the reply — this runtime has no chat-send tool. Just write the reply text as your final answer.',
|
|
95
|
+
];
|
|
96
|
+
}
|
|
97
|
+
export function composeChatPrompt(_rolePrompt, history, newMessage, roomId = '', usesNativeMcp = true) {
|
|
98
|
+
const lines = [];
|
|
99
|
+
lines.push('You are an AWB chat subagent responding to a user message in a live conversation.');
|
|
100
|
+
lines.push('');
|
|
101
|
+
if (roomId) {
|
|
102
|
+
lines.push(`Room ID: ${roomId}`);
|
|
103
|
+
lines.push('');
|
|
104
|
+
}
|
|
105
|
+
if (Array.isArray(history) && history.length > 0) {
|
|
106
|
+
lines.push('Conversation history (oldest first):');
|
|
107
|
+
for (const h of history.slice(-20)) {
|
|
108
|
+
const who = h.sender_type === 'agent' ? 'Agent' : 'User';
|
|
109
|
+
const when = h.created_at || '';
|
|
110
|
+
const content = (h.content || '').slice(0, 2000);
|
|
111
|
+
lines.push(`- [${when}] ${who}: ${content}`);
|
|
112
|
+
}
|
|
113
|
+
lines.push('');
|
|
114
|
+
}
|
|
115
|
+
lines.push('Latest user message:');
|
|
116
|
+
lines.push(newMessage || '');
|
|
117
|
+
lines.push('');
|
|
118
|
+
lines.push('Instructions:');
|
|
119
|
+
lines.push('- Compose a helpful reply using your knowledge and the conversation context.');
|
|
120
|
+
for (const ln of chatReplyInstructions(usesNativeMcp, roomId))
|
|
121
|
+
lines.push(ln);
|
|
122
|
+
return lines.join('\n');
|
|
123
|
+
}
|
|
124
|
+
export function composeCommentMentionPrompt(ticket, _rolePrompt, mention, fallbackTicketId) {
|
|
125
|
+
const lines = [];
|
|
126
|
+
lines.push('⚠️ You were @-mentioned in a comment. This message is addressed to YOU specifically — respond directly.');
|
|
127
|
+
lines.push('');
|
|
128
|
+
if (mention.actor_name) {
|
|
129
|
+
lines.push(`Mentioned by: ${mention.actor_name}`);
|
|
130
|
+
}
|
|
131
|
+
if (mention.mention_source === 'role' && mention.role_shortcut) {
|
|
132
|
+
lines.push(`Via role shortcut: @${mention.role_shortcut}`);
|
|
133
|
+
}
|
|
134
|
+
lines.push('');
|
|
135
|
+
if (ticket) {
|
|
136
|
+
lines.push(`Ticket ID: ${ticket.id}`);
|
|
137
|
+
if (ticket.title)
|
|
138
|
+
lines.push(`Title: ${ticket.title}`);
|
|
139
|
+
if (ticket.description) {
|
|
140
|
+
lines.push('');
|
|
141
|
+
lines.push('Description:');
|
|
142
|
+
lines.push(ticket.description);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
lines.push(`Ticket ID: ${fallbackTicketId || mention.ticket_id || 'unknown'}`);
|
|
147
|
+
lines.push('(Fresh ticket context fetch failed — using the mention payload only.)');
|
|
148
|
+
}
|
|
149
|
+
lines.push('');
|
|
150
|
+
lines.push('Comment body addressed to you:');
|
|
151
|
+
lines.push(mention.content || '');
|
|
152
|
+
lines.push('');
|
|
153
|
+
lines.push('Instructions:');
|
|
154
|
+
lines.push('- Read the comment and respond to the request directly.');
|
|
155
|
+
lines.push('- Use AWB MCP tools (mcp__awb__*) to take action if the comment asks for work.');
|
|
156
|
+
lines.push('- Leave a reply comment on the ticket addressing the user who mentioned you.');
|
|
157
|
+
lines.push('- Do NOT ignore this — the comment is explicitly addressed to you via @-mention.');
|
|
158
|
+
return lines.join('\n');
|
|
159
|
+
}
|
|
160
|
+
export function composeChatRoomPrompt(roomId, history, newMessage, attachments, usesNativeMcp = true, historyAttachments) {
|
|
161
|
+
const lines = [];
|
|
162
|
+
lines.push('You are an AWB chat subagent responding to a user message in a chat room.');
|
|
163
|
+
lines.push('');
|
|
164
|
+
lines.push(`Room ID: ${roomId}`);
|
|
165
|
+
lines.push('');
|
|
166
|
+
const realHistory = Array.isArray(history)
|
|
167
|
+
? history.filter((h) => !h.type || h.type === 'message')
|
|
168
|
+
: [];
|
|
169
|
+
if (realHistory.length > 0) {
|
|
170
|
+
lines.push('Conversation history (oldest first):');
|
|
171
|
+
for (const h of realHistory.slice(-20)) {
|
|
172
|
+
const who = h.sender_type === 'agent' ? 'Agent' : 'User';
|
|
173
|
+
const name = h.sender_name || h.sender_id || 'unknown';
|
|
174
|
+
const when = h.created_at || '';
|
|
175
|
+
const content = (h.content || '').slice(0, 2000);
|
|
176
|
+
lines.push(`- [${when}] ${who} (${name}): ${content}`);
|
|
177
|
+
const atts = historyAttachments?.get(h);
|
|
178
|
+
if (atts && atts.length > 0) {
|
|
179
|
+
for (const ln of renderAttachmentBlock(atts, 'Attachments:')) {
|
|
180
|
+
lines.push(` ${ln}`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
lines.push('');
|
|
185
|
+
}
|
|
186
|
+
lines.push('Latest user message:');
|
|
187
|
+
lines.push(newMessage.content || '');
|
|
188
|
+
lines.push(`From: ${newMessage.sender_name || newMessage.sender_id || 'unknown'}`);
|
|
189
|
+
if (Array.isArray(attachments) && attachments.length > 0) {
|
|
190
|
+
lines.push('');
|
|
191
|
+
for (const ln of renderAttachmentBlock(attachments)) {
|
|
192
|
+
lines.push(ln);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
lines.push('');
|
|
196
|
+
lines.push('Instructions:');
|
|
197
|
+
lines.push('- Compose a helpful reply using your knowledge and the conversation context.');
|
|
198
|
+
for (const ln of chatReplyInstructions(usesNativeMcp, roomId))
|
|
199
|
+
lines.push(ln);
|
|
200
|
+
return lines.join('\n');
|
|
201
|
+
}
|
|
202
|
+
export const promptComposer = {
|
|
203
|
+
composeTriggerPrompt,
|
|
204
|
+
composeChatPrompt,
|
|
205
|
+
composeChatRoomPrompt,
|
|
206
|
+
composeCommentMentionPrompt,
|
|
207
|
+
};
|
|
208
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/lib/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export interface AwbConfig {
|
|
2
|
+
url: string;
|
|
3
|
+
apiKey: string;
|
|
4
|
+
workspace_id?: string;
|
|
5
|
+
agent_id?: string;
|
|
6
|
+
cli?: string;
|
|
7
|
+
[key: string]: unknown;
|
|
8
|
+
}
|
|
9
|
+
export declare function fetchTicketContext(config: AwbConfig, ticketId: string | undefined): Promise<any | null>;
|
|
10
|
+
export declare function fetchChatRoomHistory(config: AwbConfig, roomId: string | undefined, limit?: number): Promise<any[]>;
|
|
11
|
+
export declare function postFsResponse(config: AwbConfig, requestId: string, body: unknown): Promise<void>;
|
|
12
|
+
export declare function postCommandAck(config: AwbConfig, command_id: string, status: 'ok' | 'error', detail?: string): Promise<void>;
|
|
13
|
+
export declare function postOutputLiveness(config: AwbConfig, apiKey: string, body: {
|
|
14
|
+
agent_id: string;
|
|
15
|
+
ticket_id: string;
|
|
16
|
+
role: string;
|
|
17
|
+
}): Promise<void>;
|
|
18
|
+
export declare function fetchAgentRecord(config: AwbConfig, agentId: string): Promise<{
|
|
19
|
+
id: string;
|
|
20
|
+
name: string;
|
|
21
|
+
type: string;
|
|
22
|
+
working_dir: string;
|
|
23
|
+
manager_agent_id: string | null;
|
|
24
|
+
credential_id?: string | null;
|
|
25
|
+
} | null>;
|
|
26
|
+
export declare function fetchAgentCredential(config: AwbConfig, agentId: string): Promise<{
|
|
27
|
+
credential_id: string;
|
|
28
|
+
provider: string;
|
|
29
|
+
fields: Record<string, string>;
|
|
30
|
+
} | null>;
|
|
31
|
+
export declare function fetchChatAttachment(config: AwbConfig, roomId: string, attachmentId: string): Promise<{
|
|
32
|
+
id: string;
|
|
33
|
+
file_name: string;
|
|
34
|
+
file_mimetype: string;
|
|
35
|
+
file_size: number;
|
|
36
|
+
file_data: string;
|
|
37
|
+
download_url: string;
|
|
38
|
+
} | null>;
|
|
39
|
+
export declare function postChatRoomMessage(config: AwbConfig, roomId: string, agentId: string, content: string, opts?: {
|
|
40
|
+
type?: 'message' | 'progress';
|
|
41
|
+
}): Promise<boolean>;
|
|
42
|
+
export declare function postSilentExitSystemComment(config: AwbConfig, ticketId: string, body: {
|
|
43
|
+
content: string;
|
|
44
|
+
exit_code: number | null;
|
|
45
|
+
cycle_trigger_id?: string;
|
|
46
|
+
role?: string;
|
|
47
|
+
actor_name?: string;
|
|
48
|
+
}): Promise<boolean>;
|
|
49
|
+
export declare function provisionManagedAgentApiKey(config: AwbConfig, agentId: string): Promise<{
|
|
50
|
+
raw_key: string;
|
|
51
|
+
key_id: string;
|
|
52
|
+
agent_id: string;
|
|
53
|
+
workspace_id: string;
|
|
54
|
+
} | null>;
|
|
55
|
+
export declare function requestManagerTriggerRepush(config: AwbConfig, agentId: string, items: Array<{
|
|
56
|
+
ticket_id: string;
|
|
57
|
+
role: string;
|
|
58
|
+
}>): Promise<{
|
|
59
|
+
emitted: number;
|
|
60
|
+
skipped: number;
|
|
61
|
+
} | null>;
|
package/dist/lib/rest.js
ADDED
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import { REQUEST_TIMEOUT_MS } from './constants.js';
|
|
2
|
+
import { log } from './logging.js';
|
|
3
|
+
function trimSlash(url) {
|
|
4
|
+
return url.replace(/\/$/, '');
|
|
5
|
+
}
|
|
6
|
+
export async function fetchTicketContext(config, ticketId) {
|
|
7
|
+
if (!ticketId)
|
|
8
|
+
return null;
|
|
9
|
+
try {
|
|
10
|
+
const url = `${trimSlash(config.url)}/api/agent/tickets/${encodeURIComponent(ticketId)}`;
|
|
11
|
+
const resp = await fetch(url, {
|
|
12
|
+
headers: {
|
|
13
|
+
'X-Agent-Key': config.apiKey,
|
|
14
|
+
Accept: 'application/json',
|
|
15
|
+
},
|
|
16
|
+
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
17
|
+
});
|
|
18
|
+
if (!resp.ok) {
|
|
19
|
+
log(`Ticket fetch failed: ${resp.status} ${resp.statusText} (ticket=${ticketId})`);
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
return await resp.json();
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
log(`Ticket fetch error: ${err?.message ?? err} (ticket=${ticketId})`);
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export async function fetchChatRoomHistory(config, roomId, limit = 20) {
|
|
30
|
+
if (!roomId)
|
|
31
|
+
return [];
|
|
32
|
+
try {
|
|
33
|
+
const url = `${trimSlash(config.url)}/api/agent/chat-rooms/${encodeURIComponent(roomId)}/messages?limit=${limit}`;
|
|
34
|
+
const resp = await fetch(url, {
|
|
35
|
+
headers: { 'X-Agent-Key': config.apiKey },
|
|
36
|
+
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
37
|
+
});
|
|
38
|
+
if (!resp.ok) {
|
|
39
|
+
log(`Chat room history fetch failed: ${resp.status} (room=${roomId})`);
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
const data = await resp.json();
|
|
43
|
+
return Array.isArray(data) ? data : (data?.messages ?? []);
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
log(`Chat room history fetch error: ${err?.message ?? err} (room=${roomId})`);
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export async function postFsResponse(config, requestId, body) {
|
|
51
|
+
if (!requestId)
|
|
52
|
+
return;
|
|
53
|
+
try {
|
|
54
|
+
const url = `${trimSlash(config.url)}/api/fs/responses/${encodeURIComponent(requestId)}`;
|
|
55
|
+
const resp = await fetch(url, {
|
|
56
|
+
method: 'POST',
|
|
57
|
+
headers: {
|
|
58
|
+
'X-Agent-Key': config.apiKey,
|
|
59
|
+
'Content-Type': 'application/json',
|
|
60
|
+
Accept: 'application/json',
|
|
61
|
+
},
|
|
62
|
+
body: JSON.stringify(body),
|
|
63
|
+
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
64
|
+
});
|
|
65
|
+
if (!resp.ok) {
|
|
66
|
+
log(`fs response POST failed: ${resp.status} ${resp.statusText} (request=${requestId})`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
log(`fs response POST error: ${err?.message ?? err} (request=${requestId})`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
export async function postCommandAck(config, command_id, status, detail) {
|
|
74
|
+
if (!command_id)
|
|
75
|
+
return;
|
|
76
|
+
try {
|
|
77
|
+
const url = `${trimSlash(config.url)}/api/agent-manager/command/ack`;
|
|
78
|
+
const resp = await fetch(url, {
|
|
79
|
+
method: 'POST',
|
|
80
|
+
headers: {
|
|
81
|
+
'X-Agent-Key': config.apiKey,
|
|
82
|
+
'Content-Type': 'application/json',
|
|
83
|
+
Accept: 'application/json',
|
|
84
|
+
},
|
|
85
|
+
body: JSON.stringify({ command_id, status, detail: detail ?? '' }),
|
|
86
|
+
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
87
|
+
});
|
|
88
|
+
if (!resp.ok) {
|
|
89
|
+
log(`command ack POST failed: ${resp.status} ${resp.statusText} (command=${command_id})`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
log(`command ack POST error: ${err?.message ?? err} (command=${command_id})`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export async function postOutputLiveness(config, apiKey, body) {
|
|
97
|
+
if (!body.agent_id || !body.ticket_id)
|
|
98
|
+
return;
|
|
99
|
+
try {
|
|
100
|
+
const url = `${trimSlash(config.url)}/api/agent-manager/output-liveness`;
|
|
101
|
+
const resp = await fetch(url, {
|
|
102
|
+
method: 'POST',
|
|
103
|
+
headers: {
|
|
104
|
+
'X-Agent-Key': apiKey || config.apiKey,
|
|
105
|
+
'Content-Type': 'application/json',
|
|
106
|
+
Accept: 'application/json',
|
|
107
|
+
},
|
|
108
|
+
body: JSON.stringify(body),
|
|
109
|
+
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
110
|
+
});
|
|
111
|
+
if (!resp.ok) {
|
|
112
|
+
log(`output-liveness POST failed: ${resp.status} ${resp.statusText} (ticket=${body.ticket_id})`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
log(`output-liveness POST error: ${err?.message ?? err} (ticket=${body.ticket_id})`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export async function fetchAgentRecord(config, agentId) {
|
|
120
|
+
if (!agentId)
|
|
121
|
+
return null;
|
|
122
|
+
try {
|
|
123
|
+
const url = `${trimSlash(config.url)}/api/agent-manager/managed-agents/${encodeURIComponent(agentId)}`;
|
|
124
|
+
const resp = await fetch(url, {
|
|
125
|
+
headers: {
|
|
126
|
+
'X-Agent-Key': config.apiKey,
|
|
127
|
+
Accept: 'application/json',
|
|
128
|
+
},
|
|
129
|
+
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
130
|
+
});
|
|
131
|
+
if (!resp.ok) {
|
|
132
|
+
log(`agent fetch failed: ${resp.status} ${resp.statusText} (agent=${agentId})`);
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
return (await resp.json());
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
log(`agent fetch error: ${err?.message ?? err} (agent=${agentId})`);
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
export async function fetchAgentCredential(config, agentId) {
|
|
143
|
+
if (!agentId)
|
|
144
|
+
return null;
|
|
145
|
+
try {
|
|
146
|
+
const url = `${trimSlash(config.url)}/api/agent-manager/managed-agents/${encodeURIComponent(agentId)}/credential`;
|
|
147
|
+
const resp = await fetch(url, {
|
|
148
|
+
headers: {
|
|
149
|
+
'X-Agent-Key': config.apiKey,
|
|
150
|
+
Accept: 'application/json',
|
|
151
|
+
},
|
|
152
|
+
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
153
|
+
});
|
|
154
|
+
if (resp.status === 204)
|
|
155
|
+
return null;
|
|
156
|
+
if (!resp.ok) {
|
|
157
|
+
log(`agent credential fetch failed: ${resp.status} ${resp.statusText} (agent=${agentId})`);
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
const body = (await resp.json());
|
|
161
|
+
if (!body || typeof body !== 'object' || typeof body.provider !== 'string')
|
|
162
|
+
return null;
|
|
163
|
+
return {
|
|
164
|
+
credential_id: typeof body.credential_id === 'string' ? body.credential_id : '',
|
|
165
|
+
provider: body.provider,
|
|
166
|
+
fields: body.fields && typeof body.fields === 'object' ? body.fields : {},
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
catch (err) {
|
|
170
|
+
log(`agent credential fetch error: ${err?.message ?? err} (agent=${agentId})`);
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
export async function fetchChatAttachment(config, roomId, attachmentId) {
|
|
175
|
+
if (!roomId || !attachmentId)
|
|
176
|
+
return null;
|
|
177
|
+
try {
|
|
178
|
+
const url = `${trimSlash(config.url)}/api/agent/chat-rooms/${encodeURIComponent(roomId)}/attachments/${encodeURIComponent(attachmentId)}`;
|
|
179
|
+
const resp = await fetch(url, {
|
|
180
|
+
headers: {
|
|
181
|
+
'X-Agent-Key': config.apiKey,
|
|
182
|
+
Accept: 'application/json',
|
|
183
|
+
},
|
|
184
|
+
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
185
|
+
});
|
|
186
|
+
if (!resp.ok) {
|
|
187
|
+
log(`Chat attachment fetch failed: ${resp.status} ${resp.statusText} (room=${roomId} att=${attachmentId})`);
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
190
|
+
const body = (await resp.json());
|
|
191
|
+
if (!body || typeof body !== 'object' || typeof body.file_data !== 'string') {
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
194
|
+
return body;
|
|
195
|
+
}
|
|
196
|
+
catch (err) {
|
|
197
|
+
log(`Chat attachment fetch error: ${err?.message ?? err} (room=${roomId} att=${attachmentId})`);
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
export async function postChatRoomMessage(config, roomId, agentId, content, opts) {
|
|
202
|
+
if (!roomId || !content)
|
|
203
|
+
return false;
|
|
204
|
+
try {
|
|
205
|
+
const url = `${trimSlash(config.url)}/api/agent/chat-rooms/${encodeURIComponent(roomId)}/messages`;
|
|
206
|
+
const body = { agent_id: agentId, content };
|
|
207
|
+
if (opts?.type && opts.type !== 'message')
|
|
208
|
+
body.type = opts.type;
|
|
209
|
+
const resp = await fetch(url, {
|
|
210
|
+
method: 'POST',
|
|
211
|
+
headers: {
|
|
212
|
+
'X-Agent-Key': config.apiKey,
|
|
213
|
+
'Content-Type': 'application/json',
|
|
214
|
+
Accept: 'application/json',
|
|
215
|
+
},
|
|
216
|
+
body: JSON.stringify(body),
|
|
217
|
+
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
218
|
+
});
|
|
219
|
+
if (!resp.ok) {
|
|
220
|
+
log(`chat fallback POST failed: ${resp.status} ${resp.statusText} (room=${roomId})`);
|
|
221
|
+
return false;
|
|
222
|
+
}
|
|
223
|
+
return true;
|
|
224
|
+
}
|
|
225
|
+
catch (err) {
|
|
226
|
+
log(`chat fallback POST error: ${err?.message ?? err} (room=${roomId})`);
|
|
227
|
+
return false;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
export async function postSilentExitSystemComment(config, ticketId, body) {
|
|
231
|
+
if (!ticketId || !body.content)
|
|
232
|
+
return false;
|
|
233
|
+
try {
|
|
234
|
+
const url = `${trimSlash(config.url)}/api/agent/tickets/${encodeURIComponent(ticketId)}/silent-exit-comment`;
|
|
235
|
+
const resp = await fetch(url, {
|
|
236
|
+
method: 'POST',
|
|
237
|
+
headers: {
|
|
238
|
+
'X-Agent-Key': config.apiKey,
|
|
239
|
+
'Content-Type': 'application/json',
|
|
240
|
+
Accept: 'application/json',
|
|
241
|
+
},
|
|
242
|
+
body: JSON.stringify(body),
|
|
243
|
+
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
244
|
+
});
|
|
245
|
+
if (!resp.ok) {
|
|
246
|
+
log(`silent-exit comment POST failed: ${resp.status} ${resp.statusText} (ticket=${ticketId})`);
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
return true;
|
|
250
|
+
}
|
|
251
|
+
catch (err) {
|
|
252
|
+
log(`silent-exit comment POST error: ${err?.message ?? err} (ticket=${ticketId})`);
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
export async function provisionManagedAgentApiKey(config, agentId) {
|
|
257
|
+
if (!agentId)
|
|
258
|
+
return null;
|
|
259
|
+
try {
|
|
260
|
+
const url = `${trimSlash(config.url)}/api/agent-manager/managed-agents/${encodeURIComponent(agentId)}/apikey/provision`;
|
|
261
|
+
const resp = await fetch(url, {
|
|
262
|
+
method: 'POST',
|
|
263
|
+
headers: {
|
|
264
|
+
'X-Agent-Key': config.apiKey,
|
|
265
|
+
Accept: 'application/json',
|
|
266
|
+
},
|
|
267
|
+
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
268
|
+
});
|
|
269
|
+
if (!resp.ok) {
|
|
270
|
+
log(`apiKey provision failed: ${resp.status} ${resp.statusText} (agent=${agentId})`);
|
|
271
|
+
return null;
|
|
272
|
+
}
|
|
273
|
+
return (await resp.json());
|
|
274
|
+
}
|
|
275
|
+
catch (err) {
|
|
276
|
+
log(`apiKey provision error: ${err?.message ?? err} (agent=${agentId})`);
|
|
277
|
+
return null;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
export async function requestManagerTriggerRepush(config, agentId, items) {
|
|
281
|
+
if (!agentId || !Array.isArray(items) || items.length === 0) {
|
|
282
|
+
return { emitted: 0, skipped: 0 };
|
|
283
|
+
}
|
|
284
|
+
try {
|
|
285
|
+
const url = `${trimSlash(config.url)}/api/agent-manager/managed-agents/${encodeURIComponent(agentId)}/resume-triggers`;
|
|
286
|
+
const resp = await fetch(url, {
|
|
287
|
+
method: 'POST',
|
|
288
|
+
headers: {
|
|
289
|
+
'X-Agent-Key': config.apiKey,
|
|
290
|
+
'Content-Type': 'application/json',
|
|
291
|
+
Accept: 'application/json',
|
|
292
|
+
},
|
|
293
|
+
body: JSON.stringify({ items }),
|
|
294
|
+
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
295
|
+
});
|
|
296
|
+
if (!resp.ok) {
|
|
297
|
+
log(`resume-triggers POST failed: ${resp.status} ${resp.statusText} (agent=${agentId})`);
|
|
298
|
+
return null;
|
|
299
|
+
}
|
|
300
|
+
return (await resp.json());
|
|
301
|
+
}
|
|
302
|
+
catch (err) {
|
|
303
|
+
log(`resume-triggers POST error: ${err?.message ?? err} (agent=${agentId})`);
|
|
304
|
+
return null;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
//# sourceMappingURL=rest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/lib/rest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type RunCheckoutMode = 'reuse' | 'fresh';
|
|
2
|
+
export interface RunRepoSpec {
|
|
3
|
+
url: string;
|
|
4
|
+
branch?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface RunProvision {
|
|
7
|
+
kind: 'qa' | 'security';
|
|
8
|
+
run_id: string;
|
|
9
|
+
workspace_id: string;
|
|
10
|
+
workspace_folder: string;
|
|
11
|
+
checkout_mode: RunCheckoutMode;
|
|
12
|
+
repo: RunRepoSpec | null;
|
|
13
|
+
}
|
|
14
|
+
export interface RunProvisionResult {
|
|
15
|
+
ok: boolean;
|
|
16
|
+
dir: string;
|
|
17
|
+
steps: string[];
|
|
18
|
+
error?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function parseRunProvision(raw: unknown): RunProvision | null;
|
|
21
|
+
export declare function provisionRunWorkspace(p: RunProvision): Promise<RunProvisionResult>;
|