@knpkv/jira-clockify 1.4.1 → 1.6.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/README.md +105 -22
- package/dist/package.json +1 -1
- package/dist/src/agent/schedule.d.ts +6 -5
- package/dist/src/agent/schedule.d.ts.map +1 -1
- package/dist/src/agent/schedule.js +117 -102
- package/dist/src/agent/schedule.js.map +1 -1
- package/dist/src/agent/sessions.d.ts +27 -33
- package/dist/src/agent/sessions.d.ts.map +1 -1
- package/dist/src/agent/sessions.js +121 -83
- package/dist/src/agent/sessions.js.map +1 -1
- package/dist/src/agent/writePlanning.d.ts +2 -0
- package/dist/src/agent/writePlanning.d.ts.map +1 -1
- package/dist/src/agent/writePlanning.js +4 -1
- package/dist/src/agent/writePlanning.js.map +1 -1
- package/dist/src/bin.js +16 -5
- package/dist/src/bin.js.map +1 -1
- package/dist/src/cli/CommandFailed.d.ts +27 -0
- package/dist/src/cli/CommandFailed.d.ts.map +1 -0
- package/dist/src/cli/CommandFailed.js +25 -0
- package/dist/src/cli/CommandFailed.js.map +1 -0
- package/dist/src/cli/agentWrite.d.ts.map +1 -1
- package/dist/src/cli/agentWrite.js +12 -5
- package/dist/src/cli/agentWrite.js.map +1 -1
- package/dist/src/cli/auth.d.ts +59 -2
- package/dist/src/cli/auth.d.ts.map +1 -1
- package/dist/src/cli/auth.js +151 -106
- package/dist/src/cli/auth.js.map +1 -1
- package/dist/src/cli/config.d.ts +4 -3
- package/dist/src/cli/config.d.ts.map +1 -1
- package/dist/src/cli/config.js +73 -31
- package/dist/src/cli/config.js.map +1 -1
- package/dist/src/cli/fetchTicket.d.ts +3 -3
- package/dist/src/cli/fetchTicket.d.ts.map +1 -1
- package/dist/src/cli/fetchTicket.js +7 -7
- package/dist/src/cli/fetchTicket.js.map +1 -1
- package/dist/src/cli/layers.d.ts +6 -5
- package/dist/src/cli/layers.d.ts.map +1 -1
- package/dist/src/cli/layers.js +16 -15
- package/dist/src/cli/layers.js.map +1 -1
- package/dist/src/cli/list.d.ts +3 -2
- package/dist/src/cli/list.d.ts.map +1 -1
- package/dist/src/cli/list.js +11 -5
- package/dist/src/cli/list.js.map +1 -1
- package/dist/src/cli/reconcile.d.ts +18 -3
- package/dist/src/cli/reconcile.d.ts.map +1 -1
- package/dist/src/cli/reconcile.js +73 -23
- package/dist/src/cli/reconcile.js.map +1 -1
- package/dist/src/cli/root.d.ts.map +1 -1
- package/dist/src/cli/root.js +3 -3
- package/dist/src/cli/root.js.map +1 -1
- package/dist/src/cli/setup.d.ts +14 -4
- package/dist/src/cli/setup.d.ts.map +1 -1
- package/dist/src/cli/setup.js +45 -94
- package/dist/src/cli/setup.js.map +1 -1
- package/dist/src/cli/timer/discard.d.ts +1 -1
- package/dist/src/cli/timer/discard.d.ts.map +1 -1
- package/dist/src/cli/timer/discard.js +2 -1
- package/dist/src/cli/timer/discard.js.map +1 -1
- package/dist/src/cli/timer/log.d.ts +1 -1
- package/dist/src/cli/timer/log.d.ts.map +1 -1
- package/dist/src/cli/timer/log.js +2 -1
- package/dist/src/cli/timer/log.js.map +1 -1
- package/dist/src/cli/timer/start.d.ts +2 -1
- package/dist/src/cli/timer/start.d.ts.map +1 -1
- package/dist/src/cli/timer/start.js +6 -8
- package/dist/src/cli/timer/start.js.map +1 -1
- package/dist/src/cli/timer/stop.d.ts +1 -1
- package/dist/src/cli/timer/stop.d.ts.map +1 -1
- package/dist/src/cli/timer.d.ts.map +1 -1
- package/dist/src/cli/timer.js +8 -1
- package/dist/src/cli/timer.js.map +1 -1
- package/dist/src/cli/unknownCommand.d.ts +24 -0
- package/dist/src/cli/unknownCommand.d.ts.map +1 -0
- package/dist/src/cli/unknownCommand.js +84 -0
- package/dist/src/cli/unknownCommand.js.map +1 -0
- package/dist/src/cli/watch.d.ts +2 -2
- package/dist/src/cli/watch.d.ts.map +1 -1
- package/dist/src/services/AgentSessionReader.d.ts +26 -12
- package/dist/src/services/AgentSessionReader.d.ts.map +1 -1
- package/dist/src/services/AgentSessionReader.js +163 -69
- package/dist/src/services/AgentSessionReader.js.map +1 -1
- package/dist/src/services/CodexTranscript.d.ts +50 -13
- package/dist/src/services/CodexTranscript.d.ts.map +1 -1
- package/dist/src/services/CodexTranscript.js +49 -13
- package/dist/src/services/CodexTranscript.js.map +1 -1
- package/dist/src/services/ConfigService.d.ts +4 -0
- package/dist/src/services/ConfigService.d.ts.map +1 -1
- package/dist/src/services/ConfigService.js +6 -2
- package/dist/src/services/ConfigService.js.map +1 -1
- package/dist/src/services/IssueFacts.d.ts +2 -2
- package/dist/src/services/IssueFacts.d.ts.map +1 -1
- package/dist/src/services/IssueFacts.js +5 -5
- package/dist/src/services/IssueFacts.js.map +1 -1
- package/dist/src/services/JiraAccess.d.ts +140 -0
- package/dist/src/services/JiraAccess.d.ts.map +1 -0
- package/dist/src/services/JiraAccess.js +204 -0
- package/dist/src/services/JiraAccess.js.map +1 -0
- package/dist/src/services/ProviderSnapshots.d.ts +41 -0
- package/dist/src/services/ProviderSnapshots.d.ts.map +1 -0
- package/dist/src/services/ProviderSnapshots.js +71 -0
- package/dist/src/services/ProviderSnapshots.js.map +1 -0
- package/dist/src/services/ReconcileService.d.ts +12 -4
- package/dist/src/services/ReconcileService.d.ts.map +1 -1
- package/dist/src/services/ReconcileService.js +223 -113
- package/dist/src/services/ReconcileService.js.map +1 -1
- package/dist/src/services/SavedEntries.d.ts +24 -4
- package/dist/src/services/SavedEntries.d.ts.map +1 -1
- package/dist/src/services/SavedEntries.js +335 -19
- package/dist/src/services/SavedEntries.js.map +1 -1
- package/dist/src/services/SessionAttributor.d.ts +12 -0
- package/dist/src/services/SessionAttributor.d.ts.map +1 -1
- package/dist/src/services/SessionAttributor.js +13 -1
- package/dist/src/services/SessionAttributor.js.map +1 -1
- package/dist/src/services/SessionLine.d.ts +29 -0
- package/dist/src/services/SessionLine.d.ts.map +1 -0
- package/dist/src/services/SessionLine.js +8 -0
- package/dist/src/services/SessionLine.js.map +1 -0
- package/dist/src/services/SourceLedger.d.ts +84 -1
- package/dist/src/services/SourceLedger.d.ts.map +1 -1
- package/dist/src/services/SourceLedger.js +178 -12
- package/dist/src/services/SourceLedger.js.map +1 -1
- package/dist/src/services/TicketRanking.d.ts +39 -0
- package/dist/src/services/TicketRanking.d.ts.map +1 -0
- package/dist/src/services/TicketRanking.js +87 -0
- package/dist/src/services/TicketRanking.js.map +1 -0
- package/dist/src/services/TimerService.d.ts +3 -3
- package/dist/src/services/TimerService.d.ts.map +1 -1
- package/dist/src/services/TimerService.js +6 -17
- package/dist/src/services/TimerService.js.map +1 -1
- package/dist/src/services/internal/retryTransport.d.ts +9 -0
- package/dist/src/services/internal/retryTransport.d.ts.map +1 -0
- package/dist/src/services/internal/retryTransport.js +15 -0
- package/dist/src/services/internal/retryTransport.js.map +1 -0
- package/dist/src/testing/fakeHeadless.d.ts +12 -1
- package/dist/src/testing/fakeHeadless.d.ts.map +1 -1
- package/dist/src/testing/fakeHeadless.js +83 -10
- package/dist/src/testing/fakeHeadless.js.map +1 -1
- package/dist/src/tui/App.js +1 -1
- package/dist/src/tui/atoms/runtime.d.ts +1 -1
- package/dist/src/tui/atoms/runtime.d.ts.map +1 -1
- package/dist/src/utils/hints.d.ts +4 -2
- package/dist/src/utils/hints.d.ts.map +1 -1
- package/dist/src/utils/hints.js +4 -2
- package/dist/src/utils/hints.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/skills/jcf/SKILL.md +9 -6
|
@@ -12,18 +12,21 @@
|
|
|
12
12
|
* - **Tolerant decoding**: the transcript layout is an external contract that changes without
|
|
13
13
|
* notice. Unrecognised and malformed lines are skipped; a session survives on the lines it can
|
|
14
14
|
* decode rather than failing the whole run.
|
|
15
|
-
* - **
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
15
|
+
* - **Supervised turns, not busy-ness**: a message the *person* typed opens a supervised turn, and
|
|
16
|
+
* the agent's work counts as Session Activity only inside one — until the agent ends the turn, a
|
|
17
|
+
* turn nobody typed takes over, or the agent falls silent for longer than the Idle Cap. Agent
|
|
18
|
+
* output outside a turn the person started measures how long the agent was busy, not how long
|
|
19
|
+
* anyone was working, so it never counts. See ADR-0006's 2026-10-03 amendment.
|
|
19
20
|
*
|
|
20
21
|
* **Gotchas**
|
|
21
22
|
*
|
|
22
23
|
* - A `user` line is not necessarily a person. Tool results come back as `user` messages whose
|
|
23
|
-
* content is `tool_result` blocks
|
|
24
|
-
*
|
|
24
|
+
* content is `tool_result` blocks; task notifications and auto-continuations carry a machine
|
|
25
|
+
* `origin`; `isMeta` lines are expanded skills and command caveats. None of them opens a turn.
|
|
26
|
+
* - A message typed while the agent is busy is not a `user` line at all: it is a `queued_command`
|
|
27
|
+
* attachment, timestamped when it was typed. It opens a turn like any other prompt.
|
|
25
28
|
* - Assistant output, sidechain turns, and tool results still feed the candidate Issue Keys and the
|
|
26
|
-
* digest
|
|
29
|
+
* digest whether or not they count as presence: they say plenty about *what* the session was for.
|
|
27
30
|
* - The working directory and branch are taken from the session's last in-window line of any kind —
|
|
28
31
|
* the state the credited work actually ran under.
|
|
29
32
|
*
|
|
@@ -39,7 +42,7 @@ import * as Path from "effect/Path";
|
|
|
39
42
|
import * as Predicate from "effect/Predicate";
|
|
40
43
|
import * as Schema from "effect/Schema";
|
|
41
44
|
import * as Stream from "effect/Stream";
|
|
42
|
-
import { buildSessionDigest, expandHomePath, isWithinSessionRoots, mineTicketKeys } from "../agent/sessions.js";
|
|
45
|
+
import { buildSessionDigest, expandHomePath, isWithinSessionRoots, mineTicketKeys, ticketMentionCounts } from "../agent/sessions.js";
|
|
43
46
|
import { codexTranscriptLines, decodeCodexLine } from "./CodexTranscript.js";
|
|
44
47
|
import { ConfigService } from "./ConfigService.js";
|
|
45
48
|
import { HomeDirectory } from "./HomeDirectory.js";
|
|
@@ -61,7 +64,10 @@ const TranscriptLine = Schema.Struct({
|
|
|
61
64
|
cwd: Schema.optional(Schema.String),
|
|
62
65
|
gitBranch: Schema.optional(Schema.NullOr(Schema.String)),
|
|
63
66
|
isSidechain: Schema.optional(Schema.NullOr(Schema.Boolean)),
|
|
64
|
-
|
|
67
|
+
isMeta: Schema.optional(Schema.NullOr(Schema.Boolean)),
|
|
68
|
+
origin: Schema.optional(Schema.Unknown),
|
|
69
|
+
message: Schema.optional(Schema.Unknown),
|
|
70
|
+
attachment: Schema.optional(Schema.Unknown)
|
|
65
71
|
});
|
|
66
72
|
const TextBlock = Schema.Struct({
|
|
67
73
|
type: Schema.optional(Schema.String),
|
|
@@ -81,14 +87,34 @@ const decodeToolOutput = Schema.decodeUnknownOption(Schema.Union([Schema.String,
|
|
|
81
87
|
const MessageContent = Schema.Struct({
|
|
82
88
|
content: Schema.optional(Schema.Union([Schema.String, Schema.Array(ContentBlock)]))
|
|
83
89
|
});
|
|
90
|
+
/** Why a turn started. Absent on older transcripts, where the content prefix is the only hint. */
|
|
91
|
+
const Origin = Schema.Struct({ kind: Schema.optional(Schema.String) });
|
|
92
|
+
/** A message typed while the agent was busy, recorded when it was typed rather than delivered. */
|
|
93
|
+
const QueuedCommand = Schema.Struct({
|
|
94
|
+
type: Schema.Literal("queued_command"),
|
|
95
|
+
commandMode: Schema.optional(Schema.String),
|
|
96
|
+
origin: Schema.optional(Schema.Unknown),
|
|
97
|
+
prompt: Schema.optional(Schema.Union([Schema.String, Schema.Array(ContentBlock)]))
|
|
98
|
+
});
|
|
99
|
+
const AssistantStop = Schema.Struct({ stop_reason: Schema.optional(Schema.NullOr(Schema.String)) });
|
|
84
100
|
const JsonValue = Schema.fromJsonString(Schema.Json);
|
|
85
101
|
const decodeJson = Schema.decodeUnknownOption(JsonValue);
|
|
86
102
|
const decodeLine = Schema.decodeUnknownOption(TranscriptLine);
|
|
87
103
|
const decodeContent = Schema.decodeUnknownOption(MessageContent);
|
|
88
|
-
|
|
89
|
-
const
|
|
104
|
+
const decodeOrigin = Schema.decodeUnknownOption(Origin);
|
|
105
|
+
const decodeQueuedCommand = Schema.decodeUnknownOption(QueuedCommand);
|
|
106
|
+
const decodeAssistantStop = Schema.decodeUnknownOption(AssistantStop);
|
|
90
107
|
/** Block types that are the agent's own machinery rather than anything a person wrote. */
|
|
91
108
|
const MACHINE_BLOCK_TYPES = ["tool_result", "tool_use", "thinking"];
|
|
109
|
+
/** Turn origins nobody typed. */
|
|
110
|
+
const MACHINE_ORIGINS = ["task-notification", "auto-continuation"];
|
|
111
|
+
/** Stop reasons that end the agent's turn rather than pausing it for a tool. */
|
|
112
|
+
const TURN_END_STOPS = ["end_turn", "stop_sequence"];
|
|
113
|
+
/**
|
|
114
|
+
* Prefixes of `user` lines that echo a local command's output or announce a notification. Older
|
|
115
|
+
* transcripts carry no `origin`, so the content is the only evidence that nobody typed them.
|
|
116
|
+
*/
|
|
117
|
+
const MACHINE_TEXT = /^\s*<(task-notification|local-command-stdout|local-command-stderr|bash-stdout|bash-stderr)\b/;
|
|
92
118
|
/**
|
|
93
119
|
* How much of one tool result is kept as evidence. Command output can be megabytes; an Issue Key a
|
|
94
120
|
* command printed sits near the top, and the digest only needs a hint of what the output was.
|
|
@@ -106,16 +132,12 @@ const toolResultText = (output) => {
|
|
|
106
132
|
return text.length === 0 ? [] : [text.slice(0, TOOL_RESULT_TEXT_LIMIT)];
|
|
107
133
|
};
|
|
108
134
|
/**
|
|
109
|
-
* The readable text of
|
|
135
|
+
* The readable text of message content, or `""` when it carries none we understand.
|
|
110
136
|
*
|
|
111
137
|
* Includes tool-result output: it is attribution and description evidence, never presence, which
|
|
112
|
-
* {@link
|
|
138
|
+
* {@link claudePresence} decides separately.
|
|
113
139
|
*/
|
|
114
|
-
const
|
|
115
|
-
const decoded = decodeContent(message);
|
|
116
|
-
if (Option.isNone(decoded))
|
|
117
|
-
return "";
|
|
118
|
-
const content = decoded.value.content;
|
|
140
|
+
const contentText = (content) => {
|
|
119
141
|
if (content === undefined)
|
|
120
142
|
return "";
|
|
121
143
|
if (Predicate.isString(content))
|
|
@@ -126,33 +148,60 @@ const messageText = (message) => {
|
|
|
126
148
|
? []
|
|
127
149
|
: [block.text]).join("\n");
|
|
128
150
|
};
|
|
129
|
-
/**
|
|
130
|
-
|
|
131
|
-
*
|
|
132
|
-
* A bare string is a person only on the main thread. A block list is a person only if it contains
|
|
133
|
-
* none of the agent's machinery: tool results in particular arrive as `user` messages and are far
|
|
134
|
-
* more numerous than real prompts, so counting them would measure the agent's throughput as if it
|
|
135
|
-
* were attention.
|
|
136
|
-
*
|
|
137
|
-
* A sidechain line is the agent talking to its own subagent. It has the exact shape of a typed
|
|
138
|
-
* prompt — `type: "user"`, plain string content — so nothing else here would exclude it, and a run
|
|
139
|
-
* that fans out to many subagents would manufacture a stream of "prompts" dense enough to bridge
|
|
140
|
-
* every Idle Cap gap. That is the one thing the Idle Cap exists to stop, and under `jcf watch` the
|
|
141
|
-
* result would be written unattended.
|
|
142
|
-
*/
|
|
143
|
-
const isHumanPrompt = (line, message) => {
|
|
144
|
-
if (line.type !== "user" || line.isSidechain === true)
|
|
145
|
-
return false;
|
|
146
|
-
const decoded = decodeContent(message);
|
|
147
|
-
if (Option.isNone(decoded))
|
|
148
|
-
return false;
|
|
149
|
-
const content = decoded.value.content;
|
|
151
|
+
/** True when content is something a person could have typed: text with none of the agent's machinery. */
|
|
152
|
+
const isTypedContent = (content) => {
|
|
150
153
|
if (content === undefined)
|
|
151
154
|
return false;
|
|
152
155
|
if (Predicate.isString(content))
|
|
153
156
|
return content.trim().length > 0;
|
|
154
|
-
return
|
|
155
|
-
content.every((block) => block.type === undefined || !MACHINE_BLOCK_TYPES.includes(block.type))
|
|
157
|
+
return content.length > 0 &&
|
|
158
|
+
content.every((block) => block.type === undefined || !MACHINE_BLOCK_TYPES.includes(block.type));
|
|
159
|
+
};
|
|
160
|
+
const isMachineOrigin = (origin) => {
|
|
161
|
+
const decoded = decodeOrigin(origin);
|
|
162
|
+
return Option.isSome(decoded) && decoded.value.kind !== undefined && MACHINE_ORIGINS.includes(decoded.value.kind);
|
|
163
|
+
};
|
|
164
|
+
/**
|
|
165
|
+
* What one Claude line says about presence, with its readable text; `undefined` for lines that are
|
|
166
|
+
* neither messages nor queued prompts.
|
|
167
|
+
*
|
|
168
|
+
* A sidechain line is the agent talking to its own subagent. It has the exact shape of a typed
|
|
169
|
+
* prompt — `type: "user"`, plain string content — so it is classified as the agent's work before the
|
|
170
|
+
* content is looked at: it may continue a turn the person started, never open one.
|
|
171
|
+
*/
|
|
172
|
+
const claudePresence = (line) => {
|
|
173
|
+
if (line.type === "assistant") {
|
|
174
|
+
const content = decodeContent(line.message);
|
|
175
|
+
const text = Option.isSome(content) ? contentText(content.value.content) : "";
|
|
176
|
+
const stop = decodeAssistantStop(line.message);
|
|
177
|
+
const stopReason = Option.isSome(stop) ? stop.value.stop_reason : undefined;
|
|
178
|
+
// A subagent finishing its own turn does not end the person's turn on the main thread.
|
|
179
|
+
const ends = line.isSidechain !== true && stopReason !== undefined && stopReason !== null &&
|
|
180
|
+
TURN_END_STOPS.includes(stopReason);
|
|
181
|
+
return { presence: ends ? "turn-end" : "work", text };
|
|
182
|
+
}
|
|
183
|
+
if (line.type === "attachment") {
|
|
184
|
+
const queued = decodeQueuedCommand(line.attachment);
|
|
185
|
+
if (Option.isNone(queued))
|
|
186
|
+
return undefined;
|
|
187
|
+
const text = contentText(queued.value.prompt);
|
|
188
|
+
const typed = queued.value.commandMode === "prompt" && !isMachineOrigin(queued.value.origin);
|
|
189
|
+
return { presence: typed ? "prompt" : "machine", text };
|
|
190
|
+
}
|
|
191
|
+
if (line.type !== "user")
|
|
192
|
+
return undefined;
|
|
193
|
+
const decoded = decodeContent(line.message);
|
|
194
|
+
const content = Option.isSome(decoded) ? decoded.value.content : undefined;
|
|
195
|
+
const text = contentText(content);
|
|
196
|
+
if (isMachineOrigin(line.origin))
|
|
197
|
+
return { presence: "machine", text };
|
|
198
|
+
if (line.isSidechain === true || line.isMeta === true)
|
|
199
|
+
return { presence: "work", text };
|
|
200
|
+
if (/^\s*<task-notification\b/.test(text))
|
|
201
|
+
return { presence: "machine", text };
|
|
202
|
+
if (MACHINE_TEXT.test(text) || !isTypedContent(content))
|
|
203
|
+
return { presence: "work", text };
|
|
204
|
+
return { presence: "prompt", text };
|
|
156
205
|
};
|
|
157
206
|
/**
|
|
158
207
|
* Decode one transcript into the evidence it holds, keeping only activity inside `[from, to)`.
|
|
@@ -172,7 +221,7 @@ const isHumanPrompt = (line, message) => {
|
|
|
172
221
|
* Pure and total: a malformed line, an unparseable timestamp, or a file of pure noise yields no
|
|
173
222
|
* segments rather than an error.
|
|
174
223
|
*/
|
|
175
|
-
export const decodeTranscript = (content,
|
|
224
|
+
export const decodeTranscript = (content, options) => decodeSessionLines(claudeTranscriptLines(content), options);
|
|
176
225
|
/** Skip malformed external lines before the common segmenter sees them. */
|
|
177
226
|
function* claudeTranscriptLines(content) {
|
|
178
227
|
for (const rawLine of content.split("\n")) {
|
|
@@ -180,69 +229,112 @@ function* claudeTranscriptLines(content) {
|
|
|
180
229
|
if (Option.isNone(json))
|
|
181
230
|
continue;
|
|
182
231
|
const decoded = decodeLine(json.value);
|
|
183
|
-
if (Option.
|
|
184
|
-
|
|
232
|
+
if (Option.isNone(decoded))
|
|
233
|
+
continue;
|
|
234
|
+
const line = decoded.value;
|
|
235
|
+
if (line.sessionId === undefined || line.timestamp === undefined || line.cwd === undefined)
|
|
236
|
+
continue;
|
|
237
|
+
const classified = claudePresence(line);
|
|
238
|
+
if (classified === undefined)
|
|
239
|
+
continue;
|
|
240
|
+
yield {
|
|
241
|
+
sessionId: line.sessionId,
|
|
242
|
+
cwd: line.cwd,
|
|
243
|
+
gitBranch: line.gitBranch ?? null,
|
|
244
|
+
atMs: Date.parse(line.timestamp),
|
|
245
|
+
...classified
|
|
246
|
+
};
|
|
185
247
|
}
|
|
186
248
|
}
|
|
187
|
-
/**
|
|
188
|
-
|
|
249
|
+
/**
|
|
250
|
+
* Both providers share supervised-turn accounting and per-directory evidence boundaries.
|
|
251
|
+
*
|
|
252
|
+
* Turn state is tracked across the whole file, including lines outside the window, so a prompt
|
|
253
|
+
* typed just before the window opens still supervises the work that runs into it.
|
|
254
|
+
*/
|
|
255
|
+
export const decodeSessionLines = (lines, options) => {
|
|
189
256
|
const segments = [];
|
|
190
|
-
let
|
|
257
|
+
let activityTimes = [];
|
|
258
|
+
// Latest counted instant of the open segment. A queued prompt is stamped when typed, so input order
|
|
259
|
+
// is not time order and `activityTimes.at(-1)` can be stale.
|
|
260
|
+
let latestActivityMs = null;
|
|
191
261
|
let texts = [];
|
|
192
262
|
let sessionId = null;
|
|
193
263
|
let cwd = null;
|
|
194
264
|
let gitBranch = null;
|
|
265
|
+
let afterIdle = false;
|
|
266
|
+
// Last counted instant of the open supervised turn, or null when no turn is open.
|
|
267
|
+
let turnAtMs = null;
|
|
195
268
|
// One segment per `(cwd, branch)`. The id carries the segment index so windows, attributions and
|
|
196
269
|
// digests all key on the same thing — they are looked up from three different places.
|
|
197
270
|
const closeSegment = (endedAtMs) => {
|
|
198
|
-
if (sessionId !== null && cwd !== null &&
|
|
199
|
-
const id =
|
|
271
|
+
if (sessionId !== null && cwd !== null && activityTimes.length > 0) {
|
|
272
|
+
const id = afterIdle
|
|
273
|
+
? `${sessionId}@${String(activityTimes[0])}`
|
|
274
|
+
: segments.length === 0
|
|
275
|
+
? sessionId
|
|
276
|
+
: `${sessionId}#${String(segments.length)}`;
|
|
200
277
|
segments.push({
|
|
201
278
|
sessionId: id,
|
|
202
279
|
cwd,
|
|
203
280
|
gitBranch,
|
|
204
|
-
// Where the segment gives way to the next. Presence after its final
|
|
281
|
+
// Where the segment gives way to the next. Presence after its final activity ends there, not
|
|
205
282
|
// one whole Idle Cap later: the same person carried straight on under a different branch, so
|
|
206
283
|
// crediting the tail to both would put the switch's minutes on two tickets at once.
|
|
207
284
|
boundedAtMs: endedAtMs,
|
|
208
|
-
activity:
|
|
285
|
+
activity: [...activityTimes].sort((a, b) => a - b).map((atMs) => ({ sessionId: id, atMs })),
|
|
209
286
|
texts
|
|
210
287
|
});
|
|
211
288
|
}
|
|
212
|
-
// Reset unconditionally. A stretch with no
|
|
289
|
+
// Reset unconditionally. A stretch with no activity still has text, and leaving it behind
|
|
213
290
|
// leaks it into the next segment — including text from a directory that was never opted in.
|
|
214
|
-
|
|
291
|
+
activityTimes = [];
|
|
292
|
+
latestActivityMs = null;
|
|
215
293
|
texts = [];
|
|
216
294
|
};
|
|
217
295
|
for (const line of lines) {
|
|
218
|
-
|
|
219
|
-
continue;
|
|
220
|
-
if (line.sessionId === undefined || line.timestamp === undefined || line.cwd === undefined)
|
|
221
|
-
continue;
|
|
222
|
-
const atMs = Date.parse(line.timestamp);
|
|
296
|
+
const atMs = line.atMs;
|
|
223
297
|
if (Number.isNaN(atMs))
|
|
224
298
|
continue;
|
|
225
|
-
|
|
299
|
+
// The turn advances on every line, inside the window or not.
|
|
300
|
+
const supervised = turnAtMs !== null && atMs - turnAtMs <= options.idleCapMs;
|
|
301
|
+
const counts = line.presence === "prompt" ||
|
|
302
|
+
((line.presence === "work" || line.presence === "turn-end") && supervised);
|
|
303
|
+
if (line.presence === "prompt")
|
|
304
|
+
turnAtMs = Math.max(turnAtMs ?? atMs, atMs);
|
|
305
|
+
else if (line.presence === "work")
|
|
306
|
+
turnAtMs = supervised ? Math.max(turnAtMs ?? atMs, atMs) : null;
|
|
307
|
+
else if (line.presence === "turn-end" || line.presence === "machine")
|
|
308
|
+
turnAtMs = null;
|
|
309
|
+
if (atMs < options.fromMs || atMs >= options.toMs)
|
|
226
310
|
continue;
|
|
311
|
+
// Later mentions must not rebalance an already settled group. An idle barrier closes its text
|
|
312
|
+
// and activity together; the next group has a timestamp identity stable under later appends.
|
|
313
|
+
if (latestActivityMs !== null && atMs - latestActivityMs > options.idleCapMs) {
|
|
314
|
+
closeSegment(latestActivityMs + options.idleCapMs);
|
|
315
|
+
afterIdle = true;
|
|
316
|
+
}
|
|
227
317
|
// Closed *before* this line contributes anything: the first line under the new branch is
|
|
228
318
|
// evidence about the new segment, and appending it first put it in the old segment's digest and
|
|
229
319
|
// left it out of the new one's.
|
|
230
|
-
|
|
231
|
-
if (cwd !== null && (cwd !== line.cwd || gitBranch !== branch))
|
|
320
|
+
if (cwd !== null && (cwd !== line.cwd || gitBranch !== line.gitBranch)) {
|
|
232
321
|
closeSegment(atMs);
|
|
322
|
+
afterIdle = false;
|
|
323
|
+
}
|
|
233
324
|
sessionId = line.sessionId;
|
|
234
325
|
cwd = line.cwd;
|
|
235
|
-
gitBranch =
|
|
326
|
+
gitBranch = line.gitBranch;
|
|
236
327
|
// Inside the window only, and every kind of line: a key mentioned solely in the agent's own
|
|
237
328
|
// output is still a candidate, but a prompt written after the window is not evidence about it.
|
|
238
329
|
// A resumed session that moved on to something else would otherwise attribute — and describe —
|
|
239
330
|
// yesterday's hours from today's work, and could carry text from a directory that was never
|
|
240
331
|
// opted in to a Coding Agent.
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
332
|
+
if (line.text !== "")
|
|
333
|
+
texts.push(line.text);
|
|
334
|
+
if (counts) {
|
|
335
|
+
activityTimes.push(atMs);
|
|
336
|
+
latestActivityMs = Math.max(latestActivityMs ?? atMs, atMs);
|
|
337
|
+
}
|
|
246
338
|
}
|
|
247
339
|
closeSegment(null);
|
|
248
340
|
return segments;
|
|
@@ -334,6 +426,7 @@ export const layer = Layer.effect(AgentSessionReader, Effect.gen(function* () {
|
|
|
334
426
|
return [];
|
|
335
427
|
const fromMs = period.from.getTime();
|
|
336
428
|
const toMs = period.to.getTime();
|
|
429
|
+
const idleCapMs = Math.max(0, cfg.sessionIdleCapSeconds) * 1000;
|
|
337
430
|
const paths = yield* transcriptPaths(roots);
|
|
338
431
|
const records = [];
|
|
339
432
|
const addSegments = (segments) => {
|
|
@@ -346,6 +439,7 @@ export const layer = Layer.effect(AgentSessionReader, Effect.gen(function* () {
|
|
|
346
439
|
cwd: segment.cwd,
|
|
347
440
|
gitBranch: segment.gitBranch,
|
|
348
441
|
candidateKeys: mineTicketKeys(segment.texts.join("\n")),
|
|
442
|
+
mentionCounts: ticketMentionCounts(segment.texts.join("\n")),
|
|
349
443
|
digest: buildSessionDigest(segment.texts),
|
|
350
444
|
activity: segment.activity,
|
|
351
445
|
boundedAtMs: segment.boundedAtMs
|
|
@@ -364,7 +458,7 @@ export const layer = Layer.effect(AgentSessionReader, Effect.gen(function* () {
|
|
|
364
458
|
message: `Could not read the session transcript ${filePath}: ${error.message}`,
|
|
365
459
|
cause: error
|
|
366
460
|
})));
|
|
367
|
-
addSegments(decodeTranscript(content, { fromMs, toMs }));
|
|
461
|
+
addSegments(decodeTranscript(content, { fromMs, toMs, idleCapMs }));
|
|
368
462
|
}
|
|
369
463
|
const hasCodex = yield* fs
|
|
370
464
|
.exists(codexRoot)
|
|
@@ -382,7 +476,7 @@ export const layer = Layer.effect(AgentSessionReader, Effect.gen(function* () {
|
|
|
382
476
|
continue;
|
|
383
477
|
// Rollouts can be hundreds of MB; discard tool data before retaining decoded messages.
|
|
384
478
|
const lines = yield* fs.stream(filePath).pipe(Stream.decodeText(), Stream.splitLines, Stream.map((line) => decodeCodexLine(line)), Stream.filter(Option.isSome), Stream.map((decoded) => decoded.value), Stream.runCollect, Effect.catch(asAgentSessionError("Reading Codex session failed")));
|
|
385
|
-
addSegments(
|
|
479
|
+
addSegments(decodeSessionLines(codexTranscriptLines(lines), { fromMs, toMs, idleCapMs }));
|
|
386
480
|
}
|
|
387
481
|
}
|
|
388
482
|
return records;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentSessionReader.js","sourceRoot":"","sources":["../../../src/services/AgentSessionReader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AgentSessionReader.js","sourceRoot":"","sources":["../../../src/services/AgentSessionReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Normalize Codex rollouts into session
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Normalize Codex rollouts into session lines. Only authoritative user events open a supervised
|
|
3
|
+
* turn: response-item copies also contain injected instructions and replayed compacted history.
|
|
4
|
+
* Completed items continue the turn, `task_complete` and `turn_aborted` end it. Metadata and turn
|
|
5
|
+
* contexts supply the directory; native subagent rollouts supply no human time.
|
|
5
6
|
*/
|
|
6
7
|
import * as Schema from "effect/Schema";
|
|
8
|
+
import type { SessionLine } from "./SessionLine.js";
|
|
7
9
|
declare const CodexLine: Schema.Union<readonly [Schema.Struct<{
|
|
8
10
|
readonly type: Schema.Literal<"session_meta">;
|
|
9
11
|
readonly payload: Schema.Struct<{
|
|
@@ -38,6 +40,21 @@ declare const CodexLine: Schema.Union<readonly [Schema.Struct<{
|
|
|
38
40
|
}>>;
|
|
39
41
|
}>;
|
|
40
42
|
}>]>;
|
|
43
|
+
}>, Schema.Struct<{
|
|
44
|
+
readonly type: Schema.Literal<"event_msg">;
|
|
45
|
+
readonly timestamp: Schema.String;
|
|
46
|
+
readonly payload: Schema.Struct<{
|
|
47
|
+
readonly type: Schema.Literal<"item_completed">;
|
|
48
|
+
readonly item: Schema.Struct<{
|
|
49
|
+
readonly type: Schema.String;
|
|
50
|
+
}>;
|
|
51
|
+
}>;
|
|
52
|
+
}>, Schema.Struct<{
|
|
53
|
+
readonly type: Schema.Literal<"event_msg">;
|
|
54
|
+
readonly timestamp: Schema.String;
|
|
55
|
+
readonly payload: Schema.Struct<{
|
|
56
|
+
readonly type: Schema.Literals<readonly ["task_complete", "turn_aborted"]>;
|
|
57
|
+
}>;
|
|
41
58
|
}>, Schema.Struct<{
|
|
42
59
|
readonly type: Schema.Literal<"response_item">;
|
|
43
60
|
readonly timestamp: Schema.String;
|
|
@@ -49,6 +66,13 @@ declare const CodexLine: Schema.Union<readonly [Schema.Struct<{
|
|
|
49
66
|
readonly text: Schema.optional<Schema.String>;
|
|
50
67
|
}>>;
|
|
51
68
|
}>;
|
|
69
|
+
}>, Schema.Struct<{
|
|
70
|
+
readonly type: Schema.Literal<"response_item">;
|
|
71
|
+
readonly timestamp: Schema.String;
|
|
72
|
+
readonly payload: Schema.Struct<{
|
|
73
|
+
readonly type: Schema.String;
|
|
74
|
+
readonly role: Schema.optional<Schema.String>;
|
|
75
|
+
}>;
|
|
52
76
|
}>]>;
|
|
53
77
|
/** Discard tool payloads and malformed lines before retaining a rollout in memory. */
|
|
54
78
|
export declare const decodeCodexLine: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => import("effect/Option").Option<{
|
|
@@ -85,6 +109,21 @@ export declare const decodeCodexLine: (input: unknown, options?: import("effect/
|
|
|
85
109
|
}[];
|
|
86
110
|
};
|
|
87
111
|
};
|
|
112
|
+
} | {
|
|
113
|
+
readonly type: "event_msg";
|
|
114
|
+
readonly timestamp: string;
|
|
115
|
+
readonly payload: {
|
|
116
|
+
readonly type: "item_completed";
|
|
117
|
+
readonly item: {
|
|
118
|
+
readonly type: string;
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
} | {
|
|
122
|
+
readonly type: "event_msg";
|
|
123
|
+
readonly timestamp: string;
|
|
124
|
+
readonly payload: {
|
|
125
|
+
readonly type: "task_complete" | "turn_aborted";
|
|
126
|
+
};
|
|
88
127
|
} | {
|
|
89
128
|
readonly type: "response_item";
|
|
90
129
|
readonly timestamp: string;
|
|
@@ -96,17 +135,15 @@ export declare const decodeCodexLine: (input: unknown, options?: import("effect/
|
|
|
96
135
|
readonly text?: string | undefined;
|
|
97
136
|
}[];
|
|
98
137
|
};
|
|
138
|
+
} | {
|
|
139
|
+
readonly type: "response_item";
|
|
140
|
+
readonly timestamp: string;
|
|
141
|
+
readonly payload: {
|
|
142
|
+
readonly type: string;
|
|
143
|
+
readonly role?: string | undefined;
|
|
144
|
+
};
|
|
99
145
|
}>;
|
|
100
146
|
/** The shared transcript segmenter handles time windows, branch changes and directory isolation. */
|
|
101
|
-
export declare function codexTranscriptLines(lines: Iterable<typeof CodexLine.Type>): Generator<
|
|
102
|
-
type: string;
|
|
103
|
-
sessionId: string;
|
|
104
|
-
cwd: string;
|
|
105
|
-
gitBranch: string | null;
|
|
106
|
-
timestamp: string;
|
|
107
|
-
message: {
|
|
108
|
-
content: string;
|
|
109
|
-
};
|
|
110
|
-
}, void, unknown>;
|
|
147
|
+
export declare function codexTranscriptLines(lines: Iterable<typeof CodexLine.Type>): Generator<SessionLine>;
|
|
111
148
|
export {};
|
|
112
149
|
//# sourceMappingURL=CodexTranscript.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodexTranscript.d.ts","sourceRoot":"","sources":["../../../src/services/CodexTranscript.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"CodexTranscript.d.ts","sourceRoot":"","sources":["../../../src/services/CodexTranscript.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAiCnD,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoBb,CAAA;AAMF,sFAAsF;AACtF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA+D,CAAA;AAE3F,oGAAoG;AACpG,wBAAiB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,CA2DpG"}
|