@semacode/cli 1.5.44 → 1.5.45
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/SEMA_BRIEF.curto.txt +4 -4
- package/SEMA_BRIEF.md +11 -4
- package/SEMA_BRIEF.micro.txt +3 -3
- package/SEMA_INDEX.json +237 -117
- package/dist/comandos.js +5 -0
- package/dist/comandos.js.map +1 -1
- package/dist/index.part01.d.ts +1 -1
- package/dist/index.part01.js +1 -0
- package/dist/index.part01.js.map +1 -1
- package/dist/semaChatCommand.d.ts +1 -0
- package/dist/semaChatCommand.js +43 -0
- package/dist/semaChatCommand.js.map +1 -0
- package/dist/semaChatRuntime.d.ts +23 -0
- package/dist/semaChatRuntime.js +202 -0
- package/dist/semaChatRuntime.js.map +1 -0
- package/docs/env.md +2 -2
- package/docs/extensao-vscode.md +10 -1
- package/docs/fluxo-pratico-ia-sema.md +56 -56
- package/docs/sintaxe.md +1 -1
- package/node_modules/@sema/gerador-css/package.json +1 -1
- package/node_modules/@sema/gerador-dart/package.json +1 -1
- package/node_modules/@sema/gerador-html/package.json +1 -1
- package/node_modules/@sema/gerador-javascript/package.json +1 -1
- package/node_modules/@sema/gerador-lua/package.json +1 -1
- package/node_modules/@sema/gerador-python/package.json +1 -1
- package/node_modules/@sema/gerador-typescript/package.json +1 -1
- package/node_modules/@sema/nucleo/package.json +1 -1
- package/node_modules/@sema/padroes/package.json +1 -1
- package/package.json +10 -10
package/dist/comandos.js
CHANGED
|
@@ -14,6 +14,7 @@ import { gerarPacoteContextoChat, } from "./contexto.js";
|
|
|
14
14
|
import { comandoInit } from "./init/index.js";
|
|
15
15
|
import { comandoDev } from "./dev/index.js";
|
|
16
16
|
import { comandoSyncPrisma } from "./sync/index.js";
|
|
17
|
+
import { comandoSemaChat } from "./semaChatCommand.js";
|
|
17
18
|
// ---------------------------------------------------------------------------
|
|
18
19
|
// Handlers dos novos comandos (modulares, com contrato .sema)
|
|
19
20
|
// ---------------------------------------------------------------------------
|
|
@@ -127,6 +128,9 @@ async function comandoSyncPrismaHandler(posicionais, args, emJson) {
|
|
|
127
128
|
return 1;
|
|
128
129
|
}
|
|
129
130
|
}
|
|
131
|
+
async function comandoSemaChatHandler(posicionais, args, emJson) {
|
|
132
|
+
return comandoSemaChat(posicionais, args, emJson);
|
|
133
|
+
}
|
|
130
134
|
async function comandoGuard(posicionais, _args, emJson) {
|
|
131
135
|
const { ativarGuarda, desativarGuarda, statusGuarda } = await import("./guard.js");
|
|
132
136
|
const baseProjeto = process.cwd();
|
|
@@ -170,5 +174,6 @@ export const REGISTRO_COMANDOS = {
|
|
|
170
174
|
"init": comandoInitHandler,
|
|
171
175
|
"dev": comandoDevHandler,
|
|
172
176
|
"sync": comandoSyncPrismaHandler,
|
|
177
|
+
"chat": comandoSemaChatHandler,
|
|
173
178
|
};
|
|
174
179
|
//# sourceMappingURL=comandos.js.map
|
package/dist/comandos.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comandos.js","sourceRoot":"","sources":["../src/comandos.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,4GAA4G;AAE5G;;;;;;;;GAQG;AAEH,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,GAGxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"comandos.js","sourceRoot":"","sources":["../src/comandos.ts"],"names":[],"mappings":"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"}
|
package/dist/index.part01.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { compilarCodigo, type IrModulo } from "@sema/nucleo";
|
|
|
2
2
|
import { analisarDriftLegado, type OpcoesDriftLegado } from "./drift.js";
|
|
3
3
|
import { type GuiaCapacidadeIaMap } from './agentContextTipos.js';
|
|
4
4
|
import { criarBriefingAgente, resumirDriftPorModulo } from "./index.part03.js";
|
|
5
|
-
export type Comando = "iniciar" | "init" | "dev" | "sync" | "runner" | "author" | "profile" | "validar" | "ast" | "ir" | "compilar" | "gerar" | "testar" | "diagnosticos" | "verificar" | "inspecionar" | "drift" | "impacto" | "renomear-semantico" | "importar" | "doctor" | "formatar" | "ajuda-ia" | "starter-ia" | "sync-ai-entrypoints" | "instalar-exemplos" | "preflight" | "mcp-instalar-chave" | "rule-packs" | "docs-impacto" | "finalizar-mudanca" | "resumo" | "prompt-curto" | "prompt-ia" | "prompt-ia-ui" | "prompt-ia-react" | "prompt-ia-sema-primeiro" | "exemplos-prompt-ia" | "contexto-ia";
|
|
5
|
+
export type Comando = "iniciar" | "init" | "dev" | "sync" | "chat" | "runner" | "author" | "profile" | "validar" | "ast" | "ir" | "compilar" | "gerar" | "testar" | "diagnosticos" | "verificar" | "inspecionar" | "drift" | "impacto" | "renomear-semantico" | "importar" | "doctor" | "formatar" | "ajuda-ia" | "starter-ia" | "sync-ai-entrypoints" | "instalar-exemplos" | "preflight" | "mcp-instalar-chave" | "rule-packs" | "docs-impacto" | "finalizar-mudanca" | "resumo" | "prompt-curto" | "prompt-ia" | "prompt-ia-ui" | "prompt-ia-react" | "prompt-ia-sema-primeiro" | "exemplos-prompt-ia" | "contexto-ia";
|
|
6
6
|
export interface ResultadoFormatacaoArquivo {
|
|
7
7
|
caminho: string;
|
|
8
8
|
alterado: boolean;
|
package/dist/index.part01.js
CHANGED
|
@@ -109,6 +109,7 @@ export function ajuda() {
|
|
|
109
109
|
"sema instalar-exemplos [--json]",
|
|
110
110
|
"sema preflight [comando] [--operation-code <codigo>] [--project-id <uuid>] [--json]",
|
|
111
111
|
"sema mcp-instalar-chave --stdin [--endpoint <url>] [--control-plane-url <url>] [--dry-run] [--json]",
|
|
112
|
+
"sema chat doctor [--json]",
|
|
112
113
|
"sema docs-impacto --intencao <acao> [--arquivo <caminho>] [--criar-ausentes] [--json]",
|
|
113
114
|
"sema finalizar-mudanca --intencao <acao> [--arquivo <caminho>] [--doc-lida <caminho>] [--json]",
|
|
114
115
|
"sema author briefing <arquivo.sema> [--json]",
|
package/dist/index.part01.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.part01.js","sourceRoot":"","sources":["../src/index.part01.ts"],"names":[],"mappings":"AAGA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAiB,MAAM,UAAU,CAAC;AACxD,OAAO,SAAS,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAsD9D,OAAO,EAAoB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKnE,OAAO,EAAE,UAAU,EAA0C,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.part01.js","sourceRoot":"","sources":["../src/index.part01.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function comandoSemaChat(posicionais: string[], _args: string[], emJson: boolean): Promise<number>;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// SEMA-GOVERNED: sema.produto.sema_chat
|
|
2
|
+
// Descrição: comando textual do Sema Chat para diagnóstico de ambientes locais.
|
|
3
|
+
import { diagnosticarRuntimesSemaChat, } from "./semaChatRuntime.js";
|
|
4
|
+
function renderizarRuntime(runtime) {
|
|
5
|
+
const linhas = [
|
|
6
|
+
`- ${runtime.nome}: ${runtime.status}`,
|
|
7
|
+
` comando: ${runtime.comandoPreferido}`,
|
|
8
|
+
];
|
|
9
|
+
if (runtime.versao)
|
|
10
|
+
linhas.push(` versão: ${runtime.versao}`);
|
|
11
|
+
if (runtime.caminhos.length > 0)
|
|
12
|
+
linhas.push(` caminho: ${runtime.caminhos[0]}`);
|
|
13
|
+
if (runtime.erro)
|
|
14
|
+
linhas.push(` erro: ${runtime.erro}`);
|
|
15
|
+
if (runtime.detalhes.length > 0)
|
|
16
|
+
linhas.push(` detalhes: ${runtime.detalhes.join("; ")}`);
|
|
17
|
+
linhas.push(` próximo passo: ${runtime.proximoPasso}`);
|
|
18
|
+
return linhas;
|
|
19
|
+
}
|
|
20
|
+
export async function comandoSemaChat(posicionais, _args, emJson) {
|
|
21
|
+
const subcomando = posicionais[0] ?? "doctor";
|
|
22
|
+
if (subcomando !== "doctor" && subcomando !== "status") {
|
|
23
|
+
console.error("Uso: sema chat doctor [--json]");
|
|
24
|
+
return 1;
|
|
25
|
+
}
|
|
26
|
+
const resultado = diagnosticarRuntimesSemaChat();
|
|
27
|
+
if (emJson) {
|
|
28
|
+
console.log(JSON.stringify(resultado, null, 2));
|
|
29
|
+
return resultado.prontoParaChat ? 0 : 1;
|
|
30
|
+
}
|
|
31
|
+
console.log("Sema Chat doctor");
|
|
32
|
+
console.log("Base principal: OpenCode");
|
|
33
|
+
console.log(`Workspace: ${resultado.workspace}`);
|
|
34
|
+
console.log(`Pronto para chat: ${resultado.prontoParaChat ? "sim" : "não"}`);
|
|
35
|
+
for (const runtime of resultado.runtimes) {
|
|
36
|
+
console.log(renderizarRuntime(runtime).join("\n"));
|
|
37
|
+
}
|
|
38
|
+
if (resultado.bloqueios.length > 0) {
|
|
39
|
+
console.log(`Bloqueios: ${resultado.bloqueios.join(", ")}`);
|
|
40
|
+
}
|
|
41
|
+
return resultado.prontoParaChat ? 0 : 1;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=semaChatCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semaChatCommand.js","sourceRoot":"","sources":["../src/semaChatCommand.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,gFAAgF;AAEhF,OAAO,EACL,4BAA4B,GAE7B,MAAM,sBAAsB,CAAC;AAE9B,SAAS,iBAAiB,CAAC,OAAyB;IAClD,MAAM,MAAM,GAAG;QACb,KAAK,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE;QACtC,cAAc,OAAO,CAAC,gBAAgB,EAAE;KACzC,CAAC;IACF,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClF,IAAI,OAAO,CAAC,IAAI;QAAE,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3F,MAAM,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,WAAqB,EACrB,KAAe,EACf,MAAe;IAEf,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IAC9C,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAChD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,SAAS,GAAG,4BAA4B,EAAE,CAAC;IACjD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,qBAAqB,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7E,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type StatusRuntimeChat = "carregado" | "parcial" | "ausente" | "inacessivel" | "bloqueado";
|
|
2
|
+
export type ProvedorChatLocal = "sema" | "opencode" | "minimax" | "codex";
|
|
3
|
+
export interface RuntimeChatLocal {
|
|
4
|
+
provedor: ProvedorChatLocal;
|
|
5
|
+
nome: string;
|
|
6
|
+
comandoPreferido: string;
|
|
7
|
+
comandosTestados: string[];
|
|
8
|
+
status: StatusRuntimeChat;
|
|
9
|
+
versao?: string;
|
|
10
|
+
caminhos: string[];
|
|
11
|
+
erro?: string;
|
|
12
|
+
detalhes: string[];
|
|
13
|
+
proximoPasso: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ResultadoSemaChatDoctor {
|
|
16
|
+
comando: "chat doctor";
|
|
17
|
+
workspace: string;
|
|
18
|
+
prontoParaChat: boolean;
|
|
19
|
+
runtimes: RuntimeChatLocal[];
|
|
20
|
+
bloqueios: string[];
|
|
21
|
+
avisos: string[];
|
|
22
|
+
}
|
|
23
|
+
export declare function diagnosticarRuntimesSemaChat(workspace?: string): ResultadoSemaChatDoctor;
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
// SEMA-GOVERNED: sema.produto.sema_chat
|
|
2
|
+
// Descrição: detecção local dos ambientes de execução usados pelo Sema Chat.
|
|
3
|
+
import { spawnSync } from "node:child_process";
|
|
4
|
+
const TIMEOUT_RUNTIME_MS = 8_000;
|
|
5
|
+
function limitarTexto(texto, limite = 500) {
|
|
6
|
+
const limpo = texto.replace(/\s+/g, " ").trim();
|
|
7
|
+
return limpo.length > limite ? `${limpo.slice(0, limite - 3)}...` : limpo;
|
|
8
|
+
}
|
|
9
|
+
function executar(comando, argumentos) {
|
|
10
|
+
const resultado = spawnSync(comando, argumentos, {
|
|
11
|
+
encoding: "utf8",
|
|
12
|
+
shell: process.platform === "win32",
|
|
13
|
+
timeout: TIMEOUT_RUNTIME_MS,
|
|
14
|
+
windowsHide: true,
|
|
15
|
+
});
|
|
16
|
+
return {
|
|
17
|
+
status: resultado.status,
|
|
18
|
+
stdout: limitarTexto(resultado.stdout ?? ""),
|
|
19
|
+
stderr: limitarTexto(resultado.stderr ?? ""),
|
|
20
|
+
erro: resultado.error?.message,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function localizar(comando) {
|
|
24
|
+
const resultado = process.platform === "win32"
|
|
25
|
+
? spawnSync("where.exe", [comando], {
|
|
26
|
+
encoding: "utf8",
|
|
27
|
+
timeout: TIMEOUT_RUNTIME_MS,
|
|
28
|
+
windowsHide: true,
|
|
29
|
+
})
|
|
30
|
+
: spawnSync("sh", ["-lc", `command -v ${comando}`], {
|
|
31
|
+
encoding: "utf8",
|
|
32
|
+
timeout: TIMEOUT_RUNTIME_MS,
|
|
33
|
+
});
|
|
34
|
+
if (resultado.status !== 0)
|
|
35
|
+
return [];
|
|
36
|
+
return (resultado.stdout ?? "").split(/\r?\n/).map((linha) => linha.trim()).filter(Boolean);
|
|
37
|
+
}
|
|
38
|
+
function primeiroTexto(execucao) {
|
|
39
|
+
return execucao.stdout || execucao.stderr || execucao.erro;
|
|
40
|
+
}
|
|
41
|
+
function statusExecucao(execucao) {
|
|
42
|
+
if (execucao.status === 0 && !execucao.erro)
|
|
43
|
+
return "carregado";
|
|
44
|
+
if (execucao.erro || execucao.stderr || execucao.status !== null)
|
|
45
|
+
return "inacessivel";
|
|
46
|
+
return "ausente";
|
|
47
|
+
}
|
|
48
|
+
function runtimeAusente(provedor, nome, comandoPreferido, comandosTestados, proximoPasso) {
|
|
49
|
+
return {
|
|
50
|
+
provedor,
|
|
51
|
+
nome,
|
|
52
|
+
comandoPreferido,
|
|
53
|
+
comandosTestados,
|
|
54
|
+
status: "ausente",
|
|
55
|
+
caminhos: [],
|
|
56
|
+
detalhes: [],
|
|
57
|
+
proximoPasso,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function diagnosticarSemaCli() {
|
|
61
|
+
const caminhos = localizar("sema");
|
|
62
|
+
if (caminhos.length === 0) {
|
|
63
|
+
return runtimeAusente("sema", "Sema CLI", "sema", ["sema --version"], "Peça ao humano para abrir o painel Sema, rodar o instalador de chave e repetir sema --version.");
|
|
64
|
+
}
|
|
65
|
+
const versao = executar("sema", ["--version"]);
|
|
66
|
+
if (versao.status !== 0) {
|
|
67
|
+
return {
|
|
68
|
+
provedor: "sema",
|
|
69
|
+
nome: "Sema CLI",
|
|
70
|
+
comandoPreferido: "sema",
|
|
71
|
+
comandosTestados: ["sema --version"],
|
|
72
|
+
status: statusExecucao(versao),
|
|
73
|
+
caminhos,
|
|
74
|
+
erro: primeiroTexto(versao),
|
|
75
|
+
detalhes: [],
|
|
76
|
+
proximoPasso: "Corrija a instalação local da Sema CLI antes de abrir o chat.",
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
const preflight = executar("sema", ["preflight", "resumo", "--json"]);
|
|
80
|
+
let decisao;
|
|
81
|
+
try {
|
|
82
|
+
decisao = JSON.parse(preflight.stdout || "{}")?.decisao;
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
decisao = undefined;
|
|
86
|
+
}
|
|
87
|
+
const autorizado = preflight.status === 0 && decisao === "use_cli_local";
|
|
88
|
+
return {
|
|
89
|
+
provedor: "sema",
|
|
90
|
+
nome: "Sema CLI",
|
|
91
|
+
comandoPreferido: "sema",
|
|
92
|
+
comandosTestados: ["sema --version", "sema preflight resumo --json"],
|
|
93
|
+
status: autorizado ? "carregado" : "bloqueado",
|
|
94
|
+
versao: versao.stdout,
|
|
95
|
+
caminhos,
|
|
96
|
+
erro: autorizado ? undefined : primeiroTexto(preflight) ?? "preflight_sem_decisao_use_cli_local",
|
|
97
|
+
detalhes: decisao ? [`decisao=${decisao}`] : [],
|
|
98
|
+
proximoPasso: autorizado
|
|
99
|
+
? "Sema CLI autorizada para governar o chat local."
|
|
100
|
+
: "Ajuste token/plano da Sema CLI; sem preflight use_cli_local o chat deve parar.",
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function diagnosticarOpenCode() {
|
|
104
|
+
const caminhos = localizar("opencode");
|
|
105
|
+
if (caminhos.length === 0) {
|
|
106
|
+
return runtimeAusente("opencode", "OpenCode CLI", "opencode", ["opencode --version"], "Instale a CLI do OpenCode e confirme opencode --version antes de prometer Sema Chat local.");
|
|
107
|
+
}
|
|
108
|
+
const versao = executar("opencode", ["--version"]);
|
|
109
|
+
return {
|
|
110
|
+
provedor: "opencode",
|
|
111
|
+
nome: "OpenCode CLI",
|
|
112
|
+
comandoPreferido: "opencode",
|
|
113
|
+
comandosTestados: ["opencode --version"],
|
|
114
|
+
status: versao.status === 0 ? "carregado" : statusExecucao(versao),
|
|
115
|
+
versao: versao.status === 0 ? versao.stdout : undefined,
|
|
116
|
+
caminhos,
|
|
117
|
+
erro: versao.status === 0 ? undefined : primeiroTexto(versao),
|
|
118
|
+
detalhes: [],
|
|
119
|
+
proximoPasso: versao.status === 0
|
|
120
|
+
? "OpenCode CLI carregada como runtime principal do Sema Chat local."
|
|
121
|
+
: "Corrija permissão/instalação do OpenCode CLI antes de abrir o Sema Chat.",
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function diagnosticarMiniMax() {
|
|
125
|
+
const caminhosMmx = localizar("mmx");
|
|
126
|
+
if (caminhosMmx.length > 0) {
|
|
127
|
+
const versao = executar("mmx", ["--version"]);
|
|
128
|
+
return {
|
|
129
|
+
provedor: "minimax",
|
|
130
|
+
nome: "MiniMax CLI",
|
|
131
|
+
comandoPreferido: "mmx",
|
|
132
|
+
comandosTestados: ["mmx --version"],
|
|
133
|
+
status: versao.status === 0 ? "carregado" : statusExecucao(versao),
|
|
134
|
+
versao: versao.status === 0 ? versao.stdout : undefined,
|
|
135
|
+
caminhos: caminhosMmx,
|
|
136
|
+
erro: versao.status === 0 ? undefined : primeiroTexto(versao),
|
|
137
|
+
detalhes: [],
|
|
138
|
+
proximoPasso: versao.status === 0
|
|
139
|
+
? "Rode mmx auth status ou mmx quota antes de consumir recursos MiniMax."
|
|
140
|
+
: "Reinstale mmx-cli e confirme mmx --version.",
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
const caminhosMinimax = localizar("minimax");
|
|
144
|
+
if (caminhosMinimax.length > 0) {
|
|
145
|
+
const versao = executar("minimax", ["--version"]);
|
|
146
|
+
const ajuda = executar("minimax", ["--help"]);
|
|
147
|
+
const pareceMavis = /mavis/i.test(`${ajuda.stdout} ${ajuda.stderr}`);
|
|
148
|
+
return {
|
|
149
|
+
provedor: "minimax",
|
|
150
|
+
nome: "MiniMax CLI",
|
|
151
|
+
comandoPreferido: "mmx",
|
|
152
|
+
comandosTestados: ["mmx --version", "minimax --version", "minimax --help"],
|
|
153
|
+
status: "parcial",
|
|
154
|
+
versao: versao.status === 0 ? versao.stdout : undefined,
|
|
155
|
+
caminhos: caminhosMinimax,
|
|
156
|
+
erro: pareceMavis ? "comando_minimax_responde_como_mavis_nao_mmx_oficial" : undefined,
|
|
157
|
+
detalhes: pareceMavis ? ["mmx ausente", "minimax encontrado, mas help cita Mavis"] : ["mmx ausente"],
|
|
158
|
+
proximoPasso: "Instale a CLI oficial com npm install -g mmx-cli e confirme mmx --version.",
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
return runtimeAusente("minimax", "MiniMax CLI", "mmx", ["mmx --version", "minimax --version"], "Instale a CLI oficial com npm install -g mmx-cli, autentique com mmx auth login e confirme mmx quota.");
|
|
162
|
+
}
|
|
163
|
+
function diagnosticarCodex() {
|
|
164
|
+
const caminhos = localizar("codex");
|
|
165
|
+
if (caminhos.length === 0) {
|
|
166
|
+
return runtimeAusente("codex", "Codex CLI", "codex", ["codex --version"], "Instale a CLI oficial do Codex e confirme codex --version.");
|
|
167
|
+
}
|
|
168
|
+
const versao = executar("codex", ["--version"]);
|
|
169
|
+
return {
|
|
170
|
+
provedor: "codex",
|
|
171
|
+
nome: "Codex CLI",
|
|
172
|
+
comandoPreferido: "codex",
|
|
173
|
+
comandosTestados: ["codex --version"],
|
|
174
|
+
status: versao.status === 0 ? "carregado" : statusExecucao(versao),
|
|
175
|
+
versao: versao.status === 0 ? versao.stdout : undefined,
|
|
176
|
+
caminhos,
|
|
177
|
+
erro: versao.status === 0 ? undefined : primeiroTexto(versao),
|
|
178
|
+
detalhes: [],
|
|
179
|
+
proximoPasso: versao.status === 0
|
|
180
|
+
? "Codex CLI carregada para ser chamada pelo Sema Chat."
|
|
181
|
+
: "Corrija permissão/instalação do Codex CLI antes de marcar o chat como pronto.",
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
export function diagnosticarRuntimesSemaChat(workspace = process.cwd()) {
|
|
185
|
+
const runtimes = [diagnosticarSemaCli(), diagnosticarOpenCode(), diagnosticarMiniMax(), diagnosticarCodex()];
|
|
186
|
+
const provedoresObrigatorios = new Set(["sema", "opencode"]);
|
|
187
|
+
const bloqueios = runtimes
|
|
188
|
+
.filter((runtime) => provedoresObrigatorios.has(runtime.provedor) && runtime.status !== "carregado")
|
|
189
|
+
.map((runtime) => `${runtime.provedor}:${runtime.status}`);
|
|
190
|
+
const avisos = runtimes
|
|
191
|
+
.filter((runtime) => runtime.status === "parcial" || (!provedoresObrigatorios.has(runtime.provedor) && runtime.status !== "carregado"))
|
|
192
|
+
.map((runtime) => `${runtime.provedor}: ${runtime.erro ?? runtime.status}`);
|
|
193
|
+
return {
|
|
194
|
+
comando: "chat doctor",
|
|
195
|
+
workspace,
|
|
196
|
+
prontoParaChat: bloqueios.length === 0,
|
|
197
|
+
runtimes,
|
|
198
|
+
bloqueios,
|
|
199
|
+
avisos,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=semaChatRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semaChatRuntime.js","sourceRoot":"","sources":["../src/semaChatRuntime.ts"],"names":[],"mappings":"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"}
|
package/docs/env.md
CHANGED
|
@@ -24,13 +24,13 @@ Ambiente necessário para publicar a Sema.
|
|
|
24
24
|
No PowerShell, o instalador recebe a versão por parametro:
|
|
25
25
|
|
|
26
26
|
```powershell
|
|
27
|
-
.\install-sema.ps1 -Version 1.5.
|
|
27
|
+
.\install-sema.ps1 -Version 1.5.45 -WithVSCode
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
No shell:
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
SEMA_VERSION=1.5.
|
|
33
|
+
SEMA_VERSION=1.5.45 ./install-sema.sh --with-vscode
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
## Credenciais
|
package/docs/extensao-vscode.md
CHANGED
|
@@ -5,6 +5,12 @@ em IDE local a escrever contratos `.sema`, receber feedback rápido e manter o
|
|
|
5
5
|
projeto preso ao fluxo correto: CLI local primeiro, contrato antes de código e
|
|
6
6
|
fechamento governado.
|
|
7
7
|
|
|
8
|
+
Esta extensão é o **Sema Guard**. Ela é guarda, diagnóstico e apoio de autoria.
|
|
9
|
+
Ela não é o Sema Chat, não deve ser tratada como produto principal de chat e não
|
|
10
|
+
deve virar gambiarra visual em cima de botões. O Sema Chat local nasce sobre o
|
|
11
|
+
runtime OpenCode, documentado em
|
|
12
|
+
[`docs/sema-chat-opencode.md`](./sema-chat-opencode.md).
|
|
13
|
+
|
|
8
14
|
Ela não substitui o painel, a chave local, a CLI, o MCP remoto nem a validação
|
|
9
15
|
final.
|
|
10
16
|
|
|
@@ -25,13 +31,16 @@ final.
|
|
|
25
31
|
|
|
26
32
|
```bash
|
|
27
33
|
npm run extensao:empacotar
|
|
28
|
-
code --install-extension .tmp/editor-vscode/sema-language-tools-1.5.
|
|
34
|
+
code --install-extension .tmp/editor-vscode/sema-language-tools-1.5.45.vsix --force
|
|
29
35
|
```
|
|
30
36
|
|
|
31
37
|
## Limites
|
|
32
38
|
|
|
33
39
|
A extensão não deve:
|
|
34
40
|
|
|
41
|
+
- fingir que é chat visual;
|
|
42
|
+
- substituir o runtime OpenCode do Sema Chat;
|
|
43
|
+
- tratar `sema chat doctor --json` como produto final;
|
|
35
44
|
- instalar chave sozinha;
|
|
36
45
|
- consultar o painel como se fosse humano;
|
|
37
46
|
- usar MCP remoto para ler workspace local;
|
|
@@ -12,36 +12,36 @@ Se a IA seguir isso, ela trabalha com contexto. Se não seguir, vira adivinhaç
|
|
|
12
12
|
|
|
13
13
|
O ponto central: Sema não é texto para agradar humano. É contrato semântico IA-first. Humanos autorizam e revisam; a IA consome o contrato para decidir o próximo movimento.
|
|
14
14
|
|
|
15
|
-
Antes de qualquer etapa, classifique a capacidade operacional do agente:
|
|
16
|
-
|
|
17
|
-
- IA fraca: leia `SEMA_BOOT.md`, `SEMA_SMALL_MODEL.md` e `SEMA_BRIEF.micro.txt`; se Sema não responder, pare.
|
|
18
|
-
- IA média: leia `SEMA_BOOT.md`, `AGENT_CONTEXT_PACK.json`, `SEMA_BRIEF.curto.txt` e `SEMA_INDEX.json`.
|
|
19
|
-
- IA forte: pode usar `SEMA_BRIEF.md`, AST, IR e drift completo, mas ainda começa pelo boot.
|
|
20
|
-
|
|
21
|
-
Regra de idioma humano: responda no idioma do usuário. Em PT-BR, use acentos, cedilha, pontuação e símbolos normais. A gramática `.sema` pode ser ASCII; texto humano não precisa ser.
|
|
22
|
-
|
|
23
|
-
Regra de timeout: timeout local do agente não é falha do Sema. Se `sema resumo`, `drift`, `docs-impacto` ou outro gate estourar, aumente o timeout e tente de novo antes de declarar bloqueio. Para projeto grande, escopo menor vem primeiro: `sema resumo caminho/arquivo.sema --micro --para mudanca`.
|
|
24
|
-
|
|
25
|
-
## Superfície obrigatória
|
|
26
|
-
|
|
27
|
-
1. IDE local com workspace no disco: rode `sema --version`; se falhar, pare. A IA não acessa o painel Sema: peça ao humano para instalar pelo painel. Depois rode `sema preflight resumo --json`. Se `decisao` não for `use_cli_local`, pare bloqueado.
|
|
28
|
-
2. IDE local autorizada: use somente a CLI local para `resumo`, `docs-impacto`, `inspecionar`, `drift`, `impacto`, `validar`, `verificar` e `finalizar-mudanca`.
|
|
29
|
-
3. IDE local proibida: não chame MCP remoto, `sema_sync`, `sema_contratos_sincronizar` nem `sema mcp-client` para ler o workspace local.
|
|
30
|
-
4. Web/chat/remoto sem workspace local: use `sema_chat_contexto`, depois `sema_sync` inline com contrato `.sema`, código selecionado, documentação operacional e índice; use o `projeto` retornado.
|
|
31
|
-
5. Se a IA não consegue identificar se está em IDE local ou web/chat remoto, ela deve parar e declarar bloqueio. Não invente superfície.
|
|
32
|
-
|
|
33
|
-
## Fluxo curto
|
|
34
|
-
|
|
35
|
-
1. identificar a superfície: CLI local ou MCP remoto web/chat
|
|
36
|
-
2. em IDE local, rodar `sema --version`; se falhar, parar. A IA não acessa o painel Sema: pedir ao humano para instalar pelo painel; depois rodar `sema preflight resumo --json` e parar se não retornar `use_cli_local`
|
|
37
|
-
3. ler contexto do projeto
|
|
38
|
-
4. identificar a capacidade da IA
|
|
39
|
-
5. identificar o módulo alvo
|
|
40
|
-
6. consultar o menor artefato semântico suficiente
|
|
41
|
-
7. editar
|
|
42
|
-
8. formatar
|
|
43
|
-
9. validar
|
|
44
|
-
10. verificar
|
|
15
|
+
Antes de qualquer etapa, classifique a capacidade operacional do agente:
|
|
16
|
+
|
|
17
|
+
- IA fraca: leia `SEMA_BOOT.md`, `SEMA_SMALL_MODEL.md` e `SEMA_BRIEF.micro.txt`; se Sema não responder, pare.
|
|
18
|
+
- IA média: leia `SEMA_BOOT.md`, `AGENT_CONTEXT_PACK.json`, `SEMA_BRIEF.curto.txt` e `SEMA_INDEX.json`.
|
|
19
|
+
- IA forte: pode usar `SEMA_BRIEF.md`, AST, IR e drift completo, mas ainda começa pelo boot.
|
|
20
|
+
|
|
21
|
+
Regra de idioma humano: responda no idioma do usuário. Em PT-BR, use acentos, cedilha, pontuação e símbolos normais. A gramática `.sema` pode ser ASCII; texto humano não precisa ser.
|
|
22
|
+
|
|
23
|
+
Regra de timeout: timeout local do agente não é falha do Sema. Se `sema resumo`, `drift`, `docs-impacto` ou outro gate estourar, aumente o timeout e tente de novo antes de declarar bloqueio. Para projeto grande, escopo menor vem primeiro: `sema resumo caminho/arquivo.sema --micro --para mudanca`.
|
|
24
|
+
|
|
25
|
+
## Superfície obrigatória
|
|
26
|
+
|
|
27
|
+
1. IDE local com workspace no disco: rode `sema --version`; se falhar, pare. A IA não acessa o painel Sema: peça ao humano para instalar pelo painel. Depois rode `sema preflight resumo --json`. Se `decisao` não for `use_cli_local`, pare bloqueado.
|
|
28
|
+
2. IDE local autorizada: use somente a CLI local para `resumo`, `docs-impacto`, `inspecionar`, `drift`, `impacto`, `validar`, `verificar` e `finalizar-mudanca`.
|
|
29
|
+
3. IDE local proibida: não chame MCP remoto, `sema_sync`, `sema_contratos_sincronizar` nem `sema mcp-client` para ler o workspace local.
|
|
30
|
+
4. Web/chat/remoto sem workspace local: use `sema_chat_contexto`, depois `sema_sync` inline com contrato `.sema`, código selecionado, documentação operacional e índice; use o `projeto` retornado.
|
|
31
|
+
5. Se a IA não consegue identificar se está em IDE local ou web/chat remoto, ela deve parar e declarar bloqueio. Não invente superfície.
|
|
32
|
+
|
|
33
|
+
## Fluxo curto
|
|
34
|
+
|
|
35
|
+
1. identificar a superfície: CLI local ou MCP remoto web/chat
|
|
36
|
+
2. em IDE local, rodar `sema --version`; se falhar, parar. A IA não acessa o painel Sema: pedir ao humano para instalar pelo painel; depois rodar `sema preflight resumo --json` e parar se não retornar `use_cli_local`
|
|
37
|
+
3. ler contexto do projeto
|
|
38
|
+
4. identificar a capacidade da IA
|
|
39
|
+
5. identificar o módulo alvo
|
|
40
|
+
6. consultar o menor artefato semântico suficiente
|
|
41
|
+
7. editar
|
|
42
|
+
8. formatar
|
|
43
|
+
9. validar
|
|
44
|
+
10. verificar
|
|
45
45
|
|
|
46
46
|
## Fluxo detalhado
|
|
47
47
|
|
|
@@ -61,11 +61,11 @@ Se o trabalho estiver ligado a pagamento, ler também:
|
|
|
61
61
|
|
|
62
62
|
Antes de despejar contexto na IA, escolha o que ela aguenta:
|
|
63
63
|
|
|
64
|
-
- IA fraca, gratuita ou com pouca disciplina: `sema preflight resumo --json`, `SEMA_BOOT.md`, `SEMA_SMALL_MODEL.md`, `sema resumo --micro` e `briefing.min.json`
|
|
65
|
-
- IA média: `sema preflight resumo --json`, `sema resumo --curto`, `briefing.min.json` e `drift.json`
|
|
66
|
-
- IA forte: `sema preflight resumo --json`, `contexto-ia`, `briefing.json`, `drift.json`, `ir.json` e `ast.json`
|
|
67
|
-
|
|
68
|
-
Se qualquer comando Sema acima estourar timeout definido pela própria IA, ela deve aumentar o timeout e repetir. Timeout do agente não autoriza pular Sema nem concluir que a sessão está inativa.
|
|
64
|
+
- IA fraca, gratuita ou com pouca disciplina: `sema preflight resumo --json`, `SEMA_BOOT.md`, `SEMA_SMALL_MODEL.md`, `sema resumo --micro` e `briefing.min.json`
|
|
65
|
+
- IA média: `sema preflight resumo --json`, `sema resumo --curto`, `briefing.min.json` e `drift.json`
|
|
66
|
+
- IA forte: `sema preflight resumo --json`, `contexto-ia`, `briefing.json`, `drift.json`, `ir.json` e `ast.json`
|
|
67
|
+
|
|
68
|
+
Se qualquer comando Sema acima estourar timeout definido pela própria IA, ela deve aumentar o timeout e repetir. Timeout do agente não autoriza pular Sema nem concluir que a sessão está inativa.
|
|
69
69
|
|
|
70
70
|
### Etapa 3. Ler o módulo alvo e um exemplo parecido
|
|
71
71
|
|
|
@@ -85,12 +85,12 @@ Regra pratica:
|
|
|
85
85
|
|
|
86
86
|
Antes de alterar, a IA deve executar:
|
|
87
87
|
|
|
88
|
-
```bash
|
|
89
|
-
sema --version
|
|
90
|
-
sema preflight resumo --json
|
|
91
|
-
sema resumo caminho/arquivo.sema --curto --para mudanca
|
|
92
|
-
sema ast caminho/arquivo.sema --json
|
|
93
|
-
sema ir caminho/arquivo.sema --json
|
|
88
|
+
```bash
|
|
89
|
+
sema --version
|
|
90
|
+
sema preflight resumo --json
|
|
91
|
+
sema resumo caminho/arquivo.sema --curto --para mudanca
|
|
92
|
+
sema ast caminho/arquivo.sema --json
|
|
93
|
+
sema ir caminho/arquivo.sema --json
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
Objetivo:
|
|
@@ -143,7 +143,7 @@ Se a tarefa não for só editar contrato, mas também gerar base de implementaca
|
|
|
143
143
|
sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
|
|
144
144
|
```
|
|
145
145
|
|
|
146
|
-
Ou trocar o alvo para `python`, `dart`, `lua`, `javascript`, `html` ou `css`, conforme o caso.
|
|
146
|
+
Ou trocar o alvo para `python`, `dart`, `lua`, `javascript`, `html` ou `css`, conforme o caso.
|
|
147
147
|
|
|
148
148
|
Regra pratica:
|
|
149
149
|
|
|
@@ -160,26 +160,26 @@ sema verificar arquivo-ou-pasta --json --saida ./.tmp/verificacao-ia
|
|
|
160
160
|
|
|
161
161
|
## Fluxo mínimo para automacao
|
|
162
162
|
|
|
163
|
-
Se voce quiser o menor fluxo aceitavel para uma IA fraca:
|
|
163
|
+
Se voce quiser o menor fluxo aceitavel para uma IA fraca:
|
|
164
164
|
|
|
165
|
-
```bash
|
|
166
|
-
sema --version
|
|
167
|
-
sema preflight resumo --json
|
|
168
|
-
sema resumo caminho/arquivo.sema --micro --para mudanca
|
|
169
|
-
sema formatar caminho/arquivo.sema
|
|
170
|
-
sema validar caminho/arquivo.sema --json
|
|
165
|
+
```bash
|
|
166
|
+
sema --version
|
|
167
|
+
sema preflight resumo --json
|
|
168
|
+
sema resumo caminho/arquivo.sema --micro --para mudanca
|
|
169
|
+
sema formatar caminho/arquivo.sema
|
|
170
|
+
sema validar caminho/arquivo.sema --json
|
|
171
171
|
```
|
|
172
172
|
|
|
173
173
|
Mas, sendo sincero, o fluxo bom mesmo e fechar com `verificar`.
|
|
174
174
|
|
|
175
175
|
Se a tarefa envolver código derivado, o fluxo mínimo aceitavel vira:
|
|
176
176
|
|
|
177
|
-
```bash
|
|
178
|
-
sema --version
|
|
179
|
-
sema preflight resumo --json
|
|
180
|
-
sema ir caminho/arquivo.sema --json
|
|
181
|
-
sema formatar caminho/arquivo.sema
|
|
182
|
-
sema validar caminho/arquivo.sema --json
|
|
177
|
+
```bash
|
|
178
|
+
sema --version
|
|
179
|
+
sema preflight resumo --json
|
|
180
|
+
sema ir caminho/arquivo.sema --json
|
|
181
|
+
sema formatar caminho/arquivo.sema
|
|
182
|
+
sema validar caminho/arquivo.sema --json
|
|
183
183
|
sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
|
|
184
184
|
```
|
|
185
185
|
|
|
@@ -212,4 +212,4 @@ Esse conjunto e o que faz a linguagem ser amigavel para IA de verdade, e não s
|
|
|
212
212
|
|
|
213
213
|
## Observacao sobre caminhos
|
|
214
214
|
|
|
215
|
-
Está documentação usa placeholders de arquivo e pasta, não caminhos do monorepo da Sema. A IA deve adaptar isso ao projeto atual e continuar tratando `sema` como interface pública principal.
|
|
215
|
+
Está documentação usa placeholders de arquivo e pasta, não caminhos do monorepo da Sema. A IA deve adaptar isso ao projeto atual e continuar tratando `sema` como interface pública principal.
|
package/docs/sintaxe.md
CHANGED
|
@@ -215,4 +215,4 @@ O IR de persistência calcula compatibilidade por recurso com quatro estados:
|
|
|
215
215
|
|
|
216
216
|
Isso existe para deixar explícito quando um contrato está pedindo de um banco algo que ele não entrega do mesmo jeito.
|
|
217
217
|
|
|
218
|
-
O mesmo principio vale para runtime de orquestração. Superfícies como `webhook`, `cron`, `worker`, `evento` e `fila` podem ser medidas contra famílias como `n8n`, mas o contrato continua canonicamente modelado em Sema, sem rebaixar a linguagem para a sintaxe do adapter alvo.
|
|
218
|
+
O mesmo principio vale para runtime de orquestração. Superfícies como `webhook`, `cron`, `worker`, `evento` e `fila` podem ser medidas contra famílias como `n8n`, mas o contrato continua canonicamente modelado em Sema, sem rebaixar a linguagem para a sintaxe do adapter alvo.
|