@claudexor/cli 3.5.0 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accounts-projection.d.ts +22 -14
- package/dist/accounts-projection.d.ts.map +1 -1
- package/dist/accounts-projection.js +112 -60
- package/dist/accounts-projection.js.map +1 -1
- package/dist/accounts-services.d.ts +140 -128
- package/dist/accounts-services.d.ts.map +1 -1
- package/dist/accounts-services.js +22 -9
- package/dist/accounts-services.js.map +1 -1
- package/dist/accounts-unified-migration.d.ts +110 -0
- package/dist/accounts-unified-migration.d.ts.map +1 -0
- package/dist/accounts-unified-migration.js +422 -0
- package/dist/accounts-unified-migration.js.map +1 -0
- package/dist/agy-quota-source.d.ts +1 -0
- package/dist/agy-quota-source.d.ts.map +1 -1
- package/dist/agy-quota-source.js +61 -108
- package/dist/agy-quota-source.js.map +1 -1
- package/dist/auth-login-harnesses.d.ts +7 -5
- package/dist/auth-login-harnesses.d.ts.map +1 -1
- package/dist/auth-login-harnesses.js +10 -9
- package/dist/auth-login-harnesses.js.map +1 -1
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +6 -1
- package/dist/capabilities.js.map +1 -1
- package/dist/claude-oauth-usage.d.ts.map +1 -1
- package/dist/claude-oauth-usage.js +9 -3
- package/dist/claude-oauth-usage.js.map +1 -1
- package/dist/claude-statusline.d.ts.map +1 -1
- package/dist/claude-statusline.js +14 -1
- package/dist/claude-statusline.js.map +1 -1
- package/dist/claudexord-entry.d.ts +7 -2
- package/dist/claudexord-entry.d.ts.map +1 -1
- package/dist/claudexord-entry.js +33 -11
- package/dist/claudexord-entry.js.map +1 -1
- package/dist/claudexord.d.ts.map +1 -1
- package/dist/claudexord.js +25 -37
- package/dist/claudexord.js.map +1 -1
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/codex-quota-source.d.ts.map +1 -1
- package/dist/codex-quota-source.js +8 -3
- package/dist/codex-quota-source.js.map +1 -1
- package/dist/command-flags.d.ts.map +1 -1
- package/dist/command-flags.js +1 -0
- package/dist/command-flags.js.map +1 -1
- package/dist/control-services.d.ts +206 -188
- package/dist/control-services.d.ts.map +1 -1
- package/dist/control-services.js +54 -122
- package/dist/control-services.js.map +1 -1
- package/dist/credential-commands.d.ts +16 -0
- package/dist/credential-commands.d.ts.map +1 -1
- package/dist/credential-commands.js +93 -39
- package/dist/credential-commands.js.map +1 -1
- package/dist/credential-profile-mutations.d.ts +70 -0
- package/dist/credential-profile-mutations.d.ts.map +1 -0
- package/dist/credential-profile-mutations.js +219 -0
- package/dist/credential-profile-mutations.js.map +1 -0
- package/dist/credential-status-invalidation.d.ts +11 -0
- package/dist/credential-status-invalidation.d.ts.map +1 -0
- package/dist/credential-status-invalidation.js +36 -0
- package/dist/credential-status-invalidation.js.map +1 -0
- package/dist/daemon-admission-runtime.d.ts +5 -0
- package/dist/daemon-admission-runtime.d.ts.map +1 -1
- package/dist/daemon-admission-runtime.js +1 -0
- package/dist/daemon-admission-runtime.js.map +1 -1
- package/dist/delegation-belt-descriptor.d.ts +2 -1
- package/dist/delegation-belt-descriptor.d.ts.map +1 -1
- package/dist/delegation-belt-descriptor.js +2 -1
- package/dist/delegation-belt-descriptor.js.map +1 -1
- package/dist/harness-command-specs.d.ts.map +1 -1
- package/dist/harness-command-specs.js +4 -4
- package/dist/harness-command-specs.js.map +1 -1
- package/dist/harness-command.d.ts +5 -3
- package/dist/harness-command.d.ts.map +1 -1
- package/dist/harness-command.js +5 -3
- package/dist/harness-command.js.map +1 -1
- package/dist/harness-install-lease.d.ts +11 -0
- package/dist/harness-install-lease.d.ts.map +1 -0
- package/dist/harness-install-lease.js +98 -0
- package/dist/harness-install-lease.js.map +1 -0
- package/dist/harness-install-proof.d.ts +36 -0
- package/dist/harness-install-proof.d.ts.map +1 -0
- package/dist/harness-install-proof.js +148 -0
- package/dist/harness-install-proof.js.map +1 -0
- package/dist/harness-install-recipes.d.ts +80 -0
- package/dist/harness-install-recipes.d.ts.map +1 -0
- package/dist/harness-install-recipes.js +130 -0
- package/dist/harness-install-recipes.js.map +1 -0
- package/dist/harness-installer.d.ts +45 -46
- package/dist/harness-installer.d.ts.map +1 -1
- package/dist/harness-installer.js +248 -156
- package/dist/harness-installer.js.map +1 -1
- package/dist/mcp-run-projections.d.ts +1 -1
- package/dist/native-login.d.ts +7 -0
- package/dist/native-login.d.ts.map +1 -1
- package/dist/native-login.js +40 -17
- package/dist/native-login.js.map +1 -1
- package/dist/profile-registration.d.ts +15 -1
- package/dist/profile-registration.d.ts.map +1 -1
- package/dist/profile-registration.js +124 -7
- package/dist/profile-registration.js.map +1 -1
- package/dist/quota-services.d.ts +4 -4
- package/dist/quota-subject-universe.d.ts.map +1 -1
- package/dist/quota-subject-universe.js +6 -0
- package/dist/quota-subject-universe.js.map +1 -1
- package/dist/remote-command.d.ts +0 -2
- package/dist/remote-command.d.ts.map +1 -1
- package/dist/remote-command.js +3 -74
- package/dist/remote-command.js.map +1 -1
- package/dist/run-orchestrator.d.ts +28 -0
- package/dist/run-orchestrator.d.ts.map +1 -0
- package/dist/run-orchestrator.js +43 -0
- package/dist/run-orchestrator.js.map +1 -0
- package/dist/settings-service.d.ts +1 -1
- package/dist/settings-service.js +3 -3
- package/dist/settings-service.js.map +1 -1
- package/dist/setup-attach-command.d.ts +30 -0
- package/dist/setup-attach-command.d.ts.map +1 -0
- package/dist/setup-attach-command.js +118 -0
- package/dist/setup-attach-command.js.map +1 -0
- package/dist/setup-job-store.d.ts +2 -2
- package/dist/setup-job-support.d.ts +36 -9
- package/dist/setup-job-support.d.ts.map +1 -1
- package/dist/setup-job-support.js +81 -10
- package/dist/setup-job-support.js.map +1 -1
- package/dist/setup-jobs.d.ts +4 -4
- package/dist/setup-jobs.d.ts.map +1 -1
- package/dist/setup-jobs.js +50 -47
- package/dist/setup-jobs.js.map +1 -1
- package/dist/setup-login-capability.d.ts +37 -0
- package/dist/setup-login-capability.d.ts.map +1 -0
- package/dist/setup-login-capability.js +96 -0
- package/dist/setup-login-capability.js.map +1 -0
- package/dist/setup-login-io.d.ts +4 -1
- package/dist/setup-login-io.d.ts.map +1 -1
- package/dist/setup-login-io.js +22 -3
- package/dist/setup-login-io.js.map +1 -1
- package/dist/setup-login-pty.d.ts +64 -22
- package/dist/setup-login-pty.d.ts.map +1 -1
- package/dist/setup-login-pty.js +289 -48
- package/dist/setup-login-pty.js.map +1 -1
- package/dist/setup-login-runner-support.d.ts +12 -0
- package/dist/setup-login-runner-support.d.ts.map +1 -0
- package/dist/setup-login-runner-support.js +65 -0
- package/dist/setup-login-runner-support.js.map +1 -0
- package/dist/setup-login-runner.d.ts +2 -0
- package/dist/setup-login-runner.d.ts.map +1 -1
- package/dist/setup-login-runner.js +119 -116
- package/dist/setup-login-runner.js.map +1 -1
- package/dist/setup-runner-outcome.d.ts +10 -0
- package/dist/setup-runner-outcome.d.ts.map +1 -0
- package/dist/setup-runner-outcome.js +49 -0
- package/dist/setup-runner-outcome.js.map +1 -0
- package/dist/thread-continuity-context.d.ts +24 -0
- package/dist/thread-continuity-context.d.ts.map +1 -1
- package/dist/thread-continuity-context.js +17 -0
- package/dist/thread-continuity-context.js.map +1 -1
- package/package.json +24 -24
package/dist/control-services.js
CHANGED
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
/** Bind typed control operations to daemon stores and engine entrypoints. */
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { loadConfig, updateGlobalConfig } from "@claudexor/config";
|
|
2
|
+
import { mkdirSync, realpathSync } from "node:fs";
|
|
3
|
+
import { loadConfig } from "@claudexor/config";
|
|
5
4
|
import { listTrustService, updateTrustService } from "./trust-services.js";
|
|
6
5
|
import { SecretStore, isManagedSecretName } from "@claudexor/secrets";
|
|
7
|
-
import { probeGitCapability,
|
|
8
|
-
import {
|
|
9
|
-
import { ControlCredentialProfileCreateRequest, ControlSettingsUpdateRequest, RunScope, TERMINAL_LIFECYCLES, } from "@claudexor/schema";
|
|
6
|
+
import { probeGitCapability, purgeThreadLanes, purgeThreadWorktree } from "@claudexor/workspace";
|
|
7
|
+
import { noProjectRepoRoot } from "@claudexor/util";
|
|
8
|
+
import { ControlAccountsMigrationRollbackRequest, ControlCredentialProfileCreateRequest, ControlSettingsUpdateRequest, RunScope, TERMINAL_LIFECYCLES, } from "@claudexor/schema";
|
|
9
|
+
import { rollbackAccountsUnifiedMigration } from "./accounts-unified-migration.js";
|
|
10
|
+
import { credentialProfileMutations } from "./credential-profile-mutations.js";
|
|
10
11
|
import { quotaControlServices } from "./quota-services.js";
|
|
11
|
-
import { registerConfigDirProfile
|
|
12
|
-
import { StatusProjectionCache, globalConfigVersion
|
|
12
|
+
import { registerConfigDirProfile } from "./profile-registration.js";
|
|
13
|
+
import { StatusProjectionCache, globalConfigVersion } from "./status-projection-cache.js";
|
|
13
14
|
import { vendorVerifiedProfileStatus } from "@claudexor/orchestrator";
|
|
14
15
|
import { profileDoctorStatus } from "./accounts-projection.js";
|
|
15
16
|
import { createRetentionRunner } from "./retention-service.js";
|
|
16
|
-
import { canonicalIsolationLocator, invalidateDoctorCache, normalizeThroughExistingAncestor, } from "@claudexor/core";
|
|
17
17
|
import { buildGateway, harnessModels } from "./registry.js";
|
|
18
18
|
import { createCredentialProfilesService, projectHarnessStatuses, } from "./accounts-services.js";
|
|
19
19
|
import { buildAgentCapabilityCatalog } from "./capabilities.js";
|
|
20
20
|
import { commitSettingsUpdate, settingsSnapshot } from "./settings-service.js";
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
21
|
+
import { bustCredentialStatusCaches, } from "./credential-status-invalidation.js";
|
|
22
|
+
import { activeProfileLoginJob, preflightSetupJobCreateRequest } from "./setup-job-support.js";
|
|
23
|
+
import { assertSetupLoginAdmission, projectSetupLoginCapability, } from "./setup-login-capability.js";
|
|
23
24
|
import { createRunRequirementsPreflight } from "./request-preflight.js";
|
|
24
25
|
import { threadRunStartRequiresGit } from "./thread-execution-workspace.js";
|
|
25
26
|
import { applyThreadDiff } from "./thread-delivery.js";
|
|
26
|
-
import { assertCredentialProfileCompatibility
|
|
27
|
+
import { assertCredentialProfileCompatibility } from "./profile-compatibility.js";
|
|
27
28
|
import { remoteFilesystemServices } from "./remote-filesystem.js";
|
|
28
29
|
import { projectRunApplicability } from "./run-applicability.js";
|
|
29
30
|
import { threadTurnServices } from "./thread-turn-services.js";
|
|
@@ -63,11 +64,7 @@ resources, quotaRegistry, daemonJobs) {
|
|
|
63
64
|
const harnessesPollCache = new StatusProjectionCache({
|
|
64
65
|
versionOf: globalConfigVersion,
|
|
65
66
|
});
|
|
66
|
-
const bustStatusCaches = () =>
|
|
67
|
-
invalidateDoctorCache();
|
|
68
|
-
invalidateStatusProjections();
|
|
69
|
-
quotaRegistry().noteCredentialChange();
|
|
70
|
-
};
|
|
67
|
+
const bustStatusCaches = (subject) => bustCredentialStatusCaches(quotaRegistry, subject);
|
|
71
68
|
const journalPartition = (partition) => partition === "global" ? journalManager : threads.journal(partition);
|
|
72
69
|
const setupJobs = () => {
|
|
73
70
|
try {
|
|
@@ -225,10 +222,20 @@ resources, quotaRegistry, daemonJobs) {
|
|
|
225
222
|
authReadiness: async (input) => authReadiness.refresh(input.harnessId, input.request),
|
|
226
223
|
agentCapabilities: async () => buildAgentCapabilityCatalog(),
|
|
227
224
|
runApplicability: async (input) => projectRunApplicability(input.repoRoot),
|
|
228
|
-
createSetupJob: async (input) =>
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
225
|
+
createSetupJob: async (input) => {
|
|
226
|
+
// No helper/vendor probe and no bootstrap/durable mutation can precede
|
|
227
|
+
// request, named-profile, required-profile, and D13 validation.
|
|
228
|
+
const request = preflightSetupJobCreateRequest(input.request);
|
|
229
|
+
const capability = await projectSetupLoginCapability(request.harness, {
|
|
230
|
+
transport: request.transport,
|
|
231
|
+
loginFlow: request.loginFlow,
|
|
232
|
+
});
|
|
233
|
+
assertSetupLoginAdmission(capability);
|
|
234
|
+
return setupJobs().create(request, {
|
|
235
|
+
key: input.idempotencyKey,
|
|
236
|
+
client: input.clientId,
|
|
237
|
+
});
|
|
238
|
+
},
|
|
232
239
|
listSetupJobs: async (input) => {
|
|
233
240
|
const jobs = setupJobs();
|
|
234
241
|
return { jobs: jobs.list(input) };
|
|
@@ -259,105 +266,30 @@ resources, quotaRegistry, daemonJobs) {
|
|
|
259
266
|
...quotaControlServices(quotaRegistry),
|
|
260
267
|
// INV-135: durable registry + live doctor projection, one probe per
|
|
261
268
|
// profile; adapters without profile support report honest unknown.
|
|
262
|
-
|
|
263
|
-
//
|
|
264
|
-
|
|
265
|
-
//
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
return updated;
|
|
285
|
-
}),
|
|
286
|
-
}));
|
|
287
|
-
if (!updated) {
|
|
288
|
-
throw Object.assign(new Error("profile update did not persist"), { status: 500 });
|
|
289
|
-
}
|
|
290
|
-
bustStatusCaches();
|
|
291
|
-
return {
|
|
292
|
-
profile: updated,
|
|
293
|
-
// Same vendor overlay the listing applies: a single-profile response
|
|
294
|
-
// must not re-declare a revoked credential `passed` (INV-135 honesty).
|
|
295
|
-
status: vendorVerifiedProfileStatus(await profileDoctorStatus(updated), quotaRegistry().read()),
|
|
296
|
-
};
|
|
297
|
-
},
|
|
298
|
-
// INV-135 deletion: registry first; scoped material cleanup is fenced and disclosed.
|
|
299
|
-
deleteCredentialProfile: async (input) => {
|
|
300
|
-
const p = (input ?? {});
|
|
301
|
-
const harnessId = typeof p["harnessId"] === "string" ? p["harnessId"] : "";
|
|
302
|
-
const profileId = typeof p["profileId"] === "string" ? p["profileId"] : "";
|
|
303
|
-
if (!harnessId || !profileId) {
|
|
304
|
-
throw Object.assign(new Error("harnessId and profileId are required"), { status: 400 });
|
|
305
|
-
}
|
|
306
|
-
const activeLogin = activeProfileLoginJob(setupJobs, harnessId, profileId);
|
|
307
|
-
if (activeLogin) {
|
|
308
|
-
throw Object.assign(new Error(`a login for this account is in progress (${activeLogin.jobId}); cancel it before removing the account`), { status: 409 });
|
|
309
|
-
}
|
|
310
|
-
assertCredentialProfileRegistered(loadConfig(NO_PROJECT_ROOT).global.credential_profiles, harnessId, profileId);
|
|
311
|
-
threads.invalidateCredentialProfile(harnessId, profileId);
|
|
312
|
-
// INV-034 lifecycle owner (b): the deleted account's durable per-lane
|
|
313
|
-
// read-only homes must not survive to be resumed. Sweep them across every
|
|
314
|
-
// project a live thread anchors to (plus the no-project partition).
|
|
315
|
-
const laneRoots = new Set([NO_PROJECT_ROOT]);
|
|
316
|
-
for (const thread of threads.listThreads()) {
|
|
317
|
-
if (thread.repo?.root)
|
|
318
|
-
laneRoots.add(thread.repo.root);
|
|
319
|
-
}
|
|
320
|
-
for (const root of laneRoots)
|
|
321
|
-
purgeProfileLanes(root, harnessId, profileId);
|
|
322
|
-
quotaRegistry().removeSubject(harnessId, profileId);
|
|
323
|
-
const entry = removeProfileFromRegistry(harnessId, profileId);
|
|
324
|
-
let credentialCleanup = "none";
|
|
325
|
-
const cleanupWarnings = [];
|
|
326
|
-
try {
|
|
327
|
-
if (entry.credential_kind === "config_dir_login" && entry.isolation_locator) {
|
|
328
|
-
// Each member resolves through its OWN canonicalizer (the ladder
|
|
329
|
-
// this used to hand-write let cursor and agy fall through to the
|
|
330
|
-
// generic one, so a member whose canonicalizer adds a rule — claude
|
|
331
|
-
// already refuses the default native dir — would silently delete
|
|
332
|
-
// against a different path than its login wrote to).
|
|
333
|
-
const dir = isConfigDirLoginHarness(harnessId)
|
|
334
|
-
? canonicalProfileLoginDir(harnessId, entry.isolation_locator)
|
|
335
|
-
: canonicalIsolationLocator(entry.isolation_locator, "credential profile dir");
|
|
336
|
-
// Recursive deletion is fenced to a strict descendant of the profiles tree.
|
|
337
|
-
const profilesRoot = normalizeThroughExistingAncestor(join(claudexorOwnedRoot(), "profiles"));
|
|
338
|
-
if (!dir.startsWith(profilesRoot + sep)) {
|
|
339
|
-
throw new Error(`refusing to delete "${dir}": not inside the profiles tree ${profilesRoot}`);
|
|
340
|
-
}
|
|
341
|
-
if (existsSync(dir)) {
|
|
342
|
-
rmSync(dir, { recursive: true, force: true });
|
|
343
|
-
credentialCleanup = "config_dir_removed";
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
else if (entry.secret_ref) {
|
|
347
|
-
secretStore.delete(entry.secret_ref);
|
|
348
|
-
credentialCleanup = "secret_deleted";
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
catch (err) {
|
|
352
|
-
cleanupWarnings.push(`registry entry removed, but credential cleanup failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
353
|
-
}
|
|
269
|
+
// The pool-authority read (GET /v2/account-pools) shares the same cached
|
|
270
|
+
// projection so the listing and the pool verdict cannot disagree.
|
|
271
|
+
...createCredentialProfilesService(quotaRegistry),
|
|
272
|
+
// PATCH + DELETE /credential-profiles/:harness/:id — the Enabled toggle
|
|
273
|
+
// (with the migrated row's native_credentials_enabled downgrade mirror)
|
|
274
|
+
// and the provable D-U4 removal, owned by credential-profile-mutations.ts.
|
|
275
|
+
...credentialProfileMutations({
|
|
276
|
+
threads,
|
|
277
|
+
quotaRegistry,
|
|
278
|
+
secretStore,
|
|
279
|
+
bustStatusCaches,
|
|
280
|
+
activeLoginJob: (harnessId, profileId) => activeProfileLoginJob(setupJobs, harnessId, profileId),
|
|
281
|
+
}),
|
|
282
|
+
// POST /accounts-migration/rollback — the supported downgrade path's
|
|
283
|
+
// first step (unified account model): surgically reverses the startup
|
|
284
|
+
// migration (sessions/checkpoints/lane homes back to the engine-default
|
|
285
|
+
// keys, the auto-registered row out of the registry, its enabled state
|
|
286
|
+
// back onto the native_credentials_enabled mirror). Run BEFORE installing
|
|
287
|
+
// an engine whose canonicalizers refuse the native locator.
|
|
288
|
+
rollbackAccountsMigration: async (input) => {
|
|
289
|
+
const request = ControlAccountsMigrationRollbackRequest.parse(input ?? {});
|
|
290
|
+
const rolledBack = rollbackAccountsUnifiedMigration({ threads, quota: quotaRegistry() }, request.harnessId);
|
|
354
291
|
bustStatusCaches();
|
|
355
|
-
return {
|
|
356
|
-
profile: entry,
|
|
357
|
-
removed: true,
|
|
358
|
-
credentialCleanup,
|
|
359
|
-
...(cleanupWarnings.length > 0 ? { cleanupWarning: cleanupWarnings.join("; ") } : {}),
|
|
360
|
-
};
|
|
292
|
+
return { rolledBack };
|
|
361
293
|
},
|
|
362
294
|
// POST /credential-profiles: the SAME ONE registration owner the CLI's
|
|
363
295
|
// `profiles add` uses (profile-registration.ts) — never a second write
|
|
@@ -370,7 +302,7 @@ resources, quotaRegistry, daemonJobs) {
|
|
|
370
302
|
profileId: request.profileId,
|
|
371
303
|
displayName: request.displayName,
|
|
372
304
|
});
|
|
373
|
-
bustStatusCaches();
|
|
305
|
+
bustStatusCaches({ harnessId: request.harnessId, profileId: request.profileId });
|
|
374
306
|
return {
|
|
375
307
|
profile,
|
|
376
308
|
status: vendorVerifiedProfileStatus(await profileDoctorStatus(profile), quotaRegistry().read()),
|
|
@@ -405,7 +337,7 @@ resources, quotaRegistry, daemonJobs) {
|
|
|
405
337
|
throw Object.assign(new Error(`secret name must be a managed name or managed:profile slot, got "${name}"`), { status: 400 });
|
|
406
338
|
}
|
|
407
339
|
const backend = secretStore.set(name, value);
|
|
408
|
-
bustStatusCaches();
|
|
340
|
+
bustStatusCaches({ secretName: name });
|
|
409
341
|
return {
|
|
410
342
|
name,
|
|
411
343
|
backend,
|
|
@@ -415,7 +347,7 @@ resources, quotaRegistry, daemonJobs) {
|
|
|
415
347
|
},
|
|
416
348
|
deleteSecret: async (name) => {
|
|
417
349
|
secretStore.delete(name);
|
|
418
|
-
bustStatusCaches();
|
|
350
|
+
bustStatusCaches({ secretName: name });
|
|
419
351
|
return { name, deleted: true };
|
|
420
352
|
},
|
|
421
353
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-services.js","sourceRoot":"","sources":["../src/control-services.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"control-services.js","sourceRoot":"","sources":["../src/control-services.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAUlD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAEL,uCAAuC,EACvC,qCAAqC,EACrC,4BAA4B,EAE5B,QAAQ,EACR,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EACL,+BAA+B,EAC/B,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EACL,0BAA0B,GAE3B,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EACL,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAA2B,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,oCAAoC,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,MAAM,eAAe,GAAG,iBAAiB,EAAE,CAAC;AAG5C;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,GAAyC;IACrE,MAAM,KAAK,GAAI,GAAG,CAAC,MAAiD,EAAE,KAAK,CAAC;IAC5E,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACpF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CAAC,0CAA0C,GAAG,CAAC,KAAK,+BAA+B,CAAC,EAC7F,EAAE,IAAI,EAAE,6BAA6B,EAAE,MAAM,EAAE,GAAG,EAAE,CACrD,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,YAAiC,EACjC,QAA4B,EAC5B,OAA0B,EAC1B,YAA0B,EAC1B,cAA8B,EAC9B,aAAmC;AACnC;uEACuE;AACvE,SAA8B,EAC9B,aAAkC,EAClC,UAEC;IAED,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,MAAM,aAAa,GAAG,KAAK,EAAE,KAAwB,EAAE,EAAE;QACvD,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACxC,YAAY,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,IAAI,KAAK,EAAE,CAAC,CAAC,SAAS,CACpE,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,EACtD,KAAK,EAAE,UAAU,CAClB;YACD,kBAAkB,EAAE;SACrB,CAAC,CAAC;QACH,uEAAuE;QACvE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;IACpE,CAAC,CAAC;IACF,+FAA+F;IAC/F,MAAM,kBAAkB,GAAG,IAAI,qBAAqB,CAA4C;QAC9F,SAAS,EAAE,mBAAmB;KAC/B,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,CAAC,OAAmC,EAAE,EAAE,CAC/D,0BAA0B,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAkB,EAAE,CAC7D,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,GAAoB,EAAE;QACtC,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IACE,KAAK;gBACL,OAAO,KAAK,KAAK,QAAQ;gBACzB,MAAM,IAAI,KAAK;gBACf,CAAE,KAA2B,CAAC,IAAI,KAAK,2BAA2B;oBAC/D,KAA2B,CAAC,IAAI,KAAK,0BAA0B,CAAC,EACnE,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,cAAc,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IACF,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAmC;QACpD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;KAC7C,CAAC;IACF,MAAM,mBAAmB,GAAG,CAAC,OAA+B,EAAW,EAAE;QACvE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;QACrF,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,OAAO,yBAAyB,CAC9B,OAAO,EACP,MAAM,EACN,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CACrD,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,wBAAwB,GAAG,8BAA8B,CAAC,aAAa,EAAE,eAAe,EAAE;QAC9F,WAAW,EAAE,mBAAmB;KACjC,CAAC,CAAC;IACH,MAAM,8BAA8B,GAAG,8BAA8B,CACnE,aAAa,EACb,eAAe,EACf,EAAE,WAAW,EAAE,mBAAmB,EAAE,EACpC,EAAE,GAAG,EAAE,aAAa,EAAE,CACvB,CAAC;IACF,OAAO;QACL,wBAAwB;QACxB,8BAA8B;QAC9B,YAAY,EAAE,KAAK,EAAE,KAAc,EAAE,cAAsB,EAAE,EAAE,CAC7D,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC;QAC3C,WAAW,EAAE,KAAK,EAAE,QAAgB,EAAE,MAAiC,EAAE,EAAE,CACzE,SAAS,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC;QACrC,YAAY,EAAE,KAAK,EAAE,QAAgB,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtE,YAAY,EAAE,KAAK,EAAE,QAAgB,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtE,cAAc,EAAE,KAAK,EACnB,QAAgB,EAChB,cAAkC,EAClC,cAAsB,EACtB,EAAE,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,cAAc,CAAC;QACnE,iBAAiB,EAAE,KAAK,EAAE,IAA6B,EAAE,EAAE;YACzD,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,YAAY,EAAE,qBAAqB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QACtE,oEAAoE;QACpE,8EAA8E;QAC9E,YAAY,EAAE,KAAK,IAAI,EAAE;YACvB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;YACzB,OAAO;gBACL,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAc;aAC5F,CAAC;QACJ,CAAC;QACD,0EAA0E;QAC1E,2EAA2E;QAC3E,GAAG,wBAAwB,CAAC,QAAQ,CAAC;QACrC,eAAe,EAAE,KAAK,EAAE,KAA8C,EAAE,EAAE;YACxE,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC/C,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACpE,CAAC;QACD,aAAa,EAAE,KAAK,EAAE,EAAU,EAAE,IAAY,EAAE,EAAE;YAChD,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAChD,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACpE,CAAC;QACD,6EAA6E;QAC7E,2EAA2E;QAC3E,2EAA2E;QAC3E,6EAA6E;QAC7E,uDAAuD;QACvD,aAAa,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE;YAClC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;YACzC,KAAK,MAAM,GAAG,IAAI,MAAM,UAAU,EAAE,EAAE,CAAC;gBACrC,IAAK,mBAA2C,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;oBAAE,SAAS;gBAC1E,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,IAAI,KAAK,IAAI;oBAAE,SAAS;gBAC5B,IAAI,CAAC;oBACH,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzC,CAAC;gBAAC,MAAM,CAAC;oBACP,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;QACnD,CAAC;QACD,YAAY,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE,CAAqD,CAAC;YAClF,oCAAoC,CAClC,OAAO,CAAC,mBAAmB,EAC3B,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,iBAAiB,IAAI,EAAE,EAC/B,UAAU,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,mBAAmB,CACvD,CAAC;YACF,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,WAAW,EAAE,KAAK,IAAI,EAAE;YACtB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;YACnE,OAAO,EAAE,OAAO,EAAE,IAAiB,EAAE,QAAQ,EAAE,QAAqB,EAAE,CAAC;QACzE,CAAC;QACD,GAAG,kBAAkB,CAAC,OAAO,EAAE,aAAa,CAAC;QAC7C,YAAY,EAAE,KAAK,EACjB,EAAU,EACV,KAOC,EACD,EAAE;YACF,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO;gBAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACvF,MAAM,SAAS,GACb,KAAK,CAAC,mBAAmB,KAAK,SAAS;gBACrC,CAAC,CAAC,OAAO,CAAC,qBAAqB;gBAC/B,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;YAChC,MAAM,IAAI,GAAG,KAAK,CAAC,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,CAAC;YACnE,MAAM,OAAO,GACX,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;YACtF,IACE,KAAK,CAAC,mBAAmB,KAAK,SAAS;gBACvC,KAAK,CAAC,cAAc,KAAK,SAAS;gBAClC,KAAK,CAAC,iBAAiB,KAAK,SAAS,EACrC,CAAC;gBACD,oCAAoC,CAClC,SAAS,EACT,OAAO,EACP,IAAI,EACJ,UAAU,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,mBAAmB,CACvD,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE;gBAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAY;gBACzB,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;gBAC9C,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;gBAC1C,oEAAoE;gBACpE,yEAAyE;gBACzE,sEAAsE;gBACtE,sEAAsE;gBACtE,gEAAgE;gBAChE,MAAM,EAAE,KAAK,CAAC,MAAa;aAC5B,CAAC,CAAC;QACL,CAAC;QACD,WAAW,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1D,aAAa,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9D,WAAW,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM;gBAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACtF,uEAAuE;YACvE,uEAAuE;YACvE,wDAAwD;YACxD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACxD,MAAM,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,sEAAsE;YACtE,0EAA0E;YAC1E,iCAAiC;YACjC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,eAAe,EAAE,EAAE,CAAC,CAAC;YAC3D,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,WAAW,EAAE,KAAK,EAAE,EAAU,EAAE,IAAwB,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC;QAC/F,SAAS,EAAE,gBAAgB;QAC3B,WAAW,EAAE,kBAAkB;QAC/B,mBAAmB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC;QACzE,iBAAiB,EAAE,CAAC,KAAa,EAAE,aAAqB,EAAE,OAAgB,EAAE,EAAE,CAC5E,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC;QACpD,gBAAgB,EAAE,CAAC,KAAa,EAAE,MAAe,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC;QAC7F,iCAAiC,EAAE,CACjC,KAAa,EACb,MAAe,EACf,WAA8D,EAC9D,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC;QAC1E,sBAAsB,EAAE,CACtB,KAAa,EACb,MAAe,EACf,QAA+C,EAC/C,WAA+D,EAC/D,EAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,EAAE,WAAW,CAAC;QAChF,aAAa,EAAE,KAAK,EAClB,MAAe,EACf,KAA2E,EAC3E,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC;QACzC,gBAAgB,EAAE,KAAK,EAAE,EAAU,EAAE,MAAe,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC;QAC7F,YAAY,EAAE,KAAK,EAAE,EAAU,EAAE,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC;QACnF,SAAS,EAAE,KAAK,EAAE,KAAwB,EAAE,EAAE,CAC5C,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM;YACjE,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC;YAChD,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC;QAC1B,aAAa,EAAE,KAAK,EAAE,KAAiE,EAAE,EAAE,CACzF,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC;QACpE,aAAa,EAAE,KAAK,EAAE,KAA8C,EAAE,EAAE,CACtE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;QACvD,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAAC,2BAA2B,EAAE;QAC5D,gBAAgB,EAAE,KAAK,EAAE,KAA2B,EAAE,EAAE,CACtD,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC;QACzC,cAAc,EAAE,KAAK,EAAE,KAItB,EAAE,EAAE;YACH,uEAAuE;YACvE,gEAAgE;YAChE,MAAM,OAAO,GAAG,8BAA8B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9D,MAAM,UAAU,GAAG,MAAM,2BAA2B,CAAC,OAAO,CAAC,OAAO,EAAE;gBACpE,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;aAC7B,CAAC,CAAC;YACH,yBAAyB,CAAC,UAAU,CAAC,CAAC;YACtC,OAAO,SAAS,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE;gBACjC,GAAG,EAAE,KAAK,CAAC,cAAc;gBACzB,MAAM,EAAE,KAAK,CAAC,QAAQ;aACvB,CAAC,CAAC;QACL,CAAC;QACD,aAAa,EAAE,KAAK,EAAE,KAAe,EAAE,EAAE;YACvC,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAwC,CAAC,EAAE,CAAC;QACvE,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;QACnE,gBAAgB,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;QACvE,cAAc,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;QACnE,cAAc,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;QACnE,aAAa,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;QACjE,iBAAiB,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;QACzE,cAAc,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;QACnE,aAAa,EAAE,KAAK,EAAE,SAAiB,EAAE,WAAoB,EAAE,EAAE,CAC/D,gBAAgB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;QACjD,wBAAwB,EAAE,KAAK,EAAE,SAAiB,EAAE,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;QAC5F,yBAAyB,EAAE,KAAK,EAAE,SAAiB,EAAE,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;QAC9F,uBAAuB,EAAE,KAAK,EAAE,SAAiB,EAAE,EAAE,CACnD,gBAAgB,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE;QAC9C,2BAA2B,EAAE,KAAK,EAAE,SAAiB,EAAE,KAAc,EAAE,EAAE;YACvE,MAAM,OAAO,GAAG,KAAiE,CAAC;YAClF,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,SAAS,GAAG,cAAc,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC9D,IAAI,SAAS,CAAC,WAAW,KAAK,WAAW,IAAI,YAAY,CAAC,0BAA0B,EAAE,EAAE,CAAC;gBACvF,OAAO,SAAS,CAAC,OAAO,CAAC;YAC3B,CAAC;YACD,OAAO,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1F,CAAC;QACD,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,gBAAgB,CAAC,eAAe,CAAC;QACvD,GAAG,oBAAoB,CAAC,aAAa,CAAC;QACtC,oEAAoE;QACpE,mEAAmE;QACnE,yEAAyE;QACzE,kEAAkE;QAClE,GAAG,+BAA+B,CAAC,aAAa,CAAC;QACjD,wEAAwE;QACxE,wEAAwE;QACxE,2EAA2E;QAC3E,GAAG,0BAA0B,CAAC;YAC5B,OAAO;YACP,aAAa;YACb,WAAW;YACX,gBAAgB;YAChB,cAAc,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CACvC,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;SACzD,CAAC;QACF,qEAAqE;QACrE,sEAAsE;QACtE,wEAAwE;QACxE,uEAAuE;QACvE,0EAA0E;QAC1E,4DAA4D;QAC5D,yBAAyB,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;YAClD,MAAM,OAAO,GAAG,uCAAuC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAC3E,MAAM,UAAU,GAAG,gCAAgC,CACjD,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EACnC,OAAO,CAAC,SAAS,CAClB,CAAC;YACF,gBAAgB,EAAE,CAAC;YACnB,OAAO,EAAE,UAAU,EAAE,CAAC;QACxB,CAAC;QACD,uEAAuE;QACvE,uEAAuE;QACvE,wEAAwE;QACxE,yDAAyD;QACzD,uBAAuB,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;YAChD,MAAM,OAAO,GAAG,qCAAqC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACzE,MAAM,EAAE,OAAO,EAAE,GAAG,wBAAwB,CAAC;gBAC3C,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC,CAAC;YACH,gBAAgB,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YACjF,OAAO;gBACL,OAAO;gBACP,MAAM,EAAE,2BAA2B,CACjC,MAAM,mBAAmB,CAAC,OAAO,CAAC,EAClC,aAAa,EAAE,CAAC,IAAI,EAAE,CACvB;aACF,CAAC;QACJ,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;YACvC,MAAM,CAAC,GAAG,4BAA4B,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAC1D,mEAAmE;YACnE,oEAAoE;YACpE,iEAAiE;YACjE,0EAA0E;YAC1E,0EAA0E;YAC1E,4DAA4D;YAC5D,MAAM,oBAAoB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YAC/C,gBAAgB,EAAE,CAAC;YACnB,OAAO,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC;QACD,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YACxB,OAAO,EAAE,WAAW,CAAC,eAAe,EAAE;YACtC,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE;SAC5B,CAAC;QACF,SAAS,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;YAClC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;YACnD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACpE,uEAAuE;YACvE,wEAAwE;YACxE,0DAA0D;YAC1D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CAAC,oEAAoE,IAAI,GAAG,CAAC,EACtF,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC7C,gBAAgB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,OAAO;gBACL,IAAI;gBACJ,OAAO;gBACP,MAAM,EAAE,IAAI;gBACZ,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvF,CAAC;QACJ,CAAC;QACD,YAAY,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;YACnC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzB,gBAAgB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACjC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,9 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Credential surfaces: the managed secret store and INV-135 credential
|
|
3
|
+
* profiles. Thin clients — the daemon owns storage and doctor probes; the
|
|
4
|
+
* profile login spawns the SAME vendor command the setup jobs run, in this
|
|
5
|
+
* interactive terminal, scoped to the profile's config dir.
|
|
6
|
+
*/
|
|
7
|
+
import { spawnSync } from "node:child_process";
|
|
1
8
|
import { type ParsedArgs } from "./args.js";
|
|
9
|
+
import { daemonGet } from "./ops-commands.js";
|
|
2
10
|
/**
|
|
3
11
|
* Thin client over the daemon's credential-profile listing (INV-135): the
|
|
4
12
|
* durable registry lives in the global config; readiness is the daemon
|
|
5
13
|
* doctor's projection — this command never probes vendors itself.
|
|
6
14
|
*/
|
|
7
15
|
export declare function profilesCommand(args: ParsedArgs, json: boolean): Promise<number>;
|
|
16
|
+
export interface ProfilesCommandDeps {
|
|
17
|
+
daemonGet?: typeof daemonGet;
|
|
18
|
+
spawnSync?: typeof spawnSync;
|
|
19
|
+
platform?: NodeJS.Platform;
|
|
20
|
+
}
|
|
21
|
+
/** Injectable only at the process/vendor boundary so policy ordering has a
|
|
22
|
+
* zero-spawn regression test without contacting a daemon or vendor. */
|
|
23
|
+
export declare function profilesCommandWithDeps(args: ParsedArgs, json: boolean, deps?: ProfilesCommandDeps): Promise<number>;
|
|
8
24
|
export declare function secretsCommand(args: ParsedArgs, json: boolean): Promise<number>;
|
|
9
25
|
//# sourceMappingURL=credential-commands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-commands.d.ts","sourceRoot":"","sources":["../src/credential-commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"credential-commands.d.ts","sourceRoot":"","sources":["../src/credential-commands.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAoB/C,OAAO,EAAE,KAAK,UAAU,EAAW,MAAM,WAAW,CAAC;AAIrD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAY9C;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAEtF;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC5B;AAED;uEACuE;AACvE,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,OAAO,EACb,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,MAAM,CAAC,CAkUjB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA0ErF"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { spawnSync } from "node:child_process";
|
|
8
8
|
import { registerConfigDirProfile } from "./profile-registration.js";
|
|
9
|
-
import { ControlCredentialProfileDeleteResponse, ControlCredentialProfileUpdateResponse, ControlCredentialProfilesResponse, ControlSecretListResponse, ControlSecretMutationResponse, ControlSecretSetRequest, ControlSetupJob, } from "@claudexor/schema";
|
|
9
|
+
import { ControlAccountsMigrationRollbackResponse, ControlCredentialProfileDeleteResponse, ControlCredentialProfileUpdateResponse, ControlCredentialProfilesResponse, ControlSecretListResponse, ControlSecretMutationResponse, ControlSecretSetRequest, ControlSetupJob, } from "@claudexor/schema";
|
|
10
10
|
import { streamDurableCodexLogin, terminalLoginFallback } from "./setup-login-inline.js";
|
|
11
11
|
import { MANAGED_SECRET_NAMES, isManagedSecretName } from "@claudexor/secrets";
|
|
12
12
|
import { CONFIG_DIR_LOGIN_HARNESSES, canonicalProfileLoginDir, configDirLoginHarnessList, isConfigDirLoginHarness, } from "./config-dir-login-harnesses.js";
|
|
@@ -16,6 +16,9 @@ import { ensureDaemon } from "./daemon-run.js";
|
|
|
16
16
|
import { controlApiFetch } from "./live.js";
|
|
17
17
|
import { daemonGet } from "./ops-commands.js";
|
|
18
18
|
import { nativeLoginEnv, nativeLoginSpec } from "./native-login.js";
|
|
19
|
+
import { credentialProfilePolicyProblem, credentialProfilePolicyState } from "@claudexor/core";
|
|
20
|
+
import { buildRegistry } from "./registry.js";
|
|
21
|
+
import { CliError, renderCliFailure } from "./cli-error.js";
|
|
19
22
|
async function stdinText() {
|
|
20
23
|
const chunks = [];
|
|
21
24
|
for await (const chunk of process.stdin)
|
|
@@ -28,25 +31,53 @@ async function stdinText() {
|
|
|
28
31
|
* doctor's projection — this command never probes vendors itself.
|
|
29
32
|
*/
|
|
30
33
|
export async function profilesCommand(args, json) {
|
|
34
|
+
return profilesCommandWithDeps(args, json);
|
|
35
|
+
}
|
|
36
|
+
/** Injectable only at the process/vendor boundary so policy ordering has a
|
|
37
|
+
* zero-spawn regression test without contacting a daemon or vendor. */
|
|
38
|
+
export async function profilesCommandWithDeps(args, json, deps = {}) {
|
|
39
|
+
const get = deps.daemonGet ?? daemonGet;
|
|
40
|
+
const spawnVendor = deps.spawnSync ?? spawnSync;
|
|
31
41
|
const sub = args._[1] ?? "list";
|
|
32
42
|
if (sub === "login") {
|
|
33
43
|
// INV-135 profile login: the SAME vendor login command the setup jobs run,
|
|
34
|
-
// spawned interactively in THIS terminal with the profile's scoped
|
|
35
|
-
//
|
|
36
|
-
// exit is the verification truth.
|
|
44
|
+
// spawned interactively in THIS terminal with the profile's scoped state.
|
|
45
|
+
// Some platforms keep the vendor credential at OS-user scope; the doctor
|
|
46
|
+
// probe after exit is the verification truth.
|
|
37
47
|
const harness = args._[2];
|
|
38
48
|
const profileId = args._[3];
|
|
39
49
|
if (!harness || !profileId) {
|
|
40
50
|
return printUsageError(json, "usage: claudexor profiles login <harness> <profile-id>");
|
|
41
51
|
}
|
|
42
|
-
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
//
|
|
52
|
+
const listing = ControlCredentialProfilesResponse.parse(await get("/credential-profiles"));
|
|
53
|
+
// The listing is the canonical registry projection. Apply the same static
|
|
54
|
+
// platform/cardinality gate as setup jobs before emitting interactive
|
|
55
|
+
// prose, spawning a vendor, or contacting any vendor surface. This closes
|
|
56
|
+
// the direct profile-login bypass without changing the valid TTY flow.
|
|
57
|
+
const adapter = buildRegistry({ includeFakes: false }).get(harness);
|
|
58
|
+
if (adapter) {
|
|
59
|
+
const state = credentialProfilePolicyState({
|
|
60
|
+
adapter,
|
|
61
|
+
registry: listing.profiles.map((row) => row.profile),
|
|
62
|
+
platform: deps.platform,
|
|
63
|
+
});
|
|
64
|
+
if (state.ambiguous) {
|
|
65
|
+
const problem = credentialProfilePolicyProblem(state, "credential_profile_ambiguous");
|
|
66
|
+
return renderCliFailure(json, new CliError("operational", problem.message, {
|
|
67
|
+
code: problem.code,
|
|
68
|
+
retryable: problem.retryable,
|
|
69
|
+
fieldErrors: problem.fieldErrors,
|
|
70
|
+
requiredActions: problem.requiredActions,
|
|
71
|
+
context: problem.context,
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Non-Codex profile login is deliberately the vendor's interactive TTY
|
|
76
|
+
// flow. Refuse JSON only after the static registry policy above so JSON
|
|
77
|
+
// cannot bypass the same typed ambiguity disposition as human mode.
|
|
46
78
|
if (json && harness !== "codex") {
|
|
47
79
|
return printUsageError(true, `claudexor profiles login ${harness} is interactive and does not support --json`);
|
|
48
80
|
}
|
|
49
|
-
const listing = ControlCredentialProfilesResponse.parse(await daemonGet("/credential-profiles"));
|
|
50
81
|
const entry = listing.profiles.find((p) => p.profile.harness_id === harness && p.profile.profile_id === profileId);
|
|
51
82
|
if (!entry) {
|
|
52
83
|
return printUsageError(json, `no credential profile "${profileId}" for harness "${harness}" (register it in the global config's credential_profiles)`);
|
|
@@ -109,14 +140,14 @@ export async function profilesCommand(args, json) {
|
|
|
109
140
|
}
|
|
110
141
|
const configDir = canonicalProfileLoginDir(harness, profile.isolation_locator ?? "");
|
|
111
142
|
print(`running ${spec.displayCommand} into ${configDir}`);
|
|
112
|
-
const child =
|
|
143
|
+
const child = spawnVendor(spec.binary, spec.args, {
|
|
113
144
|
stdio: "inherit",
|
|
114
145
|
env: nativeLoginEnv(harness, process.env, configDir),
|
|
115
146
|
});
|
|
116
147
|
if (child.status !== 0) {
|
|
117
148
|
print(`login command exited with ${child.status ?? child.signal ?? "unknown"}`);
|
|
118
149
|
}
|
|
119
|
-
const after = ControlCredentialProfilesResponse.parse(await
|
|
150
|
+
const after = ControlCredentialProfilesResponse.parse(await get("/credential-profiles")).profiles.find((p) => p.profile.harness_id === harness && p.profile.profile_id === profileId);
|
|
120
151
|
const status = after?.status;
|
|
121
152
|
if (json)
|
|
122
153
|
printJson({ profile: after?.profile ?? profile, status: status ?? null });
|
|
@@ -188,8 +219,8 @@ export async function profilesCommand(args, json) {
|
|
|
188
219
|
return printUsageError(json, "usage: claudexor profiles remove <harness> <profile-id>");
|
|
189
220
|
}
|
|
190
221
|
// Daemon-owned removal (one mutation path): registry entry + the profile's
|
|
191
|
-
//
|
|
192
|
-
//
|
|
222
|
+
// binding plus data Claudexor owns; vendor-owned OS-user credentials are
|
|
223
|
+
// reported explicitly and left untouched. Active login jobs still refuse.
|
|
193
224
|
const { addr } = await ensureDaemon();
|
|
194
225
|
const response = await controlApiFetch(addr, `/credential-profiles/${encodeURIComponent(harness)}/${encodeURIComponent(profileId)}`, { method: "DELETE", headers: { Authorization: `Bearer ${addr.token}` } });
|
|
195
226
|
if (!response.ok) {
|
|
@@ -200,24 +231,56 @@ export async function profilesCommand(args, json) {
|
|
|
200
231
|
printJson(receipt);
|
|
201
232
|
else {
|
|
202
233
|
print(`removed ${harness}/${profileId} (${receipt.credentialCleanup})`);
|
|
234
|
+
if (receipt.vendorCredentialDisposition) {
|
|
235
|
+
print("Claudexor removed the binding and any Claudexor-owned state or managed secret; it did not change any vendor credential for this OS user.");
|
|
236
|
+
}
|
|
203
237
|
if (receipt.cleanupWarning)
|
|
204
238
|
print(`warning: ${receipt.cleanupWarning}`);
|
|
205
239
|
}
|
|
206
240
|
return 0;
|
|
207
241
|
}
|
|
242
|
+
if (sub === "rollback-migration") {
|
|
243
|
+
// The supported downgrade path of the unified-accounts startup migration:
|
|
244
|
+
// sessions/checkpoints/lane homes return to the engine-default keys and
|
|
245
|
+
// the auto-registered row leaves the registry. Run BEFORE installing an
|
|
246
|
+
// engine whose canonicalizers refuse the migrated row's native locator.
|
|
247
|
+
const harness = args._[2];
|
|
248
|
+
const { addr } = await ensureDaemon();
|
|
249
|
+
const response = await controlApiFetch(addr, "/accounts-migration/rollback", {
|
|
250
|
+
method: "POST",
|
|
251
|
+
headers: { Authorization: `Bearer ${addr.token}`, "content-type": "application/json" },
|
|
252
|
+
body: JSON.stringify(harness ? { harnessId: harness } : {}),
|
|
253
|
+
});
|
|
254
|
+
if (!response.ok) {
|
|
255
|
+
return printUsageError(json, `migration rollback failed (${response.status}): ${await response.text()}`);
|
|
256
|
+
}
|
|
257
|
+
const receipt = ControlAccountsMigrationRollbackResponse.parse(await response.json());
|
|
258
|
+
if (json)
|
|
259
|
+
printJson(receipt);
|
|
260
|
+
else if (receipt.rolledBack.length === 0)
|
|
261
|
+
print("nothing to roll back (no migrated harness)");
|
|
262
|
+
else {
|
|
263
|
+
for (const entry of receipt.rolledBack) {
|
|
264
|
+
print(`rolled back ${entry.harness_id} (row ${entry.row_id}): ${entry.sessions} sessions, ${entry.checkpoints} checkpoints, ${entry.lanes} lane homes`);
|
|
265
|
+
if (entry.skipped_partitions.length > 0) {
|
|
266
|
+
print(`warning: quarantined partition(s) not rolled back: ${entry.skipped_partitions.join(", ")} — recover them and rerun before downgrading`);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return 0;
|
|
271
|
+
}
|
|
208
272
|
if (sub !== "list") {
|
|
209
|
-
return printUsageError(json, "usage: claudexor profiles [list | add <harness> <profile-id> | login <harness> <profile-id> | enable <harness> <profile-id> | disable <harness> <profile-id> | remove <harness> <profile-id>]");
|
|
273
|
+
return printUsageError(json, "usage: claudexor profiles [list | add <harness> <profile-id> | login <harness> <profile-id> | enable <harness> <profile-id> | disable <harness> <profile-id> | remove <harness> <profile-id> | rollback-migration [harness]]");
|
|
210
274
|
}
|
|
211
|
-
const result = ControlCredentialProfilesResponse.parse(await
|
|
275
|
+
const result = ControlCredentialProfilesResponse.parse(await get("/credential-profiles"));
|
|
212
276
|
if (json) {
|
|
213
277
|
printJson(result);
|
|
214
278
|
return 0;
|
|
215
279
|
}
|
|
216
|
-
//
|
|
217
|
-
//
|
|
218
|
-
//
|
|
219
|
-
//
|
|
220
|
-
// never re-derives it.
|
|
280
|
+
// Unified account model (INV-135): every account is a named registry row
|
|
281
|
+
// with an Enabled toggle (the only routing control); routing facts come from
|
|
282
|
+
// the server-owned accountPools projection. This surface never re-derives
|
|
283
|
+
// pool truth, and there is no separate native/CLI-login pseudo-row.
|
|
221
284
|
const byHarness = new Map();
|
|
222
285
|
for (const entry of result.profiles) {
|
|
223
286
|
const list = byHarness.get(entry.profile.harness_id) ?? [];
|
|
@@ -225,36 +288,27 @@ export async function profilesCommand(args, json) {
|
|
|
225
288
|
byHarness.set(entry.profile.harness_id, list);
|
|
226
289
|
}
|
|
227
290
|
const harnessIds = [
|
|
228
|
-
...new Set([...result.
|
|
291
|
+
...new Set([...result.accountPools.map((pool) => pool.harness_id), ...byHarness.keys()]),
|
|
229
292
|
].sort();
|
|
230
293
|
if (harnessIds.length === 0) {
|
|
231
|
-
print("no accounts (
|
|
294
|
+
print("no accounts (connect one with `claudexor auth login <harness>`)");
|
|
232
295
|
return 0;
|
|
233
296
|
}
|
|
234
297
|
for (const harnessId of harnessIds) {
|
|
235
|
-
const authority = result.harnessAccounts.find((h) => h.harness_id === harnessId);
|
|
236
298
|
print(`${harnessId}:`);
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
: authority?.native_login_detected
|
|
242
|
-
? "logged-in"
|
|
243
|
-
: "not-logged-in";
|
|
244
|
-
print(` CLI login [native] ${nativeState}`);
|
|
245
|
-
for (const { profile, status } of byHarness.get(harnessId) ?? []) {
|
|
299
|
+
const rows = byHarness.get(harnessId) ?? [];
|
|
300
|
+
if (rows.length === 0)
|
|
301
|
+
print(" (no accounts)");
|
|
302
|
+
for (const { profile, status } of rows) {
|
|
246
303
|
const state = profile.enabled ? status.availability : "disabled";
|
|
247
304
|
print(` ${profile.profile_id} [${profile.credential_kind}] ${state}${status.detail ? ` — ${status.detail}` : ""}`);
|
|
248
305
|
}
|
|
249
306
|
// Informational: who an UNPINNED run routes to next (never a user setting).
|
|
250
|
-
const nextUp =
|
|
251
|
-
if (nextUp?.kind === "
|
|
252
|
-
print(nextUp.route === "api_key"
|
|
253
|
-
? ` next up: API key [default]`
|
|
254
|
-
: ` next up: CLI login [native]`);
|
|
255
|
-
}
|
|
256
|
-
else if (nextUp?.kind === "profile")
|
|
307
|
+
const nextUp = result.accountPools.find((pool) => pool.harness_id === harnessId)?.next_up;
|
|
308
|
+
if (nextUp?.kind === "profile")
|
|
257
309
|
print(` next up: ${nextUp.profileId}`);
|
|
310
|
+
else if (nextUp?.kind === "api_key_route")
|
|
311
|
+
print(` next up: API key (paid route)`);
|
|
258
312
|
else if (nextUp?.kind === "none")
|
|
259
313
|
print(` next up: nothing routable (${nextUp.reason})`);
|
|
260
314
|
}
|