@knpkv/jira-clockify 1.4.0 → 1.5.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 +72 -18
- 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/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 +39 -2
- package/dist/src/cli/auth.d.ts.map +1 -1
- package/dist/src/cli/auth.js +29 -5
- package/dist/src/cli/auth.js.map +1 -1
- package/dist/src/cli/config.d.ts +2 -2
- package/dist/src/cli/config.d.ts.map +1 -1
- package/dist/src/cli/config.js +34 -6
- package/dist/src/cli/config.js.map +1 -1
- package/dist/src/cli/layers.d.ts.map +1 -1
- package/dist/src/cli/layers.js +2 -2
- package/dist/src/cli/layers.js.map +1 -1
- package/dist/src/cli/reconcile.d.ts +6 -0
- package/dist/src/cli/reconcile.d.ts.map +1 -1
- package/dist/src/cli/reconcile.js +2 -0
- package/dist/src/cli/reconcile.js.map +1 -1
- package/dist/src/cli/setup.d.ts +1 -1
- package/dist/src/cli/setup.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 +2 -0
- package/dist/src/services/ConfigService.d.ts.map +1 -1
- package/dist/src/services/ConfigService.js +4 -1
- package/dist/src/services/ConfigService.js.map +1 -1
- 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 +81 -0
- package/dist/src/services/ProviderSnapshots.js.map +1 -0
- package/dist/src/services/ReconcileService.d.ts +11 -3
- package/dist/src/services/ReconcileService.d.ts.map +1 -1
- package/dist/src/services/ReconcileService.js +212 -109
- 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/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 +11 -0
- package/dist/src/testing/fakeHeadless.d.ts.map +1 -1
- package/dist/src/testing/fakeHeadless.js +66 -3
- package/dist/src/testing/fakeHeadless.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
|
@@ -1,7 +1,8 @@
|
|
|
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";
|
|
7
8
|
const TextPart = Schema.Struct({ type: Schema.String, text: Schema.optional(Schema.String) });
|
|
@@ -22,6 +23,19 @@ const UserEvent = Schema.Union([
|
|
|
22
23
|
})
|
|
23
24
|
})
|
|
24
25
|
]);
|
|
26
|
+
/** Any other completed item is the agent working inside the current turn. */
|
|
27
|
+
const WorkEvent = Schema.Struct({
|
|
28
|
+
type: Schema.Literal("item_completed"),
|
|
29
|
+
item: Schema.Struct({ type: Schema.String })
|
|
30
|
+
});
|
|
31
|
+
/**
|
|
32
|
+
* Any other response item — tool calls and their output, reasoning — is the agent working. Older
|
|
33
|
+
* rollouts carry no `item_completed` events, so these are their only evidence that a supervised turn
|
|
34
|
+
* is still running. User- and developer-role messages are copies of prompts or injected instructions:
|
|
35
|
+
* context, never work. No text is kept from any of them.
|
|
36
|
+
*/
|
|
37
|
+
const WorkItem = Schema.Struct({ type: Schema.String, role: Schema.optional(Schema.String) });
|
|
38
|
+
const TurnEndEvent = Schema.Struct({ type: Schema.Literals(["task_complete", "turn_aborted"]) });
|
|
25
39
|
const CodexLine = Schema.Union([
|
|
26
40
|
Schema.Struct({
|
|
27
41
|
type: Schema.Literal("session_meta"),
|
|
@@ -38,8 +52,14 @@ const CodexLine = Schema.Union([
|
|
|
38
52
|
payload: Schema.Struct({ cwd: Schema.String })
|
|
39
53
|
}),
|
|
40
54
|
Schema.Struct({ type: Schema.Literal("event_msg"), timestamp: Schema.String, payload: UserEvent }),
|
|
41
|
-
Schema.Struct({ type: Schema.Literal("
|
|
55
|
+
Schema.Struct({ type: Schema.Literal("event_msg"), timestamp: Schema.String, payload: WorkEvent }),
|
|
56
|
+
Schema.Struct({ type: Schema.Literal("event_msg"), timestamp: Schema.String, payload: TurnEndEvent }),
|
|
57
|
+
Schema.Struct({ type: Schema.Literal("response_item"), timestamp: Schema.String, payload: Message }),
|
|
58
|
+
Schema.Struct({ type: Schema.Literal("response_item"), timestamp: Schema.String, payload: WorkItem })
|
|
42
59
|
]);
|
|
60
|
+
const isTurnEnd = Schema.is(TurnEndEvent);
|
|
61
|
+
const isAssistantMessage = Schema.is(Message);
|
|
62
|
+
const isUserEvent = Schema.is(UserEvent);
|
|
43
63
|
/** Discard tool payloads and malformed lines before retaining a rollout in memory. */
|
|
44
64
|
export const decodeCodexLine = Schema.decodeUnknownOption(Schema.fromJsonString(CodexLine));
|
|
45
65
|
/** The shared transcript segmenter handles time windows, branch changes and directory isolation. */
|
|
@@ -60,37 +80,53 @@ export function* codexTranscriptLines(lines) {
|
|
|
60
80
|
}
|
|
61
81
|
if (sessionId === null || cwd === null)
|
|
62
82
|
continue;
|
|
83
|
+
const base = { sessionId, gitBranch };
|
|
63
84
|
if (line.type === "turn_context") {
|
|
64
85
|
// A branch recorded for the old directory cannot place work in the new one.
|
|
65
86
|
if (cwd !== line.payload.cwd)
|
|
66
87
|
gitBranch = null;
|
|
67
88
|
cwd = line.payload.cwd;
|
|
68
|
-
yield {
|
|
89
|
+
yield { ...base, gitBranch, cwd, atMs: Date.parse(line.timestamp), text: "", presence: "context" };
|
|
69
90
|
continue;
|
|
70
91
|
}
|
|
71
92
|
if (line.type === "response_item") {
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
93
|
+
const payload = line.payload;
|
|
94
|
+
const atMs = Date.parse(line.timestamp);
|
|
95
|
+
if (isAssistantMessage(payload)) {
|
|
96
|
+
const text = payload.content.filter((part) => part.type === "output_text").map((part) => part.text ?? "")
|
|
97
|
+
.join("\n");
|
|
98
|
+
yield { ...base, cwd, atMs, text, presence: "work" };
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
const copy = payload.type === "message" && payload.role !== "assistant";
|
|
102
|
+
yield { ...base, cwd, atMs, text: "", presence: copy ? "context" : "work" };
|
|
103
|
+
}
|
|
75
104
|
continue;
|
|
76
105
|
}
|
|
77
106
|
const event = line.payload;
|
|
78
|
-
|
|
107
|
+
if (isTurnEnd(event)) {
|
|
108
|
+
yield { ...base, cwd, atMs: Date.parse(line.timestamp), text: "", presence: "turn-end" };
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
if (!isUserEvent(event)) {
|
|
112
|
+
yield { ...base, cwd, atMs: Date.parse(line.timestamp), text: "", presence: "work" };
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
const text = event.type === "user_message"
|
|
79
116
|
? event.message
|
|
80
117
|
: event.item.content.filter((part) => part.type === "text").map((part) => part.text ?? "").join("\n");
|
|
81
118
|
const atMs = event.type === "item_completed"
|
|
82
119
|
? event.started_at_ms ?? Date.parse(line.timestamp)
|
|
83
120
|
: Date.parse(line.timestamp);
|
|
84
|
-
|
|
85
|
-
if (Number.isNaN(instant.getTime()))
|
|
121
|
+
if (Number.isNaN(new Date(atMs).getTime()))
|
|
86
122
|
continue;
|
|
87
123
|
const identity = event.type === "item_completed" && event.item.id !== undefined
|
|
88
124
|
? event.item.id
|
|
89
|
-
: `${String(atMs)}:${
|
|
125
|
+
: `${String(atMs)}:${text}`;
|
|
90
126
|
if (seen.has(identity))
|
|
91
127
|
continue;
|
|
92
128
|
seen.add(identity);
|
|
93
|
-
yield {
|
|
129
|
+
yield { ...base, cwd, atMs, text, presence: "prompt" };
|
|
94
130
|
}
|
|
95
131
|
}
|
|
96
132
|
//# sourceMappingURL=CodexTranscript.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodexTranscript.js","sourceRoot":"","sources":["../../../src/services/CodexTranscript.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"CodexTranscript.js","sourceRoot":"","sources":["../../../src/services/CodexTranscript.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,6 +76,8 @@ export interface JcfConfig {
|
|
|
76
76
|
* ticket, and answering it once should not have to be answered again next week.
|
|
77
77
|
*/
|
|
78
78
|
readonly sessionOwnershipOverrides: ReadonlyArray<string>;
|
|
79
|
+
/** Globally excluded session tickets. Overlapping eligible sessions absorb their time; solo time is only reported. */
|
|
80
|
+
readonly sessionIgnoredTickets: ReadonlyArray<string>;
|
|
79
81
|
}
|
|
80
82
|
/** The values every unset field falls back to, and what `jcf config reset` restores. */
|
|
81
83
|
export declare const defaultJcfConfig: JcfConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigService.d.ts","sourceRoot":"","sources":["../../../src/services/ConfigService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AAGnC,OAAO,EAA+B,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAE7F,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,MAAM,WAAW,SAAS;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAA;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;IACjC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjD;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAA;IACtC;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAA;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,gBAAgB,EAAE,UAAU,GAAG,KAAK,CAAA;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,yBAAyB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"ConfigService.d.ts","sourceRoot":"","sources":["../../../src/services/ConfigService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AAGnC,OAAO,EAA+B,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAE7F,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,MAAM,WAAW,SAAS;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAA;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IACxC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;IACjC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjD;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAA;IACtC;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAA;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;IACpC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,gBAAgB,EAAE,UAAU,GAAG,KAAK,CAAA;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,yBAAyB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACzD,sHAAsH;IACtH,QAAQ,CAAC,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACtD;AAED,wFAAwF;AACxF,eAAO,MAAM,gBAAgB,EAAE,SAiB9B,CAAA;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACtC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;CAC1C;;AAED,qBAAa,aAAc,SAAQ,kBAA4E;CAAG;AAkDlH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,YAAa,MAAM,KAAG,OAAO,CAAC,SAAS,CAuCnE,CAAA;AAED,eAAO,MAAM,KAAK,sFAyCjB,CAAA"}
|
|
@@ -36,7 +36,8 @@ export const defaultJcfConfig = {
|
|
|
36
36
|
sessionConfidenceFloor: 0.7,
|
|
37
37
|
sessionDwellSeconds: 900,
|
|
38
38
|
sessionOwnership: "assigned",
|
|
39
|
-
sessionOwnershipOverrides: []
|
|
39
|
+
sessionOwnershipOverrides: [],
|
|
40
|
+
sessionIgnoredTickets: []
|
|
40
41
|
};
|
|
41
42
|
export class ConfigService extends Context.Service()("jcf/ConfigService") {
|
|
42
43
|
}
|
|
@@ -109,10 +110,12 @@ export const parseConfigPatch = (content) => {
|
|
|
109
110
|
? parsed.sessionOwnership
|
|
110
111
|
: undefined;
|
|
111
112
|
const sessionOwnershipOverrides = stringArray(parsed.sessionOwnershipOverrides)?.filter(isTicketKey);
|
|
113
|
+
const sessionIgnoredTickets = stringArray(parsed.sessionIgnoredTickets)?.filter(isTicketKey);
|
|
112
114
|
return {
|
|
113
115
|
...((sessionAgent !== undefined) && { sessionAgent }),
|
|
114
116
|
...((sessionOwnership !== undefined) && { sessionOwnership }),
|
|
115
117
|
...((sessionOwnershipOverrides !== undefined) && { sessionOwnershipOverrides }),
|
|
118
|
+
...((sessionIgnoredTickets !== undefined) && { sessionIgnoredTickets }),
|
|
116
119
|
...((sessionRoots !== undefined) && { sessionRoots }),
|
|
117
120
|
...((sessionTicketMap !== undefined) && { sessionTicketMap }),
|
|
118
121
|
...((sessionIdleCapSeconds !== undefined) && { sessionIdleCapSeconds }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigService.js","sourceRoot":"","sources":["../../../src/services/ConfigService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"ConfigService.js","sourceRoot":"","sources":["../../../src/services/ConfigService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/** Private provider coordinates and pinned authenticated clients; never serialize these snapshots. */
|
|
2
|
+
import { type AuthenticatedClockifyApi, type ClockifyApiConfigContract } from "@knpkv/clockify-api-client";
|
|
3
|
+
import { make as makeJiraApi } from "@knpkv/jira-api-client";
|
|
4
|
+
import { JiraAuth } from "@knpkv/jira-cli/JiraAuth";
|
|
5
|
+
import { Effect, Schema } from "effect";
|
|
6
|
+
import * as HttpClient from "effect/http/HttpClient";
|
|
7
|
+
import { ClockifyAuth } from "./ClockifyAuth.js";
|
|
8
|
+
declare const ProviderSnapshotError_base: Schema.Class<ProviderSnapshotError, Schema.TaggedStruct<"ProviderSnapshotError", {
|
|
9
|
+
readonly message: Schema.String;
|
|
10
|
+
readonly cause: Schema.optionalKey<Schema.Defect>;
|
|
11
|
+
}>, import("effect/Cause").YieldableError>;
|
|
12
|
+
export declare class ProviderSnapshotError extends ProviderSnapshotError_base {
|
|
13
|
+
}
|
|
14
|
+
export interface ClockifyWriteSnapshot {
|
|
15
|
+
readonly auth: ClockifyApiConfigContract;
|
|
16
|
+
readonly client: AuthenticatedClockifyApi;
|
|
17
|
+
readonly scope: string;
|
|
18
|
+
readonly legacyScope: string;
|
|
19
|
+
}
|
|
20
|
+
export interface JiraWriteSnapshot {
|
|
21
|
+
readonly client: ReturnType<typeof makeJiraApi>;
|
|
22
|
+
readonly ledgerScope: string;
|
|
23
|
+
readonly heldScope: string;
|
|
24
|
+
readonly accountId: string;
|
|
25
|
+
readonly cloudId: string;
|
|
26
|
+
readonly siteUrl: string;
|
|
27
|
+
}
|
|
28
|
+
export type JiraWriteState = {
|
|
29
|
+
readonly availability: "verified";
|
|
30
|
+
readonly snapshot: JiraWriteSnapshot;
|
|
31
|
+
} | {
|
|
32
|
+
readonly availability: "not-logged-in" | "unverified";
|
|
33
|
+
readonly snapshot: null;
|
|
34
|
+
};
|
|
35
|
+
/** Bind all reads and mutations in an operation to one verified credential and selected provider endpoint. */
|
|
36
|
+
export declare const make: Effect.Effect<{
|
|
37
|
+
clockify: Effect.Effect<ClockifyWriteSnapshot, ProviderSnapshotError, never>;
|
|
38
|
+
jira: Effect.Effect<JiraWriteState, never, never>;
|
|
39
|
+
}, never, ClockifyAuth | HttpClient.HttpClient | JiraAuth>;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=ProviderSnapshots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderSnapshots.d.ts","sourceRoot":"","sources":["../../../src/services/ProviderSnapshots.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAE/B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,MAAM,EAAY,MAAM,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;;;;;AAEhD,qBAAa,qBAAsB,SAAQ,0BAGzC;CAAG;AAEL,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAA;IACxC,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAA;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;CAAE,GAC3E;IAAE,QAAQ,CAAC,YAAY,EAAE,eAAe,GAAG,YAAY,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CAAA;AAEtF,8GAA8G;AAC9G,eAAO,MAAM,IAAI;;;0DAuEf,CAAA"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/** Private provider coordinates and pinned authenticated clients; never serialize these snapshots. */
|
|
2
|
+
import { make as makeClockifyApi } from "@knpkv/clockify-api-client";
|
|
3
|
+
import { make as makeJiraApi } from "@knpkv/jira-api-client";
|
|
4
|
+
import { JiraAuth } from "@knpkv/jira-cli/JiraAuth";
|
|
5
|
+
import { Effect, Redacted, Schema } from "effect";
|
|
6
|
+
import * as HttpClient from "effect/http/HttpClient";
|
|
7
|
+
import { ClockifyAuth } from "./ClockifyAuth.js";
|
|
8
|
+
export class ProviderSnapshotError extends Schema.TaggedError()("ProviderSnapshotError", {
|
|
9
|
+
message: Schema.String,
|
|
10
|
+
cause: Schema.optionalKey(Schema.Defect())
|
|
11
|
+
}) {
|
|
12
|
+
}
|
|
13
|
+
/** Bind all reads and mutations in an operation to one verified credential and selected provider endpoint. */
|
|
14
|
+
export const make = Effect.gen(function* () {
|
|
15
|
+
const clockifyAuth = yield* ClockifyAuth;
|
|
16
|
+
const jiraAuth = yield* JiraAuth;
|
|
17
|
+
const httpClient = yield* HttpClient.HttpClient;
|
|
18
|
+
/** One decoded credential and endpoint back every Clockify read and write in this operation. */
|
|
19
|
+
const clockifyWriteSnapshot = Effect.gen(function* () {
|
|
20
|
+
const auth = yield* clockifyAuth.getConfig.pipe(Effect.mapError((cause) => new ProviderSnapshotError({ message: cause.message, cause })));
|
|
21
|
+
const endpoint = yield* Effect.try({
|
|
22
|
+
try: () => new URL(auth.baseUrl),
|
|
23
|
+
catch: (cause) => new ProviderSnapshotError({ message: "Configured Clockify endpoint is invalid", cause })
|
|
24
|
+
});
|
|
25
|
+
if (!["https:", "http:"].includes(endpoint.protocol) || endpoint.username !== "" ||
|
|
26
|
+
endpoint.password !== "" || endpoint.search !== "" || endpoint.hash !== "")
|
|
27
|
+
return yield* new ProviderSnapshotError({ message: "Configured Clockify endpoint is invalid" });
|
|
28
|
+
const canonicalEndpoint = `${endpoint.origin}${endpoint.pathname.replace(/\/+$/u, "")}`;
|
|
29
|
+
const pinnedAuth = { ...auth, baseUrl: canonicalEndpoint };
|
|
30
|
+
const client = makeClockifyApi(httpClient, pinnedAuth);
|
|
31
|
+
const user = yield* client.getLoggedUser(undefined).pipe(Effect.mapError((cause) => new ProviderSnapshotError({ message: "Cannot verify the Clockify account", cause })));
|
|
32
|
+
if (user.id === "" || auth.userId !== user.id || auth.workspaceId === "" || auth.baseUrl === "") {
|
|
33
|
+
return yield* new ProviderSnapshotError({ message: "Configured Clockify account does not match the credential" });
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
auth: pinnedAuth,
|
|
37
|
+
client,
|
|
38
|
+
scope: JSON.stringify(["clockify-v3", canonicalEndpoint, auth.workspaceId, user.id]),
|
|
39
|
+
legacyScope: JSON.stringify([auth.workspaceId, user.id])
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
/** Bind verification and worklog POST to one OAuth credential and selected site. */
|
|
43
|
+
const jiraWriteState = Effect.gen(function* () {
|
|
44
|
+
const login = yield* Effect.result(jiraAuth.isLoggedIn());
|
|
45
|
+
if (login._tag === "Failure")
|
|
46
|
+
return { availability: "unverified", snapshot: null };
|
|
47
|
+
if (!login.success)
|
|
48
|
+
return { availability: "not-logged-in", snapshot: null };
|
|
49
|
+
const tokenResult = yield* Effect.result(jiraAuth.getAccessToken());
|
|
50
|
+
const profileResult = yield* Effect.result(jiraAuth.getActiveProfile());
|
|
51
|
+
if (tokenResult._tag === "Failure" || profileResult._tag === "Failure") {
|
|
52
|
+
return { availability: "unverified", snapshot: null };
|
|
53
|
+
}
|
|
54
|
+
const token = tokenResult.success;
|
|
55
|
+
const profile = profileResult.success;
|
|
56
|
+
if (profile === null || profile.token.cloud_id === "" || profile.token.site_url === "" ||
|
|
57
|
+
profile.token.access_token !== Redacted.value(token))
|
|
58
|
+
return { availability: "unverified", snapshot: null };
|
|
59
|
+
const client = makeJiraApi(httpClient, {
|
|
60
|
+
baseUrl: "",
|
|
61
|
+
auth: { type: "oauth2", accessToken: token, cloudId: profile.token.cloud_id }
|
|
62
|
+
});
|
|
63
|
+
const live = yield* client.getCurrentUser({}).pipe(Effect.orElseSucceed(() => null));
|
|
64
|
+
if (live?.accountId === undefined || live.accountId === "") {
|
|
65
|
+
return { availability: "unverified", snapshot: null };
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
availability: "verified",
|
|
69
|
+
snapshot: {
|
|
70
|
+
client,
|
|
71
|
+
ledgerScope: JSON.stringify([profile.token.cloud_id, live.accountId]),
|
|
72
|
+
heldScope: JSON.stringify([profile.token.cloud_id, profile.token.site_url, live.accountId]),
|
|
73
|
+
accountId: live.accountId,
|
|
74
|
+
cloudId: profile.token.cloud_id,
|
|
75
|
+
siteUrl: profile.token.site_url
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
});
|
|
79
|
+
return { clockify: clockifyWriteSnapshot, jira: jiraWriteState };
|
|
80
|
+
});
|
|
81
|
+
//# sourceMappingURL=ProviderSnapshots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderSnapshots.js","sourceRoot":"","sources":["../../../src/services/ProviderSnapshots.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,12 @@ import { JiraAuth } from "@knpkv/jira-cli/JiraAuth";
|
|
|
3
3
|
import * as Context from "effect/Context";
|
|
4
4
|
import * as Effect from "effect/Effect";
|
|
5
5
|
import * as FileSystem from "effect/FileSystem";
|
|
6
|
-
import * as HttpClient from "effect/http/HttpClient";
|
|
7
6
|
import * as Layer from "effect/Layer";
|
|
8
7
|
import * as Path from "effect/Path";
|
|
9
8
|
import { type ReconcileSides, type SessionProposal, type TicketDayCredit, type UnattributedDayCredit } from "../agent/sessions.js";
|
|
10
9
|
import * as SourceConsumption from "../agent/sourceConsumption.js";
|
|
11
10
|
import { localDay } from "../utils/time.js";
|
|
12
11
|
import { AgentSessionReader } from "./AgentSessionReader.js";
|
|
13
|
-
import { ClockifyAuth } from "./ClockifyAuth.js";
|
|
14
12
|
import { ConfigService } from "./ConfigService.js";
|
|
15
13
|
import { HomeDirectory } from "./HomeDirectory.js";
|
|
16
14
|
import { type RecordedEntry } from "./SavedEntries.js";
|
|
@@ -183,6 +181,8 @@ export interface UnlinkedClockifyEntry {
|
|
|
183
181
|
readonly endMs: number;
|
|
184
182
|
}
|
|
185
183
|
export interface SessionProposalReport {
|
|
184
|
+
/** Review holds on the providers in this read, independent of readable source evidence. */
|
|
185
|
+
readonly writeBlocked?: SessionProposal["writeBlocked"];
|
|
186
186
|
/** Original per-session activity windows, before ticket/day merging; retained for saved-entry correlation. */
|
|
187
187
|
readonly sessionEvidence?: ReadonlyArray<{
|
|
188
188
|
readonly sessionId: string;
|
|
@@ -218,6 +218,14 @@ export interface SessionProposalReport {
|
|
|
218
218
|
readonly withheld: ReadonlyArray<TicketDayCredit>;
|
|
219
219
|
/** Hours no Attribution Signal could place. */
|
|
220
220
|
readonly unattributed: ReadonlyArray<UnattributedDayCredit>;
|
|
221
|
+
/** Raw active windows unioned per ignored ticket/day before sharing. These hours are explanatory, not additive. */
|
|
222
|
+
readonly ignored: ReadonlyArray<{
|
|
223
|
+
readonly ticketKey: string;
|
|
224
|
+
readonly day: string;
|
|
225
|
+
readonly seconds: number;
|
|
226
|
+
}>;
|
|
227
|
+
/** Sorted global ignore policy applied by this read, including tickets with no activity in the period. */
|
|
228
|
+
readonly ignoredTickets: ReadonlyArray<string>;
|
|
221
229
|
readonly excludedDays: ReadonlyArray<ExcludedDay>;
|
|
222
230
|
/** False when a Coding Agent was needed for at least one session but could not be reached. */
|
|
223
231
|
readonly attributorAvailable: boolean;
|
|
@@ -374,5 +382,5 @@ export type DayTally = ReadonlyArray<{
|
|
|
374
382
|
* Buckets present on either side appear; rows are sorted by day then ticket for stable output.
|
|
375
383
|
*/
|
|
376
384
|
export declare const buildReconcileRows: (clockify: DayTally, jira: DayTally) => ReadonlyArray<ReconcileRow>;
|
|
377
|
-
export declare const layer: Layer.Layer<ReconcileService, never, AgentSessionReader | ClockifyAuth | ConfigService | FileSystem.FileSystem | HomeDirectory | HttpClient.HttpClient | JiraApiClient | JiraAuth | Path.Path | SessionAttributor | SourceLedger | TimerService>;
|
|
385
|
+
export declare const layer: Layer.Layer<ReconcileService, never, AgentSessionReader | import("./ClockifyAuth.js").ClockifyAuth | ConfigService | FileSystem.FileSystem | HomeDirectory | import("effect/http/HttpClient").HttpClient | JiraApiClient | JiraAuth | Path.Path | SessionAttributor | SourceLedger | TimerService>;
|
|
378
386
|
//# sourceMappingURL=ReconcileService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReconcileService.d.ts","sourceRoot":"","sources":["../../../src/services/ReconcileService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReconcileService.d.ts","sourceRoot":"","sources":["../../../src/services/ReconcileService.ts"],"names":[],"mappings":"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"}
|