triflux 8.2.3 → 8.3.0
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/.claude-plugin/plugin.json +1 -1
- package/bin/tfx-doctor-tui.mjs +7 -0
- package/bin/tfx-profile.mjs +7 -0
- package/bin/tfx-setup-tui.mjs +7 -0
- package/bin/triflux.mjs +4 -4
- package/hub/intent.mjs +7 -7
- package/hub/team/tui.mjs +4 -0
- package/hub/workers/delegator-mcp.mjs +18 -18
- package/package.json +6 -2
- package/scripts/setup.mjs +4 -33
- package/scripts/tfx-route.sh +57 -57
- package/skills/tfx-auto-codex/SKILL.md +1 -1
- package/skills/tfx-codex/SKILL.md +2 -2
- package/skills/tfx-doctor/SKILL.md +161 -94
- package/skills/tfx-hub/SKILL.md +1 -1
- package/skills/tfx-profile/SKILL.md +149 -0
- package/skills/tfx-setup/SKILL.md +160 -101
- package/tui/codex-profile.mjs +402 -0
- package/tui/core.mjs +236 -0
- package/tui/doctor.mjs +327 -0
- package/tui/setup.mjs +362 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// tfx-doctor-tui — Interactive Doctor TUI entry point
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { dirname, join } from "node:path";
|
|
5
|
+
|
|
6
|
+
const root = dirname(dirname(fileURLToPath(import.meta.url)));
|
|
7
|
+
await import(join(root, "tui", "doctor.mjs"));
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// tfx-profile — Codex Profile Manager TUI entry point
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { dirname, join } from "node:path";
|
|
5
|
+
|
|
6
|
+
const root = dirname(dirname(fileURLToPath(import.meta.url)));
|
|
7
|
+
await import(join(root, "tui", "codex-profile.mjs"));
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// tfx-setup-tui — Interactive Setup Wizard TUI entry point
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { dirname, join } from "node:path";
|
|
5
|
+
|
|
6
|
+
const root = dirname(dirname(fileURLToPath(import.meta.url)));
|
|
7
|
+
await import(join(root, "tui", "setup.mjs"));
|
package/bin/triflux.mjs
CHANGED
|
@@ -20,23 +20,23 @@ const PKG = JSON.parse(readFileSync(join(PKG_ROOT, "package.json"), "utf8"));
|
|
|
20
20
|
|
|
21
21
|
const REQUIRED_CODEX_PROFILES = [
|
|
22
22
|
{
|
|
23
|
-
name: "
|
|
23
|
+
name: "codex53_high",
|
|
24
24
|
lines: [
|
|
25
25
|
'model = "gpt-5.3-codex"',
|
|
26
26
|
'model_reasoning_effort = "high"',
|
|
27
27
|
],
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
|
-
name: "
|
|
30
|
+
name: "codex53_xhigh",
|
|
31
31
|
lines: [
|
|
32
32
|
'model = "gpt-5.3-codex"',
|
|
33
33
|
'model_reasoning_effort = "xhigh"',
|
|
34
34
|
],
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
|
-
name: "
|
|
37
|
+
name: "spark53_low",
|
|
38
38
|
lines: [
|
|
39
|
-
'model = "gpt-5.
|
|
39
|
+
'model = "gpt-5.3-codex-spark"',
|
|
40
40
|
'model_reasoning_effort = "low"',
|
|
41
41
|
],
|
|
42
42
|
},
|
package/hub/intent.mjs
CHANGED
|
@@ -61,14 +61,14 @@ function _tryCodexClassify(prompt) {
|
|
|
61
61
|
|
|
62
62
|
/** triflux 특화 의도 카테고리 (10개) */
|
|
63
63
|
export const INTENT_CATEGORIES = {
|
|
64
|
-
implement: { agent: 'executor', mcp: 'implement', effort: '
|
|
65
|
-
debug: { agent: 'debugger', mcp: 'implement', effort: '
|
|
66
|
-
analyze: { agent: 'analyst', mcp: 'analyze', effort: '
|
|
67
|
-
design: { agent: 'architect', mcp: 'analyze', effort: '
|
|
68
|
-
review: { agent: 'code-reviewer', mcp: 'review', effort: '
|
|
64
|
+
implement: { agent: 'executor', mcp: 'implement', effort: 'codex53_high' },
|
|
65
|
+
debug: { agent: 'debugger', mcp: 'implement', effort: 'codex53_high' },
|
|
66
|
+
analyze: { agent: 'analyst', mcp: 'analyze', effort: 'gpt54_xhigh' },
|
|
67
|
+
design: { agent: 'architect', mcp: 'analyze', effort: 'gpt54_xhigh' },
|
|
68
|
+
review: { agent: 'code-reviewer', mcp: 'review', effort: 'codex53_high' },
|
|
69
69
|
document: { agent: 'writer', mcp: 'docs', effort: 'pro' },
|
|
70
|
-
research: { agent: 'scientist', mcp: 'analyze', effort: '
|
|
71
|
-
'quick-fix':{ agent: 'build-fixer', mcp: 'implement', effort: '
|
|
70
|
+
research: { agent: 'scientist', mcp: 'analyze', effort: 'codex53_high' },
|
|
71
|
+
'quick-fix':{ agent: 'build-fixer', mcp: 'implement', effort: 'codex53_low' },
|
|
72
72
|
explain: { agent: 'writer', mcp: 'docs', effort: 'flash' },
|
|
73
73
|
test: { agent: 'test-engineer', mcp: null, effort: null },
|
|
74
74
|
};
|
package/hub/team/tui.mjs
CHANGED
|
@@ -65,24 +65,24 @@ const AGENT_TIMEOUT_SEC = Object.freeze({
|
|
|
65
65
|
});
|
|
66
66
|
|
|
67
67
|
const CODEX_PROFILE_BY_AGENT = Object.freeze({
|
|
68
|
-
executor: '
|
|
69
|
-
'build-fixer': '
|
|
70
|
-
debugger: '
|
|
71
|
-
'deep-executor': '
|
|
72
|
-
architect: '
|
|
73
|
-
planner: '
|
|
74
|
-
critic: '
|
|
75
|
-
analyst: '
|
|
76
|
-
'code-reviewer': '
|
|
77
|
-
'security-reviewer': '
|
|
78
|
-
'quality-reviewer': '
|
|
79
|
-
scientist: '
|
|
80
|
-
'scientist-deep': '
|
|
81
|
-
'document-specialist': '
|
|
82
|
-
verifier: '
|
|
83
|
-
designer: '
|
|
84
|
-
writer: '
|
|
85
|
-
spark: '
|
|
68
|
+
executor: 'codex53_high',
|
|
69
|
+
'build-fixer': 'codex53_low',
|
|
70
|
+
debugger: 'codex53_high',
|
|
71
|
+
'deep-executor': 'gpt54_xhigh',
|
|
72
|
+
architect: 'gpt54_xhigh',
|
|
73
|
+
planner: 'gpt54_xhigh',
|
|
74
|
+
critic: 'gpt54_xhigh',
|
|
75
|
+
analyst: 'gpt54_xhigh',
|
|
76
|
+
'code-reviewer': 'codex53_high',
|
|
77
|
+
'security-reviewer': 'codex53_high',
|
|
78
|
+
'quality-reviewer': 'codex53_high',
|
|
79
|
+
scientist: 'codex53_high',
|
|
80
|
+
'scientist-deep': 'gpt54_high',
|
|
81
|
+
'document-specialist': 'codex53_high',
|
|
82
|
+
verifier: 'codex53_high',
|
|
83
|
+
designer: 'gpt54_xhigh', // Gemini primary, codex fallback — UI/UX는 5.4 에이전틱
|
|
84
|
+
writer: 'codex53_high', // Gemini primary, codex fallback용
|
|
85
|
+
spark: 'spark53_low',
|
|
86
86
|
});
|
|
87
87
|
|
|
88
88
|
const GEMINI_MODEL_BY_AGENT = Object.freeze({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "triflux",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.3.0",
|
|
4
4
|
"description": "CLI-first multi-model orchestrator for Claude Code — route tasks to Codex, Gemini, and Claude",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -8,10 +8,14 @@
|
|
|
8
8
|
"tfx": "bin/triflux.mjs",
|
|
9
9
|
"tfl": "bin/triflux.mjs",
|
|
10
10
|
"tfx-setup": "bin/tfx-setup.mjs",
|
|
11
|
-
"tfx-doctor": "bin/tfx-doctor.mjs"
|
|
11
|
+
"tfx-doctor": "bin/tfx-doctor.mjs",
|
|
12
|
+
"tfx-profile": "bin/tfx-profile.mjs",
|
|
13
|
+
"tfx-doctor-tui": "bin/tfx-doctor-tui.mjs",
|
|
14
|
+
"tfx-setup-tui": "bin/tfx-setup-tui.mjs"
|
|
12
15
|
},
|
|
13
16
|
"files": [
|
|
14
17
|
"bin",
|
|
18
|
+
"tui",
|
|
15
19
|
"hub",
|
|
16
20
|
"skills",
|
|
17
21
|
"!skills/tfx-workspace",
|
package/scripts/setup.mjs
CHANGED
|
@@ -31,55 +31,26 @@ const BREADCRUMB_PATH = join(CLAUDE_DIR, "scripts", ".tfx-pkg-root");
|
|
|
31
31
|
|
|
32
32
|
const REQUIRED_CODEX_PROFILES = [
|
|
33
33
|
{
|
|
34
|
-
name: "
|
|
35
|
-
lines: [
|
|
36
|
-
'model = "gpt-5.3-codex"',
|
|
37
|
-
'model_reasoning_effort = "low"',
|
|
38
|
-
],
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
name: "normal",
|
|
42
|
-
lines: [
|
|
43
|
-
'model = "gpt-5.3-codex"',
|
|
44
|
-
'model_reasoning_effort = "medium"',
|
|
45
|
-
],
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
name: "high",
|
|
34
|
+
name: "codex53_high",
|
|
49
35
|
lines: [
|
|
50
36
|
'model = "gpt-5.3-codex"',
|
|
51
37
|
'model_reasoning_effort = "high"',
|
|
52
38
|
],
|
|
53
39
|
},
|
|
54
40
|
{
|
|
55
|
-
name: "
|
|
56
|
-
lines: [
|
|
57
|
-
'model = "gpt-5.3-codex"',
|
|
58
|
-
'model_reasoning_effort = "high"',
|
|
59
|
-
'model_temperature = 0.2',
|
|
60
|
-
],
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
name: "xhigh",
|
|
41
|
+
name: "codex53_xhigh",
|
|
64
42
|
lines: [
|
|
65
43
|
'model = "gpt-5.3-codex"',
|
|
66
44
|
'model_reasoning_effort = "xhigh"',
|
|
67
45
|
],
|
|
68
46
|
},
|
|
69
47
|
{
|
|
70
|
-
name: "
|
|
48
|
+
name: "spark53_low",
|
|
71
49
|
lines: [
|
|
72
|
-
'model = "gpt-5.
|
|
50
|
+
'model = "gpt-5.3-codex-spark"',
|
|
73
51
|
'model_reasoning_effort = "low"',
|
|
74
52
|
],
|
|
75
53
|
},
|
|
76
|
-
{
|
|
77
|
-
name: "spark_balanced",
|
|
78
|
-
lines: [
|
|
79
|
-
'model = "gpt-5.1-codex-mini"',
|
|
80
|
-
'model_reasoning_effort = "medium"',
|
|
81
|
-
],
|
|
82
|
-
},
|
|
83
54
|
];
|
|
84
55
|
|
|
85
56
|
// ── 파일 동기화 ──
|
package/scripts/tfx-route.sh
CHANGED
|
@@ -641,53 +641,53 @@ route_agent() {
|
|
|
641
641
|
case "$agent" in
|
|
642
642
|
# ─── 구현 레인 ───
|
|
643
643
|
executor)
|
|
644
|
-
CLI_ARGS="exec ${codex_base}"
|
|
645
|
-
CLI_EFFORT="
|
|
644
|
+
CLI_ARGS="exec --profile codex53_high ${codex_base}"
|
|
645
|
+
CLI_EFFORT="codex53_high"; DEFAULT_TIMEOUT=1080; RUN_MODE="fg"; OPUS_OVERSIGHT="false" ;;
|
|
646
646
|
build-fixer)
|
|
647
|
-
CLI_ARGS="exec --profile
|
|
648
|
-
CLI_EFFORT="
|
|
647
|
+
CLI_ARGS="exec --profile codex53_low ${codex_base}"
|
|
648
|
+
CLI_EFFORT="codex53_low"; DEFAULT_TIMEOUT=540; RUN_MODE="fg"; OPUS_OVERSIGHT="false" ;;
|
|
649
649
|
debugger)
|
|
650
|
-
CLI_ARGS="exec ${codex_base}"
|
|
651
|
-
CLI_EFFORT="
|
|
650
|
+
CLI_ARGS="exec --profile codex53_high ${codex_base}"
|
|
651
|
+
CLI_EFFORT="codex53_high"; DEFAULT_TIMEOUT=900; RUN_MODE="bg"; OPUS_OVERSIGHT="false" ;;
|
|
652
652
|
deep-executor)
|
|
653
|
-
CLI_ARGS="exec --profile
|
|
654
|
-
CLI_EFFORT="
|
|
653
|
+
CLI_ARGS="exec --profile gpt54_xhigh ${codex_base}"
|
|
654
|
+
CLI_EFFORT="gpt54_xhigh"; DEFAULT_TIMEOUT=3600; RUN_MODE="bg"; OPUS_OVERSIGHT="true" ;;
|
|
655
655
|
|
|
656
|
-
# ─── 설계/분석 레인 ───
|
|
656
|
+
# ─── 설계/분석 레인 (5.4: 1M 컨텍스트, 에이전틱) ───
|
|
657
657
|
architect)
|
|
658
|
-
CLI_ARGS="exec --profile
|
|
659
|
-
CLI_EFFORT="
|
|
658
|
+
CLI_ARGS="exec --profile gpt54_xhigh ${codex_base}"
|
|
659
|
+
CLI_EFFORT="gpt54_xhigh"; DEFAULT_TIMEOUT=3600; RUN_MODE="bg"; OPUS_OVERSIGHT="true" ;;
|
|
660
660
|
planner)
|
|
661
|
-
CLI_ARGS="exec --profile
|
|
662
|
-
CLI_EFFORT="
|
|
661
|
+
CLI_ARGS="exec --profile gpt54_xhigh ${codex_base}"
|
|
662
|
+
CLI_EFFORT="gpt54_xhigh"; DEFAULT_TIMEOUT=3600; RUN_MODE="fg"; OPUS_OVERSIGHT="true" ;;
|
|
663
663
|
critic)
|
|
664
|
-
CLI_ARGS="exec --profile
|
|
665
|
-
CLI_EFFORT="
|
|
664
|
+
CLI_ARGS="exec --profile gpt54_xhigh ${codex_base}"
|
|
665
|
+
CLI_EFFORT="gpt54_xhigh"; DEFAULT_TIMEOUT=3600; RUN_MODE="bg"; OPUS_OVERSIGHT="true" ;;
|
|
666
666
|
analyst)
|
|
667
|
-
CLI_ARGS="exec --profile
|
|
668
|
-
CLI_EFFORT="
|
|
667
|
+
CLI_ARGS="exec --profile gpt54_xhigh ${codex_base}"
|
|
668
|
+
CLI_EFFORT="gpt54_xhigh"; DEFAULT_TIMEOUT=3600; RUN_MODE="fg"; OPUS_OVERSIGHT="true" ;;
|
|
669
669
|
|
|
670
|
-
# ─── 리뷰 레인 ───
|
|
670
|
+
# ─── 리뷰 레인 (5.3-codex: SWE-Bench 72%) ───
|
|
671
671
|
code-reviewer)
|
|
672
|
-
CLI_ARGS="exec --profile
|
|
673
|
-
CLI_EFFORT="
|
|
672
|
+
CLI_ARGS="exec --profile codex53_high ${codex_base} review"
|
|
673
|
+
CLI_EFFORT="codex53_high"; DEFAULT_TIMEOUT=1800; RUN_MODE="bg"; OPUS_OVERSIGHT="false" ;;
|
|
674
674
|
security-reviewer)
|
|
675
|
-
CLI_ARGS="exec --profile
|
|
676
|
-
CLI_EFFORT="
|
|
675
|
+
CLI_ARGS="exec --profile codex53_high ${codex_base} review"
|
|
676
|
+
CLI_EFFORT="codex53_high"; DEFAULT_TIMEOUT=1800; RUN_MODE="bg"; OPUS_OVERSIGHT="true" ;;
|
|
677
677
|
quality-reviewer)
|
|
678
|
-
CLI_ARGS="exec --profile
|
|
679
|
-
CLI_EFFORT="
|
|
678
|
+
CLI_ARGS="exec --profile codex53_high ${codex_base} review"
|
|
679
|
+
CLI_EFFORT="codex53_high"; DEFAULT_TIMEOUT=1800; RUN_MODE="bg"; OPUS_OVERSIGHT="false" ;;
|
|
680
680
|
|
|
681
681
|
# ─── 리서치 레인 ───
|
|
682
682
|
scientist)
|
|
683
|
-
CLI_ARGS="exec ${codex_base}"
|
|
684
|
-
CLI_EFFORT="
|
|
683
|
+
CLI_ARGS="exec --profile codex53_high ${codex_base}"
|
|
684
|
+
CLI_EFFORT="codex53_high"; DEFAULT_TIMEOUT=1440; RUN_MODE="bg"; OPUS_OVERSIGHT="false" ;;
|
|
685
685
|
scientist-deep)
|
|
686
|
-
CLI_ARGS="exec --profile
|
|
687
|
-
CLI_EFFORT="
|
|
686
|
+
CLI_ARGS="exec --profile gpt54_high ${codex_base}"
|
|
687
|
+
CLI_EFFORT="gpt54_high"; DEFAULT_TIMEOUT=3600; RUN_MODE="bg"; OPUS_OVERSIGHT="false" ;;
|
|
688
688
|
document-specialist)
|
|
689
|
-
CLI_ARGS="exec ${codex_base}"
|
|
690
|
-
CLI_EFFORT="
|
|
689
|
+
CLI_ARGS="exec --profile codex53_high ${codex_base}"
|
|
690
|
+
CLI_EFFORT="codex53_high"; DEFAULT_TIMEOUT=1440; RUN_MODE="bg"; OPUS_OVERSIGHT="false" ;;
|
|
691
691
|
|
|
692
692
|
# ─── UI/문서 레인 ───
|
|
693
693
|
designer)
|
|
@@ -703,23 +703,23 @@ route_agent() {
|
|
|
703
703
|
|
|
704
704
|
# ─── 검증/테스트 (Codex: 무료 + 파일 쓰기 가능) ───
|
|
705
705
|
verifier)
|
|
706
|
-
CLI_ARGS="exec --profile
|
|
707
|
-
CLI_EFFORT="
|
|
706
|
+
CLI_ARGS="exec --profile codex53_high ${codex_base} review"
|
|
707
|
+
CLI_EFFORT="codex53_high"; DEFAULT_TIMEOUT=1200; RUN_MODE="fg"; OPUS_OVERSIGHT="false" ;;
|
|
708
708
|
test-engineer)
|
|
709
|
-
CLI_ARGS="exec ${codex_base}"
|
|
710
|
-
CLI_EFFORT="
|
|
709
|
+
CLI_ARGS="exec --profile codex53_high ${codex_base}"
|
|
710
|
+
CLI_EFFORT="codex53_high"; DEFAULT_TIMEOUT=1200; RUN_MODE="bg"; OPUS_OVERSIGHT="false" ;;
|
|
711
711
|
qa-tester)
|
|
712
|
-
CLI_ARGS="exec --profile
|
|
713
|
-
CLI_EFFORT="
|
|
712
|
+
CLI_ARGS="exec --profile codex53_high ${codex_base} review"
|
|
713
|
+
CLI_EFFORT="codex53_high"; DEFAULT_TIMEOUT=1200; RUN_MODE="bg"; OPUS_OVERSIGHT="false" ;;
|
|
714
714
|
|
|
715
715
|
# ─── 경량 ───
|
|
716
716
|
spark)
|
|
717
|
-
CLI_ARGS="exec --profile
|
|
718
|
-
CLI_EFFORT="
|
|
717
|
+
CLI_ARGS="exec --profile spark53_low ${codex_base}"
|
|
718
|
+
CLI_EFFORT="spark53_low"; DEFAULT_TIMEOUT=180; RUN_MODE="fg"; OPUS_OVERSIGHT="false" ;;
|
|
719
719
|
# ─── CLI 이름 alias (사용자 편의) ───
|
|
720
720
|
codex)
|
|
721
|
-
CLI_ARGS="exec ${codex_base}"
|
|
722
|
-
CLI_EFFORT="
|
|
721
|
+
CLI_ARGS="exec --profile codex53_high ${codex_base}"
|
|
722
|
+
CLI_EFFORT="codex53_high"; DEFAULT_TIMEOUT=1080; RUN_MODE="fg"; OPUS_OVERSIGHT="false" ;;
|
|
723
723
|
gemini)
|
|
724
724
|
CLI_ARGS="-m gemini-3.1-pro-preview -y --prompt"
|
|
725
725
|
CLI_EFFORT="pro"; DEFAULT_TIMEOUT=900; RUN_MODE="bg"; OPUS_OVERSIGHT="false" ;;
|
|
@@ -729,8 +729,8 @@ route_agent() {
|
|
|
729
729
|
*)
|
|
730
730
|
case "$CLI_TYPE" in
|
|
731
731
|
codex)
|
|
732
|
-
CLI_ARGS="exec ${codex_base}"
|
|
733
|
-
CLI_EFFORT="
|
|
732
|
+
CLI_ARGS="exec --profile codex53_high ${codex_base}"
|
|
733
|
+
CLI_EFFORT="codex53_high"; DEFAULT_TIMEOUT=1080; RUN_MODE="fg"; OPUS_OVERSIGHT="false" ;;
|
|
734
734
|
gemini)
|
|
735
735
|
CLI_ARGS="-m gemini-3.1-pro-preview -y --prompt"
|
|
736
736
|
CLI_EFFORT="pro"; DEFAULT_TIMEOUT=900; RUN_MODE="bg"; OPUS_OVERSIGHT="false" ;;
|
|
@@ -813,9 +813,9 @@ apply_cli_mode() {
|
|
|
813
813
|
CLI_TYPE="codex"; CLI_CMD="codex"
|
|
814
814
|
case "$AGENT_TYPE" in
|
|
815
815
|
designer)
|
|
816
|
-
CLI_ARGS="exec ${codex_base}"; CLI_EFFORT="
|
|
816
|
+
CLI_ARGS="exec --profile gpt54_xhigh ${codex_base}"; CLI_EFFORT="gpt54_xhigh"; DEFAULT_TIMEOUT=600 ;;
|
|
817
817
|
writer)
|
|
818
|
-
CLI_ARGS="exec --profile
|
|
818
|
+
CLI_ARGS="exec --profile spark53_low ${codex_base}"; CLI_EFFORT="spark53_low"; DEFAULT_TIMEOUT=180 ;;
|
|
819
819
|
esac
|
|
820
820
|
echo "[tfx-route] TFX_CLI_MODE=codex: $AGENT_TYPE → codex($CLI_EFFORT)로 리매핑" >&2
|
|
821
821
|
fi ;;
|
|
@@ -854,16 +854,16 @@ apply_cli_mode() {
|
|
|
854
854
|
esac
|
|
855
855
|
}
|
|
856
856
|
|
|
857
|
-
# ── Codex 요금제 가드 (
|
|
857
|
+
# ── Codex 요금제 가드 (spark 프로필은 Pro 전용) ──
|
|
858
858
|
apply_plan_guard() {
|
|
859
859
|
[[ "$CLI_TYPE" != "codex" ]] && return
|
|
860
860
|
[[ "$TFX_CODEX_PLAN" == "pro" ]] && return
|
|
861
861
|
|
|
862
|
-
if [[ "$CLI_EFFORT" ==
|
|
862
|
+
if [[ "$CLI_EFFORT" == spark53_* ]]; then
|
|
863
863
|
local codex_base="--dangerously-bypass-approvals-and-sandbox --skip-git-repo-check"
|
|
864
|
-
CLI_ARGS="exec ${codex_base}"
|
|
865
|
-
CLI_EFFORT="
|
|
866
|
-
echo "[tfx-route] TFX_CODEX_PLAN=$TFX_CODEX_PLAN:
|
|
864
|
+
CLI_ARGS="exec --profile codex53_high ${codex_base}"
|
|
865
|
+
CLI_EFFORT="codex53_high"
|
|
866
|
+
echo "[tfx-route] TFX_CODEX_PLAN=$TFX_CODEX_PLAN: spark → codex53_high로 다운그레이드 (Pro 전용)" >&2
|
|
867
867
|
fi
|
|
868
868
|
}
|
|
869
869
|
|
|
@@ -885,29 +885,29 @@ apply_no_claude_native_mode() {
|
|
|
885
885
|
|
|
886
886
|
case "$AGENT_TYPE" in
|
|
887
887
|
explore)
|
|
888
|
-
CLI_ARGS="exec --profile
|
|
889
|
-
CLI_EFFORT="
|
|
888
|
+
CLI_ARGS="exec --profile codex53_low ${codex_base}"
|
|
889
|
+
CLI_EFFORT="codex53_low"
|
|
890
890
|
DEFAULT_TIMEOUT=600
|
|
891
891
|
RUN_MODE="fg"
|
|
892
892
|
OPUS_OVERSIGHT="false"
|
|
893
893
|
;;
|
|
894
894
|
verifier)
|
|
895
|
-
CLI_ARGS="exec --profile
|
|
896
|
-
CLI_EFFORT="
|
|
895
|
+
CLI_ARGS="exec --profile codex53_high ${codex_base} review"
|
|
896
|
+
CLI_EFFORT="codex53_high"
|
|
897
897
|
DEFAULT_TIMEOUT=1200
|
|
898
898
|
RUN_MODE="fg"
|
|
899
899
|
OPUS_OVERSIGHT="false"
|
|
900
900
|
;;
|
|
901
901
|
test-engineer)
|
|
902
|
-
CLI_ARGS="exec ${codex_base}"
|
|
903
|
-
CLI_EFFORT="
|
|
902
|
+
CLI_ARGS="exec --profile codex53_high ${codex_base}"
|
|
903
|
+
CLI_EFFORT="codex53_high"
|
|
904
904
|
DEFAULT_TIMEOUT=1200
|
|
905
905
|
RUN_MODE="bg"
|
|
906
906
|
OPUS_OVERSIGHT="false"
|
|
907
907
|
;;
|
|
908
908
|
qa-tester)
|
|
909
|
-
CLI_ARGS="exec --profile
|
|
910
|
-
CLI_EFFORT="
|
|
909
|
+
CLI_ARGS="exec --profile codex53_high ${codex_base} review"
|
|
910
|
+
CLI_EFFORT="codex53_high"
|
|
911
911
|
DEFAULT_TIMEOUT=1200
|
|
912
912
|
RUN_MODE="bg"
|
|
913
913
|
OPUS_OVERSIGHT="false"
|
|
@@ -21,7 +21,7 @@ argument-hint: "\"작업 설명\" | N:agent_type \"작업 설명\""
|
|
|
21
21
|
3. **Claude 네이티브 제거**
|
|
22
22
|
- 실행 시 `TFX_NO_CLAUDE_NATIVE=1`로 강제.
|
|
23
23
|
4. **고난도 설계는 xhigh**
|
|
24
|
-
- 설계/분해/비판 검토 성격의 작업은 `codex --profile
|
|
24
|
+
- 설계/분해/비판 검토 성격의 작업은 `codex --profile gpt54_xhigh` 기준으로 운용.
|
|
25
25
|
|
|
26
26
|
## 사용법
|
|
27
27
|
|
|
@@ -31,8 +31,8 @@ argument-hint: "\"작업 설명\" | N:codex \"작업 설명\""
|
|
|
31
31
|
| architect, planner, critic, analyst | Codex | Codex (변경 없음) |
|
|
32
32
|
| code-reviewer, security-reviewer | Codex | Codex (변경 없음) |
|
|
33
33
|
| scientist, document-specialist | Codex | Codex (변경 없음) |
|
|
34
|
-
| **designer** | ~~Gemini~~ | **Codex** (effort:
|
|
35
|
-
| **writer** | ~~Gemini~~ | **Codex Spark** (effort:
|
|
34
|
+
| **designer** | ~~Gemini~~ | **Codex** (effort: codex53_high) — UI 코드 생성 |
|
|
35
|
+
| **writer** | ~~Gemini~~ | **Codex Spark** (effort: spark53_low) — 경량 문서 |
|
|
36
36
|
| explore | Claude Haiku | Claude Haiku (변경 없음) |
|
|
37
37
|
| verifier, test-engineer | Claude Sonnet | Codex (변경 없음) |
|
|
38
38
|
|