looply-cli 0.5.9 → 0.5.11

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 (141) hide show
  1. package/dist/.src-hash +1 -1
  2. package/dist/account-failover.d.ts +30 -0
  3. package/dist/account-failover.d.ts.map +1 -0
  4. package/dist/account-failover.js +32 -0
  5. package/dist/account-failover.js.map +1 -0
  6. package/dist/autonomy-controller.d.ts +23 -1
  7. package/dist/autonomy-controller.d.ts.map +1 -1
  8. package/dist/autonomy-controller.js +50 -9
  9. package/dist/autonomy-controller.js.map +1 -1
  10. package/dist/autonomy-store.d.ts +33 -1
  11. package/dist/autonomy-store.d.ts.map +1 -1
  12. package/dist/autonomy-store.js +58 -8
  13. package/dist/autonomy-store.js.map +1 -1
  14. package/dist/autonomy-tick.d.ts +23 -1
  15. package/dist/autonomy-tick.d.ts.map +1 -1
  16. package/dist/autonomy-tick.js +80 -14
  17. package/dist/autonomy-tick.js.map +1 -1
  18. package/dist/bin.d.ts.map +1 -1
  19. package/dist/bin.js +25 -5
  20. package/dist/bin.js.map +1 -1
  21. package/dist/branch-delivery-wiring.d.ts.map +1 -1
  22. package/dist/branch-delivery-wiring.js +6 -1
  23. package/dist/branch-delivery-wiring.js.map +1 -1
  24. package/dist/branch-delivery.d.ts +135 -6
  25. package/dist/branch-delivery.d.ts.map +1 -1
  26. package/dist/branch-delivery.js +540 -80
  27. package/dist/branch-delivery.js.map +1 -1
  28. package/dist/branch-replay.d.ts +45 -0
  29. package/dist/branch-replay.d.ts.map +1 -0
  30. package/dist/branch-replay.js +123 -0
  31. package/dist/branch-replay.js.map +1 -0
  32. package/dist/commit-ownership.d.ts +102 -0
  33. package/dist/commit-ownership.d.ts.map +1 -0
  34. package/dist/commit-ownership.js +97 -0
  35. package/dist/commit-ownership.js.map +1 -0
  36. package/dist/coordinator-state.d.ts.map +1 -1
  37. package/dist/coordinator-state.js +21 -1
  38. package/dist/coordinator-state.js.map +1 -1
  39. package/dist/daemon-cmd.d.ts.map +1 -1
  40. package/dist/daemon-cmd.js +53 -4
  41. package/dist/daemon-cmd.js.map +1 -1
  42. package/dist/daemon.d.ts +10 -1
  43. package/dist/daemon.d.ts.map +1 -1
  44. package/dist/daemon.js +31 -5
  45. package/dist/daemon.js.map +1 -1
  46. package/dist/deliver-cmd.d.ts +18 -0
  47. package/dist/deliver-cmd.d.ts.map +1 -1
  48. package/dist/deliver-cmd.js +71 -5
  49. package/dist/deliver-cmd.js.map +1 -1
  50. package/dist/delivery-settings-cache.d.ts +15 -1
  51. package/dist/delivery-settings-cache.d.ts.map +1 -1
  52. package/dist/delivery-settings-cache.js +31 -3
  53. package/dist/delivery-settings-cache.js.map +1 -1
  54. package/dist/environment-hold.d.ts +69 -0
  55. package/dist/environment-hold.d.ts.map +1 -0
  56. package/dist/environment-hold.js +120 -0
  57. package/dist/environment-hold.js.map +1 -0
  58. package/dist/gate.d.ts.map +1 -1
  59. package/dist/gate.js +15 -1
  60. package/dist/gate.js.map +1 -1
  61. package/dist/github-api.d.ts +19 -0
  62. package/dist/github-api.d.ts.map +1 -1
  63. package/dist/github-api.js +26 -0
  64. package/dist/github-api.js.map +1 -1
  65. package/dist/goal-adaptive.d.ts +1 -0
  66. package/dist/goal-adaptive.d.ts.map +1 -1
  67. package/dist/goal-adaptive.js +26 -13
  68. package/dist/goal-adaptive.js.map +1 -1
  69. package/dist/goal-compile.d.ts +37 -0
  70. package/dist/goal-compile.d.ts.map +1 -1
  71. package/dist/goal-compile.js +25 -1
  72. package/dist/goal-compile.js.map +1 -1
  73. package/dist/goal-replay.d.ts +83 -0
  74. package/dist/goal-replay.d.ts.map +1 -0
  75. package/dist/goal-replay.js +121 -0
  76. package/dist/goal-replay.js.map +1 -0
  77. package/dist/goal-reproof.d.ts +5 -0
  78. package/dist/goal-reproof.d.ts.map +1 -1
  79. package/dist/goal-reproof.js +11 -4
  80. package/dist/goal-reproof.js.map +1 -1
  81. package/dist/grant-pause.d.ts +48 -0
  82. package/dist/grant-pause.d.ts.map +1 -0
  83. package/dist/grant-pause.js +103 -0
  84. package/dist/grant-pause.js.map +1 -0
  85. package/dist/grant-reconcile.d.ts +8 -2
  86. package/dist/grant-reconcile.d.ts.map +1 -1
  87. package/dist/grant-reconcile.js +9 -2
  88. package/dist/grant-reconcile.js.map +1 -1
  89. package/dist/grant-waiting-wiring.d.ts +49 -0
  90. package/dist/grant-waiting-wiring.d.ts.map +1 -0
  91. package/dist/grant-waiting-wiring.js +77 -0
  92. package/dist/grant-waiting-wiring.js.map +1 -0
  93. package/dist/model-transport.d.ts +13 -0
  94. package/dist/model-transport.d.ts.map +1 -1
  95. package/dist/model-transport.js +70 -9
  96. package/dist/model-transport.js.map +1 -1
  97. package/dist/planner-timeouts.d.ts +14 -0
  98. package/dist/planner-timeouts.d.ts.map +1 -0
  99. package/dist/planner-timeouts.js +51 -0
  100. package/dist/planner-timeouts.js.map +1 -0
  101. package/dist/provider-accounts-cmd.d.ts +58 -0
  102. package/dist/provider-accounts-cmd.d.ts.map +1 -0
  103. package/dist/provider-accounts-cmd.js +247 -0
  104. package/dist/provider-accounts-cmd.js.map +1 -0
  105. package/dist/provider-accounts.d.ts +157 -0
  106. package/dist/provider-accounts.d.ts.map +1 -0
  107. package/dist/provider-accounts.js +423 -0
  108. package/dist/provider-accounts.js.map +1 -0
  109. package/dist/provider-cmd.d.ts +3 -0
  110. package/dist/provider-cmd.d.ts.map +1 -1
  111. package/dist/provider-cmd.js +25 -0
  112. package/dist/provider-cmd.js.map +1 -1
  113. package/dist/provider-limit.d.ts +6 -0
  114. package/dist/provider-limit.d.ts.map +1 -1
  115. package/dist/provider-limit.js +12 -0
  116. package/dist/provider-limit.js.map +1 -1
  117. package/dist/provider-state.d.ts +3 -0
  118. package/dist/provider-state.d.ts.map +1 -1
  119. package/dist/provider-state.js +4 -1
  120. package/dist/provider-state.js.map +1 -1
  121. package/dist/run-cmd.d.ts +12 -1
  122. package/dist/run-cmd.d.ts.map +1 -1
  123. package/dist/run-cmd.js +187 -15
  124. package/dist/run-cmd.js.map +1 -1
  125. package/dist/run-refusal-marks.d.ts +7 -1
  126. package/dist/run-refusal-marks.d.ts.map +1 -1
  127. package/dist/run-refusal-marks.js +4 -0
  128. package/dist/run-refusal-marks.js.map +1 -1
  129. package/dist/server-client.d.ts +33 -2
  130. package/dist/server-client.d.ts.map +1 -1
  131. package/dist/server-client.js +33 -1
  132. package/dist/server-client.js.map +1 -1
  133. package/dist/spend-ledger.d.ts +7 -0
  134. package/dist/spend-ledger.d.ts.map +1 -1
  135. package/dist/spend-ledger.js +1 -0
  136. package/dist/spend-ledger.js.map +1 -1
  137. package/dist/start-attempts.d.ts +4 -2
  138. package/dist/start-attempts.d.ts.map +1 -1
  139. package/dist/start-attempts.js +6 -1
  140. package/dist/start-attempts.js.map +1 -1
  141. package/package.json +2 -2
@@ -0,0 +1,423 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PROFILES_DIR = exports.ACCOUNTS_REMOTE_FILE = exports.ACCOUNTS_STATE_FILE = exports.ACCOUNTS_FILE = void 0;
4
+ exports.accountProfileDir = accountProfileDir;
5
+ exports.readAccounts = readAccounts;
6
+ exports.addAccount = addAccount;
7
+ exports.removeAccount = removeAccount;
8
+ exports.readAccountStates = readAccountStates;
9
+ exports.markAccountResting = markAccountResting;
10
+ exports.recordAccountReadiness = recordAccountReadiness;
11
+ exports.readAccountPolicies = readAccountPolicies;
12
+ exports.makeAccountPoliciesPull = makeAccountPoliciesPull;
13
+ exports.accountUsage = accountUsage;
14
+ exports.chooseAccountForCall = chooseAccountForCall;
15
+ exports.anotherAccountUsable = anotherAccountUsable;
16
+ exports.accountReports = accountReports;
17
+ exports.planOf = planOf;
18
+ exports.codexExecutable = codexExecutable;
19
+ exports.checkCodexAuth = checkCodexAuth;
20
+ exports.requesterRefOf = requesterRefOf;
21
+ const node_child_process_1 = require("node:child_process");
22
+ const node_fs_1 = require("node:fs");
23
+ const node_os_1 = require("node:os");
24
+ const node_path_1 = require("node:path");
25
+ const core_1 = require("@looply/core");
26
+ const spend_ledger_1 = require("./spend-ledger");
27
+ const server_client_1 = require("./server-client");
28
+ /**
29
+ * SEVERAL NAMED AI ACCOUNTS ON ONE MACHINE.
30
+ *
31
+ * Each account is a provider login in its OWN profile directory, made by the
32
+ * provider's own login flow (`looply provider login --name <n>`). Looply stores
33
+ * the directory's PATH, never what is in it — the rule `provider-state.ts`
34
+ * established for the single profile, kept for many.
35
+ *
36
+ * ~/.looply/provider-profile the account named `default` (the legacy profile)
37
+ * ~/.looply/provider-profiles/<name> every other account
38
+ * ~/.looply/provider-accounts.json which accounts exist (name, provider, label)
39
+ * ~/.looply/provider-accounts-state.json resting until, readiness, plan — shared by every daemon here
40
+ * ~/.looply/provider-accounts-remote.json what the accounts' owners set, as last pulled
41
+ *
42
+ * ⚠️ MACHINE STATE, NOT PROJECT STATE: resolved from the daemon's home, never
43
+ * from `.looply/config.yaml`, which sits in a worktree the model may edit.
44
+ *
45
+ * ⚠️ WHAT CROSSES TO THE SERVER: the name, a label, the provider kind, the
46
+ * auth method and plan name, readiness, resting until, token usage. Never an
47
+ * email, an organisation id or a credential.
48
+ */
49
+ exports.ACCOUNTS_FILE = 'provider-accounts.json';
50
+ exports.ACCOUNTS_STATE_FILE = 'provider-accounts-state.json';
51
+ exports.ACCOUNTS_REMOTE_FILE = 'provider-accounts-remote.json';
52
+ exports.PROFILES_DIR = 'provider-profiles';
53
+ const DAY_MS = 24 * 60 * 60 * 1000;
54
+ const WEEK_MS = 7 * DAY_MS;
55
+ const looplyHome = (home) => (0, node_path_1.join)(home, '.looply');
56
+ /** Where an account's provider profile lives. `default` is the legacy single profile. */
57
+ function accountProfileDir(name, home = (0, node_os_1.homedir)()) {
58
+ return name === core_1.DEFAULT_ACCOUNT_NAME
59
+ ? (0, node_path_1.join)(looplyHome(home), 'provider-profile')
60
+ : (0, node_path_1.join)(looplyHome(home), exports.PROFILES_DIR, name);
61
+ }
62
+ /** Atomic: a reader never sees half a file, and many daemons may write the same file. */
63
+ function writeJson(file, value) {
64
+ (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(file), { recursive: true });
65
+ const tmp = `${file}.${process.pid}.${Math.floor(Math.random() * 1e9).toString(36)}.tmp`;
66
+ (0, node_fs_1.writeFileSync)(tmp, JSON.stringify(value, null, 2) + '\n', 'utf8');
67
+ try {
68
+ (0, node_fs_1.renameSync)(tmp, file);
69
+ }
70
+ catch (e) {
71
+ try {
72
+ (0, node_fs_1.unlinkSync)(tmp);
73
+ }
74
+ catch {
75
+ /* already gone */
76
+ }
77
+ throw e;
78
+ }
79
+ }
80
+ function readJson(file) {
81
+ try {
82
+ return JSON.parse((0, node_fs_1.readFileSync)(file, 'utf8'));
83
+ }
84
+ catch {
85
+ return null;
86
+ }
87
+ }
88
+ function readStored(home) {
89
+ const raw = readJson((0, node_path_1.join)(looplyHome(home), exports.ACCOUNTS_FILE));
90
+ if (raw === null || !Array.isArray(raw.accounts))
91
+ return [];
92
+ return raw.accounts.filter((a) => typeof a === 'object' &&
93
+ a !== null &&
94
+ (0, core_1.isAccountName)(a.name) &&
95
+ (a.provider === 'claude' || a.provider === 'codex'));
96
+ }
97
+ /**
98
+ * Every account on this machine. The legacy profile is always the claude
99
+ * account `default`, so a machine nobody configured behaves exactly as before.
100
+ */
101
+ function readAccounts(home = (0, node_os_1.homedir)()) {
102
+ const stored = readStored(home).filter((a) => a.name !== core_1.DEFAULT_ACCOUNT_NAME);
103
+ const defaultLabel = readStored(home).find((a) => a.name === core_1.DEFAULT_ACCOUNT_NAME)?.label;
104
+ return [
105
+ {
106
+ name: core_1.DEFAULT_ACCOUNT_NAME,
107
+ provider: 'claude',
108
+ label: defaultLabel ?? 'default',
109
+ profileDir: accountProfileDir(core_1.DEFAULT_ACCOUNT_NAME, home),
110
+ },
111
+ ...stored.map((a) => ({
112
+ name: a.name,
113
+ provider: a.provider,
114
+ label: typeof a.label === 'string' && a.label.trim() !== '' ? a.label.slice(0, 60) : a.name,
115
+ profileDir: accountProfileDir(a.name, home),
116
+ })),
117
+ ];
118
+ }
119
+ /** Add (or relabel) a named account. Its profile directory is made; nothing is put in it. */
120
+ function addAccount(input, home = (0, node_os_1.homedir)()) {
121
+ if (!(0, core_1.isAccountName)(input.name)) {
122
+ throw new Error(`"${input.name}" is not an account name: use 1-32 lowercase letters, digits and dashes, starting with a letter or digit`);
123
+ }
124
+ if (input.name === core_1.DEFAULT_ACCOUNT_NAME && input.provider !== 'claude') {
125
+ throw new Error('the account named "default" is the machine\'s Claude Code profile; pick another name for a codex account');
126
+ }
127
+ const stored = readStored(home).filter((a) => a.name !== input.name);
128
+ const before = readStored(home).find((a) => a.name === input.name);
129
+ if (before !== undefined && before.provider !== input.provider) {
130
+ throw new Error(`the account "${input.name}" is a ${before.provider} account; remove it first or pick another name`);
131
+ }
132
+ stored.push({
133
+ name: input.name,
134
+ provider: input.provider,
135
+ ...(input.label !== undefined ? { label: input.label.slice(0, 60) } : before?.label ? { label: before.label } : {}),
136
+ addedAt: before?.addedAt ?? new Date().toISOString(),
137
+ });
138
+ writeJson((0, node_path_1.join)(looplyHome(home), exports.ACCOUNTS_FILE), { accounts: stored });
139
+ const dir = accountProfileDir(input.name, home);
140
+ (0, node_fs_1.mkdirSync)(dir, { recursive: true });
141
+ return readAccounts(home).find((a) => a.name === input.name);
142
+ }
143
+ /** Forget a named account. Its profile directory (and the login in it) is left where it is. */
144
+ function removeAccount(name, home = (0, node_os_1.homedir)()) {
145
+ if (name === core_1.DEFAULT_ACCOUNT_NAME)
146
+ throw new Error('the "default" account is the machine\'s own profile and cannot be removed');
147
+ const stored = readStored(home);
148
+ const kept = stored.filter((a) => a.name !== name);
149
+ if (kept.length === stored.length)
150
+ return false;
151
+ writeJson((0, node_path_1.join)(looplyHome(home), exports.ACCOUNTS_FILE), { accounts: kept });
152
+ return true;
153
+ }
154
+ // ── state shared by every daemon on the machine ──
155
+ function readAccountStates(home = (0, node_os_1.homedir)()) {
156
+ const raw = readJson((0, node_path_1.join)(looplyHome(home), exports.ACCOUNTS_STATE_FILE));
157
+ if (raw === null || typeof raw.accounts !== 'object' || raw.accounts === null)
158
+ return {};
159
+ return raw.accounts;
160
+ }
161
+ function updateState(home, name, patch) {
162
+ const all = readAccountStates(home);
163
+ all[name] = { ...(all[name] ?? {}), ...patch };
164
+ try {
165
+ writeJson((0, node_path_1.join)(looplyHome(home), exports.ACCOUNTS_STATE_FILE), { accounts: all });
166
+ }
167
+ catch {
168
+ /* a state write that fails costs one retry later, never the call */
169
+ }
170
+ }
171
+ /** The account answered with a usage limit: it rests until `until`. Read by every daemon here. */
172
+ function markAccountResting(name, until, because, home = (0, node_os_1.homedir)()) {
173
+ updateState(home, name, { restingUntil: until, restingBecause: because.slice(0, 300) });
174
+ }
175
+ /** What a readiness check found, kept so a call need not ask every account every time. */
176
+ function recordAccountReadiness(name, r, now, home = (0, node_os_1.homedir)()) {
177
+ updateState(home, name, {
178
+ ready: r.ready,
179
+ reason: r.reason,
180
+ ...(r.authMethod !== undefined ? { authMethod: r.authMethod } : {}),
181
+ ...(r.plan !== undefined ? { plan: r.plan } : {}),
182
+ checkedAt: now,
183
+ });
184
+ }
185
+ function readAccountPolicies(home = (0, node_os_1.homedir)()) {
186
+ const raw = readJson((0, node_path_1.join)(looplyHome(home), exports.ACCOUNTS_REMOTE_FILE));
187
+ if (raw === null || !Array.isArray(raw.policies))
188
+ return [];
189
+ return raw.policies.map(core_1.accountPolicyOf).filter((p) => p !== null);
190
+ }
191
+ /** Pull this machine's account policies (`GET /v1/machine/accounts`) into the cache. */
192
+ function makeAccountPoliciesPull(deps) {
193
+ const home = deps.home ?? (0, node_os_1.homedir)();
194
+ const now = deps.now ?? (() => Date.now());
195
+ let reported = false;
196
+ return async () => {
197
+ let body;
198
+ try {
199
+ body = await deps.fetch();
200
+ }
201
+ catch (e) {
202
+ // An older server (404), no network, or a revoked token: keep what was last pulled.
203
+ if (!(e instanceof server_client_1.ServerError && (e.isOffline || e.isAuth || e.status === 404)) && !reported) {
204
+ reported = true;
205
+ deps.log(`accounts: could not refresh the AI account settings — ${e.message}`);
206
+ }
207
+ return 'failed';
208
+ }
209
+ const b = body;
210
+ if (b === null || typeof b !== 'object' || !Array.isArray(b.policies))
211
+ return 'failed';
212
+ reported = false;
213
+ const policies = b.policies.map(core_1.accountPolicyOf).filter((p) => p !== null);
214
+ const before = readAccountPolicies(home);
215
+ if (JSON.stringify(before) === JSON.stringify(policies))
216
+ return 'unchanged';
217
+ writeJson((0, node_path_1.join)(looplyHome(home), exports.ACCOUNTS_REMOTE_FILE), {
218
+ policies,
219
+ updatedAt: typeof b.updatedAt === 'string' ? b.updatedAt : null,
220
+ fetchedAt: new Date(now()).toISOString(),
221
+ });
222
+ deps.log(`accounts: AI account settings updated (${policies.length} with settings)`);
223
+ return 'updated';
224
+ };
225
+ }
226
+ // ── usage, from the machine's spend ledger ──
227
+ /** Tokens (input + output) each account used in the last 24 hours and 7 days. */
228
+ function accountUsage(home = (0, node_os_1.homedir)(), now = Date.now()) {
229
+ const out = new Map();
230
+ const read = (0, spend_ledger_1.readSpend)(home);
231
+ if (!read.ok)
232
+ return out;
233
+ for (const r of read.records) {
234
+ const name = r.account;
235
+ if (typeof name !== 'string')
236
+ continue;
237
+ const at = Date.parse(r.at);
238
+ if (!Number.isFinite(at) || at > now || now - at > WEEK_MS)
239
+ continue;
240
+ const tokens = (r.inputTokens ?? 0) + (r.outputTokens ?? 0);
241
+ const u = out.get(name) ?? { dayTokens: 0, weekTokens: 0 };
242
+ u.weekTokens += tokens;
243
+ if (now - at <= DAY_MS)
244
+ u.dayTokens += tokens;
245
+ out.set(name, u);
246
+ }
247
+ return out;
248
+ }
249
+ // ── choosing ──
250
+ function candidatesFor(home, now, provider) {
251
+ const entries = readAccounts(home).filter((a) => a.provider === provider);
252
+ const states = readAccountStates(home);
253
+ const policies = new Map(readAccountPolicies(home).map((p) => [p.name, p]));
254
+ const needUsage = [...policies.values()].some((p) => p.dailyTokenCap !== null || p.weeklyTokenCap !== null);
255
+ const usage = needUsage ? accountUsage(home, now) : new Map();
256
+ const candidates = entries.map((e) => {
257
+ const s = states[e.name] ?? {};
258
+ return {
259
+ name: e.name,
260
+ provider: e.provider,
261
+ // Never checked yet: assumed ready; the launch checks it and records the answer.
262
+ ready: s.ready !== false,
263
+ personal: (0, core_1.isPersonalAccount)(s.authMethod ?? null, s.plan ?? null),
264
+ restingUntil: typeof s.restingUntil === 'number' ? s.restingUntil : null,
265
+ usage: usage.get(e.name) ?? { dayTokens: 0, weekTokens: 0 },
266
+ policy: policies.get(e.name) ?? null,
267
+ };
268
+ });
269
+ return { entries, candidates };
270
+ }
271
+ /**
272
+ * Which account one model call uses.
273
+ *
274
+ * - the first usable account by priority;
275
+ * - else, when the only thing in the way is that accounts are RESTING, the one
276
+ * that rests the shortest: its call meets the limit again and the run waits
277
+ * it out (`provider-limit.ts`), exactly as with one account;
278
+ * - else, when every account is simply not logged in, the first by priority, so
279
+ * the launch says "log in" in the words it always did;
280
+ * - else no account, with every reason: the owners' settings allow none for this work.
281
+ */
282
+ function chooseAccountForCall(input, home = (0, node_os_1.homedir)()) {
283
+ const provider = input.provider ?? 'claude';
284
+ const { entries, candidates } = candidatesFor(home, input.now, provider);
285
+ const skip = new Set(input.skip ?? []);
286
+ const live = candidates.filter((c) => !skip.has(c.name));
287
+ const ctx = { provider, role: input.role, projectId: input.projectId, requesterRef: input.requesterRef, now: input.now };
288
+ const { usable, refused } = (0, core_1.chooseAccounts)(live, ctx);
289
+ const entryOf = (name) => entries.find((e) => e.name === name);
290
+ if (usable.length > 0)
291
+ return { kind: 'account', entry: entryOf(usable[0]), resting: false };
292
+ // Would it be usable but for resting? Ask again as if every rest were over.
293
+ const awake = (0, core_1.chooseAccounts)(live.map((c) => ({ ...c, restingUntil: null })), ctx).usable;
294
+ if (awake.length > 0) {
295
+ const soonest = live
296
+ .filter((c) => awake.includes(c.name))
297
+ .sort((a, b) => (a.restingUntil ?? 0) - (b.restingUntil ?? 0))[0];
298
+ return { kind: 'account', entry: entryOf(soonest.name), resting: true };
299
+ }
300
+ const asIfReady = (0, core_1.chooseAccounts)(live.map((c) => ({ ...c, ready: true, restingUntil: null })), ctx).usable;
301
+ if (asIfReady.length > 0)
302
+ return { kind: 'account', entry: entryOf(asIfReady[0]), resting: false };
303
+ if (live.length === 0)
304
+ return { kind: 'none', because: `no ${provider} account on this machine is left to try` };
305
+ return {
306
+ kind: 'none',
307
+ because: `no AI account on this machine is allowed for this work: ` + refused.map((r) => `${r.name} — ${r.why}`).join('; '),
308
+ };
309
+ }
310
+ /** Whether any account other than `except` could take a call of this kind right now. */
311
+ function anotherAccountUsable(input, home = (0, node_os_1.homedir)()) {
312
+ const provider = input.provider ?? 'claude';
313
+ const { candidates } = candidatesFor(home, input.now, provider);
314
+ const ctx = { provider, role: input.role, projectId: input.projectId, requesterRef: input.requesterRef, now: input.now };
315
+ const { usable } = (0, core_1.chooseAccounts)(candidates.filter((c) => c.name !== input.except && !(input.skip ?? []).includes(c.name)), ctx);
316
+ return usable[0] ?? null;
317
+ }
318
+ // ── what the heartbeat says ──
319
+ /** The heartbeat runs every few seconds in every daemon; the ledger is read at most once a minute per process. */
320
+ const USAGE_CACHE_MS = 60_000;
321
+ let usageCache = null;
322
+ function cachedUsage(home, now) {
323
+ if (usageCache !== null && usageCache.home === home && now - usageCache.at >= 0 && now - usageCache.at < USAGE_CACHE_MS) {
324
+ return usageCache.value;
325
+ }
326
+ usageCache = { home, at: now, value: accountUsage(home, now) };
327
+ return usageCache.value;
328
+ }
329
+ /**
330
+ * Every account, as the heartbeat reports it. Readiness is what was last
331
+ * checked (`refreshAccountReadiness`); nothing here starts a process.
332
+ */
333
+ function accountReports(home = (0, node_os_1.homedir)(), now = Date.now()) {
334
+ const states = readAccountStates(home);
335
+ const policies = new Map(readAccountPolicies(home).map((p) => [p.name, p]));
336
+ const usage = cachedUsage(home, now);
337
+ return readAccounts(home).map((e) => {
338
+ const s = states[e.name] ?? {};
339
+ const plan = s.plan ?? null;
340
+ const authMethod = s.authMethod ?? null;
341
+ const personal = (0, core_1.isPersonalAccount)(authMethod, plan);
342
+ const policy = policies.get(e.name);
343
+ const resting = typeof s.restingUntil === 'number' && s.restingUntil > now;
344
+ const ready = s.ready !== false && s.checkedAt !== undefined;
345
+ return {
346
+ name: e.name,
347
+ provider: e.provider,
348
+ label: e.label,
349
+ authMethod,
350
+ plan,
351
+ personal,
352
+ ready,
353
+ reason: ready ? null : s.checkedAt === undefined ? 'unknown' : (s.reason ?? 'unknown'),
354
+ restingUntil: resting ? new Date(s.restingUntil).toISOString() : null,
355
+ restingBecause: resting ? (s.restingBecause ?? null) : null,
356
+ usage: usage.get(e.name) ?? { dayTokens: 0, weekTokens: 0 },
357
+ policyRefused: policy !== undefined ? (0, core_1.policyProblemFor)(policy, { personal }) : null,
358
+ };
359
+ });
360
+ }
361
+ function planOf(x) {
362
+ if (typeof x !== 'string')
363
+ return null;
364
+ const v = x.toLowerCase();
365
+ return core_1.ACCOUNT_PLANS.includes(v) ? v : null;
366
+ }
367
+ /** `codex` on PATH, or null. Codex is installed by its owner; Looply does not install it. */
368
+ function codexExecutable(env = process.env) {
369
+ const names = process.platform === 'win32' ? ['codex.cmd', 'codex.exe', 'codex'] : ['codex'];
370
+ for (const dir of (env['PATH'] ?? env['Path'] ?? '').split(node_path_1.delimiter)) {
371
+ if (dir === '')
372
+ continue;
373
+ for (const n of names) {
374
+ const p = (0, node_path_1.join)(dir, n);
375
+ if ((0, node_fs_1.existsSync)(p))
376
+ return p;
377
+ }
378
+ }
379
+ return null;
380
+ }
381
+ /**
382
+ * Is a codex account logged in? `codex login status` in its own `CODEX_HOME`
383
+ * answers with exit 0 when it is, and names "API key" or "ChatGPT".
384
+ *
385
+ * ⚠️ NEVER RUN END TO END ON THIS PROJECT'S MACHINES: the codex preset is
386
+ * declared but no Looply run has used it yet. Readiness is what this checks.
387
+ */
388
+ function checkCodexAuth(profileDir, deps = {}) {
389
+ const exe = deps.executable !== undefined ? deps.executable : codexExecutable();
390
+ if (exe === null)
391
+ return { ok: false, reason: 'not_installed', because: 'codex is not installed on this machine' };
392
+ (0, node_fs_1.mkdirSync)(profileDir, { recursive: true });
393
+ const env = { ...process.env, CODEX_HOME: profileDir };
394
+ const run = deps.run ??
395
+ ((e, argv, en) => {
396
+ try {
397
+ const out = (0, node_child_process_1.execFileSync)(e, [...argv], {
398
+ encoding: 'utf8',
399
+ timeout: 20_000,
400
+ env: en,
401
+ stdio: ['ignore', 'pipe', 'pipe'],
402
+ windowsHide: true,
403
+ shell: process.platform === 'win32' && e.toLowerCase().endsWith('.cmd'),
404
+ });
405
+ return { status: 0, out };
406
+ }
407
+ catch (err) {
408
+ const x = err;
409
+ return { status: typeof x.status === 'number' ? x.status : 1, out: `${x.stdout ?? ''}${x.stderr ?? ''}` };
410
+ }
411
+ });
412
+ const r = run(exe, ['login', 'status'], env);
413
+ if (r.status !== 0)
414
+ return { ok: false, reason: 'not_logged_in', because: 'this codex account is not logged in' };
415
+ const method = /api key/i.test(r.out) ? 'api_key' : /chatgpt/i.test(r.out) ? 'chatgpt' : null;
416
+ return { ok: true, authMethod: method, plan: null };
417
+ }
418
+ /** Who asked for the work a run is bound to (`requestedBy.ref` on its goal), or null. */
419
+ function requesterRefOf(goal) {
420
+ const ref = goal?.requestedBy?.ref;
421
+ return typeof ref === 'string' && ref !== '' ? ref : null;
422
+ }
423
+ //# sourceMappingURL=provider-accounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-accounts.js","sourceRoot":"","sources":["../src/provider-accounts.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { type ProviderDiscovery } from './provider-discovery';
2
2
  import { type ProviderReadiness } from './provider-ready';
3
3
  import { type ProviderAuthState } from './provider-state';
4
+ import { type AccountsCmdDeps } from './provider-accounts-cmd';
4
5
  /**
5
6
  * `looply provider` — IS CLAUDE CODE READY ON THIS MACHINE, AND IF NOT, FIX IT.
6
7
  *
@@ -40,6 +41,8 @@ export interface ProviderDeps {
40
41
  login(executable: string): Promise<number>;
41
42
  out(line: string): void;
42
43
  err(line: string): void;
44
+ /** Several named AI accounts on this machine (`provider-accounts-cmd.ts`). */
45
+ accounts?: AccountsCmdDeps;
43
46
  }
44
47
  export declare function readinessOf(deps: Pick<ProviderDeps, 'discover' | 'checkAuth' | 'version'>): ProviderReadiness;
45
48
  /** The exact command a person types to log Looply's profile in, in their own shell. */
@@ -1 +1 @@
1
- {"version":3,"file":"provider-cmd.d.ts","sourceRoot":"","sources":["../src/provider-cmd.ts"],"names":[],"mappings":"AAMA,OAAO,EAAkC,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAuC,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAyC,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGjG;;;;;;;;;;;;;;;;;GAiBG;AAEH,eAAO,MAAM,cAAc,QAKf,CAAC;AAEb,wFAAwF;AACxF,eAAO,MAAM,eAAe,8CAA8C,CAAC;AAC3E,sFAAsF;AACtF,eAAO,MAAM,cAAc,8CAAkB,CAAC;AAK9C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,IAAI,iBAAiB,CAAC;IAC9B,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACjD,qGAAqG;IACrG,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3C,8EAA8E;IAC9E,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3B,gGAAgG;IAChG,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC,GAAG,iBAAiB,CAK7G;AAgCD,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAIvG;AAaD;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuFhH;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA0ElG;AAgDD,wBAAgB,gBAAgB,CAAC,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAAO,GAAG,YAAY,CAuC5H"}
1
+ {"version":3,"file":"provider-cmd.d.ts","sourceRoot":"","sources":["../src/provider-cmd.ts"],"names":[],"mappings":"AAMA,OAAO,EAAkC,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAuC,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAyC,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEjG,OAAO,EAAwE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAKrI;;;;;;;;;;;;;;;;;GAiBG;AAEH,eAAO,MAAM,cAAc,QAMf,CAAC;AAEb,wFAAwF;AACxF,eAAO,MAAM,eAAe,8CAA8C,CAAC;AAC3E,sFAAsF;AACtF,eAAO,MAAM,cAAc,8CAAkB,CAAC;AAK9C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,IAAI,iBAAiB,CAAC;IAC9B,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACjD,qGAAqG;IACrG,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3C,8EAA8E;IAC9E,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3B,gGAAgG;IAChG,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC,GAAG,iBAAiB,CAK7G;AAgCD,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAIvG;AAaD;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuFhH;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAiFlG;AAgDD,wBAAgB,gBAAgB,CAAC,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAAO,GAAG,YAAY,CAyD5H"}
@@ -16,6 +16,10 @@ const provider_discovery_1 = require("./provider-discovery");
16
16
  const provider_ready_1 = require("./provider-ready");
17
17
  const provider_state_1 = require("./provider-state");
18
18
  const setup_prompt_1 = require("./setup-prompt");
19
+ const provider_accounts_cmd_1 = require("./provider-accounts-cmd");
20
+ const provider_accounts_1 = require("./provider-accounts");
21
+ const node_path_2 = require("node:path");
22
+ const untrusted_exec_1 = require("./untrusted-exec");
19
23
  /**
20
24
  * `looply provider` — IS CLAUDE CODE READY ON THIS MACHINE, AND IF NOT, FIX IT.
21
25
  *
@@ -39,6 +43,7 @@ exports.PROVIDER_USAGE = [
39
43
  'looply provider install [--yes] install Claude Code (npm i -g @anthropic-ai/claude-code@latest)',
40
44
  'looply provider update [--yes] update Claude Code to the latest version (the same npm command)',
41
45
  'looply provider login sign Looply’s own Claude Code profile in (opens your browser)',
46
+ provider_accounts_cmd_1.ACCOUNTS_USAGE,
42
47
  ].join('\n');
43
48
  /** `@latest`, so an install never lands a version too old for the configured models. */
44
49
  exports.INSTALL_COMMAND = 'npm i -g @anthropic-ai/claude-code@latest';
@@ -194,6 +199,13 @@ async function ensureProviderReady(deps, opts) {
194
199
  }
195
200
  async function providerCommand(argv, deps) {
196
201
  const [verb = 'status', ...rest] = argv;
202
+ if ((0, provider_accounts_cmd_1.isAccountsCommand)(verb, rest)) {
203
+ if (deps.accounts === undefined) {
204
+ deps.err(`looply provider ${verb}: named accounts are not available here`);
205
+ return 1;
206
+ }
207
+ return (0, provider_accounts_cmd_1.accountsCommand)(verb, rest, deps.accounts);
208
+ }
197
209
  const yes = rest.includes('--yes') || rest.includes('-y');
198
210
  const unknown = rest.filter((a) => a !== '--yes' && a !== '-y');
199
211
  if (unknown.length > 0) {
@@ -353,6 +365,19 @@ function nodeProviderDeps(opts = {}) {
353
365
  return foreground(process.execPath, [cli, 'i', '-g', '@anthropic-ai/claude-code@latest'], process.env);
354
366
  },
355
367
  login: (exe) => foreground(exe, ['auth', 'login'], { ...process.env, CLAUDE_CONFIG_DIR: profile }),
368
+ accounts: (0, provider_accounts_cmd_1.nodeAccountsDeps)({
369
+ claudeExecutable: () => (0, provider_discovery_1.discoverProvider)(opts.configured).found?.executable ?? null,
370
+ checkClaude: (exe, profileDir) => (0, provider_state_1.checkProviderAuth)(exe, { ...(0, exec_domains_1.buildProviderEnv)((0, model_transport_1.providerSessionDir)((0, node_os_1.homedir)(), 'implementer')), CLAUDE_CONFIG_DIR: profileDir }, { profile: profileDir }),
371
+ codexExecutable: () => (0, provider_accounts_1.codexExecutable)(),
372
+ login: (exe, args, env) =>
373
+ // npm's codex shim is a `.cmd`, which Windows cannot spawn without a shell; cmd is named outright.
374
+ process.platform === 'win32' && exe.toLowerCase().endsWith('.cmd')
375
+ ? foreground((0, node_path_2.join)((0, untrusted_exec_1.systemRoot)(), 'System32', 'cmd.exe'), ['/d', '/c', exe, ...args], {
376
+ ...process.env,
377
+ ...env,
378
+ })
379
+ : foreground(exe, args, { ...process.env, ...env }),
380
+ }),
356
381
  out: (line) => process.stdout.write(`${line}\n`),
357
382
  err: (line) => process.stderr.write(`${line}\n`),
358
383
  };
@@ -1 +1 @@
1
- {"version":3,"file":"provider-cmd.js","sourceRoot":"","sources":["../src/provider-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-cmd.js","sourceRoot":"","sources":["../src/provider-cmd.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,12 @@ export interface LimitWaitDeps {
63
63
  */
64
64
  readonly announce?: (text: string) => Promise<void>;
65
65
  readonly maxWaitMs?: number;
66
+ /**
67
+ * Whether an AI account this work may use is awake again before the reset
68
+ * this wait was computed from (another account's rest ended first). The wait
69
+ * then ends at once and the prompt is asked again (`provider-accounts.ts`).
70
+ */
71
+ readonly readyEarly?: () => boolean;
66
72
  }
67
73
  /**
68
74
  * An invoke that waits out the provider's usage limit instead of reporting it as the answer.
@@ -1 +1 @@
1
- {"version":3,"file":"provider-limit.d.ts","sourceRoot":"","sources":["../src/provider-limit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,aAAa;IAC5B,sGAAsG;IACtG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uGAAuG;IACvG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,8GAA8G;AAC9G,eAAO,MAAM,0BAA0B,QAAqB,CAAC;AAC7D,+GAA+G;AAC/G,eAAO,MAAM,qBAAqB,QAAiB,CAAC;AACpD,kHAAkH;AAClH,eAAO,MAAM,cAAc,QAAgB,CAAC;AAC5C,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,QAAY,CAAC;AAE7C,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAKrF;AAED,sGAAsG;AACtG,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtE;AAID;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA6BpE;AAuCD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,4GAA4G;IAC5G,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CA8B9F"}
1
+ {"version":3,"file":"provider-limit.d.ts","sourceRoot":"","sources":["../src/provider-limit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,aAAa;IAC5B,sGAAsG;IACtG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uGAAuG;IACvG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,8GAA8G;AAC9G,eAAO,MAAM,0BAA0B,QAAqB,CAAC;AAC7D,+GAA+G;AAC/G,eAAO,MAAM,qBAAqB,QAAiB,CAAC;AACpD,kHAAkH;AAClH,eAAO,MAAM,cAAc,QAAgB,CAAC;AAC5C,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,QAAY,CAAC;AAE7C,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAKrF;AAED,sGAAsG;AACtG,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtE;AAID;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA6BpE;AAuCD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,4GAA4G;IAC5G,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;CACrC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CAyC9F"}