@nio-cli/cli 0.2.0 → 0.3.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 (77) hide show
  1. package/README.md +68 -26
  2. package/dist/app/ai-client.js +44 -0
  3. package/dist/app/ai-client.js.map +1 -0
  4. package/dist/app/docker-manager.js +12 -9
  5. package/dist/app/docker-manager.js.map +1 -1
  6. package/dist/cli/commands/ai.js +61 -0
  7. package/dist/cli/commands/ai.js.map +1 -0
  8. package/dist/cli/commands/auth.js +91 -70
  9. package/dist/cli/commands/auth.js.map +1 -1
  10. package/dist/cli/commands/config.js +4 -2
  11. package/dist/cli/commands/config.js.map +1 -1
  12. package/dist/cli/commands/debug.js +9 -0
  13. package/dist/cli/commands/debug.js.map +1 -1
  14. package/dist/cli/commands/docker.js +25 -0
  15. package/dist/cli/commands/docker.js.map +1 -1
  16. package/dist/cli/commands/docs/content.js +26 -6
  17. package/dist/cli/commands/docs/content.js.map +1 -1
  18. package/dist/cli/commands/init/auth-step.js +2 -1
  19. package/dist/cli/commands/init/auth-step.js.map +1 -1
  20. package/dist/cli/commands/init/handoff.js +20 -0
  21. package/dist/cli/commands/init/handoff.js.map +1 -0
  22. package/dist/cli/commands/init/index.js +24 -38
  23. package/dist/cli/commands/init/index.js.map +1 -1
  24. package/dist/cli/commands/open.js +8 -0
  25. package/dist/cli/commands/open.js.map +1 -1
  26. package/dist/cli/commands/start.js +8 -0
  27. package/dist/cli/commands/start.js.map +1 -0
  28. package/dist/cli/flows/onboarding.js +116 -0
  29. package/dist/cli/flows/onboarding.js.map +1 -0
  30. package/dist/cli/program.js +58 -0
  31. package/dist/cli/program.js.map +1 -0
  32. package/dist/cli.js +26 -53
  33. package/dist/cli.js.map +1 -1
  34. package/dist/gateway/config.js +1 -2
  35. package/dist/gateway/config.js.map +1 -1
  36. package/dist/lib/auth/gateway-client.js +22 -42
  37. package/dist/lib/auth/gateway-client.js.map +1 -1
  38. package/dist/lib/auth/gateway-process.js +54 -0
  39. package/dist/lib/auth/gateway-process.js.map +1 -0
  40. package/dist/lib/auth/nio-config.js +10 -1
  41. package/dist/lib/auth/nio-config.js.map +1 -1
  42. package/dist/lib/clients/client-configs.js +24 -10
  43. package/dist/lib/clients/client-configs.js.map +1 -1
  44. package/dist/lib/debug.js +6 -0
  45. package/dist/lib/debug.js.map +1 -0
  46. package/dist/lib/headroom.js +44 -0
  47. package/dist/lib/headroom.js.map +1 -0
  48. package/dist/lib/ide-tasks.js +54 -0
  49. package/dist/lib/ide-tasks.js.map +1 -0
  50. package/dist/lib/load-env.js +31 -2
  51. package/dist/lib/load-env.js.map +1 -1
  52. package/dist/matrix-logo.js +43 -11
  53. package/dist/matrix-logo.js.map +1 -1
  54. package/dist/tui/app.js +155 -0
  55. package/dist/tui/app.js.map +1 -0
  56. package/dist/tui/components.js +137 -0
  57. package/dist/tui/components.js.map +1 -0
  58. package/dist/tui/debug.js +17 -0
  59. package/dist/tui/debug.js.map +1 -0
  60. package/dist/tui/index.js +2 -0
  61. package/dist/tui/index.js.map +1 -0
  62. package/dist/tui/launch.js +64 -0
  63. package/dist/tui/launch.js.map +1 -0
  64. package/dist/tui/markdown.js +40 -0
  65. package/dist/tui/markdown.js.map +1 -0
  66. package/dist/tui/opencode.js +33 -0
  67. package/dist/tui/opencode.js.map +1 -0
  68. package/dist/tui/palette-source.js +71 -0
  69. package/dist/tui/palette-source.js.map +1 -0
  70. package/dist/tui/palette.js +58 -0
  71. package/dist/tui/palette.js.map +1 -0
  72. package/dist/tui/state.js +132 -0
  73. package/dist/tui/state.js.map +1 -0
  74. package/dist/tui/theme.js +14 -0
  75. package/dist/tui/theme.js.map +1 -0
  76. package/headroom/docker-compose.yml +27 -0
  77. package/package.json +11 -1
@@ -0,0 +1,116 @@
1
+ import { confirm, select } from "../../lib/prompts.js";
2
+ import { box, c, cmd, sym } from "../../lib/colors.js";
3
+ import { dlog } from "../../lib/debug.js";
4
+ import { checkConfig } from "../../lib/auth/nio-config.js";
5
+ import { loadSession } from "../../lib/auth/session-store.js";
6
+ import { gatewayHealth, ensureGatewayRunning } from "../../lib/auth/gateway-process.js";
7
+ import { createSessionRepository } from "../../adapters/pg/session-repository.js";
8
+ const realDeps = {
9
+ configOk: async () => (await checkConfig()).length === 0,
10
+ gatewayHealth: () => gatewayHealth(),
11
+ loadSession,
12
+ findActive: (userId) => createSessionRepository().findActiveByUser(userId),
13
+ };
14
+ export async function resolveStage(deps = {}) {
15
+ const d = { ...realDeps, ...deps };
16
+ if (!(await d.configOk()))
17
+ return "config";
18
+ if (!(await d.gatewayHealth()))
19
+ return "gateway";
20
+ const session = await d.loadSession();
21
+ if (!session || new Date(session.expiresAt).getTime() <= Date.now())
22
+ return "login";
23
+ const active = await d.findActive(session.userId);
24
+ if (!active)
25
+ return "session";
26
+ return "ready";
27
+ }
28
+ const STAGE_META = {
29
+ config: { label: "Configurar credenciais", resumeCmd: "nio config setup" },
30
+ gateway: { label: "Subir o gateway de auth", resumeCmd: "nio-gateway" },
31
+ login: { label: "Entrar", resumeCmd: "nio login" },
32
+ session: { label: "Montar a sessão", resumeCmd: "nio init" },
33
+ };
34
+ function gatewayDownBox() {
35
+ return box(`${c.yellow(sym.warn)} ${c.bold("Não consegui subir o nio-gateway automaticamente.")}\n` +
36
+ `${c.dim("abra noutra janela:")} ${cmd("nio-gateway")}\n` +
37
+ `${c.dim("depois retome com:")} ${cmd("nio start")}`, { borderColor: "yellow", title: "Gateway necessário" });
38
+ }
39
+ async function runStage(stage) {
40
+ if (stage === "config") {
41
+ const { runConfigWizard } = await import("../../lib/auth/nio-config.js");
42
+ await runConfigWizard();
43
+ return;
44
+ }
45
+ if (stage === "gateway") {
46
+ const result = await ensureGatewayRunning();
47
+ if (!result.ok)
48
+ console.log(gatewayDownBox());
49
+ return;
50
+ }
51
+ if (stage === "login") {
52
+ const auth = await import("../commands/auth.js");
53
+ const choice = await select({
54
+ message: "Você já tem usuário no NIO?",
55
+ choices: [
56
+ { name: "Sim — entrar", value: "login" },
57
+ { name: "Não — criar um agora", value: "register" },
58
+ ],
59
+ default: "login",
60
+ });
61
+ await (choice === "register" ? auth.runRegister() : auth.runLogin());
62
+ return;
63
+ }
64
+ const { runInitWizard } = await import("../commands/init/index.js");
65
+ await runInitWizard();
66
+ }
67
+ async function handleReady() {
68
+ const session = await loadSession();
69
+ const active = session ? await createSessionRepository().findActiveByUser(session.userId) : null;
70
+ if (!active)
71
+ return;
72
+ console.log(`\n${c.green(sym.ok)} Tudo pronto — sessão ativa: ${c.bold(active.name)} (${active.profile}).`);
73
+ if (!process.stdin.isTTY)
74
+ return;
75
+ if (await confirm({ message: "Abrir a sessão agora?", default: true })) {
76
+ const { handoffToSession } = await import("../commands/init/index.js");
77
+ await handoffToSession(active);
78
+ }
79
+ }
80
+ async function askToProceed(meta) {
81
+ if (!process.stdin.isTTY) {
82
+ console.log(`Próximo passo: ${cmd(meta.resumeCmd)}`);
83
+ return false;
84
+ }
85
+ const go = await confirm({
86
+ message: `Próximo: ${meta.label} (${cmd(meta.resumeCmd)}). Seguir agora?`,
87
+ default: true,
88
+ });
89
+ if (!go) {
90
+ console.log(c.dim(`Retome quando quiser: ${cmd("nio start")} (ou \`${meta.resumeCmd}\` direto)`));
91
+ }
92
+ return go;
93
+ }
94
+ export async function continueChain(opts) {
95
+ if (opts.from === "cold") {
96
+ const { animateMatrixLogo } = await import("../../matrix-logo.js");
97
+ await animateMatrixLogo();
98
+ }
99
+ for (let guard = 0; guard < 8; guard++) {
100
+ const stage = await resolveStage();
101
+ dlog("esteira: stage =", stage);
102
+ if (stage === "ready")
103
+ return handleReady();
104
+ const meta = STAGE_META[stage];
105
+ if (!(await askToProceed(meta)))
106
+ return;
107
+ await runStage(stage);
108
+ if (stage === "session")
109
+ return;
110
+ if ((await resolveStage()) === stage) {
111
+ console.log(c.dim(`Ainda em "${meta.label}". Resolva o que faltou e rode ${cmd("nio start")} de novo.`));
112
+ return;
113
+ }
114
+ }
115
+ }
116
+ //# sourceMappingURL=onboarding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../../src/cli/flows/onboarding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { Command } from "commander";
2
+ import { VERSION } from "../version.js";
3
+ import { brand } from "../brand.js";
4
+ import { renderMatrixLogo } from "../matrix-logo.js";
5
+ import { registerAuthCommands } from "./commands/auth.js";
6
+ import { registerInitCommand } from "./commands/init/index.js";
7
+ import { registerSyncCommand } from "./commands/sync.js";
8
+ import { registerSkillsCommands } from "./commands/skills.js";
9
+ import { registerCleanCommand } from "./commands/clean.js";
10
+ import { registerExecCommand } from "./commands/exec.js";
11
+ import { registerPlanCommand } from "./commands/plan.js";
12
+ import { registerValidatePlanCommand } from "./commands/validate-plan.js";
13
+ import { registerCompletionCommand } from "./commands/completion.js";
14
+ import { registerLangCommand } from "./commands/lang.js";
15
+ import { registerSessionsCommand } from "./commands/sessions.js";
16
+ import { registerDebugCommand } from "./commands/debug.js";
17
+ import { registerAgentsCommand } from "./commands/agents.js";
18
+ import { registerCommandCommand } from "./commands/command.js";
19
+ import { registerOpenCommand } from "./commands/open.js";
20
+ import { registerDepsCommand } from "./commands/deps.js";
21
+ import { registerDockerCommand } from "./commands/docker.js";
22
+ import { registerSecurityCommands } from "./commands/security.js";
23
+ import { registerDocsCommand } from "./commands/docs.js";
24
+ import { registerConfigCommand } from "./commands/config.js";
25
+ import { registerStartCommand } from "./commands/start.js";
26
+ import { registerAiCommand } from "./commands/ai.js";
27
+ export function buildProgram(logoShown = () => false) {
28
+ const program = new Command();
29
+ program
30
+ .name(brand.name)
31
+ .description(`CLI do ${brand.productName} (${brand.productFullName}) — rode \`nio\` sem argumentos pra esteira guiada`)
32
+ .version(VERSION)
33
+ .addHelpText("beforeAll", () => (logoShown() ? "" : renderMatrixLogo()));
34
+ registerAuthCommands(program);
35
+ registerInitCommand(program);
36
+ registerSyncCommand(program);
37
+ registerSkillsCommands(program);
38
+ registerCleanCommand(program);
39
+ registerExecCommand(program);
40
+ registerPlanCommand(program);
41
+ registerValidatePlanCommand(program);
42
+ registerCompletionCommand(program);
43
+ registerLangCommand(program);
44
+ registerSessionsCommand(program);
45
+ registerDebugCommand(program);
46
+ registerAgentsCommand(program);
47
+ registerCommandCommand(program);
48
+ registerOpenCommand(program);
49
+ registerDepsCommand(program);
50
+ registerDockerCommand(program);
51
+ registerSecurityCommands(program);
52
+ registerDocsCommand(program);
53
+ registerConfigCommand(program);
54
+ registerStartCommand(program);
55
+ registerAiCommand(program);
56
+ return program;
57
+ }
58
+ //# sourceMappingURL=program.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -1,59 +1,32 @@
1
1
  #!/usr/bin/env node
2
2
  import "./lib/load-env.js";
3
- import { Command } from "commander";
4
- import { VERSION } from "./version.js";
5
- import { brand } from "./brand.js";
6
- import { renderMatrixLogo } from "./matrix-logo.js";
3
+ import { DEBUG } from "./lib/debug.js";
4
+ import { animateMatrixLogo } from "./matrix-logo.js";
7
5
  import { notifyCliIfUpdate } from "./lib/version-check.js";
8
- import { registerAuthCommands } from "./cli/commands/auth.js";
9
- import { registerInitCommand } from "./cli/commands/init/index.js";
10
- import { registerSyncCommand } from "./cli/commands/sync.js";
11
- import { registerSkillsCommands } from "./cli/commands/skills.js";
12
- import { registerCleanCommand } from "./cli/commands/clean.js";
13
- import { registerExecCommand } from "./cli/commands/exec.js";
14
- import { registerPlanCommand } from "./cli/commands/plan.js";
15
- import { registerValidatePlanCommand } from "./cli/commands/validate-plan.js";
16
- import { registerCompletionCommand } from "./cli/commands/completion.js";
17
- import { registerLangCommand } from "./cli/commands/lang.js";
18
- import { registerSessionsCommand } from "./cli/commands/sessions.js";
19
- import { registerDebugCommand } from "./cli/commands/debug.js";
20
- import { registerAgentsCommand } from "./cli/commands/agents.js";
21
- import { registerCommandCommand } from "./cli/commands/command.js";
22
- import { registerOpenCommand } from "./cli/commands/open.js";
23
- import { registerDepsCommand } from "./cli/commands/deps.js";
24
- import { registerDockerCommand } from "./cli/commands/docker.js";
25
- import { registerSecurityCommands } from "./cli/commands/security.js";
26
- import { registerDocsCommand } from "./cli/commands/docs.js";
27
- import { registerConfigCommand } from "./cli/commands/config.js";
6
+ import { buildProgram } from "./cli/program.js";
7
+ import { continueChain } from "./cli/flows/onboarding.js";
28
8
  notifyCliIfUpdate();
29
- const program = new Command();
30
- program
31
- .name(brand.name)
32
- .description(`CLI do ${brand.productName} (${brand.productFullName})`)
33
- .version(VERSION)
34
- .addHelpText("beforeAll", () => renderMatrixLogo());
35
- registerAuthCommands(program);
36
- registerInitCommand(program);
37
- registerSyncCommand(program);
38
- registerSkillsCommands(program);
39
- registerCleanCommand(program);
40
- registerExecCommand(program);
41
- registerPlanCommand(program);
42
- registerValidatePlanCommand(program);
43
- registerCompletionCommand(program);
44
- registerLangCommand(program);
45
- registerSessionsCommand(program);
46
- registerDebugCommand(program);
47
- registerAgentsCommand(program);
48
- registerCommandCommand(program);
49
- registerOpenCommand(program);
50
- registerDepsCommand(program);
51
- registerDockerCommand(program);
52
- registerSecurityCommands(program);
53
- registerDocsCommand(program);
54
- registerConfigCommand(program);
55
- program.parseAsync(process.argv).catch((err) => {
56
- console.error(`Erro: ${err.message}`);
9
+ let logoShown = false;
10
+ const program = buildProgram(() => logoShown);
11
+ const fail = (err) => {
12
+ if (DEBUG)
13
+ console.error(err);
14
+ else
15
+ console.error(`Erro: ${err.message}\n(rode com NIO_DEBUG=1 pro stack trace completo)`);
57
16
  process.exit(1);
58
- });
17
+ };
18
+ const args = process.argv.slice(2);
19
+ const bare = args.length === 0;
20
+ const topHelp = bare || (args.length === 1 && (args[0] === "-h" || args[0] === "--help" || args[0] === "help"));
21
+ if (bare && process.stdout.isTTY && process.stdin.isTTY) {
22
+ continueChain({ from: "cold" }).catch(fail);
23
+ }
24
+ else {
25
+ const helpPromise = topHelp
26
+ ? animateMatrixLogo().then(() => {
27
+ logoShown = true;
28
+ })
29
+ : Promise.resolve();
30
+ helpPromise.then(() => program.parseAsync(process.argv)).catch(fail);
31
+ }
59
32
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,iBAAiB,EAAE,CAAC;AAGpB,IAAI,SAAS,GAAG,KAAK,CAAC;AACtB,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAE9C,MAAM,IAAI,GAAG,CAAC,GAAY,EAAS,EAAE;IACnC,IAAI,KAAK;QAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;QACzB,OAAO,CAAC,KAAK,CAAC,SAAU,GAAa,CAAC,OAAO,mDAAmD,CAAC,CAAC;IACvG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;AAC/B,MAAM,OAAO,GACX,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;AAElG,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAExD,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;KAAM,CAAC;IAEN,MAAM,WAAW,GAAG,OAAO;QACzB,CAAC,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YAC5B,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;QACJ,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC"}
@@ -1,8 +1,7 @@
1
1
  import { env } from '../brand.js';
2
2
  export const GATEWAY_PORT = Number(env('GATEWAY_PORT')?.trim()) || 3000;
3
3
  export const GATEWAY_HOST = env('GATEWAY_HOST')?.trim() || '127.0.0.1';
4
- export const KONG_PROXY_PORT = Number(env('KONG_PROXY_PORT')?.trim()) || 8000;
5
- export const GATEWAY_URL = env('GATEWAY_URL')?.trim() || `http://127.0.0.1:${KONG_PROXY_PORT}`;
4
+ export const GATEWAY_URL = env('GATEWAY_URL')?.trim() || `http://127.0.0.1:${GATEWAY_PORT}`;
6
5
  export function getJwtSecret() {
7
6
  const secret = process.env.JWT_SECRET?.trim();
8
7
  if (!secret) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/gateway/config.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAGlC,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;AAOxE,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,WAAW,CAAC;AAGvE,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;AAG9E,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,oBAAoB,eAAe,EAAE,CAAC;AAG/F,MAAM,UAAU,YAAY;IACxB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACX,sGAAsG,CACzG,CAAC;IACN,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAGD,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/gateway/config.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAGlC,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;AAOxE,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,WAAW,CAAC;AAQvE,MAAM,CAAC,MAAM,WAAW,GACtB,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,oBAAoB,YAAY,EAAE,CAAC;AAGnE,MAAM,UAAU,YAAY;IACxB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACX,sGAAsG,CACzG,CAAC;IACN,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAGD,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { GATEWAY_URL } from '../../gateway/config.js';
2
2
  import { getOrCreateGatewayToken } from './gateway-token.js';
3
+ import { dlog } from '../debug.js';
3
4
  function unreachableError(cause) {
4
5
  return new Error(`Não consegui falar com o nio-gateway em ${GATEWAY_URL} — ele está rodando? ` +
5
6
  `Rode \`nio-gateway\` numa outra janela antes de tentar de novo. (${cause.message ?? cause})`);
@@ -14,30 +15,29 @@ async function baseHeaders() {
14
15
  async function authedHeaders(token) {
15
16
  return { ...(await baseHeaders()), Authorization: `Bearer ${token}` };
16
17
  }
17
- async function post(path, body, headers) {
18
+ async function gwFetch(method, path, init = {}) {
19
+ dlog(`${method} ${GATEWAY_URL}${path}`);
18
20
  let res;
19
21
  try {
20
- res = await fetch(`${GATEWAY_URL}${path}`, { method: 'POST', headers, body: JSON.stringify(body) });
22
+ res = await fetch(`${GATEWAY_URL}${path}`, { method, ...init });
21
23
  }
22
24
  catch (err) {
23
25
  throw unreachableError(err);
24
26
  }
27
+ dlog(` → ${res.status} ${res.statusText}`);
28
+ return res;
29
+ }
30
+ async function post(path, body, headers) {
31
+ const res = await gwFetch('POST', path, { headers, body: JSON.stringify(body) });
25
32
  if (!res.ok)
26
33
  throw await errorFromResponse(res);
27
34
  return (await res.json());
28
35
  }
29
36
  export async function gatewayLogin(name, password) {
30
- let res;
31
- try {
32
- res = await fetch(`${GATEWAY_URL}/login`, {
33
- method: 'POST',
34
- headers: await baseHeaders(),
35
- body: JSON.stringify({ name, password }),
36
- });
37
- }
38
- catch (err) {
39
- throw unreachableError(err);
40
- }
37
+ const res = await gwFetch('POST', '/login', {
38
+ headers: await baseHeaders(),
39
+ body: JSON.stringify({ name, password }),
40
+ });
41
41
  if (res.status === 401)
42
42
  return null;
43
43
  if (!res.ok)
@@ -45,17 +45,10 @@ export async function gatewayLogin(name, password) {
45
45
  return (await res.json());
46
46
  }
47
47
  export async function gatewayVerify2fa(challengeId, code, type) {
48
- let res;
49
- try {
50
- res = await fetch(`${GATEWAY_URL}/verify-2fa`, {
51
- method: 'POST',
52
- headers: await baseHeaders(),
53
- body: JSON.stringify({ challengeId, code, type }),
54
- });
55
- }
56
- catch (err) {
57
- throw unreachableError(err);
58
- }
48
+ const res = await gwFetch('POST', '/verify-2fa', {
49
+ headers: await baseHeaders(),
50
+ body: JSON.stringify({ challengeId, code, type }),
51
+ });
59
52
  const body = (await res.json().catch(() => ({})));
60
53
  if (res.status === 401 || res.status === 429) {
61
54
  return {
@@ -70,29 +63,16 @@ export async function gatewayVerify2fa(challengeId, code, type) {
70
63
  return { ok: true, ...body, backupCodesRemaining: body.backupCodesRemaining };
71
64
  }
72
65
  export async function gatewayLogout(sessionId) {
73
- let res;
74
- try {
75
- res = await fetch(`${GATEWAY_URL}/logout`, {
76
- method: 'POST',
77
- headers: await baseHeaders(),
78
- body: JSON.stringify({ sessionId }),
79
- });
80
- }
81
- catch (err) {
82
- throw unreachableError(err);
83
- }
66
+ const res = await gwFetch('POST', '/logout', {
67
+ headers: await baseHeaders(),
68
+ body: JSON.stringify({ sessionId }),
69
+ });
84
70
  if (!res.ok)
85
71
  throw await errorFromResponse(res);
86
72
  }
87
73
  export const gatewaySecurity = {
88
74
  status: async (token) => {
89
- let res;
90
- try {
91
- res = await fetch(`${GATEWAY_URL}/security/status`, { headers: await authedHeaders(token) });
92
- }
93
- catch (err) {
94
- throw unreachableError(err);
95
- }
75
+ const res = await gwFetch('GET', '/security/status', { headers: await authedHeaders(token) });
96
76
  if (!res.ok)
97
77
  throw await errorFromResponse(res);
98
78
  return (await res.json());
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-client.js","sourceRoot":"","sources":["../../../src/lib/auth/gateway-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway-client.js","sourceRoot":"","sources":["../../../src/lib/auth/gateway-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { spawn } from 'node:child_process';
2
+ import { existsSync } from 'node:fs';
3
+ import { basename, dirname, join } from 'node:path';
4
+ import { GATEWAY_URL } from '../../gateway/config.js';
5
+ import { isBinaryInstalled } from '../clients/client-install.js';
6
+ import { c, sym } from '../colors.js';
7
+ import { dlog } from '../debug.js';
8
+ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
9
+ export async function gatewayHealth(timeoutMs = 1500) {
10
+ const ctrl = new AbortController();
11
+ const timer = setTimeout(() => ctrl.abort(), timeoutMs);
12
+ try {
13
+ const res = await fetch(`${GATEWAY_URL}/health`, { signal: ctrl.signal });
14
+ dlog(`gateway /health => ${res.status}`);
15
+ return res.status === 200;
16
+ }
17
+ catch (err) {
18
+ dlog(`gateway /health falhou: ${err.message}`);
19
+ return false;
20
+ }
21
+ finally {
22
+ clearTimeout(timer);
23
+ }
24
+ }
25
+ export function resolveGatewayCommand() {
26
+ if (isBinaryInstalled('nio-gateway'))
27
+ return { cmd: 'nio-gateway', args: [] };
28
+ const entry = process.argv[1];
29
+ if (!entry)
30
+ return null;
31
+ const sibling = join(dirname(entry), 'gateway', basename(entry).endsWith('.ts') ? 'index.ts' : 'index.js');
32
+ return existsSync(sibling) ? { cmd: process.execPath, args: [sibling] } : null;
33
+ }
34
+ export async function ensureGatewayRunning() {
35
+ if (await gatewayHealth())
36
+ return { ok: true, started: false };
37
+ const command = resolveGatewayCommand();
38
+ if (!command)
39
+ return { ok: false, started: false };
40
+ dlog(`subindo o gateway: ${command.cmd} ${command.args.join(' ')}`);
41
+ const child = spawn(command.cmd, command.args, { detached: true, stdio: 'ignore' });
42
+ child.unref();
43
+ for (let i = 0; i < 40; i++) {
44
+ await sleep(300);
45
+ if (await gatewayHealth()) {
46
+ console.log(` ${c.green(sym.ok)} nio-gateway no ar (pid ${child.pid}) — ` +
47
+ c.dim(`pare com \`kill ${child.pid}\` quando quiser`));
48
+ return { ok: true, started: true };
49
+ }
50
+ }
51
+ child.kill();
52
+ return { ok: false, started: false };
53
+ }
54
+ //# sourceMappingURL=gateway-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-process.js","sourceRoot":"","sources":["../../../src/lib/auth/gateway-process.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { brand, homePath } from '../../brand.js';
4
4
  import { closePool, ping } from '../../adapters/pg/client.js';
5
5
  import { input, password, confirm } from '../prompts.js';
6
6
  import { c, sym, box, cmd } from '../colors.js';
7
+ import { dlog } from '../debug.js';
7
8
  export const CONFIG_FILE = homePath('config.env');
8
9
  const PG_URL = /^postgres(ql)?:\/\/.+/i;
9
10
  export function parseEnvFile(text) {
@@ -60,11 +61,19 @@ export function validateConfigShape(env) {
60
61
  }
61
62
  return problems;
62
63
  }
64
+ function maskUrl(url) {
65
+ return url.replace(/:\/\/([^:/@]+):[^@]*@/, '://$1:***@');
66
+ }
63
67
  export async function checkConfig() {
68
+ dlog('config: NIO_DATABASE_URL =', process.env.NIO_DATABASE_URL ? maskUrl(process.env.NIO_DATABASE_URL) : '(vazio)');
69
+ dlog('config: JWT_SECRET =', process.env.JWT_SECRET ? `(${process.env.JWT_SECRET.length} chars)` : '(vazio)');
70
+ dlog('config: NIO_GATEWAY_URL =', process.env.NIO_GATEWAY_URL ?? '(default :3000 = nio-gateway direto)');
64
71
  const problems = validateConfigShape(process.env);
65
72
  if (!problems.some((p) => p.key === 'NIO_DATABASE_URL')) {
66
73
  await closePool();
67
- if (!(await ping())) {
74
+ const ok = await ping();
75
+ dlog('config: SELECT 1 =>', ok ? 'ok' : 'FALHOU');
76
+ if (!ok) {
68
77
  problems.push({
69
78
  key: 'NIO_DATABASE_URL',
70
79
  issue: 'unreachable',
@@ -1 +1 @@
1
- {"version":3,"file":"nio-config.js","sourceRoot":"","sources":["../../../src/lib/auth/nio-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nio-config.js","sourceRoot":"","sources":["../../../src/lib/auth/nio-config.ts"],"names":[],"mappings":"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"}