@mono-agent/agent-app 0.3.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.
- package/README.md +24 -10
- package/dist/adapter-send-tools-main.d.ts +3 -0
- package/dist/adapter-send-tools-main.d.ts.map +1 -0
- package/dist/adapter-send-tools-main.js +20 -0
- package/dist/adapter-send-tools-main.js.map +1 -0
- package/dist/adapter-send-tools.d.ts +125 -0
- package/dist/adapter-send-tools.d.ts.map +1 -0
- package/dist/adapter-send-tools.js +629 -0
- package/dist/adapter-send-tools.js.map +1 -0
- package/dist/app-config.d.ts +86 -26
- package/dist/app-config.d.ts.map +1 -1
- package/dist/app-config.js +284 -90
- package/dist/app-config.js.map +1 -1
- package/dist/app.d.ts +51 -20
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +889 -119
- 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 +75 -0
- package/dist/backfill.d.ts.map +1 -0
- package/dist/backfill.js +350 -0
- package/dist/backfill.js.map +1 -0
- package/dist/background.d.ts +8 -5
- package/dist/background.d.ts.map +1 -1
- package/dist/background.js +279 -53
- 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 +346 -0
- package/dist/channel-plugins.js.map +1 -0
- package/dist/channels.d.ts +62 -66
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js +850 -120
- package/dist/channels.js.map +1 -1
- package/dist/cli.d.ts +103 -4
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +984 -112
- 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 +17 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +392 -95
- package/dist/doctor.js.map +1 -1
- package/dist/index.d.ts +14 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- 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/launchd.d.ts +0 -2
- package/dist/launchd.d.ts.map +1 -1
- package/dist/launchd.js +0 -2
- package/dist/launchd.js.map +1 -1
- 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.d.ts +3 -0
- package/dist/memory-recall-main.d.ts.map +1 -0
- package/dist/memory-recall-main.js +30 -0
- package/dist/memory-recall-main.js.map +1 -0
- package/dist/memory-recall.d.ts +147 -0
- package/dist/memory-recall.d.ts.map +1 -0
- package/dist/memory-recall.js +345 -0
- package/dist/memory-recall.js.map +1 -0
- 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 +509 -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/sessions.d.ts +21 -0
- package/dist/sessions.d.ts.map +1 -0
- package/dist/sessions.js +45 -0
- package/dist/sessions.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 +54 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +157 -0
- package/dist/ui.js.map +1 -0
- package/dist/web-command.d.ts +39 -0
- package/dist/web-command.d.ts.map +1 -0
- package/dist/web-command.js +151 -0
- package/dist/web-command.js.map +1 -0
- package/package.json +22 -17
- package/schema/mono-agent.config.schema.json +1686 -0
- package/skills/mono-agent-composer/SKILL.md +38 -12
- package/skills/mono-agent-composer/agents/openai.yaml +4 -0
- package/skills/mono-agent-composer/references/config-blueprint.md +84 -31
- package/skills/mono-agent-composer/references/discovery-questions.md +49 -36
- package/skills/mono-agent-composer/references/feature-coverage.md +26 -19
- package/skills/mono-agent-composer/references/package-map.md +20 -22
- package/skills/mono-agent-composer/references/playbooks.md +209 -0
- package/skills/mono-agent-composer/references/validation.md +14 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-send-tools.js","sourceRoot":"","sources":["../src/adapter-send-tools.ts"],"names":[],"mappings":"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"}
|
package/dist/app-config.d.ts
CHANGED
|
@@ -1,18 +1,7 @@
|
|
|
1
|
+
import type { ChannelConfigInput } from "@mono-agent/agent-contracts";
|
|
1
2
|
import { MonoAgentConfigError } from "@mono-agent/config";
|
|
2
|
-
import type { MonoAgentConfig } from "@mono-agent/config";
|
|
3
|
-
|
|
4
|
-
export declare const consoleFieldGroup: FieldGroup;
|
|
5
|
-
/**
|
|
6
|
-
* Every settings group a config-first host edits through the operator console:
|
|
7
|
-
* the adapter-neutral core config, the console itself, plus one group per
|
|
8
|
-
* communication channel.
|
|
9
|
-
*/
|
|
10
|
-
export declare const MONO_AGENT_APP_FIELD_GROUPS: readonly FieldGroup[];
|
|
11
|
-
export interface MonoAgentAppConfigInput {
|
|
12
|
-
readonly env: Record<string, string | undefined>;
|
|
13
|
-
readonly cwd: string;
|
|
14
|
-
readonly configPath: string;
|
|
15
|
-
}
|
|
3
|
+
import type { MonoAgentConfig, ObservabilityExporterConfig } from "@mono-agent/config";
|
|
4
|
+
export type MonoAgentAppConfigInput = ChannelConfigInput;
|
|
16
5
|
export declare function loadAppCoreConfig(input: MonoAgentAppConfigInput): Promise<MonoAgentConfig>;
|
|
17
6
|
export declare function isAppCoreConfigError(error: unknown): error is MonoAgentConfigError;
|
|
18
7
|
/**
|
|
@@ -25,25 +14,96 @@ export interface AppTraceDefaults {
|
|
|
25
14
|
}
|
|
26
15
|
/**
|
|
27
16
|
* The resolvers below intentionally tolerate an incomplete or invalid config
|
|
28
|
-
* file: observability and
|
|
29
|
-
*
|
|
30
|
-
*
|
|
17
|
+
* file: observability and traceability must stay usable while the user is still
|
|
18
|
+
* fixing their config, so they fall back to defaults instead of throwing on
|
|
19
|
+
* unreadable JSON.
|
|
31
20
|
*/
|
|
32
21
|
export declare function resolveAppArtifactDir(input: MonoAgentAppConfigInput): Promise<string>;
|
|
33
|
-
export interface AppConsoleSettings {
|
|
34
|
-
readonly enabled: boolean;
|
|
35
|
-
readonly port?: number;
|
|
36
|
-
}
|
|
37
22
|
/**
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
23
|
+
* Resolve the durable pi-session store the runtime resumes from, the same way the
|
|
24
|
+
* runtime does: the `MONO_AGENT_PI_SESSIONS_ROOT` env override first, then
|
|
25
|
+
* `providers.piNative.piSessionsRoot` from the config file. Returns undefined when
|
|
26
|
+
* neither is set — that means sessions are kept in-memory only, so there is nothing
|
|
27
|
+
* on disk to purge. Tolerates an unreadable config like the resolvers above.
|
|
42
28
|
*/
|
|
43
|
-
export declare function
|
|
29
|
+
export declare function resolveAppSessionsRoot(input: MonoAgentAppConfigInput): Promise<string | undefined>;
|
|
30
|
+
/**
|
|
31
|
+
* A validated observability exporter resolved for app startup/status/validate.
|
|
32
|
+
* Mirrors {@link ObservabilityExporterConfig} but with the endpoint always
|
|
33
|
+
* resolved (defaults applied) so callers never re-derive it.
|
|
34
|
+
*/
|
|
35
|
+
export type ResolvedExporter = ObservabilityExporterConfig & {
|
|
36
|
+
readonly endpoint: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Resolve observability exporters for the app: env-first
|
|
40
|
+
* (`MONO_AGENT_OBSERVABILITY_EXPORTERS`, JSON array), then the
|
|
41
|
+
* `observability.exporters` block of the config file, then `[]`. Like the other
|
|
42
|
+
* app-level resolvers it tolerates an unreadable config file (returns `[]` so the
|
|
43
|
+
* host stays usable while the user fixes their config), but it DOES throw
|
|
44
|
+
* a {@link MonoAgentConfigError} for a present-but-invalid exporter shape so bad
|
|
45
|
+
* config fails clearly before startup. No reachability probe runs here —
|
|
46
|
+
* reachability is `validate`'s job (Phoenix may start after the agent).
|
|
47
|
+
*/
|
|
48
|
+
export declare function resolveAppObservabilityExporters(input: MonoAgentAppConfigInput): Promise<readonly ResolvedExporter[]>;
|
|
49
|
+
/**
|
|
50
|
+
* Derive the Phoenix app base URL (origin) from an OTLP traces endpoint so the
|
|
51
|
+
* CLI/status can point operators at the trace UI — e.g.
|
|
52
|
+
* `http://127.0.0.1:6006/v1/traces` -> `http://127.0.0.1:6006`. Returns
|
|
53
|
+
* undefined when the endpoint is not a parseable URL. Note: Phoenix does not
|
|
54
|
+
* return a stable per-run trace URL from the OTLP ingest endpoint, so callers
|
|
55
|
+
* print only the app base URL plus run identifiers.
|
|
56
|
+
*/
|
|
57
|
+
export declare function phoenixAppBaseUrl(endpoint: string): string | undefined;
|
|
58
|
+
export declare function describeSensitiveDataExportWarning(endpoint: string): string;
|
|
44
59
|
export declare function resolveAppTraceRegistryDir(input: MonoAgentAppConfigInput): Promise<string>;
|
|
45
60
|
export declare function resolveAppTraceSourceId(input: MonoAgentAppConfigInput, defaults?: AppTraceDefaults): Promise<string>;
|
|
46
61
|
export declare function resolveAppTraceSourceLabel(input: MonoAgentAppConfigInput, defaults?: AppTraceDefaults): Promise<string>;
|
|
47
62
|
export declare function resolveAppTraceHeartbeatMs(input: MonoAgentAppConfigInput): Promise<number>;
|
|
48
63
|
export declare function resolveAppTraceStaleAfterMs(input: MonoAgentAppConfigInput): Promise<number>;
|
|
64
|
+
/**
|
|
65
|
+
* The machine-wide default registry every agent's manifest mirrors into
|
|
66
|
+
* (unless it opts out via `traceability.globalDiscovery: false`), independent
|
|
67
|
+
* of any per-instance `traceability.registryDir` override — this is
|
|
68
|
+
* deliberately NOT read from the local config file, since the whole point is
|
|
69
|
+
* to find agents whose OWN registry is somewhere else. The env override is a
|
|
70
|
+
* seam for tests/ops (relocating the machine-wide default, e.g. a shared
|
|
71
|
+
* mount) and must never be confused with `MONO_AGENT_TRACE_REGISTRY_DIR`
|
|
72
|
+
* (which overrides a single instance's own registry).
|
|
73
|
+
*/
|
|
74
|
+
export declare function resolveGlobalTraceRegistryDir(env: Record<string, string | undefined>): string;
|
|
75
|
+
export declare function resolveAppTraceGlobalDiscovery(input: MonoAgentAppConfigInput): Promise<boolean>;
|
|
76
|
+
/**
|
|
77
|
+
* The root under which a trace registry counts as ephemeral: mirror
|
|
78
|
+
* registration is suppressed for registries below it, so throwaway test/CI
|
|
79
|
+
* runs never pollute the developer's real global registry. Defaults to the
|
|
80
|
+
* real OS tmp directory; the env override is a TEST seam (same pattern as
|
|
81
|
+
* `MONO_AGENT_GLOBAL_TRACE_REGISTRY_DIR`) letting integration tests point the
|
|
82
|
+
* guard elsewhere so a genuine `mkdtemp(tmpdir())` fixture can exercise the
|
|
83
|
+
* mirror-happens path.
|
|
84
|
+
*/
|
|
85
|
+
export declare function resolveTraceTmpdirRoot(env: Record<string, string | undefined>): string;
|
|
86
|
+
/**
|
|
87
|
+
* True when `path` resolves inside `tmpRoot` (default the real OS tmp
|
|
88
|
+
* directory). Exported so the mirror-registration safety guard below is
|
|
89
|
+
* directly unit-testable without touching the filesystem.
|
|
90
|
+
*/
|
|
91
|
+
export declare function isPathUnderTmpdir(path: string, tmpRoot?: string): boolean;
|
|
92
|
+
export interface ShouldMirrorTraceSourceGloballyInput {
|
|
93
|
+
readonly registryDir: string;
|
|
94
|
+
readonly globalRegistryDir: string;
|
|
95
|
+
readonly globalDiscovery: boolean;
|
|
96
|
+
/** Test seam: the tmp root {@link isPathUnderTmpdir} compares against; defaults to the real OS tmp dir. */
|
|
97
|
+
readonly tmpdirRoot?: string;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Gate for the best-effort global-registry mirror (see {@link resolveGlobalTraceRegistryDir}):
|
|
101
|
+
* an agent whose own registry differs from the machine-wide default also
|
|
102
|
+
* registers there, so `mono-agent tui` run from anywhere on the machine finds
|
|
103
|
+
* it — UNLESS the agent opted out (`traceability.globalDiscovery: false`),
|
|
104
|
+
* its own registry already IS the global one (nothing to mirror), or its
|
|
105
|
+
* registry lives under the OS tmp directory (keeps throwaway test/ephemeral
|
|
106
|
+
* runs from polluting the developer's real global registry).
|
|
107
|
+
*/
|
|
108
|
+
export declare function shouldMirrorTraceSourceGlobally(input: ShouldMirrorTraceSourceGloballyInput): boolean;
|
|
49
109
|
//# sourceMappingURL=app-config.d.ts.map
|
package/dist/app-config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-config.d.ts","sourceRoot":"","sources":["../src/app-config.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"app-config.d.ts","sourceRoot":"","sources":["../src/app-config.ts"],"names":[],"mappings":"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"}
|
package/dist/app-config.js
CHANGED
|
@@ -1,55 +1,7 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
|
-
import { homedir } from "node:os";
|
|
3
|
-
import { resolve } from "node:path";
|
|
4
|
-
import {
|
|
5
|
-
import { defineFieldGroup } from "@mono-agent/settings";
|
|
6
|
-
import { a2aFieldGroup } from "@mono-agent/a2a-adapter";
|
|
7
|
-
import { cronFieldGroup } from "@mono-agent/cron-adapter";
|
|
8
|
-
import { openAIApiFieldGroup } from "@mono-agent/openai-api-adapter";
|
|
9
|
-
import { slackFieldGroup } from "@mono-agent/slack-adapter";
|
|
10
|
-
import { telegramFieldGroup } from "@mono-agent/telegram-adapter";
|
|
11
|
-
import { webhookFieldGroup } from "@mono-agent/webhook-adapter";
|
|
12
|
-
import { whatsappFieldGroup } from "@mono-agent/whatsapp-adapter";
|
|
13
|
-
export const consoleFieldGroup = defineFieldGroup({
|
|
14
|
-
id: "console",
|
|
15
|
-
label: "Operator console",
|
|
16
|
-
description: "The local browser console started alongside the agent.",
|
|
17
|
-
fields: [
|
|
18
|
-
{
|
|
19
|
-
id: "console.enabled",
|
|
20
|
-
label: "Enabled",
|
|
21
|
-
description: "Start the loopback operator console with the app (on by default).",
|
|
22
|
-
kind: "switch",
|
|
23
|
-
path: ["console", "enabled"],
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
id: "console.port",
|
|
27
|
-
label: "Port",
|
|
28
|
-
description: "Fixed loopback port for the console; omit (or 0) to pick a free port.",
|
|
29
|
-
kind: "integer",
|
|
30
|
-
min: 0,
|
|
31
|
-
max: 65_535,
|
|
32
|
-
placeholder: "0",
|
|
33
|
-
path: ["console", "port"],
|
|
34
|
-
},
|
|
35
|
-
],
|
|
36
|
-
});
|
|
37
|
-
/**
|
|
38
|
-
* Every settings group a config-first host edits through the operator console:
|
|
39
|
-
* the adapter-neutral core config, the console itself, plus one group per
|
|
40
|
-
* communication channel.
|
|
41
|
-
*/
|
|
42
|
-
export const MONO_AGENT_APP_FIELD_GROUPS = [
|
|
43
|
-
...CORE_AGENT_FIELD_GROUPS,
|
|
44
|
-
consoleFieldGroup,
|
|
45
|
-
telegramFieldGroup,
|
|
46
|
-
slackFieldGroup,
|
|
47
|
-
a2aFieldGroup,
|
|
48
|
-
webhookFieldGroup,
|
|
49
|
-
openAIApiFieldGroup,
|
|
50
|
-
cronFieldGroup,
|
|
51
|
-
whatsappFieldGroup,
|
|
52
|
-
];
|
|
2
|
+
import { homedir, tmpdir } from "node:os";
|
|
3
|
+
import { resolve, sep } from "node:path";
|
|
4
|
+
import { loadMonoAgentConfigWithSources, MonoAgentConfigError, readMonoAgentConfigJson, } from "@mono-agent/config";
|
|
53
5
|
export async function loadAppCoreConfig(input) {
|
|
54
6
|
return await loadMonoAgentConfigWithSources({
|
|
55
7
|
env: input.env,
|
|
@@ -66,9 +18,9 @@ const DEFAULT_TRACE_SOURCE_ID_PREFIX = "mono-agent";
|
|
|
66
18
|
const DEFAULT_TRACE_SOURCE_LABEL = "Mono Agent";
|
|
67
19
|
/**
|
|
68
20
|
* The resolvers below intentionally tolerate an incomplete or invalid config
|
|
69
|
-
* file: observability and
|
|
70
|
-
*
|
|
71
|
-
*
|
|
21
|
+
* file: observability and traceability must stay usable while the user is still
|
|
22
|
+
* fixing their config, so they fall back to defaults instead of throwing on
|
|
23
|
+
* unreadable JSON.
|
|
72
24
|
*/
|
|
73
25
|
export async function resolveAppArtifactDir(input) {
|
|
74
26
|
const envDir = input.env.MONO_AGENT_ARTIFACT_DIR?.trim();
|
|
@@ -88,55 +40,208 @@ export async function resolveAppArtifactDir(input) {
|
|
|
88
40
|
return resolve(input.cwd, ".mono-agent", "artifacts");
|
|
89
41
|
}
|
|
90
42
|
/**
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
43
|
+
* Resolve the durable pi-session store the runtime resumes from, the same way the
|
|
44
|
+
* runtime does: the `MONO_AGENT_PI_SESSIONS_ROOT` env override first, then
|
|
45
|
+
* `providers.piNative.piSessionsRoot` from the config file. Returns undefined when
|
|
46
|
+
* neither is set — that means sessions are kept in-memory only, so there is nothing
|
|
47
|
+
* on disk to purge. Tolerates an unreadable config like the resolvers above.
|
|
95
48
|
*/
|
|
96
|
-
export async function
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
if (port === undefined && record.port !== undefined) {
|
|
109
|
-
port = parseConsolePort(record.port, "console.port");
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
catch {
|
|
114
|
-
// Keep defaults while the user fixes an incomplete or invalid config.
|
|
49
|
+
export async function resolveAppSessionsRoot(input) {
|
|
50
|
+
const envDir = input.env.MONO_AGENT_PI_SESSIONS_ROOT?.trim();
|
|
51
|
+
if (envDir !== undefined && envDir.length > 0) {
|
|
52
|
+
return resolve(input.cwd, envDir);
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
const { json } = await readMonoAgentConfigJson(input.configPath);
|
|
56
|
+
const configDir = typeof json.providers?.piNative?.piSessionsRoot === "string"
|
|
57
|
+
? json.providers.piNative.piSessionsRoot.trim()
|
|
58
|
+
: "";
|
|
59
|
+
if (configDir.length > 0) {
|
|
60
|
+
return resolve(input.cwd, configDir);
|
|
115
61
|
}
|
|
116
62
|
}
|
|
63
|
+
catch {
|
|
64
|
+
// Tolerate an unreadable config; there is nothing to purge if we cannot resolve it.
|
|
65
|
+
}
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
const DEFAULT_PHOENIX_ENDPOINT = "http://127.0.0.1:6006/v1/traces";
|
|
69
|
+
const DEFAULT_PHOENIX_TIMEOUT_MS = 5_000;
|
|
70
|
+
const OBSERVABILITY_EXPORTER_TYPES = ["phoenix"];
|
|
71
|
+
/**
|
|
72
|
+
* Resolve observability exporters for the app: env-first
|
|
73
|
+
* (`MONO_AGENT_OBSERVABILITY_EXPORTERS`, JSON array), then the
|
|
74
|
+
* `observability.exporters` block of the config file, then `[]`. Like the other
|
|
75
|
+
* app-level resolvers it tolerates an unreadable config file (returns `[]` so the
|
|
76
|
+
* host stays usable while the user fixes their config), but it DOES throw
|
|
77
|
+
* a {@link MonoAgentConfigError} for a present-but-invalid exporter shape so bad
|
|
78
|
+
* config fails clearly before startup. No reachability probe runs here —
|
|
79
|
+
* reachability is `validate`'s job (Phoenix may start after the agent).
|
|
80
|
+
*/
|
|
81
|
+
export async function resolveAppObservabilityExporters(input) {
|
|
82
|
+
const envRaw = input.env.MONO_AGENT_OBSERVABILITY_EXPORTERS?.trim();
|
|
83
|
+
if (envRaw !== undefined && envRaw.length > 0) {
|
|
84
|
+
return parseExporters(parseExporterJson(envRaw), "MONO_AGENT_OBSERVABILITY_EXPORTERS");
|
|
85
|
+
}
|
|
86
|
+
let exportersJson;
|
|
87
|
+
try {
|
|
88
|
+
const { json } = await readMonoAgentConfigJson(input.configPath);
|
|
89
|
+
exportersJson = json.observability?.exporters;
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
// Tolerate an unreadable config like the other resolvers.
|
|
93
|
+
return [];
|
|
94
|
+
}
|
|
95
|
+
if (exportersJson === undefined) {
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
98
|
+
return parseExporters(exportersJson, "observability.exporters");
|
|
99
|
+
}
|
|
100
|
+
function parseExporterJson(raw) {
|
|
101
|
+
try {
|
|
102
|
+
return JSON.parse(raw);
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
throw new MonoAgentConfigError("invalid_env", "MONO_AGENT_OBSERVABILITY_EXPORTERS must contain valid JSON.", {
|
|
106
|
+
env: "MONO_AGENT_OBSERVABILITY_EXPORTERS",
|
|
107
|
+
reason: error instanceof Error ? error.message : String(error),
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function parseExporters(value, source) {
|
|
112
|
+
if (!Array.isArray(value)) {
|
|
113
|
+
throw new MonoAgentConfigError("invalid_env", `${source} must be a JSON array.`, { env: source });
|
|
114
|
+
}
|
|
115
|
+
// Only the first exporter is wired (runtime/status/validate read exporters[0]).
|
|
116
|
+
// Reject >1 loudly rather than silently dropping the rest. Mirrors core config.
|
|
117
|
+
if (value.length > 1) {
|
|
118
|
+
throw new MonoAgentConfigError("invalid_env", `${source} supports a single exporter; configure exactly one.`, { env: source });
|
|
119
|
+
}
|
|
120
|
+
return value.map((entry, index) => parseExporter(entry, `${source}[${index}]`));
|
|
121
|
+
}
|
|
122
|
+
function parseExporter(value, source) {
|
|
123
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
124
|
+
throw new MonoAgentConfigError("invalid_env", `${source} must be an object.`, { env: source });
|
|
125
|
+
}
|
|
126
|
+
const record = value;
|
|
127
|
+
// A present-but-non-string type is invalid; an omitted type defaults to the
|
|
128
|
+
// first supported type (phoenix), matching core config normalization so the
|
|
129
|
+
// app resolver and core agree (`validate` no longer rejects what startup accepts).
|
|
130
|
+
if (record.type !== undefined && typeof record.type !== "string") {
|
|
131
|
+
throw new MonoAgentConfigError("invalid_env", `${source}.type must be a string.`, { env: source });
|
|
132
|
+
}
|
|
133
|
+
const rawType = typeof record.type === "string" ? record.type : undefined;
|
|
134
|
+
if (rawType !== undefined && !OBSERVABILITY_EXPORTER_TYPES.includes(rawType)) {
|
|
135
|
+
throw new MonoAgentConfigError("invalid_env", `${source}.type must be one of ${OBSERVABILITY_EXPORTER_TYPES.join(", ")}.`, { env: source });
|
|
136
|
+
}
|
|
137
|
+
const type = (rawType ?? OBSERVABILITY_EXPORTER_TYPES[0]);
|
|
138
|
+
const endpoint = record.endpoint === undefined
|
|
139
|
+
? DEFAULT_PHOENIX_ENDPOINT
|
|
140
|
+
: validateExporterEndpoint(record.endpoint, source);
|
|
141
|
+
const headers = parseExporterHeaders(record.headers, source);
|
|
142
|
+
const includeSensitiveData = record.includeSensitiveData === undefined
|
|
143
|
+
? false
|
|
144
|
+
: typeof record.includeSensitiveData === "boolean"
|
|
145
|
+
? record.includeSensitiveData
|
|
146
|
+
: (() => {
|
|
147
|
+
throw new MonoAgentConfigError("invalid_env", `${source}.includeSensitiveData must be true or false.`, {
|
|
148
|
+
env: source,
|
|
149
|
+
});
|
|
150
|
+
})();
|
|
151
|
+
const timeoutMs = record.timeoutMs === undefined
|
|
152
|
+
? DEFAULT_PHOENIX_TIMEOUT_MS
|
|
153
|
+
: validateExporterTimeout(record.timeoutMs, source);
|
|
154
|
+
const projectName = record.projectName === undefined
|
|
155
|
+
? undefined
|
|
156
|
+
: typeof record.projectName === "string" && record.projectName.trim().length > 0
|
|
157
|
+
? record.projectName
|
|
158
|
+
: (() => {
|
|
159
|
+
throw new MonoAgentConfigError("invalid_env", `${source}.projectName must be a non-empty string.`, {
|
|
160
|
+
env: source,
|
|
161
|
+
});
|
|
162
|
+
})();
|
|
117
163
|
return {
|
|
118
|
-
|
|
119
|
-
|
|
164
|
+
type,
|
|
165
|
+
endpoint,
|
|
166
|
+
...(headers === undefined ? {} : { headers }),
|
|
167
|
+
includeSensitiveData,
|
|
168
|
+
timeoutMs,
|
|
169
|
+
...(projectName === undefined ? {} : { projectName }),
|
|
120
170
|
};
|
|
121
171
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
172
|
+
/**
|
|
173
|
+
* Derive the Phoenix app base URL (origin) from an OTLP traces endpoint so the
|
|
174
|
+
* CLI/status can point operators at the trace UI — e.g.
|
|
175
|
+
* `http://127.0.0.1:6006/v1/traces` -> `http://127.0.0.1:6006`. Returns
|
|
176
|
+
* undefined when the endpoint is not a parseable URL. Note: Phoenix does not
|
|
177
|
+
* return a stable per-run trace URL from the OTLP ingest endpoint, so callers
|
|
178
|
+
* print only the app base URL plus run identifiers.
|
|
179
|
+
*/
|
|
180
|
+
export function phoenixAppBaseUrl(endpoint) {
|
|
181
|
+
try {
|
|
182
|
+
return new URL(endpoint).origin;
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
125
185
|
return undefined;
|
|
126
186
|
}
|
|
127
|
-
|
|
128
|
-
|
|
187
|
+
}
|
|
188
|
+
export function describeSensitiveDataExportWarning(endpoint) {
|
|
189
|
+
return [
|
|
190
|
+
"[WARN] includeSensitiveData=true exports redacted/capped user input, assistant replies,",
|
|
191
|
+
`tool args/results, and system prompt to Phoenix at ${endpoint}; substantive run content leaves this machine.`,
|
|
192
|
+
].join(" ");
|
|
193
|
+
}
|
|
194
|
+
function validateExporterEndpoint(value, source) {
|
|
195
|
+
if (typeof value !== "string" || value.trim().length === 0) {
|
|
196
|
+
throw new MonoAgentConfigError("invalid_env", `${source}.endpoint must be a non-empty string.`, { env: source });
|
|
129
197
|
}
|
|
130
|
-
|
|
131
|
-
|
|
198
|
+
let url;
|
|
199
|
+
try {
|
|
200
|
+
// Shape-only validation — never performs a request (reachability is `validate`'s job).
|
|
201
|
+
url = new URL(value);
|
|
132
202
|
}
|
|
133
|
-
|
|
203
|
+
catch {
|
|
204
|
+
throw new MonoAgentConfigError("invalid_env", `${source}.endpoint must be a valid URL.`, { env: source });
|
|
205
|
+
}
|
|
206
|
+
// The raw endpoint is displayed/persisted in plaintext (start/status/validate,
|
|
207
|
+
// trace-source metadata, transport errors), so reject credential-bearing URL
|
|
208
|
+
// components. Secrets belong in `headers`, which are redacted. Mirrors core config.
|
|
209
|
+
if (url.username !== "" || url.password !== "") {
|
|
210
|
+
throw new MonoAgentConfigError("invalid_env", `${source}.endpoint must not embed credentials (user:pass@); put secrets in headers instead.`, { env: source });
|
|
211
|
+
}
|
|
212
|
+
if (url.search !== "") {
|
|
213
|
+
throw new MonoAgentConfigError("invalid_env", `${source}.endpoint must not contain a query string; put tokens in headers instead.`, { env: source });
|
|
214
|
+
}
|
|
215
|
+
if (url.hash !== "") {
|
|
216
|
+
throw new MonoAgentConfigError("invalid_env", `${source}.endpoint must not contain a URL fragment.`, {
|
|
217
|
+
env: source,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
return value;
|
|
134
221
|
}
|
|
135
|
-
function
|
|
136
|
-
if (value === undefined
|
|
222
|
+
function parseExporterHeaders(value, source) {
|
|
223
|
+
if (value === undefined) {
|
|
137
224
|
return undefined;
|
|
138
225
|
}
|
|
139
|
-
|
|
226
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
227
|
+
throw new MonoAgentConfigError("invalid_env", `${source}.headers must be an object.`, { env: source });
|
|
228
|
+
}
|
|
229
|
+
const out = {};
|
|
230
|
+
for (const [key, headerValue] of Object.entries(value)) {
|
|
231
|
+
if (typeof headerValue !== "string" || headerValue.length === 0) {
|
|
232
|
+
throw new MonoAgentConfigError("invalid_env", `${source}.headers.${key} must be a non-empty string.`, {
|
|
233
|
+
env: source,
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
out[key] = headerValue;
|
|
237
|
+
}
|
|
238
|
+
return out;
|
|
239
|
+
}
|
|
240
|
+
function validateExporterTimeout(value, source) {
|
|
241
|
+
if (typeof value !== "number" || !Number.isInteger(value) || value < 1 || value > 60_000) {
|
|
242
|
+
throw new MonoAgentConfigError("invalid_env", `${source}.timeoutMs must be an integer between 1 and 60000.`, { env: source });
|
|
243
|
+
}
|
|
244
|
+
return value;
|
|
140
245
|
}
|
|
141
246
|
export async function resolveAppTraceRegistryDir(input) {
|
|
142
247
|
const envDir = input.env.MONO_AGENT_TRACE_REGISTRY_DIR?.trim();
|
|
@@ -215,6 +320,95 @@ export async function resolveAppTraceStaleAfterMs(input) {
|
|
|
215
320
|
max: 604_800_000,
|
|
216
321
|
});
|
|
217
322
|
}
|
|
323
|
+
/**
|
|
324
|
+
* The machine-wide default registry every agent's manifest mirrors into
|
|
325
|
+
* (unless it opts out via `traceability.globalDiscovery: false`), independent
|
|
326
|
+
* of any per-instance `traceability.registryDir` override — this is
|
|
327
|
+
* deliberately NOT read from the local config file, since the whole point is
|
|
328
|
+
* to find agents whose OWN registry is somewhere else. The env override is a
|
|
329
|
+
* seam for tests/ops (relocating the machine-wide default, e.g. a shared
|
|
330
|
+
* mount) and must never be confused with `MONO_AGENT_TRACE_REGISTRY_DIR`
|
|
331
|
+
* (which overrides a single instance's own registry).
|
|
332
|
+
*/
|
|
333
|
+
export function resolveGlobalTraceRegistryDir(env) {
|
|
334
|
+
const override = env.MONO_AGENT_GLOBAL_TRACE_REGISTRY_DIR?.trim();
|
|
335
|
+
if (override !== undefined && override.length > 0) {
|
|
336
|
+
return resolve(override);
|
|
337
|
+
}
|
|
338
|
+
return resolve(homedir(), ".mono-agent", "trace-sources");
|
|
339
|
+
}
|
|
340
|
+
export async function resolveAppTraceGlobalDiscovery(input) {
|
|
341
|
+
const envValue = input.env.MONO_AGENT_TRACE_GLOBAL_DISCOVERY?.trim();
|
|
342
|
+
if (envValue !== undefined && envValue.length > 0) {
|
|
343
|
+
return parseTraceBoolean(envValue, "MONO_AGENT_TRACE_GLOBAL_DISCOVERY");
|
|
344
|
+
}
|
|
345
|
+
try {
|
|
346
|
+
const { json } = await readMonoAgentConfigJson(input.configPath);
|
|
347
|
+
const value = json.traceability?.globalDiscovery;
|
|
348
|
+
if (typeof value === "boolean") {
|
|
349
|
+
return value;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
catch {
|
|
353
|
+
// Use the default while the user fixes an incomplete or invalid config.
|
|
354
|
+
}
|
|
355
|
+
return true;
|
|
356
|
+
}
|
|
357
|
+
function parseTraceBoolean(value, name) {
|
|
358
|
+
const normalized = value.trim().toLowerCase();
|
|
359
|
+
if (normalized === "true") {
|
|
360
|
+
return true;
|
|
361
|
+
}
|
|
362
|
+
if (normalized === "false") {
|
|
363
|
+
return false;
|
|
364
|
+
}
|
|
365
|
+
throw new MonoAgentConfigError("invalid_env", `${name} must be true or false.`, { env: name });
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* The root under which a trace registry counts as ephemeral: mirror
|
|
369
|
+
* registration is suppressed for registries below it, so throwaway test/CI
|
|
370
|
+
* runs never pollute the developer's real global registry. Defaults to the
|
|
371
|
+
* real OS tmp directory; the env override is a TEST seam (same pattern as
|
|
372
|
+
* `MONO_AGENT_GLOBAL_TRACE_REGISTRY_DIR`) letting integration tests point the
|
|
373
|
+
* guard elsewhere so a genuine `mkdtemp(tmpdir())` fixture can exercise the
|
|
374
|
+
* mirror-happens path.
|
|
375
|
+
*/
|
|
376
|
+
export function resolveTraceTmpdirRoot(env) {
|
|
377
|
+
const override = env.MONO_AGENT_TRACE_TMPDIR_ROOT?.trim();
|
|
378
|
+
if (override !== undefined && override.length > 0) {
|
|
379
|
+
return resolve(override);
|
|
380
|
+
}
|
|
381
|
+
return resolve(tmpdir());
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* True when `path` resolves inside `tmpRoot` (default the real OS tmp
|
|
385
|
+
* directory). Exported so the mirror-registration safety guard below is
|
|
386
|
+
* directly unit-testable without touching the filesystem.
|
|
387
|
+
*/
|
|
388
|
+
export function isPathUnderTmpdir(path, tmpRoot = tmpdir()) {
|
|
389
|
+
const root = resolve(tmpRoot);
|
|
390
|
+
const target = resolve(path);
|
|
391
|
+
const rootWithSep = root.endsWith(sep) ? root : `${root}${sep}`;
|
|
392
|
+
return target === root || target.startsWith(rootWithSep);
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Gate for the best-effort global-registry mirror (see {@link resolveGlobalTraceRegistryDir}):
|
|
396
|
+
* an agent whose own registry differs from the machine-wide default also
|
|
397
|
+
* registers there, so `mono-agent tui` run from anywhere on the machine finds
|
|
398
|
+
* it — UNLESS the agent opted out (`traceability.globalDiscovery: false`),
|
|
399
|
+
* its own registry already IS the global one (nothing to mirror), or its
|
|
400
|
+
* registry lives under the OS tmp directory (keeps throwaway test/ephemeral
|
|
401
|
+
* runs from polluting the developer's real global registry).
|
|
402
|
+
*/
|
|
403
|
+
export function shouldMirrorTraceSourceGlobally(input) {
|
|
404
|
+
if (!input.globalDiscovery) {
|
|
405
|
+
return false;
|
|
406
|
+
}
|
|
407
|
+
if (resolve(input.registryDir) === resolve(input.globalRegistryDir)) {
|
|
408
|
+
return false;
|
|
409
|
+
}
|
|
410
|
+
return !isPathUnderTmpdir(input.registryDir, input.tmpdirRoot);
|
|
411
|
+
}
|
|
218
412
|
async function resolveTraceInteger(options) {
|
|
219
413
|
const envValue = options.input.env[options.envName]?.trim();
|
|
220
414
|
if (envValue !== undefined && envValue.length > 0) {
|