oh-my-codex 0.11.6 → 0.11.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Cargo.lock +5 -5
- package/Cargo.toml +1 -1
- package/README.de.md +3 -12
- package/README.es.md +3 -12
- package/README.fr.md +3 -12
- package/README.it.md +3 -12
- package/README.ja.md +3 -12
- package/README.ko.md +3 -12
- package/README.pt.md +3 -12
- package/README.ru.md +3 -12
- package/README.tr.md +3 -12
- package/README.vi.md +3 -12
- package/README.zh.md +3 -12
- package/dist/agents/__tests__/native-config.test.js +27 -0
- package/dist/agents/__tests__/native-config.test.js.map +1 -1
- package/dist/agents/native-config.d.ts +9 -0
- package/dist/agents/native-config.d.ts.map +1 -1
- package/dist/agents/native-config.js +51 -16
- package/dist/agents/native-config.js.map +1 -1
- package/dist/cli/__tests__/team-linked-ralph.test.d.ts +2 -0
- package/dist/cli/__tests__/team-linked-ralph.test.d.ts.map +1 -0
- package/dist/cli/__tests__/team-linked-ralph.test.js +47 -0
- package/dist/cli/__tests__/team-linked-ralph.test.js.map +1 -0
- package/dist/cli/__tests__/team.test.js +9 -77
- package/dist/cli/__tests__/team.test.js.map +1 -1
- package/dist/cli/index.js +0 -14
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/team.d.ts +1 -2
- package/dist/cli/team.d.ts.map +1 -1
- package/dist/cli/team.js +17 -70
- package/dist/cli/team.js.map +1 -1
- package/dist/config/__tests__/generator-idempotent.test.js +1 -1
- package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
- package/dist/config/generator.js +1 -1
- package/dist/config/generator.js.map +1 -1
- package/dist/hooks/__tests__/consensus-execution-handoff.test.js +3 -3
- package/dist/hooks/__tests__/consensus-execution-handoff.test.js.map +1 -1
- package/dist/hooks/__tests__/deep-interview-contract.test.js +1 -1
- package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/keyword-detector.test.js +2 -2
- package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js +142 -1
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +93 -0
- package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +56 -0
- package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +326 -4
- package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
- package/dist/pipeline/__tests__/stages.test.js +2 -2
- package/dist/pipeline/__tests__/stages.test.js.map +1 -1
- package/dist/pipeline/stages/team-exec.js +1 -1
- package/dist/pipeline/stages/team-exec.js.map +1 -1
- package/dist/runtime/__tests__/bridge.test.d.ts +2 -0
- package/dist/runtime/__tests__/bridge.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/bridge.test.js +52 -0
- package/dist/runtime/__tests__/bridge.test.js.map +1 -0
- package/dist/runtime/bridge.d.ts +7 -1
- package/dist/runtime/bridge.d.ts.map +1 -1
- package/dist/runtime/bridge.js +14 -12
- package/dist/runtime/bridge.js.map +1 -1
- package/dist/scripts/notify-fallback-watcher.js +310 -57
- package/dist/scripts/notify-fallback-watcher.js.map +1 -1
- package/dist/scripts/notify-hook/auto-nudge.d.ts +1 -1
- package/dist/scripts/notify-hook/auto-nudge.d.ts.map +1 -1
- package/dist/scripts/notify-hook/auto-nudge.js +73 -4
- package/dist/scripts/notify-hook/auto-nudge.js.map +1 -1
- package/dist/scripts/notify-hook/team-dispatch.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-dispatch.js +2 -1
- package/dist/scripts/notify-hook/team-dispatch.js.map +1 -1
- package/dist/scripts/notify-hook/team-leader-nudge.d.ts +2 -1
- package/dist/scripts/notify-hook/team-leader-nudge.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-leader-nudge.js +79 -8
- package/dist/scripts/notify-hook/team-leader-nudge.js.map +1 -1
- package/dist/scripts/notify-hook.d.ts +0 -1
- package/dist/scripts/notify-hook.d.ts.map +1 -1
- package/dist/scripts/notify-hook.js +0 -6
- package/dist/scripts/notify-hook.js.map +1 -1
- package/dist/team/__tests__/api-interop.test.js +0 -30
- package/dist/team/__tests__/api-interop.test.js.map +1 -1
- package/dist/team/__tests__/followup-planner.test.js +3 -3
- package/dist/team/__tests__/followup-planner.test.js.map +1 -1
- package/dist/team/__tests__/linked-ralph-bridge.test.d.ts +2 -0
- package/dist/team/__tests__/linked-ralph-bridge.test.d.ts.map +1 -0
- package/dist/team/__tests__/linked-ralph-bridge.test.js +95 -0
- package/dist/team/__tests__/linked-ralph-bridge.test.js.map +1 -0
- package/dist/team/__tests__/mcp-comm.test.js +41 -0
- package/dist/team/__tests__/mcp-comm.test.js.map +1 -1
- package/dist/team/__tests__/runtime.test.js +155 -134
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/scaling.test.js +149 -1
- package/dist/team/__tests__/scaling.test.js.map +1 -1
- package/dist/team/__tests__/state.test.js +80 -12
- package/dist/team/__tests__/state.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +6 -0
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/worker-bootstrap.test.js +20 -0
- package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
- package/dist/team/api-interop.d.ts.map +1 -1
- package/dist/team/api-interop.js +1 -4
- package/dist/team/api-interop.js.map +1 -1
- package/dist/team/followup-planner.js +6 -6
- package/dist/team/followup-planner.js.map +1 -1
- package/dist/team/linked-ralph-bridge.d.ts +27 -0
- package/dist/team/linked-ralph-bridge.d.ts.map +1 -0
- package/dist/team/linked-ralph-bridge.js +116 -0
- package/dist/team/linked-ralph-bridge.js.map +1 -0
- package/dist/team/mcp-comm.d.ts.map +1 -1
- package/dist/team/mcp-comm.js +9 -0
- package/dist/team/mcp-comm.js.map +1 -1
- package/dist/team/runtime-cli.d.ts.map +1 -1
- package/dist/team/runtime-cli.js +2 -8
- package/dist/team/runtime-cli.js.map +1 -1
- package/dist/team/runtime.d.ts +0 -4
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +23 -92
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/scaling.d.ts.map +1 -1
- package/dist/team/scaling.js +11 -8
- package/dist/team/scaling.js.map +1 -1
- package/dist/team/state/dispatch.d.ts.map +1 -1
- package/dist/team/state/dispatch.js +26 -13
- package/dist/team/state/dispatch.js.map +1 -1
- package/dist/team/state/mailbox.d.ts.map +1 -1
- package/dist/team/state/mailbox.js +34 -17
- package/dist/team/state/mailbox.js.map +1 -1
- package/dist/team/state/types.d.ts +2 -2
- package/dist/team/state/types.d.ts.map +1 -1
- package/dist/team/state.d.ts +3 -3
- package/dist/team/state.d.ts.map +1 -1
- package/dist/team/state.js +3 -3
- package/dist/team/state.js.map +1 -1
- package/dist/team/tmux-session.d.ts +7 -10
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +7 -19
- package/dist/team/tmux-session.js.map +1 -1
- package/package.json +1 -1
- package/prompts/planner.md +1 -1
- package/skills/cancel/SKILL.md +2 -8
- package/skills/deep-interview/SKILL.md +1 -1
- package/skills/plan/SKILL.md +4 -4
- package/skills/ralplan/SKILL.md +1 -1
- package/skills/team/SKILL.md +12 -19
- package/src/scripts/notify-fallback-watcher.ts +356 -56
- package/src/scripts/notify-hook/auto-nudge.ts +71 -4
- package/src/scripts/notify-hook/team-dispatch.ts +2 -1
- package/src/scripts/notify-hook/team-leader-nudge.ts +77 -8
- package/src/scripts/notify-hook.ts +0 -6
- package/templates/AGENTS.md +5 -0
- package/src/scripts/notify-hook/linked-sync.ts +0 -61
package/Cargo.lock
CHANGED
|
@@ -32,11 +32,11 @@ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
|
|
|
32
32
|
|
|
33
33
|
[[package]]
|
|
34
34
|
name = "omx-explore-harness"
|
|
35
|
-
version = "0.11.
|
|
35
|
+
version = "0.11.7"
|
|
36
36
|
|
|
37
37
|
[[package]]
|
|
38
38
|
name = "omx-mux"
|
|
39
|
-
version = "0.11.
|
|
39
|
+
version = "0.11.7"
|
|
40
40
|
dependencies = [
|
|
41
41
|
"serde",
|
|
42
42
|
"serde_json",
|
|
@@ -44,7 +44,7 @@ dependencies = [
|
|
|
44
44
|
|
|
45
45
|
[[package]]
|
|
46
46
|
name = "omx-runtime"
|
|
47
|
-
version = "0.11.
|
|
47
|
+
version = "0.11.7"
|
|
48
48
|
dependencies = [
|
|
49
49
|
"omx-mux",
|
|
50
50
|
"omx-runtime-core",
|
|
@@ -53,7 +53,7 @@ dependencies = [
|
|
|
53
53
|
|
|
54
54
|
[[package]]
|
|
55
55
|
name = "omx-runtime-core"
|
|
56
|
-
version = "0.11.
|
|
56
|
+
version = "0.11.7"
|
|
57
57
|
dependencies = [
|
|
58
58
|
"fs2",
|
|
59
59
|
"serde",
|
|
@@ -62,7 +62,7 @@ dependencies = [
|
|
|
62
62
|
|
|
63
63
|
[[package]]
|
|
64
64
|
name = "omx-sparkshell"
|
|
65
|
-
version = "0.11.
|
|
65
|
+
version = "0.11.7"
|
|
66
66
|
|
|
67
67
|
[[package]]
|
|
68
68
|
name = "proc-macro2"
|
package/Cargo.toml
CHANGED
package/README.de.md
CHANGED
|
@@ -152,19 +152,10 @@ omx team shutdown <team-name>
|
|
|
152
152
|
|
|
153
153
|
Wichtige Regel: Fahren Sie nicht herunter, während Aufgaben noch `in_progress` sind, es sei denn, Sie brechen ab.
|
|
154
154
|
|
|
155
|
-
###
|
|
155
|
+
### Team shutdown policy
|
|
156
156
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
| Verhalten | Normales Team | Ralph-Team |
|
|
161
|
-
|---|---|---|
|
|
162
|
-
| Erzwungenes Herunterfahren bei Fehler | Wirft `shutdown_gate_blocked` | Umgeht Gate, protokolliert `ralph_cleanup_policy`-Ereignis |
|
|
163
|
-
| Automatische Branch-Löschung | Löscht Worktree-Branches bei Rollback | Bewahrt Branches (`skipBranchDeletion`) |
|
|
164
|
-
| Abschluss-Protokollierung | Standard-`shutdown_gate`-Ereignis | Zusätzliches `ralph_cleanup_summary`-Ereignis mit Aufgabenaufschlüsselung |
|
|
165
|
-
|
|
166
|
-
Die Ralph-Richtlinie wird automatisch aus dem Team-Modus-Zustand (`linked_ralph`) erkannt oder
|
|
167
|
-
kann explizit über `omx team shutdown <name> --ralph` übergeben werden.
|
|
157
|
+
Use `omx team shutdown <team-name>` after the team reaches a terminal state.
|
|
158
|
+
Team cleanup now follows one standalone path; there is no separate `omx team ralph ...` shutdown policy anymore.
|
|
168
159
|
|
|
169
160
|
Worker-CLI-Auswahl für Team-Worker:
|
|
170
161
|
|
package/README.es.md
CHANGED
|
@@ -152,19 +152,10 @@ omx team shutdown <team-name>
|
|
|
152
152
|
|
|
153
153
|
Regla importante: no apagues mientras las tareas estén en estado `in_progress` a menos que estés abortando.
|
|
154
154
|
|
|
155
|
-
###
|
|
155
|
+
### Team shutdown policy
|
|
156
156
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
| Comportamiento | Equipo normal | Equipo Ralph |
|
|
161
|
-
|---|---|---|
|
|
162
|
-
| Apagado forzado en caso de fallo | Lanza `shutdown_gate_blocked` | Omite la puerta, registra evento `ralph_cleanup_policy` |
|
|
163
|
-
| Eliminación automática de ramas | Elimina ramas de worktree en rollback | Preserva ramas (`skipBranchDeletion`) |
|
|
164
|
-
| Registro de finalización | Evento estándar `shutdown_gate` | Evento adicional `ralph_cleanup_summary` con desglose de tareas |
|
|
165
|
-
|
|
166
|
-
La política Ralph se detecta automáticamente del estado del modo equipo (`linked_ralph`) o
|
|
167
|
-
se puede pasar explícitamente vía `omx team shutdown <name> --ralph`.
|
|
157
|
+
Use `omx team shutdown <team-name>` after the team reaches a terminal state.
|
|
158
|
+
Team cleanup now follows one standalone path; there is no separate `omx team ralph ...` shutdown policy anymore.
|
|
168
159
|
|
|
169
160
|
Selección de Worker CLI para los workers del equipo:
|
|
170
161
|
|
package/README.fr.md
CHANGED
|
@@ -152,19 +152,10 @@ omx team shutdown <team-name>
|
|
|
152
152
|
|
|
153
153
|
Règle importante : n'arrêtez pas tant que des tâches sont encore `in_progress`, sauf en cas d'abandon.
|
|
154
154
|
|
|
155
|
-
###
|
|
155
|
+
### Team shutdown policy
|
|
156
156
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
| Comportement | Équipe normale | Équipe Ralph |
|
|
161
|
-
|---|---|---|
|
|
162
|
-
| Arrêt forcé en cas d'échec | Lance `shutdown_gate_blocked` | Contourne la porte, journalise l'événement `ralph_cleanup_policy` |
|
|
163
|
-
| Suppression automatique des branches | Supprime les branches worktree lors du rollback | Préserve les branches (`skipBranchDeletion`) |
|
|
164
|
-
| Journalisation de complétion | Événement standard `shutdown_gate` | Événement supplémentaire `ralph_cleanup_summary` avec détail des tâches |
|
|
165
|
-
|
|
166
|
-
La politique ralph est auto-détectée depuis l'état du mode équipe (`linked_ralph`) ou
|
|
167
|
-
peut être passée explicitement via `omx team shutdown <name> --ralph`.
|
|
157
|
+
Use `omx team shutdown <team-name>` after the team reaches a terminal state.
|
|
158
|
+
Team cleanup now follows one standalone path; there is no separate `omx team ralph ...` shutdown policy anymore.
|
|
168
159
|
|
|
169
160
|
Sélection du CLI worker pour les workers d'équipe :
|
|
170
161
|
|
package/README.it.md
CHANGED
|
@@ -152,19 +152,10 @@ omx team shutdown <team-name>
|
|
|
152
152
|
|
|
153
153
|
Regola importante: non arrestare mentre i task sono ancora `in_progress`, a meno che non si stia abortendo.
|
|
154
154
|
|
|
155
|
-
###
|
|
155
|
+
### Team shutdown policy
|
|
156
156
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
| Comportamento | Team normale | Team Ralph |
|
|
161
|
-
|---|---|---|
|
|
162
|
-
| Shutdown forzato in caso di errore | Lancia `shutdown_gate_blocked` | Aggira il gate, registra l'evento `ralph_cleanup_policy` |
|
|
163
|
-
| Eliminazione automatica dei branch | Elimina i branch worktree durante il rollback | Preserva i branch (`skipBranchDeletion`) |
|
|
164
|
-
| Logging di completamento | Evento standard `shutdown_gate` | Evento aggiuntivo `ralph_cleanup_summary` con dettaglio dei task |
|
|
165
|
-
|
|
166
|
-
La policy ralph viene rilevata automaticamente dallo stato della modalità team (`linked_ralph`) o
|
|
167
|
-
può essere passata esplicitamente tramite `omx team shutdown <name> --ralph`.
|
|
157
|
+
Use `omx team shutdown <team-name>` after the team reaches a terminal state.
|
|
158
|
+
Team cleanup now follows one standalone path; there is no separate `omx team ralph ...` shutdown policy anymore.
|
|
168
159
|
|
|
169
160
|
Selezione CLI worker per i worker del team:
|
|
170
161
|
|
package/README.ja.md
CHANGED
|
@@ -153,19 +153,10 @@ omx team shutdown <team-name>
|
|
|
153
153
|
|
|
154
154
|
重要なルール:中断する場合を除き、タスクが`in_progress`状態の間はシャットダウンしないでください。
|
|
155
155
|
|
|
156
|
-
###
|
|
156
|
+
### Team shutdown policy
|
|
157
157
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
| 動作 | 通常チーム | Ralphチーム |
|
|
162
|
-
|---|---|---|
|
|
163
|
-
| 失敗時の強制シャットダウン | `shutdown_gate_blocked`をスロー | ゲートをバイパスし、`ralph_cleanup_policy`イベントをログ |
|
|
164
|
-
| 自動ブランチ削除 | ロールバック時にworktreeブランチを削除 | ブランチを保持(`skipBranchDeletion`) |
|
|
165
|
-
| 完了ログ | 標準`shutdown_gate`イベント | タスク内訳付きの追加`ralph_cleanup_summary`イベント |
|
|
166
|
-
|
|
167
|
-
Ralphポリシーはチームモード状態(`linked_ralph`)から自動検出されるか、
|
|
168
|
-
`omx team shutdown <name> --ralph`で明示的に渡すことができます。
|
|
158
|
+
Use `omx team shutdown <team-name>` after the team reaches a terminal state.
|
|
159
|
+
Team cleanup now follows one standalone path; there is no separate `omx team ralph ...` shutdown policy anymore.
|
|
169
160
|
|
|
170
161
|
チームワーカー用のWorker CLI選択:
|
|
171
162
|
|
package/README.ko.md
CHANGED
|
@@ -153,19 +153,10 @@ omx team shutdown <team-name>
|
|
|
153
153
|
|
|
154
154
|
중요 규칙: 중단하는 경우가 아니라면 작업이 `in_progress` 상태인 동안 종료하지 마세요.
|
|
155
155
|
|
|
156
|
-
###
|
|
156
|
+
### Team shutdown policy
|
|
157
157
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
| 동작 | 일반 팀 | Ralph 팀 |
|
|
162
|
-
|---|---|---|
|
|
163
|
-
| 실패 시 강제 종료 | `shutdown_gate_blocked` 발생 | 게이트를 우회하고 `ralph_cleanup_policy` 이벤트 기록 |
|
|
164
|
-
| 자동 브랜치 삭제 | 롤백 시 worktree 브랜치 삭제 | 브랜치 보존 (`skipBranchDeletion`) |
|
|
165
|
-
| 완료 로깅 | 표준 `shutdown_gate` 이벤트 | 작업 분석이 포함된 추가 `ralph_cleanup_summary` 이벤트 |
|
|
166
|
-
|
|
167
|
-
Ralph 정책은 팀 모드 상태(`linked_ralph`)에서 자동 감지되거나
|
|
168
|
-
`omx team shutdown <name> --ralph`로 명시적으로 전달할 수 있습니다.
|
|
158
|
+
Use `omx team shutdown <team-name>` after the team reaches a terminal state.
|
|
159
|
+
Team cleanup now follows one standalone path; there is no separate `omx team ralph ...` shutdown policy anymore.
|
|
169
160
|
|
|
170
161
|
팀 워커를 위한 Worker CLI 선택:
|
|
171
162
|
|
package/README.pt.md
CHANGED
|
@@ -152,19 +152,10 @@ omx team shutdown <team-name>
|
|
|
152
152
|
|
|
153
153
|
Regra importante: não encerre enquanto tarefas estiverem em estado `in_progress`, a menos que esteja abortando.
|
|
154
154
|
|
|
155
|
-
###
|
|
155
|
+
### Team shutdown policy
|
|
156
156
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
| Comportamento | Equipe normal | Equipe Ralph |
|
|
161
|
-
|---|---|---|
|
|
162
|
-
| Encerramento forçado em caso de falha | Lança `shutdown_gate_blocked` | Ignora a porta, registra evento `ralph_cleanup_policy` |
|
|
163
|
-
| Exclusão automática de branches | Exclui branches do worktree no rollback | Preserva branches (`skipBranchDeletion`) |
|
|
164
|
-
| Log de conclusão | Evento padrão `shutdown_gate` | Evento adicional `ralph_cleanup_summary` com detalhamento de tarefas |
|
|
165
|
-
|
|
166
|
-
A política Ralph é detectada automaticamente do estado do modo equipe (`linked_ralph`) ou
|
|
167
|
-
pode ser passada explicitamente via `omx team shutdown <name> --ralph`.
|
|
157
|
+
Use `omx team shutdown <team-name>` after the team reaches a terminal state.
|
|
158
|
+
Team cleanup now follows one standalone path; there is no separate `omx team ralph ...` shutdown policy anymore.
|
|
168
159
|
|
|
169
160
|
Seleção de Worker CLI para workers da equipe:
|
|
170
161
|
|
package/README.ru.md
CHANGED
|
@@ -152,19 +152,10 @@ omx team shutdown <team-name>
|
|
|
152
152
|
|
|
153
153
|
Важное правило: не завершайте работу, пока задачи находятся в состоянии `in_progress`, если только не прерываете выполнение.
|
|
154
154
|
|
|
155
|
-
###
|
|
155
|
+
### Team shutdown policy
|
|
156
156
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
| Поведение | Обычная команда | Команда Ralph |
|
|
161
|
-
|---|---|---|
|
|
162
|
-
| Принудительное завершение при сбое | Выбрасывает `shutdown_gate_blocked` | Обходит шлюз, логирует событие `ralph_cleanup_policy` |
|
|
163
|
-
| Автоматическое удаление веток | Удаляет ветки worktree при откате | Сохраняет ветки (`skipBranchDeletion`) |
|
|
164
|
-
| Логирование завершения | Стандартное событие `shutdown_gate` | Дополнительное событие `ralph_cleanup_summary` с разбивкой задач |
|
|
165
|
-
|
|
166
|
-
Политика Ralph автоматически определяется из состояния командного режима (`linked_ralph`) или
|
|
167
|
-
может быть указана явно через `omx team shutdown <name> --ralph`.
|
|
157
|
+
Use `omx team shutdown <team-name>` after the team reaches a terminal state.
|
|
158
|
+
Team cleanup now follows one standalone path; there is no separate `omx team ralph ...` shutdown policy anymore.
|
|
168
159
|
|
|
169
160
|
Выбор Worker CLI для рабочих команды:
|
|
170
161
|
|
package/README.tr.md
CHANGED
|
@@ -152,19 +152,10 @@ omx team shutdown <team-name>
|
|
|
152
152
|
|
|
153
153
|
Önemli kural: İptal etmiyorsanız, görevler hâlâ `in_progress` durumundayken kapatmayın.
|
|
154
154
|
|
|
155
|
-
###
|
|
155
|
+
### Team shutdown policy
|
|
156
156
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
| Davranış | Normal takım | Ralph takımı |
|
|
161
|
-
|---|---|---|
|
|
162
|
-
| Başarısızlıkta zorla kapatma | `shutdown_gate_blocked` hatası verir | Kapıyı atlar, `ralph_cleanup_policy` olayını günlükler |
|
|
163
|
-
| Otomatik dal silme | Geri almada worktree dallarını siler | Dalları korur (`skipBranchDeletion`) |
|
|
164
|
-
| Tamamlanma günlükleme | Standart `shutdown_gate` olayı | Görev dökümü ile ek `ralph_cleanup_summary` olayı |
|
|
165
|
-
|
|
166
|
-
Ralph politikası takım modu durumundan (`linked_ralph`) otomatik algılanır veya
|
|
167
|
-
`omx team shutdown <name> --ralph` ile açıkça belirtilebilir.
|
|
157
|
+
Use `omx team shutdown <team-name>` after the team reaches a terminal state.
|
|
158
|
+
Team cleanup now follows one standalone path; there is no separate `omx team ralph ...` shutdown policy anymore.
|
|
168
159
|
|
|
169
160
|
Takım çalışanları için Worker CLI seçimi:
|
|
170
161
|
|
package/README.vi.md
CHANGED
|
@@ -153,19 +153,10 @@ omx team shutdown <team-name>
|
|
|
153
153
|
|
|
154
154
|
Quy tắc quan trọng: không tắt khi các tác vụ vẫn đang ở trạng thái `in_progress` trừ khi đang hủy bỏ.
|
|
155
155
|
|
|
156
|
-
###
|
|
156
|
+
### Team shutdown policy
|
|
157
157
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
| Hành vi | Đội thông thường | Đội Ralph |
|
|
162
|
-
|---|---|---|
|
|
163
|
-
| Tắt cưỡng bức khi lỗi | Ném `shutdown_gate_blocked` | Bỏ qua cổng, ghi nhật ký sự kiện `ralph_cleanup_policy` |
|
|
164
|
-
| Xóa nhánh tự động | Xóa nhánh worktree khi rollback | Giữ lại nhánh (`skipBranchDeletion`) |
|
|
165
|
-
| Ghi nhật ký hoàn thành | Sự kiện `shutdown_gate` tiêu chuẩn | Sự kiện `ralph_cleanup_summary` bổ sung với phân tích tác vụ |
|
|
166
|
-
|
|
167
|
-
Chính sách Ralph được phát hiện tự động từ trạng thái chế độ đội (`linked_ralph`) hoặc
|
|
168
|
-
có thể được truyền rõ ràng qua `omx team shutdown <name> --ralph`.
|
|
158
|
+
Use `omx team shutdown <team-name>` after the team reaches a terminal state.
|
|
159
|
+
Team cleanup now follows one standalone path; there is no separate `omx team ralph ...` shutdown policy anymore.
|
|
169
160
|
|
|
170
161
|
Chọn Worker CLI cho worker của đội:
|
|
171
162
|
|
package/README.zh.md
CHANGED
|
@@ -153,19 +153,10 @@ omx team shutdown <team-name>
|
|
|
153
153
|
|
|
154
154
|
重要规则:除非中止,否则不要在任务仍处于 `in_progress` 状态时关闭。
|
|
155
155
|
|
|
156
|
-
###
|
|
156
|
+
### Team shutdown policy
|
|
157
157
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
| 行为 | 普通团队 | Ralph 团队 |
|
|
162
|
-
|---|---|---|
|
|
163
|
-
| 失败时强制关闭 | 抛出 `shutdown_gate_blocked` | 绕过闸门,记录 `ralph_cleanup_policy` 事件 |
|
|
164
|
-
| 自动分支删除 | 回滚时删除 worktree 分支 | 保留分支 (`skipBranchDeletion`) |
|
|
165
|
-
| 完成日志 | 标准 `shutdown_gate` 事件 | 附带任务分解的 `ralph_cleanup_summary` 事件 |
|
|
166
|
-
|
|
167
|
-
Ralph 策略从团队模式状态(`linked_ralph`)自动检测,或
|
|
168
|
-
可通过 `omx team shutdown <name> --ralph` 显式传递。
|
|
158
|
+
Use `omx team shutdown <team-name>` after the team reaches a terminal state.
|
|
159
|
+
Team cleanup now follows one standalone path; there is no separate `omx team ralph ...` shutdown policy anymore.
|
|
169
160
|
|
|
170
161
|
团队 worker 的 Worker CLI 选择:
|
|
171
162
|
|
|
@@ -41,6 +41,33 @@ describe("agents/native-config", () => {
|
|
|
41
41
|
const tripleQuoteBlocks = toml.match(/"""/g) || [];
|
|
42
42
|
assert.equal(tripleQuoteBlocks.length, 2, "only TOML delimiters should remain as raw triple quotes");
|
|
43
43
|
});
|
|
44
|
+
it("applies exact-model mini guidance only for resolved gpt-5.4-mini", () => {
|
|
45
|
+
const agent = {
|
|
46
|
+
name: "executor",
|
|
47
|
+
description: "Code implementation",
|
|
48
|
+
reasoningEffort: "medium",
|
|
49
|
+
posture: "deep-worker",
|
|
50
|
+
modelClass: "standard",
|
|
51
|
+
routingRole: "executor",
|
|
52
|
+
tools: "execution",
|
|
53
|
+
category: "build",
|
|
54
|
+
};
|
|
55
|
+
const prompt = "Instruction line";
|
|
56
|
+
const exactMiniToml = generateAgentToml(agent, prompt, {
|
|
57
|
+
env: { OMX_DEFAULT_STANDARD_MODEL: "gpt-5.4-mini" },
|
|
58
|
+
});
|
|
59
|
+
const frontierToml = generateAgentToml(agent, prompt, {
|
|
60
|
+
env: { OMX_DEFAULT_STANDARD_MODEL: "gpt-5.4" },
|
|
61
|
+
});
|
|
62
|
+
const tunedToml = generateAgentToml(agent, prompt, {
|
|
63
|
+
env: { OMX_DEFAULT_STANDARD_MODEL: "gpt-5.4-mini-tuned" },
|
|
64
|
+
});
|
|
65
|
+
assert.match(exactMiniToml, /exact gpt-5\.4-mini model/);
|
|
66
|
+
assert.match(exactMiniToml, /strict execution order: inspect -> plan -> act -> verify/);
|
|
67
|
+
assert.match(exactMiniToml, /resolved_model: gpt-5\.4-mini/);
|
|
68
|
+
assert.doesNotMatch(frontierToml, /exact gpt-5\.4-mini model/);
|
|
69
|
+
assert.doesNotMatch(tunedToml, /exact gpt-5\.4-mini model/);
|
|
70
|
+
});
|
|
44
71
|
it("installs only agents with prompt files and skips existing files without force", async () => {
|
|
45
72
|
const root = await mkdtemp(join(tmpdir(), "omx-native-config-"));
|
|
46
73
|
const promptsDir = join(root, "prompts");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-config.test.js","sourceRoot":"","sources":["../../../src/agents/__tests__/native-config.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAEhE,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;AAErE,UAAU,CAAC,GAAG,EAAE;IACd,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,cAAc,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,GAAG,EAAE;IACb,IAAI,OAAO,qBAAqB,KAAK,QAAQ,EAAE,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,qBAAqB,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,OAAO,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;IAChD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,KAAK,GAAoB;YAC7B,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,qBAAqB;YAClC,eAAe,EAAE,QAAQ;YACzB,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,UAAU;YACtB,WAAW,EAAE,UAAU;YACvB,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,OAAO;SAClB,CAAC;QAEF,MAAM,MAAM,GAAG,+DAA+D,CAAC;QAC/E,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE9C,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,+BAA+B,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,mCAAmC,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,+CAA+C,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAEnD,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,CAAC,KAAK,CACV,iBAAiB,CAAC,MAAM,EACxB,CAAC,EACD,yDAAyD,CAC1D,CAAC;IACJ,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"native-config.test.js","sourceRoot":"","sources":["../../../src/agents/__tests__/native-config.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Writes standalone TOML files under ~/.codex/agents/ or ./.codex/agents/.
|
|
4
4
|
*/
|
|
5
5
|
import { AgentDefinition } from "./definitions.js";
|
|
6
|
+
export declare const EXACT_GPT_5_4_MINI_MODEL = "gpt-5.4-mini";
|
|
6
7
|
export interface GeneratedNativeAgentConfig {
|
|
7
8
|
name: string;
|
|
8
9
|
description: string;
|
|
@@ -15,6 +16,14 @@ interface AgentModelResolutionOptions {
|
|
|
15
16
|
configTomlContent?: string;
|
|
16
17
|
env?: NodeJS.ProcessEnv;
|
|
17
18
|
}
|
|
19
|
+
interface RoleInstructionMetadata {
|
|
20
|
+
name: string;
|
|
21
|
+
posture: AgentDefinition["posture"];
|
|
22
|
+
modelClass: AgentDefinition["modelClass"];
|
|
23
|
+
routingRole: AgentDefinition["routingRole"];
|
|
24
|
+
}
|
|
25
|
+
export declare function composeRoleInstructions(promptContent: string, metadata: RoleInstructionMetadata | null, resolvedModel?: string): string;
|
|
26
|
+
export declare function composeRoleInstructionsForRole(roleName: string, promptContent: string, resolvedModel?: string): string;
|
|
18
27
|
/**
|
|
19
28
|
* Strip YAML frontmatter (between --- markers) from markdown content.
|
|
20
29
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-config.d.ts","sourceRoot":"","sources":["../../src/agents/native-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAqB,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"native-config.d.ts","sourceRoot":"","sources":["../../src/agents/native-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAqB,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAWtE,eAAO,MAAM,wBAAwB,iBAAiB,CAAC;AAiFvD,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;CACvD;AAED,UAAU,2BAA2B;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,UAAU,uBAAuB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACpC,UAAU,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC1C,WAAW,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;CAC7C;AAsDD,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,uBAAuB,GAAG,IAAI,EACxC,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAsCR;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAcR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMxD;AAcD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,0BAA0B,GACjC,MAAM,CAyBR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,2BAAgC,GACxC,MAAM,CASR;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,OAAO,CAAC,MAAM,CAAC,CAuCjB"}
|
|
@@ -9,6 +9,7 @@ import { AGENT_DEFINITIONS } from "./definitions.js";
|
|
|
9
9
|
import { DEFAULT_FRONTIER_MODEL, getEnvConfiguredStandardDefaultModel, getMainDefaultModel, getSparkDefaultModel, getStandardDefaultModel, } from "../config/models.js";
|
|
10
10
|
import { getRootModelName } from "../config/generator.js";
|
|
11
11
|
import { codexAgentsDir } from "../utils/paths.js";
|
|
12
|
+
export const EXACT_GPT_5_4_MINI_MODEL = "gpt-5.4-mini";
|
|
12
13
|
const POSTURE_OVERLAYS = {
|
|
13
14
|
"frontier-orchestrator": [
|
|
14
15
|
"<posture_overlay>",
|
|
@@ -74,6 +75,17 @@ const MODEL_CLASS_OVERLAYS = {
|
|
|
74
75
|
"</model_class_guidance>",
|
|
75
76
|
].join("\n"),
|
|
76
77
|
};
|
|
78
|
+
const EXACT_MINI_MODEL_OVERLAY = [
|
|
79
|
+
"<exact_model_guidance>",
|
|
80
|
+
"",
|
|
81
|
+
`This role is executing under the exact ${EXACT_GPT_5_4_MINI_MODEL} model.`,
|
|
82
|
+
"- Use a strict execution order: inspect -> plan -> act -> verify.",
|
|
83
|
+
"- Treat completion criteria as explicit: only report done after the requested work is implemented and fresh verification passes.",
|
|
84
|
+
"- If requirements are ambiguous or a blocker appears, state the blocker plainly and stop guessing until the missing decision is resolved.",
|
|
85
|
+
"- Do not bluff, pad, or invent results; report missing evidence and incomplete work honestly.",
|
|
86
|
+
"",
|
|
87
|
+
"</exact_model_guidance>",
|
|
88
|
+
].join("\n");
|
|
77
89
|
function readConfigTomlContent(codexHomeOverride, provided) {
|
|
78
90
|
if (typeof provided === "string")
|
|
79
91
|
return provided;
|
|
@@ -108,21 +120,43 @@ function resolveAgentModel(agent, options = {}) {
|
|
|
108
120
|
return resolveStandardModel(options);
|
|
109
121
|
}
|
|
110
122
|
}
|
|
111
|
-
function
|
|
123
|
+
function isExactMiniModel(resolvedModel) {
|
|
124
|
+
return resolvedModel?.trim() === EXACT_GPT_5_4_MINI_MODEL;
|
|
125
|
+
}
|
|
126
|
+
export function composeRoleInstructions(promptContent, metadata, resolvedModel) {
|
|
112
127
|
const instructions = stripFrontmatter(promptContent);
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
"",
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
`- posture: ${
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
128
|
+
const parts = [instructions];
|
|
129
|
+
if (metadata) {
|
|
130
|
+
parts.push("", POSTURE_OVERLAYS[metadata.posture], "", MODEL_CLASS_OVERLAYS[metadata.modelClass]);
|
|
131
|
+
}
|
|
132
|
+
if (isExactMiniModel(resolvedModel)) {
|
|
133
|
+
parts.push("", EXACT_MINI_MODEL_OVERLAY);
|
|
134
|
+
}
|
|
135
|
+
const metadataLines = [];
|
|
136
|
+
if (metadata) {
|
|
137
|
+
metadataLines.push("## OMX Agent Metadata", `- role: ${metadata.name}`, `- posture: ${metadata.posture}`, `- model_class: ${metadata.modelClass}`, `- routing_role: ${metadata.routingRole}`);
|
|
138
|
+
}
|
|
139
|
+
if (resolvedModel) {
|
|
140
|
+
if (metadataLines.length === 0) {
|
|
141
|
+
metadataLines.push("## OMX Agent Metadata");
|
|
142
|
+
}
|
|
143
|
+
metadataLines.push(`- resolved_model: ${resolvedModel}`);
|
|
144
|
+
}
|
|
145
|
+
if (metadataLines.length > 0) {
|
|
146
|
+
parts.push("", ...metadataLines);
|
|
147
|
+
}
|
|
148
|
+
return parts.join("\n");
|
|
149
|
+
}
|
|
150
|
+
export function composeRoleInstructionsForRole(roleName, promptContent, resolvedModel) {
|
|
151
|
+
const agent = AGENT_DEFINITIONS[roleName];
|
|
152
|
+
return composeRoleInstructions(promptContent, agent
|
|
153
|
+
? {
|
|
154
|
+
name: agent.name,
|
|
155
|
+
posture: agent.posture,
|
|
156
|
+
modelClass: agent.modelClass,
|
|
157
|
+
routingRole: agent.routingRole,
|
|
158
|
+
}
|
|
159
|
+
: null, resolvedModel);
|
|
126
160
|
}
|
|
127
161
|
/**
|
|
128
162
|
* Strip YAML frontmatter (between --- markers) from markdown content.
|
|
@@ -168,11 +202,12 @@ export function generateStandaloneAgentToml(config) {
|
|
|
168
202
|
* Generate TOML content for a prompt-backed OMX role agent.
|
|
169
203
|
*/
|
|
170
204
|
export function generateAgentToml(agent, promptContent, options = {}) {
|
|
205
|
+
const resolvedModel = resolveAgentModel(agent, options);
|
|
171
206
|
return generateStandaloneAgentToml({
|
|
172
207
|
name: agent.name,
|
|
173
208
|
description: agent.description,
|
|
174
|
-
developerInstructions:
|
|
175
|
-
model:
|
|
209
|
+
developerInstructions: composeRoleInstructions(promptContent, agent, resolvedModel),
|
|
210
|
+
model: resolvedModel,
|
|
176
211
|
reasoningEffort: agent.reasoningEffort,
|
|
177
212
|
});
|
|
178
213
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-config.js","sourceRoot":"","sources":["../../src/agents/native-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAmB,MAAM,kBAAkB,CAAC;AACtE,OAAO,EACL,sBAAsB,EACtB,oCAAoC,EACpC,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,gBAAgB,GAA+C;IACnE,uBAAuB,EAAE;QACvB,mBAAmB;QACnB,EAAE;QACF,yDAAyD;QACzD,2DAA2D;QAC3D,mEAAmE;QACnE,0GAA0G;QAC1G,uHAAuH;QACvH,0IAA0I;QAC1I,EAAE;QACF,oBAAoB;KACrB,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,aAAa,EAAE;QACb,mBAAmB;QACnB,EAAE;QACF,+CAA+C;QAC/C,6GAA6G;QAC7G,+EAA+E;QAC/E,8GAA8G;QAC9G,8HAA8H;QAC9H,EAAE;QACF,oBAAoB;KACrB,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,WAAW,EAAE;QACX,mBAAmB;QACnB,EAAE;QACF,6CAA6C;QAC7C,0FAA0F;QAC1F,oFAAoF;QACpF,sIAAsI;QACtI,0EAA0E;QAC1E,EAAE;QACF,oBAAoB;KACrB,CAAC,IAAI,CAAC,IAAI,CAAC;CACb,CAAC;AAEF,MAAM,oBAAoB,GAAkD;IAC1E,QAAQ,EAAE;QACR,wBAAwB;QACxB,EAAE;QACF,+CAA+C;QAC/C,8FAA8F;QAC9F,gEAAgE;QAChE,EAAE;QACF,yBAAyB;KAC1B,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,QAAQ,EAAE;QACR,wBAAwB;QACxB,EAAE;QACF,oDAAoD;QACpD,2CAA2C;QAC3C,qFAAqF;QACrF,EAAE;QACF,yBAAyB;KAC1B,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,IAAI,EAAE;QACJ,wBAAwB;QACxB,EAAE;QACF,iDAAiD;QACjD,yEAAyE;QACzE,4DAA4D;QAC5D,EAAE;QACF,yBAAyB;KAC1B,CAAC,IAAI,CAAC,IAAI,CAAC;CACb,CAAC;
|
|
1
|
+
{"version":3,"file":"native-config.js","sourceRoot":"","sources":["../../src/agents/native-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-linked-ralph.test.d.ts","sourceRoot":"","sources":["../../../src/cli/__tests__/team-linked-ralph.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { describe, it } from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { mkdtemp, rm } from 'node:fs/promises';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
import { tmpdir } from 'node:os';
|
|
6
|
+
import { readModeState, startMode, updateModeState } from '../../modes/base.js';
|
|
7
|
+
import { ensureLinkedRalphModeState } from '../../team/linked-ralph-bridge.js';
|
|
8
|
+
describe('ensureLinkedRalphModeState', () => {
|
|
9
|
+
it('creates a linked Ralph mode state when none exists', async () => {
|
|
10
|
+
const wd = await mkdtemp(join(tmpdir(), 'omx-team-linked-ralph-'));
|
|
11
|
+
try {
|
|
12
|
+
await ensureLinkedRalphModeState('ship it', 'ship-it', wd);
|
|
13
|
+
const state = await readModeState('ralph', wd);
|
|
14
|
+
assert.ok(state, 'expected ralph state to be created');
|
|
15
|
+
assert.equal(state?.active, true);
|
|
16
|
+
assert.equal(state?.current_phase, 'executing');
|
|
17
|
+
assert.equal(state?.task_description, 'ship it');
|
|
18
|
+
assert.equal(state?.linked_team, true);
|
|
19
|
+
assert.equal(state?.team_name, 'ship-it');
|
|
20
|
+
assert.equal(typeof state?.linked_team_started_at, 'string');
|
|
21
|
+
}
|
|
22
|
+
finally {
|
|
23
|
+
await rm(wd, { recursive: true, force: true });
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
it('updates the active Ralph state to reflect linked team monitoring', async () => {
|
|
27
|
+
const wd = await mkdtemp(join(tmpdir(), 'omx-team-linked-ralph-update-'));
|
|
28
|
+
try {
|
|
29
|
+
await startMode('ralph', 'old task', 50, wd);
|
|
30
|
+
await updateModeState('ralph', {
|
|
31
|
+
current_phase: 'verifying',
|
|
32
|
+
}, wd);
|
|
33
|
+
await ensureLinkedRalphModeState('new linked task', 'alpha', wd);
|
|
34
|
+
const state = await readModeState('ralph', wd);
|
|
35
|
+
assert.ok(state, 'expected ralph state to exist');
|
|
36
|
+
assert.equal(state?.active, true);
|
|
37
|
+
assert.equal(state?.current_phase, 'executing');
|
|
38
|
+
assert.equal(state?.task_description, 'new linked task');
|
|
39
|
+
assert.equal(state?.linked_team, true);
|
|
40
|
+
assert.equal(state?.team_name, 'alpha');
|
|
41
|
+
}
|
|
42
|
+
finally {
|
|
43
|
+
await rm(wd, { recursive: true, force: true });
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=team-linked-ralph.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-linked-ralph.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/team-linked-ralph.test.ts"],"names":[],"mappings":"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"}
|