github-issue-tower-defence-management 1.193.0 → 1.194.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 (74) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +4 -0
  3. package/bin/adapter/entry-points/cli/index.js +19 -0
  4. package/bin/adapter/entry-points/cli/index.js.map +1 -1
  5. package/bin/adapter/entry-points/console/ui-dist/assets/{index-RaFqjB7u.js → index-CYwLv9pf.js} +2 -2
  6. package/bin/adapter/entry-points/console/ui-dist/index.html +1 -1
  7. package/bin/adapter/entry-points/handlers/tokenStatusWriter.js +1 -0
  8. package/bin/adapter/entry-points/handlers/tokenStatusWriter.js.map +1 -1
  9. package/bin/adapter/repositories/NodeLocalCommandRunner.js +5 -0
  10. package/bin/adapter/repositories/NodeLocalCommandRunner.js.map +1 -1
  11. package/bin/adapter/repositories/NodeTmuxSessionRepository.js +29 -0
  12. package/bin/adapter/repositories/NodeTmuxSessionRepository.js.map +1 -1
  13. package/bin/adapter/repositories/ProxyClaudeTokenUsageRepository.js +4 -2
  14. package/bin/adapter/repositories/ProxyClaudeTokenUsageRepository.js.map +1 -1
  15. package/bin/domain/usecases/StartPreparationUseCase.js +12 -2
  16. package/bin/domain/usecases/StartPreparationUseCase.js.map +1 -1
  17. package/bin/domain/usecases/console/GenerateConsoleListsUseCase.js +1 -3
  18. package/bin/domain/usecases/console/GenerateConsoleListsUseCase.js.map +1 -1
  19. package/bin/domain/usecases/dashboard/GenerateTokenStatusUseCase.js +12 -4
  20. package/bin/domain/usecases/dashboard/GenerateTokenStatusUseCase.js.map +1 -1
  21. package/package.json +1 -1
  22. package/src/adapter/entry-points/cli/index.test.ts +102 -0
  23. package/src/adapter/entry-points/cli/index.ts +43 -0
  24. package/src/adapter/entry-points/console/ui/e2e/consoleScenario.spec.ts +45 -0
  25. package/src/adapter/entry-points/console/ui/e2e/consoleTestHarness.ts +7 -0
  26. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStoryList.stories.tsx +31 -0
  27. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStoryList.test.tsx +96 -0
  28. package/src/adapter/entry-points/console/ui/src/features/console/components/list/ConsoleStoryList.tsx +20 -2
  29. package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsolePage.test.tsx +159 -0
  30. package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsolePage.tsx +17 -1
  31. package/src/adapter/entry-points/console/ui-dist/assets/{index-RaFqjB7u.js → index-CYwLv9pf.js} +2 -2
  32. package/src/adapter/entry-points/console/ui-dist/index.html +1 -1
  33. package/src/adapter/entry-points/handlers/inTmuxByHumanSessionReconciler.test.ts +1 -0
  34. package/src/adapter/entry-points/handlers/notifySilentTmuxSessions.test.ts +1 -0
  35. package/src/adapter/entry-points/handlers/resetDegeneratedTmuxSessions.test.ts +4 -1
  36. package/src/adapter/entry-points/handlers/situationFileWriter.test.ts +2 -0
  37. package/src/adapter/entry-points/handlers/staleTmuxSessionCleaner.test.ts +1 -0
  38. package/src/adapter/entry-points/handlers/tokenStatusWriter.ts +1 -0
  39. package/src/adapter/repositories/LocalCommandIssueAttachmentRepository.test.ts +4 -0
  40. package/src/adapter/repositories/LocalProcessLiveSessionProcessSnapshotProvider.test.ts +1 -0
  41. package/src/adapter/repositories/NodeLocalCommandRunner.test.ts +16 -0
  42. package/src/adapter/repositories/NodeLocalCommandRunner.ts +5 -1
  43. package/src/adapter/repositories/NodeSubAgentProcessLister.test.ts +1 -0
  44. package/src/adapter/repositories/NodeTmuxSessionRepository.test.ts +132 -0
  45. package/src/adapter/repositories/NodeTmuxSessionRepository.ts +37 -0
  46. package/src/adapter/repositories/ProxyClaudeTokenUsageRepository.test.ts +38 -0
  47. package/src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts +6 -2
  48. package/src/adapter/repositories/TmuxSilentSessionNotificationRepository.test.ts +2 -0
  49. package/src/domain/usecases/RevertOrphanedPreparationUseCase.test.ts +1 -0
  50. package/src/domain/usecases/StartPreparationUseCase.test.ts +110 -2
  51. package/src/domain/usecases/StartPreparationUseCase.ts +34 -17
  52. package/src/domain/usecases/adapter-interfaces/LocalCommandRunner.ts +1 -0
  53. package/src/domain/usecases/adapter-interfaces/TmuxSessionRepository.ts +4 -0
  54. package/src/domain/usecases/console/GenerateConsoleListsUseCase.test.ts +5 -4
  55. package/src/domain/usecases/console/GenerateConsoleListsUseCase.ts +9 -11
  56. package/src/domain/usecases/dashboard/GenerateTokenStatusUseCase.test.ts +63 -0
  57. package/src/domain/usecases/dashboard/GenerateTokenStatusUseCase.ts +13 -4
  58. package/src/domain/usecases/intmux/InTmuxByHumanSessionReconcileUseCase.test.ts +1 -0
  59. package/src/domain/usecases/issueReactivationTriggerIsPending.test.ts +1 -0
  60. package/types/adapter/entry-points/cli/index.d.ts.map +1 -1
  61. package/types/adapter/entry-points/handlers/tokenStatusWriter.d.ts.map +1 -1
  62. package/types/adapter/repositories/NodeLocalCommandRunner.d.ts +1 -0
  63. package/types/adapter/repositories/NodeLocalCommandRunner.d.ts.map +1 -1
  64. package/types/adapter/repositories/NodeTmuxSessionRepository.d.ts +1 -0
  65. package/types/adapter/repositories/NodeTmuxSessionRepository.d.ts.map +1 -1
  66. package/types/adapter/repositories/ProxyClaudeTokenUsageRepository.d.ts.map +1 -1
  67. package/types/domain/usecases/StartPreparationUseCase.d.ts.map +1 -1
  68. package/types/domain/usecases/adapter-interfaces/LocalCommandRunner.d.ts +1 -0
  69. package/types/domain/usecases/adapter-interfaces/LocalCommandRunner.d.ts.map +1 -1
  70. package/types/domain/usecases/adapter-interfaces/TmuxSessionRepository.d.ts +1 -0
  71. package/types/domain/usecases/adapter-interfaces/TmuxSessionRepository.d.ts.map +1 -1
  72. package/types/domain/usecases/console/GenerateConsoleListsUseCase.d.ts.map +1 -1
  73. package/types/domain/usecases/dashboard/GenerateTokenStatusUseCase.d.ts +1 -0
  74. package/types/domain/usecases/dashboard/GenerateTokenStatusUseCase.d.ts.map +1 -1
@@ -517,6 +517,7 @@ export class StartPreparationUseCase {
517
517
  let updatedCurrentPreparationIssueCount = currentPreparationIssueCount;
518
518
  let startedInThisRunCount = 0;
519
519
  const spawnedInThisRunByToken: Record<string, number> = {};
520
+ let tokenInFlightCountsRefreshed = false;
520
521
  const exclusionCounts = {
521
522
  dependedIssueUrls: 0,
522
523
  futureNextActionDate: 0,
@@ -730,23 +731,39 @@ export class StartPreparationUseCase {
730
731
  let routedModelName: string | null = null;
731
732
  let selectedTokenName: string | null = null;
732
733
  if (rotationTokens !== null && proxyBaseUrl !== null) {
733
- const tokenWithSoonestResetAmongAvailable = selectedTokensWithLimits
734
- .map((t) => ({
735
- token: t.token,
736
- model: t.model,
737
- remaining:
738
- t.limit -
739
- (tokenInFlightCounts[t.token] ?? 0) -
740
- (spawnedInThisRunByToken[t.token] ?? 0),
741
- secondsUntilSevenDayReset: t.secondsUntilSevenDayReset,
742
- }))
743
- .filter((t) => t.remaining > 0)
744
- .sort((a, b) => {
745
- if (a.secondsUntilSevenDayReset !== b.secondsUntilSevenDayReset) {
746
- return a.secondsUntilSevenDayReset - b.secondsUntilSevenDayReset;
747
- }
748
- return b.remaining - a.remaining;
749
- })[0];
734
+ const tokenWithSoonestResetAmongAvailableOf = ():
735
+ { token: string; model: string } | undefined =>
736
+ selectedTokensWithLimits
737
+ .map((t) => ({
738
+ token: t.token,
739
+ model: t.model,
740
+ remaining:
741
+ t.limit -
742
+ (tokenInFlightCounts[t.token] ?? 0) -
743
+ (spawnedInThisRunByToken[t.token] ?? 0),
744
+ secondsUntilSevenDayReset: t.secondsUntilSevenDayReset,
745
+ }))
746
+ .filter((t) => t.remaining > 0)
747
+ .sort((a, b) => {
748
+ if (a.secondsUntilSevenDayReset !== b.secondsUntilSevenDayReset) {
749
+ return (
750
+ a.secondsUntilSevenDayReset - b.secondsUntilSevenDayReset
751
+ );
752
+ }
753
+ return b.remaining - a.remaining;
754
+ })[0];
755
+ let tokenWithSoonestResetAmongAvailable =
756
+ tokenWithSoonestResetAmongAvailableOf();
757
+ if (
758
+ tokenWithSoonestResetAmongAvailable === undefined &&
759
+ !tokenInFlightCountsRefreshed
760
+ ) {
761
+ tokenInFlightCountsRefreshed = true;
762
+ tokenInFlightCounts =
763
+ await this.claudeTokenUsageRepository.getTokenInFlightCounts();
764
+ tokenWithSoonestResetAmongAvailable =
765
+ tokenWithSoonestResetAmongAvailableOf();
766
+ }
750
767
  if (tokenWithSoonestResetAmongAvailable === undefined) {
751
768
  await revertToAwaitingWorkspace(
752
769
  'every Claude OAuth token reached its concurrent worker limit',
@@ -12,4 +12,5 @@ export interface LocalCommandRunner {
12
12
  stderr: string;
13
13
  exitCode: number;
14
14
  }>;
15
+ spawnInteractive(program: string, args: string[]): void;
15
16
  }
@@ -13,4 +13,8 @@ export interface TmuxSessionRepository {
13
13
  killOwnSession: () => Promise<void>;
14
14
  sendKeys: (sessionName: string, literalText: string) => Promise<void>;
15
15
  launchBareNameLeaderSession: (name: string) => Promise<void>;
16
+ attachOrCreateInteractiveSession: (
17
+ issueUrl: string,
18
+ scopeLibPath: string | null,
19
+ ) => Promise<void>;
16
20
  }
@@ -800,19 +800,20 @@ describe('GenerateConsoleListsUseCase', () => {
800
800
  });
801
801
 
802
802
  describe('stories tab', () => {
803
- it('includes one entry per non-GRAY story option', () => {
803
+ it('includes one entry per story option including GRAY', () => {
804
804
  const result = run([]);
805
- expect(result.stories.stories).toHaveLength(2);
805
+ expect(result.stories.stories).toHaveLength(3);
806
806
  expect(result.stories.stories.map((s) => s.storyName)).toEqual([
807
+ 'regular / NO STORY; SET STORY FIELD',
807
808
  'Story Alpha',
808
809
  'Story Beta',
809
810
  ]);
810
811
  });
811
812
 
812
- it('excludes story options whose color is GRAY', () => {
813
+ it('includes story options whose color is GRAY', () => {
813
814
  const result = run([]);
814
815
  const names = result.stories.stories.map((s) => s.storyName);
815
- expect(names).not.toContain('regular / NO STORY; SET STORY FIELD');
816
+ expect(names).toContain('regular / NO STORY; SET STORY FIELD');
816
817
  });
817
818
 
818
819
  it('counts open items per story from all open issues on the board', () => {
@@ -173,17 +173,15 @@ export class GenerateConsoleListsUseCase {
173
173
  const defaultNameWithOwner =
174
174
  issues.find((issue) => issue.nameWithOwner !== '')?.nameWithOwner ?? null;
175
175
 
176
- const storyEntries: ConsoleStoryEntry[] = storyOptions
177
- .filter((option) => option.color !== 'GRAY')
178
- .map((option) => ({
179
- storyName: option.name,
180
- storyOptionId: option.id,
181
- color: option.color,
182
- openItemCount: openItemCountByStory.get(option.name) ?? 0,
183
- storyViewUrl: urlOfStoryView
184
- ? `${urlOfStoryView}?sliceBy%5Bvalue%5D=${encodeForURI(option.name)}`
185
- : null,
186
- }));
176
+ const storyEntries: ConsoleStoryEntry[] = storyOptions.map((option) => ({
177
+ storyName: option.name,
178
+ storyOptionId: option.id,
179
+ color: option.color,
180
+ openItemCount: openItemCountByStory.get(option.name) ?? 0,
181
+ storyViewUrl: urlOfStoryView
182
+ ? `${urlOfStoryView}?sliceBy%5Bvalue%5D=${encodeForURI(option.name)}`
183
+ : null,
184
+ }));
187
185
 
188
186
  return {
189
187
  'workflow-blocker': buildStatusTabFromSource(
@@ -111,6 +111,7 @@ const snapshot = (
111
111
  sevenDaySonnetRejected: false,
112
112
  sevenDayOpusRejected: false,
113
113
  hasWindowData: true,
114
+ lastUpdatedEpoch: 1_000_000,
114
115
  ...overrides,
115
116
  });
116
117
 
@@ -280,3 +281,65 @@ describe('computeSevenDayWindowAggregate', () => {
280
281
  expect(computeSevenDayWindowAggregate([])).toBeNull();
281
282
  });
282
283
  });
284
+
285
+ describe('GenerateTokenStatusUseCase window rollover inference', () => {
286
+ const usecase = new GenerateTokenStatusUseCase();
287
+ const now = 2_000_000;
288
+
289
+ const runFor = (
290
+ snapshotOverrides: Partial<TokenRateLimitSnapshot>,
291
+ ): TokenStatus =>
292
+ usecase.run({
293
+ tokens: [
294
+ {
295
+ name: 'alice',
296
+ token: 'token-a',
297
+ snapshot: snapshot(snapshotOverrides),
298
+ },
299
+ ],
300
+ prepCountByToken: new Map(),
301
+ humCountByToken: new Map(),
302
+ nowEpochSeconds: now,
303
+ })[0];
304
+
305
+ it('keeps the last observed utilization when the snapshot predates the reset it reports', () => {
306
+ const result = runFor({
307
+ sevenDayUtilization: 0.98,
308
+ sevenDayReset: now - 3600,
309
+ lastUpdatedEpoch: now - 72000,
310
+ });
311
+
312
+ expect(result.sevenDayUtilizationPercent).toBe(98);
313
+ });
314
+
315
+ it('keeps a seven day rejection visible when the snapshot predates the reset it reports', () => {
316
+ const result = runFor({
317
+ sevenDayUtilization: 0.98,
318
+ sevenDayReset: now - 3600,
319
+ sevenDayRejected: true,
320
+ lastUpdatedEpoch: now - 72000,
321
+ });
322
+
323
+ expect(result.color).toBe('K');
324
+ });
325
+
326
+ it('reports a rolled over window as unused when the snapshot was captured after that reset', () => {
327
+ const result = runFor({
328
+ sevenDayUtilization: 0.98,
329
+ sevenDayReset: now - 3600,
330
+ lastUpdatedEpoch: now - 1800,
331
+ });
332
+
333
+ expect(result.sevenDayUtilizationPercent).toBe(0);
334
+ });
335
+
336
+ it('keeps the last observed five hour utilization when the snapshot predates the five hour reset', () => {
337
+ const result = runFor({
338
+ fiveHourUtilization: 0.91,
339
+ fiveHourReset: now - 600,
340
+ lastUpdatedEpoch: now - 72000,
341
+ });
342
+
343
+ expect(result.fiveHourUtilizationPercent).toBe(91);
344
+ });
345
+ });
@@ -12,6 +12,7 @@ export type TokenRateLimitSnapshot = {
12
12
  sevenDaySonnetRejected: boolean;
13
13
  sevenDayOpusRejected: boolean;
14
14
  hasWindowData: boolean;
15
+ lastUpdatedEpoch: number;
15
16
  };
16
17
 
17
18
  export type TokenRateLimitDecision = {
@@ -154,9 +155,13 @@ export class GenerateTokenStatusUseCase {
154
155
  const sevenDayReset =
155
156
  snapshot.sevenDayReset > 0 ? snapshot.sevenDayReset : null;
156
157
  const fiveHourExpired =
157
- fiveHourReset !== null && fiveHourReset < nowEpochSeconds;
158
+ fiveHourReset !== null &&
159
+ fiveHourReset < nowEpochSeconds &&
160
+ snapshot.lastUpdatedEpoch >= fiveHourReset;
158
161
  const sevenDayExpired =
159
- sevenDayReset !== null && sevenDayReset < nowEpochSeconds;
162
+ sevenDayReset !== null &&
163
+ sevenDayReset < nowEpochSeconds &&
164
+ snapshot.lastUpdatedEpoch >= sevenDayReset;
160
165
  return {
161
166
  fiveHourUtilizationPercent: fiveHourExpired
162
167
  ? 0
@@ -196,9 +201,13 @@ export class GenerateTokenStatusUseCase {
196
201
  };
197
202
  }
198
203
  const fiveHourExpired =
199
- snapshot.fiveHourReset > 0 && snapshot.fiveHourReset < nowEpochSeconds;
204
+ snapshot.fiveHourReset > 0 &&
205
+ snapshot.fiveHourReset < nowEpochSeconds &&
206
+ snapshot.lastUpdatedEpoch >= snapshot.fiveHourReset;
200
207
  const sevenDayExpired =
201
- snapshot.sevenDayReset > 0 && snapshot.sevenDayReset < nowEpochSeconds;
208
+ snapshot.sevenDayReset > 0 &&
209
+ snapshot.sevenDayReset < nowEpochSeconds &&
210
+ snapshot.lastUpdatedEpoch >= snapshot.sevenDayReset;
202
211
  return {
203
212
  fiveHourUtilization: fiveHourExpired ? 0 : snapshot.fiveHourUtilization,
204
213
  sevenDayUtilization: sevenDayExpired ? 0 : snapshot.sevenDayUtilization,
@@ -76,6 +76,7 @@ const createFakeTmuxSessionRepository = (state: {
76
76
  killOwnSession: async () => undefined,
77
77
  sendKeys: async () => undefined,
78
78
  launchBareNameLeaderSession: async () => undefined,
79
+ attachOrCreateInteractiveSession: async () => undefined,
79
80
  };
80
81
  };
81
82
 
@@ -394,6 +394,7 @@ describe('spawn and finish sides agree on the reactivation trigger predicate', (
394
394
  runCommand: jest
395
395
  .fn()
396
396
  .mockResolvedValue({ stdout: '', stderr: '', exitCode: 0 }),
397
+ spawnInteractive: jest.fn(),
397
398
  };
398
399
  spawnMockClaudeTokenUsageRepository = {
399
400
  ensureObservable: jest.fn().mockResolvedValue(undefined),
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AAwNzB,eAAO,MAAM,OAAO,SAAgB,CAAC;AAsjCrC,eAAO,MAAM,uBAAuB,GAAI,OAAO,OAAO,KAAG,IAGxD,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,MAAM,MAAM,EAAE,EACd,kBAAkB,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,KACzC,OAAO,CAAC,IAAI,CAMd,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AA8OzB,eAAO,MAAM,OAAO,SAAgB,CAAC;AA2kCrC,eAAO,MAAM,uBAAuB,GAAI,OAAO,OAAO,KAAG,IAGxD,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,MAAM,MAAM,EAAE,EACd,kBAAkB,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,KACzC,OAAO,CAAC,IAAI,CAMd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tokenStatusWriter.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/tokenStatusWriter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAEL,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EAGZ,MAAM,+DAA+D,CAAC;AAGvE,OAAO,EAAE,kCAAkC,EAAE,MAAM,gFAAgF,CAAC;AACpI,OAAO,EAAE,4BAA4B,EAAE,MAAM,0EAA0E,CAAC;AACxH,OAAO,EAAE,iBAAiB,EAAiB,MAAM,4BAA4B,CAAC;AAU9E,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,iBAAiB,GAAG,IAAI,CAAC;IAC3D,4BAA4B,CAAC,EAAE,kCAAkC,CAAC;IAClE,eAAe,CAAC,EAAE,4BAA4B,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,uBAAuB,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACxD,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AA0EF,eAAO,MAAM,wBAAwB,GACnC,UAAU,iBAAiB,GAAG,IAAI,KACjC,sBAAsB,GAAG,IA0B3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,uBAAuB,KAAG,IAkHlE,CAAC"}
1
+ {"version":3,"file":"tokenStatusWriter.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/tokenStatusWriter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAEL,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EAGZ,MAAM,+DAA+D,CAAC;AAGvE,OAAO,EAAE,kCAAkC,EAAE,MAAM,gFAAgF,CAAC;AACpI,OAAO,EAAE,4BAA4B,EAAE,MAAM,0EAA0E,CAAC;AACxH,OAAO,EAAE,iBAAiB,EAAiB,MAAM,4BAA4B,CAAC;AAU9E,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,iBAAiB,GAAG,IAAI,CAAC;IAC3D,4BAA4B,CAAC,EAAE,kCAAkC,CAAC;IAClE,eAAe,CAAC,EAAE,4BAA4B,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,uBAAuB,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACxD,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AA0EF,eAAO,MAAM,wBAAwB,GACnC,UAAU,iBAAiB,GAAG,IAAI,KACjC,sBAAsB,GAAG,IA2B3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,uBAAuB,KAAG,IAkHlE,CAAC"}
@@ -5,5 +5,6 @@ export declare class NodeLocalCommandRunner implements LocalCommandRunner {
5
5
  stderr: string;
6
6
  exitCode: number;
7
7
  }>;
8
+ spawnInteractive: (program: string, args: string[]) => void;
8
9
  }
9
10
  //# sourceMappingURL=NodeLocalCommandRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeLocalCommandRunner.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeLocalCommandRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,6DAA6D,CAAC;AAQrE,qBAAa,sBAAuB,YAAW,kBAAkB;IACzD,UAAU,CACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CAyCH"}
1
+ {"version":3,"file":"NodeLocalCommandRunner.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeLocalCommandRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,6DAA6D,CAAC;AAQrE,qBAAa,sBAAuB,YAAW,kBAAkB;IACzD,UAAU,CACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IA0CF,gBAAgB,GAAI,SAAS,MAAM,EAAE,MAAM,MAAM,EAAE,KAAG,IAAI,CAExD;CACH"}
@@ -14,6 +14,7 @@ export declare class NodeTmuxSessionRepository implements TmuxSessionRepository
14
14
  killOwnSession: () => Promise<void>;
15
15
  private stopScopeUnit;
16
16
  sendKeys: (sessionName: string, literalText: string) => Promise<void>;
17
+ attachOrCreateInteractiveSession: (issueUrl: string, scopeLibPath: string | null) => Promise<void>;
17
18
  launchBareNameLeaderSession: (name: string) => Promise<void>;
18
19
  private sendEnter;
19
20
  private delaySubmit;
@@ -1 +1 @@
1
- {"version":3,"file":"NodeTmuxSessionRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeTmuxSessionRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6DAA6D,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAC;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAWxE,qBAAa,yBAA0B,YAAW,qBAAqB;IAEnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBAFvB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,GAAE,MAAgB,EAC/B,uBAAuB,GAAE,MAA0C;IAGtF,oBAAoB,QAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAYhD;IAEF,4BAA4B,QAAa,OAAO,CAAC,eAAe,EAAE,CAAC,CAkBjE;IAEF,kCAAkC,QAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAY9D;IAEF,qBAAqB,GACnB,aAAa,MAAM,EACnB,iBAAiB,MAAM,EACvB,UAAU,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CAcd;IAEF,WAAW,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CActD;IAEF,cAAc,QAAa,OAAO,CAAC,IAAI,CAAC,CAatC;IAEF,OAAO,CAAC,aAAa,CAsBnB;IAEF,QAAQ,GACN,aAAa,MAAM,EACnB,aAAa,MAAM,KAClB,OAAO,CAAC,IAAI,CAAC,CAiBd;IAEF,2BAA2B,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAc/D;IAEF,OAAO,CAAC,SAAS,CAcf;IAEF,OAAO,CAAC,WAAW,CAOjB;CACH"}
1
+ {"version":3,"file":"NodeTmuxSessionRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeTmuxSessionRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6DAA6D,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAC;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAWxE,qBAAa,yBAA0B,YAAW,qBAAqB;IAEnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBAFvB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,GAAE,MAAgB,EAC/B,uBAAuB,GAAE,MAA0C;IAGtF,oBAAoB,QAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAYhD;IAEF,4BAA4B,QAAa,OAAO,CAAC,eAAe,EAAE,CAAC,CAkBjE;IAEF,kCAAkC,QAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAY9D;IAEF,qBAAqB,GACnB,aAAa,MAAM,EACnB,iBAAiB,MAAM,EACvB,UAAU,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CAcd;IAEF,WAAW,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CActD;IAEF,cAAc,QAAa,OAAO,CAAC,IAAI,CAAC,CAatC;IAEF,OAAO,CAAC,aAAa,CAsBnB;IAEF,QAAQ,GACN,aAAa,MAAM,EACnB,aAAa,MAAM,KAClB,OAAO,CAAC,IAAI,CAAC,CAiBd;IAEF,gCAAgC,GAC9B,UAAU,MAAM,EAChB,cAAc,MAAM,GAAG,IAAI,KAC1B,OAAO,CAAC,IAAI,CAAC,CAgCd;IAEF,2BAA2B,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAc/D;IAEF,OAAO,CAAC,SAAS,CAcf;IAEF,OAAO,CAAC,WAAW,CAOjB;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProxyClaudeTokenUsageRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qEAAqE,CAAC;AAOjH,qBAAa,+BAAgC,YAAW,0BAA0B;IAE9E,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAChC,IAAI,GAAE,MAAmB;IAG5C,gBAAgB,QAAa,OAAO,CAAC,IAAI,CAAC,CAExC;IAEF,uBAAuB,QAAa,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAuF7D;IAEF,sBAAsB,QAAa,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkChE;IAEF,OAAO,CAAC,0BAA0B,CAShC;IAEF,OAAO,CAAC,aAAa,CAYnB;IAEF,YAAY,QAAO,MAAM,CAAoC;CAC9D"}
1
+ {"version":3,"file":"ProxyClaudeTokenUsageRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ProxyClaudeTokenUsageRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qEAAqE,CAAC;AAOjH,qBAAa,+BAAgC,YAAW,0BAA0B;IAE9E,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,iBAAiB,EAAE,MAAM,GAAG,IAAI,EAChC,IAAI,GAAE,MAAmB;IAG5C,gBAAgB,QAAa,OAAO,CAAC,IAAI,CAAC,CAExC;IAEF,uBAAuB,QAAa,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA2F7D;IAEF,sBAAsB,QAAa,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkChE;IAEF,OAAO,CAAC,0BAA0B,CAShC;IAEF,OAAO,CAAC,aAAa,CAYnB;IAEF,YAAY,QAAO,MAAM,CAAoC;CAC9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"StartPreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/StartPreparationUseCase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StartPreparationUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/StartPreparationUseCase.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,6 @@ export interface LocalCommandRunner {
7
7
  stderr: string;
8
8
  exitCode: number;
9
9
  }>;
10
+ spawnInteractive(program: string, args: string[]): void;
10
11
  }
11
12
  //# sourceMappingURL=LocalCommandRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LocalCommandRunner.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/LocalCommandRunner.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CACR,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ"}
1
+ {"version":3,"file":"LocalCommandRunner.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/LocalCommandRunner.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CACR,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACzD"}
@@ -8,5 +8,6 @@ export interface TmuxSessionRepository {
8
8
  killOwnSession: () => Promise<void>;
9
9
  sendKeys: (sessionName: string, literalText: string) => Promise<void>;
10
10
  launchBareNameLeaderSession: (name: string) => Promise<void>;
11
+ attachOrCreateInteractiveSession: (issueUrl: string, scopeLibPath: string | null) => Promise<void>;
11
12
  }
12
13
  //# sourceMappingURL=TmuxSessionRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TmuxSessionRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/TmuxSessionRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,oBAAoB,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,4BAA4B,EAAE,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/D,kCAAkC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,qBAAqB,EAAE,CACrB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,2BAA2B,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D"}
1
+ {"version":3,"file":"TmuxSessionRepository.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/adapter-interfaces/TmuxSessionRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,oBAAoB,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,4BAA4B,EAAE,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/D,kCAAkC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,qBAAqB,EAAE,CACrB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,2BAA2B,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,gCAAgC,EAAE,CAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GAAG,IAAI,KACxB,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"GenerateConsoleListsUseCase.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/console/GenerateConsoleListsUseCase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GenerateConsoleListsUseCase.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/console/GenerateConsoleListsUseCase.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export type TokenRateLimitSnapshot = {
11
11
  sevenDaySonnetRejected: boolean;
12
12
  sevenDayOpusRejected: boolean;
13
13
  hasWindowData: boolean;
14
+ lastUpdatedEpoch: number;
14
15
  };
15
16
  export type TokenRateLimitDecision = {
16
17
  fiveHourUtilization: number | null;
@@ -1 +1 @@
1
- {"version":3,"file":"GenerateTokenStatusUseCase.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/dashboard/GenerateTokenStatusUseCase.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAE/C,MAAM,MAAM,sBAAsB,GAAG;IACnC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sBAAsB,EAAE,OAAO,CAAC;IAChC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sBAAsB,EAAE,OAAO,CAAC;IAChC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAKF,eAAO,MAAM,eAAe,GAC1B,UAAU,sBAAsB,GAAG,IAAI,KACtC,gBA6BF,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACzC,QAAQ,WAAW,EAAE,KACpB,uBAAuB,GAAG,IAa5B,CAAC;AAEF,qBAAa,0BAA0B;IACrC,GAAG,GAAI,OAAO,wBAAwB,KAAG,WAAW,EAAE,CAoBpD;IAEF,OAAO,CAAC,gBAAgB,CAyCtB;IAEF,OAAO,CAAC,UAAU,CAuChB;CACH"}
1
+ {"version":3,"file":"GenerateTokenStatusUseCase.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/dashboard/GenerateTokenStatusUseCase.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAE/C,MAAM,MAAM,sBAAsB,GAAG;IACnC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sBAAsB,EAAE,OAAO,CAAC;IAChC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sBAAsB,EAAE,OAAO,CAAC;IAChC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAKF,eAAO,MAAM,eAAe,GAC1B,UAAU,sBAAsB,GAAG,IAAI,KACtC,gBA6BF,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACzC,QAAQ,WAAW,EAAE,KACpB,uBAAuB,GAAG,IAa5B,CAAC;AAEF,qBAAa,0BAA0B;IACrC,GAAG,GAAI,OAAO,wBAAwB,KAAG,WAAW,EAAE,CAoBpD;IAEF,OAAO,CAAC,gBAAgB,CA6CtB;IAEF,OAAO,CAAC,UAAU,CA2ChB;CACH"}