@joao.dadas/lume 0.0.0-stage → 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 CHANGED
@@ -1,3 +1,21 @@
1
- # Temporary Holding Version
1
+ # @joao.dadas/lume
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Adoção do [lume](https://github.com/joaodadas/lume) por agente. Cole no seu agente (Claude Code, Codex, Cursor), na raiz do projeto, novo ou existente:
4
+
5
+ ```text
6
+ Aplique o lume neste projeto: rode `npx -y @joao.dadas/lume@latest init` e siga exatamente o que ele responder, uma etapa por vez, até o `next` ser `pronto`.
7
+ ```
8
+
9
+ ## Comandos
10
+
11
+ | Comando | O que faz |
12
+ |---|---|
13
+ | `lume init [--layout=sidebar\|offcanvas\|topbar] [--atualizar=sim\|nao]` | Uma etapa por chamada, em JSON (`etapa`, `next`, `say`, `instruction`, `run`, `rules`, `details`): layout, atualização (quando o pacote é mais novo que o `lume.json`), base, todos os componentes, skill, migração e pronto |
14
+ | `lume check [--json]` | Confere o projeto contra a registry da versão do `lume.json`; sai 1 se houver violação |
15
+ | `lume prompt` | Imprime o texto para colar no agente |
16
+
17
+ Em projeto existente, o lume substitui a interface antiga de uma vez: sem pasta paralela, sem alias desviado e sem componente antigo com a aparência do lume. O `init` grava o `lume.json` (`versao` e `layout`), que é o sinal de adoção que o CI usa para rodar o `check`.
18
+
19
+ Os componentes vêm da registry do shadcn (`joaodadas/lume/<item>#vX.Y.Z`); este pacote traz só o `init` e o `check`, sem dependência. As regras de cada verificação estão em [docs/adocao/comando-unico.md](https://github.com/joaodadas/lume/blob/main/docs/adocao/comando-unico.md).
20
+
21
+ Apache-2.0.
package/bin/lume.mjs ADDED
@@ -0,0 +1,78 @@
1
+ #!/usr/bin/env node
2
+ // lume: adoção do lume por agente.
3
+ // lume init [--layout=sidebar|offcanvas|topbar] [--atualizar=sim|nao]
4
+ // uma etapa por chamada, em JSON
5
+ // lume check [--json] confere o projeto; sai 1 se houver violação
6
+ // lume prompt o texto para colar no agente
7
+
8
+ import { readFileSync } from "node:fs";
9
+ import { conferir, relatorio } from "../src/check.mjs";
10
+ import { passo } from "../src/init.mjs";
11
+
12
+ const pkg = JSON.parse(
13
+ readFileSync(new URL("../package.json", import.meta.url), "utf8"),
14
+ );
15
+
16
+ const PROMPT = `Aplique o lume neste projeto: rode \`npx -y @joao.dadas/lume@latest init\` e siga exatamente o que ele responder, uma etapa por vez, até o \`next\` ser \`pronto\`.`;
17
+
18
+ function argumento(nome) {
19
+ const a = process.argv.find((x) => x.startsWith(`--${nome}=`));
20
+ return a ? a.slice(nome.length + 3) : undefined;
21
+ }
22
+
23
+ const comando = process.argv[2];
24
+ const versao = argumento("versao") ?? process.env.LUME_VERSAO ?? pkg.version;
25
+ const raiz = argumento("dir") ?? process.cwd();
26
+
27
+ async function main() {
28
+ if (comando === "init") {
29
+ const r = await passo(raiz, {
30
+ versao,
31
+ layout: argumento("layout"),
32
+ atualizar: argumento("atualizar"),
33
+ });
34
+ process.stdout.write(`${JSON.stringify(r, null, 2)}\n`);
35
+ return 0;
36
+ }
37
+ if (comando === "check") {
38
+ const r = await conferir(raiz, {
39
+ versao: argumento("versao"),
40
+ versaoPadrao: pkg.version,
41
+ });
42
+ if (process.argv.includes("--json"))
43
+ process.stdout.write(`${JSON.stringify(r, null, 2)}\n`);
44
+ else process.stdout.write(`${relatorio(r)}\n`);
45
+ return r.ok ? 0 : 1;
46
+ }
47
+ if (comando === "prompt") {
48
+ process.stdout.write(`${PROMPT}\n`);
49
+ return 0;
50
+ }
51
+ if (comando === "--version" || comando === "-v") {
52
+ process.stdout.write(`${pkg.version}\n`);
53
+ return 0;
54
+ }
55
+ process.stdout.write(
56
+ [
57
+ `lume ${pkg.version}`,
58
+ "",
59
+ " lume init [--layout=sidebar|offcanvas|topbar] [--atualizar=sim|nao] adota o lume, uma etapa por chamada (JSON para o agente)",
60
+ " lume check [--json] confere o projeto; sai 1 se houver violação",
61
+ " lume prompt o texto para colar no seu agente",
62
+ "",
63
+ PROMPT,
64
+ "",
65
+ ].join("\n"),
66
+ );
67
+ return comando ? 2 : 0;
68
+ }
69
+
70
+ main().then(
71
+ (codigo) => {
72
+ process.exitCode = codigo;
73
+ },
74
+ (erro) => {
75
+ process.stderr.write(`lume: ${erro.message}\n`);
76
+ process.exitCode = 2;
77
+ },
78
+ );
package/package.json CHANGED
@@ -1,6 +1,30 @@
1
1
  {
2
2
  "name": "@joao.dadas/lume",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.4.0",
4
+ "description": "Adoção do lume por agente: um init guiado, etapa por etapa, e um check que confere o projeto contra a registry.",
5
+ "type": "module",
6
+ "bin": {
7
+ "lume": "./bin/lume.mjs"
8
+ },
9
+ "files": [
10
+ "bin",
11
+ "src",
12
+ "README.md"
13
+ ],
14
+ "engines": {
15
+ "node": ">=20"
16
+ },
17
+ "license": "Apache-2.0",
18
+ "homepage": "https://lume-ashmont.vercel.app",
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/joaodadas/lume.git",
22
+ "directory": "cli"
23
+ },
24
+ "keywords": [
25
+ "lume",
26
+ "shadcn",
27
+ "design-system",
28
+ "agent"
29
+ ]
30
+ }