@mono-agent/agent-app 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -0
- package/dist/app-config.d.ts +36 -0
- package/dist/app-config.d.ts.map +1 -0
- package/dist/app-config.js +164 -0
- package/dist/app-config.js.map +1 -0
- package/dist/app.d.ts +60 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +416 -0
- package/dist/app.js.map +1 -0
- package/dist/channels.d.ts +110 -0
- package/dist/channels.d.ts.map +1 -0
- package/dist/channels.js +304 -0
- package/dist/channels.js.map +1 -0
- package/dist/cli.d.ts +14 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +240 -0
- package/dist/cli.js.map +1 -0
- package/dist/doctor.d.ts +24 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +181 -0
- package/dist/doctor.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +30 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +126 -0
- package/dist/init.js.map +1 -0
- package/package.json +47 -0
package/dist/channels.js
ADDED
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import { resolve } from "node:path";
|
|
2
|
+
import { A2AConsumerError, A2AProviderError, startA2AProvider, } from "@mono-agent/a2a-adapter";
|
|
3
|
+
import { loadA2AAdapterConfig } from "@mono-agent/a2a-adapter";
|
|
4
|
+
import { CronAdapterError, loadCronAdapterConfig, startCronAdapter } from "@mono-agent/cron-adapter";
|
|
5
|
+
import { loadOpenAIApiAdapterConfig, OpenAIApiAdapterError, startOpenAIApiAdapter, } from "@mono-agent/openai-api-adapter";
|
|
6
|
+
import { loadSlackAdapterConfig, SlackAdapterConfigError, startSlackAdapter, } from "@mono-agent/slack-adapter";
|
|
7
|
+
import { loadTelegramAdapterConfig, TelegramAdapter, TelegramAdapterConfigError, TelegramBotApiClient, TelegramLongPoller, } from "@mono-agent/telegram-adapter";
|
|
8
|
+
import { loadWebhookAdapterConfig, startWebhookAdapter, WebhookAdapterError, } from "@mono-agent/webhook-adapter";
|
|
9
|
+
import { loadWhatsAppAdapterConfig, startWhatsAppAdapter, WhatsAppAdapterConfigError, } from "@mono-agent/whatsapp-adapter";
|
|
10
|
+
export function createTelegramChannelDriver(overrides = {}) {
|
|
11
|
+
return {
|
|
12
|
+
id: "telegram",
|
|
13
|
+
label: "Telegram",
|
|
14
|
+
async loadConfig(input) {
|
|
15
|
+
return await loadTelegramAdapterConfig({ env: input.env, jsonPath: input.configPath });
|
|
16
|
+
},
|
|
17
|
+
isConfigError(error) {
|
|
18
|
+
return error instanceof TelegramAdapterConfigError;
|
|
19
|
+
},
|
|
20
|
+
async start(input) {
|
|
21
|
+
const api = overrides.api ?? new TelegramBotApiClient({ token: input.config.botToken });
|
|
22
|
+
const adapter = new TelegramAdapter(telegramAdapterOptions(api, input));
|
|
23
|
+
const pollerOptions = {
|
|
24
|
+
api,
|
|
25
|
+
adapter,
|
|
26
|
+
deleteWebhookOnStart: true,
|
|
27
|
+
allowedUpdates: ["message"],
|
|
28
|
+
...(input.logger === undefined ? {} : { logger: input.logger }),
|
|
29
|
+
};
|
|
30
|
+
const poller = overrides.pollerFactory?.(pollerOptions) ?? new TelegramLongPoller(pollerOptions);
|
|
31
|
+
const controller = new AbortController();
|
|
32
|
+
const promise = poller.start({ signal: controller.signal }).catch((error) => {
|
|
33
|
+
if (!controller.signal.aborted) {
|
|
34
|
+
input.onFailure(reasonOf(error));
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
return {
|
|
38
|
+
summary: {},
|
|
39
|
+
async stop() {
|
|
40
|
+
controller.abort();
|
|
41
|
+
await promise.catch(() => undefined);
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export function createSlackChannelDriver(overrides = {}) {
|
|
48
|
+
return {
|
|
49
|
+
id: "slack",
|
|
50
|
+
label: "Slack",
|
|
51
|
+
async loadConfig(input) {
|
|
52
|
+
return await loadSlackAdapterConfig({ env: input.env, jsonPath: input.configPath });
|
|
53
|
+
},
|
|
54
|
+
isConfigError(error) {
|
|
55
|
+
return error instanceof SlackAdapterConfigError;
|
|
56
|
+
},
|
|
57
|
+
async start(input) {
|
|
58
|
+
const startAdapter = overrides.startAdapter ?? startSlackAdapter;
|
|
59
|
+
const result = await startAdapter({
|
|
60
|
+
botToken: input.config.botToken,
|
|
61
|
+
appToken: input.config.appToken,
|
|
62
|
+
allowedChannelIds: input.config.allowedChannelIds,
|
|
63
|
+
allowAllChannels: input.config.allowAllChannels,
|
|
64
|
+
botUserIds: input.config.botUserIds,
|
|
65
|
+
mentionTextAliases: input.config.mentionTextAliases,
|
|
66
|
+
stripMentionText: input.config.stripMentionText,
|
|
67
|
+
responder: input.responder,
|
|
68
|
+
...(input.logger === undefined ? {} : { logger: input.logger }),
|
|
69
|
+
...(overrides.createApi === undefined ? {} : { createApi: overrides.createApi }),
|
|
70
|
+
...(overrides.webSocketFactory === undefined ? {} : { webSocketFactory: overrides.webSocketFactory }),
|
|
71
|
+
});
|
|
72
|
+
return {
|
|
73
|
+
summary: {},
|
|
74
|
+
stop: () => result.stop(),
|
|
75
|
+
};
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export function createA2AChannelDriver(overrides = {}) {
|
|
80
|
+
return {
|
|
81
|
+
id: "a2a",
|
|
82
|
+
label: "A2A",
|
|
83
|
+
async loadConfig(input) {
|
|
84
|
+
return await loadA2AAdapterConfig({ env: input.env, jsonPath: input.configPath });
|
|
85
|
+
},
|
|
86
|
+
isConfigError(error) {
|
|
87
|
+
return error instanceof A2AProviderError || error instanceof A2AConsumerError;
|
|
88
|
+
},
|
|
89
|
+
disabledReason(config) {
|
|
90
|
+
return config.provider.enabled ? undefined : "A2A provider is disabled.";
|
|
91
|
+
},
|
|
92
|
+
waitingReason(config) {
|
|
93
|
+
if (config.agent === undefined || config.skill === undefined) {
|
|
94
|
+
return "A2A provider requires agent and skill configuration.";
|
|
95
|
+
}
|
|
96
|
+
return undefined;
|
|
97
|
+
},
|
|
98
|
+
async start(input) {
|
|
99
|
+
const config = input.config;
|
|
100
|
+
if (config.agent === undefined || config.skill === undefined) {
|
|
101
|
+
throw new A2AProviderError("missing_required_config", "A2A provider requires agent and skill configuration.");
|
|
102
|
+
}
|
|
103
|
+
const providerFactory = overrides.providerFactory ?? startA2AProvider;
|
|
104
|
+
const provider = await providerFactory({
|
|
105
|
+
host: config.provider.host,
|
|
106
|
+
port: config.provider.port,
|
|
107
|
+
...(config.provider.publicBaseUrl === undefined ? {} : { publicBaseUrl: config.provider.publicBaseUrl }),
|
|
108
|
+
allowNonLoopback: config.provider.allowNonLoopback,
|
|
109
|
+
requireBearer: config.provider.requireBearer,
|
|
110
|
+
...(config.provider.bearerToken === undefined ? {} : { bearerToken: config.provider.bearerToken }),
|
|
111
|
+
responder: input.responder,
|
|
112
|
+
agent: {
|
|
113
|
+
name: config.agent.name,
|
|
114
|
+
description: config.agent.description,
|
|
115
|
+
version: config.agent.version,
|
|
116
|
+
...(config.agent.providerOrganization === undefined || config.agent.providerUrl === undefined
|
|
117
|
+
? {}
|
|
118
|
+
: {
|
|
119
|
+
provider: {
|
|
120
|
+
organization: config.agent.providerOrganization,
|
|
121
|
+
url: config.agent.providerUrl,
|
|
122
|
+
},
|
|
123
|
+
}),
|
|
124
|
+
},
|
|
125
|
+
skill: config.skill,
|
|
126
|
+
...(input.logger === undefined ? {} : { logger: input.logger }),
|
|
127
|
+
});
|
|
128
|
+
return {
|
|
129
|
+
summary: { agentCardUrl: provider.agentCardUrl },
|
|
130
|
+
stop: () => provider.stop(),
|
|
131
|
+
};
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
export function createWebhookChannelDriver(overrides = {}) {
|
|
136
|
+
return {
|
|
137
|
+
id: "webhook",
|
|
138
|
+
label: "Webhook",
|
|
139
|
+
async loadConfig(input) {
|
|
140
|
+
return await loadWebhookAdapterConfig({ env: input.env, jsonPath: input.configPath });
|
|
141
|
+
},
|
|
142
|
+
isConfigError(error) {
|
|
143
|
+
return error instanceof WebhookAdapterError;
|
|
144
|
+
},
|
|
145
|
+
disabledReason(config) {
|
|
146
|
+
return config.enabled ? undefined : "Webhook adapter is disabled.";
|
|
147
|
+
},
|
|
148
|
+
async start(input) {
|
|
149
|
+
const adapterFactory = overrides.adapterFactory ?? startWebhookAdapter;
|
|
150
|
+
const adapter = await adapterFactory({
|
|
151
|
+
host: input.config.host,
|
|
152
|
+
port: input.config.port,
|
|
153
|
+
path: input.config.path,
|
|
154
|
+
allowNonLoopback: input.config.allowNonLoopback,
|
|
155
|
+
defaultMode: input.config.defaultMode,
|
|
156
|
+
retentionMs: input.config.retentionMs,
|
|
157
|
+
maxStoredRequests: input.config.maxStoredRequests,
|
|
158
|
+
responder: input.responder,
|
|
159
|
+
...(input.logger === undefined ? {} : { logger: input.logger }),
|
|
160
|
+
});
|
|
161
|
+
return {
|
|
162
|
+
summary: { invokeUrl: adapter.invokeUrl },
|
|
163
|
+
stop: () => adapter.stop(),
|
|
164
|
+
};
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
export function createOpenAIApiChannelDriver(overrides = {}) {
|
|
169
|
+
return {
|
|
170
|
+
id: "openai-api",
|
|
171
|
+
label: "OpenAI API",
|
|
172
|
+
async loadConfig(input) {
|
|
173
|
+
return await loadOpenAIApiAdapterConfig({ env: input.env, jsonPath: input.configPath });
|
|
174
|
+
},
|
|
175
|
+
isConfigError(error) {
|
|
176
|
+
return error instanceof OpenAIApiAdapterError;
|
|
177
|
+
},
|
|
178
|
+
disabledReason(config) {
|
|
179
|
+
return config.enabled ? undefined : "OpenAI API adapter is disabled.";
|
|
180
|
+
},
|
|
181
|
+
async start(input) {
|
|
182
|
+
const adapterFactory = overrides.adapterFactory ?? startOpenAIApiAdapter;
|
|
183
|
+
const adapter = await adapterFactory({
|
|
184
|
+
host: input.config.host,
|
|
185
|
+
port: input.config.port,
|
|
186
|
+
basePath: input.config.basePath,
|
|
187
|
+
allowNonLoopback: input.config.allowNonLoopback,
|
|
188
|
+
...(input.config.apiKey === undefined ? {} : { apiKey: input.config.apiKey }),
|
|
189
|
+
modelId: input.config.modelId,
|
|
190
|
+
responder: input.responder,
|
|
191
|
+
...(input.logger === undefined ? {} : { logger: input.logger }),
|
|
192
|
+
});
|
|
193
|
+
return {
|
|
194
|
+
summary: { baseUrl: adapter.baseUrl },
|
|
195
|
+
stop: () => adapter.stop(),
|
|
196
|
+
};
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
export function createCronChannelDriver(overrides = {}) {
|
|
201
|
+
return {
|
|
202
|
+
id: "cron",
|
|
203
|
+
label: "Cron",
|
|
204
|
+
async loadConfig(input) {
|
|
205
|
+
return await loadCronAdapterConfig({ env: input.env, jsonPath: input.configPath });
|
|
206
|
+
},
|
|
207
|
+
isConfigError(error) {
|
|
208
|
+
return error instanceof CronAdapterError;
|
|
209
|
+
},
|
|
210
|
+
disabledReason(config) {
|
|
211
|
+
const enabledJobs = config.jobs.filter((job) => job.enabled);
|
|
212
|
+
return enabledJobs.length > 0 ? undefined : "Cron adapter has no enabled jobs.";
|
|
213
|
+
},
|
|
214
|
+
async start(input) {
|
|
215
|
+
const jobs = input.config.jobs.filter((job) => job.enabled);
|
|
216
|
+
const adapterFactory = overrides.adapterFactory ?? startCronAdapter;
|
|
217
|
+
const adapter = adapterFactory({
|
|
218
|
+
responder: input.responder,
|
|
219
|
+
jobs: jobs.map((job) => ({
|
|
220
|
+
id: job.id,
|
|
221
|
+
expression: job.expression,
|
|
222
|
+
timezone: job.timezone,
|
|
223
|
+
prompt: job.prompt,
|
|
224
|
+
...(job.conversationId === undefined ? {} : { conversationId: job.conversationId }),
|
|
225
|
+
})),
|
|
226
|
+
onResult: (result) => {
|
|
227
|
+
const level = result.kind === "failed" ? "error" : result.kind === "skipped" ? "warn" : "info";
|
|
228
|
+
input.logger?.[level]?.("Cron job finished.", { result });
|
|
229
|
+
},
|
|
230
|
+
...(input.logger === undefined ? {} : { logger: input.logger }),
|
|
231
|
+
});
|
|
232
|
+
return {
|
|
233
|
+
summary: { jobs: adapter.jobs.length },
|
|
234
|
+
async stop() {
|
|
235
|
+
adapter.stop();
|
|
236
|
+
},
|
|
237
|
+
};
|
|
238
|
+
},
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
export function createWhatsAppChannelDriver(overrides = {}) {
|
|
242
|
+
return {
|
|
243
|
+
id: "whatsapp",
|
|
244
|
+
label: "WhatsApp",
|
|
245
|
+
async loadConfig(input) {
|
|
246
|
+
return await loadWhatsAppAdapterConfig({ env: input.env, jsonPath: input.configPath });
|
|
247
|
+
},
|
|
248
|
+
isConfigError(error) {
|
|
249
|
+
return error instanceof WhatsAppAdapterConfigError;
|
|
250
|
+
},
|
|
251
|
+
async start(input) {
|
|
252
|
+
const startAdapter = overrides.startAdapter ?? startWhatsAppAdapter;
|
|
253
|
+
const result = await startAdapter({
|
|
254
|
+
authDir: overrides.authDir ?? resolve(input.cwd, ".mono-agent", "whatsapp-auth"),
|
|
255
|
+
config: input.config,
|
|
256
|
+
responder: input.responder,
|
|
257
|
+
...(input.logger === undefined ? {} : { logger: input.logger }),
|
|
258
|
+
onQr: (qr) => {
|
|
259
|
+
input.logger?.info?.("WhatsApp login QR code received; scan it with the WhatsApp app.", { qr });
|
|
260
|
+
},
|
|
261
|
+
...(overrides.socketFactory === undefined ? {} : { createSocket: overrides.socketFactory }),
|
|
262
|
+
});
|
|
263
|
+
return {
|
|
264
|
+
summary: {},
|
|
265
|
+
stop: () => result.stop(),
|
|
266
|
+
};
|
|
267
|
+
},
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
/** Every channel the app can drive, in startup/status display order. */
|
|
271
|
+
export function defaultChannelDrivers(overrides = {}) {
|
|
272
|
+
return [
|
|
273
|
+
createTelegramChannelDriver(overrides.telegram),
|
|
274
|
+
createSlackChannelDriver(overrides.slack),
|
|
275
|
+
createA2AChannelDriver(overrides.a2a),
|
|
276
|
+
createWebhookChannelDriver(overrides.webhook),
|
|
277
|
+
createOpenAIApiChannelDriver(overrides.openaiApi),
|
|
278
|
+
createCronChannelDriver(overrides.cron),
|
|
279
|
+
createWhatsAppChannelDriver(overrides.whatsapp),
|
|
280
|
+
];
|
|
281
|
+
}
|
|
282
|
+
function telegramAdapterOptions(api, input) {
|
|
283
|
+
return {
|
|
284
|
+
api,
|
|
285
|
+
responder: input.responder,
|
|
286
|
+
allowedChatIds: [...input.config.allowedChatIds],
|
|
287
|
+
allowAllChats: input.config.allowAllChats,
|
|
288
|
+
stream: {
|
|
289
|
+
initialStatusText: "Agent is thinking...",
|
|
290
|
+
editDebounceMs: 350,
|
|
291
|
+
},
|
|
292
|
+
messages: {
|
|
293
|
+
welcomeText: "Agent is online. Send a message to run the configured runtime.",
|
|
294
|
+
helpText: "Send a message to talk to the agent. Use /cancel to stop an in-flight response.",
|
|
295
|
+
unauthorizedText: "This chat is not allowlisted for this agent.",
|
|
296
|
+
errorText: "The agent failed honestly; check the local artifact summary for details.",
|
|
297
|
+
},
|
|
298
|
+
...(input.logger === undefined ? {} : { logger: input.logger }),
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
function reasonOf(error) {
|
|
302
|
+
return error instanceof Error ? error.message : String(error);
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=channels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channels.js","sourceRoot":"","sources":["../src/channels.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
interface ParsedCliArgs {
|
|
3
|
+
readonly command: "init" | "validate" | "start" | "help";
|
|
4
|
+
readonly configPath?: string;
|
|
5
|
+
readonly port?: number;
|
|
6
|
+
readonly model?: string;
|
|
7
|
+
readonly fallbackModels?: readonly string[];
|
|
8
|
+
readonly memory?: "markdown" | "journal";
|
|
9
|
+
readonly noConsole: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function parseCliArgs(argv: readonly string[]): ParsedCliArgs;
|
|
12
|
+
export declare function runCli(argv: readonly string[]): Promise<number>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAUA,UAAU,aAAa;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,aAAa,CAiEnE;AA4BD,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBrE"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { basename, resolve } from "node:path";
|
|
3
|
+
import process from "node:process";
|
|
4
|
+
import { startMonoAgentApp } from "./app.js";
|
|
5
|
+
import { validateMonoAgentFolder } from "./doctor.js";
|
|
6
|
+
import { initMonoAgentFolder } from "./init.js";
|
|
7
|
+
export function parseCliArgs(argv) {
|
|
8
|
+
const [command, ...rest] = argv;
|
|
9
|
+
if (command === undefined || command === "help" || command === "--help" || command === "-h") {
|
|
10
|
+
return { command: "help", noConsole: false };
|
|
11
|
+
}
|
|
12
|
+
if (command !== "init" && command !== "validate" && command !== "start") {
|
|
13
|
+
throw new Error(`Unknown command \`${command}\`. Expected init, validate, or start.`);
|
|
14
|
+
}
|
|
15
|
+
let configPath;
|
|
16
|
+
let port;
|
|
17
|
+
let model;
|
|
18
|
+
let fallbackModels;
|
|
19
|
+
let memory;
|
|
20
|
+
let noConsole = false;
|
|
21
|
+
for (let i = 0; i < rest.length; i += 1) {
|
|
22
|
+
const flag = rest[i];
|
|
23
|
+
switch (flag) {
|
|
24
|
+
case "--config":
|
|
25
|
+
configPath = requireValue(rest, ++i, flag);
|
|
26
|
+
break;
|
|
27
|
+
case "--port": {
|
|
28
|
+
const raw = requireValue(rest, ++i, flag);
|
|
29
|
+
const parsed = Number(raw);
|
|
30
|
+
if (!Number.isInteger(parsed) || parsed < 0 || parsed > 65_535) {
|
|
31
|
+
throw new Error("--port must be an integer between 0 and 65535.");
|
|
32
|
+
}
|
|
33
|
+
port = parsed;
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
case "--model":
|
|
37
|
+
model = requireValue(rest, ++i, flag);
|
|
38
|
+
break;
|
|
39
|
+
case "--fallback-models":
|
|
40
|
+
fallbackModels = requireValue(rest, ++i, flag)
|
|
41
|
+
.split(",")
|
|
42
|
+
.map((entry) => entry.trim())
|
|
43
|
+
.filter((entry) => entry.length > 0);
|
|
44
|
+
break;
|
|
45
|
+
case "--memory": {
|
|
46
|
+
const raw = requireValue(rest, ++i, flag);
|
|
47
|
+
if (raw !== "markdown" && raw !== "journal") {
|
|
48
|
+
throw new Error("--memory must be markdown or journal.");
|
|
49
|
+
}
|
|
50
|
+
memory = raw;
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case "--no-console":
|
|
54
|
+
noConsole = true;
|
|
55
|
+
break;
|
|
56
|
+
default:
|
|
57
|
+
throw new Error(`Unknown flag \`${flag}\` for \`mono-agent ${command}\`.`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
command,
|
|
62
|
+
...(configPath === undefined ? {} : { configPath }),
|
|
63
|
+
...(port === undefined ? {} : { port }),
|
|
64
|
+
...(model === undefined ? {} : { model }),
|
|
65
|
+
...(fallbackModels === undefined ? {} : { fallbackModels }),
|
|
66
|
+
...(memory === undefined ? {} : { memory }),
|
|
67
|
+
noConsole,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function requireValue(args, index, flag) {
|
|
71
|
+
const value = args[index];
|
|
72
|
+
if (value === undefined || value.startsWith("--")) {
|
|
73
|
+
throw new Error(`Flag ${flag} requires a value.`);
|
|
74
|
+
}
|
|
75
|
+
return value;
|
|
76
|
+
}
|
|
77
|
+
const HELP_TEXT = `mono-agent — config-first agent host
|
|
78
|
+
|
|
79
|
+
Usage:
|
|
80
|
+
mono-agent init [--model <ref>] [--fallback-models <csv>] [--memory markdown|journal]
|
|
81
|
+
Scaffold mono-agent.config.json, IDENTITY.md, and .mono-agent/ in the
|
|
82
|
+
current folder. Existing files are never overwritten.
|
|
83
|
+
|
|
84
|
+
mono-agent validate [--config <path>]
|
|
85
|
+
Load every config section and report what would run, wait, or fail.
|
|
86
|
+
|
|
87
|
+
mono-agent start [--config <path>] [--port <n>] [--no-console]
|
|
88
|
+
Build the responder and start every configured channel plus the local
|
|
89
|
+
operator console and traceability.
|
|
90
|
+
|
|
91
|
+
Model references look like claude:claude-sonnet-4-6, codex:gpt-5.5, or
|
|
92
|
+
pi:<provider>:<model> (e.g. pi:ollama:gemma4:31b).
|
|
93
|
+
`;
|
|
94
|
+
export async function runCli(argv) {
|
|
95
|
+
let args;
|
|
96
|
+
try {
|
|
97
|
+
args = parseCliArgs(argv);
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n\n${HELP_TEXT}`);
|
|
101
|
+
return 2;
|
|
102
|
+
}
|
|
103
|
+
switch (args.command) {
|
|
104
|
+
case "help":
|
|
105
|
+
process.stdout.write(HELP_TEXT);
|
|
106
|
+
return 0;
|
|
107
|
+
case "init":
|
|
108
|
+
return await runInit(args);
|
|
109
|
+
case "validate":
|
|
110
|
+
return await runValidate(args);
|
|
111
|
+
case "start":
|
|
112
|
+
return await runStart(args);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
async function runInit(args) {
|
|
116
|
+
const result = await initMonoAgentFolder({
|
|
117
|
+
dir: process.cwd(),
|
|
118
|
+
...(args.model === undefined ? {} : { model: args.model }),
|
|
119
|
+
...(args.fallbackModels === undefined ? {} : { fallbackModels: args.fallbackModels }),
|
|
120
|
+
...(args.memory === undefined ? {} : { memory: args.memory }),
|
|
121
|
+
});
|
|
122
|
+
for (const path of result.created) {
|
|
123
|
+
process.stdout.write(`created ${path}\n`);
|
|
124
|
+
}
|
|
125
|
+
for (const path of result.skipped) {
|
|
126
|
+
process.stdout.write(`kept ${path}\n`);
|
|
127
|
+
}
|
|
128
|
+
if (result.knowledgeFiles.length > 0) {
|
|
129
|
+
process.stdout.write(`\nIdentity references existing knowledge: ${result.knowledgeFiles.join(", ")}\n`);
|
|
130
|
+
}
|
|
131
|
+
process.stdout.write("\nNext steps:\n" +
|
|
132
|
+
` 1. Edit ${result.configPath} (model, channels, skills, memory, sandbox).\n` +
|
|
133
|
+
" 2. mono-agent validate\n" +
|
|
134
|
+
" 3. mono-agent start\n");
|
|
135
|
+
return 0;
|
|
136
|
+
}
|
|
137
|
+
async function runValidate(args) {
|
|
138
|
+
const cwd = process.cwd();
|
|
139
|
+
const report = await validateMonoAgentFolder({
|
|
140
|
+
env: process.env,
|
|
141
|
+
cwd,
|
|
142
|
+
configPath: resolve(cwd, args.configPath ?? "mono-agent.config.json"),
|
|
143
|
+
});
|
|
144
|
+
for (const section of report.sections) {
|
|
145
|
+
process.stdout.write(`${statusIcon(section.status)} ${section.label}\n`);
|
|
146
|
+
for (const detail of section.details) {
|
|
147
|
+
process.stdout.write(` ${detail}\n`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
process.stdout.write(report.ok ? "\nConfig is ready to start.\n" : "\nFix the errors above, then re-run mono-agent validate.\n");
|
|
151
|
+
return report.ok ? 0 : 1;
|
|
152
|
+
}
|
|
153
|
+
function statusIcon(status) {
|
|
154
|
+
switch (status) {
|
|
155
|
+
case "ok":
|
|
156
|
+
return "[ok] ";
|
|
157
|
+
case "waiting":
|
|
158
|
+
return "[waiting] ";
|
|
159
|
+
case "disabled":
|
|
160
|
+
return "[off] ";
|
|
161
|
+
case "error":
|
|
162
|
+
return "[error] ";
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
async function runStart(args) {
|
|
166
|
+
const app = await startMonoAgentApp({
|
|
167
|
+
cwd: process.cwd(),
|
|
168
|
+
...(args.configPath === undefined ? {} : { configPath: args.configPath }),
|
|
169
|
+
...(args.port === undefined ? {} : { operatorConsolePort: args.port }),
|
|
170
|
+
...(args.noConsole ? { operatorConsole: false } : {}),
|
|
171
|
+
logger: consoleLogger(),
|
|
172
|
+
});
|
|
173
|
+
printAppStatus(app);
|
|
174
|
+
installSignalHandlers(app);
|
|
175
|
+
return 0;
|
|
176
|
+
}
|
|
177
|
+
function printAppStatus(app) {
|
|
178
|
+
if (app.operatorConsole !== undefined) {
|
|
179
|
+
process.stdout.write(`operator console ${app.operatorConsole.appUrl}\n`);
|
|
180
|
+
}
|
|
181
|
+
process.stdout.write(`config ${app.configPath}\n`);
|
|
182
|
+
const trace = app.traceabilityStatus;
|
|
183
|
+
process.stdout.write(trace.kind === "running"
|
|
184
|
+
? `traceability running (source ${trace.sourceId})\n`
|
|
185
|
+
: `traceability ${trace.kind}: ${trace.reason}\n`);
|
|
186
|
+
for (const [id, status] of app.channelStatuses()) {
|
|
187
|
+
process.stdout.write(`${id.padEnd(17)} ${describeChannelStatus(status)}\n`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
function describeChannelStatus(status) {
|
|
191
|
+
if (status.kind === "running") {
|
|
192
|
+
const facts = Object.entries(status.summary)
|
|
193
|
+
.map(([key, value]) => `${key}=${String(value)}`)
|
|
194
|
+
.join(" ");
|
|
195
|
+
return facts.length === 0 ? "running" : `running (${facts})`;
|
|
196
|
+
}
|
|
197
|
+
return `${status.kind}: ${status.reason}`;
|
|
198
|
+
}
|
|
199
|
+
function installSignalHandlers(app) {
|
|
200
|
+
let stopping = false;
|
|
201
|
+
const stop = async (signal) => {
|
|
202
|
+
if (stopping) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
stopping = true;
|
|
206
|
+
process.stdout.write(`\nReceived ${signal}; stopping mono agent app...\n`);
|
|
207
|
+
await app.stop();
|
|
208
|
+
process.exit(0);
|
|
209
|
+
};
|
|
210
|
+
process.on("SIGINT", () => void stop("SIGINT"));
|
|
211
|
+
process.on("SIGTERM", () => void stop("SIGTERM"));
|
|
212
|
+
}
|
|
213
|
+
function consoleLogger() {
|
|
214
|
+
return {
|
|
215
|
+
info(message, metadata) {
|
|
216
|
+
process.stdout.write(`${message}${metadata === undefined ? "" : ` ${JSON.stringify(metadata)}`}\n`);
|
|
217
|
+
},
|
|
218
|
+
warn(message, metadata) {
|
|
219
|
+
process.stderr.write(`${message}${metadata === undefined ? "" : ` ${JSON.stringify(metadata)}`}\n`);
|
|
220
|
+
},
|
|
221
|
+
error(message, metadata) {
|
|
222
|
+
process.stderr.write(`${message}${metadata === undefined ? "" : ` ${JSON.stringify(metadata)}`}\n`);
|
|
223
|
+
},
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
const cliEntryName = process.argv[1] === undefined ? undefined : basename(process.argv[1]);
|
|
227
|
+
const isDirectCliInvocation = cliEntryName === "cli.js" || cliEntryName === "mono-agent";
|
|
228
|
+
if (isDirectCliInvocation) {
|
|
229
|
+
runCli(process.argv.slice(2))
|
|
230
|
+
.then((code) => {
|
|
231
|
+
if (code !== 0) {
|
|
232
|
+
process.exitCode = code;
|
|
233
|
+
}
|
|
234
|
+
})
|
|
235
|
+
.catch((error) => {
|
|
236
|
+
process.stderr.write(`${error instanceof Error ? error.stack ?? error.message : String(error)}\n`);
|
|
237
|
+
process.exitCode = 1;
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { MonoAgentAppConfigInput } from "./app-config.js";
|
|
2
|
+
import type { ChannelDriver } from "./channels.js";
|
|
3
|
+
export type ValidationStatus = "ok" | "waiting" | "disabled" | "error";
|
|
4
|
+
export interface ValidationSection {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly label: string;
|
|
7
|
+
readonly status: ValidationStatus;
|
|
8
|
+
readonly details: readonly string[];
|
|
9
|
+
}
|
|
10
|
+
export interface ValidationReport {
|
|
11
|
+
readonly sections: readonly ValidationSection[];
|
|
12
|
+
/** True when no section reports an error. Waiting/disabled channels are fine. */
|
|
13
|
+
readonly ok: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface ValidateMonoAgentFolderOptions extends MonoAgentAppConfigInput {
|
|
16
|
+
readonly drivers?: readonly ChannelDriver[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Loads every config section the app would use at start and reports it
|
|
20
|
+
* per-section, so an engineer can see exactly what would run, wait, or fail —
|
|
21
|
+
* before starting anything.
|
|
22
|
+
*/
|
|
23
|
+
export declare function validateMonoAgentFolder(options: ValidateMonoAgentFolderOptions): Promise<ValidationReport>;
|
|
24
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAChD,iFAAiF;IACjF,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,8BAA+B,SAAQ,uBAAuB;IAC7E,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAC7C;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,gBAAgB,CAAC,CA+B3B"}
|