@oneie/mcp 0.2.1 → 0.4.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.
@@ -1,3 +1,9 @@
1
+ import { RECIPES } from "@oneie/sdk/receivers";
2
+ // Tools group by goal: an agent reads the recipe menu, then calls meta:catalog
3
+ // for the full typed surface (cost/risk) and meta:schema for one payload shape.
4
+ const RECEIVER_HINT = `\n\nReceivers group by goal (recipe):\n${Object.entries(RECIPES)
5
+ .map(([goal, steps]) => ` ${goal}: ${steps.join(" → ")}`)
6
+ .join("\n")}\n\nFor the full typed surface (with cost/reversibility/settlement) call ask("meta:catalog"); for one receiver's payload schema call ask("meta:schema", { receiver }).`;
1
7
  async function apiCall(baseUrl, apiKey, path, init = {}) {
2
8
  const headers = new Headers(init.headers);
3
9
  headers.set("Accept", "application/json");
@@ -17,98 +23,356 @@ export function substrateTools() {
17
23
  return [
18
24
  {
19
25
  name: "signal",
20
- description: "Emit a signal into the substrate.",
21
- inputSchema: { type: "object", properties: { receiver: { type: "string" }, data: {}, sender: { type: "string" } }, required: ["receiver"] },
22
- handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, "/api/signal", {
26
+ description: "Fire-and-forget signal to any receiver. Receiver namespacing reaches any capability: 'market:hire', 'inbox:workspace', 'agents:commend', 'groups:join', etc. Use this instead of dedicated tools for any action not listed explicitly." +
27
+ RECEIVER_HINT,
28
+ inputSchema: {
29
+ type: "object",
30
+ properties: { receiver: { type: "string" }, data: {} },
31
+ required: ["receiver"],
32
+ },
33
+ handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, `/api/signal/${encodeURIComponent(String(args.receiver))}`, {
23
34
  method: "POST",
24
- body: JSON.stringify({ sender: args.sender ?? "mcp", receiver: args.receiver, data: args.data }),
35
+ body: JSON.stringify({ data: args.data }),
25
36
  }),
26
37
  },
27
38
  {
28
39
  name: "ask",
29
- description: "Signal + wait for outcome (result | timeout | dissolved | failure).",
30
- inputSchema: { type: "object", properties: { receiver: { type: "string" }, data: {}, timeout: { type: "number" } }, required: ["receiver"] },
31
- handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, "/api/ask", {
40
+ description: "Signal + wait for outcome (result | timeout | dissolved | failure). Receiver namespacing reaches any capability: 'stats:current', 'auth:sign-in', 'market:hire', 'agents:capabilities', etc. Use this instead of dedicated tools when you need a response." +
41
+ RECEIVER_HINT,
42
+ inputSchema: {
43
+ type: "object",
44
+ properties: { receiver: { type: "string" }, data: {}, timeoutMs: { type: "number" } },
45
+ required: ["receiver"],
46
+ },
47
+ handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, `/api/ask/${encodeURIComponent(String(args.receiver))}`, {
32
48
  method: "POST",
33
- body: JSON.stringify({ receiver: args.receiver, data: args.data, timeout: args.timeout, from: "mcp" }),
49
+ body: JSON.stringify({ data: args.data, timeoutMs: args.timeoutMs }),
34
50
  }),
35
51
  },
36
52
  {
37
53
  name: "mark",
38
- description: "Strengthen a path.",
39
- inputSchema: { type: "object", properties: { edge: { type: "string" }, strength: { type: "number" } }, required: ["edge"] },
40
- handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, "/api/loop/mark-dims", {
54
+ description: "Strengthen a path (mark deposit). Edge format: 'source>target'.",
55
+ inputSchema: {
56
+ type: "object",
57
+ properties: { edge: { type: "string" }, strength: { type: "number" } },
58
+ required: ["edge"],
59
+ },
60
+ handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, `/api/mark/${encodeURIComponent(String(args.edge))}`, {
41
61
  method: "POST",
42
- body: JSON.stringify({ edge: args.edge, strength: args.strength ?? 1, source: "mcp" }),
62
+ body: JSON.stringify({ strength: args.strength ?? 1 }),
43
63
  }),
44
64
  },
45
65
  {
46
66
  name: "warn",
47
- description: "Raise resistance on a path.",
48
- inputSchema: { type: "object", properties: { edge: { type: "string" }, strength: { type: "number" } }, required: ["edge"] },
49
- handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, "/api/loop/mark-dims", {
67
+ description: "Raise resistance on a path. Edge format: 'source>target'.",
68
+ inputSchema: {
69
+ type: "object",
70
+ properties: { edge: { type: "string" }, strength: { type: "number" } },
71
+ required: ["edge"],
72
+ },
73
+ handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, `/api/warn/${encodeURIComponent(String(args.edge))}`, {
50
74
  method: "POST",
51
- body: JSON.stringify({ edge: args.edge, strength: -Math.abs(args.strength ?? 1), source: "mcp" }),
75
+ body: JSON.stringify({ strength: args.strength ?? 1 }),
52
76
  }),
53
77
  },
54
78
  {
55
79
  name: "fade",
56
- description: "Asymmetric decay of all paths.",
80
+ description: "Asymmetric decay of all paths (resistance forgives 2x faster than strength).",
57
81
  inputSchema: { type: "object", properties: { rate: { type: "number" } } },
58
- handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, `/api/decay-cycle?rate=${args.rate ?? 0.05}`, { method: "POST" }),
82
+ handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, "/api/fade", {
83
+ method: "POST",
84
+ body: JSON.stringify({ rate: args.rate }),
85
+ }),
86
+ },
87
+ {
88
+ name: "follow",
89
+ description: "Deterministic path selection — returns the strongest path for a tag type.",
90
+ inputSchema: { type: "object", properties: { tag: { type: "string" } } },
91
+ handler: async (args, env) => {
92
+ const q = new URLSearchParams();
93
+ if (args.tag)
94
+ q.set("tag", String(args.tag));
95
+ const qs = q.toString();
96
+ return apiCall(env.baseUrl, env.apiKey, `/api/follow${qs ? `?${qs}` : ""}`);
97
+ },
59
98
  },
60
99
  {
61
100
  name: "select",
62
- description: "Probabilistic path selection (pheromone-weighted).",
63
- inputSchema: { type: "object", properties: { type: { type: "string" }, sensitivity: { type: "number" } } },
101
+ description: "Probabilistic path selection — strength-weighted with exploration bias. Returns next target or null.",
102
+ inputSchema: {
103
+ type: "object",
104
+ properties: {
105
+ type: { type: "string", description: "Tag/type to route toward" },
106
+ exploration: { type: "number", description: "Exploration factor 0–1 (default 0.3)" },
107
+ },
108
+ },
64
109
  handler: async (args, env) => {
65
110
  const q = new URLSearchParams();
66
111
  if (args.type)
67
112
  q.set("type", String(args.type));
68
- q.set("sensitivity", String(args.sensitivity ?? 0.5));
69
- return apiCall(env.baseUrl, env.apiKey, `/api/loop/stage?${q}`);
113
+ if (args.exploration != null)
114
+ q.set("exploration", String(args.exploration));
115
+ const qs = q.toString();
116
+ return apiCall(env.baseUrl, env.apiKey, `/api/select${qs ? `?${qs}` : ""}`);
70
117
  },
71
118
  },
72
119
  {
73
120
  name: "recall",
74
121
  description: "Query hypotheses from the brain.",
75
- inputSchema: { type: "object", properties: { subject: { type: "string" } } },
122
+ inputSchema: {
123
+ type: "object",
124
+ properties: {
125
+ status: { type: "string", enum: ["pending", "testing", "confirmed", "rejected"] },
126
+ search: { type: "string" },
127
+ limit: { type: "number" },
128
+ },
129
+ },
76
130
  handler: async (args, env) => {
77
- const p = args.subject
78
- ? `/api/hypotheses?subject=${encodeURIComponent(String(args.subject))}`
79
- : "/api/hypotheses";
80
- return apiCall(env.baseUrl, env.apiKey, p);
131
+ const q = new URLSearchParams();
132
+ if (args.status)
133
+ q.set("status", String(args.status));
134
+ if (args.search)
135
+ q.set("search", String(args.search));
136
+ if (args.limit)
137
+ q.set("limit", String(args.limit));
138
+ const qs = q.toString();
139
+ return apiCall(env.baseUrl, env.apiKey, `/api/learning${qs ? `?${qs}` : ""}`);
81
140
  },
82
141
  },
83
142
  {
84
143
  name: "reveal",
85
144
  description: "Full memory card for a uid.",
86
- inputSchema: { type: "object", properties: { uid: { type: "string" } }, required: ["uid"] },
87
- handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, `/api/memory/reveal/${encodeURIComponent(String(args.uid))}`),
145
+ inputSchema: {
146
+ type: "object",
147
+ properties: { uid: { type: "string" } },
148
+ required: ["uid"],
149
+ },
150
+ handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, `/api/pii/reveal/${encodeURIComponent(String(args.uid))}`),
88
151
  },
89
152
  {
90
153
  name: "forget",
91
154
  description: "GDPR erasure of a uid.",
92
- inputSchema: { type: "object", properties: { uid: { type: "string" } }, required: ["uid"] },
93
- handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, `/api/memory/forget/${encodeURIComponent(String(args.uid))}`, { method: "DELETE" }),
155
+ inputSchema: {
156
+ type: "object",
157
+ properties: { uid: { type: "string" } },
158
+ required: ["uid"],
159
+ },
160
+ handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, "/api/forget", {
161
+ method: "POST",
162
+ body: JSON.stringify({ actorId: args.uid }),
163
+ }),
94
164
  },
95
165
  {
96
166
  name: "frontier",
97
- description: "Unexplored tag clusters for a uid.",
98
- inputSchema: { type: "object", properties: { uid: { type: "string" } }, required: ["uid"] },
99
- handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, `/api/memory/frontier/${encodeURIComponent(String(args.uid))}`),
167
+ description: "Unexplored tag clusters.",
168
+ inputSchema: { type: "object", properties: { limit: { type: "number" } } },
169
+ handler: async (args, env) => {
170
+ const q = new URLSearchParams();
171
+ if (args.limit)
172
+ q.set("limit", String(args.limit));
173
+ const qs = q.toString();
174
+ return apiCall(env.baseUrl, env.apiKey, `/api/frontiers${qs ? `?${qs}` : ""}`);
175
+ },
100
176
  },
101
177
  {
102
178
  name: "know",
103
179
  description: "Promote highways to hypotheses (L6 learning).",
104
180
  inputSchema: { type: "object", properties: {} },
105
- handler: async (_args, env) => apiCall(env.baseUrl, env.apiKey, "/api/tick?loops=L6", { method: "POST" }).catch(() => apiCall(env.baseUrl, env.apiKey, "/api/hypotheses")),
181
+ handler: async (_args, env) => apiCall(env.baseUrl, env.apiKey, `/api/signal/${encodeURIComponent("learning:know")}`, {
182
+ method: "POST",
183
+ body: JSON.stringify({ data: {} }),
184
+ }),
106
185
  },
107
186
  {
108
187
  name: "highways",
109
- description: "Top weighted paths (proven routes).",
110
- inputSchema: { type: "object", properties: { limit: { type: "number" } } },
111
- handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, `/api/loop/highways?limit=${args.limit ?? 20}`).catch(() => apiCall(env.baseUrl, env.apiKey, `/api/export/highways?limit=${args.limit ?? 20}`)),
188
+ description: "Top weighted paths (proven routes). Optionally filter by source unit with 'from'.",
189
+ inputSchema: {
190
+ type: "object",
191
+ properties: { limit: { type: "number" }, from: { type: "string" } },
192
+ },
193
+ handler: async (args, env) => {
194
+ const q = new URLSearchParams({ limit: String(args.limit ?? 20) });
195
+ if (args.from)
196
+ q.set("from", String(args.from));
197
+ return apiCall(env.baseUrl, env.apiKey, `/api/export/highways?${q}`);
198
+ },
199
+ },
200
+ {
201
+ name: "groups",
202
+ description: "List or get a group (dimension 1 — containers: worlds, teams, orgs). Pass gid for a single record.",
203
+ inputSchema: {
204
+ type: "object",
205
+ properties: {
206
+ gid: { type: "string", description: "Group ID — returns single record" },
207
+ type: { type: "string" },
208
+ limit: { type: "number" },
209
+ after: { type: "string", description: "Cursor for pagination" },
210
+ },
211
+ },
212
+ handler: async (args, env) => {
213
+ if (args.gid)
214
+ return apiCall(env.baseUrl, env.apiKey, `/api/export/groups/${encodeURIComponent(String(args.gid))}`);
215
+ const q = new URLSearchParams();
216
+ if (args.type)
217
+ q.set("type", String(args.type));
218
+ if (args.limit)
219
+ q.set("limit", String(args.limit));
220
+ if (args.after)
221
+ q.set("after", String(args.after));
222
+ const qs = q.toString();
223
+ return apiCall(env.baseUrl, env.apiKey, `/api/export/groups${qs ? `?${qs}` : ""}`);
224
+ },
225
+ },
226
+ {
227
+ name: "actors",
228
+ description: "List or get an actor (dimension 2 — humans, agents, bots). Pass aid for a single record.",
229
+ inputSchema: {
230
+ type: "object",
231
+ properties: {
232
+ aid: { type: "string", description: "Actor ID — returns single record" },
233
+ type: { type: "string" },
234
+ tag: { type: "string" },
235
+ limit: { type: "number" },
236
+ after: { type: "string" },
237
+ },
238
+ },
239
+ handler: async (args, env) => {
240
+ if (args.aid)
241
+ return apiCall(env.baseUrl, env.apiKey, `/api/actors/${encodeURIComponent(String(args.aid))}`);
242
+ const q = new URLSearchParams();
243
+ if (args.type)
244
+ q.set("type", String(args.type));
245
+ if (args.tag)
246
+ q.set("tag", String(args.tag));
247
+ if (args.limit)
248
+ q.set("limit", String(args.limit));
249
+ if (args.after)
250
+ q.set("after", String(args.after));
251
+ const qs = q.toString();
252
+ return apiCall(env.baseUrl, env.apiKey, `/api/export/actors${qs ? `?${qs}` : ""}`);
253
+ },
254
+ },
255
+ {
256
+ name: "things",
257
+ description: "List or get a thing (dimension 3 — skills, tasks, tokens, items). Pass tid for a single record.",
258
+ inputSchema: {
259
+ type: "object",
260
+ properties: {
261
+ tid: { type: "string", description: "Thing ID — returns single record" },
262
+ type: { type: "string" },
263
+ tag: { type: "string" },
264
+ limit: { type: "number" },
265
+ after: { type: "string" },
266
+ },
267
+ },
268
+ handler: async (args, env) => {
269
+ if (args.tid)
270
+ return apiCall(env.baseUrl, env.apiKey, `/api/things/${encodeURIComponent(String(args.tid))}`);
271
+ const q = new URLSearchParams();
272
+ if (args.type)
273
+ q.set("type", String(args.type));
274
+ if (args.tag)
275
+ q.set("tag", String(args.tag));
276
+ if (args.limit)
277
+ q.set("limit", String(args.limit));
278
+ if (args.after)
279
+ q.set("after", String(args.after));
280
+ const qs = q.toString();
281
+ return apiCall(env.baseUrl, env.apiKey, `/api/things${qs ? `?${qs}` : ""}`);
282
+ },
283
+ },
284
+ {
285
+ name: "paths",
286
+ description: "List or get a path (dimension 4 — weighted connections with strength/resistance). Pass edge for a single record.",
287
+ inputSchema: {
288
+ type: "object",
289
+ properties: {
290
+ edge: { type: "string", description: "Edge identifier e.g. 'alice>bob' — returns single record" },
291
+ source: { type: "string" },
292
+ target: { type: "string" },
293
+ minStrength: { type: "number" },
294
+ limit: { type: "number" },
295
+ after: { type: "string" },
296
+ },
297
+ },
298
+ handler: async (args, env) => {
299
+ if (args.edge)
300
+ return apiCall(env.baseUrl, env.apiKey, `/api/export/paths/${encodeURIComponent(String(args.edge))}`);
301
+ const q = new URLSearchParams();
302
+ if (args.source)
303
+ q.set("source", String(args.source));
304
+ if (args.target)
305
+ q.set("target", String(args.target));
306
+ if (args.minStrength)
307
+ q.set("minStrength", String(args.minStrength));
308
+ if (args.limit)
309
+ q.set("limit", String(args.limit));
310
+ if (args.after)
311
+ q.set("after", String(args.after));
312
+ const qs = q.toString();
313
+ return apiCall(env.baseUrl, env.apiKey, `/api/export/paths${qs ? `?${qs}` : ""}`);
314
+ },
315
+ },
316
+ {
317
+ name: "events",
318
+ description: "List or get an event (dimension 5 — signals, payments, what happened). Pass id for a single record.",
319
+ inputSchema: {
320
+ type: "object",
321
+ properties: {
322
+ id: { type: "string", description: "Event ID — returns single record" },
323
+ actor: { type: "string" },
324
+ tag: { type: "string" },
325
+ from: { type: "string", description: "ISO timestamp — filter from" },
326
+ to: { type: "string", description: "ISO timestamp — filter to" },
327
+ limit: { type: "number" },
328
+ },
329
+ },
330
+ handler: async (args, env) => {
331
+ if (args.id)
332
+ return apiCall(env.baseUrl, env.apiKey, `/api/events/${encodeURIComponent(String(args.id))}`);
333
+ const q = new URLSearchParams();
334
+ if (args.actor)
335
+ q.set("actor", String(args.actor));
336
+ if (args.tag)
337
+ q.set("tag", String(args.tag));
338
+ if (args.from)
339
+ q.set("from", String(args.from));
340
+ if (args.to)
341
+ q.set("to", String(args.to));
342
+ if (args.limit)
343
+ q.set("limit", String(args.limit));
344
+ const qs = q.toString();
345
+ return apiCall(env.baseUrl, env.apiKey, `/api/events${qs ? `?${qs}` : ""}`);
346
+ },
347
+ },
348
+ {
349
+ name: "learning",
350
+ description: "List or get a hypothesis (dimension 6 — what was discovered, confirmed patterns). Pass hid for a single record. Alias for recall with canonical name.",
351
+ inputSchema: {
352
+ type: "object",
353
+ properties: {
354
+ hid: { type: "string", description: "Hypothesis ID — returns single record" },
355
+ status: { type: "string", enum: ["pending", "testing", "confirmed", "rejected"] },
356
+ actor: { type: "string" },
357
+ tag: { type: "string" },
358
+ limit: { type: "number" },
359
+ },
360
+ },
361
+ handler: async (args, env) => {
362
+ if (args.hid)
363
+ return apiCall(env.baseUrl, env.apiKey, `/api/learning/${encodeURIComponent(String(args.hid))}`);
364
+ const q = new URLSearchParams();
365
+ if (args.status)
366
+ q.set("status", String(args.status));
367
+ if (args.actor)
368
+ q.set("actor", String(args.actor));
369
+ if (args.tag)
370
+ q.set("tag", String(args.tag));
371
+ if (args.limit)
372
+ q.set("limit", String(args.limit));
373
+ const qs = q.toString();
374
+ return apiCall(env.baseUrl, env.apiKey, `/api/learning${qs ? `?${qs}` : ""}`);
375
+ },
112
376
  },
113
377
  ];
114
378
  }
@@ -1 +1 @@
1
- {"version":3,"file":"substrate.js","sourceRoot":"","sources":["../../src/tools/substrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"substrate.js","sourceRoot":"","sources":["../../src/tools/substrate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { McpTool } from "../serve.js";
2
+ export declare function videoTools(): McpTool[];
@@ -0,0 +1,185 @@
1
+ async function apiCall(baseUrl, apiKey, path, init = {}) {
2
+ const headers = new Headers(init.headers);
3
+ headers.set("Accept", "application/json");
4
+ if (init.body && !headers.has("Content-Type"))
5
+ headers.set("Content-Type", "application/json");
6
+ if (apiKey)
7
+ headers.set("Authorization", `Bearer ${apiKey}`);
8
+ const res = await fetch(`${baseUrl.replace(/\/$/, "")}${path}`, { ...init, headers });
9
+ if (!res.ok)
10
+ throw new Error(`${init.method ?? "GET"} ${path} → ${res.status}`);
11
+ if (res.status === 204)
12
+ return null;
13
+ const ct = res.headers.get("content-type") ?? "";
14
+ return ct.includes("json") ? res.json() : res.text();
15
+ }
16
+ function ask(baseUrl, apiKey, receiver, data) {
17
+ return apiCall(baseUrl, apiKey, `/api/ask/${encodeURIComponent(receiver)}`, {
18
+ method: "POST",
19
+ body: JSON.stringify({ data }),
20
+ });
21
+ }
22
+ export function videoTools() {
23
+ return [
24
+ {
25
+ name: "create_room",
26
+ description: "Create a 100ms video room for a workspace. Returns the room slug and join URL.",
27
+ inputSchema: {
28
+ type: "object",
29
+ properties: {
30
+ workspace: { type: "string", description: "Workspace slug" },
31
+ roomSlug: { type: "string", description: "URL-safe room identifier" },
32
+ name: { type: "string", description: "Display name for the room" },
33
+ description: { type: "string" },
34
+ type: { type: "string", enum: ["meeting", "classroom", "webinar"] },
35
+ region: { type: "string" },
36
+ },
37
+ required: ["workspace", "roomSlug", "name"],
38
+ },
39
+ handler: async (args, env) => ask(env.baseUrl, env.apiKey, "video:create-room", args),
40
+ },
41
+ {
42
+ name: "delete_room",
43
+ description: "Disable a video room and its 100ms counterpart; room is no longer joinable.",
44
+ inputSchema: {
45
+ type: "object",
46
+ properties: {
47
+ workspace: { type: "string" },
48
+ roomSlug: { type: "string" },
49
+ },
50
+ required: ["workspace", "roomSlug"],
51
+ },
52
+ handler: async (args, env) => ask(env.baseUrl, env.apiKey, "video:delete-room", args),
53
+ },
54
+ {
55
+ name: "contact_call",
56
+ description: "Provision a one-to-one video room for a contact and link it to their CRM record. Returns host and guest join URLs.",
57
+ inputSchema: {
58
+ type: "object",
59
+ properties: {
60
+ workspace: { type: "string" },
61
+ actorId: { type: "string", description: "Contact actor ID" },
62
+ name: { type: "string", description: "Call display name" },
63
+ },
64
+ required: ["workspace", "actorId"],
65
+ },
66
+ handler: async (args, env) => ask(env.baseUrl, env.apiKey, "video:contact-call", args),
67
+ },
68
+ {
69
+ name: "invite_to_call",
70
+ description: "Generate a tracked /go/ join link for a contact into an existing room.",
71
+ inputSchema: {
72
+ type: "object",
73
+ properties: {
74
+ workspace: { type: "string" },
75
+ roomSlug: { type: "string" },
76
+ actorId: { type: "string" },
77
+ },
78
+ required: ["workspace", "roomSlug"],
79
+ },
80
+ handler: async (args, env) => ask(env.baseUrl, env.apiKey, "video:invite", args),
81
+ },
82
+ {
83
+ name: "schedule_webinar",
84
+ description: "Create a webinar room and send tracked invite links to N contacts in one operation.",
85
+ inputSchema: {
86
+ type: "object",
87
+ properties: {
88
+ workspace: { type: "string" },
89
+ name: { type: "string" },
90
+ actorIds: { type: "array", items: { type: "string" }, description: "Contact actor IDs to invite" },
91
+ },
92
+ required: ["workspace", "actorIds"],
93
+ },
94
+ handler: async (args, env) => ask(env.baseUrl, env.apiKey, "video:schedule-webinar", args),
95
+ },
96
+ {
97
+ name: "create_session",
98
+ description: "Create a video session with host + guest tracked join links. Optionally attach to a booking and schedule a time.",
99
+ inputSchema: {
100
+ type: "object",
101
+ properties: {
102
+ workspace: { type: "string" },
103
+ roomSlug: { type: "string" },
104
+ name: { type: "string" },
105
+ type: { type: "string", enum: ["meeting", "classroom", "webinar"] },
106
+ guestActorId: { type: "string" },
107
+ scheduledAt: { type: "number", description: "Unix timestamp (seconds)" },
108
+ },
109
+ required: ["workspace", "roomSlug", "name"],
110
+ },
111
+ handler: async (args, env) => ask(env.baseUrl, env.apiKey, "video:create-session", args),
112
+ },
113
+ {
114
+ name: "quick_call",
115
+ description: "Start an ad-hoc video call from any chat thread. Creates a room and posts the join link into the thread.",
116
+ inputSchema: {
117
+ type: "object",
118
+ properties: {
119
+ workspace: { type: "string" },
120
+ threadId: { type: "string" },
121
+ name: { type: "string" },
122
+ },
123
+ required: ["workspace"],
124
+ },
125
+ handler: async (args, env) => ask(env.baseUrl, env.apiKey, "video:quick-room", args),
126
+ },
127
+ {
128
+ name: "start_recording",
129
+ description: "Start cloud recording for an active room. Returns a recordingId when recording begins.",
130
+ inputSchema: {
131
+ type: "object",
132
+ properties: {
133
+ workspace: { type: "string" },
134
+ roomSlug: { type: "string" },
135
+ },
136
+ required: ["workspace", "roomSlug"],
137
+ },
138
+ handler: async (args, env) => ask(env.baseUrl, env.apiKey, "video:start-recording", args),
139
+ },
140
+ {
141
+ name: "start_stream",
142
+ description: "Start an HLS live stream for a room. Returns the playback URL when the stream is ready.",
143
+ inputSchema: {
144
+ type: "object",
145
+ properties: {
146
+ workspace: { type: "string" },
147
+ roomSlug: { type: "string" },
148
+ hlsConfig: { type: "object" },
149
+ },
150
+ required: ["workspace", "roomSlug"],
151
+ },
152
+ handler: async (args, env) => ask(env.baseUrl, env.apiKey, "video:start-stream", args),
153
+ },
154
+ {
155
+ name: "video_summary",
156
+ description: "Run an AI summary of a call transcript and append it as a system message on the room thread.",
157
+ inputSchema: {
158
+ type: "object",
159
+ properties: {
160
+ threadId: { type: "string" },
161
+ transcript: { type: "string" },
162
+ },
163
+ required: ["threadId", "transcript"],
164
+ },
165
+ handler: async (args, env) => ask(env.baseUrl, env.apiKey, "video:summary", args),
166
+ },
167
+ {
168
+ name: "get_room_status",
169
+ description: "Check whether a room is currently active and how many peers are connected.",
170
+ inputSchema: {
171
+ type: "object",
172
+ properties: {
173
+ workspace: { type: "string" },
174
+ roomSlug: { type: "string" },
175
+ },
176
+ required: ["workspace", "roomSlug"],
177
+ },
178
+ handler: async (args, env) => apiCall(env.baseUrl, env.apiKey, `/api/ask/${encodeURIComponent("video:room-status")}`, {
179
+ method: "POST",
180
+ body: JSON.stringify({ data: args }),
181
+ }),
182
+ },
183
+ ];
184
+ }
185
+ //# sourceMappingURL=video.js.map