@semacode/cli 1.5.31 → 1.5.32
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/AGENTS.md +294 -0
- package/AGENT_CONTEXT_PACK.json +164 -0
- package/LICENSE +22 -0
- package/README.md +85 -144
- package/SEMA_BRIEF.curto.txt +11 -0
- package/SEMA_BRIEF.md +616 -0
- package/SEMA_BRIEF.micro.txt +9 -0
- package/SEMA_INDEX.json +9393 -0
- package/dist/billing/index.d.ts +46 -0
- package/dist/billing/index.js +143 -0
- package/dist/billing/index.js.map +1 -0
- package/dist/controleComercialSupabase.d.ts +7 -0
- package/dist/controleComercialSupabase.js +6 -0
- package/dist/controleComercialSupabase.js.map +1 -0
- package/dist/controleComercialSupabaseAdmin.d.ts +7 -0
- package/dist/controleComercialSupabaseAdmin.js +138 -0
- package/dist/controleComercialSupabaseAdmin.js.map +1 -0
- package/dist/controleComercialSupabaseCadastro.d.ts +4 -0
- package/dist/controleComercialSupabaseCadastro.js +85 -0
- package/dist/controleComercialSupabaseCadastro.js.map +1 -0
- package/dist/controleComercialSupabaseConstantes.d.ts +28 -0
- package/dist/controleComercialSupabaseConstantes.js +44 -0
- package/dist/controleComercialSupabaseConstantes.js.map +1 -0
- package/dist/controleComercialSupabaseConsumo.d.ts +2 -0
- package/dist/controleComercialSupabaseConsumo.js +77 -0
- package/dist/controleComercialSupabaseConsumo.js.map +1 -0
- package/dist/controleComercialSupabaseConta.d.ts +11 -0
- package/dist/controleComercialSupabaseConta.js +157 -0
- package/dist/controleComercialSupabaseConta.js.map +1 -0
- package/dist/controleComercialSupabaseProfiles.d.ts +4 -0
- package/dist/controleComercialSupabaseProfiles.js +55 -0
- package/dist/controleComercialSupabaseProfiles.js.map +1 -0
- package/dist/controleComercialSupabaseTipos.d.ts +3 -0
- package/dist/controleComercialSupabaseTipos.js +2 -0
- package/dist/controleComercialSupabaseTipos.js.map +1 -0
- package/dist/controleComercialSupabaseTiposAdmin.d.ts +152 -0
- package/dist/controleComercialSupabaseTiposAdmin.js +2 -0
- package/dist/controleComercialSupabaseTiposAdmin.js.map +1 -0
- package/dist/controleComercialSupabaseTiposBase.d.ts +169 -0
- package/dist/controleComercialSupabaseTiposBase.js +2 -0
- package/dist/controleComercialSupabaseTiposBase.js.map +1 -0
- package/dist/controleComercialSupabaseTiposConta.d.ts +220 -0
- package/dist/controleComercialSupabaseTiposConta.js +2 -0
- package/dist/controleComercialSupabaseTiposConta.js.map +1 -0
- package/dist/index.js +222 -46
- package/dist/index.js.map +1 -1
- package/dist/runnerValidacaoRemota.d.ts +9 -0
- package/dist/runnerValidacaoRemota.js +9 -0
- package/dist/runnerValidacaoRemota.js.map +1 -0
- package/dist/runnerValidacaoRemotaBateria.d.ts +10 -0
- package/dist/runnerValidacaoRemotaBateria.js +115 -0
- package/dist/runnerValidacaoRemotaBateria.js.map +1 -0
- package/dist/runnerValidacaoRemotaCli.d.ts +4 -0
- package/dist/runnerValidacaoRemotaCli.js +86 -0
- package/dist/runnerValidacaoRemotaCli.js.map +1 -0
- package/dist/runnerValidacaoRemotaComandos.d.ts +7 -0
- package/dist/runnerValidacaoRemotaComandos.js +123 -0
- package/dist/runnerValidacaoRemotaComandos.js.map +1 -0
- package/dist/runnerValidacaoRemotaEscopo.d.ts +4 -0
- package/dist/runnerValidacaoRemotaEscopo.js +79 -0
- package/dist/runnerValidacaoRemotaEscopo.js.map +1 -0
- package/dist/runnerValidacaoRemotaExecucao.d.ts +2 -0
- package/dist/runnerValidacaoRemotaExecucao.js +102 -0
- package/dist/runnerValidacaoRemotaExecucao.js.map +1 -0
- package/dist/runnerValidacaoRemotaRelatorio.d.ts +3 -0
- package/dist/runnerValidacaoRemotaRelatorio.js +93 -0
- package/dist/runnerValidacaoRemotaRelatorio.js.map +1 -0
- package/dist/runnerValidacaoRemotaServidor.d.ts +3 -0
- package/dist/runnerValidacaoRemotaServidor.js +157 -0
- package/dist/runnerValidacaoRemotaServidor.js.map +1 -0
- package/dist/runnerValidacaoRemotaSnapshot.d.ts +10 -0
- package/dist/runnerValidacaoRemotaSnapshot.js +217 -0
- package/dist/runnerValidacaoRemotaSnapshot.js.map +1 -0
- package/dist/runnerValidacaoRemotaTipos.d.ts +158 -0
- package/dist/runnerValidacaoRemotaTipos.js +35 -0
- package/dist/runnerValidacaoRemotaTipos.js.map +1 -0
- package/dist/runnerValidacaoRemotaUtil.d.ts +3 -0
- package/dist/runnerValidacaoRemotaUtil.js +18 -0
- package/dist/runnerValidacaoRemotaUtil.js.map +1 -0
- package/dist/runnerValidacaoRemotaWorkspace.d.ts +2 -0
- package/dist/runnerValidacaoRemotaWorkspace.js +110 -0
- package/dist/runnerValidacaoRemotaWorkspace.js.map +1 -0
- package/docs/AGENT_STARTER.md +109 -0
- package/docs/api.md +82 -0
- package/docs/cli.md +93 -0
- package/docs/como-ensinar-a-sema-para-ia.md +30 -0
- package/docs/deploy.md +45 -0
- package/docs/documentacao.md +88 -0
- package/docs/env.md +115 -0
- package/docs/extensao-vscode.md +42 -0
- package/docs/fluxo-pratico-ia-sema.md +187 -0
- package/docs/instalacao-e-primeiro-uso.md +48 -0
- package/docs/integracao-com-ia.md +24 -0
- package/docs/mcp.md +48 -0
- package/docs/pagamento-ponta-a-ponta.md +171 -0
- package/docs/persistencia-vendor-first.md +151 -0
- package/docs/prompt-base-ia-sema.md +111 -0
- package/docs/repositories.md +69 -0
- package/docs/rollback.md +24 -0
- package/docs/seguranca.md +126 -0
- package/docs/sintaxe.md +218 -0
- package/exemplos/profile_conversas.sema +165 -0
- package/llms-full.txt +35 -0
- package/llms.txt +18 -0
- package/node_modules/@sema/gerador-css/package.json +7 -14
- package/node_modules/@sema/gerador-dart/package.json +7 -14
- package/node_modules/@sema/gerador-html/package.json +7 -14
- package/node_modules/@sema/gerador-javascript/package.json +7 -14
- package/node_modules/@sema/gerador-lua/package.json +7 -14
- package/node_modules/@sema/gerador-python/package.json +7 -14
- package/node_modules/@sema/gerador-typescript/package.json +7 -14
- package/node_modules/@sema/nucleo/package.json +7 -10
- package/node_modules/@sema/padroes/package.json +7 -10
- package/package.json +75 -74
- package/exemplos/.prepack-generated +0 -1
- package/node_modules/@sema/gerador-css/src/index.ts +0 -605
- package/node_modules/@sema/gerador-css/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-css/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-dart/src/index.ts +0 -52
- package/node_modules/@sema/gerador-dart/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-dart/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-html/src/index.ts +0 -185
- package/node_modules/@sema/gerador-html/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-html/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-javascript/src/index.ts +0 -461
- package/node_modules/@sema/gerador-javascript/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-javascript/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-lua/src/index.ts +0 -359
- package/node_modules/@sema/gerador-lua/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-lua/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-python/src/index.ts +0 -850
- package/node_modules/@sema/gerador-python/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-python/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/gerador-typescript/src/index.ts +0 -876
- package/node_modules/@sema/gerador-typescript/tsconfig.json +0 -13
- package/node_modules/@sema/gerador-typescript/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/nucleo/src/ast/tipos.ts +0 -207
- package/node_modules/@sema/nucleo/src/diagnosticos/index.ts +0 -43
- package/node_modules/@sema/nucleo/src/diagnosticos/melhorador.ts +0 -130
- package/node_modules/@sema/nucleo/src/formatador/index.ts +0 -530
- package/node_modules/@sema/nucleo/src/index.ts +0 -184
- package/node_modules/@sema/nucleo/src/ir/conversor.ts +0 -1037
- package/node_modules/@sema/nucleo/src/ir/modelos.ts +0 -403
- package/node_modules/@sema/nucleo/src/lexer/lexer.ts +0 -166
- package/node_modules/@sema/nucleo/src/lexer/tokens.ts +0 -79
- package/node_modules/@sema/nucleo/src/parser/gramatica.ebnf +0 -41
- package/node_modules/@sema/nucleo/src/parser/parser.ts +0 -936
- package/node_modules/@sema/nucleo/src/persistencia/contratos.ts +0 -379
- package/node_modules/@sema/nucleo/src/semantico/analisador.ts +0 -3126
- package/node_modules/@sema/nucleo/src/semantico/estruturas.ts +0 -665
- package/node_modules/@sema/nucleo/src/semantico/seguranca.ts +0 -362
- package/node_modules/@sema/nucleo/src/util/arquivos.ts +0 -28
- package/node_modules/@sema/nucleo/tsconfig.json +0 -9
- package/node_modules/@sema/nucleo/tsconfig.tsbuildinfo +0 -1
- package/node_modules/@sema/padroes/src/index.ts +0 -382
- package/node_modules/@sema/padroes/tsconfig.json +0 -9
- package/node_modules/@sema/padroes/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Billing integration - CLI reports consumption back to MCP
|
|
3
|
+
* Based on contract: mcp_cli_billing_integration.sema
|
|
4
|
+
*/
|
|
5
|
+
export interface ConsumoOperacao {
|
|
6
|
+
id: string;
|
|
7
|
+
sessao_mcp: string;
|
|
8
|
+
ferramenta: string;
|
|
9
|
+
comando_cli: string;
|
|
10
|
+
semas_estimado: number;
|
|
11
|
+
semas_real: number;
|
|
12
|
+
complexidade: "baixa" | "media" | "alta" | "critica";
|
|
13
|
+
linhas_contrato: number;
|
|
14
|
+
operacoes_realizadas: string[];
|
|
15
|
+
timestamp_inicio: string;
|
|
16
|
+
timestamp_fim: string;
|
|
17
|
+
status: "sucesso" | "erro" | "timeout";
|
|
18
|
+
}
|
|
19
|
+
export interface ReporteConsumoInput {
|
|
20
|
+
sessao_mcp: string;
|
|
21
|
+
ferramenta: string;
|
|
22
|
+
comando_cli: string;
|
|
23
|
+
semas_real: number;
|
|
24
|
+
complexidade: "baixa" | "media" | "alta" | "critica";
|
|
25
|
+
linhas_contrato: number;
|
|
26
|
+
operacoes_realizadas: string[];
|
|
27
|
+
timestamp_inicio: string;
|
|
28
|
+
timestamp_fim: string;
|
|
29
|
+
status: "sucesso" | "erro" | "timeout";
|
|
30
|
+
}
|
|
31
|
+
export interface ReporteConsumoOutput {
|
|
32
|
+
consumo: ConsumoOperacao;
|
|
33
|
+
ajuste_billing: boolean;
|
|
34
|
+
}
|
|
35
|
+
export declare function calcularConsumoReal(operacoes: string[], linhasContrato: number, complexidade: "baixa" | "media" | "alta" | "critica"): number;
|
|
36
|
+
export declare function determinarComplexidade(linhas: number, aninhamento: number): "baixa" | "media" | "alta" | "critica";
|
|
37
|
+
export declare function gerarRelatorioConsumo(input: Omit<ReporteConsumoInput, "timestamp_fim"> & {
|
|
38
|
+
timestamp_inicio: string;
|
|
39
|
+
}, operacoesRealizadas: string[], linhasContrato: number, sucesso: boolean): ReporteConsumoOutput;
|
|
40
|
+
export declare function executarComReporte<T>(sessaoMcp: string | undefined, ferramenta: string, comando: string, operacoes: string[], fn: () => Promise<T>): Promise<{
|
|
41
|
+
resultado: T;
|
|
42
|
+
relatorio: ReporteConsumoOutput | null;
|
|
43
|
+
}>;
|
|
44
|
+
export declare function exportarConsumoJson(relatorio: ReporteConsumoOutput): string;
|
|
45
|
+
export declare function reportarConsumo(input: ReporteConsumoInput): ReporteConsumoOutput;
|
|
46
|
+
export declare const reportarConsumoCli: typeof reportarConsumo;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Billing integration - CLI reports consumption back to MCP
|
|
3
|
+
* Based on contract: mcp_cli_billing_integration.sema
|
|
4
|
+
*/
|
|
5
|
+
import { randomUUID } from "node:crypto";
|
|
6
|
+
// Calcula consumo real baseado nas operações realizadas
|
|
7
|
+
export function calcularConsumoReal(operacoes, linhasContrato, complexidade) {
|
|
8
|
+
const custoBase = {
|
|
9
|
+
parse: 1,
|
|
10
|
+
lexer: 1,
|
|
11
|
+
validar: 2,
|
|
12
|
+
semantico: 3,
|
|
13
|
+
gerar_ir: 2,
|
|
14
|
+
inspecionar: 2,
|
|
15
|
+
drift: 5,
|
|
16
|
+
impacto: 5,
|
|
17
|
+
sync: 5,
|
|
18
|
+
verificar: 10,
|
|
19
|
+
};
|
|
20
|
+
let total = 0;
|
|
21
|
+
for (const op of operacoes) {
|
|
22
|
+
total += custoBase[op] || 1;
|
|
23
|
+
}
|
|
24
|
+
// Multiplicador por complexidade
|
|
25
|
+
const multiplicador = {
|
|
26
|
+
baixa: 1,
|
|
27
|
+
media: 1.5,
|
|
28
|
+
alta: 2,
|
|
29
|
+
critica: 3,
|
|
30
|
+
};
|
|
31
|
+
// Fator de tamanho
|
|
32
|
+
const fatorTamanho = Math.max(1, Math.log10(linhasContrato + 1));
|
|
33
|
+
return Math.ceil(total * multiplicador[complexidade] * fatorTamanho);
|
|
34
|
+
}
|
|
35
|
+
// Determina complexidade baseada no contrato
|
|
36
|
+
export function determinarComplexidade(linhas, aninhamento) {
|
|
37
|
+
if (linhas > 500 || aninhamento > 5)
|
|
38
|
+
return "critica";
|
|
39
|
+
if (linhas > 200 || aninhamento > 3)
|
|
40
|
+
return "alta";
|
|
41
|
+
if (linhas > 50 || aninhamento > 1)
|
|
42
|
+
return "media";
|
|
43
|
+
return "baixa";
|
|
44
|
+
}
|
|
45
|
+
// Gera relatório de consumo para ser retornado ao MCP
|
|
46
|
+
export function gerarRelatorioConsumo(input, operacoesRealizadas, linhasContrato, sucesso) {
|
|
47
|
+
const timestampFim = new Date().toISOString();
|
|
48
|
+
const complexidade = determinarComplexidade(linhasContrato, 0);
|
|
49
|
+
const semasReal = calcularConsumoReal(operacoesRealizadas, linhasContrato, complexidade);
|
|
50
|
+
const consumo = {
|
|
51
|
+
id: randomUUID(),
|
|
52
|
+
sessao_mcp: input.sessao_mcp,
|
|
53
|
+
ferramenta: input.ferramenta,
|
|
54
|
+
comando_cli: input.comando_cli,
|
|
55
|
+
semas_estimado: input.semas_real, // valor que MCP estimou
|
|
56
|
+
semas_real: semasReal,
|
|
57
|
+
complexidade,
|
|
58
|
+
linhas_contrato: linhasContrato,
|
|
59
|
+
operacoes_realizadas: operacoesRealizadas,
|
|
60
|
+
timestamp_inicio: input.timestamp_inicio,
|
|
61
|
+
timestamp_fim: timestampFim,
|
|
62
|
+
status: sucesso ? "sucesso" : "erro",
|
|
63
|
+
};
|
|
64
|
+
return {
|
|
65
|
+
consumo,
|
|
66
|
+
ajuste_billing: semasReal !== input.semas_real,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
// Wrapper para executar comando com reporte de consumo
|
|
70
|
+
export async function executarComReporte(sessaoMcp, ferramenta, comando, operacoes, fn) {
|
|
71
|
+
const timestampInicio = new Date().toISOString();
|
|
72
|
+
const linhasEstimadas = 100; // estimativa default
|
|
73
|
+
try {
|
|
74
|
+
const resultado = await fn();
|
|
75
|
+
// Se não tem sessão MCP, não reporta
|
|
76
|
+
if (!sessaoMcp) {
|
|
77
|
+
return { resultado, relatorio: null };
|
|
78
|
+
}
|
|
79
|
+
const complexidade = determinarComplexidade(linhasEstimadas, 0);
|
|
80
|
+
const relatorio = gerarRelatorioConsumo({
|
|
81
|
+
sessao_mcp: sessaoMcp,
|
|
82
|
+
ferramenta,
|
|
83
|
+
comando_cli: comando,
|
|
84
|
+
semas_real: 2, // estimativa MCP default
|
|
85
|
+
complexidade,
|
|
86
|
+
linhas_contrato: linhasEstimadas,
|
|
87
|
+
operacoes_realizadas: operacoes,
|
|
88
|
+
status: "sucesso",
|
|
89
|
+
timestamp_inicio: timestampInicio,
|
|
90
|
+
}, operacoes, linhasEstimadas, true);
|
|
91
|
+
return { resultado, relatorio };
|
|
92
|
+
}
|
|
93
|
+
catch (erro) {
|
|
94
|
+
const complexidadeErro = determinarComplexidade(linhasEstimadas, 0);
|
|
95
|
+
const relatorio = sessaoMcp
|
|
96
|
+
? gerarRelatorioConsumo({
|
|
97
|
+
sessao_mcp: sessaoMcp,
|
|
98
|
+
ferramenta,
|
|
99
|
+
comando_cli: comando,
|
|
100
|
+
semas_real: 2,
|
|
101
|
+
complexidade: complexidadeErro,
|
|
102
|
+
linhas_contrato: linhasEstimadas,
|
|
103
|
+
operacoes_realizadas: operacoes,
|
|
104
|
+
status: "erro",
|
|
105
|
+
timestamp_inicio: timestampInicio,
|
|
106
|
+
}, operacoes, linhasEstimadas, false)
|
|
107
|
+
: null;
|
|
108
|
+
throw { erro, relatorio };
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Exporta consumo no formato JSON para stdout (MCP lê)
|
|
112
|
+
export function exportarConsumoJson(relatorio) {
|
|
113
|
+
return JSON.stringify({
|
|
114
|
+
__sema_consumo: true,
|
|
115
|
+
...relatorio,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
// Funcao principal reportarConsumo (vinculo contrato: cli.src.billing.reportarConsumo)
|
|
119
|
+
export function reportarConsumo(input) {
|
|
120
|
+
const complexidade = determinarComplexidade(input.linhas_contrato, 0);
|
|
121
|
+
const semasReal = calcularConsumoReal(input.operacoes_realizadas, input.linhas_contrato, complexidade);
|
|
122
|
+
const consumo = {
|
|
123
|
+
id: randomUUID(),
|
|
124
|
+
sessao_mcp: input.sessao_mcp,
|
|
125
|
+
ferramenta: input.ferramenta,
|
|
126
|
+
comando_cli: input.comando_cli,
|
|
127
|
+
semas_estimado: input.semas_real,
|
|
128
|
+
semas_real: semasReal,
|
|
129
|
+
complexidade,
|
|
130
|
+
linhas_contrato: input.linhas_contrato,
|
|
131
|
+
operacoes_realizadas: input.operacoes_realizadas,
|
|
132
|
+
timestamp_inicio: input.timestamp_inicio,
|
|
133
|
+
timestamp_fim: input.timestamp_fim,
|
|
134
|
+
status: input.status,
|
|
135
|
+
};
|
|
136
|
+
return {
|
|
137
|
+
consumo,
|
|
138
|
+
ajuste_billing: semasReal !== input.semas_real,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
// Alias para vinculo do contrato: cli.src.billing.reportarConsumoCli
|
|
142
|
+
export const reportarConsumoCli = reportarConsumo;
|
|
143
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/billing/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type * from "./controleComercialSupabaseTipos.js";
|
|
2
|
+
export type * from "./controleComercialSupabaseTiposAdmin.js";
|
|
3
|
+
export { provisionarWorkspaceFree, claimFreeWorkspace, consultarContextoComercialUsuario } from "./controleComercialSupabaseCadastro.js";
|
|
4
|
+
export { consultarPainelUsuario, consultarPerfilConta, atualizarPerfilConta, registrarPresencaUsuario, criarProjetoWorkspace, atualizarProjetoWorkspace, arquivarProjetoWorkspace, consultarChaveMcpWorkspace, gerarChaveMcpWorkspace, revogarChaveMcpWorkspace } from "./controleComercialSupabaseConta.js";
|
|
5
|
+
export { estimarCustoOperacaoSema, consultarProfilesWorkspace, configurarProfileWorkspace } from "./controleComercialSupabaseProfiles.js";
|
|
6
|
+
export { consultarPainelAdmin, registrarPresencaAdmin, salvarPlanoAdmin, atualizarUsuarioAdmin, salvarConteudoSiteAdmin, solicitarAcaoAuthAdmin } from "./controleComercialSupabaseAdmin.js";
|
|
7
|
+
export { consumirSemasMcp } from "./controleComercialSupabaseConsumo.js";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { provisionarWorkspaceFree, claimFreeWorkspace, consultarContextoComercialUsuario } from "./controleComercialSupabaseCadastro.js";
|
|
2
|
+
export { consultarPainelUsuario, consultarPerfilConta, atualizarPerfilConta, registrarPresencaUsuario, criarProjetoWorkspace, atualizarProjetoWorkspace, arquivarProjetoWorkspace, consultarChaveMcpWorkspace, gerarChaveMcpWorkspace, revogarChaveMcpWorkspace } from "./controleComercialSupabaseConta.js";
|
|
3
|
+
export { estimarCustoOperacaoSema, consultarProfilesWorkspace, configurarProfileWorkspace } from "./controleComercialSupabaseProfiles.js";
|
|
4
|
+
export { consultarPainelAdmin, registrarPresencaAdmin, salvarPlanoAdmin, atualizarUsuarioAdmin, salvarConteudoSiteAdmin, solicitarAcaoAuthAdmin } from "./controleComercialSupabaseAdmin.js";
|
|
5
|
+
export { consumirSemasMcp } from "./controleComercialSupabaseConsumo.js";
|
|
6
|
+
//# sourceMappingURL=controleComercialSupabase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controleComercialSupabase.js","sourceRoot":"","sources":["../src/controleComercialSupabase.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AACzI,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC7S,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAC1I,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7L,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AtualizarUsuarioAdminInput, AtualizarUsuarioAdminResult, ConsultarPainelAdminInput, RegistrarPresencaAdminInput, RegistrarPresencaAdminResult, SalvarConteudoSiteAdminInput, SalvarConteudoSiteAdminResult, SalvarPlanoAdminInput, SalvarPlanoAdminResult, SemaAdminConsole, SolicitarAcaoAuthAdminInput, SolicitarAcaoAuthAdminResult, SupabaseRpcClient } from "./controleComercialSupabaseTipos.js";
|
|
2
|
+
export declare function consultarPainelAdmin(client: SupabaseRpcClient, input?: ConsultarPainelAdminInput): Promise<SemaAdminConsole>;
|
|
3
|
+
export declare function registrarPresencaAdmin(client: SupabaseRpcClient, input?: RegistrarPresencaAdminInput): Promise<RegistrarPresencaAdminResult>;
|
|
4
|
+
export declare function salvarPlanoAdmin(client: SupabaseRpcClient, input: SalvarPlanoAdminInput): Promise<SalvarPlanoAdminResult>;
|
|
5
|
+
export declare function atualizarUsuarioAdmin(client: SupabaseRpcClient, input: AtualizarUsuarioAdminInput): Promise<AtualizarUsuarioAdminResult>;
|
|
6
|
+
export declare function salvarConteudoSiteAdmin(client: SupabaseRpcClient, input: SalvarConteudoSiteAdminInput): Promise<SalvarConteudoSiteAdminResult>;
|
|
7
|
+
export declare function solicitarAcaoAuthAdmin(client: SupabaseRpcClient, input: SolicitarAcaoAuthAdminInput): Promise<SolicitarAcaoAuthAdminResult>;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { ADMIN_CONSOLE_RPC, ADMIN_REQUEST_AUTH_ACTION_RPC, ADMIN_SAVE_PLAN_RPC, ADMIN_SAVE_SITE_CONTENT_RPC, ADMIN_TOUCH_PRESENCE_RPC, ADMIN_UPDATE_USER_RPC } from "./controleComercialSupabaseConstantes.js";
|
|
2
|
+
export async function consultarPainelAdmin(client, input = {}) {
|
|
3
|
+
const limit = input.limit ?? 50;
|
|
4
|
+
if (!Number.isInteger(limit) || limit <= 0 || limit > 100) {
|
|
5
|
+
throw new Error("limit precisa ser inteiro entre 1 e 100 para consultar o painel admin.");
|
|
6
|
+
}
|
|
7
|
+
const resposta = await client.rpc(ADMIN_CONSOLE_RPC, {
|
|
8
|
+
p_search: input.search?.trim() || null,
|
|
9
|
+
p_limit: limit,
|
|
10
|
+
});
|
|
11
|
+
if (resposta.error) {
|
|
12
|
+
throw new Error(resposta.error.message ?? "Falha ao consultar painel admin Sema.");
|
|
13
|
+
}
|
|
14
|
+
if (!resposta.data?.authorized) {
|
|
15
|
+
throw new Error("Painel admin nao foi autorizado.");
|
|
16
|
+
}
|
|
17
|
+
return resposta.data;
|
|
18
|
+
}
|
|
19
|
+
export async function registrarPresencaAdmin(client, input = {}) {
|
|
20
|
+
const resposta = await client.rpc(ADMIN_TOUCH_PRESENCE_RPC, {
|
|
21
|
+
p_page: input.page?.trim() || "/admin/",
|
|
22
|
+
p_metadata: input.metadata ?? {},
|
|
23
|
+
});
|
|
24
|
+
if (resposta.error) {
|
|
25
|
+
throw new Error(resposta.error.message ?? "Falha ao registrar presenca admin Sema.");
|
|
26
|
+
}
|
|
27
|
+
if (!resposta.data?.registered) {
|
|
28
|
+
throw new Error("Presenca admin nao retornou confirmacao.");
|
|
29
|
+
}
|
|
30
|
+
return resposta.data;
|
|
31
|
+
}
|
|
32
|
+
export async function salvarPlanoAdmin(client, input) {
|
|
33
|
+
if (!input.id.trim()) {
|
|
34
|
+
throw new Error("id do plano e obrigatorio.");
|
|
35
|
+
}
|
|
36
|
+
if (!input.name.trim()) {
|
|
37
|
+
throw new Error("nome do plano e obrigatorio.");
|
|
38
|
+
}
|
|
39
|
+
if (!Number.isInteger(input.monthlySemas) ||
|
|
40
|
+
input.monthlySemas < 0 ||
|
|
41
|
+
!Number.isInteger(input.projectLimit) ||
|
|
42
|
+
input.projectLimit <= 0 ||
|
|
43
|
+
!Number.isInteger(input.userLimit) ||
|
|
44
|
+
input.userLimit <= 0 ||
|
|
45
|
+
!Number.isInteger(input.retentionDays) ||
|
|
46
|
+
input.retentionDays < 0 ||
|
|
47
|
+
!Number.isFinite(input.monthlyPriceUsd) ||
|
|
48
|
+
input.monthlyPriceUsd < 0) {
|
|
49
|
+
throw new Error("limites e preco do plano precisam ser validos.");
|
|
50
|
+
}
|
|
51
|
+
const resposta = await client.rpc(ADMIN_SAVE_PLAN_RPC, {
|
|
52
|
+
p_id: input.id,
|
|
53
|
+
p_name: input.name,
|
|
54
|
+
p_monthly_semas: input.monthlySemas,
|
|
55
|
+
p_project_limit: input.projectLimit,
|
|
56
|
+
p_user_limit: input.userLimit,
|
|
57
|
+
p_retention_days: input.retentionDays,
|
|
58
|
+
p_monthly_price_usd: input.monthlyPriceUsd,
|
|
59
|
+
p_is_public: input.isPublic ?? true,
|
|
60
|
+
});
|
|
61
|
+
if (resposta.error) {
|
|
62
|
+
throw new Error(resposta.error.message ?? "Falha ao salvar plano admin Sema.");
|
|
63
|
+
}
|
|
64
|
+
if (!resposta.data?.saved) {
|
|
65
|
+
throw new Error("Plano admin nao retornou confirmacao.");
|
|
66
|
+
}
|
|
67
|
+
return resposta.data;
|
|
68
|
+
}
|
|
69
|
+
export async function atualizarUsuarioAdmin(client, input) {
|
|
70
|
+
if (!input.userId.trim()) {
|
|
71
|
+
throw new Error("userId e obrigatorio para atualizar usuario admin.");
|
|
72
|
+
}
|
|
73
|
+
if (input.status && !["active", "disabled"].includes(input.status)) {
|
|
74
|
+
throw new Error("status precisa ser active ou disabled.");
|
|
75
|
+
}
|
|
76
|
+
const resposta = await client.rpc(ADMIN_UPDATE_USER_RPC, {
|
|
77
|
+
p_user_id: input.userId,
|
|
78
|
+
p_plan_id: input.planId?.trim() || null,
|
|
79
|
+
p_status: input.status?.trim() || null,
|
|
80
|
+
p_infinite_semas: input.infiniteSemas ?? null,
|
|
81
|
+
p_admin_note: input.adminNote?.trim() || null,
|
|
82
|
+
});
|
|
83
|
+
if (resposta.error) {
|
|
84
|
+
throw new Error(resposta.error.message ?? "Falha ao atualizar usuario admin Sema.");
|
|
85
|
+
}
|
|
86
|
+
if (!resposta.data?.updated) {
|
|
87
|
+
throw new Error("Atualizacao de usuario admin nao retornou confirmacao.");
|
|
88
|
+
}
|
|
89
|
+
return resposta.data;
|
|
90
|
+
}
|
|
91
|
+
export async function salvarConteudoSiteAdmin(client, input) {
|
|
92
|
+
if (!input.contentKey.trim()) {
|
|
93
|
+
throw new Error("contentKey e obrigatorio para salvar conteudo do site.");
|
|
94
|
+
}
|
|
95
|
+
if (!["pt", "en", "es"].includes(input.locale)) {
|
|
96
|
+
throw new Error("locale precisa ser pt, en ou es.");
|
|
97
|
+
}
|
|
98
|
+
const resposta = await client.rpc(ADMIN_SAVE_SITE_CONTENT_RPC, {
|
|
99
|
+
p_content_key: input.contentKey,
|
|
100
|
+
p_locale: input.locale,
|
|
101
|
+
p_title: input.title?.trim() || null,
|
|
102
|
+
p_subtitle: input.subtitle?.trim() || null,
|
|
103
|
+
p_body: input.body?.trim() || null,
|
|
104
|
+
p_published: input.published ?? false,
|
|
105
|
+
});
|
|
106
|
+
if (resposta.error) {
|
|
107
|
+
throw new Error(resposta.error.message ?? "Falha ao salvar conteudo do site Sema.");
|
|
108
|
+
}
|
|
109
|
+
if (!resposta.data?.saved) {
|
|
110
|
+
throw new Error("Conteudo do site nao retornou confirmacao.");
|
|
111
|
+
}
|
|
112
|
+
return resposta.data;
|
|
113
|
+
}
|
|
114
|
+
export async function solicitarAcaoAuthAdmin(client, input) {
|
|
115
|
+
if (!input.targetUserId.trim()) {
|
|
116
|
+
throw new Error("targetUserId e obrigatorio para acao Auth admin.");
|
|
117
|
+
}
|
|
118
|
+
if (!["change_email", "change_password", "confirm_email", "suspend_auth"].includes(input.actionType)) {
|
|
119
|
+
throw new Error("actionType de Auth admin invalido.");
|
|
120
|
+
}
|
|
121
|
+
if (!input.reason.trim()) {
|
|
122
|
+
throw new Error("motivo e obrigatorio para acao Auth admin.");
|
|
123
|
+
}
|
|
124
|
+
const resposta = await client.rpc(ADMIN_REQUEST_AUTH_ACTION_RPC, {
|
|
125
|
+
p_target_user_id: input.targetUserId,
|
|
126
|
+
p_action_type: input.actionType,
|
|
127
|
+
p_new_email: input.newEmail?.trim() || null,
|
|
128
|
+
p_reason: input.reason,
|
|
129
|
+
});
|
|
130
|
+
if (resposta.error) {
|
|
131
|
+
throw new Error(resposta.error.message ?? "Falha ao solicitar acao Auth admin Sema.");
|
|
132
|
+
}
|
|
133
|
+
if (!resposta.data?.requested) {
|
|
134
|
+
throw new Error("Acao Auth admin nao retornou confirmacao.");
|
|
135
|
+
}
|
|
136
|
+
return resposta.data;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=controleComercialSupabaseAdmin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controleComercialSupabaseAdmin.js","sourceRoot":"","sources":["../src/controleComercialSupabaseAdmin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ClaimFreeWorkspaceInput, ConsultarContextoComercialUsuarioInput, ConsultaContextoComercialUsuarioResult, ProvisionarWorkspaceFreeInput, ProvisionarWorkspaceFreeResult, SupabaseRpcClient } from "./controleComercialSupabaseTipos.js";
|
|
2
|
+
export declare function provisionarWorkspaceFree(client: SupabaseRpcClient, input: ProvisionarWorkspaceFreeInput): Promise<ProvisionarWorkspaceFreeResult>;
|
|
3
|
+
export declare function claimFreeWorkspace(client: SupabaseRpcClient, input?: ClaimFreeWorkspaceInput): Promise<ProvisionarWorkspaceFreeResult>;
|
|
4
|
+
export declare function consultarContextoComercialUsuario(input: ConsultarContextoComercialUsuarioInput): ConsultaContextoComercialUsuarioResult;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { CLAIM_FREE_WORKSPACE_RPC, PROVISIONAR_WORKSPACE_FREE_RPC, TABELAS_CONTEXTO_COMERCIAL } from "./controleComercialSupabaseConstantes.js";
|
|
2
|
+
export async function provisionarWorkspaceFree(client, input) {
|
|
3
|
+
validarCadastroFree(input);
|
|
4
|
+
const resposta = await client.rpc(PROVISIONAR_WORKSPACE_FREE_RPC, {
|
|
5
|
+
p_user_id: input.authUserId,
|
|
6
|
+
p_email: input.email,
|
|
7
|
+
p_email_verified: input.emailVerified,
|
|
8
|
+
p_auth_provider: normalizarProvedorAuth(input.authProvider),
|
|
9
|
+
p_display_name: input.displayName ?? null,
|
|
10
|
+
p_organization_name: input.organizationName ?? null,
|
|
11
|
+
p_project_name: input.projectName ?? "Projeto inicial",
|
|
12
|
+
});
|
|
13
|
+
if (resposta.error) {
|
|
14
|
+
throw new Error(resposta.error.message ?? "Falha ao provisionar workspace Free da Sema.");
|
|
15
|
+
}
|
|
16
|
+
const provisionamento = Array.isArray(resposta.data) ? resposta.data[0] : resposta.data;
|
|
17
|
+
if (!provisionamento) {
|
|
18
|
+
throw new Error("Provisionamento Free nao retornou dados.");
|
|
19
|
+
}
|
|
20
|
+
if (provisionamento.semas_mensais < 300) {
|
|
21
|
+
throw new Error("Plano Free precisa iniciar com pelo menos 300 SEMAS mensais.");
|
|
22
|
+
}
|
|
23
|
+
return provisionamento;
|
|
24
|
+
}
|
|
25
|
+
export async function claimFreeWorkspace(client, input = {}) {
|
|
26
|
+
const resposta = await client.rpc(CLAIM_FREE_WORKSPACE_RPC, {
|
|
27
|
+
p_display_name: input.displayName ?? null,
|
|
28
|
+
p_organization_name: input.organizationName ?? null,
|
|
29
|
+
p_project_name: input.projectName ?? "Projeto inicial",
|
|
30
|
+
p_auth_provider: normalizarProvedorAuth(input.authProvider ?? "email_password"),
|
|
31
|
+
});
|
|
32
|
+
if (resposta.error) {
|
|
33
|
+
throw new Error(resposta.error.message ?? "Falha ao liberar workspace Free da Sema.");
|
|
34
|
+
}
|
|
35
|
+
const provisionamento = Array.isArray(resposta.data) ? resposta.data[0] : resposta.data;
|
|
36
|
+
if (!provisionamento) {
|
|
37
|
+
throw new Error("Liberacao Free nao retornou dados.");
|
|
38
|
+
}
|
|
39
|
+
if (provisionamento.semas_mensais < 300) {
|
|
40
|
+
throw new Error("Plano Free precisa liberar pelo menos 300 SEMAS mensais.");
|
|
41
|
+
}
|
|
42
|
+
return provisionamento;
|
|
43
|
+
}
|
|
44
|
+
export function consultarContextoComercialUsuario(input) {
|
|
45
|
+
if (!input.authUserId) {
|
|
46
|
+
throw new Error("authUserId e obrigatorio para consultar contexto comercial.");
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
authUserId: input.authUserId,
|
|
50
|
+
tabelas: TABELAS_CONTEXTO_COMERCIAL,
|
|
51
|
+
filtros: {
|
|
52
|
+
perfil: { id: input.authUserId },
|
|
53
|
+
memberships: { user_id: input.authUserId },
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function validarCadastroFree(input) {
|
|
58
|
+
if (!input.authUserId) {
|
|
59
|
+
throw new Error("authUserId e obrigatorio para cadastro Free.");
|
|
60
|
+
}
|
|
61
|
+
if (!input.email || !input.email.includes("@")) {
|
|
62
|
+
throw new Error("email valido e obrigatorio para cadastro Free.");
|
|
63
|
+
}
|
|
64
|
+
if (input.emailVerified !== true) {
|
|
65
|
+
throw new Error("email verificado e obrigatorio para cadastro Free.");
|
|
66
|
+
}
|
|
67
|
+
normalizarProvedorAuth(input.authProvider);
|
|
68
|
+
}
|
|
69
|
+
function normalizarProvedorAuth(provider) {
|
|
70
|
+
const normalized = provider.trim().toLowerCase().replace("-", "_");
|
|
71
|
+
if (normalized === "email" || normalized === "password") {
|
|
72
|
+
return "email_password";
|
|
73
|
+
}
|
|
74
|
+
if (normalized === "azure") {
|
|
75
|
+
return "microsoft";
|
|
76
|
+
}
|
|
77
|
+
if (normalized === "email_password" ||
|
|
78
|
+
normalized === "google" ||
|
|
79
|
+
normalized === "facebook" ||
|
|
80
|
+
normalized === "microsoft") {
|
|
81
|
+
return normalized;
|
|
82
|
+
}
|
|
83
|
+
throw new Error("provedor de autenticacao nao suportado para cadastro Sema.");
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=controleComercialSupabaseCadastro.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controleComercialSupabaseCadastro.js","sourceRoot":"","sources":["../src/controleComercialSupabaseCadastro.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare const PROVISIONAR_WORKSPACE_FREE_RPC = "sema_private.provision_free_workspace";
|
|
2
|
+
export declare const CLAIM_FREE_WORKSPACE_RPC = "sema_claim_free_workspace";
|
|
3
|
+
export declare const ACCOUNT_CONTEXT_RPC = "sema_get_account_context";
|
|
4
|
+
export declare const ACCOUNT_PROFILE_RPC = "sema_get_account_profile";
|
|
5
|
+
export declare const UPDATE_ACCOUNT_PROFILE_RPC = "sema_update_account_profile";
|
|
6
|
+
export declare const TOUCH_PRESENCE_RPC = "sema_touch_presence";
|
|
7
|
+
export declare const CREATE_PROJECT_RPC = "sema_create_project";
|
|
8
|
+
export declare const UPDATE_PROJECT_RPC = "sema_update_project";
|
|
9
|
+
export declare const ARCHIVE_PROJECT_RPC = "sema_archive_project";
|
|
10
|
+
export declare const GET_MCP_KEY_CONTEXT_RPC = "sema_get_mcp_key_context";
|
|
11
|
+
export declare const GENERATE_MCP_KEY_RPC = "sema_generate_mcp_key";
|
|
12
|
+
export declare const REVOKE_MCP_KEY_RPC = "sema_revoke_mcp_key";
|
|
13
|
+
export declare const CONSUME_SEMAS_PUBLIC_RPC = "sema_consume_semas";
|
|
14
|
+
export declare const CONSUME_SEMAS_PRIVATE_RPC = "sema_private.consume_semas";
|
|
15
|
+
export declare const CONSUME_SEMAS_MCP_TOKEN_RPC = "sema_consume_mcp_token";
|
|
16
|
+
export declare const ESTIMATE_OPERATION_COST_RPC = "sema_estimate_operation_cost";
|
|
17
|
+
export declare const CONSUME_OPERATION_PUBLIC_RPC = "sema_consume_operation";
|
|
18
|
+
export declare const CONSUME_OPERATION_PRIVATE_RPC = "sema_private.consume_semas_by_operation";
|
|
19
|
+
export declare const CONSUME_OPERATION_MCP_TOKEN_RPC = "sema_consume_mcp_token_operation";
|
|
20
|
+
export declare const GET_PROFILE_PREFERENCES_RPC = "sema_get_profile_preferences";
|
|
21
|
+
export declare const SET_PROFILE_PREFERENCE_RPC = "sema_set_profile_preference";
|
|
22
|
+
export declare const ADMIN_CONSOLE_RPC = "sema_admin_get_console";
|
|
23
|
+
export declare const ADMIN_TOUCH_PRESENCE_RPC = "sema_admin_touch_presence";
|
|
24
|
+
export declare const ADMIN_SAVE_PLAN_RPC = "sema_admin_save_plan";
|
|
25
|
+
export declare const ADMIN_UPDATE_USER_RPC = "sema_admin_update_user";
|
|
26
|
+
export declare const ADMIN_SAVE_SITE_CONTENT_RPC = "sema_admin_save_site_content";
|
|
27
|
+
export declare const ADMIN_REQUEST_AUTH_ACTION_RPC = "sema_admin_request_auth_action";
|
|
28
|
+
export declare const TABELAS_CONTEXTO_COMERCIAL: readonly ["sema_profiles", "sema_organization_members", "sema_organizations", "sema_projects", "sema_subscriptions", "sema_monthly_balances", "sema_plans", "sema_operation_costs", "sema_profile_catalog", "sema_profile_preferences", "sema_admin_presence", "sema_user_presence", "sema_admin_site_content", "sema_admin_auth_actions"];
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export const PROVISIONAR_WORKSPACE_FREE_RPC = "sema_private.provision_free_workspace";
|
|
2
|
+
export const CLAIM_FREE_WORKSPACE_RPC = "sema_claim_free_workspace";
|
|
3
|
+
export const ACCOUNT_CONTEXT_RPC = "sema_get_account_context";
|
|
4
|
+
export const ACCOUNT_PROFILE_RPC = "sema_get_account_profile";
|
|
5
|
+
export const UPDATE_ACCOUNT_PROFILE_RPC = "sema_update_account_profile";
|
|
6
|
+
export const TOUCH_PRESENCE_RPC = "sema_touch_presence";
|
|
7
|
+
export const CREATE_PROJECT_RPC = "sema_create_project";
|
|
8
|
+
export const UPDATE_PROJECT_RPC = "sema_update_project";
|
|
9
|
+
export const ARCHIVE_PROJECT_RPC = "sema_archive_project";
|
|
10
|
+
export const GET_MCP_KEY_CONTEXT_RPC = "sema_get_mcp_key_context";
|
|
11
|
+
export const GENERATE_MCP_KEY_RPC = "sema_generate_mcp_key";
|
|
12
|
+
export const REVOKE_MCP_KEY_RPC = "sema_revoke_mcp_key";
|
|
13
|
+
export const CONSUME_SEMAS_PUBLIC_RPC = "sema_consume_semas";
|
|
14
|
+
export const CONSUME_SEMAS_PRIVATE_RPC = "sema_private.consume_semas";
|
|
15
|
+
export const CONSUME_SEMAS_MCP_TOKEN_RPC = "sema_consume_mcp_token";
|
|
16
|
+
export const ESTIMATE_OPERATION_COST_RPC = "sema_estimate_operation_cost";
|
|
17
|
+
export const CONSUME_OPERATION_PUBLIC_RPC = "sema_consume_operation";
|
|
18
|
+
export const CONSUME_OPERATION_PRIVATE_RPC = "sema_private.consume_semas_by_operation";
|
|
19
|
+
export const CONSUME_OPERATION_MCP_TOKEN_RPC = "sema_consume_mcp_token_operation";
|
|
20
|
+
export const GET_PROFILE_PREFERENCES_RPC = "sema_get_profile_preferences";
|
|
21
|
+
export const SET_PROFILE_PREFERENCE_RPC = "sema_set_profile_preference";
|
|
22
|
+
export const ADMIN_CONSOLE_RPC = "sema_admin_get_console";
|
|
23
|
+
export const ADMIN_TOUCH_PRESENCE_RPC = "sema_admin_touch_presence";
|
|
24
|
+
export const ADMIN_SAVE_PLAN_RPC = "sema_admin_save_plan";
|
|
25
|
+
export const ADMIN_UPDATE_USER_RPC = "sema_admin_update_user";
|
|
26
|
+
export const ADMIN_SAVE_SITE_CONTENT_RPC = "sema_admin_save_site_content";
|
|
27
|
+
export const ADMIN_REQUEST_AUTH_ACTION_RPC = "sema_admin_request_auth_action";
|
|
28
|
+
export const TABELAS_CONTEXTO_COMERCIAL = [
|
|
29
|
+
"sema_profiles",
|
|
30
|
+
"sema_organization_members",
|
|
31
|
+
"sema_organizations",
|
|
32
|
+
"sema_projects",
|
|
33
|
+
"sema_subscriptions",
|
|
34
|
+
"sema_monthly_balances",
|
|
35
|
+
"sema_plans",
|
|
36
|
+
"sema_operation_costs",
|
|
37
|
+
"sema_profile_catalog",
|
|
38
|
+
"sema_profile_preferences",
|
|
39
|
+
"sema_admin_presence",
|
|
40
|
+
"sema_user_presence",
|
|
41
|
+
"sema_admin_site_content",
|
|
42
|
+
"sema_admin_auth_actions",
|
|
43
|
+
];
|
|
44
|
+
//# sourceMappingURL=controleComercialSupabaseConstantes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controleComercialSupabaseConstantes.js","sourceRoot":"","sources":["../src/controleComercialSupabaseConstantes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,8BAA8B,GAAG,uCAAuC,CAAC;AACtF,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;AACpE,MAAM,CAAC,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAC9D,MAAM,CAAC,MAAM,0BAA0B,GAAG,6BAA6B,CAAC;AACxE,MAAM,CAAC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAC1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAClE,MAAM,CAAC,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAC5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AACxD,MAAM,CAAC,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AAC7D,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AACtE,MAAM,CAAC,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,8BAA8B,CAAC;AAC1E,MAAM,CAAC,MAAM,4BAA4B,GAAG,wBAAwB,CAAC;AACrE,MAAM,CAAC,MAAM,6BAA6B,GAAG,yCAAyC,CAAC;AACvF,MAAM,CAAC,MAAM,+BAA+B,GAAG,kCAAkC,CAAC;AAClF,MAAM,CAAC,MAAM,2BAA2B,GAAG,8BAA8B,CAAC;AAC1E,MAAM,CAAC,MAAM,0BAA0B,GAAG,6BAA6B,CAAC;AACxE,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAC1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;AACpE,MAAM,CAAC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC;AAC9D,MAAM,CAAC,MAAM,2BAA2B,GAAG,8BAA8B,CAAC;AAC1E,MAAM,CAAC,MAAM,6BAA6B,GAAG,gCAAgC,CAAC;AAE9E,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,eAAe;IACf,2BAA2B;IAC3B,oBAAoB;IACpB,eAAe;IACf,oBAAoB;IACpB,uBAAuB;IACvB,YAAY;IACZ,sBAAsB;IACtB,sBAAsB;IACtB,0BAA0B;IAC1B,qBAAqB;IACrB,oBAAoB;IACpB,yBAAyB;IACzB,yBAAyB;CACjB,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { CONSUME_OPERATION_MCP_TOKEN_RPC, CONSUME_OPERATION_PRIVATE_RPC, CONSUME_OPERATION_PUBLIC_RPC, CONSUME_SEMAS_MCP_TOKEN_RPC, CONSUME_SEMAS_PRIVATE_RPC, CONSUME_SEMAS_PUBLIC_RPC } from "./controleComercialSupabaseConstantes.js";
|
|
2
|
+
export async function consumirSemasMcp(client, input) {
|
|
3
|
+
if (!input.toolName.trim()) {
|
|
4
|
+
throw new Error("toolName e obrigatorio para consumo de SEMAS.");
|
|
5
|
+
}
|
|
6
|
+
if (!input.idempotencyKey.trim()) {
|
|
7
|
+
throw new Error("idempotencyKey e obrigatoria para consumo de SEMAS.");
|
|
8
|
+
}
|
|
9
|
+
const operationCode = input.operationCode?.trim() || "";
|
|
10
|
+
const amount = input.amount ?? 1;
|
|
11
|
+
if (!operationCode && (!Number.isInteger(amount) || amount <= 0)) {
|
|
12
|
+
throw new Error("amount precisa ser inteiro positivo para consumo de SEMAS sem operationCode.");
|
|
13
|
+
}
|
|
14
|
+
if (operationCode && input.amount !== undefined) {
|
|
15
|
+
throw new Error("Use operationCode ou amount, nao ambos. O custo por operacao vem do catalogo oficial.");
|
|
16
|
+
}
|
|
17
|
+
const privateRpc = input.privateRpc === true;
|
|
18
|
+
const tokenRpc = Boolean(input.mcpTokenHash);
|
|
19
|
+
if (privateRpc && tokenRpc) {
|
|
20
|
+
throw new Error("Use privateRpc ou mcpTokenHash, nao ambos.");
|
|
21
|
+
}
|
|
22
|
+
if (privateRpc && !input.actorUserId) {
|
|
23
|
+
throw new Error("actorUserId e obrigatorio quando o MCP usa o RPC privado.");
|
|
24
|
+
}
|
|
25
|
+
if (tokenRpc && !/^[a-f0-9]{64}$/.test(input.mcpTokenHash ?? "")) {
|
|
26
|
+
throw new Error("mcpTokenHash precisa ser um SHA-256 hexadecimal.");
|
|
27
|
+
}
|
|
28
|
+
const resposta = await client.rpc(operationCode && tokenRpc
|
|
29
|
+
? CONSUME_OPERATION_MCP_TOKEN_RPC
|
|
30
|
+
: operationCode && privateRpc
|
|
31
|
+
? CONSUME_OPERATION_PRIVATE_RPC
|
|
32
|
+
: operationCode && !privateRpc
|
|
33
|
+
? CONSUME_OPERATION_PUBLIC_RPC
|
|
34
|
+
: tokenRpc
|
|
35
|
+
? CONSUME_SEMAS_MCP_TOKEN_RPC
|
|
36
|
+
: privateRpc
|
|
37
|
+
? CONSUME_SEMAS_PRIVATE_RPC
|
|
38
|
+
: CONSUME_SEMAS_PUBLIC_RPC, tokenRpc
|
|
39
|
+
? {
|
|
40
|
+
p_token_hash: input.mcpTokenHash,
|
|
41
|
+
p_organization_id: input.organizationId ?? null,
|
|
42
|
+
p_project_id: input.projectId ?? null,
|
|
43
|
+
...(operationCode ? { p_operation_code: operationCode } : { p_amount: amount }),
|
|
44
|
+
p_tool_name: input.toolName,
|
|
45
|
+
p_request_summary: input.requestSummary ?? null,
|
|
46
|
+
p_idempotency_key: input.idempotencyKey,
|
|
47
|
+
p_metadata: input.metadata ?? {},
|
|
48
|
+
}
|
|
49
|
+
: privateRpc
|
|
50
|
+
? {
|
|
51
|
+
p_actor_user_id: input.actorUserId,
|
|
52
|
+
p_organization_id: input.organizationId ?? null,
|
|
53
|
+
p_project_id: input.projectId ?? null,
|
|
54
|
+
...(operationCode ? { p_operation_code: operationCode } : { p_amount: amount }),
|
|
55
|
+
p_tool_name: input.toolName,
|
|
56
|
+
p_request_summary: input.requestSummary ?? null,
|
|
57
|
+
p_idempotency_key: input.idempotencyKey,
|
|
58
|
+
p_metadata: input.metadata ?? {},
|
|
59
|
+
}
|
|
60
|
+
: {
|
|
61
|
+
p_organization_id: input.organizationId ?? null,
|
|
62
|
+
p_project_id: input.projectId ?? null,
|
|
63
|
+
...(operationCode ? { p_operation_code: operationCode } : { p_amount: amount }),
|
|
64
|
+
p_tool_name: input.toolName,
|
|
65
|
+
p_request_summary: input.requestSummary ?? null,
|
|
66
|
+
p_idempotency_key: input.idempotencyKey,
|
|
67
|
+
p_metadata: input.metadata ?? {},
|
|
68
|
+
});
|
|
69
|
+
if (resposta.error) {
|
|
70
|
+
throw new Error(resposta.error.message ?? "Falha ao consumir SEMAS.");
|
|
71
|
+
}
|
|
72
|
+
if (!resposta.data?.authorized) {
|
|
73
|
+
throw new Error("Consumo de SEMAS nao foi autorizado.");
|
|
74
|
+
}
|
|
75
|
+
return resposta.data;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=controleComercialSupabaseConsumo.js.map
|