@monoes/monomindcli 2.16.13 → 2.16.14
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 +1 -1
- package/dist/src/commands/org-control.d.ts +117 -0
- package/dist/src/commands/org-control.d.ts.map +1 -0
- package/dist/src/commands/org-control.js +274 -0
- package/dist/src/commands/org-control.js.map +1 -0
- package/dist/src/commands/org-lifecycle.d.ts +7 -0
- package/dist/src/commands/org-lifecycle.d.ts.map +1 -0
- package/dist/src/commands/org-lifecycle.js +298 -0
- package/dist/src/commands/org-lifecycle.js.map +1 -0
- package/dist/src/commands/org-manage.d.ts +7 -0
- package/dist/src/commands/org-manage.d.ts.map +1 -0
- package/dist/src/commands/org-manage.js +357 -0
- package/dist/src/commands/org-manage.js.map +1 -0
- package/dist/src/commands/org-memory-command.d.ts +3 -0
- package/dist/src/commands/org-memory-command.d.ts.map +1 -0
- package/dist/src/commands/org-memory-command.js +178 -0
- package/dist/src/commands/org-memory-command.js.map +1 -0
- package/dist/src/commands/org-observe-approvals.d.ts +8 -0
- package/dist/src/commands/org-observe-approvals.d.ts.map +1 -0
- package/dist/src/commands/org-observe-approvals.js +211 -0
- package/dist/src/commands/org-observe-approvals.js.map +1 -0
- package/dist/src/commands/org-observe-checkpoint.d.ts +26 -0
- package/dist/src/commands/org-observe-checkpoint.d.ts.map +1 -0
- package/dist/src/commands/org-observe-checkpoint.js +180 -0
- package/dist/src/commands/org-observe-checkpoint.js.map +1 -0
- package/dist/src/commands/org-observe-config.d.ts +8 -0
- package/dist/src/commands/org-observe-config.d.ts.map +1 -0
- package/dist/src/commands/org-observe-config.js +160 -0
- package/dist/src/commands/org-observe-config.js.map +1 -0
- package/dist/src/commands/org-observe-gates.d.ts +4 -0
- package/dist/src/commands/org-observe-gates.d.ts.map +1 -0
- package/dist/src/commands/org-observe-gates.js +182 -0
- package/dist/src/commands/org-observe-gates.js.map +1 -0
- package/dist/src/commands/org-observe-inbox.d.ts +18 -0
- package/dist/src/commands/org-observe-inbox.d.ts.map +1 -0
- package/dist/src/commands/org-observe-inbox.js +154 -0
- package/dist/src/commands/org-observe-inbox.js.map +1 -0
- package/dist/src/commands/org-observe-logs.d.ts +31 -0
- package/dist/src/commands/org-observe-logs.d.ts.map +1 -0
- package/dist/src/commands/org-observe-logs.js +272 -0
- package/dist/src/commands/org-observe-logs.js.map +1 -0
- package/dist/src/commands/org-observe-questions.d.ts +8 -0
- package/dist/src/commands/org-observe-questions.d.ts.map +1 -0
- package/dist/src/commands/org-observe-questions.js +201 -0
- package/dist/src/commands/org-observe-questions.js.map +1 -0
- package/dist/src/commands/org-observe-report.d.ts +8 -0
- package/dist/src/commands/org-observe-report.d.ts.map +1 -0
- package/dist/src/commands/org-observe-report.js +366 -0
- package/dist/src/commands/org-observe-report.js.map +1 -0
- package/dist/src/commands/org-observe-shared.d.ts +20 -0
- package/dist/src/commands/org-observe-shared.d.ts.map +1 -0
- package/dist/src/commands/org-observe-shared.js +55 -0
- package/dist/src/commands/org-observe-shared.js.map +1 -0
- package/dist/src/commands/org-observe.d.ts +9 -101
- package/dist/src/commands/org-observe.d.ts.map +1 -1
- package/dist/src/commands/org-observe.js +12 -1675
- package/dist/src/commands/org-observe.js.map +1 -1
- package/dist/src/commands/org-poll.d.ts +57 -0
- package/dist/src/commands/org-poll.d.ts.map +1 -0
- package/dist/src/commands/org-poll.js +194 -0
- package/dist/src/commands/org-poll.js.map +1 -0
- package/dist/src/commands/org-run.d.ts +3 -0
- package/dist/src/commands/org-run.d.ts.map +1 -0
- package/dist/src/commands/org-run.js +449 -0
- package/dist/src/commands/org-run.js.map +1 -0
- package/dist/src/commands/org-serve.d.ts +19 -0
- package/dist/src/commands/org-serve.d.ts.map +1 -0
- package/dist/src/commands/org-serve.js +395 -0
- package/dist/src/commands/org-serve.js.map +1 -0
- package/dist/src/commands/org-subcommands-config.d.ts +8 -0
- package/dist/src/commands/org-subcommands-config.d.ts.map +1 -0
- package/dist/src/commands/org-subcommands-config.js +93 -0
- package/dist/src/commands/org-subcommands-config.js.map +1 -0
- package/dist/src/commands/org-subcommands-hil.d.ts +11 -0
- package/dist/src/commands/org-subcommands-hil.d.ts.map +1 -0
- package/dist/src/commands/org-subcommands-hil.js +216 -0
- package/dist/src/commands/org-subcommands-hil.js.map +1 -0
- package/dist/src/commands/org-subcommands-observe.d.ts +12 -0
- package/dist/src/commands/org-subcommands-observe.d.ts.map +1 -0
- package/dist/src/commands/org-subcommands-observe.js +249 -0
- package/dist/src/commands/org-subcommands-observe.js.map +1 -0
- package/dist/src/commands/org-subcommands-runtime.d.ts +12 -0
- package/dist/src/commands/org-subcommands-runtime.d.ts.map +1 -0
- package/dist/src/commands/org-subcommands-runtime.js +163 -0
- package/dist/src/commands/org-subcommands-runtime.js.map +1 -0
- package/dist/src/commands/org.d.ts +3 -151
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +43 -2735
- package/dist/src/commands/org.js.map +1 -1
- package/dist/src/orgrt/daemon-types.d.ts +196 -0
- package/dist/src/orgrt/daemon-types.d.ts.map +1 -0
- package/dist/src/orgrt/daemon-types.js +38 -0
- package/dist/src/orgrt/daemon-types.js.map +1 -0
- package/dist/src/orgrt/daemon.d.ts +70 -300
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +41 -2536
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/idle-watchdog.d.ts +39 -0
- package/dist/src/orgrt/idle-watchdog.d.ts.map +1 -0
- package/dist/src/orgrt/idle-watchdog.js +289 -0
- package/dist/src/orgrt/idle-watchdog.js.map +1 -0
- package/dist/src/orgrt/org-reload.d.ts +7 -0
- package/dist/src/orgrt/org-reload.d.ts.map +1 -0
- package/dist/src/orgrt/org-reload.js +111 -0
- package/dist/src/orgrt/org-reload.js.map +1 -0
- package/dist/src/orgrt/org-start-steps.d.ts +21 -0
- package/dist/src/orgrt/org-start-steps.d.ts.map +1 -0
- package/dist/src/orgrt/org-start-steps.js +305 -0
- package/dist/src/orgrt/org-start-steps.js.map +1 -0
- package/dist/src/orgrt/org-start.d.ts +7 -0
- package/dist/src/orgrt/org-start.d.ts.map +1 -0
- package/dist/src/orgrt/org-start.js +435 -0
- package/dist/src/orgrt/org-start.js.map +1 -0
- package/dist/src/orgrt/org-state-file.d.ts +8 -0
- package/dist/src/orgrt/org-state-file.d.ts.map +1 -0
- package/dist/src/orgrt/org-state-file.js +116 -0
- package/dist/src/orgrt/org-state-file.js.map +1 -0
- package/dist/src/orgrt/org-stop.d.ts +6 -0
- package/dist/src/orgrt/org-stop.d.ts.map +1 -0
- package/dist/src/orgrt/org-stop.js +332 -0
- package/dist/src/orgrt/org-stop.js.map +1 -0
- package/dist/src/orgrt/org-tools.d.ts +11 -0
- package/dist/src/orgrt/org-tools.d.ts.map +1 -0
- package/dist/src/orgrt/org-tools.js +305 -0
- package/dist/src/orgrt/org-tools.js.map +1 -0
- package/dist/src/orgrt/role-incarnation.d.ts +18 -0
- package/dist/src/orgrt/role-incarnation.d.ts.map +1 -0
- package/dist/src/orgrt/role-incarnation.js +374 -0
- package/dist/src/orgrt/role-incarnation.js.map +1 -0
- package/dist/src/orgrt/role-respawn.d.ts +7 -0
- package/dist/src/orgrt/role-respawn.d.ts.map +1 -0
- package/dist/src/orgrt/role-respawn.js +318 -0
- package/dist/src/orgrt/role-respawn.js.map +1 -0
- package/dist/src/orgrt/role-session-opts.d.ts +389 -0
- package/dist/src/orgrt/role-session-opts.d.ts.map +1 -0
- package/dist/src/orgrt/role-session-opts.js +289 -0
- package/dist/src/orgrt/role-session-opts.js.map +1 -0
- package/dist/src/orgrt/runner-resolve.d.ts +43 -0
- package/dist/src/orgrt/runner-resolve.d.ts.map +1 -0
- package/dist/src/orgrt/runner-resolve.js +77 -0
- package/dist/src/orgrt/runner-resolve.js.map +1 -0
- package/dist/src/orgrt/session-gate.d.ts +34 -0
- package/dist/src/orgrt/session-gate.d.ts.map +1 -0
- package/dist/src/orgrt/session-gate.js +74 -0
- package/dist/src/orgrt/session-gate.js.map +1 -0
- package/dist/src/orgrt/session-prompt.d.ts +31 -0
- package/dist/src/orgrt/session-prompt.d.ts.map +1 -0
- package/dist/src/orgrt/session-prompt.js +115 -0
- package/dist/src/orgrt/session-prompt.js.map +1 -0
- package/dist/src/orgrt/session-run.d.ts +18 -0
- package/dist/src/orgrt/session-run.d.ts.map +1 -0
- package/dist/src/orgrt/session-run.js +429 -0
- package/dist/src/orgrt/session-run.js.map +1 -0
- package/dist/src/orgrt/session-stream.d.ts +21 -0
- package/dist/src/orgrt/session-stream.d.ts.map +1 -0
- package/dist/src/orgrt/session-stream.js +173 -0
- package/dist/src/orgrt/session-stream.js.map +1 -0
- package/dist/src/orgrt/session-types.d.ts +219 -0
- package/dist/src/orgrt/session-types.d.ts.map +1 -0
- package/dist/src/orgrt/session-types.js +2 -0
- package/dist/src/orgrt/session-types.js.map +1 -0
- package/dist/src/orgrt/session-usage.d.ts +29 -0
- package/dist/src/orgrt/session-usage.d.ts.map +1 -0
- package/dist/src/orgrt/session-usage.js +64 -0
- package/dist/src/orgrt/session-usage.js.map +1 -0
- package/dist/src/orgrt/session.d.ts +5 -281
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +8 -1117
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
// packages/@monomind/cli/src/commands/org-lifecycle.ts
|
|
2
|
+
//
|
|
3
|
+
// `monomind org stop | pause | resume | reload | status` — control-file
|
|
4
|
+
// requests to a running org and its runtime-state report.
|
|
5
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
6
|
+
import { join } from 'node:path';
|
|
7
|
+
import { readIdleStatus } from '../orgrt/idle-deadline.js';
|
|
8
|
+
import { describeRunOutcome, readHistory, readRunEvents, summarizeRun, utcTime, } from '../orgrt/reporting.js';
|
|
9
|
+
import { ORG_DIR } from '../orgrt/types.js';
|
|
10
|
+
import { output } from '../output.js';
|
|
11
|
+
import { classifyRun, clearPausefile, isOrgPaused, listOrgConfigFiles, validateOrgName, } from './org-control.js';
|
|
12
|
+
const log = (text) => {
|
|
13
|
+
console.log(text);
|
|
14
|
+
};
|
|
15
|
+
export const stopAction = async (ctx) => {
|
|
16
|
+
const validated = validateOrgName(ctx.args[0]);
|
|
17
|
+
if (!validated.ok)
|
|
18
|
+
return validated.result;
|
|
19
|
+
const name = validated.name;
|
|
20
|
+
if (!existsSync(join(ctx.cwd, ORG_DIR, `${name}.json`))) {
|
|
21
|
+
log(output.error(`Org not found: ${name}`));
|
|
22
|
+
return { success: false, message: 'org not found' };
|
|
23
|
+
}
|
|
24
|
+
// The stopfile is only meaningful to a process that polls it (`org run` and, since
|
|
25
|
+
// this fix, `org serve`). Writing it for an org that nothing is running was a silent
|
|
26
|
+
// no-op that still reported "daemon exits within 2s" — say what's actually true.
|
|
27
|
+
let rt;
|
|
28
|
+
try {
|
|
29
|
+
rt = JSON.parse(readFileSync(join(ctx.cwd, ORG_DIR, name, 'runtime.json'), 'utf8'));
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
/* never run */
|
|
33
|
+
}
|
|
34
|
+
if (rt?.status !== 'running') {
|
|
35
|
+
log(output.warning(`Org "${name}" is not running (runtime state: ${rt?.status ?? 'never run'}) — nothing to stop.`));
|
|
36
|
+
return { success: false, message: 'org not running' };
|
|
37
|
+
}
|
|
38
|
+
if (rt.pid) {
|
|
39
|
+
let alive = true;
|
|
40
|
+
try {
|
|
41
|
+
process.kill(rt.pid, 0);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
alive = false;
|
|
45
|
+
}
|
|
46
|
+
if (!alive) {
|
|
47
|
+
log(output.warning(`Org "${name}" is not running — runtime.json says running but pid ${rt.pid} is gone (crashed daemon).`));
|
|
48
|
+
log(output.info(`Clear the stale record with: monomind org mark-complete ${name}`));
|
|
49
|
+
return { success: false, message: 'org crashed — use mark-complete' };
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
mkdirSync(join(ctx.cwd, ORG_DIR, name), { recursive: true });
|
|
53
|
+
writeFileSync(join(ctx.cwd, ORG_DIR, name, 'stop'), new Date().toISOString());
|
|
54
|
+
log(output.info(`Stop requested for "${name}" (pid ${rt.pid}) — the daemon picks it up within ~2s.`));
|
|
55
|
+
return { success: true, message: `stop requested for ${name} (daemon exits within 2s)` };
|
|
56
|
+
};
|
|
57
|
+
export const pauseAction = async (ctx) => {
|
|
58
|
+
const validated = validateOrgName(ctx.args[0]);
|
|
59
|
+
if (!validated.ok)
|
|
60
|
+
return validated.result;
|
|
61
|
+
const name = validated.name;
|
|
62
|
+
if (!existsSync(join(ctx.cwd, ORG_DIR, `${name}.json`))) {
|
|
63
|
+
log(output.error(`Org not found: ${name}`));
|
|
64
|
+
return { success: false, message: 'org not found' };
|
|
65
|
+
}
|
|
66
|
+
if (isOrgPaused(ctx.cwd, name)) {
|
|
67
|
+
log(output.warning(`Org "${name}" is already paused.`));
|
|
68
|
+
return { success: true, message: 'already paused' };
|
|
69
|
+
}
|
|
70
|
+
mkdirSync(join(ctx.cwd, ORG_DIR, name), { recursive: true });
|
|
71
|
+
writeFileSync(join(ctx.cwd, ORG_DIR, name, 'pause'), new Date().toISOString());
|
|
72
|
+
log(output.info(`Org "${name}" paused — current turns will finish, no new cycles will start. Resume with: monomind org resume ${name}`));
|
|
73
|
+
return { success: true, message: `org ${name} paused` };
|
|
74
|
+
};
|
|
75
|
+
export const resumeAction = async (ctx) => {
|
|
76
|
+
const validated = validateOrgName(ctx.args[0]);
|
|
77
|
+
if (!validated.ok)
|
|
78
|
+
return validated.result;
|
|
79
|
+
const name = validated.name;
|
|
80
|
+
if (!isOrgPaused(ctx.cwd, name)) {
|
|
81
|
+
log(output.warning(`Org "${name}" is not paused.`));
|
|
82
|
+
return { success: true, message: 'not paused' };
|
|
83
|
+
}
|
|
84
|
+
clearPausefile(ctx.cwd, name);
|
|
85
|
+
log(output.info(`Org "${name}" resumed — next scheduled tick will start a cycle.`));
|
|
86
|
+
return { success: true, message: `org ${name} resumed` };
|
|
87
|
+
};
|
|
88
|
+
export const reloadAction = async (ctx) => {
|
|
89
|
+
const validated = validateOrgName(ctx.args[0]);
|
|
90
|
+
if (!validated.ok)
|
|
91
|
+
return validated.result;
|
|
92
|
+
const name = validated.name;
|
|
93
|
+
// The reload signal is a file the running daemon polls — same pattern as stop/pause.
|
|
94
|
+
mkdirSync(join(ctx.cwd, ORG_DIR, name), { recursive: true });
|
|
95
|
+
writeFileSync(join(ctx.cwd, ORG_DIR, name, 'reload'), new Date().toISOString());
|
|
96
|
+
log(output.info(`Reload requested for "${name}" — the daemon picks it up within ~2s.`));
|
|
97
|
+
return { success: true, message: `reload requested for ${name}` };
|
|
98
|
+
};
|
|
99
|
+
export const statusAction = async (ctx) => {
|
|
100
|
+
let name;
|
|
101
|
+
if (ctx.args[0]) {
|
|
102
|
+
const validated = validateOrgName(ctx.args[0]);
|
|
103
|
+
if (!validated.ok)
|
|
104
|
+
return validated.result;
|
|
105
|
+
name = validated.name;
|
|
106
|
+
// A named org that doesn't exist must error, not report "never run" with exit 0.
|
|
107
|
+
if (!existsSync(join(ctx.cwd, ORG_DIR, `${name}.json`))) {
|
|
108
|
+
log(output.error(`Org not found: ${name}`));
|
|
109
|
+
return { success: false, message: 'org not found' };
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// Protocol JSON mode (agent-exec-protocol.md §7.2): compact runtime state
|
|
113
|
+
// per org — the same liveness rule as the human path (a 'running' record
|
|
114
|
+
// whose pid is gone is a crash, not a running org).
|
|
115
|
+
if (ctx.flags.format === 'json') {
|
|
116
|
+
const orgDir = join(ctx.cwd, ORG_DIR);
|
|
117
|
+
const targets = name
|
|
118
|
+
? [name]
|
|
119
|
+
: existsSync(orgDir)
|
|
120
|
+
? listOrgConfigFiles(orgDir).map((f) => f.replace(/\.json$/, ''))
|
|
121
|
+
: [];
|
|
122
|
+
const readState = (t) => {
|
|
123
|
+
const rt = join(orgDir, t, 'runtime.json');
|
|
124
|
+
if (!existsSync(rt))
|
|
125
|
+
return { name: t, status: 'never run' };
|
|
126
|
+
try {
|
|
127
|
+
const st = JSON.parse(readFileSync(rt, 'utf8'));
|
|
128
|
+
let status = st.status ?? 'never run';
|
|
129
|
+
// #274: an 'idle' run is still a running run to every protocol
|
|
130
|
+
// consumer — only a genuine crash changes the reported status.
|
|
131
|
+
if (status === 'running' || status === 'crashed') {
|
|
132
|
+
if (classifyRun(ctx.cwd, t, st).state === 'crashed')
|
|
133
|
+
status = 'crashed';
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
name: t,
|
|
137
|
+
status,
|
|
138
|
+
run: st.run,
|
|
139
|
+
pid: st.pid,
|
|
140
|
+
paused: isOrgPaused(ctx.cwd, t),
|
|
141
|
+
abandoned_roles: st.abandonedRoles ?? [],
|
|
142
|
+
closed_by: st.closedBy,
|
|
143
|
+
error: st.error,
|
|
144
|
+
// #293: present only when the run's cross-run memory was not stored.
|
|
145
|
+
memory_error: st.memoryError,
|
|
146
|
+
// #296: when the idle watchdog will stop a running org, or why it won't.
|
|
147
|
+
...(status === 'running' ? readIdleStatus(ctx.cwd, t, st.run) : {}),
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
return { name: t, status: 'unreadable-runtime' };
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
const items = targets.map(readState);
|
|
155
|
+
// Named org → bare singleton; no name → list envelope (protocol §7.1).
|
|
156
|
+
process.stdout.write(`${JSON.stringify(name ? { v: 1, ...items[0] } : { v: 1, items })}\n`);
|
|
157
|
+
return { success: true };
|
|
158
|
+
}
|
|
159
|
+
const orgDir = join(ctx.cwd, ORG_DIR);
|
|
160
|
+
const targets = name
|
|
161
|
+
? [name]
|
|
162
|
+
: existsSync(orgDir)
|
|
163
|
+
? listOrgConfigFiles(orgDir).map((f) => f.replace(/\.json$/, ''))
|
|
164
|
+
: [];
|
|
165
|
+
for (const t of targets) {
|
|
166
|
+
const rt = join(orgDir, t, 'runtime.json');
|
|
167
|
+
let state = {
|
|
168
|
+
status: 'never run',
|
|
169
|
+
};
|
|
170
|
+
if (existsSync(rt)) {
|
|
171
|
+
try {
|
|
172
|
+
state = JSON.parse(readFileSync(rt, 'utf8'));
|
|
173
|
+
}
|
|
174
|
+
catch (err) {
|
|
175
|
+
log(output.warning(`${t}: could not read runtime.json (${err instanceof Error ? err.message : 'corrupt/truncated file'})`));
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// A "running" record with no sign of life left means the daemon died
|
|
180
|
+
// without its stopOrg cleanup — surface that instead of reporting it as
|
|
181
|
+
// still running. A stale pid alone is NOT that proof (#274).
|
|
182
|
+
let liveness;
|
|
183
|
+
if (state.status === 'running' || state.status === 'crashed') {
|
|
184
|
+
liveness = classifyRun(ctx.cwd, t, state);
|
|
185
|
+
if (liveness.state === 'crashed') {
|
|
186
|
+
let heartbeatHint = '';
|
|
187
|
+
try {
|
|
188
|
+
const hb = JSON.parse(readFileSync(join(ctx.cwd, '.monomind', 'serve-heartbeat.json'), 'utf8'));
|
|
189
|
+
heartbeatHint = ` (last heartbeat: ${hb.updatedAt})`;
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
/* no heartbeat file — daemon predates this change or was already cleaned up */
|
|
193
|
+
}
|
|
194
|
+
const closedBy = state.closedBy;
|
|
195
|
+
const label = closedBy === 'crash-handler'
|
|
196
|
+
? 'crashed (caught by crash handler)'
|
|
197
|
+
: `crashed (runtime.json says ${state.status} but pid ${state.pid} is gone and the run has been silent)`;
|
|
198
|
+
log(output.warning(`${t}: ${label}${heartbeatHint}${state.run ? ` — run ${state.run}` : ''} — close it out with "monomind org mark-complete ${t}"`));
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const paused = isOrgPaused(ctx.cwd, t);
|
|
203
|
+
const statusLabel = state.status === 'running'
|
|
204
|
+
? paused
|
|
205
|
+
? 'running (PAUSED)'
|
|
206
|
+
: liveness?.state === 'idle'
|
|
207
|
+
? 'running (idle)'
|
|
208
|
+
: 'running'
|
|
209
|
+
: state.status;
|
|
210
|
+
// Say when the recorded pid is no longer the thing proving it alive, so a
|
|
211
|
+
// pid that doesn't match any process isn't a silent mystery.
|
|
212
|
+
const staleHint = liveness?.evidence && liveness.evidence !== 'pid'
|
|
213
|
+
? ` — recorded pid ${state.pid} is stale; still live per ${liveness.evidence}`
|
|
214
|
+
: '';
|
|
215
|
+
const line = `${t}: ${statusLabel}${state.run ? ` (run ${state.run}, pid ${state.pid})` : ''}${staleHint}`;
|
|
216
|
+
// A role that never spawned is a silent capability hole — an org with no
|
|
217
|
+
// tester still reports a clean "running". Say it on the status line.
|
|
218
|
+
if (state.abandonedRoles?.length) {
|
|
219
|
+
log(output.warning(`${line} — DEGRADED: ${state.abandonedRoles.length} role(s) never spawned: ${state.abandonedRoles.join(', ')}`));
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
log(output.info(line));
|
|
223
|
+
}
|
|
224
|
+
// #293: cross-run memory that was never written. Without this the only
|
|
225
|
+
// symptom is org_recall coming back empty runs later, which points nowhere
|
|
226
|
+
// near a memory backend that failed to load.
|
|
227
|
+
const memoryError = state.memoryError;
|
|
228
|
+
if (memoryError) {
|
|
229
|
+
log(output.warning(` org memory: last run was NOT saved (${memoryError}) — org_recall will not find it`));
|
|
230
|
+
}
|
|
231
|
+
// Enriched progress for running orgs
|
|
232
|
+
if (state.status === 'running' && state.run) {
|
|
233
|
+
// #296: when the idle watchdog will stop this org, or why it won't.
|
|
234
|
+
// Say nothing for 'unknown' (no record yet) rather than a misleading zero.
|
|
235
|
+
const idle = readIdleStatus(ctx.cwd, t, state.run);
|
|
236
|
+
if (idle.idle_stop_at) {
|
|
237
|
+
log(` idle stop: in ${fmtDuration(idle.idle_stop_in_seconds * 1000)} (at ${utcTime(Date.parse(idle.idle_stop_at))})`);
|
|
238
|
+
}
|
|
239
|
+
else if (idle.idle_hold === 'disabled') {
|
|
240
|
+
log(` idle watchdog: disabled`);
|
|
241
|
+
}
|
|
242
|
+
else if (idle.idle_hold && idle.idle_hold !== 'unknown') {
|
|
243
|
+
const until = idle.idle_hold_until
|
|
244
|
+
? ` until ${utcTime(Date.parse(idle.idle_hold_until))}`
|
|
245
|
+
: '';
|
|
246
|
+
log(` idle stop: held — ${idle.idle_hold}${until}`);
|
|
247
|
+
}
|
|
248
|
+
const events = readRunEvents(ctx.cwd, t, state.run);
|
|
249
|
+
if (events.length) {
|
|
250
|
+
const summary = summarizeRun(events);
|
|
251
|
+
const elapsed = summary.startedAt ? Date.now() - summary.startedAt : null;
|
|
252
|
+
const elapsedStr = elapsed !== null ? fmtDuration(elapsed) : '?';
|
|
253
|
+
const lastTs = events[events.length - 1].ts;
|
|
254
|
+
const quietMs = Date.now() - lastTs;
|
|
255
|
+
const quietStr = fmtDuration(quietMs);
|
|
256
|
+
const toolCalls = Object.values(summary.roles).reduce((a, r) => a + r.toolsAllowed + r.toolsDenied, 0);
|
|
257
|
+
const rolesUp = Object.keys(summary.roles).filter((r) => r !== '(system)').length;
|
|
258
|
+
log(` elapsed: ${elapsedStr} | events: ${summary.events} | messages: ${summary.messages} | tools: ${toolCalls}`);
|
|
259
|
+
log(` roles active: ${rolesUp} | tokens: ${fmtNum(summary.totalTokens)} | cost: $${summary.totalCostUsd.toFixed(2)}`);
|
|
260
|
+
log(` quiet since: ${utcTime(lastTs)} (${quietStr} ago)`);
|
|
261
|
+
if (summary.crashes.length)
|
|
262
|
+
log(output.warning(` crashes: ${summary.crashes.join(', ')}`));
|
|
263
|
+
}
|
|
264
|
+
// Previous cycle comparison from history
|
|
265
|
+
const history = readHistory(ctx.cwd, t);
|
|
266
|
+
const prev = history.filter((h) => h.run !== state.run).at(-1);
|
|
267
|
+
if (prev) {
|
|
268
|
+
const dur = prev.durationMs !== null ? fmtDuration(prev.durationMs) : '?';
|
|
269
|
+
// #302: never blindly "completed" — describeRunOutcome only says
|
|
270
|
+
// that for a genuine boss outcome, a real crash, or a bare manual
|
|
271
|
+
// stop; every automated stop path (idle-stop, failed-start, a boss
|
|
272
|
+
// restart giving up) reports its own real cause, with the runnable
|
|
273
|
+
// task count if work was left outstanding.
|
|
274
|
+
const outcome = describeRunOutcome(prev);
|
|
275
|
+
log(` prev cycle: ${dur}, ${outcome}, ${prev.events} events, ${fmtNum(prev.totalTokens)} tokens`);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
return { success: true };
|
|
280
|
+
};
|
|
281
|
+
function fmtDuration(ms) {
|
|
282
|
+
const s = Math.floor(ms / 1000);
|
|
283
|
+
if (s < 60)
|
|
284
|
+
return `${s}s`;
|
|
285
|
+
const m = Math.floor(s / 60);
|
|
286
|
+
if (m < 60)
|
|
287
|
+
return `${m}m${s % 60}s`;
|
|
288
|
+
const h = Math.floor(m / 60);
|
|
289
|
+
return `${h}h${m % 60}m`;
|
|
290
|
+
}
|
|
291
|
+
function fmtNum(n) {
|
|
292
|
+
if (n >= 1_000_000)
|
|
293
|
+
return `${(n / 1_000_000).toFixed(1)}M`;
|
|
294
|
+
if (n >= 1_000)
|
|
295
|
+
return `${(n / 1_000).toFixed(1)}k`;
|
|
296
|
+
return String(n);
|
|
297
|
+
}
|
|
298
|
+
//# sourceMappingURL=org-lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-lifecycle.js","sourceRoot":"","sources":["../../../src/commands/org-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CommandContext, CommandResult } from '../types.js';
|
|
2
|
+
export declare const testLoopAction: (ctx: CommandContext) => Promise<CommandResult>;
|
|
3
|
+
export declare const listAction: (ctx: CommandContext) => Promise<CommandResult>;
|
|
4
|
+
export declare const deleteAction: (ctx: CommandContext) => Promise<CommandResult>;
|
|
5
|
+
export declare const markCompleteAction: (ctx: CommandContext) => Promise<CommandResult>;
|
|
6
|
+
export declare const migrateAction: (ctx: CommandContext) => Promise<CommandResult>;
|
|
7
|
+
//# sourceMappingURL=org-manage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-manage.d.ts","sourceRoot":"","sources":["../../../src/commands/org-manage.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA2BjE,eAAO,MAAM,cAAc,QAAe,cAAc,KAAG,OAAO,CAAC,aAAa,CAe/E,CAAC;AAIF,eAAO,MAAM,UAAU,QAAe,cAAc,KAAG,OAAO,CAAC,aAAa,CAuG3E,CAAC;AAEF,eAAO,MAAM,YAAY,QAAe,cAAc,KAAG,OAAO,CAAC,aAAa,CAoE7E,CAAC;AA0DF,eAAO,MAAM,kBAAkB,QAAe,cAAc,KAAG,OAAO,CAAC,aAAa,CA0GnF,CAAC;AAEF,eAAO,MAAM,aAAa,QAAe,cAAc,KAAG,OAAO,CAAC,aAAa,CA+B9E,CAAC"}
|