@aui.io/apollo 0.1.4
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/bin/apollo.js +13 -0
- package/node_modules/@aui.io/apollo-cli/bin/apollo.js +79 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/auth.d.ts +4 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/auth.js +99 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/auth.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/bundles.d.ts +3 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/bundles.js +234 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/bundles.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/env.d.ts +3 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/env.js +34 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/env.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/hierarchy.d.ts +3 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/hierarchy.js +175 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/hierarchy.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/mockdb.d.ts +3 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/mockdb.js +251 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/mockdb.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/operate.d.ts +3 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/operate.js +138 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/operate.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/profile.d.ts +3 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/profile.js +51 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/profile.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/prompts.d.ts +6 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/prompts.js +20 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/prompts.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/runtime.d.ts +6 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/runtime.js +2 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/runtime.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/shell.d.ts +10 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/shell.js +36 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/shell.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/status.d.ts +3 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/status.js +57 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/status.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/upgrade.d.ts +3 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/upgrade.js +35 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/upgrade.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/workspace.d.ts +3 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/workspace.js +170 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/workspace.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/index.d.ts +10 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/index.js +107 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/index.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/meta.d.ts +4 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/meta.js +65 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/meta.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/output/welcome.d.ts +13 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/output/welcome.js +53 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/output/welcome.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/package.json +47 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/agent-settings.d.ts +6 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/agent-settings.js +23 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/agent-settings.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/client-types.d.ts +23 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/client-types.js +2 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/client-types.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/identity.d.ts +48 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/identity.js +131 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/identity.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/management.d.ts +92 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/management.js +126 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/management.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/mock-db.d.ts +65 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/mock-db.js +183 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/mock-db.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/runtime-api.d.ts +98 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/runtime-api.js +70 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/runtime-api.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/transport.d.ts +40 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/transport.js +205 -0
- package/node_modules/@aui.io/apollo-core/dist/src/api/transport.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/argv.d.ts +5 -0
- package/node_modules/@aui.io/apollo-core/dist/src/argv.js +43 -0
- package/node_modules/@aui.io/apollo-core/dist/src/argv.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/baseline.d.ts +17 -0
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/baseline.js +48 -0
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/baseline.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/files.d.ts +7 -0
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/files.js +69 -0
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/files.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/materialize.d.ts +14 -0
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/materialize.js +196 -0
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/materialize.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/validate.d.ts +30 -0
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/validate.js +36 -0
- package/node_modules/@aui.io/apollo-core/dist/src/bundle/validate.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/config/index.d.ts +11 -0
- package/node_modules/@aui.io/apollo-core/dist/src/config/index.js +193 -0
- package/node_modules/@aui.io/apollo-core/dist/src/config/index.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/config/mockdb-keys.d.ts +14 -0
- package/node_modules/@aui.io/apollo-core/dist/src/config/mockdb-keys.js +54 -0
- package/node_modules/@aui.io/apollo-core/dist/src/config/mockdb-keys.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/config/store.d.ts +18 -0
- package/node_modules/@aui.io/apollo-core/dist/src/config/store.js +99 -0
- package/node_modules/@aui.io/apollo-core/dist/src/config/store.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/config/types.d.ts +62 -0
- package/node_modules/@aui.io/apollo-core/dist/src/config/types.js +2 -0
- package/node_modules/@aui.io/apollo-core/dist/src/config/types.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/errors/index.d.ts +42 -0
- package/node_modules/@aui.io/apollo-core/dist/src/errors/index.js +74 -0
- package/node_modules/@aui.io/apollo-core/dist/src/errors/index.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/index.d.ts +32 -0
- package/node_modules/@aui.io/apollo-core/dist/src/index.js +32 -0
- package/node_modules/@aui.io/apollo-core/dist/src/index.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/output/index.d.ts +29 -0
- package/node_modules/@aui.io/apollo-core/dist/src/output/index.js +49 -0
- package/node_modules/@aui.io/apollo-core/dist/src/output/index.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/auth.d.ts +10 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/auth.js +83 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/auth.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/bundles.d.ts +37 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/bundles.js +161 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/bundles.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/clients.d.ts +15 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/clients.js +95 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/clients.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/env.service.d.ts +11 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/env.service.js +19 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/env.service.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/hierarchy.d.ts +29 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/hierarchy.js +117 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/hierarchy.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/messaging.d.ts +17 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/messaging.js +99 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/messaging.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/mockdb.d.ts +71 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/mockdb.js +274 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/mockdb.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/profile.service.d.ts +16 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/profile.service.js +29 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/profile.service.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/status.service.d.ts +26 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/status.service.js +109 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/status.service.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/upgrade.d.ts +23 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/upgrade.js +74 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/upgrade.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/workspace.service.d.ts +44 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/workspace.service.js +148 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/workspace.service.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/skills/install.d.ts +6 -0
- package/node_modules/@aui.io/apollo-core/dist/src/skills/install.js +48 -0
- package/node_modules/@aui.io/apollo-core/dist/src/skills/install.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/workspace/store.d.ts +33 -0
- package/node_modules/@aui.io/apollo-core/dist/src/workspace/store.js +246 -0
- package/node_modules/@aui.io/apollo-core/dist/src/workspace/store.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/package.json +48 -0
- package/node_modules/@aui.io/apollo-tui/bin/apollo-tui.js +5 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/components/glyph.d.ts +19 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/components/glyph.js +41 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/components/glyph.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/index.d.ts +5 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/index.js +46 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/index.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/attractor.d.ts +82 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/attractor.js +231 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/attractor.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/commands.d.ts +34 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/commands.js +100 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/commands.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/scope.d.ts +14 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/scope.js +25 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/scope.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/sheet.d.ts +25 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/sheet.js +99 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/sheet.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/tabs.d.ts +10 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/tabs.js +19 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/tabs.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/opentui-app.d.ts +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/opentui-app.js +449 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/opentui-app.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/bundle.d.ts +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/bundle.js +4 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/bundle.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/chat.d.ts +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/chat.js +4 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/chat.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/index.d.ts +5 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/index.js +6 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/index.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/mockdb.d.ts +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/mockdb.js +4 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/mockdb.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/overview.d.ts +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/overview.js +4 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/overview.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/scope.d.ts +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/scope.js +4 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/tabs/scope.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/package.json +53 -0
- package/package.json +42 -0
- package/scripts/setup-shell.mjs +68 -0
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { MockDbClient, } from "../api/mock-db.js";
|
|
5
|
+
import { clearMockDbKeys, keyPrefixes, loadMockDbKeys, saveMockDbKeys, } from "../config/mockdb-keys.js";
|
|
6
|
+
import { AuthError, ConfigError, ValidationError } from "../errors/index.js";
|
|
7
|
+
function accountIdFromToken(token) {
|
|
8
|
+
try {
|
|
9
|
+
const payload = token.split(".")[1];
|
|
10
|
+
if (!payload)
|
|
11
|
+
return undefined;
|
|
12
|
+
const claims = JSON.parse(Buffer.from(payload, "base64url").toString("utf8"));
|
|
13
|
+
const value = claims.accountId ?? claims.account_id;
|
|
14
|
+
return typeof value === "string" && value.length > 0 ? value : undefined;
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Mock-db expects `X-AUI-Account-Id`. In Apollo CLI that maps to the active
|
|
22
|
+
* project id (`project` ⇄ backend account).
|
|
23
|
+
*/
|
|
24
|
+
function resolveAccountId(context, options) {
|
|
25
|
+
if (options.accountId?.trim())
|
|
26
|
+
return options.accountId.trim();
|
|
27
|
+
const fromEnv = process.env.APOLLO_ACCOUNT_ID?.trim();
|
|
28
|
+
if (fromEnv)
|
|
29
|
+
return fromEnv;
|
|
30
|
+
if (context.token) {
|
|
31
|
+
const fromToken = accountIdFromToken(context.token);
|
|
32
|
+
if (fromToken)
|
|
33
|
+
return fromToken;
|
|
34
|
+
}
|
|
35
|
+
if (context.projectId?.trim())
|
|
36
|
+
return context.projectId.trim();
|
|
37
|
+
throw new ConfigError("No project/account id for mockdb.", "Select a project (`apollo project use`), pass --account <id>, or set APOLLO_ACCOUNT_ID.");
|
|
38
|
+
}
|
|
39
|
+
export function resolveMockDb(context, options = {}) {
|
|
40
|
+
const agentId = options.agentId?.trim() || context.agentId;
|
|
41
|
+
if (!agentId) {
|
|
42
|
+
throw new ConfigError("No agent id for mockdb.", "cd into an agent directory, select an active workspace agent, or pass --agent <id>.");
|
|
43
|
+
}
|
|
44
|
+
if (!context.token) {
|
|
45
|
+
throw new AuthError("Authentication is required for mockdb commands.");
|
|
46
|
+
}
|
|
47
|
+
const homeDir = options.homeDir ?? homedir();
|
|
48
|
+
const accountId = resolveAccountId(context, options);
|
|
49
|
+
const client = new MockDbClient({
|
|
50
|
+
baseUrl: context.baseUrls.mockDb,
|
|
51
|
+
timeoutMs: context.timeoutMs,
|
|
52
|
+
...(options.fetch ? { fetch: options.fetch } : {}),
|
|
53
|
+
});
|
|
54
|
+
const tokenAuth = {
|
|
55
|
+
mode: "token",
|
|
56
|
+
authToken: context.token,
|
|
57
|
+
accountId,
|
|
58
|
+
apiUrl: context.baseUrls.identity,
|
|
59
|
+
...(context.orgId ? { organizationId: context.orgId } : {}),
|
|
60
|
+
};
|
|
61
|
+
return {
|
|
62
|
+
context,
|
|
63
|
+
client,
|
|
64
|
+
agentId,
|
|
65
|
+
...(context.agentRoot ? { agentRoot: context.agentRoot } : {}),
|
|
66
|
+
tokenAuth,
|
|
67
|
+
homeDir,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
async function persistProvisionKeys(agentId, baseUrl, resp, homeDir) {
|
|
71
|
+
const patch = {
|
|
72
|
+
mockDbUrl: baseUrl,
|
|
73
|
+
backend: "aui-managed",
|
|
74
|
+
};
|
|
75
|
+
if (typeof resp.managementKey === "string")
|
|
76
|
+
patch.managementKey = resp.managementKey;
|
|
77
|
+
if (typeof resp.runtimeKey === "string")
|
|
78
|
+
patch.runtimeKey = resp.runtimeKey;
|
|
79
|
+
if (patch.managementKey || patch.runtimeKey) {
|
|
80
|
+
await saveMockDbKeys(agentId, patch, homeDir);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
export async function provisionMockDb(context, options = {}) {
|
|
84
|
+
const resolved = resolveMockDb(context, options);
|
|
85
|
+
const resp = await resolved.client.provision(resolved.agentId, resolved.tokenAuth);
|
|
86
|
+
await persistProvisionKeys(resolved.agentId, context.baseUrls.mockDb, resp, resolved.homeDir);
|
|
87
|
+
const stored = keyPrefixes(await loadMockDbKeys(resolved.agentId, resolved.homeDir));
|
|
88
|
+
return { ...resp, stored };
|
|
89
|
+
}
|
|
90
|
+
export async function describeMockDb(context, options = {}) {
|
|
91
|
+
const resolved = resolveMockDb(context, options);
|
|
92
|
+
return resolved.client.describe(resolved.agentId, resolved.tokenAuth);
|
|
93
|
+
}
|
|
94
|
+
export async function statusMockDb(context, options = {}) {
|
|
95
|
+
const resolved = resolveMockDb(context, options);
|
|
96
|
+
const remote = await resolved.client.status(resolved.agentId, resolved.tokenAuth);
|
|
97
|
+
const keys = await loadMockDbKeys(resolved.agentId, resolved.homeDir);
|
|
98
|
+
return {
|
|
99
|
+
agentId: resolved.agentId,
|
|
100
|
+
baseUrl: context.baseUrls.mockDb,
|
|
101
|
+
remote,
|
|
102
|
+
keys: keyPrefixes(keys),
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
export async function createCollection(context, name, schema, options = {}) {
|
|
106
|
+
const resolved = resolveMockDb(context, options);
|
|
107
|
+
return resolved.client.createCollection(resolved.agentId, resolved.tokenAuth, {
|
|
108
|
+
name,
|
|
109
|
+
schema,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
export async function listCollections(context, options = {}) {
|
|
113
|
+
const resolved = resolveMockDb(context, options);
|
|
114
|
+
return resolved.client.listCollections(resolved.agentId, resolved.tokenAuth);
|
|
115
|
+
}
|
|
116
|
+
export async function updateCollection(context, name, addColumns, options = {}) {
|
|
117
|
+
const resolved = resolveMockDb(context, options);
|
|
118
|
+
return resolved.client.updateCollection(resolved.agentId, resolved.tokenAuth, name, {
|
|
119
|
+
addColumns,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
export async function seedRows(context, collection, rows, options = {}) {
|
|
123
|
+
const resolved = resolveMockDb(context, options);
|
|
124
|
+
return resolved.client.seedRows(resolved.agentId, resolved.tokenAuth, collection, rows);
|
|
125
|
+
}
|
|
126
|
+
export async function createEndpoint(context, body, options = {}) {
|
|
127
|
+
const resolved = resolveMockDb(context, options);
|
|
128
|
+
return resolved.client.createEndpoint(resolved.agentId, resolved.tokenAuth, body);
|
|
129
|
+
}
|
|
130
|
+
export async function listEndpoints(context, options = {}) {
|
|
131
|
+
const resolved = resolveMockDb(context, options);
|
|
132
|
+
return resolved.client.listEndpoints(resolved.agentId, resolved.tokenAuth);
|
|
133
|
+
}
|
|
134
|
+
export async function getEndpoint(context, slug, options = {}) {
|
|
135
|
+
const resolved = resolveMockDb(context, options);
|
|
136
|
+
return resolved.client.getEndpoint(resolved.agentId, resolved.tokenAuth, slug);
|
|
137
|
+
}
|
|
138
|
+
export async function updateEndpoint(context, slug, body, options = {}) {
|
|
139
|
+
const resolved = resolveMockDb(context, options);
|
|
140
|
+
return resolved.client.updateEndpoint(resolved.agentId, resolved.tokenAuth, slug, body);
|
|
141
|
+
}
|
|
142
|
+
export async function deleteEndpoint(context, slug, options = {}) {
|
|
143
|
+
const resolved = resolveMockDb(context, options);
|
|
144
|
+
return resolved.client.deleteEndpoint(resolved.agentId, resolved.tokenAuth, slug);
|
|
145
|
+
}
|
|
146
|
+
export async function executeEndpoint(context, slug, input = {}, options = {}) {
|
|
147
|
+
const resolved = resolveMockDb(context, options);
|
|
148
|
+
const keys = await loadMockDbKeys(resolved.agentId, resolved.homeDir);
|
|
149
|
+
if (!keys.runtimeKey) {
|
|
150
|
+
throw new ConfigError("No runtime key stored for this agent.", "Run `apollo mockdb provision` or `apollo mockdb rotate runtime`, then `apollo mockdb wire`.");
|
|
151
|
+
}
|
|
152
|
+
const auth = {
|
|
153
|
+
mode: "runtime",
|
|
154
|
+
runtimeKey: keys.runtimeKey,
|
|
155
|
+
...(input.session ? { sessionKey: input.session } : {}),
|
|
156
|
+
};
|
|
157
|
+
return resolved.client.execute(resolved.agentId, auth, slug, input.body);
|
|
158
|
+
}
|
|
159
|
+
export async function inspectSession(context, sessionKey, options = {}) {
|
|
160
|
+
const resolved = resolveMockDb(context, options);
|
|
161
|
+
return resolved.client.inspectSession(resolved.agentId, resolved.tokenAuth, sessionKey);
|
|
162
|
+
}
|
|
163
|
+
export async function resetSession(context, sessionKey, options = {}) {
|
|
164
|
+
const resolved = resolveMockDb(context, options);
|
|
165
|
+
return resolved.client.resetSession(resolved.agentId, resolved.tokenAuth, sessionKey);
|
|
166
|
+
}
|
|
167
|
+
export async function rotateMgmtKey(context, options = {}) {
|
|
168
|
+
const resolved = resolveMockDb(context, options);
|
|
169
|
+
const resp = await resolved.client.rotateMgmtKey(resolved.agentId, resolved.tokenAuth);
|
|
170
|
+
await persistProvisionKeys(resolved.agentId, context.baseUrls.mockDb, resp, resolved.homeDir);
|
|
171
|
+
return {
|
|
172
|
+
...resp,
|
|
173
|
+
stored: keyPrefixes(await loadMockDbKeys(resolved.agentId, resolved.homeDir)),
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
export async function rotateRuntimeKey(context, options = {}) {
|
|
177
|
+
const resolved = resolveMockDb(context, options);
|
|
178
|
+
const resp = await resolved.client.rotateRuntimeKey(resolved.agentId, resolved.tokenAuth);
|
|
179
|
+
await persistProvisionKeys(resolved.agentId, context.baseUrls.mockDb, resp, resolved.homeDir);
|
|
180
|
+
return {
|
|
181
|
+
...resp,
|
|
182
|
+
stored: keyPrefixes(await loadMockDbKeys(resolved.agentId, resolved.homeDir)),
|
|
183
|
+
rewireRequired: true,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
export async function exportMockDb(context, options = {}) {
|
|
187
|
+
const resolved = resolveMockDb(context, options);
|
|
188
|
+
return resolved.client.exportAgent(resolved.agentId, resolved.tokenAuth);
|
|
189
|
+
}
|
|
190
|
+
export async function deleteMockDb(context, options = {}) {
|
|
191
|
+
const resolved = resolveMockDb(context, options);
|
|
192
|
+
const resp = await resolved.client.deleteAgent(resolved.agentId, resolved.tokenAuth);
|
|
193
|
+
await clearMockDbKeys(resolved.agentId, resolved.homeDir);
|
|
194
|
+
return resp;
|
|
195
|
+
}
|
|
196
|
+
export async function storedKeys(context, options = {}) {
|
|
197
|
+
const resolved = resolveMockDb(context, options);
|
|
198
|
+
return {
|
|
199
|
+
agentId: resolved.agentId,
|
|
200
|
+
...keyPrefixes(await loadMockDbKeys(resolved.agentId, resolved.homeDir)),
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Ensure `connections.yaml` has a mock-db connection that points at this agent's
|
|
205
|
+
* execute base and reads the runtime key from MOCKDB_TOKEN (vault later).
|
|
206
|
+
*/
|
|
207
|
+
export async function wireMockDbConnection(context, options = {}) {
|
|
208
|
+
const resolved = resolveMockDb(context, options);
|
|
209
|
+
const agentRoot = resolved.agentRoot;
|
|
210
|
+
if (!agentRoot) {
|
|
211
|
+
throw new ConfigError("No local agent directory to wire.", "Import or create an agent, then run this from the agent folder or with an active workspace agent.");
|
|
212
|
+
}
|
|
213
|
+
const keys = await loadMockDbKeys(resolved.agentId, resolved.homeDir);
|
|
214
|
+
if (!keys.runtimeKey) {
|
|
215
|
+
throw new ConfigError("No runtime key to wire.", "Run `apollo mockdb provision` first.");
|
|
216
|
+
}
|
|
217
|
+
const connectionId = options.connectionId ?? "mock-db";
|
|
218
|
+
const tokenEnv = options.tokenEnv ?? "MOCKDB_TOKEN";
|
|
219
|
+
const baseUrl = `${context.baseUrls.mockDb.replace(/\/+$/, "")}/api/agents/${resolved.agentId}/apis`;
|
|
220
|
+
const file = path.join(agentRoot, "connections.yaml");
|
|
221
|
+
const block = [
|
|
222
|
+
`connections:`,
|
|
223
|
+
` - id: ${connectionId}`,
|
|
224
|
+
` base_url: ${baseUrl}`,
|
|
225
|
+
` auth:`,
|
|
226
|
+
` method: bearer`,
|
|
227
|
+
` token_env: ${tokenEnv}`,
|
|
228
|
+
` headers:`,
|
|
229
|
+
` X-Session-Key: "{session_id}"`,
|
|
230
|
+
``,
|
|
231
|
+
].join("\n");
|
|
232
|
+
let existing = "";
|
|
233
|
+
try {
|
|
234
|
+
existing = await readFile(file, "utf8");
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
// create new
|
|
238
|
+
}
|
|
239
|
+
if (existing.includes(`id: ${connectionId}`) || existing.includes(`id: "${connectionId}"`)) {
|
|
240
|
+
// leave file; still return instructions
|
|
241
|
+
}
|
|
242
|
+
else if (existing.trim()) {
|
|
243
|
+
await writeFile(file, `${existing.trimEnd()}\n\n${block}`, "utf8");
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
await writeFile(file, block, "utf8");
|
|
247
|
+
}
|
|
248
|
+
return {
|
|
249
|
+
agentId: resolved.agentId,
|
|
250
|
+
path: file,
|
|
251
|
+
connectionId,
|
|
252
|
+
tokenEnv,
|
|
253
|
+
baseUrl,
|
|
254
|
+
runtimeKey: keys.runtimeKey,
|
|
255
|
+
hint: `export ${tokenEnv}=${keys.runtimeKey}`,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
export function parseJsonFlag(flag, raw) {
|
|
259
|
+
try {
|
|
260
|
+
return JSON.parse(raw);
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
throw new ValidationError(`${flag} is not valid JSON: ${error instanceof Error ? error.message : String(error)}`);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
export function normalizeSchema(raw) {
|
|
267
|
+
if (Array.isArray(raw))
|
|
268
|
+
return { columns: raw };
|
|
269
|
+
if (raw && typeof raw === "object" && Array.isArray(raw.columns)) {
|
|
270
|
+
return raw;
|
|
271
|
+
}
|
|
272
|
+
throw new ValidationError("--schema must be a JSON array of columns, or { \"columns\": [...] }.");
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=mockdb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mockdb.js","sourceRoot":"","sources":["../../../src/services/mockdb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Context, type Environment } from "../config/index.js";
|
|
2
|
+
export interface ProfileSummary {
|
|
3
|
+
name: string;
|
|
4
|
+
active: boolean;
|
|
5
|
+
environments: Environment[];
|
|
6
|
+
}
|
|
7
|
+
export interface CurrentProfile {
|
|
8
|
+
name: string;
|
|
9
|
+
environment: Environment;
|
|
10
|
+
authenticated: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function currentProfile(context: Context): CurrentProfile;
|
|
13
|
+
export declare function listProfiles(context: Context, homeDir?: string): Promise<ProfileSummary[]>;
|
|
14
|
+
export declare function useProfile(name: string, homeDir?: string): Promise<{
|
|
15
|
+
profile: string;
|
|
16
|
+
}>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
2
|
+
import { readCredentials, updateProfile, } from "../config/index.js";
|
|
3
|
+
import { ConfigError } from "../errors/index.js";
|
|
4
|
+
export function currentProfile(context) {
|
|
5
|
+
return {
|
|
6
|
+
name: context.profile,
|
|
7
|
+
environment: context.environment,
|
|
8
|
+
authenticated: context.token !== undefined,
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export async function listProfiles(context, homeDir = homedir()) {
|
|
12
|
+
const credentials = await readCredentials(homeDir);
|
|
13
|
+
const names = new Set([...Object.keys(credentials), context.profile]);
|
|
14
|
+
return [...names]
|
|
15
|
+
.sort((left, right) => left.localeCompare(right))
|
|
16
|
+
.map((name) => ({
|
|
17
|
+
name,
|
|
18
|
+
active: name === context.profile,
|
|
19
|
+
environments: Object.keys(credentials[name] ?? {}).sort(),
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
export async function useProfile(name, homeDir = homedir()) {
|
|
23
|
+
if (!/^[a-zA-Z0-9._-]{1,64}$/.test(name)) {
|
|
24
|
+
throw new ConfigError("Profile names must use 1-64 letters, numbers, dots, underscores, or hyphens.");
|
|
25
|
+
}
|
|
26
|
+
await updateProfile(homeDir, name);
|
|
27
|
+
return { profile: name };
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=profile.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.service.js","sourceRoot":"","sources":["../../../src/services/profile.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EACL,eAAe,EACf,aAAa,GAGd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAcjD,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,OAAO;QACrB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,aAAa,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAgB,EAChB,OAAO,GAAG,OAAO,EAAE;IAEnB,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,KAAK,CAAC;SACd,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAChD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,IAAI;QACJ,MAAM,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO;QAChC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAmB;KAC3E,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAY,EACZ,OAAO,GAAG,OAAO,EAAE;IAEnB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,WAAW,CACnB,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Context } from "../config/index.js";
|
|
2
|
+
export interface ServiceCheck {
|
|
3
|
+
service: "identity" | "management" | "runtime";
|
|
4
|
+
reachable: boolean;
|
|
5
|
+
authenticated: boolean | null;
|
|
6
|
+
detail?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface StatusResult {
|
|
9
|
+
environment: string;
|
|
10
|
+
profile: string;
|
|
11
|
+
orgId: string | null;
|
|
12
|
+
tokenOrgId: string | null;
|
|
13
|
+
projectId: string | null;
|
|
14
|
+
agentId: string | null;
|
|
15
|
+
versionTag: string | null;
|
|
16
|
+
authenticated: boolean;
|
|
17
|
+
tokenExpiresAt: string | null;
|
|
18
|
+
bindingPath: string | null;
|
|
19
|
+
workspaceRoot: string | null;
|
|
20
|
+
agentRoot: string | null;
|
|
21
|
+
checks?: ServiceCheck[];
|
|
22
|
+
}
|
|
23
|
+
export declare function getStatus(context: Context, options?: {
|
|
24
|
+
check?: boolean;
|
|
25
|
+
fetch?: typeof globalThis.fetch;
|
|
26
|
+
}): Promise<StatusResult>;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { Transport } from "../api/transport.js";
|
|
2
|
+
import { ApiError, AuthError } from "../errors/index.js";
|
|
3
|
+
export async function getStatus(context, options = {}) {
|
|
4
|
+
const result = {
|
|
5
|
+
environment: context.environment,
|
|
6
|
+
profile: context.profile,
|
|
7
|
+
orgId: context.orgId ?? null,
|
|
8
|
+
tokenOrgId: context.tokenOrgId ?? null,
|
|
9
|
+
projectId: context.projectId ?? null,
|
|
10
|
+
agentId: context.agentId ?? null,
|
|
11
|
+
versionTag: context.versionTag ?? null,
|
|
12
|
+
authenticated: context.token !== undefined,
|
|
13
|
+
tokenExpiresAt: tokenExpiry(context.token),
|
|
14
|
+
bindingPath: context.bindingPath ?? null,
|
|
15
|
+
workspaceRoot: context.workspaceRoot ?? null,
|
|
16
|
+
agentRoot: context.agentRoot ?? null,
|
|
17
|
+
};
|
|
18
|
+
if (options.check === true) {
|
|
19
|
+
result.checks = await Promise.all([
|
|
20
|
+
checkIdentity(context, options.fetch),
|
|
21
|
+
checkManagement(context, options.fetch),
|
|
22
|
+
checkRuntime(context, options.fetch),
|
|
23
|
+
]);
|
|
24
|
+
}
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
async function checkIdentity(context, fetchImpl) {
|
|
28
|
+
const transport = makeTransport("identity", context.baseUrls.identity, context, fetchImpl);
|
|
29
|
+
const result = await probe("identity", () => transport.request("/health", { authenticated: false }));
|
|
30
|
+
return { ...result, authenticated: null };
|
|
31
|
+
}
|
|
32
|
+
async function checkManagement(context, fetchImpl) {
|
|
33
|
+
const transport = makeTransport("management", context.baseUrls.management, context, fetchImpl);
|
|
34
|
+
return probe("management", () => transport.request("/management/v1/projects"));
|
|
35
|
+
}
|
|
36
|
+
async function checkRuntime(context, fetchImpl) {
|
|
37
|
+
const transport = makeTransport("runtime", context.baseUrls.runtime, context, fetchImpl);
|
|
38
|
+
const reachability = await probe("runtime", () => transport.request("/health", { authenticated: false }));
|
|
39
|
+
if (!reachability.reachable || context.userId === undefined) {
|
|
40
|
+
return {
|
|
41
|
+
...reachability,
|
|
42
|
+
authenticated: context.token === undefined ? false : null,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const user = encodeURIComponent(context.userId);
|
|
46
|
+
const auth = await probe("runtime", () => transport.request(`/api/v1/users/${user}/tasks?size=1`));
|
|
47
|
+
return {
|
|
48
|
+
service: "runtime",
|
|
49
|
+
reachable: true,
|
|
50
|
+
authenticated: auth.authenticated,
|
|
51
|
+
...(auth.detail === undefined ? {} : { detail: auth.detail }),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function makeTransport(service, baseUrl, context, fetchImpl) {
|
|
55
|
+
return new Transport({
|
|
56
|
+
service,
|
|
57
|
+
baseUrl,
|
|
58
|
+
timeoutMs: context.timeoutMs,
|
|
59
|
+
...(context.token === undefined ? {} : { token: context.token }),
|
|
60
|
+
...(context.orgId === undefined ? {} : { orgId: context.orgId }),
|
|
61
|
+
...(context.userId === undefined ? {} : { userId: context.userId }),
|
|
62
|
+
...(fetchImpl === undefined ? {} : { fetch: fetchImpl }),
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
async function probe(service, operation) {
|
|
66
|
+
try {
|
|
67
|
+
await operation();
|
|
68
|
+
return { service, reachable: true, authenticated: true };
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
if (error instanceof ApiError) {
|
|
72
|
+
return {
|
|
73
|
+
service,
|
|
74
|
+
reachable: true,
|
|
75
|
+
authenticated: error.status === 401 || error.status === 403 ? false : null,
|
|
76
|
+
detail: error.message,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
if (error instanceof AuthError) {
|
|
80
|
+
return {
|
|
81
|
+
service,
|
|
82
|
+
reachable: false,
|
|
83
|
+
authenticated: false,
|
|
84
|
+
detail: error.message,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
service,
|
|
89
|
+
reachable: false,
|
|
90
|
+
authenticated: null,
|
|
91
|
+
detail: error instanceof Error ? error.message : "Unknown error",
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function tokenExpiry(token) {
|
|
96
|
+
const payload = token?.split(".")[1];
|
|
97
|
+
if (payload === undefined)
|
|
98
|
+
return null;
|
|
99
|
+
try {
|
|
100
|
+
const claims = JSON.parse(Buffer.from(payload, "base64url").toString("utf8"));
|
|
101
|
+
return typeof claims.exp === "number"
|
|
102
|
+
? new Date(claims.exp * 1000).toISOString()
|
|
103
|
+
: null;
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=status.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.service.js","sourceRoot":"","sources":["../../../src/services/status.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type NpmRunner = (args: string[], options?: {
|
|
2
|
+
inherit?: boolean;
|
|
3
|
+
}) => Promise<{
|
|
4
|
+
stdout: string;
|
|
5
|
+
stderr: string;
|
|
6
|
+
code: number;
|
|
7
|
+
}>;
|
|
8
|
+
export interface UpgradeResult {
|
|
9
|
+
package: string;
|
|
10
|
+
current: string;
|
|
11
|
+
requested: string;
|
|
12
|
+
available: string;
|
|
13
|
+
upgraded: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface UpgradeOptions {
|
|
16
|
+
check?: boolean;
|
|
17
|
+
force?: boolean;
|
|
18
|
+
npm?: NpmRunner;
|
|
19
|
+
packageName: string;
|
|
20
|
+
currentVersion: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function resolvePublishedVersion(packageName: string, requested: string, npm?: NpmRunner): Promise<string>;
|
|
23
|
+
export declare function upgradeCli(requested: string | undefined, options: UpgradeOptions): Promise<UpgradeResult>;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { CliError } from "../errors/index.js";
|
|
3
|
+
const defaultNpm = (args, options = {}) => new Promise((resolve, reject) => {
|
|
4
|
+
const child = spawn("npm", args, {
|
|
5
|
+
stdio: options.inherit === true ? "inherit" : ["ignore", "pipe", "pipe"],
|
|
6
|
+
env: process.env,
|
|
7
|
+
});
|
|
8
|
+
let stdout = "";
|
|
9
|
+
let stderr = "";
|
|
10
|
+
child.stdout?.on("data", (chunk) => {
|
|
11
|
+
stdout += chunk.toString();
|
|
12
|
+
});
|
|
13
|
+
child.stderr?.on("data", (chunk) => {
|
|
14
|
+
stderr += chunk.toString();
|
|
15
|
+
});
|
|
16
|
+
child.on("error", (error) => {
|
|
17
|
+
reject(new CliError(`Failed to run npm: ${error.message}`, {
|
|
18
|
+
code: "UPGRADE_ERROR",
|
|
19
|
+
suggestion: "Ensure npm is installed and on PATH.",
|
|
20
|
+
cause: error,
|
|
21
|
+
}));
|
|
22
|
+
});
|
|
23
|
+
child.on("close", (code) => {
|
|
24
|
+
resolve({ stdout, stderr, code: code ?? 1 });
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
export async function resolvePublishedVersion(packageName, requested, npm = defaultNpm) {
|
|
28
|
+
const result = await npm(["view", `${packageName}@${requested}`, "version"]);
|
|
29
|
+
if (result.code !== 0) {
|
|
30
|
+
throw new CliError(`Could not look up ${packageName}@${requested} on npm.`, {
|
|
31
|
+
code: "UPGRADE_ERROR",
|
|
32
|
+
suggestion: result.stderr.trim() || "Check network access to registry.npmjs.org.",
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
const version = result.stdout.trim();
|
|
36
|
+
if (!version) {
|
|
37
|
+
throw new CliError(`npm returned an empty version for ${packageName}@${requested}.`, {
|
|
38
|
+
code: "UPGRADE_ERROR",
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return version;
|
|
42
|
+
}
|
|
43
|
+
export async function upgradeCli(requested = "latest", options) {
|
|
44
|
+
const npm = options.npm ?? defaultNpm;
|
|
45
|
+
const { packageName, currentVersion } = options;
|
|
46
|
+
const available = await resolvePublishedVersion(packageName, requested, npm);
|
|
47
|
+
const alreadyCurrent = available === currentVersion;
|
|
48
|
+
if (options.check === true || (alreadyCurrent && options.force !== true)) {
|
|
49
|
+
return {
|
|
50
|
+
package: packageName,
|
|
51
|
+
current: currentVersion,
|
|
52
|
+
requested,
|
|
53
|
+
available,
|
|
54
|
+
upgraded: false,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
const spec = `${packageName}@${requested}`;
|
|
58
|
+
const result = await npm(["install", "--global", spec], { inherit: true });
|
|
59
|
+
if (result.code !== 0) {
|
|
60
|
+
throw new CliError(`Failed to install ${spec}.`, {
|
|
61
|
+
code: "UPGRADE_ERROR",
|
|
62
|
+
suggestion: result.stderr.trim() ||
|
|
63
|
+
"If a previous global apollo binary exists, uninstall it first or pass --force via npm.",
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
package: packageName,
|
|
68
|
+
current: currentVersion,
|
|
69
|
+
requested,
|
|
70
|
+
available,
|
|
71
|
+
upgraded: true,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=upgrade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/services/upgrade.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type Context, type Environment, type UserConfig, type WorkspacePreferences } from "../config/index.js";
|
|
2
|
+
export interface WorkspaceSummary {
|
|
3
|
+
path: string;
|
|
4
|
+
/** Display name from the manifest (defaulted at creation). */
|
|
5
|
+
name?: string;
|
|
6
|
+
active: boolean;
|
|
7
|
+
agent_count: number | null;
|
|
8
|
+
active_agent_id?: string;
|
|
9
|
+
active_project_id?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Suggested display name for a new workspace: `<profile>-<env>` for the
|
|
13
|
+
* default root (`~/apollo/<profile>/<env>`), otherwise the directory name.
|
|
14
|
+
*/
|
|
15
|
+
export declare function defaultWorkspaceName(context: Pick<Context, "profile" | "environment">, root: string, homeDir?: string): string;
|
|
16
|
+
export declare function onboardWorkspace(context: Pick<Context, "profile" | "environment">, requested: string | undefined, options: {
|
|
17
|
+
interactive: boolean;
|
|
18
|
+
prompt: (question: string, defaultValue?: string) => Promise<string>;
|
|
19
|
+
homeDir?: string;
|
|
20
|
+
defaultRoot?: string;
|
|
21
|
+
}): Promise<string>;
|
|
22
|
+
export declare function workspacePreferences(config: UserConfig, profile: string, environment: Environment): WorkspacePreferences;
|
|
23
|
+
export declare function selectWorkspace(context: Pick<Context, "profile" | "environment">, root: string, options?: {
|
|
24
|
+
create?: boolean;
|
|
25
|
+
homeDir?: string;
|
|
26
|
+
name?: string;
|
|
27
|
+
}): Promise<WorkspaceSummary>;
|
|
28
|
+
/**
|
|
29
|
+
* Resolve a `workspace use` target: a known workspace's display name, or a
|
|
30
|
+
* path. Names win when they match exactly (case-insensitive).
|
|
31
|
+
*/
|
|
32
|
+
export declare function resolveWorkspacePath(context: Context, target: string, homeDir?: string): Promise<string>;
|
|
33
|
+
/**
|
|
34
|
+
* Drop a workspace (by name or path) from the known list; clears the default
|
|
35
|
+
* marker if it pointed there. Files on disk are untouched.
|
|
36
|
+
*/
|
|
37
|
+
export declare function forgetWorkspace(context: Context, target: string, homeDir?: string): Promise<{
|
|
38
|
+
path: string;
|
|
39
|
+
was_default: boolean;
|
|
40
|
+
}>;
|
|
41
|
+
/** The default workspace recorded by `workspace use`/`create` (login suggestion). */
|
|
42
|
+
export declare function defaultWorkspacePath(context: Pick<Context, "profile" | "environment">, homeDir?: string): Promise<string>;
|
|
43
|
+
export declare function currentWorkspace(context: Context): Promise<WorkspaceSummary>;
|
|
44
|
+
export declare function listWorkspaces(context: Context, homeDir?: string): Promise<WorkspaceSummary[]>;
|