@inquir/compute-cli 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +528 -406
- package/dist/commands/admin-tenants.d.ts +11 -0
- package/dist/commands/admin-tenants.d.ts.map +1 -0
- package/dist/commands/admin-tenants.js +318 -0
- package/dist/commands/admin-tenants.js.map +1 -0
- package/dist/commands/admin.d.ts +2 -0
- package/dist/commands/admin.d.ts.map +1 -0
- package/dist/commands/admin.js +445 -0
- package/dist/commands/admin.js.map +1 -0
- package/dist/commands/apps-describe.d.ts +9 -0
- package/dist/commands/apps-describe.d.ts.map +1 -0
- package/dist/commands/apps-describe.js +125 -0
- package/dist/commands/apps-describe.js.map +1 -0
- package/dist/commands/apps-instances.d.ts +18 -0
- package/dist/commands/apps-instances.d.ts.map +1 -0
- package/dist/commands/apps-instances.js +87 -0
- package/dist/commands/apps-instances.js.map +1 -0
- package/dist/commands/apps-observability.d.ts +15 -0
- package/dist/commands/apps-observability.d.ts.map +1 -0
- package/dist/commands/apps-observability.js +310 -0
- package/dist/commands/apps-observability.js.map +1 -0
- package/dist/commands/apps-promote.d.ts +31 -0
- package/dist/commands/apps-promote.d.ts.map +1 -0
- package/dist/commands/apps-promote.js +115 -0
- package/dist/commands/apps-promote.js.map +1 -0
- package/dist/commands/apps-resources.d.ts +6 -0
- package/dist/commands/apps-resources.d.ts.map +1 -0
- package/dist/commands/apps-resources.js +107 -0
- package/dist/commands/apps-resources.js.map +1 -0
- package/dist/commands/apps.d.ts +118 -2
- package/dist/commands/apps.d.ts.map +1 -1
- package/dist/commands/apps.js +999 -110
- package/dist/commands/apps.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +7 -3
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/delete.d.ts.map +1 -1
- package/dist/commands/delete.js +10 -2
- package/dist/commands/delete.js.map +1 -1
- package/dist/commands/deploy.js +3 -3
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/init.js +15 -15
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +78 -33
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +37 -5
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/mcp.d.ts +13 -0
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +184 -77
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/projects.d.ts.map +1 -1
- package/dist/commands/projects.js +107 -11
- package/dist/commands/projects.js.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/finite-source-command-client.d.ts +3 -0
- package/dist/lib/finite-source-command-client.d.ts.map +1 -0
- package/dist/lib/finite-source-command-client.js +3 -0
- package/dist/lib/finite-source-command-client.js.map +1 -0
- package/dist/lib/mcp-io.d.ts +23 -0
- package/dist/lib/mcp-io.d.ts.map +1 -0
- package/dist/lib/mcp-io.js +185 -0
- package/dist/lib/mcp-io.js.map +1 -0
- package/dist/lib/mcp-source-commands.d.ts +17 -0
- package/dist/lib/mcp-source-commands.d.ts.map +1 -0
- package/dist/lib/mcp-source-commands.js +345 -0
- package/dist/lib/mcp-source-commands.js.map +1 -0
- package/dist/utils/api.d.ts +39 -14
- package/dist/utils/api.d.ts.map +1 -1
- package/dist/utils/api.js +43 -6
- package/dist/utils/api.js.map +1 -1
- package/dist/utils/apps-presentation.d.ts +8 -1
- package/dist/utils/apps-presentation.d.ts.map +1 -1
- package/dist/utils/apps-presentation.js +35 -1
- package/dist/utils/apps-presentation.js.map +1 -1
- package/dist/utils/auth.d.ts +21 -1
- package/dist/utils/auth.d.ts.map +1 -1
- package/dist/utils/auth.js +119 -22
- package/dist/utils/auth.js.map +1 -1
- package/dist/utils/browser.d.ts +12 -0
- package/dist/utils/browser.d.ts.map +1 -1
- package/dist/utils/browser.js +37 -16
- package/dist/utils/browser.js.map +1 -1
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +41 -0
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/msys-path.d.ts +14 -0
- package/dist/utils/msys-path.d.ts.map +1 -0
- package/dist/utils/msys-path.js +55 -0
- package/dist/utils/msys-path.js.map +1 -0
- package/dist/utils/package-metadata.js +1 -1
- package/dist/utils/project-context.d.ts.map +1 -1
- package/dist/utils/project-context.js +7 -5
- package/dist/utils/project-context.js.map +1 -1
- package/dist/utils/project-lookup.d.ts +10 -0
- package/dist/utils/project-lookup.d.ts.map +1 -0
- package/dist/utils/project-lookup.js +52 -0
- package/dist/utils/project-lookup.js.map +1 -0
- package/dist/utils/source-pack.d.ts +24 -0
- package/dist/utils/source-pack.d.ts.map +1 -0
- package/dist/utils/source-pack.js +63 -0
- package/dist/utils/source-pack.js.map +1 -0
- package/package.json +26 -26
- package/skill/SKILL.md +73 -67
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apps-promote.js","sourceRoot":"","sources":["../../src/commands/apps-promote.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ApiRequestOptions } from '../utils/api.js';
|
|
2
|
+
export declare const RESOURCES_VALUE_FLAGS: string[];
|
|
3
|
+
export declare const RESOURCES_HELP: Record<string, string[]>;
|
|
4
|
+
/** `apps resources recommend <app>`: the only action today; applying stays an explicit update. */
|
|
5
|
+
export declare function resourcesSubcommand(args: string[], positionals: string[], options: ApiRequestOptions): Promise<void>;
|
|
6
|
+
//# sourceMappingURL=apps-resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apps-resources.d.ts","sourceRoot":"","sources":["../../src/commands/apps-resources.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoD,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAM3G,eAAO,MAAM,qBAAqB,UAAa,CAAC;AAChD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAUnD,CAAC;AAcF,kGAAkG;AAClG,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAc1H"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { getAppResourceRecommendation, } from '../sdk.js';
|
|
2
|
+
import { createApiClient, requireAuth, resolveApplication } from '../utils/api.js';
|
|
3
|
+
import { hasFlag, readFlagValue, readJsonFlag } from '../utils/args.js';
|
|
4
|
+
import { usageError } from '../utils/errors.js';
|
|
5
|
+
import { formatTable, printInfo, printLine } from '../utils/output.js';
|
|
6
|
+
const MAX_DAYS = 7;
|
|
7
|
+
export const RESOURCES_VALUE_FLAGS = ['--days'];
|
|
8
|
+
export const RESOURCES_HELP = {
|
|
9
|
+
resources: [
|
|
10
|
+
'Usage: inquir apps resources recommend <app> [--days 1-7] [--json]',
|
|
11
|
+
' Read-only CPU/RAM right-sizing from what the containers used. Memory: 1.2 x the peak working',
|
|
12
|
+
' set, at least 64 MB (256 MB for a database) and never below the 30-day peak + 10%. CPU: the',
|
|
13
|
+
' limit follows the peak, the reserved request the 95th percentile. Needs 24 h of data.',
|
|
14
|
+
' Nothing changes until you apply it: apps update <app> --memory <mb> --cpu <vcpus>, then redeploy.',
|
|
15
|
+
' --days <n> Window in days (default 7)',
|
|
16
|
+
' --json Everything, including each release (replica set) seen in the window',
|
|
17
|
+
],
|
|
18
|
+
};
|
|
19
|
+
function readDays(args) {
|
|
20
|
+
const raw = readFlagValue(args, '--days');
|
|
21
|
+
if (raw === undefined) {
|
|
22
|
+
if (hasFlag(args, '--days'))
|
|
23
|
+
throw usageError('Missing --days value', 'inquir apps resources recommend <app> --days 7');
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
if (!/^\d+$/.test(raw) || Number(raw) < 1 || Number(raw) > MAX_DAYS) {
|
|
27
|
+
throw usageError(`--days must be a whole number from 1 to ${MAX_DAYS}`, 'inquir apps resources recommend <app> --days 7');
|
|
28
|
+
}
|
|
29
|
+
return Number(raw);
|
|
30
|
+
}
|
|
31
|
+
/** `apps resources recommend <app>`: the only action today; applying stays an explicit update. */
|
|
32
|
+
export async function resourcesSubcommand(args, positionals, options) {
|
|
33
|
+
const [action, identifier, ...extra] = positionals;
|
|
34
|
+
if (action !== 'recommend') {
|
|
35
|
+
throw usageError(action ? `Unknown apps resources action: ${action}` : 'Missing apps resources action', 'inquir apps resources recommend <app>');
|
|
36
|
+
}
|
|
37
|
+
if (!identifier || extra.length > 0)
|
|
38
|
+
throw usageError('Specify one application', 'inquir apps resources recommend <app>');
|
|
39
|
+
const days = readDays(args);
|
|
40
|
+
await requireAuth(options);
|
|
41
|
+
const app = await resolveApplication(identifier, options);
|
|
42
|
+
const client = await createApiClient(options);
|
|
43
|
+
const result = await getAppResourceRecommendation(client, app.id, days === undefined ? {} : { days });
|
|
44
|
+
if (readJsonFlag(args))
|
|
45
|
+
return printLine(JSON.stringify(result, null, 2));
|
|
46
|
+
printRecommendation(app.name || identifier, result);
|
|
47
|
+
}
|
|
48
|
+
const mb = (value) => value === null ? '-' : `${value} MB`;
|
|
49
|
+
const cores = (value) => value === null ? '-' : `${value} cores`;
|
|
50
|
+
const vcpus = (value) => value === null ? '-' : `${value} vCPU`;
|
|
51
|
+
const millis = (value) => value === null ? '-' : `${value} m`;
|
|
52
|
+
const DECIDED_BY = {
|
|
53
|
+
headroom: '1.2 x peak',
|
|
54
|
+
minimum: 'the 64 MB minimum',
|
|
55
|
+
database: 'the 256 MB database floor',
|
|
56
|
+
declared: 'the floor the runtime spec declares',
|
|
57
|
+
retained_max: 'the 30-day peak + 10%',
|
|
58
|
+
maximum: 'the 8192 MB maximum',
|
|
59
|
+
};
|
|
60
|
+
function printRecommendation(name, result) {
|
|
61
|
+
const { recommendation: rec } = result;
|
|
62
|
+
const window = `${result.window.days} day${result.window.days === 1 ? '' : 's'}`;
|
|
63
|
+
if (rec.status !== 'ok') {
|
|
64
|
+
printInfo(rec.status === 'no_data'
|
|
65
|
+
? `No resource measurements for ${name}'s production replicas in the last ${window}.`
|
|
66
|
+
: `Not enough data for ${name} yet: ${rec.confidence.coverageDays} of the 1 day of observed usage a recommendation needs (last ${window}).`);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
printInfo(`Right-sizing for ${name}, last ${window}: confidence ${rec.confidence.level} ` +
|
|
70
|
+
`(${rec.confidence.coverageDays} days observed, ${rec.confidence.samples} samples)`);
|
|
71
|
+
printLine(formatTable(rows(rec), ['resource', 'current', 'recommended', 'observed']));
|
|
72
|
+
if (rec.memory.decidedBy)
|
|
73
|
+
printInfo(`Memory decided by ${DECIDED_BY[rec.memory.decidedBy] ?? rec.memory.decidedBy}.`);
|
|
74
|
+
if (rec.savings) {
|
|
75
|
+
const replicas = `${rec.savings.replicas} replica${rec.savings.replicas === 1 ? '' : 's'}`;
|
|
76
|
+
const cpu = rec.savings.cpuRequestMillis === null ? '' : ` and ${rec.savings.cpuRequestMillis} mCPU`;
|
|
77
|
+
printInfo(`${rec.savings.memoryMb >= 0 ? 'Frees' : 'Needs'} ${Math.abs(rec.savings.memoryMb)} MB${cpu} of reservation across ${replicas}.`);
|
|
78
|
+
}
|
|
79
|
+
if (rec.memory.recommendedMb !== null && rec.cpu.recommendedLimitVCpus !== null) {
|
|
80
|
+
printInfo(`Apply (nothing changes until you do): inquir apps update ${name} --memory ${rec.memory.recommendedMb} ` +
|
|
81
|
+
`--cpu ${rec.cpu.recommendedLimitVCpus}, then inquir apps redeploy ${name}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (result.replicaSets.length > 0) {
|
|
85
|
+
printInfo('Replica sets (releases) in the window:');
|
|
86
|
+
printLine(formatTable(result.replicaSets.map((set) => ({
|
|
87
|
+
release: `${set.releaseId}${set.production ? ' (production)' : ''}`,
|
|
88
|
+
status: set.releaseStatus,
|
|
89
|
+
'current MB': set.memory.currentMb,
|
|
90
|
+
'peak MB': set.memory.maxObservedMb ?? '-',
|
|
91
|
+
'recommended MB': set.memory.recommendedMb ?? '-',
|
|
92
|
+
'p95 cores': set.cpu.p95Cores ?? '-',
|
|
93
|
+
confidence: set.status === 'ok' ? set.confidence.level : set.status,
|
|
94
|
+
})), ['release', 'status', 'current MB', 'peak MB', 'recommended MB', 'p95 cores', 'confidence']));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function rows(rec) {
|
|
98
|
+
return [
|
|
99
|
+
{ resource: 'memory', current: mb(rec.memory.currentMb), recommended: mb(rec.memory.recommendedMb),
|
|
100
|
+
observed: `peak ${mb(rec.memory.maxObservedMb)}, mean ${mb(rec.memory.avgObservedMb)}` },
|
|
101
|
+
{ resource: 'CPU limit', current: vcpus(rec.cpu.currentLimitVCpus), recommended: vcpus(rec.cpu.recommendedLimitVCpus),
|
|
102
|
+
observed: `peak ${cores(rec.cpu.maxCores)}` },
|
|
103
|
+
{ resource: 'CPU request', current: millis(rec.cpu.currentRequestMillis), recommended: millis(rec.cpu.recommendedRequestMillis),
|
|
104
|
+
observed: `p95 ${cores(rec.cpu.p95Cores)} (alone: ${millis(rec.cpu.suggestedRequestMillis)})` },
|
|
105
|
+
];
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=apps-resources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apps-resources.js","sourceRoot":"","sources":["../../src/commands/apps-resources.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/apps.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type AppNetworkPolicy, type AppPortSpec, type AppRuntimeSpec, type AppScalingPolicy, type ApplicationDetail, type Release } from '../utils/api.js';
|
|
1
|
+
import { type AppNetworkPolicy, type AppPortSpec, type AppRuntimeSpec, type AppScalingPolicy, type ApiRequestOptions, type ApplicationDetail, type AppLocationStatus, type AppVolumeBackup, type AppBackupPolicy, type Build, type Release } from '../utils/api.js';
|
|
2
|
+
import { type AppLogHistoryResponse, type AppRuntimeLogEntry, type AppRuntimeLogQuery } from '../sdk.js';
|
|
2
3
|
export declare function appsCommand(args: string[]): Promise<void>;
|
|
3
4
|
/**
|
|
4
5
|
* `--tcp name:port[:public][:hostPort]` — ordinary usage stops at `public` and
|
|
@@ -6,6 +7,29 @@ export declare function appsCommand(args: string[]): Promise<void>;
|
|
|
6
7
|
* remains an API/CLI compatibility escape hatch for an existing installation.
|
|
7
8
|
*/
|
|
8
9
|
export declare function parseTcpPortFlag(value: string): AppPortSpec;
|
|
10
|
+
/**
|
|
11
|
+
* `--location <id|auto>`: the service's location, verbatim; the server says
|
|
12
|
+
* which ids it offers. Undefined when the flag is absent.
|
|
13
|
+
*/
|
|
14
|
+
export declare function parseLocationFlag(value: string | undefined): string | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* The status line of a service's location: its setting by name, what
|
|
17
|
+
* production runs with while a change waits for the next deploy, and where
|
|
18
|
+
* the replicas run. Undefined while the platform offers no location choice.
|
|
19
|
+
*/
|
|
20
|
+
export declare function describeServiceLocation(status: AppLocationStatus): string | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* `--node-selector KEY=VALUE` (repeatable): the node labels a server must
|
|
23
|
+
* carry, verbatim (`inquir.io/region=eu`, `tier=fast`). The server validates
|
|
24
|
+
* keys and values and says which keys it exposes.
|
|
25
|
+
*/
|
|
26
|
+
export declare function parseNodeSelectorFlags(values: string[]): Record<string, string>;
|
|
27
|
+
/**
|
|
28
|
+
* The runtime defaults with `--node-selector` / `--clear-node-selector`
|
|
29
|
+
* applied over `base` (the flags' runtime, else the stored one); undefined
|
|
30
|
+
* when neither flag is given.
|
|
31
|
+
*/
|
|
32
|
+
export declare function applyNodeSelectorFlags(args: string[], base: AppRuntimeSpec | undefined): AppRuntimeSpec | undefined;
|
|
9
33
|
export declare function parseSetFlags(values: string[]): Record<string, string>;
|
|
10
34
|
/** Parse a CLI duration such as `90`, `90s`, `15m`, `1h30m`, or `1.5m`. */
|
|
11
35
|
export declare function parseDurationSeconds(value: string): number;
|
|
@@ -14,15 +38,66 @@ export declare function buildScalingPatchFromFlags(args: string[], positionalAct
|
|
|
14
38
|
type AppVolumeSpec = NonNullable<AppRuntimeSpec['volumes']>[number];
|
|
15
39
|
/** `--volume name:/absolute/container/path[:ro]`; host paths are never accepted. */
|
|
16
40
|
export declare function parseVolumeFlag(value: string): AppVolumeSpec;
|
|
41
|
+
/** `--drain-grace <seconds>`: whole seconds, 0..3600, as the API's runtime schema. */
|
|
42
|
+
export declare function parseDrainGraceFlag(value: string): number;
|
|
17
43
|
/** Runtime flags patch the saved application runtime rather than replacing unrelated fields. */
|
|
18
44
|
export declare function buildRuntimeFromFlags(args: string[], baseRuntime?: AppRuntimeSpec): AppRuntimeSpec | undefined;
|
|
45
|
+
/** `apps <sub> --help` answered per subcommand; the global page is the fallback. */
|
|
46
|
+
export declare const SUBCOMMAND_HELP: Record<string, string[]>;
|
|
47
|
+
/**
|
|
48
|
+
* "2/3 ~10-08 14:00": the row's place among its volume's backups of the same
|
|
49
|
+
* kind, and roughly when it goes; "next cleanup" once past the limit.
|
|
50
|
+
*/
|
|
51
|
+
export declare function formatBackupKeeps(backup: AppVolumeBackup): string;
|
|
52
|
+
/** One line on what the workspace's backup policy keeps. */
|
|
53
|
+
export declare function formatBackupPolicy(policy: AppBackupPolicy): string;
|
|
54
|
+
/**
|
|
55
|
+
* An empty backup list. A volume on a worker runner cannot be snapshotted by
|
|
56
|
+
* the platform yet, and `create` is refused there too: say so instead of
|
|
57
|
+
* suggesting it.
|
|
58
|
+
*/
|
|
59
|
+
export declare function emptyBackupsLines(appName: string, policy: AppBackupPolicy | undefined): string[];
|
|
60
|
+
/**
|
|
61
|
+
* The refusals of `apps connect` and `apps connection-url`, told as what to do
|
|
62
|
+
* next. The server's code and message are kept; the cause, the fix and the
|
|
63
|
+
* command to try are the CLI's. Anything else passes through unchanged to the
|
|
64
|
+
* generic rendering.
|
|
65
|
+
*/
|
|
66
|
+
export declare function explainDatabaseConnectionError(error: unknown, context: {
|
|
67
|
+
database: string;
|
|
68
|
+
target?: string;
|
|
69
|
+
}): unknown;
|
|
19
70
|
export declare function selectConnectionUrl(result: {
|
|
20
71
|
url?: string;
|
|
21
72
|
publicUrl?: string;
|
|
73
|
+
/** Why a public-only answer has no private URL (newer servers only). */
|
|
74
|
+
privateUnavailable?: {
|
|
75
|
+
code: string;
|
|
76
|
+
message: string;
|
|
77
|
+
};
|
|
22
78
|
}, preference?: 'auto' | 'private' | 'public'): {
|
|
23
79
|
url: string;
|
|
24
80
|
visibility: 'private' | 'public';
|
|
25
81
|
};
|
|
82
|
+
/** Authoritative phase observation, independent of an open or broken log stream. */
|
|
83
|
+
export declare function waitForBuild(buildId: string, apiOptions: ApiRequestOptions, options?: {
|
|
84
|
+
json?: boolean;
|
|
85
|
+
noLogs?: boolean;
|
|
86
|
+
initial?: Pick<Build, 'status' | 'timeoutPolicy' | 'timeoutRemainingMs'>;
|
|
87
|
+
}): Promise<Build>;
|
|
88
|
+
/**
|
|
89
|
+
* The phase of the stop-first production replacement a PENDING release is
|
|
90
|
+
* the target of. Bounded: the operation is read on the first PENDING poll
|
|
91
|
+
* and then every REPLACEMENT_PROBE_EVERY polls, and never again once a read
|
|
92
|
+
* fails or names no replacement for this release (a preview, an older
|
|
93
|
+
* server), so an ordinary deploy costs one extra request.
|
|
94
|
+
*/
|
|
95
|
+
export declare function createReplacementProbe(read: (applicationId: string) => Promise<{
|
|
96
|
+
targetReleaseId: string;
|
|
97
|
+
phase: string;
|
|
98
|
+
} | null>, every?: number): {
|
|
99
|
+
phaseOf(release: Pick<Release, 'id' | 'applicationId'>): Promise<string>;
|
|
100
|
+
};
|
|
26
101
|
/**
|
|
27
102
|
* Where a client can actually connect. Public endpoints first; a host-local
|
|
28
103
|
* port is still printed (marked as such) because on an installation with no
|
|
@@ -37,7 +112,7 @@ export declare function releaseEndpointLines(release: Release, previewUrl?: stri
|
|
|
37
112
|
* missing domain on an installation with private networking means "still
|
|
38
113
|
* being reconciled", not "no such thing" — and that is worth a line too.
|
|
39
114
|
*/
|
|
40
|
-
export declare function privateEndpointLines(detail: Pick<ApplicationDetail, 'privateDomain' | 'privateBaseUrl'>, active: Pick<Release, 'ports'> | undefined, options?: {
|
|
115
|
+
export declare function privateEndpointLines(detail: Pick<ApplicationDetail, 'privateDomain' | 'privateBaseUrl'>, active: (Pick<Release, 'ports' | 'runtime'> & Partial<Pick<Release, 'serving'>>) | undefined, options?: {
|
|
41
116
|
privateNetworking?: boolean;
|
|
42
117
|
}): string[];
|
|
43
118
|
/**
|
|
@@ -53,6 +128,47 @@ export declare function buildNetworkPolicyPatch(input: {
|
|
|
53
128
|
}): AppNetworkPolicy | undefined;
|
|
54
129
|
/** A build-sourced release is best named by its build; a pulled one by its ref. */
|
|
55
130
|
export declare function describeImage(release: Pick<Release, 'imageSource' | 'buildId' | 'imageRef' | 'imageDigest'>): string;
|
|
131
|
+
/** One line for a startup probe; defaults as the server applies them (src/apps/startup-probe.ts). */
|
|
132
|
+
export declare function describeStartupProbe(probe: NonNullable<AppRuntimeSpec['startupProbe']>): string;
|
|
56
133
|
export declare function describeScalingPolicy(policy: AppScalingPolicy): string;
|
|
134
|
+
/**
|
|
135
|
+
* Calls `stop` once a stream goes quiet: BUILD_LOG_FIRST_EVENT_MS before the
|
|
136
|
+
* first event (connecting may be slow), BUILD_LOG_QUIET_MS after the latest.
|
|
137
|
+
*/
|
|
138
|
+
export declare function createQuietStop(stop: () => void, timings?: {
|
|
139
|
+
firstEventMs: number;
|
|
140
|
+
quietMs: number;
|
|
141
|
+
}): {
|
|
142
|
+
heard(): void;
|
|
143
|
+
cancel(): void;
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* `apps logs --no-follow`: the last `tail` stored lines of one release (one
|
|
147
|
+
* replica with `allocationId`), oldest first — what the live stream prints
|
|
148
|
+
* before it starts following, without the following.
|
|
149
|
+
*/
|
|
150
|
+
export declare function readRecentRuntimeLogs(fetchPage: (query: AppRuntimeLogQuery) => Promise<AppLogHistoryResponse<AppRuntimeLogEntry>>, options: {
|
|
151
|
+
releaseId: string;
|
|
152
|
+
tail: number;
|
|
153
|
+
allocationId?: string;
|
|
154
|
+
now?: number;
|
|
155
|
+
}): Promise<AppRuntimeLogEntry[]>;
|
|
156
|
+
/**
|
|
157
|
+
* What to say after a promotion that produced no public URL. An HTTP service
|
|
158
|
+
* is private, not unreachable: same-workspace services reach it at its
|
|
159
|
+
* private address. Only a TCP-only service is reached at its TCP endpoints.
|
|
160
|
+
*/
|
|
161
|
+
export declare function promotedWithoutHostnameLines(release: Pick<Release, 'runtime'> | null, app: Pick<ApplicationDetail, 'name' | 'privateBaseUrl'> | null): string[];
|
|
162
|
+
/**
|
|
163
|
+
* When an `apps update` takes effect. Public Networking is applied by the
|
|
164
|
+
* server at once (the generated route is created or removed in the same
|
|
165
|
+
* request); env, runtime, egress, placement and location are what the next
|
|
166
|
+
* release is built from.
|
|
167
|
+
*/
|
|
168
|
+
export declare function updateTimingLines(appName: string, changed: {
|
|
169
|
+
ingress?: 'public' | 'private';
|
|
170
|
+
nextRelease: boolean;
|
|
171
|
+
hasProduction?: boolean;
|
|
172
|
+
}): string[];
|
|
57
173
|
export {};
|
|
58
174
|
//# sourceMappingURL=apps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../src/commands/apps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../src/commands/apps.ts"],"names":[],"mappings":"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"}
|