triflux 10.43.0 → 10.44.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.
Files changed (47) hide show
  1. package/README.md +2 -0
  2. package/adapters/codex/skills/tfx-harness/SKILL.md +30 -0
  3. package/adapters/codex/skills/tfx-harness/skill.json +5 -0
  4. package/bin/triflux.mjs +14 -0
  5. package/hooks/keyword-rules.json +139 -19
  6. package/hub/cli-adapter-base.mjs +11 -2
  7. package/hub/codex-adapter.mjs +3 -0
  8. package/hub/intent.mjs +24 -32
  9. package/hub/router.mjs +272 -0
  10. package/hub/schema.sql +61 -2
  11. package/hub/server.mjs +42 -0
  12. package/hub/store.mjs +577 -5
  13. package/hub/team/conductor.mjs +23 -2
  14. package/hub/team/execution-mode.mjs +12 -2
  15. package/hub/team/headless.mjs +16 -0
  16. package/hub/team/retry-state-machine.mjs +8 -3
  17. package/hub/team/swarm-hypervisor.mjs +1 -0
  18. package/hub/team/swarm-preflight.mjs +47 -0
  19. package/hub/team/synapse-http.mjs +149 -4
  20. package/hub/team/worktree-lifecycle.mjs +56 -59
  21. package/hub/tools.mjs +11 -0
  22. package/hub/workers/codex-mcp.mjs +20 -4
  23. package/hub/workers/delegator-mcp.mjs +3 -49
  24. package/package.json +2 -1
  25. package/scripts/__tests__/lint-skills.test.mjs +68 -0
  26. package/scripts/__tests__/tfx-route-node-entry.test.mjs +36 -0
  27. package/scripts/keyword-detector.mjs +55 -8
  28. package/scripts/lib/agent-route-policy.mjs +360 -0
  29. package/scripts/lib/cli-codex.mjs +22 -160
  30. package/scripts/lib/codex-profile-config.mjs +29 -3
  31. package/scripts/lib/keyword-rules.mjs +12 -0
  32. package/scripts/lint-skills.mjs +65 -0
  33. package/scripts/pack.mjs +13 -0
  34. package/scripts/release/check-packages-mirror.mjs +5 -0
  35. package/scripts/setup.mjs +94 -2
  36. package/scripts/tfx-route.mjs +14 -1
  37. package/scripts/tfx-route.sh +233 -70
  38. package/skills/tfx-harness/SKILL.md +19 -76
  39. package/skills/tfx-hub/SKILL.md +1 -1
  40. package/skills/tfx-interview/SKILL.md +3 -1
  41. package/skills/tfx-interview/skill.json +1 -13
  42. package/skills/tfx-profile/SKILL.md +25 -15
  43. package/skills/tfx-prune/SKILL.md +3 -1
  44. package/skills/tfx-prune/skill.json +1 -8
  45. package/skills/tfx-setup/SKILL.md +1 -1
  46. package/tui/codex-profile.mjs +11 -2
  47. package/tui/setup.mjs +2 -0
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  internal: true
3
3
  name: tfx-prune
4
- description: "AI가 생성한 불필요한 코드(슬롭)를 제거할 때 사용한다. 'deslop', '슬롭 제거', 'anti-slop', '코드 정리', '불필요한 코드 제거', '과잉 추상화 정리' 같은 요청에 반드시 사용. AI 생성 코드의 중복, 불필요 추상화, 과잉 에러 핸들링을 정리할 때 적극 활용."
4
+ description: "명시 `tfx-prune` 또는 TFX 3자 합의 cleanup을 요청할 사용한다. 무수식 AI slop/deslop/refactor는 host ai-slop-cleaner가 소유한다."
5
5
  argument-hint: "[파일 경로 또는 git diff 범위]"
6
6
  ---
7
7
 
8
8
  # tfx-prune — Tri-Verified AI Slop Remover
9
9
 
10
+ 라우팅 정본 D8은 `.claude/rules/tfx-routing.md`를 따른다.
11
+
10
12
  > **ARGUMENTS 처리**: 이 스킬이 `ARGUMENTS: <값>`과 함께 호출되면, 해당 값을 사용자 입력으로 취급하여
11
13
  > 워크플로우의 첫 단계 입력으로 사용한다. ARGUMENTS가 비어있거나 없으면 기존 절차대로 사용자에게 입력을 요청한다.
12
14
 
@@ -1,13 +1,6 @@
1
1
  {
2
2
  "name": "tfx-prune",
3
- "description": "AI가 생성한 불필요한 코드(슬롭)를 제거할 때 사용한다. 'deslop', '슬롭 제거', 'anti-slop', '코드 정리', '불필요한 코드 제거', '과잉 추상화 정리' 같은 요청에 반드시 사용. AI 생성 코드의 중복, 불필요 추상화, 과잉 에러 핸들링을 정리할 때 적극 활용.",
4
- "triggers": [
5
- "deslop",
6
- "슬롭 제거",
7
- "anti-slop",
8
- "정리",
9
- "slop"
10
- ],
3
+ "description": "명시 `tfx-prune` 또는 TFX 3자 합의 cleanup을 요청할 사용한다. 무수식 AI slop/deslop/refactor는 host ai-slop-cleaner가 소유한다.",
11
4
  "argument_hint": "[파일 경로 또는 git diff 범위]",
12
5
  "internal": true
13
6
  }
@@ -113,7 +113,7 @@ Bash("triflux setup")
113
113
  #### 단계 3: Codex 프로파일
114
114
 
115
115
  `~/.codex/config.toml`을 Read 도구로 읽어 필수 프로파일 존재 여부 확인.
116
- 필수: `gpt56_sol_xhigh`, `gpt56_terra_high`, `gpt56_terra_med`, `gpt56_luna_low`.
116
+ 필수: `gpt56_sol_ultra`, `gpt56_sol_max`, `gpt56_sol_xhigh`, `gpt56_terra_high`, `gpt56_terra_med`, `gpt56_luna_low`.
117
117
 
118
118
  - 모두 존재 → ✅ 표시
119
119
  - 누락 있으면 → AskUserQuestion:
@@ -50,7 +50,9 @@ const EFFORT_LEVELS = [
50
50
  { label: "low", hint: "빠른 응답, 최소 추론" },
51
51
  { label: "medium", hint: "균형 잡힌 추론" },
52
52
  { label: "high", hint: "깊은 추론" },
53
- { label: "xhigh", hint: "최대 추론 (느림)" },
53
+ { label: "xhigh", hint: "고강도 추론" },
54
+ { label: "max", hint: "최난도 단일 작업" },
55
+ { label: "ultra", hint: "최대 추론 + 자동 위임 (최상위 전용)" },
54
56
  ];
55
57
 
56
58
  // ── TOML Parsing ──
@@ -186,7 +188,14 @@ function showStatus(config) {
186
188
 
187
189
  function effortColor(effort) {
188
190
  if (!effort) return `${DIM}inherit${RESET}`;
189
- const colors = { low: GREEN, medium: CYAN, high: YELLOW, xhigh: RED };
191
+ const colors = {
192
+ low: GREEN,
193
+ medium: CYAN,
194
+ high: YELLOW,
195
+ xhigh: RED,
196
+ max: RED,
197
+ ultra: RED,
198
+ };
190
199
  return `${colors[effort] || ""}${effort}${RESET}`;
191
200
  }
192
201
 
package/tui/setup.mjs CHANGED
@@ -36,6 +36,8 @@ const CODEX_DIR = join(homedir(), ".codex");
36
36
  const GEMINI_DIR = join(homedir(), ".gemini");
37
37
  const SETTINGS_PATH = join(CLAUDE_DIR, "settings.json");
38
38
  const REQUIRED_CODEX_PROFILE_NAMES = [
39
+ "gpt56_sol_ultra",
40
+ "gpt56_sol_max",
39
41
  "gpt56_sol_xhigh",
40
42
  "gpt56_terra_high",
41
43
  "gpt56_terra_med",