@knpkv/jira-clockify 1.3.0 → 1.4.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.
- package/README.md +245 -1
- package/dist/package.json +36 -12
- package/dist/src/agent/agentSettings.d.ts +18 -0
- package/dist/src/agent/agentSettings.d.ts.map +1 -0
- package/dist/src/agent/agentSettings.js +23 -0
- package/dist/src/agent/agentSettings.js.map +1 -0
- package/dist/src/agent/schedule.d.ts +20 -0
- package/dist/src/agent/schedule.d.ts.map +1 -0
- package/dist/src/agent/schedule.js +189 -0
- package/dist/src/agent/schedule.js.map +1 -0
- package/dist/src/agent/sessions.d.ts +427 -0
- package/dist/src/agent/sessions.d.ts.map +1 -0
- package/dist/src/agent/sessions.js +868 -0
- package/dist/src/agent/sessions.js.map +1 -0
- package/dist/src/agent/sourceConsumption.d.ts +79 -0
- package/dist/src/agent/sourceConsumption.d.ts.map +1 -0
- package/dist/src/agent/sourceConsumption.js +191 -0
- package/dist/src/agent/sourceConsumption.js.map +1 -0
- package/dist/src/agent/watch.d.ts +76 -0
- package/dist/src/agent/watch.d.ts.map +1 -0
- package/dist/src/agent/watch.js +45 -0
- package/dist/src/agent/watch.js.map +1 -0
- package/dist/src/agent/writePlanning.d.ts +154 -0
- package/dist/src/agent/writePlanning.d.ts.map +1 -0
- package/dist/src/agent/writePlanning.js +210 -0
- package/dist/src/agent/writePlanning.js.map +1 -0
- package/dist/src/bin.d.ts +3 -0
- package/dist/src/bin.d.ts.map +1 -0
- package/dist/src/bin.js +9 -3
- package/dist/src/bin.js.map +1 -1
- package/dist/src/cli/agentWrite.d.ts +164 -0
- package/dist/src/cli/agentWrite.d.ts.map +1 -0
- package/dist/src/cli/agentWrite.js +362 -0
- package/dist/src/cli/agentWrite.js.map +1 -0
- package/dist/src/cli/auth.d.ts +8 -0
- package/dist/src/cli/auth.d.ts.map +1 -0
- package/dist/src/cli/auth.js +10 -10
- package/dist/src/cli/auth.js.map +1 -1
- package/dist/src/cli/calendar.d.ts +42 -0
- package/dist/src/cli/calendar.d.ts.map +1 -0
- package/dist/src/cli/calendar.js +189 -0
- package/dist/src/cli/calendar.js.map +1 -0
- package/dist/src/cli/config.d.ts +12 -0
- package/dist/src/cli/config.d.ts.map +1 -0
- package/dist/src/cli/config.js +163 -21
- package/dist/src/cli/config.js.map +1 -1
- package/dist/src/cli/fetchTicket.d.ts +51 -0
- package/dist/src/cli/fetchTicket.d.ts.map +1 -0
- package/dist/src/cli/fetchTicket.js +18 -2
- package/dist/src/cli/fetchTicket.js.map +1 -1
- package/dist/src/cli/fuzzySelect.d.ts +24 -0
- package/dist/src/cli/fuzzySelect.d.ts.map +1 -0
- package/dist/src/cli/layers.d.ts +40 -0
- package/dist/src/cli/layers.d.ts.map +1 -0
- package/dist/src/cli/layers.js +57 -13
- package/dist/src/cli/layers.js.map +1 -1
- package/dist/src/cli/list.d.ts +8 -0
- package/dist/src/cli/list.d.ts.map +1 -0
- package/dist/src/cli/list.js +2 -2
- package/dist/src/cli/list.js.map +1 -1
- package/dist/src/cli/reconcile.d.ts +129 -0
- package/dist/src/cli/reconcile.d.ts.map +1 -0
- package/dist/src/cli/reconcile.js +635 -46
- package/dist/src/cli/reconcile.js.map +1 -1
- package/dist/src/cli/root.d.ts +15 -0
- package/dist/src/cli/root.d.ts.map +1 -0
- package/dist/src/cli/root.js +4 -3
- package/dist/src/cli/root.js.map +1 -1
- package/dist/src/cli/runtimeFailure.d.ts +10 -0
- package/dist/src/cli/runtimeFailure.d.ts.map +1 -0
- package/dist/src/cli/runtimeFailure.js +17 -0
- package/dist/src/cli/runtimeFailure.js.map +1 -0
- package/dist/src/cli/setup.d.ts +10 -0
- package/dist/src/cli/setup.d.ts.map +1 -0
- package/dist/src/cli/setup.js +7 -7
- package/dist/src/cli/setup.js.map +1 -1
- package/dist/src/cli/timer/discard.d.ts +4 -0
- package/dist/src/cli/timer/discard.d.ts.map +1 -0
- package/dist/src/cli/timer/discard.js +2 -2
- package/dist/src/cli/timer/discard.js.map +1 -1
- package/dist/src/cli/timer/edit.d.ts +22 -0
- package/dist/src/cli/timer/edit.d.ts.map +1 -0
- package/dist/src/cli/timer/edit.js +62 -42
- package/dist/src/cli/timer/edit.js.map +1 -1
- package/dist/src/cli/timer/index.d.ts +12 -0
- package/dist/src/cli/timer/index.d.ts.map +1 -0
- package/dist/src/cli/timer/log.d.ts +16 -0
- package/dist/src/cli/timer/log.d.ts.map +1 -0
- package/dist/src/cli/timer/log.js +6 -6
- package/dist/src/cli/timer/log.js.map +1 -1
- package/dist/src/cli/timer/start.d.ts +21 -0
- package/dist/src/cli/timer/start.d.ts.map +1 -0
- package/dist/src/cli/timer/start.js +9 -9
- package/dist/src/cli/timer/start.js.map +1 -1
- package/dist/src/cli/timer/status.d.ts +22 -0
- package/dist/src/cli/timer/status.d.ts.map +1 -0
- package/dist/src/cli/timer/status.js +3 -3
- package/dist/src/cli/timer/status.js.map +1 -1
- package/dist/src/cli/timer/stop.d.ts +48 -0
- package/dist/src/cli/timer/stop.d.ts.map +1 -0
- package/dist/src/cli/timer/stop.js +19 -19
- package/dist/src/cli/timer/stop.js.map +1 -1
- package/dist/src/cli/timer.d.ts +11 -0
- package/dist/src/cli/timer.d.ts.map +1 -0
- package/dist/src/cli/timer.js +1 -1
- package/dist/src/cli/timer.js.map +1 -1
- package/dist/src/cli/watch.d.ts +54 -0
- package/dist/src/cli/watch.d.ts.map +1 -0
- package/dist/src/cli/watch.js +412 -0
- package/dist/src/cli/watch.js.map +1 -0
- package/dist/src/cli/watchLease.d.ts +99 -0
- package/dist/src/cli/watchLease.d.ts.map +1 -0
- package/dist/src/cli/watchLease.js +204 -0
- package/dist/src/cli/watchLease.js.map +1 -0
- package/dist/src/cli/writerGuard.d.ts +37 -0
- package/dist/src/cli/writerGuard.d.ts.map +1 -0
- package/dist/src/cli/writerGuard.js +92 -0
- package/dist/src/cli/writerGuard.js.map +1 -0
- package/dist/src/index.d.ts +46 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +46 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/main.d.ts +4 -0
- package/dist/src/main.d.ts.map +1 -0
- package/dist/src/services/AgentSessionReader.d.ts +121 -0
- package/dist/src/services/AgentSessionReader.d.ts.map +1 -0
- package/dist/src/services/AgentSessionReader.js +392 -0
- package/dist/src/services/AgentSessionReader.js.map +1 -0
- package/dist/src/services/ClockifyAuth.d.ts +47 -0
- package/dist/src/services/ClockifyAuth.d.ts.map +1 -0
- package/dist/src/services/ClockifyAuth.js +2 -2
- package/dist/src/services/ClockifyAuth.js.map +1 -1
- package/dist/src/services/CodexTranscript.d.ts +112 -0
- package/dist/src/services/CodexTranscript.d.ts.map +1 -0
- package/dist/src/services/CodexTranscript.js +96 -0
- package/dist/src/services/CodexTranscript.js.map +1 -0
- package/dist/src/services/ConfigService.d.ts +99 -0
- package/dist/src/services/ConfigService.d.ts.map +1 -0
- package/dist/src/services/ConfigService.js +79 -7
- package/dist/src/services/ConfigService.js.map +1 -1
- package/dist/src/services/HomeDirectory.d.ts +17 -0
- package/dist/src/services/HomeDirectory.d.ts.map +1 -0
- package/dist/src/services/HomeDirectory.js +1 -1
- package/dist/src/services/IssueFacts.d.ts +127 -0
- package/dist/src/services/IssueFacts.d.ts.map +1 -0
- package/dist/src/services/IssueFacts.js +277 -0
- package/dist/src/services/IssueFacts.js.map +1 -0
- package/dist/src/services/ProviderDeletion.d.ts +19 -0
- package/dist/src/services/ProviderDeletion.d.ts.map +1 -0
- package/dist/src/services/ProviderDeletion.js +37 -0
- package/dist/src/services/ProviderDeletion.js.map +1 -0
- package/dist/src/services/ReconcileService.d.ts +378 -0
- package/dist/src/services/ReconcileService.d.ts.map +1 -0
- package/dist/src/services/ReconcileService.js +1270 -79
- package/dist/src/services/ReconcileService.js.map +1 -1
- package/dist/src/services/SavedEntries.d.ts +40 -0
- package/dist/src/services/SavedEntries.d.ts.map +1 -0
- package/dist/src/services/SavedEntries.js +209 -0
- package/dist/src/services/SavedEntries.js.map +1 -0
- package/dist/src/services/SessionAttributor.d.ts +114 -0
- package/dist/src/services/SessionAttributor.d.ts.map +1 -0
- package/dist/src/services/SessionAttributor.js +240 -0
- package/dist/src/services/SessionAttributor.js.map +1 -0
- package/dist/src/services/SourceLedger.d.ts +104 -0
- package/dist/src/services/SourceLedger.d.ts.map +1 -0
- package/dist/src/services/SourceLedger.js +302 -0
- package/dist/src/services/SourceLedger.js.map +1 -0
- package/dist/src/services/StateWriter.d.ts +39 -0
- package/dist/src/services/StateWriter.d.ts.map +1 -0
- package/dist/src/services/TicketService.d.ts +63 -0
- package/dist/src/services/TicketService.d.ts.map +1 -0
- package/dist/src/services/TimerService.d.ts +145 -0
- package/dist/src/services/TimerService.d.ts.map +1 -0
- package/dist/src/services/TimerService.js +113 -80
- package/dist/src/services/TimerService.js.map +1 -1
- package/dist/src/services/internal/JiraWorklogPost.d.ts +7 -0
- package/dist/src/services/internal/JiraWorklogPost.d.ts.map +1 -0
- package/dist/src/services/internal/JiraWorklogPost.js +32 -0
- package/dist/src/services/internal/JiraWorklogPost.js.map +1 -0
- package/dist/src/testing/fakeHeadless.d.ts +318 -0
- package/dist/src/testing/fakeHeadless.d.ts.map +1 -0
- package/dist/src/testing/fakeHeadless.js +1149 -0
- package/dist/src/testing/fakeHeadless.js.map +1 -0
- package/dist/src/tui/App.d.ts +6 -0
- package/dist/src/tui/App.d.ts.map +1 -0
- package/dist/src/tui/App.js +1 -1
- package/dist/src/tui/App.js.map +1 -1
- package/dist/src/tui/atoms/runtime.d.ts +8 -0
- package/dist/src/tui/atoms/runtime.d.ts.map +1 -0
- package/dist/src/tui/atoms/runtime.js +1 -1
- package/dist/src/tui/atoms/runtime.js.map +1 -1
- package/dist/src/tui/atoms/tickets.d.ts +3 -0
- package/dist/src/tui/atoms/tickets.d.ts.map +1 -0
- package/dist/src/tui/atoms/timer.d.ts +11 -0
- package/dist/src/tui/atoms/timer.d.ts.map +1 -0
- package/dist/src/tui/atoms/timer.js +1 -1
- package/dist/src/tui/atoms/timer.js.map +1 -1
- package/dist/src/tui/atoms/ui.d.ts +11 -0
- package/dist/src/tui/atoms/ui.d.ts.map +1 -0
- package/dist/src/tui/atoms/ui.js +1 -1
- package/dist/src/tui/atoms/ui.js.map +1 -1
- package/dist/src/tui/components/BigTimer.d.ts +2 -0
- package/dist/src/tui/components/BigTimer.d.ts.map +1 -0
- package/dist/src/tui/components/Footer.d.ts +2 -0
- package/dist/src/tui/components/Footer.d.ts.map +1 -0
- package/dist/src/tui/components/Header.d.ts +2 -0
- package/dist/src/tui/components/Header.d.ts.map +1 -0
- package/dist/src/tui/components/Header.js +1 -1
- package/dist/src/tui/components/Header.js.map +1 -1
- package/dist/src/tui/components/PopupInput.d.ts +18 -0
- package/dist/src/tui/components/PopupInput.d.ts.map +1 -0
- package/dist/src/tui/components/PopupMessage.d.ts +20 -0
- package/dist/src/tui/components/PopupMessage.d.ts.map +1 -0
- package/dist/src/tui/components/TicketList.d.ts +2 -0
- package/dist/src/tui/components/TicketList.d.ts.map +1 -0
- package/dist/src/tui/components/TicketList.js +1 -1
- package/dist/src/tui/components/TicketList.js.map +1 -1
- package/dist/src/tui/components/TicketRow.d.ts +8 -0
- package/dist/src/tui/components/TicketRow.d.ts.map +1 -0
- package/dist/src/tui/components/TimerDisplay.d.ts +2 -0
- package/dist/src/tui/components/TimerDisplay.d.ts.map +1 -0
- package/dist/src/tui/components/index.d.ts +12 -0
- package/dist/src/tui/components/index.d.ts.map +1 -0
- package/dist/src/tui/context/theme.d.ts +15 -0
- package/dist/src/tui/context/theme.d.ts.map +1 -0
- package/dist/src/tui/hooks/useElapsedTimer.d.ts +6 -0
- package/dist/src/tui/hooks/useElapsedTimer.d.ts.map +1 -0
- package/dist/src/tui/hooks/useElapsedTimer.js +1 -1
- package/dist/src/tui/hooks/useElapsedTimer.js.map +1 -1
- package/dist/src/tui/hooks/useTerminalSize.d.ts +5 -0
- package/dist/src/tui/hooks/useTerminalSize.d.ts.map +1 -0
- package/dist/src/utils/hints.d.ts +12 -0
- package/dist/src/utils/hints.d.ts.map +1 -0
- package/dist/src/utils/hints.js +12 -0
- package/dist/src/utils/hints.js.map +1 -0
- package/dist/src/utils/time.d.ts +104 -0
- package/dist/src/utils/time.d.ts.map +1 -0
- package/dist/src/utils/time.js +74 -8
- package/dist/src/utils/time.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +36 -18
- package/skills/jcf/SKILL.md +93 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/agent/sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/** Durable correlation between evidence blocks and entries written under a corrected ticket. */
|
|
2
|
+
export type Source = "clockify" | "jira";
|
|
3
|
+
export interface ConsumedSeconds {
|
|
4
|
+
readonly clockify: number;
|
|
5
|
+
readonly jira: number;
|
|
6
|
+
}
|
|
7
|
+
export type Consumption = Map<string, ConsumedSeconds>;
|
|
8
|
+
export interface RecordedRow {
|
|
9
|
+
readonly ticketKey?: string | undefined;
|
|
10
|
+
readonly day?: string | undefined;
|
|
11
|
+
readonly intervals: ReadonlyArray<{
|
|
12
|
+
readonly entry?: {
|
|
13
|
+
readonly source: Source;
|
|
14
|
+
readonly id: string;
|
|
15
|
+
readonly startMs: number;
|
|
16
|
+
readonly endMs: number;
|
|
17
|
+
readonly description: string | null;
|
|
18
|
+
} | undefined;
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
/** Existing provider seconds overlapping one credited block, unioned and capped by its credit. */
|
|
22
|
+
export declare const recordedSecondsInBlock: (block: {
|
|
23
|
+
readonly startMs: number;
|
|
24
|
+
readonly endMs: number;
|
|
25
|
+
readonly seconds: number;
|
|
26
|
+
}, intervals: ReadonlyArray<{
|
|
27
|
+
readonly startMs: number;
|
|
28
|
+
readonly endMs: number;
|
|
29
|
+
readonly source: Source;
|
|
30
|
+
}>, source: Source) => number;
|
|
31
|
+
/** Complete durable markers already present in a provider description. */
|
|
32
|
+
export declare const markers: (description: string) => ReadonlyArray<string>;
|
|
33
|
+
/** Keep server-owned source markers stable while allowing the visible description to change. */
|
|
34
|
+
export declare const retainMarkers: (current: string, replacement: string) => string;
|
|
35
|
+
/** Stable key for one original row and source cluster. */
|
|
36
|
+
export declare const blockKey: (rowId: string, sourceStartMs: number) => string;
|
|
37
|
+
/** Provider-visible correlation retained when a person changes the attributed ticket. */
|
|
38
|
+
export declare const marker: (rowId: string, sourceStartMs: number) => string;
|
|
39
|
+
/** Legacy migration hints only; descriptions never replace an existing provider-ID binding. */
|
|
40
|
+
export declare const sourceReferences: (description: string) => ReadonlyArray<{
|
|
41
|
+
readonly rowId: string;
|
|
42
|
+
readonly sourceStartMs: number;
|
|
43
|
+
}>;
|
|
44
|
+
/** Provider-ID-verified private projection; never serialized into a browser response. */
|
|
45
|
+
export interface ResolvedEntry {
|
|
46
|
+
readonly source: Source;
|
|
47
|
+
readonly id: string;
|
|
48
|
+
readonly rowId: string;
|
|
49
|
+
readonly sourceStartMs: number;
|
|
50
|
+
readonly startMs: number;
|
|
51
|
+
readonly endMs: number;
|
|
52
|
+
}
|
|
53
|
+
/** Ambiguous ordinary Clockify time holds only the credited blocks it intersects. */
|
|
54
|
+
export declare const unlinkedClockifyOverlaps: (blocks: ReadonlyArray<{
|
|
55
|
+
readonly startMs: number;
|
|
56
|
+
readonly endMs: number;
|
|
57
|
+
}>, unlinked: ReadonlyArray<RecordedRow>, resolved?: ReadonlyArray<ResolvedEntry>) => ReadonlyArray<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* Assign marked entries to the current reconstruction of their source blocks.
|
|
60
|
+
*
|
|
61
|
+
* A watch window can clip a continuous source cluster, so its marker start is not necessarily the
|
|
62
|
+
* start a later week read reconstructs. Prefer exact identity, then a block containing that marker,
|
|
63
|
+
* then provider-time overlap. Each marker chooses one block so a long edited entry cannot consume
|
|
64
|
+
* two genuinely separate stretches.
|
|
65
|
+
*/
|
|
66
|
+
export declare const consumptionForBlocks: (recorded: ReadonlyArray<RecordedRow>, rowId: string, blocks: ReadonlyArray<{
|
|
67
|
+
readonly startMs: number;
|
|
68
|
+
readonly endMs: number;
|
|
69
|
+
readonly sourceStartMs?: number | undefined;
|
|
70
|
+
}>, sides?: {
|
|
71
|
+
readonly clockify: boolean;
|
|
72
|
+
readonly jira: boolean;
|
|
73
|
+
}, resolved?: ReadonlyArray<ResolvedEntry>) => ReadonlyArray<ConsumedSeconds>;
|
|
74
|
+
/** Rebuild corrected-ticket consumption from provider entries, preserving sides not read. */
|
|
75
|
+
export declare const reconcile: (recorded: ReadonlyArray<RecordedRow>, previous?: Consumption, sides?: {
|
|
76
|
+
readonly clockify: boolean;
|
|
77
|
+
readonly jira: boolean;
|
|
78
|
+
}, resolved?: ReadonlyArray<ResolvedEntry>) => Consumption;
|
|
79
|
+
//# sourceMappingURL=sourceConsumption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceConsumption.d.ts","sourceRoot":"","sources":["../../../src/agent/sourceConsumption.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/** Durable correlation between evidence blocks and entries written under a corrected ticket. */
|
|
2
|
+
/** Existing provider seconds overlapping one credited block, unioned and capped by its credit. */
|
|
3
|
+
export const recordedSecondsInBlock = (block, intervals, source) => {
|
|
4
|
+
const overlaps = intervals
|
|
5
|
+
.filter((interval) => interval.source === source)
|
|
6
|
+
.map((interval) => ({
|
|
7
|
+
startMs: Math.max(block.startMs, interval.startMs),
|
|
8
|
+
endMs: Math.min(block.endMs, interval.endMs)
|
|
9
|
+
}))
|
|
10
|
+
.filter((interval) => interval.endMs > interval.startMs)
|
|
11
|
+
.sort((a, b) => a.startMs - b.startMs);
|
|
12
|
+
let coveredMs = 0;
|
|
13
|
+
let endMs = Number.NEGATIVE_INFINITY;
|
|
14
|
+
for (const overlap of overlaps) {
|
|
15
|
+
const startMs = Math.max(overlap.startMs, endMs);
|
|
16
|
+
if (overlap.endMs > startMs)
|
|
17
|
+
coveredMs += overlap.endMs - startMs;
|
|
18
|
+
endMs = Math.max(endMs, overlap.endMs);
|
|
19
|
+
}
|
|
20
|
+
return Math.min(block.seconds, coveredMs / 1000);
|
|
21
|
+
};
|
|
22
|
+
const sourceMarkerPattern = /\[jcf-source:([^\]]+)\]/g;
|
|
23
|
+
/** Complete durable markers already present in a provider description. */
|
|
24
|
+
export const markers = (description) => [...new Set([...description.matchAll(sourceMarkerPattern)].map((match) => match[0]))];
|
|
25
|
+
/** Keep server-owned source markers stable while allowing the visible description to change. */
|
|
26
|
+
export const retainMarkers = (current, replacement) => {
|
|
27
|
+
const retained = markers(current);
|
|
28
|
+
const submitted = markers(replacement);
|
|
29
|
+
if (retained.length === submitted.length &&
|
|
30
|
+
retained.every((value) => submitted.includes(value)))
|
|
31
|
+
return replacement;
|
|
32
|
+
const visible = replacement.replace(sourceMarkerPattern, "").trimEnd();
|
|
33
|
+
return [visible, ...retained].filter((part) => part.length > 0).join("\n");
|
|
34
|
+
};
|
|
35
|
+
/** Stable key for one original row and source cluster. */
|
|
36
|
+
export const blockKey = (rowId, sourceStartMs) => JSON.stringify([rowId, sourceStartMs]);
|
|
37
|
+
/** Provider-visible correlation retained when a person changes the attributed ticket. */
|
|
38
|
+
export const marker = (rowId, sourceStartMs) => `[jcf-source:${encodeURIComponent(rowId)}:${String(sourceStartMs)}]`;
|
|
39
|
+
const parsedMarker = (value) => {
|
|
40
|
+
const separator = value.lastIndexOf(":");
|
|
41
|
+
if (separator < 0)
|
|
42
|
+
return undefined;
|
|
43
|
+
const sourceStartMs = Number(value.slice(separator + 1));
|
|
44
|
+
if (!Number.isFinite(sourceStartMs))
|
|
45
|
+
return undefined;
|
|
46
|
+
try {
|
|
47
|
+
const rowId = decodeURIComponent(value.slice(0, separator));
|
|
48
|
+
return { key: blockKey(rowId, sourceStartMs), rowId, sourceStartMs };
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
/** Legacy migration hints only; descriptions never replace an existing provider-ID binding. */
|
|
55
|
+
export const sourceReferences = (description) => [...description.matchAll(sourceMarkerPattern)].flatMap((match) => {
|
|
56
|
+
const parsed = match[1] === undefined ? undefined : parsedMarker(match[1]);
|
|
57
|
+
return parsed === undefined ? [] : [{ rowId: parsed.rowId, sourceStartMs: parsed.sourceStartMs }];
|
|
58
|
+
});
|
|
59
|
+
/** Ambiguous ordinary Clockify time holds only the credited blocks it intersects. */
|
|
60
|
+
export const unlinkedClockifyOverlaps = (blocks, unlinked, resolved = []) => {
|
|
61
|
+
const bound = new Set(resolved.filter((entry) => entry.source === "clockify").map((entry) => entry.id));
|
|
62
|
+
const ordinary = unlinked.flatMap((row) => row.intervals.flatMap(({ entry }) => entry?.source === "clockify" && !bound.has(entry.id) ? [entry] : []));
|
|
63
|
+
return blocks.map((block) => ordinary.some((entry) => Math.min(block.endMs, entry.endMs) > Math.max(block.startMs, entry.startMs)));
|
|
64
|
+
};
|
|
65
|
+
/** Marker-bearing provider entries, deduplicated across day slices and omitted from their source row. */
|
|
66
|
+
const markedEntries = (recorded, resolved) => {
|
|
67
|
+
const discovered = [];
|
|
68
|
+
const seen = new Set();
|
|
69
|
+
const byId = new Map((resolved ?? []).map((entry) => [`${entry.source}\u0000${entry.id}`, entry]));
|
|
70
|
+
for (const row of recorded) {
|
|
71
|
+
for (const interval of row.intervals) {
|
|
72
|
+
const entry = interval.entry;
|
|
73
|
+
if (entry === undefined)
|
|
74
|
+
continue;
|
|
75
|
+
const bound = byId.get(`${entry.source}\u0000${entry.id}`);
|
|
76
|
+
if (bound !== undefined) {
|
|
77
|
+
const key = blockKey(bound.rowId, bound.sourceStartMs);
|
|
78
|
+
const seenKey = `${entry.source}\u0000${entry.id}\u0000${key}`;
|
|
79
|
+
if (!seen.has(seenKey) && `${row.day}:${row.ticketKey}` !== bound.rowId) {
|
|
80
|
+
seen.add(seenKey);
|
|
81
|
+
discovered.push({
|
|
82
|
+
entryEndMs: bound.endMs,
|
|
83
|
+
entryStartMs: bound.startMs,
|
|
84
|
+
id: entry.id,
|
|
85
|
+
key,
|
|
86
|
+
rowId: bound.rowId,
|
|
87
|
+
seconds: Math.max(0, (bound.endMs - bound.startMs) / 1000),
|
|
88
|
+
source: entry.source,
|
|
89
|
+
sourceStartMs: bound.sourceStartMs
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
// Once a private ledger was read, editable prose cannot create an unverified source link.
|
|
95
|
+
if (resolved !== undefined)
|
|
96
|
+
continue;
|
|
97
|
+
if (entry?.description === null || entry?.description === undefined)
|
|
98
|
+
continue;
|
|
99
|
+
for (const match of entry.description.matchAll(sourceMarkerPattern)) {
|
|
100
|
+
const parsed = match[1] === undefined ? undefined : parsedMarker(match[1]);
|
|
101
|
+
if (parsed === undefined || `${row.day}:${row.ticketKey}` === parsed.rowId)
|
|
102
|
+
continue;
|
|
103
|
+
const seenKey = `${entry.source}\u0000${entry.id}\u0000${parsed.key}`;
|
|
104
|
+
if (seen.has(seenKey))
|
|
105
|
+
continue;
|
|
106
|
+
seen.add(seenKey);
|
|
107
|
+
discovered.push({
|
|
108
|
+
entryEndMs: entry.endMs,
|
|
109
|
+
entryStartMs: entry.startMs,
|
|
110
|
+
id: entry.id,
|
|
111
|
+
key: parsed.key,
|
|
112
|
+
rowId: parsed.rowId,
|
|
113
|
+
seconds: Math.max(0, (entry.endMs - entry.startMs) / 1000),
|
|
114
|
+
source: entry.source,
|
|
115
|
+
sourceStartMs: parsed.sourceStartMs
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return discovered;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Assign marked entries to the current reconstruction of their source blocks.
|
|
124
|
+
*
|
|
125
|
+
* A watch window can clip a continuous source cluster, so its marker start is not necessarily the
|
|
126
|
+
* start a later week read reconstructs. Prefer exact identity, then a block containing that marker,
|
|
127
|
+
* then provider-time overlap. Each marker chooses one block so a long edited entry cannot consume
|
|
128
|
+
* two genuinely separate stretches.
|
|
129
|
+
*/
|
|
130
|
+
export const consumptionForBlocks = (recorded, rowId, blocks, sides = { clockify: true, jira: true }, resolved) => {
|
|
131
|
+
const result = blocks.map(() => ({ clockify: 0, jira: 0 }));
|
|
132
|
+
for (const entry of markedEntries(recorded, resolved)) {
|
|
133
|
+
if (entry.rowId !== rowId || !sides[entry.source])
|
|
134
|
+
continue;
|
|
135
|
+
let index = -1;
|
|
136
|
+
let bestOverlap = 0;
|
|
137
|
+
for (const [candidate, block] of blocks.entries()) {
|
|
138
|
+
if ((block.sourceStartMs ?? block.startMs) !== entry.sourceStartMs)
|
|
139
|
+
continue;
|
|
140
|
+
const overlap = Math.max(0, Math.min(block.endMs, entry.entryEndMs) - Math.max(block.startMs, entry.entryStartMs));
|
|
141
|
+
if (overlap > bestOverlap) {
|
|
142
|
+
bestOverlap = overlap;
|
|
143
|
+
index = candidate;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
if (index < 0)
|
|
147
|
+
index = blocks.findIndex((block) => (block.sourceStartMs ?? block.startMs) === entry.sourceStartMs);
|
|
148
|
+
if (index < 0) {
|
|
149
|
+
index = blocks.findIndex((block) => {
|
|
150
|
+
const sourceStartMs = block.sourceStartMs ?? block.startMs;
|
|
151
|
+
return entry.sourceStartMs >= sourceStartMs && entry.sourceStartMs < block.endMs;
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
if (index < 0) {
|
|
155
|
+
let bestOverlap = 0;
|
|
156
|
+
for (const [candidate, block] of blocks.entries()) {
|
|
157
|
+
const overlap = Math.max(0, Math.min(block.endMs, entry.entryEndMs) - Math.max(block.startMs, entry.entryStartMs));
|
|
158
|
+
if (overlap > bestOverlap) {
|
|
159
|
+
bestOverlap = overlap;
|
|
160
|
+
index = candidate;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
const current = result[index];
|
|
165
|
+
if (index < 0 || current === undefined)
|
|
166
|
+
continue;
|
|
167
|
+
result[index] = { ...current, [entry.source]: current[entry.source] + entry.seconds };
|
|
168
|
+
}
|
|
169
|
+
return result;
|
|
170
|
+
};
|
|
171
|
+
/** Rebuild corrected-ticket consumption from provider entries, preserving sides not read. */
|
|
172
|
+
export const reconcile = (recorded, previous = new Map(), sides = { clockify: true, jira: true }, resolved) => {
|
|
173
|
+
const discovered = new Map();
|
|
174
|
+
for (const entry of markedEntries(recorded, resolved)) {
|
|
175
|
+
const held = discovered.get(entry.key) ?? { clockify: 0, jira: 0 };
|
|
176
|
+
discovered.set(entry.key, { ...held, [entry.source]: held[entry.source] + entry.seconds });
|
|
177
|
+
}
|
|
178
|
+
const reconciled = new Map();
|
|
179
|
+
for (const key of new Set([...previous.keys(), ...discovered.keys()])) {
|
|
180
|
+
const old = previous.get(key) ?? { clockify: 0, jira: 0 };
|
|
181
|
+
const fresh = discovered.get(key) ?? { clockify: 0, jira: 0 };
|
|
182
|
+
const value = {
|
|
183
|
+
clockify: sides.clockify ? fresh.clockify : old.clockify,
|
|
184
|
+
jira: sides.jira ? fresh.jira : old.jira
|
|
185
|
+
};
|
|
186
|
+
if (value.clockify > 0 || value.jira > 0)
|
|
187
|
+
reconciled.set(key, value);
|
|
188
|
+
}
|
|
189
|
+
return reconciled;
|
|
190
|
+
};
|
|
191
|
+
//# sourceMappingURL=sourceConsumption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceConsumption.js","sourceRoot":"","sources":["../../../src/agent/sourceConsumption.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deciding what a live watch may write, and when.
|
|
3
|
+
*
|
|
4
|
+
* **Mental model**
|
|
5
|
+
*
|
|
6
|
+
* - **Settled, not current**: a block of presence is only final once no later prompt can still
|
|
7
|
+
* change it. Writing the block you are *in* would log a minute at a time and re-derive the same
|
|
8
|
+
* minutes on every tick, so nothing is written until the block has gone cold.
|
|
9
|
+
* - **Deterministic evidence only**: a watch writes unattended, so it writes only what a branch, a
|
|
10
|
+
* worktree path, or a Standing Attribution places — evidence a person deliberately created.
|
|
11
|
+
* Anything a model had to guess at is held for `jcf sync reconcile --agent`, where it is shown
|
|
12
|
+
* before it is written.
|
|
13
|
+
* - **Held, never dropped**: a proposal this tick cannot write is returned with the reason. The
|
|
14
|
+
* caller reports it, because time that silently fails to be logged is the failure this whole
|
|
15
|
+
* feature exists to prevent.
|
|
16
|
+
*
|
|
17
|
+
* **Gotchas**
|
|
18
|
+
*
|
|
19
|
+
* - The settle deadline follows the source evidence, not the displayed allocation. Sequential
|
|
20
|
+
* allocations can end before the overlapping source cluster that sized them. Every allocation in
|
|
21
|
+
* that cluster waits for the cluster's last source instant plus transcript-write grace.
|
|
22
|
+
* - Settling is judged on the *latest* span in a bucket, so a ticket returned to after lunch is held
|
|
23
|
+
* again until the afternoon block also goes cold. The morning block is already written by then,
|
|
24
|
+
* and the proposal that follows is only the remainder — subtracting what the sides hold is what
|
|
25
|
+
* makes that safe.
|
|
26
|
+
*
|
|
27
|
+
* @module
|
|
28
|
+
*/
|
|
29
|
+
import type { CreditedSpan, SessionProposal } from "./sessions.js";
|
|
30
|
+
/**
|
|
31
|
+
* Seconds added to the Idle Cap before a block counts as settled.
|
|
32
|
+
*
|
|
33
|
+
* The Idle Cap alone is arithmetically sufficient. This covers the gap between a prompt being typed
|
|
34
|
+
* and its line being readable in the transcript, which is small but not zero — and paying a minute
|
|
35
|
+
* to never write a block twice is the right side of that trade.
|
|
36
|
+
*/
|
|
37
|
+
export declare const SETTLE_GRACE_SECONDS = 60;
|
|
38
|
+
/** Why a proposal was not written on this tick. */
|
|
39
|
+
export type HoldReason =
|
|
40
|
+
/** Work is still in progress, or too recent to be final. Written on a later tick. */
|
|
41
|
+
{
|
|
42
|
+
readonly _tag: "Unsettled";
|
|
43
|
+
readonly settlesAtMs: number;
|
|
44
|
+
}
|
|
45
|
+
/** Placed by a Coding Agent rather than by branch, path, or Standing Attribution. */
|
|
46
|
+
| {
|
|
47
|
+
readonly _tag: "NeedsReview";
|
|
48
|
+
};
|
|
49
|
+
export interface HeldProposal {
|
|
50
|
+
readonly proposal: SessionProposal;
|
|
51
|
+
readonly reason: HoldReason;
|
|
52
|
+
}
|
|
53
|
+
export interface WatchDecision {
|
|
54
|
+
/** Ready to write now, in the order they should be written. */
|
|
55
|
+
readonly write: ReadonlyArray<SessionProposal>;
|
|
56
|
+
readonly held: ReadonlyArray<HeldProposal>;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* When a bucket's evidence stops being able to change.
|
|
60
|
+
*
|
|
61
|
+
* The span already ends one Idle Cap past its last prompt, so only the transcript grace is added
|
|
62
|
+
* here — adding the cap again would withhold every block for twice as long as the command says it
|
|
63
|
+
* will. The bound is still exact: a later prompt can only extend this span by landing within an
|
|
64
|
+
* Idle Cap of the last one, which is before the span's own end.
|
|
65
|
+
*/
|
|
66
|
+
export declare const settlesAt: (spans: ReadonlyArray<CreditedSpan>) => number;
|
|
67
|
+
/**
|
|
68
|
+
* Sort one tick's proposals into what may be written now and what must wait.
|
|
69
|
+
*
|
|
70
|
+
* Pure and clock-free: `nowMs` is passed in so the rule is a fact about time rather than about when
|
|
71
|
+
* the test happened to run.
|
|
72
|
+
*/
|
|
73
|
+
export declare const decideWatchWrites: (proposals: ReadonlyArray<SessionProposal>, options: {
|
|
74
|
+
readonly nowMs: number;
|
|
75
|
+
}) => WatchDecision;
|
|
76
|
+
//# sourceMappingURL=watch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/agent/watch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAElE;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAA;AAKtC,mDAAmD;AACnD,MAAM,MAAM,UAAU;AACpB,qFAAqF;AACnF;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE;AAC9D,qFAAqF;GACnF;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,CAAA;AAEpC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IAC9C,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;CAC3C;AAMD;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,UAAW,aAAa,CAAC,YAAY,CAAC,KAAG,MAAwD,CAAA;AAEvH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,cACjB,aAAa,CAAC,eAAe,CAAC,WAChC;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAClC,aAkBF,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seconds added to the Idle Cap before a block counts as settled.
|
|
3
|
+
*
|
|
4
|
+
* The Idle Cap alone is arithmetically sufficient. This covers the gap between a prompt being typed
|
|
5
|
+
* and its line being readable in the transcript, which is small but not zero — and paying a minute
|
|
6
|
+
* to never write a block twice is the right side of that trade.
|
|
7
|
+
*/
|
|
8
|
+
export const SETTLE_GRACE_SECONDS = 60;
|
|
9
|
+
/** Attribution Signals a watch may write on: evidence a person created, not evidence a model chose. */
|
|
10
|
+
const UNATTENDED_SIGNALS = ["branch", "path", "standing"];
|
|
11
|
+
/** The last instant any of a bucket's blocks covers. */
|
|
12
|
+
const latestEnd = (spans) => spans.reduce((latest, span) => Math.max(latest, span.endMs), 0);
|
|
13
|
+
/**
|
|
14
|
+
* When a bucket's evidence stops being able to change.
|
|
15
|
+
*
|
|
16
|
+
* The span already ends one Idle Cap past its last prompt, so only the transcript grace is added
|
|
17
|
+
* here — adding the cap again would withhold every block for twice as long as the command says it
|
|
18
|
+
* will. The bound is still exact: a later prompt can only extend this span by landing within an
|
|
19
|
+
* Idle Cap of the last one, which is before the span's own end.
|
|
20
|
+
*/
|
|
21
|
+
export const settlesAt = (spans) => latestEnd(spans) + SETTLE_GRACE_SECONDS * 1000;
|
|
22
|
+
/**
|
|
23
|
+
* Sort one tick's proposals into what may be written now and what must wait.
|
|
24
|
+
*
|
|
25
|
+
* Pure and clock-free: `nowMs` is passed in so the rule is a fact about time rather than about when
|
|
26
|
+
* the test happened to run.
|
|
27
|
+
*/
|
|
28
|
+
export const decideWatchWrites = (proposals, options) => {
|
|
29
|
+
const write = [];
|
|
30
|
+
const held = [];
|
|
31
|
+
for (const proposal of proposals) {
|
|
32
|
+
if (!UNATTENDED_SIGNALS.includes(proposal.signal)) {
|
|
33
|
+
held.push({ proposal, reason: { _tag: "NeedsReview" } });
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
const settlesAtMs = proposal.settlementEndMs + SETTLE_GRACE_SECONDS * 1000;
|
|
37
|
+
if (options.nowMs < settlesAtMs) {
|
|
38
|
+
held.push({ proposal, reason: { _tag: "Unsettled", settlesAtMs } });
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
write.push(proposal);
|
|
42
|
+
}
|
|
43
|
+
return { write, held };
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=watch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/agent/watch.ts"],"names":[],"mappings":"AA8BA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAEtC,uGAAuG;AACvG,MAAM,kBAAkB,GAA6C,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;AAoBnG,wDAAwD;AACxD,MAAM,SAAS,GAAG,CAAC,KAAkC,EAAU,EAAE,CAC/D,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;AAEjE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAkC,EAAU,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,oBAAoB,GAAG,IAAI,CAAA;AAEvH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAAyC,EACzC,OAAmC,EACpB,EAAE;IACjB,MAAM,KAAK,GAA2B,EAAE,CAAA;IACxC,MAAM,IAAI,GAAwB,EAAE,CAAA;IAEpC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,CAAA;YACxD,SAAQ;QACV,CAAC;QACD,MAAM,WAAW,GAAG,QAAQ,CAAC,eAAe,GAAG,oBAAoB,GAAG,IAAI,CAAA;QAC1E,IAAI,OAAO,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,CAAC,CAAA;YACnE,SAAQ;QACV,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtB,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACxB,CAAC,CAAA"}
|