tuningengines-cli 0.3.6 → 0.4.2

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.
Files changed (45) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +191 -5
  3. package/dist/cli.js +11 -1
  4. package/dist/cli.js.map +1 -1
  5. package/dist/client.d.ts +84 -0
  6. package/dist/client.d.ts.map +1 -1
  7. package/dist/client.js +138 -0
  8. package/dist/client.js.map +1 -1
  9. package/dist/commands/agents.d.ts +4 -0
  10. package/dist/commands/agents.d.ts.map +1 -0
  11. package/dist/commands/agents.js +72 -0
  12. package/dist/commands/agents.js.map +1 -0
  13. package/dist/commands/datasets.d.ts +4 -0
  14. package/dist/commands/datasets.d.ts.map +1 -0
  15. package/dist/commands/datasets.js +154 -0
  16. package/dist/commands/datasets.js.map +1 -0
  17. package/dist/commands/evaluations.d.ts +4 -0
  18. package/dist/commands/evaluations.d.ts.map +1 -0
  19. package/dist/commands/evaluations.js +168 -0
  20. package/dist/commands/evaluations.js.map +1 -0
  21. package/dist/commands/inference.d.ts +4 -0
  22. package/dist/commands/inference.d.ts.map +1 -0
  23. package/dist/commands/inference.js +92 -0
  24. package/dist/commands/inference.js.map +1 -0
  25. package/dist/commands/tenant.d.ts +4 -0
  26. package/dist/commands/tenant.d.ts.map +1 -0
  27. package/dist/commands/tenant.js +326 -0
  28. package/dist/commands/tenant.js.map +1 -0
  29. package/dist/mcp.d.ts.map +1 -1
  30. package/dist/mcp.js +349 -27
  31. package/dist/mcp.js.map +1 -1
  32. package/package.json +3 -2
  33. package/packages/tuning-agents/README.md +168 -0
  34. package/packages/tuning-agents/examples/langgraph_agent.py +25 -0
  35. package/packages/tuning-agents/examples/temporal_worker.py +27 -0
  36. package/packages/tuning-agents/pyproject.toml +38 -0
  37. package/packages/tuning-agents/tests/test_mcp.py +40 -0
  38. package/packages/tuning-agents/tests/test_trace.py +14 -0
  39. package/packages/tuning-agents/tuning_agents/__init__.py +11 -0
  40. package/packages/tuning-agents/tuning_agents/client.py +275 -0
  41. package/packages/tuning-agents/tuning_agents/langgraph.py +108 -0
  42. package/packages/tuning-agents/tuning_agents/mcp.py +208 -0
  43. package/packages/tuning-agents/tuning_agents/resources.py +26 -0
  44. package/packages/tuning-agents/tuning_agents/temporal.py +172 -0
  45. package/packages/tuning-agents/tuning_agents/trace.py +88 -0
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.registerAgentCommands = registerAgentCommands;
37
+ const output = __importStar(require("../output"));
38
+ function printResult(result) {
39
+ output.json(result);
40
+ }
41
+ function registerAgentCommands(program, getClient) {
42
+ const agents = program
43
+ .command("agents")
44
+ .description("Inspect available platform agents");
45
+ agents
46
+ .command("list")
47
+ .description("List available agents")
48
+ .option("--json", "Output as JSON")
49
+ .action(async () => {
50
+ try {
51
+ printResult(await getClient().listAgents());
52
+ }
53
+ catch (err) {
54
+ console.error(err.message);
55
+ process.exit(1);
56
+ }
57
+ });
58
+ agents
59
+ .command("show <id>")
60
+ .description("Show agent details")
61
+ .option("--json", "Output as JSON")
62
+ .action(async (id) => {
63
+ try {
64
+ printResult(await getClient().getAgent(id));
65
+ }
66
+ catch (err) {
67
+ console.error(err.message);
68
+ process.exit(1);
69
+ }
70
+ });
71
+ }
72
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,sDAiCC;AAvCD,kDAAoC;AAEpC,SAAS,WAAW,CAAC,MAAW;IAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,SAAgB,qBAAqB,CACnC,OAAgB,EAChB,SAAoC;IAEpC,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mCAAmC,CAAC,CAAC;IAEpD,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,WAAW,CAAC,MAAM,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,oBAAoB,CAAC;SACjC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,WAAW,CAAC,MAAM,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Command } from "commander";
2
+ import { TuningEnginesClient } from "../client";
3
+ export declare function registerDatasetCommands(program: Command, getClient: () => TuningEnginesClient): void;
4
+ //# sourceMappingURL=datasets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasets.d.ts","sourceRoot":"","sources":["../../src/commands/datasets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAgBhD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,mBAAmB,GACnC,IAAI,CAuGN"}
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.registerDatasetCommands = registerDatasetCommands;
37
+ const output = __importStar(require("../output"));
38
+ function parseJsonObject(raw) {
39
+ if (!raw)
40
+ return {};
41
+ const parsed = JSON.parse(raw);
42
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
43
+ throw new Error("--data must be a JSON object");
44
+ }
45
+ return parsed;
46
+ }
47
+ function printResult(result) {
48
+ output.json(result);
49
+ }
50
+ function registerDatasetCommands(program, getClient) {
51
+ const datasets = program
52
+ .command("datasets")
53
+ .description("Manage datasets for training and evaluation");
54
+ datasets
55
+ .command("list")
56
+ .description("List datasets")
57
+ .option("-l, --limit <n>", "Max results", "50")
58
+ .option("--offset <n>", "Offset", "0")
59
+ .option("--json", "Output as JSON")
60
+ .action(async (opts) => {
61
+ try {
62
+ printResult(await getClient().listDatasets({
63
+ limit: Number(opts.limit),
64
+ offset: Number(opts.offset),
65
+ }));
66
+ }
67
+ catch (err) {
68
+ console.error(err.message);
69
+ process.exit(1);
70
+ }
71
+ });
72
+ datasets
73
+ .command("show <id>")
74
+ .description("Show dataset details")
75
+ .option("--json", "Output as JSON")
76
+ .action(async (id) => {
77
+ try {
78
+ printResult(await getClient().getDataset(id));
79
+ }
80
+ catch (err) {
81
+ console.error(err.message);
82
+ process.exit(1);
83
+ }
84
+ });
85
+ datasets
86
+ .command("create")
87
+ .description("Create a dataset from JSON")
88
+ .requiredOption("--data <json>", "JSON object with dataset attributes")
89
+ .option("--json", "Output as JSON")
90
+ .action(async (opts) => {
91
+ try {
92
+ printResult(await getClient().createDataset(parseJsonObject(opts.data)));
93
+ }
94
+ catch (err) {
95
+ console.error(err.message);
96
+ process.exit(1);
97
+ }
98
+ });
99
+ datasets
100
+ .command("update <id>")
101
+ .description("Update dataset metadata from JSON")
102
+ .requiredOption("--data <json>", "JSON object with changed attributes")
103
+ .option("--json", "Output as JSON")
104
+ .action(async (id, opts) => {
105
+ try {
106
+ printResult(await getClient().updateDataset(id, parseJsonObject(opts.data)));
107
+ }
108
+ catch (err) {
109
+ console.error(err.message);
110
+ process.exit(1);
111
+ }
112
+ });
113
+ datasets
114
+ .command("delete <id>")
115
+ .description("Delete a dataset")
116
+ .option("--json", "Output as JSON")
117
+ .action(async (id) => {
118
+ try {
119
+ printResult(await getClient().deleteDataset(id));
120
+ }
121
+ catch (err) {
122
+ console.error(err.message);
123
+ process.exit(1);
124
+ }
125
+ });
126
+ datasets
127
+ .command("status <id>")
128
+ .description("Check dataset processing status")
129
+ .option("--json", "Output as JSON")
130
+ .action(async (id) => {
131
+ try {
132
+ printResult(await getClient().getDatasetStatus(id));
133
+ }
134
+ catch (err) {
135
+ console.error(err.message);
136
+ process.exit(1);
137
+ }
138
+ });
139
+ datasets
140
+ .command("validate-s3")
141
+ .description("Validate dataset S3 credentials")
142
+ .requiredOption("--data <json>", "JSON object with s3_url, s3_access_key_id, s3_secret_access_key, s3_region")
143
+ .option("--json", "Output as JSON")
144
+ .action(async (opts) => {
145
+ try {
146
+ printResult(await getClient().validateDatasetS3(parseJsonObject(opts.data)));
147
+ }
148
+ catch (err) {
149
+ console.error(err.message);
150
+ process.exit(1);
151
+ }
152
+ });
153
+ }
154
+ //# sourceMappingURL=datasets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasets.js","sourceRoot":"","sources":["../../src/commands/datasets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Command } from "commander";
2
+ import { TuningEnginesClient } from "../client";
3
+ export declare function registerEvaluationCommands(program: Command, getClient: () => TuningEnginesClient): void;
4
+ //# sourceMappingURL=evaluations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluations.d.ts","sourceRoot":"","sources":["../../src/commands/evaluations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAgBhD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,mBAAmB,GACnC,IAAI,CAqHN"}
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.registerEvaluationCommands = registerEvaluationCommands;
37
+ const output = __importStar(require("../output"));
38
+ function parseJsonObject(raw) {
39
+ if (!raw)
40
+ return {};
41
+ const parsed = JSON.parse(raw);
42
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
43
+ throw new Error("--data must be a JSON object");
44
+ }
45
+ return parsed;
46
+ }
47
+ function printResult(result) {
48
+ output.json(result);
49
+ }
50
+ function registerEvaluationCommands(program, getClient) {
51
+ const evals = program
52
+ .command("evals")
53
+ .description("Manage model evaluations");
54
+ evals
55
+ .command("list")
56
+ .description("List evaluations")
57
+ .option("--status <status>", "Filter by status")
58
+ .option("-l, --limit <n>", "Max results", "50")
59
+ .option("--offset <n>", "Offset", "0")
60
+ .option("--json", "Output as JSON")
61
+ .action(async (opts) => {
62
+ try {
63
+ printResult(await getClient().listEvaluations({
64
+ status: opts.status,
65
+ limit: Number(opts.limit),
66
+ offset: Number(opts.offset),
67
+ }));
68
+ }
69
+ catch (err) {
70
+ console.error(err.message);
71
+ process.exit(1);
72
+ }
73
+ });
74
+ evals
75
+ .command("show <id>")
76
+ .description("Show evaluation details")
77
+ .option("--json", "Output as JSON")
78
+ .action(async (id) => {
79
+ try {
80
+ printResult(await getClient().getEvaluation(id));
81
+ }
82
+ catch (err) {
83
+ console.error(err.message);
84
+ process.exit(1);
85
+ }
86
+ });
87
+ evals
88
+ .command("create")
89
+ .description("Create an evaluation from JSON")
90
+ .requiredOption("--data <json>", "JSON object with evaluation attributes")
91
+ .option("--json", "Output as JSON")
92
+ .action(async (opts) => {
93
+ try {
94
+ printResult(await getClient().createEvaluation(parseJsonObject(opts.data)));
95
+ }
96
+ catch (err) {
97
+ console.error(err.message);
98
+ process.exit(1);
99
+ }
100
+ });
101
+ evals
102
+ .command("cancel <id>")
103
+ .description("Cancel a running evaluation")
104
+ .option("--json", "Output as JSON")
105
+ .action(async (id) => {
106
+ try {
107
+ printResult(await getClient().cancelEvaluation(id));
108
+ }
109
+ catch (err) {
110
+ console.error(err.message);
111
+ process.exit(1);
112
+ }
113
+ });
114
+ evals
115
+ .command("retry <id>")
116
+ .description("Retry a failed evaluation")
117
+ .option("--json", "Output as JSON")
118
+ .action(async (id) => {
119
+ try {
120
+ printResult(await getClient().retryEvaluation(id));
121
+ }
122
+ catch (err) {
123
+ console.error(err.message);
124
+ process.exit(1);
125
+ }
126
+ });
127
+ evals
128
+ .command("status <id>")
129
+ .description("Check evaluation status")
130
+ .option("--json", "Output as JSON")
131
+ .action(async (id) => {
132
+ try {
133
+ printResult(await getClient().getEvaluationStatus(id));
134
+ }
135
+ catch (err) {
136
+ console.error(err.message);
137
+ process.exit(1);
138
+ }
139
+ });
140
+ evals
141
+ .command("evaluators")
142
+ .description("List available evaluators")
143
+ .option("--json", "Output as JSON")
144
+ .action(async () => {
145
+ try {
146
+ printResult(await getClient().listEvaluators());
147
+ }
148
+ catch (err) {
149
+ console.error(err.message);
150
+ process.exit(1);
151
+ }
152
+ });
153
+ evals
154
+ .command("estimate")
155
+ .description("Estimate evaluation cost from JSON")
156
+ .requiredOption("--data <json>", "JSON object with evaluation attributes")
157
+ .option("--json", "Output as JSON")
158
+ .action(async (opts) => {
159
+ try {
160
+ printResult(await getClient().estimateEvaluation(parseJsonObject(opts.data)));
161
+ }
162
+ catch (err) {
163
+ console.error(err.message);
164
+ process.exit(1);
165
+ }
166
+ });
167
+ }
168
+ //# sourceMappingURL=evaluations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluations.js","sourceRoot":"","sources":["../../src/commands/evaluations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Command } from "commander";
2
+ import { TuningEnginesClient } from "../client";
3
+ export declare function registerInferenceCommands(program: Command, getClient: () => TuningEnginesClient): void;
4
+ //# sourceMappingURL=inference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inference.d.ts","sourceRoot":"","sources":["../../src/commands/inference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAOhD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,mBAAmB,GACnC,IAAI,CAkDN"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.registerInferenceCommands = registerInferenceCommands;
37
+ const output = __importStar(require("../output"));
38
+ function printResult(result) {
39
+ output.json(result);
40
+ }
41
+ function registerInferenceCommands(program, getClient) {
42
+ const inference = program
43
+ .command("inference")
44
+ .description("Inspect inference models, usage, and direct API access");
45
+ inference
46
+ .command("models")
47
+ .description("List available inference models")
48
+ .option("--json", "Output as JSON")
49
+ .action(async () => {
50
+ try {
51
+ printResult(await getClient().listInferenceModels());
52
+ }
53
+ catch (err) {
54
+ console.error(err.message);
55
+ process.exit(1);
56
+ }
57
+ });
58
+ inference
59
+ .command("usage")
60
+ .description("Show inference usage")
61
+ .option("--start-date <date>", "Start date")
62
+ .option("--end-date <date>", "End date")
63
+ .option("--model <model>", "Model filter")
64
+ .option("--json", "Output as JSON")
65
+ .action(async (opts) => {
66
+ try {
67
+ printResult(await getClient().getInferenceUsage({
68
+ start_date: opts.startDate,
69
+ end_date: opts.endDate,
70
+ model: opts.model,
71
+ }));
72
+ }
73
+ catch (err) {
74
+ console.error(err.message);
75
+ process.exit(1);
76
+ }
77
+ });
78
+ inference
79
+ .command("jwt")
80
+ .description("Get a JWT for direct inference API access")
81
+ .option("--json", "Output as JSON")
82
+ .action(async () => {
83
+ try {
84
+ printResult(await getClient().getInferenceJwt());
85
+ }
86
+ catch (err) {
87
+ console.error(err.message);
88
+ process.exit(1);
89
+ }
90
+ });
91
+ }
92
+ //# sourceMappingURL=inference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inference.js","sourceRoot":"","sources":["../../src/commands/inference.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,8DAqDC;AA3DD,kDAAoC;AAEpC,SAAS,WAAW,CAAC,MAAW;IAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,SAAgB,yBAAyB,CACvC,OAAgB,EAChB,SAAoC;IAEpC,MAAM,SAAS,GAAG,OAAO;SACtB,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,wDAAwD,CAAC,CAAC;IAEzE,SAAS;SACN,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,WAAW,CAAC,MAAM,SAAS,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,SAAS;SACN,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CAAC,qBAAqB,EAAE,YAAY,CAAC;SAC3C,MAAM,CAAC,mBAAmB,EAAE,UAAU,CAAC;SACvC,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC;SACzC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,WAAW,CAAC,MAAM,SAAS,EAAE,CAAC,iBAAiB,CAAC;gBAC9C,UAAU,EAAE,IAAI,CAAC,SAAS;gBAC1B,QAAQ,EAAE,IAAI,CAAC,OAAO;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,SAAS;SACN,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,WAAW,CAAC,MAAM,SAAS,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Command } from "commander";
2
+ import { TuningEnginesClient } from "../client";
3
+ export declare function registerTenantCommands(program: Command, getClient: () => TuningEnginesClient): void;
4
+ //# sourceMappingURL=tenant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.d.ts","sourceRoot":"","sources":["../../src/commands/tenant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAqChD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,mBAAmB,GACnC,IAAI,CAmQN"}