oh-my-codex 0.10.2 → 0.10.3

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 (260) hide show
  1. package/README.de.md +4 -4
  2. package/README.es.md +4 -4
  3. package/README.fr.md +4 -4
  4. package/README.it.md +4 -4
  5. package/README.ja.md +4 -4
  6. package/README.ko.md +4 -4
  7. package/README.md +13 -7
  8. package/README.pt.md +4 -4
  9. package/README.ru.md +4 -4
  10. package/README.tr.md +4 -4
  11. package/README.vi.md +4 -4
  12. package/README.zh-TW.md +4 -4
  13. package/README.zh.md +4 -4
  14. package/dist/agents/__tests__/native-config.test.js +37 -33
  15. package/dist/agents/__tests__/native-config.test.js.map +1 -1
  16. package/dist/agents/__tests__/skill-bridge.test.d.ts +2 -0
  17. package/dist/agents/__tests__/skill-bridge.test.d.ts.map +1 -0
  18. package/dist/agents/__tests__/skill-bridge.test.js +71 -0
  19. package/dist/agents/__tests__/skill-bridge.test.js.map +1 -0
  20. package/dist/agents/native-config.d.ts +18 -6
  21. package/dist/agents/native-config.d.ts.map +1 -1
  22. package/dist/agents/native-config.js +109 -92
  23. package/dist/agents/native-config.js.map +1 -1
  24. package/dist/agents/skill-bridge.d.ts +20 -0
  25. package/dist/agents/skill-bridge.d.ts.map +1 -0
  26. package/dist/agents/skill-bridge.js +150 -0
  27. package/dist/agents/skill-bridge.js.map +1 -0
  28. package/dist/autoresearch/__tests__/contracts.test.js +37 -1
  29. package/dist/autoresearch/__tests__/contracts.test.js.map +1 -1
  30. package/dist/autoresearch/__tests__/runtime-parity-extra.test.js +10 -10
  31. package/dist/autoresearch/__tests__/runtime-parity-extra.test.js.map +1 -1
  32. package/dist/autoresearch/__tests__/runtime.test.js +2 -2
  33. package/dist/autoresearch/__tests__/runtime.test.js.map +1 -1
  34. package/dist/autoresearch/contracts.d.ts.map +1 -1
  35. package/dist/autoresearch/contracts.js +17 -10
  36. package/dist/autoresearch/contracts.js.map +1 -1
  37. package/dist/autoresearch/runtime.d.ts.map +1 -1
  38. package/dist/autoresearch/runtime.js +71 -96
  39. package/dist/autoresearch/runtime.js.map +1 -1
  40. package/dist/cli/__tests__/agents-init.test.js +2 -0
  41. package/dist/cli/__tests__/agents-init.test.js.map +1 -1
  42. package/dist/cli/__tests__/agents.test.d.ts +2 -0
  43. package/dist/cli/__tests__/agents.test.d.ts.map +1 -0
  44. package/dist/cli/__tests__/agents.test.js +114 -0
  45. package/dist/cli/__tests__/agents.test.js.map +1 -0
  46. package/dist/cli/__tests__/autoresearch-guided.test.js +156 -1
  47. package/dist/cli/__tests__/autoresearch-guided.test.js.map +1 -1
  48. package/dist/cli/__tests__/autoresearch.test.js +195 -24
  49. package/dist/cli/__tests__/autoresearch.test.js.map +1 -1
  50. package/dist/cli/__tests__/cleanup.test.d.ts +2 -0
  51. package/dist/cli/__tests__/cleanup.test.d.ts.map +1 -0
  52. package/dist/cli/__tests__/cleanup.test.js +213 -0
  53. package/dist/cli/__tests__/cleanup.test.js.map +1 -0
  54. package/dist/cli/__tests__/error-handling-warnings.test.js +1 -1
  55. package/dist/cli/__tests__/error-handling-warnings.test.js.map +1 -1
  56. package/dist/cli/__tests__/explore.test.js +3 -3
  57. package/dist/cli/__tests__/explore.test.js.map +1 -1
  58. package/dist/cli/__tests__/index.test.js +521 -401
  59. package/dist/cli/__tests__/index.test.js.map +1 -1
  60. package/dist/cli/__tests__/native-assets.test.js +72 -9
  61. package/dist/cli/__tests__/native-assets.test.js.map +1 -1
  62. package/dist/cli/__tests__/ralphthon.test.d.ts +2 -0
  63. package/dist/cli/__tests__/ralphthon.test.d.ts.map +1 -0
  64. package/dist/cli/__tests__/ralphthon.test.js +28 -0
  65. package/dist/cli/__tests__/ralphthon.test.js.map +1 -0
  66. package/dist/cli/__tests__/setup-agents-overwrite.test.js +36 -1
  67. package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -1
  68. package/dist/cli/__tests__/setup-prompts-overwrite.test.js +35 -5
  69. package/dist/cli/__tests__/setup-prompts-overwrite.test.js.map +1 -1
  70. package/dist/cli/__tests__/setup-refresh.test.js +2 -2
  71. package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
  72. package/dist/cli/__tests__/setup-scope.test.js +131 -161
  73. package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
  74. package/dist/cli/__tests__/setup-skills-overwrite.test.js +10 -10
  75. package/dist/cli/__tests__/setup-skills-overwrite.test.js.map +1 -1
  76. package/dist/cli/__tests__/sparkshell-cli.test.js +28 -2
  77. package/dist/cli/__tests__/sparkshell-cli.test.js.map +1 -1
  78. package/dist/cli/__tests__/team.test.js +1 -112
  79. package/dist/cli/__tests__/team.test.js.map +1 -1
  80. package/dist/cli/__tests__/uninstall.test.js +7 -20
  81. package/dist/cli/__tests__/uninstall.test.js.map +1 -1
  82. package/dist/cli/agents-init.d.ts.map +1 -1
  83. package/dist/cli/agents-init.js +99 -95
  84. package/dist/cli/agents-init.js.map +1 -1
  85. package/dist/cli/agents.d.ts +14 -0
  86. package/dist/cli/agents.d.ts.map +1 -0
  87. package/dist/cli/agents.js +261 -0
  88. package/dist/cli/agents.js.map +1 -0
  89. package/dist/cli/autoresearch-guided.d.ts +8 -0
  90. package/dist/cli/autoresearch-guided.d.ts.map +1 -1
  91. package/dist/cli/autoresearch-guided.js +104 -37
  92. package/dist/cli/autoresearch-guided.js.map +1 -1
  93. package/dist/cli/autoresearch-intake.d.ts +60 -0
  94. package/dist/cli/autoresearch-intake.d.ts.map +1 -0
  95. package/dist/cli/autoresearch-intake.js +318 -0
  96. package/dist/cli/autoresearch-intake.js.map +1 -0
  97. package/dist/cli/autoresearch.d.ts +3 -1
  98. package/dist/cli/autoresearch.d.ts.map +1 -1
  99. package/dist/cli/autoresearch.js +64 -10
  100. package/dist/cli/autoresearch.js.map +1 -1
  101. package/dist/cli/cleanup.d.ts +52 -0
  102. package/dist/cli/cleanup.d.ts.map +1 -0
  103. package/dist/cli/cleanup.js +302 -0
  104. package/dist/cli/cleanup.js.map +1 -0
  105. package/dist/cli/doctor.d.ts.map +1 -1
  106. package/dist/cli/doctor.js +9 -37
  107. package/dist/cli/doctor.js.map +1 -1
  108. package/dist/cli/explore.d.ts.map +1 -1
  109. package/dist/cli/explore.js +5 -4
  110. package/dist/cli/explore.js.map +1 -1
  111. package/dist/cli/index.d.ts +5 -7
  112. package/dist/cli/index.d.ts.map +1 -1
  113. package/dist/cli/index.js +610 -427
  114. package/dist/cli/index.js.map +1 -1
  115. package/dist/cli/native-assets.d.ts +15 -1
  116. package/dist/cli/native-assets.d.ts.map +1 -1
  117. package/dist/cli/native-assets.js +134 -32
  118. package/dist/cli/native-assets.js.map +1 -1
  119. package/dist/cli/ralph.d.ts.map +1 -1
  120. package/dist/cli/ralph.js +38 -1
  121. package/dist/cli/ralph.js.map +1 -1
  122. package/dist/cli/ralphthon.d.ts +14 -0
  123. package/dist/cli/ralphthon.d.ts.map +1 -0
  124. package/dist/cli/ralphthon.js +234 -0
  125. package/dist/cli/ralphthon.js.map +1 -0
  126. package/dist/cli/setup.d.ts +1 -4
  127. package/dist/cli/setup.d.ts.map +1 -1
  128. package/dist/cli/setup.js +111 -76
  129. package/dist/cli/setup.js.map +1 -1
  130. package/dist/cli/sparkshell.d.ts +3 -1
  131. package/dist/cli/sparkshell.d.ts.map +1 -1
  132. package/dist/cli/sparkshell.js +35 -16
  133. package/dist/cli/sparkshell.js.map +1 -1
  134. package/dist/cli/team.d.ts.map +1 -1
  135. package/dist/cli/team.js +1 -0
  136. package/dist/cli/team.js.map +1 -1
  137. package/dist/cli/uninstall.d.ts +1 -1
  138. package/dist/cli/uninstall.d.ts.map +1 -1
  139. package/dist/cli/uninstall.js +82 -64
  140. package/dist/cli/uninstall.js.map +1 -1
  141. package/dist/config/__tests__/generator-idempotent.test.js +10 -10
  142. package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
  143. package/dist/config/__tests__/generator-notify.test.js +15 -0
  144. package/dist/config/__tests__/generator-notify.test.js.map +1 -1
  145. package/dist/config/generator.d.ts +0 -1
  146. package/dist/config/generator.d.ts.map +1 -1
  147. package/dist/config/generator.js +53 -42
  148. package/dist/config/generator.js.map +1 -1
  149. package/dist/hooks/__tests__/agents-overlay.test.js +295 -230
  150. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
  151. package/dist/hooks/__tests__/deep-interview-contract.test.js +49 -24
  152. package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
  153. package/dist/hooks/__tests__/notify-fallback-watcher-ralphthon.test.d.ts +2 -0
  154. package/dist/hooks/__tests__/notify-fallback-watcher-ralphthon.test.d.ts.map +1 -0
  155. package/dist/hooks/__tests__/notify-fallback-watcher-ralphthon.test.js +193 -0
  156. package/dist/hooks/__tests__/notify-fallback-watcher-ralphthon.test.js.map +1 -0
  157. package/dist/hooks/agents-overlay.d.ts +1 -1
  158. package/dist/hooks/agents-overlay.d.ts.map +1 -1
  159. package/dist/hooks/agents-overlay.js +109 -106
  160. package/dist/hooks/agents-overlay.js.map +1 -1
  161. package/dist/modes/base.d.ts +1 -1
  162. package/dist/modes/base.d.ts.map +1 -1
  163. package/dist/modes/base.js +1 -1
  164. package/dist/modes/base.js.map +1 -1
  165. package/dist/ralphthon/__tests__/bootstrap.test.d.ts +2 -0
  166. package/dist/ralphthon/__tests__/bootstrap.test.d.ts.map +1 -0
  167. package/dist/ralphthon/__tests__/bootstrap.test.js +23 -0
  168. package/dist/ralphthon/__tests__/bootstrap.test.js.map +1 -0
  169. package/dist/ralphthon/__tests__/orchestrator.test.d.ts +2 -0
  170. package/dist/ralphthon/__tests__/orchestrator.test.d.ts.map +1 -0
  171. package/dist/ralphthon/__tests__/orchestrator.test.js +309 -0
  172. package/dist/ralphthon/__tests__/orchestrator.test.js.map +1 -0
  173. package/dist/ralphthon/__tests__/prd.test.d.ts +2 -0
  174. package/dist/ralphthon/__tests__/prd.test.d.ts.map +1 -0
  175. package/dist/ralphthon/__tests__/prd.test.js +133 -0
  176. package/dist/ralphthon/__tests__/prd.test.js.map +1 -0
  177. package/dist/ralphthon/bootstrap.d.ts +3 -0
  178. package/dist/ralphthon/bootstrap.d.ts.map +1 -0
  179. package/dist/ralphthon/bootstrap.js +84 -0
  180. package/dist/ralphthon/bootstrap.js.map +1 -0
  181. package/dist/ralphthon/orchestrator.d.ts +50 -0
  182. package/dist/ralphthon/orchestrator.d.ts.map +1 -0
  183. package/dist/ralphthon/orchestrator.js +362 -0
  184. package/dist/ralphthon/orchestrator.js.map +1 -0
  185. package/dist/ralphthon/prd.d.ts +191 -0
  186. package/dist/ralphthon/prd.d.ts.map +1 -0
  187. package/dist/ralphthon/prd.js +355 -0
  188. package/dist/ralphthon/prd.js.map +1 -0
  189. package/dist/ralphthon/runtime.d.ts +31 -0
  190. package/dist/ralphthon/runtime.d.ts.map +1 -0
  191. package/dist/ralphthon/runtime.js +104 -0
  192. package/dist/ralphthon/runtime.js.map +1 -0
  193. package/dist/ralphthon/tmux.d.ts +3 -0
  194. package/dist/ralphthon/tmux.d.ts.map +1 -0
  195. package/dist/ralphthon/tmux.js +39 -0
  196. package/dist/ralphthon/tmux.js.map +1 -0
  197. package/dist/subagents/__tests__/tracker.test.d.ts +2 -0
  198. package/dist/subagents/__tests__/tracker.test.d.ts.map +1 -0
  199. package/dist/subagents/__tests__/tracker.test.js +47 -0
  200. package/dist/subagents/__tests__/tracker.test.js.map +1 -0
  201. package/dist/subagents/tracker.d.ts +52 -0
  202. package/dist/subagents/tracker.d.ts.map +1 -0
  203. package/dist/subagents/tracker.js +175 -0
  204. package/dist/subagents/tracker.js.map +1 -0
  205. package/dist/team/__tests__/worker-bootstrap.test.js +189 -163
  206. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  207. package/dist/team/__tests__/worktree.test.js +1 -1
  208. package/dist/team/__tests__/worktree.test.js.map +1 -1
  209. package/dist/team/worker-bootstrap.d.ts +1 -1
  210. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  211. package/dist/team/worker-bootstrap.js +58 -63
  212. package/dist/team/worker-bootstrap.js.map +1 -1
  213. package/dist/team/worktree.js +1 -1
  214. package/dist/team/worktree.js.map +1 -1
  215. package/dist/utils/__tests__/agents-md.test.d.ts +2 -0
  216. package/dist/utils/__tests__/agents-md.test.d.ts.map +1 -0
  217. package/dist/utils/__tests__/agents-md.test.js +32 -0
  218. package/dist/utils/__tests__/agents-md.test.js.map +1 -0
  219. package/dist/utils/__tests__/agents-model-table.test.d.ts +2 -0
  220. package/dist/utils/__tests__/agents-model-table.test.d.ts.map +1 -0
  221. package/dist/utils/__tests__/agents-model-table.test.js +84 -0
  222. package/dist/utils/__tests__/agents-model-table.test.js.map +1 -0
  223. package/dist/utils/__tests__/paths.test.js +78 -83
  224. package/dist/utils/__tests__/paths.test.js.map +1 -1
  225. package/dist/utils/agents-md.d.ts.map +1 -1
  226. package/dist/utils/agents-md.js +10 -0
  227. package/dist/utils/agents-md.js.map +1 -1
  228. package/dist/utils/agents-model-table.d.ts +16 -0
  229. package/dist/utils/agents-model-table.d.ts.map +1 -0
  230. package/dist/utils/agents-model-table.js +83 -0
  231. package/dist/utils/agents-model-table.js.map +1 -0
  232. package/dist/utils/paths.d.ts +6 -6
  233. package/dist/utils/paths.d.ts.map +1 -1
  234. package/dist/utils/paths.js +31 -31
  235. package/dist/utils/paths.js.map +1 -1
  236. package/dist/verification/__tests__/explore-harness-release-workflow.test.js +21 -3
  237. package/dist/verification/__tests__/explore-harness-release-workflow.test.js.map +1 -1
  238. package/dist/verification/__tests__/native-release-manifest.test.d.ts +2 -0
  239. package/dist/verification/__tests__/native-release-manifest.test.d.ts.map +1 -0
  240. package/dist/verification/__tests__/native-release-manifest.test.js +80 -0
  241. package/dist/verification/__tests__/native-release-manifest.test.js.map +1 -0
  242. package/package.json +1 -1
  243. package/prompts/executor.md +15 -0
  244. package/scripts/__tests__/smoke-packed-install.test.mjs +137 -8
  245. package/scripts/eval-adaptive-sort-optimization.py +24 -0
  246. package/scripts/eval-in-action-cat-shellout-demo.js +31 -0
  247. package/scripts/eval-ml-kaggle-model-optimization.py +29 -0
  248. package/scripts/eval-noisy-bayesopt-highdim.py +44 -0
  249. package/scripts/eval-noisy-latent-subspace-discovery.py +44 -0
  250. package/scripts/generate-native-release-manifest.mjs +14 -3
  251. package/scripts/notify-fallback-watcher.js +308 -6
  252. package/scripts/notify-hook.js +20 -0
  253. package/scripts/run-autoresearch-showcase.sh +75 -0
  254. package/scripts/smoke-packed-install.mjs +142 -10
  255. package/skills/deep-interview/SKILL.md +30 -1
  256. package/skills/omx-setup/SKILL.md +2 -2
  257. package/skills/skill/SKILL.md +32 -32
  258. package/skills/team/SKILL.md +6 -0
  259. package/skills/worker/SKILL.md +2 -2
  260. package/templates/AGENTS.md +97 -16
@@ -0,0 +1,318 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { mkdir, readdir, readFile, stat, writeFile } from 'node:fs/promises';
3
+ import { join } from 'node:path';
4
+ import { parseSandboxContract, slugifyMissionName } from '../autoresearch/contracts.js';
5
+ const BLOCKED_EVALUATOR_PATTERNS = [
6
+ /<[^>]+>/i,
7
+ /\bTODO\b/i,
8
+ /\bTBD\b/i,
9
+ /REPLACE_ME/i,
10
+ /CHANGEME/i,
11
+ /your-command-here/i,
12
+ ];
13
+ const DEEP_INTERVIEW_DRAFT_PREFIX = 'deep-interview-autoresearch-';
14
+ const AUTORESEARCH_ARTIFACT_DIR_PREFIX = 'autoresearch-';
15
+ export const AUTORESEARCH_DEEP_INTERVIEW_RESULT_KIND = 'omx.autoresearch.deep-interview/v1';
16
+ function defaultDraftEvaluator(topic) {
17
+ const detail = topic.trim() || 'the mission';
18
+ return `TODO replace with evaluator command for: ${detail}`;
19
+ }
20
+ function escapeRegex(value) {
21
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
22
+ }
23
+ function extractMarkdownSection(markdown, heading) {
24
+ const pattern = new RegExp(`^##\\s+${escapeRegex(heading)}\\s*$`, 'im');
25
+ const match = pattern.exec(markdown);
26
+ if (!match || match.index < 0)
27
+ return '';
28
+ const start = match.index + match[0].length;
29
+ const remainder = markdown.slice(start);
30
+ const nextHeading = remainder.search(/^##\s+/m);
31
+ return (nextHeading >= 0 ? remainder.slice(0, nextHeading) : remainder).trim();
32
+ }
33
+ function parseLaunchReadinessSection(section) {
34
+ const normalized = section.trim();
35
+ if (!normalized) {
36
+ return { launchReady: false, blockedReasons: ['Launch readiness section is missing.'] };
37
+ }
38
+ const launchReady = /Launch-ready:\s*yes/i.test(normalized);
39
+ const blockedReasons = launchReady
40
+ ? []
41
+ : normalized
42
+ .split(/\r?\n/)
43
+ .map((line) => line.trim())
44
+ .filter((line) => /^-\s+/.test(line))
45
+ .map((line) => line.replace(/^-\s+/, '').trim())
46
+ .filter(Boolean);
47
+ return { launchReady, blockedReasons };
48
+ }
49
+ function normalizeKeepPolicy(raw) {
50
+ return raw.trim().toLowerCase() === 'pass_only' ? 'pass_only' : 'score_improvement';
51
+ }
52
+ function buildArtifactDir(repoRoot, slug) {
53
+ return join(repoRoot, '.omx', 'specs', `${AUTORESEARCH_ARTIFACT_DIR_PREFIX}${slug}`);
54
+ }
55
+ function buildDraftArtifactPath(repoRoot, slug) {
56
+ return join(repoRoot, '.omx', 'specs', `${DEEP_INTERVIEW_DRAFT_PREFIX}${slug}.md`);
57
+ }
58
+ function buildResultPath(repoRoot, slug) {
59
+ return join(buildArtifactDir(repoRoot, slug), 'result.json');
60
+ }
61
+ export function buildMissionContent(topic) {
62
+ return `# Mission\n\n${topic}\n`;
63
+ }
64
+ export function buildSandboxContent(evaluatorCommand, keepPolicy) {
65
+ const safeCommand = evaluatorCommand.replace(/[\r\n]/g, ' ').trim();
66
+ return `---\nevaluator:\n command: ${safeCommand}\n format: json\n keep_policy: ${keepPolicy}\n---\n`;
67
+ }
68
+ export function isLaunchReadyEvaluatorCommand(command) {
69
+ const normalized = command.trim();
70
+ if (!normalized) {
71
+ return false;
72
+ }
73
+ return !BLOCKED_EVALUATOR_PATTERNS.some((pattern) => pattern.test(normalized));
74
+ }
75
+ function buildLaunchReadinessSection(launchReady, blockedReasons) {
76
+ if (launchReady) {
77
+ return 'Launch-ready: yes\n- Evaluator command is concrete and can be compiled into sandbox.md';
78
+ }
79
+ return [
80
+ 'Launch-ready: no',
81
+ ...blockedReasons.map((reason) => `- ${reason}`),
82
+ ].join('\n');
83
+ }
84
+ export function buildAutoresearchDraftArtifactContent(compileTarget, seedInputs, launchReady, blockedReasons) {
85
+ const seedTopic = seedInputs.topic?.trim() || '(none)';
86
+ const seedEvaluator = seedInputs.evaluatorCommand?.trim() || '(none)';
87
+ const seedKeepPolicy = seedInputs.keepPolicy || '(none)';
88
+ const seedSlug = seedInputs.slug?.trim() || '(none)';
89
+ return [
90
+ `# Deep Interview Autoresearch Draft — ${compileTarget.slug}`,
91
+ '',
92
+ '## Mission Draft',
93
+ compileTarget.topic,
94
+ '',
95
+ '## Evaluator Draft',
96
+ compileTarget.evaluatorCommand,
97
+ '',
98
+ '## Keep Policy',
99
+ compileTarget.keepPolicy,
100
+ '',
101
+ '## Session Slug',
102
+ compileTarget.slug,
103
+ '',
104
+ '## Seed Inputs',
105
+ `- topic: ${seedTopic}`,
106
+ `- evaluator: ${seedEvaluator}`,
107
+ `- keep_policy: ${seedKeepPolicy}`,
108
+ `- slug: ${seedSlug}`,
109
+ '',
110
+ '## Launch Readiness',
111
+ buildLaunchReadinessSection(launchReady, blockedReasons),
112
+ '',
113
+ '## Confirmation Bridge',
114
+ '- refine further',
115
+ '- launch',
116
+ '',
117
+ ].join('\n');
118
+ }
119
+ export async function writeAutoresearchDraftArtifact(input) {
120
+ const topic = input.topic.trim();
121
+ if (!topic) {
122
+ throw new Error('Research topic is required.');
123
+ }
124
+ const slug = slugifyMissionName(input.slug?.trim() || topic);
125
+ const evaluatorCommand = (input.evaluatorCommand?.trim() || defaultDraftEvaluator(topic)).replace(/[\r\n]+/g, ' ').trim();
126
+ const compileTarget = {
127
+ topic,
128
+ evaluatorCommand,
129
+ keepPolicy: input.keepPolicy,
130
+ slug,
131
+ repoRoot: input.repoRoot,
132
+ };
133
+ const blockedReasons = [];
134
+ if (!isLaunchReadyEvaluatorCommand(evaluatorCommand)) {
135
+ blockedReasons.push('Evaluator command is still a placeholder/template and must be replaced before launch.');
136
+ }
137
+ if (blockedReasons.length === 0) {
138
+ parseSandboxContract(buildSandboxContent(evaluatorCommand, input.keepPolicy));
139
+ }
140
+ const launchReady = blockedReasons.length === 0;
141
+ const specsDir = join(input.repoRoot, '.omx', 'specs');
142
+ await mkdir(specsDir, { recursive: true });
143
+ const path = buildDraftArtifactPath(input.repoRoot, slug);
144
+ const content = buildAutoresearchDraftArtifactContent(compileTarget, input.seedInputs || {}, launchReady, blockedReasons);
145
+ await writeFile(path, content, 'utf-8');
146
+ return { compileTarget, path, content, launchReady, blockedReasons };
147
+ }
148
+ export async function writeAutoresearchDeepInterviewArtifacts(input) {
149
+ const draft = await writeAutoresearchDraftArtifact(input);
150
+ const artifactDir = buildArtifactDir(input.repoRoot, draft.compileTarget.slug);
151
+ await mkdir(artifactDir, { recursive: true });
152
+ const missionArtifactPath = join(artifactDir, 'mission.md');
153
+ const sandboxArtifactPath = join(artifactDir, 'sandbox.md');
154
+ const resultPath = buildResultPath(input.repoRoot, draft.compileTarget.slug);
155
+ const missionContent = buildMissionContent(draft.compileTarget.topic);
156
+ const sandboxContent = buildSandboxContent(draft.compileTarget.evaluatorCommand, draft.compileTarget.keepPolicy);
157
+ parseSandboxContract(sandboxContent);
158
+ await writeFile(missionArtifactPath, missionContent, 'utf-8');
159
+ await writeFile(sandboxArtifactPath, sandboxContent, 'utf-8');
160
+ const persisted = {
161
+ kind: AUTORESEARCH_DEEP_INTERVIEW_RESULT_KIND,
162
+ compileTarget: draft.compileTarget,
163
+ draftArtifactPath: draft.path,
164
+ missionArtifactPath,
165
+ sandboxArtifactPath,
166
+ launchReady: draft.launchReady,
167
+ blockedReasons: draft.blockedReasons,
168
+ };
169
+ await writeFile(resultPath, `${JSON.stringify(persisted, null, 2)}\n`, 'utf-8');
170
+ return {
171
+ compileTarget: draft.compileTarget,
172
+ draftArtifactPath: draft.path,
173
+ missionArtifactPath,
174
+ sandboxArtifactPath,
175
+ resultPath,
176
+ missionContent,
177
+ sandboxContent,
178
+ launchReady: draft.launchReady,
179
+ blockedReasons: draft.blockedReasons,
180
+ };
181
+ }
182
+ function parseDraftArtifactContent(content, repoRoot, draftArtifactPath) {
183
+ const missionDraft = extractMarkdownSection(content, 'Mission Draft').trim();
184
+ const evaluatorDraft = extractMarkdownSection(content, 'Evaluator Draft').trim().replace(/[\r\n]+/g, ' ');
185
+ const keepPolicyRaw = extractMarkdownSection(content, 'Keep Policy').trim();
186
+ const slugRaw = extractMarkdownSection(content, 'Session Slug').trim();
187
+ const launchReadiness = parseLaunchReadinessSection(extractMarkdownSection(content, 'Launch Readiness'));
188
+ if (!missionDraft) {
189
+ throw new Error(`Missing Mission Draft section in ${draftArtifactPath}`);
190
+ }
191
+ if (!evaluatorDraft) {
192
+ throw new Error(`Missing Evaluator Draft section in ${draftArtifactPath}`);
193
+ }
194
+ const slug = slugifyMissionName(slugRaw || missionDraft);
195
+ const compileTarget = {
196
+ topic: missionDraft,
197
+ evaluatorCommand: evaluatorDraft,
198
+ keepPolicy: normalizeKeepPolicy(keepPolicyRaw || 'score_improvement'),
199
+ slug,
200
+ repoRoot,
201
+ };
202
+ const missionContent = buildMissionContent(compileTarget.topic);
203
+ const sandboxContent = buildSandboxContent(compileTarget.evaluatorCommand, compileTarget.keepPolicy);
204
+ parseSandboxContract(sandboxContent);
205
+ return {
206
+ compileTarget,
207
+ draftArtifactPath,
208
+ missionArtifactPath: join(buildArtifactDir(repoRoot, slug), 'mission.md'),
209
+ sandboxArtifactPath: join(buildArtifactDir(repoRoot, slug), 'sandbox.md'),
210
+ resultPath: buildResultPath(repoRoot, slug),
211
+ missionContent,
212
+ sandboxContent,
213
+ launchReady: launchReadiness.launchReady,
214
+ blockedReasons: launchReadiness.blockedReasons,
215
+ };
216
+ }
217
+ async function readPersistedResult(resultPath) {
218
+ const raw = await readFile(resultPath, 'utf-8');
219
+ const parsed = JSON.parse(raw);
220
+ if (parsed.kind !== AUTORESEARCH_DEEP_INTERVIEW_RESULT_KIND) {
221
+ throw new Error(`Unsupported autoresearch deep-interview result payload: ${resultPath}`);
222
+ }
223
+ if (!parsed.compileTarget) {
224
+ throw new Error(`Missing compileTarget in ${resultPath}`);
225
+ }
226
+ const compileTarget = parsed.compileTarget;
227
+ const draftArtifactPath = typeof parsed.draftArtifactPath === 'string' ? parsed.draftArtifactPath : buildDraftArtifactPath(compileTarget.repoRoot, compileTarget.slug);
228
+ const missionArtifactPath = typeof parsed.missionArtifactPath === 'string' ? parsed.missionArtifactPath : join(buildArtifactDir(compileTarget.repoRoot, compileTarget.slug), 'mission.md');
229
+ const sandboxArtifactPath = typeof parsed.sandboxArtifactPath === 'string' ? parsed.sandboxArtifactPath : join(buildArtifactDir(compileTarget.repoRoot, compileTarget.slug), 'sandbox.md');
230
+ const missionContent = await readFile(missionArtifactPath, 'utf-8');
231
+ const sandboxContent = await readFile(sandboxArtifactPath, 'utf-8');
232
+ parseSandboxContract(sandboxContent);
233
+ return {
234
+ compileTarget,
235
+ draftArtifactPath,
236
+ missionArtifactPath,
237
+ sandboxArtifactPath,
238
+ resultPath,
239
+ missionContent,
240
+ sandboxContent,
241
+ launchReady: parsed.launchReady === true,
242
+ blockedReasons: Array.isArray(parsed.blockedReasons)
243
+ ? parsed.blockedReasons.filter((value) => typeof value === 'string' && value.trim().length > 0)
244
+ : [],
245
+ };
246
+ }
247
+ async function listMarkdownDraftPaths(repoRoot) {
248
+ const specsDir = join(repoRoot, '.omx', 'specs');
249
+ if (!existsSync(specsDir))
250
+ return [];
251
+ const entries = await readdir(specsDir, { withFileTypes: true });
252
+ return entries
253
+ .filter((entry) => entry.isFile() && entry.name.startsWith(DEEP_INTERVIEW_DRAFT_PREFIX) && entry.name.endsWith('.md'))
254
+ .map((entry) => join(specsDir, entry.name));
255
+ }
256
+ export async function listAutoresearchDeepInterviewResultPaths(repoRoot) {
257
+ const specsDir = join(repoRoot, '.omx', 'specs');
258
+ if (!existsSync(specsDir))
259
+ return [];
260
+ const entries = await readdir(specsDir, { withFileTypes: true });
261
+ const resultPaths = entries
262
+ .filter((entry) => entry.isDirectory() && entry.name.startsWith(AUTORESEARCH_ARTIFACT_DIR_PREFIX))
263
+ .map((entry) => join(specsDir, entry.name, 'result.json'))
264
+ .filter((path) => existsSync(path));
265
+ return resultPaths.sort((left, right) => left.localeCompare(right));
266
+ }
267
+ async function filterRecentPaths(paths, newerThanMs, excludePaths) {
268
+ const filtered = [];
269
+ for (const path of paths) {
270
+ if (excludePaths?.has(path)) {
271
+ continue;
272
+ }
273
+ if (typeof newerThanMs === 'number') {
274
+ const metadata = await stat(path).catch(() => null);
275
+ if (!metadata || metadata.mtimeMs < newerThanMs) {
276
+ continue;
277
+ }
278
+ }
279
+ filtered.push(path);
280
+ }
281
+ return filtered;
282
+ }
283
+ export async function resolveAutoresearchDeepInterviewResult(repoRoot, options = {}) {
284
+ const slug = options.slug?.trim() ? slugifyMissionName(options.slug) : null;
285
+ if (slug) {
286
+ const resultPath = buildResultPath(repoRoot, slug);
287
+ if (existsSync(resultPath)) {
288
+ const metadata = await stat(resultPath).catch(() => null);
289
+ if (!metadata || options.newerThanMs == null || metadata.mtimeMs >= options.newerThanMs) {
290
+ return readPersistedResult(resultPath);
291
+ }
292
+ }
293
+ const draftArtifactPath = buildDraftArtifactPath(repoRoot, slug);
294
+ if (existsSync(draftArtifactPath)) {
295
+ const metadata = await stat(draftArtifactPath).catch(() => null);
296
+ if (!metadata || options.newerThanMs == null || metadata.mtimeMs >= options.newerThanMs) {
297
+ const draftContent = await readFile(draftArtifactPath, 'utf-8');
298
+ return parseDraftArtifactContent(draftContent, repoRoot, draftArtifactPath);
299
+ }
300
+ }
301
+ return null;
302
+ }
303
+ const resultPaths = await filterRecentPaths(await listAutoresearchDeepInterviewResultPaths(repoRoot), options.newerThanMs, options.excludeResultPaths);
304
+ const resultEntries = await Promise.all(resultPaths.map(async (path) => ({ path, metadata: await stat(path) })));
305
+ const newestResultPath = resultEntries.sort((left, right) => right.metadata.mtimeMs - left.metadata.mtimeMs)[0]?.path;
306
+ if (newestResultPath) {
307
+ return readPersistedResult(newestResultPath);
308
+ }
309
+ const draftPaths = await filterRecentPaths(await listMarkdownDraftPaths(repoRoot), options.newerThanMs);
310
+ const draftEntries = await Promise.all(draftPaths.map(async (path) => ({ path, metadata: await stat(path) })));
311
+ const newestDraftPath = draftEntries.sort((left, right) => right.metadata.mtimeMs - left.metadata.mtimeMs)[0]?.path;
312
+ if (!newestDraftPath) {
313
+ return null;
314
+ }
315
+ const draftContent = await readFile(newestDraftPath, 'utf-8');
316
+ return parseDraftArtifactContent(draftContent, repoRoot, newestDraftPath);
317
+ }
318
+ //# sourceMappingURL=autoresearch-intake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoresearch-intake.js","sourceRoot":"","sources":["../../src/cli/autoresearch-intake.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- export declare const AUTORESEARCH_HELP = "omx autoresearch - Launch OMX autoresearch with thin-supervisor parity semantics\n\nUsage:\n omx autoresearch (guided setup + background launch)\n omx autoresearch init [--topic T] [--evaluator CMD] [--keep-policy P] [--slug S]\n omx autoresearch <mission-dir> [codex-args...]\n omx autoresearch --resume <run-id> [codex-args...]\n\nArguments:\n (no args) Interactive guided setup: collects topic, evaluator, policy, and slug,\n generates a mission directory, then spawns autoresearch in a background tmux session.\n init Non-interactive mission scaffolding via flags (all four flags required).\n <mission-dir> Directory inside a git repository containing mission.md and sandbox.md\n <run-id> Existing autoresearch run id from .omx/logs/autoresearch/<run-id>/manifest.json\n\nBehavior:\n - validates mission.md and sandbox.md\n - requires sandbox.md YAML frontmatter with evaluator.command and evaluator.format=json\n - fresh launch creates a run-tagged autoresearch/<slug>/<run-tag> lane\n - supervisor records baseline, candidate, keep/discard/reset, and results artifacts under .omx/logs/autoresearch/\n - --resume loads the authoritative per-run manifest and continues from the last kept commit\n";
1
+ import { parseInitArgs } from './autoresearch-guided.js';
2
+ export declare const AUTORESEARCH_HELP = "omx autoresearch - Launch OMX autoresearch with thin-supervisor parity semantics\n\nUsage:\n omx autoresearch (launch Codex CLI deep-interview intake, then background launch)\n omx autoresearch [--topic T] [--evaluator CMD] [--keep-policy P] [--slug S]\n omx autoresearch init [--topic T] [--evaluator CMD] [--keep-policy P] [--slug S]\n omx autoresearch <mission-dir> [codex-args...]\n omx autoresearch --resume <run-id> [codex-args...]\n\nArguments:\n (no args) Launch an interactive Codex session that activates deep-interview --autoresearch,\n writes .omx/specs artifacts, then launches only after explicit confirmation.\n --topic/... Seed the deep-interview intake with draft values; still requires refinement/confirmation before launch.\n init Bare init is an interactive deep-interview alias on TTYs; init with flags is the expert scaffold path.\n <mission-dir> Directory inside a git repository containing mission.md and sandbox.md\n <run-id> Existing autoresearch run id from .omx/logs/autoresearch/<run-id>/manifest.json\n\nBehavior:\n - deep-interview intake writes canonical artifacts under .omx/specs before launch\n - validates mission.md and sandbox.md\n - requires sandbox.md YAML frontmatter with evaluator.command and evaluator.format=json\n - fresh launch creates a run-tagged autoresearch/<slug>/<run-tag> lane\n - supervisor records baseline, candidate, keep/discard/reset, and results artifacts under .omx/logs/autoresearch/\n - --resume loads the authoritative per-run manifest and continues from the last kept commit\n";
2
3
  export declare function normalizeAutoresearchCodexArgs(codexArgs: readonly string[]): string[];
3
4
  export interface ParsedAutoresearchArgs {
4
5
  missionDir: string | null;
@@ -6,6 +7,7 @@ export interface ParsedAutoresearchArgs {
6
7
  codexArgs: string[];
7
8
  guided?: boolean;
8
9
  initArgs?: string[];
10
+ seedArgs?: ReturnType<typeof parseInitArgs>;
9
11
  }
10
12
  export declare function parseAutoresearchArgs(args: readonly string[]): ParsedAutoresearchArgs;
11
13
  export declare function autoresearchCommand(args: string[]): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"autoresearch.d.ts","sourceRoot":"","sources":["../../src/cli/autoresearch.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,iBAAiB,iyCAqB7B,CAAC;AAKF,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CA2BrF;AAsBD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAUD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,sBAAsB,CAkCrF;AAgDD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DvE"}
1
+ {"version":3,"file":"autoresearch.d.ts","sourceRoot":"","sources":["../../src/cli/autoresearch.ts"],"names":[],"mappings":"AAeA,OAAO,EAIL,aAAa,EAEd,MAAM,0BAA0B,CAAC;AAIlC,eAAO,MAAM,iBAAiB,+nDAwB7B,CAAC;AA8DF,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CA2BrF;AAsBD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;CAC7C;AAUD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,sBAAsB,CAmCrF;AAiDD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4DvE"}
@@ -4,24 +4,28 @@ import { ensureWorktree, planWorktreeTarget } from '../team/worktree.js';
4
4
  import { loadAutoresearchMissionContract } from '../autoresearch/contracts.js';
5
5
  import { countTrailingAutoresearchNoops, finalizeAutoresearchRunState, loadAutoresearchRunManifest, materializeAutoresearchMissionToWorktree, prepareAutoresearchRuntime, processAutoresearchCandidate, resumeAutoresearchRuntime, buildAutoresearchRunTag, } from '../autoresearch/runtime.js';
6
6
  import { assertModeStartAllowed } from '../modes/base.js';
7
- import { guidedAutoresearchSetup, initAutoresearchMission, parseInitArgs, spawnAutoresearchTmux } from "./autoresearch-guided.js";
8
- import { CODEX_BYPASS_FLAG, MADMAX_FLAG } from "./constants.js";
7
+ import { buildAutoresearchDeepInterviewPrompt, initAutoresearchMission, materializeAutoresearchDeepInterviewResult, parseInitArgs, spawnAutoresearchTmux, } from './autoresearch-guided.js';
8
+ import { resolveAutoresearchDeepInterviewResult } from './autoresearch-intake.js';
9
+ import { CODEX_BYPASS_FLAG, MADMAX_FLAG } from './constants.js';
9
10
  export const AUTORESEARCH_HELP = `omx autoresearch - Launch OMX autoresearch with thin-supervisor parity semantics
10
11
 
11
12
  Usage:
12
- omx autoresearch (guided setup + background launch)
13
+ omx autoresearch (launch Codex CLI deep-interview intake, then background launch)
14
+ omx autoresearch [--topic T] [--evaluator CMD] [--keep-policy P] [--slug S]
13
15
  omx autoresearch init [--topic T] [--evaluator CMD] [--keep-policy P] [--slug S]
14
16
  omx autoresearch <mission-dir> [codex-args...]
15
17
  omx autoresearch --resume <run-id> [codex-args...]
16
18
 
17
19
  Arguments:
18
- (no args) Interactive guided setup: collects topic, evaluator, policy, and slug,
19
- generates a mission directory, then spawns autoresearch in a background tmux session.
20
- init Non-interactive mission scaffolding via flags (all four flags required).
20
+ (no args) Launch an interactive Codex session that activates deep-interview --autoresearch,
21
+ writes .omx/specs artifacts, then launches only after explicit confirmation.
22
+ --topic/... Seed the deep-interview intake with draft values; still requires refinement/confirmation before launch.
23
+ init Bare init is an interactive deep-interview alias on TTYs; init with flags is the expert scaffold path.
21
24
  <mission-dir> Directory inside a git repository containing mission.md and sandbox.md
22
25
  <run-id> Existing autoresearch run id from .omx/logs/autoresearch/<run-id>/manifest.json
23
26
 
24
27
  Behavior:
28
+ - deep-interview intake writes canonical artifacts under .omx/specs before launch
25
29
  - validates mission.md and sandbox.md
26
30
  - requires sandbox.md YAML frontmatter with evaluator.command and evaluator.format=json
27
31
  - fresh launch creates a run-tagged autoresearch/<slug>/<run-tag> lane
@@ -30,6 +34,55 @@ Behavior:
30
34
  `;
31
35
  const AUTORESEARCH_APPEND_INSTRUCTIONS_ENV = 'OMX_AUTORESEARCH_APPEND_INSTRUCTIONS_FILE';
32
36
  const AUTORESEARCH_MAX_CONSECUTIVE_NOOPS = 3;
37
+ function buildAutoresearchDeepInterviewAppendix() {
38
+ return [
39
+ '<autoresearch_deep_interview_mode>',
40
+ 'You are in OMX autoresearch intake mode.',
41
+ 'Run the deep-interview skill in autoresearch mode and clarify the research mission before launch.',
42
+ 'Do not start tmux, do not launch `omx autoresearch`, and do not bypass the user confirmation boundary.',
43
+ 'When the user confirms launch and the evaluator is concrete, persist canonical artifacts under `.omx/specs/` using the contracts in `src/cli/autoresearch-intake.ts`.',
44
+ '- Required outputs: `deep-interview-autoresearch-{slug}.md`, `autoresearch-{slug}/mission.md`, `autoresearch-{slug}/sandbox.md`, `autoresearch-{slug}/result.json`.',
45
+ '- If the evaluator is still a placeholder or the user wants to refine further, keep interviewing instead of finalizing launch-ready output.',
46
+ '</autoresearch_deep_interview_mode>',
47
+ ].join('\n');
48
+ }
49
+ async function writeAutoresearchDeepInterviewAppendixFile(repoRoot) {
50
+ const { mkdir, writeFile } = await import('node:fs/promises');
51
+ const { join } = await import('node:path');
52
+ const dir = join(repoRoot, '.omx', 'autoresearch');
53
+ await mkdir(dir, { recursive: true });
54
+ const path = join(dir, 'deep-interview-session-instructions.md');
55
+ await writeFile(path, `${buildAutoresearchDeepInterviewAppendix()}\n`, 'utf-8');
56
+ return path;
57
+ }
58
+ async function runGuidedAutoresearchDeepInterview(repoRoot, seedArgs) {
59
+ const previousInstructionsFile = process.env[AUTORESEARCH_APPEND_INSTRUCTIONS_ENV];
60
+ const appendixPath = await writeAutoresearchDeepInterviewAppendixFile(repoRoot);
61
+ const startedAtMs = Date.now();
62
+ process.env[AUTORESEARCH_APPEND_INSTRUCTIONS_ENV] = appendixPath;
63
+ try {
64
+ const { launchWithHud } = await import('./index.js');
65
+ await launchWithHud([buildAutoresearchDeepInterviewPrompt(seedArgs ?? {})]);
66
+ }
67
+ finally {
68
+ if (typeof previousInstructionsFile === 'string') {
69
+ process.env[AUTORESEARCH_APPEND_INSTRUCTIONS_ENV] = previousInstructionsFile;
70
+ }
71
+ else {
72
+ delete process.env[AUTORESEARCH_APPEND_INSTRUCTIONS_ENV];
73
+ }
74
+ }
75
+ const result = await resolveAutoresearchDeepInterviewResult(repoRoot, {
76
+ newerThanMs: startedAtMs,
77
+ });
78
+ if (!result) {
79
+ throw new Error('autoresearch deep-interview did not produce .omx/specs launch artifacts.');
80
+ }
81
+ if (!result.launchReady) {
82
+ throw new Error(`autoresearch deep-interview exited without a launch-ready result. ${result.blockedReasons.join(' ') || 'Refine the interview result and retry.'}`);
83
+ }
84
+ return materializeAutoresearchDeepInterviewResult(result);
85
+ }
33
86
  export function normalizeAutoresearchCodexArgs(codexArgs) {
34
87
  const normalized = [];
35
88
  let hasBypass = false;
@@ -111,7 +164,8 @@ export function parseAutoresearchArgs(args) {
111
164
  return { missionDir: null, runId, codexArgs: values.slice(1) };
112
165
  }
113
166
  if (first.startsWith('-')) {
114
- throw new Error(`mission-dir must be the first positional argument unless using --resume.\n${AUTORESEARCH_HELP}`);
167
+ const seedArgs = parseInitArgs(values);
168
+ return { missionDir: null, runId: null, codexArgs: [], guided: true, seedArgs };
115
169
  }
116
170
  return { missionDir: first, runId: null, codexArgs: values.slice(1) };
117
171
  }
@@ -123,7 +177,8 @@ async function runAutoresearchLoop(codexArgs, runtime, missionDir) {
123
177
  while (true) {
124
178
  runAutoresearchTurn(runtime.worktreePath, runtime.instructionsFile, codexArgs);
125
179
  const contract = await loadAutoresearchMissionContract(missionDir);
126
- const manifest = await loadAutoresearchRunManifest(runtime.repoRoot, JSON.parse(execFileSync('cat', [runtime.manifestFile], { encoding: 'utf-8' })).run_id);
180
+ const { run_id: runId } = JSON.parse(readFileSync(runtime.manifestFile, 'utf-8'));
181
+ const manifest = await loadAutoresearchRunManifest(runtime.repoRoot, runId);
127
182
  const decision = await processAutoresearchCandidate(contract, manifest, runtime.repoRoot);
128
183
  if (decision === 'abort' || decision === 'error') {
129
184
  return;
@@ -177,8 +232,7 @@ export async function autoresearchCommand(args) {
177
232
  });
178
233
  }
179
234
  else {
180
- // Interactive guided setup
181
- result = await guidedAutoresearchSetup(repoRoot);
235
+ result = await runGuidedAutoresearchDeepInterview(repoRoot, parsed.seedArgs);
182
236
  }
183
237
  spawnAutoresearchTmux(result.missionDir, result.slug);
184
238
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"autoresearch.js","sourceRoot":"","sources":["../../src/cli/autoresearch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autoresearch.js","sourceRoot":"","sources":["../../src/cli/autoresearch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ export interface ProcessEntry {
2
+ pid: number;
3
+ ppid: number;
4
+ command: string;
5
+ }
6
+ export interface CleanupCandidate extends ProcessEntry {
7
+ reason: 'ppid=1' | 'outside-current-session';
8
+ }
9
+ export interface CleanupResult {
10
+ dryRun: boolean;
11
+ candidates: CleanupCandidate[];
12
+ terminatedCount: number;
13
+ forceKilledCount: number;
14
+ failedPids: number[];
15
+ }
16
+ export interface CleanupDependencies {
17
+ currentPid?: number;
18
+ listProcesses?: () => ProcessEntry[];
19
+ isPidAlive?: (pid: number) => boolean;
20
+ sendSignal?: (pid: number, signal: NodeJS.Signals) => void;
21
+ sleep?: (ms: number) => Promise<void>;
22
+ now?: () => number;
23
+ writeLine?: (line: string) => void;
24
+ }
25
+ interface TmpDirectoryEntry {
26
+ name: string;
27
+ isDirectory(): boolean;
28
+ }
29
+ export interface TmpCleanupDependencies {
30
+ tmpRoot?: string;
31
+ listTmpEntries?: (tmpRoot: string) => Promise<TmpDirectoryEntry[]>;
32
+ statPath?: (path: string) => Promise<{
33
+ mtimeMs: number;
34
+ }>;
35
+ removePath?: (path: string) => Promise<void>;
36
+ now?: () => number;
37
+ writeLine?: (line: string) => void;
38
+ }
39
+ export interface CleanupCommandDependencies {
40
+ cleanupProcesses?: (args: readonly string[]) => Promise<CleanupResult>;
41
+ cleanupTmpDirectories?: (args: readonly string[]) => Promise<number>;
42
+ }
43
+ export declare function isOmxMcpProcess(command: string): boolean;
44
+ export declare function parsePsOutput(output: string): ProcessEntry[];
45
+ export declare function listOmxProcesses(): ProcessEntry[];
46
+ export declare function buildProtectedPidSet(processes: readonly ProcessEntry[], currentPid: number): Set<number>;
47
+ export declare function findCleanupCandidates(processes: readonly ProcessEntry[], currentPid: number): CleanupCandidate[];
48
+ export declare function cleanupOmxMcpProcesses(args: readonly string[], dependencies?: CleanupDependencies): Promise<CleanupResult>;
49
+ export declare function cleanupStaleTmpDirectories(args: readonly string[], dependencies?: TmpCleanupDependencies): Promise<number>;
50
+ export declare function cleanupCommand(args: string[], dependencies?: CleanupCommandDependencies): Promise<void>;
51
+ export {};
52
+ //# sourceMappingURL=cleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../src/cli/cleanup.ts"],"names":[],"mappings":"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"}