databricks-axi 0.3.0 → 0.4.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 +34 -4
- package/dist/src/cli.d.ts +3 -1
- package/dist/src/cli.js +8 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/catalog.d.ts +3 -0
- package/dist/src/commands/catalog.js +175 -0
- package/dist/src/commands/catalog.js.map +1 -0
- package/dist/src/commands/home.js +2 -2
- package/dist/src/commands/home.js.map +1 -1
- package/dist/src/skill.js +8 -3
- package/dist/src/skill.js.map +1 -1
- package/package.json +1 -1
- package/skills/databricks-axi/SKILL.md +7 -3
package/README.md
CHANGED
|
@@ -9,9 +9,39 @@ 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` and `
|
|
13
|
-
> passthrough are implemented; remaining domains are landing
|
|
14
|
-
> run `npx -y databricks-axi --help` for what's available
|
|
12
|
+
> **Status: pre-release.** The `jobs`, `sql`, and `catalog` domains and the
|
|
13
|
+
> `api` passthrough are implemented; remaining domains are landing
|
|
14
|
+
> incrementally — run `npx -y databricks-axi --help` for what's available
|
|
15
|
+
> today.
|
|
16
|
+
|
|
17
|
+
## Benchmarks
|
|
18
|
+
|
|
19
|
+
Agent ergonomics is measurable. The benchmark (methodology follows the
|
|
20
|
+
[axi benchmark](https://axi.md)) runs 7 real-world Databricks tasks —
|
|
21
|
+
failed-run triage, job triggering, SQL row counts, schema lookups, error
|
|
22
|
+
recovery, warehouse checks, capability discovery — through 3 interface
|
|
23
|
+
setups, 5 repeats each (the warehouse-cycling task runs once, not five
|
|
24
|
+
times, in the two conditions that run it, since it mutates shared cluster
|
|
25
|
+
state), with `claude-sonnet-5` as the agent.
|
|
26
|
+
Task success is scored against seeded fixtures — deterministically where the
|
|
27
|
+
answer is machine-checkable, by an LLM judge otherwise (87 runs total,
|
|
28
|
+
v0.3.0, 2026-07-08; durations are API-reported medians).
|
|
29
|
+
|
|
30
|
+
databricks-axi posts the lowest input tokens, cost, and turns, passing every
|
|
31
|
+
run:
|
|
32
|
+
|
|
33
|
+
| Condition | Avg Input Tokens | Avg Cost/Task | Median Duration | Avg Turns | Success |
|
|
34
|
+
| ---------------------------- | ---------------- | ------------- | --------------- | --------- | -------- |
|
|
35
|
+
| **databricks-axi** | **87,826** | **$0.155** | **10s** | **3.0** | **100%** |
|
|
36
|
+
| databricks CLI (raw) | 122,549 | $0.177 | 17s | 4.2 | 100% |
|
|
37
|
+
| Databricks managed MCP (SQL) | 226,298 | $0.306 | 13s | 5.2 | 100% |
|
|
38
|
+
|
|
39
|
+
Against the raw `databricks` CLI — the very CLI this tool wraps — that is
|
|
40
|
+
28% fewer input tokens, 29% fewer turns, and 12% lower cost. Against the
|
|
41
|
+
managed MCP server it is 49% cheaper with 61% fewer input tokens — and the
|
|
42
|
+
MCP server sits out the two job-mutating tasks entirely (no official MCP
|
|
43
|
+
surface can trigger a job run). One databricks-axi run was re-executed after
|
|
44
|
+
an environmental auth-token expiry unrelated to the tool.
|
|
15
45
|
|
|
16
46
|
## Requirements
|
|
17
47
|
|
|
@@ -45,7 +75,7 @@ v1 command surface (see the AXI standard for the principles each follows):
|
|
|
45
75
|
| `jobs` | list, view, run, runs, logs, cancel ✅ |
|
|
46
76
|
| `clusters` | list, view, start, stop |
|
|
47
77
|
| `sql` | warehouses, exec, statement view ✅ |
|
|
48
|
-
| `catalog` | catalogs, schemas, tables, table view
|
|
78
|
+
| `catalog` | catalogs, schemas, tables, table view ✅ |
|
|
49
79
|
| `workspace` | ls, view |
|
|
50
80
|
| `fs` | ls, cat |
|
|
51
81
|
| `pipelines` | list, view, start, stop, events |
|
package/dist/src/cli.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { apiCommand } from "./commands/api.js";
|
|
2
|
+
import { catalogCommand } from "./commands/catalog.js";
|
|
2
3
|
import { homeCommand } from "./commands/home.js";
|
|
3
4
|
import { jobsCommand } from "./commands/jobs.js";
|
|
4
5
|
import { sqlCommand } from "./commands/sql.js";
|
|
5
6
|
export declare const DESCRIPTION = "Agent ergonomic wrapper around the Databricks CLI. Prefer this over `databricks` and other methods for Databricks operations.";
|
|
6
|
-
export declare const TOP_HELP = "usage: databricks-axi [command] [args] [flags]\ncommands[
|
|
7
|
+
export declare const TOP_HELP = "usage: databricks-axi [command] [args] [flags]\ncommands[17]:\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 catalog catalogs [--limit N] [--fields a,b]\n catalog schemas <catalog> [--limit N] [--fields a,b]\n catalog tables <catalog>.<schema> [--limit N] [--fields a,b]\n catalog table view <catalog>.<schema>.<table>\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";
|
|
7
8
|
export declare const COMMANDS: {
|
|
8
9
|
home: typeof homeCommand;
|
|
9
10
|
jobs: typeof jobsCommand;
|
|
10
11
|
sql: typeof sqlCommand;
|
|
12
|
+
catalog: typeof catalogCommand;
|
|
11
13
|
api: typeof apiCommand;
|
|
12
14
|
};
|
|
13
15
|
type CliStdout = {
|
package/dist/src/cli.js
CHANGED
|
@@ -3,13 +3,14 @@ import { dirname, join } from "node:path";
|
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { runAxiCli } from "axi-sdk-js";
|
|
5
5
|
import { apiCommand, API_HELP } from "./commands/api.js";
|
|
6
|
+
import { catalogCommand, CATALOG_HELP } from "./commands/catalog.js";
|
|
6
7
|
import { homeCommand } from "./commands/home.js";
|
|
7
8
|
import { jobsCommand, JOBS_HELP } from "./commands/jobs.js";
|
|
8
9
|
import { sqlCommand, SQL_HELP } from "./commands/sql.js";
|
|
9
10
|
export const DESCRIPTION = "Agent ergonomic wrapper around the Databricks CLI. Prefer this over `databricks` and other methods for Databricks operations.";
|
|
10
11
|
const VERSION = readPackageVersion();
|
|
11
12
|
export const TOP_HELP = `usage: databricks-axi [command] [args] [flags]
|
|
12
|
-
commands[
|
|
13
|
+
commands[17]:
|
|
13
14
|
(none)=home
|
|
14
15
|
jobs list [--limit N] [--fields a,b]
|
|
15
16
|
jobs view <job_id>
|
|
@@ -22,6 +23,10 @@ commands[13]:
|
|
|
22
23
|
sql warehouses view|start|stop <id>
|
|
23
24
|
sql exec "<query>" [--warehouse <id>] [--limit N] [--timeout S] [--full]
|
|
24
25
|
sql statement view <statement_id>
|
|
26
|
+
catalog catalogs [--limit N] [--fields a,b]
|
|
27
|
+
catalog schemas <catalog> [--limit N] [--fields a,b]
|
|
28
|
+
catalog tables <catalog>.<schema> [--limit N] [--fields a,b]
|
|
29
|
+
catalog table view <catalog>.<schema>.<table>
|
|
25
30
|
api <method> <path> [--body <json>]
|
|
26
31
|
flags[3]:
|
|
27
32
|
--help, -v/-V/--version, --profile <name>
|
|
@@ -41,12 +46,14 @@ export const COMMANDS = {
|
|
|
41
46
|
home: homeCommand,
|
|
42
47
|
jobs: jobsCommand,
|
|
43
48
|
sql: sqlCommand,
|
|
49
|
+
catalog: catalogCommand,
|
|
44
50
|
api: apiCommand,
|
|
45
51
|
};
|
|
46
52
|
const COMMAND_HELP = {
|
|
47
53
|
home: HOME_HELP,
|
|
48
54
|
jobs: JOBS_HELP,
|
|
49
55
|
sql: SQL_HELP,
|
|
56
|
+
catalog: CATALOG_HELP,
|
|
50
57
|
api: API_HELP,
|
|
51
58
|
};
|
|
52
59
|
export async function main(options = {}) {
|
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,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
|
|
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,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrE,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;;;;;;;;;;;;;;;;;;;;;;;;;CAyBvB,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,OAAO,EAAE,cAAc;IACvB,GAAG,EAAE,UAAU;CAChB,CAAC;AAEF,MAAM,YAAY,GAA2B;IAC3C,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,QAAQ;IACb,OAAO,EAAE,YAAY;IACrB,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 CATALOG_HELP = "usage: databricks-axi catalog <subcommand> [args] [flags]\nsubcommands[4]:\n catalogs [--limit N] [--fields a,b]\n schemas <catalog> [--limit N] [--fields a,b]\n tables <catalog>.<schema> [--limit N] [--fields a,b]\n table view <catalog>.<schema>.<table>\nflags:\n --profile <name> databricks auth profile passthrough\nexamples:\n databricks-axi catalog catalogs\n databricks-axi catalog schemas workspace\n databricks-axi catalog tables workspace.default\n databricks-axi catalog table view workspace.default.axi_bench_trips\nnotes:\n read-only Unity Catalog browsing; tables omits column payloads \u2014\n use table view for the column schema\n";
|
|
3
|
+
export declare function catalogCommand(args: string[]): Promise<AxiRenderable>;
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { AxiError } from "axi-sdk-js";
|
|
2
|
+
import { runDatabricks } from "../databricks.js";
|
|
3
|
+
import { asList, assertObject, domainHelpers, profileSuffix, spawnOpts, } from "./shared.js";
|
|
4
|
+
const { usage, parseArgs, parseIntFlag, requireId, renderRows } = domainHelpers("catalog");
|
|
5
|
+
export const CATALOG_HELP = `usage: databricks-axi catalog <subcommand> [args] [flags]
|
|
6
|
+
subcommands[4]:
|
|
7
|
+
catalogs [--limit N] [--fields a,b]
|
|
8
|
+
schemas <catalog> [--limit N] [--fields a,b]
|
|
9
|
+
tables <catalog>.<schema> [--limit N] [--fields a,b]
|
|
10
|
+
table view <catalog>.<schema>.<table>
|
|
11
|
+
flags:
|
|
12
|
+
--profile <name> databricks auth profile passthrough
|
|
13
|
+
examples:
|
|
14
|
+
databricks-axi catalog catalogs
|
|
15
|
+
databricks-axi catalog schemas workspace
|
|
16
|
+
databricks-axi catalog tables workspace.default
|
|
17
|
+
databricks-axi catalog table view workspace.default.axi_bench_trips
|
|
18
|
+
notes:
|
|
19
|
+
read-only Unity Catalog browsing; tables omits column payloads —
|
|
20
|
+
use table view for the column schema
|
|
21
|
+
`;
|
|
22
|
+
export async function catalogCommand(args) {
|
|
23
|
+
const [sub, ...rest] = args;
|
|
24
|
+
switch (sub) {
|
|
25
|
+
case "catalogs":
|
|
26
|
+
return catalogsList(rest);
|
|
27
|
+
case "schemas":
|
|
28
|
+
return schemasList(rest);
|
|
29
|
+
case "tables":
|
|
30
|
+
return tablesList(rest);
|
|
31
|
+
case "table":
|
|
32
|
+
if (rest[0] !== "view") {
|
|
33
|
+
throw usage("Usage: databricks-axi catalog table view <catalog>.<schema>.<table>");
|
|
34
|
+
}
|
|
35
|
+
return tableView(rest.slice(1));
|
|
36
|
+
default:
|
|
37
|
+
throw usage(sub
|
|
38
|
+
? `Unknown catalog subcommand: ${sub}`
|
|
39
|
+
: "catalog requires a subcommand");
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// --- subcommands ---
|
|
43
|
+
const LIST_FLAGS = {
|
|
44
|
+
profile: "value",
|
|
45
|
+
limit: "value",
|
|
46
|
+
fields: "value",
|
|
47
|
+
};
|
|
48
|
+
/** Shared list-result tail: empty state, count envelope, and the
|
|
49
|
+
* full-page has_more + rerun-with-double-limit suggestion. */
|
|
50
|
+
function listResult(key, rows, limit, rerunCmd, empty, nextHelp) {
|
|
51
|
+
if (rows.length === 0) {
|
|
52
|
+
return { [key]: [], status: empty.status, help: empty.help };
|
|
53
|
+
}
|
|
54
|
+
const help = [nextHelp];
|
|
55
|
+
const out = { [key]: rows, count: rows.length };
|
|
56
|
+
// CLI >= 0.298 caps results client-side at --limit; a full page means
|
|
57
|
+
// there may be more.
|
|
58
|
+
if (rows.length >= limit) {
|
|
59
|
+
out.has_more = true;
|
|
60
|
+
help.unshift(rerunCmd);
|
|
61
|
+
}
|
|
62
|
+
out.help = help;
|
|
63
|
+
return out;
|
|
64
|
+
}
|
|
65
|
+
async function catalogsList(args) {
|
|
66
|
+
const { positional, flags } = parseArgs(args, LIST_FLAGS);
|
|
67
|
+
if (positional.length > 0) {
|
|
68
|
+
throw usage(`catalog catalogs takes no arguments, got: ${positional[0]}`);
|
|
69
|
+
}
|
|
70
|
+
const limit = parseIntFlag(flags, "limit", 30);
|
|
71
|
+
const parsed = await runDatabricks(["catalogs", "list", "--limit", String(limit)], spawnOpts(flags));
|
|
72
|
+
const rows = renderRows(asList(parsed, "catalogs"), flags, [
|
|
73
|
+
"name",
|
|
74
|
+
"owner",
|
|
75
|
+
"catalog_type",
|
|
76
|
+
]);
|
|
77
|
+
const p = profileSuffix(flags.get("profile"));
|
|
78
|
+
return listResult("catalogs", rows, limit, `databricks-axi catalog catalogs --limit ${limit * 2}${p}`, {
|
|
79
|
+
status: "no catalogs visible to this principal",
|
|
80
|
+
help: [
|
|
81
|
+
"Free Edition workspaces have a `workspace` catalog (not `main`) — check permissions if none appear",
|
|
82
|
+
],
|
|
83
|
+
}, `databricks-axi catalog schemas <name>${p}`);
|
|
84
|
+
}
|
|
85
|
+
async function schemasList(args) {
|
|
86
|
+
const { positional, flags } = parseArgs(args, LIST_FLAGS);
|
|
87
|
+
// Patterns reject a leading "-" so an identifier smuggled past strict
|
|
88
|
+
// parseArgs via `--` can never reach child argv as a flag.
|
|
89
|
+
const catalog = requireId(positional, "catalog schemas <catalog>", /^[^-]/);
|
|
90
|
+
const limit = parseIntFlag(flags, "limit", 30);
|
|
91
|
+
const p = profileSuffix(flags.get("profile"));
|
|
92
|
+
const parsed = await runCatalog(["schemas", "list", catalog, "--limit", String(limit)], spawnOpts(flags), [`databricks-axi catalog catalogs${p}`]);
|
|
93
|
+
// Upstream `name` is already the bare schema name (full_name carries the
|
|
94
|
+
// redundant catalog.schema).
|
|
95
|
+
const rows = renderRows(asList(parsed, "schemas"), flags, ["name", "owner"]);
|
|
96
|
+
return listResult("schemas", rows, limit, `databricks-axi catalog schemas ${catalog} --limit ${limit * 2}${p}`, {
|
|
97
|
+
status: `no schemas in catalog ${catalog}`,
|
|
98
|
+
help: [`databricks-axi catalog catalogs${p}`],
|
|
99
|
+
}, `databricks-axi catalog tables ${catalog}.<name>${p}`);
|
|
100
|
+
}
|
|
101
|
+
async function tablesList(args) {
|
|
102
|
+
const { positional, flags } = parseArgs(args, LIST_FLAGS);
|
|
103
|
+
// Split on the first "." — agents think in `workspace.default`, not
|
|
104
|
+
// positional pairs.
|
|
105
|
+
const ref = requireId(positional, "catalog tables <catalog>.<schema>", /^[^.-][^.]*\.[^.-].*$/);
|
|
106
|
+
const dot = ref.indexOf(".");
|
|
107
|
+
const catalog = ref.slice(0, dot);
|
|
108
|
+
const schema = ref.slice(dot + 1);
|
|
109
|
+
const limit = parseIntFlag(flags, "limit", 30);
|
|
110
|
+
const p = profileSuffix(flags.get("profile"));
|
|
111
|
+
const parsed = await runCatalog([
|
|
112
|
+
"tables",
|
|
113
|
+
"list",
|
|
114
|
+
catalog,
|
|
115
|
+
schema,
|
|
116
|
+
"--limit",
|
|
117
|
+
String(limit),
|
|
118
|
+
// The default payload carries full column/property blobs — columns
|
|
119
|
+
// belong to `table view`.
|
|
120
|
+
"--omit-columns",
|
|
121
|
+
"--omit-properties",
|
|
122
|
+
], spawnOpts(flags), [`databricks-axi catalog schemas ${catalog}${p}`]);
|
|
123
|
+
const rows = renderRows(asList(parsed, "tables"), flags, [
|
|
124
|
+
"name",
|
|
125
|
+
"table_type",
|
|
126
|
+
"data_source_format",
|
|
127
|
+
]);
|
|
128
|
+
return listResult("tables", rows, limit, `databricks-axi catalog tables ${ref} --limit ${limit * 2}${p}`, {
|
|
129
|
+
status: `no tables in ${ref}`,
|
|
130
|
+
help: [`databricks-axi catalog schemas ${catalog}${p}`],
|
|
131
|
+
}, `databricks-axi catalog table view ${ref}.<name>${p}`);
|
|
132
|
+
}
|
|
133
|
+
async function tableView(args) {
|
|
134
|
+
const { positional, flags } = parseArgs(args, { profile: "value" });
|
|
135
|
+
const fullName = requireId(positional, "catalog table view <catalog>.<schema>.<table>", /^[^.-][^.]*\.[^.]+\.[^.]+$/);
|
|
136
|
+
const parent = fullName.slice(0, fullName.lastIndexOf("."));
|
|
137
|
+
const p = profileSuffix(flags.get("profile"));
|
|
138
|
+
const table = assertObject(await runCatalog(["tables", "get", fullName], spawnOpts(flags), [
|
|
139
|
+
`databricks-axi catalog tables ${parent}${p}`,
|
|
140
|
+
]), "databricks tables get");
|
|
141
|
+
const out = {
|
|
142
|
+
full_name: table.full_name ?? fullName,
|
|
143
|
+
table_type: table.table_type,
|
|
144
|
+
owner: table.owner,
|
|
145
|
+
};
|
|
146
|
+
if (table.comment) {
|
|
147
|
+
out.comment = table.comment;
|
|
148
|
+
}
|
|
149
|
+
out.columns = (table.columns ?? []).map((c) => ({
|
|
150
|
+
name: c.name,
|
|
151
|
+
type_text: c.type_text,
|
|
152
|
+
nullable: c.nullable,
|
|
153
|
+
}));
|
|
154
|
+
out.help = [
|
|
155
|
+
`databricks-axi sql exec "SELECT * FROM ${String(out.full_name)} LIMIT 10"${p}`,
|
|
156
|
+
`databricks-axi catalog tables ${parent}${p}`,
|
|
157
|
+
];
|
|
158
|
+
return out;
|
|
159
|
+
}
|
|
160
|
+
/** runDatabricks, folding the parent-level browse suggestion into NOT_FOUND
|
|
161
|
+
* (missing catalog → list catalogs, missing schema → list schemas, ...). */
|
|
162
|
+
async function runCatalog(args, opts, notFoundHelp) {
|
|
163
|
+
try {
|
|
164
|
+
return await runDatabricks(args, opts);
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
if (error instanceof AxiError &&
|
|
168
|
+
error.code === "NOT_FOUND" &&
|
|
169
|
+
error.suggestions.length === 0) {
|
|
170
|
+
throw new AxiError(error.message, "NOT_FOUND", notFoundHelp);
|
|
171
|
+
}
|
|
172
|
+
throw error;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/commands/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -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), sql (warehouses, exec, statement), api",
|
|
8
|
-
"coming: clusters,
|
|
7
|
+
"available: jobs (list, view, run, runs, logs, cancel), sql (warehouses, exec, statement), catalog (catalogs, schemas, tables, table view), api",
|
|
8
|
+
"coming: clusters, 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,gJAAgJ;QAChJ,4DAA4D;QAC5D,2DAA2D;QAC3D,UAAU;QACV,4BAA4B;QAC5B,yBAAyB;KAC1B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
package/dist/src/skill.js
CHANGED
|
@@ -4,9 +4,10 @@ import { DESCRIPTION, TOP_HELP } from "./cli.js";
|
|
|
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
6
|
"(list, view, run, runs, logs, cancel), sql (warehouses, exec, " +
|
|
7
|
-
"statement view),
|
|
8
|
-
"
|
|
9
|
-
"
|
|
7
|
+
"statement view), catalog (catalogs, schemas, tables, table view), api " +
|
|
8
|
+
"(raw REST passthrough). Other domains (clusters, workspace, fs, " +
|
|
9
|
+
"pipelines, serving, setup) land incrementally - run " +
|
|
10
|
+
"`databricks-axi --help` for the current surface.";
|
|
10
11
|
export const SKILL_AUTHOR = "Vignesh Perumal (p33ves)";
|
|
11
12
|
// Extended frontmatter read by Nous Research's Hermes Agent harness.
|
|
12
13
|
// Harnesses that don't know these fields (e.g. Claude Code) ignore them.
|
|
@@ -19,6 +20,10 @@ export const HERMES_TAGS = [
|
|
|
19
20
|
"sql",
|
|
20
21
|
"warehouse",
|
|
21
22
|
"query",
|
|
23
|
+
"catalog",
|
|
24
|
+
"schema",
|
|
25
|
+
"table",
|
|
26
|
+
"unity",
|
|
22
27
|
];
|
|
23
28
|
export const HERMES_CATEGORY = "data";
|
|
24
29
|
/**
|
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,gEAAgE;IAChE,wEAAwE;IACxE,
|
|
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,kEAAkE;IAClE,sDAAsD;IACtD,kDAAkD,CAAC;AAErD,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;IACP,SAAS;IACT,QAAQ;IACR,OAAO;IACP,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,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), sql (warehouses, exec, statement view), api (raw REST passthrough). 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), catalog (catalogs, schemas, tables, table view), api (raw REST passthrough). Other domains (clusters, 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, sql, warehouse, query]
|
|
8
|
+
tags: [databricks, spark, jobs, sql, warehouse, query, catalog, schema, table, unity]
|
|
9
9
|
category: data
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -28,7 +28,7 @@ Pre-release scaffold: command domains are landing incrementally. Run `databricks
|
|
|
28
28
|
## Commands
|
|
29
29
|
|
|
30
30
|
```
|
|
31
|
-
commands[
|
|
31
|
+
commands[17]:
|
|
32
32
|
(none)=home
|
|
33
33
|
jobs list [--limit N] [--fields a,b]
|
|
34
34
|
jobs view <job_id>
|
|
@@ -41,6 +41,10 @@ commands[13]:
|
|
|
41
41
|
sql warehouses view|start|stop <id>
|
|
42
42
|
sql exec "<query>" [--warehouse <id>] [--limit N] [--timeout S] [--full]
|
|
43
43
|
sql statement view <statement_id>
|
|
44
|
+
catalog catalogs [--limit N] [--fields a,b]
|
|
45
|
+
catalog schemas <catalog> [--limit N] [--fields a,b]
|
|
46
|
+
catalog tables <catalog>.<schema> [--limit N] [--fields a,b]
|
|
47
|
+
catalog table view <catalog>.<schema>.<table>
|
|
44
48
|
api <method> <path> [--body <json>]
|
|
45
49
|
```
|
|
46
50
|
|