@camerontaylor/paseo-protocol 0.12.0-beta.1.fork.1 → 0.12.0-fork.1

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/dist/messages.js CHANGED
@@ -6074,14 +6074,15 @@ export const UsageProblemSchema = z.discriminatedUnion("kind", [
6074
6074
  }),
6075
6075
  z.object({ kind: z.literal("no_quota"), detail: z.string() }),
6076
6076
  ]);
6077
+ const AvailableUsageReportSchema = z.object({
6078
+ status: z.literal("available"),
6079
+ planLabel: z.string().optional(),
6080
+ windows: z.array(ProviderUsageWindowSchema),
6081
+ balances: z.array(ProviderUsageBalanceSchema).optional(),
6082
+ details: z.array(ProviderUsageDetailSchema).optional(),
6083
+ });
6077
6084
  export const UsageReportSchema = z.discriminatedUnion("status", [
6078
- z.object({
6079
- status: z.literal("available"),
6080
- planLabel: z.string().optional(),
6081
- windows: z.array(ProviderUsageWindowSchema),
6082
- balances: z.array(ProviderUsageBalanceSchema).optional(),
6083
- details: z.array(ProviderUsageDetailSchema).optional(),
6084
- }),
6085
+ AvailableUsageReportSchema,
6085
6086
  z.object({ status: z.literal("unavailable"), problem: UsageProblemSchema }),
6086
6087
  z.object({ status: z.literal("error"), error: z.string() }),
6087
6088
  ]);
@@ -6093,6 +6094,11 @@ export const UsageReportEntrySchema = z.object({
6093
6094
  sourceLabel: z.string(),
6094
6095
  icon: z.string().optional(),
6095
6096
  report: UsageReportSchema,
6097
+ // Successful completion time; fetchedAt remains the attempt timestamp for ordering.
6098
+ successfulAt: z.string().optional(),
6099
+ lastSuccessful: z
6100
+ .object({ fetchedAt: z.string(), report: AvailableUsageReportSchema })
6101
+ .optional(),
6096
6102
  loginErrors: z
6097
6103
  .array(z.object({
6098
6104
  harness: z.string(),
@@ -1,15 +1,2 @@
1
- export interface PaseoToolDetailField {
2
- label: string;
3
- value: string;
4
- }
5
- export type PaseoToolDetailSection = {
6
- kind: "prose";
7
- title: string;
8
- text: string;
9
- } | {
10
- kind: "fields";
11
- title: string;
12
- fields: PaseoToolDetailField[];
13
- };
14
- export declare function buildPaseoToolDetailSections(toolName: string, input: unknown, output: unknown): PaseoToolDetailSection[] | null;
1
+ export { buildPaseoToolDetailSections, type PaseoToolDetailField, type PaseoToolDetailSection, } from "./paseo-tool-presentation/index.js";
15
2
  //# sourceMappingURL=paseo-tool-call-detail.d.ts.map
@@ -1,307 +1,3 @@
1
- import { getPaseoToolLeafName } from "./tool-name-normalization.js";
2
- const WORKSPACE_FIELDS = [
3
- "title",
4
- "workspaceId",
5
- "projectId",
6
- "isolation",
7
- "path",
8
- "mode",
9
- "worktreeSlug",
10
- "branchName",
11
- "baseBranch",
12
- "branch",
13
- "prNumber",
14
- "forge",
15
- ];
16
- const AGENT_FIELDS = [
17
- "title",
18
- "agentId",
19
- "provider",
20
- "workspaceId",
21
- "cwd",
22
- "sessionMode",
23
- "modeId",
24
- "background",
25
- "notifyOnFinish",
26
- "internal",
27
- "settings",
28
- "labels",
29
- ];
30
- const AUTOMATION_FIELDS = [
31
- "name",
32
- "id",
33
- "cron",
34
- "timezone",
35
- "provider",
36
- "cwd",
37
- "isolation",
38
- "maxRuns",
39
- "expiresIn",
40
- "clearExpires",
41
- ];
42
- const BROWSER_FIELDS = [
43
- "browserId",
44
- "url",
45
- "ref",
46
- "sourceRef",
47
- "targetRef",
48
- "value",
49
- "text",
50
- "key",
51
- "button",
52
- "doubleClick",
53
- "modifiers",
54
- "filePaths",
55
- "fullPage",
56
- "maxEntries",
57
- "timeoutMs",
58
- "deltaX",
59
- "deltaY",
60
- "width",
61
- "height",
62
- "function",
63
- ];
64
- const TOOL_SPECS = {
65
- create_workspace: {
66
- inputOrder: WORKSPACE_FIELDS,
67
- outputFields: ["workspaceId", "projectId"],
68
- },
69
- list_workspaces: {},
70
- archive_workspace: {
71
- inputOrder: ["workspaceId"],
72
- outputFields: ["workspaceId", "archivedAgentIds", "removedDirectory"],
73
- },
74
- rename_workspace: { inputOrder: ["title", "workspaceId"] },
75
- create_agent: {
76
- promptField: "initialPrompt",
77
- inputOrder: AGENT_FIELDS,
78
- outputFields: ["agentId", "status", "currentModeId", "cwd"],
79
- },
80
- send_agent_prompt: {
81
- promptField: "prompt",
82
- inputOrder: AGENT_FIELDS,
83
- outputFields: ["status", "lastMessage", "permission"],
84
- },
85
- get_agent_status: { inputOrder: ["agentId"] },
86
- list_agents: { inputOrder: ["cwd", "statuses", "sinceHours", "limit", "includeArchived"] },
87
- cancel_agent: { inputOrder: ["agentId"] },
88
- archive_agent: { inputOrder: ["agentId"] },
89
- kill_agent: { inputOrder: ["agentId"] },
90
- update_agent: { inputOrder: AGENT_FIELDS },
91
- get_agent_activity: { inputOrder: ["agentId", "limit"] },
92
- set_agent_mode: { inputOrder: ["agentId", "modeId"] },
93
- list_workspace_scripts: { inputOrder: ["workspaceId"] },
94
- start_workspace_script: { inputOrder: ["workspaceId", "scriptName"] },
95
- stop_workspace_script: { inputOrder: ["workspaceId", "scriptName"] },
96
- list_terminals: { inputOrder: ["cwd", "all"] },
97
- create_terminal: { inputOrder: ["cwd", "workspaceId", "name", "command"] },
98
- kill_terminal: { inputOrder: ["terminalId"] },
99
- capture_terminal: { inputOrder: ["terminalId", "lines"] },
100
- send_terminal_keys: { inputOrder: ["terminalId", "keys", "literal"] },
101
- create_schedule: {
102
- promptField: "prompt",
103
- inputOrder: AUTOMATION_FIELDS,
104
- outputFields: ["id", "status", "nextRunAt", "expiresAt"],
105
- },
106
- create_heartbeat: {
107
- promptField: "prompt",
108
- inputOrder: AUTOMATION_FIELDS,
109
- outputFields: ["id", "status", "nextRunAt", "expiresAt"],
110
- },
111
- delete_heartbeat: { inputOrder: ["id"] },
112
- list_schedules: {},
113
- inspect_schedule: { inputOrder: ["id"] },
114
- pause_schedule: { inputOrder: ["id"] },
115
- resume_schedule: { inputOrder: ["id"] },
116
- delete_schedule: { inputOrder: ["id"] },
117
- update_schedule: { promptField: "prompt", inputOrder: AUTOMATION_FIELDS },
118
- schedule_logs: { inputOrder: ["id"] },
119
- run_schedule_once: { inputOrder: ["id"] },
120
- list_providers: {},
121
- list_models: { inputOrder: ["provider"] },
122
- list_profiles: {},
123
- inspect_provider: { inputOrder: ["provider", "cwd", "settings"] },
124
- list_pending_permissions: {},
125
- respond_to_permission: { inputOrder: ["agentId", "requestId", "response"] },
126
- browser_list_tabs: {},
127
- browser_new_tab: { inputOrder: BROWSER_FIELDS },
128
- browser_snapshot: { inputOrder: BROWSER_FIELDS },
129
- browser_click: { inputOrder: BROWSER_FIELDS },
130
- browser_fill: { inputOrder: BROWSER_FIELDS },
131
- browser_wait: { inputOrder: BROWSER_FIELDS },
132
- browser_type: { inputOrder: BROWSER_FIELDS },
133
- browser_keypress: { inputOrder: BROWSER_FIELDS },
134
- browser_navigate: { inputOrder: BROWSER_FIELDS },
135
- browser_back: { inputOrder: BROWSER_FIELDS },
136
- browser_forward: { inputOrder: BROWSER_FIELDS },
137
- browser_reload: { inputOrder: BROWSER_FIELDS },
138
- browser_screenshot: { inputOrder: BROWSER_FIELDS },
139
- browser_upload: { inputOrder: BROWSER_FIELDS },
140
- browser_hover: { inputOrder: BROWSER_FIELDS },
141
- browser_select: { inputOrder: BROWSER_FIELDS },
142
- browser_drag: { inputOrder: BROWSER_FIELDS },
143
- browser_logs: { inputOrder: BROWSER_FIELDS },
144
- browser_evaluate: { inputOrder: BROWSER_FIELDS },
145
- browser_scroll: { inputOrder: BROWSER_FIELDS },
146
- browser_resize: { inputOrder: BROWSER_FIELDS },
147
- browser_close_tab: { inputOrder: BROWSER_FIELDS },
148
- };
149
- const FIELD_LABELS = {
150
- agentId: "Agent",
151
- archivedAgentIds: "Archived agents",
152
- baseBranch: "Base branch",
153
- branchName: "New branch",
154
- browserId: "Browser tab",
155
- clearExpires: "Clear expiry",
156
- currentModeId: "Current mode",
157
- cwd: "Working directory",
158
- deltaX: "Horizontal delta",
159
- deltaY: "Vertical delta",
160
- doubleClick: "Double click",
161
- expiresIn: "Expires in",
162
- expiresAt: "Expires",
163
- filePaths: "Files",
164
- fullPage: "Full page",
165
- initialPrompt: "Prompt",
166
- id: "ID",
167
- lastMessage: "Last message",
168
- maxEntries: "Maximum entries",
169
- maxRuns: "Maximum runs",
170
- modeId: "Mode",
171
- newMode: "New mode",
172
- nextRunAt: "Next run",
173
- notifyOnFinish: "Notify on finish",
174
- internal: "Internal",
175
- prNumber: "Change request",
176
- projectId: "Project",
177
- removedDirectory: "Removed directory",
178
- requestId: "Request",
179
- scriptName: "Script",
180
- sessionMode: "Session mode",
181
- sinceHours: "Since (hours)",
182
- sourceRef: "Source",
183
- targetRef: "Target",
184
- terminalId: "Terminal",
185
- thinkingOptionId: "Thinking",
186
- timeoutMs: "Timeout (ms)",
187
- updateCount: "Updates",
188
- workspaceId: "Workspace",
189
- worktreeSlug: "Worktree",
190
- };
191
- function isRecord(value) {
192
- return typeof value === "object" && value !== null && !Array.isArray(value);
193
- }
194
- function humanizeKey(key) {
195
- const known = FIELD_LABELS[key];
196
- if (known)
197
- return known;
198
- const words = key
199
- .replace(/([a-z0-9])([A-Z])/g, "$1 $2")
200
- .replace(/[._-]+/g, " ")
201
- .split(" ")
202
- .filter(Boolean);
203
- const sentence = words.join(" ").toLowerCase();
204
- return `${sentence[0]?.toUpperCase() ?? ""}${sentence.slice(1)}`;
205
- }
206
- function formatValue(value, depth = 0) {
207
- if (value === null)
208
- return "None";
209
- if (value === undefined)
210
- return "";
211
- if (typeof value === "boolean")
212
- return value ? "Yes" : "No";
213
- if (typeof value === "string" || typeof value === "number" || typeof value === "bigint") {
214
- return String(value);
215
- }
216
- if (Array.isArray(value)) {
217
- if (value.length === 0)
218
- return "None";
219
- return value.map((item) => `• ${indentMultiline(formatValue(item, depth + 1), 2)}`).join("\n");
220
- }
221
- if (isRecord(value)) {
222
- const entries = Object.entries(value).filter(([, child]) => child !== undefined);
223
- if (entries.length === 0)
224
- return "None";
225
- return entries
226
- .map(([key, child]) => {
227
- const formatted = formatValue(child, depth + 1);
228
- return `${humanizeKey(key)}: ${indentMultiline(formatted, 2)}`;
229
- })
230
- .join("\n");
231
- }
232
- return String(value);
233
- }
234
- function indentMultiline(value, spaces) {
235
- const indentation = " ".repeat(spaces);
236
- return value.replace(/\n/g, `\n${indentation}`);
237
- }
238
- function orderedEntries(value, order = [], omittedKey, includedKeys) {
239
- const included = includedKeys ? new Set(includedKeys) : null;
240
- const keys = Object.keys(value).filter((key) => key !== omittedKey && value[key] !== undefined && (!included || included.has(key)));
241
- const rank = new Map(order.map((key, index) => [key, index]));
242
- keys.sort((left, right) => {
243
- const leftRank = rank.get(left) ?? Number.MAX_SAFE_INTEGER;
244
- const rightRank = rank.get(right) ?? Number.MAX_SAFE_INTEGER;
245
- return leftRank - rightRank || left.localeCompare(right);
246
- });
247
- return keys.map((key) => [key, value[key]]);
248
- }
249
- function fieldsFromValue(value, order, omittedKey, includedKeys) {
250
- if (value === null || value === undefined)
251
- return [];
252
- if (!isRecord(value)) {
253
- const formatted = formatValue(value);
254
- return formatted ? [{ label: "Value", value: formatted }] : [];
255
- }
256
- return orderedEntries(value, order, omittedKey, includedKeys).map(([key, child]) => ({
257
- label: humanizeKey(key),
258
- value: formatValue(child),
259
- }));
260
- }
261
- function parseJsonText(value) {
262
- if (typeof value !== "string")
263
- return undefined;
264
- try {
265
- return JSON.parse(value);
266
- }
267
- catch {
268
- return undefined;
269
- }
270
- }
271
- function unwrapMcpResult(output) {
272
- if (!isRecord(output))
273
- return output;
274
- if (output.structuredContent !== undefined) {
275
- return output.structuredContent;
276
- }
277
- if (Array.isArray(output.content) && output.content.length === 1) {
278
- const item = output.content[0];
279
- if (isRecord(item) && item.type === "text") {
280
- return parseJsonText(item.text) ?? item.text;
281
- }
282
- }
283
- return output;
284
- }
285
- export function buildPaseoToolDetailSections(toolName, input, output) {
286
- const leafName = getPaseoToolLeafName(toolName);
287
- if (!leafName)
288
- return null;
289
- const spec = TOOL_SPECS[leafName] ?? {};
290
- const sections = [];
291
- if (spec.promptField && isRecord(input)) {
292
- const prompt = input[spec.promptField];
293
- if (typeof prompt === "string" && prompt.length > 0) {
294
- sections.push({ kind: "prose", title: "Prompt", text: prompt });
295
- }
296
- }
297
- const inputFields = fieldsFromValue(input, spec.inputOrder, spec.promptField);
298
- if (inputFields.length > 0) {
299
- sections.push({ kind: "fields", title: "Details", fields: inputFields });
300
- }
301
- const outputFields = fieldsFromValue(unwrapMcpResult(output), spec.outputFields, undefined, spec.outputFields);
302
- if (outputFields.length > 0) {
303
- sections.push({ kind: "fields", title: "Result", fields: outputFields });
304
- }
305
- return sections;
306
- }
1
+ // COMPAT(paseoToolCallDetail): added in v0.12.0, remove after 2027-04-19 once plugins have migrated to paseo-tool-presentation/index.
2
+ export { buildPaseoToolDetailSections, } from "./paseo-tool-presentation/index.js";
307
3
  //# sourceMappingURL=paseo-tool-call-detail.js.map
@@ -0,0 +1,10 @@
1
+ import type { AgentMessage } from "../agent-message.js";
2
+ import type { ToolCallDetail } from "../agent-types.js";
3
+ export interface AgentMessageDisplay {
4
+ displayName: string;
5
+ summary?: string;
6
+ detail: ToolCallDetail;
7
+ }
8
+ /** Presentation shared by clients; never used to encode provider prompts. */
9
+ export declare function buildAgentMessageDisplay(message: AgentMessage): AgentMessageDisplay;
10
+ //# sourceMappingURL=agent-message.d.ts.map
@@ -0,0 +1,22 @@
1
+ import { toSummaryText } from "./summary-text.js";
2
+ /** Events read noun-first ("Agent finished"); the sender goes in the summary. */
3
+ const EVENT_LABELS = {
4
+ message: "Message received",
5
+ finished: "Agent finished",
6
+ errored: "Agent errored",
7
+ "permission-required": "Agent needs permission",
8
+ closed: "Agent closed",
9
+ };
10
+ /** Presentation shared by clients; never used to encode provider prompts. */
11
+ export function buildAgentMessageDisplay(message) {
12
+ const summary = toSummaryText(message.sender.title ?? message.sender.id);
13
+ return {
14
+ displayName: EVENT_LABELS[message.event],
15
+ ...(summary ? { summary } : {}),
16
+ detail: {
17
+ type: "plain_text",
18
+ text: `From agent: ${message.sender.id}\n\n${message.text}`,
19
+ },
20
+ };
21
+ }
22
+ //# sourceMappingURL=agent-message.js.map
@@ -0,0 +1,309 @@
1
+ /**
2
+ * One entry per Paseo MCP tool: the timeline label, the context shown after it,
3
+ * and how the expanded details lay out the call.
4
+ *
5
+ * Labels are fixed text so truncation never hides them. Actions read verb-first
6
+ * ("Send message"); the context goes in the summary.
7
+ */
8
+ type ToolInput = Readonly<Record<string, unknown>>;
9
+ /** `targetAgent` is the target agent's title when known, else its ID. */
10
+ export type PaseoToolContext = (input: ToolInput, targetAgent: string | undefined) => unknown;
11
+ export interface PaseoToolDetailSpec {
12
+ promptField?: string;
13
+ inputOrder?: readonly string[];
14
+ outputFields?: readonly string[];
15
+ }
16
+ export interface PaseoToolEntry {
17
+ label: string;
18
+ context?: PaseoToolContext;
19
+ detail?: PaseoToolDetailSpec;
20
+ }
21
+ export declare const PASEO_TOOL_CATALOG: {
22
+ create_agent: {
23
+ label: string;
24
+ context: PaseoToolContext;
25
+ detail: {
26
+ promptField: string;
27
+ inputOrder: readonly ["title", "agentId", "provider", "workspaceId", "cwd", "sessionMode", "modeId", "background", "notifyOnFinish", "internal", "settings", "labels"];
28
+ outputFields: string[];
29
+ };
30
+ };
31
+ send_agent_prompt: {
32
+ label: string;
33
+ context: PaseoToolContext;
34
+ detail: {
35
+ promptField: string;
36
+ inputOrder: readonly ["title", "agentId", "provider", "workspaceId", "cwd", "sessionMode", "modeId", "background", "notifyOnFinish", "internal", "settings", "labels"];
37
+ outputFields: string[];
38
+ };
39
+ };
40
+ get_agent_status: {
41
+ label: string;
42
+ context: PaseoToolContext;
43
+ detail: {
44
+ inputOrder: string[];
45
+ };
46
+ };
47
+ get_agent_activity: {
48
+ label: string;
49
+ context: PaseoToolContext;
50
+ detail: {
51
+ inputOrder: string[];
52
+ };
53
+ };
54
+ list_agents: {
55
+ label: string;
56
+ detail: {
57
+ inputOrder: string[];
58
+ };
59
+ };
60
+ update_agent: {
61
+ label: string;
62
+ context: PaseoToolContext;
63
+ detail: {
64
+ inputOrder: readonly ["title", "agentId", "provider", "workspaceId", "cwd", "sessionMode", "modeId", "background", "notifyOnFinish", "internal", "settings", "labels"];
65
+ };
66
+ };
67
+ set_agent_mode: {
68
+ label: string;
69
+ context: PaseoToolContext;
70
+ detail: {
71
+ inputOrder: string[];
72
+ };
73
+ };
74
+ cancel_agent: {
75
+ label: string;
76
+ context: PaseoToolContext;
77
+ detail: {
78
+ inputOrder: string[];
79
+ };
80
+ };
81
+ archive_agent: {
82
+ label: string;
83
+ context: PaseoToolContext;
84
+ detail: {
85
+ inputOrder: string[];
86
+ };
87
+ };
88
+ kill_agent: {
89
+ label: string;
90
+ context: PaseoToolContext;
91
+ detail: {
92
+ inputOrder: string[];
93
+ };
94
+ };
95
+ list_pending_permissions: {
96
+ label: string;
97
+ };
98
+ respond_to_permission: {
99
+ label: string;
100
+ context: PaseoToolContext;
101
+ detail: {
102
+ inputOrder: string[];
103
+ };
104
+ };
105
+ create_workspace: {
106
+ label: string;
107
+ context: PaseoToolContext;
108
+ detail: {
109
+ inputOrder: readonly ["title", "workspaceId", "projectId", "isolation", "path", "mode", "worktreeSlug", "branchName", "baseBranch", "branch", "prNumber", "forge"];
110
+ outputFields: string[];
111
+ };
112
+ };
113
+ list_workspaces: {
114
+ label: string;
115
+ };
116
+ rename_workspace: {
117
+ label: string;
118
+ context: PaseoToolContext;
119
+ detail: {
120
+ inputOrder: string[];
121
+ };
122
+ };
123
+ archive_workspace: {
124
+ label: string;
125
+ context: PaseoToolContext;
126
+ detail: {
127
+ inputOrder: string[];
128
+ outputFields: string[];
129
+ };
130
+ };
131
+ list_workspace_scripts: {
132
+ label: string;
133
+ detail: {
134
+ inputOrder: string[];
135
+ };
136
+ };
137
+ start_workspace_script: {
138
+ label: string;
139
+ context: PaseoToolContext;
140
+ detail: {
141
+ inputOrder: string[];
142
+ };
143
+ };
144
+ stop_workspace_script: {
145
+ label: string;
146
+ context: PaseoToolContext;
147
+ detail: {
148
+ inputOrder: string[];
149
+ };
150
+ };
151
+ create_terminal: {
152
+ label: string;
153
+ context: PaseoToolContext;
154
+ detail: {
155
+ inputOrder: string[];
156
+ };
157
+ };
158
+ list_terminals: {
159
+ label: string;
160
+ detail: {
161
+ inputOrder: string[];
162
+ };
163
+ };
164
+ capture_terminal: {
165
+ label: string;
166
+ context: PaseoToolContext;
167
+ detail: {
168
+ inputOrder: string[];
169
+ };
170
+ };
171
+ send_terminal_keys: {
172
+ label: string;
173
+ context: PaseoToolContext;
174
+ detail: {
175
+ inputOrder: string[];
176
+ };
177
+ };
178
+ kill_terminal: {
179
+ label: string;
180
+ context: PaseoToolContext;
181
+ detail: {
182
+ inputOrder: string[];
183
+ };
184
+ };
185
+ create_schedule: {
186
+ label: string;
187
+ context: PaseoToolContext;
188
+ detail: {
189
+ promptField: string;
190
+ inputOrder: readonly ["name", "id", "cron", "timezone", "provider", "cwd", "isolation", "maxRuns", "expiresIn", "clearExpires"];
191
+ outputFields: readonly ["id", "status", "nextRunAt", "expiresAt"];
192
+ };
193
+ };
194
+ create_heartbeat: {
195
+ label: string;
196
+ context: PaseoToolContext;
197
+ detail: {
198
+ promptField: string;
199
+ inputOrder: readonly ["name", "id", "cron", "timezone", "provider", "cwd", "isolation", "maxRuns", "expiresIn", "clearExpires"];
200
+ outputFields: readonly ["id", "status", "nextRunAt", "expiresAt"];
201
+ };
202
+ };
203
+ update_schedule: {
204
+ label: string;
205
+ context: PaseoToolContext;
206
+ detail: {
207
+ promptField: string;
208
+ inputOrder: readonly ["name", "id", "cron", "timezone", "provider", "cwd", "isolation", "maxRuns", "expiresIn", "clearExpires"];
209
+ };
210
+ };
211
+ list_schedules: {
212
+ label: string;
213
+ };
214
+ inspect_schedule: {
215
+ label: string;
216
+ context: PaseoToolContext;
217
+ detail: {
218
+ inputOrder: string[];
219
+ };
220
+ };
221
+ schedule_logs: {
222
+ label: string;
223
+ context: PaseoToolContext;
224
+ detail: {
225
+ inputOrder: string[];
226
+ };
227
+ };
228
+ run_schedule_once: {
229
+ label: string;
230
+ context: PaseoToolContext;
231
+ detail: {
232
+ inputOrder: string[];
233
+ };
234
+ };
235
+ pause_schedule: {
236
+ label: string;
237
+ context: PaseoToolContext;
238
+ detail: {
239
+ inputOrder: string[];
240
+ };
241
+ };
242
+ resume_schedule: {
243
+ label: string;
244
+ context: PaseoToolContext;
245
+ detail: {
246
+ inputOrder: string[];
247
+ };
248
+ };
249
+ delete_schedule: {
250
+ label: string;
251
+ context: PaseoToolContext;
252
+ detail: {
253
+ inputOrder: string[];
254
+ };
255
+ };
256
+ delete_heartbeat: {
257
+ label: string;
258
+ context: PaseoToolContext;
259
+ detail: {
260
+ inputOrder: string[];
261
+ };
262
+ };
263
+ list_providers: {
264
+ label: string;
265
+ };
266
+ list_models: {
267
+ label: string;
268
+ context: PaseoToolContext;
269
+ detail: {
270
+ inputOrder: string[];
271
+ };
272
+ };
273
+ list_profiles: {
274
+ label: string;
275
+ };
276
+ inspect_provider: {
277
+ label: string;
278
+ context: PaseoToolContext;
279
+ detail: {
280
+ inputOrder: string[];
281
+ };
282
+ };
283
+ browser_list_tabs: PaseoToolEntry;
284
+ browser_new_tab: PaseoToolEntry;
285
+ browser_close_tab: PaseoToolEntry;
286
+ browser_navigate: PaseoToolEntry;
287
+ browser_back: PaseoToolEntry;
288
+ browser_forward: PaseoToolEntry;
289
+ browser_reload: PaseoToolEntry;
290
+ browser_snapshot: PaseoToolEntry;
291
+ browser_screenshot: PaseoToolEntry;
292
+ browser_click: PaseoToolEntry;
293
+ browser_hover: PaseoToolEntry;
294
+ browser_drag: PaseoToolEntry;
295
+ browser_fill: PaseoToolEntry;
296
+ browser_select: PaseoToolEntry;
297
+ browser_type: PaseoToolEntry;
298
+ browser_keypress: PaseoToolEntry;
299
+ browser_upload: PaseoToolEntry;
300
+ browser_wait: PaseoToolEntry;
301
+ browser_scroll: PaseoToolEntry;
302
+ browser_resize: PaseoToolEntry;
303
+ browser_logs: PaseoToolEntry;
304
+ browser_evaluate: PaseoToolEntry;
305
+ };
306
+ export type PaseoToolName = keyof typeof PASEO_TOOL_CATALOG;
307
+ export declare function getPaseoToolEntry(leafName: string): PaseoToolEntry | undefined;
308
+ export {};
309
+ //# sourceMappingURL=catalog.d.ts.map