aoaoe 0.1.7 → 0.3.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/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +15 -3
- package/dist/config.js.map +1 -1
- package/dist/console.d.ts +15 -0
- package/dist/console.d.ts.map +1 -0
- package/dist/console.js +121 -0
- package/dist/console.js.map +1 -0
- package/dist/index.js +93 -12
- package/dist/index.js.map +1 -1
- package/dist/input.d.ts +12 -0
- package/dist/input.d.ts.map +1 -0
- package/dist/input.js +84 -0
- package/dist/input.js.map +1 -0
- package/dist/reasoner/prompt.d.ts.map +1 -1
- package/dist/reasoner/prompt.js +8 -0
- package/dist/reasoner/prompt.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/config.d.ts
CHANGED
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,YAAY,CAAC;AA2B/D,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAqBxE;AAGD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB5E;AAkCD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAC5C,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,YAAY,CAAC;AA2B/D,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAqBxE;AAGD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB5E;AAkCD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAC5C,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,CAiDA;AAED,wBAAgB,SAAS,SAsBxB"}
|
package/dist/config.js
CHANGED
|
@@ -92,6 +92,11 @@ export function parseCliArgs(argv) {
|
|
|
92
92
|
const overrides = {};
|
|
93
93
|
let help = false;
|
|
94
94
|
let version = false;
|
|
95
|
+
let attach = false;
|
|
96
|
+
// check for subcommand as first non-flag arg
|
|
97
|
+
if (argv[2] === "attach") {
|
|
98
|
+
return { overrides, help: false, version: false, attach: true };
|
|
99
|
+
}
|
|
95
100
|
for (let i = 2; i < argv.length; i++) {
|
|
96
101
|
const arg = argv[i];
|
|
97
102
|
switch (arg) {
|
|
@@ -128,12 +133,16 @@ export function parseCliArgs(argv) {
|
|
|
128
133
|
break;
|
|
129
134
|
}
|
|
130
135
|
}
|
|
131
|
-
return { overrides, help, version };
|
|
136
|
+
return { overrides, help, version, attach };
|
|
132
137
|
}
|
|
133
138
|
export function printHelp() {
|
|
134
139
|
console.log(`aoaoe - autonomous supervisor for agent-of-empires sessions
|
|
135
140
|
|
|
136
|
-
usage: aoaoe [options]
|
|
141
|
+
usage: aoaoe [command] [options]
|
|
142
|
+
|
|
143
|
+
commands:
|
|
144
|
+
(none) start the daemon
|
|
145
|
+
attach enter the reasoner console (Ctrl+B D to detach)
|
|
137
146
|
|
|
138
147
|
options:
|
|
139
148
|
--reasoner <opencode|claude-code> reasoning backend (default: opencode)
|
|
@@ -144,6 +153,9 @@ options:
|
|
|
144
153
|
--dry-run observe + reason but don't execute
|
|
145
154
|
--verbose, -v verbose logging
|
|
146
155
|
--help, -h show this help
|
|
147
|
-
--version show version
|
|
156
|
+
--version show version
|
|
157
|
+
|
|
158
|
+
console commands (inside reasoner console):
|
|
159
|
+
type any text send a message to the reasoner on next tick`);
|
|
148
160
|
}
|
|
149
161
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare class ReasonerConsole {
|
|
2
|
+
private started;
|
|
3
|
+
start(): Promise<void>;
|
|
4
|
+
writeObservation(sessionCount: number, changeCount: number, changes: string[]): void;
|
|
5
|
+
writeUserMessage(msg: string): void;
|
|
6
|
+
writeReasoning(reasoning: string): void;
|
|
7
|
+
writeAction(action: string, detail: string, success: boolean): void;
|
|
8
|
+
writeSystem(msg: string): void;
|
|
9
|
+
drainInput(): string[];
|
|
10
|
+
stop(): Promise<void>;
|
|
11
|
+
private append;
|
|
12
|
+
private ts;
|
|
13
|
+
static sessionName(): string;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=console.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../src/console.ts"],"names":[],"mappings":"AAaA,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAS;IAElB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgD5B,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAQpF,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAInC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIvC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAKnE,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK9B,UAAU,IAAI,MAAM,EAAE;IAYhB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,EAAE;IAIV,MAAM,CAAC,WAAW,IAAI,MAAM;CAG7B"}
|
package/dist/console.js
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
// console.ts -- manages the aoaoe_reasoner tmux session
|
|
2
|
+
// two-pane layout: top shows conversation, bottom accepts user input
|
|
3
|
+
// "aoaoe attach" drops you into this session, Ctrl+B D to detach
|
|
4
|
+
import { mkdirSync, appendFileSync, readFileSync, writeFileSync, existsSync } from "node:fs";
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
import { homedir } from "node:os";
|
|
7
|
+
import { execQuiet, exec } from "./shell.js";
|
|
8
|
+
const AOAOE_DIR = join(homedir(), ".aoaoe");
|
|
9
|
+
const CONVO_LOG = join(AOAOE_DIR, "conversation.log");
|
|
10
|
+
const INPUT_FILE = join(AOAOE_DIR, "pending-input.txt");
|
|
11
|
+
const SESSION_NAME = "aoaoe_reasoner";
|
|
12
|
+
export class ReasonerConsole {
|
|
13
|
+
started = false;
|
|
14
|
+
async start() {
|
|
15
|
+
mkdirSync(AOAOE_DIR, { recursive: true });
|
|
16
|
+
// clear previous conversation log (fresh session)
|
|
17
|
+
writeFileSync(CONVO_LOG, "");
|
|
18
|
+
writeFileSync(INPUT_FILE, "");
|
|
19
|
+
// kill any stale session
|
|
20
|
+
await execQuiet("tmux", ["kill-session", "-t", SESSION_NAME]);
|
|
21
|
+
// create the session with the conversation viewer in the top pane
|
|
22
|
+
// using ANSI colors for a nice look
|
|
23
|
+
await exec("tmux", [
|
|
24
|
+
"new-session", "-d", "-s", SESSION_NAME, "-x", "200", "-y", "50",
|
|
25
|
+
`tail -f ${CONVO_LOG}`,
|
|
26
|
+
]);
|
|
27
|
+
// split bottom pane for user input
|
|
28
|
+
await exec("tmux", [
|
|
29
|
+
"split-window", "-t", SESSION_NAME, "-v", "-l", "4",
|
|
30
|
+
`bash ${join(AOAOE_DIR, "input-loop.sh")}`,
|
|
31
|
+
]);
|
|
32
|
+
// write the input loop script
|
|
33
|
+
writeFileSync(join(AOAOE_DIR, "input-loop.sh"), INPUT_LOOP_SCRIPT);
|
|
34
|
+
// select top pane by default (so user sees conversation first)
|
|
35
|
+
await execQuiet("tmux", ["select-pane", "-t", `${SESSION_NAME}:.0`]);
|
|
36
|
+
// style: set pane border labels
|
|
37
|
+
await execQuiet("tmux", [
|
|
38
|
+
"set-option", "-t", SESSION_NAME, "pane-border-format",
|
|
39
|
+
" #{?pane_active,#[fg=green],#[fg=white]}#{pane_title} ",
|
|
40
|
+
]);
|
|
41
|
+
await execQuiet("tmux", ["select-pane", "-t", `${SESSION_NAME}:.0`, "-T", "conversation"]);
|
|
42
|
+
await execQuiet("tmux", ["select-pane", "-t", `${SESSION_NAME}:.1`, "-T", "input (type here)"]);
|
|
43
|
+
// focus the input pane so user can type immediately on attach
|
|
44
|
+
await execQuiet("tmux", ["select-pane", "-t", `${SESSION_NAME}:.1`]);
|
|
45
|
+
this.started = true;
|
|
46
|
+
this.writeSystem("aoaoe reasoner console started");
|
|
47
|
+
this.writeSystem("type a message below to send to the reasoner");
|
|
48
|
+
this.writeSystem("detach with Ctrl+B D to return to your shell");
|
|
49
|
+
this.writeSystem("---");
|
|
50
|
+
}
|
|
51
|
+
// write a formatted entry to the conversation log
|
|
52
|
+
writeObservation(sessionCount, changeCount, changes) {
|
|
53
|
+
const ts = this.ts();
|
|
54
|
+
this.append(`\n${ts} [observation] ${sessionCount} sessions, ${changeCount} changed`);
|
|
55
|
+
for (const c of changes) {
|
|
56
|
+
this.append(` ${c}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
writeUserMessage(msg) {
|
|
60
|
+
this.append(`\n${this.ts()} [you] ${msg}`);
|
|
61
|
+
}
|
|
62
|
+
writeReasoning(reasoning) {
|
|
63
|
+
this.append(`${this.ts()} [reasoner] ${reasoning}`);
|
|
64
|
+
}
|
|
65
|
+
writeAction(action, detail, success) {
|
|
66
|
+
const icon = success ? "+" : "!";
|
|
67
|
+
this.append(`${this.ts()} [${icon} action] ${action}: ${detail}`);
|
|
68
|
+
}
|
|
69
|
+
writeSystem(msg) {
|
|
70
|
+
this.append(`${this.ts()} [system] ${msg}`);
|
|
71
|
+
}
|
|
72
|
+
// read and clear pending user input from the input pane
|
|
73
|
+
drainInput() {
|
|
74
|
+
if (!existsSync(INPUT_FILE))
|
|
75
|
+
return [];
|
|
76
|
+
const content = readFileSync(INPUT_FILE, "utf-8").trim();
|
|
77
|
+
if (!content)
|
|
78
|
+
return [];
|
|
79
|
+
// clear the file
|
|
80
|
+
writeFileSync(INPUT_FILE, "");
|
|
81
|
+
return content.split("\n").filter((l) => l.trim());
|
|
82
|
+
}
|
|
83
|
+
async stop() {
|
|
84
|
+
if (this.started) {
|
|
85
|
+
await execQuiet("tmux", ["kill-session", "-t", SESSION_NAME]);
|
|
86
|
+
this.started = false;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
append(line) {
|
|
90
|
+
try {
|
|
91
|
+
appendFileSync(CONVO_LOG, line + "\n");
|
|
92
|
+
}
|
|
93
|
+
catch { }
|
|
94
|
+
}
|
|
95
|
+
ts() {
|
|
96
|
+
return new Date().toLocaleTimeString();
|
|
97
|
+
}
|
|
98
|
+
static sessionName() {
|
|
99
|
+
return SESSION_NAME;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// shell script that runs in the bottom tmux pane -- simple input loop
|
|
103
|
+
const INPUT_LOOP_SCRIPT = `#!/usr/bin/env bash
|
|
104
|
+
INPUT_FILE="${INPUT_FILE}"
|
|
105
|
+
touch "$INPUT_FILE"
|
|
106
|
+
|
|
107
|
+
# colors
|
|
108
|
+
GREEN="\\033[32m"
|
|
109
|
+
RESET="\\033[0m"
|
|
110
|
+
DIM="\\033[2m"
|
|
111
|
+
|
|
112
|
+
while true; do
|
|
113
|
+
printf "\${GREEN}>\${RESET} "
|
|
114
|
+
read -r msg
|
|
115
|
+
if [ -n "$msg" ]; then
|
|
116
|
+
echo "$msg" >> "$INPUT_FILE"
|
|
117
|
+
printf "\${DIM}queued for next reasoning cycle\${RESET}\\n"
|
|
118
|
+
fi
|
|
119
|
+
done
|
|
120
|
+
`;
|
|
121
|
+
//# sourceMappingURL=console.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../src/console.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,12 +4,14 @@ import { Poller } from "./poller.js";
|
|
|
4
4
|
import { createReasoner } from "./reasoner/index.js";
|
|
5
5
|
import { Executor } from "./executor.js";
|
|
6
6
|
import { printDashboard } from "./dashboard.js";
|
|
7
|
+
import { InputReader } from "./input.js";
|
|
8
|
+
import { ReasonerConsole } from "./console.js";
|
|
7
9
|
import { readFileSync } from "node:fs";
|
|
8
10
|
import { resolve, dirname } from "node:path";
|
|
9
11
|
import { fileURLToPath } from "node:url";
|
|
10
12
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
11
13
|
async function main() {
|
|
12
|
-
const { overrides, help, version } = parseCliArgs(process.argv);
|
|
14
|
+
const { overrides, help, version, attach } = parseCliArgs(process.argv);
|
|
13
15
|
if (help) {
|
|
14
16
|
printHelp();
|
|
15
17
|
process.exit(0);
|
|
@@ -24,6 +26,11 @@ async function main() {
|
|
|
24
26
|
}
|
|
25
27
|
process.exit(0);
|
|
26
28
|
}
|
|
29
|
+
// `aoaoe attach` -- drop into the reasoner console tmux session
|
|
30
|
+
if (attach) {
|
|
31
|
+
await attachToConsole();
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
27
34
|
const config = loadConfig(overrides);
|
|
28
35
|
log("starting aoaoe supervisor");
|
|
29
36
|
log(`reasoner: ${config.reasoner}`);
|
|
@@ -35,10 +42,16 @@ async function main() {
|
|
|
35
42
|
const poller = new Poller(config);
|
|
36
43
|
const reasoner = createReasoner(config);
|
|
37
44
|
const executor = new Executor(config);
|
|
45
|
+
const input = new InputReader();
|
|
46
|
+
const console_ = new ReasonerConsole();
|
|
38
47
|
// init reasoner (starts opencode serve, verifies claude, etc)
|
|
39
48
|
log("initializing reasoner...");
|
|
40
49
|
await reasoner.init();
|
|
41
50
|
log("reasoner ready");
|
|
51
|
+
// start interactive input listener (stdin fallback) and console tmux session
|
|
52
|
+
input.start();
|
|
53
|
+
await console_.start();
|
|
54
|
+
log(`reasoner console ready -- run 'aoaoe attach' to enter`);
|
|
42
55
|
// graceful shutdown
|
|
43
56
|
let running = true;
|
|
44
57
|
const shutdown = async () => {
|
|
@@ -46,6 +59,8 @@ async function main() {
|
|
|
46
59
|
return;
|
|
47
60
|
running = false;
|
|
48
61
|
log("shutting down...");
|
|
62
|
+
input.stop();
|
|
63
|
+
await console_.stop();
|
|
49
64
|
await reasoner.shutdown();
|
|
50
65
|
process.exit(0);
|
|
51
66
|
};
|
|
@@ -53,11 +68,41 @@ async function main() {
|
|
|
53
68
|
process.on("SIGTERM", shutdown);
|
|
54
69
|
// main loop
|
|
55
70
|
let pollCount = 0;
|
|
71
|
+
let forceDashboard = false;
|
|
56
72
|
log("entering main loop (Ctrl+C to stop)\n");
|
|
57
73
|
while (running) {
|
|
58
74
|
pollCount++;
|
|
75
|
+
// drain user input from both stdin and console tmux session
|
|
76
|
+
const stdinMessages = input.drain();
|
|
77
|
+
const consoleMessages = console_.drainInput();
|
|
78
|
+
const userMessages = [...stdinMessages, ...consoleMessages];
|
|
79
|
+
let userMessage;
|
|
80
|
+
// handle built-in command markers
|
|
81
|
+
for (const msg of userMessages) {
|
|
82
|
+
if (msg === "__CMD_STATUS__") {
|
|
83
|
+
log(`status: poll #${pollCount}, reasoner=${config.reasoner}, paused=${input.isPaused()}, dry-run=${config.dryRun}`);
|
|
84
|
+
}
|
|
85
|
+
else if (msg === "__CMD_DASHBOARD__") {
|
|
86
|
+
forceDashboard = true;
|
|
87
|
+
}
|
|
88
|
+
else if (msg === "__CMD_VERBOSE__") {
|
|
89
|
+
config.verbose = !config.verbose;
|
|
90
|
+
log(`verbose: ${config.verbose ? "on" : "off"}`);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
// real user message -- combine if multiple
|
|
94
|
+
userMessage = userMessage ? `${userMessage}\n${msg}` : msg;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (input.isPaused()) {
|
|
98
|
+
if (pollCount % 6 === 1)
|
|
99
|
+
log("paused (type /resume to continue)");
|
|
100
|
+
await sleep(config.pollIntervalMs);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
59
103
|
try {
|
|
60
|
-
await tick(config, poller, reasoner, executor, pollCount);
|
|
104
|
+
await tick(config, poller, reasoner, executor, console_, pollCount, userMessage, forceDashboard);
|
|
105
|
+
forceDashboard = false;
|
|
61
106
|
}
|
|
62
107
|
catch (err) {
|
|
63
108
|
console.error(`[error] tick ${pollCount} failed: ${err}`);
|
|
@@ -67,27 +112,38 @@ async function main() {
|
|
|
67
112
|
}
|
|
68
113
|
}
|
|
69
114
|
}
|
|
70
|
-
async function tick(config, poller, reasoner, executor, pollCount) {
|
|
115
|
+
async function tick(config, poller, reasoner, executor, console_, pollCount, userMessage, forceDashboard) {
|
|
71
116
|
// 1. poll
|
|
72
117
|
const observation = await poller.poll();
|
|
73
118
|
const sessionCount = observation.sessions.length;
|
|
74
119
|
const changeCount = observation.changes.length;
|
|
75
|
-
|
|
120
|
+
// attach user message to observation if present
|
|
121
|
+
if (userMessage) {
|
|
122
|
+
observation.userMessage = userMessage;
|
|
123
|
+
console_.writeUserMessage(userMessage);
|
|
124
|
+
}
|
|
125
|
+
if (sessionCount === 0 && !userMessage) {
|
|
76
126
|
if (pollCount % 6 === 1) {
|
|
77
127
|
// log every ~60s when no sessions
|
|
78
128
|
log("no active aoe sessions found");
|
|
79
129
|
}
|
|
80
130
|
return;
|
|
81
131
|
}
|
|
82
|
-
// dashboard every 6 polls (~60s at default interval)
|
|
83
|
-
if (pollCount % 6 === 1) {
|
|
132
|
+
// dashboard every 6 polls (~60s at default interval), or on demand
|
|
133
|
+
if (forceDashboard || pollCount % 6 === 1) {
|
|
84
134
|
printDashboard(observation, executor.getRecentLog(), pollCount, config);
|
|
85
135
|
}
|
|
86
136
|
// status line
|
|
87
137
|
const statuses = summarizeStatuses(observation);
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
138
|
+
const userTag = userMessage ? " | +operator msg" : "";
|
|
139
|
+
process.stdout.write(`\r[poll #${pollCount}] ${sessionCount} sessions (${statuses}) | ${changeCount} changed${userTag}`);
|
|
140
|
+
// write observation to console
|
|
141
|
+
if (changeCount > 0) {
|
|
142
|
+
const changeSummary = observation.changes.map((c) => `${c.title} (${c.tool}): ${c.status}`);
|
|
143
|
+
console_.writeObservation(sessionCount, changeCount, changeSummary);
|
|
144
|
+
}
|
|
145
|
+
// 2. if nothing changed AND no user message, skip reasoning (save tokens)
|
|
146
|
+
if (changeCount === 0 && !userMessage) {
|
|
91
147
|
if (config.verbose) {
|
|
92
148
|
process.stdout.write(" | no changes, skipping reasoner\n");
|
|
93
149
|
}
|
|
@@ -99,8 +155,10 @@ async function tick(config, poller, reasoner, executor, pollCount) {
|
|
|
99
155
|
{ actions: [{ action: "wait", reason: "reasoner timeout" }] });
|
|
100
156
|
const actionSummary = result.actions.map((a) => a.action).join(", ");
|
|
101
157
|
process.stdout.write(` -> ${actionSummary}\n`);
|
|
102
|
-
if (result.reasoning
|
|
103
|
-
|
|
158
|
+
if (result.reasoning) {
|
|
159
|
+
console_.writeReasoning(result.reasoning);
|
|
160
|
+
if (config.verbose)
|
|
161
|
+
log(`reasoning: ${result.reasoning}`);
|
|
104
162
|
}
|
|
105
163
|
// 4. execute (skip if all actions are "wait")
|
|
106
164
|
const nonWaitActions = result.actions.filter((a) => a.action !== "wait");
|
|
@@ -110,7 +168,9 @@ async function tick(config, poller, reasoner, executor, pollCount) {
|
|
|
110
168
|
// dry-run: log what would happen, don't actually execute
|
|
111
169
|
if (config.dryRun) {
|
|
112
170
|
for (const action of nonWaitActions) {
|
|
113
|
-
|
|
171
|
+
const msg = `would ${action.action}: ${JSON.stringify(action)}`;
|
|
172
|
+
log(`[dry-run] ${msg}`);
|
|
173
|
+
console_.writeAction(action.action, "dry-run", true);
|
|
114
174
|
}
|
|
115
175
|
return;
|
|
116
176
|
}
|
|
@@ -120,6 +180,7 @@ async function tick(config, poller, reasoner, executor, pollCount) {
|
|
|
120
180
|
continue;
|
|
121
181
|
const icon = entry.success ? "+" : "!";
|
|
122
182
|
log(`[${icon}] ${entry.action.action}: ${entry.detail}`);
|
|
183
|
+
console_.writeAction(entry.action.action, entry.detail, entry.success);
|
|
123
184
|
}
|
|
124
185
|
}
|
|
125
186
|
function summarizeStatuses(obs) {
|
|
@@ -146,6 +207,26 @@ function withTimeout(promise, ms, fallback) {
|
|
|
146
207
|
}, ms)),
|
|
147
208
|
]);
|
|
148
209
|
}
|
|
210
|
+
// `aoaoe attach` -- enter the reasoner console tmux session
|
|
211
|
+
async function attachToConsole() {
|
|
212
|
+
const { execQuiet } = await import("./shell.js");
|
|
213
|
+
const name = ReasonerConsole.sessionName();
|
|
214
|
+
// check if the session exists
|
|
215
|
+
const exists = await execQuiet("tmux", ["has-session", "-t", name]);
|
|
216
|
+
if (!exists) {
|
|
217
|
+
console.error(`no running aoaoe session found (looking for tmux session '${name}')`);
|
|
218
|
+
console.error("start the daemon first: aoaoe");
|
|
219
|
+
process.exit(1);
|
|
220
|
+
}
|
|
221
|
+
// attach -- replace this process with tmux attach
|
|
222
|
+
const { execFileSync } = await import("node:child_process");
|
|
223
|
+
try {
|
|
224
|
+
execFileSync("tmux", ["attach-session", "-t", name], { stdio: "inherit" });
|
|
225
|
+
}
|
|
226
|
+
catch {
|
|
227
|
+
// normal exit when user detaches
|
|
228
|
+
}
|
|
229
|
+
}
|
|
149
230
|
main().catch((err) => {
|
|
150
231
|
console.error(`fatal: ${err}`);
|
|
151
232
|
process.exit(1);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAuB,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/input.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAIA,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAS;IAEvB,KAAK,IAAI,IAAI;IAkBb,KAAK,IAAI,MAAM,EAAE;IAKjB,QAAQ,IAAI,OAAO;IAInB,IAAI,IAAI,IAAI;IAKZ,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,aAAa;CA4CtB"}
|
package/dist/input.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// interactive stdin input -- lets the user send messages to the reasoner
|
|
2
|
+
// and run built-in slash commands while the daemon is running
|
|
3
|
+
import { createInterface } from "node:readline";
|
|
4
|
+
export class InputReader {
|
|
5
|
+
rl = null;
|
|
6
|
+
queue = []; // pending user messages for the reasoner
|
|
7
|
+
paused = false;
|
|
8
|
+
start() {
|
|
9
|
+
// only works if stdin is a TTY (not piped)
|
|
10
|
+
if (!process.stdin.isTTY)
|
|
11
|
+
return;
|
|
12
|
+
this.rl = createInterface({
|
|
13
|
+
input: process.stdin,
|
|
14
|
+
output: process.stderr, // prompt goes to stderr so stdout stays clean
|
|
15
|
+
prompt: "",
|
|
16
|
+
});
|
|
17
|
+
this.rl.on("line", (line) => this.handleLine(line.trim()));
|
|
18
|
+
this.rl.on("close", () => { this.rl = null; });
|
|
19
|
+
// show hint on startup
|
|
20
|
+
console.error("[input] type a message to send to the reasoner, or /help for commands");
|
|
21
|
+
}
|
|
22
|
+
// drain all pending user messages (called each tick)
|
|
23
|
+
drain() {
|
|
24
|
+
const msgs = this.queue.splice(0);
|
|
25
|
+
return msgs;
|
|
26
|
+
}
|
|
27
|
+
isPaused() {
|
|
28
|
+
return this.paused;
|
|
29
|
+
}
|
|
30
|
+
stop() {
|
|
31
|
+
this.rl?.close();
|
|
32
|
+
this.rl = null;
|
|
33
|
+
}
|
|
34
|
+
handleLine(line) {
|
|
35
|
+
if (!line)
|
|
36
|
+
return;
|
|
37
|
+
// built-in slash commands
|
|
38
|
+
if (line.startsWith("/")) {
|
|
39
|
+
this.handleCommand(line);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
// queue as a user message for the reasoner
|
|
43
|
+
this.queue.push(line);
|
|
44
|
+
console.error(`[input] queued message for next reasoning cycle`);
|
|
45
|
+
}
|
|
46
|
+
handleCommand(line) {
|
|
47
|
+
const [cmd, ...args] = line.split(/\s+/);
|
|
48
|
+
switch (cmd) {
|
|
49
|
+
case "/help":
|
|
50
|
+
console.error(`
|
|
51
|
+
/help show this help
|
|
52
|
+
/status print current daemon state
|
|
53
|
+
/pause pause the daemon loop (polling continues, reasoning skipped)
|
|
54
|
+
/resume resume the daemon loop
|
|
55
|
+
/dashboard force a dashboard print on next tick
|
|
56
|
+
/verbose toggle verbose mode
|
|
57
|
+
<any text> send message to the reasoner on next tick
|
|
58
|
+
`);
|
|
59
|
+
break;
|
|
60
|
+
case "/pause":
|
|
61
|
+
this.paused = true;
|
|
62
|
+
console.error("[input] paused -- reasoner will not be called until /resume");
|
|
63
|
+
break;
|
|
64
|
+
case "/resume":
|
|
65
|
+
this.paused = false;
|
|
66
|
+
console.error("[input] resumed");
|
|
67
|
+
break;
|
|
68
|
+
case "/status":
|
|
69
|
+
// handled by the main loop (push a special marker)
|
|
70
|
+
this.queue.push("__CMD_STATUS__");
|
|
71
|
+
break;
|
|
72
|
+
case "/dashboard":
|
|
73
|
+
this.queue.push("__CMD_DASHBOARD__");
|
|
74
|
+
break;
|
|
75
|
+
case "/verbose":
|
|
76
|
+
this.queue.push("__CMD_VERBOSE__");
|
|
77
|
+
break;
|
|
78
|
+
default:
|
|
79
|
+
console.error(`[input] unknown command: ${cmd} (try /help)`);
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/reasoner/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,eAAO,MAAM,aAAa,krDA8BwB,CAAC;AAGnD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/reasoner/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,eAAO,MAAM,aAAa,krDA8BwB,CAAC;AAGnD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CA4C1D"}
|
package/dist/reasoner/prompt.js
CHANGED
|
@@ -63,6 +63,14 @@ export function formatObservation(obs) {
|
|
|
63
63
|
parts.push("");
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
+
// user operator message (injected via stdin)
|
|
67
|
+
if (obs.userMessage) {
|
|
68
|
+
parts.push("--- OPERATOR MESSAGE (from human supervisor) ---");
|
|
69
|
+
parts.push(obs.userMessage);
|
|
70
|
+
parts.push("--- END OPERATOR MESSAGE ---");
|
|
71
|
+
parts.push("");
|
|
72
|
+
parts.push("IMPORTANT: The operator message above takes priority. Factor it into your decision.");
|
|
73
|
+
}
|
|
66
74
|
return parts.join("\n");
|
|
67
75
|
}
|
|
68
76
|
//# sourceMappingURL=prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/reasoner/prompt.ts"],"names":[],"mappings":"AAEA,6CAA6C;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDA8BqB,CAAC;AAEnD,2CAA2C;AAC3C,MAAM,UAAU,iBAAiB,CAAC,GAAgB;IAChD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,wBAAwB;IACxB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,OAAO,CAAC,MAAM,cAAc,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC;YAC3F,uDAAuD;YACvD,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,0BAA0B,CAAC,CAAC;gBACvD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/reasoner/prompt.ts"],"names":[],"mappings":"AAEA,6CAA6C;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDA8BqB,CAAC;AAEnD,2CAA2C;AAC3C,MAAM,UAAU,iBAAiB,CAAC,GAAgB;IAChD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,wBAAwB;IACxB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,OAAO,CAAC,MAAM,cAAc,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC;YAC3F,uDAAuD;YACvD,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,0BAA0B,CAAC,CAAC;gBACvD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;IACpG,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,OAAO,EAAE,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,MAAM,MAAM,GACd;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,QAAQ;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,aAAa,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,EAAE;QACV,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,GAAG,EAAE;QACH,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE;QACR,oBAAoB,EAAE,MAAM,CAAC;QAC7B,sBAAsB,EAAE,MAAM,CAAC;QAC/B,qBAAqB,EAAE,OAAO,CAAC;KAChC,CAAC;IACF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB"}
|