@semacode/cli 1.5.29 → 1.5.31

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 (105) hide show
  1. package/dist/comandos.js +69 -0
  2. package/dist/comandos.js.map +1 -1
  3. package/dist/dev/index.d.ts +18 -0
  4. package/dist/dev/index.js +143 -0
  5. package/dist/dev/index.js.map +1 -0
  6. package/dist/guard.d.ts +35 -0
  7. package/dist/guard.js +164 -0
  8. package/dist/guard.js.map +1 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/init/index.d.ts +23 -0
  11. package/dist/init/index.js +112 -0
  12. package/dist/init/index.js.map +1 -0
  13. package/dist/init/templates.d.ts +11 -0
  14. package/dist/init/templates.js +660 -0
  15. package/dist/init/templates.js.map +1 -0
  16. package/dist/sync/index.d.ts +24 -0
  17. package/dist/sync/index.js +174 -0
  18. package/dist/sync/index.js.map +1 -0
  19. package/exemplos/.prepack-generated +1 -0
  20. package/node_modules/@sema/gerador-css/package.json +14 -7
  21. package/node_modules/@sema/gerador-css/src/index.ts +605 -0
  22. package/node_modules/@sema/gerador-css/tsconfig.json +13 -0
  23. package/node_modules/@sema/gerador-css/tsconfig.tsbuildinfo +1 -0
  24. package/node_modules/@sema/gerador-dart/package.json +14 -7
  25. package/node_modules/@sema/gerador-dart/src/index.ts +52 -0
  26. package/node_modules/@sema/gerador-dart/tsconfig.json +13 -0
  27. package/node_modules/@sema/gerador-dart/tsconfig.tsbuildinfo +1 -0
  28. package/node_modules/@sema/gerador-html/package.json +14 -7
  29. package/node_modules/@sema/gerador-html/src/index.ts +185 -0
  30. package/node_modules/@sema/gerador-html/tsconfig.json +13 -0
  31. package/node_modules/@sema/gerador-html/tsconfig.tsbuildinfo +1 -0
  32. package/node_modules/@sema/gerador-javascript/package.json +14 -7
  33. package/node_modules/@sema/gerador-javascript/src/index.ts +461 -0
  34. package/node_modules/@sema/gerador-javascript/tsconfig.json +13 -0
  35. package/node_modules/@sema/gerador-javascript/tsconfig.tsbuildinfo +1 -0
  36. package/node_modules/@sema/gerador-lua/package.json +14 -7
  37. package/node_modules/@sema/gerador-lua/src/index.ts +359 -0
  38. package/node_modules/@sema/gerador-lua/tsconfig.json +13 -0
  39. package/node_modules/@sema/gerador-lua/tsconfig.tsbuildinfo +1 -0
  40. package/node_modules/@sema/gerador-python/package.json +14 -7
  41. package/node_modules/@sema/gerador-python/src/index.ts +850 -0
  42. package/node_modules/@sema/gerador-python/tsconfig.json +13 -0
  43. package/node_modules/@sema/gerador-python/tsconfig.tsbuildinfo +1 -0
  44. package/node_modules/@sema/gerador-typescript/package.json +14 -7
  45. package/node_modules/@sema/gerador-typescript/src/index.ts +876 -0
  46. package/node_modules/@sema/gerador-typescript/tsconfig.json +13 -0
  47. package/node_modules/@sema/gerador-typescript/tsconfig.tsbuildinfo +1 -0
  48. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.d.ts +22 -0
  49. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +97 -0
  50. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +1 -0
  51. package/node_modules/@sema/nucleo/dist/index.d.ts +1 -0
  52. package/node_modules/@sema/nucleo/dist/index.js +1 -0
  53. package/node_modules/@sema/nucleo/dist/index.js.map +1 -1
  54. package/node_modules/@sema/nucleo/package.json +10 -7
  55. package/node_modules/@sema/nucleo/src/ast/tipos.ts +207 -0
  56. package/node_modules/@sema/nucleo/src/diagnosticos/index.ts +43 -0
  57. package/node_modules/@sema/nucleo/src/diagnosticos/melhorador.ts +130 -0
  58. package/node_modules/@sema/nucleo/src/formatador/index.ts +530 -0
  59. package/node_modules/@sema/nucleo/src/index.ts +184 -0
  60. package/node_modules/@sema/nucleo/src/ir/conversor.ts +1037 -0
  61. package/node_modules/@sema/nucleo/src/ir/modelos.ts +403 -0
  62. package/node_modules/@sema/nucleo/src/lexer/lexer.ts +166 -0
  63. package/node_modules/@sema/nucleo/src/lexer/tokens.ts +79 -0
  64. package/node_modules/@sema/nucleo/src/parser/gramatica.ebnf +41 -0
  65. package/node_modules/@sema/nucleo/src/parser/parser.ts +936 -0
  66. package/node_modules/@sema/nucleo/src/persistencia/contratos.ts +379 -0
  67. package/node_modules/@sema/nucleo/src/semantico/analisador.ts +3126 -0
  68. package/node_modules/@sema/nucleo/src/semantico/estruturas.ts +665 -0
  69. package/node_modules/@sema/nucleo/src/semantico/seguranca.ts +362 -0
  70. package/node_modules/@sema/nucleo/src/util/arquivos.ts +28 -0
  71. package/node_modules/@sema/nucleo/tsconfig.json +9 -0
  72. package/node_modules/@sema/nucleo/tsconfig.tsbuildinfo +1 -0
  73. package/node_modules/@sema/padroes/package.json +10 -7
  74. package/node_modules/@sema/padroes/src/index.ts +382 -0
  75. package/node_modules/@sema/padroes/tsconfig.json +9 -0
  76. package/node_modules/@sema/padroes/tsconfig.tsbuildinfo +1 -0
  77. package/package.json +74 -75
  78. package/AGENTS.md +0 -294
  79. package/AGENT_CONTEXT_PACK.json +0 -164
  80. package/LICENSE +0 -22
  81. package/SEMA_BRIEF.curto.txt +0 -11
  82. package/SEMA_BRIEF.md +0 -511
  83. package/SEMA_BRIEF.micro.txt +0 -9
  84. package/SEMA_INDEX.json +0 -7588
  85. package/docs/AGENT_STARTER.md +0 -109
  86. package/docs/api.md +0 -82
  87. package/docs/cli.md +0 -175
  88. package/docs/como-ensinar-a-sema-para-ia.md +0 -155
  89. package/docs/deploy.md +0 -93
  90. package/docs/documentacao.md +0 -88
  91. package/docs/env.md +0 -105
  92. package/docs/extensao-vscode.md +0 -53
  93. package/docs/fluxo-pratico-ia-sema.md +0 -187
  94. package/docs/instalacao-e-primeiro-uso.md +0 -134
  95. package/docs/integracao-com-ia.md +0 -110
  96. package/docs/mcp.md +0 -292
  97. package/docs/pagamento-ponta-a-ponta.md +0 -171
  98. package/docs/persistencia-vendor-first.md +0 -151
  99. package/docs/prompt-base-ia-sema.md +0 -111
  100. package/docs/repositories.md +0 -54
  101. package/docs/rollback.md +0 -49
  102. package/docs/seguranca.md +0 -126
  103. package/docs/sintaxe.md +0 -218
  104. package/llms-full.txt +0 -35
  105. package/llms.txt +0 -18
@@ -0,0 +1,23 @@
1
+ export interface InitInput {
2
+ template_nome: string;
3
+ saida_caminho: string;
4
+ nome_modulo: string;
5
+ parametros?: Record<string, string>;
6
+ }
7
+ export interface InitOutput {
8
+ contrato_gerado: string;
9
+ caminho_absoluto: string;
10
+ linhas_geradas: number;
11
+ campos_para_editar: string[];
12
+ }
13
+ export declare function listarTemplatesDisponiveis(categoriaFiltro?: string): Promise<{
14
+ templates: Array<{
15
+ nome: string;
16
+ categoria: string;
17
+ descricao: string;
18
+ linhas_base: number;
19
+ }>;
20
+ total: number;
21
+ }>;
22
+ export declare function gerarContratoDeTemplate(input: InitInput): Promise<InitOutput>;
23
+ export declare function comandoInit(args: string[]): Promise<void>;
@@ -0,0 +1,112 @@
1
+ // Comando sema init --template
2
+ // Contrato: cli_init_templates.sema
3
+ import * as fs from 'fs';
4
+ import * as path from 'path';
5
+ import { listarTemplates, obterTemplate } from './templates.js';
6
+ export async function listarTemplatesDisponiveis(categoriaFiltro) {
7
+ const templates = listarTemplates(categoriaFiltro);
8
+ return {
9
+ templates: templates.map(t => ({
10
+ nome: t.nome,
11
+ categoria: t.categoria,
12
+ descricao: t.descricao,
13
+ linhas_base: t.linhasBase
14
+ })),
15
+ total: templates.length
16
+ };
17
+ }
18
+ export async function gerarContratoDeTemplate(input) {
19
+ // Validar template
20
+ const template = obterTemplate(input.template_nome);
21
+ if (!template) {
22
+ throw new Error(`Template '${input.template_nome}' nao encontrado. Use --listar para ver disponiveis.`);
23
+ }
24
+ // Validar caminho de saida
25
+ if (!input.saida_caminho.endsWith('.sema')) {
26
+ throw new Error('O arquivo de saida deve ter extensao .sema');
27
+ }
28
+ // Verificar se arquivo ja existe
29
+ const caminhoAbsoluto = path.resolve(input.saida_caminho);
30
+ if (fs.existsSync(caminhoAbsoluto)) {
31
+ throw new Error(`Arquivo ja existe em ${input.saida_caminho}. Use --force para sobrescrever.`);
32
+ }
33
+ // Validar nome do modulo
34
+ if (!/^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*$/.test(input.nome_modulo)) {
35
+ throw new Error('Nome do modulo deve ser snake_case (ex: meu_app.pedidos)');
36
+ }
37
+ // Garantir que diretorio existe
38
+ const dir = path.dirname(caminhoAbsoluto);
39
+ if (!fs.existsSync(dir)) {
40
+ throw new Error(`Diretorio de saida nao existe: ${dir}`);
41
+ }
42
+ // Gerar conteudo
43
+ const conteudo = template.conteudo(input.nome_modulo);
44
+ // Escrever arquivo
45
+ fs.writeFileSync(caminhoAbsoluto, conteudo, 'utf-8');
46
+ const linhas = conteudo.split('\n').length;
47
+ return {
48
+ contrato_gerado: conteudo,
49
+ caminho_absoluto: caminhoAbsoluto,
50
+ linhas_geradas: linhas,
51
+ campos_para_editar: template.camposEditaveis
52
+ };
53
+ }
54
+ // Handler para CLI
55
+ export async function comandoInit(args) {
56
+ const listarFlag = args.includes('--listar') || args.includes('-l');
57
+ if (listarFlag) {
58
+ const { templates, total } = await listarTemplatesDisponiveis();
59
+ console.log(`\nšŸ“¦ Templates disponiveis (${total}):\n`);
60
+ const categorias = [...new Set(templates.map(t => t.categoria))];
61
+ for (const cat of categorias) {
62
+ console.log(`${cat.toUpperCase()}:`);
63
+ const daCategoria = templates.filter(t => t.categoria === cat);
64
+ for (const t of daCategoria) {
65
+ console.log(` • ${t.nome.padEnd(15)} - ${t.descricao} (~${t.linhas_base} linhas)`);
66
+ }
67
+ console.log('');
68
+ }
69
+ return;
70
+ }
71
+ // Parse args
72
+ const templateIdx = args.findIndex(a => a === '--template' || a === '-t');
73
+ const saidaIdx = args.findIndex(a => a === '--saida' || a === '-o');
74
+ const moduloIdx = args.findIndex(a => a === '--modulo' || a === '-m');
75
+ const force = args.includes('--force') || args.includes('-f');
76
+ if (templateIdx === -1 || saidaIdx === -1 || moduloIdx === -1) {
77
+ console.error('Uso: sema init --template <nome> --saida <caminho> --modulo <nome_modulo>');
78
+ console.error(' sema init --listar');
79
+ process.exit(1);
80
+ }
81
+ const templateNome = args[templateIdx + 1];
82
+ const saidaCaminho = args[saidaIdx + 1];
83
+ const nomeModulo = args[moduloIdx + 1];
84
+ if (!templateNome || !saidaCaminho || !nomeModulo) {
85
+ console.error('Erro: Todos os parametros --template, --saida e --modulo sao obrigatorios');
86
+ process.exit(1);
87
+ }
88
+ try {
89
+ // Se force, remove arquivo existente
90
+ if (force && fs.existsSync(saidaCaminho)) {
91
+ fs.unlinkSync(saidaCaminho);
92
+ }
93
+ const resultado = await gerarContratoDeTemplate({
94
+ template_nome: templateNome,
95
+ saida_caminho: saidaCaminho,
96
+ nome_modulo: nomeModulo
97
+ });
98
+ console.log(`\nāœ… Contrato gerado com sucesso!`);
99
+ console.log(` šŸ“„ ${resultado.caminho_absoluto}`);
100
+ console.log(` šŸ“Š ${resultado.linhas_geradas} linhas`);
101
+ console.log(` āœļø Campos para editar: ${resultado.campos_para_editar.join(', ')}`);
102
+ console.log(`\nProximos passos:`);
103
+ console.log(` 1. sema validar ${saidaCaminho}`);
104
+ console.log(` 2. Edite os campos: ${resultado.campos_para_editar.join(', ')}`);
105
+ console.log(` 3. Implemente o codigo vinculado\n`);
106
+ }
107
+ catch (err) {
108
+ console.error(`\nāŒ Erro: ${err instanceof Error ? err.message : String(err)}\n`);
109
+ process.exit(1);
110
+ }
111
+ }
112
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/init/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface TemplateInit {
2
+ nome: string;
3
+ categoria: string;
4
+ descricao: string;
5
+ linhasBase: number;
6
+ camposEditaveis: string[];
7
+ conteudo: (moduloNome: string) => string;
8
+ }
9
+ export declare const templatesDisponiveis: Record<string, TemplateInit>;
10
+ export declare function listarTemplates(categoriaFiltro?: string): TemplateInit[];
11
+ export declare function obterTemplate(nome: string): TemplateInit | null;