@nio-cli/cli 0.8.0 → 0.9.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/dist/app/ai-client.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { spawnPortable } from '../lib/proc.js';
|
|
2
2
|
import { installOpencodeGlobal, NIO_OPERATOR_MODEL, NIO_AI_BASE_URL } from '../lib/clients/client-configs.js';
|
|
3
3
|
import { isBinaryInstalled } from '../lib/clients/client-install.js';
|
|
4
4
|
import { c, sym } from '../lib/colors.js';
|
|
@@ -19,7 +19,7 @@ export async function ensureHeadroomAndWire() {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
export async function launchAiClient(opts, deps = {}) {
|
|
22
|
-
const spawnFn = deps.spawnFn ??
|
|
22
|
+
const spawnFn = deps.spawnFn ?? spawnPortable;
|
|
23
23
|
const isInstalled = deps.isInstalled ?? isBinaryInstalled;
|
|
24
24
|
await ensureHeadroomAndWire();
|
|
25
25
|
if (!isInstalled('opencode')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-client.js","sourceRoot":"","sources":["../../src/app/ai-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ai-client.js","sourceRoot":"","sources":["../../src/app/ai-client.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC9G,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAOvC,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,MAAc;QACxB,KAAK,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAaD,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI,CAAC;QACH,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,wBAAwB,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACnF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAiC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAqC,EACrC,OAAqB,EAAE;IAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,iBAAiB,CAAC;IAE1D,MAAM,qBAAqB,EAAE,CAAC;IAE9B,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,mEAAmE,CAC3F,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,OAAO,CACnB,UAAU,EACV,CAAC,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,EACnD,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CACpC,CAAC;QACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,uCAAuC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,13 +1,30 @@
|
|
|
1
1
|
import { loadSession } from "../../../lib/auth/session-store.js";
|
|
2
|
+
import { createUserRepository } from "../../../adapters/pg/user-repository.js";
|
|
2
3
|
import { brand } from "../../../brand.js";
|
|
3
4
|
import { box, c, sym, cmd } from "../../../lib/colors.js";
|
|
4
5
|
export async function requireLocalSessionStep() {
|
|
5
6
|
const session = await loadSession();
|
|
6
|
-
if (session)
|
|
7
|
+
if (!session)
|
|
8
|
+
return needAuthBox("Você ainda não está autenticado.", { suggestRegister: true });
|
|
9
|
+
if (Number.isFinite(Date.parse(session.expiresAt)) && new Date(session.expiresAt) <= new Date()) {
|
|
10
|
+
return needAuthBox("Sua sessão local expirou.");
|
|
11
|
+
}
|
|
12
|
+
let userExists = false;
|
|
13
|
+
try {
|
|
14
|
+
userExists = (await createUserRepository().findById(session.userId)) !== null;
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
7
17
|
return session;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
18
|
+
}
|
|
19
|
+
if (!userExists) {
|
|
20
|
+
return needAuthBox(`O usuário da sessão local (id ${session.userId}) não existe mais no banco.`);
|
|
21
|
+
}
|
|
22
|
+
return session;
|
|
23
|
+
}
|
|
24
|
+
function needAuthBox(reason, opts = {}) {
|
|
25
|
+
console.log(box(`${c.yellow(sym.warn)} ${c.bold(reason)}\n` +
|
|
26
|
+
(opts.suggestRegister ? `${c.dim("crie um usuário:")} ${cmd(`${brand.name} register`)}\n` : "") +
|
|
27
|
+
`${c.dim("entre de novo:")} ${cmd(`${brand.name} login`)}\n` +
|
|
11
28
|
`${c.dim("ou seja conduzido:")} ${cmd(`${brand.name} start`)}`, { borderColor: "yellow", title: "Autenticação necessária" }));
|
|
12
29
|
process.exit(1);
|
|
13
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-step.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/auth-step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,oCAAoC,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-step.js","sourceRoot":"","sources":["../../../../src/cli/commands/init/auth-step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,oCAAoC,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAY1D,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;IACpC,IAAI,CAAC,OAAO;QACV,OAAO,WAAW,CAAC,kCAAkC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpF,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QAChG,OAAO,WAAW,CAAC,2BAA2B,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,CAAC;QACH,UAAU,GAAG,CAAC,MAAM,oBAAoB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QAGP,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,WAAW,CAChB,iCAAiC,OAAO,CAAC,MAAM,6BAA6B,CAC7E,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,OAAsC,EAAE;IAC3E,OAAO,CAAC,GAAG,CACT,GAAG,CACD,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;QACzC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI;QAC5D,GAAG,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,QAAQ,CAAC,EAAE,EAChE,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAC5D,CACF,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nio-cli/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Orquestrador de ambientes de desenvolvimento: escolhe um perfil, responde um wizard e a CLI (com auxílio de IA via MCP) materializa toolchains, linguagens, frameworks, dotfiles e IDE.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|