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.
- package/dist/.src-hash +1 -1
- package/dist/account-failover.d.ts +30 -0
- package/dist/account-failover.d.ts.map +1 -0
- package/dist/account-failover.js +32 -0
- package/dist/account-failover.js.map +1 -0
- package/dist/autonomy-controller.d.ts +23 -1
- package/dist/autonomy-controller.d.ts.map +1 -1
- package/dist/autonomy-controller.js +50 -9
- package/dist/autonomy-controller.js.map +1 -1
- package/dist/autonomy-store.d.ts +33 -1
- package/dist/autonomy-store.d.ts.map +1 -1
- package/dist/autonomy-store.js +58 -8
- package/dist/autonomy-store.js.map +1 -1
- package/dist/autonomy-tick.d.ts +23 -1
- package/dist/autonomy-tick.d.ts.map +1 -1
- package/dist/autonomy-tick.js +80 -14
- package/dist/autonomy-tick.js.map +1 -1
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +25 -5
- package/dist/bin.js.map +1 -1
- package/dist/branch-delivery-wiring.d.ts.map +1 -1
- package/dist/branch-delivery-wiring.js +6 -1
- package/dist/branch-delivery-wiring.js.map +1 -1
- package/dist/branch-delivery.d.ts +135 -6
- package/dist/branch-delivery.d.ts.map +1 -1
- package/dist/branch-delivery.js +540 -80
- package/dist/branch-delivery.js.map +1 -1
- package/dist/branch-replay.d.ts +45 -0
- package/dist/branch-replay.d.ts.map +1 -0
- package/dist/branch-replay.js +123 -0
- package/dist/branch-replay.js.map +1 -0
- package/dist/commit-ownership.d.ts +102 -0
- package/dist/commit-ownership.d.ts.map +1 -0
- package/dist/commit-ownership.js +97 -0
- package/dist/commit-ownership.js.map +1 -0
- package/dist/coordinator-state.d.ts.map +1 -1
- package/dist/coordinator-state.js +21 -1
- package/dist/coordinator-state.js.map +1 -1
- package/dist/daemon-cmd.d.ts.map +1 -1
- package/dist/daemon-cmd.js +53 -4
- package/dist/daemon-cmd.js.map +1 -1
- package/dist/daemon.d.ts +10 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +31 -5
- package/dist/daemon.js.map +1 -1
- package/dist/deliver-cmd.d.ts +18 -0
- package/dist/deliver-cmd.d.ts.map +1 -1
- package/dist/deliver-cmd.js +71 -5
- package/dist/deliver-cmd.js.map +1 -1
- package/dist/delivery-settings-cache.d.ts +15 -1
- package/dist/delivery-settings-cache.d.ts.map +1 -1
- package/dist/delivery-settings-cache.js +31 -3
- package/dist/delivery-settings-cache.js.map +1 -1
- package/dist/environment-hold.d.ts +69 -0
- package/dist/environment-hold.d.ts.map +1 -0
- package/dist/environment-hold.js +120 -0
- package/dist/environment-hold.js.map +1 -0
- package/dist/gate.d.ts.map +1 -1
- package/dist/gate.js +15 -1
- package/dist/gate.js.map +1 -1
- package/dist/github-api.d.ts +19 -0
- package/dist/github-api.d.ts.map +1 -1
- package/dist/github-api.js +26 -0
- package/dist/github-api.js.map +1 -1
- package/dist/goal-adaptive.d.ts +1 -0
- package/dist/goal-adaptive.d.ts.map +1 -1
- package/dist/goal-adaptive.js +26 -13
- package/dist/goal-adaptive.js.map +1 -1
- package/dist/goal-compile.d.ts +37 -0
- package/dist/goal-compile.d.ts.map +1 -1
- package/dist/goal-compile.js +25 -1
- package/dist/goal-compile.js.map +1 -1
- package/dist/goal-replay.d.ts +83 -0
- package/dist/goal-replay.d.ts.map +1 -0
- package/dist/goal-replay.js +121 -0
- package/dist/goal-replay.js.map +1 -0
- package/dist/goal-reproof.d.ts +5 -0
- package/dist/goal-reproof.d.ts.map +1 -1
- package/dist/goal-reproof.js +11 -4
- package/dist/goal-reproof.js.map +1 -1
- package/dist/grant-pause.d.ts +48 -0
- package/dist/grant-pause.d.ts.map +1 -0
- package/dist/grant-pause.js +103 -0
- package/dist/grant-pause.js.map +1 -0
- package/dist/grant-reconcile.d.ts +8 -2
- package/dist/grant-reconcile.d.ts.map +1 -1
- package/dist/grant-reconcile.js +9 -2
- package/dist/grant-reconcile.js.map +1 -1
- package/dist/grant-waiting-wiring.d.ts +49 -0
- package/dist/grant-waiting-wiring.d.ts.map +1 -0
- package/dist/grant-waiting-wiring.js +77 -0
- package/dist/grant-waiting-wiring.js.map +1 -0
- package/dist/model-transport.d.ts +13 -0
- package/dist/model-transport.d.ts.map +1 -1
- package/dist/model-transport.js +70 -9
- package/dist/model-transport.js.map +1 -1
- package/dist/planner-timeouts.d.ts +14 -0
- package/dist/planner-timeouts.d.ts.map +1 -0
- package/dist/planner-timeouts.js +51 -0
- package/dist/planner-timeouts.js.map +1 -0
- package/dist/provider-accounts-cmd.d.ts +58 -0
- package/dist/provider-accounts-cmd.d.ts.map +1 -0
- package/dist/provider-accounts-cmd.js +247 -0
- package/dist/provider-accounts-cmd.js.map +1 -0
- package/dist/provider-accounts.d.ts +157 -0
- package/dist/provider-accounts.d.ts.map +1 -0
- package/dist/provider-accounts.js +423 -0
- package/dist/provider-accounts.js.map +1 -0
- package/dist/provider-cmd.d.ts +3 -0
- package/dist/provider-cmd.d.ts.map +1 -1
- package/dist/provider-cmd.js +25 -0
- package/dist/provider-cmd.js.map +1 -1
- package/dist/provider-limit.d.ts +6 -0
- package/dist/provider-limit.d.ts.map +1 -1
- package/dist/provider-limit.js +12 -0
- package/dist/provider-limit.js.map +1 -1
- package/dist/provider-state.d.ts +3 -0
- package/dist/provider-state.d.ts.map +1 -1
- package/dist/provider-state.js +4 -1
- package/dist/provider-state.js.map +1 -1
- package/dist/run-cmd.d.ts +12 -1
- package/dist/run-cmd.d.ts.map +1 -1
- package/dist/run-cmd.js +187 -15
- package/dist/run-cmd.js.map +1 -1
- package/dist/run-refusal-marks.d.ts +7 -1
- package/dist/run-refusal-marks.d.ts.map +1 -1
- package/dist/run-refusal-marks.js +4 -0
- package/dist/run-refusal-marks.js.map +1 -1
- package/dist/server-client.d.ts +33 -2
- package/dist/server-client.d.ts.map +1 -1
- package/dist/server-client.js +33 -1
- package/dist/server-client.js.map +1 -1
- package/dist/spend-ledger.d.ts +7 -0
- package/dist/spend-ledger.d.ts.map +1 -1
- package/dist/spend-ledger.js +1 -0
- package/dist/spend-ledger.js.map +1 -1
- package/dist/start-attempts.d.ts +4 -2
- package/dist/start-attempts.d.ts.map +1 -1
- package/dist/start-attempts.js +6 -1
- package/dist/start-attempts.js.map +1 -1
- 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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"}
|
package/dist/provider-cmd.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/provider-cmd.js
CHANGED
|
@@ -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
|
};
|
package/dist/provider-cmd.js.map
CHANGED
|
@@ -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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"}
|
package/dist/provider-limit.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|