triflux 3.3.0-dev.8 → 4.0.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 (91) hide show
  1. package/README.ko.md +108 -199
  2. package/README.md +108 -199
  3. package/bin/triflux.mjs +2415 -1762
  4. package/hooks/keyword-rules.json +361 -354
  5. package/hooks/pipeline-stop.mjs +5 -2
  6. package/hub/assign-callbacks.mjs +136 -136
  7. package/hub/bridge.mjs +734 -684
  8. package/hub/delegator/contracts.mjs +38 -38
  9. package/hub/delegator/index.mjs +14 -14
  10. package/hub/delegator/schema/delegator-tools.schema.json +250 -250
  11. package/hub/delegator/service.mjs +302 -118
  12. package/hub/delegator/tool-definitions.mjs +35 -35
  13. package/hub/hitl.mjs +67 -67
  14. package/hub/paths.mjs +28 -0
  15. package/hub/pipe.mjs +589 -561
  16. package/hub/pipeline/state.mjs +23 -0
  17. package/hub/public/dashboard.html +349 -0
  18. package/hub/public/tray-icon.ico +0 -0
  19. package/hub/public/tray-icon.png +0 -0
  20. package/hub/router.mjs +782 -782
  21. package/hub/schema.sql +40 -40
  22. package/hub/server.mjs +810 -637
  23. package/hub/store.mjs +706 -706
  24. package/hub/team/cli/commands/attach.mjs +37 -0
  25. package/hub/team/cli/commands/control.mjs +43 -0
  26. package/hub/team/cli/commands/debug.mjs +74 -0
  27. package/hub/team/cli/commands/focus.mjs +53 -0
  28. package/hub/team/cli/commands/interrupt.mjs +36 -0
  29. package/hub/team/cli/commands/kill.mjs +37 -0
  30. package/hub/team/cli/commands/list.mjs +24 -0
  31. package/hub/team/cli/commands/send.mjs +37 -0
  32. package/hub/team/cli/commands/start/index.mjs +87 -0
  33. package/hub/team/cli/commands/start/parse-args.mjs +32 -0
  34. package/hub/team/cli/commands/start/start-in-process.mjs +40 -0
  35. package/hub/team/cli/commands/start/start-mux.mjs +73 -0
  36. package/hub/team/cli/commands/start/start-wt.mjs +69 -0
  37. package/hub/team/cli/commands/status.mjs +87 -0
  38. package/hub/team/cli/commands/stop.mjs +31 -0
  39. package/hub/team/cli/commands/task.mjs +30 -0
  40. package/hub/team/cli/commands/tasks.mjs +13 -0
  41. package/hub/team/{cli.mjs → cli/help.mjs} +38 -99
  42. package/hub/team/cli/index.mjs +39 -0
  43. package/hub/team/cli/manifest.mjs +28 -0
  44. package/hub/team/cli/render.mjs +30 -0
  45. package/hub/team/cli/services/attach-fallback.mjs +54 -0
  46. package/hub/team/cli/services/hub-client.mjs +171 -0
  47. package/hub/team/cli/services/member-selector.mjs +30 -0
  48. package/hub/team/cli/services/native-control.mjs +115 -0
  49. package/hub/team/cli/services/runtime-mode.mjs +60 -0
  50. package/hub/team/cli/services/state-store.mjs +34 -0
  51. package/hub/team/cli/services/task-model.mjs +30 -0
  52. package/hub/team/native-supervisor.mjs +69 -63
  53. package/hub/team/native.mjs +367 -367
  54. package/hub/team/nativeProxy.mjs +217 -173
  55. package/hub/team/pane.mjs +149 -149
  56. package/hub/team/psmux.mjs +946 -946
  57. package/hub/team/session.mjs +608 -608
  58. package/hub/team/staleState.mjs +369 -299
  59. package/hub/tools.mjs +107 -107
  60. package/hub/tray.mjs +332 -0
  61. package/hub/workers/claude-worker.mjs +446 -446
  62. package/hub/workers/codex-mcp.mjs +414 -414
  63. package/hub/workers/delegator-mcp.mjs +1045 -1045
  64. package/hub/workers/factory.mjs +21 -21
  65. package/hub/workers/gemini-worker.mjs +349 -349
  66. package/hub/workers/interface.mjs +41 -41
  67. package/package.json +61 -60
  68. package/scripts/__tests__/keyword-detector.test.mjs +234 -234
  69. package/scripts/hub-ensure.mjs +102 -101
  70. package/scripts/keyword-detector.mjs +272 -272
  71. package/scripts/keyword-rules-expander.mjs +521 -521
  72. package/scripts/lib/keyword-rules.mjs +168 -168
  73. package/scripts/lib/mcp-filter.mjs +642 -642
  74. package/scripts/lib/mcp-server-catalog.mjs +118 -118
  75. package/scripts/mcp-check.mjs +126 -126
  76. package/scripts/preflight-cache.mjs +19 -0
  77. package/scripts/run.cjs +62 -62
  78. package/scripts/setup.mjs +68 -31
  79. package/scripts/test-tfx-route-no-claude-native.mjs +57 -57
  80. package/scripts/tfx-route-worker.mjs +161 -161
  81. package/scripts/tfx-route.sh +1360 -1326
  82. package/skills/tfx-auto/SKILL.md +196 -196
  83. package/skills/tfx-auto-codex/SKILL.md +77 -77
  84. package/skills/tfx-multi/SKILL.md +378 -378
  85. package/hub/team/cli-team-common.mjs +0 -348
  86. package/hub/team/cli-team-control.mjs +0 -393
  87. package/hub/team/cli-team-start.mjs +0 -516
  88. package/hub/team/cli-team-status.mjs +0 -283
  89. package/skills/auto-verify/SKILL.md +0 -145
  90. package/skills/manage-skills/SKILL.md +0 -192
  91. package/skills/verify-implementation/SKILL.md +0 -138
package/hub/schema.sql CHANGED
@@ -76,46 +76,46 @@ CREATE INDEX IF NOT EXISTS idx_messages_priority ON messages(priority DESC, crea
76
76
  CREATE INDEX IF NOT EXISTS idx_inbox_agent ON message_inbox(agent_id, delivered_at_ms);
77
77
  CREATE INDEX IF NOT EXISTS idx_inbox_message ON message_inbox(message_id);
78
78
  CREATE INDEX IF NOT EXISTS idx_human_requests_state ON human_requests(state);
79
- CREATE INDEX IF NOT EXISTS idx_agents_status ON agents(status);
80
- CREATE INDEX IF NOT EXISTS idx_agents_lease ON agents(lease_expires_ms);
81
-
82
- -- Assign Job 테이블
83
- CREATE TABLE IF NOT EXISTS assign_jobs (
84
- job_id TEXT PRIMARY KEY,
85
- supervisor_agent TEXT NOT NULL,
86
- worker_agent TEXT NOT NULL,
87
- topic TEXT NOT NULL DEFAULT 'assign.job',
88
- task TEXT NOT NULL DEFAULT '',
89
- payload_json TEXT NOT NULL DEFAULT '{}',
90
- status TEXT NOT NULL CHECK (status IN ('queued','running','succeeded','failed','timed_out')),
91
- attempt INTEGER NOT NULL DEFAULT 1,
92
- retry_count INTEGER NOT NULL DEFAULT 0,
93
- max_retries INTEGER NOT NULL DEFAULT 0,
94
- priority INTEGER NOT NULL DEFAULT 5 CHECK (priority BETWEEN 1 AND 9),
95
- ttl_ms INTEGER NOT NULL DEFAULT 600000,
96
- timeout_ms INTEGER NOT NULL DEFAULT 600000,
97
- deadline_ms INTEGER,
98
- trace_id TEXT NOT NULL,
99
- correlation_id TEXT NOT NULL,
100
- last_message_id TEXT,
101
- result_json TEXT,
102
- error_json TEXT,
103
- created_at_ms INTEGER NOT NULL,
104
- updated_at_ms INTEGER NOT NULL,
105
- started_at_ms INTEGER,
106
- completed_at_ms INTEGER,
107
- last_retry_at_ms INTEGER
108
- );
109
-
110
- CREATE INDEX IF NOT EXISTS idx_assign_jobs_status ON assign_jobs(status, updated_at_ms DESC);
111
- CREATE INDEX IF NOT EXISTS idx_assign_jobs_supervisor ON assign_jobs(supervisor_agent, updated_at_ms DESC);
112
- CREATE INDEX IF NOT EXISTS idx_assign_jobs_worker ON assign_jobs(worker_agent, updated_at_ms DESC);
113
- CREATE INDEX IF NOT EXISTS idx_assign_jobs_deadline ON assign_jobs(deadline_ms, status);
114
-
115
- -- 파이프라인 상태 테이블 (Phase 2)
116
- CREATE TABLE IF NOT EXISTS pipeline_state (
117
- team_name TEXT PRIMARY KEY,
118
- phase TEXT NOT NULL DEFAULT 'plan',
79
+ CREATE INDEX IF NOT EXISTS idx_agents_status ON agents(status);
80
+ CREATE INDEX IF NOT EXISTS idx_agents_lease ON agents(lease_expires_ms);
81
+
82
+ -- Assign Job 테이블
83
+ CREATE TABLE IF NOT EXISTS assign_jobs (
84
+ job_id TEXT PRIMARY KEY,
85
+ supervisor_agent TEXT NOT NULL,
86
+ worker_agent TEXT NOT NULL,
87
+ topic TEXT NOT NULL DEFAULT 'assign.job',
88
+ task TEXT NOT NULL DEFAULT '',
89
+ payload_json TEXT NOT NULL DEFAULT '{}',
90
+ status TEXT NOT NULL CHECK (status IN ('queued','running','succeeded','failed','timed_out')),
91
+ attempt INTEGER NOT NULL DEFAULT 1,
92
+ retry_count INTEGER NOT NULL DEFAULT 0,
93
+ max_retries INTEGER NOT NULL DEFAULT 0,
94
+ priority INTEGER NOT NULL DEFAULT 5 CHECK (priority BETWEEN 1 AND 9),
95
+ ttl_ms INTEGER NOT NULL DEFAULT 600000,
96
+ timeout_ms INTEGER NOT NULL DEFAULT 600000,
97
+ deadline_ms INTEGER,
98
+ trace_id TEXT NOT NULL,
99
+ correlation_id TEXT NOT NULL,
100
+ last_message_id TEXT,
101
+ result_json TEXT,
102
+ error_json TEXT,
103
+ created_at_ms INTEGER NOT NULL,
104
+ updated_at_ms INTEGER NOT NULL,
105
+ started_at_ms INTEGER,
106
+ completed_at_ms INTEGER,
107
+ last_retry_at_ms INTEGER
108
+ );
109
+
110
+ CREATE INDEX IF NOT EXISTS idx_assign_jobs_status ON assign_jobs(status, updated_at_ms DESC);
111
+ CREATE INDEX IF NOT EXISTS idx_assign_jobs_supervisor ON assign_jobs(supervisor_agent, updated_at_ms DESC);
112
+ CREATE INDEX IF NOT EXISTS idx_assign_jobs_worker ON assign_jobs(worker_agent, updated_at_ms DESC);
113
+ CREATE INDEX IF NOT EXISTS idx_assign_jobs_deadline ON assign_jobs(deadline_ms, status);
114
+
115
+ -- 파이프라인 상태 테이블 (Phase 2)
116
+ CREATE TABLE IF NOT EXISTS pipeline_state (
117
+ team_name TEXT PRIMARY KEY,
118
+ phase TEXT NOT NULL DEFAULT 'plan',
119
119
  fix_attempt INTEGER DEFAULT 0,
120
120
  fix_max INTEGER DEFAULT 3,
121
121
  ralph_iteration INTEGER DEFAULT 0,