@jaggerxtrm/specialists 3.9.0 → 3.10.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/config/mandatory-rules/README.md +4 -0
- package/config/mandatory-rules/gitnexus-required.md +12 -1
- package/config/mandatory-rules/serena-cheatsheet.md +41 -0
- package/config/specialists/debugger.specialist.json +2 -1
- package/config/specialists/executor.specialist.json +2 -1
- package/config/specialists/explorer.specialist.json +2 -1
- package/config/specialists/memory-processor.specialist.json +6 -1
- package/config/specialists/overthinker.specialist.json +2 -1
- package/config/specialists/planner.specialist.json +6 -1
- package/config/specialists/researcher.specialist.json +2 -1
- package/config/specialists/reviewer.specialist.json +2 -1
- package/config/specialists/specialists-creator.specialist.json +7 -1
- package/config/specialists/sync-docs.specialist.json +2 -1
- package/config/specialists/test-runner.specialist.json +2 -1
- package/dist/index.js +998 -533
- package/dist/lib.js +13219 -0
- package/dist/types/cli/attach.d.ts +2 -0
- package/dist/types/cli/attach.d.ts.map +1 -0
- package/dist/types/cli/clean.d.ts +2 -0
- package/dist/types/cli/clean.d.ts.map +1 -0
- package/dist/types/cli/config.d.ts +2 -0
- package/dist/types/cli/config.d.ts.map +1 -0
- package/dist/types/cli/db.d.ts +2 -0
- package/dist/types/cli/db.d.ts.map +1 -0
- package/dist/types/cli/doctor.d.ts +15 -0
- package/dist/types/cli/doctor.d.ts.map +1 -0
- package/dist/types/cli/edit.d.ts +2 -0
- package/dist/types/cli/edit.d.ts.map +1 -0
- package/dist/types/cli/end.d.ts +2 -0
- package/dist/types/cli/end.d.ts.map +1 -0
- package/dist/types/cli/epic.d.ts +8 -0
- package/dist/types/cli/epic.d.ts.map +1 -0
- package/dist/types/cli/feed.d.ts +19 -0
- package/dist/types/cli/feed.d.ts.map +1 -0
- package/dist/types/cli/follow-up.d.ts +2 -0
- package/dist/types/cli/follow-up.d.ts.map +1 -0
- package/dist/types/cli/format-helpers.d.ts +108 -0
- package/dist/types/cli/format-helpers.d.ts.map +1 -0
- package/dist/types/cli/help.d.ts +2 -0
- package/dist/types/cli/help.d.ts.map +1 -0
- package/dist/types/cli/init.d.ts +10 -0
- package/dist/types/cli/init.d.ts.map +1 -0
- package/dist/types/cli/install.d.ts +2 -0
- package/dist/types/cli/install.d.ts.map +1 -0
- package/dist/types/cli/list-rules.d.ts +2 -0
- package/dist/types/cli/list-rules.d.ts.map +1 -0
- package/dist/types/cli/list.d.ts +13 -0
- package/dist/types/cli/list.d.ts.map +1 -0
- package/dist/types/cli/memory.d.ts +2 -0
- package/dist/types/cli/memory.d.ts.map +1 -0
- package/dist/types/cli/merge.d.ts +79 -0
- package/dist/types/cli/merge.d.ts.map +1 -0
- package/dist/types/cli/models.d.ts +2 -0
- package/dist/types/cli/models.d.ts.map +1 -0
- package/dist/types/cli/node.d.ts +2 -0
- package/dist/types/cli/node.d.ts.map +1 -0
- package/dist/types/cli/poll.d.ts +25 -0
- package/dist/types/cli/poll.d.ts.map +1 -0
- package/dist/types/cli/ps.d.ts +2 -0
- package/dist/types/cli/ps.d.ts.map +1 -0
- package/dist/types/cli/quickstart.d.ts +2 -0
- package/dist/types/cli/quickstart.d.ts.map +1 -0
- package/dist/types/cli/result.d.ts +2 -0
- package/dist/types/cli/result.d.ts.map +1 -0
- package/dist/types/cli/resume.d.ts +2 -0
- package/dist/types/cli/resume.d.ts.map +1 -0
- package/dist/types/cli/run.d.ts +2 -0
- package/dist/types/cli/run.d.ts.map +1 -0
- package/dist/types/cli/script.d.ts +23 -0
- package/dist/types/cli/script.d.ts.map +1 -0
- package/dist/types/cli/serve.d.ts +17 -0
- package/dist/types/cli/serve.d.ts.map +1 -0
- package/dist/types/cli/setup.d.ts +2 -0
- package/dist/types/cli/setup.d.ts.map +1 -0
- package/dist/types/cli/status.d.ts +4 -0
- package/dist/types/cli/status.d.ts.map +1 -0
- package/dist/types/cli/steer.d.ts +2 -0
- package/dist/types/cli/steer.d.ts.map +1 -0
- package/dist/types/cli/stop.d.ts +2 -0
- package/dist/types/cli/stop.d.ts.map +1 -0
- package/dist/types/cli/tmux-utils.d.ts +23 -0
- package/dist/types/cli/tmux-utils.d.ts.map +1 -0
- package/dist/types/cli/validate.d.ts +11 -0
- package/dist/types/cli/validate.d.ts.map +1 -0
- package/dist/types/cli/version.d.ts +2 -0
- package/dist/types/cli/version.d.ts.map +1 -0
- package/dist/types/cli/view.d.ts +2 -0
- package/dist/types/cli/view.d.ts.map +1 -0
- package/dist/types/constants.d.ts +140 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lib.d.ts +5 -0
- package/dist/types/lib.d.ts.map +1 -0
- package/dist/types/pi/backendMap.d.ts +3 -0
- package/dist/types/pi/backendMap.d.ts.map +1 -0
- package/dist/types/pi/session.d.ts +209 -0
- package/dist/types/pi/session.d.ts.map +1 -0
- package/dist/types/server.d.ts +10 -0
- package/dist/types/server.d.ts.map +1 -0
- package/dist/types/specialist/beads.d.ts +60 -0
- package/dist/types/specialist/beads.d.ts.map +1 -0
- package/dist/types/specialist/chain-identity.d.ts +18 -0
- package/dist/types/specialist/chain-identity.d.ts.map +1 -0
- package/dist/types/specialist/epic-lifecycle.d.ts +57 -0
- package/dist/types/specialist/epic-lifecycle.d.ts.map +1 -0
- package/dist/types/specialist/epic-readiness.d.ts +55 -0
- package/dist/types/specialist/epic-readiness.d.ts.map +1 -0
- package/dist/types/specialist/epic-reconciler.d.ts +35 -0
- package/dist/types/specialist/epic-reconciler.d.ts.map +1 -0
- package/dist/types/specialist/hooks.d.ts +44 -0
- package/dist/types/specialist/hooks.d.ts.map +1 -0
- package/dist/types/specialist/job-control.d.ts +29 -0
- package/dist/types/specialist/job-control.d.ts.map +1 -0
- package/dist/types/specialist/job-file-output.d.ts +4 -0
- package/dist/types/specialist/job-file-output.d.ts.map +1 -0
- package/dist/types/specialist/job-root.d.ts +21 -0
- package/dist/types/specialist/job-root.d.ts.map +1 -0
- package/dist/types/specialist/jobRegistry.d.ts +69 -0
- package/dist/types/specialist/jobRegistry.d.ts.map +1 -0
- package/dist/types/specialist/json-output.d.ts +2 -0
- package/dist/types/specialist/json-output.d.ts.map +1 -0
- package/dist/types/specialist/loader.d.ts +48 -0
- package/dist/types/specialist/loader.d.ts.map +1 -0
- package/dist/types/specialist/mandatory-rules.d.ts +41 -0
- package/dist/types/specialist/mandatory-rules.d.ts.map +1 -0
- package/dist/types/specialist/memory-retrieval.d.ts +34 -0
- package/dist/types/specialist/memory-retrieval.d.ts.map +1 -0
- package/dist/types/specialist/model-display.d.ts +4 -0
- package/dist/types/specialist/model-display.d.ts.map +1 -0
- package/dist/types/specialist/node-contract.d.ts +343 -0
- package/dist/types/specialist/node-contract.d.ts.map +1 -0
- package/dist/types/specialist/node-resolve.d.ts +5 -0
- package/dist/types/specialist/node-resolve.d.ts.map +1 -0
- package/dist/types/specialist/node-supervisor.d.ts +198 -0
- package/dist/types/specialist/node-supervisor.d.ts.map +1 -0
- package/dist/types/specialist/observability-db.d.ts +19 -0
- package/dist/types/specialist/observability-db.d.ts.map +1 -0
- package/dist/types/specialist/observability-sqlite.d.ts +218 -0
- package/dist/types/specialist/observability-sqlite.d.ts.map +1 -0
- package/dist/types/specialist/pipeline.d.ts +23 -0
- package/dist/types/specialist/pipeline.d.ts.map +1 -0
- package/dist/types/specialist/process-liveness.d.ts +2 -0
- package/dist/types/specialist/process-liveness.d.ts.map +1 -0
- package/dist/types/specialist/runner.d.ts +98 -0
- package/dist/types/specialist/runner.d.ts.map +1 -0
- package/dist/types/specialist/schema.d.ts +2875 -0
- package/dist/types/specialist/schema.d.ts.map +1 -0
- package/dist/types/specialist/script-runner.d.ts +47 -0
- package/dist/types/specialist/script-runner.d.ts.map +1 -0
- package/dist/types/specialist/supervisor.d.ts +142 -0
- package/dist/types/specialist/supervisor.d.ts.map +1 -0
- package/dist/types/specialist/templateEngine.d.ts +2 -0
- package/dist/types/specialist/templateEngine.d.ts.map +1 -0
- package/dist/types/specialist/timeline-events.d.ts +563 -0
- package/dist/types/specialist/timeline-events.d.ts.map +1 -0
- package/dist/types/specialist/timeline-query.d.ts +129 -0
- package/dist/types/specialist/timeline-query.d.ts.map +1 -0
- package/dist/types/specialist/worktree-gc.d.ts +24 -0
- package/dist/types/specialist/worktree-gc.d.ts.map +1 -0
- package/dist/types/specialist/worktree.d.ts +69 -0
- package/dist/types/specialist/worktree.d.ts.map +1 -0
- package/dist/types/tools/specialist/feed_specialist.tool.d.ts +51 -0
- package/dist/types/tools/specialist/feed_specialist.tool.d.ts.map +1 -0
- package/dist/types/tools/specialist/list_specialists.tool.d.ts +28 -0
- package/dist/types/tools/specialist/list_specialists.tool.d.ts.map +1 -0
- package/dist/types/tools/specialist/resume_specialist.tool.d.ts +46 -0
- package/dist/types/tools/specialist/resume_specialist.tool.d.ts.map +1 -0
- package/dist/types/tools/specialist/specialist_init.tool.d.ts +26 -0
- package/dist/types/tools/specialist/specialist_init.tool.d.ts.map +1 -0
- package/dist/types/tools/specialist/specialist_status.tool.d.ts +33 -0
- package/dist/types/tools/specialist/specialist_status.tool.d.ts.map +1 -0
- package/dist/types/tools/specialist/steer_specialist.tool.d.ts +38 -0
- package/dist/types/tools/specialist/steer_specialist.tool.d.ts.map +1 -0
- package/dist/types/tools/specialist/stop_specialist.tool.d.ts +31 -0
- package/dist/types/tools/specialist/stop_specialist.tool.d.ts.map +1 -0
- package/dist/types/tools/specialist/use_specialist.tool.d.ts +93 -0
- package/dist/types/tools/specialist/use_specialist.tool.d.ts.map +1 -0
- package/dist/types/utils/circuitBreaker.d.ts +19 -0
- package/dist/types/utils/circuitBreaker.d.ts.map +1 -0
- package/dist/types/utils/logger.d.ts +11 -0
- package/dist/types/utils/logger.d.ts.map +1 -0
- package/package.json +13 -2
|
@@ -0,0 +1,563 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feed v2 Timeline Event Model
|
|
3
|
+
*
|
|
4
|
+
* This module defines the canonical event types for the specialists feed v2 timeline.
|
|
5
|
+
* It is grounded in the actual Pi RPC lifecycle, not in legacy callback abstractions.
|
|
6
|
+
*
|
|
7
|
+
* ## Source of truth
|
|
8
|
+
*
|
|
9
|
+
* This model was derived from:
|
|
10
|
+
* - Live `pi --mode rpc` traces (see unitAI-4pq.1 exploration notes)
|
|
11
|
+
* - Official docs in docs/pi-rpc.md
|
|
12
|
+
* - Current implementation analysis in src/pi/session.ts, src/specialist/supervisor.ts
|
|
13
|
+
*
|
|
14
|
+
* ## Layer model (from RPC reality)
|
|
15
|
+
*
|
|
16
|
+
* 1. **Message construction layer** (nested under message_update.assistantMessageEvent):
|
|
17
|
+
* - text_start, text_delta, text_end
|
|
18
|
+
* - thinking_start, thinking_delta, thinking_end
|
|
19
|
+
* - toolcall_start, toolcall_delta, toolcall_end
|
|
20
|
+
* - done (message-level completion, reasons: stop | length | toolUse)
|
|
21
|
+
* - error (message-level failure, reasons: aborted | error)
|
|
22
|
+
*
|
|
23
|
+
* 2. **Tool execution layer** (top-level):
|
|
24
|
+
* - tool_execution_start
|
|
25
|
+
* - tool_execution_update (optional, streaming)
|
|
26
|
+
* - tool_execution_end
|
|
27
|
+
*
|
|
28
|
+
* 3. **Tool result layer** (message role: toolResult):
|
|
29
|
+
* - message_start (role: toolResult)
|
|
30
|
+
* - message_end
|
|
31
|
+
*
|
|
32
|
+
* 4. **Turn boundary layer**:
|
|
33
|
+
* - turn_start
|
|
34
|
+
* - turn_end (includes assistant message + toolResults[])
|
|
35
|
+
*
|
|
36
|
+
* 5. **Run boundary layer**:
|
|
37
|
+
* - agent_start
|
|
38
|
+
* - agent_end (run completion, contains all messages[])
|
|
39
|
+
*
|
|
40
|
+
* ## Completion semantic
|
|
41
|
+
*
|
|
42
|
+
* For feed v2, the canonical completion event is a single `run_complete` event.
|
|
43
|
+
* This resolves the historical ambiguity between:
|
|
44
|
+
* - callback-level `done` (synthetic, from agent_end)
|
|
45
|
+
* - persisted `agent_end` (added after runner returns)
|
|
46
|
+
*
|
|
47
|
+
* The `run_complete` event is emitted once per job and contains:
|
|
48
|
+
* - final status (COMPLETE | ERROR | CANCELLED)
|
|
49
|
+
* - elapsed time
|
|
50
|
+
* - model/backend
|
|
51
|
+
* - error message if applicable
|
|
52
|
+
*
|
|
53
|
+
* ## Persistence contract
|
|
54
|
+
*
|
|
55
|
+
* events.jsonl contains TimelineEvent records (one per line, NDJSON).
|
|
56
|
+
* status.json remains the live mutable state snapshot.
|
|
57
|
+
* result.txt remains final output storage.
|
|
58
|
+
*/
|
|
59
|
+
/**
|
|
60
|
+
* Base fields present in every timeline event.
|
|
61
|
+
* Written to events.jsonl as NDJSON (one event per line).
|
|
62
|
+
*/
|
|
63
|
+
export interface TimelineEventBase {
|
|
64
|
+
/** Unix timestamp in milliseconds when the event was written */
|
|
65
|
+
t: number;
|
|
66
|
+
/** Per-job monotonic sequence assigned on write */
|
|
67
|
+
seq?: number;
|
|
68
|
+
/** Event type (see TimelineEventType constants) */
|
|
69
|
+
type: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Run started event.
|
|
73
|
+
* Emitted once when the specialist begins processing.
|
|
74
|
+
*/
|
|
75
|
+
export interface TimelineEventRunStart extends TimelineEventBase {
|
|
76
|
+
type: 'run_start';
|
|
77
|
+
/** Specialist name */
|
|
78
|
+
specialist: string;
|
|
79
|
+
/** Bead ID if tracking is enabled */
|
|
80
|
+
bead_id?: string;
|
|
81
|
+
startup_snapshot?: {
|
|
82
|
+
job_id?: string;
|
|
83
|
+
specialist_name?: string;
|
|
84
|
+
bead_id?: string;
|
|
85
|
+
reused_from_job_id?: string;
|
|
86
|
+
worktree_owner_job_id?: string;
|
|
87
|
+
chain_id?: string;
|
|
88
|
+
chain_root_job_id?: string;
|
|
89
|
+
chain_root_bead_id?: string;
|
|
90
|
+
worktree_path?: string;
|
|
91
|
+
branch?: string;
|
|
92
|
+
variables_keys?: string[];
|
|
93
|
+
reviewed_job_id_present?: boolean;
|
|
94
|
+
reused_worktree_awareness_present?: boolean;
|
|
95
|
+
bead_context_present?: boolean;
|
|
96
|
+
memory_injection?: {
|
|
97
|
+
static_tokens: number;
|
|
98
|
+
memory_tokens: number;
|
|
99
|
+
gitnexus_tokens: number;
|
|
100
|
+
total_tokens: number;
|
|
101
|
+
};
|
|
102
|
+
mandatory_rules_injection?: {
|
|
103
|
+
sets_loaded: string[];
|
|
104
|
+
rules_count: number;
|
|
105
|
+
inline_rules_count: number;
|
|
106
|
+
globals_disabled: boolean;
|
|
107
|
+
token_estimate: number;
|
|
108
|
+
};
|
|
109
|
+
skills?: {
|
|
110
|
+
count: number;
|
|
111
|
+
activated: string[];
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Model/backend metadata event.
|
|
117
|
+
* Emitted when the first assistant message_start reveals provider info.
|
|
118
|
+
*/
|
|
119
|
+
export interface TimelineEventMeta extends TimelineEventBase {
|
|
120
|
+
type: 'meta';
|
|
121
|
+
/** Resolved model ID (e.g., 'claude-sonnet-4-6') */
|
|
122
|
+
model: string;
|
|
123
|
+
/** Backend provider (e.g., 'anthropic') */
|
|
124
|
+
backend: string;
|
|
125
|
+
memory_injection?: {
|
|
126
|
+
static_tokens: number;
|
|
127
|
+
memory_tokens: number;
|
|
128
|
+
gitnexus_tokens: number;
|
|
129
|
+
total_tokens: number;
|
|
130
|
+
};
|
|
131
|
+
source?: string;
|
|
132
|
+
data?: Record<string, unknown>;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Thinking event.
|
|
136
|
+
* Emitted once when reasoning/thinking activity is detected.
|
|
137
|
+
* Note: thinking_* are optional and backend-dependent.
|
|
138
|
+
*/
|
|
139
|
+
export interface TimelineEventThinking extends TimelineEventBase {
|
|
140
|
+
type: 'thinking';
|
|
141
|
+
char_count?: number;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Tool activity event.
|
|
145
|
+
* Represents tool execution lifecycle (construction + execution + result).
|
|
146
|
+
*
|
|
147
|
+
* Feed v2 collapses toolcall_* and tool_execution_* into a single tool event
|
|
148
|
+
* because:
|
|
149
|
+
* - toolcall construction is nested under message_update (not durable)
|
|
150
|
+
* - tool execution is the observable action
|
|
151
|
+
* - the combined view is what operators care about
|
|
152
|
+
*/
|
|
153
|
+
export interface TimelineEventTool extends TimelineEventBase {
|
|
154
|
+
type: 'tool';
|
|
155
|
+
/** Tool name (e.g., 'bash', 'read', 'ls') */
|
|
156
|
+
tool: string;
|
|
157
|
+
/** Execution phase */
|
|
158
|
+
phase: 'start' | 'update' | 'end';
|
|
159
|
+
/** Tool call ID for correlation across start/end events */
|
|
160
|
+
tool_call_id?: string;
|
|
161
|
+
/** True when tool event cannot be correlated to a concrete tool call ID */
|
|
162
|
+
uncorrelated?: boolean;
|
|
163
|
+
/** Whether execution resulted in error */
|
|
164
|
+
is_error?: boolean;
|
|
165
|
+
/** tool_use.input payload forwarded from tool_execution_start */
|
|
166
|
+
args?: Record<string, unknown>;
|
|
167
|
+
/** ISO timestamp of tool start — present on phase=start events for duration computation */
|
|
168
|
+
started_at?: string;
|
|
169
|
+
/** Summarized tool result content (truncated to keep timeline compact) */
|
|
170
|
+
result_summary?: string;
|
|
171
|
+
/** Raw structured tool result payload (when available) */
|
|
172
|
+
result_raw?: Record<string, unknown>;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Text output event.
|
|
176
|
+
* Emitted once when text content is first detected.
|
|
177
|
+
* Feed v2 does not persist text deltas (too verbose); just presence.
|
|
178
|
+
*/
|
|
179
|
+
export interface TimelineEventText extends TimelineEventBase {
|
|
180
|
+
type: 'text';
|
|
181
|
+
char_count?: number;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Message boundary event.
|
|
185
|
+
* Captures assistant/toolResult message lifecycle boundaries.
|
|
186
|
+
*/
|
|
187
|
+
export interface TimelineEventMessage extends TimelineEventBase {
|
|
188
|
+
type: 'message';
|
|
189
|
+
phase: 'start' | 'end';
|
|
190
|
+
role: 'assistant' | 'toolResult';
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Turn boundary event.
|
|
194
|
+
* Captures RPC turn_start / turn_end lifecycle phases.
|
|
195
|
+
*/
|
|
196
|
+
export interface TimelineEventTurn extends TimelineEventBase {
|
|
197
|
+
type: 'turn';
|
|
198
|
+
phase: 'start' | 'end';
|
|
199
|
+
}
|
|
200
|
+
export interface TimelineEventStatusChange extends TimelineEventBase {
|
|
201
|
+
type: 'status_change';
|
|
202
|
+
status: 'starting' | 'running' | 'waiting' | 'done' | 'error' | 'cancelled';
|
|
203
|
+
previous_status?: 'starting' | 'running' | 'waiting' | 'done' | 'error' | 'cancelled';
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Run completion event.
|
|
207
|
+
* THE CANONICAL COMPLETION SIGNAL FOR FEED V2.
|
|
208
|
+
*
|
|
209
|
+
* Emitted exactly once per run, containing final status and metadata.
|
|
210
|
+
* This replaces the historical double-completion (done + agent_end).
|
|
211
|
+
*/
|
|
212
|
+
export interface TimelineTokenUsage {
|
|
213
|
+
input_tokens?: number;
|
|
214
|
+
output_tokens?: number;
|
|
215
|
+
cache_creation_tokens?: number;
|
|
216
|
+
cache_read_tokens?: number;
|
|
217
|
+
total_tokens?: number;
|
|
218
|
+
cost_usd?: number;
|
|
219
|
+
}
|
|
220
|
+
export interface TimelineRunMetrics {
|
|
221
|
+
token_usage?: TimelineTokenUsage;
|
|
222
|
+
finish_reason?: string;
|
|
223
|
+
exit_reason?: string;
|
|
224
|
+
turns?: number;
|
|
225
|
+
tool_calls?: number;
|
|
226
|
+
tool_call_names?: string[];
|
|
227
|
+
auto_compactions?: number;
|
|
228
|
+
auto_retries?: number;
|
|
229
|
+
output_type?: string;
|
|
230
|
+
}
|
|
231
|
+
export interface TimelineEventRunComplete extends TimelineEventBase {
|
|
232
|
+
type: 'run_complete';
|
|
233
|
+
/** Final status */
|
|
234
|
+
status: 'COMPLETE' | 'ERROR' | 'CANCELLED';
|
|
235
|
+
/** Elapsed time in seconds */
|
|
236
|
+
elapsed_s: number;
|
|
237
|
+
/** Model ID */
|
|
238
|
+
model?: string;
|
|
239
|
+
/** Backend provider */
|
|
240
|
+
backend?: string;
|
|
241
|
+
/** Bead ID if tracking was enabled */
|
|
242
|
+
bead_id?: string;
|
|
243
|
+
/** Error message if status is ERROR */
|
|
244
|
+
error?: string;
|
|
245
|
+
/** Final assistant output text */
|
|
246
|
+
output?: string;
|
|
247
|
+
/** Aggregated metrics promoted for easy JSON consumption */
|
|
248
|
+
token_usage?: TimelineTokenUsage;
|
|
249
|
+
finish_reason?: string;
|
|
250
|
+
tool_calls?: string[];
|
|
251
|
+
exit_reason?: string;
|
|
252
|
+
/** Optional additive metrics summary */
|
|
253
|
+
metrics?: TimelineRunMetrics;
|
|
254
|
+
gitnexus_summary?: {
|
|
255
|
+
files_touched: string[];
|
|
256
|
+
symbols_analyzed: string[];
|
|
257
|
+
highest_risk?: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
|
|
258
|
+
tool_invocations: number;
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Stale warning event.
|
|
263
|
+
* Emitted when a job has been silent (no activity) beyond a configured threshold,
|
|
264
|
+
* or when a single tool execution exceeds its duration threshold.
|
|
265
|
+
*
|
|
266
|
+
* `reason` discriminates the type of staleness:
|
|
267
|
+
* - `running_silence` — job running, no events for > running_silence_warn_ms
|
|
268
|
+
* - `running_silence_error` — job running, no events for > running_silence_error_ms
|
|
269
|
+
* - `waiting_stale` — job waiting for follow-up for > waiting_stale_ms
|
|
270
|
+
* - `tool_duration` — single tool execution running for > tool_duration_warn_ms
|
|
271
|
+
*/
|
|
272
|
+
export interface TimelineEventStaleWarning extends TimelineEventBase {
|
|
273
|
+
type: 'stale_warning';
|
|
274
|
+
reason: 'running_silence' | 'running_silence_error' | 'waiting_stale' | 'tool_duration';
|
|
275
|
+
/** How many ms have elapsed without activity */
|
|
276
|
+
silence_ms: number;
|
|
277
|
+
/** The threshold that was crossed */
|
|
278
|
+
threshold_ms: number;
|
|
279
|
+
/** Tool name, present for tool_duration reason */
|
|
280
|
+
tool?: string;
|
|
281
|
+
}
|
|
282
|
+
export interface TimelineEventTokenUsage extends TimelineEventBase {
|
|
283
|
+
type: 'token_usage';
|
|
284
|
+
token_usage: TimelineTokenUsage;
|
|
285
|
+
source: 'message_done' | 'turn_end' | 'agent_end';
|
|
286
|
+
}
|
|
287
|
+
export interface TimelineEventFinishReason extends TimelineEventBase {
|
|
288
|
+
type: 'finish_reason';
|
|
289
|
+
finish_reason: string;
|
|
290
|
+
source: 'message_done' | 'turn_end' | 'agent_end';
|
|
291
|
+
}
|
|
292
|
+
export interface TimelineEventTurnSummary extends TimelineEventBase {
|
|
293
|
+
type: 'turn_summary';
|
|
294
|
+
turn_index: number;
|
|
295
|
+
token_usage?: TimelineTokenUsage;
|
|
296
|
+
finish_reason?: string;
|
|
297
|
+
text_content?: string;
|
|
298
|
+
context_pct?: number;
|
|
299
|
+
context_health?: 'OK' | 'MONITOR' | 'WARN' | 'CRITICAL';
|
|
300
|
+
}
|
|
301
|
+
export interface TimelineEventCompaction extends TimelineEventBase {
|
|
302
|
+
type: 'compaction';
|
|
303
|
+
phase: 'start' | 'end';
|
|
304
|
+
tokens_before?: number;
|
|
305
|
+
summary?: string;
|
|
306
|
+
first_kept_entry_id?: string;
|
|
307
|
+
}
|
|
308
|
+
export interface TimelineEventRetry extends TimelineEventBase {
|
|
309
|
+
type: 'retry';
|
|
310
|
+
phase: 'start' | 'end';
|
|
311
|
+
attempt?: number;
|
|
312
|
+
max_attempts?: number;
|
|
313
|
+
delay_ms?: number;
|
|
314
|
+
error_message?: string;
|
|
315
|
+
}
|
|
316
|
+
export interface TimelineEventModelChange extends TimelineEventBase {
|
|
317
|
+
type: 'model_change';
|
|
318
|
+
action: 'set_model' | 'cycle_model';
|
|
319
|
+
model?: string;
|
|
320
|
+
previous_model?: string;
|
|
321
|
+
}
|
|
322
|
+
export interface TimelineEventExtensionError extends TimelineEventBase {
|
|
323
|
+
type: 'extension_error';
|
|
324
|
+
extension?: string;
|
|
325
|
+
error_message?: string;
|
|
326
|
+
}
|
|
327
|
+
export interface TimelineEventApiError extends TimelineEventBase {
|
|
328
|
+
type: 'error';
|
|
329
|
+
source: 'rpc' | 'stderr';
|
|
330
|
+
error_message: string;
|
|
331
|
+
}
|
|
332
|
+
export interface TimelineEventAutoCommit extends TimelineEventBase {
|
|
333
|
+
type: 'auto_commit_success' | 'auto_commit_skipped' | 'auto_commit_failed';
|
|
334
|
+
reason?: string;
|
|
335
|
+
commit_sha?: string;
|
|
336
|
+
committed_files?: string[];
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Legacy completion events that still exist in older jobs.
|
|
340
|
+
* These are accepted for backward compatibility while feed v2 migrates history.
|
|
341
|
+
*/
|
|
342
|
+
export interface TimelineEventLegacyComplete extends TimelineEventBase {
|
|
343
|
+
type: 'done' | 'agent_end';
|
|
344
|
+
elapsed_s?: number;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Union of all timeline event types.
|
|
348
|
+
* This is the canonical type for events.jsonl records.
|
|
349
|
+
*/
|
|
350
|
+
export type TimelineEvent = TimelineEventRunStart | TimelineEventMeta | TimelineEventThinking | TimelineEventTool | TimelineEventText | TimelineEventMessage | TimelineEventTurn | TimelineEventStatusChange | TimelineEventRunComplete | TimelineEventStaleWarning | TimelineEventTokenUsage | TimelineEventFinishReason | TimelineEventTurnSummary | TimelineEventCompaction | TimelineEventRetry | TimelineEventModelChange | TimelineEventExtensionError | TimelineEventApiError | TimelineEventAutoCommit | TimelineEventLegacyComplete;
|
|
351
|
+
export declare const TIMELINE_EVENT_TYPES: {
|
|
352
|
+
readonly RUN_START: "run_start";
|
|
353
|
+
readonly META: "meta";
|
|
354
|
+
readonly THINKING: "thinking";
|
|
355
|
+
readonly TOOL: "tool";
|
|
356
|
+
readonly TEXT: "text";
|
|
357
|
+
readonly MESSAGE: "message";
|
|
358
|
+
readonly TURN: "turn";
|
|
359
|
+
readonly STATUS_CHANGE: "status_change";
|
|
360
|
+
readonly RUN_COMPLETE: "run_complete";
|
|
361
|
+
readonly STALE_WARNING: "stale_warning";
|
|
362
|
+
readonly TOKEN_USAGE: "token_usage";
|
|
363
|
+
readonly FINISH_REASON: "finish_reason";
|
|
364
|
+
readonly TURN_SUMMARY: "turn_summary";
|
|
365
|
+
readonly COMPACTION: "compaction";
|
|
366
|
+
readonly RETRY: "retry";
|
|
367
|
+
readonly MODEL_CHANGE: "model_change";
|
|
368
|
+
readonly EXTENSION_ERROR: "extension_error";
|
|
369
|
+
readonly ERROR: "error";
|
|
370
|
+
readonly AUTO_COMMIT_SUCCESS: "auto_commit_success";
|
|
371
|
+
readonly AUTO_COMMIT_SKIPPED: "auto_commit_skipped";
|
|
372
|
+
readonly AUTO_COMMIT_FAILED: "auto_commit_failed";
|
|
373
|
+
readonly DONE: "done";
|
|
374
|
+
readonly AGENT_END: "agent_end";
|
|
375
|
+
};
|
|
376
|
+
export declare function mapCallbackEventToTimelineEvent(callbackEvent: string, context: {
|
|
377
|
+
tool?: string;
|
|
378
|
+
toolCallId?: string;
|
|
379
|
+
isError?: boolean;
|
|
380
|
+
args?: Record<string, unknown>;
|
|
381
|
+
resultContent?: string;
|
|
382
|
+
resultRaw?: Record<string, unknown>;
|
|
383
|
+
charCount?: number;
|
|
384
|
+
compaction?: {
|
|
385
|
+
tokensBefore?: number;
|
|
386
|
+
summary?: string;
|
|
387
|
+
firstKeptEntryId?: string;
|
|
388
|
+
};
|
|
389
|
+
retry?: {
|
|
390
|
+
attempt?: number;
|
|
391
|
+
maxAttempts?: number;
|
|
392
|
+
delayMs?: number;
|
|
393
|
+
errorMessage?: string;
|
|
394
|
+
};
|
|
395
|
+
modelChange?: {
|
|
396
|
+
action: 'set_model' | 'cycle_model';
|
|
397
|
+
model?: string;
|
|
398
|
+
previousModel?: string;
|
|
399
|
+
};
|
|
400
|
+
extensionError?: {
|
|
401
|
+
extension?: string;
|
|
402
|
+
errorMessage?: string;
|
|
403
|
+
};
|
|
404
|
+
apiError?: {
|
|
405
|
+
source: 'rpc' | 'stderr';
|
|
406
|
+
errorMessage: string;
|
|
407
|
+
};
|
|
408
|
+
memoryInjection?: {
|
|
409
|
+
static_tokens: number;
|
|
410
|
+
memory_tokens: number;
|
|
411
|
+
gitnexus_tokens: number;
|
|
412
|
+
total_tokens: number;
|
|
413
|
+
};
|
|
414
|
+
metaPayload?: {
|
|
415
|
+
model?: string;
|
|
416
|
+
backend?: string;
|
|
417
|
+
source?: string;
|
|
418
|
+
data?: Record<string, unknown>;
|
|
419
|
+
};
|
|
420
|
+
}): TimelineEvent | null;
|
|
421
|
+
/**
|
|
422
|
+
* Create a run_start event.
|
|
423
|
+
*/
|
|
424
|
+
export declare function createRunStartEvent(specialist: string, beadId?: string, startupSnapshot?: TimelineEventRunStart['startup_snapshot']): TimelineEventRunStart;
|
|
425
|
+
/**
|
|
426
|
+
* Create a meta event.
|
|
427
|
+
*/
|
|
428
|
+
export declare function createMetaEvent(model: string, backend: string): TimelineEventMeta;
|
|
429
|
+
/**
|
|
430
|
+
* Create a stale_warning event.
|
|
431
|
+
* Emitted when stuck detection thresholds are crossed.
|
|
432
|
+
*/
|
|
433
|
+
export declare function createStatusChangeEvent(status: TimelineEventStatusChange['status'], previousStatus?: TimelineEventStatusChange['previous_status']): TimelineEventStatusChange;
|
|
434
|
+
export declare function createStaleWarningEvent(reason: TimelineEventStaleWarning['reason'], options: {
|
|
435
|
+
silence_ms: number;
|
|
436
|
+
threshold_ms: number;
|
|
437
|
+
tool?: string;
|
|
438
|
+
}): TimelineEventStaleWarning;
|
|
439
|
+
export declare function createTokenUsageEvent(token_usage: TimelineTokenUsage, source: 'message_done' | 'turn_end' | 'agent_end'): TimelineEventTokenUsage;
|
|
440
|
+
export declare function createFinishReasonEvent(finish_reason: string, source: 'message_done' | 'turn_end' | 'agent_end'): TimelineEventFinishReason;
|
|
441
|
+
export declare function createTurnSummaryEvent(turn_index: number, token_usage?: TimelineTokenUsage, finish_reason?: string, textContent?: string, contextPct?: number, contextHealth?: 'OK' | 'MONITOR' | 'WARN' | 'CRITICAL'): TimelineEventTurnSummary;
|
|
442
|
+
export declare function createCompactionEvent(phase: 'start' | 'end', options?: {
|
|
443
|
+
tokensBefore?: number;
|
|
444
|
+
summary?: string;
|
|
445
|
+
firstKeptEntryId?: string;
|
|
446
|
+
}): TimelineEventCompaction;
|
|
447
|
+
export declare function createRetryEvent(phase: 'start' | 'end', options?: {
|
|
448
|
+
attempt?: number;
|
|
449
|
+
maxAttempts?: number;
|
|
450
|
+
delayMs?: number;
|
|
451
|
+
errorMessage?: string;
|
|
452
|
+
}): TimelineEventRetry;
|
|
453
|
+
/**
|
|
454
|
+
* Create a run_complete event.
|
|
455
|
+
* THE CANONICAL COMPLETION EVENT.
|
|
456
|
+
*/
|
|
457
|
+
export declare function createRunCompleteEvent(status: 'COMPLETE' | 'ERROR' | 'CANCELLED', elapsed_s: number, options?: {
|
|
458
|
+
model?: string;
|
|
459
|
+
backend?: string;
|
|
460
|
+
bead_id?: string;
|
|
461
|
+
error?: string;
|
|
462
|
+
output?: string;
|
|
463
|
+
token_usage?: TimelineTokenUsage;
|
|
464
|
+
finish_reason?: string;
|
|
465
|
+
tool_calls?: string[];
|
|
466
|
+
exit_reason?: string;
|
|
467
|
+
metrics?: TimelineRunMetrics;
|
|
468
|
+
gitnexus_summary?: {
|
|
469
|
+
files_touched: string[];
|
|
470
|
+
symbols_analyzed: string[];
|
|
471
|
+
highest_risk?: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
|
|
472
|
+
tool_invocations: number;
|
|
473
|
+
};
|
|
474
|
+
}): TimelineEventRunComplete;
|
|
475
|
+
export declare function createAutoCommitEvent(status: 'success' | 'skipped' | 'failed', options?: {
|
|
476
|
+
reason?: string;
|
|
477
|
+
commit_sha?: string;
|
|
478
|
+
committed_files?: string[];
|
|
479
|
+
}): TimelineEventAutoCommit;
|
|
480
|
+
/**
|
|
481
|
+
* Parse a timeline event from an events.jsonl line.
|
|
482
|
+
* Returns null for malformed or unknown event types.
|
|
483
|
+
*/
|
|
484
|
+
export declare function parseTimelineEvent(line: string): TimelineEvent | null;
|
|
485
|
+
/**
|
|
486
|
+
* Check if an event is the canonical completion event.
|
|
487
|
+
*/
|
|
488
|
+
export declare function isRunCompleteEvent(event: TimelineEvent): event is TimelineEventRunComplete;
|
|
489
|
+
/**
|
|
490
|
+
* Check if an event represents tool activity.
|
|
491
|
+
*/
|
|
492
|
+
export declare function isToolEvent(event: TimelineEvent): event is TimelineEventTool;
|
|
493
|
+
/**
|
|
494
|
+
* Compare two timeline events by timestamp for sorting.
|
|
495
|
+
* Earlier events come first (ascending order).
|
|
496
|
+
*
|
|
497
|
+
* For events with identical timestamps, the order is preserved (stable sort).
|
|
498
|
+
*/
|
|
499
|
+
export declare function compareTimelineEvents(a: TimelineEvent, b: TimelineEvent): number;
|
|
500
|
+
/**
|
|
501
|
+
* Merge timeline events from multiple jobs into a single chronological stream.
|
|
502
|
+
* Events are sorted by timestamp ascending.
|
|
503
|
+
*
|
|
504
|
+
* @param eventBatches - Array of { jobId, events } objects
|
|
505
|
+
* @returns Merged and sorted events with job attribution
|
|
506
|
+
*/
|
|
507
|
+
export declare function mergeTimelineEvents(eventBatches: Array<{
|
|
508
|
+
jobId: string;
|
|
509
|
+
specialist: string;
|
|
510
|
+
events: TimelineEvent[];
|
|
511
|
+
}>): Array<{
|
|
512
|
+
jobId: string;
|
|
513
|
+
specialist: string;
|
|
514
|
+
event: TimelineEvent;
|
|
515
|
+
}>;
|
|
516
|
+
/**
|
|
517
|
+
* ## What to persist (events.jsonl)
|
|
518
|
+
*
|
|
519
|
+
* For feed v2, persist these event types only:
|
|
520
|
+
*
|
|
521
|
+
* 1. `run_start` - once per job
|
|
522
|
+
* 2. `meta` - once when model/backend known
|
|
523
|
+
* 3. `thinking` - once if reasoning detected
|
|
524
|
+
* 4. `tool` - per tool start/end
|
|
525
|
+
* 5. `text` - once if text output detected
|
|
526
|
+
* 6. `run_complete` - ONCE per job (canonical completion)
|
|
527
|
+
*
|
|
528
|
+
* Do NOT persist:
|
|
529
|
+
* - `done` (legacy, ambiguous)
|
|
530
|
+
* - `agent_end` (replaced by run_complete)
|
|
531
|
+
* - Streaming deltas (text_delta, thinking_delta, toolcall_delta)
|
|
532
|
+
*
|
|
533
|
+
* ## What to read from status.json
|
|
534
|
+
*
|
|
535
|
+
* status.json provides live mutable state:
|
|
536
|
+
* - current_event, current_tool (for in-progress jobs)
|
|
537
|
+
* - status (starting | running | done | error)
|
|
538
|
+
* - elapsed_s, last_event_at_ms
|
|
539
|
+
* - bead_id
|
|
540
|
+
* - error message
|
|
541
|
+
*
|
|
542
|
+
* For completed jobs, events.jsonl is the source of truth.
|
|
543
|
+
* status.json may be consulted for real-time state.
|
|
544
|
+
*
|
|
545
|
+
* ## What to read from result.txt
|
|
546
|
+
*
|
|
547
|
+
* result.txt contains the final assistant output text.
|
|
548
|
+
* It is NOT part of the event timeline.
|
|
549
|
+
* Use it for result display, not for timeline rendering.
|
|
550
|
+
*
|
|
551
|
+
* ## Completion semantic (repeated for emphasis)
|
|
552
|
+
*
|
|
553
|
+
* There is ONE canonical completion event: `run_complete`.
|
|
554
|
+
* It replaces both:
|
|
555
|
+
* - legacy callback-level `done`
|
|
556
|
+
* - persisted `agent_end`
|
|
557
|
+
*
|
|
558
|
+
* When updating Supervisor to use this model:
|
|
559
|
+
* 1. Remove 'done' from LOGGED_EVENTS
|
|
560
|
+
* 2. Add run_complete emission instead of agent_end
|
|
561
|
+
* 3. Include status, elapsed_s, model, backend, bead_id, error in run_complete
|
|
562
|
+
*/
|
|
563
|
+
//# sourceMappingURL=timeline-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline-events.d.ts","sourceRoot":"","sources":["../../../src/specialist/timeline-events.ts"],"names":[],"mappings":"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"}
|