@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.
Files changed (171) hide show
  1. package/README.md +1 -1
  2. package/dist/src/commands/org-control.d.ts +117 -0
  3. package/dist/src/commands/org-control.d.ts.map +1 -0
  4. package/dist/src/commands/org-control.js +274 -0
  5. package/dist/src/commands/org-control.js.map +1 -0
  6. package/dist/src/commands/org-lifecycle.d.ts +7 -0
  7. package/dist/src/commands/org-lifecycle.d.ts.map +1 -0
  8. package/dist/src/commands/org-lifecycle.js +298 -0
  9. package/dist/src/commands/org-lifecycle.js.map +1 -0
  10. package/dist/src/commands/org-manage.d.ts +7 -0
  11. package/dist/src/commands/org-manage.d.ts.map +1 -0
  12. package/dist/src/commands/org-manage.js +357 -0
  13. package/dist/src/commands/org-manage.js.map +1 -0
  14. package/dist/src/commands/org-memory-command.d.ts +3 -0
  15. package/dist/src/commands/org-memory-command.d.ts.map +1 -0
  16. package/dist/src/commands/org-memory-command.js +178 -0
  17. package/dist/src/commands/org-memory-command.js.map +1 -0
  18. package/dist/src/commands/org-observe-approvals.d.ts +8 -0
  19. package/dist/src/commands/org-observe-approvals.d.ts.map +1 -0
  20. package/dist/src/commands/org-observe-approvals.js +211 -0
  21. package/dist/src/commands/org-observe-approvals.js.map +1 -0
  22. package/dist/src/commands/org-observe-checkpoint.d.ts +26 -0
  23. package/dist/src/commands/org-observe-checkpoint.d.ts.map +1 -0
  24. package/dist/src/commands/org-observe-checkpoint.js +180 -0
  25. package/dist/src/commands/org-observe-checkpoint.js.map +1 -0
  26. package/dist/src/commands/org-observe-config.d.ts +8 -0
  27. package/dist/src/commands/org-observe-config.d.ts.map +1 -0
  28. package/dist/src/commands/org-observe-config.js +160 -0
  29. package/dist/src/commands/org-observe-config.js.map +1 -0
  30. package/dist/src/commands/org-observe-gates.d.ts +4 -0
  31. package/dist/src/commands/org-observe-gates.d.ts.map +1 -0
  32. package/dist/src/commands/org-observe-gates.js +182 -0
  33. package/dist/src/commands/org-observe-gates.js.map +1 -0
  34. package/dist/src/commands/org-observe-inbox.d.ts +18 -0
  35. package/dist/src/commands/org-observe-inbox.d.ts.map +1 -0
  36. package/dist/src/commands/org-observe-inbox.js +154 -0
  37. package/dist/src/commands/org-observe-inbox.js.map +1 -0
  38. package/dist/src/commands/org-observe-logs.d.ts +31 -0
  39. package/dist/src/commands/org-observe-logs.d.ts.map +1 -0
  40. package/dist/src/commands/org-observe-logs.js +272 -0
  41. package/dist/src/commands/org-observe-logs.js.map +1 -0
  42. package/dist/src/commands/org-observe-questions.d.ts +8 -0
  43. package/dist/src/commands/org-observe-questions.d.ts.map +1 -0
  44. package/dist/src/commands/org-observe-questions.js +201 -0
  45. package/dist/src/commands/org-observe-questions.js.map +1 -0
  46. package/dist/src/commands/org-observe-report.d.ts +8 -0
  47. package/dist/src/commands/org-observe-report.d.ts.map +1 -0
  48. package/dist/src/commands/org-observe-report.js +366 -0
  49. package/dist/src/commands/org-observe-report.js.map +1 -0
  50. package/dist/src/commands/org-observe-shared.d.ts +20 -0
  51. package/dist/src/commands/org-observe-shared.d.ts.map +1 -0
  52. package/dist/src/commands/org-observe-shared.js +55 -0
  53. package/dist/src/commands/org-observe-shared.js.map +1 -0
  54. package/dist/src/commands/org-observe.d.ts +9 -101
  55. package/dist/src/commands/org-observe.d.ts.map +1 -1
  56. package/dist/src/commands/org-observe.js +12 -1675
  57. package/dist/src/commands/org-observe.js.map +1 -1
  58. package/dist/src/commands/org-poll.d.ts +57 -0
  59. package/dist/src/commands/org-poll.d.ts.map +1 -0
  60. package/dist/src/commands/org-poll.js +194 -0
  61. package/dist/src/commands/org-poll.js.map +1 -0
  62. package/dist/src/commands/org-run.d.ts +3 -0
  63. package/dist/src/commands/org-run.d.ts.map +1 -0
  64. package/dist/src/commands/org-run.js +449 -0
  65. package/dist/src/commands/org-run.js.map +1 -0
  66. package/dist/src/commands/org-serve.d.ts +19 -0
  67. package/dist/src/commands/org-serve.d.ts.map +1 -0
  68. package/dist/src/commands/org-serve.js +395 -0
  69. package/dist/src/commands/org-serve.js.map +1 -0
  70. package/dist/src/commands/org-subcommands-config.d.ts +8 -0
  71. package/dist/src/commands/org-subcommands-config.d.ts.map +1 -0
  72. package/dist/src/commands/org-subcommands-config.js +93 -0
  73. package/dist/src/commands/org-subcommands-config.js.map +1 -0
  74. package/dist/src/commands/org-subcommands-hil.d.ts +11 -0
  75. package/dist/src/commands/org-subcommands-hil.d.ts.map +1 -0
  76. package/dist/src/commands/org-subcommands-hil.js +216 -0
  77. package/dist/src/commands/org-subcommands-hil.js.map +1 -0
  78. package/dist/src/commands/org-subcommands-observe.d.ts +12 -0
  79. package/dist/src/commands/org-subcommands-observe.d.ts.map +1 -0
  80. package/dist/src/commands/org-subcommands-observe.js +249 -0
  81. package/dist/src/commands/org-subcommands-observe.js.map +1 -0
  82. package/dist/src/commands/org-subcommands-runtime.d.ts +12 -0
  83. package/dist/src/commands/org-subcommands-runtime.d.ts.map +1 -0
  84. package/dist/src/commands/org-subcommands-runtime.js +163 -0
  85. package/dist/src/commands/org-subcommands-runtime.js.map +1 -0
  86. package/dist/src/commands/org.d.ts +3 -151
  87. package/dist/src/commands/org.d.ts.map +1 -1
  88. package/dist/src/commands/org.js +43 -2735
  89. package/dist/src/commands/org.js.map +1 -1
  90. package/dist/src/orgrt/daemon-types.d.ts +196 -0
  91. package/dist/src/orgrt/daemon-types.d.ts.map +1 -0
  92. package/dist/src/orgrt/daemon-types.js +38 -0
  93. package/dist/src/orgrt/daemon-types.js.map +1 -0
  94. package/dist/src/orgrt/daemon.d.ts +70 -300
  95. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  96. package/dist/src/orgrt/daemon.js +41 -2536
  97. package/dist/src/orgrt/daemon.js.map +1 -1
  98. package/dist/src/orgrt/idle-watchdog.d.ts +39 -0
  99. package/dist/src/orgrt/idle-watchdog.d.ts.map +1 -0
  100. package/dist/src/orgrt/idle-watchdog.js +289 -0
  101. package/dist/src/orgrt/idle-watchdog.js.map +1 -0
  102. package/dist/src/orgrt/org-reload.d.ts +7 -0
  103. package/dist/src/orgrt/org-reload.d.ts.map +1 -0
  104. package/dist/src/orgrt/org-reload.js +111 -0
  105. package/dist/src/orgrt/org-reload.js.map +1 -0
  106. package/dist/src/orgrt/org-start-steps.d.ts +21 -0
  107. package/dist/src/orgrt/org-start-steps.d.ts.map +1 -0
  108. package/dist/src/orgrt/org-start-steps.js +305 -0
  109. package/dist/src/orgrt/org-start-steps.js.map +1 -0
  110. package/dist/src/orgrt/org-start.d.ts +7 -0
  111. package/dist/src/orgrt/org-start.d.ts.map +1 -0
  112. package/dist/src/orgrt/org-start.js +435 -0
  113. package/dist/src/orgrt/org-start.js.map +1 -0
  114. package/dist/src/orgrt/org-state-file.d.ts +8 -0
  115. package/dist/src/orgrt/org-state-file.d.ts.map +1 -0
  116. package/dist/src/orgrt/org-state-file.js +116 -0
  117. package/dist/src/orgrt/org-state-file.js.map +1 -0
  118. package/dist/src/orgrt/org-stop.d.ts +6 -0
  119. package/dist/src/orgrt/org-stop.d.ts.map +1 -0
  120. package/dist/src/orgrt/org-stop.js +332 -0
  121. package/dist/src/orgrt/org-stop.js.map +1 -0
  122. package/dist/src/orgrt/org-tools.d.ts +11 -0
  123. package/dist/src/orgrt/org-tools.d.ts.map +1 -0
  124. package/dist/src/orgrt/org-tools.js +305 -0
  125. package/dist/src/orgrt/org-tools.js.map +1 -0
  126. package/dist/src/orgrt/role-incarnation.d.ts +18 -0
  127. package/dist/src/orgrt/role-incarnation.d.ts.map +1 -0
  128. package/dist/src/orgrt/role-incarnation.js +374 -0
  129. package/dist/src/orgrt/role-incarnation.js.map +1 -0
  130. package/dist/src/orgrt/role-respawn.d.ts +7 -0
  131. package/dist/src/orgrt/role-respawn.d.ts.map +1 -0
  132. package/dist/src/orgrt/role-respawn.js +318 -0
  133. package/dist/src/orgrt/role-respawn.js.map +1 -0
  134. package/dist/src/orgrt/role-session-opts.d.ts +389 -0
  135. package/dist/src/orgrt/role-session-opts.d.ts.map +1 -0
  136. package/dist/src/orgrt/role-session-opts.js +289 -0
  137. package/dist/src/orgrt/role-session-opts.js.map +1 -0
  138. package/dist/src/orgrt/runner-resolve.d.ts +43 -0
  139. package/dist/src/orgrt/runner-resolve.d.ts.map +1 -0
  140. package/dist/src/orgrt/runner-resolve.js +77 -0
  141. package/dist/src/orgrt/runner-resolve.js.map +1 -0
  142. package/dist/src/orgrt/session-gate.d.ts +34 -0
  143. package/dist/src/orgrt/session-gate.d.ts.map +1 -0
  144. package/dist/src/orgrt/session-gate.js +74 -0
  145. package/dist/src/orgrt/session-gate.js.map +1 -0
  146. package/dist/src/orgrt/session-prompt.d.ts +31 -0
  147. package/dist/src/orgrt/session-prompt.d.ts.map +1 -0
  148. package/dist/src/orgrt/session-prompt.js +115 -0
  149. package/dist/src/orgrt/session-prompt.js.map +1 -0
  150. package/dist/src/orgrt/session-run.d.ts +18 -0
  151. package/dist/src/orgrt/session-run.d.ts.map +1 -0
  152. package/dist/src/orgrt/session-run.js +429 -0
  153. package/dist/src/orgrt/session-run.js.map +1 -0
  154. package/dist/src/orgrt/session-stream.d.ts +21 -0
  155. package/dist/src/orgrt/session-stream.d.ts.map +1 -0
  156. package/dist/src/orgrt/session-stream.js +173 -0
  157. package/dist/src/orgrt/session-stream.js.map +1 -0
  158. package/dist/src/orgrt/session-types.d.ts +219 -0
  159. package/dist/src/orgrt/session-types.d.ts.map +1 -0
  160. package/dist/src/orgrt/session-types.js +2 -0
  161. package/dist/src/orgrt/session-types.js.map +1 -0
  162. package/dist/src/orgrt/session-usage.d.ts +29 -0
  163. package/dist/src/orgrt/session-usage.d.ts.map +1 -0
  164. package/dist/src/orgrt/session-usage.js +64 -0
  165. package/dist/src/orgrt/session-usage.js.map +1 -0
  166. package/dist/src/orgrt/session.d.ts +5 -281
  167. package/dist/src/orgrt/session.d.ts.map +1 -1
  168. package/dist/src/orgrt/session.js +8 -1117
  169. package/dist/src/orgrt/session.js.map +1 -1
  170. package/dist/tsconfig.tsbuildinfo +1 -1
  171. package/package.json +6 -6
@@ -0,0 +1,163 @@
1
+ // packages/@monomind/cli/src/commands/org-subcommands-runtime.ts
2
+ //
3
+ // `monomind org` runtime subcommands: run, stop, pause, resume, reload,
4
+ // status, serve, supervisor, test-loop, plus the skills library browser.
5
+ import { pauseAction, reloadAction, resumeAction, statusAction, stopAction, } from './org-lifecycle.js';
6
+ import { testLoopAction } from './org-manage.js';
7
+ import { runAction } from './org-run.js';
8
+ import { serveAction, supervisorAction } from './org-serve.js';
9
+ export const skillsSubcommand = {
10
+ name: 'skills',
11
+ description: 'Browse the org skill library and import skills (MIT/Apache-2.0) from other repos',
12
+ options: [
13
+ { name: 'tag', description: 'Filter by tag (list, search)', type: 'string' },
14
+ { name: 'limit', description: 'Max search results (default 10)', type: 'number' },
15
+ {
16
+ name: 'global',
17
+ description: 'import: into ~/.monomind/org-skills instead of this project',
18
+ type: 'boolean',
19
+ },
20
+ { name: 'into', description: 'import: into this library directory', type: 'string' },
21
+ { name: 'only', description: 'import: comma-separated skill names', type: 'string' },
22
+ {
23
+ name: 'tags',
24
+ description: 'import: comma-separated tags to give imported skills',
25
+ type: 'string',
26
+ },
27
+ {
28
+ name: 'overwrite',
29
+ description: 'import: replace skills already in the library',
30
+ type: 'boolean',
31
+ },
32
+ ],
33
+ examples: [
34
+ {
35
+ command: 'monomind org skills search "backend api reviewer"',
36
+ description: 'Find skills for a role',
37
+ },
38
+ { command: 'monomind org skills show systematic-debugging', description: 'Read one skill' },
39
+ {
40
+ command: 'monomind org skills import obra/superpowers --global',
41
+ description: "Import a repo's skills",
42
+ },
43
+ ],
44
+ action: async (ctx) => {
45
+ const { orgSkillsAction } = await import('./org-skills.js');
46
+ return orgSkillsAction(ctx);
47
+ },
48
+ };
49
+ export const runSubcommand = {
50
+ name: 'run',
51
+ description: 'Start an org (foreground daemon)',
52
+ options: [
53
+ { name: 'task', description: 'Override the org goal for this run', type: 'string' },
54
+ {
55
+ name: 'resume',
56
+ description: 'Resume an org run from its persisted checkpoint instead of starting fresh',
57
+ type: 'boolean',
58
+ },
59
+ {
60
+ name: 'cross-process',
61
+ description: 'Discover and message orgs hosted by other monomind processes on this machine (default true)',
62
+ type: 'boolean',
63
+ default: true,
64
+ },
65
+ {
66
+ name: 'dry-run',
67
+ description: "Validate and print each role's briefing without starting any agent sessions",
68
+ type: 'boolean',
69
+ },
70
+ {
71
+ name: 'budget-usd',
72
+ description: 'Hard-stop the run if the upfront cost estimate exceeds this USD value (e.g. --budget-usd 5)',
73
+ type: 'number',
74
+ },
75
+ {
76
+ name: 'yes',
77
+ short: 'y',
78
+ description: 'Skip the interactive cost-estimate confirmation prompt',
79
+ type: 'boolean',
80
+ },
81
+ {
82
+ name: 'auto-approve',
83
+ description: 'Comma-separated gated tools every role may call without human approval for this run (e.g. org_complete). -y alone approves nothing',
84
+ type: 'string',
85
+ },
86
+ ],
87
+ examples: [
88
+ {
89
+ command: 'monomind org run growth --task "weekly report"',
90
+ description: 'Run the growth org once with a task',
91
+ },
92
+ {
93
+ command: 'monomind org run growth --task "weekly report" -y --auto-approve org_complete',
94
+ description: 'Unattended one-shot run that may end itself without a human approving org_complete',
95
+ },
96
+ ],
97
+ action: runAction,
98
+ };
99
+ export const stopSubcommand = {
100
+ name: 'stop',
101
+ description: 'Request a running org daemon to stop',
102
+ action: stopAction,
103
+ };
104
+ export const pauseSubcommand = {
105
+ name: 'pause',
106
+ description: 'Pause an org — current turns finish, no new cycles start',
107
+ action: pauseAction,
108
+ };
109
+ export const resumeSubcommand = {
110
+ name: 'resume',
111
+ description: 'Resume a paused org',
112
+ action: resumeAction,
113
+ };
114
+ export const reloadSubcommand = {
115
+ name: 'reload',
116
+ description: 'Hot-reload an org definition without stopping sessions',
117
+ action: reloadAction,
118
+ };
119
+ export const statusSubcommand = {
120
+ name: 'status',
121
+ description: 'Show runtime state of orgs',
122
+ action: statusAction,
123
+ };
124
+ export const serveSubcommand = {
125
+ name: 'serve',
126
+ description: 'Start the daemon server only (hosts scheduled orgs)',
127
+ options: [
128
+ {
129
+ name: 'cross-process',
130
+ description: 'Discover and message orgs hosted by other monomind processes on this machine (default true)',
131
+ type: 'boolean',
132
+ default: true,
133
+ },
134
+ ],
135
+ action: serveAction,
136
+ };
137
+ export const supervisorSubcommand = {
138
+ name: 'supervisor',
139
+ description: 'Print (or --install) a launchd/systemd unit that keeps `org serve` running',
140
+ options: [
141
+ { name: 'format', description: 'launchd or systemd (default: platform)', type: 'string' },
142
+ {
143
+ name: 'install',
144
+ description: 'Write the unit into the per-user location',
145
+ type: 'boolean',
146
+ },
147
+ ],
148
+ action: supervisorAction,
149
+ };
150
+ export const testLoopSubcommand = {
151
+ name: 'test-loop',
152
+ description: 'Run the org e2e verification loop N times',
153
+ options: [
154
+ { name: 'times', short: 'n', description: 'Iterations', type: 'number', default: 5 },
155
+ {
156
+ name: 'scenario',
157
+ description: 'Run a declarative scenario file (.monomind/scenarios/<file>) instead of the built-in fixture — structural dry-run only',
158
+ type: 'string',
159
+ },
160
+ ],
161
+ action: testLoopAction,
162
+ };
163
+ //# sourceMappingURL=org-subcommands-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-subcommands-runtime.js","sourceRoot":"","sources":["../../../src/commands/org-subcommands-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,154 +1,6 @@
1
- import { OrgDaemon } from '../orgrt/daemon.js';
2
- import type { Command, CommandResult } from '../types.js';
3
- export declare function validateOrgName(name: string | undefined): {
4
- ok: true;
5
- name: string;
6
- } | {
7
- ok: false;
8
- result: CommandResult;
9
- };
10
- export declare function listOrgConfigFiles(orgsDir: string): string[];
11
- /** Remove a lingering stopfile so a fresh `org run` doesn't self-terminate. */
12
- export declare const clearStopfile: (cwd: string, name: string) => void;
13
- /** Remove a lingering reload request so a fresh `org run` doesn't apply it on
14
- * its first tick. One is left behind when a previous run's stop and reload
15
- * landed in the same tick: the stop ends the wait before the reload poll runs. */
16
- export declare const clearReloadfile: (cwd: string, name: string) => void;
17
- /** Drop stop/reload requests left behind by a previous run, for every org
18
- * `org serve` serves. #264: runAction clears these before its wait loop, but
19
- * serveAction started polling with whatever was on disk — so an `org stop`
20
- * that landed after the last daemon exited stopped the next daemon's org
21
- * seconds into its run, and a leftover `org reload` was applied to a
22
- * definition nobody had touched.
23
- *
24
- * Scope is the org config files, not `daemon.listRunning()` (what
25
- * pollStopfiles/pollReloadfiles walk): nothing is running yet at startup, so
26
- * sweeping by that would sweep nothing. Called before the first org can
27
- * start, so a request that arrives once serve is up is never discarded.
28
- *
29
- * Runfiles are deliberately left in place. `.../run` is not the same kind of
30
- * leftover: runAction writes one only against a live daemon and retracts it
31
- * itself when nothing consumes it within 15s, and it reads the file's
32
- * disappearance as "the daemon took the run". Deleting one here would report
33
- * success to a waiting `org run` and start nothing — the silent loss that ack
34
- * loop exists to prevent. A stale runfile at worst starts an org the operator
35
- * did ask for; pollRunfiles already no-ops on one that is running.
36
- *
37
- * Returns the orgs it cleared something for. */
38
- export declare const clearStaleControlFiles: (cwd: string) => string[];
39
- /** True when a pause sentinel exists for an org. */
40
- export declare const isOrgPaused: (cwd: string, name: string) => boolean;
41
- /** Verdict of {@link classifyRun} — what `org status` should say about a
42
- * runtime.json record that claims to be running.
43
- * - `running` — alive and producing events.
44
- * - `idle` — alive, but its event log has been silent for a while.
45
- * - `crashed` — nothing says it is alive any more. */
46
- export type RunState = 'running' | 'idle' | 'crashed';
47
- /** Why a run was judged alive — `pid` is the recorded one still answering;
48
- * the others mean the recorded pid is stale but the run demonstrably isn't. */
49
- export type RunLiveEvidence = 'pid' | 'daemon-heartbeat' | 'run-activity';
50
- /** Liveness verdict for one org's runtime.json record.
51
- *
52
- * #274: a single `process.kill(pid, 0)` probe used to be the whole verdict, so
53
- * a run whose recorded pid had gone stale — the orchestrating process was
54
- * restarted or re-attached without runtime.json being rewritten — was reported
55
- * as "crashed" while its roles were actively exchanging messages, with a
56
- * `mark-complete` suggestion that would have closed out live work. The pid is
57
- * still the first and best signal; when it is gone, two independent signs of
58
- * life are cross-checked before declaring a crash: a fresh `org serve`
59
- * heartbeat that still lists this org, and the run's own event log still
60
- * growing.
61
- *
62
- * Unchanged from before: a record that already says 'crashed' (including one
63
- * written by the process-level crash handler) stays crashed — that is a
64
- * recorded fact, not an inference. */
65
- export declare function classifyRun(cwd: string, org: string, state: {
66
- status?: string;
67
- run?: string;
68
- pid?: number;
69
- closedBy?: string;
70
- }, now?: number): {
71
- state: RunState;
72
- evidence?: RunLiveEvidence;
73
- };
74
- /** Result of {@link checkServeLock}. */
75
- export type ServeLockCheck = {
76
- ok: true;
77
- staleHeartbeatRemoved: boolean;
78
- } | {
79
- ok: false;
80
- pid: number;
81
- };
82
- /** Mutual-exclusion check for `org serve` startup.
83
- *
84
- * Two `org serve` processes started against the same project root have zero
85
- * visibility into each other — each builds its own in-memory `OrgDaemon` and
86
- * independently decides which orgs are "due now", so both can call
87
- * `daemon.startOrg(name)` for the same org and have both processes write to
88
- * the same on-disk state (runtime.json, decisions.jsonl, history.jsonl,
89
- * .mail/) at once. `liveServeDaemonPid` already knows how to read this
90
- * project's serve-heartbeat.json and tell a live daemon's heartbeat from a
91
- * stale one (dead pid, or aged past a few missed 30s beats) — reused here
92
- * as the actual pidfile lock, rather than inventing a second file, since it
93
- * already IS a pidfile (pid + timestamp, written at startup and every
94
- * heartbeat, removed on clean shutdown by `daemon.clearHeartbeat()`).
95
- *
96
- * Call this before the daemon/server/scheduler are constructed, so a
97
- * refusal never opens a port, binds a broker lease, or touches any org's
98
- * state. */
99
- export declare function checkServeLock(cwd: string): ServeLockCheck;
100
- /** The foreground `org run` wait loop. Every `intervalMs` it ends the wait
101
- * when `org stop` wrote the stopfile (stoppedManually) or the daemon no
102
- * longer hosts the org (org_complete, idle watchdog, crash), and otherwise
103
- * applies a pending `org reload`. Before the reload poll was added here only
104
- * `org serve` read the reload file, so `org reload` against an `org run`
105
- * process printed "picks it up within ~2s", exited 0, and changed nothing —
106
- * a rotated endpoint URL kept receiving deliveries until it went dead.
107
- * SIGINT/SIGTERM also end the wait (reported as `signal: true`). */
108
- export declare function waitForRunEnd(cwd: string, name: string, daemon: Pick<OrgDaemon, 'getOrg' | 'listRunning' | 'reloadOrgDef'>, intervalMs?: number): Promise<{
109
- stoppedManually: boolean;
110
- signal?: true;
111
- }>;
112
- /** Just the fields determineRunOutcome needs from runtime.json. */
113
- type RunTerminalState = {
114
- status?: string;
115
- closedBy?: string;
116
- error?: string;
117
- };
118
- /** Decides `org run`'s exit-code-bearing CommandResult from the run's final
119
- * recorded state. Extracted (matching resolvedIdleNudgeCount's precedent for
120
- * the idle watchdog) so this decision is unit-testable without spinning up a
121
- * real daemon/org. Exit 0 ONLY for a clean, goal-driven end (closedBy:
122
- * 'org-complete', set by daemon.ts's org-complete auto-stop path) — every
123
- * other outcome (idle-watchdog stop, boss-restart-exhausted, a process-level
124
- * crash) exits 1 so scripts/supervisors can tell success from failure. */
125
- export declare function runOutcomeResult(name: string, final: RunTerminalState): CommandResult;
126
- /** One pass of the `org serve` stopfile poll.
127
- *
128
- * `monomind org stop <name>` writes `.monomind/orgs/<name>/stop`. `org run` has always
129
- * polled that file; `org serve` did not — so against a serve daemon `org stop` was a
130
- * silent no-op that still printed "daemon exits within 2s" and exited 0 while the org
131
- * kept running. Stops every running org whose stopfile is present, then clears the
132
- * stopfile so the next scheduled iteration isn't killed on sight.
133
- *
134
- * Returns the names it stopped (awaited), so callers/tests don't have to guess. */
135
- export declare const pollStopfiles: (cwd: string, daemon: OrgDaemon) => Promise<string[]>;
136
- export declare const pollReloadfiles: (cwd: string, daemon: OrgDaemon) => Promise<string[]>;
137
- /** One pass of the `org serve` runfile poll — the mirror of pollStopfiles.
138
- *
139
- * A serve daemon owns its orgs, and nothing could ask it to start one off-cycle:
140
- * a scheduled org simply waited for its next tick, and `org run` against a
141
- * served org would spawn a second daemon competing for the same runtime.json
142
- * and broker lease. "Run it now" therefore meant killing and restarting the
143
- * daemon, which resets the schedule and drops any in-flight work.
144
- *
145
- * `.monomind/orgs/<name>/run` is the request. Consumed (deleted) before the
146
- * start, so a crash mid-run cannot wedge the org into a restart loop, and an
147
- * already-running org just clears it — "start now" on something already started
148
- * is satisfied, not an error.
149
- *
150
- * Returns the names it started, so callers/tests don't have to guess. */
151
- export declare const pollRunfiles: (cwd: string, daemon: OrgDaemon) => Promise<string[]>;
1
+ import type { Command } from '../types.js';
2
+ export { checkServeLock, classifyRun, clearReloadfile, clearStaleControlFiles, clearStopfile, isOrgPaused, listOrgConfigFiles, type RunLiveEvidence, type RunState, type ServeLockCheck, validateOrgName, } from './org-control.js';
3
+ export { pollReloadfiles, pollRunfiles, pollStopfiles, runOutcomeResult, waitForRunEnd, } from './org-poll.js';
152
4
  export declare const orgCommand: Command;
153
5
  export default orgCommand;
154
6
  //# sourceMappingURL=org.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../../../src/commands/org.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../../../src/commands/org.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,aAAa,CAAC;AA8C1D,OAAO,EACL,cAAc,EACd,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,eAAe,CAAC;AAMvB,eAAO,MAAM,UAAU,EAAE,OAqDxB,CAAC;eAEa,UAAU"}