oh-my-codex 0.8.11 → 0.8.13

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 (162) hide show
  1. package/README.md +43 -35
  2. package/dist/agents/__tests__/definitions.test.js +1 -0
  3. package/dist/agents/__tests__/definitions.test.js.map +1 -1
  4. package/dist/agents/definitions.d.ts.map +1 -1
  5. package/dist/agents/definitions.js +11 -0
  6. package/dist/agents/definitions.js.map +1 -1
  7. package/dist/cli/__tests__/doctor-invalid-config.test.d.ts +2 -0
  8. package/dist/cli/__tests__/doctor-invalid-config.test.d.ts.map +1 -0
  9. package/dist/cli/__tests__/doctor-invalid-config.test.js +52 -0
  10. package/dist/cli/__tests__/doctor-invalid-config.test.js.map +1 -0
  11. package/dist/cli/__tests__/index.test.js +35 -3
  12. package/dist/cli/__tests__/index.test.js.map +1 -1
  13. package/dist/cli/__tests__/launch-fallback.test.d.ts +2 -0
  14. package/dist/cli/__tests__/launch-fallback.test.d.ts.map +1 -0
  15. package/dist/cli/__tests__/launch-fallback.test.js +60 -0
  16. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -0
  17. package/dist/cli/__tests__/resume.test.d.ts +2 -0
  18. package/dist/cli/__tests__/resume.test.d.ts.map +1 -0
  19. package/dist/cli/__tests__/resume.test.js +78 -0
  20. package/dist/cli/__tests__/resume.test.js.map +1 -0
  21. package/dist/cli/__tests__/session-search-help.test.d.ts +2 -0
  22. package/dist/cli/__tests__/session-search-help.test.d.ts.map +1 -0
  23. package/dist/cli/__tests__/session-search-help.test.js +36 -0
  24. package/dist/cli/__tests__/session-search-help.test.js.map +1 -0
  25. package/dist/cli/__tests__/session-search.test.d.ts +2 -0
  26. package/dist/cli/__tests__/session-search.test.d.ts.map +1 -0
  27. package/dist/cli/__tests__/session-search.test.js +77 -0
  28. package/dist/cli/__tests__/session-search.test.js.map +1 -0
  29. package/dist/cli/__tests__/setup-prompts-overwrite.test.js +2 -0
  30. package/dist/cli/__tests__/setup-prompts-overwrite.test.js.map +1 -1
  31. package/dist/cli/__tests__/team-decompose.test.js +41 -15
  32. package/dist/cli/__tests__/team-decompose.test.js.map +1 -1
  33. package/dist/cli/__tests__/team.test.js +208 -3
  34. package/dist/cli/__tests__/team.test.js.map +1 -1
  35. package/dist/cli/doctor.d.ts.map +1 -1
  36. package/dist/cli/doctor.js +26 -0
  37. package/dist/cli/doctor.js.map +1 -1
  38. package/dist/cli/index.d.ts +4 -3
  39. package/dist/cli/index.d.ts.map +1 -1
  40. package/dist/cli/index.js +73 -27
  41. package/dist/cli/index.js.map +1 -1
  42. package/dist/cli/session-search.d.ts +8 -0
  43. package/dist/cli/session-search.d.ts.map +1 -0
  44. package/dist/cli/session-search.js +133 -0
  45. package/dist/cli/session-search.js.map +1 -0
  46. package/dist/cli/team.d.ts +13 -12
  47. package/dist/cli/team.d.ts.map +1 -1
  48. package/dist/cli/team.js +123 -39
  49. package/dist/cli/team.js.map +1 -1
  50. package/dist/hooks/__tests__/agents-overlay.test.js +33 -1
  51. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
  52. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +219 -0
  53. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
  54. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +1 -0
  55. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js.map +1 -1
  56. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +64 -1
  57. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -1
  58. package/dist/hooks/__tests__/notify-hook-modules.test.js +7 -0
  59. package/dist/hooks/__tests__/notify-hook-modules.test.js.map +1 -1
  60. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +2 -1
  61. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
  62. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +420 -5
  63. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
  64. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js +95 -0
  65. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js.map +1 -1
  66. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js +3 -0
  67. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js.map +1 -1
  68. package/dist/hooks/__tests__/tmux-hook-engine.test.js +39 -1
  69. package/dist/hooks/__tests__/tmux-hook-engine.test.js.map +1 -1
  70. package/dist/hooks/agents-overlay.d.ts +6 -1
  71. package/dist/hooks/agents-overlay.d.ts.map +1 -1
  72. package/dist/hooks/agents-overlay.js +45 -4
  73. package/dist/hooks/agents-overlay.js.map +1 -1
  74. package/dist/mcp/team-server.js +1 -1
  75. package/dist/mcp/team-server.js.map +1 -1
  76. package/dist/session-history/__tests__/search.test.d.ts +2 -0
  77. package/dist/session-history/__tests__/search.test.d.ts.map +1 -0
  78. package/dist/session-history/__tests__/search.test.js +150 -0
  79. package/dist/session-history/__tests__/search.test.js.map +1 -0
  80. package/dist/session-history/search.d.ts +31 -0
  81. package/dist/session-history/search.d.ts.map +1 -0
  82. package/dist/session-history/search.js +326 -0
  83. package/dist/session-history/search.js.map +1 -0
  84. package/dist/team/__tests__/allocation-policy.test.d.ts +2 -0
  85. package/dist/team/__tests__/allocation-policy.test.d.ts.map +1 -0
  86. package/dist/team/__tests__/allocation-policy.test.js +39 -0
  87. package/dist/team/__tests__/allocation-policy.test.js.map +1 -0
  88. package/dist/team/__tests__/api-interop.test.js +140 -4
  89. package/dist/team/__tests__/api-interop.test.js.map +1 -1
  90. package/dist/team/__tests__/followup-planner.test.js +12 -0
  91. package/dist/team/__tests__/followup-planner.test.js.map +1 -1
  92. package/dist/team/__tests__/idle-nudge.test.js +6 -1
  93. package/dist/team/__tests__/idle-nudge.test.js.map +1 -1
  94. package/dist/team/__tests__/rebalance-policy.test.d.ts +2 -0
  95. package/dist/team/__tests__/rebalance-policy.test.d.ts.map +1 -0
  96. package/dist/team/__tests__/rebalance-policy.test.js +125 -0
  97. package/dist/team/__tests__/rebalance-policy.test.js.map +1 -0
  98. package/dist/team/__tests__/runtime.test.js +315 -12
  99. package/dist/team/__tests__/runtime.test.js.map +1 -1
  100. package/dist/team/__tests__/state.test.js +20 -1
  101. package/dist/team/__tests__/state.test.js.map +1 -1
  102. package/dist/team/__tests__/team-ops-contract.test.js +1 -0
  103. package/dist/team/__tests__/team-ops-contract.test.js.map +1 -1
  104. package/dist/team/__tests__/worker-bootstrap.test.js +20 -3
  105. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  106. package/dist/team/allocation-policy.d.ts +23 -0
  107. package/dist/team/allocation-policy.d.ts.map +1 -0
  108. package/dist/team/allocation-policy.js +71 -0
  109. package/dist/team/allocation-policy.js.map +1 -0
  110. package/dist/team/api-interop.d.ts +1 -1
  111. package/dist/team/api-interop.d.ts.map +1 -1
  112. package/dist/team/api-interop.js +159 -0
  113. package/dist/team/api-interop.js.map +1 -1
  114. package/dist/team/idle-nudge.js +1 -1
  115. package/dist/team/idle-nudge.js.map +1 -1
  116. package/dist/team/rebalance-policy.d.ts +19 -0
  117. package/dist/team/rebalance-policy.d.ts.map +1 -0
  118. package/dist/team/rebalance-policy.js +48 -0
  119. package/dist/team/rebalance-policy.js.map +1 -0
  120. package/dist/team/runtime.d.ts.map +1 -1
  121. package/dist/team/runtime.js +132 -17
  122. package/dist/team/runtime.js.map +1 -1
  123. package/dist/team/state/types.d.ts +3 -0
  124. package/dist/team/state/types.d.ts.map +1 -1
  125. package/dist/team/state/types.js.map +1 -1
  126. package/dist/team/state.d.ts +8 -0
  127. package/dist/team/state.d.ts.map +1 -1
  128. package/dist/team/state.js +28 -12
  129. package/dist/team/state.js.map +1 -1
  130. package/dist/team/team-ops.d.ts +2 -1
  131. package/dist/team/team-ops.d.ts.map +1 -1
  132. package/dist/team/team-ops.js +1 -0
  133. package/dist/team/team-ops.js.map +1 -1
  134. package/dist/team/tmux-session.d.ts +5 -4
  135. package/dist/team/tmux-session.d.ts.map +1 -1
  136. package/dist/team/tmux-session.js +5 -67
  137. package/dist/team/tmux-session.js.map +1 -1
  138. package/dist/team/worker-bootstrap.d.ts +1 -0
  139. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  140. package/dist/team/worker-bootstrap.js +9 -2
  141. package/dist/team/worker-bootstrap.js.map +1 -1
  142. package/package.json +2 -1
  143. package/prompts/team-executor.md +57 -0
  144. package/prompts/team-orchestrator.md +8 -0
  145. package/scripts/notify-fallback-watcher.js +295 -1
  146. package/scripts/notify-hook/auto-nudge.js +20 -4
  147. package/scripts/notify-hook/team-dispatch.js +11 -58
  148. package/scripts/notify-hook/team-leader-nudge.js +59 -12
  149. package/scripts/notify-hook/team-tmux-guard.js +28 -11
  150. package/scripts/notify-hook/team-worker.js +3 -1
  151. package/scripts/notify-hook/tmux-injection.js +12 -13
  152. package/scripts/tmux-hook-engine.js +56 -0
  153. package/skills/team/SKILL.md +14 -0
  154. package/templates/catalog-manifest.json +5 -0
  155. package/dist/rtk/__tests__/index.test.d.ts +0 -2
  156. package/dist/rtk/__tests__/index.test.d.ts.map +0 -1
  157. package/dist/rtk/__tests__/index.test.js +0 -104
  158. package/dist/rtk/__tests__/index.test.js.map +0 -1
  159. package/dist/rtk/index.d.ts +0 -130
  160. package/dist/rtk/index.d.ts.map +0 -1
  161. package/dist/rtk/index.js +0 -257
  162. package/dist/rtk/index.js.map +0 -1
package/dist/rtk/index.js DELETED
@@ -1,257 +0,0 @@
1
- import { spawnSync } from "child_process";
2
- import { existsSync, readFileSync } from "fs";
3
- import { mkdir, readFile, writeFile } from "fs/promises";
4
- import { homedir } from "os";
5
- import { delimiter, join } from "path";
6
- import { codexHome } from "../utils/paths.js";
7
- export const RTK_ALIAS_DEFINITIONS = [
8
- { name: "aws", target: "aws" },
9
- { name: "biome", target: "lint" },
10
- { name: "cargo", target: "cargo" },
11
- { name: "cat", target: "read" },
12
- { name: "curl", target: "curl" },
13
- { name: "diff", target: "diff" },
14
- { name: "docker", target: "docker" },
15
- { name: "eslint", target: "lint" },
16
- { name: "find", target: "find" },
17
- { name: "gh", target: "gh" },
18
- { name: "git", target: "git" },
19
- { name: "go", target: "go" },
20
- { name: "golangci-lint", target: "golangci-lint" },
21
- { name: "grep", target: "grep" },
22
- { name: "kubectl", target: "kubectl" },
23
- { name: "ls", target: "ls" },
24
- { name: "mypy", target: "mypy" },
25
- { name: "next", target: "next" },
26
- { name: "npm", target: "npm" },
27
- { name: "npx", target: "npx" },
28
- { name: "pip", target: "pip" },
29
- { name: "playwright", target: "playwright" },
30
- { name: "pnpm", target: "pnpm" },
31
- { name: "prettier", target: "prettier" },
32
- { name: "prisma", target: "prisma" },
33
- { name: "psql", target: "psql" },
34
- { name: "pytest", target: "pytest" },
35
- { name: "rg", target: "grep" },
36
- { name: "ruff", target: "ruff" },
37
- { name: "tree", target: "tree" },
38
- { name: "tsc", target: "tsc" },
39
- { name: "vitest", target: "vitest" },
40
- { name: "wc", target: "wc" },
41
- { name: "wget", target: "wget" },
42
- ];
43
- const RTK_CONFIG_FILE = ".omx-config.json";
44
- export function omxRuntimeConfigPath(codexHomeOverride) {
45
- return join(codexHomeOverride || codexHome(), RTK_CONFIG_FILE);
46
- }
47
- function isPlainObject(value) {
48
- return typeof value === "object" && value !== null && !Array.isArray(value);
49
- }
50
- function readOmxRuntimeConfig(codexHomeOverride) {
51
- const configPath = omxRuntimeConfigPath(codexHomeOverride);
52
- if (!existsSync(configPath))
53
- return null;
54
- try {
55
- const raw = JSON.parse(readFileSync(configPath, "utf-8"));
56
- return isPlainObject(raw) ? raw : null;
57
- }
58
- catch {
59
- return null;
60
- }
61
- }
62
- export function readRtkEnabledSetting(codexHomeOverride) {
63
- const config = readOmxRuntimeConfig(codexHomeOverride);
64
- const enabled = config?.rtk?.enabled;
65
- return typeof enabled === "boolean" ? enabled : undefined;
66
- }
67
- function rtkBinaryName() {
68
- return process.platform === "win32" ? "rtk.exe" : "rtk";
69
- }
70
- function resolveSearchDirs(env = process.env) {
71
- const pathDirs = (env.PATH || "")
72
- .split(delimiter)
73
- .map((entry) => entry.trim())
74
- .filter(Boolean);
75
- return Array.from(new Set([
76
- ...pathDirs,
77
- join(homedir(), ".cargo", "bin"),
78
- join(homedir(), ".local", "bin"),
79
- "/opt/homebrew/bin",
80
- "/usr/local/bin",
81
- "/usr/bin",
82
- ]));
83
- }
84
- function isWorkingRtkBinary(candidate, env = process.env) {
85
- const result = spawnSync(candidate, ["--version"], {
86
- encoding: "utf-8",
87
- env,
88
- stdio: ["ignore", "pipe", "pipe"],
89
- });
90
- if (result.error)
91
- return false;
92
- return result.status === 0;
93
- }
94
- export function resolveRtkExecutable(env = process.env) {
95
- const binaryName = rtkBinaryName();
96
- for (const dir of resolveSearchDirs(env)) {
97
- const candidate = join(dir, binaryName);
98
- if (!existsSync(candidate))
99
- continue;
100
- if (isWorkingRtkBinary(candidate, env))
101
- return candidate;
102
- }
103
- if (isWorkingRtkBinary(binaryName, env))
104
- return binaryName;
105
- return undefined;
106
- }
107
- export function isRtkInstalled(env = process.env) {
108
- return typeof resolveRtkExecutable(env) === "string";
109
- }
110
- export function isRtkEnabled(codexHomeOverride, env = process.env) {
111
- const explicit = readRtkEnabledSetting(codexHomeOverride);
112
- return explicit ?? isRtkInstalled(env);
113
- }
114
- export function rtkAliasesPath() {
115
- return join(homedir(), ".omx", "rtk-aliases.sh");
116
- }
117
- function escapeDoubleQuoted(value) {
118
- return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
119
- }
120
- export function buildRtkAliasesScript(executablePath) {
121
- return [
122
- "#!/usr/bin/env bash",
123
- "# Generated by omx setup. Session-scoped RTK wrappers for Codex shells.",
124
- 'if [ -n "${BASH_VERSION:-}" ]; then',
125
- " shopt -s expand_aliases",
126
- "fi",
127
- "",
128
- `RTK_BIN="${escapeDoubleQuoted(executablePath)}"`,
129
- 'if ! command -v "$RTK_BIN" >/dev/null 2>&1; then',
130
- " return 0 2>/dev/null || true",
131
- "fi",
132
- "",
133
- ...RTK_ALIAS_DEFINITIONS.map(({ name, target }) => `alias ${name}='"$RTK_BIN" ${target}'`),
134
- "",
135
- ].join("\n");
136
- }
137
- export async function writeRtkAliasesFile(executablePath, options = {}) {
138
- const aliasesPath = rtkAliasesPath();
139
- const content = buildRtkAliasesScript(executablePath);
140
- const current = existsSync(aliasesPath)
141
- ? await readFile(aliasesPath, "utf-8")
142
- : undefined;
143
- if (current === content)
144
- return false;
145
- if (!options.dryRun) {
146
- await mkdir(join(homedir(), ".omx"), { recursive: true });
147
- await writeFile(aliasesPath, content);
148
- }
149
- return true;
150
- }
151
- function runInstallAttempt(command, args, options = {}) {
152
- const result = spawnSync(command, args, {
153
- encoding: "utf-8",
154
- stdio: ["ignore", "pipe", "pipe"],
155
- });
156
- if (options.verbose && result.stdout.trim()) {
157
- console.log(result.stdout.trim());
158
- }
159
- if (options.verbose && result.stderr.trim()) {
160
- console.error(result.stderr.trim());
161
- }
162
- if (result.error)
163
- return false;
164
- return result.status === 0;
165
- }
166
- export async function ensureRtkInstalledAndAliases(options = {}) {
167
- const aliasesPath = rtkAliasesPath();
168
- const existingExecutable = resolveRtkExecutable();
169
- if (existingExecutable) {
170
- const aliasFileWritten = await writeRtkAliasesFile(existingExecutable, options);
171
- return {
172
- aliasesPath,
173
- aliasFileWritten,
174
- executablePath: existingExecutable,
175
- installed: true,
176
- installMethod: "existing",
177
- };
178
- }
179
- if (options.dryRun) {
180
- return {
181
- aliasesPath,
182
- aliasFileWritten: false,
183
- installed: false,
184
- installMethod: "dry-run",
185
- };
186
- }
187
- let installMethod = "unavailable";
188
- if (runInstallAttempt("cargo", ["install", "--git", "https://github.com/rtk-ai/rtk"], options)) {
189
- installMethod = "cargo";
190
- }
191
- else if (runInstallAttempt("brew", ["install", "rtk"], options)) {
192
- installMethod = "brew";
193
- }
194
- const executablePath = resolveRtkExecutable();
195
- if (!executablePath) {
196
- return {
197
- aliasesPath,
198
- aliasFileWritten: false,
199
- installed: false,
200
- installMethod,
201
- };
202
- }
203
- const aliasFileWritten = await writeRtkAliasesFile(executablePath, options);
204
- return {
205
- aliasesPath,
206
- aliasFileWritten,
207
- executablePath,
208
- installed: true,
209
- installMethod,
210
- };
211
- }
212
- export async function syncRtkRuntimeConfig(codexHomeDir, defaultEnabled, options = {}) {
213
- const configPath = omxRuntimeConfigPath(codexHomeDir);
214
- const raw = existsSync(configPath) ? await readFile(configPath, "utf-8") : "";
215
- let parsed = {};
216
- if (raw.trim() !== "") {
217
- try {
218
- const next = JSON.parse(raw);
219
- if (isPlainObject(next))
220
- parsed = next;
221
- }
222
- catch {
223
- parsed = {};
224
- }
225
- }
226
- const currentBlock = isPlainObject(parsed.rtk) ? parsed.rtk : {};
227
- if (typeof currentBlock.enabled === "boolean")
228
- return false;
229
- const next = {
230
- ...parsed,
231
- rtk: {
232
- ...currentBlock,
233
- enabled: defaultEnabled,
234
- },
235
- };
236
- const content = JSON.stringify(next, null, 2) + "\n";
237
- if (!options.dryRun) {
238
- await mkdir(codexHomeDir, { recursive: true });
239
- await writeFile(configPath, content);
240
- }
241
- return true;
242
- }
243
- export function resolveRtkBashEnv(codexHomeOverride, env = process.env) {
244
- if (!isRtkEnabled(codexHomeOverride, env))
245
- return undefined;
246
- const aliasesPath = rtkAliasesPath();
247
- if (!existsSync(aliasesPath))
248
- return undefined;
249
- return aliasesPath;
250
- }
251
- export function withRtkBashEnv(baseEnv, codexHomeOverride) {
252
- const bashEnv = resolveRtkBashEnv(codexHomeOverride, baseEnv);
253
- if (!bashEnv)
254
- return baseEnv;
255
- return { ...baseEnv, BASH_ENV: bashEnv };
256
- }
257
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rtk/index.ts"],"names":[],"mappings":"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"}