@mono-agent/agent-app 0.8.0 → 0.9.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 +71 -22
- package/dist/account-home.d.ts +6 -0
- package/dist/account-home.d.ts.map +1 -0
- package/dist/account-home.js +9 -0
- package/dist/account-home.js.map +1 -0
- package/dist/app-config.d.ts +3 -1
- package/dist/app-config.d.ts.map +1 -1
- package/dist/app-config.js +8 -5
- package/dist/app-config.js.map +1 -1
- package/dist/app.d.ts +25 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +237 -16
- package/dist/app.js.map +1 -1
- package/dist/background-environment.d.ts +16 -0
- package/dist/background-environment.d.ts.map +1 -0
- package/dist/background-environment.js +68 -0
- package/dist/background-environment.js.map +1 -0
- package/dist/background-runtime.d.ts +62 -0
- package/dist/background-runtime.d.ts.map +1 -0
- package/dist/background-runtime.js +1115 -0
- package/dist/background-runtime.js.map +1 -0
- package/dist/background-snapshot-key.d.ts +13 -0
- package/dist/background-snapshot-key.d.ts.map +1 -0
- package/dist/background-snapshot-key.js +194 -0
- package/dist/background-snapshot-key.js.map +1 -0
- package/dist/background-snapshot.d.ts +96 -0
- package/dist/background-snapshot.d.ts.map +1 -0
- package/dist/background-snapshot.js +450 -0
- package/dist/background-snapshot.js.map +1 -0
- package/dist/background-worker-lease.d.ts +39 -0
- package/dist/background-worker-lease.d.ts.map +1 -0
- package/dist/background-worker-lease.js +356 -0
- package/dist/background-worker-lease.js.map +1 -0
- package/dist/background.d.ts +74 -2
- package/dist/background.d.ts.map +1 -1
- package/dist/background.js +815 -73
- package/dist/background.js.map +1 -1
- package/dist/channel-plugins.d.ts +2 -0
- package/dist/channel-plugins.d.ts.map +1 -1
- package/dist/channel-plugins.js +8 -0
- package/dist/channel-plugins.js.map +1 -1
- package/dist/channels.d.ts +10 -0
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js +71 -3
- package/dist/channels.js.map +1 -1
- package/dist/cli.d.ts +12 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +341 -63
- package/dist/cli.js.map +1 -1
- package/dist/config-reference.d.ts.map +1 -1
- package/dist/config-reference.js +253 -0
- package/dist/config-reference.js.map +1 -1
- package/dist/configuration-proposal-tool.d.ts +7 -0
- package/dist/configuration-proposal-tool.d.ts.map +1 -1
- package/dist/configuration-proposal-tool.js +55 -6
- package/dist/configuration-proposal-tool.js.map +1 -1
- package/dist/configured-agent.d.ts +4 -0
- package/dist/configured-agent.d.ts.map +1 -1
- package/dist/configured-agent.js +15 -0
- package/dist/configured-agent.js.map +1 -1
- package/dist/continuation-command.d.ts +15 -0
- package/dist/continuation-command.d.ts.map +1 -0
- package/dist/continuation-command.js +170 -0
- package/dist/continuation-command.js.map +1 -0
- package/dist/continuation-config.d.ts +25 -0
- package/dist/continuation-config.d.ts.map +1 -0
- package/dist/continuation-config.js +236 -0
- package/dist/continuation-config.js.map +1 -0
- package/dist/continuation-service.d.ts +99 -0
- package/dist/continuation-service.d.ts.map +1 -0
- package/dist/continuation-service.js +1313 -0
- package/dist/continuation-service.js.map +1 -0
- package/dist/continuation-store.d.ts +104 -0
- package/dist/continuation-store.d.ts.map +1 -0
- package/dist/continuation-store.js +688 -0
- package/dist/continuation-store.js.map +1 -0
- package/dist/continuations.d.ts +167 -0
- package/dist/continuations.d.ts.map +1 -0
- package/dist/continuations.js +71 -0
- package/dist/continuations.js.map +1 -0
- package/dist/doctor.d.ts +2 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +426 -27
- package/dist/doctor.js.map +1 -1
- package/dist/first-run-managed-memory.d.ts.map +1 -1
- package/dist/first-run-managed-memory.js +66 -3
- package/dist/first-run-managed-memory.js.map +1 -1
- package/dist/first-run-readiness.d.ts.map +1 -1
- package/dist/first-run-readiness.js +2 -31
- package/dist/first-run-readiness.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +7 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +7 -2
- package/dist/init.js.map +1 -1
- package/dist/launchd.d.ts +16 -6
- package/dist/launchd.d.ts.map +1 -1
- package/dist/launchd.js +30 -15
- package/dist/launchd.js.map +1 -1
- package/dist/local-configuration.d.ts +61 -18
- package/dist/local-configuration.d.ts.map +1 -1
- package/dist/local-configuration.js +530 -145
- package/dist/local-configuration.js.map +1 -1
- package/dist/managed-runtime-packages.d.ts +9 -0
- package/dist/managed-runtime-packages.d.ts.map +1 -0
- package/dist/managed-runtime-packages.js +56 -0
- package/dist/managed-runtime-packages.js.map +1 -0
- package/dist/memory-embedding-service.d.ts +33 -0
- package/dist/memory-embedding-service.d.ts.map +1 -0
- package/dist/memory-embedding-service.js +207 -0
- package/dist/memory-embedding-service.js.map +1 -0
- package/dist/memory-recall.d.ts +5 -4
- package/dist/memory-recall.d.ts.map +1 -1
- package/dist/memory-recall.js +21 -8
- package/dist/memory-recall.js.map +1 -1
- package/dist/modules/catalog.d.ts.map +1 -1
- package/dist/modules/catalog.js +91 -9
- package/dist/modules/catalog.js.map +1 -1
- package/dist/notify-runtime.d.ts +26 -0
- package/dist/notify-runtime.d.ts.map +1 -0
- package/dist/notify-runtime.js +27 -0
- package/dist/notify-runtime.js.map +1 -0
- package/dist/notify-tool.d.ts +51 -0
- package/dist/notify-tool.d.ts.map +1 -0
- package/dist/notify-tool.js +182 -0
- package/dist/notify-tool.js.map +1 -0
- package/dist/proactive-notify.d.ts +2 -0
- package/dist/proactive-notify.d.ts.map +1 -1
- package/dist/proactive-notify.js +1 -0
- package/dist/proactive-notify.js.map +1 -1
- package/dist/process-incarnation.d.ts +23 -0
- package/dist/process-incarnation.d.ts.map +1 -0
- package/dist/process-incarnation.js +208 -0
- package/dist/process-incarnation.js.map +1 -0
- package/dist/project-skills.d.ts +1 -1
- package/dist/project-skills.js +6 -6
- 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/sandbox-manager.d.ts +17 -0
- package/dist/sandbox-manager.d.ts.map +1 -1
- package/dist/sandbox-manager.js +673 -127
- package/dist/sandbox-manager.js.map +1 -1
- 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/supermemory-plugin.d.ts +5 -3
- package/dist/supermemory-plugin.d.ts.map +1 -1
- package/dist/supermemory-plugin.js +11 -5
- package/dist/supermemory-plugin.js.map +1 -1
- package/dist/tui-command.d.ts +43 -2
- package/dist/tui-command.d.ts.map +1 -1
- package/dist/tui-command.js +261 -27
- package/dist/tui-command.js.map +1 -1
- package/dist/wizard/answers.d.ts +4 -4
- package/dist/wizard/answers.d.ts.map +1 -1
- package/dist/wizard/answers.js +4 -21
- package/dist/wizard/answers.js.map +1 -1
- package/dist/wizard/run.d.ts.map +1 -1
- package/dist/wizard/run.js +162 -5
- package/dist/wizard/run.js.map +1 -1
- package/package.json +15 -15
- package/schema/mono-agent.config.schema.json +206 -3
- package/skills/mono-agent-composer/SKILL.md +4 -4
- package/skills/mono-agent-composer/references/config-blueprint.md +6 -6
- package/skills/mono-agent-composer/references/discovery-questions.md +25 -10
- package/skills/mono-agent-composer/references/feature-coverage.md +7 -7
- package/skills/mono-agent-composer/references/package-map.md +1 -1
- package/skills/mono-agent-composer/references/validation.md +2 -2
package/dist/launchd.d.ts
CHANGED
|
@@ -23,9 +23,16 @@ export interface PlistInput {
|
|
|
23
23
|
readonly configPath: string;
|
|
24
24
|
readonly cwd: string;
|
|
25
25
|
readonly envFile?: string;
|
|
26
|
+
/** Secret-free approved input identity, encoded for the internal worker. */
|
|
27
|
+
readonly expectedBackgroundSnapshot: string;
|
|
26
28
|
readonly stdoutPath: string;
|
|
27
29
|
readonly stderrPath: string;
|
|
28
|
-
|
|
30
|
+
/** Deliberately allowlisted, non-secret worker environment. */
|
|
31
|
+
readonly environment: Readonly<Record<string, string>>;
|
|
32
|
+
}
|
|
33
|
+
export interface LaunchdServiceInfo {
|
|
34
|
+
readonly loaded: boolean;
|
|
35
|
+
readonly pid?: number;
|
|
29
36
|
}
|
|
30
37
|
/**
|
|
31
38
|
* A stable, launchd-legal label derived from the resolved config path. The
|
|
@@ -37,9 +44,10 @@ export declare function deriveLaunchdLabel(configPath: string): string;
|
|
|
37
44
|
export declare function launchdPathsFor(label: string, home?: string): LaunchdPaths;
|
|
38
45
|
export declare function escapeXml(value: string): string;
|
|
39
46
|
/**
|
|
40
|
-
* The plist runs
|
|
41
|
-
*
|
|
42
|
-
*
|
|
47
|
+
* The plist runs the blocking worker through `/usr/bin/env -i`. Clearing the
|
|
48
|
+
* launchd job's inherited environment before Node starts is important: Node
|
|
49
|
+
* startup variables such as NODE_OPTIONS execute before cli.ts can sanitise
|
|
50
|
+
* process.env. Only the explicit, non-secret operational allowlist is restored.
|
|
43
51
|
*/
|
|
44
52
|
export declare function buildPlistXml(input: PlistInput): string;
|
|
45
53
|
/**
|
|
@@ -53,10 +61,12 @@ export declare function serviceTarget(label: string, uid: number): string;
|
|
|
53
61
|
export declare function makeLaunchctlRunner(): LaunchctlRunner;
|
|
54
62
|
/** True when the service is bootstrapped in the user's gui domain. */
|
|
55
63
|
export declare function isLoaded(runner: LaunchctlRunner, label: string, uid: number): Promise<boolean>;
|
|
64
|
+
/** Read the launchd-owned process identity from `launchctl print`. */
|
|
65
|
+
export declare function launchdServiceInfo(runner: LaunchctlRunner, label: string, uid: number): Promise<LaunchdServiceInfo>;
|
|
66
|
+
/** Parse only launchd's top-level `pid = N` field; never infer a pid from noise. */
|
|
67
|
+
export declare function parseLaunchdServicePid(output: string): number | undefined;
|
|
56
68
|
/** Bootstrap (load + RunAtLoad-launch) the plist. Caller tolerates "already bootstrapped". */
|
|
57
69
|
export declare function bootstrap(runner: LaunchctlRunner, plistPath: string, uid: number): Promise<LaunchctlResult>;
|
|
58
|
-
/** Kill and restart an already-loaded service, picking up a rewritten plist. */
|
|
59
|
-
export declare function kickstartRestart(runner: LaunchctlRunner, label: string, uid: number): Promise<LaunchctlResult>;
|
|
60
70
|
/**
|
|
61
71
|
* Remove the service from the domain. Sends SIGTERM and — unlike a plain kill —
|
|
62
72
|
* prevents KeepAlive from relaunching it. Caller tolerates "not loaded".
|
package/dist/launchd.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchd.d.ts","sourceRoot":"","sources":["../src/launchd.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"launchd.d.ts","sourceRoot":"","sources":["../src/launchd.ts"],"names":[],"mappings":"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"}
|
package/dist/launchd.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
import { createHash } from "node:crypto";
|
|
3
|
-
import { homedir } from "node:os";
|
|
4
3
|
import { basename, dirname, resolve } from "node:path";
|
|
5
4
|
import process from "node:process";
|
|
5
|
+
import { accountHomeDirectory } from "./account-home.js";
|
|
6
6
|
const LABEL_PREFIX = "com.mono-agent";
|
|
7
7
|
const MAX_FOLDER_SEGMENT = 40;
|
|
8
8
|
const FALLBACK_PATH = "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/homebrew/bin";
|
|
@@ -25,7 +25,7 @@ export function deriveLaunchdLabel(configPath) {
|
|
|
25
25
|
const hash = createHash("sha256").update(resolved).digest("hex").slice(0, 8);
|
|
26
26
|
return `${LABEL_PREFIX}.${folder.length === 0 ? "agent" : folder}-${hash}`;
|
|
27
27
|
}
|
|
28
|
-
export function launchdPathsFor(label, home =
|
|
28
|
+
export function launchdPathsFor(label, home = accountHomeDirectory()) {
|
|
29
29
|
const launchAgentsDir = resolve(home, "Library", "LaunchAgents");
|
|
30
30
|
const logDir = resolve(home, ".mono-agent", "logs");
|
|
31
31
|
return {
|
|
@@ -45,12 +45,19 @@ export function escapeXml(value) {
|
|
|
45
45
|
.replace(/'/gu, "'");
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
48
|
-
* The plist runs
|
|
49
|
-
*
|
|
50
|
-
*
|
|
48
|
+
* The plist runs the blocking worker through `/usr/bin/env -i`. Clearing the
|
|
49
|
+
* launchd job's inherited environment before Node starts is important: Node
|
|
50
|
+
* startup variables such as NODE_OPTIONS execute before cli.ts can sanitise
|
|
51
|
+
* process.env. Only the explicit, non-secret operational allowlist is restored.
|
|
51
52
|
*/
|
|
52
53
|
export function buildPlistXml(input) {
|
|
54
|
+
const environmentArguments = Object.entries(input.environment)
|
|
55
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
56
|
+
.map(([key, value]) => `${key}=${value}`);
|
|
53
57
|
const programArguments = [
|
|
58
|
+
"/usr/bin/env",
|
|
59
|
+
"-i",
|
|
60
|
+
...environmentArguments,
|
|
54
61
|
input.nodePath,
|
|
55
62
|
input.cliPath,
|
|
56
63
|
"start",
|
|
@@ -58,6 +65,8 @@ export function buildPlistXml(input) {
|
|
|
58
65
|
"--config",
|
|
59
66
|
input.configPath,
|
|
60
67
|
...(input.envFile === undefined ? [] : ["--env-file", input.envFile]),
|
|
68
|
+
"--expected-background-snapshot",
|
|
69
|
+
input.expectedBackgroundSnapshot,
|
|
61
70
|
];
|
|
62
71
|
const argsXml = programArguments.map((arg) => ` <string>${escapeXml(arg)}</string>`).join("\n");
|
|
63
72
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
@@ -72,11 +81,6 @@ ${argsXml}
|
|
|
72
81
|
</array>
|
|
73
82
|
<key>WorkingDirectory</key>
|
|
74
83
|
<string>${escapeXml(input.cwd)}</string>
|
|
75
|
-
<key>EnvironmentVariables</key>
|
|
76
|
-
<dict>
|
|
77
|
-
<key>PATH</key>
|
|
78
|
-
<string>${escapeXml(input.pathEnv)}</string>
|
|
79
|
-
</dict>
|
|
80
84
|
<key>RunAtLoad</key>
|
|
81
85
|
<true/>
|
|
82
86
|
<key>KeepAlive</key>
|
|
@@ -141,17 +145,28 @@ export function makeLaunchctlRunner() {
|
|
|
141
145
|
}
|
|
142
146
|
/** True when the service is bootstrapped in the user's gui domain. */
|
|
143
147
|
export async function isLoaded(runner, label, uid) {
|
|
148
|
+
return (await launchdServiceInfo(runner, label, uid)).loaded;
|
|
149
|
+
}
|
|
150
|
+
/** Read the launchd-owned process identity from `launchctl print`. */
|
|
151
|
+
export async function launchdServiceInfo(runner, label, uid) {
|
|
144
152
|
const result = await runner(["print", serviceTarget(label, uid)]);
|
|
145
|
-
|
|
153
|
+
if (result.code !== 0)
|
|
154
|
+
return { loaded: false };
|
|
155
|
+
const pid = parseLaunchdServicePid(result.stdout);
|
|
156
|
+
return pid === undefined ? { loaded: true } : { loaded: true, pid };
|
|
157
|
+
}
|
|
158
|
+
/** Parse only launchd's top-level `pid = N` field; never infer a pid from noise. */
|
|
159
|
+
export function parseLaunchdServicePid(output) {
|
|
160
|
+
const match = /^\s*pid\s*=\s*(\d+)\s*$/mu.exec(output);
|
|
161
|
+
if (match?.[1] === undefined)
|
|
162
|
+
return undefined;
|
|
163
|
+
const pid = Number(match[1]);
|
|
164
|
+
return Number.isSafeInteger(pid) && pid > 0 ? pid : undefined;
|
|
146
165
|
}
|
|
147
166
|
/** Bootstrap (load + RunAtLoad-launch) the plist. Caller tolerates "already bootstrapped". */
|
|
148
167
|
export async function bootstrap(runner, plistPath, uid) {
|
|
149
168
|
return await runner(["bootstrap", domainTarget(uid), plistPath]);
|
|
150
169
|
}
|
|
151
|
-
/** Kill and restart an already-loaded service, picking up a rewritten plist. */
|
|
152
|
-
export async function kickstartRestart(runner, label, uid) {
|
|
153
|
-
return await runner(["kickstart", "-k", serviceTarget(label, uid)]);
|
|
154
|
-
}
|
|
155
170
|
/**
|
|
156
171
|
* Remove the service from the domain. Sends SIGTERM and — unlike a plain kill —
|
|
157
172
|
* prevents KeepAlive from relaunching it. Caller tolerates "not loaded".
|
package/dist/launchd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchd.js","sourceRoot":"","sources":["../src/launchd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"launchd.js","sourceRoot":"","sources":["../src/launchd.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,52 +1,95 @@
|
|
|
1
1
|
import type { AgentResponder } from "@mono-agent/agent-contracts";
|
|
2
2
|
import { type MonoAgentConfig, type MonoAgentConfigJson } from "@mono-agent/config";
|
|
3
|
-
import type {
|
|
3
|
+
import type { AgentHarnessRuntimeOptionsExtension, AgentHarnessRuntimeOptionsInput } from "@mono-agent/agent-harness";
|
|
4
|
+
import type { ConfigurationProposalCard, ConfigurationProposalResult, TuiConfigurationController } from "@mono-agent/tui";
|
|
5
|
+
import type { BackgroundSnapshot } from "./background-snapshot.js";
|
|
4
6
|
import { type AgentConfigurationProposal, type JsonPatchOperation } from "./configuration-proposal-tool.js";
|
|
5
|
-
export declare const LOCAL_CONFIGURATION_PROMPT = "Begin
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
export declare const LOCAL_CONFIGURATION_PROMPT = "Begin temporary post-wizard configuration mode. This is not an ordinary chat. Read the mono-agent-configure skill. Your first assistant message must explain that this short conversation is for discussing the agent's Role (the configured identity document \u2192 ## Role; normally IDENTITY.md \u2192 ## Role), behavior, memory, skills, tools, or channels; secrets must never be entered; nothing changes without a separate host-owned approval; the operator can reply done or no changes to finish without edits; and ordinary chat starts after the operator's reply and any approval or rejection. Mention that /quit closes only the console and never sends a background stop request; the agent remains running unless a later restart or recovery explicitly reports failure. Then ask one concise question: how would the operator like to configure you further? Do not repeat the setup wizard. After the operator's single reply, either record one constrained proposal with ProposeAgentConfiguration or explain that no changes are needed. Never claim a proposal was applied: the local host validates it and asks for separate approval.";
|
|
8
|
+
export declare const LOCAL_CONFIGURATION_OPERATOR_PROMPT = "Continue the temporary post-wizard configuration exchange after the opening invitation. The invitation was already shown in a separate provider conversation: do not repeat it and do not ask the opening question again. Read the mono-agent-configure skill, act on the operator's one reply, and either record one constrained proposal with ProposeAgentConfiguration or clearly state that no changes are proposed so the host can hand off to ordinary chat. Never ask for secrets or claim a proposal was applied.";
|
|
9
|
+
export interface ConfigurationBackgroundConnection {
|
|
10
|
+
readonly baseUrl: string;
|
|
11
|
+
readonly apiKey?: string;
|
|
12
|
+
}
|
|
13
|
+
export type ConfigurationBackgroundRestartResult = {
|
|
14
|
+
readonly ok: true;
|
|
15
|
+
readonly connection: ConfigurationBackgroundConnection;
|
|
16
|
+
} | {
|
|
17
|
+
readonly ok: false;
|
|
18
|
+
readonly message: string;
|
|
8
19
|
};
|
|
20
|
+
export type RestartConfigurationBackground = (expectedSnapshot: BackgroundSnapshot) => Promise<ConfigurationBackgroundRestartResult>;
|
|
9
21
|
interface AppliedConfigurationChange {
|
|
10
22
|
readonly changeId: string;
|
|
11
23
|
readonly rollbackDir: string;
|
|
12
|
-
|
|
24
|
+
readonly snapshot: BackgroundSnapshot;
|
|
25
|
+
rollback(): Promise<BackgroundSnapshot>;
|
|
13
26
|
}
|
|
14
27
|
export interface LocalConfigurationSession {
|
|
15
28
|
readonly responder: AgentResponder;
|
|
16
29
|
readonly title: string;
|
|
17
|
-
readonly configuration: {
|
|
18
|
-
readonly initialPrompt?: string;
|
|
19
|
-
readonly prompt: string;
|
|
20
|
-
takeProposal(): Promise<ConfigurationProposalCard | undefined>;
|
|
21
|
-
approve(id: string): Promise<ConfigurationProposalResult>;
|
|
22
|
-
reject(id: string): Promise<ConfigurationProposalResult>;
|
|
23
|
-
};
|
|
24
30
|
dispose(): Promise<void>;
|
|
25
31
|
}
|
|
26
32
|
export interface CreateLocalConfigurationSessionOptions {
|
|
27
33
|
readonly cwd: string;
|
|
28
34
|
readonly configPath: string;
|
|
29
35
|
readonly env: Record<string, string | undefined>;
|
|
30
|
-
readonly configure
|
|
36
|
+
readonly configure?: boolean;
|
|
37
|
+
readonly envFile?: string;
|
|
38
|
+
/** Deterministic transaction-race seam for regression tests. */
|
|
39
|
+
readonly beforeSnapshotCapture?: (phase: "apply" | "rollback") => void | Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
export interface CreateRemoteConfigurationSessionOptions extends CreateLocalConfigurationSessionOptions {
|
|
42
|
+
readonly restartBackground: RestartConfigurationBackground;
|
|
43
|
+
/** Deterministic failure seam for capability-rotation regression tests. */
|
|
44
|
+
readonly beforeRotateAttempt?: () => void | Promise<void>;
|
|
45
|
+
}
|
|
46
|
+
export interface RemoteConfigurationSession {
|
|
47
|
+
readonly configuration: TuiConfigurationController;
|
|
48
|
+
dispose(): Promise<void>;
|
|
31
49
|
}
|
|
32
|
-
/** Build a current-folder responder
|
|
50
|
+
/** Build a current-folder responder for ordinary embedded chat only. */
|
|
33
51
|
export declare function createLocalConfigurationSession(options: CreateLocalConfigurationSessionOptions): Promise<LocalConfigurationSession>;
|
|
52
|
+
/**
|
|
53
|
+
* Create the local host controller for a remote configuration conversation.
|
|
54
|
+
* The daemon only proposes; this process validates, confirms, writes, restarts,
|
|
55
|
+
* proves readiness, and rolls back on failure.
|
|
56
|
+
*/
|
|
57
|
+
export declare function createRemoteConfigurationSession(options: CreateRemoteConfigurationSessionOptions): Promise<RemoteConfigurationSession>;
|
|
58
|
+
export interface ConfigurationRuntimeExtensionOptions {
|
|
59
|
+
readonly cwd: string;
|
|
60
|
+
/** Canonical mutable path used only to authenticate this agent folder/capability root. */
|
|
61
|
+
readonly configPath: string;
|
|
62
|
+
/** Immutable worker copy used for route classification and proposal base version. */
|
|
63
|
+
readonly configReadPath?: string;
|
|
64
|
+
readonly env: Record<string, string | undefined>;
|
|
65
|
+
}
|
|
66
|
+
/** Install proposal-only authority on explicitly capability-marked TUI requests. */
|
|
67
|
+
export declare function createLocalConfigurationRuntimeExtension(options: ConfigurationRuntimeExtensionOptions): (input: AgentHarnessRuntimeOptionsInput) => Promise<AgentHarnessRuntimeOptionsExtension>;
|
|
34
68
|
export declare class LocalConfigurationManager {
|
|
35
69
|
private readonly options;
|
|
36
|
-
private readonly
|
|
70
|
+
private readonly proposalRoot;
|
|
37
71
|
readonly currentConfig: MonoAgentConfig;
|
|
38
|
-
|
|
72
|
+
readonly roleLocation: string;
|
|
39
73
|
private readonly prepared;
|
|
74
|
+
private readonly cleanupPaths;
|
|
75
|
+
private currentSessionId;
|
|
76
|
+
private currentSessionDir;
|
|
77
|
+
private disabledReason;
|
|
40
78
|
private constructor();
|
|
79
|
+
get sessionId(): string;
|
|
41
80
|
static create(options: CreateLocalConfigurationSessionOptions): Promise<LocalConfigurationManager>;
|
|
42
|
-
|
|
43
|
-
|
|
81
|
+
/** Revoke the completed attempt's opaque filesystem capability before issuing the next one. */
|
|
82
|
+
rotateAttempt(): Promise<void>;
|
|
83
|
+
/** Poison the public capability id and best-effort remove every owned attempt path. */
|
|
84
|
+
disableConfigurationAttempts(error: unknown): Promise<void>;
|
|
85
|
+
private assertAttemptsEnabled;
|
|
44
86
|
takeProposal(): Promise<ConfigurationProposalCard | undefined>;
|
|
45
87
|
reject(id: string): Promise<ConfigurationProposalResult>;
|
|
46
88
|
prepareProposal(proposal: AgentConfigurationProposal): Promise<ConfigurationProposalCard>;
|
|
47
89
|
private prepare;
|
|
48
90
|
apply(id: string): Promise<AppliedConfigurationChange>;
|
|
49
91
|
private applyPrepared;
|
|
92
|
+
private captureCommittedSnapshot;
|
|
50
93
|
private validateCandidate;
|
|
51
94
|
dispose(): Promise<void>;
|
|
52
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-configuration.d.ts","sourceRoot":"","sources":["../src/local-configuration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"local-configuration.d.ts","sourceRoot":"","sources":["../src/local-configuration.ts"],"names":[],"mappings":"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"}
|