@miosa/cli 1.0.52 → 1.0.53

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 (56) hide show
  1. package/README.md +42 -65
  2. package/dist/app-manifest.d.ts +19 -0
  3. package/dist/app-manifest.d.ts.map +1 -1
  4. package/dist/app-manifest.js +39 -12
  5. package/dist/app-manifest.js.map +1 -1
  6. package/dist/bin/miosa.js +0 -9
  7. package/dist/bin/miosa.js.map +1 -1
  8. package/dist/commands/capabilities.d.ts.map +1 -1
  9. package/dist/commands/capabilities.js +5 -207
  10. package/dist/commands/capabilities.js.map +1 -1
  11. package/dist/commands/databases.d.ts.map +1 -1
  12. package/dist/commands/databases.js +0 -85
  13. package/dist/commands/databases.js.map +1 -1
  14. package/dist/commands/deploy.d.ts.map +1 -1
  15. package/dist/commands/deploy.js +2 -109
  16. package/dist/commands/deploy.js.map +1 -1
  17. package/dist/commands/docker-deploy.d.ts.map +1 -1
  18. package/dist/commands/docker-deploy.js +114 -0
  19. package/dist/commands/docker-deploy.js.map +1 -1
  20. package/dist/commands/enterprise-util.d.ts +1 -3
  21. package/dist/commands/enterprise-util.d.ts.map +1 -1
  22. package/dist/commands/enterprise-util.js +9 -25
  23. package/dist/commands/enterprise-util.js.map +1 -1
  24. package/dist/commands/logs.d.ts.map +1 -1
  25. package/dist/commands/logs.js +17 -171
  26. package/dist/commands/logs.js.map +1 -1
  27. package/dist/commands/{app.d.ts → machines.d.ts} +1 -1
  28. package/dist/commands/machines.d.ts.map +1 -0
  29. package/dist/commands/machines.js +29 -0
  30. package/dist/commands/machines.js.map +1 -0
  31. package/dist/commands/new.js +2 -2
  32. package/dist/commands/new.js.map +1 -1
  33. package/dist/commands/sandbox.d.ts.map +1 -1
  34. package/dist/commands/sandbox.js +42 -169
  35. package/dist/commands/sandbox.js.map +1 -1
  36. package/dist/config.d.ts +1 -24
  37. package/dist/config.d.ts.map +1 -1
  38. package/dist/config.js +0 -87
  39. package/dist/config.js.map +1 -1
  40. package/dist/miosa-linux-x64 +0 -0
  41. package/package.json +2 -3
  42. package/dist/app-advisor.d.ts +0 -80
  43. package/dist/app-advisor.d.ts.map +0 -1
  44. package/dist/app-advisor.js +0 -473
  45. package/dist/app-advisor.js.map +0 -1
  46. package/dist/commands/app.d.ts.map +0 -1
  47. package/dist/commands/app.js +0 -115
  48. package/dist/commands/app.js.map +0 -1
  49. package/dist/commands/command-overview.d.ts +0 -13
  50. package/dist/commands/command-overview.d.ts.map +0 -1
  51. package/dist/commands/command-overview.js +0 -50
  52. package/dist/commands/command-overview.js.map +0 -1
  53. package/dist/commands/context.d.ts +0 -3
  54. package/dist/commands/context.d.ts.map +0 -1
  55. package/dist/commands/context.js +0 -248
  56. package/dist/commands/context.js.map +0 -1
@@ -1,50 +0,0 @@
1
- import chalk from "chalk";
2
- import { isJsonMode, printJson } from "./util.js";
3
- function optionFlags(option) {
4
- return option.flags;
5
- }
6
- export function commandTree(command, parentPath = "") {
7
- const name = command.name();
8
- const path = parentPath ? `${parentPath} ${name}` : name;
9
- const children = command.commands
10
- .map((child) => commandTree(child, path));
11
- return {
12
- name,
13
- path,
14
- aliases: command.aliases(),
15
- description: command.description(),
16
- options: command.options.map(optionFlags),
17
- children,
18
- };
19
- }
20
- function printTree(node, indent = "", isLast = true) {
21
- const connector = indent ? (isLast ? "`- " : "+- ") : "";
22
- const aliasText = node.aliases.length > 0 ? chalk.dim(` (${node.aliases.join(", ")})`) : "";
23
- const description = node.description ? chalk.dim(` - ${node.description}`) : "";
24
- console.log(`${indent}${connector}${chalk.bold(node.name)}${aliasText}${description}`);
25
- const childIndent = indent + (indent ? (isLast ? " " : "| ") : "");
26
- node.children.forEach((child, index) => {
27
- printTree(child, childIndent, index === node.children.length - 1);
28
- });
29
- }
30
- export function register(program) {
31
- program
32
- .command("command-overview")
33
- .alias("commands")
34
- .description("Print a tree view of available MIOSA CLI commands")
35
- .option("--json", "Output as JSON")
36
- .action((opts) => {
37
- const tree = commandTree(program);
38
- if (isJsonMode(opts)) {
39
- printJson(tree);
40
- return;
41
- }
42
- console.log();
43
- printTree(tree);
44
- console.log();
45
- console.log(chalk.dim("Use '<command> --help' for detailed flags and examples."));
46
- console.log(chalk.dim("Machine-readable form: miosa command-overview --json"));
47
- console.log();
48
- });
49
- }
50
- //# sourceMappingURL=command-overview.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-overview.js","sourceRoot":"","sources":["../../src/commands/command-overview.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAWlD,SAAS,WAAW,CAAC,MAAc;IACjC,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgB,EAAE,UAAU,GAAG,EAAE;IAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ;SAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAE5C,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;QACzC,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAAiB,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,IAAI;IAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,MAAM,SAAS,GACb,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,WAAW,EAAE,CAAC,CAAC;IAEvF,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACrC,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAgB;IACvC,OAAO;SACJ,OAAO,CAAC,kBAAkB,CAAC;SAC3B,KAAK,CAAC,UAAU,CAAC;SACjB,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,CAAC,IAAwB,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { Command } from "commander";
2
- export declare function register(program: Command): void;
3
- //# sourceMappingURL=context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0GzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0M/C"}
@@ -1,248 +0,0 @@
1
- import chalk from "chalk";
2
- import { applyNamedContext, contextFromConfig, deleteNamedContext, getContextsPath, loadConfig, loadContextStore, redactKey, saveConfig, saveContextStore, saveNamedContext, } from "../config.js";
3
- import { UserError } from "../errors.js";
4
- import { handleError, isJsonMode, printJson } from "./util.js";
5
- function jsonMode(opts) {
6
- const direct = opts.json;
7
- const nested = typeof opts.opts === "function"
8
- ? opts.opts().json
9
- : false;
10
- return Boolean(direct || nested || isJsonMode());
11
- }
12
- function contextForOutput(context) {
13
- return {
14
- name: context.name,
15
- endpoint: context.endpoint,
16
- api_key: redactKey(context.api_key),
17
- tenant: context.tenant,
18
- workspace: context.workspace,
19
- region: context.region,
20
- default_host: context.default_host,
21
- output: context.output,
22
- created_at: context.created_at,
23
- updated_at: context.updated_at,
24
- };
25
- }
26
- function assertContextName(name) {
27
- if (!/^[A-Za-z0-9_.-]+$/.test(name)) {
28
- throw new UserError(`Invalid context name: ${name}`, "Use letters, numbers, dots, underscores, and hyphens.");
29
- }
30
- }
31
- function printContextTable(active, contexts) {
32
- if (contexts.length === 0) {
33
- console.log(chalk.dim("No contexts saved yet."));
34
- console.log(chalk.dim("Run: miosa context save <name>"));
35
- return;
36
- }
37
- const widths = {
38
- name: Math.max(7, ...contexts.map((ctx) => ctx.name.length + (ctx.name === active ? 2 : 0))),
39
- workspace: Math.max(9, ...contexts.map((ctx) => (ctx.workspace ?? "").length)),
40
- tenant: Math.max(6, ...contexts.map((ctx) => (ctx.tenant ?? "").length)),
41
- };
42
- console.log();
43
- console.log([
44
- chalk.bold("Context".padEnd(widths.name)),
45
- chalk.bold("Workspace".padEnd(widths.workspace)),
46
- chalk.bold("Tenant".padEnd(widths.tenant)),
47
- chalk.bold("Endpoint"),
48
- ].join(" "));
49
- for (const context of contexts) {
50
- const marker = context.name === active ? "* " : " ";
51
- console.log([
52
- `${marker}${context.name}`.padEnd(widths.name),
53
- (context.workspace ?? "-").padEnd(widths.workspace),
54
- (context.tenant ?? "-").padEnd(widths.tenant),
55
- context.endpoint,
56
- ].join(" "));
57
- }
58
- console.log();
59
- }
60
- function updateActiveContext(values) {
61
- const store = loadContextStore();
62
- if (!store.active)
63
- return null;
64
- const context = store.contexts[store.active];
65
- if (!context)
66
- return null;
67
- const updated = {
68
- ...context,
69
- ...values,
70
- updated_at: new Date().toISOString(),
71
- };
72
- store.contexts[store.active] = updated;
73
- saveContextStore(store);
74
- return updated;
75
- }
76
- export function register(program) {
77
- const context = program
78
- .command("context")
79
- .alias("contexts")
80
- .description("Manage named CLI contexts for accounts, tenants, and workspaces");
81
- context
82
- .command("ls")
83
- .alias("list")
84
- .description("List saved contexts")
85
- .option("--json", "Output as JSON")
86
- .action((opts) => {
87
- try {
88
- const store = loadContextStore();
89
- const contexts = Object.values(store.contexts).sort((a, b) => a.name.localeCompare(b.name));
90
- if (jsonMode(opts)) {
91
- printJson({
92
- active: store.active,
93
- contexts: contexts.map(contextForOutput),
94
- path: getContextsPath(),
95
- });
96
- return;
97
- }
98
- printContextTable(store.active, contexts);
99
- }
100
- catch (err) {
101
- handleError(err);
102
- }
103
- });
104
- context
105
- .command("current")
106
- .description("Show the active context")
107
- .option("--json", "Output as JSON")
108
- .action((opts) => {
109
- try {
110
- const store = loadContextStore();
111
- const current = store.active ? store.contexts[store.active] : null;
112
- if (jsonMode(opts)) {
113
- printJson({
114
- active: store.active,
115
- context: current ? contextForOutput(current) : null,
116
- });
117
- return;
118
- }
119
- if (!current) {
120
- console.log(chalk.dim("No active context."));
121
- return;
122
- }
123
- printContextTable(store.active, [current]);
124
- }
125
- catch (err) {
126
- handleError(err);
127
- }
128
- });
129
- context
130
- .command("save <name>")
131
- .description("Save the current auth and scope settings as a named context")
132
- .option("--json", "Output as JSON")
133
- .action((name, opts) => {
134
- try {
135
- assertContextName(name);
136
- const saved = saveNamedContext(name, contextFromConfig(name));
137
- if (jsonMode(opts)) {
138
- printJson({ ok: true, context: contextForOutput(saved) });
139
- return;
140
- }
141
- console.log(`${chalk.green("Saved")} context ${chalk.bold(name)} ${chalk.dim(`(${getContextsPath()})`)}`);
142
- }
143
- catch (err) {
144
- handleError(err);
145
- }
146
- });
147
- context
148
- .command("use <name>")
149
- .description("Switch the active CLI context")
150
- .option("--json", "Output as JSON")
151
- .action((name, opts) => {
152
- try {
153
- const applied = applyNamedContext(name);
154
- if (!applied) {
155
- throw new UserError(`Context not found: ${name}`, "Run: miosa context ls");
156
- }
157
- if (jsonMode(opts)) {
158
- printJson({ ok: true, active: name, context: contextForOutput(applied) });
159
- return;
160
- }
161
- console.log(`${chalk.green("Using")} context ${chalk.bold(name)}`);
162
- }
163
- catch (err) {
164
- handleError(err);
165
- }
166
- });
167
- context
168
- .command("show <name>")
169
- .description("Show one saved context")
170
- .option("--json", "Output as JSON")
171
- .action((name, opts) => {
172
- try {
173
- const store = loadContextStore();
174
- const saved = store.contexts[name];
175
- if (!saved) {
176
- throw new UserError(`Context not found: ${name}`, "Run: miosa context ls");
177
- }
178
- if (jsonMode(opts)) {
179
- printJson({ context: contextForOutput(saved), active: store.active === name });
180
- return;
181
- }
182
- printContextTable(store.active, [saved]);
183
- }
184
- catch (err) {
185
- handleError(err);
186
- }
187
- });
188
- context
189
- .command("set <key> <value>")
190
- .description("Set default tenant, workspace, region, endpoint, or host in the active context")
191
- .option("--json", "Output as JSON")
192
- .action((key, value, opts) => {
193
- try {
194
- const allowed = ["tenant", "workspace", "region", "endpoint", "default_host"];
195
- if (!allowed.includes(key)) {
196
- throw new UserError(`Unknown context key: ${key}`, `Valid keys: ${allowed.join(", ")}`);
197
- }
198
- const patch = { [key]: value === "-" ? null : value };
199
- saveConfig(patch);
200
- const updated = updateActiveContext(patch);
201
- const config = loadConfig();
202
- if (jsonMode(opts)) {
203
- printJson({
204
- ok: true,
205
- active: loadContextStore().active,
206
- context: updated ? contextForOutput(updated) : null,
207
- config: {
208
- tenant: config.tenant,
209
- workspace: config.workspace,
210
- region: config.region,
211
- endpoint: config.endpoint,
212
- default_host: config.default_host,
213
- },
214
- });
215
- return;
216
- }
217
- console.log(`${chalk.dim("Set")} ${chalk.bold(key)} ${chalk.dim("=")} ${value}`);
218
- if (!updated) {
219
- console.log(chalk.dim("No active context saved; updated current config only."));
220
- }
221
- }
222
- catch (err) {
223
- handleError(err);
224
- }
225
- });
226
- context
227
- .command("rm <name>")
228
- .alias("delete")
229
- .description("Delete a saved context")
230
- .option("--json", "Output as JSON")
231
- .action((name, opts) => {
232
- try {
233
- const deleted = deleteNamedContext(name);
234
- if (!deleted) {
235
- throw new UserError(`Context not found: ${name}`, "Run: miosa context ls");
236
- }
237
- if (jsonMode(opts)) {
238
- printJson({ ok: true, deleted: name });
239
- return;
240
- }
241
- console.log(`${chalk.dim("Deleted")} context ${chalk.bold(name)}`);
242
- }
243
- catch (err) {
244
- handleError(err);
245
- }
246
- });
247
- }
248
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}