vibe-usage-cli 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +275 -2
  3. package/build/cli.js +197 -0
  4. package/build/core/claude-processes.d.ts +51 -0
  5. package/build/core/claude-processes.js +288 -0
  6. package/build/core/claude-profile.d.ts +2 -0
  7. package/build/core/claude-profile.js +146 -0
  8. package/build/core/claude-renew.d.ts +12 -0
  9. package/build/core/claude-renew.js +79 -0
  10. package/build/core/continuity.d.ts +90 -0
  11. package/build/core/continuity.js +1244 -0
  12. package/build/core/diagnostics.d.ts +25 -0
  13. package/build/core/diagnostics.js +229 -0
  14. package/build/core/environment.d.ts +12 -0
  15. package/build/core/environment.js +25 -0
  16. package/build/core/errors.d.ts +23 -0
  17. package/build/core/errors.js +48 -0
  18. package/build/core/files.d.ts +20 -0
  19. package/build/core/files.js +136 -0
  20. package/build/core/glance.d.ts +25 -0
  21. package/build/core/glance.js +107 -0
  22. package/build/core/handover.d.ts +61 -0
  23. package/build/core/handover.js +333 -0
  24. package/build/core/history.d.ts +19 -0
  25. package/build/core/history.js +134 -0
  26. package/build/core/launch.d.ts +78 -0
  27. package/build/core/launch.js +256 -0
  28. package/build/core/measurements.d.ts +11 -0
  29. package/build/core/measurements.js +75 -0
  30. package/build/core/model-families.d.ts +12 -0
  31. package/build/core/model-families.js +61 -0
  32. package/build/core/model.d.ts +32 -0
  33. package/build/core/model.js +86 -0
  34. package/build/core/models.d.ts +25 -0
  35. package/build/core/models.js +164 -0
  36. package/build/core/redact.d.ts +2 -0
  37. package/build/core/redact.js +64 -0
  38. package/build/core/selection.d.ts +65 -0
  39. package/build/core/selection.js +173 -0
  40. package/build/core/service.d.ts +35 -0
  41. package/build/core/service.js +484 -0
  42. package/build/core/sessions.d.ts +87 -0
  43. package/build/core/sessions.js +868 -0
  44. package/build/core/settings.d.ts +16 -0
  45. package/build/core/settings.js +377 -0
  46. package/build/core/tray-icon.d.ts +5 -0
  47. package/build/core/tray-icon.js +91 -0
  48. package/build/core/updater.d.ts +29 -0
  49. package/build/core/updater.js +88 -0
  50. package/build/core/updates.d.ts +5 -0
  51. package/build/core/updates.js +29 -0
  52. package/build/launchers/discover-antigravity.ps1 +68 -0
  53. package/build/launchers/terminal.ps1 +78 -0
  54. package/build/main/main.js +587 -0
  55. package/build/providers/antigravity.d.ts +48 -0
  56. package/build/providers/antigravity.js +463 -0
  57. package/build/providers/claude-keychain.d.ts +13 -0
  58. package/build/providers/claude-keychain.js +42 -0
  59. package/build/providers/claude.d.ts +33 -0
  60. package/build/providers/claude.js +218 -0
  61. package/build/providers/codex.d.ts +21 -0
  62. package/build/providers/codex.js +221 -0
  63. package/build/providers/common.d.ts +63 -0
  64. package/build/providers/common.js +294 -0
  65. package/build/providers/cursor.d.ts +14 -0
  66. package/build/providers/cursor.js +141 -0
  67. package/build/providers/profiles.d.ts +10 -0
  68. package/build/providers/profiles.js +69 -0
  69. package/build/providers/tls-trust.d.ts +7 -0
  70. package/build/providers/tls-trust.js +29 -0
  71. package/build/providers/types.d.ts +19 -0
  72. package/build/providers/types.js +1 -0
  73. package/build/shared/account-state.d.ts +19 -0
  74. package/build/shared/account-state.js +75 -0
  75. package/build/shared/catalog.d.ts +85 -0
  76. package/build/shared/catalog.js +125 -0
  77. package/build/shared/format.d.ts +40 -0
  78. package/build/shared/format.js +134 -0
  79. package/build/shared/i18n/index.d.ts +12 -0
  80. package/build/shared/i18n/index.js +40 -0
  81. package/build/shared/i18n/locales/de.d.ts +2 -0
  82. package/build/shared/i18n/locales/de.js +328 -0
  83. package/build/shared/i18n/locales/en.d.ts +328 -0
  84. package/build/shared/i18n/locales/en.js +330 -0
  85. package/build/shared/i18n/locales/es.d.ts +2 -0
  86. package/build/shared/i18n/locales/es.js +328 -0
  87. package/build/shared/i18n/locales/fr.d.ts +2 -0
  88. package/build/shared/i18n/locales/fr.js +328 -0
  89. package/build/shared/i18n/locales/it.d.ts +2 -0
  90. package/build/shared/i18n/locales/it.js +327 -0
  91. package/build/shared/i18n/locales/ja.d.ts +2 -0
  92. package/build/shared/i18n/locales/ja.js +322 -0
  93. package/build/shared/i18n/locales/ko.d.ts +2 -0
  94. package/build/shared/i18n/locales/ko.js +322 -0
  95. package/build/shared/i18n/locales/nl.d.ts +2 -0
  96. package/build/shared/i18n/locales/nl.js +327 -0
  97. package/build/shared/i18n/locales/pl.d.ts +2 -0
  98. package/build/shared/i18n/locales/pl.js +332 -0
  99. package/build/shared/i18n/locales/pt.d.ts +2 -0
  100. package/build/shared/i18n/locales/pt.js +328 -0
  101. package/build/shared/i18n/locales/ru.d.ts +2 -0
  102. package/build/shared/i18n/locales/ru.js +331 -0
  103. package/build/shared/i18n/locales/tr.d.ts +2 -0
  104. package/build/shared/i18n/locales/tr.js +322 -0
  105. package/build/shared/i18n/locales/zh.d.ts +2 -0
  106. package/build/shared/i18n/locales/zh.js +322 -0
  107. package/build/shared/i18n/messages.d.ts +10 -0
  108. package/build/shared/i18n/messages.js +1 -0
  109. package/build/shared/ipc.d.ts +138 -0
  110. package/build/shared/ipc.js +2 -0
  111. package/build/shared/tsconfig.tsbuildinfo +1 -0
  112. package/build/shared/types.d.ts +205 -0
  113. package/build/shared/types.js +1 -0
  114. package/package.json +144 -4
@@ -0,0 +1,10 @@
1
+ import type { en } from './locales/en.ts';
2
+ type EnglishKey = keyof typeof en;
3
+ type PluralCategory = Intl.LDMLPluralRule;
4
+ type PluralFamily<K> = K extends `${infer Base}_other` ? Base : never;
5
+ export type PluralKey = PluralFamily<EnglishKey>;
6
+ type PluralVariant = `${PluralKey}_${PluralCategory}`;
7
+ type SingularKey = Exclude<EnglishKey, PluralVariant>;
8
+ export type MessageKey = SingularKey | PluralKey;
9
+ export type Messages = Record<SingularKey, string> & Record<`${PluralKey}_other`, string> & Partial<Record<`${PluralKey}_${Exclude<PluralCategory, 'other'>}`, string>>;
10
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,138 @@
1
+ import type { Auto, ProfileProviderId, ProviderId } from './catalog.ts';
2
+ import type { Diagnostics, ErrorPayload, QuietHours, Settings, Snapshot, TransitionRecord } from './types.ts';
3
+ export declare const IPC_PREFIX = "vibe:";
4
+ export declare const SNAPSHOT_EVENT: "vibe:update";
5
+ export type LaunchMode = 'terminal' | 'app';
6
+ export type SettingsPatch = Partial<Omit<Settings, 'quietHours'>> & {
7
+ quietHours?: QuietHours | null;
8
+ };
9
+ export type ModelCatalog = Record<ProviderId, string[]>;
10
+ export interface SessionSummary {
11
+ id: string;
12
+ providerId: ProviderId;
13
+ title: string;
14
+ updatedAt: number;
15
+ sizeBytes: number;
16
+ turnCount: number;
17
+ model: string;
18
+ }
19
+ export interface SmartLaunchPreview {
20
+ providerId: ProviderId;
21
+ verified: boolean;
22
+ isFallback: boolean;
23
+ headroomPercent: number | null;
24
+ model: string | null;
25
+ }
26
+ export interface HandoverRequest {
27
+ projectDir: string;
28
+ fromProvider: ProviderId | Auto;
29
+ toProvider: ProviderId | Auto;
30
+ sessionId: string;
31
+ sessionProvider?: ProviderId;
32
+ targetModel?: string;
33
+ sourceAccountId?: string | undefined;
34
+ }
35
+ export interface HandoverPreview {
36
+ from: ProviderId | null;
37
+ to: ProviderId;
38
+ model: string | null;
39
+ sessionId: string | null;
40
+ sessionProvider: ProviderId | null;
41
+ brief: string;
42
+ }
43
+ export interface HandoverResult {
44
+ from: ProviderId | null;
45
+ to: ProviderId;
46
+ model: string | null;
47
+ mode: LaunchMode;
48
+ }
49
+ export interface LoginItem {
50
+ supported: boolean;
51
+ enabled: boolean;
52
+ }
53
+ export interface HistorySeries {
54
+ accountId: string;
55
+ windowId: string;
56
+ samples: (readonly [number, number])[];
57
+ }
58
+ export interface ContinueOutcome {
59
+ status: 'continued';
60
+ to: ProviderId;
61
+ accountId: string | null;
62
+ resumed: boolean;
63
+ mode: LaunchMode;
64
+ }
65
+ export interface Canceled {
66
+ status: 'canceled';
67
+ }
68
+ export interface VibeMethods {
69
+ snapshot(): Snapshot;
70
+ refresh(providerId?: ProviderId): Snapshot;
71
+ saveSettings(patch: SettingsPatch): Snapshot;
72
+ pin(): Snapshot;
73
+ loginItem(): LoginItem;
74
+ setLoginItem(enabled: boolean): LoginItem;
75
+ hide(): void;
76
+ dismissAccount(accountId: string): Snapshot;
77
+ exportSettings(): Canceled | {
78
+ status: 'saved';
79
+ };
80
+ importSettings(): Canceled | {
81
+ status: 'imported';
82
+ };
83
+ resetSettings(): Snapshot;
84
+ dismissSettingsNotice(): Snapshot;
85
+ diagnostics(): Diagnostics;
86
+ copyDiagnostics(): void;
87
+ exportDiagnostics(): Canceled | {
88
+ status: 'saved';
89
+ };
90
+ restoreDismissedAccounts(): Snapshot;
91
+ signIn(providerId: ProviderId, accountId?: string): void;
92
+ addAccount(providerId: ProfileProviderId): Snapshot;
93
+ launchClaude(accountId: string): Canceled | {
94
+ status: 'launched';
95
+ };
96
+ getModels(): ModelCatalog;
97
+ previewSmartLaunch(): SmartLaunchPreview;
98
+ smartLaunch(): Canceled | ({
99
+ status: 'launched';
100
+ verified: boolean;
101
+ } & Omit<HandoverResult, 'from'>);
102
+ listSessions(options: {
103
+ providerId: ProviderId | Auto;
104
+ projectDir: string;
105
+ }): SessionSummary[];
106
+ selectDirectory(options: {
107
+ defaultPath?: string;
108
+ }): string | null;
109
+ defaultProjectDir(): string;
110
+ previewHandover(request: HandoverRequest): HandoverPreview;
111
+ executeHandover(request: HandoverRequest): HandoverResult;
112
+ continueWork(suggestionId: string): Canceled | ContinueOutcome;
113
+ dismissSuggestion(suggestionId: string): Snapshot;
114
+ history(): HistorySeries[];
115
+ transitions(): TransitionRecord[];
116
+ retryTransition(id: string): Canceled | ContinueOutcome;
117
+ openUpdate(): void;
118
+ downloadUpdate(): void;
119
+ installUpdate(): void;
120
+ fitHeight(height: number): void;
121
+ }
122
+ export type Channel = keyof VibeMethods;
123
+ export type Envelope<T> = {
124
+ ok: true;
125
+ value: T;
126
+ } | {
127
+ ok: false;
128
+ error: ErrorPayload;
129
+ };
130
+ type AsyncMethods = {
131
+ [K in Channel]: (...args: Parameters<VibeMethods[K]>) => Promise<ReturnType<VibeMethods[K]>>;
132
+ };
133
+ export type Platform = 'aix' | 'android' | 'cygwin' | 'darwin' | 'freebsd' | 'haiku' | 'linux' | 'netbsd' | 'openbsd' | 'sunos' | 'win32';
134
+ export interface VibeApi extends AsyncMethods {
135
+ readonly platform: Platform;
136
+ onSnapshot(callback: (snapshot: Snapshot) => void): () => void;
137
+ }
138
+ export {};
@@ -0,0 +1,2 @@
1
+ export const IPC_PREFIX = 'vibe:';
2
+ export const SNAPSHOT_EVENT = `${IPC_PREFIX}update`;
@@ -0,0 +1 @@
1
+ {"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/typescript/lib/lib.es2025.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../src/shared/i18n/locales/en.ts","../../src/shared/i18n/messages.ts","../../src/shared/i18n/locales/de.ts","../../src/shared/i18n/locales/es.ts","../../src/shared/i18n/locales/fr.ts","../../src/shared/i18n/locales/it.ts","../../src/shared/i18n/locales/ja.ts","../../src/shared/i18n/locales/ko.ts","../../src/shared/i18n/locales/nl.ts","../../src/shared/i18n/locales/pl.ts","../../src/shared/i18n/locales/pt.ts","../../src/shared/i18n/locales/ru.ts","../../src/shared/i18n/locales/tr.ts","../../src/shared/i18n/locales/zh.ts","../../src/shared/i18n/index.ts","../../src/shared/catalog.ts","../../src/shared/types.ts","../../src/shared/account-state.ts","../../src/shared/ipc.ts","../../src/shared/format.ts"],"fileIdsList":[[93],[91],[91,92,93,95],[77,78,79,80,81,82,83,84,85,86,87,88,89,90],[78],[77],[92,93],[91,92]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"c2ae6acfe0dcc94730ca6298b3af6b80a131d9643c10c7e82d892610ff95e90e","signature":"f6cd237c216c6e95a059b3494787f425058caeb1aecd9064599048b67e575223","impliedFormat":99},{"version":"ee705ca9c5fff618be1a23b5a4f7a0f41beb3ad9b296d56886a7fd3f8399a107","signature":"6a5309e4948ae75a56e84efd2cd39e321cdecb48247dce1fb13092fb78064b5f","impliedFormat":99},{"version":"3c34d45f4ac67135b07b41613faa2d29315b57f681018fd3f7facc1048f1b738","signature":"1cc9a80f4b028aeab43d3ca54acb4b0ce134135709f01072f9433c9ada490adb","impliedFormat":99},{"version":"30c6e53974b2079a5e9f46ad9ba99830894b419d7822b48598dca375bc4ea177","signature":"6f0ada4fe72466b874f775055349f5c7566cf8cf722ed89da93f3dfceb3afe7d","impliedFormat":99},{"version":"b9e668d3796f9f05a39ada826c7b2c12a6bd5bcf0192256582b75ba2dc7ad852","signature":"8d2f7d7d7a97aa7f509a9a6a1e28b29f1ed39de2d33cd233ba3806d546199427","impliedFormat":99},{"version":"d3cca327a2709134d1df37213948e50c5458bf243419f6124c9a599f795f082c","signature":"00fb91cfdeb99505fc8cdb1afb99be6ec6c46575ea44f952012298bd20347525","impliedFormat":99},{"version":"9db06d19598a97ecf0f3f2e8fb2ae2a3742016d43f161439f5a8e34309ecc299","signature":"b37304b680a774fdacc31d61bda4f2546316b1ee2cc7c2b557bb7470926b6ee2","impliedFormat":99},{"version":"68a90114a42ae0fa6aa747dc7984b9ffc99750a028693433671466576bbbc32b","signature":"eeac254ad35a45ec11eb006e264ef1662e66d8d5d43b8a3ec25e4a38c5b56677","impliedFormat":99},{"version":"bb6880bf268923193f5466927effee0bc781feedf7bb53d357a55dbe8ea929c5","signature":"429a1d407724170b217b4051c4225ffcfdd439391e684fbb67b8f78d22b8ee0c","impliedFormat":99},{"version":"d61d47ade0682c42704f87be1073373467d33b32527755f81d958beb9c35b687","signature":"fd4b755874b6228e79f55989db0ed31f97ae4b0c5897730562152330aa619791","impliedFormat":99},{"version":"a158f696dba132fbd4ac28c00a7f1a5ed352afef3f62477b88fc35746281a152","signature":"f5374857b93625c8c6ba7f61f438b230116e9caf9333f8bac3b9ec006d7fb054","impliedFormat":99},{"version":"7073431e2d456af608747429e77b01ecd10d19220a7e72b53f1ea4bcc1eb95b5","signature":"a5c821f92f6da1f53c77cb355384ff62010263d10d7c4850fd12f8de75c345d3","impliedFormat":99},{"version":"542b98ed3f6455f0c27873ddf7bf11274b89bdbd50e44c1951b8a9d127928685","signature":"539ec680871811b446280da0b444ef974af66179016f18fb345da666d94b044b","impliedFormat":99},{"version":"e70212482ffbebc80b92e79a0a307bef0f2fc996d5e8b71d6554bec2b2a88de6","signature":"1184235aac7195cd920b69e7c7ef1710c0aefb7b639e3b12d8cb22019757c8aa","impliedFormat":99},{"version":"7c7fe46e99537c318e0fa67a7e25001f178dbbb147a7891508b8d349a52a56c2","signature":"1cc55f5b533a28ee4df4a9ae92bf01fe84daa4f6844057c6c3f15157634aa967","impliedFormat":99},{"version":"9d3d6f4f8e6c31fc79b437868eeefe4195e000696fd77d041a1338284f283426","signature":"a4c9b10941378a3801a3ac051fcc293d7d0e1f8e2475658b5cfaa023932b0574","impliedFormat":99},{"version":"f6c2797357ce498152e2a571bb3192a3684804b254dcca410b8cd82351d85cea","signature":"c184ebeadf52988d2e0ced0e01c5900e8c028c52711254bbfdab9ff79bbece91","impliedFormat":99},{"version":"954a697e2c9fb276d37664c7ad11355f53ba82975ae2f4959da74ad5733123b2","signature":"99ec6f573fae2ab48f809cf998a36e47630d80c04d522bc645984b944ecdeb77","impliedFormat":99},{"version":"aa9b21f451d4d137b908a56f6e8eb66a7d8f22e974461099c7320dc0ab657057","signature":"a937acdf4da60294b6f60eec7b984669d598fd50919d0677ca28c1b77ffaaee9","impliedFormat":99},{"version":"380fc3fa8082fded92e5674c07108ea2a105681222abf13adfb91d196e8569ba","signature":"9c33c3fb0b4d0e8d3bc04563cbea4dd777aaaeeeee5b4d929555bef652bbb96e","impliedFormat":99}],"root":[[77,96]],"options":{"composite":true,"erasableSyntaxOnly":true,"exactOptionalPropertyTypes":true,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noUncheckedIndexedAccess":true,"outDir":"./","rewriteRelativeImportExtensions":true,"rootDir":"../../src/shared","skipLibCheck":true,"strict":true,"target":12,"verbatimModuleSyntax":true},"referencedMap":[[94,1],[92,2],[96,3],[91,4],[79,5],[77,1],[80,5],[81,5],[82,5],[83,5],[84,5],[85,5],[86,5],[87,5],[88,5],[89,5],[90,5],[78,6],[95,7],[93,8]],"latestChangedDtsFile":"./format.d.ts","version":"6.0.3"}
@@ -0,0 +1,205 @@
1
+ import type { ACCOUNT_LABEL_KEYS, ACCOUNT_ORIGINS, AUTO_CONTINUE, AUTOMATION_MODES, INHERIT, ProviderId, SUGGESTION_KINDS, TRANSITION_STATUSES } from './catalog.ts';
2
+ import type { Language, MessageKey } from './i18n/index.ts';
3
+ export type AppErrorCode = 'unexpected' | 'account_not_found' | 'invalid_provider' | 'invalid_argument' | 'invalid_settings' | 'folder_not_found' | 'file_not_found' | 'invalid_path' | 'session_not_found' | 'launch_failed' | 'app_not_found' | 'sender_rejected' | 'no_verified_quota' | 'no_cli' | 'unknown_command' | 'suggestion_expired' | 'settings_locked' | 'session_newer_elsewhere' | 'session_still_running' | 'process_unknown' | 'not_picked_up' | 'bypass_not_consented' | 'session_unsaved';
4
+ export type ProviderErrorCode = 'auth_missing' | 'auth_expired' | 'auth_invalid' | 'auth_rejected' | 'rate_limited' | 'transport_error' | 'request_timeout' | 'response_too_large' | 'invalid_response' | 'http_rejected' | 'endpoint_not_allowed' | 'binary_missing' | 'invalid_binary' | 'process_failed' | 'process_timeout' | 'rpc_error' | 'rpc_timeout' | 'server_closed' | 'app_closed' | 'local_service_unavailable' | 'unsupported_platform' | 'unsupported_profile' | 'keychain_unavailable' | 'provider_failed' | 'tls_certificate_error' | 'trust_store_unavailable';
5
+ export type ErrorCode = AppErrorCode | ProviderErrorCode;
6
+ export interface ErrorPayload {
7
+ code: ErrorCode;
8
+ params: Readonly<Record<string, string>>;
9
+ }
10
+ export interface Amounts {
11
+ used?: number;
12
+ limit?: number;
13
+ remaining?: number;
14
+ bonus?: number;
15
+ }
16
+ export interface QuotaWindow {
17
+ id: string;
18
+ usedPercent: number | null;
19
+ remainingPercent: number | null;
20
+ resetsAt: string | null;
21
+ label?: string;
22
+ labelKey?: MessageKey;
23
+ labelParams?: {
24
+ n: number;
25
+ };
26
+ detailKey?: MessageKey;
27
+ valueKey?: MessageKey;
28
+ durationMinutes?: number;
29
+ scope?: string;
30
+ active?: boolean;
31
+ group?: 'team';
32
+ section?: 'details';
33
+ partial?: boolean;
34
+ except?: string[];
35
+ amounts?: Amounts;
36
+ stale?: boolean;
37
+ exhaustsAt?: string;
38
+ }
39
+ export type AccountLabelKey = (typeof ACCOUNT_LABEL_KEYS)[number];
40
+ export type AccountOrigin = (typeof ACCOUNT_ORIGINS)[number];
41
+ export interface Account {
42
+ id: string;
43
+ providerId: ProviderId;
44
+ label?: string;
45
+ labelKey?: AccountLabelKey;
46
+ configDir?: string;
47
+ configDirExplicit?: boolean;
48
+ origin?: AccountOrigin;
49
+ signInUntil?: number;
50
+ email?: string;
51
+ primary: boolean;
52
+ enabled: boolean;
53
+ }
54
+ export interface WindowBounds {
55
+ x: number;
56
+ y: number;
57
+ width: number;
58
+ height: number;
59
+ }
60
+ export type AutoContinue = (typeof AUTO_CONTINUE)[number];
61
+ export type AutomationMode = (typeof AUTOMATION_MODES)[number];
62
+ export type ReturnToPrimary = AutomationMode;
63
+ export type ReopenAfterRestart = AutomationMode;
64
+ export interface ProjectPreference {
65
+ projectDir: string;
66
+ tool?: ProviderId;
67
+ model?: string;
68
+ accountId?: string;
69
+ autoContinue: AutoContinue | typeof INHERIT;
70
+ }
71
+ export interface QuietHours {
72
+ start: string;
73
+ end: string;
74
+ }
75
+ export interface Settings {
76
+ schemaVersion: number;
77
+ pinned: boolean;
78
+ intervalSeconds: number;
79
+ accounts: Account[];
80
+ dismissedAccountIds: string[];
81
+ providerOrder: ProviderId[];
82
+ homeOrder?: ProviderId[];
83
+ preferredModels: Partial<Record<ProviderId, string>>;
84
+ language: Language;
85
+ notifications: boolean;
86
+ compareAccounts: boolean;
87
+ autoContinue: AutoContinue;
88
+ returnToPrimary: ReturnToPrimary;
89
+ reopenAfterRestart: ReopenAfterRestart;
90
+ compact: boolean;
91
+ checkUpdates: boolean;
92
+ projectPreferences: ProjectPreference[];
93
+ lowQuotaPercent: number;
94
+ quietHours?: QuietHours;
95
+ window?: WindowBounds;
96
+ }
97
+ export type SettingsNotice = 'recovered' | 'unrecoverable' | 'future';
98
+ export type StatusCode = ProviderErrorCode | 'no_limits_reported' | 'no_accounts';
99
+ export type AccountStatus = 'pending' | 'ok' | 'stale' | 'no_limits_reported' | ProviderErrorCode;
100
+ export type ProviderStatus = AccountStatus | 'unavailable';
101
+ export interface MeasuredAccount extends Account {
102
+ status: AccountStatus;
103
+ windows: QuotaWindow[];
104
+ fetchedAt?: string;
105
+ plan?: string;
106
+ signedInAs?: string;
107
+ messageCode?: StatusCode;
108
+ }
109
+ export interface ProviderState {
110
+ id: ProviderId;
111
+ status: ProviderStatus;
112
+ accounts: MeasuredAccount[];
113
+ fetchedAt?: string;
114
+ messageCode?: StatusCode;
115
+ }
116
+ export interface Suggestion {
117
+ id: string;
118
+ kind: (typeof SUGGESTION_KINDS)[number];
119
+ providerId: ProviderId;
120
+ accountId: string;
121
+ remainingPercent: number;
122
+ target: {
123
+ providerId: ProviderId;
124
+ accountId: string | null;
125
+ };
126
+ projectDir: string;
127
+ sessionProvider: ProviderId;
128
+ }
129
+ export interface TransitionRecord {
130
+ id: string;
131
+ suggestionId: string;
132
+ createdAt: number;
133
+ updatedAt: number;
134
+ projectDir: string;
135
+ source: {
136
+ providerId: ProviderId;
137
+ accountId: string;
138
+ sessionId: string;
139
+ };
140
+ target: {
141
+ providerId: ProviderId;
142
+ accountId: string | null;
143
+ sessionId: string | null;
144
+ };
145
+ status: (typeof TRANSITION_STATUSES)[number];
146
+ errorCode: ErrorCode | null;
147
+ retryable?: boolean;
148
+ }
149
+ export interface UpdateInfo {
150
+ version: string;
151
+ url: string;
152
+ }
153
+ export type UpdateUnsupportedReason = 'unpackaged' | 'portable' | 'unsigned' | 'platform';
154
+ export type UpdateInstall = {
155
+ state: 'unsupported';
156
+ reason: UpdateUnsupportedReason;
157
+ } | {
158
+ state: 'ready';
159
+ } | {
160
+ state: 'downloading';
161
+ percent: number;
162
+ } | {
163
+ state: 'downloaded';
164
+ version: string;
165
+ } | {
166
+ state: 'failed';
167
+ };
168
+ export interface Snapshot {
169
+ providers: ProviderState[];
170
+ refreshing: boolean;
171
+ settings: Settings;
172
+ settingsNotice?: SettingsNotice;
173
+ suggestions?: Suggestion[];
174
+ update?: UpdateInfo;
175
+ updateInstall?: UpdateInstall;
176
+ }
177
+ export type Remedy = 'remedyInstallTool' | 'remedyInstallCli' | 'remedySignIn' | 'remedyOpenApp' | 'remedyUnlockKeychain' | 'remedyWaitRateLimit' | 'remedyCheckNetwork' | 'remedyCheckCertificates' | 'remedyNotSupported' | 'remedyAddAccount' | 'remedyWaitForRefresh' | 'remedyUpdateTool' | 'remedyRetryLater' | 'remedyReportIssue';
178
+ export interface AccountDiagnostics {
179
+ ordinal: number;
180
+ enabled: boolean;
181
+ primary: boolean;
182
+ status: AccountStatus;
183
+ messageCode: StatusCode | null;
184
+ ageMs: number | null;
185
+ stale: boolean;
186
+ remedy: Remedy | null;
187
+ }
188
+ export interface ProviderDiagnostics {
189
+ id: ProviderId;
190
+ installed: boolean | null;
191
+ status: ProviderStatus;
192
+ messageCode: StatusCode | null;
193
+ accountCount: number;
194
+ enabledCount: number;
195
+ ageMs: number | null;
196
+ stale: boolean;
197
+ remedy: Remedy | null;
198
+ accounts: AccountDiagnostics[];
199
+ }
200
+ export interface Diagnostics {
201
+ generatedAt: number;
202
+ intervalSeconds: number;
203
+ refreshing: boolean;
204
+ providers: ProviderDiagnostics[];
205
+ }
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,146 @@
1
1
  {
2
2
  "name": "vibe-usage-cli",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.1",
4
+ "description": "Track the quota left on Claude Code, Codex, Cursor and Antigravity from the Windows tray, the macOS menu bar or the terminal",
5
+ "author": "Mustafa Çağrı Güven",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/mustafacagri/vibe-usage.git"
10
+ },
11
+ "homepage": "https://github.com/mustafacagri/vibe-usage#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/mustafacagri/vibe-usage/issues"
14
+ },
15
+ "keywords": [
16
+ "claude-code",
17
+ "codex",
18
+ "cursor",
19
+ "antigravity",
20
+ "ai",
21
+ "quota",
22
+ "usage",
23
+ "rate-limit",
24
+ "cli"
25
+ ],
26
+ "type": "module",
27
+ "main": "build/main/main.js",
28
+ "bin": {
29
+ "vibe-usage": "build/cli.js"
30
+ },
31
+ "files": [
32
+ "build/cli.js",
33
+ "build/core/",
34
+ "build/providers/",
35
+ "build/shared/",
36
+ "build/launchers/"
37
+ ],
38
+ "engines": {
39
+ "node": ">=24"
40
+ },
41
+ "scripts": {
42
+ "build": "node scripts/build.ts",
43
+ "start": "npm run build && electron .",
44
+ "test": "node scripts/test.ts",
45
+ "test:coverage": "node scripts/test.ts --coverage",
46
+ "cli": "node src/cli.ts",
47
+ "watch": "node src/cli.ts watch",
48
+ "build:win": "npm run build && node scripts/package.ts --win",
49
+ "build:mac": "npm run build && node scripts/package.ts --mac",
50
+ "ui-check": "npm run build && electron scripts/ui-check/main.ts",
51
+ "probe:claude": "node scripts/probe-claude.ts",
52
+ "media": "npm run build && electron scripts/media/main.ts",
53
+ "icons": "node scripts/icons.ts",
54
+ "release:manifests": "node scripts/release-manifests.ts",
55
+ "lint": "eslint .",
56
+ "format": "prettier --write .",
57
+ "format:check": "prettier --check .",
58
+ "prepublishOnly": "npm run build"
59
+ },
60
+ "devDependencies": {
61
+ "@eslint/js": "10.0.1",
62
+ "@types/node": "24.19.2",
63
+ "electron": "44.8.0",
64
+ "electron-builder": "26.15.3",
65
+ "eslint": "10.13.0",
66
+ "prettier": "3.9.10",
67
+ "typescript": "6.0.3",
68
+ "typescript-eslint": "8.71.2"
69
+ },
70
+ "build": {
71
+ "appId": "dev.vibe.usage",
72
+ "productName": "Vibe Usage",
73
+ "extraMetadata": {
74
+ "name": "vibe-usage"
75
+ },
76
+ "publish": {
77
+ "provider": "github",
78
+ "owner": "mustafacagri",
79
+ "repo": "vibe-usage",
80
+ "releaseType": "release"
81
+ },
82
+ "artifactName": "Vibe-Usage-${version}-${os}-${arch}.${ext}",
83
+ "directories": {
84
+ "output": "release"
85
+ },
86
+ "files": [
87
+ "build/**/*.js",
88
+ "!build/cli.js",
89
+ "build/**/*.cjs",
90
+ "build/ui/index.html",
91
+ "build/ui/style.css",
92
+ "build/launchers/*",
93
+ "assets/*",
94
+ "LICENSE",
95
+ "package.json"
96
+ ],
97
+ "asarUnpack": [
98
+ "build/launchers/*"
99
+ ],
100
+ "win": {
101
+ "target": [
102
+ {
103
+ "target": "zip",
104
+ "arch": [
105
+ "x64",
106
+ "arm64"
107
+ ]
108
+ },
109
+ {
110
+ "target": "nsis",
111
+ "arch": [
112
+ "x64",
113
+ "arm64"
114
+ ]
115
+ }
116
+ ],
117
+ "icon": "assets/icon.png",
118
+ "signExecutable": false
119
+ },
120
+ "nsis": {
121
+ "oneClick": true,
122
+ "perMachine": false,
123
+ "artifactName": "Vibe-Usage-${version}-win-setup.${ext}"
124
+ },
125
+ "mac": {
126
+ "target": [
127
+ "dmg",
128
+ "zip"
129
+ ],
130
+ "category": "public.app-category.developer-tools",
131
+ "icon": "assets/icon.png",
132
+ "hardenedRuntime": false
133
+ },
134
+ "electronFuses": {
135
+ "runAsNode": false,
136
+ "enableCookieEncryption": true,
137
+ "enableNodeOptionsEnvironmentVariable": false,
138
+ "enableNodeCliInspectArguments": false,
139
+ "enableEmbeddedAsarIntegrityValidation": true,
140
+ "onlyLoadAppFromAsar": true
141
+ }
142
+ },
143
+ "dependencies": {
144
+ "electron-updater": "6.8.10"
145
+ }
146
+ }