@mono-agent/agent-app 0.4.0 → 0.4.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.
Files changed (173) hide show
  1. package/README.md +15 -5
  2. package/dist/adapter-send-tools-main.js +2 -2
  3. package/dist/adapter-send-tools-main.js.map +1 -1
  4. package/dist/adapter-send-tools.d.ts +72 -6
  5. package/dist/adapter-send-tools.d.ts.map +1 -1
  6. package/dist/adapter-send-tools.js +413 -38
  7. package/dist/adapter-send-tools.js.map +1 -1
  8. package/dist/app-config.d.ts +48 -11
  9. package/dist/app-config.d.ts.map +1 -1
  10. package/dist/app-config.js +98 -24
  11. package/dist/app-config.js.map +1 -1
  12. package/dist/app.d.ts +10 -0
  13. package/dist/app.d.ts.map +1 -1
  14. package/dist/app.js +659 -48
  15. package/dist/app.js.map +1 -1
  16. package/dist/artifact-retention.d.ts +32 -0
  17. package/dist/artifact-retention.d.ts.map +1 -0
  18. package/dist/artifact-retention.js +111 -0
  19. package/dist/artifact-retention.js.map +1 -0
  20. package/dist/audit-runs.d.ts +12 -0
  21. package/dist/audit-runs.d.ts.map +1 -0
  22. package/dist/audit-runs.js +68 -0
  23. package/dist/audit-runs.js.map +1 -0
  24. package/dist/backfill.d.ts +3 -7
  25. package/dist/backfill.d.ts.map +1 -1
  26. package/dist/backfill.js +115 -11
  27. package/dist/backfill.js.map +1 -1
  28. package/dist/background.d.ts +8 -1
  29. package/dist/background.d.ts.map +1 -1
  30. package/dist/background.js +202 -4
  31. package/dist/background.js.map +1 -1
  32. package/dist/broadcast-recorder.d.ts +27 -0
  33. package/dist/broadcast-recorder.d.ts.map +1 -0
  34. package/dist/broadcast-recorder.js +82 -0
  35. package/dist/broadcast-recorder.js.map +1 -0
  36. package/dist/channel-config-view.d.ts +28 -0
  37. package/dist/channel-config-view.d.ts.map +1 -0
  38. package/dist/channel-config-view.js +79 -0
  39. package/dist/channel-config-view.js.map +1 -0
  40. package/dist/channel-gate.d.ts +22 -0
  41. package/dist/channel-gate.d.ts.map +1 -0
  42. package/dist/channel-gate.js +35 -0
  43. package/dist/channel-gate.js.map +1 -0
  44. package/dist/channel-plugins.d.ts +39 -0
  45. package/dist/channel-plugins.d.ts.map +1 -0
  46. package/dist/channel-plugins.js +346 -0
  47. package/dist/channel-plugins.js.map +1 -0
  48. package/dist/channels.d.ts +62 -73
  49. package/dist/channels.d.ts.map +1 -1
  50. package/dist/channels.js +833 -126
  51. package/dist/channels.js.map +1 -1
  52. package/dist/cli.d.ts +53 -3
  53. package/dist/cli.d.ts.map +1 -1
  54. package/dist/cli.js +696 -28
  55. package/dist/cli.js.map +1 -1
  56. package/dist/config-reference.d.ts +24 -0
  57. package/dist/config-reference.d.ts.map +1 -0
  58. package/dist/config-reference.js +580 -0
  59. package/dist/config-reference.js.map +1 -0
  60. package/dist/configured-agent.d.ts +104 -0
  61. package/dist/configured-agent.d.ts.map +1 -0
  62. package/dist/configured-agent.js +578 -0
  63. package/dist/configured-agent.js.map +1 -0
  64. package/dist/consumer-contract.d.ts +36 -0
  65. package/dist/consumer-contract.d.ts.map +1 -0
  66. package/dist/consumer-contract.js +290 -0
  67. package/dist/consumer-contract.js.map +1 -0
  68. package/dist/doctor.d.ts +9 -0
  69. package/dist/doctor.d.ts.map +1 -1
  70. package/dist/doctor.js +252 -55
  71. package/dist/doctor.js.map +1 -1
  72. package/dist/index.d.ts +9 -3
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +5 -2
  75. package/dist/index.js.map +1 -1
  76. package/dist/init.d.ts +23 -7
  77. package/dist/init.d.ts.map +1 -1
  78. package/dist/init.js +91 -26
  79. package/dist/init.js.map +1 -1
  80. package/dist/install-skill.d.ts +1 -1
  81. package/dist/install-skill.js +2 -2
  82. package/dist/install-skill.js.map +1 -1
  83. package/dist/interaction-bridge.d.ts +72 -0
  84. package/dist/interaction-bridge.d.ts.map +1 -0
  85. package/dist/interaction-bridge.js +354 -0
  86. package/dist/interaction-bridge.js.map +1 -0
  87. package/dist/memory-command.d.ts +10 -0
  88. package/dist/memory-command.d.ts.map +1 -0
  89. package/dist/memory-command.js +649 -0
  90. package/dist/memory-command.js.map +1 -0
  91. package/dist/memory-recall-main.js +1 -1
  92. package/dist/memory-recall-main.js.map +1 -1
  93. package/dist/memory-recall.d.ts +41 -5
  94. package/dist/memory-recall.d.ts.map +1 -1
  95. package/dist/memory-recall.js +75 -5
  96. package/dist/memory-recall.js.map +1 -1
  97. package/dist/memory-rituals.d.ts +8 -11
  98. package/dist/memory-rituals.d.ts.map +1 -1
  99. package/dist/memory-rituals.js +26 -25
  100. package/dist/memory-rituals.js.map +1 -1
  101. package/dist/metrics.d.ts +13 -0
  102. package/dist/metrics.d.ts.map +1 -0
  103. package/dist/metrics.js +105 -0
  104. package/dist/metrics.js.map +1 -0
  105. package/dist/notify-destinations.d.ts +23 -0
  106. package/dist/notify-destinations.d.ts.map +1 -0
  107. package/dist/notify-destinations.js +79 -0
  108. package/dist/notify-destinations.js.map +1 -0
  109. package/dist/posted-message-index.d.ts +61 -0
  110. package/dist/posted-message-index.d.ts.map +1 -0
  111. package/dist/posted-message-index.js +178 -0
  112. package/dist/posted-message-index.js.map +1 -0
  113. package/dist/proactive-notify.d.ts +32 -0
  114. package/dist/proactive-notify.d.ts.map +1 -0
  115. package/dist/proactive-notify.js +62 -0
  116. package/dist/proactive-notify.js.map +1 -0
  117. package/dist/recipes/base.d.ts +15 -0
  118. package/dist/recipes/base.d.ts.map +1 -0
  119. package/dist/recipes/base.js +51 -0
  120. package/dist/recipes/base.js.map +1 -0
  121. package/dist/recipes/catalog.d.ts +4 -0
  122. package/dist/recipes/catalog.d.ts.map +1 -0
  123. package/dist/recipes/catalog.js +509 -0
  124. package/dist/recipes/catalog.js.map +1 -0
  125. package/dist/recipes/index.d.ts +11 -0
  126. package/dist/recipes/index.d.ts.map +1 -0
  127. package/dist/recipes/index.js +14 -0
  128. package/dist/recipes/index.js.map +1 -0
  129. package/dist/recipes/types.d.ts +70 -0
  130. package/dist/recipes/types.d.ts.map +1 -0
  131. package/dist/recipes/types.js +15 -0
  132. package/dist/recipes/types.js.map +1 -0
  133. package/dist/request-model-override.d.ts +67 -0
  134. package/dist/request-model-override.d.ts.map +1 -0
  135. package/dist/request-model-override.js +96 -0
  136. package/dist/request-model-override.js.map +1 -0
  137. package/dist/runs-health.d.ts +22 -0
  138. package/dist/runs-health.d.ts.map +1 -0
  139. package/dist/runs-health.js +144 -0
  140. package/dist/runs-health.js.map +1 -0
  141. package/dist/seen-conversations.d.ts +22 -0
  142. package/dist/seen-conversations.d.ts.map +1 -0
  143. package/dist/seen-conversations.js +120 -0
  144. package/dist/seen-conversations.js.map +1 -0
  145. package/dist/setup.d.ts +29 -0
  146. package/dist/setup.d.ts.map +1 -0
  147. package/dist/setup.js +97 -0
  148. package/dist/setup.js.map +1 -0
  149. package/dist/trigger-overrides.d.ts +17 -0
  150. package/dist/trigger-overrides.d.ts.map +1 -0
  151. package/dist/trigger-overrides.js +30 -0
  152. package/dist/trigger-overrides.js.map +1 -0
  153. package/dist/tui-command.d.ts +56 -0
  154. package/dist/tui-command.d.ts.map +1 -0
  155. package/dist/tui-command.js +160 -0
  156. package/dist/tui-command.js.map +1 -0
  157. package/dist/ui.d.ts.map +1 -1
  158. package/dist/ui.js +4 -0
  159. package/dist/ui.js.map +1 -1
  160. package/dist/web-command.d.ts +39 -0
  161. package/dist/web-command.d.ts.map +1 -0
  162. package/dist/web-command.js +151 -0
  163. package/dist/web-command.js.map +1 -0
  164. package/package.json +17 -17
  165. package/schema/mono-agent.config.schema.json +1686 -0
  166. package/skills/mono-agent-composer/SKILL.md +34 -9
  167. package/skills/mono-agent-composer/agents/openai.yaml +4 -0
  168. package/skills/mono-agent-composer/references/config-blueprint.md +52 -18
  169. package/skills/mono-agent-composer/references/discovery-questions.md +14 -16
  170. package/skills/mono-agent-composer/references/feature-coverage.md +19 -15
  171. package/skills/mono-agent-composer/references/package-map.md +17 -19
  172. package/skills/mono-agent-composer/references/playbooks.md +209 -0
  173. package/skills/mono-agent-composer/references/validation.md +9 -1
@@ -0,0 +1,346 @@
1
+ import { readSettingsJson } from "@mono-agent/agent-contracts";
2
+ import { isChannelConfigured } from "./channel-gate.js";
3
+ export class ChannelPluginConfigError extends Error {
4
+ code;
5
+ details;
6
+ constructor(code, message, details = {}) {
7
+ super(message);
8
+ this.name = "ChannelPluginConfigError";
9
+ this.code = code;
10
+ this.details = { ...details, code };
11
+ }
12
+ }
13
+ export async function resolveConfiguredChannelPlugins(input, options = {}) {
14
+ const entries = await readConfiguredChannelPluginEntries(input.configPath);
15
+ const checkedEntries = rejectChannelPluginIdCollisions(entries, options.reservedIds ?? []);
16
+ const drivers = [];
17
+ for (const entry of checkedEntries) {
18
+ drivers.push(await resolveChannelPlugin(entry));
19
+ }
20
+ return drivers;
21
+ }
22
+ export function createExternalPackageChannelDriver(options) {
23
+ let driver;
24
+ let loading;
25
+ const loadDriver = async () => {
26
+ loading ??= loadChannelPluginDriver({
27
+ packageName: options.packageName,
28
+ id: options.id,
29
+ label: options.label,
30
+ ...(options.factoryOptions === undefined ? {} : { factoryOptions: options.factoryOptions }),
31
+ });
32
+ try {
33
+ driver = await loading;
34
+ return driver;
35
+ }
36
+ catch (error) {
37
+ loading = undefined;
38
+ throw error;
39
+ }
40
+ };
41
+ return {
42
+ id: options.id,
43
+ label: options.label,
44
+ async configView(input) {
45
+ if (!(await isChannelConfigured(input, options.gate))) {
46
+ return { id: options.id, label: options.label, status: "disabled", fields: [] };
47
+ }
48
+ const resolved = await loadDriver();
49
+ return await fallbackConfigView(resolved, input);
50
+ },
51
+ async loadConfig(input) {
52
+ if (!(await isChannelConfigured(input, options.gate))) {
53
+ return options.unconfiguredConfig;
54
+ }
55
+ return await (await loadDriver()).loadConfig(input);
56
+ },
57
+ isConfigError(error) {
58
+ return error instanceof ChannelPluginConfigError || driver?.isConfigError(error) === true;
59
+ },
60
+ disabledReason(config) {
61
+ if (config === options.unconfiguredConfig) {
62
+ return options.unconfiguredDisabledReason;
63
+ }
64
+ return driver?.disabledReason?.(config);
65
+ },
66
+ waitingReason(config) {
67
+ return driver?.waitingReason?.(config);
68
+ },
69
+ configIssues(config) {
70
+ return driver?.configIssues?.(config) ?? [];
71
+ },
72
+ async start(input) {
73
+ return await (await loadDriver()).start(input);
74
+ },
75
+ };
76
+ }
77
+ async function readConfiguredChannelPluginEntries(configPath) {
78
+ let json;
79
+ try {
80
+ json = (await readSettingsJson(configPath)).json;
81
+ }
82
+ catch {
83
+ return [];
84
+ }
85
+ const channels = json.channels;
86
+ if (channels === undefined) {
87
+ return [];
88
+ }
89
+ if (!isSettingsRecord(channels)) {
90
+ return [
91
+ {
92
+ id: "channel-plugin",
93
+ label: "Channel plugin",
94
+ code: "invalid_plugin_config",
95
+ message: "channels must be an object when channel plugins are configured.",
96
+ },
97
+ ];
98
+ }
99
+ const plugins = channels.plugins;
100
+ if (plugins === undefined) {
101
+ return [];
102
+ }
103
+ if (!Array.isArray(plugins)) {
104
+ return [
105
+ {
106
+ id: "channel-plugin",
107
+ label: "Channel plugin",
108
+ code: "invalid_plugin_config",
109
+ message: "channels.plugins must be an array.",
110
+ },
111
+ ];
112
+ }
113
+ return plugins.map((entry, index) => parseChannelPluginEntry(entry, index));
114
+ }
115
+ function parseChannelPluginEntry(entry, index) {
116
+ const fallbackId = `channel-plugin-${index + 1}`;
117
+ if (!isSettingsRecord(entry)) {
118
+ return {
119
+ id: fallbackId,
120
+ label: "Channel plugin",
121
+ code: "invalid_plugin_config",
122
+ message: `channels.plugins[${index}] must be an object.`,
123
+ };
124
+ }
125
+ const explicitId = readOptionalNonEmptyString(entry.id);
126
+ const explicitLabel = readOptionalNonEmptyString(entry.label);
127
+ const packageName = readOptionalNonEmptyString(entry.package);
128
+ const id = explicitId ?? (packageName === undefined ? fallbackId : channelIdFromPackageName(packageName));
129
+ const label = explicitLabel ?? labelFromChannelId(id);
130
+ if (packageName === undefined) {
131
+ return {
132
+ id,
133
+ label,
134
+ code: "invalid_plugin_config",
135
+ message: `channels.plugins[${index}].package must be a non-empty package name.`,
136
+ };
137
+ }
138
+ let config;
139
+ if (entry.config !== undefined) {
140
+ if (!isSettingsRecord(entry.config)) {
141
+ return {
142
+ id,
143
+ label,
144
+ packageName,
145
+ pluginId: id,
146
+ code: "invalid_plugin_config",
147
+ message: `channels.plugins[${index}].config must be an object.`,
148
+ };
149
+ }
150
+ config = entry.config;
151
+ }
152
+ return {
153
+ packageName,
154
+ ...(explicitId === undefined ? {} : { id: explicitId }),
155
+ ...(explicitLabel === undefined ? {} : { label: explicitLabel }),
156
+ ...(config === undefined ? {} : { config }),
157
+ };
158
+ }
159
+ function rejectChannelPluginIdCollisions(entries, reservedIds) {
160
+ const reserved = new Set(reservedIds);
161
+ const seen = new Set(reserved);
162
+ return entries.map((entry, index) => {
163
+ const id = pluginEntryId(entry);
164
+ if (!seen.has(id)) {
165
+ seen.add(id);
166
+ return entry;
167
+ }
168
+ const collisionTarget = reserved.has(id) ? "a built-in channel" : "an earlier channel plugin";
169
+ const sectionId = uniqueInvalidPluginId(index, seen);
170
+ const label = `${pluginEntryLabel(entry)} plugin`;
171
+ const packageName = pluginEntryPackageName(entry);
172
+ return {
173
+ id: sectionId,
174
+ label,
175
+ ...(packageName === undefined ? {} : { packageName }),
176
+ pluginId: id,
177
+ code: "invalid_plugin_config",
178
+ message: `channels.plugins[${index}] resolves to channel id "${id}", which collides with ${collisionTarget}. Choose a unique plugin id.`,
179
+ };
180
+ });
181
+ }
182
+ function uniqueInvalidPluginId(index, seen) {
183
+ const base = `channel-plugin-${index + 1}`;
184
+ let candidate = base;
185
+ let suffix = 2;
186
+ while (seen.has(candidate)) {
187
+ candidate = `${base}-${suffix}`;
188
+ suffix += 1;
189
+ }
190
+ seen.add(candidate);
191
+ return candidate;
192
+ }
193
+ function pluginEntryId(entry) {
194
+ if ("message" in entry) {
195
+ return entry.pluginId ?? entry.id;
196
+ }
197
+ return entry.id ?? channelIdFromPackageName(entry.packageName);
198
+ }
199
+ function pluginEntryLabel(entry) {
200
+ if ("message" in entry) {
201
+ return entry.label;
202
+ }
203
+ return entry.label ?? labelFromChannelId(pluginEntryId(entry));
204
+ }
205
+ function pluginEntryPackageName(entry) {
206
+ return "packageName" in entry ? entry.packageName : undefined;
207
+ }
208
+ async function resolveChannelPlugin(entry) {
209
+ if ("message" in entry) {
210
+ return createUnavailablePluginDriver(entry.id, entry.label, entry.message, {
211
+ ...(entry.packageName === undefined ? {} : { packageName: entry.packageName }),
212
+ pluginId: entry.pluginId ?? entry.id,
213
+ code: entry.code,
214
+ });
215
+ }
216
+ try {
217
+ return await loadChannelPluginDriver(entry);
218
+ }
219
+ catch (error) {
220
+ const id = entry.id ?? channelIdFromPackageName(entry.packageName);
221
+ const label = entry.label ?? labelFromChannelId(id);
222
+ const message = error instanceof ChannelPluginConfigError
223
+ ? error.message
224
+ : `Cannot load channel plugin ${entry.packageName}: ${reasonOf(error)}. Install the package or remove it from channels.plugins.`;
225
+ const code = error instanceof ChannelPluginConfigError ? error.code : "plugin_import_failed";
226
+ return createUnavailablePluginDriver(id, label, message, {
227
+ packageName: entry.packageName,
228
+ pluginId: id,
229
+ code,
230
+ });
231
+ }
232
+ }
233
+ async function loadChannelPluginDriver(input) {
234
+ let mod;
235
+ try {
236
+ mod = await import(input.packageName);
237
+ }
238
+ catch (error) {
239
+ throw new ChannelPluginConfigError("plugin_import_failed", `Cannot load channel plugin ${input.packageName}: ${reasonOf(error)}. Install the package or remove it from channels.plugins.`, { packageName: input.packageName, ...(input.id === undefined ? {} : { pluginId: input.id }), reason: reasonOf(error) });
240
+ }
241
+ const factory = channelDriverFactory(mod);
242
+ if (factory === undefined) {
243
+ throw malformedPluginExport(input.packageName, input.id);
244
+ }
245
+ let driver;
246
+ try {
247
+ driver = await factory({
248
+ ...(input.factoryOptions ?? {}),
249
+ ...(input.id === undefined ? {} : { id: input.id }),
250
+ ...(input.label === undefined ? {} : { label: input.label }),
251
+ ...(input.config === undefined ? {} : { config: input.config }),
252
+ });
253
+ }
254
+ catch (error) {
255
+ throw new ChannelPluginConfigError("malformed_plugin_export", `Channel plugin ${input.packageName} failed while creating its driver: ${reasonOf(error)}`, { packageName: input.packageName, ...(input.id === undefined ? {} : { pluginId: input.id }), reason: reasonOf(error) });
256
+ }
257
+ if (!isChannelDriver(driver)) {
258
+ throw malformedPluginExport(input.packageName, input.id);
259
+ }
260
+ return driver;
261
+ }
262
+ function channelDriverFactory(mod) {
263
+ if (!isUnknownRecord(mod)) {
264
+ return undefined;
265
+ }
266
+ const factory = mod.createChannelDriver ?? mod.default;
267
+ return typeof factory === "function" ? factory : undefined;
268
+ }
269
+ function createUnavailablePluginDriver(id, label, message, options = {}) {
270
+ const code = options.code ?? (options.packageName === undefined ? "invalid_plugin_config" : "plugin_import_failed");
271
+ const error = new ChannelPluginConfigError(code, message, {
272
+ ...(options.packageName === undefined ? {} : { packageName: options.packageName }),
273
+ pluginId: options.pluginId ?? id,
274
+ });
275
+ return {
276
+ id,
277
+ label,
278
+ async configView() {
279
+ return { id, label, status: "active", fields: [] };
280
+ },
281
+ async loadConfig() {
282
+ throw error;
283
+ },
284
+ isConfigError(candidate) {
285
+ return candidate instanceof ChannelPluginConfigError;
286
+ },
287
+ async start() {
288
+ throw error;
289
+ },
290
+ };
291
+ }
292
+ async function fallbackConfigView(driver, input) {
293
+ if (driver.configView !== undefined) {
294
+ return await driver.configView(input);
295
+ }
296
+ let status = "active";
297
+ try {
298
+ const config = await driver.loadConfig(input);
299
+ if (driver.disabledReason?.(config) !== undefined) {
300
+ status = "disabled";
301
+ }
302
+ }
303
+ catch (error) {
304
+ if (!driver.isConfigError(error)) {
305
+ throw error;
306
+ }
307
+ }
308
+ return { id: driver.id, label: driver.label, status, fields: [] };
309
+ }
310
+ function malformedPluginExport(packageName, pluginId) {
311
+ return new ChannelPluginConfigError("malformed_plugin_export", `Channel plugin ${packageName} must export createChannelDriver(options) returning a ChannelDriver.`, { packageName, ...(pluginId === undefined ? {} : { pluginId }) });
312
+ }
313
+ function isChannelDriver(value) {
314
+ return (isUnknownRecord(value) &&
315
+ typeof value.id === "string" &&
316
+ value.id.trim().length > 0 &&
317
+ typeof value.label === "string" &&
318
+ value.label.trim().length > 0 &&
319
+ typeof value.loadConfig === "function" &&
320
+ typeof value.isConfigError === "function" &&
321
+ typeof value.start === "function");
322
+ }
323
+ function isSettingsRecord(value) {
324
+ return typeof value === "object" && value !== null && !Array.isArray(value);
325
+ }
326
+ function isUnknownRecord(value) {
327
+ return typeof value === "object" && value !== null && !Array.isArray(value);
328
+ }
329
+ function readOptionalNonEmptyString(value) {
330
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
331
+ }
332
+ function channelIdFromPackageName(packageName) {
333
+ const segment = packageName.split("/").pop() ?? packageName;
334
+ return segment.endsWith("-adapter") ? segment.slice(0, -"-adapter".length) : segment;
335
+ }
336
+ function labelFromChannelId(id) {
337
+ return id
338
+ .split(/[-_]+/u)
339
+ .filter((part) => part.length > 0)
340
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
341
+ .join(" ") || "Channel plugin";
342
+ }
343
+ function reasonOf(error) {
344
+ return error instanceof Error ? error.message : String(error);
345
+ }
346
+ //# sourceMappingURL=channel-plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-plugins.js","sourceRoot":"","sources":["../src/channel-plugins.ts"],"names":[],"mappings":"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"}
@@ -1,87 +1,47 @@
1
- import type { AgentResponder } from "@mono-agent/agent-contracts";
1
+ import type { ChannelDriver as ContractChannelDriver, ChannelId as ContractChannelId, ChannelLogger, ChannelStartInput as ContractChannelStartInput } from "@mono-agent/agent-contracts";
2
2
  import type { MonoAgentConfig } from "@mono-agent/config";
3
- import type { A2AAdapterConfig, A2AProviderOptions, A2AProviderStartResult } from "@mono-agent/a2a-adapter";
4
3
  import type { CronAdapterConfig, CronAdapterOptions, CronAdapterStartResult } from "@mono-agent/cron-adapter";
5
4
  import type { OpenAIApiAdapterConfig, OpenAIApiAdapterOptions, OpenAIApiAdapterStartResult } from "@mono-agent/openai-api-adapter";
6
5
  import type { SlackAdapterConfig, SlackAdapterStartOptions, SlackAdapterStartResult } from "@mono-agent/slack-adapter";
7
- import type { TelegramAdapterConfig, TelegramAdapterStartOptions, TelegramAdapterStartResult } from "@mono-agent/telegram-adapter";
6
+ import type { TelegramAdapterConfig, TelegramAdapterStartOptions, TelegramAdapterStartResult, TelegramChatId } from "@mono-agent/telegram-adapter";
7
+ import type { TuiAdapterConfig, TuiAdapterOptions, TuiAdapterStartResult } from "@mono-agent/operator-adapter";
8
+ import type { LiveAdapterConfig, LiveAdapterHandle, LiveAdapterOptions } from "@mono-agent/operator-adapter";
8
9
  import type { WebhookAdapterConfig, WebhookAdapterOptions, WebhookAdapterStartResult } from "@mono-agent/webhook-adapter";
9
- import type { StartWhatsAppAdapterOptions, WhatsAppAdapterConfig, WhatsAppAdapterStartResult, WhatsAppSocketFactory } from "@mono-agent/whatsapp-adapter";
10
+ import type { DiscoveredLocalModel, LocalProviderDefinition } from "@mono-agent/runtime-adapter";
10
11
  import type { MonoAgentAppConfigInput } from "./app-config.js";
11
- export type ChannelId = "telegram" | "slack" | "a2a" | "webhook" | "openai-api" | "cron" | "whatsapp";
12
- export interface MonoAgentAppLogger {
13
- debug?(message: string, metadata?: Record<string, unknown>): void;
14
- info?(message: string, metadata?: Record<string, unknown>): void;
15
- warn?(message: string, metadata?: Record<string, unknown>): void;
16
- error?(message: string, metadata?: Record<string, unknown>): void;
17
- }
18
- export type ChannelStatus = {
19
- readonly kind: "disabled";
20
- readonly reason: string;
21
- } | {
22
- readonly kind: "waiting_for_config";
23
- readonly reason: string;
24
- } | {
25
- readonly kind: "running";
26
- readonly summary: Record<string, unknown>;
27
- } | {
28
- readonly kind: "failed";
29
- readonly reason: string;
30
- };
31
- export interface RunningChannel {
32
- /** Channel-specific connection facts (invoke URL, agent card URL, job count). */
33
- readonly summary: Record<string, unknown>;
34
- stop(): Promise<void>;
35
- /**
36
- * Optional responder/harness teardown, set by the app (not the driver). Stopping
37
- * the transport alone leaves the per-channel harness + live-session manager alive;
38
- * on stop/reload the app disposes the responder so warm provider sessions and
39
- * queued turns against stale config are retired. Transport stops first.
40
- */
41
- dispose?(): Promise<void>;
42
- }
43
- export interface ChannelStartInput<TConfig> {
44
- readonly config: TConfig;
45
- readonly coreConfig: MonoAgentConfig;
46
- readonly responder: AgentResponder;
47
- readonly cwd: string;
48
- readonly logger?: MonoAgentAppLogger;
49
- /** Reports a transport that died after a successful start (e.g. polling loop). */
50
- readonly onFailure: (reason: string) => void;
51
- }
52
12
  /**
53
- * One communication channel the app can run from config. Drivers stay thin:
54
- * they reuse the adapter package's config loader and start function and add
55
- * only the wiring an app host previously copied by hand.
13
+ * The channel contract now lives in @mono-agent/agent-contracts (neutral,
14
+ * dependency-free) so third-party drivers depend on the contracts package, not
15
+ * this host. The aliases below bind the contract's core-config parameter to
16
+ * MonoAgentConfig and preserve every historical export from this module.
56
17
  */
57
- export interface ChannelDriver<TConfig = unknown> {
58
- readonly id: ChannelId;
59
- readonly label: string;
60
- loadConfig(input: MonoAgentAppConfigInput): Promise<TConfig>;
61
- /** True for the adapter's own typed config errors (incomplete config → waiting). */
62
- isConfigError(error: unknown): boolean;
63
- /** Reason the channel is explicitly disabled by its loaded config. */
64
- disabledReason?(config: TConfig): string | undefined;
65
- /** Reason a loaded, enabled config still cannot start (missing sub-section). */
66
- waitingReason?(config: TConfig): string | undefined;
67
- start(input: ChannelStartInput<TConfig>): Promise<RunningChannel>;
68
- }
18
+ export type ChannelId = ContractChannelId;
19
+ export type MonoAgentAppLogger = ChannelLogger;
20
+ export type { ChannelLogger, ChannelStatus, NotifyDeliveryResult, NotifyDestination, RunningChannel } from "@mono-agent/agent-contracts";
21
+ export type ChannelStartInput<TConfig> = ContractChannelStartInput<TConfig, MonoAgentConfig>;
22
+ export type ChannelDriver<TConfig = unknown> = ContractChannelDriver<TConfig, MonoAgentConfig>;
23
+ /** The channel ids this app can drive from config (third-party drivers add their own). */
24
+ export declare const BUILTIN_CHANNEL_IDS: readonly ["telegram", "slack", "webhook", "openai-api", "cron", "tui", "live"];
25
+ export type BuiltinChannelId = (typeof BUILTIN_CHANNEL_IDS)[number];
69
26
  export interface TelegramChannelOverrides {
70
27
  readonly botFactory?: TelegramAdapterStartOptions["botFactory"];
71
28
  readonly runnerFactory?: TelegramAdapterStartOptions["runnerFactory"];
72
29
  readonly startAdapter?: (options: TelegramAdapterStartOptions) => Promise<TelegramAdapterStartResult>;
73
30
  }
74
31
  export declare function createTelegramChannelDriver(overrides?: TelegramChannelOverrides): ChannelDriver<TelegramAdapterConfig>;
32
+ /** Extract the Telegram chat id from a `telegram:<chat>` conversationId (numeric ids become numbers; a rollover #bucket suffix is stripped). */
33
+ export declare function telegramChatIdFromConversation(conversationId: string): TelegramChatId | undefined;
75
34
  export interface SlackChannelOverrides {
76
35
  readonly createApi?: SlackAdapterStartOptions["createApi"];
77
36
  readonly webSocketFactory?: SlackAdapterStartOptions["webSocketFactory"];
78
37
  readonly startAdapter?: (options: SlackAdapterStartOptions) => Promise<SlackAdapterStartResult>;
79
38
  }
80
39
  export declare function createSlackChannelDriver(overrides?: SlackChannelOverrides): ChannelDriver<SlackAdapterConfig>;
81
- export interface A2AChannelOverrides {
82
- readonly providerFactory?: (options: A2AProviderOptions) => Promise<A2AProviderStartResult>;
83
- }
84
- export declare function createA2AChannelDriver(overrides?: A2AChannelOverrides): ChannelDriver<A2AAdapterConfig>;
40
+ /** Extract `{channelId, threadTs?}` from a `slack:<ch>[:<thread>]` conversationId (a rollover #bucket suffix is stripped). */
41
+ export declare function slackTargetFromConversation(conversationId: string): {
42
+ readonly channelId: string;
43
+ readonly threadTs?: string;
44
+ } | undefined;
85
45
  export interface WebhookChannelOverrides {
86
46
  readonly adapterFactory?: (options: WebhookAdapterOptions) => Promise<WebhookAdapterStartResult>;
87
47
  }
@@ -90,26 +50,55 @@ export interface OpenAIApiChannelOverrides {
90
50
  readonly adapterFactory?: (options: OpenAIApiAdapterOptions) => Promise<OpenAIApiAdapterStartResult>;
91
51
  }
92
52
  export declare function createOpenAIApiChannelDriver(overrides?: OpenAIApiChannelOverrides): ChannelDriver<OpenAIApiAdapterConfig>;
53
+ export interface TuiChannelOverrides {
54
+ readonly adapterFactory?: (options: TuiAdapterOptions) => Promise<TuiAdapterStartResult>;
55
+ /** Test seam: replaces the real local-provider model discovery call. */
56
+ readonly discoverModels?: (providers: readonly LocalProviderDefinition[] | undefined) => Promise<readonly DiscoveredLocalModel[]>;
57
+ }
58
+ /**
59
+ * The TUI stream endpoint deviates from the channels-off convention: with no
60
+ * `tui` section and no `MONO_AGENT_TUI_*` env it is ENABLED on loopback with
61
+ * an ephemeral port, so `mono-agent tui` can reach any running agent without a
62
+ * per-agent config edit. There is consequently no isChannelConfigured gate and
63
+ * no synthetic UNCONFIGURED constant — the real loader always answers (its
64
+ * empty-input output is `enabled: true` + defaults). `"tui": {"enabled": false}`
65
+ * opts out.
66
+ */
67
+ export declare function createTuiChannelDriver(overrides?: TuiChannelOverrides): ChannelDriver<TuiAdapterConfig>;
68
+ export interface LiveChannelOverrides {
69
+ readonly adapterFactory?: (options: LiveAdapterOptions) => Promise<LiveAdapterHandle>;
70
+ }
71
+ /**
72
+ * The live event relay, like the TUI endpoint, deviates from the channels-off
73
+ * convention: it is ENABLED by default on loopback with an ephemeral port so
74
+ * `mono-agent web` can observe any running agent without a per-agent config edit.
75
+ * It is passive and read-only — it relays the host's in-process run-event bus over
76
+ * SSE and never drives a turn. `"live": {"enabled": false}` opts out.
77
+ */
78
+ export declare function createLiveChannelDriver(overrides?: LiveChannelOverrides): ChannelDriver<LiveAdapterConfig>;
93
79
  export interface CronChannelOverrides {
94
80
  readonly adapterFactory?: (options: CronAdapterOptions) => CronAdapterStartResult;
81
+ /** Test seam for cooldown decisions; production uses the system clock. */
82
+ readonly now?: () => Date;
83
+ /**
84
+ * Watchdog: max wall-clock a single cron run may take before it is aborted and its slot
85
+ * reclaimed. Defaults to {@link DEFAULT_CRON_MAX_RUN_MS}. Without this, a wedged responder
86
+ * leaves `state.active` set forever and every later firing is skipped as "a prior run is
87
+ * still active" — the failure that silently starved hourly scans for days.
88
+ */
89
+ readonly maxRunMs?: number;
95
90
  }
96
91
  export declare function createCronChannelDriver(overrides?: CronChannelOverrides): ChannelDriver<CronAdapterConfig>;
97
- export interface WhatsAppChannelOverrides {
98
- /** Baileys multi-file auth state directory. Defaults to .mono-agent/whatsapp-auth. */
99
- readonly authDir?: string;
100
- readonly socketFactory?: WhatsAppSocketFactory;
101
- readonly startAdapter?: (options: StartWhatsAppAdapterOptions) => Promise<WhatsAppAdapterStartResult>;
102
- }
103
- export declare function createWhatsAppChannelDriver(overrides?: WhatsAppChannelOverrides): ChannelDriver<WhatsAppAdapterConfig>;
104
92
  export interface ChannelDriverOverrides {
105
93
  readonly telegram?: TelegramChannelOverrides;
106
94
  readonly slack?: SlackChannelOverrides;
107
- readonly a2a?: A2AChannelOverrides;
108
95
  readonly webhook?: WebhookChannelOverrides;
109
96
  readonly openaiApi?: OpenAIApiChannelOverrides;
110
97
  readonly cron?: CronChannelOverrides;
111
- readonly whatsapp?: WhatsAppChannelOverrides;
98
+ readonly tui?: TuiChannelOverrides;
99
+ readonly live?: LiveChannelOverrides;
112
100
  }
113
101
  /** Every channel the app can drive, in startup/status display order. */
114
102
  export declare function defaultChannelDrivers(overrides?: ChannelDriverOverrides): readonly ChannelDriver[];
103
+ export declare function resolveChannelDrivers(input: MonoAgentAppConfigInput, overrides?: ChannelDriverOverrides): Promise<readonly ChannelDriver[]>;
115
104
  //# sourceMappingURL=channels.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../src/channels.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAM1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAG5G,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAM9G,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,gCAAgC,CAAC;AAMxC,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EACV,qBAAqB,EAErB,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,8BAA8B,CAAC;AAMtC,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EAC1B,MAAM,6BAA6B,CAAC;AAMrC,OAAO,KAAK,EACV,2BAA2B,EAC3B,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,OAAO,GACP,KAAK,GACL,SAAS,GACT,YAAY,GACZ,MAAM,GACN,UAAU,CAAC;AAEf,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAClE,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACnE;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACvE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB;;;;;OAKG;IACH,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB,CAAC,OAAO;IACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IACrC,kFAAkF;IAClF,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa,CAAC,OAAO,GAAG,OAAO;IAC9C,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,oFAAoF;IACpF,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IACvC,sEAAsE;IACtE,cAAc,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACrD,gFAAgF;IAChF,aAAa,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACpD,KAAK,CAAC,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,2BAA2B,CAAC,YAAY,CAAC,CAAC;IAChE,QAAQ,CAAC,aAAa,CAAC,EAAE,2BAA2B,CAAC,eAAe,CAAC,CAAC;IACtE,QAAQ,CAAC,YAAY,CAAC,EAAE,CACtB,OAAO,EAAE,2BAA2B,KACjC,OAAO,CAAC,0BAA0B,CAAC,CAAC;CAC1C;AAED,wBAAgB,2BAA2B,CACzC,SAAS,GAAE,wBAA6B,GACvC,aAAa,CAAC,qBAAqB,CAAC,CAsBtC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAC3D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACjG;AAED,wBAAgB,wBAAwB,CACtC,SAAS,GAAE,qBAA0B,GACpC,aAAa,CAAC,kBAAkB,CAAC,CAkCnC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC7F;AAED,wBAAgB,sBAAsB,CACpC,SAAS,GAAE,mBAAwB,GAClC,aAAa,CAAC,gBAAgB,CAAC,CAuDjC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;CAClG;AAED,wBAAgB,0BAA0B,CACxC,SAAS,GAAE,uBAA4B,GACtC,aAAa,CAAC,oBAAoB,CAAC,CAiDrC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,OAAO,CAAC,2BAA2B,CAAC,CAAC;CACtG;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,GAAE,yBAA8B,GACxC,aAAa,CAAC,sBAAsB,CAAC,CA+BvC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,sBAAsB,CAAC;CACnF;AAED,wBAAgB,uBAAuB,CACrC,SAAS,GAAE,oBAAyB,GACnC,aAAa,CAAC,iBAAiB,CAAC,CA8ClC;AAED,MAAM,WAAW,wBAAwB;IACvC,sFAAsF;IACtF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACvG;AAED,wBAAgB,2BAA2B,CACzC,SAAS,GAAE,wBAA6B,GACvC,aAAa,CAAC,qBAAqB,CAAC,CA+BtC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC;IAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;CAC9C;AAED,wEAAwE;AACxE,wBAAgB,qBAAqB,CAAC,SAAS,GAAE,sBAA2B,GAAG,SAAS,aAAa,EAAE,CAUtG"}
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../src/channels.ts"],"names":[],"mappings":"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"}