databricks-axi 0.2.0 → 0.3.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 +5 -5
- package/dist/src/cli.d.ts +5 -1
- package/dist/src/cli.js +21 -3
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/api.d.ts +3 -0
- package/dist/src/commands/api.js +60 -0
- package/dist/src/commands/api.js.map +1 -0
- package/dist/src/commands/home.js +2 -2
- package/dist/src/commands/home.js.map +1 -1
- package/dist/src/commands/jobs.d.ts +1 -3
- package/dist/src/commands/jobs.js +7 -100
- package/dist/src/commands/jobs.js.map +1 -1
- package/dist/src/commands/shared.d.ts +28 -0
- package/dist/src/commands/shared.js +105 -0
- package/dist/src/commands/shared.js.map +1 -0
- package/dist/src/commands/sql.d.ts +6 -0
- package/dist/src/commands/sql.js +268 -0
- package/dist/src/commands/sql.js.map +1 -0
- package/dist/src/databricks.d.ts +6 -0
- package/dist/src/databricks.js +8 -0
- package/dist/src/databricks.js.map +1 -1
- package/dist/src/skill.js +20 -12
- package/dist/src/skill.js.map +1 -1
- package/package.json +2 -2
- package/skills/databricks-axi/SKILL.md +15 -7
package/README.md
CHANGED
|
@@ -9,9 +9,9 @@ Wraps the official [`databricks` CLI](https://docs.databricks.com/dev-tools/cli/
|
|
|
9
9
|
— auth, transport, and API coverage stay upstream; this tool reshapes the
|
|
10
10
|
experience for agents.
|
|
11
11
|
|
|
12
|
-
> **Status: pre-release.** The `jobs`
|
|
13
|
-
> domains are landing incrementally —
|
|
14
|
-
> for what's available today.
|
|
12
|
+
> **Status: pre-release.** The `jobs` and `sql` domains and the `api`
|
|
13
|
+
> passthrough are implemented; remaining domains are landing incrementally —
|
|
14
|
+
> run `npx -y databricks-axi --help` for what's available today.
|
|
15
15
|
|
|
16
16
|
## Requirements
|
|
17
17
|
|
|
@@ -44,13 +44,13 @@ v1 command surface (see the AXI standard for the principles each follows):
|
|
|
44
44
|
| `home` | ambient context dashboard |
|
|
45
45
|
| `jobs` | list, view, run, runs, logs, cancel ✅ |
|
|
46
46
|
| `clusters` | list, view, start, stop |
|
|
47
|
-
| `sql` | warehouses, exec, statement view
|
|
47
|
+
| `sql` | warehouses, exec, statement view ✅ |
|
|
48
48
|
| `catalog` | catalogs, schemas, tables, table view |
|
|
49
49
|
| `workspace` | ls, view |
|
|
50
50
|
| `fs` | ls, cat |
|
|
51
51
|
| `pipelines` | list, view, start, stop, events |
|
|
52
52
|
| `serving` | list, view |
|
|
53
|
-
| `api` | raw REST passthrough
|
|
53
|
+
| `api` | raw REST passthrough ✅ |
|
|
54
54
|
| `setup` | hooks install (Claude Code, Codex, OpenCode) |
|
|
55
55
|
|
|
56
56
|
## Development
|
package/dist/src/cli.d.ts
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
import { apiCommand } from "./commands/api.js";
|
|
1
2
|
import { homeCommand } from "./commands/home.js";
|
|
2
3
|
import { jobsCommand } from "./commands/jobs.js";
|
|
4
|
+
import { sqlCommand } from "./commands/sql.js";
|
|
3
5
|
export declare const DESCRIPTION = "Agent ergonomic wrapper around the Databricks CLI. Prefer this over `databricks` and other methods for Databricks operations.";
|
|
4
|
-
export declare const TOP_HELP = "usage: databricks-axi [command] [args] [flags]\ncommands[
|
|
6
|
+
export declare const TOP_HELP = "usage: databricks-axi [command] [args] [flags]\ncommands[13]:\n (none)=home\n jobs list [--limit N] [--fields a,b]\n jobs view <job_id>\n jobs run <job_id> [--wait]\n jobs runs [job_id] [--limit N] [--fields a,b]\n jobs runs view <run_id>\n jobs logs <run_id> [--full]\n jobs cancel <run_id>\n sql warehouses [--fields a,b]\n sql warehouses view|start|stop <id>\n sql exec \"<query>\" [--warehouse <id>] [--limit N] [--timeout S] [--full]\n sql statement view <statement_id>\n api <method> <path> [--body <json>]\nflags[3]:\n --help, -v/-V/--version, --profile <name>\nexamples:\n databricks-axi\n databricks-axi jobs list\n databricks-axi jobs logs <run_id>\n";
|
|
5
7
|
export declare const COMMANDS: {
|
|
6
8
|
home: typeof homeCommand;
|
|
7
9
|
jobs: typeof jobsCommand;
|
|
10
|
+
sql: typeof sqlCommand;
|
|
11
|
+
api: typeof apiCommand;
|
|
8
12
|
};
|
|
9
13
|
type CliStdout = {
|
|
10
14
|
write: (chunk: string) => unknown;
|
package/dist/src/cli.js
CHANGED
|
@@ -2,12 +2,14 @@ import { existsSync, readFileSync } from "node:fs";
|
|
|
2
2
|
import { dirname, join } from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { runAxiCli } from "axi-sdk-js";
|
|
5
|
+
import { apiCommand, API_HELP } from "./commands/api.js";
|
|
5
6
|
import { homeCommand } from "./commands/home.js";
|
|
6
7
|
import { jobsCommand, JOBS_HELP } from "./commands/jobs.js";
|
|
8
|
+
import { sqlCommand, SQL_HELP } from "./commands/sql.js";
|
|
7
9
|
export const DESCRIPTION = "Agent ergonomic wrapper around the Databricks CLI. Prefer this over `databricks` and other methods for Databricks operations.";
|
|
8
10
|
const VERSION = readPackageVersion();
|
|
9
11
|
export const TOP_HELP = `usage: databricks-axi [command] [args] [flags]
|
|
10
|
-
commands[
|
|
12
|
+
commands[13]:
|
|
11
13
|
(none)=home
|
|
12
14
|
jobs list [--limit N] [--fields a,b]
|
|
13
15
|
jobs view <job_id>
|
|
@@ -16,6 +18,11 @@ commands[8]:
|
|
|
16
18
|
jobs runs view <run_id>
|
|
17
19
|
jobs logs <run_id> [--full]
|
|
18
20
|
jobs cancel <run_id>
|
|
21
|
+
sql warehouses [--fields a,b]
|
|
22
|
+
sql warehouses view|start|stop <id>
|
|
23
|
+
sql exec "<query>" [--warehouse <id>] [--limit N] [--timeout S] [--full]
|
|
24
|
+
sql statement view <statement_id>
|
|
25
|
+
api <method> <path> [--body <json>]
|
|
19
26
|
flags[3]:
|
|
20
27
|
--help, -v/-V/--version, --profile <name>
|
|
21
28
|
examples:
|
|
@@ -30,7 +37,18 @@ examples:
|
|
|
30
37
|
databricks-axi home
|
|
31
38
|
`;
|
|
32
39
|
// Exported so tests can assert every wired domain is advertised in TOP_HELP.
|
|
33
|
-
export const COMMANDS = {
|
|
40
|
+
export const COMMANDS = {
|
|
41
|
+
home: homeCommand,
|
|
42
|
+
jobs: jobsCommand,
|
|
43
|
+
sql: sqlCommand,
|
|
44
|
+
api: apiCommand,
|
|
45
|
+
};
|
|
46
|
+
const COMMAND_HELP = {
|
|
47
|
+
home: HOME_HELP,
|
|
48
|
+
jobs: JOBS_HELP,
|
|
49
|
+
sql: SQL_HELP,
|
|
50
|
+
api: API_HELP,
|
|
51
|
+
};
|
|
34
52
|
export async function main(options = {}) {
|
|
35
53
|
await runAxiCli({
|
|
36
54
|
...(options.argv ? { argv: options.argv } : {}),
|
|
@@ -40,7 +58,7 @@ export async function main(options = {}) {
|
|
|
40
58
|
...(options.stdout ? { stdout: options.stdout } : {}),
|
|
41
59
|
home: homeCommand,
|
|
42
60
|
commands: COMMANDS,
|
|
43
|
-
getCommandHelp: (command) => command
|
|
61
|
+
getCommandHelp: (command) => COMMAND_HELP[command] ?? null,
|
|
44
62
|
});
|
|
45
63
|
}
|
|
46
64
|
function readPackageVersion() {
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,CAAC,MAAM,WAAW,GACtB,+HAA+H,CAAC;AAClI,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;AAErC,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBvB,CAAC;AAEF,MAAM,SAAS,GAAG;;;;;CAKjB,CAAC;AAEF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,UAAU;CAChB,CAAC;AAEF,MAAM,YAAY,GAA2B;IAC3C,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;CACd,CAAC;AASF,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,UAAuB,EAAE;IAClD,MAAM,SAAS,CAAC;QACd,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,WAAW,EAAE,WAAW;QACxB,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,QAAQ;QACtB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,QAAQ;QAClB,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,IAAI;KAC3D,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAErD,KAAK,MAAM,SAAS,IAAI;QACtB,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC;KACvC,EAAE,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAEzD,CAAC;QACF,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpE,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type AxiRenderable } from "./shared.js";
|
|
2
|
+
export declare const API_HELP = "usage: databricks-axi api <method> <path> [--body <json>] [--profile <name>]\nRaw REST passthrough \u2014 the escape hatch when no domain command covers an endpoint.\nmethods: get, post, put, patch, delete, head\nexamples:\n databricks-axi api get /api/2.0/sql/warehouses\n databricks-axi api post /api/2.1/jobs/run-now --body '{\"job_id\": 101}'\nnotes:\n prefer the domain commands (jobs, sql, ...) when one exists\n --body also accepts @path/to/file.json (passed through unvalidated)\n never send secret values through api: --body lands on process argv and\n responses land on stdout\n";
|
|
3
|
+
export declare function apiCommand(args: string[]): Promise<AxiRenderable>;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { runDatabricksApi } from "../databricks.js";
|
|
2
|
+
import { domainHelpers, spawnOpts, } from "./shared.js";
|
|
3
|
+
const { usage, parseArgs } = domainHelpers("api");
|
|
4
|
+
export const API_HELP = `usage: databricks-axi api <method> <path> [--body <json>] [--profile <name>]
|
|
5
|
+
Raw REST passthrough — the escape hatch when no domain command covers an endpoint.
|
|
6
|
+
methods: get, post, put, patch, delete, head
|
|
7
|
+
examples:
|
|
8
|
+
databricks-axi api get /api/2.0/sql/warehouses
|
|
9
|
+
databricks-axi api post /api/2.1/jobs/run-now --body '{"job_id": 101}'
|
|
10
|
+
notes:
|
|
11
|
+
prefer the domain commands (jobs, sql, ...) when one exists
|
|
12
|
+
--body also accepts @path/to/file.json (passed through unvalidated)
|
|
13
|
+
never send secret values through api: --body lands on process argv and
|
|
14
|
+
responses land on stdout
|
|
15
|
+
`;
|
|
16
|
+
const METHODS = new Set(["get", "post", "put", "patch", "delete", "head"]);
|
|
17
|
+
const MAX_RENDER_BYTES = 1_000_000;
|
|
18
|
+
export async function apiCommand(args) {
|
|
19
|
+
const { positional, flags } = parseArgs(args, {
|
|
20
|
+
body: "value",
|
|
21
|
+
profile: "value",
|
|
22
|
+
});
|
|
23
|
+
const body = flags.get("body");
|
|
24
|
+
const [method, path, ...extra] = positional;
|
|
25
|
+
if (!method || !path || extra.length > 0) {
|
|
26
|
+
throw usage("Usage: databricks-axi api <method> <path> [--body <json>]");
|
|
27
|
+
}
|
|
28
|
+
if (!METHODS.has(method.toLowerCase())) {
|
|
29
|
+
throw usage(`Unknown method: ${method}`, [
|
|
30
|
+
`Valid methods: ${[...METHODS].join(", ")}`,
|
|
31
|
+
]);
|
|
32
|
+
}
|
|
33
|
+
if (!path.startsWith("/api/")) {
|
|
34
|
+
throw usage(`Path must start with /api/, got: ${path}`, [
|
|
35
|
+
"Example: /api/2.0/sql/warehouses",
|
|
36
|
+
]);
|
|
37
|
+
}
|
|
38
|
+
if (body !== undefined && !body.startsWith("@")) {
|
|
39
|
+
try {
|
|
40
|
+
JSON.parse(body);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
throw usage("--body is not valid JSON");
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const parsed = await runDatabricksApi(method.toLowerCase(), path, body, spawnOpts(flags));
|
|
47
|
+
const bytes = Buffer.byteLength(JSON.stringify(parsed) ?? "", "utf8");
|
|
48
|
+
if (bytes > MAX_RENDER_BYTES) {
|
|
49
|
+
return {
|
|
50
|
+
truncated: `response is ${bytes} bytes (render cap 1MB) — narrow the request`,
|
|
51
|
+
help: ["Add query filters, or request a smaller page/fewer fields"],
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
// No reshaping here (the one command that doesn't editorialize) — just
|
|
55
|
+
// wrap non-objects so TOON has a key to hang them on.
|
|
56
|
+
return parsed !== null && typeof parsed === "object" && !Array.isArray(parsed)
|
|
57
|
+
? parsed
|
|
58
|
+
: { response: parsed };
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/commands/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,aAAa,EACb,SAAS,GAGV,MAAM,aAAa,CAAC;AAErB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;CAWvB,CAAC;AAEF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3E,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAEnC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE;QAC5C,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAuB,CAAC;IACrD,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC;IAC5C,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,CAAC,mBAAmB,MAAM,EAAE,EAAE;YACvC,kBAAkB,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC,oCAAoC,IAAI,EAAE,EAAE;YACtD,kCAAkC;SACnC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,MAAM,CAAC,WAAW,EAAE,EACpB,IAAI,EACJ,IAAI,EACJ,SAAS,CAAC,KAAK,CAAC,CACjB,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IACtE,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;QAC7B,OAAO;YACL,SAAS,EAAE,eAAe,KAAK,8CAA8C;YAC7E,IAAI,EAAE,CAAC,2DAA2D,CAAC;SACpE,CAAC;IACJ,CAAC;IACD,uEAAuE;IACvE,sDAAsD;IACtD,OAAO,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC5E,CAAC,CAAE,MAA8B;QACjC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
export async function homeCommand() {
|
|
5
5
|
return [
|
|
6
6
|
"databricks-axi: pre-release scaffold",
|
|
7
|
-
"available: jobs (list, view, run, runs, logs, cancel)",
|
|
8
|
-
"coming: clusters,
|
|
7
|
+
"available: jobs (list, view, run, runs, logs, cancel), sql (warehouses, exec, statement), api",
|
|
8
|
+
"coming: clusters, catalog, workspace, fs, pipelines, serving, setup",
|
|
9
9
|
"roadmap: https://github.com/p33ves/databricks-axi#roadmap",
|
|
10
10
|
"help[2]:",
|
|
11
11
|
" databricks-axi jobs list",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"home.js","sourceRoot":"","sources":["../../../src/commands/home.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,8DAA8D;AAC9D,4DAA4D;AAC5D,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,OAAO;QACL,sCAAsC;QACtC
|
|
1
|
+
{"version":3,"file":"home.js","sourceRoot":"","sources":["../../../src/commands/home.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,8DAA8D;AAC9D,4DAA4D;AAC5D,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,OAAO;QACL,sCAAsC;QACtC,+FAA+F;QAC/F,qEAAqE;QACrE,2DAA2D;QAC3D,UAAU;QACV,4BAA4B;QAC5B,yBAAyB;KAC1B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
type
|
|
2
|
-
type AxiRenderable = string | AxiStructuredOutput;
|
|
1
|
+
import { type AxiRenderable } from "./shared.js";
|
|
3
2
|
export declare const JOBS_HELP = "usage: databricks-axi jobs <subcommand> [args] [flags]\nsubcommands[7]:\n list [--limit N] [--fields a,b]\n view <job_id>\n run <job_id> [--wait]\n runs [job_id] [--limit N] [--fields a,b]\n runs view <run_id>\n logs <run_id> [--full]\n cancel <run_id>\nflags:\n --profile <name> databricks auth profile passthrough\nexamples:\n databricks-axi jobs list\n databricks-axi jobs run 101\n databricks-axi jobs logs 901\nnotes:\n run is async by default; --wait blocks up to ~20 min upstream (agents: avoid)\n logs shows failed tasks first, last 50 lines each; --full for everything\n";
|
|
4
3
|
export declare function jobsCommand(args: string[]): Promise<AxiRenderable>;
|
|
5
|
-
export {};
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { AxiError } from "axi-sdk-js";
|
|
2
2
|
import { runDatabricks } from "../databricks.js";
|
|
3
|
+
import { asList, assertObject, domainHelpers, profileSuffix, spawnOpts, } from "./shared.js";
|
|
4
|
+
const { usage, parseArgs, parseIntFlag, requireId: requireIdArg, renderRows, } = domainHelpers("jobs");
|
|
5
|
+
// Jobs ids are numeric — reject anything else before it reaches argv.
|
|
6
|
+
const requireId = (positional, usageText) => requireIdArg(positional, usageText, /^\d+$/);
|
|
3
7
|
export const JOBS_HELP = `usage: databricks-axi jobs <subcommand> [args] [flags]
|
|
4
8
|
subcommands[7]:
|
|
5
9
|
list [--limit N] [--fields a,b]
|
|
@@ -49,7 +53,7 @@ async function jobsList(args) {
|
|
|
49
53
|
if (positional.length > 0) {
|
|
50
54
|
throw usage(`jobs list takes no arguments, got: ${positional[0]}`);
|
|
51
55
|
}
|
|
52
|
-
const limit =
|
|
56
|
+
const limit = parseIntFlag(flags, "limit", 30);
|
|
53
57
|
const argv = ["jobs", "list", "--limit", String(limit)];
|
|
54
58
|
const parsed = await runJobs(argv, spawnOpts(flags));
|
|
55
59
|
const items = asList(parsed, "jobs");
|
|
@@ -202,7 +206,7 @@ function durationSeconds(item) {
|
|
|
202
206
|
}
|
|
203
207
|
async function runsList(args) {
|
|
204
208
|
const { positional, flags } = parseArgs(args, LIST_FLAGS);
|
|
205
|
-
const limit =
|
|
209
|
+
const limit = parseIntFlag(flags, "limit", 20);
|
|
206
210
|
const argv = ["jobs", "list-runs", "--limit", String(limit)];
|
|
207
211
|
let jobId;
|
|
208
212
|
if (positional.length > 0) {
|
|
@@ -364,67 +368,6 @@ function tail(text, maxLines) {
|
|
|
364
368
|
total: lines.length,
|
|
365
369
|
};
|
|
366
370
|
}
|
|
367
|
-
function parseArgs(args, spec) {
|
|
368
|
-
const positional = [];
|
|
369
|
-
const flags = new Map();
|
|
370
|
-
for (let i = 0; i < args.length; i++) {
|
|
371
|
-
const arg = args[i];
|
|
372
|
-
if (!arg.startsWith("--")) {
|
|
373
|
-
positional.push(arg);
|
|
374
|
-
continue;
|
|
375
|
-
}
|
|
376
|
-
const name = arg.slice(2);
|
|
377
|
-
const kind = spec[name];
|
|
378
|
-
if (!kind) {
|
|
379
|
-
const valid = Object.keys(spec)
|
|
380
|
-
.map((f) => `--${f}`)
|
|
381
|
-
.join(", ");
|
|
382
|
-
throw usage(`Unknown flag: --${name}`, [`Valid flags: ${valid}`]);
|
|
383
|
-
}
|
|
384
|
-
if (kind === "boolean") {
|
|
385
|
-
flags.set(name, true);
|
|
386
|
-
continue;
|
|
387
|
-
}
|
|
388
|
-
const value = args[++i];
|
|
389
|
-
if (value === undefined) {
|
|
390
|
-
throw usage(`Flag --${name} requires a value`);
|
|
391
|
-
}
|
|
392
|
-
flags.set(name, value);
|
|
393
|
-
}
|
|
394
|
-
return { positional, flags };
|
|
395
|
-
}
|
|
396
|
-
function usage(message, extraHelp = []) {
|
|
397
|
-
return new AxiError(message, "VALIDATION_ERROR", [
|
|
398
|
-
...extraHelp,
|
|
399
|
-
"Run `databricks-axi jobs --help`",
|
|
400
|
-
]);
|
|
401
|
-
}
|
|
402
|
-
function parseLimit(flags, fallback) {
|
|
403
|
-
const raw = flags.get("limit");
|
|
404
|
-
if (raw === undefined) {
|
|
405
|
-
return fallback;
|
|
406
|
-
}
|
|
407
|
-
const limit = Number(raw);
|
|
408
|
-
if (!Number.isInteger(limit) || limit < 1) {
|
|
409
|
-
throw usage(`--limit must be a positive integer, got: ${String(raw)}`);
|
|
410
|
-
}
|
|
411
|
-
return limit;
|
|
412
|
-
}
|
|
413
|
-
function requireId(positional, usageText) {
|
|
414
|
-
const id = positional[0];
|
|
415
|
-
if (!id || !/^\d+$/.test(id) || positional.length > 1) {
|
|
416
|
-
throw usage(`Usage: databricks-axi ${usageText}`);
|
|
417
|
-
}
|
|
418
|
-
return id;
|
|
419
|
-
}
|
|
420
|
-
function spawnOpts(flags) {
|
|
421
|
-
const profile = flags.get("profile");
|
|
422
|
-
return typeof profile === "string" ? { profile } : {};
|
|
423
|
-
}
|
|
424
|
-
/** Suffix for suggested follow-up commands so they hit the same workspace. */
|
|
425
|
-
function profileSuffix(profile) {
|
|
426
|
-
return typeof profile === "string" ? ` --profile ${profile}` : "";
|
|
427
|
-
}
|
|
428
371
|
/** runDatabricks, with jobs-flavored suggestions folded into NOT_FOUND. */
|
|
429
372
|
async function runJobs(args, opts) {
|
|
430
373
|
try {
|
|
@@ -446,42 +389,6 @@ async function runJobs(args, opts) {
|
|
|
446
389
|
/** runJobs for endpoints whose result gets dereferenced — empty stdout
|
|
447
390
|
* (null) becomes a structured UPSTREAM_ERROR instead of a TypeError. */
|
|
448
391
|
async function runJobsObject(args, opts) {
|
|
449
|
-
|
|
450
|
-
if (parsed === null || typeof parsed !== "object") {
|
|
451
|
-
throw new AxiError(`databricks ${args.slice(0, 2).join(" ")} returned an empty response`, "UPSTREAM_ERROR", ["Retry, or check workspace availability"]);
|
|
452
|
-
}
|
|
453
|
-
return parsed;
|
|
454
|
-
}
|
|
455
|
-
/**
|
|
456
|
-
* The Go CLI prints either a bare item array (>= 0.298) or the response
|
|
457
|
-
* object ({items, ...}) depending on version — tolerate both.
|
|
458
|
-
*/
|
|
459
|
-
function asList(parsed, key) {
|
|
460
|
-
if (Array.isArray(parsed)) {
|
|
461
|
-
return parsed;
|
|
462
|
-
}
|
|
463
|
-
const obj = (parsed ?? {});
|
|
464
|
-
return obj[key] ?? [];
|
|
465
|
-
}
|
|
466
|
-
/** Apply --fields (raw top-level keys) or the default field list. */
|
|
467
|
-
function renderRows(items, flags, defaults) {
|
|
468
|
-
const spec = flags.get("fields");
|
|
469
|
-
const fields = typeof spec === "string"
|
|
470
|
-
? spec
|
|
471
|
-
.split(",")
|
|
472
|
-
.map((f) => f.trim())
|
|
473
|
-
.filter(Boolean)
|
|
474
|
-
: defaults;
|
|
475
|
-
if (typeof spec === "string" && items.length > 0) {
|
|
476
|
-
const known = new Set(items.flatMap((item) => Object.keys(item)));
|
|
477
|
-
for (const field of fields) {
|
|
478
|
-
if (!known.has(field)) {
|
|
479
|
-
throw usage(`Unknown field: ${field}`, [
|
|
480
|
-
`Available fields: ${[...known].sort().join(", ")}`,
|
|
481
|
-
]);
|
|
482
|
-
}
|
|
483
|
-
}
|
|
484
|
-
}
|
|
485
|
-
return items.map((item) => Object.fromEntries(fields.map((field) => [field, item[field] ?? ""])));
|
|
392
|
+
return assertObject(await runJobs(args, opts), `databricks ${args.slice(0, 2).join(" ")}`);
|
|
486
393
|
}
|
|
487
394
|
//# sourceMappingURL=jobs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/commands/jobs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/commands/jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAA6B,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EACL,MAAM,EACN,YAAY,EACZ,aAAa,EACb,aAAa,EACb,SAAS,GAGV,MAAM,aAAa,CAAC;AAErB,MAAM,EACJ,KAAK,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EAAE,YAAY,EACvB,UAAU,GACX,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAE1B,sEAAsE;AACtE,MAAM,SAAS,GAAG,CAAC,UAAoB,EAAE,SAAiB,EAAE,EAAE,CAC5D,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;CAkBxB,CAAC;AA+BF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,KAAK,KAAK;YACR,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvE,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B;YACE,MAAM,KAAK,CACT,GAAG,CAAC,CAAC,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC,CAAC,4BAA4B,CACvE,CAAC;IACN,CAAC;AACH,CAAC;AAED,sBAAsB;AAEtB,MAAM,UAAU,GAAG;IACjB,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,OAAO;CACP,CAAC;AAEX,KAAK,UAAU,QAAQ,CAAC,IAAc;IACpC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,CAAC,sCAAsC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACpC,GAAG,GAAG;QACN,IAAI,EAAG,GAAc,CAAC,QAAQ,EAAE,IAAI;KACrC,CAAC,CAAC,CAAC;IACJ,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE;QACxC,QAAQ;QACR,MAAM;QACN,mBAAmB;KACpB,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,2BAA2B;YACnC,IAAI,EAAE,CAAC,wDAAwD,CAAC;SACjE,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG;QACX,oCAAoC,CAAC,EAAE;QACvC,oCAAoC,CAAC,EAAE;KACxC,CAAC;IACF,MAAM,GAAG,GAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACpE,sEAAsE;IACtE,qBAAqB;IACrB,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;QACzB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,oCAAoC,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAChB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAc;IACpC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,CAAC,MAAM,aAAa,CAC9B,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,EACtB,SAAS,CAAC,KAAK,CAAC,CACjB,CAAW,CAAC;IACb,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;IACpC,MAAM,GAAG,GAAwB;QAC/B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,OAAO,EAAE,GAAG,CAAC,iBAAiB;KAC/B,CAAC;IACF,IAAI,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,EAAE,CAAC;QAC9C,GAAG,CAAC,QAAQ,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,KAAK,QAAQ,CAAC,QAAQ,CAAC,YAAY,IAAI,UAAU,GAAG,CAAC;IACjH,CAAC;IACD,GAAG,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;KACrB,CAAC,CAAC,CAAC;IACJ,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,GAAG,CAAC,IAAI,GAAG;QACT,2BAA2B,KAAK,GAAG,CAAC,EAAE;QACtC,4BAA4B,KAAK,GAAG,CAAC,EAAE;KACxC,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,eAAe,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,yCAAyC;AAE9E,SAAS,YAAY,CAAC,IAA0B;IAC9C,OAAO,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE,gBAAgB,IAAI,SAAS,CAAC;AAC/E,CAAC;AAED,wEAAwE;AACxE,SAAS,QAAQ,CAAC,IAA0B;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC;IACxC,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAc;IACnC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE;QAC5C,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACxC,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,IAAI,GAAG;QACX,GAAG,SAAS,CAAC,KAAK,CAAC;QACnB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,WAAW,EAAE;YACX,uEAAuE;YACvE,4BAA4B,KAAK,GAAG,CAAC,EAAE;SACxC;KACF,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAG9C,CAAC;IACF,MAAM,GAAG,GAAwB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC3D,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,GAAG,CAAC,IAAI,GAAG,CAAC,iCAAiC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;IAClE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAc;IACtC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;IAC5D,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE;YACxD,GAAG,SAAS,CAAC,KAAK,CAAC;YACnB,WAAW,EAAE;gBACX,gEAAgE;gBAChE,iCAAiC,KAAK,GAAG,CAAC,EAAE;aAC7C;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,gCAAgC;gBACxC,IAAI,EAAE,CAAC,iCAAiC,KAAK,GAAG,CAAC,EAAE,CAAC;aACrD,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO;QACL,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE,CAAC,iCAAiC,KAAK,GAAG,CAAC,EAAE,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,eAAe;QAC9B,oDAAoD,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CACzE,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAa;IAC7B,IAAI,IAAI,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC;QACtC,OAAO,aAAa,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAC;QACxC,OAAO,WAAW,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;IACzD,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrD,CAAC;AAED,SAAS,GAAG,CAAC,EAAsB;IACjC,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,eAAe,CAAC,IAKxB;IACC,MAAM,EAAE,GACN,IAAI,CAAC,YAAY;QACjB,IAAI,CAAC,kBAAkB;QACvB,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAc;IACpC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,IAAI,KAAyB,CAAC;IAC9B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,GAAG,SAAS,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,KAAiB,CAAC;IAC/B,MAAM,IAAI,GACR,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,QAAQ;QACrC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACf,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;YACtB,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;YAC7B,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;SAC/B,CAAC,CAAC,CAAC;IACV,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,CAAC,mCAAmC,CAAC,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,yCAAyC,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,CAAC,4BAA4B,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,GAAG,GAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACpE,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;QACzB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,OAAO,CACV,2BAA2B,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAC/E,CAAC;IACJ,CAAC;IACD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAChB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAc;IACpC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,CAAC,MAAM,aAAa,CACjC,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAC1B,SAAS,CAAC,KAAK,CAAC,CACjB,CAAW,CAAC;IACb,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK;QACL,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;QAClC,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC;QACnC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;YACzB,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;YACpB,CAAC,CAAC,CAAC,4BAA4B,KAAK,GAAG,CAAC,EAAE,CAAC;YAC3C,CAAC,CAAC,CAAC,4BAA4B,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,EAAE,CAAC;AAS1B,KAAK,UAAU,QAAQ,CAAC,IAAc;IACpC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE;QAC5C,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,EAAE,6BAA6B,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACxC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,CAAC,MAAM,aAAa,CACjC,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAC1B,IAAI,CACL,CAAW,CAAC;IACb,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC;YAC3B,MAAM,EAAE,uCAAuC;YAC/C,IAAI,EAAE,CAAC,iCAAiC,KAAK,GAAG,CAAC,EAAE,CAAC;SACrD,CAAC;IACJ,CAAC;IACD,2EAA2E;IAC3E,4CAA4C;IAC5C,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,IAAI,CAAC,QAAQ;gBACnB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;gBACzB,KAAK,EAAE,wCAAwC;aAChD,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,CAAC,MAAM,aAAa,CACjC,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAC/C,IAAI,CACL,CAAiB,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oEAAoE;YACpE,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,IAAI,CAAC,QAAQ;gBACnB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;gBACzB,KAAK,EAAE,wBAAwB,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC3F,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CACV,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CACxE,CAAC;IACF,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC;QAC3B,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,CAAC,iCAAiC,KAAK,GAAG,CAAC,EAAE,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,IAAa,EACb,MAAoB,EACpB,IAAa;IAEb,MAAM,KAAK,GAAwB;QACjC,IAAI,EAAE,IAAI,CAAC,QAAQ;QACnB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;KAC1B,CAAC;IACF,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC7B,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YACnD,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC;YAC3B,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,eAAe,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IACjE,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YACrC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;gBAChB,KAAK,CAAC,SAAS,GAAG,gBAAgB,cAAc,OAAO,CAAC,CAAC,KAAK,4BAA4B,CAAC;YAC7F,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,YAAY,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACrC,KAAK,CAAC,SAAS,GAAG,+BAA+B,cAAc,4BAA4B,CAAC;IAC9F,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,IAAI,CACX,IAAY,EACZ,QAAgB;IAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC7B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACzD,CAAC;IACD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACvC,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,KAAK,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,KAAK,UAAU,OAAO,CACpB,IAAc,EACd,IAA0B;IAE1B,IAAI,CAAC;QACH,OAAO,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IACE,KAAK,YAAY,QAAQ;YACzB,KAAK,CAAC,IAAI,KAAK,WAAW;YAC1B,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAC9B,CAAC;YACD,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE;gBAC7C,2BAA2B,CAAC,EAAE;gBAC9B,2BAA2B,CAAC,EAAE;aAC/B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;wEACwE;AACxE,KAAK,UAAU,aAAa,CAC1B,IAAc,EACd,IAA0B;IAE1B,OAAO,YAAY,CACjB,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EACzB,cAAc,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAC3C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AxiError } from "axi-sdk-js";
|
|
2
|
+
import type { RunDatabricksOptions } from "../databricks.js";
|
|
3
|
+
export type AxiStructuredOutput = Record<string, unknown>;
|
|
4
|
+
export type AxiRenderable = string | AxiStructuredOutput;
|
|
5
|
+
export type FlagSpec = Record<string, "value" | "boolean">;
|
|
6
|
+
export type Flags = Map<string, string | boolean>;
|
|
7
|
+
export declare function spawnOpts(flags: Flags): RunDatabricksOptions;
|
|
8
|
+
/** Suffix for suggested follow-up commands so they hit the same workspace. */
|
|
9
|
+
export declare function profileSuffix(profile: unknown): string;
|
|
10
|
+
/** Guard for endpoints whose result gets dereferenced — empty stdout (null)
|
|
11
|
+
* becomes a structured UPSTREAM_ERROR instead of a raw TypeError. */
|
|
12
|
+
export declare function assertObject<T>(parsed: unknown, label: string): T;
|
|
13
|
+
/**
|
|
14
|
+
* The Go CLI prints either a bare item array (>= 0.298) or the response
|
|
15
|
+
* object ({items, ...}) depending on version — tolerate both.
|
|
16
|
+
*/
|
|
17
|
+
export declare function asList(parsed: unknown, key: string): AxiStructuredOutput[];
|
|
18
|
+
/** Helpers whose usage errors point at `databricks-axi <domain> --help`. */
|
|
19
|
+
export declare function domainHelpers(domain: string): {
|
|
20
|
+
usage: (message: string, extraHelp?: string[]) => AxiError;
|
|
21
|
+
parseArgs: (args: string[], spec: FlagSpec) => {
|
|
22
|
+
positional: string[];
|
|
23
|
+
flags: Flags;
|
|
24
|
+
};
|
|
25
|
+
parseIntFlag: (flags: Flags, name: string, fallback: number, min?: number) => number;
|
|
26
|
+
requireId: (positional: string[], usageText: string, pattern?: RegExp) => string;
|
|
27
|
+
renderRows: (items: AxiStructuredOutput[], flags: Flags, defaults: string[]) => AxiStructuredOutput[];
|
|
28
|
+
};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { parseArgs as nodeParseArgs } from "node:util";
|
|
2
|
+
import { AxiError } from "axi-sdk-js";
|
|
3
|
+
export function spawnOpts(flags) {
|
|
4
|
+
const profile = flags.get("profile");
|
|
5
|
+
return typeof profile === "string" ? { profile } : {};
|
|
6
|
+
}
|
|
7
|
+
/** Suffix for suggested follow-up commands so they hit the same workspace. */
|
|
8
|
+
export function profileSuffix(profile) {
|
|
9
|
+
return typeof profile === "string" ? ` --profile ${profile}` : "";
|
|
10
|
+
}
|
|
11
|
+
/** Guard for endpoints whose result gets dereferenced — empty stdout (null)
|
|
12
|
+
* becomes a structured UPSTREAM_ERROR instead of a raw TypeError. */
|
|
13
|
+
export function assertObject(parsed, label) {
|
|
14
|
+
if (parsed === null || typeof parsed !== "object") {
|
|
15
|
+
throw new AxiError(`${label} returned an empty response`, "UPSTREAM_ERROR", ["Retry, or check workspace availability"]);
|
|
16
|
+
}
|
|
17
|
+
return parsed;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The Go CLI prints either a bare item array (>= 0.298) or the response
|
|
21
|
+
* object ({items, ...}) depending on version — tolerate both.
|
|
22
|
+
*/
|
|
23
|
+
export function asList(parsed, key) {
|
|
24
|
+
if (Array.isArray(parsed)) {
|
|
25
|
+
return parsed;
|
|
26
|
+
}
|
|
27
|
+
const obj = (parsed ?? {});
|
|
28
|
+
return obj[key] ?? [];
|
|
29
|
+
}
|
|
30
|
+
/** Helpers whose usage errors point at `databricks-axi <domain> --help`. */
|
|
31
|
+
export function domainHelpers(domain) {
|
|
32
|
+
const usage = (message, extraHelp = []) => new AxiError(message, "VALIDATION_ERROR", [
|
|
33
|
+
...extraHelp,
|
|
34
|
+
`Run \`databricks-axi ${domain} --help\``,
|
|
35
|
+
]);
|
|
36
|
+
const parseArgs = (args, spec) => {
|
|
37
|
+
const options = Object.fromEntries(Object.entries(spec).map(([name, kind]) => [
|
|
38
|
+
name,
|
|
39
|
+
{ type: kind === "value" ? "string" : "boolean" },
|
|
40
|
+
]));
|
|
41
|
+
try {
|
|
42
|
+
const { values, positionals } = nodeParseArgs({
|
|
43
|
+
args,
|
|
44
|
+
options,
|
|
45
|
+
strict: true,
|
|
46
|
+
allowPositionals: true,
|
|
47
|
+
});
|
|
48
|
+
return {
|
|
49
|
+
positional: positionals,
|
|
50
|
+
flags: new Map(Object.entries(values)),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
const valid = Object.keys(spec)
|
|
55
|
+
.map((f) => `--${f}`)
|
|
56
|
+
.join(", ");
|
|
57
|
+
// First sentence only — node appends a long "--" placement hint,
|
|
58
|
+
// sometimes as extra lines (e.g. the ambiguous-option error).
|
|
59
|
+
const message = error.message.split("\n")[0].split(". ")[0];
|
|
60
|
+
throw usage(message, [`Valid flags: ${valid}`]);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const parseIntFlag = (flags, name, fallback, min = 1) => {
|
|
64
|
+
const raw = flags.get(name);
|
|
65
|
+
if (raw === undefined) {
|
|
66
|
+
return fallback;
|
|
67
|
+
}
|
|
68
|
+
const value = Number(raw);
|
|
69
|
+
if (!Number.isInteger(value) || value < min) {
|
|
70
|
+
const kind = min === 0 ? "non-negative" : "positive";
|
|
71
|
+
throw usage(`--${name} must be a ${kind} integer, got: ${String(raw)}`);
|
|
72
|
+
}
|
|
73
|
+
return value;
|
|
74
|
+
};
|
|
75
|
+
const requireId = (positional, usageText, pattern) => {
|
|
76
|
+
const id = positional[0];
|
|
77
|
+
if (!id || positional.length > 1 || (pattern && !pattern.test(id))) {
|
|
78
|
+
throw usage(`Usage: databricks-axi ${usageText}`);
|
|
79
|
+
}
|
|
80
|
+
return id;
|
|
81
|
+
};
|
|
82
|
+
/** Apply --fields (raw top-level keys) or the default field list. */
|
|
83
|
+
const renderRows = (items, flags, defaults) => {
|
|
84
|
+
const spec = flags.get("fields");
|
|
85
|
+
const fields = typeof spec === "string"
|
|
86
|
+
? spec
|
|
87
|
+
.split(",")
|
|
88
|
+
.map((f) => f.trim())
|
|
89
|
+
.filter(Boolean)
|
|
90
|
+
: defaults;
|
|
91
|
+
if (typeof spec === "string" && items.length > 0) {
|
|
92
|
+
const known = new Set(items.flatMap((item) => Object.keys(item)));
|
|
93
|
+
for (const field of fields) {
|
|
94
|
+
if (!known.has(field)) {
|
|
95
|
+
throw usage(`Unknown field: ${field}`, [
|
|
96
|
+
`Available fields: ${[...known].sort().join(", ")}`,
|
|
97
|
+
]);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return items.map((item) => Object.fromEntries(fields.map((field) => [field, item[field] ?? ""])));
|
|
102
|
+
};
|
|
103
|
+
return { usage, parseArgs, parseIntFlag, requireId, renderRows };
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/commands/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAWtC,MAAM,UAAU,SAAS,CAAC,KAAY;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACrC,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACxD,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACpE,CAAC;AAED;qEACqE;AACrE,MAAM,UAAU,YAAY,CAAI,MAAe,EAAE,KAAa;IAC5D,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,QAAQ,CAChB,GAAG,KAAK,6BAA6B,EACrC,gBAAgB,EAChB,CAAC,wCAAwC,CAAC,CAC3C,CAAC;IACJ,CAAC;IACD,OAAO,MAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,MAAe,EAAE,GAAW;IACjD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,MAA+B,CAAC;IACzC,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAwB,CAAC;IAClD,OAAQ,GAAG,CAAC,GAAG,CAAuC,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,YAAsB,EAAE,EAAY,EAAE,CACpE,IAAI,QAAQ,CAAC,OAAO,EAAE,kBAAkB,EAAE;QACxC,GAAG,SAAS;QACZ,wBAAwB,MAAM,WAAW;KAC1C,CAAC,CAAC;IAEL,MAAM,SAAS,GAAG,CAChB,IAAc,EACd,IAAc,EAC0B,EAAE;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;YACzC,IAAI;YACJ,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAE,QAAkB,CAAC,CAAC,CAAE,SAAmB,EAAE;SACxE,CAAC,CACH,CAAC;QACF,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC;gBAC5C,IAAI;gBACJ,OAAO;gBACP,MAAM,EAAE,IAAI;gBACZ,gBAAgB,EAAE,IAAI;aACvB,CAAC,CAAC;YACH,OAAO;gBACL,UAAU,EAAE,WAAW;gBACvB,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAiC,CAAC;aACvE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;iBAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;iBACpB,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,iEAAiE;YACjE,8DAA8D;YAC9D,MAAM,OAAO,GAAI,KAAe,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CACnB,KAAY,EACZ,IAAY,EACZ,QAAgB,EAChB,GAAG,GAAG,CAAC,EACC,EAAE;QACV,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;YACrD,MAAM,KAAK,CAAC,KAAK,IAAI,cAAc,IAAI,kBAAkB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAChB,UAAoB,EACpB,SAAiB,EACjB,OAAgB,EACR,EAAE;QACV,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACnE,MAAM,KAAK,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,qEAAqE;IACrE,MAAM,UAAU,GAAG,CACjB,KAA4B,EAC5B,KAAY,EACZ,QAAkB,EACK,EAAE;QACzB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,MAAM,GACV,OAAO,IAAI,KAAK,QAAQ;YACtB,CAAC,CAAC,IAAI;iBACD,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC;YACpB,CAAC,CAAC,QAAQ,CAAC;QACf,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtB,MAAM,KAAK,CAAC,kBAAkB,KAAK,EAAE,EAAE;wBACrC,qBAAqB,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBACpD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CACtE,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type AxiRenderable } from "./shared.js";
|
|
2
|
+
export declare const SQL_HELP = "usage: databricks-axi sql <subcommand> [args] [flags]\nsubcommands[6]:\n warehouses [--fields a,b]\n warehouses view <id>\n warehouses start <id> [--wait]\n warehouses stop <id> [--wait]\n exec \"<query>\" [--warehouse <id>] [--limit N] [--timeout S] [--full]\n statement view <statement_id>\nflags:\n --profile <name> databricks auth profile passthrough\nexamples:\n databricks-axi sql warehouses\n databricks-axi sql exec \"SELECT count(*) FROM workspace.default.my_table\"\n databricks-axi sql statement view <statement_id>\nnotes:\n exec picks the warehouse automatically when the workspace has exactly one\n exec waits up to --timeout seconds (default 120), then exits 0 with the\n statement id \u2014 resume with sql statement view\n warehouse start/stop are async by default; --wait blocks up to ~20 min\n never put secret values in the query text: it lands on child argv\n (visible in ps) via the api substrate\n";
|
|
3
|
+
export declare const sqlPoll: {
|
|
4
|
+
sleep: (ms: number) => Promise<void>;
|
|
5
|
+
};
|
|
6
|
+
export declare function sqlCommand(args: string[]): Promise<AxiRenderable>;
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import { AxiError } from "axi-sdk-js";
|
|
2
|
+
import { runDatabricks, runDatabricksApi, } from "../databricks.js";
|
|
3
|
+
import { redactSecrets } from "../errors.js";
|
|
4
|
+
import { asList, assertObject, domainHelpers, profileSuffix, spawnOpts, } from "./shared.js";
|
|
5
|
+
const { usage, parseArgs, parseIntFlag, requireId, renderRows } = domainHelpers("sql");
|
|
6
|
+
export const SQL_HELP = `usage: databricks-axi sql <subcommand> [args] [flags]
|
|
7
|
+
subcommands[6]:
|
|
8
|
+
warehouses [--fields a,b]
|
|
9
|
+
warehouses view <id>
|
|
10
|
+
warehouses start <id> [--wait]
|
|
11
|
+
warehouses stop <id> [--wait]
|
|
12
|
+
exec "<query>" [--warehouse <id>] [--limit N] [--timeout S] [--full]
|
|
13
|
+
statement view <statement_id>
|
|
14
|
+
flags:
|
|
15
|
+
--profile <name> databricks auth profile passthrough
|
|
16
|
+
examples:
|
|
17
|
+
databricks-axi sql warehouses
|
|
18
|
+
databricks-axi sql exec "SELECT count(*) FROM workspace.default.my_table"
|
|
19
|
+
databricks-axi sql statement view <statement_id>
|
|
20
|
+
notes:
|
|
21
|
+
exec picks the warehouse automatically when the workspace has exactly one
|
|
22
|
+
exec waits up to --timeout seconds (default 120), then exits 0 with the
|
|
23
|
+
statement id — resume with sql statement view
|
|
24
|
+
warehouse start/stop are async by default; --wait blocks up to ~20 min
|
|
25
|
+
never put secret values in the query text: it lands on child argv
|
|
26
|
+
(visible in ps) via the api substrate
|
|
27
|
+
`;
|
|
28
|
+
// Injectable so poll tests run at full speed.
|
|
29
|
+
export const sqlPoll = {
|
|
30
|
+
sleep: (ms) => new Promise((r) => setTimeout(r, ms)),
|
|
31
|
+
};
|
|
32
|
+
const STATEMENTS_PATH = "/api/2.0/sql/statements";
|
|
33
|
+
const SUBMIT_TIMEOUT_MS = 60_000; // must exceed the API-side 50s wait_timeout
|
|
34
|
+
const WAIT_TIMEOUT_MS = 25 * 60_000; // upstream blocks up to 20 min on --wait
|
|
35
|
+
const POLL_INTERVAL_MS = 2_000;
|
|
36
|
+
const DEFAULT_ROW_LIMIT = 100;
|
|
37
|
+
const DEFAULT_BUDGET_S = 120;
|
|
38
|
+
export async function sqlCommand(args) {
|
|
39
|
+
const [sub, ...rest] = args;
|
|
40
|
+
switch (sub) {
|
|
41
|
+
case "warehouses":
|
|
42
|
+
switch (rest[0]) {
|
|
43
|
+
case "view":
|
|
44
|
+
return warehousesView(rest.slice(1));
|
|
45
|
+
case "start":
|
|
46
|
+
case "stop":
|
|
47
|
+
return warehousesStartStop(rest[0], rest.slice(1));
|
|
48
|
+
default:
|
|
49
|
+
return warehousesList(rest);
|
|
50
|
+
}
|
|
51
|
+
case "exec":
|
|
52
|
+
return sqlExec(rest);
|
|
53
|
+
case "statement":
|
|
54
|
+
if (rest[0] !== "view") {
|
|
55
|
+
throw usage("Usage: databricks-axi sql statement view <statement_id>");
|
|
56
|
+
}
|
|
57
|
+
return statementView(rest.slice(1));
|
|
58
|
+
default:
|
|
59
|
+
throw usage(sub ? `Unknown sql subcommand: ${sub}` : "sql requires a subcommand");
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// --- warehouses ---
|
|
63
|
+
function warehouseSize(w) {
|
|
64
|
+
const size = w.cluster_size ?? "";
|
|
65
|
+
return w.enable_serverless_compute ? `${size} (serverless)`.trim() : size;
|
|
66
|
+
}
|
|
67
|
+
async function listWarehouses(opts) {
|
|
68
|
+
const parsed = await runDatabricks(["warehouses", "list"], opts);
|
|
69
|
+
return asList(parsed, "warehouses");
|
|
70
|
+
}
|
|
71
|
+
async function warehousesList(args) {
|
|
72
|
+
const { positional, flags } = parseArgs(args, {
|
|
73
|
+
profile: "value",
|
|
74
|
+
fields: "value",
|
|
75
|
+
});
|
|
76
|
+
if (positional.length > 0) {
|
|
77
|
+
throw usage(`sql warehouses takes no arguments, got: ${positional[0]}`);
|
|
78
|
+
}
|
|
79
|
+
const items = await listWarehouses(spawnOpts(flags));
|
|
80
|
+
const p = profileSuffix(flags.get("profile"));
|
|
81
|
+
if (items.length === 0) {
|
|
82
|
+
return {
|
|
83
|
+
warehouses: [],
|
|
84
|
+
status: "no SQL warehouses in this workspace",
|
|
85
|
+
help: ["Create one in the workspace UI: SQL Warehouses > Create"],
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
const flattened = items.map((w) => ({ ...w, size: warehouseSize(w) }));
|
|
89
|
+
const rows = renderRows(flattened, flags, ["id", "name", "state", "size"]);
|
|
90
|
+
const help = [`databricks-axi sql exec "<query>" --warehouse <id>${p}`];
|
|
91
|
+
const stopped = items.find((w) => w.state === "STOPPED");
|
|
92
|
+
if (stopped) {
|
|
93
|
+
help.push(`databricks-axi sql warehouses start ${stopped.id}${p}`);
|
|
94
|
+
}
|
|
95
|
+
return { warehouses: rows, count: rows.length, help };
|
|
96
|
+
}
|
|
97
|
+
async function warehousesView(args) {
|
|
98
|
+
const { positional, flags } = parseArgs(args, { profile: "value" });
|
|
99
|
+
const id = requireId(positional, "sql warehouses view <id>");
|
|
100
|
+
const w = assertObject(await runDatabricks(["warehouses", "get", id], spawnOpts(flags)), "warehouses get");
|
|
101
|
+
const p = profileSuffix(flags.get("profile"));
|
|
102
|
+
return {
|
|
103
|
+
id: w.id,
|
|
104
|
+
name: w.name,
|
|
105
|
+
state: w.state,
|
|
106
|
+
size: warehouseSize(w),
|
|
107
|
+
auto_stop_mins: w.auto_stop_mins,
|
|
108
|
+
creator_name: w.creator_name,
|
|
109
|
+
help: [
|
|
110
|
+
w.state === "RUNNING"
|
|
111
|
+
? `databricks-axi sql warehouses stop ${id}${p}`
|
|
112
|
+
: `databricks-axi sql warehouses start ${id}${p}`,
|
|
113
|
+
`databricks-axi sql exec "<query>" --warehouse ${id}${p}`,
|
|
114
|
+
],
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
async function warehousesStartStop(verb, args) {
|
|
118
|
+
const { positional, flags } = parseArgs(args, {
|
|
119
|
+
profile: "value",
|
|
120
|
+
wait: "boolean",
|
|
121
|
+
});
|
|
122
|
+
const id = requireId(positional, `sql warehouses ${verb} <id> [--wait]`);
|
|
123
|
+
const wait = flags.get("wait") === true;
|
|
124
|
+
const p = profileSuffix(flags.get("profile"));
|
|
125
|
+
const argv = ["warehouses", verb, id];
|
|
126
|
+
if (!wait) {
|
|
127
|
+
argv.push("--no-wait");
|
|
128
|
+
}
|
|
129
|
+
// Upstream is already idempotent here: start-on-RUNNING / stop-on-STOPPED
|
|
130
|
+
// exit 0 with no output (pinned live 2026-07-07), so no no-op mapping.
|
|
131
|
+
await runDatabricks(argv, {
|
|
132
|
+
...spawnOpts(flags),
|
|
133
|
+
...(wait ? { timeoutMs: WAIT_TIMEOUT_MS } : {}),
|
|
134
|
+
timeoutHelp: [
|
|
135
|
+
`The ${verb} may have applied despite the timeout — check state:`,
|
|
136
|
+
`databricks-axi sql warehouses view ${id}${p}`,
|
|
137
|
+
],
|
|
138
|
+
});
|
|
139
|
+
return {
|
|
140
|
+
id,
|
|
141
|
+
status: `${verb} requested`,
|
|
142
|
+
help: [`databricks-axi sql warehouses view ${id}${p}`],
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
// --- exec / statement view ---
|
|
146
|
+
async function sqlExec(args) {
|
|
147
|
+
const { positional, flags } = parseArgs(args, {
|
|
148
|
+
profile: "value",
|
|
149
|
+
warehouse: "value",
|
|
150
|
+
limit: "value",
|
|
151
|
+
timeout: "value",
|
|
152
|
+
full: "boolean",
|
|
153
|
+
});
|
|
154
|
+
const query = positional[0];
|
|
155
|
+
if (!query || positional.length > 1) {
|
|
156
|
+
throw usage('Usage: databricks-axi sql exec "<query>" [--warehouse <id>]');
|
|
157
|
+
}
|
|
158
|
+
const limit = parseIntFlag(flags, "limit", DEFAULT_ROW_LIMIT);
|
|
159
|
+
const budgetS = parseIntFlag(flags, "timeout", DEFAULT_BUDGET_S, 0);
|
|
160
|
+
const full = flags.get("full") === true;
|
|
161
|
+
const opts = spawnOpts(flags);
|
|
162
|
+
const p = profileSuffix(flags.get("profile"));
|
|
163
|
+
const warehouseId = await resolveWarehouse(flags.get("warehouse"), opts);
|
|
164
|
+
const deadline = Date.now() + budgetS * 1000;
|
|
165
|
+
const waitTimeoutS = Math.max(5, Math.min(budgetS, 50));
|
|
166
|
+
let stmt = assertObject(await runDatabricksApi("post", STATEMENTS_PATH, JSON.stringify({
|
|
167
|
+
statement: query,
|
|
168
|
+
warehouse_id: warehouseId,
|
|
169
|
+
wait_timeout: `${waitTimeoutS}s`,
|
|
170
|
+
on_wait_timeout: "CONTINUE",
|
|
171
|
+
disposition: "INLINE",
|
|
172
|
+
format: "JSON_ARRAY",
|
|
173
|
+
row_limit: limit,
|
|
174
|
+
}), { ...opts, timeoutMs: SUBMIT_TIMEOUT_MS }), "sql statement submit");
|
|
175
|
+
while (isPendingState(stmt)) {
|
|
176
|
+
if (Date.now() >= deadline) {
|
|
177
|
+
return {
|
|
178
|
+
statement_id: stmt.statement_id,
|
|
179
|
+
state: stmt.status?.state,
|
|
180
|
+
status: `still running — stopped waiting after ${budgetS}s (statement continues server-side)`,
|
|
181
|
+
help: [`databricks-axi sql statement view ${stmt.statement_id}${p}`],
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
await sqlPoll.sleep(POLL_INTERVAL_MS);
|
|
185
|
+
stmt = assertObject(await runDatabricksApi("get", `${STATEMENTS_PATH}/${stmt.statement_id}`, undefined, opts), "sql statement poll");
|
|
186
|
+
}
|
|
187
|
+
return renderTerminalStatement(stmt, { full, limit, opts, p });
|
|
188
|
+
}
|
|
189
|
+
async function statementView(args) {
|
|
190
|
+
const { positional, flags } = parseArgs(args, {
|
|
191
|
+
profile: "value",
|
|
192
|
+
full: "boolean",
|
|
193
|
+
});
|
|
194
|
+
const id = requireId(positional, "sql statement view <statement_id>");
|
|
195
|
+
const opts = spawnOpts(flags);
|
|
196
|
+
const p = profileSuffix(flags.get("profile"));
|
|
197
|
+
const stmt = assertObject(await runDatabricksApi("get", `${STATEMENTS_PATH}/${id}`, undefined, opts), "sql statement get");
|
|
198
|
+
if (isPendingState(stmt)) {
|
|
199
|
+
return {
|
|
200
|
+
statement_id: stmt.statement_id ?? id,
|
|
201
|
+
state: stmt.status?.state,
|
|
202
|
+
help: [`databricks-axi sql statement view ${id}${p}`],
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
return renderTerminalStatement(stmt, {
|
|
206
|
+
full: flags.get("full") === true,
|
|
207
|
+
opts,
|
|
208
|
+
p,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
function isPendingState(stmt) {
|
|
212
|
+
const state = stmt.status?.state;
|
|
213
|
+
return state === "PENDING" || state === "RUNNING";
|
|
214
|
+
}
|
|
215
|
+
async function resolveWarehouse(flagValue, opts) {
|
|
216
|
+
if (typeof flagValue === "string") {
|
|
217
|
+
return flagValue;
|
|
218
|
+
}
|
|
219
|
+
const warehouses = await listWarehouses(opts);
|
|
220
|
+
if (warehouses.length === 1 && warehouses[0].id) {
|
|
221
|
+
return warehouses[0].id;
|
|
222
|
+
}
|
|
223
|
+
if (warehouses.length === 0) {
|
|
224
|
+
throw new AxiError("no SQL warehouses in this workspace", "NOT_FOUND", [
|
|
225
|
+
"Create one in the workspace UI: SQL Warehouses > Create",
|
|
226
|
+
]);
|
|
227
|
+
}
|
|
228
|
+
throw usage("multiple SQL warehouses — pick one with --warehouse <id>", warehouses.map((w) => `${w.id}: ${w.name}`));
|
|
229
|
+
}
|
|
230
|
+
async function renderTerminalStatement(stmt, ctx) {
|
|
231
|
+
const state = stmt.status?.state ?? "UNKNOWN";
|
|
232
|
+
const id = stmt.statement_id;
|
|
233
|
+
if (state !== "SUCCEEDED") {
|
|
234
|
+
const detail = stmt.status?.error?.message ?? `statement ${state}`;
|
|
235
|
+
throw new AxiError(redactSecrets(detail), "SQL_ERROR", id ? [`databricks-axi sql statement view ${id}${ctx.p}`] : []);
|
|
236
|
+
}
|
|
237
|
+
const manifest = stmt.manifest ?? {};
|
|
238
|
+
const columns = (manifest.schema?.columns ?? []).map((c) => `${c.name}:${c.type_text}`);
|
|
239
|
+
let rows = stmt.result?.data_array ?? [];
|
|
240
|
+
const totalChunks = manifest.total_chunk_count ?? 1;
|
|
241
|
+
const totalRows = manifest.total_row_count ?? rows.length;
|
|
242
|
+
if (ctx.full && totalChunks > 1 && id) {
|
|
243
|
+
for (let chunk = 1; chunk < totalChunks; chunk++) {
|
|
244
|
+
const next = assertObject(await runDatabricksApi("get", `${STATEMENTS_PATH}/${id}/result/chunks/${chunk}`, undefined, ctx.opts), "sql statement chunk fetch");
|
|
245
|
+
rows = rows.concat(next.data_array ?? []);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
const out = {
|
|
249
|
+
statement_id: id,
|
|
250
|
+
columns,
|
|
251
|
+
rows,
|
|
252
|
+
total_row_count: totalRows,
|
|
253
|
+
};
|
|
254
|
+
const notes = [];
|
|
255
|
+
if (!ctx.full && totalChunks > 1) {
|
|
256
|
+
notes.push(`showing ${rows.length} of ${totalRows} rows — rerun with --full`);
|
|
257
|
+
}
|
|
258
|
+
if (manifest.truncated) {
|
|
259
|
+
// Server-side row_limit hit: --full can never exceed the submitted cap,
|
|
260
|
+
// so report what was actually delivered, not the true upstream total.
|
|
261
|
+
notes.push(`result capped at ${rows.length} rows — rerun with --limit ${(ctx.limit ?? rows.length) * 2}`);
|
|
262
|
+
}
|
|
263
|
+
if (notes.length > 0) {
|
|
264
|
+
out.truncated = notes.join("; ");
|
|
265
|
+
}
|
|
266
|
+
return out;
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=sql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../../../src/commands/sql.ts"],"names":[],"mappings":"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"}
|
package/dist/src/databricks.d.ts
CHANGED
|
@@ -10,3 +10,9 @@ export type RunDatabricksOptions = {
|
|
|
10
10
|
* `-o json`. All failures surface as AxiError.
|
|
11
11
|
*/
|
|
12
12
|
export declare function runDatabricks(args: string[], opts?: RunDatabricksOptions): Promise<unknown>;
|
|
13
|
+
/**
|
|
14
|
+
* REST passthrough over the CLI's `api` subcommand. Rule for all callers:
|
|
15
|
+
* `body` lands on child argv (visible in `ps`) — secret-bearing bodies are
|
|
16
|
+
* forbidden (the secrets domain uses upstream's stdin mechanism instead).
|
|
17
|
+
*/
|
|
18
|
+
export declare function runDatabricksApi(method: string, path: string, body?: string, opts?: RunDatabricksOptions): Promise<unknown>;
|
package/dist/src/databricks.js
CHANGED
|
@@ -42,6 +42,14 @@ export async function runDatabricks(args, opts = {}) {
|
|
|
42
42
|
throw new AxiError(`databricks returned invalid JSON: ${redactSecrets(trimmed).slice(0, 120)}`, "UPSTREAM_ERROR");
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* REST passthrough over the CLI's `api` subcommand. Rule for all callers:
|
|
47
|
+
* `body` lands on child argv (visible in `ps`) — secret-bearing bodies are
|
|
48
|
+
* forbidden (the secrets domain uses upstream's stdin mechanism instead).
|
|
49
|
+
*/
|
|
50
|
+
export async function runDatabricksApi(method, path, body, opts = {}) {
|
|
51
|
+
return runDatabricks(["api", method, path, ...(body !== undefined ? ["--json", body] : [])], opts);
|
|
52
|
+
}
|
|
45
53
|
function spawnCollect(argv, timeoutMs) {
|
|
46
54
|
return new Promise((resolve) => {
|
|
47
55
|
const child = spawn("databricks", argv, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"databricks.js","sourceRoot":"","sources":["../../src/databricks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,iBAAiB,GAAG,GAAG,CAAC,CAAC,kEAAkE;AACjG,MAAM,YAAY,GAChB,+DAA+D,CAAC;AAiBlE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAc,EACd,OAA6B,EAAE;IAE/B,MAAM,IAAI,GAAG;QACX,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,IAAI;QACP,IAAI;QACJ,MAAM;KACP,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,QAAQ,CAAC,kCAAkC,EAAE,aAAa,EAAE;YACpE,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,IAAI,QAAQ,CAChB,cAAc,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,oBAAoB,SAAS,IAAI,EAC5D,SAAS,EACT,IAAI,CAAC,WAAW,IAAI,CAAC,wCAAwC,CAAC,CAC/D,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,uEAAuE;QACvE,mEAAmE;QACnE,OAAO,IAAI,CAAC,KAAK,CACf,OAAO,CAAC,OAAO,CAAC,wCAAwC,EAAE,WAAW,CAAC,CAC5D,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,QAAQ,CAChB,qCAAqC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAC3E,gBAAgB,CACjB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAc,EAAE,SAAiB;IACrD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE;YACtC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,QAAQ,GAAG,IAAI,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC;QAC9D,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC;QAC9D,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAA4B,EAAE,EAAE;YACjD,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC;gBACN,IAAI,EAAE,IAAI;gBACV,MAAM;gBACN,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,OAAO;gBAC/B,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAC/B,QAAQ;aACT,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,uEAAuE;AACvE,qEAAqE;AACrE,KAAK,UAAU,eAAe,CAAC,MAAc;IAC3C,IACE,4DAA4D,CAAC,IAAI,CAAC,MAAM,CAAC,EACzE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;QACtC,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,iBAAiB,EAAE,CAAC;YACxE,OAAO,IAAI,QAAQ,CACjB,kBAAkB,OAAO,CAAC,GAAG,6BAA6B,EAC1D,aAAa,EACb,CAAC,4DAA4D,CAAC,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,aAAa;IAK1B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACjD,2CAA2C;IAC3C,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7E,CAAC"}
|
|
1
|
+
{"version":3,"file":"databricks.js","sourceRoot":"","sources":["../../src/databricks.ts"],"names":[],"mappings":"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"}
|
package/dist/src/skill.js
CHANGED
|
@@ -3,19 +3,24 @@ import { DESCRIPTION, TOP_HELP } from "./cli.js";
|
|
|
3
3
|
// Scoped to the implemented surface only (AXI: no advertised capabilities
|
|
4
4
|
// that don't exist yet) - extend as command domains land.
|
|
5
5
|
export const SKILL_DESCRIPTION = "Agent-ergonomic wrapper around the Databricks CLI. Implemented: jobs " +
|
|
6
|
-
"(list, view, run, runs, logs, cancel)
|
|
7
|
-
"
|
|
6
|
+
"(list, view, run, runs, logs, cancel), sql (warehouses, exec, " +
|
|
7
|
+
"statement view), api (raw REST passthrough). Other domains (clusters, " +
|
|
8
|
+
"catalog, workspace, fs, pipelines, serving, setup) land " +
|
|
8
9
|
"incrementally - run `databricks-axi --help` for the current surface.";
|
|
9
10
|
export const SKILL_AUTHOR = "Vignesh Perumal (p33ves)";
|
|
10
11
|
// Extended frontmatter read by Nous Research's Hermes Agent harness.
|
|
11
12
|
// Harnesses that don't know these fields (e.g. Claude Code) ignore them.
|
|
12
13
|
// Scoped like SKILL_DESCRIPTION: topical only, no unimplemented domains —
|
|
13
|
-
//
|
|
14
|
-
export const HERMES_TAGS = [
|
|
14
|
+
// extend tags as more domains land.
|
|
15
|
+
export const HERMES_TAGS = [
|
|
16
|
+
"databricks",
|
|
17
|
+
"spark",
|
|
18
|
+
"jobs",
|
|
19
|
+
"sql",
|
|
20
|
+
"warehouse",
|
|
21
|
+
"query",
|
|
22
|
+
];
|
|
15
23
|
export const HERMES_CATEGORY = "data";
|
|
16
|
-
function yamlDoubleQuote(value) {
|
|
17
|
-
return JSON.stringify(value);
|
|
18
|
-
}
|
|
19
24
|
/**
|
|
20
25
|
* Extract the `commands[N]:` block from the top-level help so the skill's
|
|
21
26
|
* command list can never drift from what `databricks-axi --help` prints.
|
|
@@ -35,7 +40,7 @@ export function extractCommandsBlock() {
|
|
|
35
40
|
export function createSkillMarkdown() {
|
|
36
41
|
return `---
|
|
37
42
|
name: databricks-axi
|
|
38
|
-
description: ${
|
|
43
|
+
description: ${JSON.stringify(SKILL_DESCRIPTION)}
|
|
39
44
|
user-invocable: false
|
|
40
45
|
author: ${SKILL_AUTHOR}
|
|
41
46
|
metadata:
|
|
@@ -48,14 +53,17 @@ metadata:
|
|
|
48
53
|
|
|
49
54
|
${DESCRIPTION}
|
|
50
55
|
|
|
51
|
-
|
|
52
|
-
|
|
56
|
+
If \`databricks-axi\` already resolves on PATH, invoke it directly - a local
|
|
57
|
+
install may be newer than what's published to npm. Only fall back to
|
|
58
|
+
\`npx -y databricks-axi <command>\` if it does not resolve. Follow-up commands
|
|
59
|
+
in a response's output are written as bare \`databricks-axi ...\` - invoke
|
|
60
|
+
those the same way you invoked the command that produced them.
|
|
53
61
|
|
|
54
62
|
databricks-axi requires the official [\`databricks\` CLI](https://docs.databricks.com/dev-tools/cli/) (version 0.298 or newer) installed and authenticated. If a command fails with an authentication error, ask the user to run \`databricks auth login --host <workspace-url>\` themselves.
|
|
55
63
|
|
|
56
64
|
## Status
|
|
57
65
|
|
|
58
|
-
Pre-release scaffold: command domains are landing incrementally. Run \`
|
|
66
|
+
Pre-release scaffold: command domains are landing incrementally. Run \`databricks-axi --help\` (per the invocation note above) for the currently available commands.
|
|
59
67
|
|
|
60
68
|
## Commands
|
|
61
69
|
|
|
@@ -63,7 +71,7 @@ Pre-release scaffold: command domains are landing incrementally. Run \`npx -y da
|
|
|
63
71
|
${extractCommandsBlock()}
|
|
64
72
|
\`\`\`
|
|
65
73
|
|
|
66
|
-
Run \`
|
|
74
|
+
Run \`databricks-axi --help\` for global flags, or \`databricks-axi <command> --help\` for per-command usage (per the invocation note above).
|
|
67
75
|
|
|
68
76
|
## Tips
|
|
69
77
|
|
package/dist/src/skill.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEjD,uEAAuE;AACvE,0EAA0E;AAC1E,0DAA0D;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAC5B,uEAAuE;IACvE,
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEjD,uEAAuE;AACvE,0EAA0E;AAC1E,0DAA0D;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAC5B,uEAAuE;IACvE,gEAAgE;IAChE,wEAAwE;IACxE,0DAA0D;IAC1D,sEAAsE,CAAC;AAEzE,MAAM,CAAC,MAAM,YAAY,GAAG,0BAA0B,CAAC;AAEvD,qEAAqE;AACrE,yEAAyE;AACzE,0EAA0E;AAC1E,oCAAoC;AACpC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY;IACZ,OAAO;IACP,MAAM;IACN,KAAK;IACL,WAAW;IACX,OAAO;CACR,CAAC;AACF,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;;eAEM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;;UAEtC,YAAY;;;aAGT,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnB,eAAe;;;;;EAK7B,WAAW;;;;;;;;;;;;;;;;;EAiBX,oBAAoB,EAAE;;;;;;;;CAQvB,CAAC;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "databricks-axi",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"packageManager": "pnpm@11.1.1",
|
|
5
5
|
"description": "AXI-compliant Databricks CLI wrapper — token-efficient TOON output, contextual suggestions, idempotent mutations",
|
|
6
6
|
"type": "module",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"globals": "^17.4.0",
|
|
55
55
|
"prettier": "^3.8.1",
|
|
56
56
|
"tsx": "^4.0.0",
|
|
57
|
-
"typescript": "^
|
|
57
|
+
"typescript": "^6.0.3",
|
|
58
58
|
"typescript-eslint": "^8.58.0",
|
|
59
59
|
"vitest": "^3.0.0"
|
|
60
60
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: databricks-axi
|
|
3
|
-
description: "Agent-ergonomic wrapper around the Databricks CLI. Implemented: jobs (list, view, run, runs, logs, cancel). Other domains (clusters,
|
|
3
|
+
description: "Agent-ergonomic wrapper around the Databricks CLI. Implemented: jobs (list, view, run, runs, logs, cancel), sql (warehouses, exec, statement view), api (raw REST passthrough). Other domains (clusters, catalog, workspace, fs, pipelines, serving, setup) land incrementally - run `databricks-axi --help` for the current surface."
|
|
4
4
|
user-invocable: false
|
|
5
5
|
author: Vignesh Perumal (p33ves)
|
|
6
6
|
metadata:
|
|
7
7
|
hermes:
|
|
8
|
-
tags: [databricks, spark, jobs]
|
|
8
|
+
tags: [databricks, spark, jobs, sql, warehouse, query]
|
|
9
9
|
category: data
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -13,19 +13,22 @@ metadata:
|
|
|
13
13
|
|
|
14
14
|
Agent ergonomic wrapper around the Databricks CLI. Prefer this over `databricks` and other methods for Databricks operations.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
If `databricks-axi` already resolves on PATH, invoke it directly - a local
|
|
17
|
+
install may be newer than what's published to npm. Only fall back to
|
|
18
|
+
`npx -y databricks-axi <command>` if it does not resolve. Follow-up commands
|
|
19
|
+
in a response's output are written as bare `databricks-axi ...` - invoke
|
|
20
|
+
those the same way you invoked the command that produced them.
|
|
18
21
|
|
|
19
22
|
databricks-axi requires the official [`databricks` CLI](https://docs.databricks.com/dev-tools/cli/) (version 0.298 or newer) installed and authenticated. If a command fails with an authentication error, ask the user to run `databricks auth login --host <workspace-url>` themselves.
|
|
20
23
|
|
|
21
24
|
## Status
|
|
22
25
|
|
|
23
|
-
Pre-release scaffold: command domains are landing incrementally. Run `
|
|
26
|
+
Pre-release scaffold: command domains are landing incrementally. Run `databricks-axi --help` (per the invocation note above) for the currently available commands.
|
|
24
27
|
|
|
25
28
|
## Commands
|
|
26
29
|
|
|
27
30
|
```
|
|
28
|
-
commands[
|
|
31
|
+
commands[13]:
|
|
29
32
|
(none)=home
|
|
30
33
|
jobs list [--limit N] [--fields a,b]
|
|
31
34
|
jobs view <job_id>
|
|
@@ -34,9 +37,14 @@ commands[8]:
|
|
|
34
37
|
jobs runs view <run_id>
|
|
35
38
|
jobs logs <run_id> [--full]
|
|
36
39
|
jobs cancel <run_id>
|
|
40
|
+
sql warehouses [--fields a,b]
|
|
41
|
+
sql warehouses view|start|stop <id>
|
|
42
|
+
sql exec "<query>" [--warehouse <id>] [--limit N] [--timeout S] [--full]
|
|
43
|
+
sql statement view <statement_id>
|
|
44
|
+
api <method> <path> [--body <json>]
|
|
37
45
|
```
|
|
38
46
|
|
|
39
|
-
Run `
|
|
47
|
+
Run `databricks-axi --help` for global flags, or `databricks-axi <command> --help` for per-command usage (per the invocation note above).
|
|
40
48
|
|
|
41
49
|
## Tips
|
|
42
50
|
|