triflux 10.3.0 → 10.3.2
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/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +22 -22
- package/LICENSE +21 -21
- package/hooks/hook-registry.json +256 -256
- package/hub/adaptive-inject.mjs +1 -1
- package/hub/assign-callbacks.mjs +120 -120
- package/hub/delegator/index.mjs +14 -14
- package/hub/delegator/tool-definitions.mjs +35 -35
- package/hub/hitl.mjs +143 -143
- package/hub/router.mjs +791 -791
- package/hub/session-fingerprint.mjs +1 -1
- package/hub/team/ansi.mjs +44 -28
- package/hub/team/cli/commands/attach.mjs +37 -37
- package/hub/team/cli/commands/debug.mjs +74 -74
- package/hub/team/cli/commands/focus.mjs +53 -53
- package/hub/team/cli/commands/list.mjs +24 -24
- package/hub/team/cli/commands/start/start-in-process.mjs +40 -40
- package/hub/team/cli/commands/start/start-mux.mjs +73 -73
- package/hub/team/cli/commands/start/start-wt.mjs +69 -69
- package/hub/team/cli/commands/tasks.mjs +13 -13
- package/hub/team/cli/render.mjs +30 -30
- package/hub/team/cli/services/attach-fallback.mjs +54 -54
- package/hub/team/cli/services/member-selector.mjs +30 -30
- package/hub/team/cli/services/native-control.mjs +116 -116
- package/hub/team/cli/services/task-model.mjs +30 -30
- package/hub/team/conductor.mjs +2 -2
- package/hub/team/notify.mjs +1 -1
- package/hub/team/orchestrator.mjs +161 -161
- package/hub/team/session.mjs +611 -611
- package/hub/team/shared.mjs +13 -13
- package/hub/team/tui-lite.mjs +4 -4
- package/hub/team/tui.mjs +16 -12
- package/hub/tray.mjs +368 -368
- package/hub/workers/codex-mcp.mjs +507 -507
- package/hub/workers/factory.mjs +21 -21
- package/hud/constants.mjs +8 -2
- package/hud/providers/codex.mjs +11 -0
- package/hud/providers/gemini.mjs +21 -0
- package/package.json +1 -1
- package/scripts/claudemd-sync.mjs +11 -13
- package/scripts/completions/tfx.bash +47 -47
- package/scripts/completions/tfx.fish +44 -44
- package/scripts/completions/tfx.zsh +83 -83
- package/scripts/hub-ensure.mjs +120 -120
- package/scripts/keyword-detector.mjs +272 -272
- package/scripts/keyword-rules-expander.mjs +521 -521
- package/scripts/lib/mcp-server-catalog.mjs +118 -118
- package/scripts/notion-read.mjs +553 -553
- package/scripts/setup.mjs +23 -0
- package/scripts/test-tfx-route-no-claude-native.mjs +57 -57
- package/scripts/tfx-batch-stats.mjs +96 -96
- package/skills/.omc/state/agent-replay-8f0e10a9-9693-4410-96f5-a6b07e8ed995.jsonl +1 -0
- package/skills/.omc/state/idle-notif-cooldown.json +3 -0
- package/skills/.omc/state/last-tool-error.json +7 -0
- package/skills/.omc/state/subagent-tracking.json +7 -0
- package/skills/tfx-remote-spawn/references/hosts.json +16 -0
package/hub/team/shared.mjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
// hub/team/shared.mjs — 팀 모듈 공유 유틸리티
|
|
2
|
-
// cli.mjs, dashboard.mjs 등에서 중복되던 상수/함수를 통합
|
|
3
|
-
|
|
4
|
-
// ── ANSI 색상 상수 ──
|
|
5
|
-
export const AMBER = "\x1b[38;5;214m";
|
|
6
|
-
export const GREEN = "\x1b[38;5;82m";
|
|
7
|
-
export const RED = "\x1b[38;5;196m";
|
|
8
|
-
export const GRAY = "\x1b[38;5;245m";
|
|
9
|
-
export const DIM = "\x1b[2m";
|
|
10
|
-
export const BOLD = "\x1b[1m";
|
|
11
|
-
export const RESET = "\x1b[0m";
|
|
12
|
-
export const WHITE = "\x1b[97m";
|
|
13
|
-
export const YELLOW = "\x1b[33m";
|
|
1
|
+
// hub/team/shared.mjs — 팀 모듈 공유 유틸리티
|
|
2
|
+
// cli.mjs, dashboard.mjs 등에서 중복되던 상수/함수를 통합
|
|
3
|
+
|
|
4
|
+
// ── ANSI 색상 상수 ──
|
|
5
|
+
export const AMBER = "\x1b[38;5;214m";
|
|
6
|
+
export const GREEN = "\x1b[38;5;82m";
|
|
7
|
+
export const RED = "\x1b[38;5;196m";
|
|
8
|
+
export const GRAY = "\x1b[38;5;245m";
|
|
9
|
+
export const DIM = "\x1b[2m";
|
|
10
|
+
export const BOLD = "\x1b[1m";
|
|
11
|
+
export const RESET = "\x1b[0m";
|
|
12
|
+
export const WHITE = "\x1b[97m";
|
|
13
|
+
export const YELLOW = "\x1b[33m";
|
package/hub/team/tui-lite.mjs
CHANGED
|
@@ -265,12 +265,12 @@ export function createLiteDashboard(opts = {}) {
|
|
|
265
265
|
return;
|
|
266
266
|
}
|
|
267
267
|
if (key === "\r" || key === "\n") {
|
|
268
|
-
if (typeof onOpenSelectedWorker
|
|
269
|
-
|
|
268
|
+
if (typeof onOpenSelectedWorker === "function" && selectedWorker && workers.has(selectedWorker)) {
|
|
269
|
+
triggerOpenSelected();
|
|
270
|
+
} else {
|
|
271
|
+
// 콜백 없거나 선택 워커 없으면 탭 순환
|
|
270
272
|
const tabs = ["log", "detail", "files"];
|
|
271
273
|
focusTab = tabs[(tabs.indexOf(focusTab) + 1) % tabs.length];
|
|
272
|
-
} else {
|
|
273
|
-
triggerOpenSelected();
|
|
274
274
|
}
|
|
275
275
|
render();
|
|
276
276
|
return;
|
package/hub/team/tui.mjs
CHANGED
|
@@ -1148,15 +1148,19 @@ export function createLogDashboard(opts = {}) {
|
|
|
1148
1148
|
}
|
|
1149
1149
|
|
|
1150
1150
|
// 하단 상태바
|
|
1151
|
-
const
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
);
|
|
1151
|
+
const allDone = names.every((n) => {
|
|
1152
|
+
const s = runtimeStatus(workers.get(n));
|
|
1153
|
+
return s === "ok" || s === "completed" || s === "failed";
|
|
1154
|
+
});
|
|
1155
|
+
const statusText = allDone
|
|
1156
|
+
? " Enter: attach • q: 종료"
|
|
1157
|
+
: " Enter: attach • Tab: 포커스 • j/k: 이동 • h: 도움말";
|
|
1158
|
+
const statusBar = truncate(color(statusText, MOCHA.subtext), totalCols);
|
|
1155
1159
|
|
|
1156
1160
|
return [...tier1, ...composedRows, statusBar];
|
|
1157
1161
|
}
|
|
1158
1162
|
|
|
1159
|
-
// ── altScreen diff render
|
|
1163
|
+
// ── altScreen diff render (batched single write → 깜빡임 방지) ───────
|
|
1160
1164
|
function renderAltScreen() {
|
|
1161
1165
|
const newRows = buildRows();
|
|
1162
1166
|
rowBuf.set(newRows);
|
|
@@ -1165,16 +1169,16 @@ export function createLogDashboard(opts = {}) {
|
|
|
1165
1169
|
|
|
1166
1170
|
if (dirty.length === 0 && newRows.length === prevLen) return;
|
|
1167
1171
|
|
|
1168
|
-
|
|
1169
|
-
? Array.from({ length: prevLen - newRows.length }, (_, i) => newRows.length + i)
|
|
1170
|
-
: [];
|
|
1171
|
-
|
|
1172
|
+
let buf = "";
|
|
1172
1173
|
for (const i of dirty) {
|
|
1173
|
-
|
|
1174
|
+
buf += moveTo(i + 1, 1) + clearLine + (newRows[i] || "");
|
|
1174
1175
|
}
|
|
1175
|
-
|
|
1176
|
-
|
|
1176
|
+
if (prevLen > newRows.length) {
|
|
1177
|
+
for (let i = newRows.length; i < prevLen; i++) {
|
|
1178
|
+
buf += moveTo(i + 1, 1) + clearLine;
|
|
1179
|
+
}
|
|
1177
1180
|
}
|
|
1181
|
+
if (buf) write(buf);
|
|
1178
1182
|
|
|
1179
1183
|
rowBuf.commit();
|
|
1180
1184
|
}
|