oh-my-codex 0.1.1

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 (182) hide show
  1. package/README.md +269 -0
  2. package/bin/omx.js +25 -0
  3. package/dist/agents/definitions.d.ts +22 -0
  4. package/dist/agents/definitions.d.ts.map +1 -0
  5. package/dist/agents/definitions.js +235 -0
  6. package/dist/agents/definitions.js.map +1 -0
  7. package/dist/cli/doctor.d.ts +11 -0
  8. package/dist/cli/doctor.d.ts.map +1 -0
  9. package/dist/cli/doctor.js +157 -0
  10. package/dist/cli/doctor.js.map +1 -0
  11. package/dist/cli/index.d.ts +6 -0
  12. package/dist/cli/index.d.ts.map +1 -0
  13. package/dist/cli/index.js +266 -0
  14. package/dist/cli/index.js.map +1 -0
  15. package/dist/cli/setup.d.ts +12 -0
  16. package/dist/cli/setup.d.ts.map +1 -0
  17. package/dist/cli/setup.js +175 -0
  18. package/dist/cli/setup.js.map +1 -0
  19. package/dist/cli/version.d.ts +2 -0
  20. package/dist/cli/version.d.ts.map +1 -0
  21. package/dist/cli/version.js +17 -0
  22. package/dist/cli/version.js.map +1 -0
  23. package/dist/config/generator.d.ts +14 -0
  24. package/dist/config/generator.d.ts.map +1 -0
  25. package/dist/config/generator.js +106 -0
  26. package/dist/config/generator.js.map +1 -0
  27. package/dist/hooks/__tests__/agents-overlay.test.d.ts +8 -0
  28. package/dist/hooks/__tests__/agents-overlay.test.d.ts.map +1 -0
  29. package/dist/hooks/__tests__/agents-overlay.test.js +148 -0
  30. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -0
  31. package/dist/hooks/agents-overlay.d.ts +34 -0
  32. package/dist/hooks/agents-overlay.d.ts.map +1 -0
  33. package/dist/hooks/agents-overlay.js +265 -0
  34. package/dist/hooks/agents-overlay.js.map +1 -0
  35. package/dist/hooks/emulator.d.ts +44 -0
  36. package/dist/hooks/emulator.d.ts.map +1 -0
  37. package/dist/hooks/emulator.js +108 -0
  38. package/dist/hooks/emulator.js.map +1 -0
  39. package/dist/hooks/keyword-detector.d.ts +27 -0
  40. package/dist/hooks/keyword-detector.d.ts.map +1 -0
  41. package/dist/hooks/keyword-detector.js +63 -0
  42. package/dist/hooks/keyword-detector.js.map +1 -0
  43. package/dist/hooks/session.d.ts +38 -0
  44. package/dist/hooks/session.d.ts.map +1 -0
  45. package/dist/hooks/session.js +135 -0
  46. package/dist/hooks/session.js.map +1 -0
  47. package/dist/hud/colors.d.ts +26 -0
  48. package/dist/hud/colors.d.ts.map +1 -0
  49. package/dist/hud/colors.js +71 -0
  50. package/dist/hud/colors.js.map +1 -0
  51. package/dist/hud/index.d.ts +12 -0
  52. package/dist/hud/index.d.ts.map +1 -0
  53. package/dist/hud/index.js +107 -0
  54. package/dist/hud/index.js.map +1 -0
  55. package/dist/hud/render.d.ts +9 -0
  56. package/dist/hud/render.d.ts.map +1 -0
  57. package/dist/hud/render.js +192 -0
  58. package/dist/hud/render.js.map +1 -0
  59. package/dist/hud/state.d.ts +21 -0
  60. package/dist/hud/state.d.ts.map +1 -0
  61. package/dist/hud/state.js +101 -0
  62. package/dist/hud/state.js.map +1 -0
  63. package/dist/hud/types.d.ts +87 -0
  64. package/dist/hud/types.d.ts.map +1 -0
  65. package/dist/hud/types.js +8 -0
  66. package/dist/hud/types.js.map +1 -0
  67. package/dist/index.d.ts +18 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +18 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/mcp/code-intel-server.d.ts +7 -0
  72. package/dist/mcp/code-intel-server.d.ts.map +1 -0
  73. package/dist/mcp/code-intel-server.js +567 -0
  74. package/dist/mcp/code-intel-server.js.map +1 -0
  75. package/dist/mcp/memory-server.d.ts +7 -0
  76. package/dist/mcp/memory-server.d.ts.map +1 -0
  77. package/dist/mcp/memory-server.js +359 -0
  78. package/dist/mcp/memory-server.js.map +1 -0
  79. package/dist/mcp/state-server.d.ts +7 -0
  80. package/dist/mcp/state-server.d.ts.map +1 -0
  81. package/dist/mcp/state-server.js +181 -0
  82. package/dist/mcp/state-server.js.map +1 -0
  83. package/dist/mcp/trace-server.d.ts +7 -0
  84. package/dist/mcp/trace-server.d.ts.map +1 -0
  85. package/dist/mcp/trace-server.js +205 -0
  86. package/dist/mcp/trace-server.js.map +1 -0
  87. package/dist/modes/base.d.ts +50 -0
  88. package/dist/modes/base.d.ts.map +1 -0
  89. package/dist/modes/base.js +140 -0
  90. package/dist/modes/base.js.map +1 -0
  91. package/dist/notifications/notifier.d.ts +30 -0
  92. package/dist/notifications/notifier.d.ts.map +1 -0
  93. package/dist/notifications/notifier.js +124 -0
  94. package/dist/notifications/notifier.js.map +1 -0
  95. package/dist/team/orchestrator.d.ts +54 -0
  96. package/dist/team/orchestrator.d.ts.map +1 -0
  97. package/dist/team/orchestrator.js +106 -0
  98. package/dist/team/orchestrator.js.map +1 -0
  99. package/dist/utils/package.d.ts +9 -0
  100. package/dist/utils/package.d.ts.map +1 -0
  101. package/dist/utils/package.js +31 -0
  102. package/dist/utils/package.js.map +1 -0
  103. package/dist/utils/paths.d.ts +27 -0
  104. package/dist/utils/paths.d.ts.map +1 -0
  105. package/dist/utils/paths.js +60 -0
  106. package/dist/utils/paths.js.map +1 -0
  107. package/dist/verification/verifier.d.ts +32 -0
  108. package/dist/verification/verifier.d.ts.map +1 -0
  109. package/dist/verification/verifier.js +81 -0
  110. package/dist/verification/verifier.js.map +1 -0
  111. package/package.json +54 -0
  112. package/prompts/analyst.md +110 -0
  113. package/prompts/api-reviewer.md +98 -0
  114. package/prompts/architect.md +109 -0
  115. package/prompts/build-fixer.md +89 -0
  116. package/prompts/code-reviewer.md +105 -0
  117. package/prompts/critic.md +87 -0
  118. package/prompts/debugger.md +93 -0
  119. package/prompts/deep-executor.md +112 -0
  120. package/prompts/dependency-expert.md +99 -0
  121. package/prompts/designer.md +103 -0
  122. package/prompts/executor.md +99 -0
  123. package/prompts/explore.md +112 -0
  124. package/prompts/git-master.md +92 -0
  125. package/prompts/information-architect.md +267 -0
  126. package/prompts/performance-reviewer.md +94 -0
  127. package/prompts/planner.md +116 -0
  128. package/prompts/product-analyst.md +299 -0
  129. package/prompts/product-manager.md +255 -0
  130. package/prompts/qa-tester.md +98 -0
  131. package/prompts/quality-reviewer.md +105 -0
  132. package/prompts/quality-strategist.md +227 -0
  133. package/prompts/researcher.md +96 -0
  134. package/prompts/scientist.md +92 -0
  135. package/prompts/security-reviewer.md +125 -0
  136. package/prompts/style-reviewer.md +87 -0
  137. package/prompts/test-engineer.md +103 -0
  138. package/prompts/ux-researcher.md +282 -0
  139. package/prompts/verifier.md +95 -0
  140. package/prompts/vision.md +75 -0
  141. package/prompts/writer.md +86 -0
  142. package/scripts/notify-hook.js +237 -0
  143. package/skills/analyze/SKILL.md +93 -0
  144. package/skills/autopilot/SKILL.md +175 -0
  145. package/skills/build-fix/SKILL.md +123 -0
  146. package/skills/cancel/SKILL.md +387 -0
  147. package/skills/code-review/SKILL.md +208 -0
  148. package/skills/configure-discord/SKILL.md +256 -0
  149. package/skills/configure-telegram/SKILL.md +232 -0
  150. package/skills/deepinit/SKILL.md +320 -0
  151. package/skills/deepsearch/SKILL.md +38 -0
  152. package/skills/doctor/SKILL.md +193 -0
  153. package/skills/ecomode/SKILL.md +114 -0
  154. package/skills/frontend-ui-ux/SKILL.md +34 -0
  155. package/skills/git-master/SKILL.md +29 -0
  156. package/skills/help/SKILL.md +192 -0
  157. package/skills/hud/SKILL.md +97 -0
  158. package/skills/learn-about-omx/SKILL.md +37 -0
  159. package/skills/learner/SKILL.md +135 -0
  160. package/skills/note/SKILL.md +62 -0
  161. package/skills/omx-setup/SKILL.md +1147 -0
  162. package/skills/pipeline/SKILL.md +407 -0
  163. package/skills/plan/SKILL.md +223 -0
  164. package/skills/project-session-manager/SKILL.md +560 -0
  165. package/skills/psm/SKILL.md +20 -0
  166. package/skills/ralph/SKILL.md +197 -0
  167. package/skills/ralph-init/SKILL.md +38 -0
  168. package/skills/ralplan/SKILL.md +34 -0
  169. package/skills/release/SKILL.md +83 -0
  170. package/skills/research/SKILL.md +510 -0
  171. package/skills/review/SKILL.md +30 -0
  172. package/skills/security-review/SKILL.md +284 -0
  173. package/skills/skill/SKILL.md +837 -0
  174. package/skills/swarm/SKILL.md +25 -0
  175. package/skills/tdd/SKILL.md +106 -0
  176. package/skills/team/SKILL.md +860 -0
  177. package/skills/trace/SKILL.md +33 -0
  178. package/skills/ultrapilot/SKILL.md +632 -0
  179. package/skills/ultraqa/SKILL.md +130 -0
  180. package/skills/ultrawork/SKILL.md +143 -0
  181. package/skills/writer-memory/SKILL.md +443 -0
  182. package/templates/AGENTS.md +326 -0
@@ -0,0 +1,359 @@
1
+ /**
2
+ * OMX Project Memory & Notepad MCP Server
3
+ * Provides persistent project memory and session notepad tools
4
+ * Storage: .omx/project-memory.json, .omx/notepad.md
5
+ */
6
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
7
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
8
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
9
+ import { readFile, writeFile, mkdir } from 'fs/promises';
10
+ import { join } from 'path';
11
+ import { existsSync } from 'fs';
12
+ function getMemoryPath(wd) {
13
+ return join(wd || process.cwd(), '.omx', 'project-memory.json');
14
+ }
15
+ function getNotepadPath(wd) {
16
+ return join(wd || process.cwd(), '.omx', 'notepad.md');
17
+ }
18
+ const server = new Server({ name: 'omx-memory', version: '0.1.0' }, { capabilities: { tools: {} } });
19
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({
20
+ tools: [
21
+ // Project Memory tools
22
+ {
23
+ name: 'project_memory_read',
24
+ description: 'Read project memory. Can read full memory or a specific section.',
25
+ inputSchema: {
26
+ type: 'object',
27
+ properties: {
28
+ section: { type: 'string', enum: ['all', 'techStack', 'build', 'conventions', 'structure', 'notes', 'directives'] },
29
+ workingDirectory: { type: 'string' },
30
+ },
31
+ },
32
+ },
33
+ {
34
+ name: 'project_memory_write',
35
+ description: 'Write/update project memory. Can replace entirely or merge.',
36
+ inputSchema: {
37
+ type: 'object',
38
+ properties: {
39
+ memory: { type: 'object', description: 'Memory object to write' },
40
+ merge: { type: 'boolean', description: 'Merge with existing (true) or replace (false)' },
41
+ workingDirectory: { type: 'string' },
42
+ },
43
+ required: ['memory'],
44
+ },
45
+ },
46
+ {
47
+ name: 'project_memory_add_note',
48
+ description: 'Add a categorized note to project memory.',
49
+ inputSchema: {
50
+ type: 'object',
51
+ properties: {
52
+ category: { type: 'string', description: 'Note category (build, test, deploy, env, architecture)' },
53
+ content: { type: 'string', description: 'Note content' },
54
+ workingDirectory: { type: 'string' },
55
+ },
56
+ required: ['category', 'content'],
57
+ },
58
+ },
59
+ {
60
+ name: 'project_memory_add_directive',
61
+ description: 'Add a persistent directive to project memory.',
62
+ inputSchema: {
63
+ type: 'object',
64
+ properties: {
65
+ directive: { type: 'string', description: 'The directive text' },
66
+ priority: { type: 'string', enum: ['high', 'normal'] },
67
+ context: { type: 'string' },
68
+ workingDirectory: { type: 'string' },
69
+ },
70
+ required: ['directive'],
71
+ },
72
+ },
73
+ // Notepad tools
74
+ {
75
+ name: 'notepad_read',
76
+ description: 'Read notepad content. Can read full or a specific section (priority, working, manual).',
77
+ inputSchema: {
78
+ type: 'object',
79
+ properties: {
80
+ section: { type: 'string', enum: ['all', 'priority', 'working', 'manual'] },
81
+ workingDirectory: { type: 'string' },
82
+ },
83
+ },
84
+ },
85
+ {
86
+ name: 'notepad_write_priority',
87
+ description: 'Write to Priority Context section. Replaces existing. Keep under 500 chars.',
88
+ inputSchema: {
89
+ type: 'object',
90
+ properties: {
91
+ content: { type: 'string', description: 'Priority content (under 500 chars)' },
92
+ workingDirectory: { type: 'string' },
93
+ },
94
+ required: ['content'],
95
+ },
96
+ },
97
+ {
98
+ name: 'notepad_write_working',
99
+ description: 'Add timestamped entry to Working Memory section.',
100
+ inputSchema: {
101
+ type: 'object',
102
+ properties: {
103
+ content: { type: 'string', description: 'Working memory entry' },
104
+ workingDirectory: { type: 'string' },
105
+ },
106
+ required: ['content'],
107
+ },
108
+ },
109
+ {
110
+ name: 'notepad_write_manual',
111
+ description: 'Add entry to Manual section. Never auto-pruned.',
112
+ inputSchema: {
113
+ type: 'object',
114
+ properties: {
115
+ content: { type: 'string', description: 'Manual entry content' },
116
+ workingDirectory: { type: 'string' },
117
+ },
118
+ required: ['content'],
119
+ },
120
+ },
121
+ {
122
+ name: 'notepad_prune',
123
+ description: 'Prune Working Memory entries older than N days (default: 7).',
124
+ inputSchema: {
125
+ type: 'object',
126
+ properties: {
127
+ daysOld: { type: 'integer', description: 'Prune entries older than this many days (default: 7)' },
128
+ workingDirectory: { type: 'string' },
129
+ },
130
+ },
131
+ },
132
+ {
133
+ name: 'notepad_stats',
134
+ description: 'Get statistics about the notepad (size, entry count, oldest entry).',
135
+ inputSchema: {
136
+ type: 'object',
137
+ properties: {
138
+ workingDirectory: { type: 'string' },
139
+ },
140
+ },
141
+ },
142
+ ],
143
+ }));
144
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
145
+ const { name, arguments: args } = request.params;
146
+ const a = (args || {});
147
+ const wd = a.workingDirectory;
148
+ switch (name) {
149
+ // === Project Memory ===
150
+ case 'project_memory_read': {
151
+ const memPath = getMemoryPath(wd);
152
+ if (!existsSync(memPath)) {
153
+ return text({ exists: false });
154
+ }
155
+ const data = JSON.parse(await readFile(memPath, 'utf-8'));
156
+ const section = a.section;
157
+ if (section && section !== 'all' && section in data) {
158
+ return text(data[section]);
159
+ }
160
+ return text(data);
161
+ }
162
+ case 'project_memory_write': {
163
+ const memPath = getMemoryPath(wd);
164
+ await mkdir(join(wd || process.cwd(), '.omx'), { recursive: true });
165
+ const merge = a.merge;
166
+ const newMem = a.memory;
167
+ if (merge && existsSync(memPath)) {
168
+ const existing = JSON.parse(await readFile(memPath, 'utf-8'));
169
+ const merged = { ...existing, ...newMem };
170
+ await writeFile(memPath, JSON.stringify(merged, null, 2));
171
+ }
172
+ else {
173
+ await writeFile(memPath, JSON.stringify(newMem, null, 2));
174
+ }
175
+ return text({ success: true });
176
+ }
177
+ case 'project_memory_add_note': {
178
+ const memPath = getMemoryPath(wd);
179
+ await mkdir(join(wd || process.cwd(), '.omx'), { recursive: true });
180
+ let data = {};
181
+ if (existsSync(memPath)) {
182
+ data = JSON.parse(await readFile(memPath, 'utf-8'));
183
+ }
184
+ if (!data.notes)
185
+ data.notes = [];
186
+ data.notes.push({
187
+ category: a.category,
188
+ content: a.content,
189
+ timestamp: new Date().toISOString(),
190
+ });
191
+ await writeFile(memPath, JSON.stringify(data, null, 2));
192
+ return text({ success: true, noteCount: data.notes.length });
193
+ }
194
+ case 'project_memory_add_directive': {
195
+ const memPath = getMemoryPath(wd);
196
+ await mkdir(join(wd || process.cwd(), '.omx'), { recursive: true });
197
+ let data = {};
198
+ if (existsSync(memPath)) {
199
+ data = JSON.parse(await readFile(memPath, 'utf-8'));
200
+ }
201
+ if (!data.directives)
202
+ data.directives = [];
203
+ data.directives.push({
204
+ directive: a.directive,
205
+ priority: a.priority || 'normal',
206
+ context: a.context,
207
+ timestamp: new Date().toISOString(),
208
+ });
209
+ await writeFile(memPath, JSON.stringify(data, null, 2));
210
+ return text({ success: true, directiveCount: data.directives.length });
211
+ }
212
+ // === Notepad ===
213
+ case 'notepad_read': {
214
+ const notePath = getNotepadPath(wd);
215
+ if (!existsSync(notePath)) {
216
+ return text({ exists: false, content: '' });
217
+ }
218
+ const content = await readFile(notePath, 'utf-8');
219
+ const section = a.section;
220
+ if (section && section !== 'all') {
221
+ const sectionContent = extractSection(content, section);
222
+ return text({ section, content: sectionContent });
223
+ }
224
+ return text({ content });
225
+ }
226
+ case 'notepad_write_priority': {
227
+ const notePath = getNotepadPath(wd);
228
+ await mkdir(join(wd || process.cwd(), '.omx'), { recursive: true });
229
+ const content = a.content;
230
+ let existing = existsSync(notePath) ? await readFile(notePath, 'utf-8') : '';
231
+ existing = replaceSection(existing, 'PRIORITY', content.slice(0, 500));
232
+ await writeFile(notePath, existing);
233
+ return text({ success: true });
234
+ }
235
+ case 'notepad_write_working': {
236
+ const notePath = getNotepadPath(wd);
237
+ await mkdir(join(wd || process.cwd(), '.omx'), { recursive: true });
238
+ const entry = `\n[${new Date().toISOString()}] ${a.content}`;
239
+ let existing = existsSync(notePath) ? await readFile(notePath, 'utf-8') : '';
240
+ existing = appendToSection(existing, 'WORKING MEMORY', entry);
241
+ await writeFile(notePath, existing);
242
+ return text({ success: true });
243
+ }
244
+ case 'notepad_write_manual': {
245
+ const notePath = getNotepadPath(wd);
246
+ await mkdir(join(wd || process.cwd(), '.omx'), { recursive: true });
247
+ const entry = `\n${a.content}`;
248
+ let existing = existsSync(notePath) ? await readFile(notePath, 'utf-8') : '';
249
+ existing = appendToSection(existing, 'MANUAL', entry);
250
+ await writeFile(notePath, existing);
251
+ return text({ success: true });
252
+ }
253
+ case 'notepad_prune': {
254
+ const notePath = getNotepadPath(wd);
255
+ if (!existsSync(notePath)) {
256
+ return text({ pruned: 0, message: 'No notepad file found' });
257
+ }
258
+ const days = a.daysOld || 7;
259
+ const cutoff = Date.now() - days * 24 * 60 * 60 * 1000;
260
+ const content = await readFile(notePath, 'utf-8');
261
+ const workingSection = extractSection(content, 'WORKING MEMORY');
262
+ if (!workingSection) {
263
+ return text({ pruned: 0, message: 'No working memory entries found' });
264
+ }
265
+ const lines = workingSection.split('\n');
266
+ let pruned = 0;
267
+ const kept = [];
268
+ for (const line of lines) {
269
+ const match = line.match(/^\[(\d{4}-\d{2}-\d{2}T[\d:.]+Z?)\]/);
270
+ if (match) {
271
+ const entryTime = new Date(match[1]).getTime();
272
+ if (entryTime < cutoff) {
273
+ pruned++;
274
+ continue;
275
+ }
276
+ }
277
+ kept.push(line);
278
+ }
279
+ if (pruned > 0) {
280
+ const updated = replaceSection(content, 'WORKING MEMORY', kept.join('\n'));
281
+ await writeFile(notePath, updated);
282
+ }
283
+ return text({ pruned, remaining: kept.filter(l => l.match(/^\[/)).length });
284
+ }
285
+ case 'notepad_stats': {
286
+ const notePath = getNotepadPath(wd);
287
+ if (!existsSync(notePath)) {
288
+ return text({ exists: false, size: 0, entryCount: 0, oldestEntry: null });
289
+ }
290
+ const content = await readFile(notePath, 'utf-8');
291
+ const stats = await import('fs/promises').then(fs => fs.stat(notePath));
292
+ const workingSection = extractSection(content, 'WORKING MEMORY');
293
+ const timestamps = [];
294
+ if (workingSection) {
295
+ for (const line of workingSection.split('\n')) {
296
+ const match = line.match(/^\[(\d{4}-\d{2}-\d{2}T[\d:.]+Z?)\]/);
297
+ if (match)
298
+ timestamps.push(match[1]);
299
+ }
300
+ }
301
+ const prioritySection = extractSection(content, 'PRIORITY');
302
+ const manualSection = extractSection(content, 'MANUAL');
303
+ return text({
304
+ exists: true,
305
+ size: stats.size,
306
+ sections: {
307
+ priority: prioritySection ? prioritySection.length : 0,
308
+ working: timestamps.length,
309
+ manual: manualSection ? manualSection.split('\n').filter(l => l.trim()).length : 0,
310
+ },
311
+ entryCount: timestamps.length,
312
+ oldestEntry: timestamps.length > 0 ? timestamps[0] : null,
313
+ newestEntry: timestamps.length > 0 ? timestamps[timestamps.length - 1] : null,
314
+ });
315
+ }
316
+ default:
317
+ return { content: [{ type: 'text', text: `Unknown tool: ${name}` }], isError: true };
318
+ }
319
+ });
320
+ function text(data) {
321
+ return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
322
+ }
323
+ function extractSection(content, section) {
324
+ const header = `## ${section.toUpperCase()}`;
325
+ const idx = content.indexOf(header);
326
+ if (idx < 0)
327
+ return '';
328
+ const nextHeader = content.indexOf('\n## ', idx + header.length);
329
+ return nextHeader < 0
330
+ ? content.slice(idx + header.length).trim()
331
+ : content.slice(idx + header.length, nextHeader).trim();
332
+ }
333
+ function replaceSection(content, section, newContent) {
334
+ const header = `## ${section}`;
335
+ const idx = content.indexOf(header);
336
+ if (idx < 0) {
337
+ return content + `\n\n${header}\n${newContent}\n`;
338
+ }
339
+ const nextHeader = content.indexOf('\n## ', idx + header.length);
340
+ if (nextHeader < 0) {
341
+ return content.slice(0, idx) + `${header}\n${newContent}\n`;
342
+ }
343
+ return content.slice(0, idx) + `${header}\n${newContent}\n` + content.slice(nextHeader);
344
+ }
345
+ function appendToSection(content, section, entry) {
346
+ const header = `## ${section}`;
347
+ const idx = content.indexOf(header);
348
+ if (idx < 0) {
349
+ return content + `\n\n${header}${entry}\n`;
350
+ }
351
+ const nextHeader = content.indexOf('\n## ', idx + header.length);
352
+ if (nextHeader < 0) {
353
+ return content + entry;
354
+ }
355
+ return content.slice(0, nextHeader) + entry + content.slice(nextHeader);
356
+ }
357
+ const transport = new StdioServerTransport();
358
+ server.connect(transport).catch(console.error);
359
+ //# sourceMappingURL=memory-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-server.js","sourceRoot":"","sources":["../../src/mcp/memory-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * OMX State Management MCP Server
3
+ * Provides state read/write/clear/list tools for workflow modes
4
+ * Storage: .omx/state/{mode}-state.json
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=state-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-server.d.ts","sourceRoot":"","sources":["../../src/mcp/state-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * OMX State Management MCP Server
3
+ * Provides state read/write/clear/list tools for workflow modes
4
+ * Storage: .omx/state/{mode}-state.json
5
+ */
6
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
7
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
8
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
9
+ import { readFile, writeFile, readdir, mkdir, unlink } from 'fs/promises';
10
+ import { join } from 'path';
11
+ import { existsSync } from 'fs';
12
+ const SUPPORTED_MODES = [
13
+ 'autopilot', 'ultrapilot', 'team', 'pipeline',
14
+ 'ralph', 'ultrawork', 'ultraqa', 'ecomode', 'ralplan',
15
+ ];
16
+ function getStateDir(workingDirectory) {
17
+ return join(workingDirectory || process.cwd(), '.omx', 'state');
18
+ }
19
+ function getStatePath(mode, workingDirectory) {
20
+ return join(getStateDir(workingDirectory), `${mode}-state.json`);
21
+ }
22
+ const server = new Server({ name: 'omx-state', version: '0.1.0' }, { capabilities: { tools: {} } });
23
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({
24
+ tools: [
25
+ {
26
+ name: 'state_read',
27
+ description: 'Read state for a specific mode. Returns JSON state data or indicates no state exists.',
28
+ inputSchema: {
29
+ type: 'object',
30
+ properties: {
31
+ mode: { type: 'string', enum: [...SUPPORTED_MODES], description: 'The mode to read state for' },
32
+ workingDirectory: { type: 'string', description: 'Working directory override' },
33
+ },
34
+ required: ['mode'],
35
+ },
36
+ },
37
+ {
38
+ name: 'state_write',
39
+ description: 'Write/update state for a specific mode. Creates directories if needed.',
40
+ inputSchema: {
41
+ type: 'object',
42
+ properties: {
43
+ mode: { type: 'string', enum: [...SUPPORTED_MODES] },
44
+ active: { type: 'boolean' },
45
+ iteration: { type: 'number' },
46
+ max_iterations: { type: 'number' },
47
+ current_phase: { type: 'string' },
48
+ task_description: { type: 'string' },
49
+ started_at: { type: 'string' },
50
+ completed_at: { type: 'string' },
51
+ error: { type: 'string' },
52
+ state: { type: 'object', description: 'Additional custom fields' },
53
+ workingDirectory: { type: 'string' },
54
+ },
55
+ required: ['mode'],
56
+ },
57
+ },
58
+ {
59
+ name: 'state_clear',
60
+ description: 'Clear/delete state for a specific mode.',
61
+ inputSchema: {
62
+ type: 'object',
63
+ properties: {
64
+ mode: { type: 'string', enum: [...SUPPORTED_MODES] },
65
+ workingDirectory: { type: 'string' },
66
+ },
67
+ required: ['mode'],
68
+ },
69
+ },
70
+ {
71
+ name: 'state_list_active',
72
+ description: 'List all currently active modes.',
73
+ inputSchema: {
74
+ type: 'object',
75
+ properties: {
76
+ workingDirectory: { type: 'string' },
77
+ },
78
+ },
79
+ },
80
+ {
81
+ name: 'state_get_status',
82
+ description: 'Get detailed status for a specific mode or all modes.',
83
+ inputSchema: {
84
+ type: 'object',
85
+ properties: {
86
+ mode: { type: 'string', enum: [...SUPPORTED_MODES] },
87
+ workingDirectory: { type: 'string' },
88
+ },
89
+ },
90
+ },
91
+ ],
92
+ }));
93
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
94
+ const { name, arguments: args } = request.params;
95
+ const wd = args?.workingDirectory;
96
+ switch (name) {
97
+ case 'state_read': {
98
+ const mode = args.mode;
99
+ const path = getStatePath(mode, wd);
100
+ if (!existsSync(path)) {
101
+ return { content: [{ type: 'text', text: JSON.stringify({ exists: false, mode }) }] };
102
+ }
103
+ const data = await readFile(path, 'utf-8');
104
+ return { content: [{ type: 'text', text: data }] };
105
+ }
106
+ case 'state_write': {
107
+ const mode = args.mode;
108
+ const stateDir = getStateDir(wd);
109
+ await mkdir(stateDir, { recursive: true });
110
+ const path = getStatePath(mode, wd);
111
+ let existing = {};
112
+ if (existsSync(path)) {
113
+ try {
114
+ existing = JSON.parse(await readFile(path, 'utf-8'));
115
+ }
116
+ catch { /* start fresh */ }
117
+ }
118
+ const { mode: _m, workingDirectory: _w, state: customState, ...fields } = args;
119
+ const merged = { ...existing, ...fields, ...(customState || {}) };
120
+ await writeFile(path, JSON.stringify(merged, null, 2));
121
+ return { content: [{ type: 'text', text: JSON.stringify({ success: true, mode, path }) }] };
122
+ }
123
+ case 'state_clear': {
124
+ const mode = args.mode;
125
+ const path = getStatePath(mode, wd);
126
+ if (existsSync(path)) {
127
+ await unlink(path);
128
+ }
129
+ return { content: [{ type: 'text', text: JSON.stringify({ cleared: true, mode }) }] };
130
+ }
131
+ case 'state_list_active': {
132
+ const stateDir = getStateDir(wd);
133
+ const active = [];
134
+ if (existsSync(stateDir)) {
135
+ const files = await readdir(stateDir);
136
+ for (const f of files) {
137
+ if (!f.endsWith('-state.json'))
138
+ continue;
139
+ try {
140
+ const data = JSON.parse(await readFile(join(stateDir, f), 'utf-8'));
141
+ if (data.active) {
142
+ active.push(f.replace('-state.json', ''));
143
+ }
144
+ }
145
+ catch { /* skip malformed */ }
146
+ }
147
+ }
148
+ return { content: [{ type: 'text', text: JSON.stringify({ active_modes: active }) }] };
149
+ }
150
+ case 'state_get_status': {
151
+ const mode = args?.mode;
152
+ const stateDir = getStateDir(wd);
153
+ const statuses = {};
154
+ if (!existsSync(stateDir)) {
155
+ return { content: [{ type: 'text', text: JSON.stringify({ statuses: {} }) }] };
156
+ }
157
+ const files = await readdir(stateDir);
158
+ for (const f of files) {
159
+ if (!f.endsWith('-state.json'))
160
+ continue;
161
+ const m = f.replace('-state.json', '');
162
+ if (mode && m !== mode)
163
+ continue;
164
+ try {
165
+ const data = JSON.parse(await readFile(join(stateDir, f), 'utf-8'));
166
+ statuses[m] = { active: data.active, phase: data.current_phase, path: join(stateDir, f), data };
167
+ }
168
+ catch {
169
+ statuses[m] = { error: 'malformed state file' };
170
+ }
171
+ }
172
+ return { content: [{ type: 'text', text: JSON.stringify({ statuses }) }] };
173
+ }
174
+ default:
175
+ return { content: [{ type: 'text', text: `Unknown tool: ${name}` }], isError: true };
176
+ }
177
+ });
178
+ // Start server
179
+ const transport = new StdioServerTransport();
180
+ server.connect(transport).catch(console.error);
181
+ //# sourceMappingURL=state-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-server.js","sourceRoot":"","sources":["../../src/mcp/state-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * OMX Trace MCP Server
3
+ * Provides trace timeline and summary tools for debugging agent flows.
4
+ * Reads .omx/logs/ turn JSONL files produced by the notify hook.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=trace-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-server.d.ts","sourceRoot":"","sources":["../../src/mcp/trace-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}