triflux 7.1.3 → 7.2.1

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 (73) hide show
  1. package/.claude-plugin/marketplace.json +31 -31
  2. package/.claude-plugin/plugin.json +22 -23
  3. package/bin/triflux.mjs +18 -5
  4. package/hooks/keyword-rules.json +393 -361
  5. package/hub/bridge.mjs +799 -786
  6. package/hub/delegator/contracts.mjs +37 -38
  7. package/hub/delegator/schema/delegator-tools.schema.json +250 -250
  8. package/hub/delegator/service.mjs +307 -302
  9. package/hub/intent.mjs +108 -11
  10. package/hub/lib/process-utils.mjs +20 -0
  11. package/hub/pipe.mjs +589 -589
  12. package/hub/pipeline/gates/confidence.mjs +1 -1
  13. package/hub/pipeline/gates/selfcheck.mjs +2 -4
  14. package/hub/pipeline/state.mjs +191 -187
  15. package/hub/pipeline/transitions.mjs +124 -120
  16. package/hub/public/dashboard.html +355 -349
  17. package/hub/quality/deslop.mjs +5 -3
  18. package/hub/reflexion.mjs +5 -1
  19. package/hub/research.mjs +6 -1
  20. package/hub/router.mjs +791 -782
  21. package/hub/server.mjs +893 -822
  22. package/hub/store.mjs +807 -778
  23. package/hub/team/agent-map.json +10 -0
  24. package/hub/team/ansi.mjs +3 -4
  25. package/hub/team/cli/commands/control.mjs +43 -43
  26. package/hub/team/cli/commands/interrupt.mjs +36 -36
  27. package/hub/team/cli/commands/kill.mjs +3 -3
  28. package/hub/team/cli/commands/send.mjs +37 -37
  29. package/hub/team/cli/commands/start/index.mjs +18 -8
  30. package/hub/team/cli/commands/start/parse-args.mjs +3 -1
  31. package/hub/team/cli/commands/start/start-headless.mjs +4 -1
  32. package/hub/team/cli/commands/status.mjs +87 -87
  33. package/hub/team/cli/commands/stop.mjs +1 -1
  34. package/hub/team/cli/commands/task.mjs +1 -1
  35. package/hub/team/cli/index.mjs +41 -39
  36. package/hub/team/cli/manifest.mjs +29 -28
  37. package/hub/team/cli/services/hub-client.mjs +37 -0
  38. package/hub/team/cli/services/state-store.mjs +26 -12
  39. package/hub/team/dashboard.mjs +11 -4
  40. package/hub/team/handoff.mjs +12 -0
  41. package/hub/team/headless.mjs +202 -200
  42. package/hub/team/native-supervisor.mjs +386 -346
  43. package/hub/team/nativeProxy.mjs +680 -692
  44. package/hub/team/staleState.mjs +361 -369
  45. package/hub/team/tui-viewer.mjs +27 -3
  46. package/hub/team/tui.mjs +1 -0
  47. package/hub/token-mode.mjs +114 -24
  48. package/hub/workers/delegator-mcp.mjs +1059 -1057
  49. package/hud/colors.mjs +88 -0
  50. package/hud/constants.mjs +78 -0
  51. package/hud/hud-qos-status.mjs +206 -1872
  52. package/hud/providers/claude.mjs +309 -0
  53. package/hud/providers/codex.mjs +151 -0
  54. package/hud/providers/gemini.mjs +320 -0
  55. package/hud/renderers.mjs +424 -0
  56. package/hud/terminal.mjs +140 -0
  57. package/hud/utils.mjs +271 -0
  58. package/package.json +1 -2
  59. package/scripts/__tests__/keyword-detector.test.mjs +234 -234
  60. package/scripts/headless-guard-fast.sh +21 -0
  61. package/scripts/headless-guard.mjs +26 -6
  62. package/scripts/lib/keyword-rules.mjs +166 -168
  63. package/scripts/setup.mjs +720 -690
  64. package/scripts/tfx-route-post.mjs +424 -424
  65. package/scripts/tfx-route.sh +1663 -1650
  66. package/scripts/tmp-cleanup.mjs +74 -0
  67. package/skills/tfx-auto/SKILL.md +279 -278
  68. package/skills/tfx-auto-codex/SKILL.md +98 -77
  69. package/skills/tfx-codex/SKILL.md +65 -65
  70. package/skills/tfx-gemini/SKILL.md +83 -82
  71. package/skills/tfx-hub/SKILL.md +205 -136
  72. package/skills/tfx-multi/SKILL.md +11 -5
  73. package/.mcp.json +0 -8
@@ -1,38 +1,37 @@
1
- export const DELEGATOR_MCP_SERVER_INFO = Object.freeze({
2
- name: 'triflux-delegator',
3
- version: '0.1.0',
4
- });
5
-
6
- export const DELEGATOR_TOOL_NAMES = Object.freeze({
7
- delegate: 'delegate',
8
- delegateReply: 'delegate-reply',
9
- status: 'status',
10
- });
11
-
12
- export const DELEGATOR_PIPE_ACTIONS = Object.freeze({
13
- delegate: 'delegator_delegate',
14
- delegateReply: 'delegator_reply',
15
- status: 'delegator_status',
16
- });
17
-
18
- export const DELEGATOR_JOB_STATUSES = Object.freeze([
19
- 'queued',
20
- 'running',
21
- 'waiting_reply',
22
- 'completed',
23
- 'failed',
24
- ]);
25
-
26
- export const DELEGATOR_MODES = Object.freeze([
27
- 'sync',
28
- 'async',
29
- ]);
30
-
31
- export const DELEGATOR_PROVIDERS = Object.freeze([
32
- 'auto',
33
- 'codex',
34
- 'gemini',
35
- 'claude',
36
- ]);
37
-
38
- export const DELEGATOR_SCHEMA_URL = new URL('./schema/delegator-tools.schema.json', import.meta.url);
1
+ export const DELEGATOR_MCP_SERVER_INFO = Object.freeze({
2
+ name: 'triflux-delegator',
3
+ version: '0.1.0',
4
+ });
5
+
6
+ export const DELEGATOR_TOOL_NAMES = Object.freeze({
7
+ delegate: 'delegate',
8
+ delegateReply: 'delegate-reply',
9
+ status: 'status',
10
+ });
11
+
12
+ export const DELEGATOR_PIPE_ACTIONS = Object.freeze({
13
+ delegate: 'delegator_delegate',
14
+ delegateReply: 'delegator_reply',
15
+ status: 'delegator_status',
16
+ });
17
+
18
+ export const DELEGATOR_JOB_STATUSES = Object.freeze([
19
+ 'queued',
20
+ 'running',
21
+ 'waiting_reply',
22
+ 'completed',
23
+ 'failed',
24
+ ]);
25
+
26
+ export const DELEGATOR_MODES = Object.freeze([
27
+ 'sync',
28
+ 'async',
29
+ ]);
30
+
31
+ export const DELEGATOR_PROVIDERS = Object.freeze([
32
+ 'auto',
33
+ 'codex',
34
+ 'gemini',
35
+ ]);
36
+
37
+ export const DELEGATOR_SCHEMA_URL = new URL('./schema/delegator-tools.schema.json', import.meta.url);
@@ -1,250 +1,250 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://triflux.dev/schema/hub/delegator-tools.schema.json",
4
- "title": "Triflux Delegator MCP Tool Schemas",
5
- "$defs": {
6
- "Provider": {
7
- "type": "string",
8
- "enum": ["auto", "codex", "gemini", "claude"]
9
- },
10
- "Mode": {
11
- "type": "string",
12
- "enum": ["sync", "async"]
13
- },
14
- "JobStatus": {
15
- "type": "string",
16
- "enum": ["queued", "running", "waiting_reply", "completed", "failed"]
17
- },
18
- "McpProfile": {
19
- "type": "string",
20
- "enum": [
21
- "auto",
22
- "default",
23
- "executor",
24
- "designer",
25
- "explore",
26
- "reviewer",
27
- "writer",
28
- "none",
29
- "implement",
30
- "analyze",
31
- "review",
32
- "docs",
33
- "minimal"
34
- ]
35
- },
36
- "SearchTool": {
37
- "type": "string",
38
- "enum": ["exa", "brave-search", "tavily"]
39
- },
40
- "NullableDateTime": {
41
- "type": ["string", "null"],
42
- "format": "date-time"
43
- },
44
- "NullableString": {
45
- "type": ["string", "null"]
46
- },
47
- "DelegateInput": {
48
- "type": "object",
49
- "additionalProperties": false,
50
- "required": ["prompt"],
51
- "properties": {
52
- "prompt": {
53
- "type": "string",
54
- "minLength": 1
55
- },
56
- "provider": {
57
- "$ref": "#/$defs/Provider",
58
- "default": "auto"
59
- },
60
- "mode": {
61
- "$ref": "#/$defs/Mode",
62
- "default": "sync"
63
- },
64
- "agent_type": {
65
- "type": "string",
66
- "default": "executor",
67
- "minLength": 1
68
- },
69
- "cwd": {
70
- "type": "string",
71
- "minLength": 1
72
- },
73
- "timeout_ms": {
74
- "type": "integer",
75
- "minimum": 1
76
- },
77
- "session_key": {
78
- "type": "string",
79
- "minLength": 1
80
- },
81
- "thread_id": {
82
- "type": "string",
83
- "minLength": 1
84
- },
85
- "reset_session": {
86
- "type": "boolean",
87
- "default": false
88
- },
89
- "mcp_profile": {
90
- "$ref": "#/$defs/McpProfile",
91
- "default": "auto"
92
- },
93
- "search_tool": {
94
- "$ref": "#/$defs/SearchTool"
95
- },
96
- "context_file": {
97
- "type": "string",
98
- "minLength": 1
99
- },
100
- "model": {
101
- "type": "string",
102
- "minLength": 1
103
- },
104
- "developer_instructions": {
105
- "type": "string",
106
- "minLength": 1
107
- },
108
- "compact_prompt": {
109
- "type": "string",
110
- "minLength": 1
111
- }
112
- }
113
- },
114
- "DelegateReplyInput": {
115
- "type": "object",
116
- "additionalProperties": false,
117
- "required": ["job_id", "reply"],
118
- "properties": {
119
- "job_id": {
120
- "type": "string",
121
- "minLength": 1
122
- },
123
- "reply": {
124
- "type": "string",
125
- "minLength": 1
126
- },
127
- "done": {
128
- "type": "boolean",
129
- "default": false
130
- }
131
- }
132
- },
133
- "StatusInput": {
134
- "type": "object",
135
- "additionalProperties": false,
136
- "required": ["job_id"],
137
- "properties": {
138
- "job_id": {
139
- "type": "string",
140
- "minLength": 1
141
- }
142
- }
143
- },
144
- "DelegateOutput": {
145
- "type": "object",
146
- "additionalProperties": false,
147
- "required": [
148
- "ok",
149
- "job_id",
150
- "status",
151
- "mode",
152
- "provider_requested",
153
- "provider_resolved",
154
- "agent_type",
155
- "transport",
156
- "created_at",
157
- "started_at",
158
- "updated_at",
159
- "completed_at",
160
- "thread_id",
161
- "session_key",
162
- "conversation_open"
163
- ],
164
- "properties": {
165
- "ok": {
166
- "type": "boolean"
167
- },
168
- "job_id": {
169
- "type": "string",
170
- "minLength": 1
171
- },
172
- "status": {
173
- "$ref": "#/$defs/JobStatus"
174
- },
175
- "mode": {
176
- "$ref": "#/$defs/Mode"
177
- },
178
- "provider_requested": {
179
- "$ref": "#/$defs/Provider"
180
- },
181
- "provider_resolved": {
182
- "type": ["string", "null"]
183
- },
184
- "agent_type": {
185
- "type": "string",
186
- "minLength": 1
187
- },
188
- "transport": {
189
- "type": "string",
190
- "minLength": 1
191
- },
192
- "created_at": {
193
- "type": "string",
194
- "format": "date-time"
195
- },
196
- "started_at": {
197
- "$ref": "#/$defs/NullableDateTime"
198
- },
199
- "updated_at": {
200
- "type": "string",
201
- "format": "date-time"
202
- },
203
- "completed_at": {
204
- "$ref": "#/$defs/NullableDateTime"
205
- },
206
- "output": {
207
- "type": "string"
208
- },
209
- "stderr": {
210
- "type": "string"
211
- },
212
- "error": {
213
- "type": "string"
214
- },
215
- "thread_id": {
216
- "$ref": "#/$defs/NullableString"
217
- },
218
- "session_key": {
219
- "$ref": "#/$defs/NullableString"
220
- },
221
- "conversation_open": {
222
- "type": "boolean"
223
- }
224
- }
225
- }
226
- },
227
- "x-triflux-mcp-tools": [
228
- {
229
- "name": "delegate",
230
- "description": "Create a new delegator job and optionally wait for the first result.",
231
- "inputSchemaDef": "DelegateInput",
232
- "outputSchemaDef": "DelegateOutput",
233
- "pipeAction": "delegator_delegate"
234
- },
235
- {
236
- "name": "delegate-reply",
237
- "description": "Send a follow-up reply into an existing delegator conversation job.",
238
- "inputSchemaDef": "DelegateReplyInput",
239
- "outputSchemaDef": "DelegateOutput",
240
- "pipeAction": "delegator_reply"
241
- },
242
- {
243
- "name": "status",
244
- "description": "Read the latest snapshot for an existing delegator job.",
245
- "inputSchemaDef": "StatusInput",
246
- "outputSchemaDef": "DelegateOutput",
247
- "pipeAction": "delegator_status"
248
- }
249
- ]
250
- }
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://triflux.dev/schema/hub/delegator-tools.schema.json",
4
+ "title": "Triflux Delegator MCP Tool Schemas",
5
+ "$defs": {
6
+ "Provider": {
7
+ "type": "string",
8
+ "enum": ["auto", "codex", "gemini"]
9
+ },
10
+ "Mode": {
11
+ "type": "string",
12
+ "enum": ["sync", "async"]
13
+ },
14
+ "JobStatus": {
15
+ "type": "string",
16
+ "enum": ["queued", "running", "waiting_reply", "completed", "failed"]
17
+ },
18
+ "McpProfile": {
19
+ "type": "string",
20
+ "enum": [
21
+ "auto",
22
+ "default",
23
+ "executor",
24
+ "designer",
25
+ "explore",
26
+ "reviewer",
27
+ "writer",
28
+ "none",
29
+ "implement",
30
+ "analyze",
31
+ "review",
32
+ "docs",
33
+ "minimal"
34
+ ]
35
+ },
36
+ "SearchTool": {
37
+ "type": "string",
38
+ "enum": ["exa", "brave-search", "tavily"]
39
+ },
40
+ "NullableDateTime": {
41
+ "type": ["string", "null"],
42
+ "format": "date-time"
43
+ },
44
+ "NullableString": {
45
+ "type": ["string", "null"]
46
+ },
47
+ "DelegateInput": {
48
+ "type": "object",
49
+ "additionalProperties": false,
50
+ "required": ["prompt"],
51
+ "properties": {
52
+ "prompt": {
53
+ "type": "string",
54
+ "minLength": 1
55
+ },
56
+ "provider": {
57
+ "$ref": "#/$defs/Provider",
58
+ "default": "auto"
59
+ },
60
+ "mode": {
61
+ "$ref": "#/$defs/Mode",
62
+ "default": "sync"
63
+ },
64
+ "agent_type": {
65
+ "type": "string",
66
+ "default": "executor",
67
+ "minLength": 1
68
+ },
69
+ "cwd": {
70
+ "type": "string",
71
+ "minLength": 1
72
+ },
73
+ "timeout_ms": {
74
+ "type": "integer",
75
+ "minimum": 1
76
+ },
77
+ "session_key": {
78
+ "type": "string",
79
+ "minLength": 1
80
+ },
81
+ "thread_id": {
82
+ "type": "string",
83
+ "minLength": 1
84
+ },
85
+ "reset_session": {
86
+ "type": "boolean",
87
+ "default": false
88
+ },
89
+ "mcp_profile": {
90
+ "$ref": "#/$defs/McpProfile",
91
+ "default": "auto"
92
+ },
93
+ "search_tool": {
94
+ "$ref": "#/$defs/SearchTool"
95
+ },
96
+ "context_file": {
97
+ "type": "string",
98
+ "minLength": 1
99
+ },
100
+ "model": {
101
+ "type": "string",
102
+ "minLength": 1
103
+ },
104
+ "developer_instructions": {
105
+ "type": "string",
106
+ "minLength": 1
107
+ },
108
+ "compact_prompt": {
109
+ "type": "string",
110
+ "minLength": 1
111
+ }
112
+ }
113
+ },
114
+ "DelegateReplyInput": {
115
+ "type": "object",
116
+ "additionalProperties": false,
117
+ "required": ["job_id", "reply"],
118
+ "properties": {
119
+ "job_id": {
120
+ "type": "string",
121
+ "minLength": 1
122
+ },
123
+ "reply": {
124
+ "type": "string",
125
+ "minLength": 1
126
+ },
127
+ "done": {
128
+ "type": "boolean",
129
+ "default": false
130
+ }
131
+ }
132
+ },
133
+ "StatusInput": {
134
+ "type": "object",
135
+ "additionalProperties": false,
136
+ "required": ["job_id"],
137
+ "properties": {
138
+ "job_id": {
139
+ "type": "string",
140
+ "minLength": 1
141
+ }
142
+ }
143
+ },
144
+ "DelegateOutput": {
145
+ "type": "object",
146
+ "additionalProperties": false,
147
+ "required": [
148
+ "ok",
149
+ "job_id",
150
+ "status",
151
+ "mode",
152
+ "provider_requested",
153
+ "provider_resolved",
154
+ "agent_type",
155
+ "transport",
156
+ "created_at",
157
+ "started_at",
158
+ "updated_at",
159
+ "completed_at",
160
+ "thread_id",
161
+ "session_key",
162
+ "conversation_open"
163
+ ],
164
+ "properties": {
165
+ "ok": {
166
+ "type": "boolean"
167
+ },
168
+ "job_id": {
169
+ "type": "string",
170
+ "minLength": 1
171
+ },
172
+ "status": {
173
+ "$ref": "#/$defs/JobStatus"
174
+ },
175
+ "mode": {
176
+ "$ref": "#/$defs/Mode"
177
+ },
178
+ "provider_requested": {
179
+ "$ref": "#/$defs/Provider"
180
+ },
181
+ "provider_resolved": {
182
+ "type": ["string", "null"]
183
+ },
184
+ "agent_type": {
185
+ "type": "string",
186
+ "minLength": 1
187
+ },
188
+ "transport": {
189
+ "type": "string",
190
+ "minLength": 1
191
+ },
192
+ "created_at": {
193
+ "type": "string",
194
+ "format": "date-time"
195
+ },
196
+ "started_at": {
197
+ "$ref": "#/$defs/NullableDateTime"
198
+ },
199
+ "updated_at": {
200
+ "type": "string",
201
+ "format": "date-time"
202
+ },
203
+ "completed_at": {
204
+ "$ref": "#/$defs/NullableDateTime"
205
+ },
206
+ "output": {
207
+ "type": "string"
208
+ },
209
+ "stderr": {
210
+ "type": "string"
211
+ },
212
+ "error": {
213
+ "type": "string"
214
+ },
215
+ "thread_id": {
216
+ "$ref": "#/$defs/NullableString"
217
+ },
218
+ "session_key": {
219
+ "$ref": "#/$defs/NullableString"
220
+ },
221
+ "conversation_open": {
222
+ "type": "boolean"
223
+ }
224
+ }
225
+ }
226
+ },
227
+ "x-triflux-mcp-tools": [
228
+ {
229
+ "name": "delegate",
230
+ "description": "Create a new delegator job and optionally wait for the first result.",
231
+ "inputSchemaDef": "DelegateInput",
232
+ "outputSchemaDef": "DelegateOutput",
233
+ "pipeAction": "delegator_delegate"
234
+ },
235
+ {
236
+ "name": "delegate-reply",
237
+ "description": "Send a follow-up reply into an existing delegator conversation job.",
238
+ "inputSchemaDef": "DelegateReplyInput",
239
+ "outputSchemaDef": "DelegateOutput",
240
+ "pipeAction": "delegator_reply"
241
+ },
242
+ {
243
+ "name": "status",
244
+ "description": "Read the latest snapshot for an existing delegator job.",
245
+ "inputSchemaDef": "StatusInput",
246
+ "outputSchemaDef": "DelegateOutput",
247
+ "pipeAction": "delegator_status"
248
+ }
249
+ ]
250
+ }