@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,362 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Writing one Proposed Worklog, shared by `jcf sync reconcile --agent`, `jcf watch`, and any other
|
|
3
|
+
* surface that offers a proposal for confirmation.
|
|
4
|
+
*
|
|
5
|
+
* **Mental model**
|
|
6
|
+
*
|
|
7
|
+
* - **One write path**: every surface derives proposals from the same evidence and must put the same
|
|
8
|
+
* text in the same two places. A second implementation would drift, and the drift would only ever
|
|
9
|
+
* be visible in someone else's timesheet.
|
|
10
|
+
* - **Say it before writing it**: the entry text lands in two systems other people read, so the
|
|
11
|
+
* caller shows it first. Nothing here writes anything the user has not already been shown.
|
|
12
|
+
* - **Reports, never prints.** A write returns what each side did and the caller renders it. A
|
|
13
|
+
* terminal has a console to print to and an HTTP handler has a response to fill; a write path that
|
|
14
|
+
* printed could only ever serve the first, and the second would grow its own copy of these rules.
|
|
15
|
+
*
|
|
16
|
+
* @module
|
|
17
|
+
*/
|
|
18
|
+
import * as Effect from "effect/Effect";
|
|
19
|
+
import * as SourceConsumption from "../agent/sourceConsumption.js";
|
|
20
|
+
import { MINIMUM_WRITE_SECONDS, prepareProposal } from "../agent/writePlanning.js";
|
|
21
|
+
import { NOT_LOGGED_IN_HINT } from "../utils/hints.js";
|
|
22
|
+
import { formatDuration } from "../utils/time.js";
|
|
23
|
+
export { writeAnchor } from "../agent/writePlanning.js";
|
|
24
|
+
/** Clip `text` to `width`, marking that something was dropped. */
|
|
25
|
+
export const clip = (text, width) => text.length <= width ? text : `${text.slice(0, width - 1)}…`;
|
|
26
|
+
/**
|
|
27
|
+
* What accepting one row would write, naming only the sides that are actually short.
|
|
28
|
+
*
|
|
29
|
+
* Collapsed to "to both" when the two gaps are equal, which is the usual case for time neither
|
|
30
|
+
* side ever recorded — spelling the same number out twice reads like a mistake.
|
|
31
|
+
*/
|
|
32
|
+
export const proposalTargets = (proposal) => {
|
|
33
|
+
if (proposal.blocks.some((block) => block.clockifyRefusal === "unlinked-overlap")) {
|
|
34
|
+
return proposal.jiraDelta > 0
|
|
35
|
+
? `+${formatDuration(proposal.jiraDelta)} Jira · Clockify overlap held`
|
|
36
|
+
: "Clockify overlap held";
|
|
37
|
+
}
|
|
38
|
+
if (proposal.clockifyDelta > 0 && proposal.clockifyDelta === proposal.jiraDelta) {
|
|
39
|
+
return `+${formatDuration(proposal.clockifyDelta)} to both`;
|
|
40
|
+
}
|
|
41
|
+
const targets = [];
|
|
42
|
+
if (proposal.clockifyDelta > 0)
|
|
43
|
+
targets.push(`+${formatDuration(proposal.clockifyDelta)} Clockify`);
|
|
44
|
+
if (proposal.jiraDelta > 0)
|
|
45
|
+
targets.push(`+${formatDuration(proposal.jiraDelta)} Jira`);
|
|
46
|
+
return targets.join(", ");
|
|
47
|
+
};
|
|
48
|
+
/** A proposal accepted exactly as it was offered. */
|
|
49
|
+
export const asProposed = {
|
|
50
|
+
amountSetByHand: false,
|
|
51
|
+
evidence: "session",
|
|
52
|
+
ticketSetByHand: false
|
|
53
|
+
};
|
|
54
|
+
/** Time no session evidences: a meeting, a whiteboard, work away from the keyboard. */
|
|
55
|
+
export const byHand = {
|
|
56
|
+
amountSetByHand: true,
|
|
57
|
+
evidence: "hand",
|
|
58
|
+
ticketSetByHand: true
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Where a written entry says it came from. This prose is never load-bearing: ordinary writes tally
|
|
62
|
+
* by `[KEY]` and day. Session-backed writes also carry a source suffix for legacy migration; the
|
|
63
|
+
* private provider-ID ledger, not editable text, keeps corrected-ticket consumption after a write.
|
|
64
|
+
*/
|
|
65
|
+
export const PROVENANCE = "Reconciled from Claude Agent Session";
|
|
66
|
+
/** What an entry with this provenance says about itself. */
|
|
67
|
+
export const provenanceText = (provenance) => {
|
|
68
|
+
if (provenance.evidence === "hand")
|
|
69
|
+
return "Entered by hand";
|
|
70
|
+
const overrides = [
|
|
71
|
+
...(provenance.amountSetByHand ? ["amount"] : []),
|
|
72
|
+
...(provenance.ticketSetByHand ? ["ticket"] : [])
|
|
73
|
+
];
|
|
74
|
+
return overrides.length === 0 ? PROVENANCE : `${PROVENANCE}, ${overrides.join(" and ")} set by hand`;
|
|
75
|
+
};
|
|
76
|
+
/** Keeps the issue title from crowding out the sentence that says what was actually done. */
|
|
77
|
+
const ENTRY_SUMMARY_WIDTH = 80;
|
|
78
|
+
/**
|
|
79
|
+
* What a written entry says about itself: the issue title, what was done, and where it came from.
|
|
80
|
+
*
|
|
81
|
+
* An entry that says only "reconciled from an Agent Session" answers the wrong question. The one
|
|
82
|
+
* asked of a timesheet months later is *what* the time went on, and by then the Issue Key alone is
|
|
83
|
+
* a lookup and the transcript is gone. So the title goes in — Clockify has no other way to know it —
|
|
84
|
+
* and the note goes in after it, as the one thing neither system can reconstruct.
|
|
85
|
+
*
|
|
86
|
+
* Both halves are optional, for different reasons: Jira may be unreachable, and a session whose
|
|
87
|
+
* prompts never say what was done gets no sentence rather than an invented one. The provenance stays
|
|
88
|
+
* last and unconditional — a reader has to be able to tell that a line was written by a tool from a
|
|
89
|
+
* session, not typed by hand.
|
|
90
|
+
*/
|
|
91
|
+
export const entryDescription = (options) => {
|
|
92
|
+
const provenance = provenanceText(options.provenance ?? asProposed);
|
|
93
|
+
const parts = [
|
|
94
|
+
...(options.summary === null ? [] : [clip(options.summary, ENTRY_SUMMARY_WIDTH)]),
|
|
95
|
+
...(options.note === null || options.note.trim() === "" ? [] : [options.note.trim()])
|
|
96
|
+
];
|
|
97
|
+
return parts.length === 0 ? provenance : `${parts.join(" — ")} (${provenance})`;
|
|
98
|
+
};
|
|
99
|
+
/** Both systems: what a write means unless someone says otherwise. */
|
|
100
|
+
export const bothTargets = { clockify: true, jira: true };
|
|
101
|
+
const missingSourceScope = "the provider account for this session was not verified; refresh before writing";
|
|
102
|
+
/** Why later rows would repeat the same Jira failure, or `null` when the next row remains useful. */
|
|
103
|
+
export const writeStopReason = (outcome) => {
|
|
104
|
+
const jira = outcome.jira;
|
|
105
|
+
if (jira._tag === "NotLoggedIn" ||
|
|
106
|
+
(jira._tag === "PartiallyWritten" && jira.failure._tag === "NotLoggedIn")) {
|
|
107
|
+
return NOT_LOGGED_IN_HINT;
|
|
108
|
+
}
|
|
109
|
+
if (jira._tag === "Refused" && jira.message === missingSourceScope)
|
|
110
|
+
return jira.message;
|
|
111
|
+
if (jira._tag === "PartiallyWritten" && jira.failure._tag === "Refused" &&
|
|
112
|
+
jira.failure.message === missingSourceScope) {
|
|
113
|
+
return jira.failure.message;
|
|
114
|
+
}
|
|
115
|
+
return null;
|
|
116
|
+
};
|
|
117
|
+
const sideSeconds = (outcome) => outcome._tag === "Written" || outcome._tag === "PartiallyWritten" ? outcome.seconds : 0;
|
|
118
|
+
/** Seconds this write actually put on Clockify. */
|
|
119
|
+
export const clockifyWritten = (outcome) => sideSeconds(outcome.clockify);
|
|
120
|
+
/** Seconds this write actually put on Jira. */
|
|
121
|
+
export const jiraWritten = (outcome) => sideSeconds(outcome.jira);
|
|
122
|
+
/**
|
|
123
|
+
* Whether a run should go on to the next row.
|
|
124
|
+
*
|
|
125
|
+
* False for an expired Jira session or an unverified Jira account: every remaining Jira write
|
|
126
|
+
* would fail the same way, and twenty rows that all fail is worse than stopping at the first. A
|
|
127
|
+
* Clockify refusal, or a Jira refusal about *this* row, says nothing about the next one.
|
|
128
|
+
*/
|
|
129
|
+
export const keepGoing = (outcome) => writeStopReason(outcome) === null;
|
|
130
|
+
/**
|
|
131
|
+
* One line per side saying what happened, in the words every surface should use.
|
|
132
|
+
*
|
|
133
|
+
* Here rather than in each caller so a terminal and a browser cannot describe the same write
|
|
134
|
+
* differently. Silent about a side that owed nothing — a row where only Jira was short should not
|
|
135
|
+
* report a Clockify non-event.
|
|
136
|
+
*/
|
|
137
|
+
export const writeOutcomeLines = (outcome) => {
|
|
138
|
+
const lines = [];
|
|
139
|
+
if (outcome.clockify._tag === "Written")
|
|
140
|
+
lines.push("✓ created Clockify entry");
|
|
141
|
+
if (outcome.clockify._tag === "PartiallyWritten") {
|
|
142
|
+
lines.push(`✓ created ${formatDuration(outcome.clockify.seconds)} in Clockify`);
|
|
143
|
+
lines.push(outcome.clockify.failure._tag === "NotLoggedIn"
|
|
144
|
+
? "✗ Clockify is not logged in"
|
|
145
|
+
: `✗ Clockify: ${outcome.clockify.failure.message}`);
|
|
146
|
+
}
|
|
147
|
+
if (outcome.clockify._tag === "Refused")
|
|
148
|
+
lines.push(`✗ Clockify: ${outcome.clockify.message}`);
|
|
149
|
+
// Said out loud rather than left silent: a side nobody asked for looks exactly like a side that
|
|
150
|
+
// failed quietly, and the difference is the whole point of asking.
|
|
151
|
+
if (outcome.clockify._tag === "Skipped")
|
|
152
|
+
lines.push("· Clockify not asked for");
|
|
153
|
+
if (outcome.jira._tag === "Written")
|
|
154
|
+
lines.push("✓ posted to Jira");
|
|
155
|
+
if (outcome.jira._tag === "PartiallyWritten") {
|
|
156
|
+
lines.push(`✓ posted ${formatDuration(outcome.jira.seconds)} to Jira`);
|
|
157
|
+
lines.push(outcome.jira.failure._tag === "NotLoggedIn"
|
|
158
|
+
? `✗ ${NOT_LOGGED_IN_HINT}`
|
|
159
|
+
: `✗ Jira: ${outcome.jira.failure.message}`);
|
|
160
|
+
}
|
|
161
|
+
if (outcome.jira._tag === "Refused")
|
|
162
|
+
lines.push(`✗ Jira: ${outcome.jira.message}`);
|
|
163
|
+
if (outcome.jira._tag === "Skipped")
|
|
164
|
+
lines.push("· Jira not asked for");
|
|
165
|
+
if (outcome.jira._tag === "NotLoggedIn")
|
|
166
|
+
lines.push(`✗ ${NOT_LOGGED_IN_HINT}`);
|
|
167
|
+
return lines;
|
|
168
|
+
};
|
|
169
|
+
const nothingOwed = { _tag: "NothingOwed" };
|
|
170
|
+
const skipped = { _tag: "Skipped" };
|
|
171
|
+
const unlinkedOverlap = "an unlinked Clockify entry overlaps this session block; review it before logging time";
|
|
172
|
+
/**
|
|
173
|
+
* Execute concrete per-side amounts and starts without reinterpreting their evidence.
|
|
174
|
+
*
|
|
175
|
+
* The plan's targets narrow which systems are touched. A side left out is reported as `Skipped` and its gap
|
|
176
|
+
* is left exactly as it was — so asking for Jira alone today and both tomorrow writes the Clockify
|
|
177
|
+
* half tomorrow, rather than treating the skipped side as settled.
|
|
178
|
+
*/
|
|
179
|
+
export const applyPlannedWrite = (service, plan, description, sourceRowId, expectedScopes, jiraAvailability = "verified") => Effect.gen(function* () {
|
|
180
|
+
const sourceOf = (segment, provider) => sourceRowId === undefined ? undefined : {
|
|
181
|
+
rowId: sourceRowId,
|
|
182
|
+
sourceStartMs: segment.block.sourceStartMs ?? segment.block.startMs,
|
|
183
|
+
startMs: segment.startedAt.getTime(),
|
|
184
|
+
endMs: segment.startedAt.getTime() + segment.seconds * 1000,
|
|
185
|
+
seconds: segment.seconds,
|
|
186
|
+
...(expectedScopes?.[provider] !== null && expectedScopes?.[provider] !== undefined &&
|
|
187
|
+
{ expectedScope: expectedScopes[provider] })
|
|
188
|
+
};
|
|
189
|
+
const { targets } = plan;
|
|
190
|
+
if (!targets.clockify && !targets.jira)
|
|
191
|
+
return { clockify: skipped, jira: skipped };
|
|
192
|
+
// Anchored to real activity rather than left to the service's local-noon fallback, which files a
|
|
193
|
+
// 00:17 session as a lunchtime block — wrong on its face to anyone reading the timesheet later.
|
|
194
|
+
// Per side, because the two can already hold different amounts and so start in different blocks.
|
|
195
|
+
let clockifyWrittenSeconds = 0;
|
|
196
|
+
const clockifySegments = [];
|
|
197
|
+
let clockifyFailure = targets.clockify && plan.clockify.segments.length > 0 &&
|
|
198
|
+
sourceRowId !== undefined && expectedScopes?.clockify == null
|
|
199
|
+
? missingSourceScope
|
|
200
|
+
: null;
|
|
201
|
+
if (targets.clockify && clockifyFailure === null) {
|
|
202
|
+
for (const segment of plan.clockify.segments) {
|
|
203
|
+
const result = yield* service
|
|
204
|
+
.applyToClockify(plan.ticketKey, plan.day, segment.seconds, segment.description ?? description, segment.startedAt, sourceOf(segment, "clockify"))
|
|
205
|
+
.pipe(Effect.map((created) => created ? null : "the entry was not created"), Effect.catch((error) => Effect.succeed(error.message)));
|
|
206
|
+
if (result !== null) {
|
|
207
|
+
clockifyFailure = result;
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
clockifyWrittenSeconds += segment.seconds;
|
|
211
|
+
clockifySegments.push({
|
|
212
|
+
startMs: segment.startedAt.getTime(),
|
|
213
|
+
endMs: segment.startedAt.getTime() + segment.seconds * 1000
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
if (clockifyFailure === null && plan.clockify.refusal === "unlinked-overlap") {
|
|
218
|
+
clockifyFailure = unlinkedOverlap;
|
|
219
|
+
}
|
|
220
|
+
const clockify = !targets.clockify
|
|
221
|
+
? skipped
|
|
222
|
+
: clockifyWrittenSeconds > 0 && clockifyFailure !== null
|
|
223
|
+
? {
|
|
224
|
+
_tag: "PartiallyWritten",
|
|
225
|
+
seconds: clockifyWrittenSeconds,
|
|
226
|
+
segments: clockifySegments,
|
|
227
|
+
failure: { _tag: "Refused", message: clockifyFailure }
|
|
228
|
+
}
|
|
229
|
+
: clockifyWrittenSeconds > 0
|
|
230
|
+
? { _tag: "Written", seconds: clockifyWrittenSeconds, segments: clockifySegments }
|
|
231
|
+
: plan.clockify.seconds <= 0 && clockifyFailure === null
|
|
232
|
+
? nothingOwed
|
|
233
|
+
: { _tag: "Refused", message: clockifyFailure ?? "the entry was not created" };
|
|
234
|
+
if (!targets.jira)
|
|
235
|
+
return { clockify, jira: skipped };
|
|
236
|
+
const unavailableJira = sourceRowId !== undefined && expectedScopes?.jira == null
|
|
237
|
+
? jiraAvailability === "not-logged-in"
|
|
238
|
+
? { _tag: "NotLoggedIn" }
|
|
239
|
+
: { _tag: "Refused", message: missingSourceScope }
|
|
240
|
+
: null;
|
|
241
|
+
const withheldJiraSeconds = plan.jira.withheldSeconds ?? 0;
|
|
242
|
+
if (plan.jira.seconds <= 0) {
|
|
243
|
+
return {
|
|
244
|
+
clockify,
|
|
245
|
+
jira: unavailableJira ?? (withheldJiraSeconds > 0
|
|
246
|
+
? { _tag: "Refused", message: "the remaining Jira gaps are below its one-minute minimum" }
|
|
247
|
+
: nothingOwed)
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
let jiraWrittenSeconds = 0;
|
|
251
|
+
const jiraSegments = [];
|
|
252
|
+
let jiraFailure = unavailableJira;
|
|
253
|
+
for (const segment of jiraFailure === null ? plan.jira.segments : []) {
|
|
254
|
+
const posted = yield* service.applyToJira(plan.ticketKey, plan.day, segment.seconds, segment.description ?? description, segment.startedAt, sourceOf(segment, "jira"));
|
|
255
|
+
if (posted._tag !== "Posted") {
|
|
256
|
+
jiraFailure = posted._tag === "NotLoggedIn"
|
|
257
|
+
? { _tag: "NotLoggedIn" }
|
|
258
|
+
: posted._tag === "VerificationUnavailable"
|
|
259
|
+
? { _tag: "Refused", message: missingSourceScope }
|
|
260
|
+
: { _tag: "Refused", message: posted.message };
|
|
261
|
+
break;
|
|
262
|
+
}
|
|
263
|
+
jiraWrittenSeconds += segment.seconds;
|
|
264
|
+
jiraSegments.push({
|
|
265
|
+
startMs: segment.startedAt.getTime(),
|
|
266
|
+
endMs: segment.startedAt.getTime() + segment.seconds * 1000
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
if (jiraFailure === null && withheldJiraSeconds > 0) {
|
|
270
|
+
jiraFailure = { _tag: "Refused", message: "the remaining Jira gaps are below its one-minute minimum" };
|
|
271
|
+
}
|
|
272
|
+
const jira = jiraWrittenSeconds > 0 && jiraFailure !== null
|
|
273
|
+
? { _tag: "PartiallyWritten", seconds: jiraWrittenSeconds, segments: jiraSegments, failure: jiraFailure }
|
|
274
|
+
: jiraWrittenSeconds > 0
|
|
275
|
+
? { _tag: "Written", seconds: jiraWrittenSeconds, segments: jiraSegments }
|
|
276
|
+
: jiraFailure ?? { _tag: "Refused", message: "the worklog was not created" };
|
|
277
|
+
return { clockify, jira };
|
|
278
|
+
});
|
|
279
|
+
/** Execute CLI/watch proposals while preserving exact corrected-ticket source consumption. */
|
|
280
|
+
export const applyProposal = (service, proposal, description, sourceScopes, targets = bothTargets, jiraAvailability = "verified") => {
|
|
281
|
+
const prepared = prepareProposal({
|
|
282
|
+
evidence: {
|
|
283
|
+
blocks: proposal.blocks,
|
|
284
|
+
credited: proposal.sessionSeconds,
|
|
285
|
+
ticketKey: proposal.ticketKey,
|
|
286
|
+
day: proposal.day
|
|
287
|
+
},
|
|
288
|
+
request: {},
|
|
289
|
+
targets,
|
|
290
|
+
consumed: (block, source) => {
|
|
291
|
+
const corrected = source === "clockify"
|
|
292
|
+
? block.clockifyConsumedSeconds ?? 0
|
|
293
|
+
: block.jiraConsumedSeconds ?? 0;
|
|
294
|
+
const ordinary = SourceConsumption.recordedSecondsInBlock(block, proposal.recordedIntervals ?? [], source);
|
|
295
|
+
return Math.min(block.seconds, ordinary + corrected);
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
if (prepared._tag !== "Prepared") {
|
|
299
|
+
return applyPlannedWrite(service, {
|
|
300
|
+
_tag: "Write",
|
|
301
|
+
ticketKey: proposal.ticketKey,
|
|
302
|
+
day: proposal.day,
|
|
303
|
+
targets,
|
|
304
|
+
clockify: { seconds: 0, segments: [], startedAt: undefined },
|
|
305
|
+
jira: { seconds: 0, segments: [], startedAt: undefined }
|
|
306
|
+
}, description, `${proposal.day}:${proposal.ticketKey}`, sourceScopes, jiraAvailability);
|
|
307
|
+
}
|
|
308
|
+
const planned = prepared.plan([{
|
|
309
|
+
ticketKey: proposal.ticketKey,
|
|
310
|
+
day: proposal.day,
|
|
311
|
+
clockifySeconds: proposal.clockifySeconds,
|
|
312
|
+
jiraSeconds: proposal.jiraSeconds,
|
|
313
|
+
intervals: proposal.recordedIntervals ?? []
|
|
314
|
+
}]);
|
|
315
|
+
if (planned._tag === "Write") {
|
|
316
|
+
const cap = (side, requested, minimumSegmentSeconds = 0) => {
|
|
317
|
+
let remaining = requested;
|
|
318
|
+
const segments = side.segments.flatMap((segment) => {
|
|
319
|
+
const seconds = Math.min(segment.seconds, remaining);
|
|
320
|
+
if (seconds < minimumSegmentSeconds)
|
|
321
|
+
return [];
|
|
322
|
+
remaining -= seconds;
|
|
323
|
+
return seconds <= 0 ? [] : [{ ...segment, seconds }];
|
|
324
|
+
});
|
|
325
|
+
const seconds = segments.reduce((sum, segment) => sum + segment.seconds, 0);
|
|
326
|
+
return {
|
|
327
|
+
seconds,
|
|
328
|
+
withheldSeconds: Math.max(0, requested - seconds),
|
|
329
|
+
...(side.refusal !== undefined && { refusal: side.refusal }),
|
|
330
|
+
segments,
|
|
331
|
+
startedAt: segments[0]?.startedAt
|
|
332
|
+
};
|
|
333
|
+
};
|
|
334
|
+
const sourceMarked = (side) => ({
|
|
335
|
+
...side,
|
|
336
|
+
segments: side.segments.map((segment) => ({
|
|
337
|
+
...segment,
|
|
338
|
+
description: `${description}\n${SourceConsumption.marker(`${proposal.day}:${proposal.ticketKey}`, segment.block.sourceStartMs ?? segment.block.startMs)}`
|
|
339
|
+
}))
|
|
340
|
+
});
|
|
341
|
+
return applyPlannedWrite(service, {
|
|
342
|
+
...planned,
|
|
343
|
+
clockify: sourceMarked(cap(planned.clockify, proposal.clockifyDelta)),
|
|
344
|
+
jira: sourceMarked(cap(planned.jira, proposal.jiraDelta, MINIMUM_WRITE_SECONDS))
|
|
345
|
+
}, description, `${proposal.day}:${proposal.ticketKey}`, sourceScopes, jiraAvailability);
|
|
346
|
+
}
|
|
347
|
+
const belowMinimum = planned._tag === "BelowMinimum";
|
|
348
|
+
return applyPlannedWrite(service, {
|
|
349
|
+
_tag: "Write",
|
|
350
|
+
ticketKey: proposal.ticketKey,
|
|
351
|
+
day: proposal.day,
|
|
352
|
+
targets,
|
|
353
|
+
clockify: { seconds: 0, segments: [], startedAt: undefined },
|
|
354
|
+
jira: {
|
|
355
|
+
seconds: 0,
|
|
356
|
+
withheldSeconds: belowMinimum ? proposal.jiraDelta : 0,
|
|
357
|
+
segments: [],
|
|
358
|
+
startedAt: undefined
|
|
359
|
+
}
|
|
360
|
+
}, description, `${proposal.day}:${proposal.ticketKey}`, sourceScopes, jiraAvailability);
|
|
361
|
+
};
|
|
362
|
+
//# sourceMappingURL=agentWrite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentWrite.js","sourceRoot":"","sources":["../../../src/cli/agentWrite.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { JiraAuth } from "@knpkv/jira-cli/JiraAuth";
|
|
2
|
+
import { Command, Prompt } from "effect/cli";
|
|
3
|
+
import * as HttpClient from "effect/http/HttpClient";
|
|
4
|
+
import { ClockifyAuth } from "../services/ClockifyAuth.js";
|
|
5
|
+
export declare const clockifySetup: Command.Command<"setup", {}, {}, never, ClockifyAuth | HttpClient.HttpClient | Prompt.Environment>;
|
|
6
|
+
/** Top-level `auth` command with jira/clockify/status subcommands. */
|
|
7
|
+
export declare const auth: Command.Command<"auth", {} | {}, {}, import("@knpkv/atlassian-common/config").FileSystemError | import("@knpkv/atlassian-common/config").HomeDirectoryError | import("effect/PlatformError").PlatformError | import("effect/Terminal").QuitError, import("effect/process/ChildProcessSpawner").ChildProcessSpawner | ClockifyAuth | HttpClient.HttpClient | JiraAuth | Prompt.Environment>;
|
|
8
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/cli/auth.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,OAAO,EAAE,OAAO,EAAmB,MAAM,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AA0I1D,eAAO,MAAM,aAAa,oGAwEzB,CAAA;AAgED,sEAAsE;AACtE,eAAO,MAAM,IAAI,4XAEhB,CAAA"}
|
package/dist/src/cli/auth.js
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
import { make as makeClockifyApi } from "@knpkv/clockify-api-client";
|
|
7
7
|
import { JiraAuth } from "@knpkv/jira-cli/JiraAuth";
|
|
8
8
|
import { Console, Data, Effect, Option, Predicate, Redacted, Schema } from "effect";
|
|
9
|
-
import { Command, Flag as Options, Prompt } from "effect/
|
|
10
|
-
import * as HttpClient from "effect/
|
|
11
|
-
import * as ChildProcess from "effect/
|
|
9
|
+
import { Command, Flag as Options, Prompt } from "effect/cli";
|
|
10
|
+
import * as HttpClient from "effect/http/HttpClient";
|
|
11
|
+
import * as ChildProcess from "effect/process/ChildProcess";
|
|
12
12
|
import { ClockifyAuth } from "../services/ClockifyAuth.js";
|
|
13
13
|
class InvalidClockifyApiKeyError extends Data.TaggedError("InvalidClockifyApiKeyError") {
|
|
14
14
|
get message() {
|
|
@@ -51,20 +51,20 @@ Create OAuth app in Atlassian Developer Console:
|
|
|
51
51
|
yield* exitCode(ChildProcess.make("open", [url])).pipe(Effect.catch(() => exitCode(ChildProcess.make("xdg-open", [url]))), Effect.catch(() => exitCode(ChildProcess.make("rundll32.exe", ["url.dll,FileProtocolHandler", url]))), Effect.asVoid, Effect.catch(() => Effect.void));
|
|
52
52
|
}));
|
|
53
53
|
const jiraConfigure = Command.make("configure", {
|
|
54
|
-
clientId: Options.
|
|
55
|
-
clientSecret: Options.
|
|
54
|
+
clientId: Options.String("client-id").pipe(Options.withDescription("OAuth client ID"), Options.optional),
|
|
55
|
+
clientSecret: Options.String("client-secret").pipe(Options.withDescription("OAuth client secret"), Options.optional)
|
|
56
56
|
}, ({ clientId, clientSecret }) => Effect.gen(function* () {
|
|
57
57
|
const auth = yield* JiraAuth;
|
|
58
58
|
const id = Option.isSome(clientId)
|
|
59
59
|
? clientId.value
|
|
60
|
-
: yield* Prompt.
|
|
60
|
+
: yield* Prompt.String({ message: "Enter OAuth client ID:" });
|
|
61
61
|
const secret = Option.isSome(clientSecret)
|
|
62
62
|
? clientSecret.value
|
|
63
|
-
: yield* Prompt.
|
|
63
|
+
: yield* Prompt.String({ message: "Enter OAuth client secret:" });
|
|
64
64
|
yield* auth.configure({ clientId: id, clientSecret: secret });
|
|
65
65
|
yield* Console.log("OAuth configured. Run: jcf auth jira login");
|
|
66
66
|
}));
|
|
67
|
-
const jiraLogin = Command.make("login", { site: Options.
|
|
67
|
+
const jiraLogin = Command.make("login", { site: Options.String("site").pipe(Options.withDescription("Jira site URL"), Options.optional) }, ({ site }) => Effect.gen(function* () {
|
|
68
68
|
const auth = yield* JiraAuth;
|
|
69
69
|
const result = yield* auth.login(Option.isSome(site) ? { siteUrl: site.value } : undefined);
|
|
70
70
|
if (Array.isArray(result) && result.length > 0) {
|
|
@@ -97,7 +97,7 @@ export const clockifySetup = Command.make("setup", {}, () => Effect.gen(function
|
|
|
97
97
|
yield* Console.log("Clockify API Key Setup");
|
|
98
98
|
yield* Console.log("Get your API key from: https://app.clockify.me/manage-api-keys");
|
|
99
99
|
yield* Console.log("");
|
|
100
|
-
const apiKey = yield* Prompt.
|
|
100
|
+
const apiKey = yield* Prompt.String({ message: "Enter API key:" });
|
|
101
101
|
if (!apiKey) {
|
|
102
102
|
yield* Console.log("No API key provided, aborting.");
|
|
103
103
|
return;
|
|
@@ -125,7 +125,7 @@ export const clockifySetup = Command.make("setup", {}, () => Effect.gen(function
|
|
|
125
125
|
}
|
|
126
126
|
let selectedIdx = 0;
|
|
127
127
|
if (workspaces.length > 1) {
|
|
128
|
-
const choice = yield* Prompt.
|
|
128
|
+
const choice = yield* Prompt.String({ message: `Select workspace (1-${workspaces.length}):` });
|
|
129
129
|
selectedIdx = Math.max(0, Math.min(workspaces.length - 1, parseInt(choice, 10) - 1));
|
|
130
130
|
}
|
|
131
131
|
const workspace = workspaces[selectedIdx];
|
package/dist/src/cli/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** One Issue Key's credited spans on the day being drawn. */
|
|
2
|
+
export interface CalendarRow {
|
|
3
|
+
readonly ticketKey: string;
|
|
4
|
+
readonly spans: ReadonlyArray<{
|
|
5
|
+
readonly startMs: number;
|
|
6
|
+
readonly endMs: number;
|
|
7
|
+
}>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Draw one day. Returns the lines to print, or an empty array when the day has no credited time
|
|
11
|
+
* at all — a caller can then say "nothing" in its own words rather than print an empty grid.
|
|
12
|
+
*/
|
|
13
|
+
export declare const renderDayCalendar: (options: {
|
|
14
|
+
readonly day: string;
|
|
15
|
+
readonly rows: ReadonlyArray<CalendarRow>;
|
|
16
|
+
}) => ReadonlyArray<string>;
|
|
17
|
+
/**
|
|
18
|
+
* The outer bounds of a set of spans: when the work item started and when it finished.
|
|
19
|
+
*
|
|
20
|
+
* This is the pair a timesheet actually asks for. It is deliberately *not* the credited duration —
|
|
21
|
+
* the gaps inside it were not worked, and on a shared day part of it belongs to another Issue Key.
|
|
22
|
+
*/
|
|
23
|
+
export declare const formatSpanBounds: (spans: ReadonlyArray<{
|
|
24
|
+
readonly startMs: number;
|
|
25
|
+
readonly endMs: number;
|
|
26
|
+
}>) => string;
|
|
27
|
+
/** The earliest instant in a set of spans, for anchoring a write to when work began. */
|
|
28
|
+
export declare const earliestStart: (spans: ReadonlyArray<{
|
|
29
|
+
readonly startMs: number;
|
|
30
|
+
readonly endMs: number;
|
|
31
|
+
}>) => Date | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* `HH:MM-HH:MM` for each span, so the row above the grid says *when* in words. Long lists are
|
|
34
|
+
* clipped with a count rather than wrapped, because the total is already on the row.
|
|
35
|
+
*/
|
|
36
|
+
export declare const formatSpanRanges: (spans: ReadonlyArray<{
|
|
37
|
+
readonly startMs: number;
|
|
38
|
+
readonly endMs: number;
|
|
39
|
+
}>, options?: {
|
|
40
|
+
readonly limit?: number | undefined;
|
|
41
|
+
}) => string;
|
|
42
|
+
//# sourceMappingURL=calendar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../src/cli/calendar.ts"],"names":[],"mappings":"AAqBA,6DAA6D;AAC7D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpF;AA4ED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,YAAa;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;CAC1C,KAAG,aAAa,CAAC,MAAM,CA0EvB,CAAA;AAQD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,UACpB,aAAa,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,KACzE,MAKF,CAAA;AAED,wFAAwF;AACxF,eAAO,MAAM,aAAa,UACjB,aAAa,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,KACzE,IAAI,GAAG,SAGkF,CAAA;AAE5F;;;GAGG;AACH,eAAO,MAAM,gBAAgB,UACpB,aAAa,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,YAChE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,KAChD,MAKF,CAAA"}
|