@mono-agent/agent-app 0.4.0 → 0.5.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 +15 -5
- package/dist/adapter-send-tools-main.js +2 -2
- package/dist/adapter-send-tools-main.js.map +1 -1
- package/dist/adapter-send-tools.d.ts +72 -6
- package/dist/adapter-send-tools.d.ts.map +1 -1
- package/dist/adapter-send-tools.js +413 -38
- package/dist/adapter-send-tools.js.map +1 -1
- package/dist/app-config.d.ts +48 -11
- package/dist/app-config.d.ts.map +1 -1
- package/dist/app-config.js +98 -24
- package/dist/app-config.js.map +1 -1
- package/dist/app.d.ts +10 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +659 -48
- package/dist/app.js.map +1 -1
- package/dist/artifact-retention.d.ts +32 -0
- package/dist/artifact-retention.d.ts.map +1 -0
- package/dist/artifact-retention.js +111 -0
- package/dist/artifact-retention.js.map +1 -0
- package/dist/audit-runs.d.ts +12 -0
- package/dist/audit-runs.d.ts.map +1 -0
- package/dist/audit-runs.js +68 -0
- package/dist/audit-runs.js.map +1 -0
- package/dist/backfill.d.ts +3 -7
- package/dist/backfill.d.ts.map +1 -1
- package/dist/backfill.js +115 -11
- package/dist/backfill.js.map +1 -1
- package/dist/background.d.ts +8 -1
- package/dist/background.d.ts.map +1 -1
- package/dist/background.js +202 -4
- package/dist/background.js.map +1 -1
- package/dist/broadcast-recorder.d.ts +27 -0
- package/dist/broadcast-recorder.d.ts.map +1 -0
- package/dist/broadcast-recorder.js +82 -0
- package/dist/broadcast-recorder.js.map +1 -0
- package/dist/channel-config-view.d.ts +28 -0
- package/dist/channel-config-view.d.ts.map +1 -0
- package/dist/channel-config-view.js +79 -0
- package/dist/channel-config-view.js.map +1 -0
- package/dist/channel-gate.d.ts +22 -0
- package/dist/channel-gate.d.ts.map +1 -0
- package/dist/channel-gate.js +35 -0
- package/dist/channel-gate.js.map +1 -0
- package/dist/channel-plugins.d.ts +39 -0
- package/dist/channel-plugins.d.ts.map +1 -0
- package/dist/channel-plugins.js +372 -0
- package/dist/channel-plugins.js.map +1 -0
- package/dist/channels.d.ts +62 -73
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js +833 -126
- package/dist/channels.js.map +1 -1
- package/dist/cli.d.ts +65 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +755 -30
- package/dist/cli.js.map +1 -1
- package/dist/config-reference.d.ts +24 -0
- package/dist/config-reference.d.ts.map +1 -0
- package/dist/config-reference.js +580 -0
- package/dist/config-reference.js.map +1 -0
- package/dist/configured-agent.d.ts +104 -0
- package/dist/configured-agent.d.ts.map +1 -0
- package/dist/configured-agent.js +578 -0
- package/dist/configured-agent.js.map +1 -0
- package/dist/consumer-contract.d.ts +36 -0
- package/dist/consumer-contract.d.ts.map +1 -0
- package/dist/consumer-contract.js +290 -0
- package/dist/consumer-contract.js.map +1 -0
- package/dist/doctor.d.ts +9 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +352 -55
- package/dist/doctor.js.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +23 -7
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +91 -26
- package/dist/init.js.map +1 -1
- package/dist/install-skill.d.ts +1 -1
- package/dist/install-skill.js +2 -2
- package/dist/install-skill.js.map +1 -1
- package/dist/interaction-bridge.d.ts +72 -0
- package/dist/interaction-bridge.d.ts.map +1 -0
- package/dist/interaction-bridge.js +354 -0
- package/dist/interaction-bridge.js.map +1 -0
- package/dist/memory-command.d.ts +10 -0
- package/dist/memory-command.d.ts.map +1 -0
- package/dist/memory-command.js +649 -0
- package/dist/memory-command.js.map +1 -0
- package/dist/memory-recall-main.js +1 -1
- package/dist/memory-recall-main.js.map +1 -1
- package/dist/memory-recall.d.ts +41 -5
- package/dist/memory-recall.d.ts.map +1 -1
- package/dist/memory-recall.js +75 -5
- package/dist/memory-recall.js.map +1 -1
- package/dist/memory-rituals.d.ts +8 -11
- package/dist/memory-rituals.d.ts.map +1 -1
- package/dist/memory-rituals.js +26 -25
- package/dist/memory-rituals.js.map +1 -1
- package/dist/metrics.d.ts +13 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +105 -0
- package/dist/metrics.js.map +1 -0
- package/dist/notify-destinations.d.ts +23 -0
- package/dist/notify-destinations.d.ts.map +1 -0
- package/dist/notify-destinations.js +79 -0
- package/dist/notify-destinations.js.map +1 -0
- package/dist/posted-message-index.d.ts +61 -0
- package/dist/posted-message-index.d.ts.map +1 -0
- package/dist/posted-message-index.js +178 -0
- package/dist/posted-message-index.js.map +1 -0
- package/dist/proactive-notify.d.ts +32 -0
- package/dist/proactive-notify.d.ts.map +1 -0
- package/dist/proactive-notify.js +62 -0
- package/dist/proactive-notify.js.map +1 -0
- package/dist/recipes/base.d.ts +15 -0
- package/dist/recipes/base.d.ts.map +1 -0
- package/dist/recipes/base.js +51 -0
- package/dist/recipes/base.js.map +1 -0
- package/dist/recipes/catalog.d.ts +4 -0
- package/dist/recipes/catalog.d.ts.map +1 -0
- package/dist/recipes/catalog.js +525 -0
- package/dist/recipes/catalog.js.map +1 -0
- package/dist/recipes/index.d.ts +11 -0
- package/dist/recipes/index.d.ts.map +1 -0
- package/dist/recipes/index.js +14 -0
- package/dist/recipes/index.js.map +1 -0
- package/dist/recipes/types.d.ts +70 -0
- package/dist/recipes/types.d.ts.map +1 -0
- package/dist/recipes/types.js +15 -0
- package/dist/recipes/types.js.map +1 -0
- package/dist/request-model-override.d.ts +67 -0
- package/dist/request-model-override.d.ts.map +1 -0
- package/dist/request-model-override.js +96 -0
- package/dist/request-model-override.js.map +1 -0
- package/dist/runs-health.d.ts +22 -0
- package/dist/runs-health.d.ts.map +1 -0
- package/dist/runs-health.js +144 -0
- package/dist/runs-health.js.map +1 -0
- package/dist/seen-conversations.d.ts +22 -0
- package/dist/seen-conversations.d.ts.map +1 -0
- package/dist/seen-conversations.js +120 -0
- package/dist/seen-conversations.js.map +1 -0
- package/dist/setup.d.ts +29 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +97 -0
- package/dist/setup.js.map +1 -0
- package/dist/trigger-overrides.d.ts +17 -0
- package/dist/trigger-overrides.d.ts.map +1 -0
- package/dist/trigger-overrides.js +30 -0
- package/dist/trigger-overrides.js.map +1 -0
- package/dist/tui-command.d.ts +56 -0
- package/dist/tui-command.d.ts.map +1 -0
- package/dist/tui-command.js +160 -0
- package/dist/tui-command.js.map +1 -0
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +4 -0
- package/dist/ui.js.map +1 -1
- package/dist/web-command.d.ts +45 -0
- package/dist/web-command.d.ts.map +1 -0
- package/dist/web-command.js +152 -0
- package/dist/web-command.js.map +1 -0
- package/package.json +19 -18
- package/schema/mono-agent.config.schema.json +1686 -0
- package/skills/mono-agent-composer/SKILL.md +34 -9
- package/skills/mono-agent-composer/agents/openai.yaml +4 -0
- package/skills/mono-agent-composer/references/config-blueprint.md +92 -49
- package/skills/mono-agent-composer/references/discovery-questions.md +15 -17
- package/skills/mono-agent-composer/references/feature-coverage.md +22 -17
- package/skills/mono-agent-composer/references/package-map.md +19 -21
- package/skills/mono-agent-composer/references/playbooks.md +267 -0
- package/skills/mono-agent-composer/references/validation.md +9 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAe,MAAM,oBAAoB,CAAC;AAEtF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,SAAS,WAAW,EAAE,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAClD;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAwBtG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,SAAS,WAAW,EAAmB,GAAG,MAAM,CAO9F"}
|
package/dist/setup.js
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { WITH_CHANNELS } from "./init.js";
|
|
2
|
+
import { RECIPE_CATALOG } from "./recipes/index.js";
|
|
3
|
+
export async function collectSetupOptions(options) {
|
|
4
|
+
const recipes = options.recipes ?? RECIPE_CATALOG;
|
|
5
|
+
const recipe = options.recipe ?? await promptForRecipe(options.prompt, recipes);
|
|
6
|
+
const recipeInputs = {};
|
|
7
|
+
const secrets = [];
|
|
8
|
+
for (const input of recipe.inputs) {
|
|
9
|
+
if (input.secret === true) {
|
|
10
|
+
secrets.push(secretChecklistItem(input));
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
const defaultValue = input.id === "model" && options.model !== undefined ? options.model : input.default;
|
|
14
|
+
const answer = await options.prompt.question(inputPrompt(input, defaultValue));
|
|
15
|
+
const value = answer.trim();
|
|
16
|
+
if (value.length > 0) {
|
|
17
|
+
recipeInputs[input.id] = value;
|
|
18
|
+
}
|
|
19
|
+
else if (defaultValue !== undefined) {
|
|
20
|
+
recipeInputs[input.id] = defaultValue;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const fallbackModels = await promptForFallbackModels(options.prompt, options.fallbackModels ?? []);
|
|
24
|
+
const withChannels = await promptForWithChannels(options.prompt, options.withChannels ?? []);
|
|
25
|
+
return { recipe, recipeInputs, fallbackModels, withChannels, secrets };
|
|
26
|
+
}
|
|
27
|
+
export function renderSetupRecipeMenu(recipes = RECIPE_CATALOG) {
|
|
28
|
+
return recipes
|
|
29
|
+
.map((recipe, index) => {
|
|
30
|
+
const tags = recipe.tags.length === 0 ? "" : ` (${recipe.tags.join(", ")})`;
|
|
31
|
+
return `${index + 1}. ${recipe.id} [risk: ${recipe.riskLevel}] - ${recipe.title}${tags}`;
|
|
32
|
+
})
|
|
33
|
+
.join("\n");
|
|
34
|
+
}
|
|
35
|
+
function inputPrompt(input, defaultValue) {
|
|
36
|
+
const suffix = defaultValue === undefined ? "" : ` [${defaultValue}]`;
|
|
37
|
+
return `${input.label}${suffix}\n${input.description}\n> `;
|
|
38
|
+
}
|
|
39
|
+
function secretChecklistItem(input) {
|
|
40
|
+
return {
|
|
41
|
+
id: input.id,
|
|
42
|
+
label: input.label,
|
|
43
|
+
description: input.description,
|
|
44
|
+
...(input.envVar === undefined ? {} : { envVar: input.envVar }),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
async function promptForRecipe(prompt, recipes) {
|
|
48
|
+
if (recipes.length === 0) {
|
|
49
|
+
throw new Error("No setup recipes are available.");
|
|
50
|
+
}
|
|
51
|
+
for (;;) {
|
|
52
|
+
const answer = await prompt.question(`Choose a recipe:\n${renderSetupRecipeMenu(recipes)}\nRecipe [1]: `);
|
|
53
|
+
const selected = parseRecipeChoice(answer, recipes);
|
|
54
|
+
if (selected !== undefined) {
|
|
55
|
+
return selected;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function parseRecipeChoice(answer, recipes) {
|
|
60
|
+
const value = answer.trim();
|
|
61
|
+
if (value.length === 0) {
|
|
62
|
+
return recipes[0];
|
|
63
|
+
}
|
|
64
|
+
const index = Number(value);
|
|
65
|
+
if (Number.isInteger(index) && index >= 1 && index <= recipes.length) {
|
|
66
|
+
return recipes[index - 1];
|
|
67
|
+
}
|
|
68
|
+
return recipes.find((recipe) => recipe.id === value);
|
|
69
|
+
}
|
|
70
|
+
async function promptForWithChannels(prompt, defaults) {
|
|
71
|
+
const defaultText = defaults.length === 0 ? "none" : defaults.join(",");
|
|
72
|
+
for (;;) {
|
|
73
|
+
const answer = await prompt.question(`Enable add-on channels (${WITH_CHANNELS.join(", ")}) [${defaultText}]: `);
|
|
74
|
+
const raw = answer.trim();
|
|
75
|
+
if (raw.length === 0) {
|
|
76
|
+
return defaults;
|
|
77
|
+
}
|
|
78
|
+
const parsed = raw.split(",").map((entry) => entry.trim()).filter((entry) => entry.length > 0);
|
|
79
|
+
const invalid = parsed.filter((entry) => !WITH_CHANNELS.includes(entry));
|
|
80
|
+
if (invalid.length === 0) {
|
|
81
|
+
return parsed;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async function promptForFallbackModels(prompt, defaults) {
|
|
86
|
+
const defaultText = defaults.length === 0 ? "none" : defaults.join(",");
|
|
87
|
+
const answer = await prompt.question(`Fallback models, comma-separated [${defaultText}]: `);
|
|
88
|
+
const raw = answer.trim();
|
|
89
|
+
if (raw.length === 0) {
|
|
90
|
+
return defaults;
|
|
91
|
+
}
|
|
92
|
+
if (raw.toLowerCase() === "none") {
|
|
93
|
+
return [];
|
|
94
|
+
}
|
|
95
|
+
return raw.split(",").map((entry) => entry.trim()).filter((entry) => entry.length > 0);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** One enabled trigger (cron job / webhook endpoint) carrying override strings. */
|
|
2
|
+
export interface TriggerOverrideEntry {
|
|
3
|
+
/** Display name for the issue message, e.g. `cron job "digest"`. */
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly model?: string;
|
|
6
|
+
readonly effort?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Validate per-trigger `model`/`effort` overrides with the same parsers the
|
|
10
|
+
* runtime applies at run time (`request-model-override.ts`), but at
|
|
11
|
+
* validate/load time — so a typo'd cron `model` fails `mono-agent validate`
|
|
12
|
+
* before the 3am job silently falls back to the default. At run time an
|
|
13
|
+
* invalid value is still warn-and-ignored; this check only moves the discovery
|
|
14
|
+
* forward, it never changes run behavior.
|
|
15
|
+
*/
|
|
16
|
+
export declare function findTriggerOverrideIssues(entries: readonly TriggerOverrideEntry[]): readonly string[];
|
|
17
|
+
//# sourceMappingURL=trigger-overrides.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-overrides.d.ts","sourceRoot":"","sources":["../src/trigger-overrides.ts"],"names":[],"mappings":"AAGA,mFAAmF;AACnF,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAID;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,SAAS,oBAAoB,EAAE,GACvC,SAAS,MAAM,EAAE,CAkBnB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { EFFORT_LEVELS } from "@mono-agent/config";
|
|
2
|
+
import { parseMonoRuntimeModelReference } from "@mono-agent/runtime-adapter";
|
|
3
|
+
const EFFORT_SET = new Set(EFFORT_LEVELS);
|
|
4
|
+
/**
|
|
5
|
+
* Validate per-trigger `model`/`effort` overrides with the same parsers the
|
|
6
|
+
* runtime applies at run time (`request-model-override.ts`), but at
|
|
7
|
+
* validate/load time — so a typo'd cron `model` fails `mono-agent validate`
|
|
8
|
+
* before the 3am job silently falls back to the default. At run time an
|
|
9
|
+
* invalid value is still warn-and-ignored; this check only moves the discovery
|
|
10
|
+
* forward, it never changes run behavior.
|
|
11
|
+
*/
|
|
12
|
+
export function findTriggerOverrideIssues(entries) {
|
|
13
|
+
const issues = [];
|
|
14
|
+
for (const entry of entries) {
|
|
15
|
+
if (entry.model !== undefined) {
|
|
16
|
+
try {
|
|
17
|
+
parseMonoRuntimeModelReference(entry.model);
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
21
|
+
issues.push(`${entry.name} has an invalid model override "${entry.model}": ${reason}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (entry.effort !== undefined && !EFFORT_SET.has(entry.effort)) {
|
|
25
|
+
issues.push(`${entry.name} has an invalid effort override "${entry.effort}". Valid: ${[...EFFORT_SET].join(", ")}.`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return issues;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=trigger-overrides.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-overrides.js","sourceRoot":"","sources":["../src/trigger-overrides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAU7E,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAwC;IAExC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,8BAA8B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtE,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,mCAAmC,KAAK,CAAC,KAAK,MAAM,MAAM,EAAE,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAChE,MAAM,CAAC,IAAI,CACT,GAAG,KAAK,CAAC,IAAI,oCAAoC,KAAK,CAAC,MAAM,aAAa,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACxG,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { listTraceSources } from "@mono-agent/observability";
|
|
2
|
+
import type { TraceSourceListItem } from "@mono-agent/observability";
|
|
3
|
+
export interface RunTuiOptions {
|
|
4
|
+
readonly configPath: string;
|
|
5
|
+
readonly cwd: string;
|
|
6
|
+
readonly env: Record<string, string | undefined>;
|
|
7
|
+
/** --agent: connect to this label or sourceId directly. */
|
|
8
|
+
readonly agent?: string;
|
|
9
|
+
/** --conversation: conversation id to chat under (default tui-<sourceId>). */
|
|
10
|
+
readonly conversationId?: string;
|
|
11
|
+
}
|
|
12
|
+
/** Test seams: discovery + TUI boot are injectable. */
|
|
13
|
+
export interface RunTuiDeps {
|
|
14
|
+
readonly listSources?: typeof listTraceSources;
|
|
15
|
+
readonly startTui?: (options: Record<string, unknown>) => Promise<{
|
|
16
|
+
waitUntilExit(): Promise<void>;
|
|
17
|
+
}>;
|
|
18
|
+
readonly isTty?: boolean;
|
|
19
|
+
readonly stdout?: {
|
|
20
|
+
write(text: string): void;
|
|
21
|
+
};
|
|
22
|
+
readonly stderr?: {
|
|
23
|
+
write(text: string): void;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export type TuiLaunchPlan = {
|
|
27
|
+
readonly kind: "none";
|
|
28
|
+
readonly message: string;
|
|
29
|
+
} | {
|
|
30
|
+
readonly kind: "error";
|
|
31
|
+
readonly message: string;
|
|
32
|
+
} | {
|
|
33
|
+
readonly kind: "connect";
|
|
34
|
+
readonly source: TraceSourceListItem;
|
|
35
|
+
} | {
|
|
36
|
+
readonly kind: "picker";
|
|
37
|
+
readonly sources: readonly TraceSourceListItem[];
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Pure selection logic for `mono-agent tui`: which running agent to connect
|
|
41
|
+
* to, or whether to open the picker. `registryDirs` names every registry that
|
|
42
|
+
* was consulted (one entry, or two when the configured registry and the
|
|
43
|
+
* machine-wide global one differ) purely for the "nothing found" messaging.
|
|
44
|
+
* Exported for unit tests.
|
|
45
|
+
*/
|
|
46
|
+
export declare function resolveTuiLaunch(sources: readonly TraceSourceListItem[], registryDirs: readonly string[], agentFilter: string | undefined): TuiLaunchPlan;
|
|
47
|
+
/** Extract the tui channel's baseUrl from a manifest's channel summaries. */
|
|
48
|
+
export declare function tuiEndpointOf(source: TraceSourceListItem): string | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* `mono-agent tui`: discover running agents (machine-wide registry), resolve
|
|
51
|
+
* the target's stream endpoint + key, and launch the operator console. Works
|
|
52
|
+
* from any directory — with no local config the registry falls back to
|
|
53
|
+
* ~/.mono-agent/trace-sources.
|
|
54
|
+
*/
|
|
55
|
+
export declare function runTui(options: RunTuiOptions, deps?: RunTuiDeps): Promise<number>;
|
|
56
|
+
//# sourceMappingURL=tui-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-command.d.ts","sourceRoot":"","sources":["../src/tui-command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAwC,MAAM,2BAA2B,CAAC;AACnG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAKrE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAAE,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC,CAAC;IACtG,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACjD;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAClE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAA;CAAE,CAAC;AAElF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,aAAa,CAiCf;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAe7E;AAED;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA2F3F"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { dirname, resolve } from "node:path";
|
|
2
|
+
import { listTraceSources, mergeTraceSources, pruneTraceSources } from "@mono-agent/observability";
|
|
3
|
+
import { loadTuiAdapterConfig } from "@mono-agent/operator-adapter";
|
|
4
|
+
import { resolveAppTraceRegistryDir, resolveGlobalTraceRegistryDir } from "./app-config.js";
|
|
5
|
+
/**
|
|
6
|
+
* Pure selection logic for `mono-agent tui`: which running agent to connect
|
|
7
|
+
* to, or whether to open the picker. `registryDirs` names every registry that
|
|
8
|
+
* was consulted (one entry, or two when the configured registry and the
|
|
9
|
+
* machine-wide global one differ) purely for the "nothing found" messaging.
|
|
10
|
+
* Exported for unit tests.
|
|
11
|
+
*/
|
|
12
|
+
export function resolveTuiLaunch(sources, registryDirs, agentFilter) {
|
|
13
|
+
const alive = sources.filter((source) => source.health !== "stopped");
|
|
14
|
+
const registryLabel = registryDirs.length <= 1 ? `registry: ${registryDirs[0] ?? ""}` : `registries: ${registryDirs.join(", ")}`;
|
|
15
|
+
if (agentFilter !== undefined) {
|
|
16
|
+
const match = alive.find((source) => source.label === agentFilter || source.sourceId === agentFilter);
|
|
17
|
+
if (match === undefined) {
|
|
18
|
+
const available = alive.map((source) => ` ${source.label} (${source.sourceId})`).join("\n");
|
|
19
|
+
return {
|
|
20
|
+
kind: "error",
|
|
21
|
+
message: `No running agent matches \`${agentFilter}\`.\n` +
|
|
22
|
+
(alive.length === 0
|
|
23
|
+
? `No agents are running (${registryLabel}).`
|
|
24
|
+
: `Running agents:\n${available}`),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return { kind: "connect", source: match };
|
|
28
|
+
}
|
|
29
|
+
if (alive.length === 0) {
|
|
30
|
+
return {
|
|
31
|
+
kind: "none",
|
|
32
|
+
message: `No running agents found (${registryLabel}).\n` +
|
|
33
|
+
"Start one with `mono-agent start` in its folder, then run `mono-agent tui` again.",
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
if (alive.length === 1 && alive[0] !== undefined) {
|
|
37
|
+
return { kind: "connect", source: alive[0] };
|
|
38
|
+
}
|
|
39
|
+
return { kind: "picker", sources: alive };
|
|
40
|
+
}
|
|
41
|
+
/** Extract the tui channel's baseUrl from a manifest's channel summaries. */
|
|
42
|
+
export function tuiEndpointOf(source) {
|
|
43
|
+
const channels = source.metadata?.channels;
|
|
44
|
+
if (typeof channels !== "object" || channels === null) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
const tui = channels.tui;
|
|
48
|
+
if (typeof tui !== "object" || tui === null) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
const record = tui;
|
|
52
|
+
// Non-empty required: a malformed manifest with baseUrl "" must fall back to
|
|
53
|
+
// discovery mode rather than attempt a broken connection.
|
|
54
|
+
return record.kind === "running" && typeof record.baseUrl === "string" && record.baseUrl.length > 0
|
|
55
|
+
? record.baseUrl
|
|
56
|
+
: undefined;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* `mono-agent tui`: discover running agents (machine-wide registry), resolve
|
|
60
|
+
* the target's stream endpoint + key, and launch the operator console. Works
|
|
61
|
+
* from any directory — with no local config the registry falls back to
|
|
62
|
+
* ~/.mono-agent/trace-sources.
|
|
63
|
+
*/
|
|
64
|
+
export async function runTui(options, deps = {}) {
|
|
65
|
+
const stdout = deps.stdout ?? process.stdout;
|
|
66
|
+
const stderr = deps.stderr ?? process.stderr;
|
|
67
|
+
if ((deps.isTty ?? process.stdin.isTTY) !== true) {
|
|
68
|
+
stderr.write("mono-agent tui needs an interactive terminal (stdin is not a TTY).\n");
|
|
69
|
+
return 1;
|
|
70
|
+
}
|
|
71
|
+
const configuredRegistryDir = await resolveAppTraceRegistryDir({
|
|
72
|
+
env: options.env,
|
|
73
|
+
cwd: options.cwd,
|
|
74
|
+
configPath: options.configPath,
|
|
75
|
+
});
|
|
76
|
+
const globalRegistryDir = resolveGlobalTraceRegistryDir(options.env);
|
|
77
|
+
const listSources = deps.listSources ?? listTraceSources;
|
|
78
|
+
// Use the registry's own echoed (normalized) dir from here on. The "does this
|
|
79
|
+
// differ from the global registry" decision is made BEFORE querying (against
|
|
80
|
+
// the resolvers' own output), not against the echoed result, since a listing
|
|
81
|
+
// seam is free to echo back whatever registryDir it likes.
|
|
82
|
+
const sameAsGlobal = resolve(configuredRegistryDir) === resolve(globalRegistryDir);
|
|
83
|
+
const primary = await listSources({ registryDir: configuredRegistryDir });
|
|
84
|
+
void pruneTraceSources({ registryDir: primary.registryDir });
|
|
85
|
+
const merged = sameAsGlobal ? undefined : await listSources({ registryDir: globalRegistryDir });
|
|
86
|
+
if (merged !== undefined) {
|
|
87
|
+
void pruneTraceSources({ registryDir: merged.registryDir });
|
|
88
|
+
}
|
|
89
|
+
const sources = merged === undefined ? primary.sources : mergeTraceSources(primary.sources, merged.sources);
|
|
90
|
+
// Every consulted registry, in precedence order. The TUI's discovery view
|
|
91
|
+
// (picker, and its in-TUI `r`/`/agents` refresh) re-lists from these, so it
|
|
92
|
+
// MUST see the full union: an agent present only in its local registry (a
|
|
93
|
+
// globalDiscovery:false opt-out, or one still running a pre-mirror build)
|
|
94
|
+
// stays visible from inside its own directory.
|
|
95
|
+
const registryDirs = merged === undefined ? [primary.registryDir] : [primary.registryDir, merged.registryDir];
|
|
96
|
+
const plan = resolveTuiLaunch(sources, registryDirs, options.agent);
|
|
97
|
+
if (plan.kind === "none") {
|
|
98
|
+
stdout.write(`${plan.message}\n`);
|
|
99
|
+
return 1;
|
|
100
|
+
}
|
|
101
|
+
if (plan.kind === "error") {
|
|
102
|
+
stderr.write(`${plan.message}\n`);
|
|
103
|
+
return 1;
|
|
104
|
+
}
|
|
105
|
+
// Lazy: the TUI (and pi-tui) load only when this command actually runs.
|
|
106
|
+
const startTui = deps.startTui ??
|
|
107
|
+
(async (tuiOptions) => {
|
|
108
|
+
const { startMonoAgentTui } = await import("@mono-agent/tui");
|
|
109
|
+
return startMonoAgentTui(tuiOptions);
|
|
110
|
+
});
|
|
111
|
+
const common = {
|
|
112
|
+
title: "mono-agent",
|
|
113
|
+
env: options.env,
|
|
114
|
+
...(options.conversationId === undefined ? {} : { conversationId: options.conversationId }),
|
|
115
|
+
};
|
|
116
|
+
if (plan.kind === "picker") {
|
|
117
|
+
const handle = await startTui({ ...common, discovery: { registryDirs } });
|
|
118
|
+
await handle.waitUntilExit();
|
|
119
|
+
return 0;
|
|
120
|
+
}
|
|
121
|
+
const source = plan.source;
|
|
122
|
+
const baseUrl = tuiEndpointOf(source);
|
|
123
|
+
const apiKey = await resolveAgentApiKey(source, options.env);
|
|
124
|
+
const handle = await startTui({
|
|
125
|
+
...common,
|
|
126
|
+
...(baseUrl === undefined
|
|
127
|
+
? // No stream endpoint (tui channel disabled): replay/config still work.
|
|
128
|
+
{ discovery: { registryDirs } }
|
|
129
|
+
: { connection: { baseUrl, ...(apiKey === undefined ? {} : { apiKey }) } }),
|
|
130
|
+
instance: {
|
|
131
|
+
label: source.label,
|
|
132
|
+
artifactDir: source.artifactDir,
|
|
133
|
+
...(source.configPath === undefined ? {} : { configPath: source.configPath }),
|
|
134
|
+
},
|
|
135
|
+
...(options.conversationId === undefined ? { conversationId: `tui-${source.sourceId}` } : {}),
|
|
136
|
+
subtitle: source.configPath === undefined ? source.sourceId : dirname(resolve(source.configPath)),
|
|
137
|
+
});
|
|
138
|
+
if (baseUrl === undefined) {
|
|
139
|
+
stdout.write(`Agent \`${source.label}\` has no tui stream endpoint (channel disabled?) — opening in discovery mode; replay/config remain available.\n`);
|
|
140
|
+
}
|
|
141
|
+
await handle.waitUntilExit();
|
|
142
|
+
return 0;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* The registry never carries secrets: read `tui.apiKey` through the adapter's
|
|
146
|
+
* own loader against the agent's config file (json→env layering included).
|
|
147
|
+
*/
|
|
148
|
+
async function resolveAgentApiKey(source, env) {
|
|
149
|
+
if (source.configPath === undefined) {
|
|
150
|
+
return env.MONO_AGENT_TUI_API_KEY;
|
|
151
|
+
}
|
|
152
|
+
try {
|
|
153
|
+
const config = await loadTuiAdapterConfig({ env, jsonPath: source.configPath });
|
|
154
|
+
return config.apiKey;
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
return env.MONO_AGENT_TUI_API_KEY;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=tui-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-command.js","sourceRoot":"","sources":["../src/tui-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AA2B5F;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAuC,EACvC,YAA+B,EAC/B,WAA+B;IAE/B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IACtE,MAAM,aAAa,GACjB,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7G,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CACtB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW,CAC5E,CAAC;QACF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7F,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,OAAO,EACL,8BAA8B,WAAW,OAAO;oBAChD,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;wBACjB,CAAC,CAAC,0BAA0B,aAAa,IAAI;wBAC7C,CAAC,CAAC,oBAAoB,SAAS,EAAE,CAAC;aACvC,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,OAAO,EACL,4BAA4B,aAAa,MAAM;gBAC/C,mFAAmF;SACtF,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5C,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,aAAa,CAAC,MAA2B;IACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC3C,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GAAI,QAAoC,CAAC,GAAG,CAAC;IACtD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,6EAA6E;IAC7E,0DAA0D;IAC1D,OAAO,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QACjG,CAAC,CAAC,MAAM,CAAC,OAAO;QAChB,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAsB,EAAE,OAAmB,EAAE;IACxE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAC7C,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;QACrF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,qBAAqB,GAAG,MAAM,0BAA0B,CAAC;QAC7D,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,gBAAgB,CAAC;IAEzD,8EAA8E;IAC9E,6EAA6E;IAC7E,6EAA6E;IAC7E,2DAA2D;IAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,qBAAqB,CAAC,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC1E,KAAK,iBAAiB,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAChG,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,KAAK,iBAAiB,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5G,0EAA0E;IAC1E,4EAA4E;IAC5E,0EAA0E;IAC1E,0EAA0E;IAC1E,+CAA+C;IAC/C,MAAM,YAAY,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9G,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAEpE,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,wEAAwE;IACxE,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ;QACb,CAAC,KAAK,EAAE,UAAmC,EAAE,EAAE;YAC7C,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAC9D,OAAO,iBAAiB,CAAC,UAAmB,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IAEL,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,YAAY;QACnB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;KAC5F,CAAC;IAEF,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QAC1E,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;QAC7B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;QAC5B,GAAG,MAAM;QACT,GAAG,CAAC,OAAO,KAAK,SAAS;YACvB,CAAC,CAAC,uEAAuE;gBACvE,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,EAAE;YACjC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7E,QAAQ,EAAE;YACR,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;SAC9E;QACD,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,QAAQ,EAAE,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KAClG,CAAC,CAAC;IACH,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CACV,WAAW,MAAM,CAAC,KAAK,kHAAkH,CAC1I,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;IAC7B,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAC/B,MAA2B,EAC3B,GAAuC;IAEvC,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC,sBAAsB,CAAC;IACpC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAChF,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC,sBAAsB,CAAC;IACpC,CAAC;AACH,CAAC"}
|
package/dist/ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAuBpD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,KAAK,EAAE,OAAO,GAAG,SAAS,GACzB,OAAO,CAYT;AAID,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAMD,kFAAkF;AAClF,eAAO,MAAM,KAAK;0BACH,MAAM,KAAG,MAAM;yBAChB,MAAM,KAAG,MAAM;yBACf,MAAM,KAAG,MAAM;2BACb,MAAM,KAAG,MAAM;4BACd,MAAM,KAAG,MAAM;0BACjB,MAAM,KAAG,MAAM;0BACf,MAAM,KAAG,MAAM;CACpB,CAAC;AAgBX;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAGtD;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAC5D,MAAM,SAAI,GACT,MAAM,CASR;AAKD;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ3C;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAuBpD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,KAAK,EAAE,OAAO,GAAG,SAAS,GACzB,OAAO,CAYT;AAID,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAMD,kFAAkF;AAClF,eAAO,MAAM,KAAK;0BACH,MAAM,KAAG,MAAM;yBAChB,MAAM,KAAG,MAAM;yBACf,MAAM,KAAG,MAAM;2BACb,MAAM,KAAG,MAAM;4BACd,MAAM,KAAG,MAAM;0BACjB,MAAM,KAAG,MAAM;0BACf,MAAM,KAAG,MAAM;CACpB,CAAC;AAgBX;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAGtD;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAC5D,MAAM,SAAI,GACT,MAAM,CASR;AAKD;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ3C;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkBjD;AAED,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWlD;AAED,2DAA2D;AAC3D,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,qEAAqE;AACrE,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,0DAA0D;AAC1D,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5C"}
|
package/dist/ui.js
CHANGED
|
@@ -115,6 +115,10 @@ export function channelBadge(kind) {
|
|
|
115
115
|
if (kind === "disabled") {
|
|
116
116
|
return badge("disabled");
|
|
117
117
|
}
|
|
118
|
+
if (kind === "degraded") {
|
|
119
|
+
// Still serving, transport self-recovering — a warning, not an error.
|
|
120
|
+
return badge("waiting");
|
|
121
|
+
}
|
|
118
122
|
if (/error|fail|crash/u.test(kind)) {
|
|
119
123
|
return badge("error");
|
|
120
124
|
}
|
package/dist/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { startSessionWebServer } from "@mono-agent/session-web";
|
|
2
|
+
import type { SessionWebServerHandle } from "@mono-agent/session-web";
|
|
3
|
+
export declare const DEFAULT_WEB_PORT = 4599;
|
|
4
|
+
export interface RunWebOptions {
|
|
5
|
+
readonly configPath: string;
|
|
6
|
+
readonly cwd: string;
|
|
7
|
+
readonly env: Record<string, string | undefined>;
|
|
8
|
+
/** --host: bind address (default 127.0.0.1). */
|
|
9
|
+
readonly host?: string;
|
|
10
|
+
/** --port: bind port (default 4599). */
|
|
11
|
+
readonly port?: number;
|
|
12
|
+
/** --no-open: suppress the browser launch (default: open). */
|
|
13
|
+
readonly open?: boolean;
|
|
14
|
+
/** --allow-non-loopback: bind a non-loopback host (refused by default). */
|
|
15
|
+
readonly allowNonLoopback?: boolean;
|
|
16
|
+
/** --include-memory: show memory-maintenance runs in the web operator surface. */
|
|
17
|
+
readonly includeMemory?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* --max-runs: per-instance cap on the in-memory live-fold working set (and the
|
|
20
|
+
* initial snapshot size). Disk paging remains the full history source, so this
|
|
21
|
+
* only bounds memory; it does not limit how far "Load older" can reach.
|
|
22
|
+
*/
|
|
23
|
+
readonly maxRunsPerInstance?: number;
|
|
24
|
+
}
|
|
25
|
+
/** Test seams: server boot, browser open, and the shutdown wait are injectable. */
|
|
26
|
+
export interface RunWebDeps {
|
|
27
|
+
readonly startServer?: typeof startSessionWebServer;
|
|
28
|
+
readonly openUrl?: (url: string) => void;
|
|
29
|
+
readonly waitForShutdown?: () => Promise<void>;
|
|
30
|
+
readonly onReady?: (handle: SessionWebServerHandle) => void;
|
|
31
|
+
readonly stdout?: {
|
|
32
|
+
write(text: string): void;
|
|
33
|
+
};
|
|
34
|
+
readonly stderr?: {
|
|
35
|
+
write(text: string): void;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* `mono-agent web`: discover every running agent on this machine (trace-source
|
|
40
|
+
* registry, the same mechanism as `mono-agent tui`) and serve the read-only
|
|
41
|
+
* Session Recorder PWA that visualises their runs live. Unlike `tui`, it shows
|
|
42
|
+
* ALL instances at once and needs no TTY — it runs until interrupted.
|
|
43
|
+
*/
|
|
44
|
+
export declare function runWeb(options: RunWebOptions, deps?: RunWebDeps): Promise<number>;
|
|
45
|
+
//# sourceMappingURL=web-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-command.d.ts","sourceRoot":"","sources":["../src/web-command.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAKtE,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,gDAAgD;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,2EAA2E;IAC3E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,kFAAkF;IAClF,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,mFAAmF;AACnF,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,qBAAqB,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAChD,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACjD;AAED;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAsD3F"}
|