@knpkv/jira-clockify 1.4.1 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/README.md +105 -22
  2. package/dist/package.json +1 -1
  3. package/dist/src/agent/schedule.d.ts +6 -5
  4. package/dist/src/agent/schedule.d.ts.map +1 -1
  5. package/dist/src/agent/schedule.js +117 -102
  6. package/dist/src/agent/schedule.js.map +1 -1
  7. package/dist/src/agent/sessions.d.ts +27 -33
  8. package/dist/src/agent/sessions.d.ts.map +1 -1
  9. package/dist/src/agent/sessions.js +121 -83
  10. package/dist/src/agent/sessions.js.map +1 -1
  11. package/dist/src/agent/writePlanning.d.ts +2 -0
  12. package/dist/src/agent/writePlanning.d.ts.map +1 -1
  13. package/dist/src/agent/writePlanning.js +4 -1
  14. package/dist/src/agent/writePlanning.js.map +1 -1
  15. package/dist/src/bin.js +16 -5
  16. package/dist/src/bin.js.map +1 -1
  17. package/dist/src/cli/CommandFailed.d.ts +27 -0
  18. package/dist/src/cli/CommandFailed.d.ts.map +1 -0
  19. package/dist/src/cli/CommandFailed.js +25 -0
  20. package/dist/src/cli/CommandFailed.js.map +1 -0
  21. package/dist/src/cli/agentWrite.d.ts.map +1 -1
  22. package/dist/src/cli/agentWrite.js +12 -5
  23. package/dist/src/cli/agentWrite.js.map +1 -1
  24. package/dist/src/cli/auth.d.ts +59 -2
  25. package/dist/src/cli/auth.d.ts.map +1 -1
  26. package/dist/src/cli/auth.js +151 -106
  27. package/dist/src/cli/auth.js.map +1 -1
  28. package/dist/src/cli/config.d.ts +4 -3
  29. package/dist/src/cli/config.d.ts.map +1 -1
  30. package/dist/src/cli/config.js +73 -31
  31. package/dist/src/cli/config.js.map +1 -1
  32. package/dist/src/cli/fetchTicket.d.ts +3 -3
  33. package/dist/src/cli/fetchTicket.d.ts.map +1 -1
  34. package/dist/src/cli/fetchTicket.js +7 -7
  35. package/dist/src/cli/fetchTicket.js.map +1 -1
  36. package/dist/src/cli/layers.d.ts +6 -5
  37. package/dist/src/cli/layers.d.ts.map +1 -1
  38. package/dist/src/cli/layers.js +16 -15
  39. package/dist/src/cli/layers.js.map +1 -1
  40. package/dist/src/cli/list.d.ts +3 -2
  41. package/dist/src/cli/list.d.ts.map +1 -1
  42. package/dist/src/cli/list.js +11 -5
  43. package/dist/src/cli/list.js.map +1 -1
  44. package/dist/src/cli/reconcile.d.ts +18 -3
  45. package/dist/src/cli/reconcile.d.ts.map +1 -1
  46. package/dist/src/cli/reconcile.js +73 -23
  47. package/dist/src/cli/reconcile.js.map +1 -1
  48. package/dist/src/cli/root.d.ts.map +1 -1
  49. package/dist/src/cli/root.js +3 -3
  50. package/dist/src/cli/root.js.map +1 -1
  51. package/dist/src/cli/setup.d.ts +14 -4
  52. package/dist/src/cli/setup.d.ts.map +1 -1
  53. package/dist/src/cli/setup.js +45 -94
  54. package/dist/src/cli/setup.js.map +1 -1
  55. package/dist/src/cli/timer/discard.d.ts +1 -1
  56. package/dist/src/cli/timer/discard.d.ts.map +1 -1
  57. package/dist/src/cli/timer/discard.js +2 -1
  58. package/dist/src/cli/timer/discard.js.map +1 -1
  59. package/dist/src/cli/timer/log.d.ts +1 -1
  60. package/dist/src/cli/timer/log.d.ts.map +1 -1
  61. package/dist/src/cli/timer/log.js +2 -1
  62. package/dist/src/cli/timer/log.js.map +1 -1
  63. package/dist/src/cli/timer/start.d.ts +2 -1
  64. package/dist/src/cli/timer/start.d.ts.map +1 -1
  65. package/dist/src/cli/timer/start.js +6 -8
  66. package/dist/src/cli/timer/start.js.map +1 -1
  67. package/dist/src/cli/timer/stop.d.ts +1 -1
  68. package/dist/src/cli/timer/stop.d.ts.map +1 -1
  69. package/dist/src/cli/timer.d.ts.map +1 -1
  70. package/dist/src/cli/timer.js +8 -1
  71. package/dist/src/cli/timer.js.map +1 -1
  72. package/dist/src/cli/unknownCommand.d.ts +24 -0
  73. package/dist/src/cli/unknownCommand.d.ts.map +1 -0
  74. package/dist/src/cli/unknownCommand.js +84 -0
  75. package/dist/src/cli/unknownCommand.js.map +1 -0
  76. package/dist/src/cli/watch.d.ts +2 -2
  77. package/dist/src/cli/watch.d.ts.map +1 -1
  78. package/dist/src/services/AgentSessionReader.d.ts +26 -12
  79. package/dist/src/services/AgentSessionReader.d.ts.map +1 -1
  80. package/dist/src/services/AgentSessionReader.js +163 -69
  81. package/dist/src/services/AgentSessionReader.js.map +1 -1
  82. package/dist/src/services/CodexTranscript.d.ts +50 -13
  83. package/dist/src/services/CodexTranscript.d.ts.map +1 -1
  84. package/dist/src/services/CodexTranscript.js +49 -13
  85. package/dist/src/services/CodexTranscript.js.map +1 -1
  86. package/dist/src/services/ConfigService.d.ts +4 -0
  87. package/dist/src/services/ConfigService.d.ts.map +1 -1
  88. package/dist/src/services/ConfigService.js +6 -2
  89. package/dist/src/services/ConfigService.js.map +1 -1
  90. package/dist/src/services/IssueFacts.d.ts +2 -2
  91. package/dist/src/services/IssueFacts.d.ts.map +1 -1
  92. package/dist/src/services/IssueFacts.js +5 -5
  93. package/dist/src/services/IssueFacts.js.map +1 -1
  94. package/dist/src/services/JiraAccess.d.ts +140 -0
  95. package/dist/src/services/JiraAccess.d.ts.map +1 -0
  96. package/dist/src/services/JiraAccess.js +204 -0
  97. package/dist/src/services/JiraAccess.js.map +1 -0
  98. package/dist/src/services/ProviderSnapshots.d.ts +41 -0
  99. package/dist/src/services/ProviderSnapshots.d.ts.map +1 -0
  100. package/dist/src/services/ProviderSnapshots.js +71 -0
  101. package/dist/src/services/ProviderSnapshots.js.map +1 -0
  102. package/dist/src/services/ReconcileService.d.ts +12 -4
  103. package/dist/src/services/ReconcileService.d.ts.map +1 -1
  104. package/dist/src/services/ReconcileService.js +223 -113
  105. package/dist/src/services/ReconcileService.js.map +1 -1
  106. package/dist/src/services/SavedEntries.d.ts +24 -4
  107. package/dist/src/services/SavedEntries.d.ts.map +1 -1
  108. package/dist/src/services/SavedEntries.js +335 -19
  109. package/dist/src/services/SavedEntries.js.map +1 -1
  110. package/dist/src/services/SessionAttributor.d.ts +12 -0
  111. package/dist/src/services/SessionAttributor.d.ts.map +1 -1
  112. package/dist/src/services/SessionAttributor.js +13 -1
  113. package/dist/src/services/SessionAttributor.js.map +1 -1
  114. package/dist/src/services/SessionLine.d.ts +29 -0
  115. package/dist/src/services/SessionLine.d.ts.map +1 -0
  116. package/dist/src/services/SessionLine.js +8 -0
  117. package/dist/src/services/SessionLine.js.map +1 -0
  118. package/dist/src/services/SourceLedger.d.ts +84 -1
  119. package/dist/src/services/SourceLedger.d.ts.map +1 -1
  120. package/dist/src/services/SourceLedger.js +178 -12
  121. package/dist/src/services/SourceLedger.js.map +1 -1
  122. package/dist/src/services/TicketRanking.d.ts +39 -0
  123. package/dist/src/services/TicketRanking.d.ts.map +1 -0
  124. package/dist/src/services/TicketRanking.js +87 -0
  125. package/dist/src/services/TicketRanking.js.map +1 -0
  126. package/dist/src/services/TimerService.d.ts +3 -3
  127. package/dist/src/services/TimerService.d.ts.map +1 -1
  128. package/dist/src/services/TimerService.js +6 -17
  129. package/dist/src/services/TimerService.js.map +1 -1
  130. package/dist/src/services/internal/retryTransport.d.ts +9 -0
  131. package/dist/src/services/internal/retryTransport.d.ts.map +1 -0
  132. package/dist/src/services/internal/retryTransport.js +15 -0
  133. package/dist/src/services/internal/retryTransport.js.map +1 -0
  134. package/dist/src/testing/fakeHeadless.d.ts +12 -1
  135. package/dist/src/testing/fakeHeadless.d.ts.map +1 -1
  136. package/dist/src/testing/fakeHeadless.js +83 -10
  137. package/dist/src/testing/fakeHeadless.js.map +1 -1
  138. package/dist/src/tui/App.js +1 -1
  139. package/dist/src/tui/atoms/runtime.d.ts +1 -1
  140. package/dist/src/tui/atoms/runtime.d.ts.map +1 -1
  141. package/dist/src/utils/hints.d.ts +4 -2
  142. package/dist/src/utils/hints.d.ts.map +1 -1
  143. package/dist/src/utils/hints.js +4 -2
  144. package/dist/src/utils/hints.js.map +1 -1
  145. package/dist/tsconfig.tsbuildinfo +1 -1
  146. package/package.json +8 -8
  147. package/skills/jcf/SKILL.md +9 -6
@@ -0,0 +1,204 @@
1
+ import { JiraAuth } from "@knpkv/jira-cli/JiraAuth";
2
+ import * as Context from "effect/Context";
3
+ import * as Data from "effect/Data";
4
+ import * as Effect from "effect/Effect";
5
+ import { Base64 } from "effect/encoding";
6
+ import * as FileSystem from "effect/FileSystem";
7
+ import * as HttpClient from "effect/http/HttpClient";
8
+ import * as HttpClientRequest from "effect/http/HttpClientRequest";
9
+ import * as Layer from "effect/Layer";
10
+ import * as Option from "effect/Option";
11
+ import * as Path from "effect/Path";
12
+ import * as Predicate from "effect/Predicate";
13
+ import * as Random from "effect/Random";
14
+ import * as Redacted from "effect/Redacted";
15
+ import * as Schema from "effect/Schema";
16
+ import { CONNECT_JIRA_COMMAND as connectJiraCommand } from "../utils/hints.js";
17
+ import { HomeDirectory } from "./HomeDirectory.js";
18
+ export { CONNECT_JIRA_COMMAND as connectJiraCommand } from "../utils/hints.js";
19
+ /** What `~/.jcf/jira.json` holds. The token stays in this file and in request headers only. */
20
+ const StoredToken = Schema.Struct({
21
+ siteUrl: Schema.String,
22
+ /**
23
+ * Where requests go: the site itself for a classic token, or Atlassian's gateway for the site
24
+ * (`https://api.atlassian.com/ex/jira/<cloudId>`) for a scoped token, which the site refuses.
25
+ */
26
+ apiUrl: Schema.String,
27
+ cloudId: Schema.String,
28
+ email: Schema.String,
29
+ apiToken: Schema.String,
30
+ accountId: Schema.String,
31
+ displayName: Schema.String
32
+ });
33
+ const decodeStoredToken = Schema.decodeUnknownEffect(Schema.fromJsonString(StoredToken));
34
+ /** The Jira credential exists but cannot be read. */
35
+ export class JiraAccessUnreadable extends Data.TaggedError("JiraAccessUnreadable") {
36
+ get message() {
37
+ return `Could not read the Jira credential in ${this.path}. Run ${connectJiraCommand} to connect Jira again.`;
38
+ }
39
+ }
40
+ /** The token file could not be written. */
41
+ export class JiraTokenNotSaved extends Data.TaggedError("JiraTokenNotSaved") {
42
+ get message() {
43
+ return `Could not save the Jira token to ${this.path}. Check that the folder is writable.`;
44
+ }
45
+ }
46
+ /** What the user typed is not a Jira Cloud address, so no token is sent to it. */
47
+ export class JiraSiteInvalid extends Data.TaggedError("JiraSiteInvalid") {
48
+ get message() {
49
+ return `"${this.input}" is not a Jira Cloud address. API tokens work with Jira Cloud sites, ` +
50
+ "which end in .atlassian.net, such as your-team.atlassian.net.";
51
+ }
52
+ }
53
+ /** The OAuth login changed between reading its token and its profile; nothing mixed is used. */
54
+ export class JiraLoginChanged extends Data.TaggedError("JiraLoginChanged") {
55
+ get message() {
56
+ return "The Jira OAuth login changed while it was being read. Try again.";
57
+ }
58
+ }
59
+ /** Nothing answers as a Jira Cloud site at the address. */
60
+ export class JiraSiteNotFound extends Data.TaggedError("JiraSiteNotFound") {
61
+ get message() {
62
+ return `No Jira Cloud site answers at ${this.siteUrl}. Check the address in your browser's Jira tab.`;
63
+ }
64
+ }
65
+ /** The site could not be reached at all. */
66
+ export class JiraUnreachable extends Data.TaggedError("JiraUnreachable") {
67
+ get message() {
68
+ return `Could not reach ${this.siteUrl}. Check your network connection and try again.`;
69
+ }
70
+ }
71
+ /** The site answered, and refused the email and token. */
72
+ export class JiraTokenRejected extends Data.TaggedError("JiraTokenRejected") {
73
+ get message() {
74
+ return `${this.siteUrl} rejected the API token for ${this.email}. Use the email you sign in to Atlassian with, ` +
75
+ "and a token from https://id.atlassian.com/manage-profile/security/api-tokens.";
76
+ }
77
+ }
78
+ export class JiraAccess extends Context.Service()("jcf/JiraAccess") {
79
+ }
80
+ const loopbackHosts = new Set(["localhost", "127.0.0.1", "[::1]"]);
81
+ /**
82
+ * The origin of a Jira Cloud site the user typed: `team`, `team.atlassian.net` and a pasted Jira URL
83
+ * all name `https://team.atlassian.net`. Only `*.atlassian.net` over https is accepted, because the
84
+ * token is sent to this host: a typo or a look-alike domain must fail before any credential leaves.
85
+ * Plain http on loopback is the one exception, for stand-ins in tests.
86
+ */
87
+ export const siteOrigin = (input) => {
88
+ const trimmed = input.trim();
89
+ if (trimmed === "")
90
+ return Option.none();
91
+ const withScheme = /^[a-z][a-z0-9+.-]*:\/\//iu.test(trimmed) ? trimmed : `https://${trimmed}`;
92
+ const url = URL.parse(withScheme);
93
+ if (url === null || url.username !== "" || url.password !== "")
94
+ return Option.none();
95
+ if (url.protocol === "http:" && loopbackHosts.has(url.hostname))
96
+ return Option.some(url.origin);
97
+ if (url.protocol !== "https:" || url.port !== "")
98
+ return Option.none();
99
+ const host = url.hostname.includes(".") ? url.hostname : `${url.hostname}.atlassian.net`;
100
+ return /^[a-z0-9][a-z0-9-]*\.atlassian\.net$/u.test(host) ? Option.some(`https://${host}`) : Option.none();
101
+ };
102
+ const TenantInfo = Schema.Struct({ cloudId: Schema.NonEmptyString });
103
+ const Myself = Schema.Struct({ accountId: Schema.NonEmptyString, displayName: Schema.String });
104
+ export const layer = Layer.effect(JiraAccess, Effect.gen(function* () {
105
+ const fs = yield* FileSystem.FileSystem;
106
+ const path = yield* Path.Path;
107
+ const httpClient = yield* HttpClient.HttpClient;
108
+ const oauth = yield* JiraAuth;
109
+ const directory = path.join((yield* HomeDirectory).path, ".jcf");
110
+ const file = path.join(directory, "jira.json");
111
+ const tokenConnection = Effect.gen(function* () {
112
+ if (!(yield* fs.exists(file)))
113
+ return Option.none();
114
+ const stored = yield* fs.readFileString(file).pipe(Effect.flatMap(decodeStoredToken));
115
+ return Option.some({
116
+ method: "api-token",
117
+ credential: {
118
+ type: "basic",
119
+ email: stored.email,
120
+ apiToken: Redacted.make(stored.apiToken),
121
+ siteUrl: stored.apiUrl
122
+ },
123
+ cloudId: stored.cloudId,
124
+ siteUrl: stored.siteUrl,
125
+ accountId: stored.accountId,
126
+ displayName: stored.displayName
127
+ });
128
+ }).pipe(Effect.mapError(() => new JiraAccessUnreadable({ path: file })));
129
+ // The token is refreshed first, then site and account come from one profile object holding that
130
+ // same token. Reading them separately could pair one profile's token with another's site.
131
+ const oauthConnection = Effect.gen(function* () {
132
+ if (!(yield* oauth.isLoggedIn()))
133
+ return Option.none();
134
+ const accessToken = yield* oauth.getAccessToken();
135
+ const profile = yield* oauth.getActiveProfile();
136
+ if (profile === null)
137
+ return Option.none();
138
+ if (profile.token.access_token !== Redacted.value(accessToken))
139
+ return yield* new JiraLoginChanged();
140
+ const { cloud_id: cloudId, site_url: siteUrl, user } = profile.token;
141
+ return Option.some({
142
+ method: "oauth",
143
+ credential: { type: "oauth2", accessToken, cloudId },
144
+ cloudId,
145
+ siteUrl,
146
+ accountId: user?.account_id ?? "",
147
+ displayName: user?.name ?? ""
148
+ });
149
+ }).pipe(Effect.mapError((error) => Predicate.isTagged(error, "JiraLoginChanged")
150
+ ? new JiraLoginChanged()
151
+ : new JiraAccessUnreadable({ path: "the Jira OAuth login" })));
152
+ const connection = tokenConnection.pipe(Effect.flatMap((token) => Option.isSome(token) ? Effect.succeed(token) : oauthConnection));
153
+ const verifyToken = (input) => Effect.gen(function* () {
154
+ const siteUrl = yield* Option.match(siteOrigin(input.site), {
155
+ onNone: () => Effect.fail(new JiraSiteInvalid({ input: input.site })),
156
+ onSome: Effect.succeed
157
+ });
158
+ const unreachable = () => new JiraUnreachable({ siteUrl });
159
+ const notFound = () => new JiraSiteNotFound({ siteUrl });
160
+ const tenant = yield* httpClient.execute(HttpClientRequest.get(`${siteUrl}/_edge/tenant_info`)).pipe(Effect.mapError(unreachable));
161
+ if (tenant.status !== 200)
162
+ return yield* notFound();
163
+ const { cloudId } = yield* tenant.json.pipe(Effect.flatMap(Schema.decodeUnknownEffect(TenantInfo)), Effect.mapError(notFound));
164
+ const authorization = `Basic ${Base64.encode(`${input.email}:${Redacted.value(input.apiToken)}`)}`;
165
+ const askMyself = (apiUrl) => httpClient.execute(HttpClientRequest.get(`${apiUrl}/rest/api/3/myself`).pipe(HttpClientRequest.setHeader("Authorization", authorization), HttpClientRequest.setHeader("Accept", "application/json"))).pipe(Effect.mapError(unreachable));
166
+ const refused = (status) => status === 401 || status === 403;
167
+ // A classic token works on the site; a scoped one only through Atlassian's gateway for it.
168
+ const gateway = `https://api.atlassian.com/ex/jira/${cloudId}`;
169
+ const onSite = yield* askMyself(siteUrl);
170
+ const apiUrl = refused(onSite.status) ? gateway : siteUrl;
171
+ const myself = apiUrl === gateway ? yield* askMyself(gateway) : onSite;
172
+ if (refused(myself.status))
173
+ return yield* new JiraTokenRejected({ siteUrl, email: input.email });
174
+ if (myself.status !== 200)
175
+ return yield* unreachable();
176
+ const user = yield* myself.json.pipe(Effect.flatMap(Schema.decodeUnknownEffect(Myself)), Effect.mapError(notFound));
177
+ return {
178
+ siteUrl,
179
+ apiUrl,
180
+ cloudId,
181
+ email: input.email,
182
+ apiToken: Redacted.value(input.apiToken),
183
+ accountId: user.accountId,
184
+ displayName: user.displayName
185
+ };
186
+ });
187
+ // Written beside the target and renamed over it, so a reader never sees half a file and the token
188
+ // is never readable by anyone else, not even for the moment before a chmod.
189
+ const saveToken = (token) => Effect.gen(function* () {
190
+ yield* fs.makeDirectory(directory, { recursive: true, mode: 0o700 });
191
+ const pending = `${file}.${yield* Random.nextIntBetween(0, 1_000_000_000)}.tmp`;
192
+ yield* fs.writeFileString(pending, JSON.stringify(token, null, 2), { mode: 0o600 });
193
+ yield* fs.chmod(pending, 0o600);
194
+ yield* fs.rename(pending, file).pipe(Effect.tapError(() => fs.remove(pending).pipe(Effect.ignore)));
195
+ }).pipe(Effect.mapError(() => new JiraTokenNotSaved({ path: file })));
196
+ const removeToken = Effect.gen(function* () {
197
+ if (!(yield* fs.exists(file)))
198
+ return false;
199
+ yield* fs.remove(file);
200
+ return true;
201
+ }).pipe(Effect.mapError(() => new JiraTokenNotSaved({ path: file })));
202
+ return { connection, verifyToken, saveToken, removeToken };
203
+ }));
204
+ //# sourceMappingURL=JiraAccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JiraAccess.js","sourceRoot":"","sources":["../../../src/services/JiraAccess.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 { Effect, Schema } from "effect";
5
+ import * as HttpClient from "effect/http/HttpClient";
6
+ import { ClockifyAuth } from "./ClockifyAuth.js";
7
+ import { JiraAccess } from "./JiraAccess.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 | JiraAccess>;
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,MAAM,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;;;;;AAE5C,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;;;4DA2Df,CAAA"}
@@ -0,0 +1,71 @@
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 { Effect, Option, Schema } from "effect";
5
+ import * as HttpClient from "effect/http/HttpClient";
6
+ import { ClockifyAuth } from "./ClockifyAuth.js";
7
+ import { JiraAccess } from "./JiraAccess.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 jiraAccess = yield* JiraAccess;
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 credential and its site, whether API token or OAuth. */
43
+ const jiraWriteState = Effect.gen(function* () {
44
+ const read = yield* Effect.result(jiraAccess.connection);
45
+ if (read._tag === "Failure")
46
+ return { availability: "unverified", snapshot: null };
47
+ if (Option.isNone(read.success))
48
+ return { availability: "not-logged-in", snapshot: null };
49
+ const connection = read.success.value;
50
+ if (connection.cloudId === "" || connection.siteUrl === "")
51
+ return { availability: "unverified", snapshot: null };
52
+ const client = makeJiraApi(httpClient, { baseUrl: "", auth: connection.credential });
53
+ const live = yield* client.getCurrentUser({}).pipe(Effect.orElseSucceed(() => null));
54
+ if (live?.accountId === undefined || live.accountId === "") {
55
+ return { availability: "unverified", snapshot: null };
56
+ }
57
+ return {
58
+ availability: "verified",
59
+ snapshot: {
60
+ client,
61
+ ledgerScope: JSON.stringify([connection.cloudId, live.accountId]),
62
+ heldScope: JSON.stringify([connection.cloudId, connection.siteUrl, live.accountId]),
63
+ accountId: live.accountId,
64
+ cloudId: connection.cloudId,
65
+ siteUrl: connection.siteUrl
66
+ }
67
+ };
68
+ });
69
+ return { clockify: clockifyWriteSnapshot, jira: jiraWriteState };
70
+ });
71
+ //# 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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"}
@@ -1,18 +1,16 @@
1
1
  import { JiraApiClient } from "@knpkv/jira-api-client";
2
- import { JiraAuth } from "@knpkv/jira-cli/JiraAuth";
3
2
  import * as Context from "effect/Context";
4
3
  import * as Effect from "effect/Effect";
5
4
  import * as FileSystem from "effect/FileSystem";
6
- import * as HttpClient from "effect/http/HttpClient";
7
5
  import * as Layer from "effect/Layer";
8
6
  import * as Path from "effect/Path";
9
7
  import { type ReconcileSides, type SessionProposal, type TicketDayCredit, type UnattributedDayCredit } from "../agent/sessions.js";
10
8
  import * as SourceConsumption from "../agent/sourceConsumption.js";
11
9
  import { localDay } from "../utils/time.js";
12
10
  import { AgentSessionReader } from "./AgentSessionReader.js";
13
- import { ClockifyAuth } from "./ClockifyAuth.js";
14
11
  import { ConfigService } from "./ConfigService.js";
15
12
  import { HomeDirectory } from "./HomeDirectory.js";
13
+ import { JiraAccess } from "./JiraAccess.js";
16
14
  import { type RecordedEntry } from "./SavedEntries.js";
17
15
  import { SessionAttributor } from "./SessionAttributor.js";
18
16
  import { SourceLedger } from "./SourceLedger.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 | JiraAccess | JiraApiClient | 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":"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"}
1
+ {"version":3,"file":"ReconcileService.d.ts","sourceRoot":"","sources":["../../../src/services/ReconcileService.ts"],"names":[],"mappings":"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"}