flipstream 0.4.0 → 0.6.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/README.md +357 -27
- package/dist/commands/auth/login.js +7 -1
- package/dist/commands/auth/status.js +29 -3
- package/dist/commands/catalog.d.ts +15 -0
- package/dist/commands/catalog.js +110 -0
- package/dist/commands/connections/list.d.ts +1 -0
- package/dist/commands/connections/list.js +31 -4
- package/dist/commands/contract.d.ts +11 -0
- package/dist/commands/contract.js +35 -0
- package/dist/commands/health.d.ts +10 -0
- package/dist/commands/health.js +31 -0
- package/dist/commands/log/add.d.ts +16 -0
- package/dist/commands/log/add.js +48 -0
- package/dist/commands/log/list.d.ts +19 -0
- package/dist/commands/log/list.js +43 -0
- package/dist/commands/query.d.ts +15 -2
- package/dist/commands/query.js +255 -42
- package/dist/commands/skills/install.d.ts +16 -0
- package/dist/commands/skills/install.js +55 -0
- package/dist/commands/workspaces/connections.js +6 -3
- package/dist/commands/workspaces/get.js +4 -2
- package/dist/commands/workspaces/list.js +3 -0
- package/dist/lib/api/admin-client.d.ts +5 -0
- package/dist/lib/api/admin-client.js +19 -0
- package/dist/lib/api/connections.d.ts +0 -1
- package/dist/lib/api/connections.js +0 -25
- package/dist/lib/api/errors.d.ts +1 -0
- package/dist/lib/api/errors.js +13 -2
- package/dist/lib/api/http.d.ts +2 -0
- package/dist/lib/api/http.js +40 -4
- package/dist/lib/api/hydrate.d.ts +10 -0
- package/dist/lib/api/hydrate.js +46 -0
- package/dist/lib/api/ids.d.ts +1 -0
- package/dist/lib/api/ids.js +5 -0
- package/dist/lib/api/log.d.ts +22 -0
- package/dist/lib/api/log.js +56 -0
- package/dist/lib/api/projections.d.ts +1 -0
- package/dist/lib/api/projections.js +23 -0
- package/dist/lib/api/short-uuid.d.ts +1 -0
- package/dist/lib/api/short-uuid.js +30 -0
- package/dist/lib/auth/claims.js +3 -3
- package/dist/lib/auth/flow.js +8 -1
- package/dist/lib/auth/headless.js +14 -10
- package/dist/lib/auth/refresh.js +21 -1
- package/dist/lib/command/admin.d.ts +1 -0
- package/dist/lib/command/admin.js +21 -0
- package/dist/lib/command/base.d.ts +4 -0
- package/dist/lib/command/base.js +97 -3
- package/dist/lib/command/flags.d.ts +4 -0
- package/dist/lib/command/flags.js +11 -0
- package/dist/lib/command/planner.d.ts +9 -0
- package/dist/lib/command/planner.js +14 -0
- package/dist/lib/config/constants.d.ts +3 -1
- package/dist/lib/config/constants.js +14 -1
- package/dist/lib/config/xdg.d.ts +4 -0
- package/dist/lib/config/xdg.js +56 -1
- package/dist/lib/errors.d.ts +20 -1
- package/dist/lib/errors.js +132 -13
- package/dist/lib/output/dialogs.d.ts +27 -0
- package/dist/lib/output/dialogs.js +94 -0
- package/dist/lib/output/interactivity.d.ts +11 -0
- package/dist/lib/output/interactivity.js +48 -0
- package/dist/lib/output/redact.d.ts +1 -0
- package/dist/lib/output/redact.js +12 -0
- package/dist/lib/output/runlog.d.ts +3 -0
- package/dist/lib/output/runlog.js +72 -0
- package/dist/lib/output/sanitize.d.ts +2 -0
- package/dist/lib/output/sanitize.js +57 -0
- package/dist/lib/output/sidecar.d.ts +30 -0
- package/dist/lib/output/sidecar.js +58 -0
- package/dist/lib/output/table.js +5 -1
- package/dist/lib/output/trace.d.ts +11 -0
- package/dist/lib/output/trace.js +89 -0
- package/dist/lib/planner/catalog.d.ts +26 -0
- package/dist/lib/planner/catalog.js +60 -0
- package/dist/lib/planner/client.d.ts +14 -0
- package/dist/lib/planner/client.js +47 -0
- package/dist/lib/planner/connection.d.ts +14 -0
- package/dist/lib/planner/connection.js +139 -0
- package/dist/lib/planner/diagnose.d.ts +8 -0
- package/dist/lib/planner/diagnose.js +50 -0
- package/dist/lib/planner/errors.d.ts +14 -0
- package/dist/lib/planner/errors.js +129 -0
- package/dist/lib/planner/filters.d.ts +8 -0
- package/dist/lib/planner/filters.js +74 -0
- package/dist/lib/planner/request.d.ts +24 -0
- package/dist/lib/planner/request.js +51 -0
- package/dist/lib/planner/suggest.d.ts +2 -0
- package/dist/lib/planner/suggest.js +45 -0
- package/dist/lib/planner/vocabulary.d.ts +9 -0
- package/dist/lib/planner/vocabulary.js +95 -0
- package/dist/lib/skills/install.d.ts +24 -0
- package/dist/lib/skills/install.js +69 -0
- package/dist/lib/store/keyring.d.ts +3 -0
- package/dist/lib/store/keyring.js +45 -2
- package/dist/lib/store/memory-store.d.ts +1 -0
- package/dist/lib/store/memory-store.js +5 -0
- package/docs/AGENT-CONTRACT.md +238 -0
- package/oclif.manifest.json +606 -8
- package/package.json +22 -3
- package/skill/SKILL.md +55 -0
- package/dist/lib/auth/register.d.ts +0 -4
- package/dist/lib/auth/register.js +0 -43
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
|
-
import { fetchConnections
|
|
2
|
+
import { fetchConnections } from '../../lib/api/connections.js';
|
|
3
|
+
import { hydrate, WORKSPACE_NAME } from '../../lib/api/hydrate.js';
|
|
3
4
|
import { assertUuid } from '../../lib/api/ids.js';
|
|
4
5
|
import { authedAdminClient, renderConnectionsTable } from '../../lib/command/admin.js';
|
|
5
6
|
import { BaseCommand } from '../../lib/command/base.js';
|
|
@@ -17,7 +18,7 @@ export default class ConnectionsList extends BaseCommand {
|
|
|
17
18
|
];
|
|
18
19
|
static flags = {
|
|
19
20
|
...paginationFlags,
|
|
20
|
-
workspace: Flags.string({ description: "List only this workspace's connections (UUID)." }),
|
|
21
|
+
workspace: Flags.string({ aliases: ['ws'], description: "List only this workspace's connections (UUID)." }),
|
|
21
22
|
};
|
|
22
23
|
static summary = 'List connections, org-wide or for one workspace.';
|
|
23
24
|
async run() {
|
|
@@ -29,6 +30,7 @@ export default class ConnectionsList extends BaseCommand {
|
|
|
29
30
|
if (!store.load(host))
|
|
30
31
|
throw AuthRequiredError.notLoggedIn();
|
|
31
32
|
const client = authedAdminClient(host, store, this.flags.timeout);
|
|
33
|
+
const startedMs = Date.now();
|
|
32
34
|
const projected = await fetchConnections(client, {
|
|
33
35
|
all: this.flags.all,
|
|
34
36
|
limit: this.flags.limit,
|
|
@@ -37,7 +39,32 @@ export default class ConnectionsList extends BaseCommand {
|
|
|
37
39
|
sort: this.flags.sort,
|
|
38
40
|
workspace,
|
|
39
41
|
});
|
|
40
|
-
await
|
|
41
|
-
|
|
42
|
+
await hydrate(client, projected.records, [WORKSPACE_NAME]);
|
|
43
|
+
// Which origin answered (E11-2): planner vs admin is the first debugging question.
|
|
44
|
+
this.verboseLog(`GET ${host}/connections (${Date.now() - startedMs} ms)`);
|
|
45
|
+
return this.respondList(projected, (records) => {
|
|
46
|
+
renderConnectionsTable(records);
|
|
47
|
+
this.printUsageFooter(records);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
// The exact next command with a REAL id from the results (E11-3, #102) — the
|
|
51
|
+
// whole reason an agent lists connections is to feed one into `query`.
|
|
52
|
+
// stderr — guidance, not data; only in the human path (respondList gates it).
|
|
53
|
+
printUsageFooter(records) {
|
|
54
|
+
const first = records.find((record) => {
|
|
55
|
+
const candidate = record;
|
|
56
|
+
return typeof candidate?.id === 'string' && candidate.active !== false;
|
|
57
|
+
});
|
|
58
|
+
if (first === undefined) {
|
|
59
|
+
// All-inactive is exactly when the reader is about to be confused:
|
|
60
|
+
// `query` will refuse every one of these ids.
|
|
61
|
+
if (records.length > 0) {
|
|
62
|
+
this.footer('\nNo ACTIVE connection in these results — query refuses an inactive connection.');
|
|
63
|
+
}
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
// The id is a server-supplied string — footer() redacts + sanitizes it.
|
|
67
|
+
this.footer(`\nTry: ${this.config.bin} query --source <source> --connection-id ${first.id} -d <dim> -m <metric> --json\n` +
|
|
68
|
+
` (${this.config.bin} catalog lists the sources and their names)`);
|
|
42
69
|
}
|
|
43
70
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseCommand } from '../lib/command/base.js';
|
|
2
|
+
export default class Contract extends BaseCommand<typeof Contract> {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {};
|
|
6
|
+
static summary: string;
|
|
7
|
+
run(): Promise<{
|
|
8
|
+
contractVersion: string;
|
|
9
|
+
markdown: string;
|
|
10
|
+
}>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { BaseCommand } from '../lib/command/base.js';
|
|
5
|
+
import { CONTRACT_VERSION } from '../lib/config/constants.js';
|
|
6
|
+
import { CliError } from '../lib/errors.js';
|
|
7
|
+
import { ExitCode } from '../lib/exit-codes.js';
|
|
8
|
+
// <package root>/docs/AGENT-CONTRACT.md, resolved relative to this module so it
|
|
9
|
+
// works from dist in the published tarball and from src in dev.
|
|
10
|
+
function contractPath() {
|
|
11
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
12
|
+
return join(here, '..', '..', 'docs', 'AGENT-CONTRACT.md');
|
|
13
|
+
}
|
|
14
|
+
export default class Contract extends BaseCommand {
|
|
15
|
+
static description = 'Print docs/AGENT-CONTRACT.md — the frozen machine contract (output modes, exit codes, error envelope, ' +
|
|
16
|
+
'per-command JSON shapes) — to stdout, from the installed package, no network needed. Context self-service ' +
|
|
17
|
+
'for agents: read this before driving the CLI programmatically.';
|
|
18
|
+
static examples = ['<%= config.bin %> contract', '<%= config.bin %> contract --json'];
|
|
19
|
+
static flags = {};
|
|
20
|
+
static summary = 'Print the agent contract (machine-facing promises) to stdout.';
|
|
21
|
+
async run() {
|
|
22
|
+
let markdown;
|
|
23
|
+
try {
|
|
24
|
+
markdown = readFileSync(contractPath(), 'utf8');
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// Never a raw ENOENT: the class name is not a contract code, and the
|
|
28
|
+
// absolute path (with the OS username) does not belong on stdout.
|
|
29
|
+
throw new CliError('The packaged agent contract is missing from this installation.', 'contract_unavailable', ExitCode.GENERIC).withDetails({ hint: 'Reinstall the CLI: npm i -g flipstream', retryable: false });
|
|
30
|
+
}
|
|
31
|
+
// The document IS the data here, so human mode prints it verbatim on
|
|
32
|
+
// stdout; --json wraps it with the version for programmatic consumers.
|
|
33
|
+
return this.respond({ contractVersion: CONTRACT_VERSION, markdown }, () => this.log(markdown));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseCommand } from '../lib/command/base.js';
|
|
2
|
+
export default class Health extends BaseCommand<typeof Health> {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
url: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
};
|
|
8
|
+
static summary: string;
|
|
9
|
+
run(): Promise<unknown>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
import { mapDataError } from '../lib/api/errors.js';
|
|
3
|
+
import { BaseCommand } from '../lib/command/base.js';
|
|
4
|
+
import { resolvePlannerUrl } from '../lib/config/xdg.js';
|
|
5
|
+
import { getPlannerHealth } from '../lib/planner/client.js';
|
|
6
|
+
export default class Health extends BaseCommand {
|
|
7
|
+
static description = 'Check that the query planner is answering. This is the ONE endpoint that takes no token, so it separates ' +
|
|
8
|
+
'"the service is down" from "my credentials are wrong" before any auth debugging starts.';
|
|
9
|
+
static examples = [
|
|
10
|
+
'<%= config.bin %> health',
|
|
11
|
+
'<%= config.bin %> health --json',
|
|
12
|
+
'<%= config.bin %> health --url http://localhost:8080',
|
|
13
|
+
];
|
|
14
|
+
static flags = {
|
|
15
|
+
url: Flags.string({
|
|
16
|
+
description: 'Query-planner base URL (default: the prod planner; env FLIPSTREAM_PLANNER_URL).',
|
|
17
|
+
}),
|
|
18
|
+
};
|
|
19
|
+
static summary = 'Check that the query planner is reachable.';
|
|
20
|
+
async run() {
|
|
21
|
+
const url = resolvePlannerUrl({ urlFlag: this.flags.url });
|
|
22
|
+
let payload;
|
|
23
|
+
try {
|
|
24
|
+
payload = await getPlannerHealth(url, { timeoutMs: this.flags.timeout });
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
throw mapDataError(error);
|
|
28
|
+
}
|
|
29
|
+
return this.respond(payload, (data) => this.log(JSON.stringify(data, null, 2)));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BaseCommand } from '../../lib/command/base.js';
|
|
2
|
+
export default class LogAdd extends BaseCommand<typeof LogAdd> {
|
|
3
|
+
static aliases: string[];
|
|
4
|
+
static args: {
|
|
5
|
+
message: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static description: string;
|
|
8
|
+
static examples: string[];
|
|
9
|
+
static flags: {
|
|
10
|
+
end: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
start: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
workspace: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
static summary: string;
|
|
15
|
+
run(): Promise<unknown>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Args, Flags } from '@oclif/core';
|
|
2
|
+
import { assertUuid } from '../../lib/api/ids.js';
|
|
3
|
+
import { addLogEntry, resolveWorkspaceOrg } from '../../lib/api/log.js';
|
|
4
|
+
import { authedAdminClient } from '../../lib/command/admin.js';
|
|
5
|
+
import { BaseCommand } from '../../lib/command/base.js';
|
|
6
|
+
import { AuthRequiredError } from '../../lib/errors.js';
|
|
7
|
+
import { createStore } from '../../lib/store/index.js';
|
|
8
|
+
export default class LogAdd extends BaseCommand {
|
|
9
|
+
static aliases = ['logs:add'];
|
|
10
|
+
static args = {
|
|
11
|
+
message: Args.string({ description: 'The log entry text.', ignoreStdin: true, required: true }),
|
|
12
|
+
};
|
|
13
|
+
static description = "Add an entry to a workspace's log (the logbook). You give the workspace (--workspace/--ws) and the message; the " +
|
|
14
|
+
'organization is derived from the workspace, and the dates default to now (override with --start/--end). ' +
|
|
15
|
+
'Returns the created entry. Targets the OAuth/admin host.';
|
|
16
|
+
static examples = [
|
|
17
|
+
'<%= config.bin %> log add "shipped the new pipeline" --workspace <id>',
|
|
18
|
+
'<%= config.bin %> log add "kickoff call done" --ws <id> --json',
|
|
19
|
+
];
|
|
20
|
+
static flags = {
|
|
21
|
+
end: Flags.string({ description: 'End date (ISO 8601). Defaults to now.' }),
|
|
22
|
+
start: Flags.string({ description: 'Start date (ISO 8601). Defaults to now.' }),
|
|
23
|
+
workspace: Flags.string({
|
|
24
|
+
aliases: ['ws'],
|
|
25
|
+
description: 'Workspace id (UUID) the entry belongs to.',
|
|
26
|
+
required: true,
|
|
27
|
+
}),
|
|
28
|
+
};
|
|
29
|
+
static summary = "Add an entry to a workspace's log.";
|
|
30
|
+
async run() {
|
|
31
|
+
assertUuid(this.flags.workspace, 'workspace id'); // exit 2, no request
|
|
32
|
+
const host = this.resolvedHost();
|
|
33
|
+
const store = createStore();
|
|
34
|
+
if (!store.load(host))
|
|
35
|
+
throw AuthRequiredError.notLoggedIn();
|
|
36
|
+
const client = authedAdminClient(host, store, this.flags.timeout);
|
|
37
|
+
const organizationId = await resolveWorkspaceOrg(client, this.flags.workspace);
|
|
38
|
+
const now = new Date().toISOString();
|
|
39
|
+
const created = await addLogEntry(client, {
|
|
40
|
+
clientId: this.flags.workspace,
|
|
41
|
+
description: this.args.message,
|
|
42
|
+
endDate: this.flags.end ?? now,
|
|
43
|
+
organizationId,
|
|
44
|
+
startDate: this.flags.start ?? now,
|
|
45
|
+
});
|
|
46
|
+
return this.respond(created, (entry) => this.log(`Logged entry ${String(entry.id)} to workspace ${this.flags.workspace}.`));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BaseCommand } from '../../lib/command/base.js';
|
|
2
|
+
export default class LogList extends BaseCommand<typeof LogList> {
|
|
3
|
+
static aliases: string[];
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static flags: {
|
|
7
|
+
workspace: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
all: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
9
|
+
limit: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
offset: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
q: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
sort: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
};
|
|
14
|
+
static summary: string;
|
|
15
|
+
run(): Promise<{
|
|
16
|
+
count: number;
|
|
17
|
+
records: unknown[];
|
|
18
|
+
}>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
import { CREATOR_EMAIL, hydrate, WORKSPACE_NAME } from '../../lib/api/hydrate.js';
|
|
3
|
+
import { assertUuid } from '../../lib/api/ids.js';
|
|
4
|
+
import { fetchLog } from '../../lib/api/log.js';
|
|
5
|
+
import { authedAdminClient, renderLogEntriesTable } from '../../lib/command/admin.js';
|
|
6
|
+
import { BaseCommand } from '../../lib/command/base.js';
|
|
7
|
+
import { paginationFlags } from '../../lib/command/flags.js';
|
|
8
|
+
import { AuthRequiredError } from '../../lib/errors.js';
|
|
9
|
+
import { createStore } from '../../lib/store/index.js';
|
|
10
|
+
export default class LogList extends BaseCommand {
|
|
11
|
+
static aliases = ['logs:list'];
|
|
12
|
+
static description = "Read a workspace's log entries (the logbook). --workspace is required — a log entry only makes sense in a " +
|
|
13
|
+
"workspace's context, so there is no account-wide read. Shows each entry's description, dates, and author; the " +
|
|
14
|
+
'full record (including any new fields like tags) is under --json. Targets the OAuth/admin host.';
|
|
15
|
+
static examples = [
|
|
16
|
+
'<%= config.bin %> log list --workspace <id>',
|
|
17
|
+
'<%= config.bin %> logs list --ws <id> --json',
|
|
18
|
+
'<%= config.bin %> log list --ws <id> --all',
|
|
19
|
+
];
|
|
20
|
+
static flags = {
|
|
21
|
+
...paginationFlags,
|
|
22
|
+
workspace: Flags.string({ aliases: ['ws'], description: 'The workspace whose log to read (UUID).', required: true }),
|
|
23
|
+
};
|
|
24
|
+
static summary = "Read a workspace's log entries.";
|
|
25
|
+
async run() {
|
|
26
|
+
assertUuid(this.flags.workspace, 'workspace id'); // exit 2, no request
|
|
27
|
+
const host = this.resolvedHost();
|
|
28
|
+
const store = createStore();
|
|
29
|
+
if (!store.load(host))
|
|
30
|
+
throw AuthRequiredError.notLoggedIn();
|
|
31
|
+
const client = authedAdminClient(host, store, this.flags.timeout);
|
|
32
|
+
const projected = await fetchLog(client, {
|
|
33
|
+
all: this.flags.all,
|
|
34
|
+
limit: this.flags.limit,
|
|
35
|
+
offset: this.flags.offset,
|
|
36
|
+
q: this.flags.q,
|
|
37
|
+
sort: this.flags.sort,
|
|
38
|
+
workspace: this.flags.workspace,
|
|
39
|
+
});
|
|
40
|
+
await hydrate(client, projected.records, [WORKSPACE_NAME, CREATOR_EMAIL]);
|
|
41
|
+
return this.respondList(projected, (records) => renderLogEntriesTable(records));
|
|
42
|
+
}
|
|
43
|
+
}
|
package/dist/commands/query.d.ts
CHANGED
|
@@ -3,11 +3,24 @@ export default class Query extends BaseCommand<typeof Query> {
|
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|
|
6
|
-
'auth-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
6
|
body: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
7
|
'body-file': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
'connection-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
dimension: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
filter: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
metric: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
offset: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
rows: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
sort: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
source: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
table: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
|
+
'auth-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
19
|
+
url: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
20
|
};
|
|
10
21
|
static summary: string;
|
|
11
22
|
run(): Promise<unknown>;
|
|
12
|
-
private
|
|
23
|
+
private engineFailureDetails;
|
|
24
|
+
private enrichPlannerError;
|
|
25
|
+
private readVerbatimBody;
|
|
13
26
|
}
|